Skip to main content

graphitepdf_layout/
error.rs

1pub type Result<T> = std::result::Result<T, Error>;
2
3#[derive(Debug, thiserror::Error)]
4pub enum Error {
5    #[error(transparent)]
6    GraphitepdfErrors(#[from] graphitepdf_errors::GraphitePdfError),
7
8    #[error(transparent)]
9    Font(#[from] graphitepdf_font::Error),
10
11    #[error(transparent)]
12    Image(#[from] graphitepdf_image::Error),
13
14    #[error(transparent)]
15    Math(#[from] graphitepdf_math::Error),
16
17    #[error(transparent)]
18    Svg(#[from] graphitepdf_svg::Error),
19
20    #[error(transparent)]
21    Text(#[from] graphitepdf_textkit::Error),
22
23    #[error("layout document must contain at least one page")]
24    EmptyDocument,
25
26    #[error("layout page size must be positive, got {width}x{height}")]
27    InvalidPageSize { width: f32, height: f32 },
28
29    #[error("could not resolve intrinsic dimensions for {kind}")]
30    InvalidNaturalDimensions { kind: &'static str },
31
32    #[error("image source nodes require an explicit height until async asset loading is wired in")]
33    UnresolvedAssetDimensions { kind: &'static str },
34
35    #[error("SVG content is missing valid width and height information")]
36    InvalidSvgDimensions,
37
38    #[error("invalid dimension `{input}`")]
39    InvalidDimension { input: String },
40}