use thiserror::Error;
#[derive(Debug, Error)]
pub enum AutonomicError {
#[error("rule evaluation failed: {0}")]
RuleEvaluation(String),
#[error("projection not found for session: {0}")]
ProjectionNotFound(String),
#[error("serialization error: {0}")]
Serialization(#[from] serde_json::Error),
#[error("event store error: {0}")]
EventStore(String),
#[error("configuration error: {0}")]
Config(String),
}
pub type AutonomicResult<T> = Result<T, AutonomicError>;