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