convert-invert 0.1.0

Orchestrate spotify playlist downloads using soulseek-rs
Documentation
use serde::{Serialize, Deserialize};

#[derive(Debug, Serialize, Deserialize)]
pub struct RootStructTracksItemsItemTrackAlbumExternalUrls {
    pub spotify: Option<String>,
}


#[derive(Debug, Serialize, Deserialize)]
pub struct RootStructTracksItemsItemVideoThumbnail {
    pub url: Option<serde_json::Value>,
}


#[derive(Debug, Serialize, Deserialize)]
pub struct RootStructTracksItemsItemTrackExternalUrls {
    pub spotify: Option<String>,
}


#[derive(Debug, Serialize, Deserialize)]
pub struct RootStructExternalUrls {
    pub spotify: Option<String>,
}


#[derive(Debug, Serialize, Deserialize)]
pub struct RootStructTracksItemsItem {
    pub added_at: Option<String>,
    pub added_by: Option<RootStructTracksItemsItemAddedBy>,
    pub is_local: Option<bool>,
    pub primary_color: Option<serde_json::Value>,
    pub track: Option<RootStructTracksItemsItemTrack>,
    pub video_thumbnail: Option<RootStructTracksItemsItemVideoThumbnail>,
}


#[derive(Debug, Serialize, Deserialize)]
pub struct RootStructTracksItemsItemTrackAlbumArtistsItemExternalUrls {
    pub spotify: Option<String>,
}


#[derive(Debug, Serialize, Deserialize)]
pub struct RootStructFollowers {
    pub href: Option<serde_json::Value>,
    pub total: Option<i64>,
}


#[derive(Debug, Serialize, Deserialize)]
pub struct RootStructOwner {
    pub display_name: Option<String>,
    pub external_urls: Option<RootStructOwnerExternalUrls>,
    pub href: Option<String>,
    pub id: Option<String>,
    #[serde(rename = "type", skip_serializing_if = "Option::is_none")]
    pub type_: Option<String>,
    pub uri: Option<String>,
}


#[derive(Debug, Serialize, Deserialize)]
pub struct RootStructTracksItemsItemTrackAlbum {
    pub album_type: Option<String>,
    pub artists: Option<Vec<RootStructTracksItemsItemTrackAlbumArtistsItem>>,
    pub available_markets: Option<Vec<String>>,
    pub external_urls: Option<RootStructTracksItemsItemTrackAlbumExternalUrls>,
    pub href: Option<String>,
    pub id: Option<String>,
    pub images: Option<Vec<RootStructTracksItemsItemTrackAlbumImagesItem>>,
    pub name: Option<String>,
    pub release_date: Option<String>,
    pub release_date_precision: Option<String>,
    pub total_tracks: Option<i64>,
    #[serde(rename = "type", skip_serializing_if = "Option::is_none")]
    pub type_: Option<String>,
    pub uri: Option<String>,
}


#[derive(Debug, Serialize, Deserialize)]
pub struct RootStructImagesItem {
    pub height: Option<i64>,
    pub url: Option<String>,
    pub width: Option<i64>,
}


#[derive(Debug, Serialize, Deserialize)]
pub struct RootStructTracksItemsItemAddedByExternalUrls {
    pub spotify: Option<String>,
}


#[derive(Debug, Serialize, Deserialize)]
pub struct RootStructTracksItemsItemTrackAlbumArtistsItem {
    pub external_urls: Option<RootStructTracksItemsItemTrackAlbumArtistsItemExternalUrls>,
    pub href: Option<String>,
    pub id: Option<String>,
    pub name: Option<String>,
    #[serde(rename = "type", skip_serializing_if = "Option::is_none")]
    pub type_: Option<String>,
    pub uri: Option<String>,
}


#[derive(Debug, Serialize, Deserialize)]
pub struct RootStructTracksItemsItemTrack {
    pub album: Option<RootStructTracksItemsItemTrackAlbum>,
    pub artists: Option<Vec<RootStructTracksItemsItemTrackArtistsItem>>,
    pub available_markets: Option<Vec<String>>,
    pub disc_number: Option<i64>,
    pub duration_ms: Option<i64>,
    pub episode: Option<bool>,
    pub explicit: Option<bool>,
    pub external_ids: Option<RootStructTracksItemsItemTrackExternalIds>,
    pub external_urls: Option<RootStructTracksItemsItemTrackExternalUrls>,
    pub href: Option<String>,
    pub id: Option<String>,
    pub is_local: Option<bool>,
    pub name: Option<String>,
    pub popularity: Option<i64>,
    pub preview_url: Option<serde_json::Value>,
    pub track: Option<bool>,
    pub track_number: Option<i64>,
    #[serde(rename = "type", skip_serializing_if = "Option::is_none")]
    pub type_: Option<String>,
    pub uri: Option<String>,
}


#[derive(Debug, Serialize, Deserialize)]
pub struct RootStructOwnerExternalUrls {
    pub spotify: Option<String>,
}


#[derive(Debug, Serialize, Deserialize)]
pub struct RootStructTracksItemsItemTrackAlbumImagesItem {
    pub height: Option<i64>,
    pub url: Option<String>,
    pub width: Option<i64>,
}


#[derive(Debug, Serialize, Deserialize)]
pub struct RootStruct {
    pub collaborative: Option<bool>,
    pub description: Option<String>,
    pub external_urls: Option<RootStructExternalUrls>,
    pub followers: Option<RootStructFollowers>,
    pub href: Option<String>,
    pub id: Option<String>,
    pub images: Option<Vec<RootStructImagesItem>>,
    pub name: Option<String>,
    pub owner: Option<RootStructOwner>,
    pub primary_color: Option<serde_json::Value>,
    pub public: Option<bool>,
    pub snapshot_id: Option<String>,
    pub tracks: Option<RootStructTracks>,
    #[serde(rename = "type", skip_serializing_if = "Option::is_none")]
    pub type_: Option<String>,
    pub uri: Option<String>,
}


#[derive(Debug, Serialize, Deserialize)]
pub struct RootStructTracksItemsItemAddedBy {
    pub external_urls: Option<RootStructTracksItemsItemAddedByExternalUrls>,
    pub href: Option<String>,
    pub id: Option<String>,
    #[serde(rename = "type", skip_serializing_if = "Option::is_none")]
    pub type_: Option<String>,
    pub uri: Option<String>,
}


#[derive(Debug, Serialize, Deserialize)]
pub struct RootStructTracksItemsItemTrackExternalIds {
    pub isrc: Option<String>,
}


#[derive(Debug, Serialize, Deserialize)]
pub struct RootStructTracksItemsItemTrackArtistsItem {
    pub external_urls: Option<RootStructTracksItemsItemTrackArtistsItemExternalUrls>,
    pub href: Option<String>,
    pub id: Option<String>,
    pub name: Option<String>,
    #[serde(rename = "type", skip_serializing_if = "Option::is_none")]
    pub type_: Option<String>,
    pub uri: Option<String>,
}


#[derive(Debug, Serialize, Deserialize)]
pub struct RootStructTracksItemsItemTrackArtistsItemExternalUrls {
    pub spotify: Option<String>,
}


#[derive(Debug, Serialize, Deserialize)]
pub struct RootStructTracks {
    pub href: Option<String>,
    pub items: Option<Vec<RootStructTracksItemsItem>>,
    pub limit: Option<i64>,
    pub next: Option<serde_json::Value>,
    pub offset: Option<i64>,
    pub previous: Option<serde_json::Value>,
    pub total: Option<i64>,
}