Protobuf message extension

I have many different schemes, but there is a set of fields that each scheme contains. I was wondering if there is a way for another scheme to extend the parent scheme and inherit its fields. For example, this is what I want:

message Parent { required string common1 = 0; optional string common2 = 1; } message Child1 { // can we extend the Parent? // I want common1, common2 to be fields here required int c1 = 2; required string c2 = 3; } message Child2 { // can we extend Parent? // I want common1, common2 to be fields here repeated int c3 = 2; repeated string c4 = 3; } 

So that Child1 and Child2 also contain the fields common1 and common2 (and potentially more) from Parent.

Is this possible, and if so, how?

+7
inheritance serialization extends protocol-buffers
source share
1 answer

This is not an exact answer to your question, but we can do something similar to share common parameters.

 message Child1 { required int c1 = 2; required string c2 = 3; } message Child2 { required int c1 = 2; required string c2 = 3; } message Request { required string common1 = 0; optional string common2 = 1; oneof msg { Child1 c1 = 2; Child2 c2 = 3; } } 

Another option is to use the extend keyword

 message Parent { required string common1 = 0; optional string common2 = 1; } message Child1 { extend Parent { optional Child1 c1 = 100; } required int c1 = 2; required string c2 = 3; } 
+3
source share

All Articles