#![allow(non_camel_case_types)]
#![allow(non_upper_case_globals)]
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
#[repr(i32)]
pub enum EProtoClanEventType {
    OtherEvent = 1,
    GameEvent = 2,
    PartyEvent = 3,
    MeetingEvent = 4,
    SpecialCauseEvent = 5,
    MusicAndArtsEvent = 6,
    SportsEvent = 7,
    TripEvent = 8,
    ChatEvent = 9,
    GameReleaseEvent = 10,
    BroadcastEvent = 11,
    SmallUpdateEvent = 12,
    PreAnnounceMajorUpdateEvent = 13,
    MajorUpdateEvent = 14,
    DLCReleaseEvent = 15,
    FutureReleaseEvent = 16,
    ESportTournamentStreamEvent = 17,
    DevStreamEvent = 18,
    FamousStreamEvent = 19,
    GameSalesEvent = 20,
    GameItemSalesEvent = 21,
    InGameBonusXPEvent = 22,
    InGameLootEvent = 23,
    InGamePerksEvent = 24,
    InGameChallengeEvent = 25,
    InGameContestEvent = 26,
    IRLEvent = 27,
    NewsEvent = 28,
    BetaReleaseEvent = 29,
    InGameContentReleaseEvent = 30,
    FreeTrial = 31,
    SeasonRelease = 32,
    SeasonUpdate = 33,
    CrosspostEvent = 34,
    InGameEventGeneral = 35,
    CreatorHome = 36,
}

impl EProtoClanEventType {
    pub fn from_i32(val: i32) -> Option<Self> {
        match val {
            x if x == Self::OtherEvent as i32 => Some(Self::OtherEvent),
            x if x == Self::GameEvent as i32 => Some(Self::GameEvent),
            x if x == Self::PartyEvent as i32 => Some(Self::PartyEvent),
            x if x == Self::MeetingEvent as i32 => Some(Self::MeetingEvent),
            x if x == Self::SpecialCauseEvent as i32 => Some(Self::SpecialCauseEvent),
            x if x == Self::MusicAndArtsEvent as i32 => Some(Self::MusicAndArtsEvent),
            x if x == Self::SportsEvent as i32 => Some(Self::SportsEvent),
            x if x == Self::TripEvent as i32 => Some(Self::TripEvent),
            x if x == Self::ChatEvent as i32 => Some(Self::ChatEvent),
            x if x == Self::GameReleaseEvent as i32 => Some(Self::GameReleaseEvent),
            x if x == Self::BroadcastEvent as i32 => Some(Self::BroadcastEvent),
            x if x == Self::SmallUpdateEvent as i32 => Some(Self::SmallUpdateEvent),
            x if x == Self::PreAnnounceMajorUpdateEvent as i32 => Some(Self::PreAnnounceMajorUpdateEvent),
            x if x == Self::MajorUpdateEvent as i32 => Some(Self::MajorUpdateEvent),
            x if x == Self::DLCReleaseEvent as i32 => Some(Self::DLCReleaseEvent),
            x if x == Self::FutureReleaseEvent as i32 => Some(Self::FutureReleaseEvent),
            x if x == Self::ESportTournamentStreamEvent as i32 => Some(Self::ESportTournamentStreamEvent),
            x if x == Self::DevStreamEvent as i32 => Some(Self::DevStreamEvent),
            x if x == Self::FamousStreamEvent as i32 => Some(Self::FamousStreamEvent),
            x if x == Self::GameSalesEvent as i32 => Some(Self::GameSalesEvent),
            x if x == Self::GameItemSalesEvent as i32 => Some(Self::GameItemSalesEvent),
            x if x == Self::InGameBonusXPEvent as i32 => Some(Self::InGameBonusXPEvent),
            x if x == Self::InGameLootEvent as i32 => Some(Self::InGameLootEvent),
            x if x == Self::InGamePerksEvent as i32 => Some(Self::InGamePerksEvent),
            x if x == Self::InGameChallengeEvent as i32 => Some(Self::InGameChallengeEvent),
            x if x == Self::InGameContestEvent as i32 => Some(Self::InGameContestEvent),
            x if x == Self::IRLEvent as i32 => Some(Self::IRLEvent),
            x if x == Self::NewsEvent as i32 => Some(Self::NewsEvent),
            x if x == Self::BetaReleaseEvent as i32 => Some(Self::BetaReleaseEvent),
            x if x == Self::InGameContentReleaseEvent as i32 => Some(Self::InGameContentReleaseEvent),
            x if x == Self::FreeTrial as i32 => Some(Self::FreeTrial),
            x if x == Self::SeasonRelease as i32 => Some(Self::SeasonRelease),
            x if x == Self::SeasonUpdate as i32 => Some(Self::SeasonUpdate),
            x if x == Self::CrosspostEvent as i32 => Some(Self::CrosspostEvent),
            x if x == Self::InGameEventGeneral as i32 => Some(Self::InGameEventGeneral),
            x if x == Self::CreatorHome as i32 => Some(Self::CreatorHome),
            _ => None,
        }
    }
}
