1use crate::Severity;
2
3#[derive(Debug, thiserror::Error)]
4pub enum GuardrailError {
5 #[error("Guardrail '{name}' failed: {reason}")]
6 ValidationFailed { name: String, reason: String, severity: Severity },
7
8 #[error("Multiple guardrails failed: {0:?}")]
9 MultipleFailures(Vec<GuardrailError>),
10
11 #[error("Schema validation error: {0}")]
12 Schema(String),
13
14 #[error("Regex error: {0}")]
15 Regex(#[from] regex::Error),
16
17 #[error("Internal error: {0}")]
18 Internal(String),
19}
20
21pub type Result<T> = std::result::Result<T, GuardrailError>;