refluxer 0.1.0

Rust API wrapper for Fluxer
Documentation
use super::context::Context;
use crate::gateway::event::{
    ChannelPinsUpdatePayload, GuildBanAddPayload, GuildBanRemovePayload, GuildEmojisUpdatePayload,
    GuildMemberUpdatePayload, GuildRoleCreatePayload, GuildRoleDeletePayload,
    GuildRoleUpdatePayload, GuildStickersUpdatePayload, InviteCreatePayload, InviteDeletePayload,
    MessageDeleteBulkPayload, MessageReactionAddPayload, MessageReactionRemoveAllPayload,
    MessageReactionRemoveEmojiPayload, MessageReactionRemovePayload, WebhooksUpdatePayload,
};
use crate::model::channel::Channel;
use crate::model::guild::{Guild, Member};
use crate::model::id::{ChannelId, GuildId, MessageId, UserId};
use crate::model::message::Message;
use crate::model::user::User;
use async_trait::async_trait;

#[async_trait]
pub trait EventHandler: Send + Sync + 'static {
    async fn ready(&self, _ctx: Context, _user: User) {}
    async fn resumed(&self, _ctx: Context) {}
    async fn user_update(&self, _ctx: Context, _user: User) {}

    async fn message_create(&self, _ctx: Context, _message: Message) {}
    async fn message_update(&self, _ctx: Context, _message: Message) {}
    async fn message_delete(&self, _ctx: Context, _channel_id: ChannelId, _message_id: MessageId) {}
    async fn message_delete_bulk(&self, _ctx: Context, _payload: MessageDeleteBulkPayload) {}

    async fn message_reaction_add(&self, _ctx: Context, _payload: MessageReactionAddPayload) {}
    async fn message_reaction_remove(&self, _ctx: Context, _payload: MessageReactionRemovePayload) {
    }
    async fn message_reaction_remove_all(
        &self,
        _ctx: Context,
        _payload: MessageReactionRemoveAllPayload,
    ) {
    }
    async fn message_reaction_remove_emoji(
        &self,
        _ctx: Context,
        _payload: MessageReactionRemoveEmojiPayload,
    ) {
    }

    async fn guild_create(&self, _ctx: Context, _guild: Guild) {}
    async fn guild_update(&self, _ctx: Context, _guild: Guild) {}
    async fn guild_delete(&self, _ctx: Context, _guild_id: GuildId) {}

    async fn guild_member_add(&self, _ctx: Context, _guild_id: GuildId, _member: Member) {}
    async fn guild_member_update(&self, _ctx: Context, _payload: GuildMemberUpdatePayload) {}
    async fn guild_member_remove(&self, _ctx: Context, _guild_id: GuildId, _user: User) {}

    async fn guild_role_create(&self, _ctx: Context, _payload: GuildRoleCreatePayload) {}
    async fn guild_role_update(&self, _ctx: Context, _payload: GuildRoleUpdatePayload) {}
    async fn guild_role_delete(&self, _ctx: Context, _payload: GuildRoleDeletePayload) {}

    async fn guild_ban_add(&self, _ctx: Context, _payload: GuildBanAddPayload) {}
    async fn guild_ban_remove(&self, _ctx: Context, _payload: GuildBanRemovePayload) {}

    async fn channel_create(&self, _ctx: Context, _channel: Channel) {}
    async fn channel_update(&self, _ctx: Context, _channel: Channel) {}
    async fn channel_delete(&self, _ctx: Context, _channel: Channel) {}
    async fn channel_pins_update(&self, _ctx: Context, _payload: ChannelPinsUpdatePayload) {}

    async fn typing_start(&self, _ctx: Context, _channel_id: ChannelId, _user_id: UserId) {}

    async fn invite_create(&self, _ctx: Context, _payload: InviteCreatePayload) {}
    async fn invite_delete(&self, _ctx: Context, _payload: InviteDeletePayload) {}

    async fn webhooks_update(&self, _ctx: Context, _payload: WebhooksUpdatePayload) {}

    async fn guild_emojis_update(&self, _ctx: Context, _payload: GuildEmojisUpdatePayload) {}
    async fn guild_stickers_update(&self, _ctx: Context, _payload: GuildStickersUpdatePayload) {}
}