summaryrefslogtreecommitdiff
path: root/solutions/10_modules
diff options
context:
space:
mode:
authormo8it <mo8it@proton.me>2024-07-05 13:39:50 +0200
committermo8it <mo8it@proton.me>2024-07-05 13:39:50 +0200
commit7123c7ae3a9605fbe962e4ef0a0f1424cd16fef8 (patch)
treec67f7e62bb9a179ae4fdbab492501cb6847e64c7 /solutions/10_modules
parent77b687d501771c24bd83294d97b8e6f9ffa92d6b (diff)
parent4d9c346a173bb722b929f3ea3c00f84954483e24 (diff)
Merge remote-tracking branch 'upstream/main' into fix-enum-variant-inconsistency
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!"),
+ }
+}