qobuz_api/models/
track.rs1use {
4 serde::{Deserialize, Serialize},
5 serde_json::Value,
6};
7
8use crate::models::{album::Album, artist::Artist};
9
10#[derive(Clone, Debug, Deserialize, Serialize, PartialEq)]
12pub struct AudioInfo {
13 pub bit_depth: Option<i32>,
15 pub sampling_rate: Option<f64>,
17 pub channels: Option<i32>,
19 pub codec: Option<String>,
21}
22
23#[derive(Clone, Debug, Deserialize, Serialize, PartialEq)]
25pub struct Track {
26 pub id: Option<i32>,
28 pub title: Option<String>,
30 pub version: Option<String>,
32 pub isrc: Option<String>,
34 pub track_number: Option<i32>,
36 pub duration: Option<i32>,
38 pub media_number: Option<i32>,
40 pub work: Option<String>,
42 pub album: Option<Box<Album>>,
44 pub performer: Option<Box<Artist>>,
46 pub performers: Option<String>,
48 pub composer: Option<Box<Artist>>,
50 pub audio_info: Option<AudioInfo>,
52 pub copyright: Option<String>,
54 pub streamable: Option<bool>,
56 pub downloadable: Option<bool>,
58 pub hires: Option<bool>,
60 pub maximum_bit_depth: Option<i32>,
62 pub maximum_sampling_rate: Option<f64>,
64 pub maximum_channel_count: Option<i32>,
66 pub release_date_original: Option<String>,
68 pub release_date_stream: Option<String>,
70 pub parental_warning: Option<bool>,
72 pub product_sales_factors: Option<Value>,
74}