From ea432af97a87b8a3d673a1f40fe06cde4d84e146 Mon Sep 17 00:00:00 2001 From: acdenisSK Date: Wed, 28 Jun 2017 19:38:51 +0200 Subject: Merge branch "trait-based-event-handling" --- src/client/event_handler.rs | 77 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 77 insertions(+) create mode 100644 src/client/event_handler.rs (limited to 'src/client/event_handler.rs') diff --git a/src/client/event_handler.rs b/src/client/event_handler.rs new file mode 100644 index 0000000..b233b8a --- /dev/null +++ b/src/client/event_handler.rs @@ -0,0 +1,77 @@ +use serde_json::Value; +use std::collections::HashMap; +use std::sync::Arc; +use super::context::Context; +use ::model::event::*; +use ::model::*; + +#[cfg(feature="cache")] +use std::sync::RwLock; + +#[allow(type_complexity)] +pub trait EventHandler { + #[cfg(feature="cache")] + fn on_cached(&self, Context, Vec) {} + fn on_channel_create(&self, Context, Channel) {} + fn on_channel_delete(&self, Context, Channel) {} + fn on_channel_pins_update(&self, Context, ChannelPinsUpdateEvent) {} + fn on_channel_recipient_addition(&self, Context, ChannelId, User) {} + fn on_channel_recipient_removal(&self, Context, ChannelId, User) {} + #[cfg(feature="cache")] + fn on_channel_update(&self, Context, Option, Channel) {} + #[cfg(not(feature="cache"))] + fn on_channel_update(&self, Context, Channel) {} + fn on_guild_ban_addition(&self, Context, GuildId, User) {} + fn on_guild_ban_removal(&self, Context, GuildId, User) {} + fn on_guild_create(&self, Context, Guild) {} + #[cfg(feature="cache")] + fn on_guild_delete(&self, Context, PartialGuild, Option>>) {} + #[cfg(not(feature="cache"))] + fn on_guild_delete(&self, Context, PartialGuild) {} + fn on_guild_emojis_update(&self, Context, GuildId, HashMap) {} + fn on_guild_integrations_update(&self, Context, GuildId) {} + fn on_guild_member_addition(&self, Context, GuildId, Member) {} + #[cfg(feature="cache")] + fn on_guild_member_removal(&self, Context, GuildId, User, Option) {} + #[cfg(not(feature="cache"))] + fn on_guild_member_removal(&self, Context, GuildId, User) {} + #[cfg(feature="cache")] + fn on_guild_member_update(&self, Context, Option, Member) {} + #[cfg(not(feature="cache"))] + fn on_guild_member_update(&self, Context, GuildMemberUpdateEvent) {} + fn on_guild_members_chunk(&self, Context, GuildId, HashMap) {} + fn on_guild_role_create(&self, Context, GuildId, Role) {} + #[cfg(feature="cache")] + fn on_guild_role_delete(&self, Context, GuildId, RoleId, Option) {} + #[cfg(not(feature="cache"))] + fn on_guild_role_delete(&self, Context, GuildId, RoleId) {} + #[cfg(feature="cache")] + fn on_guild_role_update(&self, Context, GuildId, Option, Role) {} + #[cfg(not(feature="cache"))] + fn on_guild_role_update(&self, Context, GuildId, Role) {} + fn on_guild_unavailable(&self, Context, GuildId) {} + #[cfg(feature="cache")] + fn on_guild_update(&self, Context, Option>>, PartialGuild) {} + #[cfg(not(feature="cache"))] + fn on_guild_update(&self, Context, PartialGuild) {} + fn on_message(&self, Context, Message) {} + fn on_message_delete(&self, Context, ChannelId, MessageId) {} + fn on_message_delete_bulk(&self, Context, ChannelId, Vec) {} + fn on_reaction_add(&self, Context, Reaction) {} + fn on_reaction_remove(&self, Context, Reaction) {} + fn on_reaction_remove_all(&self, Context, ChannelId, MessageId) {} + fn on_message_update(&self, Context, MessageUpdateEvent) {} + fn on_presence_replace(&self, Context, Vec) {} + fn on_presence_update(&self, Context, PresenceUpdateEvent) {} + fn on_ready(&self, Context, Ready) {} + fn on_resume(&self, Context, ResumedEvent) {} + fn on_typing_start(&self, Context, TypingStartEvent) {} + fn on_unknown(&self, Context, String, Value) {} + #[cfg(feature="cache")] + fn on_user_update(&self, Context, CurrentUser, CurrentUser) {} + #[cfg(not(feature="cache"))] + fn on_user_update(&self, Context, CurrentUser) {} + fn on_voice_server_update(&self, Context, VoiceServerUpdateEvent) {} + fn on_voice_state_update(&self, Context, Option, VoiceState) {} + fn on_webhook_update(&self, Context, GuildId, ChannelId) {} +} -- cgit v1.2.3