Skip to main content

pptx_parse/
error.rs

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}