All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
0.1.1 - 2025-11-28
- Fixed compatibility with
facet-macros-parse0.31.8 breaking API changes whereDelimitedVecfield.0became private - Fixed broken documentation link to
facet::Facet(facet is a dev-dependency) - Fixed clippy warnings about large error variants in Result types
0.1.0 - 2025-01-20
- Initial release of
safe-debug SafeDebugderive macro for automatic sensitive field redaction- Support for named structs, tuple structs, and unit structs
- Comprehensive enum support:
- Unit variants (
Variant) - Tuple variants (
Variant(T, U)) with per-field sensitivity - Struct variants (
Variant { field: T }) with per-field sensitivity - Mixed variant types in same enum
- Unit variants (
- Full generic support:
- Type parameters with auto-generated trait bounds
- Lifetime parameters
- Higher-ranked trait bounds (HRTB) for facet integration
- Multi-generic types (
Pair<T, U>,Triple<T, U, V>)
- Pretty-print formatting support (
{:#?}) - Security-first fallback behavior:
- Structs: Redact all fields if metadata unavailable
- Enums: Show only type name if metadata unavailable
- Zero unsafe code
- Minimal runtime overhead (single Shape access + per-field sensitivity check)
- MIT OR Apache-2.0 dual license
- Automatic
[REDACTED]output for fields marked#[facet(sensitive)] - Conservative fallback: fails safe by hiding data when metadata is unavailable
- No data leakage in debug output for HIPAA-compliant and other sensitive applications