mirror of
https://github.com/rust-lang/rustlings.git
synced 2024-12-27 07:46:29 +00:00
48 lines
1.1 KiB
Rust
48 lines
1.1 KiB
Rust
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",
|
|
);
|
|
}
|
|
}
|