Skip to main content

clasp_rules/
error.rs

1//! Rules engine error types
2
3use thiserror::Error;
4
5/// Rules engine errors
6#[derive(Debug, Error)]
7pub enum RulesError {
8    /// Rule definition is invalid
9    #[error("invalid rule: {0}")]
10    InvalidRule(String),
11
12    /// Rule evaluation failed
13    #[error("evaluation error: {0}")]
14    EvaluationError(String),
15
16    /// Rule not found
17    #[error("rule not found: {0}")]
18    NotFound(String),
19
20    /// Loop detected (rule triggered itself)
21    #[error("loop detected: rule {0} triggered itself")]
22    LoopDetected(String),
23
24    /// Cooldown active
25    #[error("rule {0} is in cooldown")]
26    Cooldown(String),
27}
28
29/// Result type for rules operations
30pub type Result<T> = std::result::Result<T, RulesError>;