-
Notifications
You must be signed in to change notification settings - Fork 526
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[prost-build] Add Message and Enum specific attributes #783
Comments
Could you explain why you need a message attribute over https://docs.rs/prost-build/latest/prost_build/struct.Config.html#method.type_attribute using this? |
Hi @LucioFranco, yes, the type attribute is applied to all the different types that get generated, and the derive builder attribute fails to compile on enums. error: Unsupported shape `enum`
--> src/gen/api.rs:401:10
|
401 | #[derive(derive_builder::Builder)]
| ^^^^^^^^^^^^^^^^^^^^^^^ As message is mapped to a struct and oneof / enums are mapped to enums this would enable you to generate attributes that are only relevant or correct for a particular type shape. |
Got it I think that makes sense. |
* Allow file descriptor be generated without --include_source_info (tokio-rs#786) * Allow file descriptor be generated without --include_source_info The file descriptor sets generated by rules_proto in bazel don't have this by default, so this allows some flexibility for users to reuse results that are already available to them. It's fairly trivial adjustment so it seemed reasonable to me to allow the flexibility. * revert breaking changes and add default * release 0.11.5 (tokio-rs#788) * Add message and enum attributes to prost-build (tokio-rs#784) closes tokio-rs#783 * chore: Prepare 0.11.6 release (tokio-rs#794) * chore: Added Kani to CI. (#1) (tokio-rs#798) * Added Kani documentation. (tokio-rs#799) * Fix issue with negative nanos in Duration::try_from(), and add tests (tokio-rs#803) * Fix issue with negative nanos in Duration::try_from(), and add a unit test * add proptest for negative nanos * PR comment: remove spurious dbg * Prevent spurious overflow in check_duration_roundtrip test (tokio-rs#804) Co-authored-by: Lucio Franco <[email protected]> * Clarify `default_package_filename` documentation. (tokio-rs#809) * Bump msrv to 1.60 (tokio-rs#814) * chore(types): Remove including generated code (tokio-rs#801) * chore: Update github action (tokio-rs#815) Co-authored-by: Lucio Franco <[email protected]> * chore: Add cargo-machete to detect unused dependencies (tokio-rs#817) * chore: Update msrv to 1.60 (tokio-rs#818) * feat: Added try_normalize to Timestamp (tokio-rs#796) Co-authored-by: Lucio Franco <[email protected]> * Update PropProof docs to note the need to submodule init (tokio-rs#805) Co-authored-by: Lucio Franco <[email protected]> * feat(build): Add direct fds compile support (tokio-rs#819) This commit adds two new compile functions that allow passing a `FileDescriptorSet` and it will generate the Rust code. This allows users to use libraries like `protox` directly and in an ergonomic way. * release 0.11.7 (tokio-rs#821) * fix: correct change in visibility of compiler module (tokio-rs#824) Introduced in tokio-rs#801 Closes tokio-rs#823 * release 0.11.8 (tokio-rs#825) * Add existing roundtrip test to Kani CI and avoid recursive submoduling (tokio-rs#828) * Add existing roundtrip test to Kani CI * Bump up Kani version * Remove `v` from GA version * Update to `syn@2` & `[email protected]` (tokio-rs#833) * Fix corrupted tests and missing CI testing (tokio-rs#832) Co-authored-by: Lucio Franco <[email protected]> * chore: Update to criterion 0.4 (tokio-rs#835) * Fix build in directory not named `prost` (tokio-rs#839) This library will fail to build with the following error when checked out into a directory not named exactly `prost`: error: failed to load manifest for workspace member `/home/alex/src/prost-rs/tests/single-include` Caused by: failed to load manifest for dependency `prost` Caused by: failed to read `/home/alex/src/prost/Cargo.toml` Caused by: No such file or directory (os error 2) This is because the `single-include` test depends on `prost` with the path `../../../prost`. This patch fixes the issue by correcting the path to `../..`. * prost-build: support boxing fields (tokio-rs#802) This allows the user to request boxing of specific fields. This is useful for enum types that might have variants of very different size. * chore: Update to baptiste0928/cargo-install@v2 (tokio-rs#840) Co-authored-by: Lucio Franco <[email protected]> * Fix typo in bail message (tokio-rs#848) --------- Co-authored-by: David Freese <[email protected]> Co-authored-by: Lucio Franco <[email protected]> Co-authored-by: damel_lp <[email protected]> Co-authored-by: Yoshiki Takashima <[email protected]> Co-authored-by: Daniel Schwartz-Narbonne <[email protected]> Co-authored-by: Gilad Naaman <[email protected]> Co-authored-by: tottoto <[email protected]> Co-authored-by: Oliver Browne <[email protected]> Co-authored-by: Marcus Griep <[email protected]> Co-authored-by: Adrian Palacios <[email protected]> Co-authored-by: Donough Liu <[email protected]> Co-authored-by: Alex O'Brien <[email protected]> Co-authored-by: Thomas Orozco <[email protected]> Co-authored-by: Brendon Daugherty <[email protected]>
I have a large-ish api and want to be able to auto-generate
derive_builder
builders for it similar to here #399.From the code-generator it seems to be an easy addition of just adding the builder functions.
Example usage looks like this.
The text was updated successfully, but these errors were encountered: