1use thiserror::Error;
2
3#[derive(Debug, Error, PartialEq, Eq)]
4pub enum PptxError {
5 #[error("PPTX container error: {0}")]
6 Container(String),
7 #[error("not a PowerPoint presentation: {message}")]
8 NotAPresentation { message: String },
9 #[error("missing required PPTX part {0}")]
10 MissingPart(String),
11 #[error("malformed XML in {part} at byte {offset}: {message}")]
12 MalformedXml {
13 part: String,
14 offset: u64,
15 message: String,
16 },
17 #[error("unsafe XML in {part}: {kind}")]
18 UnsafeXml { part: String, kind: &'static str },
19 #[error("PPTX resource limit {kind} exceeded in {part}")]
20 ResourceLimit { part: String, kind: &'static str },
21 #[error("invalid relationship target {target} from {source_part}")]
22 InvalidRelationship { source_part: String, target: String },
23 #[error("slide {part} has {count} layout relationships; expected one")]
24 InvalidSlideLayoutRelationships { part: String, count: usize },
25 #[error("could not write {part}: {message}")]
26 Write { part: String, message: String },
27}