scaleway-rs 0.2.7

A pure Rust scaleway API binding.
Documentation
#[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,
    ];

    /// Returns an iterator over every availability zone.
    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())
    }
}