#![allow(non_camel_case_types)]
#![allow(non_upper_case_globals)]
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
#[repr(i32)]
pub enum EOSBranch {
    Unknown = 0,
    Release = 1,
    ReleaseCandidate = 2,
    Beta = 3,
    BetaCandidate = 4,
    Preview = 5,
    PreviewCandidate = 6,
    Main = 7,
    Staging = 8,
}

impl EOSBranch {
    pub fn from_i32(val: i32) -> Option<Self> {
        match val {
            x if x == Self::Unknown as i32 => Some(Self::Unknown),
            x if x == Self::Release as i32 => Some(Self::Release),
            x if x == Self::ReleaseCandidate as i32 => Some(Self::ReleaseCandidate),
            x if x == Self::Beta as i32 => Some(Self::Beta),
            x if x == Self::BetaCandidate as i32 => Some(Self::BetaCandidate),
            x if x == Self::Preview as i32 => Some(Self::Preview),
            x if x == Self::PreviewCandidate as i32 => Some(Self::PreviewCandidate),
            x if x == Self::Main as i32 => Some(Self::Main),
            x if x == Self::Staging as i32 => Some(Self::Staging),
            _ => None,
        }
    }
}
