4个版本 (2个重大变更)
0.2.0 | 2021年3月4日 |
---|---|
0.1.1 | 2020年11月4日 |
0.1.0 | 2020年10月30日 |
0.0.1 | 2020年10月28日 |
#18 在 #non
每月下载量 121
在 6 个crate中使用 (通过 partialdebug)
13KB
299 行
partialdebug
为不是所有字段都实现了Debug的类型派生Debug。
此crate在稳定版和no_std
下工作。在nightly版本中,可以使用unstable
功能来实现基于特化的特性和/或..
格式化。
带类型信息的占位符
use partialdebug::placeholder::PartialDebug;
#[derive(PartialDebug)]
struct Dog {
legs: usize,
eyes: usize,
dna: DNA,
}
assert_eq!(format!("{:?}", Dog::new()), "Dog { legs: 4, eyes: 2, dna: DNA }");
带自定义文本的占位符
use partialdebug::placeholder::PartialDebug;
#[derive(PartialDebug)]
#[debug_placeholder = "Unknown"]
struct Dog {
legs: usize,
eyes: usize,
dna: DNA,
}
assert_eq!(format!("{:?}", Dog::new()), "Dog { legs: 4, eyes: 2, dna: Unknown }");
非穷尽
仅在设置unstable
功能后的nightly版本中可用。
需要用户代码中启用debug_non_exhaustive
功能。
仅适用于具有命名字段的struct。
#![feature(debug_non_exhaustive)]
use partialdebug::non_exhaustive::PartialDebug;
#[derive(PartialDebug)]
struct Dog {
legs: usize,
eyes: usize,
dna: DNA,
}
assert_eq!(format!("{:?}", Dog::new()), "Dog { legs: 4, eyes: 2, .. }");
注意事项
泛型类型的特性检测需要特化。要启用基于特化的特性检测,请使用nightly编译器并启用unstable
功能。
use partialdebug::placeholder::PartialDebug;
#[derive(PartialDebug)]
struct Container<T>(T);
#[cfg(feature = "unstable")]
assert_eq!(format!("{:?}", Container(42)), "Container(42)");
#[cfg(not(feature = "unstable"))]
assert_eq!(format!("{:?}", Container(42)), "Container(T)");
许可证
根据您的选择,在Apache许可证,版本2.0或MIT许可证下许可。除非您明确声明,否则您有意提交给此crate的任何贡献,根据Apache-2.0许可证定义,将根据上述许可双重许可,不附加任何其他条款或条件。
依赖关系
~1.5MB
~35K SLoC