5 个不稳定版本
0.2.0 | 2021年3月4日 |
---|---|
0.1.1 | 2020年11月4日 |
0.1.0 | 2020年10月30日 |
0.0.2 | 2020年10月28日 |
0.0.1 | 2020年10月28日 |
#3 在 #partially
78 每月下载量
在 5 个包 (3 个直接使用) 中使用
13KB
114 代码行数,不包括注释
partialdebug
为不所有字段都实现 Debug 的类型派生 Debug 接口。
此包在稳定版和 no_std
下工作。在夜间编译器中,可以使用不稳定的特性进行基于特化的特性检测和/或 ..
格式化。
带类型信息的占位符
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
特性后的夜间编译器上可用。
需要在用户代码中启用 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, .. }");
注意事项
泛型类型的特性检测需要特化。要启用基于特化的特性检测,请使用夜间编译器并启用 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 License, Version 2.0 或 MIT 许可证 下授权。除非您明确声明,否则任何旨在包含在此包中的贡献,根据 Apache-2.0 许可证的定义,均应如上双授权,不附加任何额外的条款或条件。
依赖关系
~1.5MB
~36K SLoC