2 个版本
| 0.2.1 | 2021 年 11 月 16 日 |
|---|---|
| 0.2.0 | 2021 年 11 月 16 日 |
#9 在 #dbg
5KB
printd
此软件包提供对 dbg!() 宏的轻微修改版本。宏 printd!() 打印一个或多个可以带有标签的表达式。
与 std 中的 dbg!() 宏相比,它不使用“花哨”的调试格式化程序(:#?),因为当调试的变量多于几个时,输出有时会太大。
该宏还支持打印调试消息并对多个表达式进行标记。(见示例。)
还有 eprintd!() 用于打印到 stderr。
示例
基本用法。
printd!(1 + 2);
// [printd/README.md:20] 1 + 2 = 3
类似于 dbg!() 的用法,但输出更小。
let foo = vec![1, 2, 3];
dbg!(foo);
// [printd/README.md:31] foo = [
// 1,
// 2,
// 3,
// ]
let foo = vec![1, 2, 3];
printd!(foo);
// [printd/README.md:39] foo = [1, 2, 3]
支持多个表达式。
let foo = vec![1, 2, 3];
let bar = 69;
printd!(foo, bar);
// [printd/README.md:50] foo = [1, 2, 3]
// [printd/README.md:50] bar = 69
支持(美观的)调试消息。宏 dbg!() 不关心消息是否是字符串字面量,并打印丑陋的输出。
dbg!("Hello world!");
// [printd/README.md:62] "Hello world!" = "Hello world!"
printd!("Hello world!");
// [printd/README.md:65] "Hello world!"
您可以标记调试表达式以更好地组织它们。带有标签的表达式只会打印一次源位置。
let foo = vec![1, 2, 3];
let bar = 69;
let idk = String::from("Something else then foo and bar\n");
printd!("Very important variables", foo, bar);
// [printd/README.md:77] Very important variables
// foo = [1, 2, 3]
// bar = 69
// idk = "Something else then foo and bar\n"