use thiserror::Error;
#[derive(Debug, Clone, PartialEq, Eq, Error)]
#[non_exhaustive]
pub enum ParseError {
#[error("Insufficient bytes: expected {expected}, got {actual}")]
InsufficientBytes {
expected: usize,
actual: usize,
},
#[error("Invalid value: {0}")]
InvalidValue(String),
#[error("Unknown device type: 0x{0:02X}")]
UnknownDeviceType(u8),
}
impl ParseError {
#[must_use]
pub fn invalid_value(message: impl Into<String>) -> Self {
Self::InvalidValue(message.into())
}
}
pub type ParseResult<T> = core::result::Result<T, ParseError>;