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 41 42 43 44
pub mod get_reactions; mod create_reaction; mod delete_all_reaction; mod delete_all_reactions; mod delete_reaction; pub use self::{ create_reaction::CreateReaction, delete_all_reaction::DeleteAllReaction, delete_all_reactions::DeleteAllReactions, delete_reaction::DeleteReaction, get_reactions::GetReactions, }; use std::fmt::Write; use twilight_model::{channel::ReactionType, id::EmojiId}; #[derive(Eq, PartialEq)] pub enum RequestReactionType { Custom { id: EmojiId, name: Option<String> }, Unicode { name: String }, } impl From<ReactionType> for RequestReactionType { fn from(other: ReactionType) -> Self { match other { ReactionType::Custom { id, name, .. } => Self::Custom { id, name }, ReactionType::Unicode { name } => Self::Unicode { name }, } } } fn format_emoji(emoji: RequestReactionType) -> String { match emoji { RequestReactionType::Custom { id, name } => { let mut emoji = String::new(); match name { Some(name) => emoji.push_str(name.as_ref()), None => emoji.push('e'), } let _ = write!(emoji, ":{}", id); emoji } RequestReactionType::Unicode { name } => name, } }