use thiserror::Error;
#[derive(Error, Debug)]
pub enum MantaError {
#[error("IO error: {0}")]
IoError(#[from] std::io::Error),
#[error("Config error: {0}")]
ConfigError(#[from] config::ConfigError),
#[error("TOML edit error: {0}")]
TomlEditError(#[from] toml_edit::TomlError),
#[error("Serde error: {0}")]
SerdeError(#[from] serde_json::Error),
#[error("Network error: {0}")]
NetError(#[from] reqwest::Error),
#[error("YAML error: {0}")]
YamlError(#[from] serde_yaml::Error),
#[error("Not found: {0}")]
NotFound(String),
#[error("Missing field: {0}")]
MissingField(String),
#[error("JWT malformed: {0}")]
JwtMalformed(String),
#[error("Kafka error: {0}")]
KafkaError(String),
#[error("Invalid pattern: {0}")]
InvalidPattern(String),
#[error("Template render error: {0}")]
TemplateError(String),
#[error("{0}")]
Other(String),
}