#debugging #everything #bounds #generic #debug-print #debuggable

nightly debug-everything

打印所有调试信息!

1 个稳定版本

1.0.0 2019 年 5 月 23 日

#38 in #everything

无许可协议

3KB

打印所有调试信息!

如果你和我一样,经常发现自己深陷在泛型特质的丛林中,突然需要调试打印一些数据,那么这个crate就是为你准备的。那种不断添加(然后在完成之后删除所有或至少你能找到的)Debug 约束的挣扎已经结束了

use debug_everything::Debuggable;

fn generic<T>(t: T) {
    println!("t = {:?}", t.debug());
}

工作原理

遗憾的是,这依赖于专业化,因此只能在 nightly(截至 2019 年 5 月)上工作。为所有类型实现了 Debuggable 特性,但对实现 Debug 的类型进行了专业化

use debug_everything::Debuggable;
struct Dummy;

assert_eq!("42", format!("{:?}", 42.debug()));
assert_eq!("<no Debug impl>", format!("{:?}", Dummy.debug()));

很简单!

无运行时依赖