#![allow(non_camel_case_types)]
#![allow(non_upper_case_globals)]
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
#[repr(i32)]
pub enum EBroadcastWatchLocation {
    Invalid = 0,
    SteamTV_Tab = 1,
    SteamTV_WatchParty = 2,
    Chat_Tab = 3,
    Chat_WatchParty = 4,
    CommunityPage = 5,
    StoreAppPage = 6,
    InGame = 7,
    BigPicture = 8,
    SalesPage = 9,
    CuratorPage = 10,
    DeveloperPage = 11,
    Chat_Friends = 12,
    SteamTV_Web = 13,
    DesktopUI_Overlay = 14,
    TrailerCarousel = 15,
}

impl EBroadcastWatchLocation {
    pub fn from_i32(val: i32) -> Option<Self> {
        match val {
            x if x == Self::Invalid as i32 => Some(Self::Invalid),
            x if x == Self::SteamTV_Tab as i32 => Some(Self::SteamTV_Tab),
            x if x == Self::SteamTV_WatchParty as i32 => Some(Self::SteamTV_WatchParty),
            x if x == Self::Chat_Tab as i32 => Some(Self::Chat_Tab),
            x if x == Self::Chat_WatchParty as i32 => Some(Self::Chat_WatchParty),
            x if x == Self::CommunityPage as i32 => Some(Self::CommunityPage),
            x if x == Self::StoreAppPage as i32 => Some(Self::StoreAppPage),
            x if x == Self::InGame as i32 => Some(Self::InGame),
            x if x == Self::BigPicture as i32 => Some(Self::BigPicture),
            x if x == Self::SalesPage as i32 => Some(Self::SalesPage),
            x if x == Self::CuratorPage as i32 => Some(Self::CuratorPage),
            x if x == Self::DeveloperPage as i32 => Some(Self::DeveloperPage),
            x if x == Self::Chat_Friends as i32 => Some(Self::Chat_Friends),
            x if x == Self::SteamTV_Web as i32 => Some(Self::SteamTV_Web),
            x if x == Self::DesktopUI_Overlay as i32 => Some(Self::DesktopUI_Overlay),
            x if x == Self::TrailerCarousel as i32 => Some(Self::TrailerCarousel),
            _ => None,
        }
    }
}
