Skip to main content

rstidal/model/
track.rs

1// Use 3rd party
2use serde::{Deserialize, Serialize};
3
4use crate::model::album::Album;
5use crate::model::artist::Artist;
6use crate::model::{AudioMode, AudioQuality};
7
8#[derive(Default, Debug, Serialize, Deserialize)]
9#[serde(rename_all = "camelCase")]
10pub struct Track {
11    pub id: Option<u32>,
12    pub title: Option<String>,
13    pub duration: Option<u32>,
14    pub replay_gain: Option<f32>,
15    pub peak: Option<f32>,
16    pub allow_streaming: Option<bool>,
17    pub stream_ready: Option<bool>,
18    pub stream_start_date: Option<String>,
19    pub premium_streaming_only: Option<bool>,
20    pub track_number: Option<u16>,
21    pub volume_number: Option<u16>,
22    pub version: Option<String>,
23    pub popularity: Option<u32>,
24    pub copyright: Option<String>,
25    pub url: Option<String>,
26    pub isrc: Option<String>,
27    pub editable: Option<bool>,
28    pub explicit: Option<bool>,
29    pub audio_quality: Option<AudioQuality>,
30    pub audio_modes: Vec<Option<AudioMode>>,
31    pub artist: Option<Artist>,
32    pub artists: Vec<Option<Artist>>,
33    pub album: Option<Album>,
34}