1// This is an example of how to handle 'union' style messages 2// with nanopb, without allocating memory for all the message types. 3// 4// There is no official type in Protocol Buffers for describing unions, 5// but they are commonly implemented by filling out exactly one of 6// several optional fields. 7 8syntax = "proto2"; 9 10message MsgType1 11{ 12 required int32 value = 1; 13} 14 15message MsgType2 16{ 17 required bool value = 1; 18} 19 20message MsgType3 21{ 22 required int32 value1 = 1; 23 required int32 value2 = 2; 24} 25 26message UnionMessage 27{ 28 optional MsgType1 msg1 = 1; 29 optional MsgType2 msg2 = 2; 30 optional MsgType3 msg3 = 3; 31} 32 33