#graph #callstack #lazy-evaluation #visualize #produces #spanner #once-cell

spannify

一个生成美观图表来可视化你的调用栈的crate。

7 个版本

0.1.5 2024 年 8 月 2 日
0.1.4 2024 年 8 月 2 日
0.1.2 2024 年 7 月 31 日
0.0.2 2024 年 7 月 29 日

142科学 分类中

Download history 555/week @ 2024-07-28 31/week @ 2024-08-04

每月下载 586

MIT 许可证

27KB
462 代码行

Spannify

Build status Crates.io License

一个生成美观图表来可视化你的调用栈的小型Rust crate。

示例

use once_cell::sync::Lazy;
use spannify::{config::Config, core::StdoutSpanner, spf};

static SPANNER: Lazy<StdoutSpanner> =
    Lazy::new(|| StdoutSpanner::new().with_config(Config::new().with_skip(1)));

fn fib(n: usize) -> usize {
    let _span = spf!(SPANNER, "fib({n})");
    match n {
        0 => 0,
        1 | 2 => 1,
        _ => fib(n - 1) + fib(n - 2),
    }
}

fn main() {
    fib(5);
}

输出

┌fib(5)
| ┌fib(4)
| ¦ ┌fib(3)
| ¦ ┆ ┌fib(2)
| ¦ ┆ └fib(2)
| ¦ ┆ ┌fib(1)
| ¦ ┆ └fib(1)
| ¦ └fib(3)
| ¦ ┌fib(2)
| ¦ └fib(2)
| └fib(4)
| ┌fib(3)
| ¦ ┌fib(2)
| ¦ └fib(2)
| ¦ ┌fib(1)
| ¦ └fib(1)
| └fib(3)
└fib(5)

文档

请访问 docs.rs 查看完整文档,或者查看 examples 中的示例。

无运行时依赖