Skip to main content

pdf_lib_rs/core/
errors.rs

1use thiserror::Error;
2
3#[derive(Error, Debug)]
4pub enum PdfError {
5    #[error("This document is encrypted and cannot be processed")]
6    EncryptedPdf,
7
8    #[error("Invalid PDF date string: {0}")]
9    InvalidPdfDateString(String),
10
11    #[error("Method not implemented: {class_name}::{method_name}")]
12    MethodNotImplemented {
13        class_name: String,
14        method_name: String,
15    },
16
17    #[error("PDF array is not a rectangle (expected 4 elements, got {0})")]
18    PdfArrayIsNotRectangle(usize),
19
20    #[error("Missing PDF header")]
21    MissingPdfHeader,
22
23    #[error("Missing keyword: {0}")]
24    MissingKeyword(String),
25
26    #[error("Parser stalled at position {line}:{column} (offset {offset})")]
27    StalledParser {
28        line: usize,
29        column: usize,
30        offset: usize,
31    },
32
33    #[error("Cannot reparse: {parser} already called {method}")]
34    Reparse { parser: String, method: String },
35
36    #[error("Invalid object at position {line}:{column} (offset {offset})")]
37    InvalidObjectParsing {
38        line: usize,
39        column: usize,
40        offset: usize,
41    },
42
43    #[error("Unexpected object type")]
44    UnexpectedObjectType,
45
46    #[error("Page embedding mismatched context")]
47    PageEmbeddingMismatchedContext,
48}
49
50pub type Result<T> = std::result::Result<T, PdfError>;