use std::{collections::BTreeMap, path::PathBuf}; use serde::{Deserialize, Serialize}; #[derive(Debug, Clone, Deserialize, Serialize)] pub struct DirectoryInfo { pub name: String, } #[derive(Debug, Clone, Deserialize, Serialize)] pub struct ItemInfo { pub title: String, pub source: Source, } #[derive(Debug, Clone, Deserialize, Serialize)] pub struct Source { pub path: PathBuf, pub tracks: BTreeMap, } #[derive(Debug, Clone, Deserialize, Serialize)] #[serde(rename_all = "snake_case", tag = "kind")] pub enum SourceTrack { Video { language: String, codec: String, width: u64, height: u64, }, Audio { channels: usize, codec: String, sample_rate: f64, language: String, }, Subtitles { codec: String, language: String, }, }