Auto merge of #124959 - prorealize:update-result-documentation, r=joboet

Refactor examples and enhance documentation in result.rs

- Replaced `map` with `map_err` in the error handling example for correctness
- Reordered example code to improve readability and logical flow
- Added assertions to examples to demonstrate expected outcomes
This commit is contained in:
bors 2024-05-16 12:21:12 +00:00
commit 4a78c00e22

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 produce 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!(final_awesome_result)
//! ```
//!
//! # Results must be used