better-debug

Crates.iobetter-debug
lib.rsbetter-debug
version1.0.1
sourcesrc
created_at2023-11-11 22:53:05.240573
updated_at2023-11-11 23:00:56.001102
descriptionA cooler, and sane Debug macro
homepage
repositoryhttps://github.com/rakbladsvalsen/BetterDebug
max_upload_size
id1032486
size21,032
spellbound (rakbladsvalsen)

documentation

README

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.

 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

Commit count: 4

cargo fmt