use crate::{SourceTrack, SourceTrackKind}; impl SourceTrackKind { pub fn letter(&self) -> char { match self { SourceTrackKind::Video { .. } => 'v', SourceTrackKind::Audio { .. } => 'a', SourceTrackKind::Subtitles => 's', } } } impl std::fmt::Display for SourceTrack { fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { let kspec = match &self.kind { SourceTrackKind::Video { width, height, fps } => { format!("Video: {width}x{height} {fps}fps ") } SourceTrackKind::Audio { channels, sample_rate, bit_depth, } => format!("Audio: {channels}ch {sample_rate}Hz {bit_depth}bits "), SourceTrackKind::Subtitles => format!("Subtitles: "), }; f.write_fmt(format_args!( "{} {:?} {} ({})", kspec, self.name, self.language, self.codec )) } }