titanium_model/
voice.rs

1use crate::member::GuildMember;
2use crate::reaction::ReactionEmoji;
3use crate::Snowflake;
4
5/// Voice state update event.
6#[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/// Voice server update event.
28#[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/// Voice channel effect send event.
37#[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}