extern crate test;
extern crate itertools;
use itertools::Stride;
use std::iter::repeat;
#[bench]
fn slice_iter(b: &mut test::Bencher)
{
let xs: Vec<_> = repeat(1i32).take(20).collect();
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<_> = repeat(1i32).take(20).collect();
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<_> = repeat(1i32).take(20).collect();
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<_> = repeat(1i32).take(20).collect();
b.iter(|| for elt in Stride::from_slice(xs.as_slice(), 1).rev() {
test::black_box(elt);
})
}