Crate tuple_combinator

Source
Expand description

A helper trait to improve the ergonomics when working with multiple Options. After importing TupleCombinator, you can treat a tuple of Options as one Option.

§Example

use tuple_combinator::TupleCombinator;

fn main() {
    let tuples = (Some(1), Some(2), Some(3));

    assert_eq!(tuples.map(|(a,b,c)| a + b + c), Some(6));
    assert_eq!(tuples.and_then(|(a,b,c)| Some(a + b - c)), Some(0));
    assert_eq!(tuples.transpose(), Some((1,2,3)));
    assert_eq!((Some(1), None).map(|(a, b): (i32, i32)| 100), None);
}

Traits§

TupleCombinator
The traits that provides helper functions for tuples. This trait implementation mirros most of the methods defined in Option.
TupleReducer
Reduce tuples of Options into results of various form, act in comparable to the iterators.