traverse 0.0.12

Proof-of-concept trait for internal iterators called traversals.
Documentation
extern crate quickcheck;
extern crate traverse;

use traverse::Traversal;

#[test]
fn quickcheck_map() {
    fn add_one(x: &u32) -> u32 { *x + 1 }

    fn prop(vec: Vec<u32>) -> bool {
        let expected: Vec<_> = vec.iter().map(add_one).collect();
        let result: Vec<_> = vec.map(add_one).collect();
        expected == result
    }

    quickcheck::quickcheck(prop as fn(Vec<u32>) -> bool);
}

#[test]
fn quickcheck_filter() {
    fn is_even(x: & &u32) -> bool { **x % 2 == 0 }

    fn prop(vec: Vec<u32>) -> bool {
        let expected: Vec<&u32> = vec.iter().filter(is_even).collect();
        let result: Vec<&u32> = vec.filter(is_even).collect();
        expected == result
    }

    quickcheck::quickcheck(prop as fn(Vec<u32>) -> bool);
}