4 个版本
0.1.3 | 2020 年 10 月 19 日 |
---|---|
0.1.2 | 2020 年 10 月 18 日 |
0.1.1 | 2020 年 10 月 17 日 |
0.1.0 | 2020 年 10 月 17 日 |
#786 in 调试
19KB
384 代码行
是什么?
告诉你事物的类型。
这个包提供了 what!
宏。这与 todo!
宏功能类似,但同时也提供了类型信息。
fn hello() -> Result<(), Box<dyn Error>> {
what!()
}
就像 todo!
一样,what!
通过所有类型检查,并使编写/构建/测试未完成的代码变得容易。如果它最终进入了编译程序,尝试执行 what!
将引发恐慌。
有趣的部分发生在你运行 cargo what
的时候。
$ cargo what
hole: expecting `std::result::Result<(), Box<dyn std::error::Error>>`
--> src/hello.rs
|
2 | what!()
| ^^^^^^^
不幸的是,自定义诊断实际上并不适用于 Rust 库,需要额外的命令。可以通过 cargo
安装 cargo what
。
$ cargo install cargo-what
cargo what
包装了 cargo build
,以显示代码中任何 what!
的类型信息。
what!
还接受参数并显示它们的类型,这有助于减少“未使用变量”的噪音。
fn hello(a: usize, b: usize) -> usize {
let c = a..b;
what!(a, b, c)
}
使用 cargo what
$ cargo what
hole: expecting `usize`
--> src/hello.rs
|
3 | what!(a, b, c)
| ^^^^^^^^^^^^^^
|
= note: a is `usize`
= note: b is `usize`
= note: c is `std::ops::Range<usize>`
Emacs 快捷键留给读者练习。
依赖
~0–11MB
~69K SLoC