twapi_v2/fields/
dm_event_fields.rs

1use serde::{Deserialize, Serialize};
2use std::collections::HashSet;
3
4#[derive(Serialize, Deserialize, Debug, Eq, Hash, PartialEq, Clone)]
5pub enum DmEventFields {
6    #[serde(rename = "id")]
7    Id,
8    #[serde(rename = "text")]
9    Text,
10    #[serde(rename = "event_type")]
11    EventType,
12    #[serde(rename = "created_at")]
13    CreatedAt,
14    #[serde(rename = "dm_conversation_id")]
15    DmConversationId,
16    #[serde(rename = "sender_id")]
17    SenderId,
18    #[serde(rename = "participant_ids")]
19    ParticipantIds,
20    #[serde(rename = "referenced_tweets")]
21    ReferencedTweets,
22    #[serde(rename = "attachments")]
23    Attachments,
24}
25
26impl DmEventFields {
27    pub fn all() -> HashSet<Self> {
28        let mut result = HashSet::new();
29        result.insert(Self::Id);
30        result.insert(Self::Text);
31        result.insert(Self::EventType);
32        result.insert(Self::CreatedAt);
33        result.insert(Self::DmConversationId);
34        result.insert(Self::SenderId);
35        result.insert(Self::ParticipantIds);
36        result.insert(Self::ReferencedTweets);
37        result.insert(Self::Attachments);
38        result
39    }
40}
41
42impl std::fmt::Display for DmEventFields {
43    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
44        match self {
45            Self::Id => write!(f, "id"),
46            Self::Text => write!(f, "text"),
47            Self::EventType => write!(f, "event_type"),
48            Self::CreatedAt => write!(f, "created_at"),
49            Self::DmConversationId => write!(f, "dm_conversation_id"),
50            Self::SenderId => write!(f, "sender_id"),
51            Self::ParticipantIds => write!(f, "participant_ids"),
52            Self::ReferencedTweets => write!(f, "referenced_tweets"),
53            Self::Attachments => write!(f, "attachments"),
54        }
55    }
56}
57
58impl Default for DmEventFields {
59    fn default() -> Self {
60        Self::Id
61    }
62}