| syntax = "proto2"; |
| |
| enum NonZeroBasedEnum { |
| Two = 2; |
| Three = 3; |
| Four = 4; |
| } |
| |
| message SubMessage { |
| required string substuff1 = 1 [default = "1"]; |
| required int32 substuff2 = 2 [default = 2]; |
| optional fixed32 substuff3 = 12365535 [default = 3]; |
| } |
| |
| message EmptyMessage { |
| |
| } |
| |
| enum HugeEnum { |
| Negative = -2147483647; /* protoc doesn't accept -2147483648 here */ |
| Positive = 2147483647; |
| } |
| |
| message Limits { |
| required int32 int32_min = 1; |
| required int32 int32_max = 2; |
| required uint32 uint32_min = 3; |
| required uint32 uint32_max = 4; |
| required int64 int64_min = 5; |
| required int64 int64_max = 6; |
| required uint64 uint64_min = 7; |
| required uint64 uint64_max = 8; |
| required HugeEnum enum_min = 9; |
| required HugeEnum enum_max = 10; |
| required int32 largetag = 65535 [default = 0]; |
| } |
| |
| message IntSizes { |
| required int32 req_int8 = 1 ; |
| required uint32 req_uint8 = 2 ; |
| required sint32 req_sint8 = 3 ; |
| required int32 req_int16 = 4 ; |
| required uint32 req_uint16 = 5 ; |
| required sint32 req_sint16 = 6 ; |
| } |
| |
| message DescriptorSize8 { |
| required int32 first = 1; |
| required int32 second = 22222; |
| } |
| |
| enum MyEnum { |
| Zero = 0; |
| First = 1; |
| Second = 2; |
| Truth = 42; |
| } |
| |
| message AllTypes { |
| required int32 req_int32 = 1; |
| required int64 req_int64 = 2; |
| required uint32 req_uint32 = 3; |
| required uint64 req_uint64 = 4; |
| required sint32 req_sint32 = 5; |
| required sint64 req_sint64 = 6; |
| required bool req_bool = 7; |
| |
| required fixed32 req_fixed32 = 8; |
| required sfixed32 req_sfixed32= 9; |
| required float req_float = 10; |
| |
| required fixed64 req_fixed64 = 11; |
| required sfixed64 req_sfixed64= 12; |
| required double req_double = 13; |
| |
| required string req_string = 14; |
| required bytes req_bytes = 15; |
| required SubMessage req_submsg = 16; |
| required MyEnum req_enum = 17; |
| required EmptyMessage req_emptymsg = 18; |
| required bytes req_fbytes = 19; |
| |
| repeated int32 rep_int32 = 21; |
| repeated int64 rep_int64 = 22; |
| repeated uint32 rep_uint32 = 23; |
| repeated uint64 rep_uint64 = 24; |
| repeated sint32 rep_sint32 = 25; |
| repeated sint64 rep_sint64 = 26; |
| repeated bool rep_bool = 27; |
| |
| repeated fixed32 rep_fixed32 = 28; |
| repeated sfixed32 rep_sfixed32= 29; |
| repeated float rep_float = 30; |
| |
| repeated fixed64 rep_fixed64 = 10031; |
| repeated sfixed64 rep_sfixed64= 10032; |
| repeated double rep_double = 10033; |
| |
| repeated string rep_string = 10034; |
| repeated bytes rep_bytes = 10035; |
| repeated SubMessage rep_submsg = 10036; |
| repeated MyEnum rep_enum = 10037; |
| repeated EmptyMessage rep_emptymsg = 10038; |
| repeated bytes rep_fbytes = 10039; |
| repeated int32 rep_farray = 10040; |
| |
| optional int32 opt_int32 = 10041 [default = 4041]; |
| optional int64 opt_int64 = 10042 [default = 4042]; |
| optional uint32 opt_uint32 = 10043 [default = 4043]; |
| optional uint64 opt_uint64 = 10044 [default = 4044]; |
| optional sint32 opt_sint32 = 10045 [default = 4045]; |
| optional sint64 opt_sint64 = 10046 [default = 4046]; |
| optional bool opt_bool = 10047 [default = false]; |
| |
| optional fixed32 opt_fixed32 = 10048 [default = 4048]; |
| optional sfixed32 opt_sfixed32= 10049 [default = 4049]; |
| optional float opt_float = 10050 [default = 4050]; |
| |
| optional fixed64 opt_fixed64 = 10051 [default = 4051]; |
| optional sfixed64 opt_sfixed64= 10052 [default = 4052]; |
| optional double opt_double = 10053 [default = 4053]; |
| |
| optional string opt_string = 10054 [default = "4054"]; |
| optional bytes opt_bytes = 10055 [default = "\x34\x5C\x00\xff"]; |
| optional SubMessage opt_submsg = 10056; |
| optional MyEnum opt_enum = 10057 [default = Second]; |
| optional EmptyMessage opt_emptymsg = 10058; |
| optional bytes opt_fbytes = 10059 [default = "4059"]; |
| |
| oneof oneof |
| { |
| SubMessage oneof_msg1 = 10060; |
| EmptyMessage oneof_msg2 = 10061; |
| } |
| |
| optional NonZeroBasedEnum opt_non_zero_based_enum = 10062; |
| |
| // Second fixed length array field to test the length check logic. |
| repeated fixed32 rep_farray2 = 95 [packed = true]; |
| |
| // Check support for custom integer sizes |
| required IntSizes req_intsizes = 96; |
| |
| // Check support for 8-word descriptors |
| required DescriptorSize8 req_ds8 = 97; |
| |
| // Check that extreme integer values are handled correctly |
| required Limits req_limits = 98; |
| |
| // Just to make sure that the size of the fields has been calculated |
| // properly, i.e. otherwise a bug in last field might not be detected. |
| required int32 end = 13432099; |
| |
| extensions 200 to 255; |
| } |
| |