aoc/src/main.rs
2022-12-08 13:48:00 +01:00

61 lines
2.2 KiB
Rust

mod aoc2021;
mod aoc2022;
use std::fs;
struct Puzzle {
day: usize,
year: usize,
task_one: fn(&str) -> String,
task_two: fn(&str) -> String
}
impl Puzzle {
pub fn solve_and_print(&self) {
let file = format!("src/aoc{}/day{:02}/input.txt", self.year, self.day);
let input = fs::read_to_string(file).expect("Error on reading file.");
let task_one_result = (self.task_one)(&input);
let task_two_result = (self.task_two)(&input);
println!("AOC{} Day {:02} \t Task 1: {:15}\tTask 2: {}", self.year, self.day, task_one_result, task_two_result);
}
}
fn main() {
// AOC 2021
let mut puzzle = Puzzle { day: 1, year: 2021, task_one: aoc2021::day01::task_one, task_two: aoc2021::day01::task_two };
puzzle.solve_and_print();
puzzle = Puzzle { day: 2, year: 2021, task_one: aoc2021::day02::task_one, task_two: aoc2021::day02::task_two };
puzzle.solve_and_print();
puzzle = Puzzle { day: 3, year: 2021, task_one: aoc2021::day03::task_one, task_two: aoc2021::day03::task_two };
puzzle.solve_and_print();
puzzle = Puzzle { day: 4, year: 2021, task_one: aoc2021::day04::task_one, task_two: aoc2021::day04::task_two };
puzzle.solve_and_print();
// AOC 2022
puzzle = Puzzle { day: 1, year: 2022, task_one: aoc2022::day01::task_one, task_two: aoc2022::day01::task_two };
puzzle.solve_and_print();
puzzle = Puzzle { day: 2, year: 2022, task_one: aoc2022::day02::task_one, task_two: aoc2022::day02::task_two };
puzzle.solve_and_print();
puzzle = Puzzle { day: 3, year: 2022, task_one: aoc2022::day03::task_one, task_two: aoc2022::day03::task_two };
puzzle.solve_and_print();
puzzle = Puzzle { day: 4, year: 2022, task_one: aoc2022::day04::task_one, task_two: aoc2022::day04::task_two };
puzzle.solve_and_print();
puzzle = Puzzle { day: 5, year: 2022, task_one: aoc2022::day05::task_one, task_two: aoc2022::day05::task_two };
puzzle.solve_and_print();
puzzle = Puzzle { day: 6, year: 2022, task_one: aoc2022::day06::task_one, task_two: aoc2022::day06::task_two };
puzzle.solve_and_print();
puzzle = Puzzle { day: 7, year: 2022, task_one: aoc2022::day07::task_one, task_two: aoc2022::day07::task_two };
puzzle.solve_and_print();
}