diff --git a/.idea/rust.xml b/.idea/rust.xml new file mode 100644 index 0000000..7bc91ea --- /dev/null +++ b/.idea/rust.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/.rustlings-state.txt b/.rustlings-state.txt index fd19189..192844b 100644 --- a/.rustlings-state.txt +++ b/.rustlings-state.txt @@ -1,6 +1,6 @@ DON'T EDIT THIS FILE! -modules1 +modules2 intro1 intro2 @@ -42,4 +42,5 @@ strings1 strings2 strings3 strings4 +modules1 quiz2 \ No newline at end of file diff --git a/exercises/10_modules/modules1.rs b/exercises/10_modules/modules1.rs index d97ab23..7bf04c3 100644 --- a/exercises/10_modules/modules1.rs +++ b/exercises/10_modules/modules1.rs @@ -5,12 +5,13 @@ mod sausage_factory { String::from("Ginger") } - fn make_sausage() { + pub fn make_sausage() { get_secret_recipe(); println!("sausage!"); } } fn main() { + use sausage_factory; sausage_factory::make_sausage(); } diff --git a/exercises/10_modules/modules2.rs b/exercises/10_modules/modules2.rs index 782a70e..6209c9f 100644 --- a/exercises/10_modules/modules2.rs +++ b/exercises/10_modules/modules2.rs @@ -6,12 +6,12 @@ mod delicious_snacks { // use self::fruits::PEAR as ???; // use self::veggies::CUCUMBER as ???; - mod fruits { + pub mod fruits { pub const PEAR: &str = "Pear"; pub const APPLE: &str = "Apple"; } - mod veggies { + pub mod veggies { pub const CUCUMBER: &str = "Cucumber"; pub const CARROT: &str = "Carrot"; } @@ -20,7 +20,7 @@ mod delicious_snacks { fn main() { println!( "favorite snacks: {} and {}", - delicious_snacks::fruit, - delicious_snacks::veggie, + delicious_snacks::fruits::APPLE, + delicious_snacks::veggies::CARROT, ); } diff --git a/solutions/10_modules/modules1.rs b/solutions/10_modules/modules1.rs index dcf2377..873b412 100644 --- a/solutions/10_modules/modules1.rs +++ b/solutions/10_modules/modules1.rs @@ -1,4 +1,15 @@ -fn main() { - // DON'T EDIT THIS SOLUTION FILE! - // It will be automatically filled after you finish the exercise. +mod sausage_factory { + fn get_secret_recipe() -> String { + String::from("Ginger") + } + + // Added `pub` before `fn` to make the function accessible outside the module. + pub fn make_sausage() { + get_secret_recipe(); + println!("sausage!"); + } +} + +fn main() { + sausage_factory::make_sausage(); } diff --git a/solutions/10_modules/modules2.rs b/solutions/10_modules/modules2.rs index dcf2377..55c316d 100644 --- a/solutions/10_modules/modules2.rs +++ b/solutions/10_modules/modules2.rs @@ -1,4 +1,23 @@ -fn main() { - // DON'T EDIT THIS SOLUTION FILE! - // It will be automatically filled after you finish the exercise. +mod delicious_snacks { + // Added `pub` and used the expected alias after `as`. + pub use self::fruits::PEAR as fruit; + pub use self::veggies::CUCUMBER as veggie; + + mod fruits { + pub const PEAR: &str = "Pear"; + pub const APPLE: &str = "Apple"; + } + + mod veggies { + pub const CUCUMBER: &str = "Cucumber"; + pub const CARROT: &str = "Carrot"; + } +} + +fn main() { + println!( + "favorite snacks: {} and {}", + delicious_snacks::fruit, + delicious_snacks::veggie, + ); }