use core::fmt;
#[derive(Clone, Copy, Debug, PartialEq, Eq)]
pub struct InvalidRadix(pub(super) u32);
impl fmt::Display for InvalidRadix {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
write!(f, "The radix {} is not in the range 2..=(1 << 16)", self.0)
}
}
#[cfg(feature = "std")]
impl std::error::Error for InvalidRadix {}
#[derive(Clone, Copy, Debug, PartialEq, Eq)]
pub enum NumeralStringError {
InvalidForRadix(u32),
TooLong {
ns_len: usize,
max_len: usize,
},
TooShort {
ns_len: usize,
min_len: usize,
},
}
impl fmt::Display for NumeralStringError {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
match self {
NumeralStringError::InvalidForRadix(radix) => {
write!(f, "The given numeral string is invalid for radix {}", radix)
}
NumeralStringError::TooLong { ns_len, max_len } => write!(
f,
"The given numeral string is too long for FF1 ({} > {})",
ns_len, max_len,
),
NumeralStringError::TooShort { ns_len, min_len } => write!(
f,
"The given numeral string is too short for FF1 ({} < {})",
ns_len, min_len,
),
}
}
}
#[cfg(feature = "std")]
impl std::error::Error for NumeralStringError {}