use crate::reporter::{CollectItem, Report};
#[derive(Default, Clone)]
pub struct PrintReporter {
use_stderr: bool,
}
impl PrintReporter {
#[inline]
pub fn new() -> Self {
Default::default()
}
pub fn use_stderr(mut self, use_stderr: bool) -> Self {
self.use_stderr = use_stderr;
self
}
}
impl Report for PrintReporter {
#[allow(clippy::print_stdout)]
fn report(&self, items: CollectItem) {
match items {
CollectItem::Trace(data) => {
if self.use_stderr {
eprintln!("trace segment={:?}", data);
} else {
println!("trace segment={:?}", data);
}
}
CollectItem::Log(data) => {
if self.use_stderr {
eprintln!("log data={:?}", data);
} else {
println!("log data={:?}", data);
}
}
CollectItem::Meter(data) => {
if self.use_stderr {
eprintln!("meter data={:?}", data);
} else {
println!("meter data={:?}", data);
}
}
#[cfg(feature = "management")]
CollectItem::Instance(data) => {
if self.use_stderr {
eprintln!("instance properties data={:?}", data);
} else {
println!("instance properties data={:?}", data);
}
}
#[cfg(feature = "management")]
CollectItem::Ping(data) => {
if self.use_stderr {
eprintln!("ping data={:?}", data);
} else {
println!("ping data={:?}", data);
}
}
}
}
}