facet is a reflection library for Rust. One derive macro gives you serialization, pretty-printing, diffing, and more.

#[derive(Facet)]
struct Config {
    name: String,
    port: u16,
    #[facet(sensitive)]
    api_key: String,
}

From this single derive, you get:

Choose your path