#![allow(non_camel_case_types)]
#![allow(non_upper_case_globals)]
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
#[repr(i32)]
pub enum EClientNotificationType {
    Invalid = 0,
    DownloadCompleted = 1,
    FriendInvite = 2,
    FriendInGame = 3,
    FriendOnline = 4,
    Achievement = 5,
    LowBattery = 6,
    SystemUpdate = 7,
    FriendMessage = 8,
    GroupChatMessage = 9,
    FriendInviteRollup = 10,
    FamilySharingStopPlaying = 12,
    Screenshot = 14,
    CloudSyncFailure = 15,
    CloudSyncConflict = 16,
    IncomingVoiceChat = 17,
    ClaimSteamDeckRewards = 18,
    GiftReceived = 19,
    ItemAnnouncement = 20,
    HardwareSurvey = 21,
    LowDiskSpace = 22,
    BatteryTemperature = 23,
    DockUnsupportedFirmware = 24,
    PeerContentUpload = 25,
    CannotReadControllerGuideButton = 26,
    Comment = 27,
    Wishlist = 28,
    TradeOffer = 29,
    AsyncGame = 30,
    General = 31,
    HelpRequest = 32,
    OverlaySplashScreen = 33,
    BroadcastAvailableToWatch = 34,
    TimedTrialRemaining = 35,
    LoginRefresh = 36,
    MajorSale = 37,
    TimerExpired = 38,
    ModeratorMsg = 39,
    SteamInputActionSetChanged = 40,
    RemoteClientConnection = 41,
    RemoteClientStartStream = 42,
    StreamingClientConnection = 43,
    FamilyInvite = 44,
    PlaytimeWarning = 45,
    FamilyPurchaseRequest = 46,
    FamilyPurchaseRequestResponse = 47,
    ParentalFeatureRequest = 48,
    ParentalPlaytimeRequest = 49,
    GameRecordingError = 50,
    ParentalFeatureResponse = 51,
    ParentalPlaytimeResponse = 52,
    RequestedGameAdded = 53,
    ClipDownloaded = 54,
    GameRecordingStart = 55,
    GameRecordingStop = 56,
    GameRecordingUserMarkerAdded = 57,
    GameRecordingInstantClip = 58,
    PlaytestInvite = 59,
    TradeReversal = 60,
    HardwareUpdateAvailable = 61,
}

