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}