• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1// Protocol Buffers - Google's data interchange format
2// Copyright 2008 Google Inc.  All rights reserved.
3//
4// Use of this source code is governed by a BSD-style
5// license that can be found in the LICENSE file or at
6// https://developers.google.com/open-source/licenses/bsd
7
8// Author: robinson@google.com (Will Robinson)
9
10// LINT: LEGACY_NAMES
11
12syntax = "proto2";
13
14package google.protobuf.internal;
15
16import "google/protobuf/duration.proto";
17import "google/protobuf/struct.proto";
18import "google/protobuf/timestamp.proto";
19
20// A message where tag numbers are listed out of order, to allow us to test our
21// canonicalization of serialized output, which should always be in tag order.
22// We also mix in some extensions for extra fun.
23message OutOfOrderFields {
24  optional sint32 optional_sint32 = 5;
25  extensions 4 to 4;
26  optional uint32 optional_uint32 = 3;
27  extensions 2 to 2;
28  optional int32 optional_int32 = 1;
29}
30
31extend OutOfOrderFields {
32  optional uint64 optional_uint64 = 4;
33  optional int64 optional_int64 = 2;
34}
35
36enum is {  // top level enum keyword
37  default = 0;
38  else = 1;  // top level enum value keyword
39}
40
41message class {  // message keyword
42  optional int32 int_field = 1 [json_name = "json_int"];
43  optional int32 if = 2;  // field keyword
44  optional is as = 3;     // enum field keyword
45  optional is enum_field = 4;
46  enum for {                            // nested enum keyword
47    default = 0;
48    True = 1;  // nested enum value keyword
49  }
50  optional for nested_enum_field = 5;
51  message try {
52    optional int32 field = 1;
53    extensions 999 to 9999;
54  }
55  optional try
56    nested_message = 6;
57  extensions 999 to 9999;
58}
59
60extend class {
61  optional int32 continue = 1001;  // top level extension keyword
62}
63
64extend class.try {
65  optional int32 with = 1001;
66}
67
68message ExtendClass {
69  extend class {
70    optional int32 return = 1002;  // nested extension keyword
71  }
72}
73
74message TestFullKeyword {
75  optional google.protobuf.internal.OutOfOrderFields field1 = 1;
76  optional google.protobuf.internal.class field2 = 2;
77}
78
79// TODO: Add keyword support for service.
80// service False {
81//   rpc Bar(class) returns (class);
82// }
83
84message LotsNestedMessage {
85  message B0 {}
86  message B1 {}
87  message B2 {}
88  message B3 {}
89  message B4 {}
90  message B5 {}
91  message B6 {}
92  message B7 {}
93  message B8 {}
94  message B9 {}
95  message B10 {}
96  message B11 {}
97  message B12 {}
98  message B13 {}
99  message B14 {}
100  message B15 {}
101  message B16 {}
102  message B17 {}
103  message B18 {}
104  message B19 {}
105  message B20 {}
106  message B21 {}
107  message B22 {}
108  message B23 {}
109  message B24 {}
110  message B25 {}
111  message B26 {}
112  message B27 {}
113  message B28 {}
114  message B29 {}
115  message B30 {}
116  message B31 {}
117  message B32 {}
118  message B33 {}
119  message B34 {}
120  message B35 {}
121  message B36 {}
122  message B37 {}
123  message B38 {}
124  message B39 {}
125  message B40 {}
126  message B41 {}
127  message B42 {}
128  message B43 {}
129  message B44 {}
130  message B45 {}
131  message B46 {}
132  message B47 {}
133  message B48 {}
134  message B49 {}
135  message B50 {}
136  message B51 {}
137  message B52 {}
138  message B53 {}
139  message B54 {}
140  message B55 {}
141  message B56 {}
142  message B57 {}
143  message B58 {}
144  message B59 {}
145  message B60 {}
146  message B61 {}
147  message B62 {}
148  message B63 {}
149  message B64 {}
150  message B65 {}
151  message B66 {}
152  message B67 {}
153  message B68 {}
154  message B69 {}
155  message B70 {}
156  message B71 {}
157  message B72 {}
158  message B73 {}
159  message B74 {}
160  message B75 {}
161  message B76 {}
162  message B77 {}
163  message B78 {}
164  message B79 {}
165  message B80 {}
166  message B81 {}
167  message B82 {}
168  message B83 {}
169  message B84 {}
170  message B85 {}
171  message B86 {}
172  message B87 {}
173  message B88 {}
174  message B89 {}
175  message B90 {}
176  message B91 {}
177  message B92 {}
178  message B93 {}
179  message B94 {}
180  message B95 {}
181  message B96 {}
182  message B97 {}
183  message B98 {}
184  message B99 {}
185  message B100 {}
186  message B101 {}
187  message B102 {}
188  message B103 {}
189  message B104 {}
190  message B105 {}
191  message B106 {}
192  message B107 {}
193  message B108 {}
194  message B109 {}
195  message B110 {}
196  message B111 {}
197  message B112 {}
198  message B113 {}
199  message B114 {}
200  message B115 {}
201  message B116 {}
202  message B117 {}
203  message B118 {}
204  message B119 {}
205  message B120 {}
206  message B121 {}
207  message B122 {}
208  message B123 {}
209  message B124 {}
210  message B125 {}
211  message B126 {}
212  message B127 {}
213  message B128 {}
214  message B129 {}
215  message B130 {}
216  message B131 {}
217  message B132 {}
218  message B133 {}
219  message B134 {}
220  message B135 {}
221  message B136 {}
222  message B137 {}
223  message B138 {}
224  message B139 {}
225  message B140 {}
226  message B141 {}
227  message B142 {}
228  message B143 {}
229  message B144 {}
230  message B145 {}
231  message B146 {}
232  message B147 {}
233  message B148 {}
234  message B149 {}
235  message B150 {}
236  message B151 {}
237  message B152 {}
238  message B153 {}
239  message B154 {}
240  message B155 {}
241  message B156 {}
242  message B157 {}
243  message B158 {}
244  message B159 {}
245  message B160 {}
246  message B161 {}
247  message B162 {}
248  message B163 {}
249  message B164 {}
250  message B165 {}
251  message B166 {}
252  message B167 {}
253  message B168 {}
254  message B169 {}
255  message B170 {}
256  message B171 {}
257  message B172 {}
258  message B173 {}
259  message B174 {}
260  message B175 {}
261  message B176 {}
262  message B177 {}
263  message B178 {}
264  message B179 {}
265  message B180 {}
266  message B181 {}
267  message B182 {}
268  message B183 {}
269  message B184 {}
270  message B185 {}
271  message B186 {}
272  message B187 {}
273  message B188 {}
274  message B189 {}
275  message B190 {}
276  message B191 {}
277  message B192 {}
278  message B193 {}
279  message B194 {}
280  message B195 {}
281  message B196 {}
282  message B197 {}
283  message B198 {}
284  message B199 {}
285  message B200 {}
286  message B201 {}
287  message B202 {}
288  message B203 {}
289  message B204 {}
290  message B205 {}
291  message B206 {}
292  message B207 {}
293  message B208 {}
294  message B209 {}
295  message B210 {}
296  message B211 {}
297  message B212 {}
298  message B213 {}
299  message B214 {}
300  message B215 {}
301  message B216 {}
302  message B217 {}
303  message B218 {}
304  message B219 {}
305  message B220 {}
306  message B221 {}
307  message B222 {}
308  message B223 {}
309  message B224 {}
310  message B225 {}
311  message B226 {}
312  message B227 {}
313  message B228 {}
314  message B229 {}
315  message B230 {}
316  message B231 {}
317  message B232 {}
318  message B233 {}
319  message B234 {}
320  message B235 {}
321  message B236 {}
322  message B237 {}
323  message B238 {}
324  message B239 {}
325  message B240 {}
326  message B241 {}
327  message B242 {}
328  message B243 {}
329  message B244 {}
330  message B245 {}
331  message B246 {}
332  message B247 {}
333  message B248 {}
334  message B249 {}
335  message B250 {}
336  message B251 {}
337  message B252 {}
338  message B253 {}
339  message B254 {}
340  message B255 {}
341}
342
343message RequiredField {
344  required int32 id = 1;
345}
346
347message RequiredWrapper {
348  optional RequiredField request = 1;
349}
350
351message ConflictJsonName {
352  optional int32 value = 1 [json_name = "old_value"];
353  optional int32 new_value = 2 [json_name = "value"];
354}
355