// errors4.rs // // Execute `rustlings hint errors4` or use the `hint` watch subcommand for a // hint. #[derive(PartialEq, Debug)] struct PositiveNonzeroInteger(u64); #[derive(PartialEq, Debug)] enum CreationError { Negative, Zero, } impl PositiveNonzeroInteger { fn new(value: i64) -> Result { <<<<<<< HEAD:exercises/error_handling/result1.rs if value > 1 { Ok(PositiveNonzeroInteger(value as u64)) } else if value == 0 { Err(CreationError::Zero) } else { Err(CreationError::Negative) } ======= // Hmm... Why is this always returning an Ok value? Ok(PositiveNonzeroInteger(value as u64)) >>>>>>> 11d8aea96f2c744d970ed1ffb38785cf5b511e5e:exercises/error_handling/errors4.rs } } #[test] fn test_creation() { assert!(PositiveNonzeroInteger::new(10).is_ok()); assert_eq!( Err(CreationError::Negative), PositiveNonzeroInteger::new(-10) ); assert_eq!(Err(CreationError::Zero), PositiveNonzeroInteger::new(0)); }