1use std::fmt;
2
3#[derive(Debug, Clone, PartialEq, Eq)]
4pub enum Error {
5 InvalidTarget(String),
6 InvalidCondition(String),
7 InvalidPolicy(String),
8 MissingAttribute(String),
9}
10
11impl fmt::Display for Error {
12 fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
13 match self {
14 Error::InvalidTarget(msg) => write!(f, "invalid target: {msg}"),
15 Error::InvalidCondition(msg) => write!(f, "invalid condition: {msg}"),
16 Error::InvalidPolicy(msg) => write!(f, "invalid policy: {msg}"),
17 Error::MissingAttribute(msg) => write!(f, "missing attribute: {msg}"),
18 }
19 }
20}
21
22impl std::error::Error for Error {}
23
24pub type Result<T> = std::result::Result<T, Error>;