| Crates.io | deep-flatten2 |
| lib.rs | deep-flatten2 |
| version | 0.1.0 |
| created_at | 2024-12-30 00:48:47.214618+00 |
| updated_at | 2024-12-30 00:48:47.214618+00 |
| description | Useful utility for deep flattening nested Options and Result. |
| homepage | https://github.com/doraemonkeys/deep-flatten2 |
| repository | https://github.com/doraemonkeys/deep-flatten2 |
| max_upload_size | |
| id | 1498688 |
| size | 7,494 |
A Rust utility crate for deep flattening nested Option and Result types.
cargo add deep-flatten2
use deep_flatten2::{OptionDeepFlatten, ResultDeepOk};
fn main() {
let x: Result<Result<i32, &str>, &str> = Ok(Ok(1));
let y: Result<Result<Result<i32, &str>, String>, bool> = Ok(Ok(Ok(1)));
assert_eq!(x.deep_ok(), Some(1));
assert_eq!(y.deep_ok(), Some(1));
let x = Some(Some(Some(Some(Some(Some(Some(Some(Some(())))))))));
let flattened = x.deep_flatten();
assert_eq!(flattened, Some(()));
}