use thiserror::Error;
pub type ValidationResult<T> = std::result::Result<T, ValidationError>;
#[derive(Error, Debug)]
pub enum ValidationError {
#[error("Configuration error: {0}")]
Config(String),
#[error("Rule parsing error: {0}")]
RuleParsing(String),
#[error("Crucible error: {0}")]
Crucible(String),
#[error("IO error: {0}")]
Io(#[from] std::io::Error),
#[error("YAML error: {0}")]
Yaml(#[from] serde_yaml::Error),
#[error("JSON error: {0}")]
Json(#[from] serde_json::Error),
#[error("Smelt error: {0}")]
Smelt(#[from] smelt_core::SmeltError),
}