Crate iter_flow

Source
Expand description

Extra iterator methods.

To extend Iterator with methods in this crate, import the Iterflow trait:

use iter_flow::Iterflow;

Now, new methods like and_then are available on all Result’s iterators:

let it = (0..4)
    .map(|n| if n == 0 { Err("invalid!") } else { Ok(n - 1) })
    .and_then(|n| if n > 0 { Ok(n - 1) } else { Err("illegal!") })
    .map_ok(|n| (n + 1) * 2)
    .flat_map_ok(|n| (0..n));

iter_flow::assert_equal(
    it,
    vec![
        Err("invalid!"),
        Err("illegal!"),
        Ok(0),
        Ok(1),
        Ok(0),
        Ok(1),
        Ok(2),
        Ok(3),
    ],
);

Modules§

structs
The concrete iterator types.

Traits§

Iterflow
An Iterator blanket implementation that provides extra adaptors and methods.

Functions§

assert_equal
Assert that two iterables produce equal sequences, with the same semantics as equal(a, b).