[][src]Crate tuple_combinator

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.


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



The traits that provides helper functions for tuples. This trait implementation mirros most of the methods defined in Option.


Reduce tuples of Options into results of various form, act in comparable to the iterators.