use std::fmt;
#[derive(Debug, Clone, PartialEq, Eq)]
pub enum LangError {
UnexpectedChar(char),
InvalidNumberFormat(String),
ExpectedNumberAfterUnaryMinus,
InvalidNumber(String),
}
impl fmt::Display for LangError {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
match self {
Self::UnexpectedChar(c) => write!(f, "unexpected character: {c}"),
Self::InvalidNumberFormat(s) => write!(
f,
"invalid number format: {s} (commas must be proper thousand separators)"
),
Self::ExpectedNumberAfterUnaryMinus => f.write_str("expected number after unary minus"),
Self::InvalidNumber(s) => write!(f, "invalid number: {s}"),
}
}
}
impl std::error::Error for LangError {}