#![allow(non_camel_case_types)]
#![allow(non_upper_case_globals)]
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
#[repr(i32)]
pub enum EContentReportResolution {
    Unresolved = 0,
    Acquitted = 1,
    Removed = 2,
    Relabelled = 3,
    Suspicious = 4,
    HarassmentStrike = 5,
    Purged = 6,
    DisconnectedFromApp = 7,
    SuspiciousIncludingUpvoters = 8,
    VisibilityChanged = 9,
    CountryRestrictionsChanged = 10,
    RemoveAndWarn = 11,
    RemoveAndBan = 12,
    RemoveAndKick = 13,
    MAX = 14,
}

impl EContentReportResolution {
    pub fn from_i32(val: i32) -> Option<Self> {
        match val {
            x if x == Self::Unresolved as i32 => Some(Self::Unresolved),
            x if x == Self::Acquitted as i32 => Some(Self::Acquitted),
            x if x == Self::Removed as i32 => Some(Self::Removed),
            x if x == Self::Relabelled as i32 => Some(Self::Relabelled),
            x if x == Self::Suspicious as i32 => Some(Self::Suspicious),
            x if x == Self::HarassmentStrike as i32 => Some(Self::HarassmentStrike),
            x if x == Self::Purged as i32 => Some(Self::Purged),
            x if x == Self::DisconnectedFromApp as i32 => Some(Self::DisconnectedFromApp),
            x if x == Self::SuspiciousIncludingUpvoters as i32 => Some(Self::SuspiciousIncludingUpvoters),
            x if x == Self::VisibilityChanged as i32 => Some(Self::VisibilityChanged),
            x if x == Self::CountryRestrictionsChanged as i32 => Some(Self::CountryRestrictionsChanged),
            x if x == Self::RemoveAndWarn as i32 => Some(Self::RemoveAndWarn),
            x if x == Self::RemoveAndBan as i32 => Some(Self::RemoveAndBan),
            x if x == Self::RemoveAndKick as i32 => Some(Self::RemoveAndKick),
            x if x == Self::MAX as i32 => Some(Self::MAX),
            _ => None,
        }
    }
}
