Files
adventofcode/2021/src/lib.rs
2021-11-28 17:12:26 +01:00

91 lines
2.1 KiB
Rust

use std::io::Read;
type Solution = fn(&mut dyn Read) -> String;
mod day01;
mod day02;
mod day03;
mod day04;
mod day05;
mod day06;
mod day07;
mod day08;
mod day09;
mod day10;
mod day11;
mod day12;
mod day13;
mod day14;
mod day15;
mod day16;
mod day17;
mod day18;
mod day19;
mod day20;
mod day21;
mod day22;
mod day23;
mod day24;
mod day25;
pub fn get_implementation(day: usize, part2: bool) -> Solution {
if !part2 {
match day {
1 => day01::part1,
2 => day02::part1,
3 => day03::part1,
4 => day04::part1,
5 => day05::part1,
6 => day06::part1,
7 => day07::part1,
8 => day08::part1,
9 => day09::part1,
10 => day10::part1,
11 => day11::part1,
12 => day12::part1,
13 => day13::part1,
14 => day14::part1,
15 => day15::part1,
16 => day16::part1,
17 => day17::part1,
18 => day18::part1,
19 => day19::part1,
20 => day20::part1,
21 => day21::part1,
22 => day22::part1,
23 => day23::part1,
24 => day24::part1,
25 => day25::part1,
_ => panic!("Unsupported part one for day {}", day),
}
} else {
match day {
1 => day01::part2,
2 => day02::part2,
3 => day03::part2,
4 => day04::part2,
5 => day05::part2,
6 => day06::part2,
7 => day07::part2,
8 => day08::part2,
9 => day09::part2,
10 => day10::part2,
11 => day11::part2,
12 => day12::part2,
13 => day13::part2,
14 => day14::part2,
15 => day15::part2,
16 => day16::part2,
17 => day17::part2,
18 => day18::part2,
19 => day19::part2,
20 => day20::part2,
21 => day21::part2,
22 => day22::part2,
23 => day23::part2,
24 => day24::part2,
_ => panic!("Unsupported part two for day {}", day),
}
}
}