use strum::{Display, EnumIter, EnumString, IntoStaticStr};
#[derive(Debug, Clone, Copy, PartialEq, Eq, Display, EnumString, EnumIter, IntoStaticStr)]
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
pub enum ACEvoStatus {
Off,
Replay,
Live,
Pause,
#[strum(disabled)]
Unknown(i32),
}
impl ACEvoStatus {
pub fn value(&self) -> i32 {
match self {
Self::Off => 0,
Self::Replay => 1,
Self::Live => 2,
Self::Pause => 3,
Self::Unknown(v) => *v,
}
}
}
impl From<i32> for ACEvoStatus {
fn from(value: i32) -> Self {
match value {
0 => Self::Off,
1 => Self::Replay,
2 => Self::Live,
3 => Self::Pause,
v => Self::Unknown(v),
}
}
}