serenity_additions/menu/
traits.rs

1use crate::error::Result;
2use serenity::client::Context;
3use serenity::http::Http;
4use serenity::{async_trait, model::prelude::*};
5
6#[async_trait]
7pub trait EventDrivenMessage: Send + Sync {
8    /// Returns if a message has been frozen and won't handle any further events
9    fn is_frozen(&self) -> bool {
10        false
11    }
12
13    /// Fired periodically
14    async fn update(&mut self, _http: &Http) -> Result<()> {
15        Ok(())
16    }
17
18    /// Fired when the message was deleted
19    async fn on_deleted(&mut self, _ctx: &Context) -> Result<()> {
20        Ok(())
21    }
22
23    /// Fired when a reaction was added to the message
24    async fn on_reaction_add(&mut self, _ctx: &Context, _reaction: Reaction) -> Result<()> {
25        Ok(())
26    }
27
28    /// Fired when a reaction was removed from the message
29    async fn on_reaction_remove(&mut self, _ctx: &Context, _reaction: Reaction) -> Result<()> {
30        Ok(())
31    }
32}