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()));
很简单!