1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
use twilight_model::{
channel::{Reaction, ReactionType},
id::{
marker::{ChannelMarker, GuildMarker, MessageMarker, UserMarker},
Id,
},
};
#[derive(Clone, Debug)]
#[cfg_attr(feature = "tests", derive(PartialEq, Eq))]
pub struct CachedReaction {
pub channel_id: Id<ChannelMarker>,
pub emoji: String,
pub guild_id: Option<Id<GuildMarker>>,
pub message_id: Id<MessageMarker>,
pub user_id: Id<UserMarker>,
}
impl From<&Reaction> for CachedReaction {
fn from(reaction: &Reaction) -> Self {
Self {
channel_id: reaction.channel_id,
emoji: match &reaction.emoji {
ReactionType::Custom { id, .. } => id.to_string(),
ReactionType::Unicode { name } => name.clone(),
},
guild_id: reaction.guild_id,
message_id: reaction.message_id,
user_id: reaction.user_id,
}
}
}