use std::fmt::format; use std::time::Instant; use day01::{part01a, part01b}; use day02::{part02a, part02b}; use day03::{part03a, part03b}; use std::fs::OpenOptions; use std::io::Write; use std::io::Result; fn main() { let mut file = OpenOptions::new() .write(true) // Open the file for writing .create(true) // Create the file if it doesn't exist .truncate(true) // Clear the file if it already exists .open("solution.md").expect("Cannot open or create file"); file.write_all(b"# Advent of code 2025\n```").expect("Cannot write to file"); let exercises: Vec<(&str, fn () -> u64)> = vec![ ("day01:A", part01a::solve), ("day01:B", part01b::solve), ("day02:A", part02a::solve), ("day02:B", part02b::solve), ("day03:A", part03a::solve), ("day03:B", part03b::solve), ]; let start: Instant = Instant::now(); exercises.iter().for_each(|(day, func)| { let day_start: Instant = Instant::now(); let solution = format!("{:7} => {:15} ({:6}us)\n", day, func(), day_start.elapsed().as_micros()); print!("{}", solution); file.write(solution.as_bytes()).expect("Cannot write to file"); }); let banner = " ----------\n"; let end_time = format!(" {:7}us\n", start.elapsed().as_micros()); print!("{}", banner); file.write(banner.as_bytes()).expect("Cannot write to file"); println!("{}", end_time); file.write(end_time.as_bytes()).expect("Cannot write to file"); file.write(b"```").expect("Cannot write to file"); }