3 个不稳定版本
0.1.0 | 2024年6月22日 |
---|---|
0.0.0-alpha.1 | 2024年6月22日 |
#329 in 过程宏
每月59次下载
9KB
99 行
derive-masked
derive-masked
是一个过程宏crate,用于生成遮罩敏感字段的 Display
和 Debug
实现代码,确保结构化数据的输出既安全又受控。
特性
- 为遮罩的
Display
特性实现生成DisplayMasked
- 为遮罩的
Debug
特性实现生成DebugMasked
- 使用
#[masked]
属性遮罩敏感字段。
如果您想的话,可以同时生成 DisplayMasked
和 DebugMasked
使用方法
添加到 Cargo.toml
cargo add derive-masked
示例
use derive_masked::{DebugMasked, DisplayMasked};
#[derive(DebugMasked, DisplayMasked)]
struct User {
name: String,
#[masked]
password: String,
}
fn main() {
let user = User {
name: "Alice".to_string(),
password: "super_secret".to_string(),
};
// Uses DisplayMasked. Output: User { name: Alice, password: ***** }
println!("{}", user);
// Uses DebugMasked. Output: User { name: "Alice", password: ***** }
println!("{:?}", user);
// Uses DebugMasked with pretty print formatter. Output:
// User {
// name: "Alice",
// password: *****
// }
println!("{:#?}", user);
}
更多示例,请参阅 示例目录。
获取帮助
如需支持,请在 GitHub 上提交问题。
许可
根据您的选择,许可协议为 MIT 或 Apache 2.0。
依赖
~245–680KB
~16K SLoC