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 {
|
||||
Penny,
|
||||
Nickel,
|
||||
Dime,
|
||||
Quarter,
|
||||
Quarter(UsState),
|
||||
}
|
||||
|
||||
fn value_in_cents(coin: Coin) -> u8 {
|
||||
match coin {
|
||||
Coin::Penny => 1,
|
||||
Coin::Penny => {
|
||||
1
|
||||
}
|
||||
Coin::Nickel => 5,
|
||||
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 s: String = v.to_string();
|
||||
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