5个不稳定版本
0.3.0 | 2024年3月1日 |
---|---|
0.2.2 | 2023年1月27日 |
0.2.1 | 2023年1月24日 |
0.2.0 | 2021年12月19日 |
0.1.0 | 2021年11月29日 |
#16 in #extra
135 每月下载量
用于 4 个crate(2个直接使用)
10KB
140 行
派生调试额外功能
更可定制的 #[derive(Debug)]
添加三个选项
#[debug_single_tuple_inline]
use derive_debug_extras::DebugExtras;
#[derive(DebugExtras)]
#[debug_single_tuple_inline]
struct A(pub u32);
在 A
上启用详细调试,保留单行。
例如,对于 println!("{:#?}", vec![A(123), A(145), A(125),])
// Without #[debug_single_tuple_inline]
[
A(
123
),
A(
145
),
A(
125
),
]
// With #[debug_single_tuple_inline]
[
A(123),
A(145),
A(125),
]
#[debug_single_tuple_inline]
也适用于枚举。对于具有多个字段或命名字段的未命名元组将失败。
要为此将默认值设置为具有单个字段的结构的详细格式化,可以使用 auto-debug-single-tuple-inline
功能来避免在结构体上每次都编写 #[debug_single_tuple_inline]
#[debug_ignore]
#[derive(DebugExtras)]
struct C {
x: u32,
#[debug_ignore]
_y: bool,
}
在调试时忽略 _y
字段
#[debug_as_display]
#[derive(DebugExtras)]
struct D {
#[debug_as_display]
x: String,
}
将 x
字段打印出来,就像它被 Display
格式化一样
例如,对于 println!("{:#?}", D("Hello World".to_string()))
// With #[debug_as_display]
D(Hello World)
// Without #[debug_as_display]
D("Hello World")
依赖项
~335–780KB
~19K SLoC