use criterion::{black_box, criterion_group, criterion_main, Criterion};
#[inline]
fn mod3_const_array(index: usize) -> usize {
const MOD3: [usize; 3] = [1, 2, 0];
MOD3[index]
}
fn mod3_bench(c: &mut Criterion) {
let mut index = 0;
c.bench_function("mod3_const_array", |iter| {
iter.iter(|| index = black_box(mod3_const_array(black_box(index))))
});
black_box(index);
c.bench_function("mod3", |iter| {
iter.iter(|| {
index = black_box((index + 1) % 3);
})
});
black_box(index);
}
criterion_group!(benches_mod3, mod3_bench);
criterion_main!(benches_mod3);