diff options
Diffstat (limited to 'examples/using_union_messages/unionproto.proto')
-rw-r--r-- | examples/using_union_messages/unionproto.proto | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/examples/using_union_messages/unionproto.proto b/examples/using_union_messages/unionproto.proto new file mode 100644 index 00000000..d7c9de2d --- /dev/null +++ b/examples/using_union_messages/unionproto.proto @@ -0,0 +1,30 @@ +// 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. + +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; +} + |