deep-flatten 0.1.0

Useful utility for deep flattening nested Options.
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
use deep_flatten::OptionDeepFlatten;

#[test]
fn test_flatten() {
    let x = Some(Some(Some(())));
    let flattened: Option<()> = x.deep_flatten();

    assert_eq!(flattened, Some(()));
}

#[test]
fn test_very_deep_flatten() {
    let x = Some(Some(Some(Some(Some(Some(Some(Some(Some(())))))))));
    let flattened = x.deep_flatten();

    assert_eq!(flattened, Some(()));
}