| syntax = "proto3"; |
| // package name placeholder |
| |
| message SubMessage { |
| string substuff1 = 1; |
| int32 substuff2 = 2; |
| fixed32 substuff3 = 3; |
| } |
| |
| message EmptyMessage { |
| |
| } |
| |
| enum HugeEnum { |
| HE_Zero = 0; |
| Negative = -2147483647; /* protoc doesn't accept -2147483648 here */ |
| Positive = 2147483647; |
| } |
| |
| message Limits { |
| int32 int32_min = 1; |
| int32 int32_max = 2; |
| uint32 uint32_min = 3; |
| uint32 uint32_max = 4; |
| int64 int64_min = 5; |
| int64 int64_max = 6; |
| uint64 uint64_min = 7; |
| uint64 uint64_max = 8; |
| HugeEnum enum_min = 9; |
| HugeEnum enum_max = 10; |
| } |
| |
| enum MyEnum { |
| Zero = 0; |
| First = 1; |
| Second = 2; |
| Truth = 42; |
| } |
| |
| message AllTypes { |
| int32 sng_int32 = 1; |
| int64 sng_int64 = 2; |
| uint32 sng_uint32 = 3; |
| uint64 sng_uint64 = 4; |
| sint32 sng_sint32 = 5; |
| sint64 sng_sint64 = 6; |
| bool sng_bool = 7; |
| |
| fixed32 sng_fixed32 = 8; |
| sfixed32 sng_sfixed32= 9; |
| float sng_float = 10; |
| |
| fixed64 sng_fixed64 = 11; |
| sfixed64 sng_sfixed64= 12; |
| double sng_double = 13; |
| |
| string sng_string = 14; |
| bytes sng_bytes = 15; |
| SubMessage sng_submsg = 16; |
| MyEnum sng_enum = 17; |
| EmptyMessage sng_emptymsg = 18; |
| bytes sng_fbytes = 19; |
| |
| repeated int32 rep_int32 = 21 [packed = true]; |
| repeated int64 rep_int64 = 22 [packed = true]; |
| repeated uint32 rep_uint32 = 23 [packed = true]; |
| repeated uint64 rep_uint64 = 24 [packed = true]; |
| repeated sint32 rep_sint32 = 25 [packed = true]; |
| repeated sint64 rep_sint64 = 26 [packed = true]; |
| repeated bool rep_bool = 27 [packed = true]; |
| |
| repeated fixed32 rep_fixed32 = 28 [packed = true]; |
| repeated sfixed32 rep_sfixed32= 29 [packed = true]; |
| repeated float rep_float = 30 [packed = true]; |
| |
| repeated fixed64 rep_fixed64 = 31 [packed = true]; |
| repeated sfixed64 rep_sfixed64= 32 [packed = true]; |
| repeated double rep_double = 33 [packed = true]; |
| |
| repeated string rep_string = 34; |
| repeated bytes rep_bytes = 35; |
| repeated SubMessage rep_submsg = 36; |
| repeated MyEnum rep_enum = 37 [packed = true]; |
| repeated EmptyMessage rep_emptymsg = 38; |
| repeated bytes rep_fbytes = 39; |
| |
| oneof oneof |
| { |
| SubMessage oneof_msg1 = 60; |
| EmptyMessage oneof_msg2 = 61; |
| SubMessage static_msg = 63; |
| } |
| |
| // Check that extreme integer values are handled correctly |
| 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. |
| int32 end = 999; |
| } |
| |