omni_dev/cli/transcript/
format.rs1use clap::ValueEnum;
9
10use crate::transcript::format::Format;
11
12#[derive(Clone, Copy, Debug, PartialEq, Eq, ValueEnum)]
14#[value(rename_all = "lowercase")]
15pub enum CliFormat {
16 Srt,
18 Vtt,
20 Txt,
22 Json,
24}
25
26impl From<CliFormat> for Format {
27 fn from(value: CliFormat) -> Self {
28 match value {
29 CliFormat::Srt => Self::Srt,
30 CliFormat::Vtt => Self::Vtt,
31 CliFormat::Txt => Self::Txt,
32 CliFormat::Json => Self::Json,
33 }
34 }
35}
36
37#[cfg(test)]
38mod tests {
39 use super::*;
40
41 #[test]
42 fn each_variant_maps_to_library_format() {
43 assert_eq!(Format::from(CliFormat::Srt), Format::Srt);
44 assert_eq!(Format::from(CliFormat::Vtt), Format::Vtt);
45 assert_eq!(Format::from(CliFormat::Txt), Format::Txt);
46 assert_eq!(Format::from(CliFormat::Json), Format::Json);
47 }
48}