summaryrefslogtreecommitdiff
path: root/rustlings/exercises/13_error_handling/errors1.rs
diff options
context:
space:
mode:
authorHunter Kvalevog <hunter@kvog.sh>2026-10-02 21:53:51 -0500
committerHunter Kvalevog <hunter@kvog.sh>2026-10-02 21:53:51 -0500
commit4dfc11d74ab02ac5765ae5d08fb750c91f4744b4 (patch)
tree17ba62056d6b691dd0217b0e8f1b3a5826dce0f6 /rustlings/exercises/13_error_handling/errors1.rs
parent02d8f1c62896576e1266553a56980eddbc2a88d7 (diff)
rustlings: move to rust/
Diffstat (limited to 'rustlings/exercises/13_error_handling/errors1.rs')
-rw-r--r--rustlings/exercises/13_error_handling/errors1.rs40
1 files changed, 0 insertions, 40 deletions
diff --git a/rustlings/exercises/13_error_handling/errors1.rs b/rustlings/exercises/13_error_handling/errors1.rs
deleted file mode 100644
index b9b9bd5..0000000
--- a/rustlings/exercises/13_error_handling/errors1.rs
+++ /dev/null
@@ -1,40 +0,0 @@
-// 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) -> Result<String, String> {
- if name.is_empty() {
- Err(String::from("Empty names aren't allowed"))
- } else {
- Ok(format!("Hi! My name is {name}"))
- }
-}
-
-fn main() {
- // You can optionally experiment here.
-}
-
-#[cfg(test)]
-mod tests {
- use super::*;
-
- #[test]
- fn generates_nametag_text_for_a_nonempty_name() {
- assert_eq!(
- 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(String::new())
- .as_ref()
- .map_err(|e| e.as_str()),
- Err("Empty names aren't allowed"),
- );
- }
-}