Skip to main content

typst_batch/codegen/
error.rs

1//! Error types for codegen operations.
2
3use thiserror::Error;
4
5/// Error during JSON to Typst conversion.
6#[derive(Debug, Error)]
7pub enum ConvertError {
8    /// Missing required "func" field in JSON object.
9    #[error("missing 'func' field in JSON object")]
10    MissingFunc,
11
12    /// JSON is not an object.
13    #[error("expected JSON object, got {0}")]
14    NotObject(&'static str),
15
16    /// Unknown element type (no matching element function found).
17    #[error("unknown element: {0}")]
18    UnknownElement(String),
19
20    /// Missing required field.
21    #[error("missing required field: {0}")]
22    MissingField(&'static str),
23
24    /// Function call failed.
25    #[error("function call failed for '{func}': {reason}")]
26    CallFailed {
27        /// Function name.
28        func: String,
29        /// Error reason.
30        reason: String,
31    },
32
33    /// Value conversion failed.
34    #[error("failed to convert value")]
35    ValueConversion,
36
37    /// Invalid literal value for given type.
38    #[error("invalid {type_name} literal: '{value}'")]
39    InvalidLiteral {
40        /// Expected type name.
41        type_name: &'static str,
42        /// The invalid value string.
43        value: String,
44    },
45
46    /// Unknown type tag in `_typst_type` field.
47    #[error("unknown type tag: '{0}'")]
48    UnknownTypeTag(String),
49
50    /// Generic error with message.
51    #[error("{0}")]
52    Other(String),
53}