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