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