1个不稳定版本
0.1.0 | 2023年3月27日 |
---|
#1582 在 进程宏
8KB
104 行
浅调试
一个允许任何类型派生一个非常简单和“浅”的调试实现的crate。该实现只会打印枚举变体,而不是变体的内容。对于结构体,它只会打印结构体的名称,以及任何字段值。
这主要用于枚举,当变体本身已经是有用的信息时。由于没有打印内部值,它们不需要实现Debug
,因此这也可以在高度泛型代码中非常有用,您只需要一个快速简单的方法来获取调试信息。
示例
#[derive(ShallowDebug)]
enum MyEnum<A, B, C> {
A(A),
B(B),
C(C),
}
let value: MyEnum<i32, &str, usize> = MyEnum::A(123);
assert_eq!(format!("{value:?}"), "MyEnum::A(..)");
lib.rs
:
浅调试
一个允许任何类型派生一个非常简单和“浅”的调试实现的crate。该实现只会打印枚举变体,而不是变体的内容。对于结构体,它只会打印结构体的名称,以及任何字段值。
这主要用于枚举,当变体本身已经是有用的信息时。由于没有打印内部值,它们不需要实现Debug
,因此这也可以在高度泛型代码中非常有用,您只需要一个快速简单的方法来获取调试信息。
示例
#[derive(ShallowDebug)]
enum MyEnum<A, B, C> {
A(A),
B(B),
C(C),
}
let value: MyEnum<i32, &str, usize> = MyEnum::A(123);
assert_eq!(format!("{value:?}"), "MyEnum::A(..)");
依赖项
~255–700KB
~17K SLoC