cs-trace 0.14.0

Tracing utilities.
Documentation
use core::fmt;

use crate::Span;

// the Tracer trait.
pub trait Tracer: Send + Sync + fmt::Debug + fmt::Display {
    fn trace_tree_name(&self) -> &'static str;
    fn clone_trace(&self) -> 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;
    
    fn span(&self) -> &Span;
}

impl Clone for Box<dyn Tracer> {
    fn clone(&self) -> Box<dyn Tracer> {
        return self.clone_trace();
    }
}

impl PartialEq for Box<dyn Tracer> {
    fn eq(&self, other: &Self) -> bool {
        return self.span() == other.span();
    }
}