#![allow(non_camel_case_types)]
#![allow(non_upper_case_globals)]
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
#[repr(i32)]
pub enum EChatEntryType {
    Invalid = 0,
    ChatMsg = 1,
    Typing = 2,
    InviteGame = 3,
    Emote = 4,
    LobbyGameStart = 5,
    LeftConversation = 6,
    Entered = 7,
    WasKicked = 8,
    WasBanned = 9,
    Disconnected = 10,
    HistoricalChat = 11,
    Reserved1 = 12,
    Reserved2 = 13,
    LinkBlocked = 14,
}

impl EChatEntryType {
    pub fn from_i32(val: i32) -> Option<Self> {
        match val {
            x if x == Self::Invalid as i32 => Some(Self::Invalid),
            x if x == Self::ChatMsg as i32 => Some(Self::ChatMsg),
            x if x == Self::Typing as i32 => Some(Self::Typing),
            x if x == Self::InviteGame as i32 => Some(Self::InviteGame),
            x if x == Self::Emote as i32 => Some(Self::Emote),
            x if x == Self::LobbyGameStart as i32 => Some(Self::LobbyGameStart),
            x if x == Self::LeftConversation as i32 => Some(Self::LeftConversation),
            x if x == Self::Entered as i32 => Some(Self::Entered),
            x if x == Self::WasKicked as i32 => Some(Self::WasKicked),
            x if x == Self::WasBanned as i32 => Some(Self::WasBanned),
            x if x == Self::Disconnected as i32 => Some(Self::Disconnected),
            x if x == Self::HistoricalChat as i32 => Some(Self::HistoricalChat),
            x if x == Self::Reserved1 as i32 => Some(Self::Reserved1),
            x if x == Self::Reserved2 as i32 => Some(Self::Reserved2),
            x if x == Self::LinkBlocked as i32 => Some(Self::LinkBlocked),
            _ => None,
        }
    }
}
