Skip to content

Generate impl Debug bindings for records that impl_debug#1347

Open
copybara-service[bot] wants to merge 1 commit into
mainfrom
test_938342932
Open

Generate impl Debug bindings for records that impl_debug#1347
copybara-service[bot] wants to merge 1 commit into
mainfrom
test_938342932

Conversation

@copybara-service

@copybara-service copybara-service Bot commented Jul 8, 2026

Copy link
Copy Markdown

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.

@google-cla

google-cla Bot commented Jul 8, 2026

Copy link
Copy Markdown

Thanks for your pull request! It looks like this may be your first contribution to a Google open source project. Before we can look at your pull request, you'll need to sign a Contributor License Agreement (CLA).

View this failed invocation of the CLA check for more information.

For the most up to date status, view the checks section at the bottom of the pull request.

@copybara-service copybara-service Bot force-pushed the test_938342932 branch 6 times, most recently from 827f162 to ba3c91e Compare July 8, 2026 22:48
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: 938342932
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants