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

Download history 52/week @ 2024-04-01 19/week @ 2024-04-08 28/week @ 2024-04-15 61/week @ 2024-04-22 86/week @ 2024-04-29 32/week @ 2024-05-06 26/week @ 2024-05-13 34/week @ 2024-05-20 23/week @ 2024-05-27 22/week @ 2024-06-03 20/week @ 2024-06-10 24/week @ 2024-06-17 41/week @ 2024-06-24 5/week @ 2024-07-08 30/week @ 2024-07-15

78 每月下载量
5 个包 (3 个直接使用) 中使用

MIT/Apache

13KB
114 代码行数,不包括注释

partialdebug

github Crates.io docs.rs

为不所有字段都实现 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.0MIT 许可证 下授权。
除非您明确声明,否则任何旨在包含在此包中的贡献,根据 Apache-2.0 许可证的定义,均应如上双授权,不附加任何额外的条款或条件。

依赖关系

~1.5MB
~36K SLoC