Refactor examples and enhance documentation in result.rs

This commit is contained in:
Renato Alves 2024-05-10 01:03:00 -03:00
parent a6e87c546d
commit 336dd16d05

View File

@ -45,25 +45,29 @@
//! that make working with it more succinct.
//!
//! ```
//! // The `is_ok` and `is_err` methods do what they say.
//! let good_result: Result<i32, i32> = Ok(10);
//! let bad_result: Result<i32, i32> = Err(10);
//!
//! // The `is_ok` and `is_err` methods do what they say.
//! assert!(good_result.is_ok() && !good_result.is_err());
//! assert!(bad_result.is_err() && !bad_result.is_ok());
//!
//! // `map` consumes the `Result` and produces another.
//! // `map` and `map_err` consume the `Result` and produces another.
//! let good_result: Result<i32, i32> = good_result.map(|i| i + 1);
//! let bad_result: Result<i32, i32> = bad_result.map(|i| i - 1);
//! let bad_result: Result<i32, i32> = bad_result.map_err(|i| i - 1);
//! assert_eq!(good_result, Ok(11));
//! assert_eq!(bad_result, Err(9));
//!
//! // Use `and_then` to continue the computation.
//! let good_result: Result<bool, i32> = good_result.and_then(|i| Ok(i == 11));
//! assert_eq!(good_result, Ok(true));
//!
//! // Use `or_else` to handle the error.
//! let bad_result: Result<i32, i32> = bad_result.or_else(|i| Ok(i + 20));
//! assert_eq!(bad_result, Ok(29));
//!
//! // Consume the result and return the contents with `unwrap`.
//! let final_awesome_result = good_result.unwrap();
//! assert_eq!(final_awesome_result)
//! ```
//!
//! # Results must be used