pub enum Status {
ElementAdded,
ElementChanged,
ElementRemoved,
ElementEffective,
}
impl Status {
pub fn from_string(status: &str) -> anyhow::Result<Self> {
match status {
"Element added" => Ok(Self::ElementAdded),
"Element changed" => Ok(Self::ElementChanged),
"Element removed" => Ok(Self::ElementRemoved),
"Element effective" => Ok(Self::ElementEffective),
_ => Err(anyhow::anyhow!("Invalid status value")),
}
}
#[must_use]
pub const fn to_int(&self) -> i64 {
match *self {
Self::ElementAdded => 0,
Self::ElementEffective => 1,
Self::ElementChanged => 2,
Self::ElementRemoved => 3,
}
}
}