fn trim_me(input: &str) -> &str { input.trim() } fn compose_me(input: &str) -> String { // The macro `format!` has the same syntax as `println!`, but it returns a // string instead of printing it to the terminal. // Equivalent to `input.to_string() + " world!"` format!("{input} world!") } fn replace_me(input: &str) -> String { input.replace("cars", "balloons") } fn main() { // You can optionally experiment here. } #[cfg(test)] mod tests { use super::*; #[test] fn trim_a_string() { assert_eq!(trim_me("Hello! "), "Hello!"); assert_eq!(trim_me(" What's up!"), "What's up!"); assert_eq!(trim_me(" Hola! "), "Hola!"); } #[test] fn compose_a_string() { assert_eq!(compose_me("Hello"), "Hello world!"); assert_eq!(compose_me("Goodbye"), "Goodbye world!"); } #[test] fn replace_a_string() { assert_eq!( replace_me("I think cars are cool"), "I think balloons are cool", ); assert_eq!( replace_me("I love to look at cars"), "I love to look at balloons", ); } }