diff options
author | Jordan Gong <jordan.gong@protonmail.com> | 2020-08-31 14:03:13 +0800 |
---|---|---|
committer | Jordan Gong <jordan.gong@protonmail.com> | 2020-08-31 14:03:13 +0800 |
commit | 3cda6fa25939e2857f5de116af976b79179cbcf8 (patch) | |
tree | 6937413157062425eda3ecadf0be3fcd8b908622 /restaurant/src | |
parent | b80354d75b58858f9c90a9c52e2bceb1ee013cdb (diff) |
Manage modules
Diffstat (limited to 'restaurant/src')
-rw-r--r-- | restaurant/src/lib.rs | 77 | ||||
-rw-r--r-- | restaurant/src/main.rs | 4 |
2 files changed, 81 insertions, 0 deletions
diff --git a/restaurant/src/lib.rs b/restaurant/src/lib.rs new file mode 100644 index 0000000..eaab79f --- /dev/null +++ b/restaurant/src/lib.rs @@ -0,0 +1,77 @@ +mod front_of_house { + pub mod hosting { + pub fn add_to_waitlist() {} + + fn seat_at_table() {} + } + + mod serving { + fn take_order() {} + + fn serve_order() {} + + fn take_payment() {} + } +} + +fn serve_order() {} + +mod back_of_house { + fn fix_incorrect_order() { + cook_order(); + super::serve_order(); + } + + fn cook_order() {} + + pub struct Breakfast { + pub toast: String, + seasonal_fruit: String, + } + + impl Breakfast { + pub fn summer(toast: &str) -> Breakfast { + Breakfast { + toast: String::from(toast), + seasonal_fruit: String::from("peach"), + } + } + } + + pub enum Appetizer { + Soup, + Salad, + } +} + +pub fn eat_at_restaurant() { + // Absolute path + crate::front_of_house::hosting::add_to_waitlist(); + + // Relative path + front_of_house::hosting::add_to_waitlist(); + + 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; + + { + use crate::front_of_house::hosting; + + hosting::add_to_waitlist(); + hosting::add_to_waitlist(); + hosting::add_to_waitlist(); + } + + { + use self::front_of_house::hosting; + + hosting::add_to_waitlist(); + hosting::add_to_waitlist(); + hosting::add_to_waitlist(); + } +} + diff --git a/restaurant/src/main.rs b/restaurant/src/main.rs new file mode 100644 index 0000000..11472db --- /dev/null +++ b/restaurant/src/main.rs @@ -0,0 +1,4 @@ +fn main() { + restaurant::eat_at_restaurant(); +} + |