deep-flatten2 0.1.0

Useful utility for deep flattening nested Options and Result.
Documentation
  • Coverage
  • 50%
    2 out of 4 items documented0 out of 2 items with examples
  • Size
  • Source code size: 7 kB This is the summed size of all the files inside the crates.io package for this release.
  • Documentation size: 3.41 MB This is the summed size of all files generated by rustdoc for all configured targets
  • Ø build duration
  • this release: 14s Average build duration of successful builds.
  • all releases: 14s Average build duration of successful builds in releases after 2024-10-23.
  • Links
  • Homepage
  • doraemonkeys/deep-flatten2
    0 0 0
  • crates.io
  • Dependencies
  • Versions
  • Owners
  • doraemonkeys

deep-flatten2

A Rust utility crate for deep flattening nested Option and Result types.

Installation

cargo add deep-flatten2

Example

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(()));
}