syntax = "proto2"; import 'nanopb.proto'; message SubMessage { repeated int32 array = 1 [(nanopb).max_count = 8]; } message OneOfMessage { required int32 prefix = 1; oneof values { int32 first = 5; string second = 6 [(nanopb).max_length = 8]; SubMessage third = 7; } required int32 suffix = 99; } message topMessage { required int32 start = 1; oneof msg { MyMessage1 msg1 = 2; MyMessage2 msg2 = 3; } required int32 end = 4; } message MyMessage1 { required uint32 n1 = 1; required uint32 n2 = 2; required string s = 3 [(nanopb).max_length = 32]; } message MyMessage2 { required uint32 num = 1; required bool b = 2; } message MyMessage3 { required bool bbb = 1; required string ss = 2 [(nanopb).max_length = 1]; } message MyMessage4 { required bool bbbb = 1; required string sss = 2 [(nanopb).max_length = 2]; required uint32 num = 3; required uint32 num2 = 4; }