use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
#[serde(default)]
pub struct TrackFilesAttributes {
#[serde(rename = "albumAudioNormalizationData", skip_serializing_if = "Option::is_none")]
pub album_audio_normalization_data: Option<Box<models::AudioNormalizationData>>,
#[serde(rename = "format", skip_serializing_if = "Option::is_none")]
pub format: Option<Format>,
#[serde(rename = "trackAudioNormalizationData", skip_serializing_if = "Option::is_none")]
pub track_audio_normalization_data: Option<Box<models::AudioNormalizationData>>,
#[serde(rename = "trackPresentation", skip_serializing_if = "Option::is_none")]
pub track_presentation: Option<TrackPresentation>,
#[serde(rename = "url", skip_serializing_if = "Option::is_none")]
pub url: Option<String>,
}
impl TrackFilesAttributes {
pub fn new() -> TrackFilesAttributes {
TrackFilesAttributes {
album_audio_normalization_data: None,
format: None,
track_audio_normalization_data: None,
track_presentation: None,
url: None,
}
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum Format {
#[serde(rename = "HEAACV1")]
Heaacv1,
#[serde(rename = "AACLC")]
Aaclc,
#[serde(rename = "FLAC")]
Flac,
#[serde(rename = "FLAC_HIRES")]
FlacHires,
#[serde(rename = "EAC3_JOC")]
Eac3Joc,
}
impl Default for Format {
fn default() -> Format {
Self::Heaacv1
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum TrackPresentation {
#[serde(rename = "FULL")]
Full,
#[serde(rename = "PREVIEW")]
Preview,
}
impl Default for TrackPresentation {
fn default() -> TrackPresentation {
Self::Full
}
}