advent_of_utils_cli/error/
mod.rs

1mod database;
2mod input;
3mod loading;
4mod solution;
5
6pub use database::DatabaseError;
7pub use input::InputError;
8pub use loading::LoadingError;
9pub use solution::SolutionError;
10
11use thiserror::Error;
12
13#[derive(Error, Debug)]
14pub enum AocError {
15    #[error("Input error: {0}")]
16    Input(#[from] InputError),
17
18    #[error("Solution error: {0}")]
19    Solution(#[from] SolutionError),
20
21    #[error("Loading error: {0}")]
22    Loading(#[from] LoadingError),
23
24    #[error("Database error: {0}")]
25    Database(#[from] DatabaseError),
26
27    #[error("Invalid part number: {0}")]
28    InvalidPart(u8),
29
30    #[error("Invalid year {year}: {reason}")]
31    InvalidYear { year: i32, reason: String },
32
33    #[error("Invalid day {day} for year {year}: {reason}")]
34    InvalidDay { year: i32, day: u8, reason: String },
35}