use std::fmt;
#[derive(Debug, Clone, PartialEq, Eq)]
pub enum Error {
InvalidTarget(String),
InvalidCondition(String),
InvalidPolicy(String),
MissingAttribute(String),
}
impl fmt::Display for Error {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
match self {
Error::InvalidTarget(msg) => write!(f, "invalid target: {msg}"),
Error::InvalidCondition(msg) => write!(f, "invalid condition: {msg}"),
Error::InvalidPolicy(msg) => write!(f, "invalid policy: {msg}"),
Error::MissingAttribute(msg) => write!(f, "missing attribute: {msg}"),
}
}
}
impl std::error::Error for Error {}
pub type Result<T> = std::result::Result<T, Error>;