Crate tuple_map [] [src]

This library provides 'map' methods to Tuple.

Example

extern crate tuple_map;
use tuple_map::*;
fn main() {
    let (x, y) = (3, 4);
    let (x, y) = (x, y).map(|a| a + 5);
    assert_eq!(x, 8);
    assert_eq!(y, 9);

    let v = (3, 4, 5, 6).fold(vec![], |mut v, x| {
        if x % 3 == 0 {
            v.push(x);
        }
        v
    });
    assert_eq!(v, vec![3, 6]);

    assert!((3, 3, 3).same());

    assert_eq!((3, 4, 5).nth(1), Some(4));

    assert_eq!((3, 4, 5).add((1, 2, 3)), (4, 6, 8));

    let a = (1, 2, 3);
    let b = ("a", "b", "c");
    assert_eq!(
        a.zipf(b, |x, y| format!("{}{}", x, y)),
        ("1a", "2b", "3c").map(|x| x.to_owned())
    );

    assert_eq!(a.sum(), 6);

    assert_eq!(a.tmax(), 3);
    assert_eq!(a.tmin(), 1);
}

Notes This library defines different trait depending on the length of tuple, like TupleMap1, TupleMap2,..., by macro, so same docs are generated for each trait.

Traits

TupleMap1
TupleMap2
TupleMap3
TupleMap4
TupleMap5
TupleMap6
TupleMap7
TupleMap8
TupleMap9
TupleMap10
TupleMap11
TupleMap12
TupleMap13
TupleMap14
TupleMap15
TupleMap16