diff options
| author | Hunter Kvalevog <hunter@kvog.sh> | 2026-09-27 10:42:27 -0500 |
|---|---|---|
| committer | Hunter Kvalevog <hunter@kvog.sh> | 2026-09-27 10:42:27 -0500 |
| commit | 4abf853ebed9608583a39b13ab3cd3f14ecd1f4b (patch) | |
| tree | 2ce9ca80401d59e2bb7bab1b229ce79d0292cc25 | |
| parent | 5457f377967b3fc910d98c138b988c58f6462aa5 (diff) | |
rustlings: complete 10
| -rw-r--r-- | rustlings/.rustlings-state.txt | 7 | ||||
| -rw-r--r-- | rustlings/exercises/10_modules/modules1.rs | 3 | ||||
| -rw-r--r-- | rustlings/exercises/10_modules/modules2.rs | 4 | ||||
| -rw-r--r-- | rustlings/exercises/10_modules/modules3.rs | 2 | ||||
| -rw-r--r-- | rustlings/solutions/10_modules/modules1.rs | 15 | ||||
| -rw-r--r-- | rustlings/solutions/10_modules/modules2.rs | 23 | ||||
| -rw-r--r-- | rustlings/solutions/10_modules/modules3.rs | 8 |
7 files changed, 49 insertions, 13 deletions
diff --git a/rustlings/.rustlings-state.txt b/rustlings/.rustlings-state.txt index 9dec928..e195870 100644 --- a/rustlings/.rustlings-state.txt +++ b/rustlings/.rustlings-state.txt @@ -1,6 +1,6 @@ DON'T EDIT THIS FILE! -modules1 +hashmaps1 intro1 intro2 @@ -41,4 +41,7 @@ enums3 strings1 strings2 strings3 -strings4
\ No newline at end of file +strings4 +modules1 +modules2 +modules3
\ No newline at end of file diff --git a/rustlings/exercises/10_modules/modules1.rs b/rustlings/exercises/10_modules/modules1.rs index d97ab23..0d7c5a2 100644 --- a/rustlings/exercises/10_modules/modules1.rs +++ b/rustlings/exercises/10_modules/modules1.rs @@ -1,11 +1,10 @@ -// TODO: Fix the compiler error about calling a private function. mod sausage_factory { // Don't let anybody outside of this module see this! fn get_secret_recipe() -> String { String::from("Ginger") } - fn make_sausage() { + pub fn make_sausage() { get_secret_recipe(); println!("sausage!"); } diff --git a/rustlings/exercises/10_modules/modules2.rs b/rustlings/exercises/10_modules/modules2.rs index 782a70e..3cabbfd 100644 --- a/rustlings/exercises/10_modules/modules2.rs +++ b/rustlings/exercises/10_modules/modules2.rs @@ -3,8 +3,8 @@ mod delicious_snacks { // TODO: Add the following two `use` statements after fixing them. - // use self::fruits::PEAR as ???; - // use self::veggies::CUCUMBER as ???; + pub use self::fruits::PEAR as fruit; + pub use self::veggies::CUCUMBER as veggie; mod fruits { pub const PEAR: &str = "Pear"; diff --git a/rustlings/exercises/10_modules/modules3.rs b/rustlings/exercises/10_modules/modules3.rs index 691608d..403b7ea 100644 --- a/rustlings/exercises/10_modules/modules3.rs +++ b/rustlings/exercises/10_modules/modules3.rs @@ -3,7 +3,7 @@ // TODO: Bring `SystemTime` and `UNIX_EPOCH` from the `std::time` module into // your scope. Bonus style points if you can do it with one line! -// use ???; +use std::time::{SystemTime, UNIX_EPOCH}; fn main() { match SystemTime::now().duration_since(UNIX_EPOCH) { diff --git a/rustlings/solutions/10_modules/modules1.rs b/rustlings/solutions/10_modules/modules1.rs index dcf2377..873b412 100644 --- a/rustlings/solutions/10_modules/modules1.rs +++ b/rustlings/solutions/10_modules/modules1.rs @@ -1,4 +1,15 @@ +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() { - // DON'T EDIT THIS SOLUTION FILE! - // It will be automatically filled after you finish the exercise. + sausage_factory::make_sausage(); } diff --git a/rustlings/solutions/10_modules/modules2.rs b/rustlings/solutions/10_modules/modules2.rs index dcf2377..55c316d 100644 --- a/rustlings/solutions/10_modules/modules2.rs +++ b/rustlings/solutions/10_modules/modules2.rs @@ -1,4 +1,23 @@ +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() { - // DON'T EDIT THIS SOLUTION FILE! - // It will be automatically filled after you finish the exercise. + println!( + "favorite snacks: {} and {}", + delicious_snacks::fruit, + delicious_snacks::veggie, + ); } diff --git a/rustlings/solutions/10_modules/modules3.rs b/rustlings/solutions/10_modules/modules3.rs index dcf2377..99ff5a7 100644 --- a/rustlings/solutions/10_modules/modules3.rs +++ b/rustlings/solutions/10_modules/modules3.rs @@ -1,4 +1,8 @@ +use std::time::{SystemTime, UNIX_EPOCH}; + fn main() { - // DON'T EDIT THIS SOLUTION FILE! - // It will be automatically filled after you finish the exercise. + match SystemTime::now().duration_since(UNIX_EPOCH) { + Ok(n) => println!("1970-01-01 00:00:00 UTC was {} seconds ago!", n.as_secs()), + Err(_) => panic!("SystemTime before UNIX EPOCH!"), + } } |