1use crate::member::GuildMember;
2use crate::reaction::ReactionEmoji;
3use crate::Snowflake;
4
5#[derive(Debug, Clone, serde::Deserialize, serde::Serialize)]
7pub struct VoiceStateUpdateEvent<'a> {
8 #[serde(default)]
9 pub guild_id: Option<Snowflake>,
10 pub channel_id: Option<Snowflake>,
11 pub user_id: Snowflake,
12 #[serde(default)]
13 pub member: Option<GuildMember<'a>>,
14 pub session_id: String,
15 pub deaf: bool,
16 pub mute: bool,
17 pub self_deaf: bool,
18 pub self_mute: bool,
19 #[serde(default)]
20 pub self_stream: bool,
21 pub self_video: bool,
22 pub suppress: bool,
23 #[serde(default)]
24 pub request_to_speak_timestamp: Option<String>,
25}
26
27#[derive(Debug, Clone, serde::Deserialize, serde::Serialize)]
29pub struct VoiceServerUpdateEvent {
30 pub token: String,
31 pub guild_id: Snowflake,
32 #[serde(default)]
33 pub endpoint: Option<String>,
34}
35
36#[derive(Debug, Clone, serde::Deserialize, serde::Serialize)]
38pub struct VoiceChannelEffectSendEvent<'a> {
39 pub channel_id: Snowflake,
40 pub guild_id: Snowflake,
41 pub user_id: Snowflake,
42 #[serde(default)]
43 pub emoji: Option<ReactionEmoji<'a>>,
44 #[serde(default)]
45 pub animation_type: Option<u8>,
46 #[serde(default)]
47 pub animation_id: Option<u64>,
48 #[serde(default)]
49 pub sound_id: Option<Snowflake>,
50 #[serde(default)]
51 pub sound_volume: Option<f64>,
52}