use crate::Diagnostic;
use crate::Error;
use crate::Layout;
use crate::append::Append;
use crate::layout::PlainTextLayout;
use crate::record::Record;
#[derive(Debug)]
pub struct Testing {
layout: Box<dyn Layout>,
}
impl Default for Testing {
fn default() -> Self {
Self {
layout: Box::new(PlainTextLayout::default()),
}
}
}
impl Testing {
pub fn with_layout(mut self, layout: impl Into<Box<dyn Layout>>) -> Self {
self.layout = layout.into();
self
}
}
impl Append for Testing {
fn append(&self, record: &Record, diags: &[Box<dyn Diagnostic>]) -> Result<(), Error> {
let bytes = self.layout.format(record, diags)?;
eprintln!("{}", String::from_utf8_lossy(&bytes));
Ok(())
}
fn flush(&self) -> Result<(), Error> {
Ok(())
}
}