This commit is contained in:
2026-05-01 14:08:33 +07:00
parent 4eb90e7c52
commit 30be9383b5
8 changed files with 125 additions and 0 deletions

1
restaurant/.gitignore vendored Normal file
View File

@@ -0,0 +1 @@
target/

7
restaurant/Cargo.lock generated Normal file
View File

@@ -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"

6
restaurant/Cargo.toml Normal file
View File

@@ -0,0 +1,6 @@
[package]
name = "restaurant"
version = "0.1.0"
edition = "2024"
[dependencies]

16
restaurant/src/lib.rs Normal file
View File

@@ -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() {}
}
}

1
shirt_company/rust/.gitignore vendored Normal file
View File

@@ -0,0 +1 @@
target/

7
shirt_company/rust/Cargo.lock generated Normal file
View File

@@ -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"

View File

@@ -0,0 +1,6 @@
[package]
name = "rust"
version = "0.1.0"
edition = "2024"
[dependencies]

View File

@@ -0,0 +1,81 @@
#[derive(Debug, PartialEq, Copy, Clone)]
enum ShirtColor {
Red,
Blue,
}
struct Inventory {
shirts:Vec<ShirtColor>,
}
impl Inventory {
fn giveaway(
&self,
user_preference: Option<ShirtColor>,
) -> 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
);
}