use core::fmt;
#[derive(Clone, Copy, Debug, PartialEq, Eq)]
pub enum IntegerError {
DivisionByZero,
ArithmeticOverflow { operation: &'static str },
}
impl fmt::Display for IntegerError {
fn fmt(&self, formatter: &mut fmt::Formatter<'_>) -> fmt::Result {
match self {
Self::DivisionByZero => {
formatter.write_str("integer operation requires a non-zero divisor")
},
Self::ArithmeticOverflow { operation } => {
write!(
formatter,
"integer operation overflowed while computing {operation}"
)
},
}
}
}
impl std::error::Error for IntegerError {}