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