Documentation
use anyhow::Error;
use criterion::{criterion_group, criterion_main, Criterion};
use rand::Rng;
use rust_tmpl::add;

fn criterion_benchmark(c: &mut Criterion) {
  let mut rng = rand::thread_rng();

  macro_rules! run {
    ($name:ident $func:expr) => {
      c.bench_function(stringify!($name), $func);
    };
  }

  run!(
    add | b | {
      b.iter(|| {
        add(rng.gen(), rng.gen());
        Ok::<_, Error>(())
      })
    }
  );
}

criterion_group!(benches, criterion_benchmark);
criterion_main!(benches);