summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--rustlings/.rustlings-state.txt7
-rw-r--r--rustlings/exercises/10_modules/modules1.rs3
-rw-r--r--rustlings/exercises/10_modules/modules2.rs4
-rw-r--r--rustlings/exercises/10_modules/modules3.rs2
-rw-r--r--rustlings/solutions/10_modules/modules1.rs15
-rw-r--r--rustlings/solutions/10_modules/modules2.rs23
-rw-r--r--rustlings/solutions/10_modules/modules3.rs8
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!"),
+ }
}