1use std::fmt::Display;
2
3#[derive(Debug)]
4pub enum DateErrors {
9 InvalidDay {
11 day: u8,
13 },
14 InvalidMonth {
16 month: u8,
18 },
19 FormatDateError,
21 InvalidYear(u64),
23
24 InvalidParsing(String),
26}
27
28impl Display for DateErrors {
29 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
30 match self {
31 Self::InvalidDay { day } => write!(f, "Invalid Day: provided {}", day),
32 Self::InvalidMonth { month } => write!(f, "Invalid Month: provided {}", month),
33 Self::FormatDateError => write!(f, "Format not recognized"),
34 Self::InvalidYear(year) => write!(f, "Invalif year provided: {}", year),
35 Self::InvalidParsing(s) => write!(f, "Cannot parse {}: not a number...", s),
36 }
37 }
38}
39
40impl std::error::Error for DateErrors {}