#![feature(test)] extern crate test; use bitvec::prelude::*; use test::Bencher; const LEN: usize = 1 << 10; #[bench] fn iter_proxy(bench: &mut Bencher) { let a = bits![1; LEN]; bench.iter(|| a.iter().all(|b| *b)); } #[bench] fn iter_ref(bench: &mut Bencher) { let a = bits![1; LEN]; bench.iter(|| a.iter().by_refs().all(|b| *b)); } #[bench] fn iter_val(bench: &mut Bencher) { let a = bits![1; LEN]; bench.iter(|| a.iter().by_vals().all(|b| b)); } #[bench] fn iter_bools(bench: &mut Bencher) { let a = [true; LEN]; bench.iter(|| a.iter().copied().all(|b| b)); }