use crate::output::{format::FormatOutput, msg::OutputMsg, output::OutputType};
use super::output::Output;
pub struct JsonOutput {
formatter: FormatOutput,
}
impl JsonOutput {
pub fn new(formatter: FormatOutput) -> Self {
Self { formatter }
}
}
impl Output for JsonOutput {
fn output_type(&self) -> OutputType {
OutputType::Json
}
fn plain(&self, msg: &OutputMsg) {
println!("{}", self.formatter.format(msg));
}
fn error(&self, msg: &OutputMsg) {
println!("{}", self.formatter.format(msg));
}
fn warning(&self, msg: &OutputMsg) {
println!("{}", self.formatter.format(msg));
}
fn info(&self, msg: &OutputMsg) {
println!("{}", self.formatter.format(msg));
}
fn success(&self, msg: &OutputMsg) {
println!("{}", self.formatter.format(msg));
}
fn debug(&self, msg: &OutputMsg) {
println!("{}", self.formatter.format(msg));
}
fn trace(&self, msg: &OutputMsg) {
println!("{}", self.formatter.format(msg));
}
fn progress(&self, msg: &OutputMsg) {
println!("{}", self.formatter.format(msg));
}
}