tracing-span-tree 0.1.1

Simple tracing subscriber for hierarchical profiling
Documentation
use std::{thread, time::Duration};

#[test]
fn not_aggregated() {
    tracing_span_tree::span_tree().enable();
    top_level()
}

#[test]
fn aggregated() {
    tracing_span_tree::span_tree().aggregate(true).enable();
    top_level()
}

fn top_level() {
    let _s = tracing::info_span!("top_level").entered();
    for i in 0..4 {
        middle(i)
    }
}

fn middle(i: u64) {
    let _s = tracing::info_span!("middle").entered();
    thread::sleep(Duration::from_millis(i));
    if i % 2 == 0 {
        leaf()
    }
}

fn leaf() {
    let _s = tracing::info_span!("leaf").entered();
    thread::sleep(Duration::from_millis(1));
}