use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
#[serde(default)]
pub struct TrackManifestsAttributes {
#[serde(rename = "albumAudioNormalizationData", skip_serializing_if = "Option::is_none")]
pub album_audio_normalization_data: Option<Box<models::AudioNormalizationData>>,
#[serde(rename = "drmData", skip_serializing_if = "Option::is_none")]
pub drm_data: Option<Box<models::DrmData>>,
#[serde(rename = "formats", skip_serializing_if = "Option::is_none")]
pub formats: Option<Vec<Formats>>,
#[serde(rename = "hash", skip_serializing_if = "Option::is_none")]
pub hash: Option<String>,
#[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 = "uri", skip_serializing_if = "Option::is_none")]
pub uri: Option<String>,
}
impl TrackManifestsAttributes {
pub fn new() -> TrackManifestsAttributes {
TrackManifestsAttributes {
album_audio_normalization_data: None,
drm_data: None,
formats: None,
hash: None,
track_audio_normalization_data: None,
track_presentation: None,
uri: None,
}
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum Formats {
#[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 Formats {
fn default() -> Formats {
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
}
}