#[derive(Debug, thiserror::Error)]
#[non_exhaustive]
pub enum AnamnesisError {
#[error("parse error: {reason}")]
Parse {
reason: String,
},
#[error("unsupported format `{format}`: {detail}")]
Unsupported {
format: String,
detail: String,
},
#[error(transparent)]
Io(#[from] std::io::Error),
}
impl From<safetensors::SafeTensorError> for AnamnesisError {
fn from(e: safetensors::SafeTensorError) -> Self {
Self::Parse {
reason: format!("failed to parse safetensors header: {e}"),
}
}
}
#[cfg(any(feature = "npz", feature = "pth"))]
impl From<zip::result::ZipError> for AnamnesisError {
fn from(e: zip::result::ZipError) -> Self {
Self::Parse {
reason: format!("failed to read ZIP archive: {e}"),
}
}
}
pub type Result<T> = std::result::Result<T, AnamnesisError>;