#![allow(non_camel_case_types)]
#![allow(non_upper_case_globals)]
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
#[repr(i32)]
pub enum EContentReportSubjectAction {
    Invalid = 0,
    Unresolved = 1,
    Sanctioned = 2,
    Acquitted = 3,
    Cancelled = 4,
    Updated = 5,
    Escalated = 6,
    Disputed = 7,
    SustainedOnDispute = 8,
    Locked = 9,
    Unlocked = 10,
    Deleted = 11,
    Warned = 12,
    BannedFromHub = 13,
    BannedFromCommunity = 14,
    TradeBanned = 15,
    MarkedAsSuspicious = 16,
    ResetContent = 17,
    EscalatedForCSAM = 18,
    EscalatedForTerrorism = 19,
    Claimed = 20,
    Released = 21,
    PrivateMessaged = 22,
}

impl EContentReportSubjectAction {
    pub fn from_i32(val: i32) -> Option<Self> {
        match val {
            x if x == Self::Invalid as i32 => Some(Self::Invalid),
            x if x == Self::Unresolved as i32 => Some(Self::Unresolved),
            x if x == Self::Sanctioned as i32 => Some(Self::Sanctioned),
            x if x == Self::Acquitted as i32 => Some(Self::Acquitted),
            x if x == Self::Cancelled as i32 => Some(Self::Cancelled),
            x if x == Self::Updated as i32 => Some(Self::Updated),
            x if x == Self::Escalated as i32 => Some(Self::Escalated),
            x if x == Self::Disputed as i32 => Some(Self::Disputed),
            x if x == Self::SustainedOnDispute as i32 => Some(Self::SustainedOnDispute),
            x if x == Self::Locked as i32 => Some(Self::Locked),
            x if x == Self::Unlocked as i32 => Some(Self::Unlocked),
            x if x == Self::Deleted as i32 => Some(Self::Deleted),
            x if x == Self::Warned as i32 => Some(Self::Warned),
            x if x == Self::BannedFromHub as i32 => Some(Self::BannedFromHub),
            x if x == Self::BannedFromCommunity as i32 => Some(Self::BannedFromCommunity),
            x if x == Self::TradeBanned as i32 => Some(Self::TradeBanned),
            x if x == Self::MarkedAsSuspicious as i32 => Some(Self::MarkedAsSuspicious),
            x if x == Self::ResetContent as i32 => Some(Self::ResetContent),
            x if x == Self::EscalatedForCSAM as i32 => Some(Self::EscalatedForCSAM),
            x if x == Self::EscalatedForTerrorism as i32 => Some(Self::EscalatedForTerrorism),
            x if x == Self::Claimed as i32 => Some(Self::Claimed),
            x if x == Self::Released as i32 => Some(Self::Released),
            x if x == Self::PrivateMessaged as i32 => Some(Self::PrivateMessaged),
            _ => None,
        }
    }
}
