use thiserror::Error;
#[derive(Debug, Error)]
pub enum Error {
#[error("OPC package error: {0}")]
Opc(#[from] opc::Error),
#[error("XML error: {0}")]
Xml(#[from] xml_core::Error),
#[error("drawing error: {0}")]
Drawing(#[from] drawing::Error),
#[error("chart error: {0}")]
Chart(#[from] chart::Error),
#[error("drawing part '{0}' is missing from the package")]
MissingDrawingPart(String),
#[error("drawing relationship '{0}' is not declared in the drawing part's .rels")]
MissingDrawingRelationship(String),
#[error("part '{0}' referenced by a drawing is missing from the package")]
MissingDrawingReferencedPart(String),
#[error("the package has no main workbook part (missing officeDocument relationship)")]
MissingWorkbook,
#[error("'{0}' is not valid UTF-8: {1}")]
InvalidUtf8(String, std::str::Utf8Error),
#[error("sheet relationship '{0}' is not declared in xl/_rels/workbook.xml.rels")]
MissingSheetRelationship(String),
#[error("worksheet part '{0}' is missing from the package")]
MissingWorksheetPart(String),
}
pub type Result<T> = std::result::Result<T, Error>;