twilight_cache_any_backend/model/
reaction.rs

1use twilight_model::{
2    channel::{Reaction, ReactionType},
3    id::{
4        marker::{ChannelMarker, GuildMarker, MessageMarker, UserMarker},
5        Id,
6    },
7};
8
9/// A cached reaction
10///
11/// It's the same as [`twilight_model::channel::Reaction`] except:
12///
13/// - `member` field is removed, as members are cached separately
14#[derive(Clone, Debug)]
15pub struct CachedReaction {
16    pub channel_id: Id<ChannelMarker>,
17    pub emoji: ReactionType,
18    pub guild_id: Option<Id<GuildMarker>>,
19    pub message_id: Id<MessageMarker>,
20    pub user_id: Id<UserMarker>,
21}
22
23impl From<&Reaction> for CachedReaction {
24    fn from(reaction: &Reaction) -> Self {
25        Self {
26            channel_id: reaction.channel_id,
27            emoji: reaction.emoji.clone(),
28            guild_id: reaction.guild_id,
29            message_id: reaction.message_id,
30            user_id: reaction.user_id,
31        }
32    }
33}