#[derive(Debug, thiserror::Error)]
pub enum PolicyError {
#[error("io error: {0}")]
Io(#[from] std::io::Error),
#[error("toml parse error: {0}")]
Toml(#[from] toml::de::Error),
#[error("expression: {0}")]
ExprParse(String),
#[error("requirement {name:?}: {source}")]
RequirementExpression {
name: String,
#[source]
source: Box<PolicyError>,
},
#[error("override references unknown requirement {name:?}")]
UnknownRequirement {
name: String,
},
#[error("alias {canonical:?}: entry {entry:?} must be `log:claim-name`")]
InvalidAliasEntry {
canonical: String,
entry: String,
},
}
pub type Result<T, E = PolicyError> = std::result::Result<T, E>;