interleave 1.0.0

An arbitrary iterator interleaver for exhaustive consumption of iterators. Each iterator is guaranteed to be no more than a single next call behind any other iterator.
Documentation
#[macro_use(interleave)]
extern crate interleave;

use interleave::{IterList, MultiIter};

fn main() {
	let counters = [
		180, 277, 79, 250, 309, 15, 321, 211, 121, 181, 84, 35, 304, 127, 228, 8, 185, 271, 114, 247, 277, 113, 100,
		295, 266, 299, 297, 322, 87, 287, 164, 243, 120, 102, 281, 92, 214, 210, 206, 91, 228, 216, 159, 32, 173, 35, 81,
		74, 3, 126, 176, 73, 274, 285, 45, 187, 101, 274, 280, 323, 286, 167, 6, 323, 300, 307, 75, 242, 97, 125, 300,
		195, 54, 238, 42, 56, 159, 84, 4, 326, 12, 74, 9, 144, 305, 300, 205, 123, 311, 302, 65, 99, 230, 284, 273, 99,
		285, 292, 108, 180, 88,
	];
	let mut total = interleave!();
	for i in counters.windows(2) {
		total.push(Box::new((-i[0]..i[1])));
	}

	for i in total {
		println!("{:?}", i);
	}
}