use core::fmt;
#[derive(Clone, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
pub enum Error<E> {
DecodeInvalidLen {
len: usize,
},
DecodeInvalidAscii {
byte: u8,
index: usize,
},
DecodeOverflow {
id: E,
},
}
impl<E: core::fmt::Debug> fmt::Display for Error<E> {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
match self {
Self::DecodeInvalidAscii { byte, index } => {
write!(f, "invalid ascii byte ({byte}) at index ({index})")
}
Self::DecodeInvalidLen { len } => write!(f, "invalid length: {len}"),
Self::DecodeOverflow { id } => write!(f, "decode overflow: {id:#?}"),
}
}
}
impl<E: core::fmt::Debug> core::error::Error for Error<E> {}