1// Protocol Buffers - Google's data interchange format 2// Copyright 2008 Google Inc. All rights reserved. 3// https://developers.google.com/protocol-buffers/ 4// 5// Redistribution and use in source and binary forms, with or without 6// modification, are permitted provided that the following conditions are 7// met: 8// 9// * Redistributions of source code must retain the above copyright 10// notice, this list of conditions and the following disclaimer. 11// * Redistributions in binary form must reproduce the above 12// copyright notice, this list of conditions and the following disclaimer 13// in the documentation and/or other materials provided with the 14// distribution. 15// * Neither the name of Google Inc. nor the names of its 16// contributors may be used to endorse or promote products derived from 17// this software without specific prior written permission. 18// 19// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 20// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 21// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 22// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 23// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 24// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 25// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 26// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 27// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 28// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 29// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 30 31syntax = "proto3"; 32 33package protobuf.experimental; 34 35option java_package = "com.google.protobuf.testing"; 36option java_outer_classname = "Proto3Testing"; 37 38message Proto3SpecialFieldName { 39 double regular_name = 1; 40 int32 cached_size = 2; 41 int64 serialized_size = 3; 42 string class = 4; 43} 44 45message Proto3Message { 46 enum TestEnum { 47 ZERO = 0; 48 ONE = 1; 49 TWO = 2; 50 } 51 52 double field_double_1 = 1; 53 float field_float_2 = 2; 54 int64 field_int64_3 = 3; 55 uint64 field_uint64_4 = 4; 56 int32 field_int32_5 = 5; 57 fixed64 field_fixed64_6 = 6; 58 fixed32 field_fixed32_7 = 7; 59 bool field_bool_8 = 8; 60 string field_string_9 = 9; 61 Proto3Message field_message_10 = 10; 62 bytes field_bytes_11 = 11; 63 uint32 field_uint32_12 = 12; 64 TestEnum field_enum_13 = 13; 65 sfixed32 field_sfixed32_14 = 14; 66 sfixed64 field_sfixed64_15 = 15; 67 sint32 field_sint32_16 = 16; 68 sint64 field_sint64_17 = 17; 69 repeated double field_double_list_18 = 18 [packed = false]; 70 repeated float field_float_list_19 = 19 [packed = false]; 71 repeated int64 field_int64_list_20 = 20 [packed = false]; 72 repeated uint64 field_uint64_list_21 = 21 [packed = false]; 73 repeated int32 field_int32_list_22 = 22 [packed = false]; 74 repeated fixed64 field_fixed64_list_23 = 23 [packed = false]; 75 repeated fixed32 field_fixed32_list_24 = 24 [packed = false]; 76 repeated bool field_bool_list_25 = 25 [packed = false]; 77 repeated string field_string_list_26 = 26 [packed = false]; 78 repeated Proto3Message field_message_list_27 = 27 [packed = false]; 79 repeated bytes field_bytes_list_28 = 28 [packed = false]; 80 repeated uint32 field_uint32_list_29 = 29 [packed = false]; 81 repeated TestEnum field_enum_list_30 = 30 [packed = false]; 82 repeated sfixed32 field_sfixed32_list_31 = 31 [packed = false]; 83 repeated sfixed64 field_sfixed64_list_32 = 32 [packed = false]; 84 repeated sint32 field_sint32_list_33 = 33 [packed = false]; 85 repeated sint64 field_sint64_list_34 = 34 [packed = false]; 86 repeated double field_double_list_packed_35 = 35 [packed = true]; 87 repeated float field_float_list_packed_36 = 36 [packed = true]; 88 repeated int64 field_int64_list_packed_37 = 37 [packed = true]; 89 repeated uint64 field_uint64_list_packed_38 = 38 [packed = true]; 90 repeated int32 field_int32_list_packed_39 = 39 [packed = true]; 91 repeated fixed64 field_fixed64_list_packed_40 = 40 [packed = true]; 92 repeated fixed32 field_fixed32_list_packed_41 = 41 [packed = true]; 93 repeated bool field_bool_list_packed_42 = 42 [packed = true]; 94 repeated uint32 field_uint32_list_packed_43 = 43 [packed = true]; 95 repeated TestEnum field_enum_list_packed_44 = 44 [packed = true]; 96 repeated sfixed32 field_sfixed32_list_packed_45 = 45 [packed = true]; 97 repeated sfixed64 field_sfixed64_list_packed_46 = 46 [packed = true]; 98 repeated sint32 field_sint32_list_packed_47 = 47 [packed = true]; 99 repeated sint64 field_sint64_list_packed_48 = 48 [packed = true]; 100 oneof test_oneof { 101 double field_double_53 = 53; 102 float field_float_54 = 54; 103 int64 field_int64_55 = 55; 104 uint64 field_uint64_56 = 56; 105 int32 field_int32_57 = 57; 106 fixed64 field_fixed64_58 = 58; 107 fixed32 field_fixed32_59 = 59; 108 bool field_bool_60 = 60; 109 string field_string_61 = 61; 110 Proto3Message field_message_62 = 62; 111 bytes field_bytes_63 = 63; 112 uint32 field_uint32_64 = 64; 113 sfixed32 field_sfixed32_65 = 65; 114 sfixed64 field_sfixed64_66 = 66; 115 sint32 field_sint32_67 = 67; 116 sint64 field_sint64_68 = 68; 117 } 118} 119 120message Proto3Empty {} 121 122message Proto3MessageWithMaps { 123 map<bool, bool> field_map_bool_bool_1 = 1; 124 map<bool, bytes> field_map_bool_bytes_2 = 2; 125 map<bool, double> field_map_bool_double_3 = 3; 126 map<bool, Proto3Message.TestEnum> field_map_bool_enum_4 = 4; 127 map<bool, fixed32> field_map_bool_fixed32_5 = 5; 128 map<bool, fixed64> field_map_bool_fixed64_6 = 6; 129 map<bool, float> field_map_bool_float_7 = 7; 130 map<bool, int32> field_map_bool_int32_8 = 8; 131 map<bool, int64> field_map_bool_int64_9 = 9; 132 map<bool, Proto3Message> field_map_bool_message_10 = 10; 133 map<bool, sfixed32> field_map_bool_sfixed32_11 = 11; 134 map<bool, sfixed64> field_map_bool_sfixed64_12 = 12; 135 map<bool, sint32> field_map_bool_sint32_13 = 13; 136 map<bool, sint64> field_map_bool_sint64_14 = 14; 137 map<bool, string> field_map_bool_string_15 = 15; 138 map<bool, uint32> field_map_bool_uint32_16 = 16; 139 map<bool, uint64> field_map_bool_uint64_17 = 17; 140 map<fixed32, bool> field_map_fixed32_bool_18 = 18; 141 map<fixed32, bytes> field_map_fixed32_bytes_19 = 19; 142 map<fixed32, double> field_map_fixed32_double_20 = 20; 143 map<fixed32, Proto3Message.TestEnum> field_map_fixed32_enum_21 = 21; 144 map<fixed32, fixed32> field_map_fixed32_fixed32_22 = 22; 145 map<fixed32, fixed64> field_map_fixed32_fixed64_23 = 23; 146 map<fixed32, float> field_map_fixed32_float_24 = 24; 147 map<fixed32, int32> field_map_fixed32_int32_25 = 25; 148 map<fixed32, int64> field_map_fixed32_int64_26 = 26; 149 map<fixed32, Proto3Message> field_map_fixed32_message_27 = 27; 150 map<fixed32, sfixed32> field_map_fixed32_sfixed32_28 = 28; 151 map<fixed32, sfixed64> field_map_fixed32_sfixed64_29 = 29; 152 map<fixed32, sint32> field_map_fixed32_sint32_30 = 30; 153 map<fixed32, sint64> field_map_fixed32_sint64_31 = 31; 154 map<fixed32, string> field_map_fixed32_string_32 = 32; 155 map<fixed32, uint32> field_map_fixed32_uint32_33 = 33; 156 map<fixed32, uint64> field_map_fixed32_uint64_34 = 34; 157 map<fixed64, bool> field_map_fixed64_bool_35 = 35; 158 map<fixed64, bytes> field_map_fixed64_bytes_36 = 36; 159 map<fixed64, double> field_map_fixed64_double_37 = 37; 160 map<fixed64, Proto3Message.TestEnum> field_map_fixed64_enum_38 = 38; 161 map<fixed64, fixed32> field_map_fixed64_fixed32_39 = 39; 162 map<fixed64, fixed64> field_map_fixed64_fixed64_40 = 40; 163 map<fixed64, float> field_map_fixed64_float_41 = 41; 164 map<fixed64, int32> field_map_fixed64_int32_42 = 42; 165 map<fixed64, int64> field_map_fixed64_int64_43 = 43; 166 map<fixed64, Proto3Message> field_map_fixed64_message_44 = 44; 167 map<fixed64, sfixed32> field_map_fixed64_sfixed32_45 = 45; 168 map<fixed64, sfixed64> field_map_fixed64_sfixed64_46 = 46; 169 map<fixed64, sint32> field_map_fixed64_sint32_47 = 47; 170 map<fixed64, sint64> field_map_fixed64_sint64_48 = 48; 171 map<fixed64, string> field_map_fixed64_string_49 = 49; 172 map<fixed64, uint32> field_map_fixed64_uint32_50 = 50; 173 map<fixed64, uint64> field_map_fixed64_uint64_51 = 51; 174 map<int32, bool> field_map_int32_bool_52 = 52; 175 map<int32, bytes> field_map_int32_bytes_53 = 53; 176 map<int32, double> field_map_int32_double_54 = 54; 177 map<int32, Proto3Message.TestEnum> field_map_int32_enum_55 = 55; 178 map<int32, fixed32> field_map_int32_fixed32_56 = 56; 179 map<int32, fixed64> field_map_int32_fixed64_57 = 57; 180 map<int32, float> field_map_int32_float_58 = 58; 181 map<int32, int32> field_map_int32_int32_59 = 59; 182 map<int32, int64> field_map_int32_int64_60 = 60; 183 map<int32, Proto3Message> field_map_int32_message_61 = 61; 184 map<int32, sfixed32> field_map_int32_sfixed32_62 = 62; 185 map<int32, sfixed64> field_map_int32_sfixed64_63 = 63; 186 map<int32, sint32> field_map_int32_sint32_64 = 64; 187 map<int32, sint64> field_map_int32_sint64_65 = 65; 188 map<int32, string> field_map_int32_string_66 = 66; 189 map<int32, uint32> field_map_int32_uint32_67 = 67; 190 map<int32, uint64> field_map_int32_uint64_68 = 68; 191 map<int64, bool> field_map_int64_bool_69 = 69; 192 map<int64, bytes> field_map_int64_bytes_70 = 70; 193 map<int64, double> field_map_int64_double_71 = 71; 194 map<int64, Proto3Message.TestEnum> field_map_int64_enum_72 = 72; 195 map<int64, fixed32> field_map_int64_fixed32_73 = 73; 196 map<int64, fixed64> field_map_int64_fixed64_74 = 74; 197 map<int64, float> field_map_int64_float_75 = 75; 198 map<int64, int32> field_map_int64_int32_76 = 76; 199 map<int64, int64> field_map_int64_int64_77 = 77; 200 map<int64, Proto3Message> field_map_int64_message_78 = 78; 201 map<int64, sfixed32> field_map_int64_sfixed32_79 = 79; 202 map<int64, sfixed64> field_map_int64_sfixed64_80 = 80; 203 map<int64, sint32> field_map_int64_sint32_81 = 81; 204 map<int64, sint64> field_map_int64_sint64_82 = 82; 205 map<int64, string> field_map_int64_string_83 = 83; 206 map<int64, uint32> field_map_int64_uint32_84 = 84; 207 map<int64, uint64> field_map_int64_uint64_85 = 85; 208 map<sfixed32, bool> field_map_sfixed32_bool_86 = 86; 209 map<sfixed32, bytes> field_map_sfixed32_bytes_87 = 87; 210 map<sfixed32, double> field_map_sfixed32_double_88 = 88; 211 map<sfixed32, Proto3Message.TestEnum> field_map_sfixed32_enum_89 = 89; 212 map<sfixed32, fixed32> field_map_sfixed32_fixed32_90 = 90; 213 map<sfixed32, fixed64> field_map_sfixed32_fixed64_91 = 91; 214 map<sfixed32, float> field_map_sfixed32_float_92 = 92; 215 map<sfixed32, int32> field_map_sfixed32_int32_93 = 93; 216 map<sfixed32, int64> field_map_sfixed32_int64_94 = 94; 217 map<sfixed32, Proto3Message> field_map_sfixed32_message_95 = 95; 218 map<sfixed32, sfixed32> field_map_sfixed32_sfixed32_96 = 96; 219 map<sfixed32, sfixed64> field_map_sfixed32_sfixed64_97 = 97; 220 map<sfixed32, sint32> field_map_sfixed32_sint32_98 = 98; 221 map<sfixed32, sint64> field_map_sfixed32_sint64_99 = 99; 222 map<sfixed32, string> field_map_sfixed32_string_100 = 100; 223 map<sfixed32, uint32> field_map_sfixed32_uint32_101 = 101; 224 map<sfixed32, uint64> field_map_sfixed32_uint64_102 = 102; 225 map<sfixed64, bool> field_map_sfixed64_bool_103 = 103; 226 map<sfixed64, bytes> field_map_sfixed64_bytes_104 = 104; 227 map<sfixed64, double> field_map_sfixed64_double_105 = 105; 228 map<sfixed64, Proto3Message.TestEnum> field_map_sfixed64_enum_106 = 106; 229 map<sfixed64, fixed32> field_map_sfixed64_fixed32_107 = 107; 230 map<sfixed64, fixed64> field_map_sfixed64_fixed64_108 = 108; 231 map<sfixed64, float> field_map_sfixed64_float_109 = 109; 232 map<sfixed64, int32> field_map_sfixed64_int32_110 = 110; 233 map<sfixed64, int64> field_map_sfixed64_int64_111 = 111; 234 map<sfixed64, Proto3Message> field_map_sfixed64_message_112 = 112; 235 map<sfixed64, sfixed32> field_map_sfixed64_sfixed32_113 = 113; 236 map<sfixed64, sfixed64> field_map_sfixed64_sfixed64_114 = 114; 237 map<sfixed64, sint32> field_map_sfixed64_sint32_115 = 115; 238 map<sfixed64, sint64> field_map_sfixed64_sint64_116 = 116; 239 map<sfixed64, string> field_map_sfixed64_string_117 = 117; 240 map<sfixed64, uint32> field_map_sfixed64_uint32_118 = 118; 241 map<sfixed64, uint64> field_map_sfixed64_uint64_119 = 119; 242 map<sint32, bool> field_map_sint32_bool_120 = 120; 243 map<sint32, bytes> field_map_sint32_bytes_121 = 121; 244 map<sint32, double> field_map_sint32_double_122 = 122; 245 map<sint32, Proto3Message.TestEnum> field_map_sint32_enum_123 = 123; 246 map<sint32, fixed32> field_map_sint32_fixed32_124 = 124; 247 map<sint32, fixed64> field_map_sint32_fixed64_125 = 125; 248 map<sint32, float> field_map_sint32_float_126 = 126; 249 map<sint32, int32> field_map_sint32_int32_127 = 127; 250 map<sint32, int64> field_map_sint32_int64_128 = 128; 251 map<sint32, Proto3Message> field_map_sint32_message_129 = 129; 252 map<sint32, sfixed32> field_map_sint32_sfixed32_130 = 130; 253 map<sint32, sfixed64> field_map_sint32_sfixed64_131 = 131; 254 map<sint32, sint32> field_map_sint32_sint32_132 = 132; 255 map<sint32, sint64> field_map_sint32_sint64_133 = 133; 256 map<sint32, string> field_map_sint32_string_134 = 134; 257 map<sint32, uint32> field_map_sint32_uint32_135 = 135; 258 map<sint32, uint64> field_map_sint32_uint64_136 = 136; 259 map<sint64, bool> field_map_sint64_bool_137 = 137; 260 map<sint64, bytes> field_map_sint64_bytes_138 = 138; 261 map<sint64, double> field_map_sint64_double_139 = 139; 262 map<sint64, Proto3Message.TestEnum> field_map_sint64_enum_140 = 140; 263 map<sint64, fixed32> field_map_sint64_fixed32_141 = 141; 264 map<sint64, fixed64> field_map_sint64_fixed64_142 = 142; 265 map<sint64, float> field_map_sint64_float_143 = 143; 266 map<sint64, int32> field_map_sint64_int32_144 = 144; 267 map<sint64, int64> field_map_sint64_int64_145 = 145; 268 map<sint64, Proto3Message> field_map_sint64_message_146 = 146; 269 map<sint64, sfixed32> field_map_sint64_sfixed32_147 = 147; 270 map<sint64, sfixed64> field_map_sint64_sfixed64_148 = 148; 271 map<sint64, sint32> field_map_sint64_sint32_149 = 149; 272 map<sint64, sint64> field_map_sint64_sint64_150 = 150; 273 map<sint64, string> field_map_sint64_string_151 = 151; 274 map<sint64, uint32> field_map_sint64_uint32_152 = 152; 275 map<sint64, uint64> field_map_sint64_uint64_153 = 153; 276 map<string, bool> field_map_string_bool_154 = 154; 277 map<string, bytes> field_map_string_bytes_155 = 155; 278 map<string, double> field_map_string_double_156 = 156; 279 map<string, Proto3Message.TestEnum> field_map_string_enum_157 = 157; 280 map<string, fixed32> field_map_string_fixed32_158 = 158; 281 map<string, fixed64> field_map_string_fixed64_159 = 159; 282 map<string, float> field_map_string_float_160 = 160; 283 map<string, int32> field_map_string_int32_161 = 161; 284 map<string, int64> field_map_string_int64_162 = 162; 285 map<string, Proto3Message> field_map_string_message_163 = 163; 286 map<string, sfixed32> field_map_string_sfixed32_164 = 164; 287 map<string, sfixed64> field_map_string_sfixed64_165 = 165; 288 map<string, sint32> field_map_string_sint32_166 = 166; 289 map<string, sint64> field_map_string_sint64_167 = 167; 290 map<string, string> field_map_string_string_168 = 168; 291 map<string, uint32> field_map_string_uint32_169 = 169; 292 map<string, uint64> field_map_string_uint64_170 = 170; 293 map<uint32, bool> field_map_uint32_bool_171 = 171; 294 map<uint32, bytes> field_map_uint32_bytes_172 = 172; 295 map<uint32, double> field_map_uint32_double_173 = 173; 296 map<uint32, Proto3Message.TestEnum> field_map_uint32_enum_174 = 174; 297 map<uint32, fixed32> field_map_uint32_fixed32_175 = 175; 298 map<uint32, fixed64> field_map_uint32_fixed64_176 = 176; 299 map<uint32, float> field_map_uint32_float_177 = 177; 300 map<uint32, int32> field_map_uint32_int32_178 = 178; 301 map<uint32, int64> field_map_uint32_int64_179 = 179; 302 map<uint32, Proto3Message> field_map_uint32_message_180 = 180; 303 map<uint32, sfixed32> field_map_uint32_sfixed32_181 = 181; 304 map<uint32, sfixed64> field_map_uint32_sfixed64_182 = 182; 305 map<uint32, sint32> field_map_uint32_sint32_183 = 183; 306 map<uint32, sint64> field_map_uint32_sint64_184 = 184; 307 map<uint32, string> field_map_uint32_string_185 = 185; 308 map<uint32, uint32> field_map_uint32_uint32_186 = 186; 309 map<uint32, uint64> field_map_uint32_uint64_187 = 187; 310 map<uint64, bool> field_map_uint64_bool_188 = 188; 311 map<uint64, bytes> field_map_uint64_bytes_189 = 189; 312 map<uint64, double> field_map_uint64_double_190 = 190; 313 map<uint64, Proto3Message.TestEnum> field_map_uint64_enum_191 = 191; 314 map<uint64, fixed32> field_map_uint64_fixed32_192 = 192; 315 map<uint64, fixed64> field_map_uint64_fixed64_193 = 193; 316 map<uint64, float> field_map_uint64_float_194 = 194; 317 map<uint64, int32> field_map_uint64_int32_195 = 195; 318 map<uint64, int64> field_map_uint64_int64_196 = 196; 319 map<uint64, Proto3Message> field_map_uint64_message_197 = 197; 320 map<uint64, sfixed32> field_map_uint64_sfixed32_198 = 198; 321 map<uint64, sfixed64> field_map_uint64_sfixed64_199 = 199; 322 map<uint64, sint32> field_map_uint64_sint32_200 = 200; 323 map<uint64, sint64> field_map_uint64_sint64_201 = 201; 324 map<uint64, string> field_map_uint64_string_202 = 202; 325 map<uint64, uint32> field_map_uint64_uint32_203 = 203; 326 map<uint64, uint64> field_map_uint64_uint64_204 = 204; 327} 328