combin-iterator 0.2.2

Some usefull facilities for combining iterators
Documentation
#![feature(test)]
extern crate test;
use test::{Bencher, bench::black_box};

use combin_iterator::{altern, altern::VecAltern};

#[bench]
fn create_100000x2(b: &mut Bencher) {
    b.iter(||{
        black_box(altern!(0..100000, 0..100000));
    });
}


#[bench]
fn create_100000x4(b: &mut Bencher) {
    b.iter(||{
        black_box(altern!(0..100000, 0..100000, 0..100000, 0..100000));
    });
}

#[bench]
fn create_and_count_100000x2(b: &mut Bencher) {
    b.iter(||{
        let iter = altern!(0..100000, 0..100000);
        black_box(iter.count());
    });
}

#[bench]
fn create_and_count_100000x4(b: &mut Bencher) {
    b.iter(||{
        let iter = altern!(0..100000, 0..100000, 0..100000, 0..100000);
        black_box(iter.count());
    });
}


#[bench]
fn create_and_count_100000x8(b: &mut Bencher) {
    b.iter(||{
        let iter =  altern!(0..100000, 0..100000, 0..100000, 0..100000, 0..100000, 0..100000, 0..100000, 0..100000);
        black_box(iter.count());
    });
}

#[bench]
fn create_and_count_50000x16(b: &mut Bencher) {
    b.iter(||{
        let iter =  altern!(0..50000, 0..50000, 0..50000, 0..50000, 0..50000, 0..50000, 0..50000, 0..50000, 0..50000, 0..50000, 0..50000, 0..50000, 0..50000, 0..50000, 0..50000, 0..50000);
        black_box(iter.count());
    });
}

#[bench]
fn create_and_count_20000x32(b: &mut Bencher) {
    b.iter(||{
        let mut iter =  VecAltern::new();
        for _ in 0..32 {
            iter = iter.add_and(0..20000);
        }
        black_box(iter.count());
    });
}