slack_morphism/models/common/
reaction.rs1use crate::*;
2
3use rsb_derive::Builder;
4use rvstruct::ValueStruct;
5use serde::{Deserialize, Serialize};
6use serde_with::skip_serializing_none;
7
8#[skip_serializing_none]
9#[derive(Debug, PartialEq, Clone, Serialize, Deserialize, Builder)]
10pub struct SlackReaction {
11 pub name: SlackReactionName,
12 pub count: usize,
13 pub users: Vec<SlackUserId>,
14}
15
16#[skip_serializing_none]
17#[derive(Debug, Eq, PartialEq, Hash, Clone, Serialize, Deserialize, ValueStruct)]
18pub struct SlackReactionName(pub String);
19
20#[derive(Debug, PartialEq, Clone, Serialize, Deserialize)]
21#[serde(tag = "type")]
22#[serde(rename_all = "lowercase")]
23#[allow(clippy::large_enum_variant)]
24pub enum SlackReactionsItem {
25 Message(SlackHistoryMessage),
26 File(SlackFile),
27}