advent/2021/src/main.rs
2021-12-28 15:14:08 -08:00

37 lines
785 B
Rust

use std::time::{Instant};
use color_eyre::eyre;
mod lib;
use lib::load;
mod day12;
fn main() -> eyre::Result<()> {
let data = load("data/12.txt")?;
let start = Instant::now();
let (one, two) = day12::run(&data)?;
let (dur, unit) = format_ns(start.elapsed().as_nanos());
let precision = 2.0 - dur.log10().floor();
println!(
"One: {0}\nTwo: {1}\nCompleted in {2:.4$}{3}",
one, two, dur, unit, precision as usize
);
Ok(())
}
fn format_ns(ns: u128) -> (f64, &'static str) {
const UNITS: [&str; 4] = ["ns", "us", "ms", "s"];
let mut display_n = ns as f64; //
let mut unit_idx = 0;
while display_n > 1000.0 && unit_idx < 4 {
display_n /= 1000.0;
unit_idx += 1
}
(display_n, UNITS[unit_idx])
}