Add Event and EventType enums

This commit is contained in:
bitfl0wer 2024-07-21 15:13:37 +02:00
parent 1285d702d7
commit 6e6f20e810
No known key found for this signature in database
GPG Key ID: 0ACD574FCF5226CF
1 changed files with 116 additions and 0 deletions

View File

@ -171,3 +171,119 @@ pub(crate) fn update_object(
}
*object.write().unwrap() = from_value(to_value(original_data).unwrap()).unwrap();
}
#[derive(
Debug, serde::Deserialize, serde::Serialize, Clone, PartialEq, PartialOrd, Eq, Ord, Copy,
)]
/// Enum representing all possible* event types that can be received from or sent to the gateway.
///
/// *: This list might not be exhaustive. If you notice an event type is missing,
/// please open a PR.
pub enum EventType {
Hello,
Ready,
Resumed,
InvalidSession,
ChannelCreate,
ChannelUpdate,
ChannelDelete,
ChannelPinsUpdate,
ThreadCreate,
ThreadUpdate,
ThreadDelete,
ThreadListSync,
ThreadMemberUpdate,
ThreadMembersUpdate,
GuildCreate,
GuildUpdate,
GuildDelete,
GuildBanAdd,
GuildBanRemove,
GuildEmojisUpdate,
GuildIntegrationsUpdate,
GuildMemberAdd,
GuildMemberRemove,
GuildMemberUpdate,
GuildMembersChunk,
GuildRoleCreate,
GuildRoleUpdate,
GuildRoleDelete,
IntegrationCreate,
IntegrationUpdate,
IntegrationDelete,
InteractionCreate,
InviteCreate,
InviteDelete,
MessageCreate,
MessageUpdate,
MessageDelete,
MessageDeleteBulk,
MessageReactionAdd,
MessageReactionRemove,
MessageReactionRemoveAll,
MessageReactionRemoveEmoji,
PresenceUpdate,
TypingStart,
UserUpdate,
VoiceStateUpdate,
VoiceServerUpdate,
WebhooksUpdate,
StageInstanceCreate,
StageInstanceUpdate,
StageInstanceDelete,
RequestMembers,
}
#[derive(Debug, Clone)]
/// Enum representing all possible* events that can be received from or sent to the gateway.
///
/// *: This list might not be exhaustive. If you notice an event is missing,
/// please open a PR.
pub enum Event {
Hello(GatewayHello),
Ready(GatewayReady),
Resumed(GatewayResume),
InvalidSession(GatewayInvalidSession),
ChannelCreate(ChannelCreate),
ChannelUpdate(ChannelUpdate),
ChannelDelete(ChannelDelete),
ChannelPinsUpdate(ChannelPinsUpdate),
ThreadCreate(ThreadCreate),
ThreadUpdate(ThreadUpdate),
ThreadDelete(ThreadDelete),
ThreadListSync(ThreadListSync),
ThreadMemberUpdate(ThreadMemberUpdate),
ThreadMembersUpdate(ThreadMembersUpdate),
GuildCreate(GuildCreate),
GuildUpdate(GuildUpdate),
GuildDelete(GuildDelete),
GuildBanAdd(GuildBanAdd),
GuildBanRemove(GuildBanRemove),
GuildEmojisUpdate(GuildEmojisUpdate),
GuildIntegrationsUpdate(GuildIntegrationsUpdate),
GuildMemberAdd(GuildMemberAdd),
GuildMemberRemove(GuildMemberRemove),
GuildMemberUpdate(GuildMemberUpdate),
GuildMembersChunk(GuildMembersChunk),
InteractionCreate(InteractionCreate),
InviteCreate(InviteCreate),
InviteDelete(InviteDelete),
MessageCreate(MessageCreate),
MessageUpdate(MessageUpdate),
MessageDelete(MessageDelete),
MessageDeleteBulk(MessageDeleteBulk),
MessageReactionAdd(MessageReactionAdd),
MessageReactionRemove(MessageReactionRemove),
MessageReactionRemoveAll(MessageReactionRemoveAll),
MessageReactionRemoveEmoji(MessageReactionRemoveEmoji),
PresenceUpdate(PresenceUpdate),
TypingStart(TypingStartEvent),
UserUpdate(UserUpdate),
VoiceStateUpdate(VoiceStateUpdate),
VoiceServerUpdate(VoiceServerUpdate),
WebhooksUpdate(WebhooksUpdate),
StageInstanceCreate(StageInstanceCreate),
StageInstanceUpdate(StageInstanceUpdate),
StageInstanceDelete(StageInstanceDelete),
RequestMembers(GatewayRequestGuildMembers),
}