Chapter 7 mid way
This commit is contained in:
parent
66f2f1db23
commit
dab55f5a6f
@ -28,3 +28,13 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
-e { "configurations": { "launch": {
|
||||||
|
"adapter": "CodeLLDB",
|
||||||
|
"filetypes": [ "rust" ],
|
||||||
|
"configuration": {
|
||||||
|
"request": "launch",
|
||||||
|
"program": "${workspaceRoot}/target/debug/HERE"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@ -1,16 +1,76 @@
|
|||||||
|
#[derive(Debug)]
|
||||||
|
enum UsState {
|
||||||
|
Alabama,
|
||||||
|
Alaska,
|
||||||
|
Arizona,
|
||||||
|
Arkansas,
|
||||||
|
California,
|
||||||
|
Colorado,
|
||||||
|
Connecticut,
|
||||||
|
Delaware,
|
||||||
|
DC,
|
||||||
|
Florida,
|
||||||
|
Georgia,
|
||||||
|
Hawaii,
|
||||||
|
Idaho,
|
||||||
|
Illinois,
|
||||||
|
Indiana,
|
||||||
|
Iowa,
|
||||||
|
Kansas,
|
||||||
|
Kentucky,
|
||||||
|
Louisiana,
|
||||||
|
Maine,
|
||||||
|
Maryland,
|
||||||
|
Massachusetts,
|
||||||
|
Michigan,
|
||||||
|
Minnesota,
|
||||||
|
Mississippi,
|
||||||
|
Missouri,
|
||||||
|
Montana,
|
||||||
|
Nebraska,
|
||||||
|
Nevada,
|
||||||
|
NewHampshire,
|
||||||
|
NewJersey,
|
||||||
|
NewMexico,
|
||||||
|
NewYork,
|
||||||
|
NorthCarolina,
|
||||||
|
NorthDakota,
|
||||||
|
Ohio,
|
||||||
|
Oklahoma,
|
||||||
|
Oregon,
|
||||||
|
Pennsylvania,
|
||||||
|
RhodeIsland,
|
||||||
|
SouthCarolina,
|
||||||
|
SouthDakota,
|
||||||
|
Tennessee,
|
||||||
|
Texas,
|
||||||
|
Utah,
|
||||||
|
Vermont,
|
||||||
|
Virginia,
|
||||||
|
Washington,
|
||||||
|
WestVirginia,
|
||||||
|
Wisconsin,
|
||||||
|
Wyoming
|
||||||
|
}
|
||||||
|
|
||||||
enum Coin {
|
enum Coin {
|
||||||
Penny,
|
Penny,
|
||||||
Nickel,
|
Nickel,
|
||||||
Dime,
|
Dime,
|
||||||
Quarter,
|
Quarter(UsState),
|
||||||
}
|
}
|
||||||
|
|
||||||
fn value_in_cents(coin: Coin) -> u8 {
|
fn value_in_cents(coin: Coin) -> u8 {
|
||||||
match coin {
|
match coin {
|
||||||
Coin::Penny => 1,
|
Coin::Penny => {
|
||||||
|
1
|
||||||
|
}
|
||||||
Coin::Nickel => 5,
|
Coin::Nickel => 5,
|
||||||
Coin::Dime => 10,
|
Coin::Dime => 10,
|
||||||
Coin::Quarter => 25,
|
Coin::Quarter(state) => {
|
||||||
|
println!("State quarter from {:?}!", state);
|
||||||
|
25
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -20,5 +80,7 @@ fn main() {
|
|||||||
let v: u8 = value_in_cents(Coin::Dime);
|
let v: u8 = value_in_cents(Coin::Dime);
|
||||||
let s: String = v.to_string();
|
let s: String = v.to_string();
|
||||||
println!("{}", s);
|
println!("{}", s);
|
||||||
|
let vq: u8 = value_in_cents(Coin::Quarter(UsState::NewHampshire));
|
||||||
|
let sq: String = vq.to_string();
|
||||||
|
println!("{}", sq);
|
||||||
}
|
}
|
||||||
|
10
chapter6/matchoptions/.vimspector.json
Normal file
10
chapter6/matchoptions/.vimspector.json
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
{ "configurations": { "launch": {
|
||||||
|
"adapter": "CodeLLDB",
|
||||||
|
"filetypes": [ "rust" ],
|
||||||
|
"configuration": {
|
||||||
|
"request": "launch",
|
||||||
|
"program": "${workspaceRoot}/target/debug/matchoptions"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
7
chapter6/matchoptions/Cargo.lock
generated
Normal file
7
chapter6/matchoptions/Cargo.lock
generated
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
# This file is automatically @generated by Cargo.
|
||||||
|
# It is not intended for manual editing.
|
||||||
|
version = 3
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "matchoptions"
|
||||||
|
version = "0.1.0"
|
8
chapter6/matchoptions/Cargo.toml
Normal file
8
chapter6/matchoptions/Cargo.toml
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
[package]
|
||||||
|
name = "matchoptions"
|
||||||
|
version = "0.1.0"
|
||||||
|
edition = "2021"
|
||||||
|
|
||||||
|
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
||||||
|
|
||||||
|
[dependencies]
|
13
chapter6/matchoptions/src/main.rs
Normal file
13
chapter6/matchoptions/src/main.rs
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
fn plus_one(x: Option<i32>) -> Option<i32> {
|
||||||
|
match x {
|
||||||
|
None => None,
|
||||||
|
Some(i) => Some(i+1),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
fn main() {
|
||||||
|
let five = Some(5);
|
||||||
|
let six = plus_one(five);
|
||||||
|
let none = plus_one(None);
|
||||||
|
}
|
8
chapter7/my-project/Cargo.toml
Normal file
8
chapter7/my-project/Cargo.toml
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
[package]
|
||||||
|
name = "my-project"
|
||||||
|
version = "0.1.0"
|
||||||
|
edition = "2021"
|
||||||
|
|
||||||
|
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
||||||
|
|
||||||
|
[dependencies]
|
3
chapter7/my-project/src/main.rs
Normal file
3
chapter7/my-project/src/main.rs
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
fn main() {
|
||||||
|
println!("Hello, world!");
|
||||||
|
}
|
7
chapter7/restaurant/Cargo.lock
generated
Normal file
7
chapter7/restaurant/Cargo.lock
generated
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
# This file is automatically @generated by Cargo.
|
||||||
|
# It is not intended for manual editing.
|
||||||
|
version = 3
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "restaurant"
|
||||||
|
version = "0.1.0"
|
8
chapter7/restaurant/Cargo.toml
Normal file
8
chapter7/restaurant/Cargo.toml
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
[package]
|
||||||
|
name = "restaurant"
|
||||||
|
version = "0.1.0"
|
||||||
|
edition = "2021"
|
||||||
|
|
||||||
|
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
||||||
|
|
||||||
|
[dependencies]
|
48
chapter7/restaurant/src/lib.rs
Normal file
48
chapter7/restaurant/src/lib.rs
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
pub mod front_of_house {
|
||||||
|
pub mod hosting {
|
||||||
|
pub fn add_to_waitlist() {}
|
||||||
|
pub fn seat_at_table() {}
|
||||||
|
}
|
||||||
|
pub mod serving {
|
||||||
|
pub fn take_order() {}
|
||||||
|
pub fn serve_order() {}
|
||||||
|
pub fn take_payent() {}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
fn deliver_order() {}
|
||||||
|
|
||||||
|
mod back_of_house {
|
||||||
|
pub struct Breakfast {
|
||||||
|
pub toast: String,
|
||||||
|
seasonal_fruit: String,
|
||||||
|
}
|
||||||
|
pub enum Appetizer {
|
||||||
|
Soup,
|
||||||
|
Salad,
|
||||||
|
}
|
||||||
|
impl Breakfast {
|
||||||
|
pub fn summer(toast: &str) -> Breakfast {
|
||||||
|
Breakfast {
|
||||||
|
toast: String::from(toast),
|
||||||
|
seasonal_fruit:String::from("Peaches"),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fn fix_incorrect_order(){
|
||||||
|
cook_order();
|
||||||
|
super::deliver_order();
|
||||||
|
}
|
||||||
|
fn cook_order(){}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
pub fn eat_at_restaurant() {
|
||||||
|
let mut meal = back_of_house::Breakfast::summer("rye");
|
||||||
|
meal.toast = String::from("Wheat");
|
||||||
|
println!("I'd like {} toast please", meal.toast);
|
||||||
|
|
||||||
|
let _order1 = back_of_house::Appetizer::Soup;
|
||||||
|
let _order2 = back_of_house::Appetizer::Salad;
|
||||||
|
;
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user