Macro-ify benches and unify days list to one file

Also update README with new options.
This commit is contained in:
2025-12-03 01:22:09 -05:00
parent cdc0225ca8
commit 5433430628
5 changed files with 41 additions and 20 deletions

View File

@@ -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);