Minor improvements to message events (#177)

This commit is contained in:
kozabrada123 2023-08-07 12:15:23 +00:00 committed by GitHub
parent a51d524f46
commit 6d5a1ad295
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 50 additions and 34 deletions

View File

@ -8,6 +8,8 @@ use crate::types::{
use super::WebSocketEvent; use super::WebSocketEvent;
#[derive(Debug, Deserialize, Serialize, Default, Clone)] #[derive(Debug, Deserialize, Serialize, Default, Clone)]
/// # Reference
/// See <https://discord.com/developers/docs/topics/gateway-events#typing-start>
pub struct TypingStartEvent { pub struct TypingStartEvent {
pub channel_id: Snowflake, pub channel_id: Snowflake,
pub guild_id: Option<Snowflake>, pub guild_id: Option<Snowflake>,
@ -22,89 +24,103 @@ impl WebSocketEvent for TypingStartEvent {}
/// See <https://discord.com/developers/docs/topics/gateway-events#message-create> /// See <https://discord.com/developers/docs/topics/gateway-events#message-create>
pub struct MessageCreate { pub struct MessageCreate {
#[serde(flatten)] #[serde(flatten)]
message: Message, pub message: Message,
guild_id: Option<Snowflake>, pub guild_id: Option<Snowflake>,
member: Option<GuildMember>, pub member: Option<GuildMember>,
mentions: Option<Vec<MessageCreateUser>>, pub mentions: Option<Vec<MessageCreateUser>>,
} }
#[derive(Debug, Serialize, Deserialize, Default, Clone)] #[derive(Debug, Serialize, Deserialize, Default, Clone)]
/// See <https://discord.com/developers/docs/topics/gateway-events#message-create-message-create-extra-fields> /// See <https://discord.com/developers/docs/topics/gateway-events#message-create-message-create-extra-fields>
pub struct MessageCreateUser { pub struct MessageCreateUser {
#[serde(flatten)] #[serde(flatten)]
user: PublicUser, pub user: PublicUser,
member: Option<GuildMember>, pub member: Option<GuildMember>,
} }
impl WebSocketEvent for MessageCreate {} impl WebSocketEvent for MessageCreate {}
#[derive(Debug, Serialize, Deserialize, Default, Clone)] #[derive(Debug, Serialize, Deserialize, Default, Clone)]
/// # Reference
/// See <https://discord.com/developers/docs/topics/gateway-events#message-update>
pub struct MessageUpdate { pub struct MessageUpdate {
#[serde(flatten)] #[serde(flatten)]
message: Message, pub message: Message,
guild_id: Option<Snowflake>, pub guild_id: Option<Snowflake>,
member: Option<GuildMember>, pub member: Option<GuildMember>,
mentions: Option<Vec<MessageCreateUser>>, pub mentions: Option<Vec<MessageCreateUser>>,
} }
impl WebSocketEvent for MessageUpdate {} impl WebSocketEvent for MessageUpdate {}
#[derive(Debug, Serialize, Deserialize, Default, Clone)] #[derive(Debug, Serialize, Deserialize, Default, Clone)]
/// # Reference
/// See <https://discord.com/developers/docs/topics/gateway-events#message-delete>
pub struct MessageDelete { pub struct MessageDelete {
id: Snowflake, pub id: Snowflake,
channel_id: Snowflake, pub channel_id: Snowflake,
guild_id: Option<Snowflake>, pub guild_id: Option<Snowflake>,
} }
impl WebSocketEvent for MessageDelete {} impl WebSocketEvent for MessageDelete {}
#[derive(Debug, Serialize, Deserialize, Default, Clone)] #[derive(Debug, Serialize, Deserialize, Default, Clone)]
/// # Reference
/// See <https://discord.com/developers/docs/topics/gateway-events#message-delete-bulk>
pub struct MessageDeleteBulk { pub struct MessageDeleteBulk {
ids: Vec<Snowflake>, pub ids: Vec<Snowflake>,
channel_id: Snowflake, pub channel_id: Snowflake,
guild_id: Option<Snowflake>, pub guild_id: Option<Snowflake>,
} }
impl WebSocketEvent for MessageDeleteBulk {} impl WebSocketEvent for MessageDeleteBulk {}
#[derive(Debug, Serialize, Deserialize, Default, Clone)] #[derive(Debug, Serialize, Deserialize, Default, Clone)]
/// # Reference
/// See <https://discord.com/developers/docs/topics/gateway-events#message-reaction-add>
pub struct MessageReactionAdd { pub struct MessageReactionAdd {
user_id: Snowflake, pub user_id: Snowflake,
channel_id: Snowflake, pub channel_id: Snowflake,
message_id: Snowflake, pub message_id: Snowflake,
guild_id: Option<Snowflake>, pub guild_id: Option<Snowflake>,
member: Option<GuildMember>, pub member: Option<GuildMember>,
emoji: Emoji, pub emoji: Emoji,
} }
impl WebSocketEvent for MessageReactionAdd {} impl WebSocketEvent for MessageReactionAdd {}
#[derive(Debug, Serialize, Deserialize, Default, Clone)] #[derive(Debug, Serialize, Deserialize, Default, Clone)]
/// # Reference
/// See <https://discord.com/developers/docs/topics/gateway-events#message-reaction-remove>
pub struct MessageReactionRemove { pub struct MessageReactionRemove {
user_id: Snowflake, pub user_id: Snowflake,
channel_id: Snowflake, pub channel_id: Snowflake,
message_id: Snowflake, pub message_id: Snowflake,
guild_id: Option<Snowflake>, pub guild_id: Option<Snowflake>,
emoji: Emoji, pub emoji: Emoji,
} }
impl WebSocketEvent for MessageReactionRemove {} impl WebSocketEvent for MessageReactionRemove {}
#[derive(Debug, Serialize, Deserialize, Default, Clone)] #[derive(Debug, Serialize, Deserialize, Default, Clone)]
/// # Reference
/// See <https://discord.com/developers/docs/topics/gateway-events#message-reaction-remove-all>
pub struct MessageReactionRemoveAll { pub struct MessageReactionRemoveAll {
channel_id: Snowflake, pub channel_id: Snowflake,
message_id: Snowflake, pub message_id: Snowflake,
guild_id: Option<Snowflake>, pub guild_id: Option<Snowflake>,
} }
impl WebSocketEvent for MessageReactionRemoveAll {} impl WebSocketEvent for MessageReactionRemoveAll {}
#[derive(Debug, Serialize, Deserialize, Default, Clone)] #[derive(Debug, Serialize, Deserialize, Default, Clone)]
/// # Reference
/// See <https://discord.com/developers/docs/topics/gateway-events#message-reaction-remove-emoji>
pub struct MessageReactionRemoveEmoji { pub struct MessageReactionRemoveEmoji {
channel_id: Snowflake, pub channel_id: Snowflake,
message_id: Snowflake, pub message_id: Snowflake,
guild_id: Option<Snowflake>, pub guild_id: Option<Snowflake>,
emoji: Emoji, pub emoji: Emoji,
} }
impl WebSocketEvent for MessageReactionRemoveEmoji {} impl WebSocketEvent for MessageReactionRemoveEmoji {}