// This is an example of how to handle 'union' style messages | |
// with nanopb, without allocating memory for all the message types. | |
// | |
// There is no official type in Protocol Buffers for describing unions, | |
// but they are commonly implemented by filling out exactly one of | |
// several optional fields. | |
syntax = "proto2"; | |
message MsgType1 | |
{ | |
required int32 value = 1; | |
} | |
message MsgType2 | |
{ | |
required bool value = 1; | |
} | |
message MsgType3 | |
{ | |
required int32 value1 = 1; | |
required int32 value2 = 2; | |
} | |
message UnionMessage | |
{ | |
optional MsgType1 msg1 = 1; | |
optional MsgType2 msg2 = 2; | |
optional MsgType3 msg3 = 3; | |
} | |