pub mod r#impl; use serde::{Deserialize, Serialize}; use std::collections::BTreeMap; #[derive(Debug, Clone, Deserialize, Serialize)] pub struct DirectoryInfo { pub name: String, } #[derive(Debug, Clone, Deserialize, Serialize)] pub struct ItemInfo { pub title: String, pub duration: f64, // in seconds pub tracks: BTreeMap, } #[derive(Debug, Clone, Deserialize, Serialize)] pub struct SourceTrack { pub kind: SourceTrackKind, pub name: String, pub codec: String, pub language: String, } #[derive(Debug, Clone, Deserialize, Serialize)] #[serde(rename_all = "snake_case")] pub enum SourceTrackKind { Video { width: u64, height: u64, fps: f64, }, Audio { channels: usize, sample_rate: f64, bit_depth: usize, }, Subtitles, }