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