1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
// the Tracer trait
pub trait Tracer: Send + Sync {
    fn name(&self) -> &str;
    fn child(&self, child_name: &str) -> Box<dyn Tracer>;

    fn trace(&self, message: &str) -> &dyn Tracer;
    fn info(&self, message: &str) -> &dyn Tracer;
    fn debug(&self, message: &str) -> &dyn Tracer;
    fn warn(&self, message: &str) -> &dyn Tracer;
    fn error(&self, message: &str) -> &dyn Tracer;
}