use thiserror::Error;
#[derive(Debug, Error, PartialEq, Eq)]
pub enum PptxError {
#[error("PPTX container error: {0}")]
Container(String),
#[error("not a PowerPoint presentation: {message}")]
NotAPresentation { message: String },
#[error("missing required PPTX part {0}")]
MissingPart(String),
#[error("malformed XML in {part} at byte {offset}: {message}")]
MalformedXml {
part: String,
offset: u64,
message: String,
},
#[error("unsafe XML in {part}: {kind}")]
UnsafeXml { part: String, kind: &'static str },
#[error("PPTX resource limit {kind} exceeded in {part}")]
ResourceLimit { part: String, kind: &'static str },
#[error("invalid relationship target {target} from {source_part}")]
InvalidRelationship { source_part: String, target: String },
#[error("slide {part} has {count} layout relationships; expected one")]
InvalidSlideLayoutRelationships { part: String, count: usize },
#[error("could not write {part}: {message}")]
Write { part: String, message: String },
}