mod compact;
mod human;
mod json;
use anyhow::Result;
use crate::variant::AnnotatedVariant;
#[derive(Clone, Debug, Default, clap::ValueEnum)]
pub enum Format {
#[default]
Human,
Json,
Compact,
}
pub struct VariantPrinter {
format: Format,
}
impl VariantPrinter {
pub fn new(format: Format) -> Self {
Self { format }
}
pub fn print(&self, variant: &AnnotatedVariant) -> Result<()> {
match self.format {
Format::Human => human::print(variant),
Format::Json => json::print(variant),
Format::Compact => compact::print(variant),
}
}
}