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 ACEvoCarLocation {
Unassigned,
Pitlane,
PitEntry,
PitExit,
Track,
#[strum(disabled)]
Unknown(i32),
}
impl ACEvoCarLocation {
pub fn value(&self) -> i32 {
match self {
Self::Unassigned => 0,
Self::Pitlane => 1,
Self::PitEntry => 2,
Self::PitExit => 3,
Self::Track => 4,
Self::Unknown(v) => *v,
}
}
}
impl From<i32> for ACEvoCarLocation {
fn from(value: i32) -> Self {
match value {
0 => Self::Unassigned,
1 => Self::Pitlane,
2 => Self::PitEntry,
3 => Self::PitExit,
4 => Self::Track,
v => Self::Unknown(v),
}
}
}