// strings3.rs // // Execute `rustlings hint strings3` or use the `hint` watch subcommand for a // hint. fn trim_me(input: &str) -> String { // TODO: Remove whitespace from both ends of a string! input.to_string().trim().to_string() } fn compose_me(input: &str) -> String { // TODO: Add " world!" to the string! There's multiple ways to do this! let mut new_input = String::from(input); new_input.push_str(" world!"); new_input } fn replace_me(input: &str) -> String { input.to_string().replace("cars", "balloons").to_string() } #[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"); } }