#[derive(Debug, thiserror::Error)]
pub enum OsfError {
#[error("not a valid ZIP archive: {0}")]
InvalidZip(#[from] zip::result::ZipError),
#[error("document.xml not found in archive")]
MissingDocument,
#[error("IO error: {0}")]
Io(#[from] std::io::Error),
#[error("XML parse error: {0}")]
Xml(String),
#[error("not an OSF document")]
NotOsf,
}