use std::fmt;
#[derive(Debug, Clone, PartialEq, Eq)]
pub enum Error {
DimensionMismatch {
expected: usize,
got: usize,
},
BadFormat,
VersionMismatch(u32),
Serialize(String),
Deserialize(String),
}
impl fmt::Display for Error {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
match self {
Error::DimensionMismatch { expected, got } => {
write!(f, "dimension mismatch: expected {expected}, got {got}")
}
Error::BadFormat => write!(f, "bad format: missing or invalid magic header"),
Error::VersionMismatch(v) => write!(f, "unsupported format version: {v}"),
Error::Serialize(msg) => write!(f, "serialize error: {msg}"),
Error::Deserialize(msg) => write!(f, "deserialize error: {msg}"),
}
}
}
impl std::error::Error for Error {}