Files
AdventOfCode2025/src/main.rs
2025-12-04 01:54:02 +01:00

44 lines
1.6 KiB
Rust

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");
}