Macro-ify benches and unify days list to one file
Also update README with new options.
This commit is contained in:
@@ -1,16 +1,23 @@
|
||||
use aoc::day01;
|
||||
use aoc::day02;
|
||||
use criterion::{Criterion, criterion_group, criterion_main};
|
||||
|
||||
fn day01_benchmark(c: &mut Criterion) {
|
||||
c.bench_function("day01 part1", |b| b.iter(|| day01::part1(day01::INPUT)));
|
||||
c.bench_function("day01 part2", |b| b.iter(|| day01::part2(day01::INPUT)));
|
||||
macro_rules! bench_days {
|
||||
($($day_num:literal => $day_mod:ident),* $(,)?) => {
|
||||
$(
|
||||
use aoc::$day_mod;
|
||||
|
||||
fn $day_mod(c: &mut Criterion) {
|
||||
c.bench_function(concat!(stringify!($day_mod), " part1"), |b| {
|
||||
b.iter(|| $day_mod::part1($day_mod::INPUT))
|
||||
});
|
||||
c.bench_function(concat!(stringify!($day_mod), " part2"), |b| {
|
||||
b.iter(|| $day_mod::part2($day_mod::INPUT))
|
||||
});
|
||||
}
|
||||
)*
|
||||
|
||||
criterion_group!(benches, $($day_mod),*);
|
||||
criterion_main!(benches);
|
||||
};
|
||||
}
|
||||
|
||||
fn day02_benchmark(c: &mut Criterion) {
|
||||
c.bench_function("day02 part1", |b| b.iter(|| day02::part1(day02::INPUT)));
|
||||
c.bench_function("day02 part2", |b| b.iter(|| day02::part2(day02::INPUT)));
|
||||
}
|
||||
|
||||
criterion_group!(benches, day01_benchmark, day02_benchmark);
|
||||
criterion_main!(benches);
|
||||
aoc::all_days!(bench_days);
|
||||
|
||||
Reference in New Issue
Block a user