Documentation
use diol::prelude::*;
use eyre::Result;

fn main() -> Result<()> {
    let bench = Bench::new(Config::from_args()?);
    bench.register("slice × 2", slice_times_two, [4, 8, 16, 128, 1024]);
    bench.run()?;
    Ok(())
}

fn slice_times_two(bencher: Bencher, len: usize) {
    let mut v = vec![0.0_f64; len];
    bencher.bench(|| {
        for x in &mut v {
            *x *= 2.0;
        }
        black_box(&mut v);
    });
}