Rust note: Traits on data types are generally 'opt-in explicitly'. e.g. The Debug trait is not default and this allows for careful exposure of data to logs... e.g. sensitive (keys/passwords) should either not have it or have a custom implementation that scrubs the data before landing in logs.