Skip to content

Tags: google/crubit

Tags

latest

Toggle latest's commit message
Generate `impl Debug` bindings for records that `impl_debug`

By default, generates a custom `Debug` implementation for all concrete
structs/classes and all unions, but not abstract structs/classes. Introduces attribute
`CRUBIT_OVERRIDE_DEBUG` to opt-out (or opt-in for abstract types).

Unlike Rust's `derive(Debug)`, does not require all fields to `impl Debug`.
However, only guaranteed to be exhaustive if all the following hold:
* The type is a struct or class.
* Every field is supported, named, and implements `Debug`, including non-generic Rust
  types that implement `Debug`.
* The type has no bases.

The `record_impl_debug` feature now also deprecates `CRUBIT_TRAIT_DERIVE(Debug)` in favor of the custom `Debug` implementation.

PiperOrigin-RevId: 956793150