use std::fmt;
#[derive(Debug, Clone, PartialEq)]
pub struct ValidationError {
pub rule_name: String,
pub missing_keys: Vec<String>,
}
impl ValidationError {
pub(crate) fn new(rule_name: &str, missing_keys: Vec<String>) -> Self {
Self {
rule_name: rule_name.to_owned(),
missing_keys,
}
}
}
impl fmt::Display for ValidationError {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
write!(
f,
"rule '{}' validation failed: missing context keys: [{}]",
self.rule_name,
self.missing_keys.join(", ")
)
}
}
impl std::error::Error for ValidationError {}