use clap::ValueEnum;
use crate::transcript::format::Format;
#[derive(Clone, Copy, Debug, PartialEq, Eq, ValueEnum)]
#[value(rename_all = "lowercase")]
pub enum CliFormat {
Srt,
Vtt,
Txt,
Json,
}
impl From<CliFormat> for Format {
fn from(value: CliFormat) -> Self {
match value {
CliFormat::Srt => Self::Srt,
CliFormat::Vtt => Self::Vtt,
CliFormat::Txt => Self::Txt,
CliFormat::Json => Self::Json,
}
}
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn each_variant_maps_to_library_format() {
assert_eq!(Format::from(CliFormat::Srt), Format::Srt);
assert_eq!(Format::from(CliFormat::Vtt), Format::Vtt);
assert_eq!(Format::from(CliFormat::Txt), Format::Txt);
assert_eq!(Format::from(CliFormat::Json), Format::Json);
}
}