This commit is contained in:
Spectre 2024-12-02 23:14:39 +01:00
parent 294c0a8e62
commit e1ca0d5f61
76 changed files with 4607 additions and 204 deletions

11
src/input_data.rs Normal file
View file

@ -0,0 +1,11 @@
use std::{fs, io};
pub fn load_actual(year: usize, day: usize) -> io::Result<String> {
let path = format!("./data/{year}/day{:02}", day);
fs::read_to_string(path)
}
pub fn load_test(year: usize, day: usize) -> io::Result<String> {
let path = format!("./examples/{year}/day{:02}", day);
fs::read_to_string(path)
}

View file

@ -1,20 +1,50 @@
use shared::Solution;
mod solution;
use solution::solution;
use shared::load_actual;
mod input_data;
use input_data::load_actual;
use std::time::Instant;
use reqwest::blocking::Client;
use reqwest::header::COOKIE;
use std::{time::Instant, env};
fn main() {
let year = 2024;
let day = 2;
let Ok(data) = load_actual(year, day)
else { panic!("No Input Data"); };
let now = Instant::now();
let Ok(data) = load_actual(2023, 12)
else { panic!("No Input Data"); };
let part1 = solution(&data, year, day, 1).unwrap();
let result = aoc2023::day12::Day12.part_2(&data);
let elapsed1 = now.elapsed();
let elapsed = now.elapsed();
let now = Instant::now();
let part2 = solution(&data, year, day, 2).unwrap();
println!("{}", result);
let elapsed2 = now.elapsed();
println!("Part 1 result is {}, took {}ms", part1, elapsed1.as_millis());
println!("Part 2 result is {}, took {}ms", part2, elapsed2.as_millis());
println!("{:?}", elapsed);
}
fn fetch_data(year, day) -> Result<(), Box<dyn std::error::Error>> {
let url = format!("https://adventofcode.com/{year}/day/{day}/input");
let session_cookie = env::var("ADVENT_TOKEN")?;
let client = Client::new();
let response = client
.get(url)
.header(COOKIE, session_cookie)
.send()?;
let body = response.text()?;
println!("Response: {}", body);
Ok(())
}

10
src/solution.rs Normal file
View file

@ -0,0 +1,10 @@
use shared::Answer;
pub fn solution(input: &str, year: usize, day: usize, part: usize) -> Option<Answer> {
match year {
2023 => aoc2024::solution(input, day, part),
2024 => aoc2024::solution(input, day, part),
_ => None,
}
}