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