Skip to main content

convert_invert/internals/parsing/
deserialize.rs

1use serde::{Deserialize, Serialize};
2
3#[derive(Debug, Clone, Serialize, Deserialize)]
4pub struct RootStructTracksItemsItemTrackAlbumExternalUrls {
5    pub spotify: Option<String>,
6}
7
8#[derive(Debug, Clone, Serialize, Deserialize)]
9pub struct RootStructTracksItemsItemVideoThumbnail {
10    pub url: Option<serde_json::Value>,
11}
12
13#[derive(Debug, Clone, Serialize, Deserialize)]
14pub struct RootStructTracksItemsItemTrackExternalUrls {
15    pub spotify: Option<String>,
16}
17
18#[derive(Debug, Clone, Serialize, Deserialize)]
19pub struct RootStructExternalUrls {
20    pub spotify: Option<String>,
21}
22
23#[derive(Debug, Clone, Serialize, Deserialize)]
24pub struct RootStructTracksItemsItem {
25    pub added_at: Option<String>,
26    pub added_by: Option<RootStructTracksItemsItemAddedBy>,
27    pub is_local: Option<bool>,
28    pub primary_color: Option<serde_json::Value>,
29    pub track: Option<RootStructTracksItemsItemTrack>,
30    pub video_thumbnail: Option<RootStructTracksItemsItemVideoThumbnail>,
31}
32
33#[derive(Debug, Clone, Serialize, Deserialize)]
34pub struct RootStructTracksItemsItemTrackAlbumArtistsItemExternalUrls {
35    pub spotify: Option<String>,
36}
37
38#[derive(Debug, Clone, Serialize, Deserialize)]
39pub struct RootStructFollowers {
40    pub href: Option<serde_json::Value>,
41    pub total: Option<i64>,
42}
43
44#[derive(Debug, Clone, Serialize, Deserialize)]
45pub struct RootStructOwner {
46    pub display_name: Option<String>,
47    pub external_urls: Option<RootStructOwnerExternalUrls>,
48    pub href: Option<String>,
49    pub id: Option<String>,
50    #[serde(rename = "type", skip_serializing_if = "Option::is_none")]
51    pub type_: Option<String>,
52    pub uri: Option<String>,
53}
54
55#[derive(Debug, Clone, Serialize, Deserialize)]
56pub struct RootStructTracksItemsItemTrackAlbum {
57    pub album_type: Option<String>,
58    pub artists: Option<Vec<RootStructTracksItemsItemTrackAlbumArtistsItem>>,
59    pub available_markets: Option<Vec<String>>,
60    pub external_urls: Option<RootStructTracksItemsItemTrackAlbumExternalUrls>,
61    pub href: Option<String>,
62    pub id: Option<String>,
63    pub images: Option<Vec<RootStructTracksItemsItemTrackAlbumImagesItem>>,
64    pub name: Option<String>,
65    pub release_date: Option<String>,
66    pub release_date_precision: Option<String>,
67    pub total_tracks: Option<i64>,
68    #[serde(rename = "type", skip_serializing_if = "Option::is_none")]
69    pub type_: Option<String>,
70    pub uri: Option<String>,
71}
72
73#[derive(Debug, Clone, Serialize, Deserialize)]
74pub struct RootStructImagesItem {
75    pub height: Option<i64>,
76    pub url: Option<String>,
77    pub width: Option<i64>,
78}
79
80#[derive(Debug, Clone, Serialize, Deserialize)]
81pub struct RootStructTracksItemsItemAddedByExternalUrls {
82    pub spotify: Option<String>,
83}
84
85#[derive(Debug, Clone, Serialize, Deserialize)]
86pub struct RootStructTracksItemsItemTrackAlbumArtistsItem {
87    pub external_urls: Option<RootStructTracksItemsItemTrackAlbumArtistsItemExternalUrls>,
88    pub href: Option<String>,
89    pub id: Option<String>,
90    pub name: Option<String>,
91    #[serde(rename = "type", skip_serializing_if = "Option::is_none")]
92    pub type_: Option<String>,
93    pub uri: Option<String>,
94}
95
96#[derive(Debug, Clone, Serialize, Deserialize)]
97pub struct RootStructTracksItemsItemTrack {
98    pub album: Option<RootStructTracksItemsItemTrackAlbum>,
99    pub artists: Option<Vec<RootStructTracksItemsItemTrackArtistsItem>>,
100    pub available_markets: Option<Vec<String>>,
101    pub disc_number: Option<i64>,
102    pub duration_ms: Option<i64>,
103    pub episode: Option<bool>,
104    pub explicit: Option<bool>,
105    pub external_ids: Option<RootStructTracksItemsItemTrackExternalIds>,
106    pub external_urls: Option<RootStructTracksItemsItemTrackExternalUrls>,
107    pub href: Option<String>,
108    pub id: Option<String>,
109    pub is_local: Option<bool>,
110    pub name: Option<String>,
111    pub popularity: Option<i64>,
112    pub preview_url: Option<serde_json::Value>,
113    pub track: Option<bool>,
114    pub track_number: Option<i64>,
115    #[serde(rename = "type", skip_serializing_if = "Option::is_none")]
116    pub type_: Option<String>,
117    pub uri: Option<String>,
118}
119
120#[derive(Debug, Clone, Serialize, Deserialize)]
121pub struct RootStructOwnerExternalUrls {
122    pub spotify: Option<String>,
123}
124
125#[derive(Debug, Clone, Serialize, Deserialize)]
126pub struct RootStructTracksItemsItemTrackAlbumImagesItem {
127    pub height: Option<i64>,
128    pub url: Option<String>,
129    pub width: Option<i64>,
130}
131
132#[derive(Debug, Clone, Serialize, Deserialize)]
133pub struct Playlist {
134    pub collaborative: Option<bool>,
135    pub description: Option<String>,
136    pub external_urls: Option<RootStructExternalUrls>,
137    pub followers: Option<RootStructFollowers>,
138    pub href: Option<String>,
139    pub id: Option<String>,
140    pub images: Option<Vec<RootStructImagesItem>>,
141    pub name: Option<String>,
142    pub owner: Option<RootStructOwner>,
143    pub primary_color: Option<serde_json::Value>,
144    pub public: Option<bool>,
145    pub snapshot_id: Option<String>,
146    pub tracks: Option<RootStructTracks>,
147    #[serde(rename = "type", skip_serializing_if = "Option::is_none")]
148    pub type_: Option<String>,
149    pub uri: Option<String>,
150}
151
152#[derive(Debug, Clone, Serialize, Deserialize)]
153pub struct RootStructTracksItemsItemAddedBy {
154    pub external_urls: Option<RootStructTracksItemsItemAddedByExternalUrls>,
155    pub href: Option<String>,
156    pub id: Option<String>,
157    #[serde(rename = "type", skip_serializing_if = "Option::is_none")]
158    pub type_: Option<String>,
159    pub uri: Option<String>,
160}
161
162#[derive(Debug, Clone, Serialize, Deserialize)]
163pub struct RootStructTracksItemsItemTrackExternalIds {
164    pub isrc: Option<String>,
165}
166
167#[derive(Debug, Clone, Serialize, Deserialize)]
168pub struct RootStructTracksItemsItemTrackArtistsItem {
169    pub external_urls: Option<RootStructTracksItemsItemTrackArtistsItemExternalUrls>,
170    pub href: Option<String>,
171    pub id: Option<String>,
172    pub name: Option<String>,
173    #[serde(rename = "type", skip_serializing_if = "Option::is_none")]
174    pub type_: Option<String>,
175    pub uri: Option<String>,
176}
177
178#[derive(Debug, Clone, Serialize, Deserialize)]
179pub struct RootStructTracksItemsItemTrackArtistsItemExternalUrls {
180    pub spotify: Option<String>,
181}
182
183#[derive(Debug, Clone, Serialize, Deserialize)]
184pub struct RootStructTracks {
185    pub href: Option<String>,
186    pub items: Option<Vec<RootStructTracksItemsItem>>,
187    pub limit: Option<i64>,
188    pub next: Option<serde_json::Value>,
189    pub offset: Option<i64>,
190    pub previous: Option<serde_json::Value>,
191    pub total: Option<i64>,
192}