#![allow(non_camel_case_types)]
#![allow(non_upper_case_globals)]
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
#[repr(i32)]
pub enum EAccountFlags {
    NormalUser = 0,
    PersonaNameSet = 1,
    Unbannable = 2,
    PasswordSet = 4,
    Support = 8,
    Admin = 16,
    Supervisor = 32,
    AppEditor = 64,
    HWIDSet = 128,
    PersonalQASet = 256,
    VacBeta = 512,
    Debug = 1024,
    Disabled = 2048,
    LimitedUser = 4096,
    LimitedUserForce = 8192,
    EmailValidated = 16384,
    MarketingTreatment = 32768,
    OGGInviteOptOut = 65536,
    ForcePasswordChange = 131072,
    ForceEmailVerification = 262144,
    LogonExtraSecurity = 524288,
    LogonExtraSecurityDisabled = 1048576,
    Steam2MigrationComplete = 2097152,
    NeedLogs = 4194304,
    Lockdown = 8388608,
    MasterAppEditor = 16777216,
    BannedFromWebAPI = 33554432,
    PartnerMember = 67108864,
    GlobalModerator = 134217728,
    ParentalSettings = 268435456,
    ThirdPartySupport = 536870912,
    NeedsSSANextSteamLogon = 1073741824,
}

impl EAccountFlags {
    pub fn from_i32(val: i32) -> Option<Self> {
        match val {
            x if x == Self::NormalUser as i32 => Some(Self::NormalUser),
            x if x == Self::PersonaNameSet as i32 => Some(Self::PersonaNameSet),
            x if x == Self::Unbannable as i32 => Some(Self::Unbannable),
            x if x == Self::PasswordSet as i32 => Some(Self::PasswordSet),
            x if x == Self::Support as i32 => Some(Self::Support),
            x if x == Self::Admin as i32 => Some(Self::Admin),
            x if x == Self::Supervisor as i32 => Some(Self::Supervisor),
            x if x == Self::AppEditor as i32 => Some(Self::AppEditor),
            x if x == Self::HWIDSet as i32 => Some(Self::HWIDSet),
            x if x == Self::PersonalQASet as i32 => Some(Self::PersonalQASet),
            x if x == Self::VacBeta as i32 => Some(Self::VacBeta),
            x if x == Self::Debug as i32 => Some(Self::Debug),
            x if x == Self::Disabled as i32 => Some(Self::Disabled),
            x if x == Self::LimitedUser as i32 => Some(Self::LimitedUser),
            x if x == Self::LimitedUserForce as i32 => Some(Self::LimitedUserForce),
            x if x == Self::EmailValidated as i32 => Some(Self::EmailValidated),
            x if x == Self::MarketingTreatment as i32 => Some(Self::MarketingTreatment),
            x if x == Self::OGGInviteOptOut as i32 => Some(Self::OGGInviteOptOut),
            x if x == Self::ForcePasswordChange as i32 => Some(Self::ForcePasswordChange),
            x if x == Self::ForceEmailVerification as i32 => Some(Self::ForceEmailVerification),
            x if x == Self::LogonExtraSecurity as i32 => Some(Self::LogonExtraSecurity),
            x if x == Self::LogonExtraSecurityDisabled as i32 => Some(Self::LogonExtraSecurityDisabled),
            x if x == Self::Steam2MigrationComplete as i32 => Some(Self::Steam2MigrationComplete),
            x if x == Self::NeedLogs as i32 => Some(Self::NeedLogs),
            x if x == Self::Lockdown as i32 => Some(Self::Lockdown),
            x if x == Self::MasterAppEditor as i32 => Some(Self::MasterAppEditor),
            x if x == Self::BannedFromWebAPI as i32 => Some(Self::BannedFromWebAPI),
            x if x == Self::PartnerMember as i32 => Some(Self::PartnerMember),
            x if x == Self::GlobalModerator as i32 => Some(Self::GlobalModerator),
            x if x == Self::ParentalSettings as i32 => Some(Self::ParentalSettings),
            x if x == Self::ThirdPartySupport as i32 => Some(Self::ThirdPartySupport),
            x if x == Self::NeedsSSANextSteamLogon as i32 => Some(Self::NeedsSSANextSteamLogon),
            _ => None,
        }
    }
}
