# BetterDebug: Saner and cooler Debug macro for rust
This crate aims to provide a nice, and actually sane implementation of the `Debug`
trait.
This macro provides the following features, compared to the standard library `Debug`'s macro:
- Mark a field as secret (this will hide its contents when fmt::Debug is called upon it)
- Ability to use a custom formatter function for each struct field. Furthermore, you have the ability to return a `None` in your custom formatter if you want to skip printing that specific field, or if you want to use the default formatter. All of this can be configured via a macro attribute.
- Ability to prevent fields from being formatted.
- Ability to rename any given field to whatever you want.
## Examples
Note: You can find more examples [here](https://docs.rs/better-debug/1.0.0/better_debug/).
```rust
use better_debug::BetterDebug;
fn foo(foo: &Foo) -> Option<&'static str> {
if foo.bar.len() < 5 {
return Some("lorem ipsum");
}
None
}
#[derive(BetterDebug)]
struct Foo {
#[better_debug(cust_formatter = "foo")]
bar: String,
baz: String,
}
```
## License
MIT