1
0

Compare commits

...

2 Commits

Author SHA1 Message Date
283c49a7d8 main runner with more meaningless output 2024-12-02 20:43:55 +01:00
26530738dc prepare next day 2024-12-02 20:13:48 +01:00
3 changed files with 66 additions and 7 deletions

35
src/day03.rs Normal file
View File

@@ -0,0 +1,35 @@
use std::fs::read_to_string;
pub fn day_main() {
let input = read_to_string("input/day03.txt").unwrap();
println!("part1: {}", part1(&input));
println!("part2: {}", part2(&input));
}
type RiddleResult = usize;
fn part1(input: &str) -> RiddleResult {
0
}
fn part2(_input: &str) -> RiddleResult {
0
}
#[cfg(test)]
mod test {
use super::{part1, part2};
const TEST_INPUT: &str = r"
";
#[test]
fn test1() {
assert_eq!(part1(TEST_INPUT), 0);
}
#[test]
fn test2() {
assert_eq!(part2(TEST_INPUT), 0);
}
}

View File

@@ -1,2 +1,3 @@
pub mod day01; pub mod day01;
pub mod day02; pub mod day02;
pub mod day03;

View File

@@ -1,12 +1,35 @@
use std::env::args; use std::{collections::HashMap, env::args};
use advent_of_rust_2024::{day01, day02}; use advent_of_rust_2024::*;
use itertools::Itertools;
fn main() { fn main() {
let mains: HashMap<u8, fn() -> ()> = HashMap::from_iter([
(1, day01::day_main as fn()),
(2, day02::day_main),
(3, day03::day_main),
]);
let day: Option<u8> = args().nth(1).and_then(|a| a.parse().ok()); let day: Option<u8> = args().nth(1).and_then(|a| a.parse().ok());
match day { let Some(day) = day else {
Some(1) => day01::day_main(), mains
Some(2) => day02::day_main(), .iter()
_ => println!("hi"), .sorted_by_key(|entry| entry.0)
} .for_each(|(d, f)| {
println!("Day {d}:");
f();
});
return;
};
let Some(f) = mains.get(&day) else {
println!("No implementation for day {day}.");
println!(
"Pick one of {}",
mains.keys().map(|k| k.to_string()).join(", ")
);
return;
};
println!("Day {day}:");
f();
} }