prawn 0.0.3

Rust Client for the Tidal API providing comprehensive API coverag, and easy OAuth management
Documentation
/*
 * TIDAL API
 *
 * The TIDAL API is a [JSON:API](https://jsonapi.org/)–compliant web API that exposes TIDAL’s music, metadata, and user-related functionality through a consistent, resource-oriented design. More information and API management are available at [developer.tidal.com](developer.tidal.com)
 *
 * The version of the OpenAPI document: 1.0.36
 * 
 * Generated by: https://openapi-generator.tech
 */

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>>,
    /// File's audio format
    #[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>>,
    /// Track presentation
    #[serde(rename = "trackPresentation", skip_serializing_if = "Option::is_none")]
    pub track_presentation: Option<TrackPresentation>,
    /// File URL
    #[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,
        }
    }
}
/// File's audio format
#[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
    }
}
/// Track presentation
#[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
    }
}