120 lines
3.7 KiB
Rust
120 lines
3.7 KiB
Rust
use shared::{Solution, Answer};
|
|
|
|
pub use crate::day01::Day01;
|
|
pub use crate::day02::Day02;
|
|
pub use crate::day03::Day03;
|
|
pub use crate::day04::Day04;
|
|
pub use crate::day05::Day05;
|
|
pub use crate::day06::Day06;
|
|
pub use crate::day07::Day07;
|
|
pub use crate::day08::Day08;
|
|
pub use crate::day09::Day09;
|
|
pub use crate::day10::Day10;
|
|
pub use crate::day11::Day11;
|
|
pub use crate::day12::Day12;
|
|
pub use crate::day13::Day13;
|
|
pub use crate::day14::Day14;
|
|
pub use crate::day15::Day15;
|
|
pub use crate::day16::Day16;
|
|
pub use crate::day17::Day17;
|
|
pub use crate::day18::Day18;
|
|
pub use crate::day19::Day19;
|
|
pub use crate::day20::Day20;
|
|
pub use crate::day21::Day21;
|
|
pub use crate::day22::Day22;
|
|
pub use crate::day23::Day23;
|
|
pub use crate::day24::Day24;
|
|
pub use crate::day25::Day25;
|
|
|
|
pub fn solution(input: &str, day: usize, part: usize) -> Option<Answer> {
|
|
match part {
|
|
1 => match day {
|
|
1 => Some(Day01.part_1(input)),
|
|
2 => Some(Day02.part_1(input)),
|
|
3 => Some(Day03.part_1(input)),
|
|
4 => Some(Day04.part_1(input)),
|
|
5 => Some(Day05.part_1(input)),
|
|
6 => Some(Day06.part_1(input)),
|
|
7 => Some(Day07.part_1(input)),
|
|
8 => Some(Day08.part_1(input)),
|
|
9 => Some(Day09.part_1(input)),
|
|
10 => Some(Day10.part_1(input)),
|
|
11 => Some(Day11.part_1(input)),
|
|
12 => Some(Day12.part_1(input)),
|
|
13 => Some(Day13.part_1(input)),
|
|
14 => Some(Day14.part_1(input)),
|
|
15 => Some(Day15.part_1(input)),
|
|
16 => Some(Day16.part_1(input)),
|
|
17 => Some(Day17.part_1(input)),
|
|
18 => Some(Day18.part_1(input)),
|
|
19 => Some(Day19.part_1(input)),
|
|
20 => Some(Day20.part_1(input)),
|
|
21 => Some(Day21.part_1(input)),
|
|
22 => Some(Day22.part_1(input)),
|
|
23 => Some(Day23.part_1(input)),
|
|
24 => Some(Day24.part_1(input)),
|
|
25 => Some(Day25.part_1(input)),
|
|
_ => None
|
|
},
|
|
2 => match day {
|
|
1 => Some(Day01.part_2(input)),
|
|
2 => Some(Day02.part_2(input)),
|
|
3 => Some(Day03.part_2(input)),
|
|
4 => Some(Day04.part_2(input)),
|
|
5 => Some(Day05.part_2(input)),
|
|
6 => Some(Day06.part_2(input)),
|
|
7 => Some(Day07.part_2(input)),
|
|
8 => Some(Day08.part_2(input)),
|
|
9 => Some(Day09.part_2(input)),
|
|
10 => Some(Day10.part_2(input)),
|
|
11 => Some(Day11.part_2(input)),
|
|
12 => Some(Day12.part_2(input)),
|
|
13 => Some(Day13.part_2(input)),
|
|
14 => Some(Day14.part_2(input)),
|
|
15 => Some(Day15.part_2(input)),
|
|
16 => Some(Day16.part_2(input)),
|
|
17 => Some(Day17.part_2(input)),
|
|
18 => Some(Day18.part_2(input)),
|
|
19 => Some(Day19.part_2(input)),
|
|
20 => Some(Day20.part_2(input)),
|
|
21 => Some(Day21.part_2(input)),
|
|
22 => Some(Day22.part_2(input)),
|
|
23 => Some(Day23.part_2(input)),
|
|
24 => Some(Day24.part_2(input)),
|
|
25 => Some(Day25.part_2(input)),
|
|
_ => None
|
|
},
|
|
_ => None
|
|
}
|
|
}
|
|
|
|
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;
|
|
|
|
#[test]
|
|
fn examples() {
|
|
todo!()
|
|
}
|