use thiserror::Error;
#[derive(Error, Debug)]
pub enum EvalError {
#[error("Configuration error: {0}")]
Config(String),
#[error("IO error: {0}")]
Io(#[from] std::io::Error),
#[error("TOML parse error: {0}")]
TomlParse(#[from] toml::de::Error),
#[error("JSON error: {0}")]
Json(#[from] serde_json::Error),
#[error("SwarmApp error: {0}")]
SwarmApp(String),
#[error("Session error: {0}")]
Session(String),
#[error("Assertion failed: {name} - expected {expected}, got {actual}")]
AssertionFailed {
name: String,
expected: String,
actual: String,
},
#[error("Statistics error: {0}")]
Statistics(String),
#[error("Orchestrator error: {0}")]
Orchestrator(#[from] swarm_engine_core::error::SwarmError),
}
pub type Result<T> = std::result::Result<T, EvalError>;