reverse_engineered_twitter_api/types_resp/
following_types.rs

1extern crate serde_json;
2use serde::{Deserialize, Serialize};
3
4#[derive(Serialize, Deserialize, Debug)]
5pub struct FollowingResp {
6    #[serde(rename = "data")]
7    pub data: Data,
8}
9
10#[derive(Serialize, Deserialize, Debug)]
11pub struct Data {
12    #[serde(rename = "user")]
13    pub user: User,
14}
15
16#[derive(Serialize, Deserialize, Debug)]
17pub struct User {
18    #[serde(rename = "result")]
19    pub result: UserResult,
20}
21
22#[derive(Serialize, Deserialize, Debug)]
23pub struct UserResult {
24    #[serde(rename = "__typename")]
25    pub typename: UserDisplayTypeEnum,
26
27    #[serde(rename = "timeline")]
28    pub timeline: ResultTimeline,
29}
30
31#[derive(Serialize, Deserialize, Debug)]
32pub struct ResultTimeline {
33    #[serde(rename = "timeline")]
34    pub timeline: TimelineTimeline,
35}
36
37#[derive(Serialize, Deserialize, Debug)]
38pub struct TimelineTimeline {
39    #[serde(rename = "instructions")]
40    pub instructions: Vec<Instruction>,
41}
42
43#[derive(Serialize, Deserialize, Debug)]
44pub struct Instruction {
45    #[serde(rename = "type")]
46    pub instruction_type: String,
47
48    #[serde(rename = "direction")]
49    pub direction: Option<String>,
50
51    #[serde(rename = "entries")]
52    pub entries: Option<Vec<Entry>>,
53}
54
55#[derive(Serialize, Deserialize, Debug)]
56pub struct Entry {
57    #[serde(rename = "entryId")]
58    pub entry_id: String,
59
60    #[serde(rename = "sortIndex")]
61    pub sort_index: String,
62
63    #[serde(rename = "content")]
64    pub content: Content,
65}
66
67#[derive(Serialize, Deserialize, Debug)]
68pub struct Content {
69    #[serde(rename = "entryType")]
70    pub entry_type: EntryTypeEnum,
71
72    #[serde(rename = "__typename")]
73    pub typename: EntryTypeEnum,
74
75    #[serde(rename = "itemContent")]
76    pub item_content: Option<ItemContent>,
77
78    #[serde(rename = "clientEventInfo")]
79    pub client_event_info: Option<ClientEventInfo>,
80
81    #[serde(rename = "value")]
82    pub value: Option<String>,
83
84    #[serde(rename = "cursorType")]
85    pub cursor_type: Option<String>,
86}
87
88#[derive(Serialize, Deserialize, Debug)]
89pub struct ClientEventInfo {
90    #[serde(rename = "component")]
91    pub component: Component,
92
93    #[serde(rename = "element")]
94    pub element: Element,
95}
96
97#[derive(Serialize, Deserialize, Debug)]
98pub struct ItemContent {
99    #[serde(rename = "itemType")]
100    pub item_type: ItemTypeEnum,
101
102    #[serde(rename = "__typename")]
103    pub typename: ItemTypeEnum,
104
105    #[serde(rename = "user_results")]
106    pub user_results: UserResults,
107
108    #[serde(rename = "userDisplayType")]
109    pub user_display_type: UserDisplayTypeEnum,
110}
111
112#[derive(Serialize, Deserialize, Debug)]
113pub struct UserResults {
114    #[serde(rename = "result")]
115    pub result: UserResultsResult,
116}
117
118#[derive(Serialize, Deserialize, Debug)]
119pub struct UserResultsResult {
120    #[serde(rename = "__typename")]
121    pub typename: UserDisplayTypeEnum,
122
123    #[serde(rename = "id")]
124    pub id: String,
125
126    #[serde(rename = "rest_id")]
127    pub rest_id: String,
128
129    #[serde(rename = "affiliates_highlighted_label")]
130    pub affiliates_highlighted_label: AffiliatesHighlightedLabel,
131
132    #[serde(rename = "has_graduated_access")]
133    pub has_graduated_access: bool,
134
135    #[serde(rename = "is_blue_verified")]
136    pub is_blue_verified: bool,
137
138    #[serde(rename = "profile_image_shape")]
139    pub profile_image_shape: ProfileImageShape,
140
141    #[serde(rename = "legacy")]
142    pub legacy: Legacy,
143
144    #[serde(rename = "professional")]
145    pub professional: Option<Professional>,
146}
147
148#[derive(Serialize, Deserialize, Debug)]
149pub struct AffiliatesHighlightedLabel {
150    #[serde(rename = "label")]
151    pub label: Option<Label>,
152}
153
154#[derive(Serialize, Deserialize, Debug)]
155pub struct Label {
156    #[serde(rename = "url")]
157    pub url: LabelUrl,
158
159    #[serde(rename = "badge")]
160    pub badge: Badge,
161
162    #[serde(rename = "description")]
163    pub description: String,
164
165    #[serde(rename = "userLabelType")]
166    pub user_label_type: String,
167
168    #[serde(rename = "userLabelDisplayType")]
169    pub user_label_display_type: String,
170}
171
172#[derive(Serialize, Deserialize, Debug)]
173pub struct Badge {
174    #[serde(rename = "url")]
175    pub url: String,
176}
177
178#[derive(Serialize, Deserialize, Debug)]
179pub struct LabelUrl {
180    #[serde(rename = "url")]
181    pub url: String,
182
183    #[serde(rename = "urlType")]
184    pub url_type: String,
185}
186
187#[derive(Serialize, Deserialize, Debug)]
188pub struct Legacy {
189    #[serde(rename = "can_dm")]
190    pub can_dm: bool,
191
192    #[serde(rename = "can_media_tag")]
193    pub can_media_tag: bool,
194
195    #[serde(rename = "created_at")]
196    pub created_at: String,
197
198    #[serde(rename = "default_profile")]
199    pub default_profile: bool,
200
201    #[serde(rename = "default_profile_image")]
202    pub default_profile_image: bool,
203
204    #[serde(rename = "description")]
205    pub description: String,
206
207    #[serde(rename = "entities")]
208    pub entities: Entities,
209
210    #[serde(rename = "fast_followers_count")]
211    pub fast_followers_count: i64,
212
213    #[serde(rename = "favourites_count")]
214    pub favourites_count: i64,
215
216    #[serde(rename = "followers_count")]
217    pub followers_count: i64,
218
219    #[serde(rename = "friends_count")]
220    pub friends_count: i64,
221
222    #[serde(rename = "has_custom_timelines")]
223    pub has_custom_timelines: bool,
224
225    #[serde(rename = "is_translator")]
226    pub is_translator: bool,
227
228    #[serde(rename = "listed_count")]
229    pub listed_count: i64,
230
231    #[serde(rename = "location")]
232    pub location: String,
233
234    #[serde(rename = "media_count")]
235    pub media_count: i64,
236
237    #[serde(rename = "name")]
238    pub name: String,
239
240    #[serde(rename = "normal_followers_count")]
241    pub normal_followers_count: i64,
242
243    #[serde(rename = "pinned_tweet_ids_str")]
244    pub pinned_tweet_ids_str: Vec<String>,
245
246    #[serde(rename = "possibly_sensitive")]
247    pub possibly_sensitive: bool,
248
249    #[serde(rename = "profile_banner_url")]
250    pub profile_banner_url: Option<String>,
251
252    #[serde(rename = "profile_image_url_https")]
253    pub profile_image_url_https: String,
254
255    #[serde(rename = "profile_interstitial_type")]
256    pub profile_interstitial_type: String,
257
258    #[serde(rename = "screen_name")]
259    pub screen_name: String,
260
261    #[serde(rename = "statuses_count")]
262    pub statuses_count: i64,
263
264    #[serde(rename = "translator_type")]
265    pub translator_type: TranslatorType,
266
267    #[serde(rename = "verified")]
268    pub verified: bool,
269
270    #[serde(rename = "want_retweets")]
271    pub want_retweets: bool,
272
273    #[serde(rename = "withheld_in_countries")]
274    pub withheld_in_countries: Vec<Option<serde_json::Value>>,
275
276    #[serde(rename = "url")]
277    pub url: Option<String>,
278
279    #[serde(rename = "following")]
280    pub following: Option<bool>,
281
282    #[serde(rename = "verified_type")]
283    pub verified_type: Option<Type>,
284}
285
286#[derive(Serialize, Deserialize, Debug)]
287pub struct Entities {
288    #[serde(rename = "description")]
289    pub description: Description,
290
291    #[serde(rename = "url")]
292    pub url: Option<Description>,
293}
294
295#[derive(Serialize, Deserialize, Debug)]
296pub struct Description {
297    #[serde(rename = "urls")]
298    pub urls: Vec<UrlElement>,
299}
300
301#[derive(Serialize, Deserialize, Debug)]
302pub struct UrlElement {
303    #[serde(rename = "display_url")]
304    pub display_url: String,
305
306    #[serde(rename = "expanded_url")]
307    pub expanded_url: String,
308
309    #[serde(rename = "url")]
310    pub url: String,
311
312    #[serde(rename = "indices")]
313    pub indices: Vec<i64>,
314}
315
316#[derive(Serialize, Deserialize, Debug)]
317pub struct Professional {
318    #[serde(rename = "rest_id")]
319    pub rest_id: String,
320
321    #[serde(rename = "professional_type")]
322    pub professional_type: Type,
323
324    #[serde(rename = "category")]
325    pub category: Vec<Category>,
326}
327
328#[derive(Serialize, Deserialize, Debug)]
329pub struct Category {
330    #[serde(rename = "id")]
331    pub id: i64,
332
333    #[serde(rename = "name")]
334    pub name: String,
335
336    #[serde(rename = "icon_name")]
337    pub icon_name: IconName,
338}
339
340#[derive(Serialize, Deserialize, Debug)]
341pub enum Component {
342    #[serde(rename = "FollowingSgs")]
343    FollowingSgs,
344}
345
346#[derive(Serialize, Deserialize, Debug)]
347pub enum Element {
348    #[serde(rename = "user")]
349    User,
350}
351
352#[derive(Serialize, Deserialize, Debug)]
353pub enum EntryTypeEnum {
354    #[serde(rename = "TimelineTimelineCursor")]
355    TimelineTimelineCursor,
356
357    #[serde(rename = "TimelineTimelineItem")]
358    TimelineTimelineItem,
359}
360
361#[derive(Serialize, Deserialize, Debug)]
362pub enum ItemTypeEnum {
363    #[serde(rename = "TimelineUser")]
364    TimelineUser,
365}
366
367#[derive(Serialize, Deserialize, Debug)]
368pub enum UserDisplayTypeEnum {
369    #[serde(rename = "User")]
370    User,
371}
372
373#[derive(Serialize, Deserialize, Debug)]
374pub enum TranslatorType {
375    #[serde(rename = "none")]
376    None,
377
378    #[serde(rename = "regular")]
379    Regular,
380}
381
382#[derive(Serialize, Deserialize, Debug)]
383pub enum Type {
384    #[serde(rename = "Business")]
385    Business,
386
387    #[serde(rename = "Creator")]
388    Creator,
389}
390
391#[derive(Serialize, Deserialize, Debug)]
392pub enum IconName {
393    #[serde(rename = "IconBriefcaseStroke")]
394    IconBriefcaseStroke,
395}
396
397#[derive(Serialize, Deserialize, Debug)]
398pub enum ProfileImageShape {
399    #[serde(rename = "Circle")]
400    Circle,
401
402    #[serde(rename = "Square")]
403    Square,
404
405    #[serde(rename = "Hexagon")]
406    Hexagon,
407}