Add farewell function alongside greeting
1 file+22−00/1 viewed
| 7 | 7 | format!("Hello, {display_name}!") | |
| 8 | 8 | } | |
| 9 | 9 | ||
| 10 | + | /// The farewell for `name`. | |
| 11 | + | pub fn farewell(name: &str) -> String { | |
| 12 | + | let trimmed = name.trim(); | |
| 13 | + | let display_name = if trimmed.is_empty() { "world" } else { trimmed }; | |
| 14 | + | format!("Goodbye, {display_name}!") | |
| 15 | + | } | |
| 16 | + | ||
| 10 | 17 | #[cfg(test)] | |
| 11 | 18 | mod tests { | |
| 12 | 19 | use super::*; | |
| 30 | 37 | fn trims_whitespace_from_name() { | |
| 31 | 38 | assert_eq!(greeting(" Ada "), "Hello, Ada!"); | |
| 32 | 39 | } | |
| 40 | + | ||
| 41 | + | #[test] | |
| 42 | + | fn says_goodbye_by_name() { | |
| 43 | + | assert_eq!(farewell("Ada"), "Goodbye, Ada!"); | |
| 44 | + | } | |
| 45 | + | ||
| 46 | + | #[test] | |
| 47 | + | fn says_goodbye_to_world_when_blank() { | |
| 48 | + | assert_eq!(farewell(" "), "Goodbye, world!"); | |
| 49 | + | } | |
| 50 | + | ||
| 51 | + | #[test] | |
| 52 | + | fn farewell_trims_whitespace() { | |
| 53 | + | assert_eq!(farewell(" Ada "), "Goodbye, Ada!"); | |
| 54 | + | } | |
| 33 | 55 | } |