#[cfg(test)] mod tests { #[derive(Debug, Eq, PartialEq, Copy, Clone)] struct MyError; #[test] fn transposing() { let this: Result, MyError> = Ok(Some(42)); let other: Option> = Some(Ok(42)); assert_eq!(this, other.transpose()); let this: Result, MyError> = Err(MyError); let other: Option> = Some(Err(MyError)); assert_eq!(this, other.transpose()); assert_eq!(None::>.transpose(), Ok(None::)); } #[test] fn conversion() { let opt = Some(42); assert_eq!(opt.ok_or(MyError), Ok(42)); let res: Result = Ok(42); assert_eq!(res.ok(), opt); assert_eq!(res.err(), None); let opt: Option = None; assert_eq!(opt.ok_or(MyError), Err(MyError)); let res: Result = Err(MyError); assert_eq!(res.ok(), None); assert_eq!(res.err(), Some(MyError)); } }