Advent of Code solutions
1use advent_core::{get_ydp_and_input, make_year, Selection, Year, DP, YDP};
2use macros::global_runner;
3
4global_runner!(2024);
5
6fn run_ydp(ydp: YDP, input: Option<String>) {
7 let dp = ydp.to_dp();
8
9 match ydp.year {
10 Selection::All => {
11 run_all_years(&dp, input);
12 }
13 Selection::Single(year) => {
14 run_year(year, dp, input.as_deref());
15 }
16 }
17}
18
19fn main() {
20 let args = std::env::args().skip(1).collect::<Vec<_>>();
21
22 let command = args.get(0);
23
24 match command {
25 Some(command) => match command.as_str() {
26 "new" => {
27 let year = args.get(1).expect("No year provided");
28 make_year(year);
29 }
30 "solve" | "run" => {
31 let (ydp, input) = get_ydp_and_input(args[1..].to_vec());
32 run_ydp(ydp, input);
33 }
34 _ => {
35 println!("Unknown command: {}", command);
36 println!("Available commands: new, solve");
37 }
38 },
39 None => {
40 println!("No command provided");
41 println!("Available commands: new, solve");
42 }
43 }
44}