#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub struct ParsePatternError {
pub token_index: usize,
pub kind: ParseErrorKind,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum ParseErrorKind {
Empty,
InvalidLength,
InvalidHexDigit,
}
impl core::fmt::Display for ParsePatternError {
fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
match self.kind {
ParseErrorKind::Empty => write!(f, "pattern string contained no tokens"),
ParseErrorKind::InvalidLength => {
write!(
f,
"token #{} must be two hex digits or `?` / `??`",
self.token_index
)
}
ParseErrorKind::InvalidHexDigit => {
write!(f, "token #{} contains a non-hex digit", self.token_index)
}
}
}
}
#[cfg(feature = "std")]
impl std::error::Error for ParsePatternError {}