diff --git a/restaurant/.gitignore b/restaurant/.gitignore new file mode 100644 index 0000000..9f97022 --- /dev/null +++ b/restaurant/.gitignore @@ -0,0 +1 @@ +target/ \ No newline at end of file diff --git a/restaurant/Cargo.lock b/restaurant/Cargo.lock new file mode 100644 index 0000000..73e0f82 --- /dev/null +++ b/restaurant/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "restaurant" +version = "0.1.0" diff --git a/restaurant/Cargo.toml b/restaurant/Cargo.toml new file mode 100644 index 0000000..8e47b7a --- /dev/null +++ b/restaurant/Cargo.toml @@ -0,0 +1,6 @@ +[package] +name = "restaurant" +version = "0.1.0" +edition = "2024" + +[dependencies] diff --git a/restaurant/src/lib.rs b/restaurant/src/lib.rs new file mode 100644 index 0000000..5ab83d2 --- /dev/null +++ b/restaurant/src/lib.rs @@ -0,0 +1,16 @@ +mod front_of_house { + mod hosting { + fn add_to_waitlist() { + + + + + } + fn seat_at_table() {} + } + mod serving { + fn take_order() {} + fn serve_order() {} + fn take_payment() {} + } +} \ No newline at end of file diff --git a/shirt_company/rust/.gitignore b/shirt_company/rust/.gitignore new file mode 100644 index 0000000..9f97022 --- /dev/null +++ b/shirt_company/rust/.gitignore @@ -0,0 +1 @@ +target/ \ No newline at end of file diff --git a/shirt_company/rust/Cargo.lock b/shirt_company/rust/Cargo.lock new file mode 100644 index 0000000..b9d42e1 --- /dev/null +++ b/shirt_company/rust/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "rust" +version = "0.1.0" diff --git a/shirt_company/rust/Cargo.toml b/shirt_company/rust/Cargo.toml new file mode 100644 index 0000000..1c61e9e --- /dev/null +++ b/shirt_company/rust/Cargo.toml @@ -0,0 +1,6 @@ +[package] +name = "rust" +version = "0.1.0" +edition = "2024" + +[dependencies] diff --git a/shirt_company/rust/src/main.rs b/shirt_company/rust/src/main.rs new file mode 100644 index 0000000..da71b76 --- /dev/null +++ b/shirt_company/rust/src/main.rs @@ -0,0 +1,81 @@ +#[derive(Debug, PartialEq, Copy, Clone)] +enum ShirtColor { + Red, + Blue, +} +struct Inventory { + shirts:Vec, +} +impl Inventory { + fn giveaway( + &self, + user_preference: Option, + ) -> ShirtColor { + user_preference.unwrap_or_else(|| self.most_stocked()) + } + fn most_stocked(&self) -> ShirtColor { + let mut num_red = 0; + let mut num_blue = 0; + for color in &self.shirts { + match color { + ShirtColor::Red => num_red += 1, + ShirtColor::Blue => num_blue += 1, + } + } + if num_red > num_blue { + ShirtColor::Red + } else { + ShirtColor::Blue + } + } +} +fn main() { + let store = Inventory { + shirts: vec![ + ShirtColor::Blue, + ShirtColor::Red, + ShirtColor::Blue, + ], + }; + let user_pref1 = Some(ShirtColor::Red); + let giveaway1 = store.giveaway(user_pref1); + println!( + "The user with preference {:?} gets {:?}", + user_pref1, giveaway1 + ); + let user_pref2 = None; + let giveaway2 = store.giveaway(user_pref2); + println!( + "The user with preference {:?} gets {:?}", + user_pref2, giveaway2 + ); +} + + + + + + + + + + + + + + + + + + + + + + + + + + + + +