twapi_v2/fields/
user_fields.rs1use 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}