rustlings

solving rustlings ft. dracuxan
git clone [email protected]:dracuxan/rustlings.git
Log | Files | Refs

errors1.rs (944B)


      1 fn generate_nametag_text(name: String) -> Result<String, String> {
      2     //                                    ^^^^^^         ^^^^^^
      3     if name.is_empty() {
      4         // `Err(String)` instead of `None`.
      5         Err("Empty names aren't allowed".to_string())
      6     } else {
      7         // `Ok` instead of `Some`.
      8         Ok(format!("Hi! My name is {name}"))
      9     }
     10 }
     11 
     12 fn main() {
     13     // You can optionally experiment here.
     14 }
     15 
     16 #[cfg(test)]
     17 mod tests {
     18     use super::*;
     19 
     20     #[test]
     21     fn generates_nametag_text_for_a_nonempty_name() {
     22         assert_eq!(
     23             generate_nametag_text("Beyoncé".to_string()).as_deref(),
     24             Ok("Hi! My name is Beyoncé"),
     25         );
     26     }
     27 
     28     #[test]
     29     fn explains_why_generating_nametag_text_fails() {
     30         assert_eq!(
     31             generate_nametag_text(String::new())
     32                 .as_ref()
     33                 .map_err(|e| e.as_str()),
     34             Err("Empty names aren't allowed"),
     35         );
     36     }
     37 }