#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
pub enum Zone {
FrPar1,
FrPar2,
FrPar3,
NlAms1,
NlAms2,
NlAms3,
PlWaw1,
PlWaw2,
PlWaw3,
ItMil1,
}
impl Zone {
const ALL: [Zone; 10] = [
Zone::FrPar1,
Zone::FrPar2,
Zone::FrPar3,
Zone::NlAms1,
Zone::NlAms2,
Zone::NlAms3,
Zone::PlWaw1,
Zone::PlWaw2,
Zone::PlWaw3,
Zone::ItMil1,
];
pub fn iter() -> impl Iterator<Item = Zone> {
Zone::ALL.into_iter()
}
}
impl AsRef<str> for Zone {
fn as_ref(&self) -> &str {
match self {
Zone::FrPar1 => "fr-par-1",
Zone::FrPar2 => "fr-par-2",
Zone::FrPar3 => "fr-par-3",
Zone::NlAms1 => "nl-ams-1",
Zone::NlAms2 => "nl-ams-2",
Zone::NlAms3 => "nl-ams-3",
Zone::PlWaw1 => "pl-waw-1",
Zone::PlWaw2 => "pl-waw-2",
Zone::PlWaw3 => "pl-waw-3",
Zone::ItMil1 => "it-mil-1",
}
}
}
impl std::fmt::Display for Zone {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
f.write_str(self.as_ref())
}
}