3 个不稳定版本
使用旧 Rust 2015
0.1.0 | 2018年4月8日 |
---|---|
0.0.2 | 2018年2月28日 |
0.0.1 | 2018年2月27日 |
#13 in #ic
89 每月下载量
12KB
201 行
icecream-rs
为 Rust 提供使用检查打印调试信息,灵感来自 Python 的 icecream。
我在编写 Rust 时经常使用大量的打印调试。 icecream
提供了 ic!()
和 ice!()
宏,使打印调试更方便,通过格式化打印语句并添加有用的信息,如
- 行号
- 调用函数
- 模块名称
- 文件名称
使用 ic!()
进行调试
// src/example.rs
#[macro_use]
extern crate icecream;
mod a_module {
fn some_function() {
let x = Some(99);
ic!();
ic!(x);
ic!(x.unwrap() + 1);
ice!();
}
}
纯文本
ic!()
打印文件名和行号。
example.rs:8 ❯
匹配标识符
ic!(x)
打印变量的名称和以 std::fmt::Debug
格式化的值。
example.rs:9 ❯ x = Some(99)
匹配表达式
ic!(x.unwrap() + 1)
计算内部表达式并打印结果值。
example.rs:10 ❯ x.unwrap() + 1 = 100
打印更多信息
ice!()
打印更长的输出,包括调用模块和函数。
example.rs::a_module::some_function:11 ❯
配置 ic!()
您还可以配置打印输出中使用的符号字符。
// main.rs
#[macro_use]
extern crate icecream;
fn main() {
icecream::set_equals_symbol(" -> ");
let x = 1;
ic!(x);
}
main.rs:7 ❯ x -> 1
测试
测试必须使用 --nocapture
标志单线程运行。
RUST_TEST_THREADS=1 cargo test -- --nocapture
依赖项
~2.5–3.5MB
~73K SLoC