use libutils::report::Report;
use core::hint::black_box;
use criterion::{
criterion_group,
criterion_main,
Criterion,
Throughput
};
const ITERATIONS: u64 = 2u64.pow(12);
fn bench(criterion: &mut Criterion) -> () {
let mut group = criterion.benchmark_group("report");
group.throughput(Throughput::Elements(ITERATIONS));
group.bench_function("attach", |bencher| bencher.iter(attach));
group.finish();
}
fn attach() -> () {
let mut superior = Report::<&'static str>::new("superior");
for _ in 0..ITERATIONS {
black_box(superior.attach(black_box(Report::new("inferior").succeed(black_box(())))));
}
}
criterion_group!(benches, bench);
criterion_main!(benches);