diff options
| author | mo8it <mo8it@proton.me> | 2024-06-26 15:06:29 +0200 |
|---|---|---|
| committer | mo8it <mo8it@proton.me> | 2024-06-26 15:06:29 +0200 |
| commit | 097f3c74ea16bad95a659fc41a494f24e07656d1 (patch) | |
| tree | 20fe2f1dec05a13aece74333254813f375468fb9 /exercises/13_error_handling | |
| parent | 25b5686dd2ab2e3d5a228a71e9631c50ea50fffe (diff) | |
errors1 solution
Diffstat (limited to 'exercises/13_error_handling')
| -rw-r--r-- | exercises/13_error_handling/errors1.rs | 30 |
1 files changed, 15 insertions, 15 deletions
diff --git a/exercises/13_error_handling/errors1.rs b/exercises/13_error_handling/errors1.rs index e3e0482..6d9701b 100644 --- a/exercises/13_error_handling/errors1.rs +++ b/exercises/13_error_handling/errors1.rs @@ -1,22 +1,22 @@ -// This function refuses to generate text to be printed on a nametag if you pass -// it an empty string. It'd be nicer if it explained what the problem was, -// instead of just sometimes returning `None`. Thankfully, Rust has a similar -// construct to `Option` that can be used to express error conditions. Let's use -// it! - -fn main() { - // You can optionally experiment here. -} - +// TODO: This function refuses to generate text to be printed on a nametag if +// you pass it an empty string. It'd be nicer if it explained what the problem +// was instead of just returning `None`. Thankfully, Rust has a similar +// construct to `Option` that can be used to express error conditions. Change +// the function signature and body to return `Result<String, String>` instead +// of `Option<String>`. fn generate_nametag_text(name: String) -> Option<String> { if name.is_empty() { // Empty names aren't allowed. None } else { - Some(format!("Hi! My name is {}", name)) + Some(format!("Hi! My name is {name}")) } } +fn main() { + // You can optionally experiment here. +} + #[cfg(test)] mod tests { use super::*; @@ -24,17 +24,17 @@ mod tests { #[test] fn generates_nametag_text_for_a_nonempty_name() { assert_eq!( - generate_nametag_text("Beyoncé".into()), - Ok("Hi! My name is Beyoncé".into()) + generate_nametag_text("Beyoncé".to_string()).as_deref(), + Ok("Hi! My name is Beyoncé"), ); } #[test] fn explains_why_generating_nametag_text_fails() { assert_eq!( - generate_nametag_text("".into()), + generate_nametag_text(String::new()).as_deref(), // Don't change this line - Err("`name` was empty; it must be nonempty.".into()) + Err("`name` was empty; it must be nonempty."), ); } } |
