soundcloud_api/src/sobjects.rs
2025-02-22 17:58:11 +03:00

52 lines
1.4 KiB
Rust

#[derive(Debug, serde::Deserialize, Clone)]
pub struct CloudPlaylists {
pub collection: Vec<CloudPlaylist>,
}
#[derive(Debug, serde::Deserialize, serde::Serialize, Clone)]
pub struct CloudPlaylist {
pub artwork_url: Option<String>,
pub description: String,
pub genre: String,
pub id: u64,
pub permalink_url: String,
pub created_at: String,
pub title: String,
pub track_count: u32,
pub tracks: Vec<CloudTrack>,
}
#[derive(Debug, serde::Deserialize, serde::Serialize, Clone)]
pub struct CloudTrack {
pub artwork_url: Option<String>,
pub created_at: Option<String>,
pub description: Option<String>,
pub duration: Option<u32>,
pub genre: Option<String>,
pub id: u64,
pub permalink_url: Option<String>,
pub title: Option<String>,
pub uri: Option<String>,
pub user: Option<CloudArtist>,
pub media: Option<CloudTranscodings>,
}
#[derive(Debug, serde::Deserialize, serde::Serialize, Clone)]
pub struct CloudArtist {
pub username: Option<String>,
pub permalink: String,
}
#[derive(Debug, serde::Deserialize, serde::Serialize, Clone)]
pub struct CloudTranscodings {
pub transcodings: Vec<CloudTranscoding>,
}
#[derive(Debug, serde::Deserialize, serde::Serialize, Clone)]
pub struct CloudTranscoding {
pub duration: u32,
pub preset: String,
pub quality: String,
pub url: String,
}