6 个版本 (3 个破坏性更新)
0.6.1 | 2024年1月22日 |
---|---|
0.6.0 | 2024年1月21日 |
0.5.1 | 2023年3月11日 |
0.5.0 | 2020年6月12日 |
0.3.0 | 2020年2月1日 |
#23 in 值格式化
40,050 每月下载量
用于 40 个库(17 个直接使用)
7KB
82 行
custom_debug
按字段自定义格式化 Debug
。
示例用法
以下展示了 custom_debug
的功能
use custom_debug::Debug;
use std::fmt;
#[derive(Debug)]
struct Foo {
#[debug(format = "{} things")]
x: i32,
#[debug(skip)]
y: i32,
#[debug(with = hex_fmt)]
z: i32,
#[debug(skip_if = Option::is_none)]
label: Option<String>,
}
fn hex_fmt<T: fmt::Debug>(n: &T, f: &mut fmt::Formatter) -> fmt::Result {
write!(f, "0x{:02X?}", n)
}
生成的调试输出将类似于以下内容
Foo {
x: 42 things,
z: 0xAB
}
字段属性参考
以下部分中的属性被认为是相互排斥的。
跳过属性
skip |
无条件跳过一个字段。 |
skip_if= path::to::function |
如果 path::to::function(&field) 返回 true ,则跳过一个字段。 |
格式化属性
format= "格式化字符串 {}" |
使用格式化字符串格式化一个字段。必须包含一个占位符({} )和您选择的修饰符。 |
with= path::to::formatter |
使用path::to::formatter 格式化字段。所需的签名是fn(&T, &mut std::fmt::Formatter) -> std::fmt::Result 其中T 是与字段类型兼容的类型(即函数可以是泛型的,并且适用强制转换)。 |
依赖关系
~1.1–1.6MB
~34K SLoC