Skip to main content

pdf_objects/
error.rs

1use std::error::Error;
2use std::fmt::{Display, Formatter};
3
4#[derive(Debug, Clone, PartialEq, Eq)]
5pub enum PdfError {
6    Parse(String),
7    Corrupt(String),
8    Unsupported(String),
9    InvalidPageIndex(usize),
10    MissingObject(String),
11    UnsupportedOption(String),
12}
13
14pub type PdfResult<T> = Result<T, PdfError>;
15
16impl Display for PdfError {
17    fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
18        match self {
19            PdfError::Parse(message) => write!(f, "parse error: {message}"),
20            PdfError::Corrupt(message) => write!(f, "corrupt pdf: {message}"),
21            PdfError::Unsupported(message) => write!(f, "unsupported feature: {message}"),
22            PdfError::InvalidPageIndex(index) => write!(f, "invalid page index: {index}"),
23            PdfError::MissingObject(message) => write!(f, "missing object: {message}"),
24            PdfError::UnsupportedOption(message) => write!(f, "unsupported option: {message}"),
25        }
26    }
27}
28
29impl Error for PdfError {}