impl EClientNotificationType {
    pub fn from_i32(val: i32) -> Option<Self> {
        match val {
            x if x == Self::Invalid as i32 => Some(Self::Invalid),
            x if x == Self::DownloadCompleted as i32 => Some(Self::DownloadCompleted),
            x if x == Self::FriendInvite as i32 => Some(Self::FriendInvite),
            x if x == Self::FriendInGame as i32 => Some(Self::FriendInGame),
            x if x == Self::FriendOnline as i32 => Some(Self::FriendOnline),
            x if x == Self::Achievement as i32 => Some(Self::Achievement),
            x if x == Self::LowBattery as i32 => Some(Self::LowBattery),
            x if x == Self::SystemUpdate as i32 => Some(Self::SystemUpdate),
            x if x == Self::FriendMessage as i32 => Some(Self::FriendMessage),
            x if x == Self::GroupChatMessage as i32 => Some(Self::GroupChatMessage),
            x if x == Self::FriendInviteRollup as i32 => Some(Self::FriendInviteRollup),
            x if x == Self::FamilySharingStopPlaying as i32 => Some(Self::FamilySharingStopPlaying),
            x if x == Self::Screenshot as i32 => Some(Self::Screenshot),
            x if x == Self::CloudSyncFailure as i32 => Some(Self::CloudSyncFailure),
            x if x == Self::CloudSyncConflict as i32 => Some(Self::CloudSyncConflict),
            x if x == Self::IncomingVoiceChat as i32 => Some(Self::IncomingVoiceChat),
            x if x == Self::ClaimSteamDeckRewards as i32 => Some(Self::ClaimSteamDeckRewards),
            x if x == Self::GiftReceived as i32 => Some(Self::GiftReceived),
            x if x == Self::ItemAnnouncement as i32 => Some(Self::ItemAnnouncement),
            x if x == Self::HardwareSurvey as i32 => Some(Self::HardwareSurvey),
            x if x == Self::LowDiskSpace as i32 => Some(Self::LowDiskSpace),
            x if x == Self::BatteryTemperature as i32 => Some(Self::BatteryTemperature),
            x if x == Self::DockUnsupportedFirmware as i32 => Some(Self::DockUnsupportedFirmware),
            x if x == Self::PeerContentUpload as i32 => Some(Self::PeerContentUpload),
            x if x == Self::CannotReadControllerGuideButton as i32 => Some(Self::CannotReadControllerGuideButton),
            x if x == Self::Comment as i32 => Some(Self::Comment),
            x if x == Self::Wishlist as i32 => Some(Self::Wishlist),
            x if x == Self::TradeOffer as i32 => Some(Self::TradeOffer),
            x if x == Self::AsyncGame as i32 => Some(Self::AsyncGame),
            x if x == Self::General as i32 => Some(Self::General),
            x if x == Self::HelpRequest as i32 => Some(Self::HelpRequest),
            x if x == Self::OverlaySplashScreen as i32 => Some(Self::OverlaySplashScreen),
            x if x == Self::BroadcastAvailableToWatch as i32 => Some(Self::BroadcastAvailableToWatch),
            x if x == Self::TimedTrialRemaining as i32 => Some(Self::TimedTrialRemaining),
            x if x == Self::LoginRefresh as i32 => Some(Self::LoginRefresh),
            x if x == Self::MajorSale as i32 => Some(Self::MajorSale),
            x if x == Self::TimerExpired as i32 => Some(Self::TimerExpired),
            x if x == Self::ModeratorMsg as i32 => Some(Self::ModeratorMsg),
            x if x == Self::SteamInputActionSetChanged as i32 => Some(Self::SteamInputActionSetChanged),
            x if x == Self::RemoteClientConnection as i32 => Some(Self::RemoteClientConnection),
            x if x == Self::RemoteClientStartStream as i32 => Some(Self::RemoteClientStartStream),
            x if x == Self::StreamingClientConnection as i32 => Some(Self::StreamingClientConnection),
            x if x == Self::FamilyInvite as i32 => Some(Self::FamilyInvite),
            x if x == Self::PlaytimeWarning as i32 => Some(Self::PlaytimeWarning),
            x if x == Self::FamilyPurchaseRequest as i32 => Some(Self::FamilyPurchaseRequest),
            x if x == Self::FamilyPurchaseRequestResponse as i32 => Some(Self::FamilyPurchaseRequestResponse),
            x if x == Self::ParentalFeatureRequest as i32 => Some(Self::ParentalFeatureRequest),
            x if x == Self::ParentalPlaytimeRequest as i32 => Some(Self::ParentalPlaytimeRequest),
            x if x == Self::GameRecordingError as i32 => Some(Self::GameRecordingError),
            x if x == Self::ParentalFeatureResponse as i32 => Some(Self::ParentalFeatureResponse),
            x if x == Self::ParentalPlaytimeResponse as i32 => Some(Self::ParentalPlaytimeResponse),
            x if x == Self::RequestedGameAdded as i32 => Some(Self::RequestedGameAdded),
            x if x == Self::ClipDownloaded as i32 => Some(Self::ClipDownloaded),
            x if x == Self::GameRecordingStart as i32 => Some(Self::GameRecordingStart),
            x if x == Self::GameRecordingStop as i32 => Some(Self::GameRecordingStop),
            x if x == Self::GameRecordingUserMarkerAdded as i32 => Some(Self::GameRecordingUserMarkerAdded),
            x if x == Self::GameRecordingInstantClip as i32 => Some(Self::GameRecordingInstantClip),
            x if x == Self::PlaytestInvite as i32 => Some(Self::PlaytestInvite),
            x if x == Self::TradeReversal as i32 => Some(Self::TradeReversal),
            x if x == Self::HardwareUpdateAvailable as i32 => Some(Self::HardwareUpdateAvailable),
            _ => None,
        }
    }
}
