From 82f597d052b8cfb06bfb0d01e3bd96d9c290b67c Mon Sep 17 00:00:00 2001 From: Reality Enjoyer Date: Sun, 25 Jan 2026 15:49:17 +0000 Subject: [PATCH] strings and modules --- exercises/09_strings/strings3.rs | 8 +++++--- exercises/09_strings/strings4.rs | 21 +++++++++++---------- exercises/10_modules/modules1.rs | 2 +- exercises/10_modules/modules2.rs | 5 ++--- exercises/10_modules/modules3.rs | 2 +- 5 files changed, 20 insertions(+), 18 deletions(-) diff --git a/exercises/09_strings/strings3.rs b/exercises/09_strings/strings3.rs index f5e45b0..d5b893b 100644 --- a/exercises/09_strings/strings3.rs +++ b/exercises/09_strings/strings3.rs @@ -1,13 +1,15 @@ fn trim_me(input: &str) -> &str { - // TODO: Remove whitespace from both ends of a string. + input.trim() } fn compose_me(input: &str) -> String { - // TODO: Add " world!" to the string! There are multiple ways to do this. + let mut tmp = input.to_string(); + tmp.push_str(" world!"); + tmp } fn replace_me(input: &str) -> String { - // TODO: Replace "cars" in the string with "balloons". + input.replace("cars", "balloons") } fn main() { diff --git a/exercises/09_strings/strings4.rs b/exercises/09_strings/strings4.rs index 4730726..acb92da 100644 --- a/exercises/09_strings/strings4.rs +++ b/exercises/09_strings/strings4.rs @@ -13,25 +13,26 @@ fn string(arg: String) { // Your task is to replace `placeholder(…)` with either `string_slice(…)` // or `string(…)` depending on what you think each value is. fn main() { - placeholder("blue"); + string_slice("blue"); - placeholder("red".to_string()); + string("red".to_string()); - placeholder(String::from("hi")); + string(String::from("hi")); - placeholder("rust is fun!".to_owned()); + string("rust is fun!".to_owned()); - placeholder("nice weather".into()); + #[allow(clippy::useless_conversion)] + string_slice("nice weather".into()); - placeholder(format!("Interpolation {}", "Station")); + string(format!("Interpolation {}", "Station")); // WARNING: This is byte indexing, not character indexing. // Character indexing can be done using `s.chars().nth(INDEX)`. - placeholder(&String::from("abc")[0..1]); + string_slice(&String::from("abc")[0..1]); - placeholder(" hello there ".trim()); + string_slice(" hello there ".trim()); - placeholder("Happy Monday!".replace("Mon", "Tues")); + string("Happy Monday!".replace("Mon", "Tues")); - placeholder("mY sHiFt KeY iS sTiCkY".to_lowercase()); + string("mY sHiFt KeY iS sTiCkY".to_lowercase()); } diff --git a/exercises/10_modules/modules1.rs b/exercises/10_modules/modules1.rs index d97ab23..81981df 100644 --- a/exercises/10_modules/modules1.rs +++ b/exercises/10_modules/modules1.rs @@ -5,7 +5,7 @@ mod sausage_factory { String::from("Ginger") } - fn make_sausage() { + pub fn make_sausage() { get_secret_recipe(); println!("sausage!"); } diff --git a/exercises/10_modules/modules2.rs b/exercises/10_modules/modules2.rs index 782a70e..beeb783 100644 --- a/exercises/10_modules/modules2.rs +++ b/exercises/10_modules/modules2.rs @@ -2,9 +2,8 @@ // the `use` and `as` keywords. 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/exercises/10_modules/modules3.rs b/exercises/10_modules/modules3.rs index 691608d..832902a 100644 --- a/exercises/10_modules/modules3.rs +++ b/exercises/10_modules/modules3.rs @@ -4,7 +4,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) { Ok(n) => println!("1970-01-01 00:00:00 UTC was {} seconds ago!", n.as_secs()),