| syntax = "proto3"; |
| |
| import 'proto/test_include.proto'; |
| import 'proto/test_no_namespace.proto'; |
| import 'proto/test_php_namespace.proto'; |
| import 'proto/test_empty_php_namespace.proto'; |
| import 'proto/test_prefix.proto'; |
| |
| package foo; |
| |
| message TestMessage { |
| // Singular |
| int32 optional_int32 = 1; |
| int64 optional_int64 = 2; |
| uint32 optional_uint32 = 3; |
| uint64 optional_uint64 = 4; |
| sint32 optional_sint32 = 5; |
| sint64 optional_sint64 = 6; |
| fixed32 optional_fixed32 = 7; |
| fixed64 optional_fixed64 = 8; |
| sfixed32 optional_sfixed32 = 9; |
| sfixed64 optional_sfixed64 = 10; |
| float optional_float = 11; |
| double optional_double = 12; |
| bool optional_bool = 13; |
| string optional_string = 14; |
| bytes optional_bytes = 15; |
| |
| TestEnum optional_enum = 16; |
| Sub optional_message = 17; |
| bar.TestInclude optional_included_message = 18; |
| TestMessage recursive = 19; |
| |
| // Repeated |
| repeated int32 repeated_int32 = 31; |
| repeated int64 repeated_int64 = 32; |
| repeated uint32 repeated_uint32 = 33; |
| repeated uint64 repeated_uint64 = 34; |
| repeated sint32 repeated_sint32 = 35; |
| repeated sint64 repeated_sint64 = 36; |
| repeated fixed32 repeated_fixed32 = 37; |
| repeated fixed64 repeated_fixed64 = 38; |
| repeated sfixed32 repeated_sfixed32 = 39; |
| repeated sfixed64 repeated_sfixed64 = 40; |
| repeated float repeated_float = 41; |
| repeated double repeated_double = 42; |
| repeated bool repeated_bool = 43; |
| repeated string repeated_string = 44; |
| repeated bytes repeated_bytes = 45; |
| |
| repeated TestEnum repeated_enum = 46; |
| repeated Sub repeated_message = 47; |
| repeated TestMessage repeated_recursive = 48; |
| |
| oneof my_oneof { |
| int32 oneof_int32 = 51; |
| int64 oneof_int64 = 52; |
| uint32 oneof_uint32 = 53; |
| uint64 oneof_uint64 = 54; |
| uint32 oneof_sint32 = 55; |
| uint64 oneof_sint64 = 56; |
| uint32 oneof_fixed32 = 57; |
| uint64 oneof_fixed64 = 58; |
| uint32 oneof_sfixed32 = 59; |
| uint64 oneof_sfixed64 = 60; |
| double oneof_double = 61; |
| float oneof_float = 62; |
| bool oneof_bool = 63; |
| string oneof_string = 64; |
| bytes oneof_bytes = 65; |
| TestEnum oneof_enum = 66; |
| Sub oneof_message = 67; |
| } |
| |
| map<int32, int32> map_int32_int32 = 71; |
| map<int64, int64> map_int64_int64 = 72; |
| map<uint32, uint32> map_uint32_uint32 = 73; |
| map<uint64, uint64> map_uint64_uint64 = 74; |
| map<sint32, sint32> map_sint32_sint32 = 75; |
| map<sint64, sint64> map_sint64_sint64 = 76; |
| map<fixed32, fixed32> map_fixed32_fixed32 = 77; |
| map<fixed64, fixed64> map_fixed64_fixed64 = 78; |
| map<sfixed32, sfixed32> map_sfixed32_sfixed32 = 79; |
| map<sfixed64, sfixed64> map_sfixed64_sfixed64 = 80; |
| map<int32, float> map_int32_float = 81; |
| map<int32, double> map_int32_double = 82; |
| map<bool, bool> map_bool_bool = 83; |
| map<string, string> map_string_string = 84; |
| map<int32, bytes> map_int32_bytes = 85; |
| map<int32, TestEnum> map_int32_enum = 86; |
| map<int32, Sub> map_int32_message = 87; |
| |
| map<int32, TestMessage> map_recursive = 88; |
| |
| message Sub { |
| int32 a = 1; |
| repeated int32 b = 2; |
| } |
| |
| // Reserved for non-existing field test. |
| // int32 non_exist = 89; |
| |
| NoNamespaceMessage optional_no_namespace_message = 91; |
| NoNamespaceEnum optional_no_namespace_enum = 92; |
| repeated NoNamespaceMessage repeated_no_namespace_message = 93; |
| repeated NoNamespaceEnum repeated_no_namespace_enum = 94; |
| |
| enum NestedEnum { |
| ZERO = 0; |
| } |
| |
| NestedEnum optional_nested_enum = 101; |
| |
| // Test prefix for reserved words. |
| message Empty { |
| int32 a = 1; |
| } |
| |
| reserved 111; |
| } |
| |
| enum TestEnum { |
| ZERO = 0; |
| ONE = 1; |
| TWO = 2; |
| ECHO = 3; // Test reserved name. |
| } |
| |
| // Test prefix for reserved words. |
| message Empty { |
| int32 a = 1; |
| } |
| |
| message ARRAY { |
| int32 a = 1; |
| } |
| |
| message TestPackedMessage { |
| repeated int32 repeated_int32 = 90 [packed = true]; |
| repeated int64 repeated_int64 = 91 [packed = true]; |
| repeated uint32 repeated_uint32 = 92 [packed = true]; |
| repeated uint64 repeated_uint64 = 93 [packed = true]; |
| repeated sint32 repeated_sint32 = 94 [packed = true]; |
| repeated sint64 repeated_sint64 = 95 [packed = true]; |
| repeated fixed32 repeated_fixed32 = 96 [packed = true]; |
| repeated fixed64 repeated_fixed64 = 97 [packed = true]; |
| repeated sfixed32 repeated_sfixed32 = 98 [packed = true]; |
| repeated sfixed64 repeated_sfixed64 = 99 [packed = true]; |
| repeated float repeated_float = 100 [packed = true]; |
| repeated double repeated_double = 101 [packed = true]; |
| repeated bool repeated_bool = 102 [packed = true]; |
| repeated TestEnum repeated_enum = 103 [packed = true]; |
| } |
| |
| // Need to be in sync with TestPackedMessage. |
| message TestUnpackedMessage { |
| repeated int32 repeated_int32 = 90 [packed = false]; |
| repeated int64 repeated_int64 = 91 [packed = false]; |
| repeated uint32 repeated_uint32 = 92 [packed = false]; |
| repeated uint64 repeated_uint64 = 93 [packed = false]; |
| repeated sint32 repeated_sint32 = 94 [packed = false]; |
| repeated sint64 repeated_sint64 = 95 [packed = false]; |
| repeated fixed32 repeated_fixed32 = 96 [packed = false]; |
| repeated fixed64 repeated_fixed64 = 97 [packed = false]; |
| repeated sfixed32 repeated_sfixed32 = 98 [packed = false]; |
| repeated sfixed64 repeated_sfixed64 = 99 [packed = false]; |
| repeated float repeated_float = 100 [packed = false]; |
| repeated double repeated_double = 101 [packed = false]; |
| repeated bool repeated_bool = 102 [packed = false]; |
| repeated TestEnum repeated_enum = 103 [packed = false]; |
| } |
| |
| // /**/@<>&\{ |
| message TestPhpDoc { |
| int32 a = 1; |
| } |
| |
| message TestIncludePrefixMessage { |
| TestPrefix prefix_message = 1; |
| } |
| |
| message TestIncludeNamespaceMessage { |
| TestNamespace namespace_message = 1; |
| TestEmptyNamespace empty_namespace_message = 2; |
| } |
| |
| // This will cause upb fields not ordered by the order in the generated code. |
| message TestRandomFieldOrder { |
| int64 tag13 = 150; |
| string tag14 = 160; |
| } |
| |
| message TestReverseFieldOrder { |
| repeated int32 a = 2; |
| string b = 1; |
| } |
| |
| message testLowerCaseMessage { |
| } |
| |
| enum testLowerCaseEnum { |
| VALUE = 0; |
| } |