This PR introduces support for nested types within protobuf message definitions. This enhancement allows for more complex and structured data organization within our protobuf schemas.
Changes include modifications to the message parsing logic to correctly handle and include nested types in file descriptor dependencies. This ensures that all nested types are properly recognized and processed.
Unit test
Test cases run with message HelloRequest defined as follow:
> grpcurl -plaintext localhost:50051 describe helloworld.HelloRequest
Failed to resolve symbol "helloworld.HelloRequest": proto: message field "helloworld.HelloRequest.Payload.data" cannot resolve type: "google.protobuf.StringValue" not found
After implement:
> grpcurl -plaintext localhost:50051 describe helloworld.HelloRequest
helloworld.HelloRequest is a message:
message HelloRequest {
string name = 1;
.helloworld.HelloRequest.Payload payload = 2;
message Payload {
.google.protobuf.StringValue data = 1;
.helloworld.HelloRequest.Payload.Location location = 2;
message Location {
double latitude = 1;
double longitude = 2;
}
}
}
Summary
This PR introduces support for nested types within protobuf message definitions. This enhancement allows for more complex and structured data organization within our protobuf schemas.
Changes include modifications to the message parsing logic to correctly handle and include nested types in file descriptor dependencies. This ensures that all nested types are properly recognized and processed.
Unit test
Test cases run with message
HelloRequest
defined as follow:Before implement:
After implement:
And
mix test
passed all test cases.