Skip to main content

pdfkit/
error.rs

1use std::error::Error;
2use std::fmt;
3
4/// Result alias used by the PDFKit wrappers.
5pub type Result<T> = std::result::Result<T, PdfKitError>;
6
7/// Wraps `PDFKitError`.
8#[derive(Debug, Clone, PartialEq, Eq)]
9pub struct PdfKitError {
10    code: i32,
11    message: String,
12}
13
14impl PdfKitError {
15    pub(crate) fn new(code: i32, message: impl Into<String>) -> Self {
16        Self {
17            code,
18            message: message.into(),
19        }
20    }
21
22    /// Returns the PDFKit framework status code.
23    #[must_use]
24    pub fn code(&self) -> i32 {
25        self.code
26    }
27
28    /// Returns the PDFKit framework error message.
29    #[must_use]
30    pub fn message(&self) -> &str {
31        &self.message
32    }
33}
34
35impl fmt::Display for PdfKitError {
36    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
37        write!(f, "{} (status {})", self.message, self.code)
38    }
39}
40
41impl Error for PdfKitError {}