pdf_lib_rs/core/
errors.rs1use 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>;