itertools 0.0.2

extra iterator adaptors, functions and macros
extern crate test;
extern crate itertools;

use itertools::Stride;


#[bench]
fn slice_iter(b: &mut test::Bencher)
{
    let xs = Vec::from_elem(20u, 20u);
    b.iter(|| for elt in xs.as_slice().iter() {
        test::black_box(elt);
    })
}

#[bench]
fn slice_iter_rev(b: &mut test::Bencher)
{
    let xs = Vec::from_elem(20u, 20u);
    b.iter(|| for elt in xs.as_slice().iter().rev() {
        test::black_box(elt);
    })
}

#[bench]
fn stride_iter(b: &mut test::Bencher)
{
    let xs = Vec::from_elem(20u, 20u);
    b.iter(|| for elt in Stride::from_slice(xs.as_slice(), 1) {
        test::black_box(elt);
    })
}

#[bench]
fn stride_iter_rev(b: &mut test::Bencher)
{
    let xs = Vec::from_elem(20u, 20u);
    b.iter(|| for elt in Stride::from_slice(xs.as_slice(), 1).rev() {
        test::black_box(elt);
    })
}