Skip to main content

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