// 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;
}

