use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Serialize, Deserialize, Default)]
#[serde(from = "u32", into = "u32")]
#[repr(u32)]
pub enum ChannelType {
#[default]
Text = 0,
Voice = 2,
Category = 4,
Live = 10005,
Application = 10006,
Forum = 10007,
Unknown(u32),
}
wire_enum!(ChannelType, u32, Unknown, {
Text = 0,
Voice = 2,
Category = 4,
Live = 10005,
Application = 10006,
Forum = 10007,
});
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Serialize, Deserialize, Default)]
#[serde(from = "u32", into = "u32")]
#[repr(u32)]
pub enum ChannelSubType {
#[default]
Chat = 0,
Notice = 1,
Guide = 2,
TeamGame = 3,
Unknown(u32),
}
wire_enum!(ChannelSubType, u32, Unknown, {
Chat = 0,
Notice = 1,
Guide = 2,
TeamGame = 3,
});
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Serialize, Deserialize, Default)]
#[serde(from = "u8", into = "u8")]
#[repr(u8)]
pub enum PrivateType {
#[default]
Public = 0,
OnlyAdmin = 1,
AdminAndMember = 2,
Unknown(u8),
}
wire_enum!(PrivateType, u8, Unknown, {
Public = 0,
OnlyAdmin = 1,
AdminAndMember = 2,
});
impl From<PrivateType> for u32 {
fn from(private_type: PrivateType) -> Self {
match private_type {
PrivateType::Public => 0,
PrivateType::OnlyAdmin => 1,
PrivateType::AdminAndMember => 2,
PrivateType::Unknown(value) => value as u32,
}
}
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Serialize, Deserialize, Default)]
#[serde(from = "u8", into = "u8")]
#[repr(u8)]
pub enum SpeakPermission {
#[default]
Invalid = 0,
Public = 1,
AdminAndMember = 2,
Unknown(u8),
}
wire_enum!(SpeakPermission, u8, Unknown, {
Invalid = 0,
Public = 1,
AdminAndMember = 2,
});
impl From<SpeakPermission> for u32 {
fn from(speak_permission: SpeakPermission) -> Self {
match speak_permission {
SpeakPermission::Invalid => 0,
SpeakPermission::Public => 1,
SpeakPermission::AdminAndMember => 2,
SpeakPermission::Unknown(value) => value as u32,
}
}
}