#![allow(non_camel_case_types)]
#![allow(non_upper_case_globals)]
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
#[repr(i32)]
pub enum EChatRoomGroupAction {
    Default = 0,
    CreateRenameDeleteChannel = 1,
    Kick = 2,
    Ban = 3,
    Invite = 4,
    ChangeTaglineAvatarName = 5,
    Chat = 6,
    ViewHistory = 7,
    ChangeGroupRoles = 8,
    ChangeUserRoles = 9,
    MentionAll = 10,
    SetWatchingBroadcast = 11,
}

impl EChatRoomGroupAction {
    pub fn from_i32(val: i32) -> Option<Self> {
        match val {
            x if x == Self::Default as i32 => Some(Self::Default),
            x if x == Self::CreateRenameDeleteChannel as i32 => Some(Self::CreateRenameDeleteChannel),
            x if x == Self::Kick as i32 => Some(Self::Kick),
            x if x == Self::Ban as i32 => Some(Self::Ban),
            x if x == Self::Invite as i32 => Some(Self::Invite),
            x if x == Self::ChangeTaglineAvatarName as i32 => Some(Self::ChangeTaglineAvatarName),
            x if x == Self::Chat as i32 => Some(Self::Chat),
            x if x == Self::ViewHistory as i32 => Some(Self::ViewHistory),
            x if x == Self::ChangeGroupRoles as i32 => Some(Self::ChangeGroupRoles),
            x if x == Self::ChangeUserRoles as i32 => Some(Self::ChangeUserRoles),
            x if x == Self::MentionAll as i32 => Some(Self::MentionAll),
            x if x == Self::SetWatchingBroadcast as i32 => Some(Self::SetWatchingBroadcast),
            _ => None,
        }
    }
}
