#![allow(non_camel_case_types)]
#![allow(non_upper_case_globals)]
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
#[repr(i32)]
pub enum EStoreAppType {
    Game = 0,
    Demo = 1,
    Mod = 2,
    Movie = 3,
    DLC = 4,
    Guide = 5,
    Software = 6,
    Video = 7,
    Series = 8,
    Episode = 9,
    Hardware = 10,
    Music = 11,
    Beta = 12,
    Tool = 13,
    Advertising = 14,
}

impl EStoreAppType {
    pub fn from_i32(val: i32) -> Option<Self> {
        match val {
            x if x == Self::Game as i32 => Some(Self::Game),
            x if x == Self::Demo as i32 => Some(Self::Demo),
            x if x == Self::Mod as i32 => Some(Self::Mod),
            x if x == Self::Movie as i32 => Some(Self::Movie),
            x if x == Self::DLC as i32 => Some(Self::DLC),
            x if x == Self::Guide as i32 => Some(Self::Guide),
            x if x == Self::Software as i32 => Some(Self::Software),
            x if x == Self::Video as i32 => Some(Self::Video),
            x if x == Self::Series as i32 => Some(Self::Series),
            x if x == Self::Episode as i32 => Some(Self::Episode),
            x if x == Self::Hardware as i32 => Some(Self::Hardware),
            x if x == Self::Music as i32 => Some(Self::Music),
            x if x == Self::Beta as i32 => Some(Self::Beta),
            x if x == Self::Tool as i32 => Some(Self::Tool),
            x if x == Self::Advertising as i32 => Some(Self::Advertising),
            _ => None,
        }
    }
}
