diff options
Diffstat (limited to 'rustlings/exercises/13_error_handling/errors4.rs')
| -rw-r--r-- | rustlings/exercises/13_error_handling/errors4.rs | 44 |
1 files changed, 0 insertions, 44 deletions
diff --git a/rustlings/exercises/13_error_handling/errors4.rs b/rustlings/exercises/13_error_handling/errors4.rs deleted file mode 100644 index e5f3d39..0000000 --- a/rustlings/exercises/13_error_handling/errors4.rs +++ /dev/null @@ -1,44 +0,0 @@ -#[derive(PartialEq, Debug)] -enum CreationError { - Negative, - Zero, -} - -#[derive(PartialEq, Debug)] -struct PositiveNonzeroInteger(u64); - -impl PositiveNonzeroInteger { - fn new(value: i64) -> Result<Self, CreationError> { - // TODO: This function shouldn't always return an `Ok`. - // Read the tests below to clarify what should be returned. - if value < 0 { - return Err(CreationError::Negative); - } - if value == 0 { - return Err(CreationError::Zero); - } - Ok(Self(value as u64)) - } -} - -fn main() { - // You can optionally experiment here. -} - -#[cfg(test)] -mod tests { - use super::*; - - #[test] - fn test_creation() { - assert_eq!( - PositiveNonzeroInteger::new(10), - Ok(PositiveNonzeroInteger(10)), - ); - assert_eq!( - PositiveNonzeroInteger::new(-10), - Err(CreationError::Negative), - ); - assert_eq!(PositiveNonzeroInteger::new(0), Err(CreationError::Zero)); - } -} |