aocrust/template/src/lib.rs
2024-12-02 23:14:39 +01:00

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!()
}