| 1234567891011121314151617181920212223242526272829303132333435363738394041 | syntax = "proto2";import "nanopb.proto";message SubMessage{    optional string dynamic_str = 1 [(nanopb).type = FT_POINTER];    repeated string dynamic_str_arr = 2 [(nanopb).type = FT_POINTER];    repeated SubMessage dynamic_submsg = 3 [(nanopb).type = FT_POINTER];}message TestMessage{    required SubMessage static_req_submsg = 1 [(nanopb).type = FT_STATIC];    optional SubMessage dynamic_submsg = 2 [(nanopb).type = FT_POINTER];    optional SubMessage static_opt_submsg = 3 [(nanopb).type = FT_STATIC];    repeated SubMessage static_rep_submsg = 4 [(nanopb).type = FT_STATIC, (nanopb).max_count=2];    extensions 100 to 200;}extend TestMessage{    optional SubMessage dynamic_ext = 100 [(nanopb).type = FT_POINTER];    optional SubMessage static_ext = 101 [(nanopb).type = FT_STATIC];}message OneofMessage{    required int32 first = 1;    oneof msgs    {        TestMessage msg1 = 2;        SubMessage msg2 = 3;    }    required int32 last = 4;}message RepeatedMessage{    required int32 first = 1;    repeated SubMessage subs = 2;}
 |