summaryrefslogtreecommitdiff
path: root/solutions/10_modules
diff options
context:
space:
mode:
Diffstat (limited to 'solutions/10_modules')
-rw-r--r--solutions/10_modules/modules1.rs15
-rw-r--r--solutions/10_modules/modules2.rs24
-rw-r--r--solutions/10_modules/modules3.rs8
3 files changed, 47 insertions, 0 deletions
diff --git a/solutions/10_modules/modules1.rs b/solutions/10_modules/modules1.rs
new file mode 100644
index 0000000..873b412
--- /dev/null
+++ b/solutions/10_modules/modules1.rs
@@ -0,0 +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() {
+ sausage_factory::make_sausage();
+}
diff --git a/solutions/10_modules/modules2.rs b/solutions/10_modules/modules2.rs
new file mode 100644
index 0000000..298d76e
--- /dev/null
+++ b/solutions/10_modules/modules2.rs
@@ -0,0 +1,24 @@
+#[allow(dead_code)]
+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,
+ );
+}
diff --git a/solutions/10_modules/modules3.rs b/solutions/10_modules/modules3.rs
new file mode 100644
index 0000000..99ff5a7
--- /dev/null
+++ b/solutions/10_modules/modules3.rs
@@ -0,0 +1,8 @@
+use std::time::{SystemTime, UNIX_EPOCH};
+
+fn main() {
+ 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!"),
+ }
+}