32 lines
777 B
Rust
32 lines
777 B
Rust
#![warn(clippy::all, clippy::pedantic)]
|
|
|
|
use day_5::part1;
|
|
use day_5::part2;
|
|
|
|
use error_stack::{Result, ResultExt};
|
|
use thiserror::Error;
|
|
|
|
#[cfg(feature = "dhat-heap")]
|
|
#[global_allocator]
|
|
static ALLOC: dhat::Alloc = dhat::Alloc;
|
|
|
|
#[derive(Debug, Error)]
|
|
enum Day5Error {
|
|
#[error("Part 1 failed")]
|
|
Part1Error,
|
|
#[error("Part 2 failed")]
|
|
Part2Error,
|
|
}
|
|
|
|
fn main() -> Result<(), Day5Error> {
|
|
#[cfg(feature = "dhat-heap")]
|
|
let _profiler = dhat::Profiler::new_heap();
|
|
|
|
let input = include_str!("./input.txt");
|
|
let part1_result = part1(input).change_context(Day5Error::Part1Error)?;
|
|
println!("part 1: {part1_result}");
|
|
let part2_result = part2(input).change_context(Day5Error::Part2Error)?;
|
|
println!("part 2: {part2_result}");
|
|
Ok(())
|
|
}
|