#![allow(non_camel_case_types)]
#![allow(non_upper_case_globals)]
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
#[repr(i32)]
pub enum EDisplayStatus {
    Invalid = 0,
    Launching = 1,
    Uninstalling = 2,
    Installing = 3,
    Running = 4,
    Validating = 5,
    Updating = 6,
    Downloading = 7,
    Synchronizing = 8,
    ReadyToInstall = 9,
    ReadyToPreload = 10,
    ReadyToLaunch = 11,
    RegionRestricted = 12,
    PresaleOnly = 13,
    InvalidPlatform = 14,
    ParentalBlocked = 15,
    PreloadComplete = 16,
    BorrowerLocked = 17,
    UpdatePaused = 18,
    UpdateQueued = 19,
    UpdateRequired = 20,
    UpdateDisabled = 21,
    DownloadPaused = 22,
    DownloadQueued = 23,
    DownloadRequired = 24,
    DownloadDisabled = 25,
    LicensePending = 26,
    LicenseExpired = 27,
    AvailForFree = 28,
    AvailToBorrow = 29,
    AvailGuestPass = 30,
    Purchase = 31,
    Unavailable = 32,
    NotLaunchable = 33,
    CloudError = 34,
    CloudOutOfDate = 35,
    Terminating = 36,
    OwnerLocked = 37,
    DownloadFailed = 38,
    UpdateFailed = 39,
}

impl EDisplayStatus {
    pub fn from_i32(val: i32) -> Option<Self> {
        match val {
            x if x == Self::Invalid as i32 => Some(Self::Invalid),
            x if x == Self::Launching as i32 => Some(Self::Launching),
            x if x == Self::Uninstalling as i32 => Some(Self::Uninstalling),
            x if x == Self::Installing as i32 => Some(Self::Installing),
            x if x == Self::Running as i32 => Some(Self::Running),
            x if x == Self::Validating as i32 => Some(Self::Validating),
            x if x == Self::Updating as i32 => Some(Self::Updating),
            x if x == Self::Downloading as i32 => Some(Self::Downloading),
            x if x == Self::Synchronizing as i32 => Some(Self::Synchronizing),
            x if x == Self::ReadyToInstall as i32 => Some(Self::ReadyToInstall),
            x if x == Self::ReadyToPreload as i32 => Some(Self::ReadyToPreload),
            x if x == Self::ReadyToLaunch as i32 => Some(Self::ReadyToLaunch),
            x if x == Self::RegionRestricted as i32 => Some(Self::RegionRestricted),
            x if x == Self::PresaleOnly as i32 => Some(Self::PresaleOnly),
            x if x == Self::InvalidPlatform as i32 => Some(Self::InvalidPlatform),
            x if x == Self::ParentalBlocked as i32 => Some(Self::ParentalBlocked),
            x if x == Self::PreloadComplete as i32 => Some(Self::PreloadComplete),
            x if x == Self::BorrowerLocked as i32 => Some(Self::BorrowerLocked),
            x if x == Self::UpdatePaused as i32 => Some(Self::UpdatePaused),
            x if x == Self::UpdateQueued as i32 => Some(Self::UpdateQueued),
            x if x == Self::UpdateRequired as i32 => Some(Self::UpdateRequired),
            x if x == Self::UpdateDisabled as i32 => Some(Self::UpdateDisabled),
            x if x == Self::DownloadPaused as i32 => Some(Self::DownloadPaused),
            x if x == Self::DownloadQueued as i32 => Some(Self::DownloadQueued),
            x if x == Self::DownloadRequired as i32 => Some(Self::DownloadRequired),
            x if x == Self::DownloadDisabled as i32 => Some(Self::DownloadDisabled),
            x if x == Self::LicensePending as i32 => Some(Self::LicensePending),
            x if x == Self::LicenseExpired as i32 => Some(Self::LicenseExpired),
            x if x == Self::AvailForFree as i32 => Some(Self::AvailForFree),
            x if x == Self::AvailToBorrow as i32 => Some(Self::AvailToBorrow),
            x if x == Self::AvailGuestPass as i32 => Some(Self::AvailGuestPass),
            x if x == Self::Purchase as i32 => Some(Self::Purchase),
            x if x == Self::Unavailable as i32 => Some(Self::Unavailable),
            x if x == Self::NotLaunchable as i32 => Some(Self::NotLaunchable),
            x if x == Self::CloudError as i32 => Some(Self::CloudError),
            x if x == Self::CloudOutOfDate as i32 => Some(Self::CloudOutOfDate),
            x if x == Self::Terminating as i32 => Some(Self::Terminating),
            x if x == Self::OwnerLocked as i32 => Some(Self::OwnerLocked),
            x if x == Self::DownloadFailed as i32 => Some(Self::DownloadFailed),
            x if x == Self::UpdateFailed as i32 => Some(Self::UpdateFailed),
            _ => None,
        }
    }
}
