twapi_v2/fields/
user_fields.rs

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