#![allow(dead_code, deprecated, unused_variables, unused_mut)] fn main() { let good_result: Result = Ok(10); let bad_result: Result = Err(10); assert!(good_result.is_ok() && ! good_result.is_err()); assert!(bad_result.is_err() && ! bad_result.is_ok()); let good_result: Result = good_result.map(|i| i + 1); let bad_result: Result = bad_result.map_err(|i| i - 1); assert_eq!(good_result, Ok(11)); assert_eq!(bad_result, Err(9)); let good_result: Result = good_result.and_then(|i| Ok(i == 11)); assert_eq!(good_result, Ok(true)); let bad_result: Result = bad_result.or_else(|i| Ok(i + 20)); assert_eq!(bad_result, Ok(29)); let final_awesome_result = good_result.unwrap(); assert!(final_awesome_result) }