Skip to main content

twapi_v2/fields/
user_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 UserFields {
7    #[serde(rename = "affiliation")]
8    #[default]
9    Affiliation,
10    #[serde(rename = "connection_status")]
11    ConnectionStatus,
12    #[serde(rename = "created_at")]
13    CreatedAt,
14    #[serde(rename = "description")]
15    Description,
16    #[serde(rename = "entities")]
17    Entities,
18    #[serde(rename = "id")]
19    Id,
20    #[serde(rename = "is_identity_verified")]
21    IsIdentityVerified,
22    #[serde(rename = "location")]
23    Location,
24    #[serde(rename = "most_recent_tweet_id")]
25    MostRecentTweetId,
26    #[serde(rename = "name")]
27    Name,
28    #[serde(rename = "pinned_tweet_id")]
29    PinnedTweetId,
30    #[serde(rename = "profile_banner_url")]
31    ProfileBannerUrl,
32    #[serde(rename = "profile_image_url")]
33    ProfileImageUrl,
34    #[serde(rename = "protected")]
35    Protected,
36    #[serde(rename = "public_metrics")]
37    PublicMetrics,
38    #[serde(rename = "receives_your_dm")]
39    ReceivesYourDm,
40    #[serde(rename = "subscription_type")]
41    SubscriptionType,
42    #[serde(rename = "url")]
43    Url,
44    #[serde(rename = "username")]
45    Username,
46    #[serde(rename = "verified")]
47    Verified,
48    #[serde(rename = "verified_followers_count")]
49    VerifiedFollowersCount,
50    #[serde(rename = "verified_type")]
51    VerifiedType,
52    #[serde(rename = "withheld")]
53    Withheld,
54}
55
56impl UserFields {
57    pub fn all() -> HashSet<Self> {
58        let mut result = HashSet::new();
59        result.insert(Self::Affiliation);
60        result.insert(Self::ConnectionStatus);
61        result.insert(Self::CreatedAt);
62        result.insert(Self::Description);
63        result.insert(Self::Entities);
64        result.insert(Self::Id);
65        result.insert(Self::IsIdentityVerified);
66        result.insert(Self::Location);
67        result.insert(Self::MostRecentTweetId);
68        result.insert(Self::Name);
69        result.insert(Self::PinnedTweetId);
70        result.insert(Self::ProfileBannerUrl);
71        result.insert(Self::ProfileImageUrl);
72        result.insert(Self::Protected);
73        result.insert(Self::PublicMetrics);
74        result.insert(Self::ReceivesYourDm);
75        result.insert(Self::SubscriptionType);
76        result.insert(Self::Url);
77        result.insert(Self::Username);
78        result.insert(Self::Verified);
79        result.insert(Self::VerifiedFollowersCount);
80        result.insert(Self::VerifiedType);
81        result.insert(Self::Withheld);
82        result
83    }
84}
85
86impl std::fmt::Display for UserFields {
87    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
88        match self {
89            Self::Affiliation => write!(f, "affiliation"),
90            Self::ConnectionStatus => write!(f, "connection_status"),
91            Self::CreatedAt => write!(f, "created_at"),
92            Self::Description => write!(f, "description"),
93            Self::Entities => write!(f, "entities"),
94            Self::Id => write!(f, "id"),
95            Self::IsIdentityVerified => write!(f, "is_identity_verified"),
96            Self::Location => write!(f, "location"),
97            Self::MostRecentTweetId => write!(f, "most_recent_tweet_id"),
98            Self::Name => write!(f, "name"),
99            Self::PinnedTweetId => write!(f, "pinned_tweet_id"),
100            Self::ProfileBannerUrl => write!(f, "profile_banner_url"),
101            Self::ProfileImageUrl => write!(f, "profile_image_url"),
102            Self::Protected => write!(f, "protected"),
103            Self::PublicMetrics => write!(f, "public_metrics"),
104            Self::ReceivesYourDm => write!(f, "receives_your_dm"),
105            Self::SubscriptionType => write!(f, "subscription_type"),
106            Self::Url => write!(f, "url"),
107            Self::Username => write!(f, "username"),
108            Self::Verified => write!(f, "verified"),
109            Self::VerifiedFollowersCount => write!(f, "verified_followers_count"),
110            Self::VerifiedType => write!(f, "verified_type"),
111            Self::Withheld => write!(f, "withheld"),
112        }
113    }
114}
115