Skip to main content

chartml_core/
error.rs

1use thiserror::Error;
2
3#[derive(Debug, Clone, Error)]
4pub enum ChartError {
5    #[error("YAML parse error: {0}")]
6    YamlParse(String),
7
8    #[error("Invalid spec: {0}")]
9    InvalidSpec(String),
10
11    #[error("Unknown chart type: {0}")]
12    UnknownChartType(String),
13
14    #[error("Missing required field: {0}")]
15    MissingField(String),
16
17    #[error("Plugin error: {0}")]
18    PluginError(String),
19
20    #[error("Data error: {0}")]
21    DataError(String),
22
23    #[error("Render error: {0}")]
24    RenderError(String),
25}
26
27impl From<serde_yaml::Error> for ChartError {
28    fn from(err: serde_yaml::Error) -> Self {
29        ChartError::YamlParse(err.to_string())
30    }
31}