liboxen 0.48.0

Oxen is a fast, unstructured data version control, to help version large machine learning datasets written in Rust.
Documentation
use serde::{Deserialize, Serialize};
use utoipa::ToSchema;

#[derive(Deserialize, Serialize, Debug, Clone, ToSchema)]
pub struct MetadataAudio {
    pub audio: MetadataAudioImpl,
}

#[derive(Deserialize, Serialize, Debug, Clone, ToSchema)]
pub struct MetadataAudioImpl {
    pub num_seconds: f64,
    pub num_channels: usize,
    pub sample_rate: usize,
}

impl MetadataAudio {
    pub fn new(num_seconds: f64, num_channels: usize, sample_rate: usize) -> Self {
        Self {
            audio: MetadataAudioImpl {
                num_seconds,
                num_channels,
                sample_rate,
            },
        }
    }
}

impl std::fmt::Display for MetadataAudio {
    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
        write!(
            f,
            "MetadataAudio({} channels, {} Hz, {} seconds)",
            self.audio.num_channels, self.audio.sample_rate, self.audio.num_seconds
        )
    }
}