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 {}