tokio-rs / prost

PROST! a Protocol Buffers implementation for the Rust Language
Apache License 2.0
3.92k stars 504 forks source link

Fix bug on codegen in ::prost::Enumeration #955

Closed megsdevs closed 10 months ago

megsdevs commented 11 months ago

Fixes #927 and #812, caused by #853.

Reverting the changes until a working implementation + test(s) have been built.

I encourage @Leulz to address this before bringing it back in.

megsdevs commented 11 months ago

draft until resolved compatibility with current version of tonic

megsdevs commented 11 months ago

This uncovered another bug with codegen where all message data structures are not implementing the Message trait with the expected path. An example:

error[E0277]: the trait bound `grpc_codegen::Empty: prost::message::Message` is not satisfied
    --> /Users/megan/git/trade-api/target/debug/build/valorem-trade-9bf8c220466cd8d7/out/valorem.trade.v1.rs:1706:65
     |
1706 |                         let mut grpc = tonic::server::Grpc::new(codec)
     |                                        ------------------------ ^^^^^ the trait `prost::message::Message` is not implemented for `grpc_codegen::Empty`
     |                                        |
     |                                        required by a bound introduced by this call
     |
     = help: the following other types implement trait `prost::message::Message`:
               bool
               i32
               i64
               u32
               u64
               f32
               f64
               prost_types::compiler::Version
             and 76 others
     = note: required for `ProstCodec<FeeStructure, grpc_codegen::Empty>` to implement `Codec`

Open to suggestions on resolving this