Coverage Report

Created: 2026-04-14 06:46

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/rust/registry/src/index.crates.io-1949cf8c6b5b557f/protobuf-3.7.2/src/descriptor.rs
Line
Count
Source
1
// This file is generated by rust-protobuf 4.0.0-alpha.0. Do not edit
2
// .proto file is parsed by protoc --rs_out=...
3
// @generated
4
5
// https://github.com/rust-lang/rust-clippy/issues/702
6
#![allow(unknown_lints)]
7
#![allow(clippy::all)]
8
9
#![allow(unused_attributes)]
10
#![cfg_attr(rustfmt, rustfmt::skip)]
11
12
#![allow(dead_code)]
13
#![allow(missing_docs)]
14
#![allow(non_camel_case_types)]
15
#![allow(non_snake_case)]
16
#![allow(non_upper_case_globals)]
17
#![allow(trivial_casts)]
18
#![allow(unused_results)]
19
#![allow(unused_mut)]
20
21
//! Generated file from `google/protobuf/descriptor.proto`
22
23
///  The protocol compiler can output a FileDescriptorSet containing the .proto
24
///  files it parses.
25
// @@protoc_insertion_point(message:google.protobuf.FileDescriptorSet)
26
#[derive(PartialEq,Clone,Default,Debug)]
27
pub struct FileDescriptorSet {
28
    // message fields
29
    // @@protoc_insertion_point(field:google.protobuf.FileDescriptorSet.file)
30
    pub file: ::std::vec::Vec<FileDescriptorProto>,
31
    // special fields
32
    // @@protoc_insertion_point(special_field:google.protobuf.FileDescriptorSet.special_fields)
33
    pub special_fields: crate::SpecialFields,
34
}
35
36
impl<'a> ::std::default::Default for &'a FileDescriptorSet {
37
0
    fn default() -> &'a FileDescriptorSet {
38
0
        <FileDescriptorSet as crate::Message>::default_instance()
39
0
    }
40
}
41
42
impl FileDescriptorSet {
43
0
    pub fn new() -> FileDescriptorSet {
44
0
        ::std::default::Default::default()
45
0
    }
46
47
0
    fn generated_message_descriptor_data() -> crate::reflect::GeneratedMessageDescriptorData {
48
0
        let mut fields = ::std::vec::Vec::with_capacity(1);
49
0
        let mut oneofs = ::std::vec::Vec::with_capacity(0);
50
0
        fields.push(crate::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
51
            "file",
52
0
            |m: &FileDescriptorSet| { &m.file },
53
0
            |m: &mut FileDescriptorSet| { &mut m.file },
54
        ));
55
0
        crate::reflect::GeneratedMessageDescriptorData::new_2::<FileDescriptorSet>(
56
            "FileDescriptorSet",
57
0
            fields,
58
0
            oneofs,
59
        )
60
0
    }
61
}
62
63
impl crate::Message for FileDescriptorSet {
64
    const NAME: &'static str = "FileDescriptorSet";
65
66
0
    fn is_initialized(&self) -> bool {
67
0
        for v in &self.file {
68
0
            if !v.is_initialized() {
69
0
                return false;
70
0
            }
71
        };
72
0
        true
73
0
    }
74
75
0
    fn merge_from(&mut self, is: &mut crate::CodedInputStream<'_>) -> crate::Result<()> {
76
0
        while let Some(tag) = is.read_raw_tag_or_eof()? {
77
0
            match tag {
78
                10 => {
79
0
                    self.file.push(is.read_message()?);
80
                },
81
0
                tag => {
82
0
                    crate::rt::read_unknown_or_skip_group(tag, is, self.special_fields.mut_unknown_fields())?;
83
                },
84
            };
85
        }
86
0
        ::std::result::Result::Ok(())
87
0
    }
88
89
    // Compute sizes of nested messages
90
    #[allow(unused_variables)]
91
0
    fn compute_size(&self) -> u64 {
92
0
        let mut my_size = 0;
93
0
        for value in &self.file {
94
0
            let len = value.compute_size();
95
0
            my_size += 1 + crate::rt::compute_raw_varint64_size(len) + len;
96
0
        };
97
0
        my_size += crate::rt::unknown_fields_size(self.special_fields.unknown_fields());
98
0
        self.special_fields.cached_size().set(my_size as u32);
99
0
        my_size
100
0
    }
101
102
0
    fn write_to_with_cached_sizes(&self, os: &mut crate::CodedOutputStream<'_>) -> crate::Result<()> {
103
0
        for v in &self.file {
104
0
            crate::rt::write_message_field_with_cached_size(1, v, os)?;
105
        };
106
0
        os.write_unknown_fields(self.special_fields.unknown_fields())?;
107
0
        ::std::result::Result::Ok(())
108
0
    }
109
110
0
    fn special_fields(&self) -> &crate::SpecialFields {
111
0
        &self.special_fields
112
0
    }
113
114
0
    fn mut_special_fields(&mut self) -> &mut crate::SpecialFields {
115
0
        &mut self.special_fields
116
0
    }
117
118
0
    fn new() -> FileDescriptorSet {
119
0
        FileDescriptorSet::new()
120
0
    }
121
122
0
    fn clear(&mut self) {
123
0
        self.file.clear();
124
0
        self.special_fields.clear();
125
0
    }
126
127
0
    fn default_instance() -> &'static FileDescriptorSet {
128
        static instance: FileDescriptorSet = FileDescriptorSet {
129
            file: ::std::vec::Vec::new(),
130
            special_fields: crate::SpecialFields::new(),
131
        };
132
0
        &instance
133
0
    }
134
}
135
136
impl crate::MessageFull for FileDescriptorSet {
137
0
    fn descriptor() -> crate::reflect::MessageDescriptor {
138
        static descriptor: crate::rt::Lazy<crate::reflect::MessageDescriptor> = crate::rt::Lazy::new();
139
0
        descriptor.get(|| file_descriptor().message_by_package_relative_name("FileDescriptorSet").unwrap()).clone()
140
0
    }
141
}
142
143
impl ::std::fmt::Display for FileDescriptorSet {
144
0
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
145
0
        crate::text_format::fmt(self, f)
146
0
    }
147
}
148
149
impl crate::reflect::ProtobufValue for FileDescriptorSet {
150
    type RuntimeType = crate::reflect::rt::RuntimeTypeMessage<Self>;
151
}
152
153
///  Describes a complete .proto file.
154
// @@protoc_insertion_point(message:google.protobuf.FileDescriptorProto)
155
#[derive(PartialEq,Clone,Default,Debug)]
156
pub struct FileDescriptorProto {
157
    // message fields
158
    // @@protoc_insertion_point(field:google.protobuf.FileDescriptorProto.name)
159
    pub name: ::std::option::Option<::std::string::String>,
160
    // @@protoc_insertion_point(field:google.protobuf.FileDescriptorProto.package)
161
    pub package: ::std::option::Option<::std::string::String>,
162
    ///  Names of files imported by this file.
163
    // @@protoc_insertion_point(field:google.protobuf.FileDescriptorProto.dependency)
164
    pub dependency: ::std::vec::Vec<::std::string::String>,
165
    ///  Indexes of the public imported files in the dependency list above.
166
    // @@protoc_insertion_point(field:google.protobuf.FileDescriptorProto.public_dependency)
167
    pub public_dependency: ::std::vec::Vec<i32>,
168
    ///  Indexes of the weak imported files in the dependency list.
169
    ///  For Google-internal migration only. Do not use.
170
    // @@protoc_insertion_point(field:google.protobuf.FileDescriptorProto.weak_dependency)
171
    pub weak_dependency: ::std::vec::Vec<i32>,
172
    ///  All top-level definitions in this file.
173
    // @@protoc_insertion_point(field:google.protobuf.FileDescriptorProto.message_type)
174
    pub message_type: ::std::vec::Vec<DescriptorProto>,
175
    // @@protoc_insertion_point(field:google.protobuf.FileDescriptorProto.enum_type)
176
    pub enum_type: ::std::vec::Vec<EnumDescriptorProto>,
177
    // @@protoc_insertion_point(field:google.protobuf.FileDescriptorProto.service)
178
    pub service: ::std::vec::Vec<ServiceDescriptorProto>,
179
    // @@protoc_insertion_point(field:google.protobuf.FileDescriptorProto.extension)
180
    pub extension: ::std::vec::Vec<FieldDescriptorProto>,
181
    // @@protoc_insertion_point(field:google.protobuf.FileDescriptorProto.options)
182
    pub options: crate::MessageField<FileOptions>,
183
    ///  This field contains optional information about the original source code.
184
    ///  You may safely remove this entire field without harming runtime
185
    ///  functionality of the descriptors -- the information is needed only by
186
    ///  development tools.
187
    // @@protoc_insertion_point(field:google.protobuf.FileDescriptorProto.source_code_info)
188
    pub source_code_info: crate::MessageField<SourceCodeInfo>,
189
    ///  The syntax of the proto file.
190
    ///  The supported values are "proto2" and "proto3".
191
    // @@protoc_insertion_point(field:google.protobuf.FileDescriptorProto.syntax)
192
    pub syntax: ::std::option::Option<::std::string::String>,
193
    // special fields
194
    // @@protoc_insertion_point(special_field:google.protobuf.FileDescriptorProto.special_fields)
195
    pub special_fields: crate::SpecialFields,
196
}
197
198
impl<'a> ::std::default::Default for &'a FileDescriptorProto {
199
0
    fn default() -> &'a FileDescriptorProto {
200
0
        <FileDescriptorProto as crate::Message>::default_instance()
201
0
    }
202
}
203
204
impl FileDescriptorProto {
205
0
    pub fn new() -> FileDescriptorProto {
206
0
        ::std::default::Default::default()
207
0
    }
208
209
    // optional string name = 1;
210
211
0
    pub fn name(&self) -> &str {
212
0
        match self.name.as_ref() {
213
0
            Some(v) => v,
214
0
            None => "",
215
        }
216
0
    }
217
218
0
    pub fn clear_name(&mut self) {
219
0
        self.name = ::std::option::Option::None;
220
0
    }
221
222
0
    pub fn has_name(&self) -> bool {
223
0
        self.name.is_some()
224
0
    }
225
226
    // Param is passed by value, moved
227
0
    pub fn set_name(&mut self, v: ::std::string::String) {
228
0
        self.name = ::std::option::Option::Some(v);
229
0
    }
230
231
    // Mutable pointer to the field.
232
    // If field is not initialized, it is initialized with default value first.
233
0
    pub fn mut_name(&mut self) -> &mut ::std::string::String {
234
0
        if self.name.is_none() {
235
0
            self.name = ::std::option::Option::Some(::std::string::String::new());
236
0
        }
237
0
        self.name.as_mut().unwrap()
238
0
    }
239
240
    // Take field
241
0
    pub fn take_name(&mut self) -> ::std::string::String {
242
0
        self.name.take().unwrap_or_else(|| ::std::string::String::new())
243
0
    }
244
245
    // optional string package = 2;
246
247
0
    pub fn package(&self) -> &str {
248
0
        match self.package.as_ref() {
249
0
            Some(v) => v,
250
0
            None => "",
251
        }
252
0
    }
253
254
0
    pub fn clear_package(&mut self) {
255
0
        self.package = ::std::option::Option::None;
256
0
    }
257
258
0
    pub fn has_package(&self) -> bool {
259
0
        self.package.is_some()
260
0
    }
261
262
    // Param is passed by value, moved
263
0
    pub fn set_package(&mut self, v: ::std::string::String) {
264
0
        self.package = ::std::option::Option::Some(v);
265
0
    }
266
267
    // Mutable pointer to the field.
268
    // If field is not initialized, it is initialized with default value first.
269
0
    pub fn mut_package(&mut self) -> &mut ::std::string::String {
270
0
        if self.package.is_none() {
271
0
            self.package = ::std::option::Option::Some(::std::string::String::new());
272
0
        }
273
0
        self.package.as_mut().unwrap()
274
0
    }
275
276
    // Take field
277
0
    pub fn take_package(&mut self) -> ::std::string::String {
278
0
        self.package.take().unwrap_or_else(|| ::std::string::String::new())
279
0
    }
280
281
    // optional string syntax = 12;
282
283
0
    pub fn syntax(&self) -> &str {
284
0
        match self.syntax.as_ref() {
285
0
            Some(v) => v,
286
0
            None => "",
287
        }
288
0
    }
289
290
0
    pub fn clear_syntax(&mut self) {
291
0
        self.syntax = ::std::option::Option::None;
292
0
    }
293
294
0
    pub fn has_syntax(&self) -> bool {
295
0
        self.syntax.is_some()
296
0
    }
297
298
    // Param is passed by value, moved
299
0
    pub fn set_syntax(&mut self, v: ::std::string::String) {
300
0
        self.syntax = ::std::option::Option::Some(v);
301
0
    }
302
303
    // Mutable pointer to the field.
304
    // If field is not initialized, it is initialized with default value first.
305
0
    pub fn mut_syntax(&mut self) -> &mut ::std::string::String {
306
0
        if self.syntax.is_none() {
307
0
            self.syntax = ::std::option::Option::Some(::std::string::String::new());
308
0
        }
309
0
        self.syntax.as_mut().unwrap()
310
0
    }
311
312
    // Take field
313
0
    pub fn take_syntax(&mut self) -> ::std::string::String {
314
0
        self.syntax.take().unwrap_or_else(|| ::std::string::String::new())
315
0
    }
316
317
0
    fn generated_message_descriptor_data() -> crate::reflect::GeneratedMessageDescriptorData {
318
0
        let mut fields = ::std::vec::Vec::with_capacity(12);
319
0
        let mut oneofs = ::std::vec::Vec::with_capacity(0);
320
0
        fields.push(crate::reflect::rt::v2::make_option_accessor::<_, _>(
321
            "name",
322
0
            |m: &FileDescriptorProto| { &m.name },
323
0
            |m: &mut FileDescriptorProto| { &mut m.name },
324
        ));
325
0
        fields.push(crate::reflect::rt::v2::make_option_accessor::<_, _>(
326
            "package",
327
0
            |m: &FileDescriptorProto| { &m.package },
328
0
            |m: &mut FileDescriptorProto| { &mut m.package },
329
        ));
330
0
        fields.push(crate::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
331
            "dependency",
332
0
            |m: &FileDescriptorProto| { &m.dependency },
333
0
            |m: &mut FileDescriptorProto| { &mut m.dependency },
334
        ));
335
0
        fields.push(crate::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
336
            "public_dependency",
337
0
            |m: &FileDescriptorProto| { &m.public_dependency },
338
0
            |m: &mut FileDescriptorProto| { &mut m.public_dependency },
339
        ));
340
0
        fields.push(crate::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
341
            "weak_dependency",
342
0
            |m: &FileDescriptorProto| { &m.weak_dependency },
343
0
            |m: &mut FileDescriptorProto| { &mut m.weak_dependency },
344
        ));
345
0
        fields.push(crate::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
346
            "message_type",
347
0
            |m: &FileDescriptorProto| { &m.message_type },
348
0
            |m: &mut FileDescriptorProto| { &mut m.message_type },
349
        ));
350
0
        fields.push(crate::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
351
            "enum_type",
352
0
            |m: &FileDescriptorProto| { &m.enum_type },
353
0
            |m: &mut FileDescriptorProto| { &mut m.enum_type },
354
        ));
355
0
        fields.push(crate::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
356
            "service",
357
0
            |m: &FileDescriptorProto| { &m.service },
358
0
            |m: &mut FileDescriptorProto| { &mut m.service },
359
        ));
360
0
        fields.push(crate::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
361
            "extension",
362
0
            |m: &FileDescriptorProto| { &m.extension },
363
0
            |m: &mut FileDescriptorProto| { &mut m.extension },
364
        ));
365
0
        fields.push(crate::reflect::rt::v2::make_message_field_accessor::<_, FileOptions>(
366
            "options",
367
0
            |m: &FileDescriptorProto| { &m.options },
368
0
            |m: &mut FileDescriptorProto| { &mut m.options },
369
        ));
370
0
        fields.push(crate::reflect::rt::v2::make_message_field_accessor::<_, SourceCodeInfo>(
371
            "source_code_info",
372
0
            |m: &FileDescriptorProto| { &m.source_code_info },
373
0
            |m: &mut FileDescriptorProto| { &mut m.source_code_info },
374
        ));
375
0
        fields.push(crate::reflect::rt::v2::make_option_accessor::<_, _>(
376
            "syntax",
377
0
            |m: &FileDescriptorProto| { &m.syntax },
378
0
            |m: &mut FileDescriptorProto| { &mut m.syntax },
379
        ));
380
0
        crate::reflect::GeneratedMessageDescriptorData::new_2::<FileDescriptorProto>(
381
            "FileDescriptorProto",
382
0
            fields,
383
0
            oneofs,
384
        )
385
0
    }
386
}
387
388
impl crate::Message for FileDescriptorProto {
389
    const NAME: &'static str = "FileDescriptorProto";
390
391
0
    fn is_initialized(&self) -> bool {
392
0
        for v in &self.message_type {
393
0
            if !v.is_initialized() {
394
0
                return false;
395
0
            }
396
        };
397
0
        for v in &self.enum_type {
398
0
            if !v.is_initialized() {
399
0
                return false;
400
0
            }
401
        };
402
0
        for v in &self.service {
403
0
            if !v.is_initialized() {
404
0
                return false;
405
0
            }
406
        };
407
0
        for v in &self.extension {
408
0
            if !v.is_initialized() {
409
0
                return false;
410
0
            }
411
        };
412
0
        for v in &self.options {
413
0
            if !v.is_initialized() {
414
0
                return false;
415
0
            }
416
        };
417
0
        for v in &self.source_code_info {
418
0
            if !v.is_initialized() {
419
0
                return false;
420
0
            }
421
        };
422
0
        true
423
0
    }
424
425
0
    fn merge_from(&mut self, is: &mut crate::CodedInputStream<'_>) -> crate::Result<()> {
426
0
        while let Some(tag) = is.read_raw_tag_or_eof()? {
427
0
            match tag {
428
                10 => {
429
0
                    self.name = ::std::option::Option::Some(is.read_string()?);
430
                },
431
                18 => {
432
0
                    self.package = ::std::option::Option::Some(is.read_string()?);
433
                },
434
                26 => {
435
0
                    self.dependency.push(is.read_string()?);
436
                },
437
                82 => {
438
0
                    is.read_repeated_packed_int32_into(&mut self.public_dependency)?;
439
                },
440
                80 => {
441
0
                    self.public_dependency.push(is.read_int32()?);
442
                },
443
                90 => {
444
0
                    is.read_repeated_packed_int32_into(&mut self.weak_dependency)?;
445
                },
446
                88 => {
447
0
                    self.weak_dependency.push(is.read_int32()?);
448
                },
449
                34 => {
450
0
                    self.message_type.push(is.read_message()?);
451
                },
452
                42 => {
453
0
                    self.enum_type.push(is.read_message()?);
454
                },
455
                50 => {
456
0
                    self.service.push(is.read_message()?);
457
                },
458
                58 => {
459
0
                    self.extension.push(is.read_message()?);
460
                },
461
                66 => {
462
0
                    crate::rt::read_singular_message_into_field(is, &mut self.options)?;
463
                },
464
                74 => {
465
0
                    crate::rt::read_singular_message_into_field(is, &mut self.source_code_info)?;
466
                },
467
                98 => {
468
0
                    self.syntax = ::std::option::Option::Some(is.read_string()?);
469
                },
470
0
                tag => {
471
0
                    crate::rt::read_unknown_or_skip_group(tag, is, self.special_fields.mut_unknown_fields())?;
472
                },
473
            };
474
        }
475
0
        ::std::result::Result::Ok(())
476
0
    }
477
478
    // Compute sizes of nested messages
479
    #[allow(unused_variables)]
480
0
    fn compute_size(&self) -> u64 {
481
0
        let mut my_size = 0;
482
0
        if let Some(v) = self.name.as_ref() {
483
0
            my_size += crate::rt::string_size(1, &v);
484
0
        }
485
0
        if let Some(v) = self.package.as_ref() {
486
0
            my_size += crate::rt::string_size(2, &v);
487
0
        }
488
0
        for value in &self.dependency {
489
0
            my_size += crate::rt::string_size(3, &value);
490
0
        };
491
0
        for value in &self.public_dependency {
492
0
            my_size += crate::rt::int32_size(10, *value);
493
0
        };
494
0
        for value in &self.weak_dependency {
495
0
            my_size += crate::rt::int32_size(11, *value);
496
0
        };
497
0
        for value in &self.message_type {
498
0
            let len = value.compute_size();
499
0
            my_size += 1 + crate::rt::compute_raw_varint64_size(len) + len;
500
0
        };
501
0
        for value in &self.enum_type {
502
0
            let len = value.compute_size();
503
0
            my_size += 1 + crate::rt::compute_raw_varint64_size(len) + len;
504
0
        };
505
0
        for value in &self.service {
506
0
            let len = value.compute_size();
507
0
            my_size += 1 + crate::rt::compute_raw_varint64_size(len) + len;
508
0
        };
509
0
        for value in &self.extension {
510
0
            let len = value.compute_size();
511
0
            my_size += 1 + crate::rt::compute_raw_varint64_size(len) + len;
512
0
        };
513
0
        if let Some(v) = self.options.as_ref() {
514
0
            let len = v.compute_size();
515
0
            my_size += 1 + crate::rt::compute_raw_varint64_size(len) + len;
516
0
        }
517
0
        if let Some(v) = self.source_code_info.as_ref() {
518
0
            let len = v.compute_size();
519
0
            my_size += 1 + crate::rt::compute_raw_varint64_size(len) + len;
520
0
        }
521
0
        if let Some(v) = self.syntax.as_ref() {
522
0
            my_size += crate::rt::string_size(12, &v);
523
0
        }
524
0
        my_size += crate::rt::unknown_fields_size(self.special_fields.unknown_fields());
525
0
        self.special_fields.cached_size().set(my_size as u32);
526
0
        my_size
527
0
    }
528
529
0
    fn write_to_with_cached_sizes(&self, os: &mut crate::CodedOutputStream<'_>) -> crate::Result<()> {
530
0
        if let Some(v) = self.name.as_ref() {
531
0
            os.write_string(1, v)?;
532
0
        }
533
0
        if let Some(v) = self.package.as_ref() {
534
0
            os.write_string(2, v)?;
535
0
        }
536
0
        for v in &self.dependency {
537
0
            os.write_string(3, &v)?;
538
        };
539
0
        for v in &self.public_dependency {
540
0
            os.write_int32(10, *v)?;
541
        };
542
0
        for v in &self.weak_dependency {
543
0
            os.write_int32(11, *v)?;
544
        };
545
0
        for v in &self.message_type {
546
0
            crate::rt::write_message_field_with_cached_size(4, v, os)?;
547
        };
548
0
        for v in &self.enum_type {
549
0
            crate::rt::write_message_field_with_cached_size(5, v, os)?;
550
        };
551
0
        for v in &self.service {
552
0
            crate::rt::write_message_field_with_cached_size(6, v, os)?;
553
        };
554
0
        for v in &self.extension {
555
0
            crate::rt::write_message_field_with_cached_size(7, v, os)?;
556
        };
557
0
        if let Some(v) = self.options.as_ref() {
558
0
            crate::rt::write_message_field_with_cached_size(8, v, os)?;
559
0
        }
560
0
        if let Some(v) = self.source_code_info.as_ref() {
561
0
            crate::rt::write_message_field_with_cached_size(9, v, os)?;
562
0
        }
563
0
        if let Some(v) = self.syntax.as_ref() {
564
0
            os.write_string(12, v)?;
565
0
        }
566
0
        os.write_unknown_fields(self.special_fields.unknown_fields())?;
567
0
        ::std::result::Result::Ok(())
568
0
    }
569
570
0
    fn special_fields(&self) -> &crate::SpecialFields {
571
0
        &self.special_fields
572
0
    }
573
574
0
    fn mut_special_fields(&mut self) -> &mut crate::SpecialFields {
575
0
        &mut self.special_fields
576
0
    }
577
578
0
    fn new() -> FileDescriptorProto {
579
0
        FileDescriptorProto::new()
580
0
    }
581
582
0
    fn clear(&mut self) {
583
0
        self.name = ::std::option::Option::None;
584
0
        self.package = ::std::option::Option::None;
585
0
        self.dependency.clear();
586
0
        self.public_dependency.clear();
587
0
        self.weak_dependency.clear();
588
0
        self.message_type.clear();
589
0
        self.enum_type.clear();
590
0
        self.service.clear();
591
0
        self.extension.clear();
592
0
        self.options.clear();
593
0
        self.source_code_info.clear();
594
0
        self.syntax = ::std::option::Option::None;
595
0
        self.special_fields.clear();
596
0
    }
597
598
0
    fn default_instance() -> &'static FileDescriptorProto {
599
        static instance: FileDescriptorProto = FileDescriptorProto {
600
            name: ::std::option::Option::None,
601
            package: ::std::option::Option::None,
602
            dependency: ::std::vec::Vec::new(),
603
            public_dependency: ::std::vec::Vec::new(),
604
            weak_dependency: ::std::vec::Vec::new(),
605
            message_type: ::std::vec::Vec::new(),
606
            enum_type: ::std::vec::Vec::new(),
607
            service: ::std::vec::Vec::new(),
608
            extension: ::std::vec::Vec::new(),
609
            options: crate::MessageField::none(),
610
            source_code_info: crate::MessageField::none(),
611
            syntax: ::std::option::Option::None,
612
            special_fields: crate::SpecialFields::new(),
613
        };
614
0
        &instance
615
0
    }
616
}
617
618
impl crate::MessageFull for FileDescriptorProto {
619
0
    fn descriptor() -> crate::reflect::MessageDescriptor {
620
        static descriptor: crate::rt::Lazy<crate::reflect::MessageDescriptor> = crate::rt::Lazy::new();
621
0
        descriptor.get(|| file_descriptor().message_by_package_relative_name("FileDescriptorProto").unwrap()).clone()
622
0
    }
623
}
624
625
impl ::std::fmt::Display for FileDescriptorProto {
626
0
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
627
0
        crate::text_format::fmt(self, f)
628
0
    }
629
}
630
631
impl crate::reflect::ProtobufValue for FileDescriptorProto {
632
    type RuntimeType = crate::reflect::rt::RuntimeTypeMessage<Self>;
633
}
634
635
///  Describes a message type.
636
// @@protoc_insertion_point(message:google.protobuf.DescriptorProto)
637
#[derive(PartialEq,Clone,Default,Debug)]
638
pub struct DescriptorProto {
639
    // message fields
640
    // @@protoc_insertion_point(field:google.protobuf.DescriptorProto.name)
641
    pub name: ::std::option::Option<::std::string::String>,
642
    // @@protoc_insertion_point(field:google.protobuf.DescriptorProto.field)
643
    pub field: ::std::vec::Vec<FieldDescriptorProto>,
644
    // @@protoc_insertion_point(field:google.protobuf.DescriptorProto.extension)
645
    pub extension: ::std::vec::Vec<FieldDescriptorProto>,
646
    // @@protoc_insertion_point(field:google.protobuf.DescriptorProto.nested_type)
647
    pub nested_type: ::std::vec::Vec<DescriptorProto>,
648
    // @@protoc_insertion_point(field:google.protobuf.DescriptorProto.enum_type)
649
    pub enum_type: ::std::vec::Vec<EnumDescriptorProto>,
650
    // @@protoc_insertion_point(field:google.protobuf.DescriptorProto.extension_range)
651
    pub extension_range: ::std::vec::Vec<descriptor_proto::ExtensionRange>,
652
    // @@protoc_insertion_point(field:google.protobuf.DescriptorProto.oneof_decl)
653
    pub oneof_decl: ::std::vec::Vec<OneofDescriptorProto>,
654
    // @@protoc_insertion_point(field:google.protobuf.DescriptorProto.options)
655
    pub options: crate::MessageField<MessageOptions>,
656
    // @@protoc_insertion_point(field:google.protobuf.DescriptorProto.reserved_range)
657
    pub reserved_range: ::std::vec::Vec<descriptor_proto::ReservedRange>,
658
    ///  Reserved field names, which may not be used by fields in the same message.
659
    ///  A given name may only be reserved once.
660
    // @@protoc_insertion_point(field:google.protobuf.DescriptorProto.reserved_name)
661
    pub reserved_name: ::std::vec::Vec<::std::string::String>,
662
    // special fields
663
    // @@protoc_insertion_point(special_field:google.protobuf.DescriptorProto.special_fields)
664
    pub special_fields: crate::SpecialFields,
665
}
666
667
impl<'a> ::std::default::Default for &'a DescriptorProto {
668
0
    fn default() -> &'a DescriptorProto {
669
0
        <DescriptorProto as crate::Message>::default_instance()
670
0
    }
671
}
672
673
impl DescriptorProto {
674
0
    pub fn new() -> DescriptorProto {
675
0
        ::std::default::Default::default()
676
0
    }
677
678
    // optional string name = 1;
679
680
0
    pub fn name(&self) -> &str {
681
0
        match self.name.as_ref() {
682
0
            Some(v) => v,
683
0
            None => "",
684
        }
685
0
    }
686
687
0
    pub fn clear_name(&mut self) {
688
0
        self.name = ::std::option::Option::None;
689
0
    }
690
691
0
    pub fn has_name(&self) -> bool {
692
0
        self.name.is_some()
693
0
    }
694
695
    // Param is passed by value, moved
696
0
    pub fn set_name(&mut self, v: ::std::string::String) {
697
0
        self.name = ::std::option::Option::Some(v);
698
0
    }
699
700
    // Mutable pointer to the field.
701
    // If field is not initialized, it is initialized with default value first.
702
0
    pub fn mut_name(&mut self) -> &mut ::std::string::String {
703
0
        if self.name.is_none() {
704
0
            self.name = ::std::option::Option::Some(::std::string::String::new());
705
0
        }
706
0
        self.name.as_mut().unwrap()
707
0
    }
708
709
    // Take field
710
0
    pub fn take_name(&mut self) -> ::std::string::String {
711
0
        self.name.take().unwrap_or_else(|| ::std::string::String::new())
712
0
    }
713
714
0
    fn generated_message_descriptor_data() -> crate::reflect::GeneratedMessageDescriptorData {
715
0
        let mut fields = ::std::vec::Vec::with_capacity(10);
716
0
        let mut oneofs = ::std::vec::Vec::with_capacity(0);
717
0
        fields.push(crate::reflect::rt::v2::make_option_accessor::<_, _>(
718
            "name",
719
0
            |m: &DescriptorProto| { &m.name },
720
0
            |m: &mut DescriptorProto| { &mut m.name },
721
        ));
722
0
        fields.push(crate::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
723
            "field",
724
0
            |m: &DescriptorProto| { &m.field },
725
0
            |m: &mut DescriptorProto| { &mut m.field },
726
        ));
727
0
        fields.push(crate::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
728
            "extension",
729
0
            |m: &DescriptorProto| { &m.extension },
730
0
            |m: &mut DescriptorProto| { &mut m.extension },
731
        ));
732
0
        fields.push(crate::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
733
            "nested_type",
734
0
            |m: &DescriptorProto| { &m.nested_type },
735
0
            |m: &mut DescriptorProto| { &mut m.nested_type },
736
        ));
737
0
        fields.push(crate::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
738
            "enum_type",
739
0
            |m: &DescriptorProto| { &m.enum_type },
740
0
            |m: &mut DescriptorProto| { &mut m.enum_type },
741
        ));
742
0
        fields.push(crate::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
743
            "extension_range",
744
0
            |m: &DescriptorProto| { &m.extension_range },
745
0
            |m: &mut DescriptorProto| { &mut m.extension_range },
746
        ));
747
0
        fields.push(crate::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
748
            "oneof_decl",
749
0
            |m: &DescriptorProto| { &m.oneof_decl },
750
0
            |m: &mut DescriptorProto| { &mut m.oneof_decl },
751
        ));
752
0
        fields.push(crate::reflect::rt::v2::make_message_field_accessor::<_, MessageOptions>(
753
            "options",
754
0
            |m: &DescriptorProto| { &m.options },
755
0
            |m: &mut DescriptorProto| { &mut m.options },
756
        ));
757
0
        fields.push(crate::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
758
            "reserved_range",
759
0
            |m: &DescriptorProto| { &m.reserved_range },
760
0
            |m: &mut DescriptorProto| { &mut m.reserved_range },
761
        ));
762
0
        fields.push(crate::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
763
            "reserved_name",
764
0
            |m: &DescriptorProto| { &m.reserved_name },
765
0
            |m: &mut DescriptorProto| { &mut m.reserved_name },
766
        ));
767
0
        crate::reflect::GeneratedMessageDescriptorData::new_2::<DescriptorProto>(
768
            "DescriptorProto",
769
0
            fields,
770
0
            oneofs,
771
        )
772
0
    }
773
}
774
775
impl crate::Message for DescriptorProto {
776
    const NAME: &'static str = "DescriptorProto";
777
778
0
    fn is_initialized(&self) -> bool {
779
0
        for v in &self.field {
780
0
            if !v.is_initialized() {
781
0
                return false;
782
0
            }
783
        };
784
0
        for v in &self.extension {
785
0
            if !v.is_initialized() {
786
0
                return false;
787
0
            }
788
        };
789
0
        for v in &self.nested_type {
790
0
            if !v.is_initialized() {
791
0
                return false;
792
0
            }
793
        };
794
0
        for v in &self.enum_type {
795
0
            if !v.is_initialized() {
796
0
                return false;
797
0
            }
798
        };
799
0
        for v in &self.extension_range {
800
0
            if !v.is_initialized() {
801
0
                return false;
802
0
            }
803
        };
804
0
        for v in &self.oneof_decl {
805
0
            if !v.is_initialized() {
806
0
                return false;
807
0
            }
808
        };
809
0
        for v in &self.options {
810
0
            if !v.is_initialized() {
811
0
                return false;
812
0
            }
813
        };
814
0
        for v in &self.reserved_range {
815
0
            if !v.is_initialized() {
816
0
                return false;
817
0
            }
818
        };
819
0
        true
820
0
    }
821
822
0
    fn merge_from(&mut self, is: &mut crate::CodedInputStream<'_>) -> crate::Result<()> {
823
0
        while let Some(tag) = is.read_raw_tag_or_eof()? {
824
0
            match tag {
825
                10 => {
826
0
                    self.name = ::std::option::Option::Some(is.read_string()?);
827
                },
828
                18 => {
829
0
                    self.field.push(is.read_message()?);
830
                },
831
                50 => {
832
0
                    self.extension.push(is.read_message()?);
833
                },
834
                26 => {
835
0
                    self.nested_type.push(is.read_message()?);
836
                },
837
                34 => {
838
0
                    self.enum_type.push(is.read_message()?);
839
                },
840
                42 => {
841
0
                    self.extension_range.push(is.read_message()?);
842
                },
843
                66 => {
844
0
                    self.oneof_decl.push(is.read_message()?);
845
                },
846
                58 => {
847
0
                    crate::rt::read_singular_message_into_field(is, &mut self.options)?;
848
                },
849
                74 => {
850
0
                    self.reserved_range.push(is.read_message()?);
851
                },
852
                82 => {
853
0
                    self.reserved_name.push(is.read_string()?);
854
                },
855
0
                tag => {
856
0
                    crate::rt::read_unknown_or_skip_group(tag, is, self.special_fields.mut_unknown_fields())?;
857
                },
858
            };
859
        }
860
0
        ::std::result::Result::Ok(())
861
0
    }
862
863
    // Compute sizes of nested messages
864
    #[allow(unused_variables)]
865
0
    fn compute_size(&self) -> u64 {
866
0
        let mut my_size = 0;
867
0
        if let Some(v) = self.name.as_ref() {
868
0
            my_size += crate::rt::string_size(1, &v);
869
0
        }
870
0
        for value in &self.field {
871
0
            let len = value.compute_size();
872
0
            my_size += 1 + crate::rt::compute_raw_varint64_size(len) + len;
873
0
        };
874
0
        for value in &self.extension {
875
0
            let len = value.compute_size();
876
0
            my_size += 1 + crate::rt::compute_raw_varint64_size(len) + len;
877
0
        };
878
0
        for value in &self.nested_type {
879
0
            let len = value.compute_size();
880
0
            my_size += 1 + crate::rt::compute_raw_varint64_size(len) + len;
881
0
        };
882
0
        for value in &self.enum_type {
883
0
            let len = value.compute_size();
884
0
            my_size += 1 + crate::rt::compute_raw_varint64_size(len) + len;
885
0
        };
886
0
        for value in &self.extension_range {
887
0
            let len = value.compute_size();
888
0
            my_size += 1 + crate::rt::compute_raw_varint64_size(len) + len;
889
0
        };
890
0
        for value in &self.oneof_decl {
891
0
            let len = value.compute_size();
892
0
            my_size += 1 + crate::rt::compute_raw_varint64_size(len) + len;
893
0
        };
894
0
        if let Some(v) = self.options.as_ref() {
895
0
            let len = v.compute_size();
896
0
            my_size += 1 + crate::rt::compute_raw_varint64_size(len) + len;
897
0
        }
898
0
        for value in &self.reserved_range {
899
0
            let len = value.compute_size();
900
0
            my_size += 1 + crate::rt::compute_raw_varint64_size(len) + len;
901
0
        };
902
0
        for value in &self.reserved_name {
903
0
            my_size += crate::rt::string_size(10, &value);
904
0
        };
905
0
        my_size += crate::rt::unknown_fields_size(self.special_fields.unknown_fields());
906
0
        self.special_fields.cached_size().set(my_size as u32);
907
0
        my_size
908
0
    }
909
910
0
    fn write_to_with_cached_sizes(&self, os: &mut crate::CodedOutputStream<'_>) -> crate::Result<()> {
911
0
        if let Some(v) = self.name.as_ref() {
912
0
            os.write_string(1, v)?;
913
0
        }
914
0
        for v in &self.field {
915
0
            crate::rt::write_message_field_with_cached_size(2, v, os)?;
916
        };
917
0
        for v in &self.extension {
918
0
            crate::rt::write_message_field_with_cached_size(6, v, os)?;
919
        };
920
0
        for v in &self.nested_type {
921
0
            crate::rt::write_message_field_with_cached_size(3, v, os)?;
922
        };
923
0
        for v in &self.enum_type {
924
0
            crate::rt::write_message_field_with_cached_size(4, v, os)?;
925
        };
926
0
        for v in &self.extension_range {
927
0
            crate::rt::write_message_field_with_cached_size(5, v, os)?;
928
        };
929
0
        for v in &self.oneof_decl {
930
0
            crate::rt::write_message_field_with_cached_size(8, v, os)?;
931
        };
932
0
        if let Some(v) = self.options.as_ref() {
933
0
            crate::rt::write_message_field_with_cached_size(7, v, os)?;
934
0
        }
935
0
        for v in &self.reserved_range {
936
0
            crate::rt::write_message_field_with_cached_size(9, v, os)?;
937
        };
938
0
        for v in &self.reserved_name {
939
0
            os.write_string(10, &v)?;
940
        };
941
0
        os.write_unknown_fields(self.special_fields.unknown_fields())?;
942
0
        ::std::result::Result::Ok(())
943
0
    }
944
945
0
    fn special_fields(&self) -> &crate::SpecialFields {
946
0
        &self.special_fields
947
0
    }
948
949
0
    fn mut_special_fields(&mut self) -> &mut crate::SpecialFields {
950
0
        &mut self.special_fields
951
0
    }
952
953
0
    fn new() -> DescriptorProto {
954
0
        DescriptorProto::new()
955
0
    }
956
957
0
    fn clear(&mut self) {
958
0
        self.name = ::std::option::Option::None;
959
0
        self.field.clear();
960
0
        self.extension.clear();
961
0
        self.nested_type.clear();
962
0
        self.enum_type.clear();
963
0
        self.extension_range.clear();
964
0
        self.oneof_decl.clear();
965
0
        self.options.clear();
966
0
        self.reserved_range.clear();
967
0
        self.reserved_name.clear();
968
0
        self.special_fields.clear();
969
0
    }
970
971
0
    fn default_instance() -> &'static DescriptorProto {
972
        static instance: DescriptorProto = DescriptorProto {
973
            name: ::std::option::Option::None,
974
            field: ::std::vec::Vec::new(),
975
            extension: ::std::vec::Vec::new(),
976
            nested_type: ::std::vec::Vec::new(),
977
            enum_type: ::std::vec::Vec::new(),
978
            extension_range: ::std::vec::Vec::new(),
979
            oneof_decl: ::std::vec::Vec::new(),
980
            options: crate::MessageField::none(),
981
            reserved_range: ::std::vec::Vec::new(),
982
            reserved_name: ::std::vec::Vec::new(),
983
            special_fields: crate::SpecialFields::new(),
984
        };
985
0
        &instance
986
0
    }
987
}
988
989
impl crate::MessageFull for DescriptorProto {
990
0
    fn descriptor() -> crate::reflect::MessageDescriptor {
991
        static descriptor: crate::rt::Lazy<crate::reflect::MessageDescriptor> = crate::rt::Lazy::new();
992
0
        descriptor.get(|| file_descriptor().message_by_package_relative_name("DescriptorProto").unwrap()).clone()
993
0
    }
994
}
995
996
impl ::std::fmt::Display for DescriptorProto {
997
0
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
998
0
        crate::text_format::fmt(self, f)
999
0
    }
1000
}
1001
1002
impl crate::reflect::ProtobufValue for DescriptorProto {
1003
    type RuntimeType = crate::reflect::rt::RuntimeTypeMessage<Self>;
1004
}
1005
1006
/// Nested message and enums of message `DescriptorProto`
1007
pub mod descriptor_proto {
1008
    // @@protoc_insertion_point(message:google.protobuf.DescriptorProto.ExtensionRange)
1009
    #[derive(PartialEq,Clone,Default,Debug)]
1010
    pub struct ExtensionRange {
1011
        // message fields
1012
        // @@protoc_insertion_point(field:google.protobuf.DescriptorProto.ExtensionRange.start)
1013
        pub start: ::std::option::Option<i32>,
1014
        // @@protoc_insertion_point(field:google.protobuf.DescriptorProto.ExtensionRange.end)
1015
        pub end: ::std::option::Option<i32>,
1016
        // @@protoc_insertion_point(field:google.protobuf.DescriptorProto.ExtensionRange.options)
1017
        pub options: crate::MessageField<super::ExtensionRangeOptions>,
1018
        // special fields
1019
        // @@protoc_insertion_point(special_field:google.protobuf.DescriptorProto.ExtensionRange.special_fields)
1020
        pub special_fields: crate::SpecialFields,
1021
    }
1022
1023
    impl<'a> ::std::default::Default for &'a ExtensionRange {
1024
0
        fn default() -> &'a ExtensionRange {
1025
0
            <ExtensionRange as crate::Message>::default_instance()
1026
0
        }
1027
    }
1028
1029
    impl ExtensionRange {
1030
0
        pub fn new() -> ExtensionRange {
1031
0
            ::std::default::Default::default()
1032
0
        }
1033
1034
        // optional int32 start = 1;
1035
1036
0
        pub fn start(&self) -> i32 {
1037
0
            self.start.unwrap_or(0)
1038
0
        }
1039
1040
0
        pub fn clear_start(&mut self) {
1041
0
            self.start = ::std::option::Option::None;
1042
0
        }
1043
1044
0
        pub fn has_start(&self) -> bool {
1045
0
            self.start.is_some()
1046
0
        }
1047
1048
        // Param is passed by value, moved
1049
0
        pub fn set_start(&mut self, v: i32) {
1050
0
            self.start = ::std::option::Option::Some(v);
1051
0
        }
1052
1053
        // optional int32 end = 2;
1054
1055
0
        pub fn end(&self) -> i32 {
1056
0
            self.end.unwrap_or(0)
1057
0
        }
1058
1059
0
        pub fn clear_end(&mut self) {
1060
0
            self.end = ::std::option::Option::None;
1061
0
        }
1062
1063
0
        pub fn has_end(&self) -> bool {
1064
0
            self.end.is_some()
1065
0
        }
1066
1067
        // Param is passed by value, moved
1068
0
        pub fn set_end(&mut self, v: i32) {
1069
0
            self.end = ::std::option::Option::Some(v);
1070
0
        }
1071
1072
0
        pub(in super) fn generated_message_descriptor_data() -> crate::reflect::GeneratedMessageDescriptorData {
1073
0
            let mut fields = ::std::vec::Vec::with_capacity(3);
1074
0
            let mut oneofs = ::std::vec::Vec::with_capacity(0);
1075
0
            fields.push(crate::reflect::rt::v2::make_option_accessor::<_, _>(
1076
                "start",
1077
0
                |m: &ExtensionRange| { &m.start },
1078
0
                |m: &mut ExtensionRange| { &mut m.start },
1079
            ));
1080
0
            fields.push(crate::reflect::rt::v2::make_option_accessor::<_, _>(
1081
                "end",
1082
0
                |m: &ExtensionRange| { &m.end },
1083
0
                |m: &mut ExtensionRange| { &mut m.end },
1084
            ));
1085
0
            fields.push(crate::reflect::rt::v2::make_message_field_accessor::<_, super::ExtensionRangeOptions>(
1086
                "options",
1087
0
                |m: &ExtensionRange| { &m.options },
1088
0
                |m: &mut ExtensionRange| { &mut m.options },
1089
            ));
1090
0
            crate::reflect::GeneratedMessageDescriptorData::new_2::<ExtensionRange>(
1091
                "DescriptorProto.ExtensionRange",
1092
0
                fields,
1093
0
                oneofs,
1094
            )
1095
0
        }
1096
    }
1097
1098
    impl crate::Message for ExtensionRange {
1099
        const NAME: &'static str = "ExtensionRange";
1100
1101
0
        fn is_initialized(&self) -> bool {
1102
0
            for v in &self.options {
1103
0
                if !v.is_initialized() {
1104
0
                    return false;
1105
0
                }
1106
            };
1107
0
            true
1108
0
        }
1109
1110
0
        fn merge_from(&mut self, is: &mut crate::CodedInputStream<'_>) -> crate::Result<()> {
1111
0
            while let Some(tag) = is.read_raw_tag_or_eof()? {
1112
0
                match tag {
1113
                    8 => {
1114
0
                        self.start = ::std::option::Option::Some(is.read_int32()?);
1115
                    },
1116
                    16 => {
1117
0
                        self.end = ::std::option::Option::Some(is.read_int32()?);
1118
                    },
1119
                    26 => {
1120
0
                        crate::rt::read_singular_message_into_field(is, &mut self.options)?;
1121
                    },
1122
0
                    tag => {
1123
0
                        crate::rt::read_unknown_or_skip_group(tag, is, self.special_fields.mut_unknown_fields())?;
1124
                    },
1125
                };
1126
            }
1127
0
            ::std::result::Result::Ok(())
1128
0
        }
1129
1130
        // Compute sizes of nested messages
1131
        #[allow(unused_variables)]
1132
0
        fn compute_size(&self) -> u64 {
1133
0
            let mut my_size = 0;
1134
0
            if let Some(v) = self.start {
1135
0
                my_size += crate::rt::int32_size(1, v);
1136
0
            }
1137
0
            if let Some(v) = self.end {
1138
0
                my_size += crate::rt::int32_size(2, v);
1139
0
            }
1140
0
            if let Some(v) = self.options.as_ref() {
1141
0
                let len = v.compute_size();
1142
0
                my_size += 1 + crate::rt::compute_raw_varint64_size(len) + len;
1143
0
            }
1144
0
            my_size += crate::rt::unknown_fields_size(self.special_fields.unknown_fields());
1145
0
            self.special_fields.cached_size().set(my_size as u32);
1146
0
            my_size
1147
0
        }
1148
1149
0
        fn write_to_with_cached_sizes(&self, os: &mut crate::CodedOutputStream<'_>) -> crate::Result<()> {
1150
0
            if let Some(v) = self.start {
1151
0
                os.write_int32(1, v)?;
1152
0
            }
1153
0
            if let Some(v) = self.end {
1154
0
                os.write_int32(2, v)?;
1155
0
            }
1156
0
            if let Some(v) = self.options.as_ref() {
1157
0
                crate::rt::write_message_field_with_cached_size(3, v, os)?;
1158
0
            }
1159
0
            os.write_unknown_fields(self.special_fields.unknown_fields())?;
1160
0
            ::std::result::Result::Ok(())
1161
0
        }
1162
1163
0
        fn special_fields(&self) -> &crate::SpecialFields {
1164
0
            &self.special_fields
1165
0
        }
1166
1167
0
        fn mut_special_fields(&mut self) -> &mut crate::SpecialFields {
1168
0
            &mut self.special_fields
1169
0
        }
1170
1171
0
        fn new() -> ExtensionRange {
1172
0
            ExtensionRange::new()
1173
0
        }
1174
1175
0
        fn clear(&mut self) {
1176
0
            self.start = ::std::option::Option::None;
1177
0
            self.end = ::std::option::Option::None;
1178
0
            self.options.clear();
1179
0
            self.special_fields.clear();
1180
0
        }
1181
1182
0
        fn default_instance() -> &'static ExtensionRange {
1183
            static instance: ExtensionRange = ExtensionRange {
1184
                start: ::std::option::Option::None,
1185
                end: ::std::option::Option::None,
1186
                options: crate::MessageField::none(),
1187
                special_fields: crate::SpecialFields::new(),
1188
            };
1189
0
            &instance
1190
0
        }
1191
    }
1192
1193
    impl crate::MessageFull for ExtensionRange {
1194
0
        fn descriptor() -> crate::reflect::MessageDescriptor {
1195
            static descriptor: crate::rt::Lazy<crate::reflect::MessageDescriptor> = crate::rt::Lazy::new();
1196
0
            descriptor.get(|| super::file_descriptor().message_by_package_relative_name("DescriptorProto.ExtensionRange").unwrap()).clone()
1197
0
        }
1198
    }
1199
1200
    impl ::std::fmt::Display for ExtensionRange {
1201
0
        fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1202
0
            crate::text_format::fmt(self, f)
1203
0
        }
1204
    }
1205
1206
    impl crate::reflect::ProtobufValue for ExtensionRange {
1207
        type RuntimeType = crate::reflect::rt::RuntimeTypeMessage<Self>;
1208
    }
1209
1210
    ///  Range of reserved tag numbers. Reserved tag numbers may not be used by
1211
    ///  fields or extension ranges in the same message. Reserved ranges may
1212
    ///  not overlap.
1213
    // @@protoc_insertion_point(message:google.protobuf.DescriptorProto.ReservedRange)
1214
    #[derive(PartialEq,Clone,Default,Debug)]
1215
    pub struct ReservedRange {
1216
        // message fields
1217
        // @@protoc_insertion_point(field:google.protobuf.DescriptorProto.ReservedRange.start)
1218
        pub start: ::std::option::Option<i32>,
1219
        // @@protoc_insertion_point(field:google.protobuf.DescriptorProto.ReservedRange.end)
1220
        pub end: ::std::option::Option<i32>,
1221
        // special fields
1222
        // @@protoc_insertion_point(special_field:google.protobuf.DescriptorProto.ReservedRange.special_fields)
1223
        pub special_fields: crate::SpecialFields,
1224
    }
1225
1226
    impl<'a> ::std::default::Default for &'a ReservedRange {
1227
0
        fn default() -> &'a ReservedRange {
1228
0
            <ReservedRange as crate::Message>::default_instance()
1229
0
        }
1230
    }
1231
1232
    impl ReservedRange {
1233
0
        pub fn new() -> ReservedRange {
1234
0
            ::std::default::Default::default()
1235
0
        }
1236
1237
        // optional int32 start = 1;
1238
1239
0
        pub fn start(&self) -> i32 {
1240
0
            self.start.unwrap_or(0)
1241
0
        }
1242
1243
0
        pub fn clear_start(&mut self) {
1244
0
            self.start = ::std::option::Option::None;
1245
0
        }
1246
1247
0
        pub fn has_start(&self) -> bool {
1248
0
            self.start.is_some()
1249
0
        }
1250
1251
        // Param is passed by value, moved
1252
0
        pub fn set_start(&mut self, v: i32) {
1253
0
            self.start = ::std::option::Option::Some(v);
1254
0
        }
1255
1256
        // optional int32 end = 2;
1257
1258
0
        pub fn end(&self) -> i32 {
1259
0
            self.end.unwrap_or(0)
1260
0
        }
1261
1262
0
        pub fn clear_end(&mut self) {
1263
0
            self.end = ::std::option::Option::None;
1264
0
        }
1265
1266
0
        pub fn has_end(&self) -> bool {
1267
0
            self.end.is_some()
1268
0
        }
1269
1270
        // Param is passed by value, moved
1271
0
        pub fn set_end(&mut self, v: i32) {
1272
0
            self.end = ::std::option::Option::Some(v);
1273
0
        }
1274
1275
0
        pub(in super) fn generated_message_descriptor_data() -> crate::reflect::GeneratedMessageDescriptorData {
1276
0
            let mut fields = ::std::vec::Vec::with_capacity(2);
1277
0
            let mut oneofs = ::std::vec::Vec::with_capacity(0);
1278
0
            fields.push(crate::reflect::rt::v2::make_option_accessor::<_, _>(
1279
                "start",
1280
0
                |m: &ReservedRange| { &m.start },
1281
0
                |m: &mut ReservedRange| { &mut m.start },
1282
            ));
1283
0
            fields.push(crate::reflect::rt::v2::make_option_accessor::<_, _>(
1284
                "end",
1285
0
                |m: &ReservedRange| { &m.end },
1286
0
                |m: &mut ReservedRange| { &mut m.end },
1287
            ));
1288
0
            crate::reflect::GeneratedMessageDescriptorData::new_2::<ReservedRange>(
1289
                "DescriptorProto.ReservedRange",
1290
0
                fields,
1291
0
                oneofs,
1292
            )
1293
0
        }
1294
    }
1295
1296
    impl crate::Message for ReservedRange {
1297
        const NAME: &'static str = "ReservedRange";
1298
1299
0
        fn is_initialized(&self) -> bool {
1300
0
            true
1301
0
        }
1302
1303
0
        fn merge_from(&mut self, is: &mut crate::CodedInputStream<'_>) -> crate::Result<()> {
1304
0
            while let Some(tag) = is.read_raw_tag_or_eof()? {
1305
0
                match tag {
1306
                    8 => {
1307
0
                        self.start = ::std::option::Option::Some(is.read_int32()?);
1308
                    },
1309
                    16 => {
1310
0
                        self.end = ::std::option::Option::Some(is.read_int32()?);
1311
                    },
1312
0
                    tag => {
1313
0
                        crate::rt::read_unknown_or_skip_group(tag, is, self.special_fields.mut_unknown_fields())?;
1314
                    },
1315
                };
1316
            }
1317
0
            ::std::result::Result::Ok(())
1318
0
        }
1319
1320
        // Compute sizes of nested messages
1321
        #[allow(unused_variables)]
1322
0
        fn compute_size(&self) -> u64 {
1323
0
            let mut my_size = 0;
1324
0
            if let Some(v) = self.start {
1325
0
                my_size += crate::rt::int32_size(1, v);
1326
0
            }
1327
0
            if let Some(v) = self.end {
1328
0
                my_size += crate::rt::int32_size(2, v);
1329
0
            }
1330
0
            my_size += crate::rt::unknown_fields_size(self.special_fields.unknown_fields());
1331
0
            self.special_fields.cached_size().set(my_size as u32);
1332
0
            my_size
1333
0
        }
1334
1335
0
        fn write_to_with_cached_sizes(&self, os: &mut crate::CodedOutputStream<'_>) -> crate::Result<()> {
1336
0
            if let Some(v) = self.start {
1337
0
                os.write_int32(1, v)?;
1338
0
            }
1339
0
            if let Some(v) = self.end {
1340
0
                os.write_int32(2, v)?;
1341
0
            }
1342
0
            os.write_unknown_fields(self.special_fields.unknown_fields())?;
1343
0
            ::std::result::Result::Ok(())
1344
0
        }
1345
1346
0
        fn special_fields(&self) -> &crate::SpecialFields {
1347
0
            &self.special_fields
1348
0
        }
1349
1350
0
        fn mut_special_fields(&mut self) -> &mut crate::SpecialFields {
1351
0
            &mut self.special_fields
1352
0
        }
1353
1354
0
        fn new() -> ReservedRange {
1355
0
            ReservedRange::new()
1356
0
        }
1357
1358
0
        fn clear(&mut self) {
1359
0
            self.start = ::std::option::Option::None;
1360
0
            self.end = ::std::option::Option::None;
1361
0
            self.special_fields.clear();
1362
0
        }
1363
1364
0
        fn default_instance() -> &'static ReservedRange {
1365
            static instance: ReservedRange = ReservedRange {
1366
                start: ::std::option::Option::None,
1367
                end: ::std::option::Option::None,
1368
                special_fields: crate::SpecialFields::new(),
1369
            };
1370
0
            &instance
1371
0
        }
1372
    }
1373
1374
    impl crate::MessageFull for ReservedRange {
1375
0
        fn descriptor() -> crate::reflect::MessageDescriptor {
1376
            static descriptor: crate::rt::Lazy<crate::reflect::MessageDescriptor> = crate::rt::Lazy::new();
1377
0
            descriptor.get(|| super::file_descriptor().message_by_package_relative_name("DescriptorProto.ReservedRange").unwrap()).clone()
1378
0
        }
1379
    }
1380
1381
    impl ::std::fmt::Display for ReservedRange {
1382
0
        fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1383
0
            crate::text_format::fmt(self, f)
1384
0
        }
1385
    }
1386
1387
    impl crate::reflect::ProtobufValue for ReservedRange {
1388
        type RuntimeType = crate::reflect::rt::RuntimeTypeMessage<Self>;
1389
    }
1390
}
1391
1392
// @@protoc_insertion_point(message:google.protobuf.ExtensionRangeOptions)
1393
#[derive(PartialEq,Clone,Default,Debug)]
1394
pub struct ExtensionRangeOptions {
1395
    // message fields
1396
    ///  The parser stores options it doesn't recognize here. See above.
1397
    // @@protoc_insertion_point(field:google.protobuf.ExtensionRangeOptions.uninterpreted_option)
1398
    pub uninterpreted_option: ::std::vec::Vec<UninterpretedOption>,
1399
    // special fields
1400
    // @@protoc_insertion_point(special_field:google.protobuf.ExtensionRangeOptions.special_fields)
1401
    pub special_fields: crate::SpecialFields,
1402
}
1403
1404
impl<'a> ::std::default::Default for &'a ExtensionRangeOptions {
1405
0
    fn default() -> &'a ExtensionRangeOptions {
1406
0
        <ExtensionRangeOptions as crate::Message>::default_instance()
1407
0
    }
1408
}
1409
1410
impl ExtensionRangeOptions {
1411
0
    pub fn new() -> ExtensionRangeOptions {
1412
0
        ::std::default::Default::default()
1413
0
    }
1414
1415
0
    fn generated_message_descriptor_data() -> crate::reflect::GeneratedMessageDescriptorData {
1416
0
        let mut fields = ::std::vec::Vec::with_capacity(1);
1417
0
        let mut oneofs = ::std::vec::Vec::with_capacity(0);
1418
0
        fields.push(crate::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
1419
            "uninterpreted_option",
1420
0
            |m: &ExtensionRangeOptions| { &m.uninterpreted_option },
1421
0
            |m: &mut ExtensionRangeOptions| { &mut m.uninterpreted_option },
1422
        ));
1423
0
        crate::reflect::GeneratedMessageDescriptorData::new_2::<ExtensionRangeOptions>(
1424
            "ExtensionRangeOptions",
1425
0
            fields,
1426
0
            oneofs,
1427
        )
1428
0
    }
1429
}
1430
1431
impl crate::Message for ExtensionRangeOptions {
1432
    const NAME: &'static str = "ExtensionRangeOptions";
1433
1434
0
    fn is_initialized(&self) -> bool {
1435
0
        for v in &self.uninterpreted_option {
1436
0
            if !v.is_initialized() {
1437
0
                return false;
1438
0
            }
1439
        };
1440
0
        true
1441
0
    }
1442
1443
0
    fn merge_from(&mut self, is: &mut crate::CodedInputStream<'_>) -> crate::Result<()> {
1444
0
        while let Some(tag) = is.read_raw_tag_or_eof()? {
1445
0
            match tag {
1446
                7994 => {
1447
0
                    self.uninterpreted_option.push(is.read_message()?);
1448
                },
1449
0
                tag => {
1450
0
                    crate::rt::read_unknown_or_skip_group(tag, is, self.special_fields.mut_unknown_fields())?;
1451
                },
1452
            };
1453
        }
1454
0
        ::std::result::Result::Ok(())
1455
0
    }
1456
1457
    // Compute sizes of nested messages
1458
    #[allow(unused_variables)]
1459
0
    fn compute_size(&self) -> u64 {
1460
0
        let mut my_size = 0;
1461
0
        for value in &self.uninterpreted_option {
1462
0
            let len = value.compute_size();
1463
0
            my_size += 2 + crate::rt::compute_raw_varint64_size(len) + len;
1464
0
        };
1465
0
        my_size += crate::rt::unknown_fields_size(self.special_fields.unknown_fields());
1466
0
        self.special_fields.cached_size().set(my_size as u32);
1467
0
        my_size
1468
0
    }
1469
1470
0
    fn write_to_with_cached_sizes(&self, os: &mut crate::CodedOutputStream<'_>) -> crate::Result<()> {
1471
0
        for v in &self.uninterpreted_option {
1472
0
            crate::rt::write_message_field_with_cached_size(999, v, os)?;
1473
        };
1474
0
        os.write_unknown_fields(self.special_fields.unknown_fields())?;
1475
0
        ::std::result::Result::Ok(())
1476
0
    }
1477
1478
0
    fn special_fields(&self) -> &crate::SpecialFields {
1479
0
        &self.special_fields
1480
0
    }
1481
1482
0
    fn mut_special_fields(&mut self) -> &mut crate::SpecialFields {
1483
0
        &mut self.special_fields
1484
0
    }
1485
1486
0
    fn new() -> ExtensionRangeOptions {
1487
0
        ExtensionRangeOptions::new()
1488
0
    }
1489
1490
0
    fn clear(&mut self) {
1491
0
        self.uninterpreted_option.clear();
1492
0
        self.special_fields.clear();
1493
0
    }
1494
1495
0
    fn default_instance() -> &'static ExtensionRangeOptions {
1496
        static instance: ExtensionRangeOptions = ExtensionRangeOptions {
1497
            uninterpreted_option: ::std::vec::Vec::new(),
1498
            special_fields: crate::SpecialFields::new(),
1499
        };
1500
0
        &instance
1501
0
    }
1502
}
1503
1504
impl crate::MessageFull for ExtensionRangeOptions {
1505
0
    fn descriptor() -> crate::reflect::MessageDescriptor {
1506
        static descriptor: crate::rt::Lazy<crate::reflect::MessageDescriptor> = crate::rt::Lazy::new();
1507
0
        descriptor.get(|| file_descriptor().message_by_package_relative_name("ExtensionRangeOptions").unwrap()).clone()
1508
0
    }
1509
}
1510
1511
impl ::std::fmt::Display for ExtensionRangeOptions {
1512
0
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1513
0
        crate::text_format::fmt(self, f)
1514
0
    }
1515
}
1516
1517
impl crate::reflect::ProtobufValue for ExtensionRangeOptions {
1518
    type RuntimeType = crate::reflect::rt::RuntimeTypeMessage<Self>;
1519
}
1520
1521
///  Describes a field within a message.
1522
// @@protoc_insertion_point(message:google.protobuf.FieldDescriptorProto)
1523
#[derive(PartialEq,Clone,Default,Debug)]
1524
pub struct FieldDescriptorProto {
1525
    // message fields
1526
    // @@protoc_insertion_point(field:google.protobuf.FieldDescriptorProto.name)
1527
    pub name: ::std::option::Option<::std::string::String>,
1528
    // @@protoc_insertion_point(field:google.protobuf.FieldDescriptorProto.number)
1529
    pub number: ::std::option::Option<i32>,
1530
    // @@protoc_insertion_point(field:google.protobuf.FieldDescriptorProto.label)
1531
    pub label: ::std::option::Option<crate::EnumOrUnknown<field_descriptor_proto::Label>>,
1532
    ///  If type_name is set, this need not be set.  If both this and type_name
1533
    ///  are set, this must be one of TYPE_ENUM, TYPE_MESSAGE or TYPE_GROUP.
1534
    // @@protoc_insertion_point(field:google.protobuf.FieldDescriptorProto.type)
1535
    pub type_: ::std::option::Option<crate::EnumOrUnknown<field_descriptor_proto::Type>>,
1536
    ///  For message and enum types, this is the name of the type.  If the name
1537
    ///  starts with a '.', it is fully-qualified.  Otherwise, C++-like scoping
1538
    ///  rules are used to find the type (i.e. first the nested types within this
1539
    ///  message are searched, then within the parent, on up to the root
1540
    ///  namespace).
1541
    // @@protoc_insertion_point(field:google.protobuf.FieldDescriptorProto.type_name)
1542
    pub type_name: ::std::option::Option<::std::string::String>,
1543
    ///  For extensions, this is the name of the type being extended.  It is
1544
    ///  resolved in the same manner as type_name.
1545
    // @@protoc_insertion_point(field:google.protobuf.FieldDescriptorProto.extendee)
1546
    pub extendee: ::std::option::Option<::std::string::String>,
1547
    ///  For numeric types, contains the original text representation of the value.
1548
    ///  For booleans, "true" or "false".
1549
    ///  For strings, contains the default text contents (not escaped in any way).
1550
    ///  For bytes, contains the C escaped value.  All bytes >= 128 are escaped.
1551
    ///  TODO(kenton):  Base-64 encode?
1552
    // @@protoc_insertion_point(field:google.protobuf.FieldDescriptorProto.default_value)
1553
    pub default_value: ::std::option::Option<::std::string::String>,
1554
    ///  If set, gives the index of a oneof in the containing type's oneof_decl
1555
    ///  list.  This field is a member of that oneof.
1556
    // @@protoc_insertion_point(field:google.protobuf.FieldDescriptorProto.oneof_index)
1557
    pub oneof_index: ::std::option::Option<i32>,
1558
    ///  JSON name of this field. The value is set by protocol compiler. If the
1559
    ///  user has set a "json_name" option on this field, that option's value
1560
    ///  will be used. Otherwise, it's deduced from the field's name by converting
1561
    ///  it to camelCase.
1562
    // @@protoc_insertion_point(field:google.protobuf.FieldDescriptorProto.json_name)
1563
    pub json_name: ::std::option::Option<::std::string::String>,
1564
    // @@protoc_insertion_point(field:google.protobuf.FieldDescriptorProto.options)
1565
    pub options: crate::MessageField<FieldOptions>,
1566
    ///  If true, this is a proto3 "optional". When a proto3 field is optional, it
1567
    ///  tracks presence regardless of field type.
1568
    ///
1569
    ///  When proto3_optional is true, this field must be belong to a oneof to
1570
    ///  signal to old proto3 clients that presence is tracked for this field. This
1571
    ///  oneof is known as a "synthetic" oneof, and this field must be its sole
1572
    ///  member (each proto3 optional field gets its own synthetic oneof). Synthetic
1573
    ///  oneofs exist in the descriptor only, and do not generate any API. Synthetic
1574
    ///  oneofs must be ordered after all "real" oneofs.
1575
    ///
1576
    ///  For message fields, proto3_optional doesn't create any semantic change,
1577
    ///  since non-repeated message fields always track presence. However it still
1578
    ///  indicates the semantic detail of whether the user wrote "optional" or not.
1579
    ///  This can be useful for round-tripping the .proto file. For consistency we
1580
    ///  give message fields a synthetic oneof also, even though it is not required
1581
    ///  to track presence. This is especially important because the parser can't
1582
    ///  tell if a field is a message or an enum, so it must always create a
1583
    ///  synthetic oneof.
1584
    ///
1585
    ///  Proto2 optional fields do not set this flag, because they already indicate
1586
    ///  optional with `LABEL_OPTIONAL`.
1587
    // @@protoc_insertion_point(field:google.protobuf.FieldDescriptorProto.proto3_optional)
1588
    pub proto3_optional: ::std::option::Option<bool>,
1589
    // special fields
1590
    // @@protoc_insertion_point(special_field:google.protobuf.FieldDescriptorProto.special_fields)
1591
    pub special_fields: crate::SpecialFields,
1592
}
1593
1594
impl<'a> ::std::default::Default for &'a FieldDescriptorProto {
1595
0
    fn default() -> &'a FieldDescriptorProto {
1596
0
        <FieldDescriptorProto as crate::Message>::default_instance()
1597
0
    }
1598
}
1599
1600
impl FieldDescriptorProto {
1601
0
    pub fn new() -> FieldDescriptorProto {
1602
0
        ::std::default::Default::default()
1603
0
    }
1604
1605
    // optional string name = 1;
1606
1607
0
    pub fn name(&self) -> &str {
1608
0
        match self.name.as_ref() {
1609
0
            Some(v) => v,
1610
0
            None => "",
1611
        }
1612
0
    }
1613
1614
0
    pub fn clear_name(&mut self) {
1615
0
        self.name = ::std::option::Option::None;
1616
0
    }
1617
1618
0
    pub fn has_name(&self) -> bool {
1619
0
        self.name.is_some()
1620
0
    }
1621
1622
    // Param is passed by value, moved
1623
0
    pub fn set_name(&mut self, v: ::std::string::String) {
1624
0
        self.name = ::std::option::Option::Some(v);
1625
0
    }
1626
1627
    // Mutable pointer to the field.
1628
    // If field is not initialized, it is initialized with default value first.
1629
0
    pub fn mut_name(&mut self) -> &mut ::std::string::String {
1630
0
        if self.name.is_none() {
1631
0
            self.name = ::std::option::Option::Some(::std::string::String::new());
1632
0
        }
1633
0
        self.name.as_mut().unwrap()
1634
0
    }
1635
1636
    // Take field
1637
0
    pub fn take_name(&mut self) -> ::std::string::String {
1638
0
        self.name.take().unwrap_or_else(|| ::std::string::String::new())
1639
0
    }
1640
1641
    // optional int32 number = 3;
1642
1643
0
    pub fn number(&self) -> i32 {
1644
0
        self.number.unwrap_or(0)
1645
0
    }
1646
1647
0
    pub fn clear_number(&mut self) {
1648
0
        self.number = ::std::option::Option::None;
1649
0
    }
1650
1651
0
    pub fn has_number(&self) -> bool {
1652
0
        self.number.is_some()
1653
0
    }
1654
1655
    // Param is passed by value, moved
1656
0
    pub fn set_number(&mut self, v: i32) {
1657
0
        self.number = ::std::option::Option::Some(v);
1658
0
    }
1659
1660
    // optional .google.protobuf.FieldDescriptorProto.Label label = 4;
1661
1662
0
    pub fn label(&self) -> field_descriptor_proto::Label {
1663
0
        match self.label {
1664
0
            Some(e) => e.enum_value_or(field_descriptor_proto::Label::LABEL_OPTIONAL),
1665
0
            None => field_descriptor_proto::Label::LABEL_OPTIONAL,
1666
        }
1667
0
    }
1668
1669
0
    pub fn clear_label(&mut self) {
1670
0
        self.label = ::std::option::Option::None;
1671
0
    }
1672
1673
0
    pub fn has_label(&self) -> bool {
1674
0
        self.label.is_some()
1675
0
    }
1676
1677
    // Param is passed by value, moved
1678
0
    pub fn set_label(&mut self, v: field_descriptor_proto::Label) {
1679
0
        self.label = ::std::option::Option::Some(crate::EnumOrUnknown::new(v));
1680
0
    }
1681
1682
    // optional .google.protobuf.FieldDescriptorProto.Type type = 5;
1683
1684
0
    pub fn type_(&self) -> field_descriptor_proto::Type {
1685
0
        match self.type_ {
1686
0
            Some(e) => e.enum_value_or(field_descriptor_proto::Type::TYPE_DOUBLE),
1687
0
            None => field_descriptor_proto::Type::TYPE_DOUBLE,
1688
        }
1689
0
    }
1690
1691
0
    pub fn clear_type_(&mut self) {
1692
0
        self.type_ = ::std::option::Option::None;
1693
0
    }
1694
1695
0
    pub fn has_type(&self) -> bool {
1696
0
        self.type_.is_some()
1697
0
    }
1698
1699
    // Param is passed by value, moved
1700
0
    pub fn set_type(&mut self, v: field_descriptor_proto::Type) {
1701
0
        self.type_ = ::std::option::Option::Some(crate::EnumOrUnknown::new(v));
1702
0
    }
1703
1704
    // optional string type_name = 6;
1705
1706
0
    pub fn type_name(&self) -> &str {
1707
0
        match self.type_name.as_ref() {
1708
0
            Some(v) => v,
1709
0
            None => "",
1710
        }
1711
0
    }
1712
1713
0
    pub fn clear_type_name(&mut self) {
1714
0
        self.type_name = ::std::option::Option::None;
1715
0
    }
1716
1717
0
    pub fn has_type_name(&self) -> bool {
1718
0
        self.type_name.is_some()
1719
0
    }
1720
1721
    // Param is passed by value, moved
1722
0
    pub fn set_type_name(&mut self, v: ::std::string::String) {
1723
0
        self.type_name = ::std::option::Option::Some(v);
1724
0
    }
1725
1726
    // Mutable pointer to the field.
1727
    // If field is not initialized, it is initialized with default value first.
1728
0
    pub fn mut_type_name(&mut self) -> &mut ::std::string::String {
1729
0
        if self.type_name.is_none() {
1730
0
            self.type_name = ::std::option::Option::Some(::std::string::String::new());
1731
0
        }
1732
0
        self.type_name.as_mut().unwrap()
1733
0
    }
1734
1735
    // Take field
1736
0
    pub fn take_type_name(&mut self) -> ::std::string::String {
1737
0
        self.type_name.take().unwrap_or_else(|| ::std::string::String::new())
1738
0
    }
1739
1740
    // optional string extendee = 2;
1741
1742
0
    pub fn extendee(&self) -> &str {
1743
0
        match self.extendee.as_ref() {
1744
0
            Some(v) => v,
1745
0
            None => "",
1746
        }
1747
0
    }
1748
1749
0
    pub fn clear_extendee(&mut self) {
1750
0
        self.extendee = ::std::option::Option::None;
1751
0
    }
1752
1753
0
    pub fn has_extendee(&self) -> bool {
1754
0
        self.extendee.is_some()
1755
0
    }
1756
1757
    // Param is passed by value, moved
1758
0
    pub fn set_extendee(&mut self, v: ::std::string::String) {
1759
0
        self.extendee = ::std::option::Option::Some(v);
1760
0
    }
1761
1762
    // Mutable pointer to the field.
1763
    // If field is not initialized, it is initialized with default value first.
1764
0
    pub fn mut_extendee(&mut self) -> &mut ::std::string::String {
1765
0
        if self.extendee.is_none() {
1766
0
            self.extendee = ::std::option::Option::Some(::std::string::String::new());
1767
0
        }
1768
0
        self.extendee.as_mut().unwrap()
1769
0
    }
1770
1771
    // Take field
1772
0
    pub fn take_extendee(&mut self) -> ::std::string::String {
1773
0
        self.extendee.take().unwrap_or_else(|| ::std::string::String::new())
1774
0
    }
1775
1776
    // optional string default_value = 7;
1777
1778
0
    pub fn default_value(&self) -> &str {
1779
0
        match self.default_value.as_ref() {
1780
0
            Some(v) => v,
1781
0
            None => "",
1782
        }
1783
0
    }
1784
1785
0
    pub fn clear_default_value(&mut self) {
1786
0
        self.default_value = ::std::option::Option::None;
1787
0
    }
1788
1789
0
    pub fn has_default_value(&self) -> bool {
1790
0
        self.default_value.is_some()
1791
0
    }
1792
1793
    // Param is passed by value, moved
1794
0
    pub fn set_default_value(&mut self, v: ::std::string::String) {
1795
0
        self.default_value = ::std::option::Option::Some(v);
1796
0
    }
1797
1798
    // Mutable pointer to the field.
1799
    // If field is not initialized, it is initialized with default value first.
1800
0
    pub fn mut_default_value(&mut self) -> &mut ::std::string::String {
1801
0
        if self.default_value.is_none() {
1802
0
            self.default_value = ::std::option::Option::Some(::std::string::String::new());
1803
0
        }
1804
0
        self.default_value.as_mut().unwrap()
1805
0
    }
1806
1807
    // Take field
1808
0
    pub fn take_default_value(&mut self) -> ::std::string::String {
1809
0
        self.default_value.take().unwrap_or_else(|| ::std::string::String::new())
1810
0
    }
1811
1812
    // optional int32 oneof_index = 9;
1813
1814
0
    pub fn oneof_index(&self) -> i32 {
1815
0
        self.oneof_index.unwrap_or(0)
1816
0
    }
1817
1818
0
    pub fn clear_oneof_index(&mut self) {
1819
0
        self.oneof_index = ::std::option::Option::None;
1820
0
    }
1821
1822
0
    pub fn has_oneof_index(&self) -> bool {
1823
0
        self.oneof_index.is_some()
1824
0
    }
1825
1826
    // Param is passed by value, moved
1827
0
    pub fn set_oneof_index(&mut self, v: i32) {
1828
0
        self.oneof_index = ::std::option::Option::Some(v);
1829
0
    }
1830
1831
    // optional string json_name = 10;
1832
1833
0
    pub fn json_name(&self) -> &str {
1834
0
        match self.json_name.as_ref() {
1835
0
            Some(v) => v,
1836
0
            None => "",
1837
        }
1838
0
    }
1839
1840
0
    pub fn clear_json_name(&mut self) {
1841
0
        self.json_name = ::std::option::Option::None;
1842
0
    }
1843
1844
0
    pub fn has_json_name(&self) -> bool {
1845
0
        self.json_name.is_some()
1846
0
    }
1847
1848
    // Param is passed by value, moved
1849
0
    pub fn set_json_name(&mut self, v: ::std::string::String) {
1850
0
        self.json_name = ::std::option::Option::Some(v);
1851
0
    }
1852
1853
    // Mutable pointer to the field.
1854
    // If field is not initialized, it is initialized with default value first.
1855
0
    pub fn mut_json_name(&mut self) -> &mut ::std::string::String {
1856
0
        if self.json_name.is_none() {
1857
0
            self.json_name = ::std::option::Option::Some(::std::string::String::new());
1858
0
        }
1859
0
        self.json_name.as_mut().unwrap()
1860
0
    }
1861
1862
    // Take field
1863
0
    pub fn take_json_name(&mut self) -> ::std::string::String {
1864
0
        self.json_name.take().unwrap_or_else(|| ::std::string::String::new())
1865
0
    }
1866
1867
    // optional bool proto3_optional = 17;
1868
1869
0
    pub fn proto3_optional(&self) -> bool {
1870
0
        self.proto3_optional.unwrap_or(false)
1871
0
    }
1872
1873
0
    pub fn clear_proto3_optional(&mut self) {
1874
0
        self.proto3_optional = ::std::option::Option::None;
1875
0
    }
1876
1877
0
    pub fn has_proto3_optional(&self) -> bool {
1878
0
        self.proto3_optional.is_some()
1879
0
    }
1880
1881
    // Param is passed by value, moved
1882
0
    pub fn set_proto3_optional(&mut self, v: bool) {
1883
0
        self.proto3_optional = ::std::option::Option::Some(v);
1884
0
    }
1885
1886
0
    fn generated_message_descriptor_data() -> crate::reflect::GeneratedMessageDescriptorData {
1887
0
        let mut fields = ::std::vec::Vec::with_capacity(11);
1888
0
        let mut oneofs = ::std::vec::Vec::with_capacity(0);
1889
0
        fields.push(crate::reflect::rt::v2::make_option_accessor::<_, _>(
1890
            "name",
1891
0
            |m: &FieldDescriptorProto| { &m.name },
1892
0
            |m: &mut FieldDescriptorProto| { &mut m.name },
1893
        ));
1894
0
        fields.push(crate::reflect::rt::v2::make_option_accessor::<_, _>(
1895
            "number",
1896
0
            |m: &FieldDescriptorProto| { &m.number },
1897
0
            |m: &mut FieldDescriptorProto| { &mut m.number },
1898
        ));
1899
0
        fields.push(crate::reflect::rt::v2::make_option_accessor::<_, _>(
1900
            "label",
1901
0
            |m: &FieldDescriptorProto| { &m.label },
1902
0
            |m: &mut FieldDescriptorProto| { &mut m.label },
1903
        ));
1904
0
        fields.push(crate::reflect::rt::v2::make_option_accessor::<_, _>(
1905
            "type",
1906
0
            |m: &FieldDescriptorProto| { &m.type_ },
1907
0
            |m: &mut FieldDescriptorProto| { &mut m.type_ },
1908
        ));
1909
0
        fields.push(crate::reflect::rt::v2::make_option_accessor::<_, _>(
1910
            "type_name",
1911
0
            |m: &FieldDescriptorProto| { &m.type_name },
1912
0
            |m: &mut FieldDescriptorProto| { &mut m.type_name },
1913
        ));
1914
0
        fields.push(crate::reflect::rt::v2::make_option_accessor::<_, _>(
1915
            "extendee",
1916
0
            |m: &FieldDescriptorProto| { &m.extendee },
1917
0
            |m: &mut FieldDescriptorProto| { &mut m.extendee },
1918
        ));
1919
0
        fields.push(crate::reflect::rt::v2::make_option_accessor::<_, _>(
1920
            "default_value",
1921
0
            |m: &FieldDescriptorProto| { &m.default_value },
1922
0
            |m: &mut FieldDescriptorProto| { &mut m.default_value },
1923
        ));
1924
0
        fields.push(crate::reflect::rt::v2::make_option_accessor::<_, _>(
1925
            "oneof_index",
1926
0
            |m: &FieldDescriptorProto| { &m.oneof_index },
1927
0
            |m: &mut FieldDescriptorProto| { &mut m.oneof_index },
1928
        ));
1929
0
        fields.push(crate::reflect::rt::v2::make_option_accessor::<_, _>(
1930
            "json_name",
1931
0
            |m: &FieldDescriptorProto| { &m.json_name },
1932
0
            |m: &mut FieldDescriptorProto| { &mut m.json_name },
1933
        ));
1934
0
        fields.push(crate::reflect::rt::v2::make_message_field_accessor::<_, FieldOptions>(
1935
            "options",
1936
0
            |m: &FieldDescriptorProto| { &m.options },
1937
0
            |m: &mut FieldDescriptorProto| { &mut m.options },
1938
        ));
1939
0
        fields.push(crate::reflect::rt::v2::make_option_accessor::<_, _>(
1940
            "proto3_optional",
1941
0
            |m: &FieldDescriptorProto| { &m.proto3_optional },
1942
0
            |m: &mut FieldDescriptorProto| { &mut m.proto3_optional },
1943
        ));
1944
0
        crate::reflect::GeneratedMessageDescriptorData::new_2::<FieldDescriptorProto>(
1945
            "FieldDescriptorProto",
1946
0
            fields,
1947
0
            oneofs,
1948
        )
1949
0
    }
1950
}
1951
1952
impl crate::Message for FieldDescriptorProto {
1953
    const NAME: &'static str = "FieldDescriptorProto";
1954
1955
0
    fn is_initialized(&self) -> bool {
1956
0
        for v in &self.options {
1957
0
            if !v.is_initialized() {
1958
0
                return false;
1959
0
            }
1960
        };
1961
0
        true
1962
0
    }
1963
1964
0
    fn merge_from(&mut self, is: &mut crate::CodedInputStream<'_>) -> crate::Result<()> {
1965
0
        while let Some(tag) = is.read_raw_tag_or_eof()? {
1966
0
            match tag {
1967
                10 => {
1968
0
                    self.name = ::std::option::Option::Some(is.read_string()?);
1969
                },
1970
                24 => {
1971
0
                    self.number = ::std::option::Option::Some(is.read_int32()?);
1972
                },
1973
                32 => {
1974
0
                    self.label = ::std::option::Option::Some(is.read_enum_or_unknown()?);
1975
                },
1976
                40 => {
1977
0
                    self.type_ = ::std::option::Option::Some(is.read_enum_or_unknown()?);
1978
                },
1979
                50 => {
1980
0
                    self.type_name = ::std::option::Option::Some(is.read_string()?);
1981
                },
1982
                18 => {
1983
0
                    self.extendee = ::std::option::Option::Some(is.read_string()?);
1984
                },
1985
                58 => {
1986
0
                    self.default_value = ::std::option::Option::Some(is.read_string()?);
1987
                },
1988
                72 => {
1989
0
                    self.oneof_index = ::std::option::Option::Some(is.read_int32()?);
1990
                },
1991
                82 => {
1992
0
                    self.json_name = ::std::option::Option::Some(is.read_string()?);
1993
                },
1994
                66 => {
1995
0
                    crate::rt::read_singular_message_into_field(is, &mut self.options)?;
1996
                },
1997
                136 => {
1998
0
                    self.proto3_optional = ::std::option::Option::Some(is.read_bool()?);
1999
                },
2000
0
                tag => {
2001
0
                    crate::rt::read_unknown_or_skip_group(tag, is, self.special_fields.mut_unknown_fields())?;
2002
                },
2003
            };
2004
        }
2005
0
        ::std::result::Result::Ok(())
2006
0
    }
2007
2008
    // Compute sizes of nested messages
2009
    #[allow(unused_variables)]
2010
0
    fn compute_size(&self) -> u64 {
2011
0
        let mut my_size = 0;
2012
0
        if let Some(v) = self.name.as_ref() {
2013
0
            my_size += crate::rt::string_size(1, &v);
2014
0
        }
2015
0
        if let Some(v) = self.number {
2016
0
            my_size += crate::rt::int32_size(3, v);
2017
0
        }
2018
0
        if let Some(v) = self.label {
2019
0
            my_size += crate::rt::int32_size(4, v.value());
2020
0
        }
2021
0
        if let Some(v) = self.type_ {
2022
0
            my_size += crate::rt::int32_size(5, v.value());
2023
0
        }
2024
0
        if let Some(v) = self.type_name.as_ref() {
2025
0
            my_size += crate::rt::string_size(6, &v);
2026
0
        }
2027
0
        if let Some(v) = self.extendee.as_ref() {
2028
0
            my_size += crate::rt::string_size(2, &v);
2029
0
        }
2030
0
        if let Some(v) = self.default_value.as_ref() {
2031
0
            my_size += crate::rt::string_size(7, &v);
2032
0
        }
2033
0
        if let Some(v) = self.oneof_index {
2034
0
            my_size += crate::rt::int32_size(9, v);
2035
0
        }
2036
0
        if let Some(v) = self.json_name.as_ref() {
2037
0
            my_size += crate::rt::string_size(10, &v);
2038
0
        }
2039
0
        if let Some(v) = self.options.as_ref() {
2040
0
            let len = v.compute_size();
2041
0
            my_size += 1 + crate::rt::compute_raw_varint64_size(len) + len;
2042
0
        }
2043
0
        if let Some(v) = self.proto3_optional {
2044
0
            my_size += 2 + 1;
2045
0
        }
2046
0
        my_size += crate::rt::unknown_fields_size(self.special_fields.unknown_fields());
2047
0
        self.special_fields.cached_size().set(my_size as u32);
2048
0
        my_size
2049
0
    }
2050
2051
0
    fn write_to_with_cached_sizes(&self, os: &mut crate::CodedOutputStream<'_>) -> crate::Result<()> {
2052
0
        if let Some(v) = self.name.as_ref() {
2053
0
            os.write_string(1, v)?;
2054
0
        }
2055
0
        if let Some(v) = self.number {
2056
0
            os.write_int32(3, v)?;
2057
0
        }
2058
0
        if let Some(v) = self.label {
2059
0
            os.write_enum(4, crate::EnumOrUnknown::value(&v))?;
2060
0
        }
2061
0
        if let Some(v) = self.type_ {
2062
0
            os.write_enum(5, crate::EnumOrUnknown::value(&v))?;
2063
0
        }
2064
0
        if let Some(v) = self.type_name.as_ref() {
2065
0
            os.write_string(6, v)?;
2066
0
        }
2067
0
        if let Some(v) = self.extendee.as_ref() {
2068
0
            os.write_string(2, v)?;
2069
0
        }
2070
0
        if let Some(v) = self.default_value.as_ref() {
2071
0
            os.write_string(7, v)?;
2072
0
        }
2073
0
        if let Some(v) = self.oneof_index {
2074
0
            os.write_int32(9, v)?;
2075
0
        }
2076
0
        if let Some(v) = self.json_name.as_ref() {
2077
0
            os.write_string(10, v)?;
2078
0
        }
2079
0
        if let Some(v) = self.options.as_ref() {
2080
0
            crate::rt::write_message_field_with_cached_size(8, v, os)?;
2081
0
        }
2082
0
        if let Some(v) = self.proto3_optional {
2083
0
            os.write_bool(17, v)?;
2084
0
        }
2085
0
        os.write_unknown_fields(self.special_fields.unknown_fields())?;
2086
0
        ::std::result::Result::Ok(())
2087
0
    }
2088
2089
0
    fn special_fields(&self) -> &crate::SpecialFields {
2090
0
        &self.special_fields
2091
0
    }
2092
2093
0
    fn mut_special_fields(&mut self) -> &mut crate::SpecialFields {
2094
0
        &mut self.special_fields
2095
0
    }
2096
2097
0
    fn new() -> FieldDescriptorProto {
2098
0
        FieldDescriptorProto::new()
2099
0
    }
2100
2101
0
    fn clear(&mut self) {
2102
0
        self.name = ::std::option::Option::None;
2103
0
        self.number = ::std::option::Option::None;
2104
0
        self.label = ::std::option::Option::None;
2105
0
        self.type_ = ::std::option::Option::None;
2106
0
        self.type_name = ::std::option::Option::None;
2107
0
        self.extendee = ::std::option::Option::None;
2108
0
        self.default_value = ::std::option::Option::None;
2109
0
        self.oneof_index = ::std::option::Option::None;
2110
0
        self.json_name = ::std::option::Option::None;
2111
0
        self.options.clear();
2112
0
        self.proto3_optional = ::std::option::Option::None;
2113
0
        self.special_fields.clear();
2114
0
    }
2115
2116
0
    fn default_instance() -> &'static FieldDescriptorProto {
2117
        static instance: FieldDescriptorProto = FieldDescriptorProto {
2118
            name: ::std::option::Option::None,
2119
            number: ::std::option::Option::None,
2120
            label: ::std::option::Option::None,
2121
            type_: ::std::option::Option::None,
2122
            type_name: ::std::option::Option::None,
2123
            extendee: ::std::option::Option::None,
2124
            default_value: ::std::option::Option::None,
2125
            oneof_index: ::std::option::Option::None,
2126
            json_name: ::std::option::Option::None,
2127
            options: crate::MessageField::none(),
2128
            proto3_optional: ::std::option::Option::None,
2129
            special_fields: crate::SpecialFields::new(),
2130
        };
2131
0
        &instance
2132
0
    }
2133
}
2134
2135
impl crate::MessageFull for FieldDescriptorProto {
2136
0
    fn descriptor() -> crate::reflect::MessageDescriptor {
2137
        static descriptor: crate::rt::Lazy<crate::reflect::MessageDescriptor> = crate::rt::Lazy::new();
2138
0
        descriptor.get(|| file_descriptor().message_by_package_relative_name("FieldDescriptorProto").unwrap()).clone()
2139
0
    }
2140
}
2141
2142
impl ::std::fmt::Display for FieldDescriptorProto {
2143
0
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
2144
0
        crate::text_format::fmt(self, f)
2145
0
    }
2146
}
2147
2148
impl crate::reflect::ProtobufValue for FieldDescriptorProto {
2149
    type RuntimeType = crate::reflect::rt::RuntimeTypeMessage<Self>;
2150
}
2151
2152
/// Nested message and enums of message `FieldDescriptorProto`
2153
pub mod field_descriptor_proto {
2154
    #[derive(Clone,Copy,PartialEq,Eq,Debug,Hash)]
2155
    // @@protoc_insertion_point(enum:google.protobuf.FieldDescriptorProto.Type)
2156
    pub enum Type {
2157
        // @@protoc_insertion_point(enum_value:google.protobuf.FieldDescriptorProto.Type.TYPE_DOUBLE)
2158
        TYPE_DOUBLE = 1,
2159
        // @@protoc_insertion_point(enum_value:google.protobuf.FieldDescriptorProto.Type.TYPE_FLOAT)
2160
        TYPE_FLOAT = 2,
2161
        // @@protoc_insertion_point(enum_value:google.protobuf.FieldDescriptorProto.Type.TYPE_INT64)
2162
        TYPE_INT64 = 3,
2163
        // @@protoc_insertion_point(enum_value:google.protobuf.FieldDescriptorProto.Type.TYPE_UINT64)
2164
        TYPE_UINT64 = 4,
2165
        // @@protoc_insertion_point(enum_value:google.protobuf.FieldDescriptorProto.Type.TYPE_INT32)
2166
        TYPE_INT32 = 5,
2167
        // @@protoc_insertion_point(enum_value:google.protobuf.FieldDescriptorProto.Type.TYPE_FIXED64)
2168
        TYPE_FIXED64 = 6,
2169
        // @@protoc_insertion_point(enum_value:google.protobuf.FieldDescriptorProto.Type.TYPE_FIXED32)
2170
        TYPE_FIXED32 = 7,
2171
        // @@protoc_insertion_point(enum_value:google.protobuf.FieldDescriptorProto.Type.TYPE_BOOL)
2172
        TYPE_BOOL = 8,
2173
        // @@protoc_insertion_point(enum_value:google.protobuf.FieldDescriptorProto.Type.TYPE_STRING)
2174
        TYPE_STRING = 9,
2175
        // @@protoc_insertion_point(enum_value:google.protobuf.FieldDescriptorProto.Type.TYPE_GROUP)
2176
        TYPE_GROUP = 10,
2177
        // @@protoc_insertion_point(enum_value:google.protobuf.FieldDescriptorProto.Type.TYPE_MESSAGE)
2178
        TYPE_MESSAGE = 11,
2179
        // @@protoc_insertion_point(enum_value:google.protobuf.FieldDescriptorProto.Type.TYPE_BYTES)
2180
        TYPE_BYTES = 12,
2181
        // @@protoc_insertion_point(enum_value:google.protobuf.FieldDescriptorProto.Type.TYPE_UINT32)
2182
        TYPE_UINT32 = 13,
2183
        // @@protoc_insertion_point(enum_value:google.protobuf.FieldDescriptorProto.Type.TYPE_ENUM)
2184
        TYPE_ENUM = 14,
2185
        // @@protoc_insertion_point(enum_value:google.protobuf.FieldDescriptorProto.Type.TYPE_SFIXED32)
2186
        TYPE_SFIXED32 = 15,
2187
        // @@protoc_insertion_point(enum_value:google.protobuf.FieldDescriptorProto.Type.TYPE_SFIXED64)
2188
        TYPE_SFIXED64 = 16,
2189
        // @@protoc_insertion_point(enum_value:google.protobuf.FieldDescriptorProto.Type.TYPE_SINT32)
2190
        TYPE_SINT32 = 17,
2191
        // @@protoc_insertion_point(enum_value:google.protobuf.FieldDescriptorProto.Type.TYPE_SINT64)
2192
        TYPE_SINT64 = 18,
2193
    }
2194
2195
    impl crate::Enum for Type {
2196
        const NAME: &'static str = "Type";
2197
2198
0
        fn value(&self) -> i32 {
2199
0
            *self as i32
2200
0
        }
2201
2202
0
        fn from_i32(value: i32) -> ::std::option::Option<Type> {
2203
0
            match value {
2204
0
                1 => ::std::option::Option::Some(Type::TYPE_DOUBLE),
2205
0
                2 => ::std::option::Option::Some(Type::TYPE_FLOAT),
2206
0
                3 => ::std::option::Option::Some(Type::TYPE_INT64),
2207
0
                4 => ::std::option::Option::Some(Type::TYPE_UINT64),
2208
0
                5 => ::std::option::Option::Some(Type::TYPE_INT32),
2209
0
                6 => ::std::option::Option::Some(Type::TYPE_FIXED64),
2210
0
                7 => ::std::option::Option::Some(Type::TYPE_FIXED32),
2211
0
                8 => ::std::option::Option::Some(Type::TYPE_BOOL),
2212
0
                9 => ::std::option::Option::Some(Type::TYPE_STRING),
2213
0
                10 => ::std::option::Option::Some(Type::TYPE_GROUP),
2214
0
                11 => ::std::option::Option::Some(Type::TYPE_MESSAGE),
2215
0
                12 => ::std::option::Option::Some(Type::TYPE_BYTES),
2216
0
                13 => ::std::option::Option::Some(Type::TYPE_UINT32),
2217
0
                14 => ::std::option::Option::Some(Type::TYPE_ENUM),
2218
0
                15 => ::std::option::Option::Some(Type::TYPE_SFIXED32),
2219
0
                16 => ::std::option::Option::Some(Type::TYPE_SFIXED64),
2220
0
                17 => ::std::option::Option::Some(Type::TYPE_SINT32),
2221
0
                18 => ::std::option::Option::Some(Type::TYPE_SINT64),
2222
0
                _ => ::std::option::Option::None
2223
            }
2224
0
        }
2225
2226
0
        fn from_str(str: &str) -> ::std::option::Option<Type> {
2227
0
            match str {
2228
0
                "TYPE_DOUBLE" => ::std::option::Option::Some(Type::TYPE_DOUBLE),
2229
0
                "TYPE_FLOAT" => ::std::option::Option::Some(Type::TYPE_FLOAT),
2230
0
                "TYPE_INT64" => ::std::option::Option::Some(Type::TYPE_INT64),
2231
0
                "TYPE_UINT64" => ::std::option::Option::Some(Type::TYPE_UINT64),
2232
0
                "TYPE_INT32" => ::std::option::Option::Some(Type::TYPE_INT32),
2233
0
                "TYPE_FIXED64" => ::std::option::Option::Some(Type::TYPE_FIXED64),
2234
0
                "TYPE_FIXED32" => ::std::option::Option::Some(Type::TYPE_FIXED32),
2235
0
                "TYPE_BOOL" => ::std::option::Option::Some(Type::TYPE_BOOL),
2236
0
                "TYPE_STRING" => ::std::option::Option::Some(Type::TYPE_STRING),
2237
0
                "TYPE_GROUP" => ::std::option::Option::Some(Type::TYPE_GROUP),
2238
0
                "TYPE_MESSAGE" => ::std::option::Option::Some(Type::TYPE_MESSAGE),
2239
0
                "TYPE_BYTES" => ::std::option::Option::Some(Type::TYPE_BYTES),
2240
0
                "TYPE_UINT32" => ::std::option::Option::Some(Type::TYPE_UINT32),
2241
0
                "TYPE_ENUM" => ::std::option::Option::Some(Type::TYPE_ENUM),
2242
0
                "TYPE_SFIXED32" => ::std::option::Option::Some(Type::TYPE_SFIXED32),
2243
0
                "TYPE_SFIXED64" => ::std::option::Option::Some(Type::TYPE_SFIXED64),
2244
0
                "TYPE_SINT32" => ::std::option::Option::Some(Type::TYPE_SINT32),
2245
0
                "TYPE_SINT64" => ::std::option::Option::Some(Type::TYPE_SINT64),
2246
0
                _ => ::std::option::Option::None
2247
            }
2248
0
        }
2249
2250
        const VALUES: &'static [Type] = &[
2251
            Type::TYPE_DOUBLE,
2252
            Type::TYPE_FLOAT,
2253
            Type::TYPE_INT64,
2254
            Type::TYPE_UINT64,
2255
            Type::TYPE_INT32,
2256
            Type::TYPE_FIXED64,
2257
            Type::TYPE_FIXED32,
2258
            Type::TYPE_BOOL,
2259
            Type::TYPE_STRING,
2260
            Type::TYPE_GROUP,
2261
            Type::TYPE_MESSAGE,
2262
            Type::TYPE_BYTES,
2263
            Type::TYPE_UINT32,
2264
            Type::TYPE_ENUM,
2265
            Type::TYPE_SFIXED32,
2266
            Type::TYPE_SFIXED64,
2267
            Type::TYPE_SINT32,
2268
            Type::TYPE_SINT64,
2269
        ];
2270
    }
2271
2272
    impl crate::EnumFull for Type {
2273
0
        fn enum_descriptor() -> crate::reflect::EnumDescriptor {
2274
            static descriptor: crate::rt::Lazy<crate::reflect::EnumDescriptor> = crate::rt::Lazy::new();
2275
0
            descriptor.get(|| super::file_descriptor().enum_by_package_relative_name("FieldDescriptorProto.Type").unwrap()).clone()
2276
0
        }
2277
2278
0
        fn descriptor(&self) -> crate::reflect::EnumValueDescriptor {
2279
0
            let index = match self {
2280
0
                Type::TYPE_DOUBLE => 0,
2281
0
                Type::TYPE_FLOAT => 1,
2282
0
                Type::TYPE_INT64 => 2,
2283
0
                Type::TYPE_UINT64 => 3,
2284
0
                Type::TYPE_INT32 => 4,
2285
0
                Type::TYPE_FIXED64 => 5,
2286
0
                Type::TYPE_FIXED32 => 6,
2287
0
                Type::TYPE_BOOL => 7,
2288
0
                Type::TYPE_STRING => 8,
2289
0
                Type::TYPE_GROUP => 9,
2290
0
                Type::TYPE_MESSAGE => 10,
2291
0
                Type::TYPE_BYTES => 11,
2292
0
                Type::TYPE_UINT32 => 12,
2293
0
                Type::TYPE_ENUM => 13,
2294
0
                Type::TYPE_SFIXED32 => 14,
2295
0
                Type::TYPE_SFIXED64 => 15,
2296
0
                Type::TYPE_SINT32 => 16,
2297
0
                Type::TYPE_SINT64 => 17,
2298
            };
2299
0
            Self::enum_descriptor().value_by_index(index)
2300
0
        }
2301
    }
2302
2303
    // Note, `Default` is implemented although default value is not 0
2304
    impl ::std::default::Default for Type {
2305
0
        fn default() -> Self {
2306
0
            Type::TYPE_DOUBLE
2307
0
        }
2308
    }
2309
2310
    impl Type {
2311
0
        pub(in super) fn generated_enum_descriptor_data() -> crate::reflect::GeneratedEnumDescriptorData {
2312
0
            crate::reflect::GeneratedEnumDescriptorData::new::<Type>("FieldDescriptorProto.Type")
2313
0
        }
2314
    }
2315
2316
    #[derive(Clone,Copy,PartialEq,Eq,Debug,Hash)]
2317
    // @@protoc_insertion_point(enum:google.protobuf.FieldDescriptorProto.Label)
2318
    pub enum Label {
2319
        // @@protoc_insertion_point(enum_value:google.protobuf.FieldDescriptorProto.Label.LABEL_OPTIONAL)
2320
        LABEL_OPTIONAL = 1,
2321
        // @@protoc_insertion_point(enum_value:google.protobuf.FieldDescriptorProto.Label.LABEL_REQUIRED)
2322
        LABEL_REQUIRED = 2,
2323
        // @@protoc_insertion_point(enum_value:google.protobuf.FieldDescriptorProto.Label.LABEL_REPEATED)
2324
        LABEL_REPEATED = 3,
2325
    }
2326
2327
    impl crate::Enum for Label {
2328
        const NAME: &'static str = "Label";
2329
2330
0
        fn value(&self) -> i32 {
2331
0
            *self as i32
2332
0
        }
2333
2334
0
        fn from_i32(value: i32) -> ::std::option::Option<Label> {
2335
0
            match value {
2336
0
                1 => ::std::option::Option::Some(Label::LABEL_OPTIONAL),
2337
0
                2 => ::std::option::Option::Some(Label::LABEL_REQUIRED),
2338
0
                3 => ::std::option::Option::Some(Label::LABEL_REPEATED),
2339
0
                _ => ::std::option::Option::None
2340
            }
2341
0
        }
2342
2343
0
        fn from_str(str: &str) -> ::std::option::Option<Label> {
2344
0
            match str {
2345
0
                "LABEL_OPTIONAL" => ::std::option::Option::Some(Label::LABEL_OPTIONAL),
2346
0
                "LABEL_REQUIRED" => ::std::option::Option::Some(Label::LABEL_REQUIRED),
2347
0
                "LABEL_REPEATED" => ::std::option::Option::Some(Label::LABEL_REPEATED),
2348
0
                _ => ::std::option::Option::None
2349
            }
2350
0
        }
2351
2352
        const VALUES: &'static [Label] = &[
2353
            Label::LABEL_OPTIONAL,
2354
            Label::LABEL_REQUIRED,
2355
            Label::LABEL_REPEATED,
2356
        ];
2357
    }
2358
2359
    impl crate::EnumFull for Label {
2360
0
        fn enum_descriptor() -> crate::reflect::EnumDescriptor {
2361
            static descriptor: crate::rt::Lazy<crate::reflect::EnumDescriptor> = crate::rt::Lazy::new();
2362
0
            descriptor.get(|| super::file_descriptor().enum_by_package_relative_name("FieldDescriptorProto.Label").unwrap()).clone()
2363
0
        }
2364
2365
0
        fn descriptor(&self) -> crate::reflect::EnumValueDescriptor {
2366
0
            let index = match self {
2367
0
                Label::LABEL_OPTIONAL => 0,
2368
0
                Label::LABEL_REQUIRED => 1,
2369
0
                Label::LABEL_REPEATED => 2,
2370
            };
2371
0
            Self::enum_descriptor().value_by_index(index)
2372
0
        }
2373
    }
2374
2375
    // Note, `Default` is implemented although default value is not 0
2376
    impl ::std::default::Default for Label {
2377
0
        fn default() -> Self {
2378
0
            Label::LABEL_OPTIONAL
2379
0
        }
2380
    }
2381
2382
    impl Label {
2383
0
        pub(in super) fn generated_enum_descriptor_data() -> crate::reflect::GeneratedEnumDescriptorData {
2384
0
            crate::reflect::GeneratedEnumDescriptorData::new::<Label>("FieldDescriptorProto.Label")
2385
0
        }
2386
    }
2387
}
2388
2389
///  Describes a oneof.
2390
// @@protoc_insertion_point(message:google.protobuf.OneofDescriptorProto)
2391
#[derive(PartialEq,Clone,Default,Debug)]
2392
pub struct OneofDescriptorProto {
2393
    // message fields
2394
    // @@protoc_insertion_point(field:google.protobuf.OneofDescriptorProto.name)
2395
    pub name: ::std::option::Option<::std::string::String>,
2396
    // @@protoc_insertion_point(field:google.protobuf.OneofDescriptorProto.options)
2397
    pub options: crate::MessageField<OneofOptions>,
2398
    // special fields
2399
    // @@protoc_insertion_point(special_field:google.protobuf.OneofDescriptorProto.special_fields)
2400
    pub special_fields: crate::SpecialFields,
2401
}
2402
2403
impl<'a> ::std::default::Default for &'a OneofDescriptorProto {
2404
0
    fn default() -> &'a OneofDescriptorProto {
2405
0
        <OneofDescriptorProto as crate::Message>::default_instance()
2406
0
    }
2407
}
2408
2409
impl OneofDescriptorProto {
2410
0
    pub fn new() -> OneofDescriptorProto {
2411
0
        ::std::default::Default::default()
2412
0
    }
2413
2414
    // optional string name = 1;
2415
2416
0
    pub fn name(&self) -> &str {
2417
0
        match self.name.as_ref() {
2418
0
            Some(v) => v,
2419
0
            None => "",
2420
        }
2421
0
    }
2422
2423
0
    pub fn clear_name(&mut self) {
2424
0
        self.name = ::std::option::Option::None;
2425
0
    }
2426
2427
0
    pub fn has_name(&self) -> bool {
2428
0
        self.name.is_some()
2429
0
    }
2430
2431
    // Param is passed by value, moved
2432
0
    pub fn set_name(&mut self, v: ::std::string::String) {
2433
0
        self.name = ::std::option::Option::Some(v);
2434
0
    }
2435
2436
    // Mutable pointer to the field.
2437
    // If field is not initialized, it is initialized with default value first.
2438
0
    pub fn mut_name(&mut self) -> &mut ::std::string::String {
2439
0
        if self.name.is_none() {
2440
0
            self.name = ::std::option::Option::Some(::std::string::String::new());
2441
0
        }
2442
0
        self.name.as_mut().unwrap()
2443
0
    }
2444
2445
    // Take field
2446
0
    pub fn take_name(&mut self) -> ::std::string::String {
2447
0
        self.name.take().unwrap_or_else(|| ::std::string::String::new())
2448
0
    }
2449
2450
0
    fn generated_message_descriptor_data() -> crate::reflect::GeneratedMessageDescriptorData {
2451
0
        let mut fields = ::std::vec::Vec::with_capacity(2);
2452
0
        let mut oneofs = ::std::vec::Vec::with_capacity(0);
2453
0
        fields.push(crate::reflect::rt::v2::make_option_accessor::<_, _>(
2454
            "name",
2455
0
            |m: &OneofDescriptorProto| { &m.name },
2456
0
            |m: &mut OneofDescriptorProto| { &mut m.name },
2457
        ));
2458
0
        fields.push(crate::reflect::rt::v2::make_message_field_accessor::<_, OneofOptions>(
2459
            "options",
2460
0
            |m: &OneofDescriptorProto| { &m.options },
2461
0
            |m: &mut OneofDescriptorProto| { &mut m.options },
2462
        ));
2463
0
        crate::reflect::GeneratedMessageDescriptorData::new_2::<OneofDescriptorProto>(
2464
            "OneofDescriptorProto",
2465
0
            fields,
2466
0
            oneofs,
2467
        )
2468
0
    }
2469
}
2470
2471
impl crate::Message for OneofDescriptorProto {
2472
    const NAME: &'static str = "OneofDescriptorProto";
2473
2474
0
    fn is_initialized(&self) -> bool {
2475
0
        for v in &self.options {
2476
0
            if !v.is_initialized() {
2477
0
                return false;
2478
0
            }
2479
        };
2480
0
        true
2481
0
    }
2482
2483
0
    fn merge_from(&mut self, is: &mut crate::CodedInputStream<'_>) -> crate::Result<()> {
2484
0
        while let Some(tag) = is.read_raw_tag_or_eof()? {
2485
0
            match tag {
2486
                10 => {
2487
0
                    self.name = ::std::option::Option::Some(is.read_string()?);
2488
                },
2489
                18 => {
2490
0
                    crate::rt::read_singular_message_into_field(is, &mut self.options)?;
2491
                },
2492
0
                tag => {
2493
0
                    crate::rt::read_unknown_or_skip_group(tag, is, self.special_fields.mut_unknown_fields())?;
2494
                },
2495
            };
2496
        }
2497
0
        ::std::result::Result::Ok(())
2498
0
    }
2499
2500
    // Compute sizes of nested messages
2501
    #[allow(unused_variables)]
2502
0
    fn compute_size(&self) -> u64 {
2503
0
        let mut my_size = 0;
2504
0
        if let Some(v) = self.name.as_ref() {
2505
0
            my_size += crate::rt::string_size(1, &v);
2506
0
        }
2507
0
        if let Some(v) = self.options.as_ref() {
2508
0
            let len = v.compute_size();
2509
0
            my_size += 1 + crate::rt::compute_raw_varint64_size(len) + len;
2510
0
        }
2511
0
        my_size += crate::rt::unknown_fields_size(self.special_fields.unknown_fields());
2512
0
        self.special_fields.cached_size().set(my_size as u32);
2513
0
        my_size
2514
0
    }
2515
2516
0
    fn write_to_with_cached_sizes(&self, os: &mut crate::CodedOutputStream<'_>) -> crate::Result<()> {
2517
0
        if let Some(v) = self.name.as_ref() {
2518
0
            os.write_string(1, v)?;
2519
0
        }
2520
0
        if let Some(v) = self.options.as_ref() {
2521
0
            crate::rt::write_message_field_with_cached_size(2, v, os)?;
2522
0
        }
2523
0
        os.write_unknown_fields(self.special_fields.unknown_fields())?;
2524
0
        ::std::result::Result::Ok(())
2525
0
    }
2526
2527
0
    fn special_fields(&self) -> &crate::SpecialFields {
2528
0
        &self.special_fields
2529
0
    }
2530
2531
0
    fn mut_special_fields(&mut self) -> &mut crate::SpecialFields {
2532
0
        &mut self.special_fields
2533
0
    }
2534
2535
0
    fn new() -> OneofDescriptorProto {
2536
0
        OneofDescriptorProto::new()
2537
0
    }
2538
2539
0
    fn clear(&mut self) {
2540
0
        self.name = ::std::option::Option::None;
2541
0
        self.options.clear();
2542
0
        self.special_fields.clear();
2543
0
    }
2544
2545
0
    fn default_instance() -> &'static OneofDescriptorProto {
2546
        static instance: OneofDescriptorProto = OneofDescriptorProto {
2547
            name: ::std::option::Option::None,
2548
            options: crate::MessageField::none(),
2549
            special_fields: crate::SpecialFields::new(),
2550
        };
2551
0
        &instance
2552
0
    }
2553
}
2554
2555
impl crate::MessageFull for OneofDescriptorProto {
2556
0
    fn descriptor() -> crate::reflect::MessageDescriptor {
2557
        static descriptor: crate::rt::Lazy<crate::reflect::MessageDescriptor> = crate::rt::Lazy::new();
2558
0
        descriptor.get(|| file_descriptor().message_by_package_relative_name("OneofDescriptorProto").unwrap()).clone()
2559
0
    }
2560
}
2561
2562
impl ::std::fmt::Display for OneofDescriptorProto {
2563
0
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
2564
0
        crate::text_format::fmt(self, f)
2565
0
    }
2566
}
2567
2568
impl crate::reflect::ProtobufValue for OneofDescriptorProto {
2569
    type RuntimeType = crate::reflect::rt::RuntimeTypeMessage<Self>;
2570
}
2571
2572
///  Describes an enum type.
2573
// @@protoc_insertion_point(message:google.protobuf.EnumDescriptorProto)
2574
#[derive(PartialEq,Clone,Default,Debug)]
2575
pub struct EnumDescriptorProto {
2576
    // message fields
2577
    // @@protoc_insertion_point(field:google.protobuf.EnumDescriptorProto.name)
2578
    pub name: ::std::option::Option<::std::string::String>,
2579
    // @@protoc_insertion_point(field:google.protobuf.EnumDescriptorProto.value)
2580
    pub value: ::std::vec::Vec<EnumValueDescriptorProto>,
2581
    // @@protoc_insertion_point(field:google.protobuf.EnumDescriptorProto.options)
2582
    pub options: crate::MessageField<EnumOptions>,
2583
    ///  Range of reserved numeric values. Reserved numeric values may not be used
2584
    ///  by enum values in the same enum declaration. Reserved ranges may not
2585
    ///  overlap.
2586
    // @@protoc_insertion_point(field:google.protobuf.EnumDescriptorProto.reserved_range)
2587
    pub reserved_range: ::std::vec::Vec<enum_descriptor_proto::EnumReservedRange>,
2588
    ///  Reserved enum value names, which may not be reused. A given name may only
2589
    ///  be reserved once.
2590
    // @@protoc_insertion_point(field:google.protobuf.EnumDescriptorProto.reserved_name)
2591
    pub reserved_name: ::std::vec::Vec<::std::string::String>,
2592
    // special fields
2593
    // @@protoc_insertion_point(special_field:google.protobuf.EnumDescriptorProto.special_fields)
2594
    pub special_fields: crate::SpecialFields,
2595
}
2596
2597
impl<'a> ::std::default::Default for &'a EnumDescriptorProto {
2598
0
    fn default() -> &'a EnumDescriptorProto {
2599
0
        <EnumDescriptorProto as crate::Message>::default_instance()
2600
0
    }
2601
}
2602
2603
impl EnumDescriptorProto {
2604
0
    pub fn new() -> EnumDescriptorProto {
2605
0
        ::std::default::Default::default()
2606
0
    }
2607
2608
    // optional string name = 1;
2609
2610
0
    pub fn name(&self) -> &str {
2611
0
        match self.name.as_ref() {
2612
0
            Some(v) => v,
2613
0
            None => "",
2614
        }
2615
0
    }
2616
2617
0
    pub fn clear_name(&mut self) {
2618
0
        self.name = ::std::option::Option::None;
2619
0
    }
2620
2621
0
    pub fn has_name(&self) -> bool {
2622
0
        self.name.is_some()
2623
0
    }
2624
2625
    // Param is passed by value, moved
2626
0
    pub fn set_name(&mut self, v: ::std::string::String) {
2627
0
        self.name = ::std::option::Option::Some(v);
2628
0
    }
2629
2630
    // Mutable pointer to the field.
2631
    // If field is not initialized, it is initialized with default value first.
2632
0
    pub fn mut_name(&mut self) -> &mut ::std::string::String {
2633
0
        if self.name.is_none() {
2634
0
            self.name = ::std::option::Option::Some(::std::string::String::new());
2635
0
        }
2636
0
        self.name.as_mut().unwrap()
2637
0
    }
2638
2639
    // Take field
2640
0
    pub fn take_name(&mut self) -> ::std::string::String {
2641
0
        self.name.take().unwrap_or_else(|| ::std::string::String::new())
2642
0
    }
2643
2644
0
    fn generated_message_descriptor_data() -> crate::reflect::GeneratedMessageDescriptorData {
2645
0
        let mut fields = ::std::vec::Vec::with_capacity(5);
2646
0
        let mut oneofs = ::std::vec::Vec::with_capacity(0);
2647
0
        fields.push(crate::reflect::rt::v2::make_option_accessor::<_, _>(
2648
            "name",
2649
0
            |m: &EnumDescriptorProto| { &m.name },
2650
0
            |m: &mut EnumDescriptorProto| { &mut m.name },
2651
        ));
2652
0
        fields.push(crate::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
2653
            "value",
2654
0
            |m: &EnumDescriptorProto| { &m.value },
2655
0
            |m: &mut EnumDescriptorProto| { &mut m.value },
2656
        ));
2657
0
        fields.push(crate::reflect::rt::v2::make_message_field_accessor::<_, EnumOptions>(
2658
            "options",
2659
0
            |m: &EnumDescriptorProto| { &m.options },
2660
0
            |m: &mut EnumDescriptorProto| { &mut m.options },
2661
        ));
2662
0
        fields.push(crate::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
2663
            "reserved_range",
2664
0
            |m: &EnumDescriptorProto| { &m.reserved_range },
2665
0
            |m: &mut EnumDescriptorProto| { &mut m.reserved_range },
2666
        ));
2667
0
        fields.push(crate::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
2668
            "reserved_name",
2669
0
            |m: &EnumDescriptorProto| { &m.reserved_name },
2670
0
            |m: &mut EnumDescriptorProto| { &mut m.reserved_name },
2671
        ));
2672
0
        crate::reflect::GeneratedMessageDescriptorData::new_2::<EnumDescriptorProto>(
2673
            "EnumDescriptorProto",
2674
0
            fields,
2675
0
            oneofs,
2676
        )
2677
0
    }
2678
}
2679
2680
impl crate::Message for EnumDescriptorProto {
2681
    const NAME: &'static str = "EnumDescriptorProto";
2682
2683
0
    fn is_initialized(&self) -> bool {
2684
0
        for v in &self.value {
2685
0
            if !v.is_initialized() {
2686
0
                return false;
2687
0
            }
2688
        };
2689
0
        for v in &self.options {
2690
0
            if !v.is_initialized() {
2691
0
                return false;
2692
0
            }
2693
        };
2694
0
        for v in &self.reserved_range {
2695
0
            if !v.is_initialized() {
2696
0
                return false;
2697
0
            }
2698
        };
2699
0
        true
2700
0
    }
2701
2702
0
    fn merge_from(&mut self, is: &mut crate::CodedInputStream<'_>) -> crate::Result<()> {
2703
0
        while let Some(tag) = is.read_raw_tag_or_eof()? {
2704
0
            match tag {
2705
                10 => {
2706
0
                    self.name = ::std::option::Option::Some(is.read_string()?);
2707
                },
2708
                18 => {
2709
0
                    self.value.push(is.read_message()?);
2710
                },
2711
                26 => {
2712
0
                    crate::rt::read_singular_message_into_field(is, &mut self.options)?;
2713
                },
2714
                34 => {
2715
0
                    self.reserved_range.push(is.read_message()?);
2716
                },
2717
                42 => {
2718
0
                    self.reserved_name.push(is.read_string()?);
2719
                },
2720
0
                tag => {
2721
0
                    crate::rt::read_unknown_or_skip_group(tag, is, self.special_fields.mut_unknown_fields())?;
2722
                },
2723
            };
2724
        }
2725
0
        ::std::result::Result::Ok(())
2726
0
    }
2727
2728
    // Compute sizes of nested messages
2729
    #[allow(unused_variables)]
2730
0
    fn compute_size(&self) -> u64 {
2731
0
        let mut my_size = 0;
2732
0
        if let Some(v) = self.name.as_ref() {
2733
0
            my_size += crate::rt::string_size(1, &v);
2734
0
        }
2735
0
        for value in &self.value {
2736
0
            let len = value.compute_size();
2737
0
            my_size += 1 + crate::rt::compute_raw_varint64_size(len) + len;
2738
0
        };
2739
0
        if let Some(v) = self.options.as_ref() {
2740
0
            let len = v.compute_size();
2741
0
            my_size += 1 + crate::rt::compute_raw_varint64_size(len) + len;
2742
0
        }
2743
0
        for value in &self.reserved_range {
2744
0
            let len = value.compute_size();
2745
0
            my_size += 1 + crate::rt::compute_raw_varint64_size(len) + len;
2746
0
        };
2747
0
        for value in &self.reserved_name {
2748
0
            my_size += crate::rt::string_size(5, &value);
2749
0
        };
2750
0
        my_size += crate::rt::unknown_fields_size(self.special_fields.unknown_fields());
2751
0
        self.special_fields.cached_size().set(my_size as u32);
2752
0
        my_size
2753
0
    }
2754
2755
0
    fn write_to_with_cached_sizes(&self, os: &mut crate::CodedOutputStream<'_>) -> crate::Result<()> {
2756
0
        if let Some(v) = self.name.as_ref() {
2757
0
            os.write_string(1, v)?;
2758
0
        }
2759
0
        for v in &self.value {
2760
0
            crate::rt::write_message_field_with_cached_size(2, v, os)?;
2761
        };
2762
0
        if let Some(v) = self.options.as_ref() {
2763
0
            crate::rt::write_message_field_with_cached_size(3, v, os)?;
2764
0
        }
2765
0
        for v in &self.reserved_range {
2766
0
            crate::rt::write_message_field_with_cached_size(4, v, os)?;
2767
        };
2768
0
        for v in &self.reserved_name {
2769
0
            os.write_string(5, &v)?;
2770
        };
2771
0
        os.write_unknown_fields(self.special_fields.unknown_fields())?;
2772
0
        ::std::result::Result::Ok(())
2773
0
    }
2774
2775
0
    fn special_fields(&self) -> &crate::SpecialFields {
2776
0
        &self.special_fields
2777
0
    }
2778
2779
0
    fn mut_special_fields(&mut self) -> &mut crate::SpecialFields {
2780
0
        &mut self.special_fields
2781
0
    }
2782
2783
0
    fn new() -> EnumDescriptorProto {
2784
0
        EnumDescriptorProto::new()
2785
0
    }
2786
2787
0
    fn clear(&mut self) {
2788
0
        self.name = ::std::option::Option::None;
2789
0
        self.value.clear();
2790
0
        self.options.clear();
2791
0
        self.reserved_range.clear();
2792
0
        self.reserved_name.clear();
2793
0
        self.special_fields.clear();
2794
0
    }
2795
2796
0
    fn default_instance() -> &'static EnumDescriptorProto {
2797
        static instance: EnumDescriptorProto = EnumDescriptorProto {
2798
            name: ::std::option::Option::None,
2799
            value: ::std::vec::Vec::new(),
2800
            options: crate::MessageField::none(),
2801
            reserved_range: ::std::vec::Vec::new(),
2802
            reserved_name: ::std::vec::Vec::new(),
2803
            special_fields: crate::SpecialFields::new(),
2804
        };
2805
0
        &instance
2806
0
    }
2807
}
2808
2809
impl crate::MessageFull for EnumDescriptorProto {
2810
0
    fn descriptor() -> crate::reflect::MessageDescriptor {
2811
        static descriptor: crate::rt::Lazy<crate::reflect::MessageDescriptor> = crate::rt::Lazy::new();
2812
0
        descriptor.get(|| file_descriptor().message_by_package_relative_name("EnumDescriptorProto").unwrap()).clone()
2813
0
    }
2814
}
2815
2816
impl ::std::fmt::Display for EnumDescriptorProto {
2817
0
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
2818
0
        crate::text_format::fmt(self, f)
2819
0
    }
2820
}
2821
2822
impl crate::reflect::ProtobufValue for EnumDescriptorProto {
2823
    type RuntimeType = crate::reflect::rt::RuntimeTypeMessage<Self>;
2824
}
2825
2826
/// Nested message and enums of message `EnumDescriptorProto`
2827
pub mod enum_descriptor_proto {
2828
    ///  Range of reserved numeric values. Reserved values may not be used by
2829
    ///  entries in the same enum. Reserved ranges may not overlap.
2830
    ///
2831
    ///  Note that this is distinct from DescriptorProto.ReservedRange in that it
2832
    ///  is inclusive such that it can appropriately represent the entire int32
2833
    ///  domain.
2834
    // @@protoc_insertion_point(message:google.protobuf.EnumDescriptorProto.EnumReservedRange)
2835
    #[derive(PartialEq,Clone,Default,Debug)]
2836
    pub struct EnumReservedRange {
2837
        // message fields
2838
        // @@protoc_insertion_point(field:google.protobuf.EnumDescriptorProto.EnumReservedRange.start)
2839
        pub start: ::std::option::Option<i32>,
2840
        // @@protoc_insertion_point(field:google.protobuf.EnumDescriptorProto.EnumReservedRange.end)
2841
        pub end: ::std::option::Option<i32>,
2842
        // special fields
2843
        // @@protoc_insertion_point(special_field:google.protobuf.EnumDescriptorProto.EnumReservedRange.special_fields)
2844
        pub special_fields: crate::SpecialFields,
2845
    }
2846
2847
    impl<'a> ::std::default::Default for &'a EnumReservedRange {
2848
0
        fn default() -> &'a EnumReservedRange {
2849
0
            <EnumReservedRange as crate::Message>::default_instance()
2850
0
        }
2851
    }
2852
2853
    impl EnumReservedRange {
2854
0
        pub fn new() -> EnumReservedRange {
2855
0
            ::std::default::Default::default()
2856
0
        }
2857
2858
        // optional int32 start = 1;
2859
2860
0
        pub fn start(&self) -> i32 {
2861
0
            self.start.unwrap_or(0)
2862
0
        }
2863
2864
0
        pub fn clear_start(&mut self) {
2865
0
            self.start = ::std::option::Option::None;
2866
0
        }
2867
2868
0
        pub fn has_start(&self) -> bool {
2869
0
            self.start.is_some()
2870
0
        }
2871
2872
        // Param is passed by value, moved
2873
0
        pub fn set_start(&mut self, v: i32) {
2874
0
            self.start = ::std::option::Option::Some(v);
2875
0
        }
2876
2877
        // optional int32 end = 2;
2878
2879
0
        pub fn end(&self) -> i32 {
2880
0
            self.end.unwrap_or(0)
2881
0
        }
2882
2883
0
        pub fn clear_end(&mut self) {
2884
0
            self.end = ::std::option::Option::None;
2885
0
        }
2886
2887
0
        pub fn has_end(&self) -> bool {
2888
0
            self.end.is_some()
2889
0
        }
2890
2891
        // Param is passed by value, moved
2892
0
        pub fn set_end(&mut self, v: i32) {
2893
0
            self.end = ::std::option::Option::Some(v);
2894
0
        }
2895
2896
0
        pub(in super) fn generated_message_descriptor_data() -> crate::reflect::GeneratedMessageDescriptorData {
2897
0
            let mut fields = ::std::vec::Vec::with_capacity(2);
2898
0
            let mut oneofs = ::std::vec::Vec::with_capacity(0);
2899
0
            fields.push(crate::reflect::rt::v2::make_option_accessor::<_, _>(
2900
                "start",
2901
0
                |m: &EnumReservedRange| { &m.start },
2902
0
                |m: &mut EnumReservedRange| { &mut m.start },
2903
            ));
2904
0
            fields.push(crate::reflect::rt::v2::make_option_accessor::<_, _>(
2905
                "end",
2906
0
                |m: &EnumReservedRange| { &m.end },
2907
0
                |m: &mut EnumReservedRange| { &mut m.end },
2908
            ));
2909
0
            crate::reflect::GeneratedMessageDescriptorData::new_2::<EnumReservedRange>(
2910
                "EnumDescriptorProto.EnumReservedRange",
2911
0
                fields,
2912
0
                oneofs,
2913
            )
2914
0
        }
2915
    }
2916
2917
    impl crate::Message for EnumReservedRange {
2918
        const NAME: &'static str = "EnumReservedRange";
2919
2920
0
        fn is_initialized(&self) -> bool {
2921
0
            true
2922
0
        }
2923
2924
0
        fn merge_from(&mut self, is: &mut crate::CodedInputStream<'_>) -> crate::Result<()> {
2925
0
            while let Some(tag) = is.read_raw_tag_or_eof()? {
2926
0
                match tag {
2927
                    8 => {
2928
0
                        self.start = ::std::option::Option::Some(is.read_int32()?);
2929
                    },
2930
                    16 => {
2931
0
                        self.end = ::std::option::Option::Some(is.read_int32()?);
2932
                    },
2933
0
                    tag => {
2934
0
                        crate::rt::read_unknown_or_skip_group(tag, is, self.special_fields.mut_unknown_fields())?;
2935
                    },
2936
                };
2937
            }
2938
0
            ::std::result::Result::Ok(())
2939
0
        }
2940
2941
        // Compute sizes of nested messages
2942
        #[allow(unused_variables)]
2943
0
        fn compute_size(&self) -> u64 {
2944
0
            let mut my_size = 0;
2945
0
            if let Some(v) = self.start {
2946
0
                my_size += crate::rt::int32_size(1, v);
2947
0
            }
2948
0
            if let Some(v) = self.end {
2949
0
                my_size += crate::rt::int32_size(2, v);
2950
0
            }
2951
0
            my_size += crate::rt::unknown_fields_size(self.special_fields.unknown_fields());
2952
0
            self.special_fields.cached_size().set(my_size as u32);
2953
0
            my_size
2954
0
        }
2955
2956
0
        fn write_to_with_cached_sizes(&self, os: &mut crate::CodedOutputStream<'_>) -> crate::Result<()> {
2957
0
            if let Some(v) = self.start {
2958
0
                os.write_int32(1, v)?;
2959
0
            }
2960
0
            if let Some(v) = self.end {
2961
0
                os.write_int32(2, v)?;
2962
0
            }
2963
0
            os.write_unknown_fields(self.special_fields.unknown_fields())?;
2964
0
            ::std::result::Result::Ok(())
2965
0
        }
2966
2967
0
        fn special_fields(&self) -> &crate::SpecialFields {
2968
0
            &self.special_fields
2969
0
        }
2970
2971
0
        fn mut_special_fields(&mut self) -> &mut crate::SpecialFields {
2972
0
            &mut self.special_fields
2973
0
        }
2974
2975
0
        fn new() -> EnumReservedRange {
2976
0
            EnumReservedRange::new()
2977
0
        }
2978
2979
0
        fn clear(&mut self) {
2980
0
            self.start = ::std::option::Option::None;
2981
0
            self.end = ::std::option::Option::None;
2982
0
            self.special_fields.clear();
2983
0
        }
2984
2985
0
        fn default_instance() -> &'static EnumReservedRange {
2986
            static instance: EnumReservedRange = EnumReservedRange {
2987
                start: ::std::option::Option::None,
2988
                end: ::std::option::Option::None,
2989
                special_fields: crate::SpecialFields::new(),
2990
            };
2991
0
            &instance
2992
0
        }
2993
    }
2994
2995
    impl crate::MessageFull for EnumReservedRange {
2996
0
        fn descriptor() -> crate::reflect::MessageDescriptor {
2997
            static descriptor: crate::rt::Lazy<crate::reflect::MessageDescriptor> = crate::rt::Lazy::new();
2998
0
            descriptor.get(|| super::file_descriptor().message_by_package_relative_name("EnumDescriptorProto.EnumReservedRange").unwrap()).clone()
2999
0
        }
3000
    }
3001
3002
    impl ::std::fmt::Display for EnumReservedRange {
3003
0
        fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
3004
0
            crate::text_format::fmt(self, f)
3005
0
        }
3006
    }
3007
3008
    impl crate::reflect::ProtobufValue for EnumReservedRange {
3009
        type RuntimeType = crate::reflect::rt::RuntimeTypeMessage<Self>;
3010
    }
3011
}
3012
3013
///  Describes a value within an enum.
3014
// @@protoc_insertion_point(message:google.protobuf.EnumValueDescriptorProto)
3015
#[derive(PartialEq,Clone,Default,Debug)]
3016
pub struct EnumValueDescriptorProto {
3017
    // message fields
3018
    // @@protoc_insertion_point(field:google.protobuf.EnumValueDescriptorProto.name)
3019
    pub name: ::std::option::Option<::std::string::String>,
3020
    // @@protoc_insertion_point(field:google.protobuf.EnumValueDescriptorProto.number)
3021
    pub number: ::std::option::Option<i32>,
3022
    // @@protoc_insertion_point(field:google.protobuf.EnumValueDescriptorProto.options)
3023
    pub options: crate::MessageField<EnumValueOptions>,
3024
    // special fields
3025
    // @@protoc_insertion_point(special_field:google.protobuf.EnumValueDescriptorProto.special_fields)
3026
    pub special_fields: crate::SpecialFields,
3027
}
3028
3029
impl<'a> ::std::default::Default for &'a EnumValueDescriptorProto {
3030
0
    fn default() -> &'a EnumValueDescriptorProto {
3031
0
        <EnumValueDescriptorProto as crate::Message>::default_instance()
3032
0
    }
3033
}
3034
3035
impl EnumValueDescriptorProto {
3036
0
    pub fn new() -> EnumValueDescriptorProto {
3037
0
        ::std::default::Default::default()
3038
0
    }
3039
3040
    // optional string name = 1;
3041
3042
0
    pub fn name(&self) -> &str {
3043
0
        match self.name.as_ref() {
3044
0
            Some(v) => v,
3045
0
            None => "",
3046
        }
3047
0
    }
3048
3049
0
    pub fn clear_name(&mut self) {
3050
0
        self.name = ::std::option::Option::None;
3051
0
    }
3052
3053
0
    pub fn has_name(&self) -> bool {
3054
0
        self.name.is_some()
3055
0
    }
3056
3057
    // Param is passed by value, moved
3058
0
    pub fn set_name(&mut self, v: ::std::string::String) {
3059
0
        self.name = ::std::option::Option::Some(v);
3060
0
    }
3061
3062
    // Mutable pointer to the field.
3063
    // If field is not initialized, it is initialized with default value first.
3064
0
    pub fn mut_name(&mut self) -> &mut ::std::string::String {
3065
0
        if self.name.is_none() {
3066
0
            self.name = ::std::option::Option::Some(::std::string::String::new());
3067
0
        }
3068
0
        self.name.as_mut().unwrap()
3069
0
    }
3070
3071
    // Take field
3072
0
    pub fn take_name(&mut self) -> ::std::string::String {
3073
0
        self.name.take().unwrap_or_else(|| ::std::string::String::new())
3074
0
    }
3075
3076
    // optional int32 number = 2;
3077
3078
0
    pub fn number(&self) -> i32 {
3079
0
        self.number.unwrap_or(0)
3080
0
    }
3081
3082
0
    pub fn clear_number(&mut self) {
3083
0
        self.number = ::std::option::Option::None;
3084
0
    }
3085
3086
0
    pub fn has_number(&self) -> bool {
3087
0
        self.number.is_some()
3088
0
    }
3089
3090
    // Param is passed by value, moved
3091
0
    pub fn set_number(&mut self, v: i32) {
3092
0
        self.number = ::std::option::Option::Some(v);
3093
0
    }
3094
3095
0
    fn generated_message_descriptor_data() -> crate::reflect::GeneratedMessageDescriptorData {
3096
0
        let mut fields = ::std::vec::Vec::with_capacity(3);
3097
0
        let mut oneofs = ::std::vec::Vec::with_capacity(0);
3098
0
        fields.push(crate::reflect::rt::v2::make_option_accessor::<_, _>(
3099
            "name",
3100
0
            |m: &EnumValueDescriptorProto| { &m.name },
3101
0
            |m: &mut EnumValueDescriptorProto| { &mut m.name },
3102
        ));
3103
0
        fields.push(crate::reflect::rt::v2::make_option_accessor::<_, _>(
3104
            "number",
3105
0
            |m: &EnumValueDescriptorProto| { &m.number },
3106
0
            |m: &mut EnumValueDescriptorProto| { &mut m.number },
3107
        ));
3108
0
        fields.push(crate::reflect::rt::v2::make_message_field_accessor::<_, EnumValueOptions>(
3109
            "options",
3110
0
            |m: &EnumValueDescriptorProto| { &m.options },
3111
0
            |m: &mut EnumValueDescriptorProto| { &mut m.options },
3112
        ));
3113
0
        crate::reflect::GeneratedMessageDescriptorData::new_2::<EnumValueDescriptorProto>(
3114
            "EnumValueDescriptorProto",
3115
0
            fields,
3116
0
            oneofs,
3117
        )
3118
0
    }
3119
}
3120
3121
impl crate::Message for EnumValueDescriptorProto {
3122
    const NAME: &'static str = "EnumValueDescriptorProto";
3123
3124
0
    fn is_initialized(&self) -> bool {
3125
0
        for v in &self.options {
3126
0
            if !v.is_initialized() {
3127
0
                return false;
3128
0
            }
3129
        };
3130
0
        true
3131
0
    }
3132
3133
0
    fn merge_from(&mut self, is: &mut crate::CodedInputStream<'_>) -> crate::Result<()> {
3134
0
        while let Some(tag) = is.read_raw_tag_or_eof()? {
3135
0
            match tag {
3136
                10 => {
3137
0
                    self.name = ::std::option::Option::Some(is.read_string()?);
3138
                },
3139
                16 => {
3140
0
                    self.number = ::std::option::Option::Some(is.read_int32()?);
3141
                },
3142
                26 => {
3143
0
                    crate::rt::read_singular_message_into_field(is, &mut self.options)?;
3144
                },
3145
0
                tag => {
3146
0
                    crate::rt::read_unknown_or_skip_group(tag, is, self.special_fields.mut_unknown_fields())?;
3147
                },
3148
            };
3149
        }
3150
0
        ::std::result::Result::Ok(())
3151
0
    }
3152
3153
    // Compute sizes of nested messages
3154
    #[allow(unused_variables)]
3155
0
    fn compute_size(&self) -> u64 {
3156
0
        let mut my_size = 0;
3157
0
        if let Some(v) = self.name.as_ref() {
3158
0
            my_size += crate::rt::string_size(1, &v);
3159
0
        }
3160
0
        if let Some(v) = self.number {
3161
0
            my_size += crate::rt::int32_size(2, v);
3162
0
        }
3163
0
        if let Some(v) = self.options.as_ref() {
3164
0
            let len = v.compute_size();
3165
0
            my_size += 1 + crate::rt::compute_raw_varint64_size(len) + len;
3166
0
        }
3167
0
        my_size += crate::rt::unknown_fields_size(self.special_fields.unknown_fields());
3168
0
        self.special_fields.cached_size().set(my_size as u32);
3169
0
        my_size
3170
0
    }
3171
3172
0
    fn write_to_with_cached_sizes(&self, os: &mut crate::CodedOutputStream<'_>) -> crate::Result<()> {
3173
0
        if let Some(v) = self.name.as_ref() {
3174
0
            os.write_string(1, v)?;
3175
0
        }
3176
0
        if let Some(v) = self.number {
3177
0
            os.write_int32(2, v)?;
3178
0
        }
3179
0
        if let Some(v) = self.options.as_ref() {
3180
0
            crate::rt::write_message_field_with_cached_size(3, v, os)?;
3181
0
        }
3182
0
        os.write_unknown_fields(self.special_fields.unknown_fields())?;
3183
0
        ::std::result::Result::Ok(())
3184
0
    }
3185
3186
0
    fn special_fields(&self) -> &crate::SpecialFields {
3187
0
        &self.special_fields
3188
0
    }
3189
3190
0
    fn mut_special_fields(&mut self) -> &mut crate::SpecialFields {
3191
0
        &mut self.special_fields
3192
0
    }
3193
3194
0
    fn new() -> EnumValueDescriptorProto {
3195
0
        EnumValueDescriptorProto::new()
3196
0
    }
3197
3198
0
    fn clear(&mut self) {
3199
0
        self.name = ::std::option::Option::None;
3200
0
        self.number = ::std::option::Option::None;
3201
0
        self.options.clear();
3202
0
        self.special_fields.clear();
3203
0
    }
3204
3205
0
    fn default_instance() -> &'static EnumValueDescriptorProto {
3206
        static instance: EnumValueDescriptorProto = EnumValueDescriptorProto {
3207
            name: ::std::option::Option::None,
3208
            number: ::std::option::Option::None,
3209
            options: crate::MessageField::none(),
3210
            special_fields: crate::SpecialFields::new(),
3211
        };
3212
0
        &instance
3213
0
    }
3214
}
3215
3216
impl crate::MessageFull for EnumValueDescriptorProto {
3217
0
    fn descriptor() -> crate::reflect::MessageDescriptor {
3218
        static descriptor: crate::rt::Lazy<crate::reflect::MessageDescriptor> = crate::rt::Lazy::new();
3219
0
        descriptor.get(|| file_descriptor().message_by_package_relative_name("EnumValueDescriptorProto").unwrap()).clone()
3220
0
    }
3221
}
3222
3223
impl ::std::fmt::Display for EnumValueDescriptorProto {
3224
0
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
3225
0
        crate::text_format::fmt(self, f)
3226
0
    }
3227
}
3228
3229
impl crate::reflect::ProtobufValue for EnumValueDescriptorProto {
3230
    type RuntimeType = crate::reflect::rt::RuntimeTypeMessage<Self>;
3231
}
3232
3233
///  Describes a service.
3234
// @@protoc_insertion_point(message:google.protobuf.ServiceDescriptorProto)
3235
#[derive(PartialEq,Clone,Default,Debug)]
3236
pub struct ServiceDescriptorProto {
3237
    // message fields
3238
    // @@protoc_insertion_point(field:google.protobuf.ServiceDescriptorProto.name)
3239
    pub name: ::std::option::Option<::std::string::String>,
3240
    // @@protoc_insertion_point(field:google.protobuf.ServiceDescriptorProto.method)
3241
    pub method: ::std::vec::Vec<MethodDescriptorProto>,
3242
    // @@protoc_insertion_point(field:google.protobuf.ServiceDescriptorProto.options)
3243
    pub options: crate::MessageField<ServiceOptions>,
3244
    // special fields
3245
    // @@protoc_insertion_point(special_field:google.protobuf.ServiceDescriptorProto.special_fields)
3246
    pub special_fields: crate::SpecialFields,
3247
}
3248
3249
impl<'a> ::std::default::Default for &'a ServiceDescriptorProto {
3250
0
    fn default() -> &'a ServiceDescriptorProto {
3251
0
        <ServiceDescriptorProto as crate::Message>::default_instance()
3252
0
    }
3253
}
3254
3255
impl ServiceDescriptorProto {
3256
0
    pub fn new() -> ServiceDescriptorProto {
3257
0
        ::std::default::Default::default()
3258
0
    }
3259
3260
    // optional string name = 1;
3261
3262
0
    pub fn name(&self) -> &str {
3263
0
        match self.name.as_ref() {
3264
0
            Some(v) => v,
3265
0
            None => "",
3266
        }
3267
0
    }
3268
3269
0
    pub fn clear_name(&mut self) {
3270
0
        self.name = ::std::option::Option::None;
3271
0
    }
3272
3273
0
    pub fn has_name(&self) -> bool {
3274
0
        self.name.is_some()
3275
0
    }
3276
3277
    // Param is passed by value, moved
3278
0
    pub fn set_name(&mut self, v: ::std::string::String) {
3279
0
        self.name = ::std::option::Option::Some(v);
3280
0
    }
3281
3282
    // Mutable pointer to the field.
3283
    // If field is not initialized, it is initialized with default value first.
3284
0
    pub fn mut_name(&mut self) -> &mut ::std::string::String {
3285
0
        if self.name.is_none() {
3286
0
            self.name = ::std::option::Option::Some(::std::string::String::new());
3287
0
        }
3288
0
        self.name.as_mut().unwrap()
3289
0
    }
3290
3291
    // Take field
3292
0
    pub fn take_name(&mut self) -> ::std::string::String {
3293
0
        self.name.take().unwrap_or_else(|| ::std::string::String::new())
3294
0
    }
3295
3296
0
    fn generated_message_descriptor_data() -> crate::reflect::GeneratedMessageDescriptorData {
3297
0
        let mut fields = ::std::vec::Vec::with_capacity(3);
3298
0
        let mut oneofs = ::std::vec::Vec::with_capacity(0);
3299
0
        fields.push(crate::reflect::rt::v2::make_option_accessor::<_, _>(
3300
            "name",
3301
0
            |m: &ServiceDescriptorProto| { &m.name },
3302
0
            |m: &mut ServiceDescriptorProto| { &mut m.name },
3303
        ));
3304
0
        fields.push(crate::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
3305
            "method",
3306
0
            |m: &ServiceDescriptorProto| { &m.method },
3307
0
            |m: &mut ServiceDescriptorProto| { &mut m.method },
3308
        ));
3309
0
        fields.push(crate::reflect::rt::v2::make_message_field_accessor::<_, ServiceOptions>(
3310
            "options",
3311
0
            |m: &ServiceDescriptorProto| { &m.options },
3312
0
            |m: &mut ServiceDescriptorProto| { &mut m.options },
3313
        ));
3314
0
        crate::reflect::GeneratedMessageDescriptorData::new_2::<ServiceDescriptorProto>(
3315
            "ServiceDescriptorProto",
3316
0
            fields,
3317
0
            oneofs,
3318
        )
3319
0
    }
3320
}
3321
3322
impl crate::Message for ServiceDescriptorProto {
3323
    const NAME: &'static str = "ServiceDescriptorProto";
3324
3325
0
    fn is_initialized(&self) -> bool {
3326
0
        for v in &self.method {
3327
0
            if !v.is_initialized() {
3328
0
                return false;
3329
0
            }
3330
        };
3331
0
        for v in &self.options {
3332
0
            if !v.is_initialized() {
3333
0
                return false;
3334
0
            }
3335
        };
3336
0
        true
3337
0
    }
3338
3339
0
    fn merge_from(&mut self, is: &mut crate::CodedInputStream<'_>) -> crate::Result<()> {
3340
0
        while let Some(tag) = is.read_raw_tag_or_eof()? {
3341
0
            match tag {
3342
                10 => {
3343
0
                    self.name = ::std::option::Option::Some(is.read_string()?);
3344
                },
3345
                18 => {
3346
0
                    self.method.push(is.read_message()?);
3347
                },
3348
                26 => {
3349
0
                    crate::rt::read_singular_message_into_field(is, &mut self.options)?;
3350
                },
3351
0
                tag => {
3352
0
                    crate::rt::read_unknown_or_skip_group(tag, is, self.special_fields.mut_unknown_fields())?;
3353
                },
3354
            };
3355
        }
3356
0
        ::std::result::Result::Ok(())
3357
0
    }
3358
3359
    // Compute sizes of nested messages
3360
    #[allow(unused_variables)]
3361
0
    fn compute_size(&self) -> u64 {
3362
0
        let mut my_size = 0;
3363
0
        if let Some(v) = self.name.as_ref() {
3364
0
            my_size += crate::rt::string_size(1, &v);
3365
0
        }
3366
0
        for value in &self.method {
3367
0
            let len = value.compute_size();
3368
0
            my_size += 1 + crate::rt::compute_raw_varint64_size(len) + len;
3369
0
        };
3370
0
        if let Some(v) = self.options.as_ref() {
3371
0
            let len = v.compute_size();
3372
0
            my_size += 1 + crate::rt::compute_raw_varint64_size(len) + len;
3373
0
        }
3374
0
        my_size += crate::rt::unknown_fields_size(self.special_fields.unknown_fields());
3375
0
        self.special_fields.cached_size().set(my_size as u32);
3376
0
        my_size
3377
0
    }
3378
3379
0
    fn write_to_with_cached_sizes(&self, os: &mut crate::CodedOutputStream<'_>) -> crate::Result<()> {
3380
0
        if let Some(v) = self.name.as_ref() {
3381
0
            os.write_string(1, v)?;
3382
0
        }
3383
0
        for v in &self.method {
3384
0
            crate::rt::write_message_field_with_cached_size(2, v, os)?;
3385
        };
3386
0
        if let Some(v) = self.options.as_ref() {
3387
0
            crate::rt::write_message_field_with_cached_size(3, v, os)?;
3388
0
        }
3389
0
        os.write_unknown_fields(self.special_fields.unknown_fields())?;
3390
0
        ::std::result::Result::Ok(())
3391
0
    }
3392
3393
0
    fn special_fields(&self) -> &crate::SpecialFields {
3394
0
        &self.special_fields
3395
0
    }
3396
3397
0
    fn mut_special_fields(&mut self) -> &mut crate::SpecialFields {
3398
0
        &mut self.special_fields
3399
0
    }
3400
3401
0
    fn new() -> ServiceDescriptorProto {
3402
0
        ServiceDescriptorProto::new()
3403
0
    }
3404
3405
0
    fn clear(&mut self) {
3406
0
        self.name = ::std::option::Option::None;
3407
0
        self.method.clear();
3408
0
        self.options.clear();
3409
0
        self.special_fields.clear();
3410
0
    }
3411
3412
0
    fn default_instance() -> &'static ServiceDescriptorProto {
3413
        static instance: ServiceDescriptorProto = ServiceDescriptorProto {
3414
            name: ::std::option::Option::None,
3415
            method: ::std::vec::Vec::new(),
3416
            options: crate::MessageField::none(),
3417
            special_fields: crate::SpecialFields::new(),
3418
        };
3419
0
        &instance
3420
0
    }
3421
}
3422
3423
impl crate::MessageFull for ServiceDescriptorProto {
3424
0
    fn descriptor() -> crate::reflect::MessageDescriptor {
3425
        static descriptor: crate::rt::Lazy<crate::reflect::MessageDescriptor> = crate::rt::Lazy::new();
3426
0
        descriptor.get(|| file_descriptor().message_by_package_relative_name("ServiceDescriptorProto").unwrap()).clone()
3427
0
    }
3428
}
3429
3430
impl ::std::fmt::Display for ServiceDescriptorProto {
3431
0
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
3432
0
        crate::text_format::fmt(self, f)
3433
0
    }
3434
}
3435
3436
impl crate::reflect::ProtobufValue for ServiceDescriptorProto {
3437
    type RuntimeType = crate::reflect::rt::RuntimeTypeMessage<Self>;
3438
}
3439
3440
///  Describes a method of a service.
3441
// @@protoc_insertion_point(message:google.protobuf.MethodDescriptorProto)
3442
#[derive(PartialEq,Clone,Default,Debug)]
3443
pub struct MethodDescriptorProto {
3444
    // message fields
3445
    // @@protoc_insertion_point(field:google.protobuf.MethodDescriptorProto.name)
3446
    pub name: ::std::option::Option<::std::string::String>,
3447
    ///  Input and output type names.  These are resolved in the same way as
3448
    ///  FieldDescriptorProto.type_name, but must refer to a message type.
3449
    // @@protoc_insertion_point(field:google.protobuf.MethodDescriptorProto.input_type)
3450
    pub input_type: ::std::option::Option<::std::string::String>,
3451
    // @@protoc_insertion_point(field:google.protobuf.MethodDescriptorProto.output_type)
3452
    pub output_type: ::std::option::Option<::std::string::String>,
3453
    // @@protoc_insertion_point(field:google.protobuf.MethodDescriptorProto.options)
3454
    pub options: crate::MessageField<MethodOptions>,
3455
    ///  Identifies if client streams multiple client messages
3456
    // @@protoc_insertion_point(field:google.protobuf.MethodDescriptorProto.client_streaming)
3457
    pub client_streaming: ::std::option::Option<bool>,
3458
    ///  Identifies if server streams multiple server messages
3459
    // @@protoc_insertion_point(field:google.protobuf.MethodDescriptorProto.server_streaming)
3460
    pub server_streaming: ::std::option::Option<bool>,
3461
    // special fields
3462
    // @@protoc_insertion_point(special_field:google.protobuf.MethodDescriptorProto.special_fields)
3463
    pub special_fields: crate::SpecialFields,
3464
}
3465
3466
impl<'a> ::std::default::Default for &'a MethodDescriptorProto {
3467
0
    fn default() -> &'a MethodDescriptorProto {
3468
0
        <MethodDescriptorProto as crate::Message>::default_instance()
3469
0
    }
3470
}
3471
3472
impl MethodDescriptorProto {
3473
0
    pub fn new() -> MethodDescriptorProto {
3474
0
        ::std::default::Default::default()
3475
0
    }
3476
3477
    // optional string name = 1;
3478
3479
0
    pub fn name(&self) -> &str {
3480
0
        match self.name.as_ref() {
3481
0
            Some(v) => v,
3482
0
            None => "",
3483
        }
3484
0
    }
3485
3486
0
    pub fn clear_name(&mut self) {
3487
0
        self.name = ::std::option::Option::None;
3488
0
    }
3489
3490
0
    pub fn has_name(&self) -> bool {
3491
0
        self.name.is_some()
3492
0
    }
3493
3494
    // Param is passed by value, moved
3495
0
    pub fn set_name(&mut self, v: ::std::string::String) {
3496
0
        self.name = ::std::option::Option::Some(v);
3497
0
    }
3498
3499
    // Mutable pointer to the field.
3500
    // If field is not initialized, it is initialized with default value first.
3501
0
    pub fn mut_name(&mut self) -> &mut ::std::string::String {
3502
0
        if self.name.is_none() {
3503
0
            self.name = ::std::option::Option::Some(::std::string::String::new());
3504
0
        }
3505
0
        self.name.as_mut().unwrap()
3506
0
    }
3507
3508
    // Take field
3509
0
    pub fn take_name(&mut self) -> ::std::string::String {
3510
0
        self.name.take().unwrap_or_else(|| ::std::string::String::new())
3511
0
    }
3512
3513
    // optional string input_type = 2;
3514
3515
0
    pub fn input_type(&self) -> &str {
3516
0
        match self.input_type.as_ref() {
3517
0
            Some(v) => v,
3518
0
            None => "",
3519
        }
3520
0
    }
3521
3522
0
    pub fn clear_input_type(&mut self) {
3523
0
        self.input_type = ::std::option::Option::None;
3524
0
    }
3525
3526
0
    pub fn has_input_type(&self) -> bool {
3527
0
        self.input_type.is_some()
3528
0
    }
3529
3530
    // Param is passed by value, moved
3531
0
    pub fn set_input_type(&mut self, v: ::std::string::String) {
3532
0
        self.input_type = ::std::option::Option::Some(v);
3533
0
    }
3534
3535
    // Mutable pointer to the field.
3536
    // If field is not initialized, it is initialized with default value first.
3537
0
    pub fn mut_input_type(&mut self) -> &mut ::std::string::String {
3538
0
        if self.input_type.is_none() {
3539
0
            self.input_type = ::std::option::Option::Some(::std::string::String::new());
3540
0
        }
3541
0
        self.input_type.as_mut().unwrap()
3542
0
    }
3543
3544
    // Take field
3545
0
    pub fn take_input_type(&mut self) -> ::std::string::String {
3546
0
        self.input_type.take().unwrap_or_else(|| ::std::string::String::new())
3547
0
    }
3548
3549
    // optional string output_type = 3;
3550
3551
0
    pub fn output_type(&self) -> &str {
3552
0
        match self.output_type.as_ref() {
3553
0
            Some(v) => v,
3554
0
            None => "",
3555
        }
3556
0
    }
3557
3558
0
    pub fn clear_output_type(&mut self) {
3559
0
        self.output_type = ::std::option::Option::None;
3560
0
    }
3561
3562
0
    pub fn has_output_type(&self) -> bool {
3563
0
        self.output_type.is_some()
3564
0
    }
3565
3566
    // Param is passed by value, moved
3567
0
    pub fn set_output_type(&mut self, v: ::std::string::String) {
3568
0
        self.output_type = ::std::option::Option::Some(v);
3569
0
    }
3570
3571
    // Mutable pointer to the field.
3572
    // If field is not initialized, it is initialized with default value first.
3573
0
    pub fn mut_output_type(&mut self) -> &mut ::std::string::String {
3574
0
        if self.output_type.is_none() {
3575
0
            self.output_type = ::std::option::Option::Some(::std::string::String::new());
3576
0
        }
3577
0
        self.output_type.as_mut().unwrap()
3578
0
    }
3579
3580
    // Take field
3581
0
    pub fn take_output_type(&mut self) -> ::std::string::String {
3582
0
        self.output_type.take().unwrap_or_else(|| ::std::string::String::new())
3583
0
    }
3584
3585
    // optional bool client_streaming = 5;
3586
3587
0
    pub fn client_streaming(&self) -> bool {
3588
0
        self.client_streaming.unwrap_or(false)
3589
0
    }
3590
3591
0
    pub fn clear_client_streaming(&mut self) {
3592
0
        self.client_streaming = ::std::option::Option::None;
3593
0
    }
3594
3595
0
    pub fn has_client_streaming(&self) -> bool {
3596
0
        self.client_streaming.is_some()
3597
0
    }
3598
3599
    // Param is passed by value, moved
3600
0
    pub fn set_client_streaming(&mut self, v: bool) {
3601
0
        self.client_streaming = ::std::option::Option::Some(v);
3602
0
    }
3603
3604
    // optional bool server_streaming = 6;
3605
3606
0
    pub fn server_streaming(&self) -> bool {
3607
0
        self.server_streaming.unwrap_or(false)
3608
0
    }
3609
3610
0
    pub fn clear_server_streaming(&mut self) {
3611
0
        self.server_streaming = ::std::option::Option::None;
3612
0
    }
3613
3614
0
    pub fn has_server_streaming(&self) -> bool {
3615
0
        self.server_streaming.is_some()
3616
0
    }
3617
3618
    // Param is passed by value, moved
3619
0
    pub fn set_server_streaming(&mut self, v: bool) {
3620
0
        self.server_streaming = ::std::option::Option::Some(v);
3621
0
    }
3622
3623
0
    fn generated_message_descriptor_data() -> crate::reflect::GeneratedMessageDescriptorData {
3624
0
        let mut fields = ::std::vec::Vec::with_capacity(6);
3625
0
        let mut oneofs = ::std::vec::Vec::with_capacity(0);
3626
0
        fields.push(crate::reflect::rt::v2::make_option_accessor::<_, _>(
3627
            "name",
3628
0
            |m: &MethodDescriptorProto| { &m.name },
3629
0
            |m: &mut MethodDescriptorProto| { &mut m.name },
3630
        ));
3631
0
        fields.push(crate::reflect::rt::v2::make_option_accessor::<_, _>(
3632
            "input_type",
3633
0
            |m: &MethodDescriptorProto| { &m.input_type },
3634
0
            |m: &mut MethodDescriptorProto| { &mut m.input_type },
3635
        ));
3636
0
        fields.push(crate::reflect::rt::v2::make_option_accessor::<_, _>(
3637
            "output_type",
3638
0
            |m: &MethodDescriptorProto| { &m.output_type },
3639
0
            |m: &mut MethodDescriptorProto| { &mut m.output_type },
3640
        ));
3641
0
        fields.push(crate::reflect::rt::v2::make_message_field_accessor::<_, MethodOptions>(
3642
            "options",
3643
0
            |m: &MethodDescriptorProto| { &m.options },
3644
0
            |m: &mut MethodDescriptorProto| { &mut m.options },
3645
        ));
3646
0
        fields.push(crate::reflect::rt::v2::make_option_accessor::<_, _>(
3647
            "client_streaming",
3648
0
            |m: &MethodDescriptorProto| { &m.client_streaming },
3649
0
            |m: &mut MethodDescriptorProto| { &mut m.client_streaming },
3650
        ));
3651
0
        fields.push(crate::reflect::rt::v2::make_option_accessor::<_, _>(
3652
            "server_streaming",
3653
0
            |m: &MethodDescriptorProto| { &m.server_streaming },
3654
0
            |m: &mut MethodDescriptorProto| { &mut m.server_streaming },
3655
        ));
3656
0
        crate::reflect::GeneratedMessageDescriptorData::new_2::<MethodDescriptorProto>(
3657
            "MethodDescriptorProto",
3658
0
            fields,
3659
0
            oneofs,
3660
        )
3661
0
    }
3662
}
3663
3664
impl crate::Message for MethodDescriptorProto {
3665
    const NAME: &'static str = "MethodDescriptorProto";
3666
3667
0
    fn is_initialized(&self) -> bool {
3668
0
        for v in &self.options {
3669
0
            if !v.is_initialized() {
3670
0
                return false;
3671
0
            }
3672
        };
3673
0
        true
3674
0
    }
3675
3676
0
    fn merge_from(&mut self, is: &mut crate::CodedInputStream<'_>) -> crate::Result<()> {
3677
0
        while let Some(tag) = is.read_raw_tag_or_eof()? {
3678
0
            match tag {
3679
                10 => {
3680
0
                    self.name = ::std::option::Option::Some(is.read_string()?);
3681
                },
3682
                18 => {
3683
0
                    self.input_type = ::std::option::Option::Some(is.read_string()?);
3684
                },
3685
                26 => {
3686
0
                    self.output_type = ::std::option::Option::Some(is.read_string()?);
3687
                },
3688
                34 => {
3689
0
                    crate::rt::read_singular_message_into_field(is, &mut self.options)?;
3690
                },
3691
                40 => {
3692
0
                    self.client_streaming = ::std::option::Option::Some(is.read_bool()?);
3693
                },
3694
                48 => {
3695
0
                    self.server_streaming = ::std::option::Option::Some(is.read_bool()?);
3696
                },
3697
0
                tag => {
3698
0
                    crate::rt::read_unknown_or_skip_group(tag, is, self.special_fields.mut_unknown_fields())?;
3699
                },
3700
            };
3701
        }
3702
0
        ::std::result::Result::Ok(())
3703
0
    }
3704
3705
    // Compute sizes of nested messages
3706
    #[allow(unused_variables)]
3707
0
    fn compute_size(&self) -> u64 {
3708
0
        let mut my_size = 0;
3709
0
        if let Some(v) = self.name.as_ref() {
3710
0
            my_size += crate::rt::string_size(1, &v);
3711
0
        }
3712
0
        if let Some(v) = self.input_type.as_ref() {
3713
0
            my_size += crate::rt::string_size(2, &v);
3714
0
        }
3715
0
        if let Some(v) = self.output_type.as_ref() {
3716
0
            my_size += crate::rt::string_size(3, &v);
3717
0
        }
3718
0
        if let Some(v) = self.options.as_ref() {
3719
0
            let len = v.compute_size();
3720
0
            my_size += 1 + crate::rt::compute_raw_varint64_size(len) + len;
3721
0
        }
3722
0
        if let Some(v) = self.client_streaming {
3723
0
            my_size += 1 + 1;
3724
0
        }
3725
0
        if let Some(v) = self.server_streaming {
3726
0
            my_size += 1 + 1;
3727
0
        }
3728
0
        my_size += crate::rt::unknown_fields_size(self.special_fields.unknown_fields());
3729
0
        self.special_fields.cached_size().set(my_size as u32);
3730
0
        my_size
3731
0
    }
3732
3733
0
    fn write_to_with_cached_sizes(&self, os: &mut crate::CodedOutputStream<'_>) -> crate::Result<()> {
3734
0
        if let Some(v) = self.name.as_ref() {
3735
0
            os.write_string(1, v)?;
3736
0
        }
3737
0
        if let Some(v) = self.input_type.as_ref() {
3738
0
            os.write_string(2, v)?;
3739
0
        }
3740
0
        if let Some(v) = self.output_type.as_ref() {
3741
0
            os.write_string(3, v)?;
3742
0
        }
3743
0
        if let Some(v) = self.options.as_ref() {
3744
0
            crate::rt::write_message_field_with_cached_size(4, v, os)?;
3745
0
        }
3746
0
        if let Some(v) = self.client_streaming {
3747
0
            os.write_bool(5, v)?;
3748
0
        }
3749
0
        if let Some(v) = self.server_streaming {
3750
0
            os.write_bool(6, v)?;
3751
0
        }
3752
0
        os.write_unknown_fields(self.special_fields.unknown_fields())?;
3753
0
        ::std::result::Result::Ok(())
3754
0
    }
3755
3756
0
    fn special_fields(&self) -> &crate::SpecialFields {
3757
0
        &self.special_fields
3758
0
    }
3759
3760
0
    fn mut_special_fields(&mut self) -> &mut crate::SpecialFields {
3761
0
        &mut self.special_fields
3762
0
    }
3763
3764
0
    fn new() -> MethodDescriptorProto {
3765
0
        MethodDescriptorProto::new()
3766
0
    }
3767
3768
0
    fn clear(&mut self) {
3769
0
        self.name = ::std::option::Option::None;
3770
0
        self.input_type = ::std::option::Option::None;
3771
0
        self.output_type = ::std::option::Option::None;
3772
0
        self.options.clear();
3773
0
        self.client_streaming = ::std::option::Option::None;
3774
0
        self.server_streaming = ::std::option::Option::None;
3775
0
        self.special_fields.clear();
3776
0
    }
3777
3778
0
    fn default_instance() -> &'static MethodDescriptorProto {
3779
        static instance: MethodDescriptorProto = MethodDescriptorProto {
3780
            name: ::std::option::Option::None,
3781
            input_type: ::std::option::Option::None,
3782
            output_type: ::std::option::Option::None,
3783
            options: crate::MessageField::none(),
3784
            client_streaming: ::std::option::Option::None,
3785
            server_streaming: ::std::option::Option::None,
3786
            special_fields: crate::SpecialFields::new(),
3787
        };
3788
0
        &instance
3789
0
    }
3790
}
3791
3792
impl crate::MessageFull for MethodDescriptorProto {
3793
0
    fn descriptor() -> crate::reflect::MessageDescriptor {
3794
        static descriptor: crate::rt::Lazy<crate::reflect::MessageDescriptor> = crate::rt::Lazy::new();
3795
0
        descriptor.get(|| file_descriptor().message_by_package_relative_name("MethodDescriptorProto").unwrap()).clone()
3796
0
    }
3797
}
3798
3799
impl ::std::fmt::Display for MethodDescriptorProto {
3800
0
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
3801
0
        crate::text_format::fmt(self, f)
3802
0
    }
3803
}
3804
3805
impl crate::reflect::ProtobufValue for MethodDescriptorProto {
3806
    type RuntimeType = crate::reflect::rt::RuntimeTypeMessage<Self>;
3807
}
3808
3809
// @@protoc_insertion_point(message:google.protobuf.FileOptions)
3810
#[derive(PartialEq,Clone,Default,Debug)]
3811
pub struct FileOptions {
3812
    // message fields
3813
    ///  Sets the Java package where classes generated from this .proto will be
3814
    ///  placed.  By default, the proto package is used, but this is often
3815
    ///  inappropriate because proto packages do not normally start with backwards
3816
    ///  domain names.
3817
    // @@protoc_insertion_point(field:google.protobuf.FileOptions.java_package)
3818
    pub java_package: ::std::option::Option<::std::string::String>,
3819
    ///  Controls the name of the wrapper Java class generated for the .proto file.
3820
    ///  That class will always contain the .proto file's getDescriptor() method as
3821
    ///  well as any top-level extensions defined in the .proto file.
3822
    ///  If java_multiple_files is disabled, then all the other classes from the
3823
    ///  .proto file will be nested inside the single wrapper outer class.
3824
    // @@protoc_insertion_point(field:google.protobuf.FileOptions.java_outer_classname)
3825
    pub java_outer_classname: ::std::option::Option<::std::string::String>,
3826
    ///  If enabled, then the Java code generator will generate a separate .java
3827
    ///  file for each top-level message, enum, and service defined in the .proto
3828
    ///  file.  Thus, these types will *not* be nested inside the wrapper class
3829
    ///  named by java_outer_classname.  However, the wrapper class will still be
3830
    ///  generated to contain the file's getDescriptor() method as well as any
3831
    ///  top-level extensions defined in the file.
3832
    // @@protoc_insertion_point(field:google.protobuf.FileOptions.java_multiple_files)
3833
    pub java_multiple_files: ::std::option::Option<bool>,
3834
    ///  This option does nothing.
3835
    // @@protoc_insertion_point(field:google.protobuf.FileOptions.java_generate_equals_and_hash)
3836
    pub java_generate_equals_and_hash: ::std::option::Option<bool>,
3837
    ///  If set true, then the Java2 code generator will generate code that
3838
    ///  throws an exception whenever an attempt is made to assign a non-UTF-8
3839
    ///  byte sequence to a string field.
3840
    ///  Message reflection will do the same.
3841
    ///  However, an extension field still accepts non-UTF-8 byte sequences.
3842
    ///  This option has no effect on when used with the lite runtime.
3843
    // @@protoc_insertion_point(field:google.protobuf.FileOptions.java_string_check_utf8)
3844
    pub java_string_check_utf8: ::std::option::Option<bool>,
3845
    // @@protoc_insertion_point(field:google.protobuf.FileOptions.optimize_for)
3846
    pub optimize_for: ::std::option::Option<crate::EnumOrUnknown<file_options::OptimizeMode>>,
3847
    ///  Sets the Go package where structs generated from this .proto will be
3848
    ///  placed. If omitted, the Go package will be derived from the following:
3849
    ///    - The basename of the package import path, if provided.
3850
    ///    - Otherwise, the package statement in the .proto file, if present.
3851
    ///    - Otherwise, the basename of the .proto file, without extension.
3852
    // @@protoc_insertion_point(field:google.protobuf.FileOptions.go_package)
3853
    pub go_package: ::std::option::Option<::std::string::String>,
3854
    ///  Should generic services be generated in each language?  "Generic" services
3855
    ///  are not specific to any particular RPC system.  They are generated by the
3856
    ///  main code generators in each language (without additional plugins).
3857
    ///  Generic services were the only kind of service generation supported by
3858
    ///  early versions of google.protobuf.
3859
    ///
3860
    ///  Generic services are now considered deprecated in favor of using plugins
3861
    ///  that generate code specific to your particular RPC system.  Therefore,
3862
    ///  these default to false.  Old code which depends on generic services should
3863
    ///  explicitly set them to true.
3864
    // @@protoc_insertion_point(field:google.protobuf.FileOptions.cc_generic_services)
3865
    pub cc_generic_services: ::std::option::Option<bool>,
3866
    // @@protoc_insertion_point(field:google.protobuf.FileOptions.java_generic_services)
3867
    pub java_generic_services: ::std::option::Option<bool>,
3868
    // @@protoc_insertion_point(field:google.protobuf.FileOptions.py_generic_services)
3869
    pub py_generic_services: ::std::option::Option<bool>,
3870
    // @@protoc_insertion_point(field:google.protobuf.FileOptions.php_generic_services)
3871
    pub php_generic_services: ::std::option::Option<bool>,
3872
    ///  Is this file deprecated?
3873
    ///  Depending on the target platform, this can emit Deprecated annotations
3874
    ///  for everything in the file, or it will be completely ignored; in the very
3875
    ///  least, this is a formalization for deprecating files.
3876
    // @@protoc_insertion_point(field:google.protobuf.FileOptions.deprecated)
3877
    pub deprecated: ::std::option::Option<bool>,
3878
    ///  Enables the use of arenas for the proto messages in this file. This applies
3879
    ///  only to generated classes for C++.
3880
    // @@protoc_insertion_point(field:google.protobuf.FileOptions.cc_enable_arenas)
3881
    pub cc_enable_arenas: ::std::option::Option<bool>,
3882
    ///  Sets the objective c class prefix which is prepended to all objective c
3883
    ///  generated classes from this .proto. There is no default.
3884
    // @@protoc_insertion_point(field:google.protobuf.FileOptions.objc_class_prefix)
3885
    pub objc_class_prefix: ::std::option::Option<::std::string::String>,
3886
    ///  Namespace for generated classes; defaults to the package.
3887
    // @@protoc_insertion_point(field:google.protobuf.FileOptions.csharp_namespace)
3888
    pub csharp_namespace: ::std::option::Option<::std::string::String>,
3889
    ///  By default Swift generators will take the proto package and CamelCase it
3890
    ///  replacing '.' with underscore and use that to prefix the types/symbols
3891
    ///  defined. When this options is provided, they will use this value instead
3892
    ///  to prefix the types/symbols defined.
3893
    // @@protoc_insertion_point(field:google.protobuf.FileOptions.swift_prefix)
3894
    pub swift_prefix: ::std::option::Option<::std::string::String>,
3895
    ///  Sets the php class prefix which is prepended to all php generated classes
3896
    ///  from this .proto. Default is empty.
3897
    // @@protoc_insertion_point(field:google.protobuf.FileOptions.php_class_prefix)
3898
    pub php_class_prefix: ::std::option::Option<::std::string::String>,
3899
    ///  Use this option to change the namespace of php generated classes. Default
3900
    ///  is empty. When this option is empty, the package name will be used for
3901
    ///  determining the namespace.
3902
    // @@protoc_insertion_point(field:google.protobuf.FileOptions.php_namespace)
3903
    pub php_namespace: ::std::option::Option<::std::string::String>,
3904
    ///  Use this option to change the namespace of php generated metadata classes.
3905
    ///  Default is empty. When this option is empty, the proto file name will be
3906
    ///  used for determining the namespace.
3907
    // @@protoc_insertion_point(field:google.protobuf.FileOptions.php_metadata_namespace)
3908
    pub php_metadata_namespace: ::std::option::Option<::std::string::String>,
3909
    ///  Use this option to change the package of ruby generated classes. Default
3910
    ///  is empty. When this option is not set, the package name will be used for
3911
    ///  determining the ruby package.
3912
    // @@protoc_insertion_point(field:google.protobuf.FileOptions.ruby_package)
3913
    pub ruby_package: ::std::option::Option<::std::string::String>,
3914
    ///  The parser stores options it doesn't recognize here.
3915
    ///  See the documentation for the "Options" section above.
3916
    // @@protoc_insertion_point(field:google.protobuf.FileOptions.uninterpreted_option)
3917
    pub uninterpreted_option: ::std::vec::Vec<UninterpretedOption>,
3918
    // special fields
3919
    // @@protoc_insertion_point(special_field:google.protobuf.FileOptions.special_fields)
3920
    pub special_fields: crate::SpecialFields,
3921
}
3922
3923
impl<'a> ::std::default::Default for &'a FileOptions {
3924
0
    fn default() -> &'a FileOptions {
3925
0
        <FileOptions as crate::Message>::default_instance()
3926
0
    }
3927
}
3928
3929
impl FileOptions {
3930
0
    pub fn new() -> FileOptions {
3931
0
        ::std::default::Default::default()
3932
0
    }
3933
3934
    // optional string java_package = 1;
3935
3936
0
    pub fn java_package(&self) -> &str {
3937
0
        match self.java_package.as_ref() {
3938
0
            Some(v) => v,
3939
0
            None => "",
3940
        }
3941
0
    }
3942
3943
0
    pub fn clear_java_package(&mut self) {
3944
0
        self.java_package = ::std::option::Option::None;
3945
0
    }
3946
3947
0
    pub fn has_java_package(&self) -> bool {
3948
0
        self.java_package.is_some()
3949
0
    }
3950
3951
    // Param is passed by value, moved
3952
0
    pub fn set_java_package(&mut self, v: ::std::string::String) {
3953
0
        self.java_package = ::std::option::Option::Some(v);
3954
0
    }
3955
3956
    // Mutable pointer to the field.
3957
    // If field is not initialized, it is initialized with default value first.
3958
0
    pub fn mut_java_package(&mut self) -> &mut ::std::string::String {
3959
0
        if self.java_package.is_none() {
3960
0
            self.java_package = ::std::option::Option::Some(::std::string::String::new());
3961
0
        }
3962
0
        self.java_package.as_mut().unwrap()
3963
0
    }
3964
3965
    // Take field
3966
0
    pub fn take_java_package(&mut self) -> ::std::string::String {
3967
0
        self.java_package.take().unwrap_or_else(|| ::std::string::String::new())
3968
0
    }
3969
3970
    // optional string java_outer_classname = 8;
3971
3972
0
    pub fn java_outer_classname(&self) -> &str {
3973
0
        match self.java_outer_classname.as_ref() {
3974
0
            Some(v) => v,
3975
0
            None => "",
3976
        }
3977
0
    }
3978
3979
0
    pub fn clear_java_outer_classname(&mut self) {
3980
0
        self.java_outer_classname = ::std::option::Option::None;
3981
0
    }
3982
3983
0
    pub fn has_java_outer_classname(&self) -> bool {
3984
0
        self.java_outer_classname.is_some()
3985
0
    }
3986
3987
    // Param is passed by value, moved
3988
0
    pub fn set_java_outer_classname(&mut self, v: ::std::string::String) {
3989
0
        self.java_outer_classname = ::std::option::Option::Some(v);
3990
0
    }
3991
3992
    // Mutable pointer to the field.
3993
    // If field is not initialized, it is initialized with default value first.
3994
0
    pub fn mut_java_outer_classname(&mut self) -> &mut ::std::string::String {
3995
0
        if self.java_outer_classname.is_none() {
3996
0
            self.java_outer_classname = ::std::option::Option::Some(::std::string::String::new());
3997
0
        }
3998
0
        self.java_outer_classname.as_mut().unwrap()
3999
0
    }
4000
4001
    // Take field
4002
0
    pub fn take_java_outer_classname(&mut self) -> ::std::string::String {
4003
0
        self.java_outer_classname.take().unwrap_or_else(|| ::std::string::String::new())
4004
0
    }
4005
4006
    // optional bool java_multiple_files = 10;
4007
4008
0
    pub fn java_multiple_files(&self) -> bool {
4009
0
        self.java_multiple_files.unwrap_or(false)
4010
0
    }
4011
4012
0
    pub fn clear_java_multiple_files(&mut self) {
4013
0
        self.java_multiple_files = ::std::option::Option::None;
4014
0
    }
4015
4016
0
    pub fn has_java_multiple_files(&self) -> bool {
4017
0
        self.java_multiple_files.is_some()
4018
0
    }
4019
4020
    // Param is passed by value, moved
4021
0
    pub fn set_java_multiple_files(&mut self, v: bool) {
4022
0
        self.java_multiple_files = ::std::option::Option::Some(v);
4023
0
    }
4024
4025
    // optional bool java_generate_equals_and_hash = 20;
4026
4027
0
    pub fn java_generate_equals_and_hash(&self) -> bool {
4028
0
        self.java_generate_equals_and_hash.unwrap_or(false)
4029
0
    }
4030
4031
0
    pub fn clear_java_generate_equals_and_hash(&mut self) {
4032
0
        self.java_generate_equals_and_hash = ::std::option::Option::None;
4033
0
    }
4034
4035
0
    pub fn has_java_generate_equals_and_hash(&self) -> bool {
4036
0
        self.java_generate_equals_and_hash.is_some()
4037
0
    }
4038
4039
    // Param is passed by value, moved
4040
0
    pub fn set_java_generate_equals_and_hash(&mut self, v: bool) {
4041
0
        self.java_generate_equals_and_hash = ::std::option::Option::Some(v);
4042
0
    }
4043
4044
    // optional bool java_string_check_utf8 = 27;
4045
4046
0
    pub fn java_string_check_utf8(&self) -> bool {
4047
0
        self.java_string_check_utf8.unwrap_or(false)
4048
0
    }
4049
4050
0
    pub fn clear_java_string_check_utf8(&mut self) {
4051
0
        self.java_string_check_utf8 = ::std::option::Option::None;
4052
0
    }
4053
4054
0
    pub fn has_java_string_check_utf8(&self) -> bool {
4055
0
        self.java_string_check_utf8.is_some()
4056
0
    }
4057
4058
    // Param is passed by value, moved
4059
0
    pub fn set_java_string_check_utf8(&mut self, v: bool) {
4060
0
        self.java_string_check_utf8 = ::std::option::Option::Some(v);
4061
0
    }
4062
4063
    // optional .google.protobuf.FileOptions.OptimizeMode optimize_for = 9;
4064
4065
0
    pub fn optimize_for(&self) -> file_options::OptimizeMode {
4066
0
        match self.optimize_for {
4067
0
            Some(e) => e.enum_value_or(file_options::OptimizeMode::SPEED),
4068
0
            None => file_options::OptimizeMode::SPEED,
4069
        }
4070
0
    }
4071
4072
0
    pub fn clear_optimize_for(&mut self) {
4073
0
        self.optimize_for = ::std::option::Option::None;
4074
0
    }
4075
4076
0
    pub fn has_optimize_for(&self) -> bool {
4077
0
        self.optimize_for.is_some()
4078
0
    }
4079
4080
    // Param is passed by value, moved
4081
0
    pub fn set_optimize_for(&mut self, v: file_options::OptimizeMode) {
4082
0
        self.optimize_for = ::std::option::Option::Some(crate::EnumOrUnknown::new(v));
4083
0
    }
4084
4085
    // optional string go_package = 11;
4086
4087
0
    pub fn go_package(&self) -> &str {
4088
0
        match self.go_package.as_ref() {
4089
0
            Some(v) => v,
4090
0
            None => "",
4091
        }
4092
0
    }
4093
4094
0
    pub fn clear_go_package(&mut self) {
4095
0
        self.go_package = ::std::option::Option::None;
4096
0
    }
4097
4098
0
    pub fn has_go_package(&self) -> bool {
4099
0
        self.go_package.is_some()
4100
0
    }
4101
4102
    // Param is passed by value, moved
4103
0
    pub fn set_go_package(&mut self, v: ::std::string::String) {
4104
0
        self.go_package = ::std::option::Option::Some(v);
4105
0
    }
4106
4107
    // Mutable pointer to the field.
4108
    // If field is not initialized, it is initialized with default value first.
4109
0
    pub fn mut_go_package(&mut self) -> &mut ::std::string::String {
4110
0
        if self.go_package.is_none() {
4111
0
            self.go_package = ::std::option::Option::Some(::std::string::String::new());
4112
0
        }
4113
0
        self.go_package.as_mut().unwrap()
4114
0
    }
4115
4116
    // Take field
4117
0
    pub fn take_go_package(&mut self) -> ::std::string::String {
4118
0
        self.go_package.take().unwrap_or_else(|| ::std::string::String::new())
4119
0
    }
4120
4121
    // optional bool cc_generic_services = 16;
4122
4123
0
    pub fn cc_generic_services(&self) -> bool {
4124
0
        self.cc_generic_services.unwrap_or(false)
4125
0
    }
4126
4127
0
    pub fn clear_cc_generic_services(&mut self) {
4128
0
        self.cc_generic_services = ::std::option::Option::None;
4129
0
    }
4130
4131
0
    pub fn has_cc_generic_services(&self) -> bool {
4132
0
        self.cc_generic_services.is_some()
4133
0
    }
4134
4135
    // Param is passed by value, moved
4136
0
    pub fn set_cc_generic_services(&mut self, v: bool) {
4137
0
        self.cc_generic_services = ::std::option::Option::Some(v);
4138
0
    }
4139
4140
    // optional bool java_generic_services = 17;
4141
4142
0
    pub fn java_generic_services(&self) -> bool {
4143
0
        self.java_generic_services.unwrap_or(false)
4144
0
    }
4145
4146
0
    pub fn clear_java_generic_services(&mut self) {
4147
0
        self.java_generic_services = ::std::option::Option::None;
4148
0
    }
4149
4150
0
    pub fn has_java_generic_services(&self) -> bool {
4151
0
        self.java_generic_services.is_some()
4152
0
    }
4153
4154
    // Param is passed by value, moved
4155
0
    pub fn set_java_generic_services(&mut self, v: bool) {
4156
0
        self.java_generic_services = ::std::option::Option::Some(v);
4157
0
    }
4158
4159
    // optional bool py_generic_services = 18;
4160
4161
0
    pub fn py_generic_services(&self) -> bool {
4162
0
        self.py_generic_services.unwrap_or(false)
4163
0
    }
4164
4165
0
    pub fn clear_py_generic_services(&mut self) {
4166
0
        self.py_generic_services = ::std::option::Option::None;
4167
0
    }
4168
4169
0
    pub fn has_py_generic_services(&self) -> bool {
4170
0
        self.py_generic_services.is_some()
4171
0
    }
4172
4173
    // Param is passed by value, moved
4174
0
    pub fn set_py_generic_services(&mut self, v: bool) {
4175
0
        self.py_generic_services = ::std::option::Option::Some(v);
4176
0
    }
4177
4178
    // optional bool php_generic_services = 42;
4179
4180
0
    pub fn php_generic_services(&self) -> bool {
4181
0
        self.php_generic_services.unwrap_or(false)
4182
0
    }
4183
4184
0
    pub fn clear_php_generic_services(&mut self) {
4185
0
        self.php_generic_services = ::std::option::Option::None;
4186
0
    }
4187
4188
0
    pub fn has_php_generic_services(&self) -> bool {
4189
0
        self.php_generic_services.is_some()
4190
0
    }
4191
4192
    // Param is passed by value, moved
4193
0
    pub fn set_php_generic_services(&mut self, v: bool) {
4194
0
        self.php_generic_services = ::std::option::Option::Some(v);
4195
0
    }
4196
4197
    // optional bool deprecated = 23;
4198
4199
0
    pub fn deprecated(&self) -> bool {
4200
0
        self.deprecated.unwrap_or(false)
4201
0
    }
4202
4203
0
    pub fn clear_deprecated(&mut self) {
4204
0
        self.deprecated = ::std::option::Option::None;
4205
0
    }
4206
4207
0
    pub fn has_deprecated(&self) -> bool {
4208
0
        self.deprecated.is_some()
4209
0
    }
4210
4211
    // Param is passed by value, moved
4212
0
    pub fn set_deprecated(&mut self, v: bool) {
4213
0
        self.deprecated = ::std::option::Option::Some(v);
4214
0
    }
4215
4216
    // optional bool cc_enable_arenas = 31;
4217
4218
0
    pub fn cc_enable_arenas(&self) -> bool {
4219
0
        self.cc_enable_arenas.unwrap_or(true)
4220
0
    }
4221
4222
0
    pub fn clear_cc_enable_arenas(&mut self) {
4223
0
        self.cc_enable_arenas = ::std::option::Option::None;
4224
0
    }
4225
4226
0
    pub fn has_cc_enable_arenas(&self) -> bool {
4227
0
        self.cc_enable_arenas.is_some()
4228
0
    }
4229
4230
    // Param is passed by value, moved
4231
0
    pub fn set_cc_enable_arenas(&mut self, v: bool) {
4232
0
        self.cc_enable_arenas = ::std::option::Option::Some(v);
4233
0
    }
4234
4235
    // optional string objc_class_prefix = 36;
4236
4237
0
    pub fn objc_class_prefix(&self) -> &str {
4238
0
        match self.objc_class_prefix.as_ref() {
4239
0
            Some(v) => v,
4240
0
            None => "",
4241
        }
4242
0
    }
4243
4244
0
    pub fn clear_objc_class_prefix(&mut self) {
4245
0
        self.objc_class_prefix = ::std::option::Option::None;
4246
0
    }
4247
4248
0
    pub fn has_objc_class_prefix(&self) -> bool {
4249
0
        self.objc_class_prefix.is_some()
4250
0
    }
4251
4252
    // Param is passed by value, moved
4253
0
    pub fn set_objc_class_prefix(&mut self, v: ::std::string::String) {
4254
0
        self.objc_class_prefix = ::std::option::Option::Some(v);
4255
0
    }
4256
4257
    // Mutable pointer to the field.
4258
    // If field is not initialized, it is initialized with default value first.
4259
0
    pub fn mut_objc_class_prefix(&mut self) -> &mut ::std::string::String {
4260
0
        if self.objc_class_prefix.is_none() {
4261
0
            self.objc_class_prefix = ::std::option::Option::Some(::std::string::String::new());
4262
0
        }
4263
0
        self.objc_class_prefix.as_mut().unwrap()
4264
0
    }
4265
4266
    // Take field
4267
0
    pub fn take_objc_class_prefix(&mut self) -> ::std::string::String {
4268
0
        self.objc_class_prefix.take().unwrap_or_else(|| ::std::string::String::new())
4269
0
    }
4270
4271
    // optional string csharp_namespace = 37;
4272
4273
0
    pub fn csharp_namespace(&self) -> &str {
4274
0
        match self.csharp_namespace.as_ref() {
4275
0
            Some(v) => v,
4276
0
            None => "",
4277
        }
4278
0
    }
4279
4280
0
    pub fn clear_csharp_namespace(&mut self) {
4281
0
        self.csharp_namespace = ::std::option::Option::None;
4282
0
    }
4283
4284
0
    pub fn has_csharp_namespace(&self) -> bool {
4285
0
        self.csharp_namespace.is_some()
4286
0
    }
4287
4288
    // Param is passed by value, moved
4289
0
    pub fn set_csharp_namespace(&mut self, v: ::std::string::String) {
4290
0
        self.csharp_namespace = ::std::option::Option::Some(v);
4291
0
    }
4292
4293
    // Mutable pointer to the field.
4294
    // If field is not initialized, it is initialized with default value first.
4295
0
    pub fn mut_csharp_namespace(&mut self) -> &mut ::std::string::String {
4296
0
        if self.csharp_namespace.is_none() {
4297
0
            self.csharp_namespace = ::std::option::Option::Some(::std::string::String::new());
4298
0
        }
4299
0
        self.csharp_namespace.as_mut().unwrap()
4300
0
    }
4301
4302
    // Take field
4303
0
    pub fn take_csharp_namespace(&mut self) -> ::std::string::String {
4304
0
        self.csharp_namespace.take().unwrap_or_else(|| ::std::string::String::new())
4305
0
    }
4306
4307
    // optional string swift_prefix = 39;
4308
4309
0
    pub fn swift_prefix(&self) -> &str {
4310
0
        match self.swift_prefix.as_ref() {
4311
0
            Some(v) => v,
4312
0
            None => "",
4313
        }
4314
0
    }
4315
4316
0
    pub fn clear_swift_prefix(&mut self) {
4317
0
        self.swift_prefix = ::std::option::Option::None;
4318
0
    }
4319
4320
0
    pub fn has_swift_prefix(&self) -> bool {
4321
0
        self.swift_prefix.is_some()
4322
0
    }
4323
4324
    // Param is passed by value, moved
4325
0
    pub fn set_swift_prefix(&mut self, v: ::std::string::String) {
4326
0
        self.swift_prefix = ::std::option::Option::Some(v);
4327
0
    }
4328
4329
    // Mutable pointer to the field.
4330
    // If field is not initialized, it is initialized with default value first.
4331
0
    pub fn mut_swift_prefix(&mut self) -> &mut ::std::string::String {
4332
0
        if self.swift_prefix.is_none() {
4333
0
            self.swift_prefix = ::std::option::Option::Some(::std::string::String::new());
4334
0
        }
4335
0
        self.swift_prefix.as_mut().unwrap()
4336
0
    }
4337
4338
    // Take field
4339
0
    pub fn take_swift_prefix(&mut self) -> ::std::string::String {
4340
0
        self.swift_prefix.take().unwrap_or_else(|| ::std::string::String::new())
4341
0
    }
4342
4343
    // optional string php_class_prefix = 40;
4344
4345
0
    pub fn php_class_prefix(&self) -> &str {
4346
0
        match self.php_class_prefix.as_ref() {
4347
0
            Some(v) => v,
4348
0
            None => "",
4349
        }
4350
0
    }
4351
4352
0
    pub fn clear_php_class_prefix(&mut self) {
4353
0
        self.php_class_prefix = ::std::option::Option::None;
4354
0
    }
4355
4356
0
    pub fn has_php_class_prefix(&self) -> bool {
4357
0
        self.php_class_prefix.is_some()
4358
0
    }
4359
4360
    // Param is passed by value, moved
4361
0
    pub fn set_php_class_prefix(&mut self, v: ::std::string::String) {
4362
0
        self.php_class_prefix = ::std::option::Option::Some(v);
4363
0
    }
4364
4365
    // Mutable pointer to the field.
4366
    // If field is not initialized, it is initialized with default value first.
4367
0
    pub fn mut_php_class_prefix(&mut self) -> &mut ::std::string::String {
4368
0
        if self.php_class_prefix.is_none() {
4369
0
            self.php_class_prefix = ::std::option::Option::Some(::std::string::String::new());
4370
0
        }
4371
0
        self.php_class_prefix.as_mut().unwrap()
4372
0
    }
4373
4374
    // Take field
4375
0
    pub fn take_php_class_prefix(&mut self) -> ::std::string::String {
4376
0
        self.php_class_prefix.take().unwrap_or_else(|| ::std::string::String::new())
4377
0
    }
4378
4379
    // optional string php_namespace = 41;
4380
4381
0
    pub fn php_namespace(&self) -> &str {
4382
0
        match self.php_namespace.as_ref() {
4383
0
            Some(v) => v,
4384
0
            None => "",
4385
        }
4386
0
    }
4387
4388
0
    pub fn clear_php_namespace(&mut self) {
4389
0
        self.php_namespace = ::std::option::Option::None;
4390
0
    }
4391
4392
0
    pub fn has_php_namespace(&self) -> bool {
4393
0
        self.php_namespace.is_some()
4394
0
    }
4395
4396
    // Param is passed by value, moved
4397
0
    pub fn set_php_namespace(&mut self, v: ::std::string::String) {
4398
0
        self.php_namespace = ::std::option::Option::Some(v);
4399
0
    }
4400
4401
    // Mutable pointer to the field.
4402
    // If field is not initialized, it is initialized with default value first.
4403
0
    pub fn mut_php_namespace(&mut self) -> &mut ::std::string::String {
4404
0
        if self.php_namespace.is_none() {
4405
0
            self.php_namespace = ::std::option::Option::Some(::std::string::String::new());
4406
0
        }
4407
0
        self.php_namespace.as_mut().unwrap()
4408
0
    }
4409
4410
    // Take field
4411
0
    pub fn take_php_namespace(&mut self) -> ::std::string::String {
4412
0
        self.php_namespace.take().unwrap_or_else(|| ::std::string::String::new())
4413
0
    }
4414
4415
    // optional string php_metadata_namespace = 44;
4416
4417
0
    pub fn php_metadata_namespace(&self) -> &str {
4418
0
        match self.php_metadata_namespace.as_ref() {
4419
0
            Some(v) => v,
4420
0
            None => "",
4421
        }
4422
0
    }
4423
4424
0
    pub fn clear_php_metadata_namespace(&mut self) {
4425
0
        self.php_metadata_namespace = ::std::option::Option::None;
4426
0
    }
4427
4428
0
    pub fn has_php_metadata_namespace(&self) -> bool {
4429
0
        self.php_metadata_namespace.is_some()
4430
0
    }
4431
4432
    // Param is passed by value, moved
4433
0
    pub fn set_php_metadata_namespace(&mut self, v: ::std::string::String) {
4434
0
        self.php_metadata_namespace = ::std::option::Option::Some(v);
4435
0
    }
4436
4437
    // Mutable pointer to the field.
4438
    // If field is not initialized, it is initialized with default value first.
4439
0
    pub fn mut_php_metadata_namespace(&mut self) -> &mut ::std::string::String {
4440
0
        if self.php_metadata_namespace.is_none() {
4441
0
            self.php_metadata_namespace = ::std::option::Option::Some(::std::string::String::new());
4442
0
        }
4443
0
        self.php_metadata_namespace.as_mut().unwrap()
4444
0
    }
4445
4446
    // Take field
4447
0
    pub fn take_php_metadata_namespace(&mut self) -> ::std::string::String {
4448
0
        self.php_metadata_namespace.take().unwrap_or_else(|| ::std::string::String::new())
4449
0
    }
4450
4451
    // optional string ruby_package = 45;
4452
4453
0
    pub fn ruby_package(&self) -> &str {
4454
0
        match self.ruby_package.as_ref() {
4455
0
            Some(v) => v,
4456
0
            None => "",
4457
        }
4458
0
    }
4459
4460
0
    pub fn clear_ruby_package(&mut self) {
4461
0
        self.ruby_package = ::std::option::Option::None;
4462
0
    }
4463
4464
0
    pub fn has_ruby_package(&self) -> bool {
4465
0
        self.ruby_package.is_some()
4466
0
    }
4467
4468
    // Param is passed by value, moved
4469
0
    pub fn set_ruby_package(&mut self, v: ::std::string::String) {
4470
0
        self.ruby_package = ::std::option::Option::Some(v);
4471
0
    }
4472
4473
    // Mutable pointer to the field.
4474
    // If field is not initialized, it is initialized with default value first.
4475
0
    pub fn mut_ruby_package(&mut self) -> &mut ::std::string::String {
4476
0
        if self.ruby_package.is_none() {
4477
0
            self.ruby_package = ::std::option::Option::Some(::std::string::String::new());
4478
0
        }
4479
0
        self.ruby_package.as_mut().unwrap()
4480
0
    }
4481
4482
    // Take field
4483
0
    pub fn take_ruby_package(&mut self) -> ::std::string::String {
4484
0
        self.ruby_package.take().unwrap_or_else(|| ::std::string::String::new())
4485
0
    }
4486
4487
0
    fn generated_message_descriptor_data() -> crate::reflect::GeneratedMessageDescriptorData {
4488
0
        let mut fields = ::std::vec::Vec::with_capacity(21);
4489
0
        let mut oneofs = ::std::vec::Vec::with_capacity(0);
4490
0
        fields.push(crate::reflect::rt::v2::make_option_accessor::<_, _>(
4491
            "java_package",
4492
0
            |m: &FileOptions| { &m.java_package },
4493
0
            |m: &mut FileOptions| { &mut m.java_package },
4494
        ));
4495
0
        fields.push(crate::reflect::rt::v2::make_option_accessor::<_, _>(
4496
            "java_outer_classname",
4497
0
            |m: &FileOptions| { &m.java_outer_classname },
4498
0
            |m: &mut FileOptions| { &mut m.java_outer_classname },
4499
        ));
4500
0
        fields.push(crate::reflect::rt::v2::make_option_accessor::<_, _>(
4501
            "java_multiple_files",
4502
0
            |m: &FileOptions| { &m.java_multiple_files },
4503
0
            |m: &mut FileOptions| { &mut m.java_multiple_files },
4504
        ));
4505
0
        fields.push(crate::reflect::rt::v2::make_option_accessor::<_, _>(
4506
            "java_generate_equals_and_hash",
4507
0
            |m: &FileOptions| { &m.java_generate_equals_and_hash },
4508
0
            |m: &mut FileOptions| { &mut m.java_generate_equals_and_hash },
4509
        ));
4510
0
        fields.push(crate::reflect::rt::v2::make_option_accessor::<_, _>(
4511
            "java_string_check_utf8",
4512
0
            |m: &FileOptions| { &m.java_string_check_utf8 },
4513
0
            |m: &mut FileOptions| { &mut m.java_string_check_utf8 },
4514
        ));
4515
0
        fields.push(crate::reflect::rt::v2::make_option_accessor::<_, _>(
4516
            "optimize_for",
4517
0
            |m: &FileOptions| { &m.optimize_for },
4518
0
            |m: &mut FileOptions| { &mut m.optimize_for },
4519
        ));
4520
0
        fields.push(crate::reflect::rt::v2::make_option_accessor::<_, _>(
4521
            "go_package",
4522
0
            |m: &FileOptions| { &m.go_package },
4523
0
            |m: &mut FileOptions| { &mut m.go_package },
4524
        ));
4525
0
        fields.push(crate::reflect::rt::v2::make_option_accessor::<_, _>(
4526
            "cc_generic_services",
4527
0
            |m: &FileOptions| { &m.cc_generic_services },
4528
0
            |m: &mut FileOptions| { &mut m.cc_generic_services },
4529
        ));
4530
0
        fields.push(crate::reflect::rt::v2::make_option_accessor::<_, _>(
4531
            "java_generic_services",
4532
0
            |m: &FileOptions| { &m.java_generic_services },
4533
0
            |m: &mut FileOptions| { &mut m.java_generic_services },
4534
        ));
4535
0
        fields.push(crate::reflect::rt::v2::make_option_accessor::<_, _>(
4536
            "py_generic_services",
4537
0
            |m: &FileOptions| { &m.py_generic_services },
4538
0
            |m: &mut FileOptions| { &mut m.py_generic_services },
4539
        ));
4540
0
        fields.push(crate::reflect::rt::v2::make_option_accessor::<_, _>(
4541
            "php_generic_services",
4542
0
            |m: &FileOptions| { &m.php_generic_services },
4543
0
            |m: &mut FileOptions| { &mut m.php_generic_services },
4544
        ));
4545
0
        fields.push(crate::reflect::rt::v2::make_option_accessor::<_, _>(
4546
            "deprecated",
4547
0
            |m: &FileOptions| { &m.deprecated },
4548
0
            |m: &mut FileOptions| { &mut m.deprecated },
4549
        ));
4550
0
        fields.push(crate::reflect::rt::v2::make_option_accessor::<_, _>(
4551
            "cc_enable_arenas",
4552
0
            |m: &FileOptions| { &m.cc_enable_arenas },
4553
0
            |m: &mut FileOptions| { &mut m.cc_enable_arenas },
4554
        ));
4555
0
        fields.push(crate::reflect::rt::v2::make_option_accessor::<_, _>(
4556
            "objc_class_prefix",
4557
0
            |m: &FileOptions| { &m.objc_class_prefix },
4558
0
            |m: &mut FileOptions| { &mut m.objc_class_prefix },
4559
        ));
4560
0
        fields.push(crate::reflect::rt::v2::make_option_accessor::<_, _>(
4561
            "csharp_namespace",
4562
0
            |m: &FileOptions| { &m.csharp_namespace },
4563
0
            |m: &mut FileOptions| { &mut m.csharp_namespace },
4564
        ));
4565
0
        fields.push(crate::reflect::rt::v2::make_option_accessor::<_, _>(
4566
            "swift_prefix",
4567
0
            |m: &FileOptions| { &m.swift_prefix },
4568
0
            |m: &mut FileOptions| { &mut m.swift_prefix },
4569
        ));
4570
0
        fields.push(crate::reflect::rt::v2::make_option_accessor::<_, _>(
4571
            "php_class_prefix",
4572
0
            |m: &FileOptions| { &m.php_class_prefix },
4573
0
            |m: &mut FileOptions| { &mut m.php_class_prefix },
4574
        ));
4575
0
        fields.push(crate::reflect::rt::v2::make_option_accessor::<_, _>(
4576
            "php_namespace",
4577
0
            |m: &FileOptions| { &m.php_namespace },
4578
0
            |m: &mut FileOptions| { &mut m.php_namespace },
4579
        ));
4580
0
        fields.push(crate::reflect::rt::v2::make_option_accessor::<_, _>(
4581
            "php_metadata_namespace",
4582
0
            |m: &FileOptions| { &m.php_metadata_namespace },
4583
0
            |m: &mut FileOptions| { &mut m.php_metadata_namespace },
4584
        ));
4585
0
        fields.push(crate::reflect::rt::v2::make_option_accessor::<_, _>(
4586
            "ruby_package",
4587
0
            |m: &FileOptions| { &m.ruby_package },
4588
0
            |m: &mut FileOptions| { &mut m.ruby_package },
4589
        ));
4590
0
        fields.push(crate::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
4591
            "uninterpreted_option",
4592
0
            |m: &FileOptions| { &m.uninterpreted_option },
4593
0
            |m: &mut FileOptions| { &mut m.uninterpreted_option },
4594
        ));
4595
0
        crate::reflect::GeneratedMessageDescriptorData::new_2::<FileOptions>(
4596
            "FileOptions",
4597
0
            fields,
4598
0
            oneofs,
4599
        )
4600
0
    }
4601
}
4602
4603
impl crate::Message for FileOptions {
4604
    const NAME: &'static str = "FileOptions";
4605
4606
0
    fn is_initialized(&self) -> bool {
4607
0
        for v in &self.uninterpreted_option {
4608
0
            if !v.is_initialized() {
4609
0
                return false;
4610
0
            }
4611
        };
4612
0
        true
4613
0
    }
4614
4615
0
    fn merge_from(&mut self, is: &mut crate::CodedInputStream<'_>) -> crate::Result<()> {
4616
0
        while let Some(tag) = is.read_raw_tag_or_eof()? {
4617
0
            match tag {
4618
                10 => {
4619
0
                    self.java_package = ::std::option::Option::Some(is.read_string()?);
4620
                },
4621
                66 => {
4622
0
                    self.java_outer_classname = ::std::option::Option::Some(is.read_string()?);
4623
                },
4624
                80 => {
4625
0
                    self.java_multiple_files = ::std::option::Option::Some(is.read_bool()?);
4626
                },
4627
                160 => {
4628
0
                    self.java_generate_equals_and_hash = ::std::option::Option::Some(is.read_bool()?);
4629
                },
4630
                216 => {
4631
0
                    self.java_string_check_utf8 = ::std::option::Option::Some(is.read_bool()?);
4632
                },
4633
                72 => {
4634
0
                    self.optimize_for = ::std::option::Option::Some(is.read_enum_or_unknown()?);
4635
                },
4636
                90 => {
4637
0
                    self.go_package = ::std::option::Option::Some(is.read_string()?);
4638
                },
4639
                128 => {
4640
0
                    self.cc_generic_services = ::std::option::Option::Some(is.read_bool()?);
4641
                },
4642
                136 => {
4643
0
                    self.java_generic_services = ::std::option::Option::Some(is.read_bool()?);
4644
                },
4645
                144 => {
4646
0
                    self.py_generic_services = ::std::option::Option::Some(is.read_bool()?);
4647
                },
4648
                336 => {
4649
0
                    self.php_generic_services = ::std::option::Option::Some(is.read_bool()?);
4650
                },
4651
                184 => {
4652
0
                    self.deprecated = ::std::option::Option::Some(is.read_bool()?);
4653
                },
4654
                248 => {
4655
0
                    self.cc_enable_arenas = ::std::option::Option::Some(is.read_bool()?);
4656
                },
4657
                290 => {
4658
0
                    self.objc_class_prefix = ::std::option::Option::Some(is.read_string()?);
4659
                },
4660
                298 => {
4661
0
                    self.csharp_namespace = ::std::option::Option::Some(is.read_string()?);
4662
                },
4663
                314 => {
4664
0
                    self.swift_prefix = ::std::option::Option::Some(is.read_string()?);
4665
                },
4666
                322 => {
4667
0
                    self.php_class_prefix = ::std::option::Option::Some(is.read_string()?);
4668
                },
4669
                330 => {
4670
0
                    self.php_namespace = ::std::option::Option::Some(is.read_string()?);
4671
                },
4672
                354 => {
4673
0
                    self.php_metadata_namespace = ::std::option::Option::Some(is.read_string()?);
4674
                },
4675
                362 => {
4676
0
                    self.ruby_package = ::std::option::Option::Some(is.read_string()?);
4677
                },
4678
                7994 => {
4679
0
                    self.uninterpreted_option.push(is.read_message()?);
4680
                },
4681
0
                tag => {
4682
0
                    crate::rt::read_unknown_or_skip_group(tag, is, self.special_fields.mut_unknown_fields())?;
4683
                },
4684
            };
4685
        }
4686
0
        ::std::result::Result::Ok(())
4687
0
    }
4688
4689
    // Compute sizes of nested messages
4690
    #[allow(unused_variables)]
4691
0
    fn compute_size(&self) -> u64 {
4692
0
        let mut my_size = 0;
4693
0
        if let Some(v) = self.java_package.as_ref() {
4694
0
            my_size += crate::rt::string_size(1, &v);
4695
0
        }
4696
0
        if let Some(v) = self.java_outer_classname.as_ref() {
4697
0
            my_size += crate::rt::string_size(8, &v);
4698
0
        }
4699
0
        if let Some(v) = self.java_multiple_files {
4700
0
            my_size += 1 + 1;
4701
0
        }
4702
0
        if let Some(v) = self.java_generate_equals_and_hash {
4703
0
            my_size += 2 + 1;
4704
0
        }
4705
0
        if let Some(v) = self.java_string_check_utf8 {
4706
0
            my_size += 2 + 1;
4707
0
        }
4708
0
        if let Some(v) = self.optimize_for {
4709
0
            my_size += crate::rt::int32_size(9, v.value());
4710
0
        }
4711
0
        if let Some(v) = self.go_package.as_ref() {
4712
0
            my_size += crate::rt::string_size(11, &v);
4713
0
        }
4714
0
        if let Some(v) = self.cc_generic_services {
4715
0
            my_size += 2 + 1;
4716
0
        }
4717
0
        if let Some(v) = self.java_generic_services {
4718
0
            my_size += 2 + 1;
4719
0
        }
4720
0
        if let Some(v) = self.py_generic_services {
4721
0
            my_size += 2 + 1;
4722
0
        }
4723
0
        if let Some(v) = self.php_generic_services {
4724
0
            my_size += 2 + 1;
4725
0
        }
4726
0
        if let Some(v) = self.deprecated {
4727
0
            my_size += 2 + 1;
4728
0
        }
4729
0
        if let Some(v) = self.cc_enable_arenas {
4730
0
            my_size += 2 + 1;
4731
0
        }
4732
0
        if let Some(v) = self.objc_class_prefix.as_ref() {
4733
0
            my_size += crate::rt::string_size(36, &v);
4734
0
        }
4735
0
        if let Some(v) = self.csharp_namespace.as_ref() {
4736
0
            my_size += crate::rt::string_size(37, &v);
4737
0
        }
4738
0
        if let Some(v) = self.swift_prefix.as_ref() {
4739
0
            my_size += crate::rt::string_size(39, &v);
4740
0
        }
4741
0
        if let Some(v) = self.php_class_prefix.as_ref() {
4742
0
            my_size += crate::rt::string_size(40, &v);
4743
0
        }
4744
0
        if let Some(v) = self.php_namespace.as_ref() {
4745
0
            my_size += crate::rt::string_size(41, &v);
4746
0
        }
4747
0
        if let Some(v) = self.php_metadata_namespace.as_ref() {
4748
0
            my_size += crate::rt::string_size(44, &v);
4749
0
        }
4750
0
        if let Some(v) = self.ruby_package.as_ref() {
4751
0
            my_size += crate::rt::string_size(45, &v);
4752
0
        }
4753
0
        for value in &self.uninterpreted_option {
4754
0
            let len = value.compute_size();
4755
0
            my_size += 2 + crate::rt::compute_raw_varint64_size(len) + len;
4756
0
        };
4757
0
        my_size += crate::rt::unknown_fields_size(self.special_fields.unknown_fields());
4758
0
        self.special_fields.cached_size().set(my_size as u32);
4759
0
        my_size
4760
0
    }
4761
4762
0
    fn write_to_with_cached_sizes(&self, os: &mut crate::CodedOutputStream<'_>) -> crate::Result<()> {
4763
0
        if let Some(v) = self.java_package.as_ref() {
4764
0
            os.write_string(1, v)?;
4765
0
        }
4766
0
        if let Some(v) = self.java_outer_classname.as_ref() {
4767
0
            os.write_string(8, v)?;
4768
0
        }
4769
0
        if let Some(v) = self.java_multiple_files {
4770
0
            os.write_bool(10, v)?;
4771
0
        }
4772
0
        if let Some(v) = self.java_generate_equals_and_hash {
4773
0
            os.write_bool(20, v)?;
4774
0
        }
4775
0
        if let Some(v) = self.java_string_check_utf8 {
4776
0
            os.write_bool(27, v)?;
4777
0
        }
4778
0
        if let Some(v) = self.optimize_for {
4779
0
            os.write_enum(9, crate::EnumOrUnknown::value(&v))?;
4780
0
        }
4781
0
        if let Some(v) = self.go_package.as_ref() {
4782
0
            os.write_string(11, v)?;
4783
0
        }
4784
0
        if let Some(v) = self.cc_generic_services {
4785
0
            os.write_bool(16, v)?;
4786
0
        }
4787
0
        if let Some(v) = self.java_generic_services {
4788
0
            os.write_bool(17, v)?;
4789
0
        }
4790
0
        if let Some(v) = self.py_generic_services {
4791
0
            os.write_bool(18, v)?;
4792
0
        }
4793
0
        if let Some(v) = self.php_generic_services {
4794
0
            os.write_bool(42, v)?;
4795
0
        }
4796
0
        if let Some(v) = self.deprecated {
4797
0
            os.write_bool(23, v)?;
4798
0
        }
4799
0
        if let Some(v) = self.cc_enable_arenas {
4800
0
            os.write_bool(31, v)?;
4801
0
        }
4802
0
        if let Some(v) = self.objc_class_prefix.as_ref() {
4803
0
            os.write_string(36, v)?;
4804
0
        }
4805
0
        if let Some(v) = self.csharp_namespace.as_ref() {
4806
0
            os.write_string(37, v)?;
4807
0
        }
4808
0
        if let Some(v) = self.swift_prefix.as_ref() {
4809
0
            os.write_string(39, v)?;
4810
0
        }
4811
0
        if let Some(v) = self.php_class_prefix.as_ref() {
4812
0
            os.write_string(40, v)?;
4813
0
        }
4814
0
        if let Some(v) = self.php_namespace.as_ref() {
4815
0
            os.write_string(41, v)?;
4816
0
        }
4817
0
        if let Some(v) = self.php_metadata_namespace.as_ref() {
4818
0
            os.write_string(44, v)?;
4819
0
        }
4820
0
        if let Some(v) = self.ruby_package.as_ref() {
4821
0
            os.write_string(45, v)?;
4822
0
        }
4823
0
        for v in &self.uninterpreted_option {
4824
0
            crate::rt::write_message_field_with_cached_size(999, v, os)?;
4825
        };
4826
0
        os.write_unknown_fields(self.special_fields.unknown_fields())?;
4827
0
        ::std::result::Result::Ok(())
4828
0
    }
4829
4830
0
    fn special_fields(&self) -> &crate::SpecialFields {
4831
0
        &self.special_fields
4832
0
    }
4833
4834
0
    fn mut_special_fields(&mut self) -> &mut crate::SpecialFields {
4835
0
        &mut self.special_fields
4836
0
    }
4837
4838
0
    fn new() -> FileOptions {
4839
0
        FileOptions::new()
4840
0
    }
4841
4842
0
    fn clear(&mut self) {
4843
0
        self.java_package = ::std::option::Option::None;
4844
0
        self.java_outer_classname = ::std::option::Option::None;
4845
0
        self.java_multiple_files = ::std::option::Option::None;
4846
0
        self.java_generate_equals_and_hash = ::std::option::Option::None;
4847
0
        self.java_string_check_utf8 = ::std::option::Option::None;
4848
0
        self.optimize_for = ::std::option::Option::None;
4849
0
        self.go_package = ::std::option::Option::None;
4850
0
        self.cc_generic_services = ::std::option::Option::None;
4851
0
        self.java_generic_services = ::std::option::Option::None;
4852
0
        self.py_generic_services = ::std::option::Option::None;
4853
0
        self.php_generic_services = ::std::option::Option::None;
4854
0
        self.deprecated = ::std::option::Option::None;
4855
0
        self.cc_enable_arenas = ::std::option::Option::None;
4856
0
        self.objc_class_prefix = ::std::option::Option::None;
4857
0
        self.csharp_namespace = ::std::option::Option::None;
4858
0
        self.swift_prefix = ::std::option::Option::None;
4859
0
        self.php_class_prefix = ::std::option::Option::None;
4860
0
        self.php_namespace = ::std::option::Option::None;
4861
0
        self.php_metadata_namespace = ::std::option::Option::None;
4862
0
        self.ruby_package = ::std::option::Option::None;
4863
0
        self.uninterpreted_option.clear();
4864
0
        self.special_fields.clear();
4865
0
    }
4866
4867
0
    fn default_instance() -> &'static FileOptions {
4868
        static instance: FileOptions = FileOptions {
4869
            java_package: ::std::option::Option::None,
4870
            java_outer_classname: ::std::option::Option::None,
4871
            java_multiple_files: ::std::option::Option::None,
4872
            java_generate_equals_and_hash: ::std::option::Option::None,
4873
            java_string_check_utf8: ::std::option::Option::None,
4874
            optimize_for: ::std::option::Option::None,
4875
            go_package: ::std::option::Option::None,
4876
            cc_generic_services: ::std::option::Option::None,
4877
            java_generic_services: ::std::option::Option::None,
4878
            py_generic_services: ::std::option::Option::None,
4879
            php_generic_services: ::std::option::Option::None,
4880
            deprecated: ::std::option::Option::None,
4881
            cc_enable_arenas: ::std::option::Option::None,
4882
            objc_class_prefix: ::std::option::Option::None,
4883
            csharp_namespace: ::std::option::Option::None,
4884
            swift_prefix: ::std::option::Option::None,
4885
            php_class_prefix: ::std::option::Option::None,
4886
            php_namespace: ::std::option::Option::None,
4887
            php_metadata_namespace: ::std::option::Option::None,
4888
            ruby_package: ::std::option::Option::None,
4889
            uninterpreted_option: ::std::vec::Vec::new(),
4890
            special_fields: crate::SpecialFields::new(),
4891
        };
4892
0
        &instance
4893
0
    }
4894
}
4895
4896
impl crate::MessageFull for FileOptions {
4897
0
    fn descriptor() -> crate::reflect::MessageDescriptor {
4898
        static descriptor: crate::rt::Lazy<crate::reflect::MessageDescriptor> = crate::rt::Lazy::new();
4899
0
        descriptor.get(|| file_descriptor().message_by_package_relative_name("FileOptions").unwrap()).clone()
4900
0
    }
4901
}
4902
4903
impl ::std::fmt::Display for FileOptions {
4904
0
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
4905
0
        crate::text_format::fmt(self, f)
4906
0
    }
4907
}
4908
4909
impl crate::reflect::ProtobufValue for FileOptions {
4910
    type RuntimeType = crate::reflect::rt::RuntimeTypeMessage<Self>;
4911
}
4912
4913
/// Nested message and enums of message `FileOptions`
4914
pub mod file_options {
4915
    ///  Generated classes can be optimized for speed or code size.
4916
    #[derive(Clone,Copy,PartialEq,Eq,Debug,Hash)]
4917
    // @@protoc_insertion_point(enum:google.protobuf.FileOptions.OptimizeMode)
4918
    pub enum OptimizeMode {
4919
        // @@protoc_insertion_point(enum_value:google.protobuf.FileOptions.OptimizeMode.SPEED)
4920
        SPEED = 1,
4921
        // @@protoc_insertion_point(enum_value:google.protobuf.FileOptions.OptimizeMode.CODE_SIZE)
4922
        CODE_SIZE = 2,
4923
        // @@protoc_insertion_point(enum_value:google.protobuf.FileOptions.OptimizeMode.LITE_RUNTIME)
4924
        LITE_RUNTIME = 3,
4925
    }
4926
4927
    impl crate::Enum for OptimizeMode {
4928
        const NAME: &'static str = "OptimizeMode";
4929
4930
0
        fn value(&self) -> i32 {
4931
0
            *self as i32
4932
0
        }
4933
4934
0
        fn from_i32(value: i32) -> ::std::option::Option<OptimizeMode> {
4935
0
            match value {
4936
0
                1 => ::std::option::Option::Some(OptimizeMode::SPEED),
4937
0
                2 => ::std::option::Option::Some(OptimizeMode::CODE_SIZE),
4938
0
                3 => ::std::option::Option::Some(OptimizeMode::LITE_RUNTIME),
4939
0
                _ => ::std::option::Option::None
4940
            }
4941
0
        }
4942
4943
0
        fn from_str(str: &str) -> ::std::option::Option<OptimizeMode> {
4944
0
            match str {
4945
0
                "SPEED" => ::std::option::Option::Some(OptimizeMode::SPEED),
4946
0
                "CODE_SIZE" => ::std::option::Option::Some(OptimizeMode::CODE_SIZE),
4947
0
                "LITE_RUNTIME" => ::std::option::Option::Some(OptimizeMode::LITE_RUNTIME),
4948
0
                _ => ::std::option::Option::None
4949
            }
4950
0
        }
4951
4952
        const VALUES: &'static [OptimizeMode] = &[
4953
            OptimizeMode::SPEED,
4954
            OptimizeMode::CODE_SIZE,
4955
            OptimizeMode::LITE_RUNTIME,
4956
        ];
4957
    }
4958
4959
    impl crate::EnumFull for OptimizeMode {
4960
0
        fn enum_descriptor() -> crate::reflect::EnumDescriptor {
4961
            static descriptor: crate::rt::Lazy<crate::reflect::EnumDescriptor> = crate::rt::Lazy::new();
4962
0
            descriptor.get(|| super::file_descriptor().enum_by_package_relative_name("FileOptions.OptimizeMode").unwrap()).clone()
4963
0
        }
4964
4965
0
        fn descriptor(&self) -> crate::reflect::EnumValueDescriptor {
4966
0
            let index = match self {
4967
0
                OptimizeMode::SPEED => 0,
4968
0
                OptimizeMode::CODE_SIZE => 1,
4969
0
                OptimizeMode::LITE_RUNTIME => 2,
4970
            };
4971
0
            Self::enum_descriptor().value_by_index(index)
4972
0
        }
4973
    }
4974
4975
    // Note, `Default` is implemented although default value is not 0
4976
    impl ::std::default::Default for OptimizeMode {
4977
0
        fn default() -> Self {
4978
0
            OptimizeMode::SPEED
4979
0
        }
4980
    }
4981
4982
    impl OptimizeMode {
4983
0
        pub(in super) fn generated_enum_descriptor_data() -> crate::reflect::GeneratedEnumDescriptorData {
4984
0
            crate::reflect::GeneratedEnumDescriptorData::new::<OptimizeMode>("FileOptions.OptimizeMode")
4985
0
        }
4986
    }
4987
}
4988
4989
// @@protoc_insertion_point(message:google.protobuf.MessageOptions)
4990
#[derive(PartialEq,Clone,Default,Debug)]
4991
pub struct MessageOptions {
4992
    // message fields
4993
    // @@protoc_insertion_point(field:google.protobuf.MessageOptions.message_set_wire_format)
4994
    pub message_set_wire_format: ::std::option::Option<bool>,
4995
    ///  Disables the generation of the standard "descriptor()" accessor, which can
4996
    ///  conflict with a field of the same name.  This is meant to make migration
4997
    ///  from proto1 easier; new code should avoid fields named "descriptor".
4998
    // @@protoc_insertion_point(field:google.protobuf.MessageOptions.no_standard_descriptor_accessor)
4999
    pub no_standard_descriptor_accessor: ::std::option::Option<bool>,
5000
    ///  Is this message deprecated?
5001
    ///  Depending on the target platform, this can emit Deprecated annotations
5002
    ///  for the message, or it will be completely ignored; in the very least,
5003
    ///  this is a formalization for deprecating messages.
5004
    // @@protoc_insertion_point(field:google.protobuf.MessageOptions.deprecated)
5005
    pub deprecated: ::std::option::Option<bool>,
5006
    // @@protoc_insertion_point(field:google.protobuf.MessageOptions.map_entry)
5007
    pub map_entry: ::std::option::Option<bool>,
5008
    ///  The parser stores options it doesn't recognize here. See above.
5009
    // @@protoc_insertion_point(field:google.protobuf.MessageOptions.uninterpreted_option)
5010
    pub uninterpreted_option: ::std::vec::Vec<UninterpretedOption>,
5011
    // special fields
5012
    // @@protoc_insertion_point(special_field:google.protobuf.MessageOptions.special_fields)
5013
    pub special_fields: crate::SpecialFields,
5014
}
5015
5016
impl<'a> ::std::default::Default for &'a MessageOptions {
5017
0
    fn default() -> &'a MessageOptions {
5018
0
        <MessageOptions as crate::Message>::default_instance()
5019
0
    }
5020
}
5021
5022
impl MessageOptions {
5023
0
    pub fn new() -> MessageOptions {
5024
0
        ::std::default::Default::default()
5025
0
    }
5026
5027
    // optional bool message_set_wire_format = 1;
5028
5029
0
    pub fn message_set_wire_format(&self) -> bool {
5030
0
        self.message_set_wire_format.unwrap_or(false)
5031
0
    }
5032
5033
0
    pub fn clear_message_set_wire_format(&mut self) {
5034
0
        self.message_set_wire_format = ::std::option::Option::None;
5035
0
    }
5036
5037
0
    pub fn has_message_set_wire_format(&self) -> bool {
5038
0
        self.message_set_wire_format.is_some()
5039
0
    }
5040
5041
    // Param is passed by value, moved
5042
0
    pub fn set_message_set_wire_format(&mut self, v: bool) {
5043
0
        self.message_set_wire_format = ::std::option::Option::Some(v);
5044
0
    }
5045
5046
    // optional bool no_standard_descriptor_accessor = 2;
5047
5048
0
    pub fn no_standard_descriptor_accessor(&self) -> bool {
5049
0
        self.no_standard_descriptor_accessor.unwrap_or(false)
5050
0
    }
5051
5052
0
    pub fn clear_no_standard_descriptor_accessor(&mut self) {
5053
0
        self.no_standard_descriptor_accessor = ::std::option::Option::None;
5054
0
    }
5055
5056
0
    pub fn has_no_standard_descriptor_accessor(&self) -> bool {
5057
0
        self.no_standard_descriptor_accessor.is_some()
5058
0
    }
5059
5060
    // Param is passed by value, moved
5061
0
    pub fn set_no_standard_descriptor_accessor(&mut self, v: bool) {
5062
0
        self.no_standard_descriptor_accessor = ::std::option::Option::Some(v);
5063
0
    }
5064
5065
    // optional bool deprecated = 3;
5066
5067
0
    pub fn deprecated(&self) -> bool {
5068
0
        self.deprecated.unwrap_or(false)
5069
0
    }
5070
5071
0
    pub fn clear_deprecated(&mut self) {
5072
0
        self.deprecated = ::std::option::Option::None;
5073
0
    }
5074
5075
0
    pub fn has_deprecated(&self) -> bool {
5076
0
        self.deprecated.is_some()
5077
0
    }
5078
5079
    // Param is passed by value, moved
5080
0
    pub fn set_deprecated(&mut self, v: bool) {
5081
0
        self.deprecated = ::std::option::Option::Some(v);
5082
0
    }
5083
5084
    // optional bool map_entry = 7;
5085
5086
0
    pub fn map_entry(&self) -> bool {
5087
0
        self.map_entry.unwrap_or(false)
5088
0
    }
5089
5090
0
    pub fn clear_map_entry(&mut self) {
5091
0
        self.map_entry = ::std::option::Option::None;
5092
0
    }
5093
5094
0
    pub fn has_map_entry(&self) -> bool {
5095
0
        self.map_entry.is_some()
5096
0
    }
5097
5098
    // Param is passed by value, moved
5099
0
    pub fn set_map_entry(&mut self, v: bool) {
5100
0
        self.map_entry = ::std::option::Option::Some(v);
5101
0
    }
5102
5103
0
    fn generated_message_descriptor_data() -> crate::reflect::GeneratedMessageDescriptorData {
5104
0
        let mut fields = ::std::vec::Vec::with_capacity(5);
5105
0
        let mut oneofs = ::std::vec::Vec::with_capacity(0);
5106
0
        fields.push(crate::reflect::rt::v2::make_option_accessor::<_, _>(
5107
            "message_set_wire_format",
5108
0
            |m: &MessageOptions| { &m.message_set_wire_format },
5109
0
            |m: &mut MessageOptions| { &mut m.message_set_wire_format },
5110
        ));
5111
0
        fields.push(crate::reflect::rt::v2::make_option_accessor::<_, _>(
5112
            "no_standard_descriptor_accessor",
5113
0
            |m: &MessageOptions| { &m.no_standard_descriptor_accessor },
5114
0
            |m: &mut MessageOptions| { &mut m.no_standard_descriptor_accessor },
5115
        ));
5116
0
        fields.push(crate::reflect::rt::v2::make_option_accessor::<_, _>(
5117
            "deprecated",
5118
0
            |m: &MessageOptions| { &m.deprecated },
5119
0
            |m: &mut MessageOptions| { &mut m.deprecated },
5120
        ));
5121
0
        fields.push(crate::reflect::rt::v2::make_option_accessor::<_, _>(
5122
            "map_entry",
5123
0
            |m: &MessageOptions| { &m.map_entry },
5124
0
            |m: &mut MessageOptions| { &mut m.map_entry },
5125
        ));
5126
0
        fields.push(crate::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
5127
            "uninterpreted_option",
5128
0
            |m: &MessageOptions| { &m.uninterpreted_option },
5129
0
            |m: &mut MessageOptions| { &mut m.uninterpreted_option },
5130
        ));
5131
0
        crate::reflect::GeneratedMessageDescriptorData::new_2::<MessageOptions>(
5132
            "MessageOptions",
5133
0
            fields,
5134
0
            oneofs,
5135
        )
5136
0
    }
5137
}
5138
5139
impl crate::Message for MessageOptions {
5140
    const NAME: &'static str = "MessageOptions";
5141
5142
0
    fn is_initialized(&self) -> bool {
5143
0
        for v in &self.uninterpreted_option {
5144
0
            if !v.is_initialized() {
5145
0
                return false;
5146
0
            }
5147
        };
5148
0
        true
5149
0
    }
5150
5151
0
    fn merge_from(&mut self, is: &mut crate::CodedInputStream<'_>) -> crate::Result<()> {
5152
0
        while let Some(tag) = is.read_raw_tag_or_eof()? {
5153
0
            match tag {
5154
                8 => {
5155
0
                    self.message_set_wire_format = ::std::option::Option::Some(is.read_bool()?);
5156
                },
5157
                16 => {
5158
0
                    self.no_standard_descriptor_accessor = ::std::option::Option::Some(is.read_bool()?);
5159
                },
5160
                24 => {
5161
0
                    self.deprecated = ::std::option::Option::Some(is.read_bool()?);
5162
                },
5163
                56 => {
5164
0
                    self.map_entry = ::std::option::Option::Some(is.read_bool()?);
5165
                },
5166
                7994 => {
5167
0
                    self.uninterpreted_option.push(is.read_message()?);
5168
                },
5169
0
                tag => {
5170
0
                    crate::rt::read_unknown_or_skip_group(tag, is, self.special_fields.mut_unknown_fields())?;
5171
                },
5172
            };
5173
        }
5174
0
        ::std::result::Result::Ok(())
5175
0
    }
5176
5177
    // Compute sizes of nested messages
5178
    #[allow(unused_variables)]
5179
0
    fn compute_size(&self) -> u64 {
5180
0
        let mut my_size = 0;
5181
0
        if let Some(v) = self.message_set_wire_format {
5182
0
            my_size += 1 + 1;
5183
0
        }
5184
0
        if let Some(v) = self.no_standard_descriptor_accessor {
5185
0
            my_size += 1 + 1;
5186
0
        }
5187
0
        if let Some(v) = self.deprecated {
5188
0
            my_size += 1 + 1;
5189
0
        }
5190
0
        if let Some(v) = self.map_entry {
5191
0
            my_size += 1 + 1;
5192
0
        }
5193
0
        for value in &self.uninterpreted_option {
5194
0
            let len = value.compute_size();
5195
0
            my_size += 2 + crate::rt::compute_raw_varint64_size(len) + len;
5196
0
        };
5197
0
        my_size += crate::rt::unknown_fields_size(self.special_fields.unknown_fields());
5198
0
        self.special_fields.cached_size().set(my_size as u32);
5199
0
        my_size
5200
0
    }
5201
5202
0
    fn write_to_with_cached_sizes(&self, os: &mut crate::CodedOutputStream<'_>) -> crate::Result<()> {
5203
0
        if let Some(v) = self.message_set_wire_format {
5204
0
            os.write_bool(1, v)?;
5205
0
        }
5206
0
        if let Some(v) = self.no_standard_descriptor_accessor {
5207
0
            os.write_bool(2, v)?;
5208
0
        }
5209
0
        if let Some(v) = self.deprecated {
5210
0
            os.write_bool(3, v)?;
5211
0
        }
5212
0
        if let Some(v) = self.map_entry {
5213
0
            os.write_bool(7, v)?;
5214
0
        }
5215
0
        for v in &self.uninterpreted_option {
5216
0
            crate::rt::write_message_field_with_cached_size(999, v, os)?;
5217
        };
5218
0
        os.write_unknown_fields(self.special_fields.unknown_fields())?;
5219
0
        ::std::result::Result::Ok(())
5220
0
    }
5221
5222
0
    fn special_fields(&self) -> &crate::SpecialFields {
5223
0
        &self.special_fields
5224
0
    }
5225
5226
0
    fn mut_special_fields(&mut self) -> &mut crate::SpecialFields {
5227
0
        &mut self.special_fields
5228
0
    }
5229
5230
0
    fn new() -> MessageOptions {
5231
0
        MessageOptions::new()
5232
0
    }
5233
5234
0
    fn clear(&mut self) {
5235
0
        self.message_set_wire_format = ::std::option::Option::None;
5236
0
        self.no_standard_descriptor_accessor = ::std::option::Option::None;
5237
0
        self.deprecated = ::std::option::Option::None;
5238
0
        self.map_entry = ::std::option::Option::None;
5239
0
        self.uninterpreted_option.clear();
5240
0
        self.special_fields.clear();
5241
0
    }
5242
5243
0
    fn default_instance() -> &'static MessageOptions {
5244
        static instance: MessageOptions = MessageOptions {
5245
            message_set_wire_format: ::std::option::Option::None,
5246
            no_standard_descriptor_accessor: ::std::option::Option::None,
5247
            deprecated: ::std::option::Option::None,
5248
            map_entry: ::std::option::Option::None,
5249
            uninterpreted_option: ::std::vec::Vec::new(),
5250
            special_fields: crate::SpecialFields::new(),
5251
        };
5252
0
        &instance
5253
0
    }
5254
}
5255
5256
impl crate::MessageFull for MessageOptions {
5257
0
    fn descriptor() -> crate::reflect::MessageDescriptor {
5258
        static descriptor: crate::rt::Lazy<crate::reflect::MessageDescriptor> = crate::rt::Lazy::new();
5259
0
        descriptor.get(|| file_descriptor().message_by_package_relative_name("MessageOptions").unwrap()).clone()
5260
0
    }
5261
}
5262
5263
impl ::std::fmt::Display for MessageOptions {
5264
0
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
5265
0
        crate::text_format::fmt(self, f)
5266
0
    }
5267
}
5268
5269
impl crate::reflect::ProtobufValue for MessageOptions {
5270
    type RuntimeType = crate::reflect::rt::RuntimeTypeMessage<Self>;
5271
}
5272
5273
// @@protoc_insertion_point(message:google.protobuf.FieldOptions)
5274
#[derive(PartialEq,Clone,Default,Debug)]
5275
pub struct FieldOptions {
5276
    // message fields
5277
    ///  The ctype option instructs the C++ code generator to use a different
5278
    ///  representation of the field than it normally would.  See the specific
5279
    ///  options below.  This option is not yet implemented in the open source
5280
    ///  release -- sorry, we'll try to include it in a future version!
5281
    // @@protoc_insertion_point(field:google.protobuf.FieldOptions.ctype)
5282
    pub ctype: ::std::option::Option<crate::EnumOrUnknown<field_options::CType>>,
5283
    ///  The packed option can be enabled for repeated primitive fields to enable
5284
    ///  a more efficient representation on the wire. Rather than repeatedly
5285
    ///  writing the tag and type for each element, the entire array is encoded as
5286
    ///  a single length-delimited blob. In proto3, only explicit setting it to
5287
    ///  false will avoid using packed encoding.
5288
    // @@protoc_insertion_point(field:google.protobuf.FieldOptions.packed)
5289
    pub packed: ::std::option::Option<bool>,
5290
    ///  The jstype option determines the JavaScript type used for values of the
5291
    ///  field.  The option is permitted only for 64 bit integral and fixed types
5292
    ///  (int64, uint64, sint64, fixed64, sfixed64).  A field with jstype JS_STRING
5293
    ///  is represented as JavaScript string, which avoids loss of precision that
5294
    ///  can happen when a large value is converted to a floating point JavaScript.
5295
    ///  Specifying JS_NUMBER for the jstype causes the generated JavaScript code to
5296
    ///  use the JavaScript "number" type.  The behavior of the default option
5297
    ///  JS_NORMAL is implementation dependent.
5298
    ///
5299
    ///  This option is an enum to permit additional types to be added, e.g.
5300
    ///  goog.math.Integer.
5301
    // @@protoc_insertion_point(field:google.protobuf.FieldOptions.jstype)
5302
    pub jstype: ::std::option::Option<crate::EnumOrUnknown<field_options::JSType>>,
5303
    ///  Should this field be parsed lazily?  Lazy applies only to message-type
5304
    ///  fields.  It means that when the outer message is initially parsed, the
5305
    ///  inner message's contents will not be parsed but instead stored in encoded
5306
    ///  form.  The inner message will actually be parsed when it is first accessed.
5307
    ///
5308
    ///  This is only a hint.  Implementations are free to choose whether to use
5309
    ///  eager or lazy parsing regardless of the value of this option.  However,
5310
    ///  setting this option true suggests that the protocol author believes that
5311
    ///  using lazy parsing on this field is worth the additional bookkeeping
5312
    ///  overhead typically needed to implement it.
5313
    ///
5314
    ///  This option does not affect the public interface of any generated code;
5315
    ///  all method signatures remain the same.  Furthermore, thread-safety of the
5316
    ///  interface is not affected by this option; const methods remain safe to
5317
    ///  call from multiple threads concurrently, while non-const methods continue
5318
    ///  to require exclusive access.
5319
    ///
5320
    ///
5321
    ///  Note that implementations may choose not to check required fields within
5322
    ///  a lazy sub-message.  That is, calling IsInitialized() on the outer message
5323
    ///  may return true even if the inner message has missing required fields.
5324
    ///  This is necessary because otherwise the inner message would have to be
5325
    ///  parsed in order to perform the check, defeating the purpose of lazy
5326
    ///  parsing.  An implementation which chooses not to check required fields
5327
    ///  must be consistent about it.  That is, for any particular sub-message, the
5328
    ///  implementation must either *always* check its required fields, or *never*
5329
    ///  check its required fields, regardless of whether or not the message has
5330
    ///  been parsed.
5331
    // @@protoc_insertion_point(field:google.protobuf.FieldOptions.lazy)
5332
    pub lazy: ::std::option::Option<bool>,
5333
    ///  Is this field deprecated?
5334
    ///  Depending on the target platform, this can emit Deprecated annotations
5335
    ///  for accessors, or it will be completely ignored; in the very least, this
5336
    ///  is a formalization for deprecating fields.
5337
    // @@protoc_insertion_point(field:google.protobuf.FieldOptions.deprecated)
5338
    pub deprecated: ::std::option::Option<bool>,
5339
    ///  For Google-internal migration only. Do not use.
5340
    // @@protoc_insertion_point(field:google.protobuf.FieldOptions.weak)
5341
    pub weak: ::std::option::Option<bool>,
5342
    ///  The parser stores options it doesn't recognize here. See above.
5343
    // @@protoc_insertion_point(field:google.protobuf.FieldOptions.uninterpreted_option)
5344
    pub uninterpreted_option: ::std::vec::Vec<UninterpretedOption>,
5345
    // special fields
5346
    // @@protoc_insertion_point(special_field:google.protobuf.FieldOptions.special_fields)
5347
    pub special_fields: crate::SpecialFields,
5348
}
5349
5350
impl<'a> ::std::default::Default for &'a FieldOptions {
5351
0
    fn default() -> &'a FieldOptions {
5352
0
        <FieldOptions as crate::Message>::default_instance()
5353
0
    }
5354
}
5355
5356
impl FieldOptions {
5357
0
    pub fn new() -> FieldOptions {
5358
0
        ::std::default::Default::default()
5359
0
    }
5360
5361
    // optional .google.protobuf.FieldOptions.CType ctype = 1;
5362
5363
0
    pub fn ctype(&self) -> field_options::CType {
5364
0
        match self.ctype {
5365
0
            Some(e) => e.enum_value_or(field_options::CType::STRING),
5366
0
            None => field_options::CType::STRING,
5367
        }
5368
0
    }
5369
5370
0
    pub fn clear_ctype(&mut self) {
5371
0
        self.ctype = ::std::option::Option::None;
5372
0
    }
5373
5374
0
    pub fn has_ctype(&self) -> bool {
5375
0
        self.ctype.is_some()
5376
0
    }
5377
5378
    // Param is passed by value, moved
5379
0
    pub fn set_ctype(&mut self, v: field_options::CType) {
5380
0
        self.ctype = ::std::option::Option::Some(crate::EnumOrUnknown::new(v));
5381
0
    }
5382
5383
    // optional bool packed = 2;
5384
5385
0
    pub fn packed(&self) -> bool {
5386
0
        self.packed.unwrap_or(false)
5387
0
    }
5388
5389
0
    pub fn clear_packed(&mut self) {
5390
0
        self.packed = ::std::option::Option::None;
5391
0
    }
5392
5393
0
    pub fn has_packed(&self) -> bool {
5394
0
        self.packed.is_some()
5395
0
    }
5396
5397
    // Param is passed by value, moved
5398
0
    pub fn set_packed(&mut self, v: bool) {
5399
0
        self.packed = ::std::option::Option::Some(v);
5400
0
    }
5401
5402
    // optional .google.protobuf.FieldOptions.JSType jstype = 6;
5403
5404
0
    pub fn jstype(&self) -> field_options::JSType {
5405
0
        match self.jstype {
5406
0
            Some(e) => e.enum_value_or(field_options::JSType::JS_NORMAL),
5407
0
            None => field_options::JSType::JS_NORMAL,
5408
        }
5409
0
    }
5410
5411
0
    pub fn clear_jstype(&mut self) {
5412
0
        self.jstype = ::std::option::Option::None;
5413
0
    }
5414
5415
0
    pub fn has_jstype(&self) -> bool {
5416
0
        self.jstype.is_some()
5417
0
    }
5418
5419
    // Param is passed by value, moved
5420
0
    pub fn set_jstype(&mut self, v: field_options::JSType) {
5421
0
        self.jstype = ::std::option::Option::Some(crate::EnumOrUnknown::new(v));
5422
0
    }
5423
5424
    // optional bool lazy = 5;
5425
5426
0
    pub fn lazy(&self) -> bool {
5427
0
        self.lazy.unwrap_or(false)
5428
0
    }
5429
5430
0
    pub fn clear_lazy(&mut self) {
5431
0
        self.lazy = ::std::option::Option::None;
5432
0
    }
5433
5434
0
    pub fn has_lazy(&self) -> bool {
5435
0
        self.lazy.is_some()
5436
0
    }
5437
5438
    // Param is passed by value, moved
5439
0
    pub fn set_lazy(&mut self, v: bool) {
5440
0
        self.lazy = ::std::option::Option::Some(v);
5441
0
    }
5442
5443
    // optional bool deprecated = 3;
5444
5445
0
    pub fn deprecated(&self) -> bool {
5446
0
        self.deprecated.unwrap_or(false)
5447
0
    }
5448
5449
0
    pub fn clear_deprecated(&mut self) {
5450
0
        self.deprecated = ::std::option::Option::None;
5451
0
    }
5452
5453
0
    pub fn has_deprecated(&self) -> bool {
5454
0
        self.deprecated.is_some()
5455
0
    }
5456
5457
    // Param is passed by value, moved
5458
0
    pub fn set_deprecated(&mut self, v: bool) {
5459
0
        self.deprecated = ::std::option::Option::Some(v);
5460
0
    }
5461
5462
    // optional bool weak = 10;
5463
5464
0
    pub fn weak(&self) -> bool {
5465
0
        self.weak.unwrap_or(false)
5466
0
    }
5467
5468
0
    pub fn clear_weak(&mut self) {
5469
0
        self.weak = ::std::option::Option::None;
5470
0
    }
5471
5472
0
    pub fn has_weak(&self) -> bool {
5473
0
        self.weak.is_some()
5474
0
    }
5475
5476
    // Param is passed by value, moved
5477
0
    pub fn set_weak(&mut self, v: bool) {
5478
0
        self.weak = ::std::option::Option::Some(v);
5479
0
    }
5480
5481
0
    fn generated_message_descriptor_data() -> crate::reflect::GeneratedMessageDescriptorData {
5482
0
        let mut fields = ::std::vec::Vec::with_capacity(7);
5483
0
        let mut oneofs = ::std::vec::Vec::with_capacity(0);
5484
0
        fields.push(crate::reflect::rt::v2::make_option_accessor::<_, _>(
5485
            "ctype",
5486
0
            |m: &FieldOptions| { &m.ctype },
5487
0
            |m: &mut FieldOptions| { &mut m.ctype },
5488
        ));
5489
0
        fields.push(crate::reflect::rt::v2::make_option_accessor::<_, _>(
5490
            "packed",
5491
0
            |m: &FieldOptions| { &m.packed },
5492
0
            |m: &mut FieldOptions| { &mut m.packed },
5493
        ));
5494
0
        fields.push(crate::reflect::rt::v2::make_option_accessor::<_, _>(
5495
            "jstype",
5496
0
            |m: &FieldOptions| { &m.jstype },
5497
0
            |m: &mut FieldOptions| { &mut m.jstype },
5498
        ));
5499
0
        fields.push(crate::reflect::rt::v2::make_option_accessor::<_, _>(
5500
            "lazy",
5501
0
            |m: &FieldOptions| { &m.lazy },
5502
0
            |m: &mut FieldOptions| { &mut m.lazy },
5503
        ));
5504
0
        fields.push(crate::reflect::rt::v2::make_option_accessor::<_, _>(
5505
            "deprecated",
5506
0
            |m: &FieldOptions| { &m.deprecated },
5507
0
            |m: &mut FieldOptions| { &mut m.deprecated },
5508
        ));
5509
0
        fields.push(crate::reflect::rt::v2::make_option_accessor::<_, _>(
5510
            "weak",
5511
0
            |m: &FieldOptions| { &m.weak },
5512
0
            |m: &mut FieldOptions| { &mut m.weak },
5513
        ));
5514
0
        fields.push(crate::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
5515
            "uninterpreted_option",
5516
0
            |m: &FieldOptions| { &m.uninterpreted_option },
5517
0
            |m: &mut FieldOptions| { &mut m.uninterpreted_option },
5518
        ));
5519
0
        crate::reflect::GeneratedMessageDescriptorData::new_2::<FieldOptions>(
5520
            "FieldOptions",
5521
0
            fields,
5522
0
            oneofs,
5523
        )
5524
0
    }
5525
}
5526
5527
impl crate::Message for FieldOptions {
5528
    const NAME: &'static str = "FieldOptions";
5529
5530
0
    fn is_initialized(&self) -> bool {
5531
0
        for v in &self.uninterpreted_option {
5532
0
            if !v.is_initialized() {
5533
0
                return false;
5534
0
            }
5535
        };
5536
0
        true
5537
0
    }
5538
5539
0
    fn merge_from(&mut self, is: &mut crate::CodedInputStream<'_>) -> crate::Result<()> {
5540
0
        while let Some(tag) = is.read_raw_tag_or_eof()? {
5541
0
            match tag {
5542
                8 => {
5543
0
                    self.ctype = ::std::option::Option::Some(is.read_enum_or_unknown()?);
5544
                },
5545
                16 => {
5546
0
                    self.packed = ::std::option::Option::Some(is.read_bool()?);
5547
                },
5548
                48 => {
5549
0
                    self.jstype = ::std::option::Option::Some(is.read_enum_or_unknown()?);
5550
                },
5551
                40 => {
5552
0
                    self.lazy = ::std::option::Option::Some(is.read_bool()?);
5553
                },
5554
                24 => {
5555
0
                    self.deprecated = ::std::option::Option::Some(is.read_bool()?);
5556
                },
5557
                80 => {
5558
0
                    self.weak = ::std::option::Option::Some(is.read_bool()?);
5559
                },
5560
                7994 => {
5561
0
                    self.uninterpreted_option.push(is.read_message()?);
5562
                },
5563
0
                tag => {
5564
0
                    crate::rt::read_unknown_or_skip_group(tag, is, self.special_fields.mut_unknown_fields())?;
5565
                },
5566
            };
5567
        }
5568
0
        ::std::result::Result::Ok(())
5569
0
    }
5570
5571
    // Compute sizes of nested messages
5572
    #[allow(unused_variables)]
5573
0
    fn compute_size(&self) -> u64 {
5574
0
        let mut my_size = 0;
5575
0
        if let Some(v) = self.ctype {
5576
0
            my_size += crate::rt::int32_size(1, v.value());
5577
0
        }
5578
0
        if let Some(v) = self.packed {
5579
0
            my_size += 1 + 1;
5580
0
        }
5581
0
        if let Some(v) = self.jstype {
5582
0
            my_size += crate::rt::int32_size(6, v.value());
5583
0
        }
5584
0
        if let Some(v) = self.lazy {
5585
0
            my_size += 1 + 1;
5586
0
        }
5587
0
        if let Some(v) = self.deprecated {
5588
0
            my_size += 1 + 1;
5589
0
        }
5590
0
        if let Some(v) = self.weak {
5591
0
            my_size += 1 + 1;
5592
0
        }
5593
0
        for value in &self.uninterpreted_option {
5594
0
            let len = value.compute_size();
5595
0
            my_size += 2 + crate::rt::compute_raw_varint64_size(len) + len;
5596
0
        };
5597
0
        my_size += crate::rt::unknown_fields_size(self.special_fields.unknown_fields());
5598
0
        self.special_fields.cached_size().set(my_size as u32);
5599
0
        my_size
5600
0
    }
5601
5602
0
    fn write_to_with_cached_sizes(&self, os: &mut crate::CodedOutputStream<'_>) -> crate::Result<()> {
5603
0
        if let Some(v) = self.ctype {
5604
0
            os.write_enum(1, crate::EnumOrUnknown::value(&v))?;
5605
0
        }
5606
0
        if let Some(v) = self.packed {
5607
0
            os.write_bool(2, v)?;
5608
0
        }
5609
0
        if let Some(v) = self.jstype {
5610
0
            os.write_enum(6, crate::EnumOrUnknown::value(&v))?;
5611
0
        }
5612
0
        if let Some(v) = self.lazy {
5613
0
            os.write_bool(5, v)?;
5614
0
        }
5615
0
        if let Some(v) = self.deprecated {
5616
0
            os.write_bool(3, v)?;
5617
0
        }
5618
0
        if let Some(v) = self.weak {
5619
0
            os.write_bool(10, v)?;
5620
0
        }
5621
0
        for v in &self.uninterpreted_option {
5622
0
            crate::rt::write_message_field_with_cached_size(999, v, os)?;
5623
        };
5624
0
        os.write_unknown_fields(self.special_fields.unknown_fields())?;
5625
0
        ::std::result::Result::Ok(())
5626
0
    }
5627
5628
0
    fn special_fields(&self) -> &crate::SpecialFields {
5629
0
        &self.special_fields
5630
0
    }
5631
5632
0
    fn mut_special_fields(&mut self) -> &mut crate::SpecialFields {
5633
0
        &mut self.special_fields
5634
0
    }
5635
5636
0
    fn new() -> FieldOptions {
5637
0
        FieldOptions::new()
5638
0
    }
5639
5640
0
    fn clear(&mut self) {
5641
0
        self.ctype = ::std::option::Option::None;
5642
0
        self.packed = ::std::option::Option::None;
5643
0
        self.jstype = ::std::option::Option::None;
5644
0
        self.lazy = ::std::option::Option::None;
5645
0
        self.deprecated = ::std::option::Option::None;
5646
0
        self.weak = ::std::option::Option::None;
5647
0
        self.uninterpreted_option.clear();
5648
0
        self.special_fields.clear();
5649
0
    }
5650
5651
0
    fn default_instance() -> &'static FieldOptions {
5652
        static instance: FieldOptions = FieldOptions {
5653
            ctype: ::std::option::Option::None,
5654
            packed: ::std::option::Option::None,
5655
            jstype: ::std::option::Option::None,
5656
            lazy: ::std::option::Option::None,
5657
            deprecated: ::std::option::Option::None,
5658
            weak: ::std::option::Option::None,
5659
            uninterpreted_option: ::std::vec::Vec::new(),
5660
            special_fields: crate::SpecialFields::new(),
5661
        };
5662
0
        &instance
5663
0
    }
5664
}
5665
5666
impl crate::MessageFull for FieldOptions {
5667
0
    fn descriptor() -> crate::reflect::MessageDescriptor {
5668
        static descriptor: crate::rt::Lazy<crate::reflect::MessageDescriptor> = crate::rt::Lazy::new();
5669
0
        descriptor.get(|| file_descriptor().message_by_package_relative_name("FieldOptions").unwrap()).clone()
5670
0
    }
5671
}
5672
5673
impl ::std::fmt::Display for FieldOptions {
5674
0
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
5675
0
        crate::text_format::fmt(self, f)
5676
0
    }
5677
}
5678
5679
impl crate::reflect::ProtobufValue for FieldOptions {
5680
    type RuntimeType = crate::reflect::rt::RuntimeTypeMessage<Self>;
5681
}
5682
5683
/// Nested message and enums of message `FieldOptions`
5684
pub mod field_options {
5685
    #[derive(Clone,Copy,PartialEq,Eq,Debug,Hash)]
5686
    // @@protoc_insertion_point(enum:google.protobuf.FieldOptions.CType)
5687
    pub enum CType {
5688
        // @@protoc_insertion_point(enum_value:google.protobuf.FieldOptions.CType.STRING)
5689
        STRING = 0,
5690
        // @@protoc_insertion_point(enum_value:google.protobuf.FieldOptions.CType.CORD)
5691
        CORD = 1,
5692
        // @@protoc_insertion_point(enum_value:google.protobuf.FieldOptions.CType.STRING_PIECE)
5693
        STRING_PIECE = 2,
5694
    }
5695
5696
    impl crate::Enum for CType {
5697
        const NAME: &'static str = "CType";
5698
5699
0
        fn value(&self) -> i32 {
5700
0
            *self as i32
5701
0
        }
5702
5703
0
        fn from_i32(value: i32) -> ::std::option::Option<CType> {
5704
0
            match value {
5705
0
                0 => ::std::option::Option::Some(CType::STRING),
5706
0
                1 => ::std::option::Option::Some(CType::CORD),
5707
0
                2 => ::std::option::Option::Some(CType::STRING_PIECE),
5708
0
                _ => ::std::option::Option::None
5709
            }
5710
0
        }
5711
5712
0
        fn from_str(str: &str) -> ::std::option::Option<CType> {
5713
0
            match str {
5714
0
                "STRING" => ::std::option::Option::Some(CType::STRING),
5715
0
                "CORD" => ::std::option::Option::Some(CType::CORD),
5716
0
                "STRING_PIECE" => ::std::option::Option::Some(CType::STRING_PIECE),
5717
0
                _ => ::std::option::Option::None
5718
            }
5719
0
        }
5720
5721
        const VALUES: &'static [CType] = &[
5722
            CType::STRING,
5723
            CType::CORD,
5724
            CType::STRING_PIECE,
5725
        ];
5726
    }
5727
5728
    impl crate::EnumFull for CType {
5729
0
        fn enum_descriptor() -> crate::reflect::EnumDescriptor {
5730
            static descriptor: crate::rt::Lazy<crate::reflect::EnumDescriptor> = crate::rt::Lazy::new();
5731
0
            descriptor.get(|| super::file_descriptor().enum_by_package_relative_name("FieldOptions.CType").unwrap()).clone()
5732
0
        }
5733
5734
0
        fn descriptor(&self) -> crate::reflect::EnumValueDescriptor {
5735
0
            let index = *self as usize;
5736
0
            Self::enum_descriptor().value_by_index(index)
5737
0
        }
5738
    }
5739
5740
    impl ::std::default::Default for CType {
5741
0
        fn default() -> Self {
5742
0
            CType::STRING
5743
0
        }
5744
    }
5745
5746
    impl CType {
5747
0
        pub(in super) fn generated_enum_descriptor_data() -> crate::reflect::GeneratedEnumDescriptorData {
5748
0
            crate::reflect::GeneratedEnumDescriptorData::new::<CType>("FieldOptions.CType")
5749
0
        }
5750
    }
5751
5752
    #[derive(Clone,Copy,PartialEq,Eq,Debug,Hash)]
5753
    // @@protoc_insertion_point(enum:google.protobuf.FieldOptions.JSType)
5754
    pub enum JSType {
5755
        // @@protoc_insertion_point(enum_value:google.protobuf.FieldOptions.JSType.JS_NORMAL)
5756
        JS_NORMAL = 0,
5757
        // @@protoc_insertion_point(enum_value:google.protobuf.FieldOptions.JSType.JS_STRING)
5758
        JS_STRING = 1,
5759
        // @@protoc_insertion_point(enum_value:google.protobuf.FieldOptions.JSType.JS_NUMBER)
5760
        JS_NUMBER = 2,
5761
    }
5762
5763
    impl crate::Enum for JSType {
5764
        const NAME: &'static str = "JSType";
5765
5766
0
        fn value(&self) -> i32 {
5767
0
            *self as i32
5768
0
        }
5769
5770
0
        fn from_i32(value: i32) -> ::std::option::Option<JSType> {
5771
0
            match value {
5772
0
                0 => ::std::option::Option::Some(JSType::JS_NORMAL),
5773
0
                1 => ::std::option::Option::Some(JSType::JS_STRING),
5774
0
                2 => ::std::option::Option::Some(JSType::JS_NUMBER),
5775
0
                _ => ::std::option::Option::None
5776
            }
5777
0
        }
5778
5779
0
        fn from_str(str: &str) -> ::std::option::Option<JSType> {
5780
0
            match str {
5781
0
                "JS_NORMAL" => ::std::option::Option::Some(JSType::JS_NORMAL),
5782
0
                "JS_STRING" => ::std::option::Option::Some(JSType::JS_STRING),
5783
0
                "JS_NUMBER" => ::std::option::Option::Some(JSType::JS_NUMBER),
5784
0
                _ => ::std::option::Option::None
5785
            }
5786
0
        }
5787
5788
        const VALUES: &'static [JSType] = &[
5789
            JSType::JS_NORMAL,
5790
            JSType::JS_STRING,
5791
            JSType::JS_NUMBER,
5792
        ];
5793
    }
5794
5795
    impl crate::EnumFull for JSType {
5796
0
        fn enum_descriptor() -> crate::reflect::EnumDescriptor {
5797
            static descriptor: crate::rt::Lazy<crate::reflect::EnumDescriptor> = crate::rt::Lazy::new();
5798
0
            descriptor.get(|| super::file_descriptor().enum_by_package_relative_name("FieldOptions.JSType").unwrap()).clone()
5799
0
        }
5800
5801
0
        fn descriptor(&self) -> crate::reflect::EnumValueDescriptor {
5802
0
            let index = *self as usize;
5803
0
            Self::enum_descriptor().value_by_index(index)
5804
0
        }
5805
    }
5806
5807
    impl ::std::default::Default for JSType {
5808
0
        fn default() -> Self {
5809
0
            JSType::JS_NORMAL
5810
0
        }
5811
    }
5812
5813
    impl JSType {
5814
0
        pub(in super) fn generated_enum_descriptor_data() -> crate::reflect::GeneratedEnumDescriptorData {
5815
0
            crate::reflect::GeneratedEnumDescriptorData::new::<JSType>("FieldOptions.JSType")
5816
0
        }
5817
    }
5818
}
5819
5820
// @@protoc_insertion_point(message:google.protobuf.OneofOptions)
5821
#[derive(PartialEq,Clone,Default,Debug)]
5822
pub struct OneofOptions {
5823
    // message fields
5824
    ///  The parser stores options it doesn't recognize here. See above.
5825
    // @@protoc_insertion_point(field:google.protobuf.OneofOptions.uninterpreted_option)
5826
    pub uninterpreted_option: ::std::vec::Vec<UninterpretedOption>,
5827
    // special fields
5828
    // @@protoc_insertion_point(special_field:google.protobuf.OneofOptions.special_fields)
5829
    pub special_fields: crate::SpecialFields,
5830
}
5831
5832
impl<'a> ::std::default::Default for &'a OneofOptions {
5833
0
    fn default() -> &'a OneofOptions {
5834
0
        <OneofOptions as crate::Message>::default_instance()
5835
0
    }
5836
}
5837
5838
impl OneofOptions {
5839
0
    pub fn new() -> OneofOptions {
5840
0
        ::std::default::Default::default()
5841
0
    }
5842
5843
0
    fn generated_message_descriptor_data() -> crate::reflect::GeneratedMessageDescriptorData {
5844
0
        let mut fields = ::std::vec::Vec::with_capacity(1);
5845
0
        let mut oneofs = ::std::vec::Vec::with_capacity(0);
5846
0
        fields.push(crate::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
5847
            "uninterpreted_option",
5848
0
            |m: &OneofOptions| { &m.uninterpreted_option },
5849
0
            |m: &mut OneofOptions| { &mut m.uninterpreted_option },
5850
        ));
5851
0
        crate::reflect::GeneratedMessageDescriptorData::new_2::<OneofOptions>(
5852
            "OneofOptions",
5853
0
            fields,
5854
0
            oneofs,
5855
        )
5856
0
    }
5857
}
5858
5859
impl crate::Message for OneofOptions {
5860
    const NAME: &'static str = "OneofOptions";
5861
5862
0
    fn is_initialized(&self) -> bool {
5863
0
        for v in &self.uninterpreted_option {
5864
0
            if !v.is_initialized() {
5865
0
                return false;
5866
0
            }
5867
        };
5868
0
        true
5869
0
    }
5870
5871
0
    fn merge_from(&mut self, is: &mut crate::CodedInputStream<'_>) -> crate::Result<()> {
5872
0
        while let Some(tag) = is.read_raw_tag_or_eof()? {
5873
0
            match tag {
5874
                7994 => {
5875
0
                    self.uninterpreted_option.push(is.read_message()?);
5876
                },
5877
0
                tag => {
5878
0
                    crate::rt::read_unknown_or_skip_group(tag, is, self.special_fields.mut_unknown_fields())?;
5879
                },
5880
            };
5881
        }
5882
0
        ::std::result::Result::Ok(())
5883
0
    }
5884
5885
    // Compute sizes of nested messages
5886
    #[allow(unused_variables)]
5887
0
    fn compute_size(&self) -> u64 {
5888
0
        let mut my_size = 0;
5889
0
        for value in &self.uninterpreted_option {
5890
0
            let len = value.compute_size();
5891
0
            my_size += 2 + crate::rt::compute_raw_varint64_size(len) + len;
5892
0
        };
5893
0
        my_size += crate::rt::unknown_fields_size(self.special_fields.unknown_fields());
5894
0
        self.special_fields.cached_size().set(my_size as u32);
5895
0
        my_size
5896
0
    }
5897
5898
0
    fn write_to_with_cached_sizes(&self, os: &mut crate::CodedOutputStream<'_>) -> crate::Result<()> {
5899
0
        for v in &self.uninterpreted_option {
5900
0
            crate::rt::write_message_field_with_cached_size(999, v, os)?;
5901
        };
5902
0
        os.write_unknown_fields(self.special_fields.unknown_fields())?;
5903
0
        ::std::result::Result::Ok(())
5904
0
    }
5905
5906
0
    fn special_fields(&self) -> &crate::SpecialFields {
5907
0
        &self.special_fields
5908
0
    }
5909
5910
0
    fn mut_special_fields(&mut self) -> &mut crate::SpecialFields {
5911
0
        &mut self.special_fields
5912
0
    }
5913
5914
0
    fn new() -> OneofOptions {
5915
0
        OneofOptions::new()
5916
0
    }
5917
5918
0
    fn clear(&mut self) {
5919
0
        self.uninterpreted_option.clear();
5920
0
        self.special_fields.clear();
5921
0
    }
5922
5923
0
    fn default_instance() -> &'static OneofOptions {
5924
        static instance: OneofOptions = OneofOptions {
5925
            uninterpreted_option: ::std::vec::Vec::new(),
5926
            special_fields: crate::SpecialFields::new(),
5927
        };
5928
0
        &instance
5929
0
    }
5930
}
5931
5932
impl crate::MessageFull for OneofOptions {
5933
0
    fn descriptor() -> crate::reflect::MessageDescriptor {
5934
        static descriptor: crate::rt::Lazy<crate::reflect::MessageDescriptor> = crate::rt::Lazy::new();
5935
0
        descriptor.get(|| file_descriptor().message_by_package_relative_name("OneofOptions").unwrap()).clone()
5936
0
    }
5937
}
5938
5939
impl ::std::fmt::Display for OneofOptions {
5940
0
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
5941
0
        crate::text_format::fmt(self, f)
5942
0
    }
5943
}
5944
5945
impl crate::reflect::ProtobufValue for OneofOptions {
5946
    type RuntimeType = crate::reflect::rt::RuntimeTypeMessage<Self>;
5947
}
5948
5949
// @@protoc_insertion_point(message:google.protobuf.EnumOptions)
5950
#[derive(PartialEq,Clone,Default,Debug)]
5951
pub struct EnumOptions {
5952
    // message fields
5953
    ///  Set this option to true to allow mapping different tag names to the same
5954
    ///  value.
5955
    // @@protoc_insertion_point(field:google.protobuf.EnumOptions.allow_alias)
5956
    pub allow_alias: ::std::option::Option<bool>,
5957
    ///  Is this enum deprecated?
5958
    ///  Depending on the target platform, this can emit Deprecated annotations
5959
    ///  for the enum, or it will be completely ignored; in the very least, this
5960
    ///  is a formalization for deprecating enums.
5961
    // @@protoc_insertion_point(field:google.protobuf.EnumOptions.deprecated)
5962
    pub deprecated: ::std::option::Option<bool>,
5963
    ///  The parser stores options it doesn't recognize here. See above.
5964
    // @@protoc_insertion_point(field:google.protobuf.EnumOptions.uninterpreted_option)
5965
    pub uninterpreted_option: ::std::vec::Vec<UninterpretedOption>,
5966
    // special fields
5967
    // @@protoc_insertion_point(special_field:google.protobuf.EnumOptions.special_fields)
5968
    pub special_fields: crate::SpecialFields,
5969
}
5970
5971
impl<'a> ::std::default::Default for &'a EnumOptions {
5972
0
    fn default() -> &'a EnumOptions {
5973
0
        <EnumOptions as crate::Message>::default_instance()
5974
0
    }
5975
}
5976
5977
impl EnumOptions {
5978
0
    pub fn new() -> EnumOptions {
5979
0
        ::std::default::Default::default()
5980
0
    }
5981
5982
    // optional bool allow_alias = 2;
5983
5984
0
    pub fn allow_alias(&self) -> bool {
5985
0
        self.allow_alias.unwrap_or(false)
5986
0
    }
5987
5988
0
    pub fn clear_allow_alias(&mut self) {
5989
0
        self.allow_alias = ::std::option::Option::None;
5990
0
    }
5991
5992
0
    pub fn has_allow_alias(&self) -> bool {
5993
0
        self.allow_alias.is_some()
5994
0
    }
5995
5996
    // Param is passed by value, moved
5997
0
    pub fn set_allow_alias(&mut self, v: bool) {
5998
0
        self.allow_alias = ::std::option::Option::Some(v);
5999
0
    }
6000
6001
    // optional bool deprecated = 3;
6002
6003
0
    pub fn deprecated(&self) -> bool {
6004
0
        self.deprecated.unwrap_or(false)
6005
0
    }
6006
6007
0
    pub fn clear_deprecated(&mut self) {
6008
0
        self.deprecated = ::std::option::Option::None;
6009
0
    }
6010
6011
0
    pub fn has_deprecated(&self) -> bool {
6012
0
        self.deprecated.is_some()
6013
0
    }
6014
6015
    // Param is passed by value, moved
6016
0
    pub fn set_deprecated(&mut self, v: bool) {
6017
0
        self.deprecated = ::std::option::Option::Some(v);
6018
0
    }
6019
6020
0
    fn generated_message_descriptor_data() -> crate::reflect::GeneratedMessageDescriptorData {
6021
0
        let mut fields = ::std::vec::Vec::with_capacity(3);
6022
0
        let mut oneofs = ::std::vec::Vec::with_capacity(0);
6023
0
        fields.push(crate::reflect::rt::v2::make_option_accessor::<_, _>(
6024
            "allow_alias",
6025
0
            |m: &EnumOptions| { &m.allow_alias },
6026
0
            |m: &mut EnumOptions| { &mut m.allow_alias },
6027
        ));
6028
0
        fields.push(crate::reflect::rt::v2::make_option_accessor::<_, _>(
6029
            "deprecated",
6030
0
            |m: &EnumOptions| { &m.deprecated },
6031
0
            |m: &mut EnumOptions| { &mut m.deprecated },
6032
        ));
6033
0
        fields.push(crate::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
6034
            "uninterpreted_option",
6035
0
            |m: &EnumOptions| { &m.uninterpreted_option },
6036
0
            |m: &mut EnumOptions| { &mut m.uninterpreted_option },
6037
        ));
6038
0
        crate::reflect::GeneratedMessageDescriptorData::new_2::<EnumOptions>(
6039
            "EnumOptions",
6040
0
            fields,
6041
0
            oneofs,
6042
        )
6043
0
    }
6044
}
6045
6046
impl crate::Message for EnumOptions {
6047
    const NAME: &'static str = "EnumOptions";
6048
6049
0
    fn is_initialized(&self) -> bool {
6050
0
        for v in &self.uninterpreted_option {
6051
0
            if !v.is_initialized() {
6052
0
                return false;
6053
0
            }
6054
        };
6055
0
        true
6056
0
    }
6057
6058
0
    fn merge_from(&mut self, is: &mut crate::CodedInputStream<'_>) -> crate::Result<()> {
6059
0
        while let Some(tag) = is.read_raw_tag_or_eof()? {
6060
0
            match tag {
6061
                16 => {
6062
0
                    self.allow_alias = ::std::option::Option::Some(is.read_bool()?);
6063
                },
6064
                24 => {
6065
0
                    self.deprecated = ::std::option::Option::Some(is.read_bool()?);
6066
                },
6067
                7994 => {
6068
0
                    self.uninterpreted_option.push(is.read_message()?);
6069
                },
6070
0
                tag => {
6071
0
                    crate::rt::read_unknown_or_skip_group(tag, is, self.special_fields.mut_unknown_fields())?;
6072
                },
6073
            };
6074
        }
6075
0
        ::std::result::Result::Ok(())
6076
0
    }
6077
6078
    // Compute sizes of nested messages
6079
    #[allow(unused_variables)]
6080
0
    fn compute_size(&self) -> u64 {
6081
0
        let mut my_size = 0;
6082
0
        if let Some(v) = self.allow_alias {
6083
0
            my_size += 1 + 1;
6084
0
        }
6085
0
        if let Some(v) = self.deprecated {
6086
0
            my_size += 1 + 1;
6087
0
        }
6088
0
        for value in &self.uninterpreted_option {
6089
0
            let len = value.compute_size();
6090
0
            my_size += 2 + crate::rt::compute_raw_varint64_size(len) + len;
6091
0
        };
6092
0
        my_size += crate::rt::unknown_fields_size(self.special_fields.unknown_fields());
6093
0
        self.special_fields.cached_size().set(my_size as u32);
6094
0
        my_size
6095
0
    }
6096
6097
0
    fn write_to_with_cached_sizes(&self, os: &mut crate::CodedOutputStream<'_>) -> crate::Result<()> {
6098
0
        if let Some(v) = self.allow_alias {
6099
0
            os.write_bool(2, v)?;
6100
0
        }
6101
0
        if let Some(v) = self.deprecated {
6102
0
            os.write_bool(3, v)?;
6103
0
        }
6104
0
        for v in &self.uninterpreted_option {
6105
0
            crate::rt::write_message_field_with_cached_size(999, v, os)?;
6106
        };
6107
0
        os.write_unknown_fields(self.special_fields.unknown_fields())?;
6108
0
        ::std::result::Result::Ok(())
6109
0
    }
6110
6111
0
    fn special_fields(&self) -> &crate::SpecialFields {
6112
0
        &self.special_fields
6113
0
    }
6114
6115
0
    fn mut_special_fields(&mut self) -> &mut crate::SpecialFields {
6116
0
        &mut self.special_fields
6117
0
    }
6118
6119
0
    fn new() -> EnumOptions {
6120
0
        EnumOptions::new()
6121
0
    }
6122
6123
0
    fn clear(&mut self) {
6124
0
        self.allow_alias = ::std::option::Option::None;
6125
0
        self.deprecated = ::std::option::Option::None;
6126
0
        self.uninterpreted_option.clear();
6127
0
        self.special_fields.clear();
6128
0
    }
6129
6130
0
    fn default_instance() -> &'static EnumOptions {
6131
        static instance: EnumOptions = EnumOptions {
6132
            allow_alias: ::std::option::Option::None,
6133
            deprecated: ::std::option::Option::None,
6134
            uninterpreted_option: ::std::vec::Vec::new(),
6135
            special_fields: crate::SpecialFields::new(),
6136
        };
6137
0
        &instance
6138
0
    }
6139
}
6140
6141
impl crate::MessageFull for EnumOptions {
6142
0
    fn descriptor() -> crate::reflect::MessageDescriptor {
6143
        static descriptor: crate::rt::Lazy<crate::reflect::MessageDescriptor> = crate::rt::Lazy::new();
6144
0
        descriptor.get(|| file_descriptor().message_by_package_relative_name("EnumOptions").unwrap()).clone()
6145
0
    }
6146
}
6147
6148
impl ::std::fmt::Display for EnumOptions {
6149
0
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
6150
0
        crate::text_format::fmt(self, f)
6151
0
    }
6152
}
6153
6154
impl crate::reflect::ProtobufValue for EnumOptions {
6155
    type RuntimeType = crate::reflect::rt::RuntimeTypeMessage<Self>;
6156
}
6157
6158
// @@protoc_insertion_point(message:google.protobuf.EnumValueOptions)
6159
#[derive(PartialEq,Clone,Default,Debug)]
6160
pub struct EnumValueOptions {
6161
    // message fields
6162
    ///  Is this enum value deprecated?
6163
    ///  Depending on the target platform, this can emit Deprecated annotations
6164
    ///  for the enum value, or it will be completely ignored; in the very least,
6165
    ///  this is a formalization for deprecating enum values.
6166
    // @@protoc_insertion_point(field:google.protobuf.EnumValueOptions.deprecated)
6167
    pub deprecated: ::std::option::Option<bool>,
6168
    ///  The parser stores options it doesn't recognize here. See above.
6169
    // @@protoc_insertion_point(field:google.protobuf.EnumValueOptions.uninterpreted_option)
6170
    pub uninterpreted_option: ::std::vec::Vec<UninterpretedOption>,
6171
    // special fields
6172
    // @@protoc_insertion_point(special_field:google.protobuf.EnumValueOptions.special_fields)
6173
    pub special_fields: crate::SpecialFields,
6174
}
6175
6176
impl<'a> ::std::default::Default for &'a EnumValueOptions {
6177
0
    fn default() -> &'a EnumValueOptions {
6178
0
        <EnumValueOptions as crate::Message>::default_instance()
6179
0
    }
6180
}
6181
6182
impl EnumValueOptions {
6183
0
    pub fn new() -> EnumValueOptions {
6184
0
        ::std::default::Default::default()
6185
0
    }
6186
6187
    // optional bool deprecated = 1;
6188
6189
0
    pub fn deprecated(&self) -> bool {
6190
0
        self.deprecated.unwrap_or(false)
6191
0
    }
6192
6193
0
    pub fn clear_deprecated(&mut self) {
6194
0
        self.deprecated = ::std::option::Option::None;
6195
0
    }
6196
6197
0
    pub fn has_deprecated(&self) -> bool {
6198
0
        self.deprecated.is_some()
6199
0
    }
6200
6201
    // Param is passed by value, moved
6202
0
    pub fn set_deprecated(&mut self, v: bool) {
6203
0
        self.deprecated = ::std::option::Option::Some(v);
6204
0
    }
6205
6206
0
    fn generated_message_descriptor_data() -> crate::reflect::GeneratedMessageDescriptorData {
6207
0
        let mut fields = ::std::vec::Vec::with_capacity(2);
6208
0
        let mut oneofs = ::std::vec::Vec::with_capacity(0);
6209
0
        fields.push(crate::reflect::rt::v2::make_option_accessor::<_, _>(
6210
            "deprecated",
6211
0
            |m: &EnumValueOptions| { &m.deprecated },
6212
0
            |m: &mut EnumValueOptions| { &mut m.deprecated },
6213
        ));
6214
0
        fields.push(crate::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
6215
            "uninterpreted_option",
6216
0
            |m: &EnumValueOptions| { &m.uninterpreted_option },
6217
0
            |m: &mut EnumValueOptions| { &mut m.uninterpreted_option },
6218
        ));
6219
0
        crate::reflect::GeneratedMessageDescriptorData::new_2::<EnumValueOptions>(
6220
            "EnumValueOptions",
6221
0
            fields,
6222
0
            oneofs,
6223
        )
6224
0
    }
6225
}
6226
6227
impl crate::Message for EnumValueOptions {
6228
    const NAME: &'static str = "EnumValueOptions";
6229
6230
0
    fn is_initialized(&self) -> bool {
6231
0
        for v in &self.uninterpreted_option {
6232
0
            if !v.is_initialized() {
6233
0
                return false;
6234
0
            }
6235
        };
6236
0
        true
6237
0
    }
6238
6239
0
    fn merge_from(&mut self, is: &mut crate::CodedInputStream<'_>) -> crate::Result<()> {
6240
0
        while let Some(tag) = is.read_raw_tag_or_eof()? {
6241
0
            match tag {
6242
                8 => {
6243
0
                    self.deprecated = ::std::option::Option::Some(is.read_bool()?);
6244
                },
6245
                7994 => {
6246
0
                    self.uninterpreted_option.push(is.read_message()?);
6247
                },
6248
0
                tag => {
6249
0
                    crate::rt::read_unknown_or_skip_group(tag, is, self.special_fields.mut_unknown_fields())?;
6250
                },
6251
            };
6252
        }
6253
0
        ::std::result::Result::Ok(())
6254
0
    }
6255
6256
    // Compute sizes of nested messages
6257
    #[allow(unused_variables)]
6258
0
    fn compute_size(&self) -> u64 {
6259
0
        let mut my_size = 0;
6260
0
        if let Some(v) = self.deprecated {
6261
0
            my_size += 1 + 1;
6262
0
        }
6263
0
        for value in &self.uninterpreted_option {
6264
0
            let len = value.compute_size();
6265
0
            my_size += 2 + crate::rt::compute_raw_varint64_size(len) + len;
6266
0
        };
6267
0
        my_size += crate::rt::unknown_fields_size(self.special_fields.unknown_fields());
6268
0
        self.special_fields.cached_size().set(my_size as u32);
6269
0
        my_size
6270
0
    }
6271
6272
0
    fn write_to_with_cached_sizes(&self, os: &mut crate::CodedOutputStream<'_>) -> crate::Result<()> {
6273
0
        if let Some(v) = self.deprecated {
6274
0
            os.write_bool(1, v)?;
6275
0
        }
6276
0
        for v in &self.uninterpreted_option {
6277
0
            crate::rt::write_message_field_with_cached_size(999, v, os)?;
6278
        };
6279
0
        os.write_unknown_fields(self.special_fields.unknown_fields())?;
6280
0
        ::std::result::Result::Ok(())
6281
0
    }
6282
6283
0
    fn special_fields(&self) -> &crate::SpecialFields {
6284
0
        &self.special_fields
6285
0
    }
6286
6287
0
    fn mut_special_fields(&mut self) -> &mut crate::SpecialFields {
6288
0
        &mut self.special_fields
6289
0
    }
6290
6291
0
    fn new() -> EnumValueOptions {
6292
0
        EnumValueOptions::new()
6293
0
    }
6294
6295
0
    fn clear(&mut self) {
6296
0
        self.deprecated = ::std::option::Option::None;
6297
0
        self.uninterpreted_option.clear();
6298
0
        self.special_fields.clear();
6299
0
    }
6300
6301
0
    fn default_instance() -> &'static EnumValueOptions {
6302
        static instance: EnumValueOptions = EnumValueOptions {
6303
            deprecated: ::std::option::Option::None,
6304
            uninterpreted_option: ::std::vec::Vec::new(),
6305
            special_fields: crate::SpecialFields::new(),
6306
        };
6307
0
        &instance
6308
0
    }
6309
}
6310
6311
impl crate::MessageFull for EnumValueOptions {
6312
0
    fn descriptor() -> crate::reflect::MessageDescriptor {
6313
        static descriptor: crate::rt::Lazy<crate::reflect::MessageDescriptor> = crate::rt::Lazy::new();
6314
0
        descriptor.get(|| file_descriptor().message_by_package_relative_name("EnumValueOptions").unwrap()).clone()
6315
0
    }
6316
}
6317
6318
impl ::std::fmt::Display for EnumValueOptions {
6319
0
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
6320
0
        crate::text_format::fmt(self, f)
6321
0
    }
6322
}
6323
6324
impl crate::reflect::ProtobufValue for EnumValueOptions {
6325
    type RuntimeType = crate::reflect::rt::RuntimeTypeMessage<Self>;
6326
}
6327
6328
// @@protoc_insertion_point(message:google.protobuf.ServiceOptions)
6329
#[derive(PartialEq,Clone,Default,Debug)]
6330
pub struct ServiceOptions {
6331
    // message fields
6332
    ///  Is this service deprecated?
6333
    ///  Depending on the target platform, this can emit Deprecated annotations
6334
    ///  for the service, or it will be completely ignored; in the very least,
6335
    ///  this is a formalization for deprecating services.
6336
    // @@protoc_insertion_point(field:google.protobuf.ServiceOptions.deprecated)
6337
    pub deprecated: ::std::option::Option<bool>,
6338
    ///  The parser stores options it doesn't recognize here. See above.
6339
    // @@protoc_insertion_point(field:google.protobuf.ServiceOptions.uninterpreted_option)
6340
    pub uninterpreted_option: ::std::vec::Vec<UninterpretedOption>,
6341
    // special fields
6342
    // @@protoc_insertion_point(special_field:google.protobuf.ServiceOptions.special_fields)
6343
    pub special_fields: crate::SpecialFields,
6344
}
6345
6346
impl<'a> ::std::default::Default for &'a ServiceOptions {
6347
0
    fn default() -> &'a ServiceOptions {
6348
0
        <ServiceOptions as crate::Message>::default_instance()
6349
0
    }
6350
}
6351
6352
impl ServiceOptions {
6353
0
    pub fn new() -> ServiceOptions {
6354
0
        ::std::default::Default::default()
6355
0
    }
6356
6357
    // optional bool deprecated = 33;
6358
6359
0
    pub fn deprecated(&self) -> bool {
6360
0
        self.deprecated.unwrap_or(false)
6361
0
    }
6362
6363
0
    pub fn clear_deprecated(&mut self) {
6364
0
        self.deprecated = ::std::option::Option::None;
6365
0
    }
6366
6367
0
    pub fn has_deprecated(&self) -> bool {
6368
0
        self.deprecated.is_some()
6369
0
    }
6370
6371
    // Param is passed by value, moved
6372
0
    pub fn set_deprecated(&mut self, v: bool) {
6373
0
        self.deprecated = ::std::option::Option::Some(v);
6374
0
    }
6375
6376
0
    fn generated_message_descriptor_data() -> crate::reflect::GeneratedMessageDescriptorData {
6377
0
        let mut fields = ::std::vec::Vec::with_capacity(2);
6378
0
        let mut oneofs = ::std::vec::Vec::with_capacity(0);
6379
0
        fields.push(crate::reflect::rt::v2::make_option_accessor::<_, _>(
6380
            "deprecated",
6381
0
            |m: &ServiceOptions| { &m.deprecated },
6382
0
            |m: &mut ServiceOptions| { &mut m.deprecated },
6383
        ));
6384
0
        fields.push(crate::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
6385
            "uninterpreted_option",
6386
0
            |m: &ServiceOptions| { &m.uninterpreted_option },
6387
0
            |m: &mut ServiceOptions| { &mut m.uninterpreted_option },
6388
        ));
6389
0
        crate::reflect::GeneratedMessageDescriptorData::new_2::<ServiceOptions>(
6390
            "ServiceOptions",
6391
0
            fields,
6392
0
            oneofs,
6393
        )
6394
0
    }
6395
}
6396
6397
impl crate::Message for ServiceOptions {
6398
    const NAME: &'static str = "ServiceOptions";
6399
6400
0
    fn is_initialized(&self) -> bool {
6401
0
        for v in &self.uninterpreted_option {
6402
0
            if !v.is_initialized() {
6403
0
                return false;
6404
0
            }
6405
        };
6406
0
        true
6407
0
    }
6408
6409
0
    fn merge_from(&mut self, is: &mut crate::CodedInputStream<'_>) -> crate::Result<()> {
6410
0
        while let Some(tag) = is.read_raw_tag_or_eof()? {
6411
0
            match tag {
6412
                264 => {
6413
0
                    self.deprecated = ::std::option::Option::Some(is.read_bool()?);
6414
                },
6415
                7994 => {
6416
0
                    self.uninterpreted_option.push(is.read_message()?);
6417
                },
6418
0
                tag => {
6419
0
                    crate::rt::read_unknown_or_skip_group(tag, is, self.special_fields.mut_unknown_fields())?;
6420
                },
6421
            };
6422
        }
6423
0
        ::std::result::Result::Ok(())
6424
0
    }
6425
6426
    // Compute sizes of nested messages
6427
    #[allow(unused_variables)]
6428
0
    fn compute_size(&self) -> u64 {
6429
0
        let mut my_size = 0;
6430
0
        if let Some(v) = self.deprecated {
6431
0
            my_size += 2 + 1;
6432
0
        }
6433
0
        for value in &self.uninterpreted_option {
6434
0
            let len = value.compute_size();
6435
0
            my_size += 2 + crate::rt::compute_raw_varint64_size(len) + len;
6436
0
        };
6437
0
        my_size += crate::rt::unknown_fields_size(self.special_fields.unknown_fields());
6438
0
        self.special_fields.cached_size().set(my_size as u32);
6439
0
        my_size
6440
0
    }
6441
6442
0
    fn write_to_with_cached_sizes(&self, os: &mut crate::CodedOutputStream<'_>) -> crate::Result<()> {
6443
0
        if let Some(v) = self.deprecated {
6444
0
            os.write_bool(33, v)?;
6445
0
        }
6446
0
        for v in &self.uninterpreted_option {
6447
0
            crate::rt::write_message_field_with_cached_size(999, v, os)?;
6448
        };
6449
0
        os.write_unknown_fields(self.special_fields.unknown_fields())?;
6450
0
        ::std::result::Result::Ok(())
6451
0
    }
6452
6453
0
    fn special_fields(&self) -> &crate::SpecialFields {
6454
0
        &self.special_fields
6455
0
    }
6456
6457
0
    fn mut_special_fields(&mut self) -> &mut crate::SpecialFields {
6458
0
        &mut self.special_fields
6459
0
    }
6460
6461
0
    fn new() -> ServiceOptions {
6462
0
        ServiceOptions::new()
6463
0
    }
6464
6465
0
    fn clear(&mut self) {
6466
0
        self.deprecated = ::std::option::Option::None;
6467
0
        self.uninterpreted_option.clear();
6468
0
        self.special_fields.clear();
6469
0
    }
6470
6471
0
    fn default_instance() -> &'static ServiceOptions {
6472
        static instance: ServiceOptions = ServiceOptions {
6473
            deprecated: ::std::option::Option::None,
6474
            uninterpreted_option: ::std::vec::Vec::new(),
6475
            special_fields: crate::SpecialFields::new(),
6476
        };
6477
0
        &instance
6478
0
    }
6479
}
6480
6481
impl crate::MessageFull for ServiceOptions {
6482
0
    fn descriptor() -> crate::reflect::MessageDescriptor {
6483
        static descriptor: crate::rt::Lazy<crate::reflect::MessageDescriptor> = crate::rt::Lazy::new();
6484
0
        descriptor.get(|| file_descriptor().message_by_package_relative_name("ServiceOptions").unwrap()).clone()
6485
0
    }
6486
}
6487
6488
impl ::std::fmt::Display for ServiceOptions {
6489
0
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
6490
0
        crate::text_format::fmt(self, f)
6491
0
    }
6492
}
6493
6494
impl crate::reflect::ProtobufValue for ServiceOptions {
6495
    type RuntimeType = crate::reflect::rt::RuntimeTypeMessage<Self>;
6496
}
6497
6498
// @@protoc_insertion_point(message:google.protobuf.MethodOptions)
6499
#[derive(PartialEq,Clone,Default,Debug)]
6500
pub struct MethodOptions {
6501
    // message fields
6502
    ///  Is this method deprecated?
6503
    ///  Depending on the target platform, this can emit Deprecated annotations
6504
    ///  for the method, or it will be completely ignored; in the very least,
6505
    ///  this is a formalization for deprecating methods.
6506
    // @@protoc_insertion_point(field:google.protobuf.MethodOptions.deprecated)
6507
    pub deprecated: ::std::option::Option<bool>,
6508
    // @@protoc_insertion_point(field:google.protobuf.MethodOptions.idempotency_level)
6509
    pub idempotency_level: ::std::option::Option<crate::EnumOrUnknown<method_options::IdempotencyLevel>>,
6510
    ///  The parser stores options it doesn't recognize here. See above.
6511
    // @@protoc_insertion_point(field:google.protobuf.MethodOptions.uninterpreted_option)
6512
    pub uninterpreted_option: ::std::vec::Vec<UninterpretedOption>,
6513
    // special fields
6514
    // @@protoc_insertion_point(special_field:google.protobuf.MethodOptions.special_fields)
6515
    pub special_fields: crate::SpecialFields,
6516
}
6517
6518
impl<'a> ::std::default::Default for &'a MethodOptions {
6519
0
    fn default() -> &'a MethodOptions {
6520
0
        <MethodOptions as crate::Message>::default_instance()
6521
0
    }
6522
}
6523
6524
impl MethodOptions {
6525
0
    pub fn new() -> MethodOptions {
6526
0
        ::std::default::Default::default()
6527
0
    }
6528
6529
    // optional bool deprecated = 33;
6530
6531
0
    pub fn deprecated(&self) -> bool {
6532
0
        self.deprecated.unwrap_or(false)
6533
0
    }
6534
6535
0
    pub fn clear_deprecated(&mut self) {
6536
0
        self.deprecated = ::std::option::Option::None;
6537
0
    }
6538
6539
0
    pub fn has_deprecated(&self) -> bool {
6540
0
        self.deprecated.is_some()
6541
0
    }
6542
6543
    // Param is passed by value, moved
6544
0
    pub fn set_deprecated(&mut self, v: bool) {
6545
0
        self.deprecated = ::std::option::Option::Some(v);
6546
0
    }
6547
6548
    // optional .google.protobuf.MethodOptions.IdempotencyLevel idempotency_level = 34;
6549
6550
0
    pub fn idempotency_level(&self) -> method_options::IdempotencyLevel {
6551
0
        match self.idempotency_level {
6552
0
            Some(e) => e.enum_value_or(method_options::IdempotencyLevel::IDEMPOTENCY_UNKNOWN),
6553
0
            None => method_options::IdempotencyLevel::IDEMPOTENCY_UNKNOWN,
6554
        }
6555
0
    }
6556
6557
0
    pub fn clear_idempotency_level(&mut self) {
6558
0
        self.idempotency_level = ::std::option::Option::None;
6559
0
    }
6560
6561
0
    pub fn has_idempotency_level(&self) -> bool {
6562
0
        self.idempotency_level.is_some()
6563
0
    }
6564
6565
    // Param is passed by value, moved
6566
0
    pub fn set_idempotency_level(&mut self, v: method_options::IdempotencyLevel) {
6567
0
        self.idempotency_level = ::std::option::Option::Some(crate::EnumOrUnknown::new(v));
6568
0
    }
6569
6570
0
    fn generated_message_descriptor_data() -> crate::reflect::GeneratedMessageDescriptorData {
6571
0
        let mut fields = ::std::vec::Vec::with_capacity(3);
6572
0
        let mut oneofs = ::std::vec::Vec::with_capacity(0);
6573
0
        fields.push(crate::reflect::rt::v2::make_option_accessor::<_, _>(
6574
            "deprecated",
6575
0
            |m: &MethodOptions| { &m.deprecated },
6576
0
            |m: &mut MethodOptions| { &mut m.deprecated },
6577
        ));
6578
0
        fields.push(crate::reflect::rt::v2::make_option_accessor::<_, _>(
6579
            "idempotency_level",
6580
0
            |m: &MethodOptions| { &m.idempotency_level },
6581
0
            |m: &mut MethodOptions| { &mut m.idempotency_level },
6582
        ));
6583
0
        fields.push(crate::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
6584
            "uninterpreted_option",
6585
0
            |m: &MethodOptions| { &m.uninterpreted_option },
6586
0
            |m: &mut MethodOptions| { &mut m.uninterpreted_option },
6587
        ));
6588
0
        crate::reflect::GeneratedMessageDescriptorData::new_2::<MethodOptions>(
6589
            "MethodOptions",
6590
0
            fields,
6591
0
            oneofs,
6592
        )
6593
0
    }
6594
}
6595
6596
impl crate::Message for MethodOptions {
6597
    const NAME: &'static str = "MethodOptions";
6598
6599
0
    fn is_initialized(&self) -> bool {
6600
0
        for v in &self.uninterpreted_option {
6601
0
            if !v.is_initialized() {
6602
0
                return false;
6603
0
            }
6604
        };
6605
0
        true
6606
0
    }
6607
6608
0
    fn merge_from(&mut self, is: &mut crate::CodedInputStream<'_>) -> crate::Result<()> {
6609
0
        while let Some(tag) = is.read_raw_tag_or_eof()? {
6610
0
            match tag {
6611
                264 => {
6612
0
                    self.deprecated = ::std::option::Option::Some(is.read_bool()?);
6613
                },
6614
                272 => {
6615
0
                    self.idempotency_level = ::std::option::Option::Some(is.read_enum_or_unknown()?);
6616
                },
6617
                7994 => {
6618
0
                    self.uninterpreted_option.push(is.read_message()?);
6619
                },
6620
0
                tag => {
6621
0
                    crate::rt::read_unknown_or_skip_group(tag, is, self.special_fields.mut_unknown_fields())?;
6622
                },
6623
            };
6624
        }
6625
0
        ::std::result::Result::Ok(())
6626
0
    }
6627
6628
    // Compute sizes of nested messages
6629
    #[allow(unused_variables)]
6630
0
    fn compute_size(&self) -> u64 {
6631
0
        let mut my_size = 0;
6632
0
        if let Some(v) = self.deprecated {
6633
0
            my_size += 2 + 1;
6634
0
        }
6635
0
        if let Some(v) = self.idempotency_level {
6636
0
            my_size += crate::rt::int32_size(34, v.value());
6637
0
        }
6638
0
        for value in &self.uninterpreted_option {
6639
0
            let len = value.compute_size();
6640
0
            my_size += 2 + crate::rt::compute_raw_varint64_size(len) + len;
6641
0
        };
6642
0
        my_size += crate::rt::unknown_fields_size(self.special_fields.unknown_fields());
6643
0
        self.special_fields.cached_size().set(my_size as u32);
6644
0
        my_size
6645
0
    }
6646
6647
0
    fn write_to_with_cached_sizes(&self, os: &mut crate::CodedOutputStream<'_>) -> crate::Result<()> {
6648
0
        if let Some(v) = self.deprecated {
6649
0
            os.write_bool(33, v)?;
6650
0
        }
6651
0
        if let Some(v) = self.idempotency_level {
6652
0
            os.write_enum(34, crate::EnumOrUnknown::value(&v))?;
6653
0
        }
6654
0
        for v in &self.uninterpreted_option {
6655
0
            crate::rt::write_message_field_with_cached_size(999, v, os)?;
6656
        };
6657
0
        os.write_unknown_fields(self.special_fields.unknown_fields())?;
6658
0
        ::std::result::Result::Ok(())
6659
0
    }
6660
6661
0
    fn special_fields(&self) -> &crate::SpecialFields {
6662
0
        &self.special_fields
6663
0
    }
6664
6665
0
    fn mut_special_fields(&mut self) -> &mut crate::SpecialFields {
6666
0
        &mut self.special_fields
6667
0
    }
6668
6669
0
    fn new() -> MethodOptions {
6670
0
        MethodOptions::new()
6671
0
    }
6672
6673
0
    fn clear(&mut self) {
6674
0
        self.deprecated = ::std::option::Option::None;
6675
0
        self.idempotency_level = ::std::option::Option::None;
6676
0
        self.uninterpreted_option.clear();
6677
0
        self.special_fields.clear();
6678
0
    }
6679
6680
0
    fn default_instance() -> &'static MethodOptions {
6681
        static instance: MethodOptions = MethodOptions {
6682
            deprecated: ::std::option::Option::None,
6683
            idempotency_level: ::std::option::Option::None,
6684
            uninterpreted_option: ::std::vec::Vec::new(),
6685
            special_fields: crate::SpecialFields::new(),
6686
        };
6687
0
        &instance
6688
0
    }
6689
}
6690
6691
impl crate::MessageFull for MethodOptions {
6692
0
    fn descriptor() -> crate::reflect::MessageDescriptor {
6693
        static descriptor: crate::rt::Lazy<crate::reflect::MessageDescriptor> = crate::rt::Lazy::new();
6694
0
        descriptor.get(|| file_descriptor().message_by_package_relative_name("MethodOptions").unwrap()).clone()
6695
0
    }
6696
}
6697
6698
impl ::std::fmt::Display for MethodOptions {
6699
0
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
6700
0
        crate::text_format::fmt(self, f)
6701
0
    }
6702
}
6703
6704
impl crate::reflect::ProtobufValue for MethodOptions {
6705
    type RuntimeType = crate::reflect::rt::RuntimeTypeMessage<Self>;
6706
}
6707
6708
/// Nested message and enums of message `MethodOptions`
6709
pub mod method_options {
6710
    ///  Is this method side-effect-free (or safe in HTTP parlance), or idempotent,
6711
    ///  or neither? HTTP based RPC implementation may choose GET verb for safe
6712
    ///  methods, and PUT verb for idempotent methods instead of the default POST.
6713
    #[derive(Clone,Copy,PartialEq,Eq,Debug,Hash)]
6714
    // @@protoc_insertion_point(enum:google.protobuf.MethodOptions.IdempotencyLevel)
6715
    pub enum IdempotencyLevel {
6716
        // @@protoc_insertion_point(enum_value:google.protobuf.MethodOptions.IdempotencyLevel.IDEMPOTENCY_UNKNOWN)
6717
        IDEMPOTENCY_UNKNOWN = 0,
6718
        // @@protoc_insertion_point(enum_value:google.protobuf.MethodOptions.IdempotencyLevel.NO_SIDE_EFFECTS)
6719
        NO_SIDE_EFFECTS = 1,
6720
        // @@protoc_insertion_point(enum_value:google.protobuf.MethodOptions.IdempotencyLevel.IDEMPOTENT)
6721
        IDEMPOTENT = 2,
6722
    }
6723
6724
    impl crate::Enum for IdempotencyLevel {
6725
        const NAME: &'static str = "IdempotencyLevel";
6726
6727
0
        fn value(&self) -> i32 {
6728
0
            *self as i32
6729
0
        }
6730
6731
0
        fn from_i32(value: i32) -> ::std::option::Option<IdempotencyLevel> {
6732
0
            match value {
6733
0
                0 => ::std::option::Option::Some(IdempotencyLevel::IDEMPOTENCY_UNKNOWN),
6734
0
                1 => ::std::option::Option::Some(IdempotencyLevel::NO_SIDE_EFFECTS),
6735
0
                2 => ::std::option::Option::Some(IdempotencyLevel::IDEMPOTENT),
6736
0
                _ => ::std::option::Option::None
6737
            }
6738
0
        }
6739
6740
0
        fn from_str(str: &str) -> ::std::option::Option<IdempotencyLevel> {
6741
0
            match str {
6742
0
                "IDEMPOTENCY_UNKNOWN" => ::std::option::Option::Some(IdempotencyLevel::IDEMPOTENCY_UNKNOWN),
6743
0
                "NO_SIDE_EFFECTS" => ::std::option::Option::Some(IdempotencyLevel::NO_SIDE_EFFECTS),
6744
0
                "IDEMPOTENT" => ::std::option::Option::Some(IdempotencyLevel::IDEMPOTENT),
6745
0
                _ => ::std::option::Option::None
6746
            }
6747
0
        }
6748
6749
        const VALUES: &'static [IdempotencyLevel] = &[
6750
            IdempotencyLevel::IDEMPOTENCY_UNKNOWN,
6751
            IdempotencyLevel::NO_SIDE_EFFECTS,
6752
            IdempotencyLevel::IDEMPOTENT,
6753
        ];
6754
    }
6755
6756
    impl crate::EnumFull for IdempotencyLevel {
6757
0
        fn enum_descriptor() -> crate::reflect::EnumDescriptor {
6758
            static descriptor: crate::rt::Lazy<crate::reflect::EnumDescriptor> = crate::rt::Lazy::new();
6759
0
            descriptor.get(|| super::file_descriptor().enum_by_package_relative_name("MethodOptions.IdempotencyLevel").unwrap()).clone()
6760
0
        }
6761
6762
0
        fn descriptor(&self) -> crate::reflect::EnumValueDescriptor {
6763
0
            let index = *self as usize;
6764
0
            Self::enum_descriptor().value_by_index(index)
6765
0
        }
6766
    }
6767
6768
    impl ::std::default::Default for IdempotencyLevel {
6769
0
        fn default() -> Self {
6770
0
            IdempotencyLevel::IDEMPOTENCY_UNKNOWN
6771
0
        }
6772
    }
6773
6774
    impl IdempotencyLevel {
6775
0
        pub(in super) fn generated_enum_descriptor_data() -> crate::reflect::GeneratedEnumDescriptorData {
6776
0
            crate::reflect::GeneratedEnumDescriptorData::new::<IdempotencyLevel>("MethodOptions.IdempotencyLevel")
6777
0
        }
6778
    }
6779
}
6780
6781
///  A message representing a option the parser does not recognize. This only
6782
///  appears in options protos created by the compiler::Parser class.
6783
///  DescriptorPool resolves these when building Descriptor objects. Therefore,
6784
///  options protos in descriptor objects (e.g. returned by Descriptor::options(),
6785
///  or produced by Descriptor::CopyTo()) will never have UninterpretedOptions
6786
///  in them.
6787
// @@protoc_insertion_point(message:google.protobuf.UninterpretedOption)
6788
#[derive(PartialEq,Clone,Default,Debug)]
6789
pub struct UninterpretedOption {
6790
    // message fields
6791
    // @@protoc_insertion_point(field:google.protobuf.UninterpretedOption.name)
6792
    pub name: ::std::vec::Vec<uninterpreted_option::NamePart>,
6793
    ///  The value of the uninterpreted option, in whatever type the tokenizer
6794
    ///  identified it as during parsing. Exactly one of these should be set.
6795
    // @@protoc_insertion_point(field:google.protobuf.UninterpretedOption.identifier_value)
6796
    pub identifier_value: ::std::option::Option<::std::string::String>,
6797
    // @@protoc_insertion_point(field:google.protobuf.UninterpretedOption.positive_int_value)
6798
    pub positive_int_value: ::std::option::Option<u64>,
6799
    // @@protoc_insertion_point(field:google.protobuf.UninterpretedOption.negative_int_value)
6800
    pub negative_int_value: ::std::option::Option<i64>,
6801
    // @@protoc_insertion_point(field:google.protobuf.UninterpretedOption.double_value)
6802
    pub double_value: ::std::option::Option<f64>,
6803
    // @@protoc_insertion_point(field:google.protobuf.UninterpretedOption.string_value)
6804
    pub string_value: ::std::option::Option<::std::vec::Vec<u8>>,
6805
    // @@protoc_insertion_point(field:google.protobuf.UninterpretedOption.aggregate_value)
6806
    pub aggregate_value: ::std::option::Option<::std::string::String>,
6807
    // special fields
6808
    // @@protoc_insertion_point(special_field:google.protobuf.UninterpretedOption.special_fields)
6809
    pub special_fields: crate::SpecialFields,
6810
}
6811
6812
impl<'a> ::std::default::Default for &'a UninterpretedOption {
6813
0
    fn default() -> &'a UninterpretedOption {
6814
0
        <UninterpretedOption as crate::Message>::default_instance()
6815
0
    }
6816
}
6817
6818
impl UninterpretedOption {
6819
0
    pub fn new() -> UninterpretedOption {
6820
0
        ::std::default::Default::default()
6821
0
    }
6822
6823
    // optional string identifier_value = 3;
6824
6825
0
    pub fn identifier_value(&self) -> &str {
6826
0
        match self.identifier_value.as_ref() {
6827
0
            Some(v) => v,
6828
0
            None => "",
6829
        }
6830
0
    }
6831
6832
0
    pub fn clear_identifier_value(&mut self) {
6833
0
        self.identifier_value = ::std::option::Option::None;
6834
0
    }
6835
6836
0
    pub fn has_identifier_value(&self) -> bool {
6837
0
        self.identifier_value.is_some()
6838
0
    }
6839
6840
    // Param is passed by value, moved
6841
0
    pub fn set_identifier_value(&mut self, v: ::std::string::String) {
6842
0
        self.identifier_value = ::std::option::Option::Some(v);
6843
0
    }
6844
6845
    // Mutable pointer to the field.
6846
    // If field is not initialized, it is initialized with default value first.
6847
0
    pub fn mut_identifier_value(&mut self) -> &mut ::std::string::String {
6848
0
        if self.identifier_value.is_none() {
6849
0
            self.identifier_value = ::std::option::Option::Some(::std::string::String::new());
6850
0
        }
6851
0
        self.identifier_value.as_mut().unwrap()
6852
0
    }
6853
6854
    // Take field
6855
0
    pub fn take_identifier_value(&mut self) -> ::std::string::String {
6856
0
        self.identifier_value.take().unwrap_or_else(|| ::std::string::String::new())
6857
0
    }
6858
6859
    // optional uint64 positive_int_value = 4;
6860
6861
0
    pub fn positive_int_value(&self) -> u64 {
6862
0
        self.positive_int_value.unwrap_or(0)
6863
0
    }
6864
6865
0
    pub fn clear_positive_int_value(&mut self) {
6866
0
        self.positive_int_value = ::std::option::Option::None;
6867
0
    }
6868
6869
0
    pub fn has_positive_int_value(&self) -> bool {
6870
0
        self.positive_int_value.is_some()
6871
0
    }
6872
6873
    // Param is passed by value, moved
6874
0
    pub fn set_positive_int_value(&mut self, v: u64) {
6875
0
        self.positive_int_value = ::std::option::Option::Some(v);
6876
0
    }
6877
6878
    // optional int64 negative_int_value = 5;
6879
6880
0
    pub fn negative_int_value(&self) -> i64 {
6881
0
        self.negative_int_value.unwrap_or(0)
6882
0
    }
6883
6884
0
    pub fn clear_negative_int_value(&mut self) {
6885
0
        self.negative_int_value = ::std::option::Option::None;
6886
0
    }
6887
6888
0
    pub fn has_negative_int_value(&self) -> bool {
6889
0
        self.negative_int_value.is_some()
6890
0
    }
6891
6892
    // Param is passed by value, moved
6893
0
    pub fn set_negative_int_value(&mut self, v: i64) {
6894
0
        self.negative_int_value = ::std::option::Option::Some(v);
6895
0
    }
6896
6897
    // optional double double_value = 6;
6898
6899
0
    pub fn double_value(&self) -> f64 {
6900
0
        self.double_value.unwrap_or(0.)
6901
0
    }
6902
6903
0
    pub fn clear_double_value(&mut self) {
6904
0
        self.double_value = ::std::option::Option::None;
6905
0
    }
6906
6907
0
    pub fn has_double_value(&self) -> bool {
6908
0
        self.double_value.is_some()
6909
0
    }
6910
6911
    // Param is passed by value, moved
6912
0
    pub fn set_double_value(&mut self, v: f64) {
6913
0
        self.double_value = ::std::option::Option::Some(v);
6914
0
    }
6915
6916
    // optional bytes string_value = 7;
6917
6918
0
    pub fn string_value(&self) -> &[u8] {
6919
0
        match self.string_value.as_ref() {
6920
0
            Some(v) => v,
6921
0
            None => &[],
6922
        }
6923
0
    }
6924
6925
0
    pub fn clear_string_value(&mut self) {
6926
0
        self.string_value = ::std::option::Option::None;
6927
0
    }
6928
6929
0
    pub fn has_string_value(&self) -> bool {
6930
0
        self.string_value.is_some()
6931
0
    }
6932
6933
    // Param is passed by value, moved
6934
0
    pub fn set_string_value(&mut self, v: ::std::vec::Vec<u8>) {
6935
0
        self.string_value = ::std::option::Option::Some(v);
6936
0
    }
6937
6938
    // Mutable pointer to the field.
6939
    // If field is not initialized, it is initialized with default value first.
6940
0
    pub fn mut_string_value(&mut self) -> &mut ::std::vec::Vec<u8> {
6941
0
        if self.string_value.is_none() {
6942
0
            self.string_value = ::std::option::Option::Some(::std::vec::Vec::new());
6943
0
        }
6944
0
        self.string_value.as_mut().unwrap()
6945
0
    }
6946
6947
    // Take field
6948
0
    pub fn take_string_value(&mut self) -> ::std::vec::Vec<u8> {
6949
0
        self.string_value.take().unwrap_or_else(|| ::std::vec::Vec::new())
6950
0
    }
6951
6952
    // optional string aggregate_value = 8;
6953
6954
0
    pub fn aggregate_value(&self) -> &str {
6955
0
        match self.aggregate_value.as_ref() {
6956
0
            Some(v) => v,
6957
0
            None => "",
6958
        }
6959
0
    }
6960
6961
0
    pub fn clear_aggregate_value(&mut self) {
6962
0
        self.aggregate_value = ::std::option::Option::None;
6963
0
    }
6964
6965
0
    pub fn has_aggregate_value(&self) -> bool {
6966
0
        self.aggregate_value.is_some()
6967
0
    }
6968
6969
    // Param is passed by value, moved
6970
0
    pub fn set_aggregate_value(&mut self, v: ::std::string::String) {
6971
0
        self.aggregate_value = ::std::option::Option::Some(v);
6972
0
    }
6973
6974
    // Mutable pointer to the field.
6975
    // If field is not initialized, it is initialized with default value first.
6976
0
    pub fn mut_aggregate_value(&mut self) -> &mut ::std::string::String {
6977
0
        if self.aggregate_value.is_none() {
6978
0
            self.aggregate_value = ::std::option::Option::Some(::std::string::String::new());
6979
0
        }
6980
0
        self.aggregate_value.as_mut().unwrap()
6981
0
    }
6982
6983
    // Take field
6984
0
    pub fn take_aggregate_value(&mut self) -> ::std::string::String {
6985
0
        self.aggregate_value.take().unwrap_or_else(|| ::std::string::String::new())
6986
0
    }
6987
6988
0
    fn generated_message_descriptor_data() -> crate::reflect::GeneratedMessageDescriptorData {
6989
0
        let mut fields = ::std::vec::Vec::with_capacity(7);
6990
0
        let mut oneofs = ::std::vec::Vec::with_capacity(0);
6991
0
        fields.push(crate::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
6992
            "name",
6993
0
            |m: &UninterpretedOption| { &m.name },
6994
0
            |m: &mut UninterpretedOption| { &mut m.name },
6995
        ));
6996
0
        fields.push(crate::reflect::rt::v2::make_option_accessor::<_, _>(
6997
            "identifier_value",
6998
0
            |m: &UninterpretedOption| { &m.identifier_value },
6999
0
            |m: &mut UninterpretedOption| { &mut m.identifier_value },
7000
        ));
7001
0
        fields.push(crate::reflect::rt::v2::make_option_accessor::<_, _>(
7002
            "positive_int_value",
7003
0
            |m: &UninterpretedOption| { &m.positive_int_value },
7004
0
            |m: &mut UninterpretedOption| { &mut m.positive_int_value },
7005
        ));
7006
0
        fields.push(crate::reflect::rt::v2::make_option_accessor::<_, _>(
7007
            "negative_int_value",
7008
0
            |m: &UninterpretedOption| { &m.negative_int_value },
7009
0
            |m: &mut UninterpretedOption| { &mut m.negative_int_value },
7010
        ));
7011
0
        fields.push(crate::reflect::rt::v2::make_option_accessor::<_, _>(
7012
            "double_value",
7013
0
            |m: &UninterpretedOption| { &m.double_value },
7014
0
            |m: &mut UninterpretedOption| { &mut m.double_value },
7015
        ));
7016
0
        fields.push(crate::reflect::rt::v2::make_option_accessor::<_, _>(
7017
            "string_value",
7018
0
            |m: &UninterpretedOption| { &m.string_value },
7019
0
            |m: &mut UninterpretedOption| { &mut m.string_value },
7020
        ));
7021
0
        fields.push(crate::reflect::rt::v2::make_option_accessor::<_, _>(
7022
            "aggregate_value",
7023
0
            |m: &UninterpretedOption| { &m.aggregate_value },
7024
0
            |m: &mut UninterpretedOption| { &mut m.aggregate_value },
7025
        ));
7026
0
        crate::reflect::GeneratedMessageDescriptorData::new_2::<UninterpretedOption>(
7027
            "UninterpretedOption",
7028
0
            fields,
7029
0
            oneofs,
7030
        )
7031
0
    }
7032
}
7033
7034
impl crate::Message for UninterpretedOption {
7035
    const NAME: &'static str = "UninterpretedOption";
7036
7037
0
    fn is_initialized(&self) -> bool {
7038
0
        for v in &self.name {
7039
0
            if !v.is_initialized() {
7040
0
                return false;
7041
0
            }
7042
        };
7043
0
        true
7044
0
    }
7045
7046
0
    fn merge_from(&mut self, is: &mut crate::CodedInputStream<'_>) -> crate::Result<()> {
7047
0
        while let Some(tag) = is.read_raw_tag_or_eof()? {
7048
0
            match tag {
7049
                18 => {
7050
0
                    self.name.push(is.read_message()?);
7051
                },
7052
                26 => {
7053
0
                    self.identifier_value = ::std::option::Option::Some(is.read_string()?);
7054
                },
7055
                32 => {
7056
0
                    self.positive_int_value = ::std::option::Option::Some(is.read_uint64()?);
7057
                },
7058
                40 => {
7059
0
                    self.negative_int_value = ::std::option::Option::Some(is.read_int64()?);
7060
                },
7061
                49 => {
7062
0
                    self.double_value = ::std::option::Option::Some(is.read_double()?);
7063
                },
7064
                58 => {
7065
0
                    self.string_value = ::std::option::Option::Some(is.read_bytes()?);
7066
                },
7067
                66 => {
7068
0
                    self.aggregate_value = ::std::option::Option::Some(is.read_string()?);
7069
                },
7070
0
                tag => {
7071
0
                    crate::rt::read_unknown_or_skip_group(tag, is, self.special_fields.mut_unknown_fields())?;
7072
                },
7073
            };
7074
        }
7075
0
        ::std::result::Result::Ok(())
7076
0
    }
7077
7078
    // Compute sizes of nested messages
7079
    #[allow(unused_variables)]
7080
0
    fn compute_size(&self) -> u64 {
7081
0
        let mut my_size = 0;
7082
0
        for value in &self.name {
7083
0
            let len = value.compute_size();
7084
0
            my_size += 1 + crate::rt::compute_raw_varint64_size(len) + len;
7085
0
        };
7086
0
        if let Some(v) = self.identifier_value.as_ref() {
7087
0
            my_size += crate::rt::string_size(3, &v);
7088
0
        }
7089
0
        if let Some(v) = self.positive_int_value {
7090
0
            my_size += crate::rt::uint64_size(4, v);
7091
0
        }
7092
0
        if let Some(v) = self.negative_int_value {
7093
0
            my_size += crate::rt::int64_size(5, v);
7094
0
        }
7095
0
        if let Some(v) = self.double_value {
7096
0
            my_size += 1 + 8;
7097
0
        }
7098
0
        if let Some(v) = self.string_value.as_ref() {
7099
0
            my_size += crate::rt::bytes_size(7, &v);
7100
0
        }
7101
0
        if let Some(v) = self.aggregate_value.as_ref() {
7102
0
            my_size += crate::rt::string_size(8, &v);
7103
0
        }
7104
0
        my_size += crate::rt::unknown_fields_size(self.special_fields.unknown_fields());
7105
0
        self.special_fields.cached_size().set(my_size as u32);
7106
0
        my_size
7107
0
    }
7108
7109
0
    fn write_to_with_cached_sizes(&self, os: &mut crate::CodedOutputStream<'_>) -> crate::Result<()> {
7110
0
        for v in &self.name {
7111
0
            crate::rt::write_message_field_with_cached_size(2, v, os)?;
7112
        };
7113
0
        if let Some(v) = self.identifier_value.as_ref() {
7114
0
            os.write_string(3, v)?;
7115
0
        }
7116
0
        if let Some(v) = self.positive_int_value {
7117
0
            os.write_uint64(4, v)?;
7118
0
        }
7119
0
        if let Some(v) = self.negative_int_value {
7120
0
            os.write_int64(5, v)?;
7121
0
        }
7122
0
        if let Some(v) = self.double_value {
7123
0
            os.write_double(6, v)?;
7124
0
        }
7125
0
        if let Some(v) = self.string_value.as_ref() {
7126
0
            os.write_bytes(7, v)?;
7127
0
        }
7128
0
        if let Some(v) = self.aggregate_value.as_ref() {
7129
0
            os.write_string(8, v)?;
7130
0
        }
7131
0
        os.write_unknown_fields(self.special_fields.unknown_fields())?;
7132
0
        ::std::result::Result::Ok(())
7133
0
    }
7134
7135
0
    fn special_fields(&self) -> &crate::SpecialFields {
7136
0
        &self.special_fields
7137
0
    }
7138
7139
0
    fn mut_special_fields(&mut self) -> &mut crate::SpecialFields {
7140
0
        &mut self.special_fields
7141
0
    }
7142
7143
0
    fn new() -> UninterpretedOption {
7144
0
        UninterpretedOption::new()
7145
0
    }
7146
7147
0
    fn clear(&mut self) {
7148
0
        self.name.clear();
7149
0
        self.identifier_value = ::std::option::Option::None;
7150
0
        self.positive_int_value = ::std::option::Option::None;
7151
0
        self.negative_int_value = ::std::option::Option::None;
7152
0
        self.double_value = ::std::option::Option::None;
7153
0
        self.string_value = ::std::option::Option::None;
7154
0
        self.aggregate_value = ::std::option::Option::None;
7155
0
        self.special_fields.clear();
7156
0
    }
7157
7158
0
    fn default_instance() -> &'static UninterpretedOption {
7159
        static instance: UninterpretedOption = UninterpretedOption {
7160
            name: ::std::vec::Vec::new(),
7161
            identifier_value: ::std::option::Option::None,
7162
            positive_int_value: ::std::option::Option::None,
7163
            negative_int_value: ::std::option::Option::None,
7164
            double_value: ::std::option::Option::None,
7165
            string_value: ::std::option::Option::None,
7166
            aggregate_value: ::std::option::Option::None,
7167
            special_fields: crate::SpecialFields::new(),
7168
        };
7169
0
        &instance
7170
0
    }
7171
}
7172
7173
impl crate::MessageFull for UninterpretedOption {
7174
0
    fn descriptor() -> crate::reflect::MessageDescriptor {
7175
        static descriptor: crate::rt::Lazy<crate::reflect::MessageDescriptor> = crate::rt::Lazy::new();
7176
0
        descriptor.get(|| file_descriptor().message_by_package_relative_name("UninterpretedOption").unwrap()).clone()
7177
0
    }
7178
}
7179
7180
impl ::std::fmt::Display for UninterpretedOption {
7181
0
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
7182
0
        crate::text_format::fmt(self, f)
7183
0
    }
7184
}
7185
7186
impl crate::reflect::ProtobufValue for UninterpretedOption {
7187
    type RuntimeType = crate::reflect::rt::RuntimeTypeMessage<Self>;
7188
}
7189
7190
/// Nested message and enums of message `UninterpretedOption`
7191
pub mod uninterpreted_option {
7192
    ///  The name of the uninterpreted option.  Each string represents a segment in
7193
    ///  a dot-separated name.  is_extension is true iff a segment represents an
7194
    ///  extension (denoted with parentheses in options specs in .proto files).
7195
    ///  E.g.,{ ["foo", false], ["bar.baz", true], ["qux", false] } represents
7196
    ///  "foo.(bar.baz).qux".
7197
    // @@protoc_insertion_point(message:google.protobuf.UninterpretedOption.NamePart)
7198
    #[derive(PartialEq,Clone,Default,Debug)]
7199
    pub struct NamePart {
7200
        // message fields
7201
        // @@protoc_insertion_point(field:google.protobuf.UninterpretedOption.NamePart.name_part)
7202
        pub name_part: ::std::option::Option<::std::string::String>,
7203
        // @@protoc_insertion_point(field:google.protobuf.UninterpretedOption.NamePart.is_extension)
7204
        pub is_extension: ::std::option::Option<bool>,
7205
        // special fields
7206
        // @@protoc_insertion_point(special_field:google.protobuf.UninterpretedOption.NamePart.special_fields)
7207
        pub special_fields: crate::SpecialFields,
7208
    }
7209
7210
    impl<'a> ::std::default::Default for &'a NamePart {
7211
0
        fn default() -> &'a NamePart {
7212
0
            <NamePart as crate::Message>::default_instance()
7213
0
        }
7214
    }
7215
7216
    impl NamePart {
7217
0
        pub fn new() -> NamePart {
7218
0
            ::std::default::Default::default()
7219
0
        }
7220
7221
        // required string name_part = 1;
7222
7223
0
        pub fn name_part(&self) -> &str {
7224
0
            match self.name_part.as_ref() {
7225
0
                Some(v) => v,
7226
0
                None => "",
7227
            }
7228
0
        }
7229
7230
0
        pub fn clear_name_part(&mut self) {
7231
0
            self.name_part = ::std::option::Option::None;
7232
0
        }
7233
7234
0
        pub fn has_name_part(&self) -> bool {
7235
0
            self.name_part.is_some()
7236
0
        }
7237
7238
        // Param is passed by value, moved
7239
0
        pub fn set_name_part(&mut self, v: ::std::string::String) {
7240
0
            self.name_part = ::std::option::Option::Some(v);
7241
0
        }
7242
7243
        // Mutable pointer to the field.
7244
        // If field is not initialized, it is initialized with default value first.
7245
0
        pub fn mut_name_part(&mut self) -> &mut ::std::string::String {
7246
0
            if self.name_part.is_none() {
7247
0
                self.name_part = ::std::option::Option::Some(::std::string::String::new());
7248
0
            }
7249
0
            self.name_part.as_mut().unwrap()
7250
0
        }
7251
7252
        // Take field
7253
0
        pub fn take_name_part(&mut self) -> ::std::string::String {
7254
0
            self.name_part.take().unwrap_or_else(|| ::std::string::String::new())
7255
0
        }
7256
7257
        // required bool is_extension = 2;
7258
7259
0
        pub fn is_extension(&self) -> bool {
7260
0
            self.is_extension.unwrap_or(false)
7261
0
        }
7262
7263
0
        pub fn clear_is_extension(&mut self) {
7264
0
            self.is_extension = ::std::option::Option::None;
7265
0
        }
7266
7267
0
        pub fn has_is_extension(&self) -> bool {
7268
0
            self.is_extension.is_some()
7269
0
        }
7270
7271
        // Param is passed by value, moved
7272
0
        pub fn set_is_extension(&mut self, v: bool) {
7273
0
            self.is_extension = ::std::option::Option::Some(v);
7274
0
        }
7275
7276
0
        pub(in super) fn generated_message_descriptor_data() -> crate::reflect::GeneratedMessageDescriptorData {
7277
0
            let mut fields = ::std::vec::Vec::with_capacity(2);
7278
0
            let mut oneofs = ::std::vec::Vec::with_capacity(0);
7279
0
            fields.push(crate::reflect::rt::v2::make_option_accessor::<_, _>(
7280
                "name_part",
7281
0
                |m: &NamePart| { &m.name_part },
7282
0
                |m: &mut NamePart| { &mut m.name_part },
7283
            ));
7284
0
            fields.push(crate::reflect::rt::v2::make_option_accessor::<_, _>(
7285
                "is_extension",
7286
0
                |m: &NamePart| { &m.is_extension },
7287
0
                |m: &mut NamePart| { &mut m.is_extension },
7288
            ));
7289
0
            crate::reflect::GeneratedMessageDescriptorData::new_2::<NamePart>(
7290
                "UninterpretedOption.NamePart",
7291
0
                fields,
7292
0
                oneofs,
7293
            )
7294
0
        }
7295
    }
7296
7297
    impl crate::Message for NamePart {
7298
        const NAME: &'static str = "NamePart";
7299
7300
0
        fn is_initialized(&self) -> bool {
7301
0
            if self.name_part.is_none() {
7302
0
                return false;
7303
0
            }
7304
0
            if self.is_extension.is_none() {
7305
0
                return false;
7306
0
            }
7307
0
            true
7308
0
        }
7309
7310
0
        fn merge_from(&mut self, is: &mut crate::CodedInputStream<'_>) -> crate::Result<()> {
7311
0
            while let Some(tag) = is.read_raw_tag_or_eof()? {
7312
0
                match tag {
7313
                    10 => {
7314
0
                        self.name_part = ::std::option::Option::Some(is.read_string()?);
7315
                    },
7316
                    16 => {
7317
0
                        self.is_extension = ::std::option::Option::Some(is.read_bool()?);
7318
                    },
7319
0
                    tag => {
7320
0
                        crate::rt::read_unknown_or_skip_group(tag, is, self.special_fields.mut_unknown_fields())?;
7321
                    },
7322
                };
7323
            }
7324
0
            ::std::result::Result::Ok(())
7325
0
        }
7326
7327
        // Compute sizes of nested messages
7328
        #[allow(unused_variables)]
7329
0
        fn compute_size(&self) -> u64 {
7330
0
            let mut my_size = 0;
7331
0
            if let Some(v) = self.name_part.as_ref() {
7332
0
                my_size += crate::rt::string_size(1, &v);
7333
0
            }
7334
0
            if let Some(v) = self.is_extension {
7335
0
                my_size += 1 + 1;
7336
0
            }
7337
0
            my_size += crate::rt::unknown_fields_size(self.special_fields.unknown_fields());
7338
0
            self.special_fields.cached_size().set(my_size as u32);
7339
0
            my_size
7340
0
        }
7341
7342
0
        fn write_to_with_cached_sizes(&self, os: &mut crate::CodedOutputStream<'_>) -> crate::Result<()> {
7343
0
            if let Some(v) = self.name_part.as_ref() {
7344
0
                os.write_string(1, v)?;
7345
0
            }
7346
0
            if let Some(v) = self.is_extension {
7347
0
                os.write_bool(2, v)?;
7348
0
            }
7349
0
            os.write_unknown_fields(self.special_fields.unknown_fields())?;
7350
0
            ::std::result::Result::Ok(())
7351
0
        }
7352
7353
0
        fn special_fields(&self) -> &crate::SpecialFields {
7354
0
            &self.special_fields
7355
0
        }
7356
7357
0
        fn mut_special_fields(&mut self) -> &mut crate::SpecialFields {
7358
0
            &mut self.special_fields
7359
0
        }
7360
7361
0
        fn new() -> NamePart {
7362
0
            NamePart::new()
7363
0
        }
7364
7365
0
        fn clear(&mut self) {
7366
0
            self.name_part = ::std::option::Option::None;
7367
0
            self.is_extension = ::std::option::Option::None;
7368
0
            self.special_fields.clear();
7369
0
        }
7370
7371
0
        fn default_instance() -> &'static NamePart {
7372
            static instance: NamePart = NamePart {
7373
                name_part: ::std::option::Option::None,
7374
                is_extension: ::std::option::Option::None,
7375
                special_fields: crate::SpecialFields::new(),
7376
            };
7377
0
            &instance
7378
0
        }
7379
    }
7380
7381
    impl crate::MessageFull for NamePart {
7382
0
        fn descriptor() -> crate::reflect::MessageDescriptor {
7383
            static descriptor: crate::rt::Lazy<crate::reflect::MessageDescriptor> = crate::rt::Lazy::new();
7384
0
            descriptor.get(|| super::file_descriptor().message_by_package_relative_name("UninterpretedOption.NamePart").unwrap()).clone()
7385
0
        }
7386
    }
7387
7388
    impl ::std::fmt::Display for NamePart {
7389
0
        fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
7390
0
            crate::text_format::fmt(self, f)
7391
0
        }
7392
    }
7393
7394
    impl crate::reflect::ProtobufValue for NamePart {
7395
        type RuntimeType = crate::reflect::rt::RuntimeTypeMessage<Self>;
7396
    }
7397
}
7398
7399
///  Encapsulates information about the original source file from which a
7400
///  FileDescriptorProto was generated.
7401
// @@protoc_insertion_point(message:google.protobuf.SourceCodeInfo)
7402
#[derive(PartialEq,Clone,Default,Debug)]
7403
pub struct SourceCodeInfo {
7404
    // message fields
7405
    // @@protoc_insertion_point(field:google.protobuf.SourceCodeInfo.location)
7406
    pub location: ::std::vec::Vec<source_code_info::Location>,
7407
    // special fields
7408
    // @@protoc_insertion_point(special_field:google.protobuf.SourceCodeInfo.special_fields)
7409
    pub special_fields: crate::SpecialFields,
7410
}
7411
7412
impl<'a> ::std::default::Default for &'a SourceCodeInfo {
7413
0
    fn default() -> &'a SourceCodeInfo {
7414
0
        <SourceCodeInfo as crate::Message>::default_instance()
7415
0
    }
7416
}
7417
7418
impl SourceCodeInfo {
7419
0
    pub fn new() -> SourceCodeInfo {
7420
0
        ::std::default::Default::default()
7421
0
    }
7422
7423
0
    fn generated_message_descriptor_data() -> crate::reflect::GeneratedMessageDescriptorData {
7424
0
        let mut fields = ::std::vec::Vec::with_capacity(1);
7425
0
        let mut oneofs = ::std::vec::Vec::with_capacity(0);
7426
0
        fields.push(crate::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
7427
            "location",
7428
0
            |m: &SourceCodeInfo| { &m.location },
7429
0
            |m: &mut SourceCodeInfo| { &mut m.location },
7430
        ));
7431
0
        crate::reflect::GeneratedMessageDescriptorData::new_2::<SourceCodeInfo>(
7432
            "SourceCodeInfo",
7433
0
            fields,
7434
0
            oneofs,
7435
        )
7436
0
    }
7437
}
7438
7439
impl crate::Message for SourceCodeInfo {
7440
    const NAME: &'static str = "SourceCodeInfo";
7441
7442
0
    fn is_initialized(&self) -> bool {
7443
0
        true
7444
0
    }
7445
7446
0
    fn merge_from(&mut self, is: &mut crate::CodedInputStream<'_>) -> crate::Result<()> {
7447
0
        while let Some(tag) = is.read_raw_tag_or_eof()? {
7448
0
            match tag {
7449
                10 => {
7450
0
                    self.location.push(is.read_message()?);
7451
                },
7452
0
                tag => {
7453
0
                    crate::rt::read_unknown_or_skip_group(tag, is, self.special_fields.mut_unknown_fields())?;
7454
                },
7455
            };
7456
        }
7457
0
        ::std::result::Result::Ok(())
7458
0
    }
7459
7460
    // Compute sizes of nested messages
7461
    #[allow(unused_variables)]
7462
0
    fn compute_size(&self) -> u64 {
7463
0
        let mut my_size = 0;
7464
0
        for value in &self.location {
7465
0
            let len = value.compute_size();
7466
0
            my_size += 1 + crate::rt::compute_raw_varint64_size(len) + len;
7467
0
        };
7468
0
        my_size += crate::rt::unknown_fields_size(self.special_fields.unknown_fields());
7469
0
        self.special_fields.cached_size().set(my_size as u32);
7470
0
        my_size
7471
0
    }
7472
7473
0
    fn write_to_with_cached_sizes(&self, os: &mut crate::CodedOutputStream<'_>) -> crate::Result<()> {
7474
0
        for v in &self.location {
7475
0
            crate::rt::write_message_field_with_cached_size(1, v, os)?;
7476
        };
7477
0
        os.write_unknown_fields(self.special_fields.unknown_fields())?;
7478
0
        ::std::result::Result::Ok(())
7479
0
    }
7480
7481
0
    fn special_fields(&self) -> &crate::SpecialFields {
7482
0
        &self.special_fields
7483
0
    }
7484
7485
0
    fn mut_special_fields(&mut self) -> &mut crate::SpecialFields {
7486
0
        &mut self.special_fields
7487
0
    }
7488
7489
0
    fn new() -> SourceCodeInfo {
7490
0
        SourceCodeInfo::new()
7491
0
    }
7492
7493
0
    fn clear(&mut self) {
7494
0
        self.location.clear();
7495
0
        self.special_fields.clear();
7496
0
    }
7497
7498
0
    fn default_instance() -> &'static SourceCodeInfo {
7499
        static instance: SourceCodeInfo = SourceCodeInfo {
7500
            location: ::std::vec::Vec::new(),
7501
            special_fields: crate::SpecialFields::new(),
7502
        };
7503
0
        &instance
7504
0
    }
7505
}
7506
7507
impl crate::MessageFull for SourceCodeInfo {
7508
0
    fn descriptor() -> crate::reflect::MessageDescriptor {
7509
        static descriptor: crate::rt::Lazy<crate::reflect::MessageDescriptor> = crate::rt::Lazy::new();
7510
0
        descriptor.get(|| file_descriptor().message_by_package_relative_name("SourceCodeInfo").unwrap()).clone()
7511
0
    }
7512
}
7513
7514
impl ::std::fmt::Display for SourceCodeInfo {
7515
0
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
7516
0
        crate::text_format::fmt(self, f)
7517
0
    }
7518
}
7519
7520
impl crate::reflect::ProtobufValue for SourceCodeInfo {
7521
    type RuntimeType = crate::reflect::rt::RuntimeTypeMessage<Self>;
7522
}
7523
7524
/// Nested message and enums of message `SourceCodeInfo`
7525
pub mod source_code_info {
7526
    // @@protoc_insertion_point(message:google.protobuf.SourceCodeInfo.Location)
7527
    #[derive(PartialEq,Clone,Default,Debug)]
7528
    pub struct Location {
7529
        // message fields
7530
        // @@protoc_insertion_point(field:google.protobuf.SourceCodeInfo.Location.path)
7531
        pub path: ::std::vec::Vec<i32>,
7532
        ///  Always has exactly three or four elements: start line, start column,
7533
        ///  end line (optional, otherwise assumed same as start line), end column.
7534
        ///  These are packed into a single field for efficiency.  Note that line
7535
        ///  and column numbers are zero-based -- typically you will want to add
7536
        ///  1 to each before displaying to a user.
7537
        // @@protoc_insertion_point(field:google.protobuf.SourceCodeInfo.Location.span)
7538
        pub span: ::std::vec::Vec<i32>,
7539
        // @@protoc_insertion_point(field:google.protobuf.SourceCodeInfo.Location.leading_comments)
7540
        pub leading_comments: ::std::option::Option<::std::string::String>,
7541
        // @@protoc_insertion_point(field:google.protobuf.SourceCodeInfo.Location.trailing_comments)
7542
        pub trailing_comments: ::std::option::Option<::std::string::String>,
7543
        // @@protoc_insertion_point(field:google.protobuf.SourceCodeInfo.Location.leading_detached_comments)
7544
        pub leading_detached_comments: ::std::vec::Vec<::std::string::String>,
7545
        // special fields
7546
        // @@protoc_insertion_point(special_field:google.protobuf.SourceCodeInfo.Location.special_fields)
7547
        pub special_fields: crate::SpecialFields,
7548
    }
7549
7550
    impl<'a> ::std::default::Default for &'a Location {
7551
0
        fn default() -> &'a Location {
7552
0
            <Location as crate::Message>::default_instance()
7553
0
        }
7554
    }
7555
7556
    impl Location {
7557
0
        pub fn new() -> Location {
7558
0
            ::std::default::Default::default()
7559
0
        }
7560
7561
        // optional string leading_comments = 3;
7562
7563
0
        pub fn leading_comments(&self) -> &str {
7564
0
            match self.leading_comments.as_ref() {
7565
0
                Some(v) => v,
7566
0
                None => "",
7567
            }
7568
0
        }
7569
7570
0
        pub fn clear_leading_comments(&mut self) {
7571
0
            self.leading_comments = ::std::option::Option::None;
7572
0
        }
7573
7574
0
        pub fn has_leading_comments(&self) -> bool {
7575
0
            self.leading_comments.is_some()
7576
0
        }
7577
7578
        // Param is passed by value, moved
7579
0
        pub fn set_leading_comments(&mut self, v: ::std::string::String) {
7580
0
            self.leading_comments = ::std::option::Option::Some(v);
7581
0
        }
7582
7583
        // Mutable pointer to the field.
7584
        // If field is not initialized, it is initialized with default value first.
7585
0
        pub fn mut_leading_comments(&mut self) -> &mut ::std::string::String {
7586
0
            if self.leading_comments.is_none() {
7587
0
                self.leading_comments = ::std::option::Option::Some(::std::string::String::new());
7588
0
            }
7589
0
            self.leading_comments.as_mut().unwrap()
7590
0
        }
7591
7592
        // Take field
7593
0
        pub fn take_leading_comments(&mut self) -> ::std::string::String {
7594
0
            self.leading_comments.take().unwrap_or_else(|| ::std::string::String::new())
7595
0
        }
7596
7597
        // optional string trailing_comments = 4;
7598
7599
0
        pub fn trailing_comments(&self) -> &str {
7600
0
            match self.trailing_comments.as_ref() {
7601
0
                Some(v) => v,
7602
0
                None => "",
7603
            }
7604
0
        }
7605
7606
0
        pub fn clear_trailing_comments(&mut self) {
7607
0
            self.trailing_comments = ::std::option::Option::None;
7608
0
        }
7609
7610
0
        pub fn has_trailing_comments(&self) -> bool {
7611
0
            self.trailing_comments.is_some()
7612
0
        }
7613
7614
        // Param is passed by value, moved
7615
0
        pub fn set_trailing_comments(&mut self, v: ::std::string::String) {
7616
0
            self.trailing_comments = ::std::option::Option::Some(v);
7617
0
        }
7618
7619
        // Mutable pointer to the field.
7620
        // If field is not initialized, it is initialized with default value first.
7621
0
        pub fn mut_trailing_comments(&mut self) -> &mut ::std::string::String {
7622
0
            if self.trailing_comments.is_none() {
7623
0
                self.trailing_comments = ::std::option::Option::Some(::std::string::String::new());
7624
0
            }
7625
0
            self.trailing_comments.as_mut().unwrap()
7626
0
        }
7627
7628
        // Take field
7629
0
        pub fn take_trailing_comments(&mut self) -> ::std::string::String {
7630
0
            self.trailing_comments.take().unwrap_or_else(|| ::std::string::String::new())
7631
0
        }
7632
7633
0
        pub(in super) fn generated_message_descriptor_data() -> crate::reflect::GeneratedMessageDescriptorData {
7634
0
            let mut fields = ::std::vec::Vec::with_capacity(5);
7635
0
            let mut oneofs = ::std::vec::Vec::with_capacity(0);
7636
0
            fields.push(crate::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
7637
                "path",
7638
0
                |m: &Location| { &m.path },
7639
0
                |m: &mut Location| { &mut m.path },
7640
            ));
7641
0
            fields.push(crate::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
7642
                "span",
7643
0
                |m: &Location| { &m.span },
7644
0
                |m: &mut Location| { &mut m.span },
7645
            ));
7646
0
            fields.push(crate::reflect::rt::v2::make_option_accessor::<_, _>(
7647
                "leading_comments",
7648
0
                |m: &Location| { &m.leading_comments },
7649
0
                |m: &mut Location| { &mut m.leading_comments },
7650
            ));
7651
0
            fields.push(crate::reflect::rt::v2::make_option_accessor::<_, _>(
7652
                "trailing_comments",
7653
0
                |m: &Location| { &m.trailing_comments },
7654
0
                |m: &mut Location| { &mut m.trailing_comments },
7655
            ));
7656
0
            fields.push(crate::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
7657
                "leading_detached_comments",
7658
0
                |m: &Location| { &m.leading_detached_comments },
7659
0
                |m: &mut Location| { &mut m.leading_detached_comments },
7660
            ));
7661
0
            crate::reflect::GeneratedMessageDescriptorData::new_2::<Location>(
7662
                "SourceCodeInfo.Location",
7663
0
                fields,
7664
0
                oneofs,
7665
            )
7666
0
        }
7667
    }
7668
7669
    impl crate::Message for Location {
7670
        const NAME: &'static str = "Location";
7671
7672
0
        fn is_initialized(&self) -> bool {
7673
0
            true
7674
0
        }
7675
7676
0
        fn merge_from(&mut self, is: &mut crate::CodedInputStream<'_>) -> crate::Result<()> {
7677
0
            while let Some(tag) = is.read_raw_tag_or_eof()? {
7678
0
                match tag {
7679
                    10 => {
7680
0
                        is.read_repeated_packed_int32_into(&mut self.path)?;
7681
                    },
7682
                    8 => {
7683
0
                        self.path.push(is.read_int32()?);
7684
                    },
7685
                    18 => {
7686
0
                        is.read_repeated_packed_int32_into(&mut self.span)?;
7687
                    },
7688
                    16 => {
7689
0
                        self.span.push(is.read_int32()?);
7690
                    },
7691
                    26 => {
7692
0
                        self.leading_comments = ::std::option::Option::Some(is.read_string()?);
7693
                    },
7694
                    34 => {
7695
0
                        self.trailing_comments = ::std::option::Option::Some(is.read_string()?);
7696
                    },
7697
                    50 => {
7698
0
                        self.leading_detached_comments.push(is.read_string()?);
7699
                    },
7700
0
                    tag => {
7701
0
                        crate::rt::read_unknown_or_skip_group(tag, is, self.special_fields.mut_unknown_fields())?;
7702
                    },
7703
                };
7704
            }
7705
0
            ::std::result::Result::Ok(())
7706
0
        }
7707
7708
        // Compute sizes of nested messages
7709
        #[allow(unused_variables)]
7710
0
        fn compute_size(&self) -> u64 {
7711
0
            let mut my_size = 0;
7712
0
            my_size += crate::rt::vec_packed_int32_size(1, &self.path);
7713
0
            my_size += crate::rt::vec_packed_int32_size(2, &self.span);
7714
0
            if let Some(v) = self.leading_comments.as_ref() {
7715
0
                my_size += crate::rt::string_size(3, &v);
7716
0
            }
7717
0
            if let Some(v) = self.trailing_comments.as_ref() {
7718
0
                my_size += crate::rt::string_size(4, &v);
7719
0
            }
7720
0
            for value in &self.leading_detached_comments {
7721
0
                my_size += crate::rt::string_size(6, &value);
7722
0
            };
7723
0
            my_size += crate::rt::unknown_fields_size(self.special_fields.unknown_fields());
7724
0
            self.special_fields.cached_size().set(my_size as u32);
7725
0
            my_size
7726
0
        }
7727
7728
0
        fn write_to_with_cached_sizes(&self, os: &mut crate::CodedOutputStream<'_>) -> crate::Result<()> {
7729
0
            os.write_repeated_packed_int32(1, &self.path)?;
7730
0
            os.write_repeated_packed_int32(2, &self.span)?;
7731
0
            if let Some(v) = self.leading_comments.as_ref() {
7732
0
                os.write_string(3, v)?;
7733
0
            }
7734
0
            if let Some(v) = self.trailing_comments.as_ref() {
7735
0
                os.write_string(4, v)?;
7736
0
            }
7737
0
            for v in &self.leading_detached_comments {
7738
0
                os.write_string(6, &v)?;
7739
            };
7740
0
            os.write_unknown_fields(self.special_fields.unknown_fields())?;
7741
0
            ::std::result::Result::Ok(())
7742
0
        }
7743
7744
0
        fn special_fields(&self) -> &crate::SpecialFields {
7745
0
            &self.special_fields
7746
0
        }
7747
7748
0
        fn mut_special_fields(&mut self) -> &mut crate::SpecialFields {
7749
0
            &mut self.special_fields
7750
0
        }
7751
7752
0
        fn new() -> Location {
7753
0
            Location::new()
7754
0
        }
7755
7756
0
        fn clear(&mut self) {
7757
0
            self.path.clear();
7758
0
            self.span.clear();
7759
0
            self.leading_comments = ::std::option::Option::None;
7760
0
            self.trailing_comments = ::std::option::Option::None;
7761
0
            self.leading_detached_comments.clear();
7762
0
            self.special_fields.clear();
7763
0
        }
7764
7765
0
        fn default_instance() -> &'static Location {
7766
            static instance: Location = Location {
7767
                path: ::std::vec::Vec::new(),
7768
                span: ::std::vec::Vec::new(),
7769
                leading_comments: ::std::option::Option::None,
7770
                trailing_comments: ::std::option::Option::None,
7771
                leading_detached_comments: ::std::vec::Vec::new(),
7772
                special_fields: crate::SpecialFields::new(),
7773
            };
7774
0
            &instance
7775
0
        }
7776
    }
7777
7778
    impl crate::MessageFull for Location {
7779
0
        fn descriptor() -> crate::reflect::MessageDescriptor {
7780
            static descriptor: crate::rt::Lazy<crate::reflect::MessageDescriptor> = crate::rt::Lazy::new();
7781
0
            descriptor.get(|| super::file_descriptor().message_by_package_relative_name("SourceCodeInfo.Location").unwrap()).clone()
7782
0
        }
7783
    }
7784
7785
    impl ::std::fmt::Display for Location {
7786
0
        fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
7787
0
            crate::text_format::fmt(self, f)
7788
0
        }
7789
    }
7790
7791
    impl crate::reflect::ProtobufValue for Location {
7792
        type RuntimeType = crate::reflect::rt::RuntimeTypeMessage<Self>;
7793
    }
7794
}
7795
7796
///  Describes the relationship between generated code and its original source
7797
///  file. A GeneratedCodeInfo message is associated with only one generated
7798
///  source file, but may contain references to different source .proto files.
7799
// @@protoc_insertion_point(message:google.protobuf.GeneratedCodeInfo)
7800
#[derive(PartialEq,Clone,Default,Debug)]
7801
pub struct GeneratedCodeInfo {
7802
    // message fields
7803
    ///  An Annotation connects some span of text in generated code to an element
7804
    ///  of its generating .proto file.
7805
    // @@protoc_insertion_point(field:google.protobuf.GeneratedCodeInfo.annotation)
7806
    pub annotation: ::std::vec::Vec<generated_code_info::Annotation>,
7807
    // special fields
7808
    // @@protoc_insertion_point(special_field:google.protobuf.GeneratedCodeInfo.special_fields)
7809
    pub special_fields: crate::SpecialFields,
7810
}
7811
7812
impl<'a> ::std::default::Default for &'a GeneratedCodeInfo {
7813
0
    fn default() -> &'a GeneratedCodeInfo {
7814
0
        <GeneratedCodeInfo as crate::Message>::default_instance()
7815
0
    }
7816
}
7817
7818
impl GeneratedCodeInfo {
7819
0
    pub fn new() -> GeneratedCodeInfo {
7820
0
        ::std::default::Default::default()
7821
0
    }
7822
7823
0
    fn generated_message_descriptor_data() -> crate::reflect::GeneratedMessageDescriptorData {
7824
0
        let mut fields = ::std::vec::Vec::with_capacity(1);
7825
0
        let mut oneofs = ::std::vec::Vec::with_capacity(0);
7826
0
        fields.push(crate::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
7827
            "annotation",
7828
0
            |m: &GeneratedCodeInfo| { &m.annotation },
7829
0
            |m: &mut GeneratedCodeInfo| { &mut m.annotation },
7830
        ));
7831
0
        crate::reflect::GeneratedMessageDescriptorData::new_2::<GeneratedCodeInfo>(
7832
            "GeneratedCodeInfo",
7833
0
            fields,
7834
0
            oneofs,
7835
        )
7836
0
    }
7837
}
7838
7839
impl crate::Message for GeneratedCodeInfo {
7840
    const NAME: &'static str = "GeneratedCodeInfo";
7841
7842
0
    fn is_initialized(&self) -> bool {
7843
0
        true
7844
0
    }
7845
7846
0
    fn merge_from(&mut self, is: &mut crate::CodedInputStream<'_>) -> crate::Result<()> {
7847
0
        while let Some(tag) = is.read_raw_tag_or_eof()? {
7848
0
            match tag {
7849
                10 => {
7850
0
                    self.annotation.push(is.read_message()?);
7851
                },
7852
0
                tag => {
7853
0
                    crate::rt::read_unknown_or_skip_group(tag, is, self.special_fields.mut_unknown_fields())?;
7854
                },
7855
            };
7856
        }
7857
0
        ::std::result::Result::Ok(())
7858
0
    }
7859
7860
    // Compute sizes of nested messages
7861
    #[allow(unused_variables)]
7862
0
    fn compute_size(&self) -> u64 {
7863
0
        let mut my_size = 0;
7864
0
        for value in &self.annotation {
7865
0
            let len = value.compute_size();
7866
0
            my_size += 1 + crate::rt::compute_raw_varint64_size(len) + len;
7867
0
        };
7868
0
        my_size += crate::rt::unknown_fields_size(self.special_fields.unknown_fields());
7869
0
        self.special_fields.cached_size().set(my_size as u32);
7870
0
        my_size
7871
0
    }
7872
7873
0
    fn write_to_with_cached_sizes(&self, os: &mut crate::CodedOutputStream<'_>) -> crate::Result<()> {
7874
0
        for v in &self.annotation {
7875
0
            crate::rt::write_message_field_with_cached_size(1, v, os)?;
7876
        };
7877
0
        os.write_unknown_fields(self.special_fields.unknown_fields())?;
7878
0
        ::std::result::Result::Ok(())
7879
0
    }
7880
7881
0
    fn special_fields(&self) -> &crate::SpecialFields {
7882
0
        &self.special_fields
7883
0
    }
7884
7885
0
    fn mut_special_fields(&mut self) -> &mut crate::SpecialFields {
7886
0
        &mut self.special_fields
7887
0
    }
7888
7889
0
    fn new() -> GeneratedCodeInfo {
7890
0
        GeneratedCodeInfo::new()
7891
0
    }
7892
7893
0
    fn clear(&mut self) {
7894
0
        self.annotation.clear();
7895
0
        self.special_fields.clear();
7896
0
    }
7897
7898
0
    fn default_instance() -> &'static GeneratedCodeInfo {
7899
        static instance: GeneratedCodeInfo = GeneratedCodeInfo {
7900
            annotation: ::std::vec::Vec::new(),
7901
            special_fields: crate::SpecialFields::new(),
7902
        };
7903
0
        &instance
7904
0
    }
7905
}
7906
7907
impl crate::MessageFull for GeneratedCodeInfo {
7908
0
    fn descriptor() -> crate::reflect::MessageDescriptor {
7909
        static descriptor: crate::rt::Lazy<crate::reflect::MessageDescriptor> = crate::rt::Lazy::new();
7910
0
        descriptor.get(|| file_descriptor().message_by_package_relative_name("GeneratedCodeInfo").unwrap()).clone()
7911
0
    }
7912
}
7913
7914
impl ::std::fmt::Display for GeneratedCodeInfo {
7915
0
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
7916
0
        crate::text_format::fmt(self, f)
7917
0
    }
7918
}
7919
7920
impl crate::reflect::ProtobufValue for GeneratedCodeInfo {
7921
    type RuntimeType = crate::reflect::rt::RuntimeTypeMessage<Self>;
7922
}
7923
7924
/// Nested message and enums of message `GeneratedCodeInfo`
7925
pub mod generated_code_info {
7926
    // @@protoc_insertion_point(message:google.protobuf.GeneratedCodeInfo.Annotation)
7927
    #[derive(PartialEq,Clone,Default,Debug)]
7928
    pub struct Annotation {
7929
        // message fields
7930
        ///  Identifies the element in the original source .proto file. This field
7931
        ///  is formatted the same as SourceCodeInfo.Location.path.
7932
        // @@protoc_insertion_point(field:google.protobuf.GeneratedCodeInfo.Annotation.path)
7933
        pub path: ::std::vec::Vec<i32>,
7934
        ///  Identifies the filesystem path to the original source .proto.
7935
        // @@protoc_insertion_point(field:google.protobuf.GeneratedCodeInfo.Annotation.source_file)
7936
        pub source_file: ::std::option::Option<::std::string::String>,
7937
        ///  Identifies the starting offset in bytes in the generated code
7938
        ///  that relates to the identified object.
7939
        // @@protoc_insertion_point(field:google.protobuf.GeneratedCodeInfo.Annotation.begin)
7940
        pub begin: ::std::option::Option<i32>,
7941
        ///  Identifies the ending offset in bytes in the generated code that
7942
        ///  relates to the identified offset. The end offset should be one past
7943
        ///  the last relevant byte (so the length of the text = end - begin).
7944
        // @@protoc_insertion_point(field:google.protobuf.GeneratedCodeInfo.Annotation.end)
7945
        pub end: ::std::option::Option<i32>,
7946
        // special fields
7947
        // @@protoc_insertion_point(special_field:google.protobuf.GeneratedCodeInfo.Annotation.special_fields)
7948
        pub special_fields: crate::SpecialFields,
7949
    }
7950
7951
    impl<'a> ::std::default::Default for &'a Annotation {
7952
0
        fn default() -> &'a Annotation {
7953
0
            <Annotation as crate::Message>::default_instance()
7954
0
        }
7955
    }
7956
7957
    impl Annotation {
7958
0
        pub fn new() -> Annotation {
7959
0
            ::std::default::Default::default()
7960
0
        }
7961
7962
        // optional string source_file = 2;
7963
7964
0
        pub fn source_file(&self) -> &str {
7965
0
            match self.source_file.as_ref() {
7966
0
                Some(v) => v,
7967
0
                None => "",
7968
            }
7969
0
        }
7970
7971
0
        pub fn clear_source_file(&mut self) {
7972
0
            self.source_file = ::std::option::Option::None;
7973
0
        }
7974
7975
0
        pub fn has_source_file(&self) -> bool {
7976
0
            self.source_file.is_some()
7977
0
        }
7978
7979
        // Param is passed by value, moved
7980
0
        pub fn set_source_file(&mut self, v: ::std::string::String) {
7981
0
            self.source_file = ::std::option::Option::Some(v);
7982
0
        }
7983
7984
        // Mutable pointer to the field.
7985
        // If field is not initialized, it is initialized with default value first.
7986
0
        pub fn mut_source_file(&mut self) -> &mut ::std::string::String {
7987
0
            if self.source_file.is_none() {
7988
0
                self.source_file = ::std::option::Option::Some(::std::string::String::new());
7989
0
            }
7990
0
            self.source_file.as_mut().unwrap()
7991
0
        }
7992
7993
        // Take field
7994
0
        pub fn take_source_file(&mut self) -> ::std::string::String {
7995
0
            self.source_file.take().unwrap_or_else(|| ::std::string::String::new())
7996
0
        }
7997
7998
        // optional int32 begin = 3;
7999
8000
0
        pub fn begin(&self) -> i32 {
8001
0
            self.begin.unwrap_or(0)
8002
0
        }
8003
8004
0
        pub fn clear_begin(&mut self) {
8005
0
            self.begin = ::std::option::Option::None;
8006
0
        }
8007
8008
0
        pub fn has_begin(&self) -> bool {
8009
0
            self.begin.is_some()
8010
0
        }
8011
8012
        // Param is passed by value, moved
8013
0
        pub fn set_begin(&mut self, v: i32) {
8014
0
            self.begin = ::std::option::Option::Some(v);
8015
0
        }
8016
8017
        // optional int32 end = 4;
8018
8019
0
        pub fn end(&self) -> i32 {
8020
0
            self.end.unwrap_or(0)
8021
0
        }
8022
8023
0
        pub fn clear_end(&mut self) {
8024
0
            self.end = ::std::option::Option::None;
8025
0
        }
8026
8027
0
        pub fn has_end(&self) -> bool {
8028
0
            self.end.is_some()
8029
0
        }
8030
8031
        // Param is passed by value, moved
8032
0
        pub fn set_end(&mut self, v: i32) {
8033
0
            self.end = ::std::option::Option::Some(v);
8034
0
        }
8035
8036
0
        pub(in super) fn generated_message_descriptor_data() -> crate::reflect::GeneratedMessageDescriptorData {
8037
0
            let mut fields = ::std::vec::Vec::with_capacity(4);
8038
0
            let mut oneofs = ::std::vec::Vec::with_capacity(0);
8039
0
            fields.push(crate::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
8040
                "path",
8041
0
                |m: &Annotation| { &m.path },
8042
0
                |m: &mut Annotation| { &mut m.path },
8043
            ));
8044
0
            fields.push(crate::reflect::rt::v2::make_option_accessor::<_, _>(
8045
                "source_file",
8046
0
                |m: &Annotation| { &m.source_file },
8047
0
                |m: &mut Annotation| { &mut m.source_file },
8048
            ));
8049
0
            fields.push(crate::reflect::rt::v2::make_option_accessor::<_, _>(
8050
                "begin",
8051
0
                |m: &Annotation| { &m.begin },
8052
0
                |m: &mut Annotation| { &mut m.begin },
8053
            ));
8054
0
            fields.push(crate::reflect::rt::v2::make_option_accessor::<_, _>(
8055
                "end",
8056
0
                |m: &Annotation| { &m.end },
8057
0
                |m: &mut Annotation| { &mut m.end },
8058
            ));
8059
0
            crate::reflect::GeneratedMessageDescriptorData::new_2::<Annotation>(
8060
                "GeneratedCodeInfo.Annotation",
8061
0
                fields,
8062
0
                oneofs,
8063
            )
8064
0
        }
8065
    }
8066
8067
    impl crate::Message for Annotation {
8068
        const NAME: &'static str = "Annotation";
8069
8070
0
        fn is_initialized(&self) -> bool {
8071
0
            true
8072
0
        }
8073
8074
0
        fn merge_from(&mut self, is: &mut crate::CodedInputStream<'_>) -> crate::Result<()> {
8075
0
            while let Some(tag) = is.read_raw_tag_or_eof()? {
8076
0
                match tag {
8077
                    10 => {
8078
0
                        is.read_repeated_packed_int32_into(&mut self.path)?;
8079
                    },
8080
                    8 => {
8081
0
                        self.path.push(is.read_int32()?);
8082
                    },
8083
                    18 => {
8084
0
                        self.source_file = ::std::option::Option::Some(is.read_string()?);
8085
                    },
8086
                    24 => {
8087
0
                        self.begin = ::std::option::Option::Some(is.read_int32()?);
8088
                    },
8089
                    32 => {
8090
0
                        self.end = ::std::option::Option::Some(is.read_int32()?);
8091
                    },
8092
0
                    tag => {
8093
0
                        crate::rt::read_unknown_or_skip_group(tag, is, self.special_fields.mut_unknown_fields())?;
8094
                    },
8095
                };
8096
            }
8097
0
            ::std::result::Result::Ok(())
8098
0
        }
8099
8100
        // Compute sizes of nested messages
8101
        #[allow(unused_variables)]
8102
0
        fn compute_size(&self) -> u64 {
8103
0
            let mut my_size = 0;
8104
0
            my_size += crate::rt::vec_packed_int32_size(1, &self.path);
8105
0
            if let Some(v) = self.source_file.as_ref() {
8106
0
                my_size += crate::rt::string_size(2, &v);
8107
0
            }
8108
0
            if let Some(v) = self.begin {
8109
0
                my_size += crate::rt::int32_size(3, v);
8110
0
            }
8111
0
            if let Some(v) = self.end {
8112
0
                my_size += crate::rt::int32_size(4, v);
8113
0
            }
8114
0
            my_size += crate::rt::unknown_fields_size(self.special_fields.unknown_fields());
8115
0
            self.special_fields.cached_size().set(my_size as u32);
8116
0
            my_size
8117
0
        }
8118
8119
0
        fn write_to_with_cached_sizes(&self, os: &mut crate::CodedOutputStream<'_>) -> crate::Result<()> {
8120
0
            os.write_repeated_packed_int32(1, &self.path)?;
8121
0
            if let Some(v) = self.source_file.as_ref() {
8122
0
                os.write_string(2, v)?;
8123
0
            }
8124
0
            if let Some(v) = self.begin {
8125
0
                os.write_int32(3, v)?;
8126
0
            }
8127
0
            if let Some(v) = self.end {
8128
0
                os.write_int32(4, v)?;
8129
0
            }
8130
0
            os.write_unknown_fields(self.special_fields.unknown_fields())?;
8131
0
            ::std::result::Result::Ok(())
8132
0
        }
8133
8134
0
        fn special_fields(&self) -> &crate::SpecialFields {
8135
0
            &self.special_fields
8136
0
        }
8137
8138
0
        fn mut_special_fields(&mut self) -> &mut crate::SpecialFields {
8139
0
            &mut self.special_fields
8140
0
        }
8141
8142
0
        fn new() -> Annotation {
8143
0
            Annotation::new()
8144
0
        }
8145
8146
0
        fn clear(&mut self) {
8147
0
            self.path.clear();
8148
0
            self.source_file = ::std::option::Option::None;
8149
0
            self.begin = ::std::option::Option::None;
8150
0
            self.end = ::std::option::Option::None;
8151
0
            self.special_fields.clear();
8152
0
        }
8153
8154
0
        fn default_instance() -> &'static Annotation {
8155
            static instance: Annotation = Annotation {
8156
                path: ::std::vec::Vec::new(),
8157
                source_file: ::std::option::Option::None,
8158
                begin: ::std::option::Option::None,
8159
                end: ::std::option::Option::None,
8160
                special_fields: crate::SpecialFields::new(),
8161
            };
8162
0
            &instance
8163
0
        }
8164
    }
8165
8166
    impl crate::MessageFull for Annotation {
8167
0
        fn descriptor() -> crate::reflect::MessageDescriptor {
8168
            static descriptor: crate::rt::Lazy<crate::reflect::MessageDescriptor> = crate::rt::Lazy::new();
8169
0
            descriptor.get(|| super::file_descriptor().message_by_package_relative_name("GeneratedCodeInfo.Annotation").unwrap()).clone()
8170
0
        }
8171
    }
8172
8173
    impl ::std::fmt::Display for Annotation {
8174
0
        fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
8175
0
            crate::text_format::fmt(self, f)
8176
0
        }
8177
    }
8178
8179
    impl crate::reflect::ProtobufValue for Annotation {
8180
        type RuntimeType = crate::reflect::rt::RuntimeTypeMessage<Self>;
8181
    }
8182
}
8183
8184
static file_descriptor_proto_data: &'static [u8] = b"\
8185
    \n\x20google/protobuf/descriptor.proto\x12\x0fgoogle.protobuf\"M\n\x11Fi\
8186
    leDescriptorSet\x128\n\x04file\x18\x01\x20\x03(\x0b2$.google.protobuf.Fi\
8187
    leDescriptorProtoR\x04file\"\xe4\x04\n\x13FileDescriptorProto\x12\x12\n\
8188
    \x04name\x18\x01\x20\x01(\tR\x04name\x12\x18\n\x07package\x18\x02\x20\
8189
    \x01(\tR\x07package\x12\x1e\n\ndependency\x18\x03\x20\x03(\tR\ndependenc\
8190
    y\x12+\n\x11public_dependency\x18\n\x20\x03(\x05R\x10publicDependency\
8191
    \x12'\n\x0fweak_dependency\x18\x0b\x20\x03(\x05R\x0eweakDependency\x12C\
8192
    \n\x0cmessage_type\x18\x04\x20\x03(\x0b2\x20.google.protobuf.DescriptorP\
8193
    rotoR\x0bmessageType\x12A\n\tenum_type\x18\x05\x20\x03(\x0b2$.google.pro\
8194
    tobuf.EnumDescriptorProtoR\x08enumType\x12A\n\x07service\x18\x06\x20\x03\
8195
    (\x0b2'.google.protobuf.ServiceDescriptorProtoR\x07service\x12C\n\texten\
8196
    sion\x18\x07\x20\x03(\x0b2%.google.protobuf.FieldDescriptorProtoR\texten\
8197
    sion\x126\n\x07options\x18\x08\x20\x01(\x0b2\x1c.google.protobuf.FileOpt\
8198
    ionsR\x07options\x12I\n\x10source_code_info\x18\t\x20\x01(\x0b2\x1f.goog\
8199
    le.protobuf.SourceCodeInfoR\x0esourceCodeInfo\x12\x16\n\x06syntax\x18\
8200
    \x0c\x20\x01(\tR\x06syntax\"\xb9\x06\n\x0fDescriptorProto\x12\x12\n\x04n\
8201
    ame\x18\x01\x20\x01(\tR\x04name\x12;\n\x05field\x18\x02\x20\x03(\x0b2%.g\
8202
    oogle.protobuf.FieldDescriptorProtoR\x05field\x12C\n\textension\x18\x06\
8203
    \x20\x03(\x0b2%.google.protobuf.FieldDescriptorProtoR\textension\x12A\n\
8204
    \x0bnested_type\x18\x03\x20\x03(\x0b2\x20.google.protobuf.DescriptorProt\
8205
    oR\nnestedType\x12A\n\tenum_type\x18\x04\x20\x03(\x0b2$.google.protobuf.\
8206
    EnumDescriptorProtoR\x08enumType\x12X\n\x0fextension_range\x18\x05\x20\
8207
    \x03(\x0b2/.google.protobuf.DescriptorProto.ExtensionRangeR\x0eextension\
8208
    Range\x12D\n\noneof_decl\x18\x08\x20\x03(\x0b2%.google.protobuf.OneofDes\
8209
    criptorProtoR\toneofDecl\x129\n\x07options\x18\x07\x20\x01(\x0b2\x1f.goo\
8210
    gle.protobuf.MessageOptionsR\x07options\x12U\n\x0ereserved_range\x18\t\
8211
    \x20\x03(\x0b2..google.protobuf.DescriptorProto.ReservedRangeR\rreserved\
8212
    Range\x12#\n\rreserved_name\x18\n\x20\x03(\tR\x0creservedName\x1az\n\x0e\
8213
    ExtensionRange\x12\x14\n\x05start\x18\x01\x20\x01(\x05R\x05start\x12\x10\
8214
    \n\x03end\x18\x02\x20\x01(\x05R\x03end\x12@\n\x07options\x18\x03\x20\x01\
8215
    (\x0b2&.google.protobuf.ExtensionRangeOptionsR\x07options\x1a7\n\rReserv\
8216
    edRange\x12\x14\n\x05start\x18\x01\x20\x01(\x05R\x05start\x12\x10\n\x03e\
8217
    nd\x18\x02\x20\x01(\x05R\x03end\"|\n\x15ExtensionRangeOptions\x12X\n\x14\
8218
    uninterpreted_option\x18\xe7\x07\x20\x03(\x0b2$.google.protobuf.Uninterp\
8219
    retedOptionR\x13uninterpretedOption*\t\x08\xe8\x07\x10\x80\x80\x80\x80\
8220
    \x02\"\xc1\x06\n\x14FieldDescriptorProto\x12\x12\n\x04name\x18\x01\x20\
8221
    \x01(\tR\x04name\x12\x16\n\x06number\x18\x03\x20\x01(\x05R\x06number\x12\
8222
    A\n\x05label\x18\x04\x20\x01(\x0e2+.google.protobuf.FieldDescriptorProto\
8223
    .LabelR\x05label\x12>\n\x04type\x18\x05\x20\x01(\x0e2*.google.protobuf.F\
8224
    ieldDescriptorProto.TypeR\x04type\x12\x1b\n\ttype_name\x18\x06\x20\x01(\
8225
    \tR\x08typeName\x12\x1a\n\x08extendee\x18\x02\x20\x01(\tR\x08extendee\
8226
    \x12#\n\rdefault_value\x18\x07\x20\x01(\tR\x0cdefaultValue\x12\x1f\n\x0b\
8227
    oneof_index\x18\t\x20\x01(\x05R\noneofIndex\x12\x1b\n\tjson_name\x18\n\
8228
    \x20\x01(\tR\x08jsonName\x127\n\x07options\x18\x08\x20\x01(\x0b2\x1d.goo\
8229
    gle.protobuf.FieldOptionsR\x07options\x12'\n\x0fproto3_optional\x18\x11\
8230
    \x20\x01(\x08R\x0eproto3Optional\"\xb6\x02\n\x04Type\x12\x0f\n\x0bTYPE_D\
8231
    OUBLE\x10\x01\x12\x0e\n\nTYPE_FLOAT\x10\x02\x12\x0e\n\nTYPE_INT64\x10\
8232
    \x03\x12\x0f\n\x0bTYPE_UINT64\x10\x04\x12\x0e\n\nTYPE_INT32\x10\x05\x12\
8233
    \x10\n\x0cTYPE_FIXED64\x10\x06\x12\x10\n\x0cTYPE_FIXED32\x10\x07\x12\r\n\
8234
    \tTYPE_BOOL\x10\x08\x12\x0f\n\x0bTYPE_STRING\x10\t\x12\x0e\n\nTYPE_GROUP\
8235
    \x10\n\x12\x10\n\x0cTYPE_MESSAGE\x10\x0b\x12\x0e\n\nTYPE_BYTES\x10\x0c\
8236
    \x12\x0f\n\x0bTYPE_UINT32\x10\r\x12\r\n\tTYPE_ENUM\x10\x0e\x12\x11\n\rTY\
8237
    PE_SFIXED32\x10\x0f\x12\x11\n\rTYPE_SFIXED64\x10\x10\x12\x0f\n\x0bTYPE_S\
8238
    INT32\x10\x11\x12\x0f\n\x0bTYPE_SINT64\x10\x12\"C\n\x05Label\x12\x12\n\
8239
    \x0eLABEL_OPTIONAL\x10\x01\x12\x12\n\x0eLABEL_REQUIRED\x10\x02\x12\x12\n\
8240
    \x0eLABEL_REPEATED\x10\x03\"c\n\x14OneofDescriptorProto\x12\x12\n\x04nam\
8241
    e\x18\x01\x20\x01(\tR\x04name\x127\n\x07options\x18\x02\x20\x01(\x0b2\
8242
    \x1d.google.protobuf.OneofOptionsR\x07options\"\xe3\x02\n\x13EnumDescrip\
8243
    torProto\x12\x12\n\x04name\x18\x01\x20\x01(\tR\x04name\x12?\n\x05value\
8244
    \x18\x02\x20\x03(\x0b2).google.protobuf.EnumValueDescriptorProtoR\x05val\
8245
    ue\x126\n\x07options\x18\x03\x20\x01(\x0b2\x1c.google.protobuf.EnumOptio\
8246
    nsR\x07options\x12]\n\x0ereserved_range\x18\x04\x20\x03(\x0b26.google.pr\
8247
    otobuf.EnumDescriptorProto.EnumReservedRangeR\rreservedRange\x12#\n\rres\
8248
    erved_name\x18\x05\x20\x03(\tR\x0creservedName\x1a;\n\x11EnumReservedRan\
8249
    ge\x12\x14\n\x05start\x18\x01\x20\x01(\x05R\x05start\x12\x10\n\x03end\
8250
    \x18\x02\x20\x01(\x05R\x03end\"\x83\x01\n\x18EnumValueDescriptorProto\
8251
    \x12\x12\n\x04name\x18\x01\x20\x01(\tR\x04name\x12\x16\n\x06number\x18\
8252
    \x02\x20\x01(\x05R\x06number\x12;\n\x07options\x18\x03\x20\x01(\x0b2!.go\
8253
    ogle.protobuf.EnumValueOptionsR\x07options\"\xa7\x01\n\x16ServiceDescrip\
8254
    torProto\x12\x12\n\x04name\x18\x01\x20\x01(\tR\x04name\x12>\n\x06method\
8255
    \x18\x02\x20\x03(\x0b2&.google.protobuf.MethodDescriptorProtoR\x06method\
8256
    \x129\n\x07options\x18\x03\x20\x01(\x0b2\x1f.google.protobuf.ServiceOpti\
8257
    onsR\x07options\"\x89\x02\n\x15MethodDescriptorProto\x12\x12\n\x04name\
8258
    \x18\x01\x20\x01(\tR\x04name\x12\x1d\n\ninput_type\x18\x02\x20\x01(\tR\t\
8259
    inputType\x12\x1f\n\x0boutput_type\x18\x03\x20\x01(\tR\noutputType\x128\
8260
    \n\x07options\x18\x04\x20\x01(\x0b2\x1e.google.protobuf.MethodOptionsR\
8261
    \x07options\x120\n\x10client_streaming\x18\x05\x20\x01(\x08:\x05falseR\
8262
    \x0fclientStreaming\x120\n\x10server_streaming\x18\x06\x20\x01(\x08:\x05\
8263
    falseR\x0fserverStreaming\"\x91\t\n\x0bFileOptions\x12!\n\x0cjava_packag\
8264
    e\x18\x01\x20\x01(\tR\x0bjavaPackage\x120\n\x14java_outer_classname\x18\
8265
    \x08\x20\x01(\tR\x12javaOuterClassname\x125\n\x13java_multiple_files\x18\
8266
    \n\x20\x01(\x08:\x05falseR\x11javaMultipleFiles\x12D\n\x1djava_generate_\
8267
    equals_and_hash\x18\x14\x20\x01(\x08R\x19javaGenerateEqualsAndHashB\x02\
8268
    \x18\x01\x12:\n\x16java_string_check_utf8\x18\x1b\x20\x01(\x08:\x05false\
8269
    R\x13javaStringCheckUtf8\x12S\n\x0coptimize_for\x18\t\x20\x01(\x0e2).goo\
8270
    gle.protobuf.FileOptions.OptimizeMode:\x05SPEEDR\x0boptimizeFor\x12\x1d\
8271
    \n\ngo_package\x18\x0b\x20\x01(\tR\tgoPackage\x125\n\x13cc_generic_servi\
8272
    ces\x18\x10\x20\x01(\x08:\x05falseR\x11ccGenericServices\x129\n\x15java_\
8273
    generic_services\x18\x11\x20\x01(\x08:\x05falseR\x13javaGenericServices\
8274
    \x125\n\x13py_generic_services\x18\x12\x20\x01(\x08:\x05falseR\x11pyGene\
8275
    ricServices\x127\n\x14php_generic_services\x18*\x20\x01(\x08:\x05falseR\
8276
    \x12phpGenericServices\x12%\n\ndeprecated\x18\x17\x20\x01(\x08:\x05false\
8277
    R\ndeprecated\x12.\n\x10cc_enable_arenas\x18\x1f\x20\x01(\x08:\x04trueR\
8278
    \x0eccEnableArenas\x12*\n\x11objc_class_prefix\x18$\x20\x01(\tR\x0fobjcC\
8279
    lassPrefix\x12)\n\x10csharp_namespace\x18%\x20\x01(\tR\x0fcsharpNamespac\
8280
    e\x12!\n\x0cswift_prefix\x18'\x20\x01(\tR\x0bswiftPrefix\x12(\n\x10php_c\
8281
    lass_prefix\x18(\x20\x01(\tR\x0ephpClassPrefix\x12#\n\rphp_namespace\x18\
8282
    )\x20\x01(\tR\x0cphpNamespace\x124\n\x16php_metadata_namespace\x18,\x20\
8283
    \x01(\tR\x14phpMetadataNamespace\x12!\n\x0cruby_package\x18-\x20\x01(\tR\
8284
    \x0brubyPackage\x12X\n\x14uninterpreted_option\x18\xe7\x07\x20\x03(\x0b2\
8285
    $.google.protobuf.UninterpretedOptionR\x13uninterpretedOption\":\n\x0cOp\
8286
    timizeMode\x12\t\n\x05SPEED\x10\x01\x12\r\n\tCODE_SIZE\x10\x02\x12\x10\n\
8287
    \x0cLITE_RUNTIME\x10\x03*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02J\x04\x08\
8288
    &\x10'\"\xe3\x02\n\x0eMessageOptions\x12<\n\x17message_set_wire_format\
8289
    \x18\x01\x20\x01(\x08:\x05falseR\x14messageSetWireFormat\x12L\n\x1fno_st\
8290
    andard_descriptor_accessor\x18\x02\x20\x01(\x08:\x05falseR\x1cnoStandard\
8291
    DescriptorAccessor\x12%\n\ndeprecated\x18\x03\x20\x01(\x08:\x05falseR\nd\
8292
    eprecated\x12\x1b\n\tmap_entry\x18\x07\x20\x01(\x08R\x08mapEntry\x12X\n\
8293
    \x14uninterpreted_option\x18\xe7\x07\x20\x03(\x0b2$.google.protobuf.Unin\
8294
    terpretedOptionR\x13uninterpretedOption*\t\x08\xe8\x07\x10\x80\x80\x80\
8295
    \x80\x02J\x04\x08\x04\x10\x05J\x04\x08\x05\x10\x06J\x04\x08\x06\x10\x07J\
8296
    \x04\x08\x08\x10\tJ\x04\x08\t\x10\n\"\xe2\x03\n\x0cFieldOptions\x12A\n\
8297
    \x05ctype\x18\x01\x20\x01(\x0e2#.google.protobuf.FieldOptions.CType:\x06\
8298
    STRINGR\x05ctype\x12\x16\n\x06packed\x18\x02\x20\x01(\x08R\x06packed\x12\
8299
    G\n\x06jstype\x18\x06\x20\x01(\x0e2$.google.protobuf.FieldOptions.JSType\
8300
    :\tJS_NORMALR\x06jstype\x12\x19\n\x04lazy\x18\x05\x20\x01(\x08:\x05false\
8301
    R\x04lazy\x12%\n\ndeprecated\x18\x03\x20\x01(\x08:\x05falseR\ndeprecated\
8302
    \x12\x19\n\x04weak\x18\n\x20\x01(\x08:\x05falseR\x04weak\x12X\n\x14unint\
8303
    erpreted_option\x18\xe7\x07\x20\x03(\x0b2$.google.protobuf.Uninterpreted\
8304
    OptionR\x13uninterpretedOption\"/\n\x05CType\x12\n\n\x06STRING\x10\0\x12\
8305
    \x08\n\x04CORD\x10\x01\x12\x10\n\x0cSTRING_PIECE\x10\x02\"5\n\x06JSType\
8306
    \x12\r\n\tJS_NORMAL\x10\0\x12\r\n\tJS_STRING\x10\x01\x12\r\n\tJS_NUMBER\
8307
    \x10\x02*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02J\x04\x08\x04\x10\x05\"s\
8308
    \n\x0cOneofOptions\x12X\n\x14uninterpreted_option\x18\xe7\x07\x20\x03(\
8309
    \x0b2$.google.protobuf.UninterpretedOptionR\x13uninterpretedOption*\t\
8310
    \x08\xe8\x07\x10\x80\x80\x80\x80\x02\"\xc0\x01\n\x0bEnumOptions\x12\x1f\
8311
    \n\x0ballow_alias\x18\x02\x20\x01(\x08R\nallowAlias\x12%\n\ndeprecated\
8312
    \x18\x03\x20\x01(\x08:\x05falseR\ndeprecated\x12X\n\x14uninterpreted_opt\
8313
    ion\x18\xe7\x07\x20\x03(\x0b2$.google.protobuf.UninterpretedOptionR\x13u\
8314
    ninterpretedOption*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02J\x04\x08\x05\
8315
    \x10\x06\"\x9e\x01\n\x10EnumValueOptions\x12%\n\ndeprecated\x18\x01\x20\
8316
    \x01(\x08:\x05falseR\ndeprecated\x12X\n\x14uninterpreted_option\x18\xe7\
8317
    \x07\x20\x03(\x0b2$.google.protobuf.UninterpretedOptionR\x13uninterprete\
8318
    dOption*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02\"\x9c\x01\n\x0eServiceOpt\
8319
    ions\x12%\n\ndeprecated\x18!\x20\x01(\x08:\x05falseR\ndeprecated\x12X\n\
8320
    \x14uninterpreted_option\x18\xe7\x07\x20\x03(\x0b2$.google.protobuf.Unin\
8321
    terpretedOptionR\x13uninterpretedOption*\t\x08\xe8\x07\x10\x80\x80\x80\
8322
    \x80\x02\"\xe0\x02\n\rMethodOptions\x12%\n\ndeprecated\x18!\x20\x01(\x08\
8323
    :\x05falseR\ndeprecated\x12q\n\x11idempotency_level\x18\"\x20\x01(\x0e2/\
8324
    .google.protobuf.MethodOptions.IdempotencyLevel:\x13IDEMPOTENCY_UNKNOWNR\
8325
    \x10idempotencyLevel\x12X\n\x14uninterpreted_option\x18\xe7\x07\x20\x03(\
8326
    \x0b2$.google.protobuf.UninterpretedOptionR\x13uninterpretedOption\"P\n\
8327
    \x10IdempotencyLevel\x12\x17\n\x13IDEMPOTENCY_UNKNOWN\x10\0\x12\x13\n\
8328
    \x0fNO_SIDE_EFFECTS\x10\x01\x12\x0e\n\nIDEMPOTENT\x10\x02*\t\x08\xe8\x07\
8329
    \x10\x80\x80\x80\x80\x02\"\x9a\x03\n\x13UninterpretedOption\x12A\n\x04na\
8330
    me\x18\x02\x20\x03(\x0b2-.google.protobuf.UninterpretedOption.NamePartR\
8331
    \x04name\x12)\n\x10identifier_value\x18\x03\x20\x01(\tR\x0fidentifierVal\
8332
    ue\x12,\n\x12positive_int_value\x18\x04\x20\x01(\x04R\x10positiveIntValu\
8333
    e\x12,\n\x12negative_int_value\x18\x05\x20\x01(\x03R\x10negativeIntValue\
8334
    \x12!\n\x0cdouble_value\x18\x06\x20\x01(\x01R\x0bdoubleValue\x12!\n\x0cs\
8335
    tring_value\x18\x07\x20\x01(\x0cR\x0bstringValue\x12'\n\x0faggregate_val\
8336
    ue\x18\x08\x20\x01(\tR\x0eaggregateValue\x1aJ\n\x08NamePart\x12\x1b\n\tn\
8337
    ame_part\x18\x01\x20\x02(\tR\x08namePart\x12!\n\x0cis_extension\x18\x02\
8338
    \x20\x02(\x08R\x0bisExtension\"\xa7\x02\n\x0eSourceCodeInfo\x12D\n\x08lo\
8339
    cation\x18\x01\x20\x03(\x0b2(.google.protobuf.SourceCodeInfo.LocationR\
8340
    \x08location\x1a\xce\x01\n\x08Location\x12\x16\n\x04path\x18\x01\x20\x03\
8341
    (\x05R\x04pathB\x02\x10\x01\x12\x16\n\x04span\x18\x02\x20\x03(\x05R\x04s\
8342
    panB\x02\x10\x01\x12)\n\x10leading_comments\x18\x03\x20\x01(\tR\x0fleadi\
8343
    ngComments\x12+\n\x11trailing_comments\x18\x04\x20\x01(\tR\x10trailingCo\
8344
    mments\x12:\n\x19leading_detached_comments\x18\x06\x20\x03(\tR\x17leadin\
8345
    gDetachedComments\"\xd1\x01\n\x11GeneratedCodeInfo\x12M\n\nannotation\
8346
    \x18\x01\x20\x03(\x0b2-.google.protobuf.GeneratedCodeInfo.AnnotationR\na\
8347
    nnotation\x1am\n\nAnnotation\x12\x16\n\x04path\x18\x01\x20\x03(\x05R\x04\
8348
    pathB\x02\x10\x01\x12\x1f\n\x0bsource_file\x18\x02\x20\x01(\tR\nsourceFi\
8349
    le\x12\x14\n\x05begin\x18\x03\x20\x01(\x05R\x05begin\x12\x10\n\x03end\
8350
    \x18\x04\x20\x01(\x05R\x03endB~\n\x13com.google.protobufB\x10DescriptorP\
8351
    rotosH\x01Z-google.golang.org/protobuf/types/descriptorpb\xf8\x01\x01\
8352
    \xa2\x02\x03GPB\xaa\x02\x1aGoogle.Protobuf.ReflectionJ\x82\xca\x02\n\x07\
8353
    \x12\x05'\0\x8e\x07\x01\n\xaa\x0f\n\x01\x0c\x12\x03'\0\x122\xc1\x0c\x20P\
8354
    rotocol\x20Buffers\x20-\x20Google's\x20data\x20interchange\x20format\n\
8355
    \x20Copyright\x202008\x20Google\x20Inc.\x20\x20All\x20rights\x20reserved\
8356
    .\n\x20https://developers.google.com/protocol-buffers/\n\n\x20Redistribu\
8357
    tion\x20and\x20use\x20in\x20source\x20and\x20binary\x20forms,\x20with\
8358
    \x20or\x20without\n\x20modification,\x20are\x20permitted\x20provided\x20\
8359
    that\x20the\x20following\x20conditions\x20are\n\x20met:\n\n\x20\x20\x20\
8360
    \x20\x20*\x20Redistributions\x20of\x20source\x20code\x20must\x20retain\
8361
    \x20the\x20above\x20copyright\n\x20notice,\x20this\x20list\x20of\x20cond\
8362
    itions\x20and\x20the\x20following\x20disclaimer.\n\x20\x20\x20\x20\x20*\
8363
    \x20Redistributions\x20in\x20binary\x20form\x20must\x20reproduce\x20the\
8364
    \x20above\n\x20copyright\x20notice,\x20this\x20list\x20of\x20conditions\
8365
    \x20and\x20the\x20following\x20disclaimer\n\x20in\x20the\x20documentatio\
8366
    n\x20and/or\x20other\x20materials\x20provided\x20with\x20the\n\x20distri\
8367
    bution.\n\x20\x20\x20\x20\x20*\x20Neither\x20the\x20name\x20of\x20Google\
8368
    \x20Inc.\x20nor\x20the\x20names\x20of\x20its\n\x20contributors\x20may\
8369
    \x20be\x20used\x20to\x20endorse\x20or\x20promote\x20products\x20derived\
8370
    \x20from\n\x20this\x20software\x20without\x20specific\x20prior\x20writte\
8371
    n\x20permission.\n\n\x20THIS\x20SOFTWARE\x20IS\x20PROVIDED\x20BY\x20THE\
8372
    \x20COPYRIGHT\x20HOLDERS\x20AND\x20CONTRIBUTORS\n\x20\"AS\x20IS\"\x20AND\
8373
    \x20ANY\x20EXPRESS\x20OR\x20IMPLIED\x20WARRANTIES,\x20INCLUDING,\x20BUT\
8374
    \x20NOT\n\x20LIMITED\x20TO,\x20THE\x20IMPLIED\x20WARRANTIES\x20OF\x20MER\
8375
    CHANTABILITY\x20AND\x20FITNESS\x20FOR\n\x20A\x20PARTICULAR\x20PURPOSE\
8376
    \x20ARE\x20DISCLAIMED.\x20IN\x20NO\x20EVENT\x20SHALL\x20THE\x20COPYRIGHT\
8377
    \n\x20OWNER\x20OR\x20CONTRIBUTORS\x20BE\x20LIABLE\x20FOR\x20ANY\x20DIREC\
8378
    T,\x20INDIRECT,\x20INCIDENTAL,\n\x20SPECIAL,\x20EXEMPLARY,\x20OR\x20CONS\
8379
    EQUENTIAL\x20DAMAGES\x20(INCLUDING,\x20BUT\x20NOT\n\x20LIMITED\x20TO,\
8380
    \x20PROCUREMENT\x20OF\x20SUBSTITUTE\x20GOODS\x20OR\x20SERVICES;\x20LOSS\
8381
    \x20OF\x20USE,\n\x20DATA,\x20OR\x20PROFITS;\x20OR\x20BUSINESS\x20INTERRU\
8382
    PTION)\x20HOWEVER\x20CAUSED\x20AND\x20ON\x20ANY\n\x20THEORY\x20OF\x20LIA\
8383
    BILITY,\x20WHETHER\x20IN\x20CONTRACT,\x20STRICT\x20LIABILITY,\x20OR\x20T\
8384
    ORT\n\x20(INCLUDING\x20NEGLIGENCE\x20OR\x20OTHERWISE)\x20ARISING\x20IN\
8385
    \x20ANY\x20WAY\x20OUT\x20OF\x20THE\x20USE\n\x20OF\x20THIS\x20SOFTWARE,\
8386
    \x20EVEN\x20IF\x20ADVISED\x20OF\x20THE\x20POSSIBILITY\x20OF\x20SUCH\x20D\
8387
    AMAGE.\n2\xdb\x02\x20Author:\x20kenton@google.com\x20(Kenton\x20Varda)\n\
8388
    \x20\x20Based\x20on\x20original\x20Protocol\x20Buffers\x20design\x20by\n\
8389
    \x20\x20Sanjay\x20Ghemawat,\x20Jeff\x20Dean,\x20and\x20others.\n\n\x20Th\
8390
    e\x20messages\x20in\x20this\x20file\x20describe\x20the\x20definitions\
8391
    \x20found\x20in\x20.proto\x20files.\n\x20A\x20valid\x20.proto\x20file\
8392
    \x20can\x20be\x20translated\x20directly\x20to\x20a\x20FileDescriptorProt\
8393
    o\n\x20without\x20any\x20other\x20information\x20(e.g.\x20without\x20rea\
8394
    ding\x20its\x20imports).\n\n\x08\n\x01\x02\x12\x03)\0\x18\n\x08\n\x01\
8395
    \x08\x12\x03+\0D\n\t\n\x02\x08\x0b\x12\x03+\0D\n\x08\n\x01\x08\x12\x03,\
8396
    \0,\n\t\n\x02\x08\x01\x12\x03,\0,\n\x08\n\x01\x08\x12\x03-\01\n\t\n\x02\
8397
    \x08\x08\x12\x03-\01\n\x08\n\x01\x08\x12\x03.\07\n\t\n\x02\x08%\x12\x03.\
8398
    \07\n\x08\n\x01\x08\x12\x03/\0!\n\t\n\x02\x08$\x12\x03/\0!\n\x08\n\x01\
8399
    \x08\x12\x030\0\x1f\n\t\n\x02\x08\x1f\x12\x030\0\x1f\n\x08\n\x01\x08\x12\
8400
    \x034\0\x1c\n\x7f\n\x02\x08\t\x12\x034\0\x1c\x1at\x20descriptor.proto\
8401
    \x20must\x20be\x20optimized\x20for\x20speed\x20because\x20reflection-bas\
8402
    ed\n\x20algorithms\x20don't\x20work\x20during\x20bootstrapping.\n\nj\n\
8403
    \x02\x04\0\x12\x048\0:\x01\x1a^\x20The\x20protocol\x20compiler\x20can\
8404
    \x20output\x20a\x20FileDescriptorSet\x20containing\x20the\x20.proto\n\
8405
    \x20files\x20it\x20parses.\n\n\n\n\x03\x04\0\x01\x12\x038\x08\x19\n\x0b\
8406
    \n\x04\x04\0\x02\0\x12\x039\x02(\n\x0c\n\x05\x04\0\x02\0\x04\x12\x039\
8407
    \x02\n\n\x0c\n\x05\x04\0\x02\0\x06\x12\x039\x0b\x1e\n\x0c\n\x05\x04\0\
8408
    \x02\0\x01\x12\x039\x1f#\n\x0c\n\x05\x04\0\x02\0\x03\x12\x039&'\n/\n\x02\
8409
    \x04\x01\x12\x04=\0Z\x01\x1a#\x20Describes\x20a\x20complete\x20.proto\
8410
    \x20file.\n\n\n\n\x03\x04\x01\x01\x12\x03=\x08\x1b\n9\n\x04\x04\x01\x02\
8411
    \0\x12\x03>\x02\x1b\",\x20file\x20name,\x20relative\x20to\x20root\x20of\
8412
    \x20source\x20tree\n\n\x0c\n\x05\x04\x01\x02\0\x04\x12\x03>\x02\n\n\x0c\
8413
    \n\x05\x04\x01\x02\0\x05\x12\x03>\x0b\x11\n\x0c\n\x05\x04\x01\x02\0\x01\
8414
    \x12\x03>\x12\x16\n\x0c\n\x05\x04\x01\x02\0\x03\x12\x03>\x19\x1a\n*\n\
8415
    \x04\x04\x01\x02\x01\x12\x03?\x02\x1e\"\x1d\x20e.g.\x20\"foo\",\x20\"foo\
8416
    .bar\",\x20etc.\n\n\x0c\n\x05\x04\x01\x02\x01\x04\x12\x03?\x02\n\n\x0c\n\
8417
    \x05\x04\x01\x02\x01\x05\x12\x03?\x0b\x11\n\x0c\n\x05\x04\x01\x02\x01\
8418
    \x01\x12\x03?\x12\x19\n\x0c\n\x05\x04\x01\x02\x01\x03\x12\x03?\x1c\x1d\n\
8419
    4\n\x04\x04\x01\x02\x02\x12\x03B\x02!\x1a'\x20Names\x20of\x20files\x20im\
8420
    ported\x20by\x20this\x20file.\n\n\x0c\n\x05\x04\x01\x02\x02\x04\x12\x03B\
8421
    \x02\n\n\x0c\n\x05\x04\x01\x02\x02\x05\x12\x03B\x0b\x11\n\x0c\n\x05\x04\
8422
    \x01\x02\x02\x01\x12\x03B\x12\x1c\n\x0c\n\x05\x04\x01\x02\x02\x03\x12\
8423
    \x03B\x1f\x20\nQ\n\x04\x04\x01\x02\x03\x12\x03D\x02(\x1aD\x20Indexes\x20\
8424
    of\x20the\x20public\x20imported\x20files\x20in\x20the\x20dependency\x20l\
8425
    ist\x20above.\n\n\x0c\n\x05\x04\x01\x02\x03\x04\x12\x03D\x02\n\n\x0c\n\
8426
    \x05\x04\x01\x02\x03\x05\x12\x03D\x0b\x10\n\x0c\n\x05\x04\x01\x02\x03\
8427
    \x01\x12\x03D\x11\"\n\x0c\n\x05\x04\x01\x02\x03\x03\x12\x03D%'\nz\n\x04\
8428
    \x04\x01\x02\x04\x12\x03G\x02&\x1am\x20Indexes\x20of\x20the\x20weak\x20i\
8429
    mported\x20files\x20in\x20the\x20dependency\x20list.\n\x20For\x20Google-\
8430
    internal\x20migration\x20only.\x20Do\x20not\x20use.\n\n\x0c\n\x05\x04\
8431
    \x01\x02\x04\x04\x12\x03G\x02\n\n\x0c\n\x05\x04\x01\x02\x04\x05\x12\x03G\
8432
    \x0b\x10\n\x0c\n\x05\x04\x01\x02\x04\x01\x12\x03G\x11\x20\n\x0c\n\x05\
8433
    \x04\x01\x02\x04\x03\x12\x03G#%\n6\n\x04\x04\x01\x02\x05\x12\x03J\x02,\
8434
    \x1a)\x20All\x20top-level\x20definitions\x20in\x20this\x20file.\n\n\x0c\
8435
    \n\x05\x04\x01\x02\x05\x04\x12\x03J\x02\n\n\x0c\n\x05\x04\x01\x02\x05\
8436
    \x06\x12\x03J\x0b\x1a\n\x0c\n\x05\x04\x01\x02\x05\x01\x12\x03J\x1b'\n\
8437
    \x0c\n\x05\x04\x01\x02\x05\x03\x12\x03J*+\n\x0b\n\x04\x04\x01\x02\x06\
8438
    \x12\x03K\x02-\n\x0c\n\x05\x04\x01\x02\x06\x04\x12\x03K\x02\n\n\x0c\n\
8439
    \x05\x04\x01\x02\x06\x06\x12\x03K\x0b\x1e\n\x0c\n\x05\x04\x01\x02\x06\
8440
    \x01\x12\x03K\x1f(\n\x0c\n\x05\x04\x01\x02\x06\x03\x12\x03K+,\n\x0b\n\
8441
    \x04\x04\x01\x02\x07\x12\x03L\x02.\n\x0c\n\x05\x04\x01\x02\x07\x04\x12\
8442
    \x03L\x02\n\n\x0c\n\x05\x04\x01\x02\x07\x06\x12\x03L\x0b!\n\x0c\n\x05\
8443
    \x04\x01\x02\x07\x01\x12\x03L\")\n\x0c\n\x05\x04\x01\x02\x07\x03\x12\x03\
8444
    L,-\n\x0b\n\x04\x04\x01\x02\x08\x12\x03M\x02.\n\x0c\n\x05\x04\x01\x02\
8445
    \x08\x04\x12\x03M\x02\n\n\x0c\n\x05\x04\x01\x02\x08\x06\x12\x03M\x0b\x1f\
8446
    \n\x0c\n\x05\x04\x01\x02\x08\x01\x12\x03M\x20)\n\x0c\n\x05\x04\x01\x02\
8447
    \x08\x03\x12\x03M,-\n\x0b\n\x04\x04\x01\x02\t\x12\x03O\x02#\n\x0c\n\x05\
8448
    \x04\x01\x02\t\x04\x12\x03O\x02\n\n\x0c\n\x05\x04\x01\x02\t\x06\x12\x03O\
8449
    \x0b\x16\n\x0c\n\x05\x04\x01\x02\t\x01\x12\x03O\x17\x1e\n\x0c\n\x05\x04\
8450
    \x01\x02\t\x03\x12\x03O!\"\n\xf4\x01\n\x04\x04\x01\x02\n\x12\x03U\x02/\
8451
    \x1a\xe6\x01\x20This\x20field\x20contains\x20optional\x20information\x20\
8452
    about\x20the\x20original\x20source\x20code.\n\x20You\x20may\x20safely\
8453
    \x20remove\x20this\x20entire\x20field\x20without\x20harming\x20runtime\n\
8454
    \x20functionality\x20of\x20the\x20descriptors\x20--\x20the\x20informatio\
8455
    n\x20is\x20needed\x20only\x20by\n\x20development\x20tools.\n\n\x0c\n\x05\
8456
    \x04\x01\x02\n\x04\x12\x03U\x02\n\n\x0c\n\x05\x04\x01\x02\n\x06\x12\x03U\
8457
    \x0b\x19\n\x0c\n\x05\x04\x01\x02\n\x01\x12\x03U\x1a*\n\x0c\n\x05\x04\x01\
8458
    \x02\n\x03\x12\x03U-.\n]\n\x04\x04\x01\x02\x0b\x12\x03Y\x02\x1e\x1aP\x20\
8459
    The\x20syntax\x20of\x20the\x20proto\x20file.\n\x20The\x20supported\x20va\
8460
    lues\x20are\x20\"proto2\"\x20and\x20\"proto3\".\n\n\x0c\n\x05\x04\x01\
8461
    \x02\x0b\x04\x12\x03Y\x02\n\n\x0c\n\x05\x04\x01\x02\x0b\x05\x12\x03Y\x0b\
8462
    \x11\n\x0c\n\x05\x04\x01\x02\x0b\x01\x12\x03Y\x12\x18\n\x0c\n\x05\x04\
8463
    \x01\x02\x0b\x03\x12\x03Y\x1b\x1d\n'\n\x02\x04\x02\x12\x04]\0}\x01\x1a\
8464
    \x1b\x20Describes\x20a\x20message\x20type.\n\n\n\n\x03\x04\x02\x01\x12\
8465
    \x03]\x08\x17\n\x0b\n\x04\x04\x02\x02\0\x12\x03^\x02\x1b\n\x0c\n\x05\x04\
8466
    \x02\x02\0\x04\x12\x03^\x02\n\n\x0c\n\x05\x04\x02\x02\0\x05\x12\x03^\x0b\
8467
    \x11\n\x0c\n\x05\x04\x02\x02\0\x01\x12\x03^\x12\x16\n\x0c\n\x05\x04\x02\
8468
    \x02\0\x03\x12\x03^\x19\x1a\n\x0b\n\x04\x04\x02\x02\x01\x12\x03`\x02*\n\
8469
    \x0c\n\x05\x04\x02\x02\x01\x04\x12\x03`\x02\n\n\x0c\n\x05\x04\x02\x02\
8470
    \x01\x06\x12\x03`\x0b\x1f\n\x0c\n\x05\x04\x02\x02\x01\x01\x12\x03`\x20%\
8471
    \n\x0c\n\x05\x04\x02\x02\x01\x03\x12\x03`()\n\x0b\n\x04\x04\x02\x02\x02\
8472
    \x12\x03a\x02.\n\x0c\n\x05\x04\x02\x02\x02\x04\x12\x03a\x02\n\n\x0c\n\
8473
    \x05\x04\x02\x02\x02\x06\x12\x03a\x0b\x1f\n\x0c\n\x05\x04\x02\x02\x02\
8474
    \x01\x12\x03a\x20)\n\x0c\n\x05\x04\x02\x02\x02\x03\x12\x03a,-\n\x0b\n\
8475
    \x04\x04\x02\x02\x03\x12\x03c\x02+\n\x0c\n\x05\x04\x02\x02\x03\x04\x12\
8476
    \x03c\x02\n\n\x0c\n\x05\x04\x02\x02\x03\x06\x12\x03c\x0b\x1a\n\x0c\n\x05\
8477
    \x04\x02\x02\x03\x01\x12\x03c\x1b&\n\x0c\n\x05\x04\x02\x02\x03\x03\x12\
8478
    \x03c)*\n\x0b\n\x04\x04\x02\x02\x04\x12\x03d\x02-\n\x0c\n\x05\x04\x02\
8479
    \x02\x04\x04\x12\x03d\x02\n\n\x0c\n\x05\x04\x02\x02\x04\x06\x12\x03d\x0b\
8480
    \x1e\n\x0c\n\x05\x04\x02\x02\x04\x01\x12\x03d\x1f(\n\x0c\n\x05\x04\x02\
8481
    \x02\x04\x03\x12\x03d+,\n\x0c\n\x04\x04\x02\x03\0\x12\x04f\x02k\x03\n\
8482
    \x0c\n\x05\x04\x02\x03\0\x01\x12\x03f\n\x18\n\x1b\n\x06\x04\x02\x03\0\
8483
    \x02\0\x12\x03g\x04\x1d\"\x0c\x20Inclusive.\n\n\x0e\n\x07\x04\x02\x03\0\
8484
    \x02\0\x04\x12\x03g\x04\x0c\n\x0e\n\x07\x04\x02\x03\0\x02\0\x05\x12\x03g\
8485
    \r\x12\n\x0e\n\x07\x04\x02\x03\0\x02\0\x01\x12\x03g\x13\x18\n\x0e\n\x07\
8486
    \x04\x02\x03\0\x02\0\x03\x12\x03g\x1b\x1c\n\x1b\n\x06\x04\x02\x03\0\x02\
8487
    \x01\x12\x03h\x04\x1b\"\x0c\x20Exclusive.\n\n\x0e\n\x07\x04\x02\x03\0\
8488
    \x02\x01\x04\x12\x03h\x04\x0c\n\x0e\n\x07\x04\x02\x03\0\x02\x01\x05\x12\
8489
    \x03h\r\x12\n\x0e\n\x07\x04\x02\x03\0\x02\x01\x01\x12\x03h\x13\x16\n\x0e\
8490
    \n\x07\x04\x02\x03\0\x02\x01\x03\x12\x03h\x19\x1a\n\r\n\x06\x04\x02\x03\
8491
    \0\x02\x02\x12\x03j\x04/\n\x0e\n\x07\x04\x02\x03\0\x02\x02\x04\x12\x03j\
8492
    \x04\x0c\n\x0e\n\x07\x04\x02\x03\0\x02\x02\x06\x12\x03j\r\"\n\x0e\n\x07\
8493
    \x04\x02\x03\0\x02\x02\x01\x12\x03j#*\n\x0e\n\x07\x04\x02\x03\0\x02\x02\
8494
    \x03\x12\x03j-.\n\x0b\n\x04\x04\x02\x02\x05\x12\x03l\x02.\n\x0c\n\x05\
8495
    \x04\x02\x02\x05\x04\x12\x03l\x02\n\n\x0c\n\x05\x04\x02\x02\x05\x06\x12\
8496
    \x03l\x0b\x19\n\x0c\n\x05\x04\x02\x02\x05\x01\x12\x03l\x1a)\n\x0c\n\x05\
8497
    \x04\x02\x02\x05\x03\x12\x03l,-\n\x0b\n\x04\x04\x02\x02\x06\x12\x03n\x02\
8498
    /\n\x0c\n\x05\x04\x02\x02\x06\x04\x12\x03n\x02\n\n\x0c\n\x05\x04\x02\x02\
8499
    \x06\x06\x12\x03n\x0b\x1f\n\x0c\n\x05\x04\x02\x02\x06\x01\x12\x03n\x20*\
8500
    \n\x0c\n\x05\x04\x02\x02\x06\x03\x12\x03n-.\n\x0b\n\x04\x04\x02\x02\x07\
8501
    \x12\x03p\x02&\n\x0c\n\x05\x04\x02\x02\x07\x04\x12\x03p\x02\n\n\x0c\n\
8502
    \x05\x04\x02\x02\x07\x06\x12\x03p\x0b\x19\n\x0c\n\x05\x04\x02\x02\x07\
8503
    \x01\x12\x03p\x1a!\n\x0c\n\x05\x04\x02\x02\x07\x03\x12\x03p$%\n\xaa\x01\
8504
    \n\x04\x04\x02\x03\x01\x12\x04u\x02x\x03\x1a\x9b\x01\x20Range\x20of\x20r\
8505
    eserved\x20tag\x20numbers.\x20Reserved\x20tag\x20numbers\x20may\x20not\
8506
    \x20be\x20used\x20by\n\x20fields\x20or\x20extension\x20ranges\x20in\x20t\
8507
    he\x20same\x20message.\x20Reserved\x20ranges\x20may\n\x20not\x20overlap.\
8508
    \n\n\x0c\n\x05\x04\x02\x03\x01\x01\x12\x03u\n\x17\n\x1b\n\x06\x04\x02\
8509
    \x03\x01\x02\0\x12\x03v\x04\x1d\"\x0c\x20Inclusive.\n\n\x0e\n\x07\x04\
8510
    \x02\x03\x01\x02\0\x04\x12\x03v\x04\x0c\n\x0e\n\x07\x04\x02\x03\x01\x02\
8511
    \0\x05\x12\x03v\r\x12\n\x0e\n\x07\x04\x02\x03\x01\x02\0\x01\x12\x03v\x13\
8512
    \x18\n\x0e\n\x07\x04\x02\x03\x01\x02\0\x03\x12\x03v\x1b\x1c\n\x1b\n\x06\
8513
    \x04\x02\x03\x01\x02\x01\x12\x03w\x04\x1b\"\x0c\x20Exclusive.\n\n\x0e\n\
8514
    \x07\x04\x02\x03\x01\x02\x01\x04\x12\x03w\x04\x0c\n\x0e\n\x07\x04\x02\
8515
    \x03\x01\x02\x01\x05\x12\x03w\r\x12\n\x0e\n\x07\x04\x02\x03\x01\x02\x01\
8516
    \x01\x12\x03w\x13\x16\n\x0e\n\x07\x04\x02\x03\x01\x02\x01\x03\x12\x03w\
8517
    \x19\x1a\n\x0b\n\x04\x04\x02\x02\x08\x12\x03y\x02,\n\x0c\n\x05\x04\x02\
8518
    \x02\x08\x04\x12\x03y\x02\n\n\x0c\n\x05\x04\x02\x02\x08\x06\x12\x03y\x0b\
8519
    \x18\n\x0c\n\x05\x04\x02\x02\x08\x01\x12\x03y\x19'\n\x0c\n\x05\x04\x02\
8520
    \x02\x08\x03\x12\x03y*+\n\x82\x01\n\x04\x04\x02\x02\t\x12\x03|\x02%\x1au\
8521
    \x20Reserved\x20field\x20names,\x20which\x20may\x20not\x20be\x20used\x20\
8522
    by\x20fields\x20in\x20the\x20same\x20message.\n\x20A\x20given\x20name\
8523
    \x20may\x20only\x20be\x20reserved\x20once.\n\n\x0c\n\x05\x04\x02\x02\t\
8524
    \x04\x12\x03|\x02\n\n\x0c\n\x05\x04\x02\x02\t\x05\x12\x03|\x0b\x11\n\x0c\
8525
    \n\x05\x04\x02\x02\t\x01\x12\x03|\x12\x1f\n\x0c\n\x05\x04\x02\x02\t\x03\
8526
    \x12\x03|\"$\n\x0b\n\x02\x04\x03\x12\x05\x7f\0\x86\x01\x01\n\n\n\x03\x04\
8527
    \x03\x01\x12\x03\x7f\x08\x1d\nO\n\x04\x04\x03\x02\0\x12\x04\x81\x01\x02:\
8528
    \x1aA\x20The\x20parser\x20stores\x20options\x20it\x20doesn't\x20recogniz\
8529
    e\x20here.\x20See\x20above.\n\n\r\n\x05\x04\x03\x02\0\x04\x12\x04\x81\
8530
    \x01\x02\n\n\r\n\x05\x04\x03\x02\0\x06\x12\x04\x81\x01\x0b\x1e\n\r\n\x05\
8531
    \x04\x03\x02\0\x01\x12\x04\x81\x01\x1f3\n\r\n\x05\x04\x03\x02\0\x03\x12\
8532
    \x04\x81\x0169\nZ\n\x03\x04\x03\x05\x12\x04\x85\x01\x02\x19\x1aM\x20Clie\
8533
    nts\x20can\x20define\x20custom\x20options\x20in\x20extensions\x20of\x20t\
8534
    his\x20message.\x20See\x20above.\n\n\x0c\n\x04\x04\x03\x05\0\x12\x04\x85\
8535
    \x01\r\x18\n\r\n\x05\x04\x03\x05\0\x01\x12\x04\x85\x01\r\x11\n\r\n\x05\
8536
    \x04\x03\x05\0\x02\x12\x04\x85\x01\x15\x18\n3\n\x02\x04\x04\x12\x06\x89\
8537
    \x01\0\xee\x01\x01\x1a%\x20Describes\x20a\x20field\x20within\x20a\x20mes\
8538
    sage.\n\n\x0b\n\x03\x04\x04\x01\x12\x04\x89\x01\x08\x1c\n\x0e\n\x04\x04\
8539
    \x04\x04\0\x12\x06\x8a\x01\x02\xa9\x01\x03\n\r\n\x05\x04\x04\x04\0\x01\
8540
    \x12\x04\x8a\x01\x07\x0b\nS\n\x06\x04\x04\x04\0\x02\0\x12\x04\x8d\x01\
8541
    \x04\x14\x1aC\x200\x20is\x20reserved\x20for\x20errors.\n\x20Order\x20is\
8542
    \x20weird\x20for\x20historical\x20reasons.\n\n\x0f\n\x07\x04\x04\x04\0\
8543
    \x02\0\x01\x12\x04\x8d\x01\x04\x0f\n\x0f\n\x07\x04\x04\x04\0\x02\0\x02\
8544
    \x12\x04\x8d\x01\x12\x13\n\x0e\n\x06\x04\x04\x04\0\x02\x01\x12\x04\x8e\
8545
    \x01\x04\x13\n\x0f\n\x07\x04\x04\x04\0\x02\x01\x01\x12\x04\x8e\x01\x04\
8546
    \x0e\n\x0f\n\x07\x04\x04\x04\0\x02\x01\x02\x12\x04\x8e\x01\x11\x12\nw\n\
8547
    \x06\x04\x04\x04\0\x02\x02\x12\x04\x91\x01\x04\x13\x1ag\x20Not\x20ZigZag\
8548
    \x20encoded.\x20\x20Negative\x20numbers\x20take\x2010\x20bytes.\x20\x20U\
8549
    se\x20TYPE_SINT64\x20if\n\x20negative\x20values\x20are\x20likely.\n\n\
8550
    \x0f\n\x07\x04\x04\x04\0\x02\x02\x01\x12\x04\x91\x01\x04\x0e\n\x0f\n\x07\
8551
    \x04\x04\x04\0\x02\x02\x02\x12\x04\x91\x01\x11\x12\n\x0e\n\x06\x04\x04\
8552
    \x04\0\x02\x03\x12\x04\x92\x01\x04\x14\n\x0f\n\x07\x04\x04\x04\0\x02\x03\
8553
    \x01\x12\x04\x92\x01\x04\x0f\n\x0f\n\x07\x04\x04\x04\0\x02\x03\x02\x12\
8554
    \x04\x92\x01\x12\x13\nw\n\x06\x04\x04\x04\0\x02\x04\x12\x04\x95\x01\x04\
8555
    \x13\x1ag\x20Not\x20ZigZag\x20encoded.\x20\x20Negative\x20numbers\x20tak\
8556
    e\x2010\x20bytes.\x20\x20Use\x20TYPE_SINT32\x20if\n\x20negative\x20value\
8557
    s\x20are\x20likely.\n\n\x0f\n\x07\x04\x04\x04\0\x02\x04\x01\x12\x04\x95\
8558
    \x01\x04\x0e\n\x0f\n\x07\x04\x04\x04\0\x02\x04\x02\x12\x04\x95\x01\x11\
8559
    \x12\n\x0e\n\x06\x04\x04\x04\0\x02\x05\x12\x04\x96\x01\x04\x15\n\x0f\n\
8560
    \x07\x04\x04\x04\0\x02\x05\x01\x12\x04\x96\x01\x04\x10\n\x0f\n\x07\x04\
8561
    \x04\x04\0\x02\x05\x02\x12\x04\x96\x01\x13\x14\n\x0e\n\x06\x04\x04\x04\0\
8562
    \x02\x06\x12\x04\x97\x01\x04\x15\n\x0f\n\x07\x04\x04\x04\0\x02\x06\x01\
8563
    \x12\x04\x97\x01\x04\x10\n\x0f\n\x07\x04\x04\x04\0\x02\x06\x02\x12\x04\
8564
    \x97\x01\x13\x14\n\x0e\n\x06\x04\x04\x04\0\x02\x07\x12\x04\x98\x01\x04\
8565
    \x12\n\x0f\n\x07\x04\x04\x04\0\x02\x07\x01\x12\x04\x98\x01\x04\r\n\x0f\n\
8566
    \x07\x04\x04\x04\0\x02\x07\x02\x12\x04\x98\x01\x10\x11\n\x0e\n\x06\x04\
8567
    \x04\x04\0\x02\x08\x12\x04\x99\x01\x04\x14\n\x0f\n\x07\x04\x04\x04\0\x02\
8568
    \x08\x01\x12\x04\x99\x01\x04\x0f\n\x0f\n\x07\x04\x04\x04\0\x02\x08\x02\
8569
    \x12\x04\x99\x01\x12\x13\n\xe2\x01\n\x06\x04\x04\x04\0\x02\t\x12\x04\x9e\
8570
    \x01\x04\x14\x1a\xd1\x01\x20Tag-delimited\x20aggregate.\n\x20Group\x20ty\
8571
    pe\x20is\x20deprecated\x20and\x20not\x20supported\x20in\x20proto3.\x20Ho\
8572
    wever,\x20Proto3\n\x20implementations\x20should\x20still\x20be\x20able\
8573
    \x20to\x20parse\x20the\x20group\x20wire\x20format\x20and\n\x20treat\x20g\
8574
    roup\x20fields\x20as\x20unknown\x20fields.\n\n\x0f\n\x07\x04\x04\x04\0\
8575
    \x02\t\x01\x12\x04\x9e\x01\x04\x0e\n\x0f\n\x07\x04\x04\x04\0\x02\t\x02\
8576
    \x12\x04\x9e\x01\x11\x13\n-\n\x06\x04\x04\x04\0\x02\n\x12\x04\x9f\x01\
8577
    \x04\x16\"\x1d\x20Length-delimited\x20aggregate.\n\n\x0f\n\x07\x04\x04\
8578
    \x04\0\x02\n\x01\x12\x04\x9f\x01\x04\x10\n\x0f\n\x07\x04\x04\x04\0\x02\n\
8579
    \x02\x12\x04\x9f\x01\x13\x15\n#\n\x06\x04\x04\x04\0\x02\x0b\x12\x04\xa2\
8580
    \x01\x04\x14\x1a\x13\x20New\x20in\x20version\x202.\n\n\x0f\n\x07\x04\x04\
8581
    \x04\0\x02\x0b\x01\x12\x04\xa2\x01\x04\x0e\n\x0f\n\x07\x04\x04\x04\0\x02\
8582
    \x0b\x02\x12\x04\xa2\x01\x11\x13\n\x0e\n\x06\x04\x04\x04\0\x02\x0c\x12\
8583
    \x04\xa3\x01\x04\x15\n\x0f\n\x07\x04\x04\x04\0\x02\x0c\x01\x12\x04\xa3\
8584
    \x01\x04\x0f\n\x0f\n\x07\x04\x04\x04\0\x02\x0c\x02\x12\x04\xa3\x01\x12\
8585
    \x14\n\x0e\n\x06\x04\x04\x04\0\x02\r\x12\x04\xa4\x01\x04\x13\n\x0f\n\x07\
8586
    \x04\x04\x04\0\x02\r\x01\x12\x04\xa4\x01\x04\r\n\x0f\n\x07\x04\x04\x04\0\
8587
    \x02\r\x02\x12\x04\xa4\x01\x10\x12\n\x0e\n\x06\x04\x04\x04\0\x02\x0e\x12\
8588
    \x04\xa5\x01\x04\x17\n\x0f\n\x07\x04\x04\x04\0\x02\x0e\x01\x12\x04\xa5\
8589
    \x01\x04\x11\n\x0f\n\x07\x04\x04\x04\0\x02\x0e\x02\x12\x04\xa5\x01\x14\
8590
    \x16\n\x0e\n\x06\x04\x04\x04\0\x02\x0f\x12\x04\xa6\x01\x04\x17\n\x0f\n\
8591
    \x07\x04\x04\x04\0\x02\x0f\x01\x12\x04\xa6\x01\x04\x11\n\x0f\n\x07\x04\
8592
    \x04\x04\0\x02\x0f\x02\x12\x04\xa6\x01\x14\x16\n'\n\x06\x04\x04\x04\0\
8593
    \x02\x10\x12\x04\xa7\x01\x04\x15\"\x17\x20Uses\x20ZigZag\x20encoding.\n\
8594
    \n\x0f\n\x07\x04\x04\x04\0\x02\x10\x01\x12\x04\xa7\x01\x04\x0f\n\x0f\n\
8595
    \x07\x04\x04\x04\0\x02\x10\x02\x12\x04\xa7\x01\x12\x14\n'\n\x06\x04\x04\
8596
    \x04\0\x02\x11\x12\x04\xa8\x01\x04\x15\"\x17\x20Uses\x20ZigZag\x20encodi\
8597
    ng.\n\n\x0f\n\x07\x04\x04\x04\0\x02\x11\x01\x12\x04\xa8\x01\x04\x0f\n\
8598
    \x0f\n\x07\x04\x04\x04\0\x02\x11\x02\x12\x04\xa8\x01\x12\x14\n\x0e\n\x04\
8599
    \x04\x04\x04\x01\x12\x06\xab\x01\x02\xb0\x01\x03\n\r\n\x05\x04\x04\x04\
8600
    \x01\x01\x12\x04\xab\x01\x07\x0c\n*\n\x06\x04\x04\x04\x01\x02\0\x12\x04\
8601
    \xad\x01\x04\x17\x1a\x1a\x200\x20is\x20reserved\x20for\x20errors\n\n\x0f\
8602
    \n\x07\x04\x04\x04\x01\x02\0\x01\x12\x04\xad\x01\x04\x12\n\x0f\n\x07\x04\
8603
    \x04\x04\x01\x02\0\x02\x12\x04\xad\x01\x15\x16\n\x0e\n\x06\x04\x04\x04\
8604
    \x01\x02\x01\x12\x04\xae\x01\x04\x17\n\x0f\n\x07\x04\x04\x04\x01\x02\x01\
8605
    \x01\x12\x04\xae\x01\x04\x12\n\x0f\n\x07\x04\x04\x04\x01\x02\x01\x02\x12\
8606
    \x04\xae\x01\x15\x16\n\x0e\n\x06\x04\x04\x04\x01\x02\x02\x12\x04\xaf\x01\
8607
    \x04\x17\n\x0f\n\x07\x04\x04\x04\x01\x02\x02\x01\x12\x04\xaf\x01\x04\x12\
8608
    \n\x0f\n\x07\x04\x04\x04\x01\x02\x02\x02\x12\x04\xaf\x01\x15\x16\n\x0c\n\
8609
    \x04\x04\x04\x02\0\x12\x04\xb2\x01\x02\x1b\n\r\n\x05\x04\x04\x02\0\x04\
8610
    \x12\x04\xb2\x01\x02\n\n\r\n\x05\x04\x04\x02\0\x05\x12\x04\xb2\x01\x0b\
8611
    \x11\n\r\n\x05\x04\x04\x02\0\x01\x12\x04\xb2\x01\x12\x16\n\r\n\x05\x04\
8612
    \x04\x02\0\x03\x12\x04\xb2\x01\x19\x1a\n\x0c\n\x04\x04\x04\x02\x01\x12\
8613
    \x04\xb3\x01\x02\x1c\n\r\n\x05\x04\x04\x02\x01\x04\x12\x04\xb3\x01\x02\n\
8614
    \n\r\n\x05\x04\x04\x02\x01\x05\x12\x04\xb3\x01\x0b\x10\n\r\n\x05\x04\x04\
8615
    \x02\x01\x01\x12\x04\xb3\x01\x11\x17\n\r\n\x05\x04\x04\x02\x01\x03\x12\
8616
    \x04\xb3\x01\x1a\x1b\n\x0c\n\x04\x04\x04\x02\x02\x12\x04\xb4\x01\x02\x1b\
8617
    \n\r\n\x05\x04\x04\x02\x02\x04\x12\x04\xb4\x01\x02\n\n\r\n\x05\x04\x04\
8618
    \x02\x02\x06\x12\x04\xb4\x01\x0b\x10\n\r\n\x05\x04\x04\x02\x02\x01\x12\
8619
    \x04\xb4\x01\x11\x16\n\r\n\x05\x04\x04\x02\x02\x03\x12\x04\xb4\x01\x19\
8620
    \x1a\n\x9c\x01\n\x04\x04\x04\x02\x03\x12\x04\xb8\x01\x02\x19\x1a\x8d\x01\
8621
    \x20If\x20type_name\x20is\x20set,\x20this\x20need\x20not\x20be\x20set.\
8622
    \x20\x20If\x20both\x20this\x20and\x20type_name\n\x20are\x20set,\x20this\
8623
    \x20must\x20be\x20one\x20of\x20TYPE_ENUM,\x20TYPE_MESSAGE\x20or\x20TYPE_\
8624
    GROUP.\n\n\r\n\x05\x04\x04\x02\x03\x04\x12\x04\xb8\x01\x02\n\n\r\n\x05\
8625
    \x04\x04\x02\x03\x06\x12\x04\xb8\x01\x0b\x0f\n\r\n\x05\x04\x04\x02\x03\
8626
    \x01\x12\x04\xb8\x01\x10\x14\n\r\n\x05\x04\x04\x02\x03\x03\x12\x04\xb8\
8627
    \x01\x17\x18\n\xb7\x02\n\x04\x04\x04\x02\x04\x12\x04\xbf\x01\x02\x20\x1a\
8628
    \xa8\x02\x20For\x20message\x20and\x20enum\x20types,\x20this\x20is\x20the\
8629
    \x20name\x20of\x20the\x20type.\x20\x20If\x20the\x20name\n\x20starts\x20w\
8630
    ith\x20a\x20'.',\x20it\x20is\x20fully-qualified.\x20\x20Otherwise,\x20C+\
8631
    +-like\x20scoping\n\x20rules\x20are\x20used\x20to\x20find\x20the\x20type\
8632
    \x20(i.e.\x20first\x20the\x20nested\x20types\x20within\x20this\n\x20mess\
8633
    age\x20are\x20searched,\x20then\x20within\x20the\x20parent,\x20on\x20up\
8634
    \x20to\x20the\x20root\n\x20namespace).\n\n\r\n\x05\x04\x04\x02\x04\x04\
8635
    \x12\x04\xbf\x01\x02\n\n\r\n\x05\x04\x04\x02\x04\x05\x12\x04\xbf\x01\x0b\
8636
    \x11\n\r\n\x05\x04\x04\x02\x04\x01\x12\x04\xbf\x01\x12\x1b\n\r\n\x05\x04\
8637
    \x04\x02\x04\x03\x12\x04\xbf\x01\x1e\x1f\n~\n\x04\x04\x04\x02\x05\x12\
8638
    \x04\xc3\x01\x02\x1f\x1ap\x20For\x20extensions,\x20this\x20is\x20the\x20\
8639
    name\x20of\x20the\x20type\x20being\x20extended.\x20\x20It\x20is\n\x20res\
8640
    olved\x20in\x20the\x20same\x20manner\x20as\x20type_name.\n\n\r\n\x05\x04\
8641
    \x04\x02\x05\x04\x12\x04\xc3\x01\x02\n\n\r\n\x05\x04\x04\x02\x05\x05\x12\
8642
    \x04\xc3\x01\x0b\x11\n\r\n\x05\x04\x04\x02\x05\x01\x12\x04\xc3\x01\x12\
8643
    \x1a\n\r\n\x05\x04\x04\x02\x05\x03\x12\x04\xc3\x01\x1d\x1e\n\xb1\x02\n\
8644
    \x04\x04\x04\x02\x06\x12\x04\xca\x01\x02$\x1a\xa2\x02\x20For\x20numeric\
8645
    \x20types,\x20contains\x20the\x20original\x20text\x20representation\x20o\
8646
    f\x20the\x20value.\n\x20For\x20booleans,\x20\"true\"\x20or\x20\"false\".\
8647
    \n\x20For\x20strings,\x20contains\x20the\x20default\x20text\x20contents\
8648
    \x20(not\x20escaped\x20in\x20any\x20way).\n\x20For\x20bytes,\x20contains\
8649
    \x20the\x20C\x20escaped\x20value.\x20\x20All\x20bytes\x20>=\x20128\x20ar\
8650
    e\x20escaped.\n\x20TODO(kenton):\x20\x20Base-64\x20encode?\n\n\r\n\x05\
8651
    \x04\x04\x02\x06\x04\x12\x04\xca\x01\x02\n\n\r\n\x05\x04\x04\x02\x06\x05\
8652
    \x12\x04\xca\x01\x0b\x11\n\r\n\x05\x04\x04\x02\x06\x01\x12\x04\xca\x01\
8653
    \x12\x1f\n\r\n\x05\x04\x04\x02\x06\x03\x12\x04\xca\x01\"#\n\x84\x01\n\
8654
    \x04\x04\x04\x02\x07\x12\x04\xce\x01\x02!\x1av\x20If\x20set,\x20gives\
8655
    \x20the\x20index\x20of\x20a\x20oneof\x20in\x20the\x20containing\x20type'\
8656
    s\x20oneof_decl\n\x20list.\x20\x20This\x20field\x20is\x20a\x20member\x20\
8657
    of\x20that\x20oneof.\n\n\r\n\x05\x04\x04\x02\x07\x04\x12\x04\xce\x01\x02\
8658
    \n\n\r\n\x05\x04\x04\x02\x07\x05\x12\x04\xce\x01\x0b\x10\n\r\n\x05\x04\
8659
    \x04\x02\x07\x01\x12\x04\xce\x01\x11\x1c\n\r\n\x05\x04\x04\x02\x07\x03\
8660
    \x12\x04\xce\x01\x1f\x20\n\xfa\x01\n\x04\x04\x04\x02\x08\x12\x04\xd4\x01\
8661
    \x02!\x1a\xeb\x01\x20JSON\x20name\x20of\x20this\x20field.\x20The\x20valu\
8662
    e\x20is\x20set\x20by\x20protocol\x20compiler.\x20If\x20the\n\x20user\x20\
8663
    has\x20set\x20a\x20\"json_name\"\x20option\x20on\x20this\x20field,\x20th\
8664
    at\x20option's\x20value\n\x20will\x20be\x20used.\x20Otherwise,\x20it's\
8665
    \x20deduced\x20from\x20the\x20field's\x20name\x20by\x20converting\n\x20i\
8666
    t\x20to\x20camelCase.\n\n\r\n\x05\x04\x04\x02\x08\x04\x12\x04\xd4\x01\
8667
    \x02\n\n\r\n\x05\x04\x04\x02\x08\x05\x12\x04\xd4\x01\x0b\x11\n\r\n\x05\
8668
    \x04\x04\x02\x08\x01\x12\x04\xd4\x01\x12\x1b\n\r\n\x05\x04\x04\x02\x08\
8669
    \x03\x12\x04\xd4\x01\x1e\x20\n\x0c\n\x04\x04\x04\x02\t\x12\x04\xd6\x01\
8670
    \x02$\n\r\n\x05\x04\x04\x02\t\x04\x12\x04\xd6\x01\x02\n\n\r\n\x05\x04\
8671
    \x04\x02\t\x06\x12\x04\xd6\x01\x0b\x17\n\r\n\x05\x04\x04\x02\t\x01\x12\
8672
    \x04\xd6\x01\x18\x1f\n\r\n\x05\x04\x04\x02\t\x03\x12\x04\xd6\x01\"#\n\
8673
    \xb3\t\n\x04\x04\x04\x02\n\x12\x04\xed\x01\x02%\x1a\xa4\t\x20If\x20true,\
8674
    \x20this\x20is\x20a\x20proto3\x20\"optional\".\x20When\x20a\x20proto3\
8675
    \x20field\x20is\x20optional,\x20it\n\x20tracks\x20presence\x20regardless\
8676
    \x20of\x20field\x20type.\n\n\x20When\x20proto3_optional\x20is\x20true,\
8677
    \x20this\x20field\x20must\x20be\x20belong\x20to\x20a\x20oneof\x20to\n\
8678
    \x20signal\x20to\x20old\x20proto3\x20clients\x20that\x20presence\x20is\
8679
    \x20tracked\x20for\x20this\x20field.\x20This\n\x20oneof\x20is\x20known\
8680
    \x20as\x20a\x20\"synthetic\"\x20oneof,\x20and\x20this\x20field\x20must\
8681
    \x20be\x20its\x20sole\n\x20member\x20(each\x20proto3\x20optional\x20fiel\
8682
    d\x20gets\x20its\x20own\x20synthetic\x20oneof).\x20Synthetic\n\x20oneofs\
8683
    \x20exist\x20in\x20the\x20descriptor\x20only,\x20and\x20do\x20not\x20gen\
8684
    erate\x20any\x20API.\x20Synthetic\n\x20oneofs\x20must\x20be\x20ordered\
8685
    \x20after\x20all\x20\"real\"\x20oneofs.\n\n\x20For\x20message\x20fields,\
8686
    \x20proto3_optional\x20doesn't\x20create\x20any\x20semantic\x20change,\n\
8687
    \x20since\x20non-repeated\x20message\x20fields\x20always\x20track\x20pre\
8688
    sence.\x20However\x20it\x20still\n\x20indicates\x20the\x20semantic\x20de\
8689
    tail\x20of\x20whether\x20the\x20user\x20wrote\x20\"optional\"\x20or\x20n\
8690
    ot.\n\x20This\x20can\x20be\x20useful\x20for\x20round-tripping\x20the\x20\
8691
    .proto\x20file.\x20For\x20consistency\x20we\n\x20give\x20message\x20fiel\
8692
    ds\x20a\x20synthetic\x20oneof\x20also,\x20even\x20though\x20it\x20is\x20\
8693
    not\x20required\n\x20to\x20track\x20presence.\x20This\x20is\x20especiall\
8694
    y\x20important\x20because\x20the\x20parser\x20can't\n\x20tell\x20if\x20a\
8695
    \x20field\x20is\x20a\x20message\x20or\x20an\x20enum,\x20so\x20it\x20must\
8696
    \x20always\x20create\x20a\n\x20synthetic\x20oneof.\n\n\x20Proto2\x20opti\
8697
    onal\x20fields\x20do\x20not\x20set\x20this\x20flag,\x20because\x20they\
8698
    \x20already\x20indicate\n\x20optional\x20with\x20`LABEL_OPTIONAL`.\n\n\r\
8699
    \n\x05\x04\x04\x02\n\x04\x12\x04\xed\x01\x02\n\n\r\n\x05\x04\x04\x02\n\
8700
    \x05\x12\x04\xed\x01\x0b\x0f\n\r\n\x05\x04\x04\x02\n\x01\x12\x04\xed\x01\
8701
    \x10\x1f\n\r\n\x05\x04\x04\x02\n\x03\x12\x04\xed\x01\"$\n\"\n\x02\x04\
8702
    \x05\x12\x06\xf1\x01\0\xf4\x01\x01\x1a\x14\x20Describes\x20a\x20oneof.\n\
8703
    \n\x0b\n\x03\x04\x05\x01\x12\x04\xf1\x01\x08\x1c\n\x0c\n\x04\x04\x05\x02\
8704
    \0\x12\x04\xf2\x01\x02\x1b\n\r\n\x05\x04\x05\x02\0\x04\x12\x04\xf2\x01\
8705
    \x02\n\n\r\n\x05\x04\x05\x02\0\x05\x12\x04\xf2\x01\x0b\x11\n\r\n\x05\x04\
8706
    \x05\x02\0\x01\x12\x04\xf2\x01\x12\x16\n\r\n\x05\x04\x05\x02\0\x03\x12\
8707
    \x04\xf2\x01\x19\x1a\n\x0c\n\x04\x04\x05\x02\x01\x12\x04\xf3\x01\x02$\n\
8708
    \r\n\x05\x04\x05\x02\x01\x04\x12\x04\xf3\x01\x02\n\n\r\n\x05\x04\x05\x02\
8709
    \x01\x06\x12\x04\xf3\x01\x0b\x17\n\r\n\x05\x04\x05\x02\x01\x01\x12\x04\
8710
    \xf3\x01\x18\x1f\n\r\n\x05\x04\x05\x02\x01\x03\x12\x04\xf3\x01\"#\n'\n\
8711
    \x02\x04\x06\x12\x06\xf7\x01\0\x91\x02\x01\x1a\x19\x20Describes\x20an\
8712
    \x20enum\x20type.\n\n\x0b\n\x03\x04\x06\x01\x12\x04\xf7\x01\x08\x1b\n\
8713
    \x0c\n\x04\x04\x06\x02\0\x12\x04\xf8\x01\x02\x1b\n\r\n\x05\x04\x06\x02\0\
8714
    \x04\x12\x04\xf8\x01\x02\n\n\r\n\x05\x04\x06\x02\0\x05\x12\x04\xf8\x01\
8715
    \x0b\x11\n\r\n\x05\x04\x06\x02\0\x01\x12\x04\xf8\x01\x12\x16\n\r\n\x05\
8716
    \x04\x06\x02\0\x03\x12\x04\xf8\x01\x19\x1a\n\x0c\n\x04\x04\x06\x02\x01\
8717
    \x12\x04\xfa\x01\x02.\n\r\n\x05\x04\x06\x02\x01\x04\x12\x04\xfa\x01\x02\
8718
    \n\n\r\n\x05\x04\x06\x02\x01\x06\x12\x04\xfa\x01\x0b#\n\r\n\x05\x04\x06\
8719
    \x02\x01\x01\x12\x04\xfa\x01$)\n\r\n\x05\x04\x06\x02\x01\x03\x12\x04\xfa\
8720
    \x01,-\n\x0c\n\x04\x04\x06\x02\x02\x12\x04\xfc\x01\x02#\n\r\n\x05\x04\
8721
    \x06\x02\x02\x04\x12\x04\xfc\x01\x02\n\n\r\n\x05\x04\x06\x02\x02\x06\x12\
8722
    \x04\xfc\x01\x0b\x16\n\r\n\x05\x04\x06\x02\x02\x01\x12\x04\xfc\x01\x17\
8723
    \x1e\n\r\n\x05\x04\x06\x02\x02\x03\x12\x04\xfc\x01!\"\n\xaf\x02\n\x04\
8724
    \x04\x06\x03\0\x12\x06\x84\x02\x02\x87\x02\x03\x1a\x9e\x02\x20Range\x20o\
8725
    f\x20reserved\x20numeric\x20values.\x20Reserved\x20values\x20may\x20not\
8726
    \x20be\x20used\x20by\n\x20entries\x20in\x20the\x20same\x20enum.\x20Reser\
8727
    ved\x20ranges\x20may\x20not\x20overlap.\n\n\x20Note\x20that\x20this\x20i\
8728
    s\x20distinct\x20from\x20DescriptorProto.ReservedRange\x20in\x20that\x20\
8729
    it\n\x20is\x20inclusive\x20such\x20that\x20it\x20can\x20appropriately\
8730
    \x20represent\x20the\x20entire\x20int32\n\x20domain.\n\n\r\n\x05\x04\x06\
8731
    \x03\0\x01\x12\x04\x84\x02\n\x1b\n\x1c\n\x06\x04\x06\x03\0\x02\0\x12\x04\
8732
    \x85\x02\x04\x1d\"\x0c\x20Inclusive.\n\n\x0f\n\x07\x04\x06\x03\0\x02\0\
8733
    \x04\x12\x04\x85\x02\x04\x0c\n\x0f\n\x07\x04\x06\x03\0\x02\0\x05\x12\x04\
8734
    \x85\x02\r\x12\n\x0f\n\x07\x04\x06\x03\0\x02\0\x01\x12\x04\x85\x02\x13\
8735
    \x18\n\x0f\n\x07\x04\x06\x03\0\x02\0\x03\x12\x04\x85\x02\x1b\x1c\n\x1c\n\
8736
    \x06\x04\x06\x03\0\x02\x01\x12\x04\x86\x02\x04\x1b\"\x0c\x20Inclusive.\n\
8737
    \n\x0f\n\x07\x04\x06\x03\0\x02\x01\x04\x12\x04\x86\x02\x04\x0c\n\x0f\n\
8738
    \x07\x04\x06\x03\0\x02\x01\x05\x12\x04\x86\x02\r\x12\n\x0f\n\x07\x04\x06\
8739
    \x03\0\x02\x01\x01\x12\x04\x86\x02\x13\x16\n\x0f\n\x07\x04\x06\x03\0\x02\
8740
    \x01\x03\x12\x04\x86\x02\x19\x1a\n\xaa\x01\n\x04\x04\x06\x02\x03\x12\x04\
8741
    \x8c\x02\x020\x1a\x9b\x01\x20Range\x20of\x20reserved\x20numeric\x20value\
8742
    s.\x20Reserved\x20numeric\x20values\x20may\x20not\x20be\x20used\n\x20by\
8743
    \x20enum\x20values\x20in\x20the\x20same\x20enum\x20declaration.\x20Reser\
8744
    ved\x20ranges\x20may\x20not\n\x20overlap.\n\n\r\n\x05\x04\x06\x02\x03\
8745
    \x04\x12\x04\x8c\x02\x02\n\n\r\n\x05\x04\x06\x02\x03\x06\x12\x04\x8c\x02\
8746
    \x0b\x1c\n\r\n\x05\x04\x06\x02\x03\x01\x12\x04\x8c\x02\x1d+\n\r\n\x05\
8747
    \x04\x06\x02\x03\x03\x12\x04\x8c\x02./\nl\n\x04\x04\x06\x02\x04\x12\x04\
8748
    \x90\x02\x02$\x1a^\x20Reserved\x20enum\x20value\x20names,\x20which\x20ma\
8749
    y\x20not\x20be\x20reused.\x20A\x20given\x20name\x20may\x20only\n\x20be\
8750
    \x20reserved\x20once.\n\n\r\n\x05\x04\x06\x02\x04\x04\x12\x04\x90\x02\
8751
    \x02\n\n\r\n\x05\x04\x06\x02\x04\x05\x12\x04\x90\x02\x0b\x11\n\r\n\x05\
8752
    \x04\x06\x02\x04\x01\x12\x04\x90\x02\x12\x1f\n\r\n\x05\x04\x06\x02\x04\
8753
    \x03\x12\x04\x90\x02\"#\n1\n\x02\x04\x07\x12\x06\x94\x02\0\x99\x02\x01\
8754
    \x1a#\x20Describes\x20a\x20value\x20within\x20an\x20enum.\n\n\x0b\n\x03\
8755
    \x04\x07\x01\x12\x04\x94\x02\x08\x20\n\x0c\n\x04\x04\x07\x02\0\x12\x04\
8756
    \x95\x02\x02\x1b\n\r\n\x05\x04\x07\x02\0\x04\x12\x04\x95\x02\x02\n\n\r\n\
8757
    \x05\x04\x07\x02\0\x05\x12\x04\x95\x02\x0b\x11\n\r\n\x05\x04\x07\x02\0\
8758
    \x01\x12\x04\x95\x02\x12\x16\n\r\n\x05\x04\x07\x02\0\x03\x12\x04\x95\x02\
8759
    \x19\x1a\n\x0c\n\x04\x04\x07\x02\x01\x12\x04\x96\x02\x02\x1c\n\r\n\x05\
8760
    \x04\x07\x02\x01\x04\x12\x04\x96\x02\x02\n\n\r\n\x05\x04\x07\x02\x01\x05\
8761
    \x12\x04\x96\x02\x0b\x10\n\r\n\x05\x04\x07\x02\x01\x01\x12\x04\x96\x02\
8762
    \x11\x17\n\r\n\x05\x04\x07\x02\x01\x03\x12\x04\x96\x02\x1a\x1b\n\x0c\n\
8763
    \x04\x04\x07\x02\x02\x12\x04\x98\x02\x02(\n\r\n\x05\x04\x07\x02\x02\x04\
8764
    \x12\x04\x98\x02\x02\n\n\r\n\x05\x04\x07\x02\x02\x06\x12\x04\x98\x02\x0b\
8765
    \x1b\n\r\n\x05\x04\x07\x02\x02\x01\x12\x04\x98\x02\x1c#\n\r\n\x05\x04\
8766
    \x07\x02\x02\x03\x12\x04\x98\x02&'\n$\n\x02\x04\x08\x12\x06\x9c\x02\0\
8767
    \xa1\x02\x01\x1a\x16\x20Describes\x20a\x20service.\n\n\x0b\n\x03\x04\x08\
8768
    \x01\x12\x04\x9c\x02\x08\x1e\n\x0c\n\x04\x04\x08\x02\0\x12\x04\x9d\x02\
8769
    \x02\x1b\n\r\n\x05\x04\x08\x02\0\x04\x12\x04\x9d\x02\x02\n\n\r\n\x05\x04\
8770
    \x08\x02\0\x05\x12\x04\x9d\x02\x0b\x11\n\r\n\x05\x04\x08\x02\0\x01\x12\
8771
    \x04\x9d\x02\x12\x16\n\r\n\x05\x04\x08\x02\0\x03\x12\x04\x9d\x02\x19\x1a\
8772
    \n\x0c\n\x04\x04\x08\x02\x01\x12\x04\x9e\x02\x02,\n\r\n\x05\x04\x08\x02\
8773
    \x01\x04\x12\x04\x9e\x02\x02\n\n\r\n\x05\x04\x08\x02\x01\x06\x12\x04\x9e\
8774
    \x02\x0b\x20\n\r\n\x05\x04\x08\x02\x01\x01\x12\x04\x9e\x02!'\n\r\n\x05\
8775
    \x04\x08\x02\x01\x03\x12\x04\x9e\x02*+\n\x0c\n\x04\x04\x08\x02\x02\x12\
8776
    \x04\xa0\x02\x02&\n\r\n\x05\x04\x08\x02\x02\x04\x12\x04\xa0\x02\x02\n\n\
8777
    \r\n\x05\x04\x08\x02\x02\x06\x12\x04\xa0\x02\x0b\x19\n\r\n\x05\x04\x08\
8778
    \x02\x02\x01\x12\x04\xa0\x02\x1a!\n\r\n\x05\x04\x08\x02\x02\x03\x12\x04\
8779
    \xa0\x02$%\n0\n\x02\x04\t\x12\x06\xa4\x02\0\xb2\x02\x01\x1a\"\x20Describ\
8780
    es\x20a\x20method\x20of\x20a\x20service.\n\n\x0b\n\x03\x04\t\x01\x12\x04\
8781
    \xa4\x02\x08\x1d\n\x0c\n\x04\x04\t\x02\0\x12\x04\xa5\x02\x02\x1b\n\r\n\
8782
    \x05\x04\t\x02\0\x04\x12\x04\xa5\x02\x02\n\n\r\n\x05\x04\t\x02\0\x05\x12\
8783
    \x04\xa5\x02\x0b\x11\n\r\n\x05\x04\t\x02\0\x01\x12\x04\xa5\x02\x12\x16\n\
8784
    \r\n\x05\x04\t\x02\0\x03\x12\x04\xa5\x02\x19\x1a\n\x97\x01\n\x04\x04\t\
8785
    \x02\x01\x12\x04\xa9\x02\x02!\x1a\x88\x01\x20Input\x20and\x20output\x20t\
8786
    ype\x20names.\x20\x20These\x20are\x20resolved\x20in\x20the\x20same\x20wa\
8787
    y\x20as\n\x20FieldDescriptorProto.type_name,\x20but\x20must\x20refer\x20\
8788
    to\x20a\x20message\x20type.\n\n\r\n\x05\x04\t\x02\x01\x04\x12\x04\xa9\
8789
    \x02\x02\n\n\r\n\x05\x04\t\x02\x01\x05\x12\x04\xa9\x02\x0b\x11\n\r\n\x05\
8790
    \x04\t\x02\x01\x01\x12\x04\xa9\x02\x12\x1c\n\r\n\x05\x04\t\x02\x01\x03\
8791
    \x12\x04\xa9\x02\x1f\x20\n\x0c\n\x04\x04\t\x02\x02\x12\x04\xaa\x02\x02\"\
8792
    \n\r\n\x05\x04\t\x02\x02\x04\x12\x04\xaa\x02\x02\n\n\r\n\x05\x04\t\x02\
8793
    \x02\x05\x12\x04\xaa\x02\x0b\x11\n\r\n\x05\x04\t\x02\x02\x01\x12\x04\xaa\
8794
    \x02\x12\x1d\n\r\n\x05\x04\t\x02\x02\x03\x12\x04\xaa\x02\x20!\n\x0c\n\
8795
    \x04\x04\t\x02\x03\x12\x04\xac\x02\x02%\n\r\n\x05\x04\t\x02\x03\x04\x12\
8796
    \x04\xac\x02\x02\n\n\r\n\x05\x04\t\x02\x03\x06\x12\x04\xac\x02\x0b\x18\n\
8797
    \r\n\x05\x04\t\x02\x03\x01\x12\x04\xac\x02\x19\x20\n\r\n\x05\x04\t\x02\
8798
    \x03\x03\x12\x04\xac\x02#$\nE\n\x04\x04\t\x02\x04\x12\x04\xaf\x02\x027\
8799
    \x1a7\x20Identifies\x20if\x20client\x20streams\x20multiple\x20client\x20\
8800
    messages\n\n\r\n\x05\x04\t\x02\x04\x04\x12\x04\xaf\x02\x02\n\n\r\n\x05\
8801
    \x04\t\x02\x04\x05\x12\x04\xaf\x02\x0b\x0f\n\r\n\x05\x04\t\x02\x04\x01\
8802
    \x12\x04\xaf\x02\x10\x20\n\r\n\x05\x04\t\x02\x04\x03\x12\x04\xaf\x02#$\n\
8803
    \r\n\x05\x04\t\x02\x04\x08\x12\x04\xaf\x02%6\n\r\n\x05\x04\t\x02\x04\x07\
8804
    \x12\x04\xaf\x0205\nE\n\x04\x04\t\x02\x05\x12\x04\xb1\x02\x027\x1a7\x20I\
8805
    dentifies\x20if\x20server\x20streams\x20multiple\x20server\x20messages\n\
8806
    \n\r\n\x05\x04\t\x02\x05\x04\x12\x04\xb1\x02\x02\n\n\r\n\x05\x04\t\x02\
8807
    \x05\x05\x12\x04\xb1\x02\x0b\x0f\n\r\n\x05\x04\t\x02\x05\x01\x12\x04\xb1\
8808
    \x02\x10\x20\n\r\n\x05\x04\t\x02\x05\x03\x12\x04\xb1\x02#$\n\r\n\x05\x04\
8809
    \t\x02\x05\x08\x12\x04\xb1\x02%6\n\r\n\x05\x04\t\x02\x05\x07\x12\x04\xb1\
8810
    \x0205\n\xaf\x0e\n\x02\x04\n\x12\x06\xd5\x02\0\xd0\x03\x012N\x20========\
8811
    ===========================================================\n\x20Options\
8812
    \n2\xd0\r\x20Each\x20of\x20the\x20definitions\x20above\x20may\x20have\
8813
    \x20\"options\"\x20attached.\x20\x20These\x20are\n\x20just\x20annotation\
8814
    s\x20which\x20may\x20cause\x20code\x20to\x20be\x20generated\x20slightly\
8815
    \x20differently\n\x20or\x20may\x20contain\x20hints\x20for\x20code\x20tha\
8816
    t\x20manipulates\x20protocol\x20messages.\n\n\x20Clients\x20may\x20defin\
8817
    e\x20custom\x20options\x20as\x20extensions\x20of\x20the\x20*Options\x20m\
8818
    essages.\n\x20These\x20extensions\x20may\x20not\x20yet\x20be\x20known\
8819
    \x20at\x20parsing\x20time,\x20so\x20the\x20parser\x20cannot\n\x20store\
8820
    \x20the\x20values\x20in\x20them.\x20\x20Instead\x20it\x20stores\x20them\
8821
    \x20in\x20a\x20field\x20in\x20the\x20*Options\n\x20message\x20called\x20\
8822
    uninterpreted_option.\x20This\x20field\x20must\x20have\x20the\x20same\
8823
    \x20name\n\x20across\x20all\x20*Options\x20messages.\x20We\x20then\x20us\
8824
    e\x20this\x20field\x20to\x20populate\x20the\n\x20extensions\x20when\x20w\
8825
    e\x20build\x20a\x20descriptor,\x20at\x20which\x20point\x20all\x20protos\
8826
    \x20have\x20been\n\x20parsed\x20and\x20so\x20all\x20extensions\x20are\
8827
    \x20known.\n\n\x20Extension\x20numbers\x20for\x20custom\x20options\x20ma\
8828
    y\x20be\x20chosen\x20as\x20follows:\n\x20*\x20For\x20options\x20which\
8829
    \x20will\x20only\x20be\x20used\x20within\x20a\x20single\x20application\
8830
    \x20or\n\x20\x20\x20organization,\x20or\x20for\x20experimental\x20option\
8831
    s,\x20use\x20field\x20numbers\x2050000\n\x20\x20\x20through\x2099999.\
8832
    \x20\x20It\x20is\x20up\x20to\x20you\x20to\x20ensure\x20that\x20you\x20do\
8833
    \x20not\x20use\x20the\n\x20\x20\x20same\x20number\x20for\x20multiple\x20\
8834
    options.\n\x20*\x20For\x20options\x20which\x20will\x20be\x20published\
8835
    \x20and\x20used\x20publicly\x20by\x20multiple\n\x20\x20\x20independent\
8836
    \x20entities,\x20e-mail\x20protobuf-global-extension-registry@google.com\
8837
    \n\x20\x20\x20to\x20reserve\x20extension\x20numbers.\x20Simply\x20provid\
8838
    e\x20your\x20project\x20name\x20(e.g.\n\x20\x20\x20Objective-C\x20plugin\
8839
    )\x20and\x20your\x20project\x20website\x20(if\x20available)\x20--\x20the\
8840
    re's\x20no\n\x20\x20\x20need\x20to\x20explain\x20how\x20you\x20intend\
8841
    \x20to\x20use\x20them.\x20Usually\x20you\x20only\x20need\x20one\n\x20\
8842
    \x20\x20extension\x20number.\x20You\x20can\x20declare\x20multiple\x20opt\
8843
    ions\x20with\x20only\x20one\x20extension\n\x20\x20\x20number\x20by\x20pu\
8844
    tting\x20them\x20in\x20a\x20sub-message.\x20See\x20the\x20Custom\x20Opti\
8845
    ons\x20section\x20of\n\x20\x20\x20the\x20docs\x20for\x20examples:\n\x20\
8846
    \x20\x20https://developers.google.com/protocol-buffers/docs/proto#option\
8847
    s\n\x20\x20\x20If\x20this\x20turns\x20out\x20to\x20be\x20popular,\x20a\
8848
    \x20web\x20service\x20will\x20be\x20set\x20up\n\x20\x20\x20to\x20automat\
8849
    ically\x20assign\x20option\x20numbers.\n\n\x0b\n\x03\x04\n\x01\x12\x04\
8850
    \xd5\x02\x08\x13\n\xf4\x01\n\x04\x04\n\x02\0\x12\x04\xdb\x02\x02#\x1a\
8851
    \xe5\x01\x20Sets\x20the\x20Java\x20package\x20where\x20classes\x20genera\
8852
    ted\x20from\x20this\x20.proto\x20will\x20be\n\x20placed.\x20\x20By\x20de\
8853
    fault,\x20the\x20proto\x20package\x20is\x20used,\x20but\x20this\x20is\
8854
    \x20often\n\x20inappropriate\x20because\x20proto\x20packages\x20do\x20no\
8855
    t\x20normally\x20start\x20with\x20backwards\n\x20domain\x20names.\n\n\r\
8856
    \n\x05\x04\n\x02\0\x04\x12\x04\xdb\x02\x02\n\n\r\n\x05\x04\n\x02\0\x05\
8857
    \x12\x04\xdb\x02\x0b\x11\n\r\n\x05\x04\n\x02\0\x01\x12\x04\xdb\x02\x12\
8858
    \x1e\n\r\n\x05\x04\n\x02\0\x03\x12\x04\xdb\x02!\"\n\xf1\x02\n\x04\x04\n\
8859
    \x02\x01\x12\x04\xe3\x02\x02+\x1a\xe2\x02\x20Controls\x20the\x20name\x20\
8860
    of\x20the\x20wrapper\x20Java\x20class\x20generated\x20for\x20the\x20.pro\
8861
    to\x20file.\n\x20That\x20class\x20will\x20always\x20contain\x20the\x20.p\
8862
    roto\x20file's\x20getDescriptor()\x20method\x20as\n\x20well\x20as\x20any\
8863
    \x20top-level\x20extensions\x20defined\x20in\x20the\x20.proto\x20file.\n\
8864
    \x20If\x20java_multiple_files\x20is\x20disabled,\x20then\x20all\x20the\
8865
    \x20other\x20classes\x20from\x20the\n\x20.proto\x20file\x20will\x20be\
8866
    \x20nested\x20inside\x20the\x20single\x20wrapper\x20outer\x20class.\n\n\
8867
    \r\n\x05\x04\n\x02\x01\x04\x12\x04\xe3\x02\x02\n\n\r\n\x05\x04\n\x02\x01\
8868
    \x05\x12\x04\xe3\x02\x0b\x11\n\r\n\x05\x04\n\x02\x01\x01\x12\x04\xe3\x02\
8869
    \x12&\n\r\n\x05\x04\n\x02\x01\x03\x12\x04\xe3\x02)*\n\xa6\x03\n\x04\x04\
8870
    \n\x02\x02\x12\x04\xeb\x02\x02;\x1a\x97\x03\x20If\x20enabled,\x20then\
8871
    \x20the\x20Java\x20code\x20generator\x20will\x20generate\x20a\x20separat\
8872
    e\x20.java\n\x20file\x20for\x20each\x20top-level\x20message,\x20enum,\
8873
    \x20and\x20service\x20defined\x20in\x20the\x20.proto\n\x20file.\x20\x20T\
8874
    hus,\x20these\x20types\x20will\x20*not*\x20be\x20nested\x20inside\x20the\
8875
    \x20wrapper\x20class\n\x20named\x20by\x20java_outer_classname.\x20\x20Ho\
8876
    wever,\x20the\x20wrapper\x20class\x20will\x20still\x20be\n\x20generated\
8877
    \x20to\x20contain\x20the\x20file's\x20getDescriptor()\x20method\x20as\
8878
    \x20well\x20as\x20any\n\x20top-level\x20extensions\x20defined\x20in\x20t\
8879
    he\x20file.\n\n\r\n\x05\x04\n\x02\x02\x04\x12\x04\xeb\x02\x02\n\n\r\n\
8880
    \x05\x04\n\x02\x02\x05\x12\x04\xeb\x02\x0b\x0f\n\r\n\x05\x04\n\x02\x02\
8881
    \x01\x12\x04\xeb\x02\x10#\n\r\n\x05\x04\n\x02\x02\x03\x12\x04\xeb\x02&(\
8882
    \n\r\n\x05\x04\n\x02\x02\x08\x12\x04\xeb\x02):\n\r\n\x05\x04\n\x02\x02\
8883
    \x07\x12\x04\xeb\x0249\n)\n\x04\x04\n\x02\x03\x12\x04\xee\x02\x02E\x1a\
8884
    \x1b\x20This\x20option\x20does\x20nothing.\n\n\r\n\x05\x04\n\x02\x03\x04\
8885
    \x12\x04\xee\x02\x02\n\n\r\n\x05\x04\n\x02\x03\x05\x12\x04\xee\x02\x0b\
8886
    \x0f\n\r\n\x05\x04\n\x02\x03\x01\x12\x04\xee\x02\x10-\n\r\n\x05\x04\n\
8887
    \x02\x03\x03\x12\x04\xee\x0202\n\r\n\x05\x04\n\x02\x03\x08\x12\x04\xee\
8888
    \x023D\n\x0e\n\x06\x04\n\x02\x03\x08\x03\x12\x04\xee\x024C\n\xe6\x02\n\
8889
    \x04\x04\n\x02\x04\x12\x04\xf6\x02\x02>\x1a\xd7\x02\x20If\x20set\x20true\
8890
    ,\x20then\x20the\x20Java2\x20code\x20generator\x20will\x20generate\x20co\
8891
    de\x20that\n\x20throws\x20an\x20exception\x20whenever\x20an\x20attempt\
8892
    \x20is\x20made\x20to\x20assign\x20a\x20non-UTF-8\n\x20byte\x20sequence\
8893
    \x20to\x20a\x20string\x20field.\n\x20Message\x20reflection\x20will\x20do\
8894
    \x20the\x20same.\n\x20However,\x20an\x20extension\x20field\x20still\x20a\
8895
    ccepts\x20non-UTF-8\x20byte\x20sequences.\n\x20This\x20option\x20has\x20\
8896
    no\x20effect\x20on\x20when\x20used\x20with\x20the\x20lite\x20runtime.\n\
8897
    \n\r\n\x05\x04\n\x02\x04\x04\x12\x04\xf6\x02\x02\n\n\r\n\x05\x04\n\x02\
8898
    \x04\x05\x12\x04\xf6\x02\x0b\x0f\n\r\n\x05\x04\n\x02\x04\x01\x12\x04\xf6\
8899
    \x02\x10&\n\r\n\x05\x04\n\x02\x04\x03\x12\x04\xf6\x02)+\n\r\n\x05\x04\n\
8900
    \x02\x04\x08\x12\x04\xf6\x02,=\n\r\n\x05\x04\n\x02\x04\x07\x12\x04\xf6\
8901
    \x027<\nL\n\x04\x04\n\x04\0\x12\x06\xfa\x02\x02\xff\x02\x03\x1a<\x20Gene\
8902
    rated\x20classes\x20can\x20be\x20optimized\x20for\x20speed\x20or\x20code\
8903
    \x20size.\n\n\r\n\x05\x04\n\x04\0\x01\x12\x04\xfa\x02\x07\x13\nD\n\x06\
8904
    \x04\n\x04\0\x02\0\x12\x04\xfb\x02\x04\x0e\"4\x20Generate\x20complete\
8905
    \x20code\x20for\x20parsing,\x20serialization,\n\n\x0f\n\x07\x04\n\x04\0\
8906
    \x02\0\x01\x12\x04\xfb\x02\x04\t\n\x0f\n\x07\x04\n\x04\0\x02\0\x02\x12\
8907
    \x04\xfb\x02\x0c\r\nG\n\x06\x04\n\x04\0\x02\x01\x12\x04\xfd\x02\x04\x12\
8908
    \x1a\x06\x20etc.\n\"/\x20Use\x20ReflectionOps\x20to\x20implement\x20thes\
8909
    e\x20methods.\n\n\x0f\n\x07\x04\n\x04\0\x02\x01\x01\x12\x04\xfd\x02\x04\
8910
    \r\n\x0f\n\x07\x04\n\x04\0\x02\x01\x02\x12\x04\xfd\x02\x10\x11\nG\n\x06\
8911
    \x04\n\x04\0\x02\x02\x12\x04\xfe\x02\x04\x15\"7\x20Generate\x20code\x20u\
8912
    sing\x20MessageLite\x20and\x20the\x20lite\x20runtime.\n\n\x0f\n\x07\x04\
8913
    \n\x04\0\x02\x02\x01\x12\x04\xfe\x02\x04\x10\n\x0f\n\x07\x04\n\x04\0\x02\
8914
    \x02\x02\x12\x04\xfe\x02\x13\x14\n\x0c\n\x04\x04\n\x02\x05\x12\x04\x80\
8915
    \x03\x02;\n\r\n\x05\x04\n\x02\x05\x04\x12\x04\x80\x03\x02\n\n\r\n\x05\
8916
    \x04\n\x02\x05\x06\x12\x04\x80\x03\x0b\x17\n\r\n\x05\x04\n\x02\x05\x01\
8917
    \x12\x04\x80\x03\x18$\n\r\n\x05\x04\n\x02\x05\x03\x12\x04\x80\x03'(\n\r\
8918
    \n\x05\x04\n\x02\x05\x08\x12\x04\x80\x03):\n\r\n\x05\x04\n\x02\x05\x07\
8919
    \x12\x04\x80\x0349\n\xe2\x02\n\x04\x04\n\x02\x06\x12\x04\x87\x03\x02\"\
8920
    \x1a\xd3\x02\x20Sets\x20the\x20Go\x20package\x20where\x20structs\x20gene\
8921
    rated\x20from\x20this\x20.proto\x20will\x20be\n\x20placed.\x20If\x20omit\
8922
    ted,\x20the\x20Go\x20package\x20will\x20be\x20derived\x20from\x20the\x20\
8923
    following:\n\x20\x20\x20-\x20The\x20basename\x20of\x20the\x20package\x20\
8924
    import\x20path,\x20if\x20provided.\n\x20\x20\x20-\x20Otherwise,\x20the\
8925
    \x20package\x20statement\x20in\x20the\x20.proto\x20file,\x20if\x20presen\
8926
    t.\n\x20\x20\x20-\x20Otherwise,\x20the\x20basename\x20of\x20the\x20.prot\
8927
    o\x20file,\x20without\x20extension.\n\n\r\n\x05\x04\n\x02\x06\x04\x12\
8928
    \x04\x87\x03\x02\n\n\r\n\x05\x04\n\x02\x06\x05\x12\x04\x87\x03\x0b\x11\n\
8929
    \r\n\x05\x04\n\x02\x06\x01\x12\x04\x87\x03\x12\x1c\n\r\n\x05\x04\n\x02\
8930
    \x06\x03\x12\x04\x87\x03\x1f!\n\xd4\x04\n\x04\x04\n\x02\x07\x12\x04\x96\
8931
    \x03\x02;\x1a\xc5\x04\x20Should\x20generic\x20services\x20be\x20generate\
8932
    d\x20in\x20each\x20language?\x20\x20\"Generic\"\x20services\n\x20are\x20\
8933
    not\x20specific\x20to\x20any\x20particular\x20RPC\x20system.\x20\x20They\
8934
    \x20are\x20generated\x20by\x20the\n\x20main\x20code\x20generators\x20in\
8935
    \x20each\x20language\x20(without\x20additional\x20plugins).\n\x20Generic\
8936
    \x20services\x20were\x20the\x20only\x20kind\x20of\x20service\x20generati\
8937
    on\x20supported\x20by\n\x20early\x20versions\x20of\x20google.protobuf.\n\
8938
    \n\x20Generic\x20services\x20are\x20now\x20considered\x20deprecated\x20i\
8939
    n\x20favor\x20of\x20using\x20plugins\n\x20that\x20generate\x20code\x20sp\
8940
    ecific\x20to\x20your\x20particular\x20RPC\x20system.\x20\x20Therefore,\n\
8941
    \x20these\x20default\x20to\x20false.\x20\x20Old\x20code\x20which\x20depe\
8942
    nds\x20on\x20generic\x20services\x20should\n\x20explicitly\x20set\x20the\
8943
    m\x20to\x20true.\n\n\r\n\x05\x04\n\x02\x07\x04\x12\x04\x96\x03\x02\n\n\r\
8944
    \n\x05\x04\n\x02\x07\x05\x12\x04\x96\x03\x0b\x0f\n\r\n\x05\x04\n\x02\x07\
8945
    \x01\x12\x04\x96\x03\x10#\n\r\n\x05\x04\n\x02\x07\x03\x12\x04\x96\x03&(\
8946
    \n\r\n\x05\x04\n\x02\x07\x08\x12\x04\x96\x03):\n\r\n\x05\x04\n\x02\x07\
8947
    \x07\x12\x04\x96\x0349\n\x0c\n\x04\x04\n\x02\x08\x12\x04\x97\x03\x02=\n\
8948
    \r\n\x05\x04\n\x02\x08\x04\x12\x04\x97\x03\x02\n\n\r\n\x05\x04\n\x02\x08\
8949
    \x05\x12\x04\x97\x03\x0b\x0f\n\r\n\x05\x04\n\x02\x08\x01\x12\x04\x97\x03\
8950
    \x10%\n\r\n\x05\x04\n\x02\x08\x03\x12\x04\x97\x03(*\n\r\n\x05\x04\n\x02\
8951
    \x08\x08\x12\x04\x97\x03+<\n\r\n\x05\x04\n\x02\x08\x07\x12\x04\x97\x036;\
8952
    \n\x0c\n\x04\x04\n\x02\t\x12\x04\x98\x03\x02;\n\r\n\x05\x04\n\x02\t\x04\
8953
    \x12\x04\x98\x03\x02\n\n\r\n\x05\x04\n\x02\t\x05\x12\x04\x98\x03\x0b\x0f\
8954
    \n\r\n\x05\x04\n\x02\t\x01\x12\x04\x98\x03\x10#\n\r\n\x05\x04\n\x02\t\
8955
    \x03\x12\x04\x98\x03&(\n\r\n\x05\x04\n\x02\t\x08\x12\x04\x98\x03):\n\r\n\
8956
    \x05\x04\n\x02\t\x07\x12\x04\x98\x0349\n\x0c\n\x04\x04\n\x02\n\x12\x04\
8957
    \x99\x03\x02<\n\r\n\x05\x04\n\x02\n\x04\x12\x04\x99\x03\x02\n\n\r\n\x05\
8958
    \x04\n\x02\n\x05\x12\x04\x99\x03\x0b\x0f\n\r\n\x05\x04\n\x02\n\x01\x12\
8959
    \x04\x99\x03\x10$\n\r\n\x05\x04\n\x02\n\x03\x12\x04\x99\x03')\n\r\n\x05\
8960
    \x04\n\x02\n\x08\x12\x04\x99\x03*;\n\r\n\x05\x04\n\x02\n\x07\x12\x04\x99\
8961
    \x035:\n\xf3\x01\n\x04\x04\n\x02\x0b\x12\x04\x9f\x03\x022\x1a\xe4\x01\
8962
    \x20Is\x20this\x20file\x20deprecated?\n\x20Depending\x20on\x20the\x20tar\
8963
    get\x20platform,\x20this\x20can\x20emit\x20Deprecated\x20annotations\n\
8964
    \x20for\x20everything\x20in\x20the\x20file,\x20or\x20it\x20will\x20be\
8965
    \x20completely\x20ignored;\x20in\x20the\x20very\n\x20least,\x20this\x20i\
8966
    s\x20a\x20formalization\x20for\x20deprecating\x20files.\n\n\r\n\x05\x04\
8967
    \n\x02\x0b\x04\x12\x04\x9f\x03\x02\n\n\r\n\x05\x04\n\x02\x0b\x05\x12\x04\
8968
    \x9f\x03\x0b\x0f\n\r\n\x05\x04\n\x02\x0b\x01\x12\x04\x9f\x03\x10\x1a\n\r\
8969
    \n\x05\x04\n\x02\x0b\x03\x12\x04\x9f\x03\x1d\x1f\n\r\n\x05\x04\n\x02\x0b\
8970
    \x08\x12\x04\x9f\x03\x201\n\r\n\x05\x04\n\x02\x0b\x07\x12\x04\x9f\x03+0\
8971
    \n\x7f\n\x04\x04\n\x02\x0c\x12\x04\xa3\x03\x027\x1aq\x20Enables\x20the\
8972
    \x20use\x20of\x20arenas\x20for\x20the\x20proto\x20messages\x20in\x20this\
8973
    \x20file.\x20This\x20applies\n\x20only\x20to\x20generated\x20classes\x20\
8974
    for\x20C++.\n\n\r\n\x05\x04\n\x02\x0c\x04\x12\x04\xa3\x03\x02\n\n\r\n\
8975
    \x05\x04\n\x02\x0c\x05\x12\x04\xa3\x03\x0b\x0f\n\r\n\x05\x04\n\x02\x0c\
8976
    \x01\x12\x04\xa3\x03\x10\x20\n\r\n\x05\x04\n\x02\x0c\x03\x12\x04\xa3\x03\
8977
    #%\n\r\n\x05\x04\n\x02\x0c\x08\x12\x04\xa3\x03&6\n\r\n\x05\x04\n\x02\x0c\
8978
    \x07\x12\x04\xa3\x0315\n\x92\x01\n\x04\x04\n\x02\r\x12\x04\xa8\x03\x02)\
8979
    \x1a\x83\x01\x20Sets\x20the\x20objective\x20c\x20class\x20prefix\x20whic\
8980
    h\x20is\x20prepended\x20to\x20all\x20objective\x20c\n\x20generated\x20cl\
8981
    asses\x20from\x20this\x20.proto.\x20There\x20is\x20no\x20default.\n\n\r\
8982
    \n\x05\x04\n\x02\r\x04\x12\x04\xa8\x03\x02\n\n\r\n\x05\x04\n\x02\r\x05\
8983
    \x12\x04\xa8\x03\x0b\x11\n\r\n\x05\x04\n\x02\r\x01\x12\x04\xa8\x03\x12#\
8984
    \n\r\n\x05\x04\n\x02\r\x03\x12\x04\xa8\x03&(\nI\n\x04\x04\n\x02\x0e\x12\
8985
    \x04\xab\x03\x02(\x1a;\x20Namespace\x20for\x20generated\x20classes;\x20d\
8986
    efaults\x20to\x20the\x20package.\n\n\r\n\x05\x04\n\x02\x0e\x04\x12\x04\
8987
    \xab\x03\x02\n\n\r\n\x05\x04\n\x02\x0e\x05\x12\x04\xab\x03\x0b\x11\n\r\n\
8988
    \x05\x04\n\x02\x0e\x01\x12\x04\xab\x03\x12\"\n\r\n\x05\x04\n\x02\x0e\x03\
8989
    \x12\x04\xab\x03%'\n\x91\x02\n\x04\x04\n\x02\x0f\x12\x04\xb1\x03\x02$\
8990
    \x1a\x82\x02\x20By\x20default\x20Swift\x20generators\x20will\x20take\x20\
8991
    the\x20proto\x20package\x20and\x20CamelCase\x20it\n\x20replacing\x20'.'\
8992
    \x20with\x20underscore\x20and\x20use\x20that\x20to\x20prefix\x20the\x20t\
8993
    ypes/symbols\n\x20defined.\x20When\x20this\x20options\x20is\x20provided,\
8994
    \x20they\x20will\x20use\x20this\x20value\x20instead\n\x20to\x20prefix\
8995
    \x20the\x20types/symbols\x20defined.\n\n\r\n\x05\x04\n\x02\x0f\x04\x12\
8996
    \x04\xb1\x03\x02\n\n\r\n\x05\x04\n\x02\x0f\x05\x12\x04\xb1\x03\x0b\x11\n\
8997
    \r\n\x05\x04\n\x02\x0f\x01\x12\x04\xb1\x03\x12\x1e\n\r\n\x05\x04\n\x02\
8998
    \x0f\x03\x12\x04\xb1\x03!#\n~\n\x04\x04\n\x02\x10\x12\x04\xb5\x03\x02(\
8999
    \x1ap\x20Sets\x20the\x20php\x20class\x20prefix\x20which\x20is\x20prepend\
9000
    ed\x20to\x20all\x20php\x20generated\x20classes\n\x20from\x20this\x20.pro\
9001
    to.\x20Default\x20is\x20empty.\n\n\r\n\x05\x04\n\x02\x10\x04\x12\x04\xb5\
9002
    \x03\x02\n\n\r\n\x05\x04\n\x02\x10\x05\x12\x04\xb5\x03\x0b\x11\n\r\n\x05\
9003
    \x04\n\x02\x10\x01\x12\x04\xb5\x03\x12\"\n\r\n\x05\x04\n\x02\x10\x03\x12\
9004
    \x04\xb5\x03%'\n\xbe\x01\n\x04\x04\n\x02\x11\x12\x04\xba\x03\x02%\x1a\
9005
    \xaf\x01\x20Use\x20this\x20option\x20to\x20change\x20the\x20namespace\
9006
    \x20of\x20php\x20generated\x20classes.\x20Default\n\x20is\x20empty.\x20W\
9007
    hen\x20this\x20option\x20is\x20empty,\x20the\x20package\x20name\x20will\
9008
    \x20be\x20used\x20for\n\x20determining\x20the\x20namespace.\n\n\r\n\x05\
9009
    \x04\n\x02\x11\x04\x12\x04\xba\x03\x02\n\n\r\n\x05\x04\n\x02\x11\x05\x12\
9010
    \x04\xba\x03\x0b\x11\n\r\n\x05\x04\n\x02\x11\x01\x12\x04\xba\x03\x12\x1f\
9011
    \n\r\n\x05\x04\n\x02\x11\x03\x12\x04\xba\x03\"$\n\xca\x01\n\x04\x04\n\
9012
    \x02\x12\x12\x04\xbf\x03\x02.\x1a\xbb\x01\x20Use\x20this\x20option\x20to\
9013
    \x20change\x20the\x20namespace\x20of\x20php\x20generated\x20metadata\x20\
9014
    classes.\n\x20Default\x20is\x20empty.\x20When\x20this\x20option\x20is\
9015
    \x20empty,\x20the\x20proto\x20file\x20name\x20will\x20be\n\x20used\x20fo\
9016
    r\x20determining\x20the\x20namespace.\n\n\r\n\x05\x04\n\x02\x12\x04\x12\
9017
    \x04\xbf\x03\x02\n\n\r\n\x05\x04\n\x02\x12\x05\x12\x04\xbf\x03\x0b\x11\n\
9018
    \r\n\x05\x04\n\x02\x12\x01\x12\x04\xbf\x03\x12(\n\r\n\x05\x04\n\x02\x12\
9019
    \x03\x12\x04\xbf\x03+-\n\xc2\x01\n\x04\x04\n\x02\x13\x12\x04\xc4\x03\x02\
9020
    $\x1a\xb3\x01\x20Use\x20this\x20option\x20to\x20change\x20the\x20package\
9021
    \x20of\x20ruby\x20generated\x20classes.\x20Default\n\x20is\x20empty.\x20\
9022
    When\x20this\x20option\x20is\x20not\x20set,\x20the\x20package\x20name\
9023
    \x20will\x20be\x20used\x20for\n\x20determining\x20the\x20ruby\x20package\
9024
    .\n\n\r\n\x05\x04\n\x02\x13\x04\x12\x04\xc4\x03\x02\n\n\r\n\x05\x04\n\
9025
    \x02\x13\x05\x12\x04\xc4\x03\x0b\x11\n\r\n\x05\x04\n\x02\x13\x01\x12\x04\
9026
    \xc4\x03\x12\x1e\n\r\n\x05\x04\n\x02\x13\x03\x12\x04\xc4\x03!#\n|\n\x04\
9027
    \x04\n\x02\x14\x12\x04\xc9\x03\x02:\x1an\x20The\x20parser\x20stores\x20o\
9028
    ptions\x20it\x20doesn't\x20recognize\x20here.\n\x20See\x20the\x20documen\
9029
    tation\x20for\x20the\x20\"Options\"\x20section\x20above.\n\n\r\n\x05\x04\
9030
    \n\x02\x14\x04\x12\x04\xc9\x03\x02\n\n\r\n\x05\x04\n\x02\x14\x06\x12\x04\
9031
    \xc9\x03\x0b\x1e\n\r\n\x05\x04\n\x02\x14\x01\x12\x04\xc9\x03\x1f3\n\r\n\
9032
    \x05\x04\n\x02\x14\x03\x12\x04\xc9\x0369\n\x87\x01\n\x03\x04\n\x05\x12\
9033
    \x04\xcd\x03\x02\x19\x1az\x20Clients\x20can\x20define\x20custom\x20optio\
9034
    ns\x20in\x20extensions\x20of\x20this\x20message.\n\x20See\x20the\x20docu\
9035
    mentation\x20for\x20the\x20\"Options\"\x20section\x20above.\n\n\x0c\n\
9036
    \x04\x04\n\x05\0\x12\x04\xcd\x03\r\x18\n\r\n\x05\x04\n\x05\0\x01\x12\x04\
9037
    \xcd\x03\r\x11\n\r\n\x05\x04\n\x05\0\x02\x12\x04\xcd\x03\x15\x18\n\x0b\n\
9038
    \x03\x04\n\t\x12\x04\xcf\x03\x02\x0e\n\x0c\n\x04\x04\n\t\0\x12\x04\xcf\
9039
    \x03\x0b\r\n\r\n\x05\x04\n\t\0\x01\x12\x04\xcf\x03\x0b\r\n\r\n\x05\x04\n\
9040
    \t\0\x02\x12\x04\xcf\x03\x0b\r\n\x0c\n\x02\x04\x0b\x12\x06\xd2\x03\0\x94\
9041
    \x04\x01\n\x0b\n\x03\x04\x0b\x01\x12\x04\xd2\x03\x08\x16\n\xd8\x05\n\x04\
9042
    \x04\x0b\x02\0\x12\x04\xe5\x03\x02>\x1a\xc9\x05\x20Set\x20true\x20to\x20\
9043
    use\x20the\x20old\x20proto1\x20MessageSet\x20wire\x20format\x20for\x20ex\
9044
    tensions.\n\x20This\x20is\x20provided\x20for\x20backwards-compatibility\
9045
    \x20with\x20the\x20MessageSet\x20wire\n\x20format.\x20\x20You\x20should\
9046
    \x20not\x20use\x20this\x20for\x20any\x20other\x20reason:\x20\x20It's\x20\
9047
    less\n\x20efficient,\x20has\x20fewer\x20features,\x20and\x20is\x20more\
9048
    \x20complicated.\n\n\x20The\x20message\x20must\x20be\x20defined\x20exact\
9049
    ly\x20as\x20follows:\n\x20\x20\x20message\x20Foo\x20{\n\x20\x20\x20\x20\
9050
    \x20option\x20message_set_wire_format\x20=\x20true;\n\x20\x20\x20\x20\
9051
    \x20extensions\x204\x20to\x20max;\n\x20\x20\x20}\n\x20Note\x20that\x20th\
9052
    e\x20message\x20cannot\x20have\x20any\x20defined\x20fields;\x20MessageSe\
9053
    ts\x20only\n\x20have\x20extensions.\n\n\x20All\x20extensions\x20of\x20yo\
9054
    ur\x20type\x20must\x20be\x20singular\x20messages;\x20e.g.\x20they\x20can\
9055
    not\n\x20be\x20int32s,\x20enums,\x20or\x20repeated\x20messages.\n\n\x20B\
9056
    ecause\x20this\x20is\x20an\x20option,\x20the\x20above\x20two\x20restrict\
9057
    ions\x20are\x20not\x20enforced\x20by\n\x20the\x20protocol\x20compiler.\n\
9058
    \n\r\n\x05\x04\x0b\x02\0\x04\x12\x04\xe5\x03\x02\n\n\r\n\x05\x04\x0b\x02\
9059
    \0\x05\x12\x04\xe5\x03\x0b\x0f\n\r\n\x05\x04\x0b\x02\0\x01\x12\x04\xe5\
9060
    \x03\x10'\n\r\n\x05\x04\x0b\x02\0\x03\x12\x04\xe5\x03*+\n\r\n\x05\x04\
9061
    \x0b\x02\0\x08\x12\x04\xe5\x03,=\n\r\n\x05\x04\x0b\x02\0\x07\x12\x04\xe5\
9062
    \x037<\n\xeb\x01\n\x04\x04\x0b\x02\x01\x12\x04\xea\x03\x02F\x1a\xdc\x01\
9063
    \x20Disables\x20the\x20generation\x20of\x20the\x20standard\x20\"descript\
9064
    or()\"\x20accessor,\x20which\x20can\n\x20conflict\x20with\x20a\x20field\
9065
    \x20of\x20the\x20same\x20name.\x20\x20This\x20is\x20meant\x20to\x20make\
9066
    \x20migration\n\x20from\x20proto1\x20easier;\x20new\x20code\x20should\
9067
    \x20avoid\x20fields\x20named\x20\"descriptor\".\n\n\r\n\x05\x04\x0b\x02\
9068
    \x01\x04\x12\x04\xea\x03\x02\n\n\r\n\x05\x04\x0b\x02\x01\x05\x12\x04\xea\
9069
    \x03\x0b\x0f\n\r\n\x05\x04\x0b\x02\x01\x01\x12\x04\xea\x03\x10/\n\r\n\
9070
    \x05\x04\x0b\x02\x01\x03\x12\x04\xea\x0323\n\r\n\x05\x04\x0b\x02\x01\x08\
9071
    \x12\x04\xea\x034E\n\r\n\x05\x04\x0b\x02\x01\x07\x12\x04\xea\x03?D\n\xee\
9072
    \x01\n\x04\x04\x0b\x02\x02\x12\x04\xf0\x03\x021\x1a\xdf\x01\x20Is\x20thi\
9073
    s\x20message\x20deprecated?\n\x20Depending\x20on\x20the\x20target\x20pla\
9074
    tform,\x20this\x20can\x20emit\x20Deprecated\x20annotations\n\x20for\x20t\
9075
    he\x20message,\x20or\x20it\x20will\x20be\x20completely\x20ignored;\x20in\
9076
    \x20the\x20very\x20least,\n\x20this\x20is\x20a\x20formalization\x20for\
9077
    \x20deprecating\x20messages.\n\n\r\n\x05\x04\x0b\x02\x02\x04\x12\x04\xf0\
9078
    \x03\x02\n\n\r\n\x05\x04\x0b\x02\x02\x05\x12\x04\xf0\x03\x0b\x0f\n\r\n\
9079
    \x05\x04\x0b\x02\x02\x01\x12\x04\xf0\x03\x10\x1a\n\r\n\x05\x04\x0b\x02\
9080
    \x02\x03\x12\x04\xf0\x03\x1d\x1e\n\r\n\x05\x04\x0b\x02\x02\x08\x12\x04\
9081
    \xf0\x03\x1f0\n\r\n\x05\x04\x0b\x02\x02\x07\x12\x04\xf0\x03*/\n\x0b\n\
9082
    \x03\x04\x0b\t\x12\x04\xf2\x03\x02\x13\n\x0c\n\x04\x04\x0b\t\0\x12\x04\
9083
    \xf2\x03\x0b\x0c\n\r\n\x05\x04\x0b\t\0\x01\x12\x04\xf2\x03\x0b\x0c\n\r\n\
9084
    \x05\x04\x0b\t\0\x02\x12\x04\xf2\x03\x0b\x0c\n\x0c\n\x04\x04\x0b\t\x01\
9085
    \x12\x04\xf2\x03\x0e\x0f\n\r\n\x05\x04\x0b\t\x01\x01\x12\x04\xf2\x03\x0e\
9086
    \x0f\n\r\n\x05\x04\x0b\t\x01\x02\x12\x04\xf2\x03\x0e\x0f\n\x0c\n\x04\x04\
9087
    \x0b\t\x02\x12\x04\xf2\x03\x11\x12\n\r\n\x05\x04\x0b\t\x02\x01\x12\x04\
9088
    \xf2\x03\x11\x12\n\r\n\x05\x04\x0b\t\x02\x02\x12\x04\xf2\x03\x11\x12\n\
9089
    \xa0\x06\n\x04\x04\x0b\x02\x03\x12\x04\x89\x04\x02\x1e\x1a\x91\x06\x20Wh\
9090
    ether\x20the\x20message\x20is\x20an\x20automatically\x20generated\x20map\
9091
    \x20entry\x20type\x20for\x20the\n\x20maps\x20field.\n\n\x20For\x20maps\
9092
    \x20fields:\n\x20\x20\x20\x20\x20map<KeyType,\x20ValueType>\x20map_field\
9093
    \x20=\x201;\n\x20The\x20parsed\x20descriptor\x20looks\x20like:\n\x20\x20\
9094
    \x20\x20\x20message\x20MapFieldEntry\x20{\n\x20\x20\x20\x20\x20\x20\x20\
9095
    \x20\x20option\x20map_entry\x20=\x20true;\n\x20\x20\x20\x20\x20\x20\x20\
9096
    \x20\x20optional\x20KeyType\x20key\x20=\x201;\n\x20\x20\x20\x20\x20\x20\
9097
    \x20\x20\x20optional\x20ValueType\x20value\x20=\x202;\n\x20\x20\x20\x20\
9098
    \x20}\n\x20\x20\x20\x20\x20repeated\x20MapFieldEntry\x20map_field\x20=\
9099
    \x201;\n\n\x20Implementations\x20may\x20choose\x20not\x20to\x20generate\
9100
    \x20the\x20map_entry=true\x20message,\x20but\n\x20use\x20a\x20native\x20\
9101
    map\x20in\x20the\x20target\x20language\x20to\x20hold\x20the\x20keys\x20a\
9102
    nd\x20values.\n\x20The\x20reflection\x20APIs\x20in\x20such\x20implementa\
9103
    tions\x20still\x20need\x20to\x20work\x20as\n\x20if\x20the\x20field\x20is\
9104
    \x20a\x20repeated\x20message\x20field.\n\n\x20NOTE:\x20Do\x20not\x20set\
9105
    \x20the\x20option\x20in\x20.proto\x20files.\x20Always\x20use\x20the\x20m\
9106
    aps\x20syntax\n\x20instead.\x20The\x20option\x20should\x20only\x20be\x20\
9107
    implicitly\x20set\x20by\x20the\x20proto\x20compiler\n\x20parser.\n\n\r\n\
9108
    \x05\x04\x0b\x02\x03\x04\x12\x04\x89\x04\x02\n\n\r\n\x05\x04\x0b\x02\x03\
9109
    \x05\x12\x04\x89\x04\x0b\x0f\n\r\n\x05\x04\x0b\x02\x03\x01\x12\x04\x89\
9110
    \x04\x10\x19\n\r\n\x05\x04\x0b\x02\x03\x03\x12\x04\x89\x04\x1c\x1d\n$\n\
9111
    \x03\x04\x0b\t\x12\x04\x8b\x04\x02\r\"\x17\x20javalite_serializable\n\n\
9112
    \x0c\n\x04\x04\x0b\t\x03\x12\x04\x8b\x04\x0b\x0c\n\r\n\x05\x04\x0b\t\x03\
9113
    \x01\x12\x04\x8b\x04\x0b\x0c\n\r\n\x05\x04\x0b\t\x03\x02\x12\x04\x8b\x04\
9114
    \x0b\x0c\n\x1f\n\x03\x04\x0b\t\x12\x04\x8c\x04\x02\r\"\x12\x20javanano_a\
9115
    s_lite\n\n\x0c\n\x04\x04\x0b\t\x04\x12\x04\x8c\x04\x0b\x0c\n\r\n\x05\x04\
9116
    \x0b\t\x04\x01\x12\x04\x8c\x04\x0b\x0c\n\r\n\x05\x04\x0b\t\x04\x02\x12\
9117
    \x04\x8c\x04\x0b\x0c\nO\n\x04\x04\x0b\x02\x04\x12\x04\x90\x04\x02:\x1aA\
9118
    \x20The\x20parser\x20stores\x20options\x20it\x20doesn't\x20recognize\x20\
9119
    here.\x20See\x20above.\n\n\r\n\x05\x04\x0b\x02\x04\x04\x12\x04\x90\x04\
9120
    \x02\n\n\r\n\x05\x04\x0b\x02\x04\x06\x12\x04\x90\x04\x0b\x1e\n\r\n\x05\
9121
    \x04\x0b\x02\x04\x01\x12\x04\x90\x04\x1f3\n\r\n\x05\x04\x0b\x02\x04\x03\
9122
    \x12\x04\x90\x0469\nZ\n\x03\x04\x0b\x05\x12\x04\x93\x04\x02\x19\x1aM\x20\
9123
    Clients\x20can\x20define\x20custom\x20options\x20in\x20extensions\x20of\
9124
    \x20this\x20message.\x20See\x20above.\n\n\x0c\n\x04\x04\x0b\x05\0\x12\
9125
    \x04\x93\x04\r\x18\n\r\n\x05\x04\x0b\x05\0\x01\x12\x04\x93\x04\r\x11\n\r\
9126
    \n\x05\x04\x0b\x05\0\x02\x12\x04\x93\x04\x15\x18\n\x0c\n\x02\x04\x0c\x12\
9127
    \x06\x96\x04\0\xf1\x04\x01\n\x0b\n\x03\x04\x0c\x01\x12\x04\x96\x04\x08\
9128
    \x14\n\xa3\x02\n\x04\x04\x0c\x02\0\x12\x04\x9b\x04\x02.\x1a\x94\x02\x20T\
9129
    he\x20ctype\x20option\x20instructs\x20the\x20C++\x20code\x20generator\
9130
    \x20to\x20use\x20a\x20different\n\x20representation\x20of\x20the\x20fiel\
9131
    d\x20than\x20it\x20normally\x20would.\x20\x20See\x20the\x20specific\n\
9132
    \x20options\x20below.\x20\x20This\x20option\x20is\x20not\x20yet\x20imple\
9133
    mented\x20in\x20the\x20open\x20source\n\x20release\x20--\x20sorry,\x20we\
9134
    'll\x20try\x20to\x20include\x20it\x20in\x20a\x20future\x20version!\n\n\r\
9135
    \n\x05\x04\x0c\x02\0\x04\x12\x04\x9b\x04\x02\n\n\r\n\x05\x04\x0c\x02\0\
9136
    \x06\x12\x04\x9b\x04\x0b\x10\n\r\n\x05\x04\x0c\x02\0\x01\x12\x04\x9b\x04\
9137
    \x11\x16\n\r\n\x05\x04\x0c\x02\0\x03\x12\x04\x9b\x04\x19\x1a\n\r\n\x05\
9138
    \x04\x0c\x02\0\x08\x12\x04\x9b\x04\x1b-\n\r\n\x05\x04\x0c\x02\0\x07\x12\
9139
    \x04\x9b\x04&,\n\x0e\n\x04\x04\x0c\x04\0\x12\x06\x9c\x04\x02\xa3\x04\x03\
9140
    \n\r\n\x05\x04\x0c\x04\0\x01\x12\x04\x9c\x04\x07\x0c\n\x1f\n\x06\x04\x0c\
9141
    \x04\0\x02\0\x12\x04\x9e\x04\x04\x0f\x1a\x0f\x20Default\x20mode.\n\n\x0f\
9142
    \n\x07\x04\x0c\x04\0\x02\0\x01\x12\x04\x9e\x04\x04\n\n\x0f\n\x07\x04\x0c\
9143
    \x04\0\x02\0\x02\x12\x04\x9e\x04\r\x0e\n\x0e\n\x06\x04\x0c\x04\0\x02\x01\
9144
    \x12\x04\xa0\x04\x04\r\n\x0f\n\x07\x04\x0c\x04\0\x02\x01\x01\x12\x04\xa0\
9145
    \x04\x04\x08\n\x0f\n\x07\x04\x0c\x04\0\x02\x01\x02\x12\x04\xa0\x04\x0b\
9146
    \x0c\n\x0e\n\x06\x04\x0c\x04\0\x02\x02\x12\x04\xa2\x04\x04\x15\n\x0f\n\
9147
    \x07\x04\x0c\x04\0\x02\x02\x01\x12\x04\xa2\x04\x04\x10\n\x0f\n\x07\x04\
9148
    \x0c\x04\0\x02\x02\x02\x12\x04\xa2\x04\x13\x14\n\xda\x02\n\x04\x04\x0c\
9149
    \x02\x01\x12\x04\xa9\x04\x02\x1b\x1a\xcb\x02\x20The\x20packed\x20option\
9150
    \x20can\x20be\x20enabled\x20for\x20repeated\x20primitive\x20fields\x20to\
9151
    \x20enable\n\x20a\x20more\x20efficient\x20representation\x20on\x20the\
9152
    \x20wire.\x20Rather\x20than\x20repeatedly\n\x20writing\x20the\x20tag\x20\
9153
    and\x20type\x20for\x20each\x20element,\x20the\x20entire\x20array\x20is\
9154
    \x20encoded\x20as\n\x20a\x20single\x20length-delimited\x20blob.\x20In\
9155
    \x20proto3,\x20only\x20explicit\x20setting\x20it\x20to\n\x20false\x20wil\
9156
    l\x20avoid\x20using\x20packed\x20encoding.\n\n\r\n\x05\x04\x0c\x02\x01\
9157
    \x04\x12\x04\xa9\x04\x02\n\n\r\n\x05\x04\x0c\x02\x01\x05\x12\x04\xa9\x04\
9158
    \x0b\x0f\n\r\n\x05\x04\x0c\x02\x01\x01\x12\x04\xa9\x04\x10\x16\n\r\n\x05\
9159
    \x04\x0c\x02\x01\x03\x12\x04\xa9\x04\x19\x1a\n\x9a\x05\n\x04\x04\x0c\x02\
9160
    \x02\x12\x04\xb6\x04\x023\x1a\x8b\x05\x20The\x20jstype\x20option\x20dete\
9161
    rmines\x20the\x20JavaScript\x20type\x20used\x20for\x20values\x20of\x20th\
9162
    e\n\x20field.\x20\x20The\x20option\x20is\x20permitted\x20only\x20for\x20\
9163
    64\x20bit\x20integral\x20and\x20fixed\x20types\n\x20(int64,\x20uint64,\
9164
    \x20sint64,\x20fixed64,\x20sfixed64).\x20\x20A\x20field\x20with\x20jstyp\
9165
    e\x20JS_STRING\n\x20is\x20represented\x20as\x20JavaScript\x20string,\x20\
9166
    which\x20avoids\x20loss\x20of\x20precision\x20that\n\x20can\x20happen\
9167
    \x20when\x20a\x20large\x20value\x20is\x20converted\x20to\x20a\x20floatin\
9168
    g\x20point\x20JavaScript.\n\x20Specifying\x20JS_NUMBER\x20for\x20the\x20\
9169
    jstype\x20causes\x20the\x20generated\x20JavaScript\x20code\x20to\n\x20us\
9170
    e\x20the\x20JavaScript\x20\"number\"\x20type.\x20\x20The\x20behavior\x20\
9171
    of\x20the\x20default\x20option\n\x20JS_NORMAL\x20is\x20implementation\
9172
    \x20dependent.\n\n\x20This\x20option\x20is\x20an\x20enum\x20to\x20permit\
9173
    \x20additional\x20types\x20to\x20be\x20added,\x20e.g.\n\x20goog.math.Int\
9174
    eger.\n\n\r\n\x05\x04\x0c\x02\x02\x04\x12\x04\xb6\x04\x02\n\n\r\n\x05\
9175
    \x04\x0c\x02\x02\x06\x12\x04\xb6\x04\x0b\x11\n\r\n\x05\x04\x0c\x02\x02\
9176
    \x01\x12\x04\xb6\x04\x12\x18\n\r\n\x05\x04\x0c\x02\x02\x03\x12\x04\xb6\
9177
    \x04\x1b\x1c\n\r\n\x05\x04\x0c\x02\x02\x08\x12\x04\xb6\x04\x1d2\n\r\n\
9178
    \x05\x04\x0c\x02\x02\x07\x12\x04\xb6\x04(1\n\x0e\n\x04\x04\x0c\x04\x01\
9179
    \x12\x06\xb7\x04\x02\xc0\x04\x03\n\r\n\x05\x04\x0c\x04\x01\x01\x12\x04\
9180
    \xb7\x04\x07\r\n'\n\x06\x04\x0c\x04\x01\x02\0\x12\x04\xb9\x04\x04\x12\
9181
    \x1a\x17\x20Use\x20the\x20default\x20type.\n\n\x0f\n\x07\x04\x0c\x04\x01\
9182
    \x02\0\x01\x12\x04\xb9\x04\x04\r\n\x0f\n\x07\x04\x0c\x04\x01\x02\0\x02\
9183
    \x12\x04\xb9\x04\x10\x11\n)\n\x06\x04\x0c\x04\x01\x02\x01\x12\x04\xbc\
9184
    \x04\x04\x12\x1a\x19\x20Use\x20JavaScript\x20strings.\n\n\x0f\n\x07\x04\
9185
    \x0c\x04\x01\x02\x01\x01\x12\x04\xbc\x04\x04\r\n\x0f\n\x07\x04\x0c\x04\
9186
    \x01\x02\x01\x02\x12\x04\xbc\x04\x10\x11\n)\n\x06\x04\x0c\x04\x01\x02\
9187
    \x02\x12\x04\xbf\x04\x04\x12\x1a\x19\x20Use\x20JavaScript\x20numbers.\n\
9188
    \n\x0f\n\x07\x04\x0c\x04\x01\x02\x02\x01\x12\x04\xbf\x04\x04\r\n\x0f\n\
9189
    \x07\x04\x0c\x04\x01\x02\x02\x02\x12\x04\xbf\x04\x10\x11\n\xef\x0c\n\x04\
9190
    \x04\x0c\x02\x03\x12\x04\xde\x04\x02+\x1a\xe0\x0c\x20Should\x20this\x20f\
9191
    ield\x20be\x20parsed\x20lazily?\x20\x20Lazy\x20applies\x20only\x20to\x20\
9192
    message-type\n\x20fields.\x20\x20It\x20means\x20that\x20when\x20the\x20o\
9193
    uter\x20message\x20is\x20initially\x20parsed,\x20the\n\x20inner\x20messa\
9194
    ge's\x20contents\x20will\x20not\x20be\x20parsed\x20but\x20instead\x20sto\
9195
    red\x20in\x20encoded\n\x20form.\x20\x20The\x20inner\x20message\x20will\
9196
    \x20actually\x20be\x20parsed\x20when\x20it\x20is\x20first\x20accessed.\n\
9197
    \n\x20This\x20is\x20only\x20a\x20hint.\x20\x20Implementations\x20are\x20\
9198
    free\x20to\x20choose\x20whether\x20to\x20use\n\x20eager\x20or\x20lazy\
9199
    \x20parsing\x20regardless\x20of\x20the\x20value\x20of\x20this\x20option.\
9200
    \x20\x20However,\n\x20setting\x20this\x20option\x20true\x20suggests\x20t\
9201
    hat\x20the\x20protocol\x20author\x20believes\x20that\n\x20using\x20lazy\
9202
    \x20parsing\x20on\x20this\x20field\x20is\x20worth\x20the\x20additional\
9203
    \x20bookkeeping\n\x20overhead\x20typically\x20needed\x20to\x20implement\
9204
    \x20it.\n\n\x20This\x20option\x20does\x20not\x20affect\x20the\x20public\
9205
    \x20interface\x20of\x20any\x20generated\x20code;\n\x20all\x20method\x20s\
9206
    ignatures\x20remain\x20the\x20same.\x20\x20Furthermore,\x20thread-safety\
9207
    \x20of\x20the\n\x20interface\x20is\x20not\x20affected\x20by\x20this\x20o\
9208
    ption;\x20const\x20methods\x20remain\x20safe\x20to\n\x20call\x20from\x20\
9209
    multiple\x20threads\x20concurrently,\x20while\x20non-const\x20methods\
9210
    \x20continue\n\x20to\x20require\x20exclusive\x20access.\n\n\n\x20Note\
9211
    \x20that\x20implementations\x20may\x20choose\x20not\x20to\x20check\x20re\
9212
    quired\x20fields\x20within\n\x20a\x20lazy\x20sub-message.\x20\x20That\
9213
    \x20is,\x20calling\x20IsInitialized()\x20on\x20the\x20outer\x20message\n\
9214
    \x20may\x20return\x20true\x20even\x20if\x20the\x20inner\x20message\x20ha\
9215
    s\x20missing\x20required\x20fields.\n\x20This\x20is\x20necessary\x20beca\
9216
    use\x20otherwise\x20the\x20inner\x20message\x20would\x20have\x20to\x20be\
9217
    \n\x20parsed\x20in\x20order\x20to\x20perform\x20the\x20check,\x20defeati\
9218
    ng\x20the\x20purpose\x20of\x20lazy\n\x20parsing.\x20\x20An\x20implementa\
9219
    tion\x20which\x20chooses\x20not\x20to\x20check\x20required\x20fields\n\
9220
    \x20must\x20be\x20consistent\x20about\x20it.\x20\x20That\x20is,\x20for\
9221
    \x20any\x20particular\x20sub-message,\x20the\n\x20implementation\x20must\
9222
    \x20either\x20*always*\x20check\x20its\x20required\x20fields,\x20or\x20*\
9223
    never*\n\x20check\x20its\x20required\x20fields,\x20regardless\x20of\x20w\
9224
    hether\x20or\x20not\x20the\x20message\x20has\n\x20been\x20parsed.\n\n\r\
9225
    \n\x05\x04\x0c\x02\x03\x04\x12\x04\xde\x04\x02\n\n\r\n\x05\x04\x0c\x02\
9226
    \x03\x05\x12\x04\xde\x04\x0b\x0f\n\r\n\x05\x04\x0c\x02\x03\x01\x12\x04\
9227
    \xde\x04\x10\x14\n\r\n\x05\x04\x0c\x02\x03\x03\x12\x04\xde\x04\x17\x18\n\
9228
    \r\n\x05\x04\x0c\x02\x03\x08\x12\x04\xde\x04\x19*\n\r\n\x05\x04\x0c\x02\
9229
    \x03\x07\x12\x04\xde\x04$)\n\xe8\x01\n\x04\x04\x0c\x02\x04\x12\x04\xe4\
9230
    \x04\x021\x1a\xd9\x01\x20Is\x20this\x20field\x20deprecated?\n\x20Dependi\
9231
    ng\x20on\x20the\x20target\x20platform,\x20this\x20can\x20emit\x20Depreca\
9232
    ted\x20annotations\n\x20for\x20accessors,\x20or\x20it\x20will\x20be\x20c\
9233
    ompletely\x20ignored;\x20in\x20the\x20very\x20least,\x20this\n\x20is\x20\
9234
    a\x20formalization\x20for\x20deprecating\x20fields.\n\n\r\n\x05\x04\x0c\
9235
    \x02\x04\x04\x12\x04\xe4\x04\x02\n\n\r\n\x05\x04\x0c\x02\x04\x05\x12\x04\
9236
    \xe4\x04\x0b\x0f\n\r\n\x05\x04\x0c\x02\x04\x01\x12\x04\xe4\x04\x10\x1a\n\
9237
    \r\n\x05\x04\x0c\x02\x04\x03\x12\x04\xe4\x04\x1d\x1e\n\r\n\x05\x04\x0c\
9238
    \x02\x04\x08\x12\x04\xe4\x04\x1f0\n\r\n\x05\x04\x0c\x02\x04\x07\x12\x04\
9239
    \xe4\x04*/\n?\n\x04\x04\x0c\x02\x05\x12\x04\xe7\x04\x02,\x1a1\x20For\x20\
9240
    Google-internal\x20migration\x20only.\x20Do\x20not\x20use.\n\n\r\n\x05\
9241
    \x04\x0c\x02\x05\x04\x12\x04\xe7\x04\x02\n\n\r\n\x05\x04\x0c\x02\x05\x05\
9242
    \x12\x04\xe7\x04\x0b\x0f\n\r\n\x05\x04\x0c\x02\x05\x01\x12\x04\xe7\x04\
9243
    \x10\x14\n\r\n\x05\x04\x0c\x02\x05\x03\x12\x04\xe7\x04\x17\x19\n\r\n\x05\
9244
    \x04\x0c\x02\x05\x08\x12\x04\xe7\x04\x1a+\n\r\n\x05\x04\x0c\x02\x05\x07\
9245
    \x12\x04\xe7\x04%*\nO\n\x04\x04\x0c\x02\x06\x12\x04\xeb\x04\x02:\x1aA\
9246
    \x20The\x20parser\x20stores\x20options\x20it\x20doesn't\x20recognize\x20\
9247
    here.\x20See\x20above.\n\n\r\n\x05\x04\x0c\x02\x06\x04\x12\x04\xeb\x04\
9248
    \x02\n\n\r\n\x05\x04\x0c\x02\x06\x06\x12\x04\xeb\x04\x0b\x1e\n\r\n\x05\
9249
    \x04\x0c\x02\x06\x01\x12\x04\xeb\x04\x1f3\n\r\n\x05\x04\x0c\x02\x06\x03\
9250
    \x12\x04\xeb\x0469\nZ\n\x03\x04\x0c\x05\x12\x04\xee\x04\x02\x19\x1aM\x20\
9251
    Clients\x20can\x20define\x20custom\x20options\x20in\x20extensions\x20of\
9252
    \x20this\x20message.\x20See\x20above.\n\n\x0c\n\x04\x04\x0c\x05\0\x12\
9253
    \x04\xee\x04\r\x18\n\r\n\x05\x04\x0c\x05\0\x01\x12\x04\xee\x04\r\x11\n\r\
9254
    \n\x05\x04\x0c\x05\0\x02\x12\x04\xee\x04\x15\x18\n\x1c\n\x03\x04\x0c\t\
9255
    \x12\x04\xf0\x04\x02\r\"\x0f\x20removed\x20jtype\n\n\x0c\n\x04\x04\x0c\t\
9256
    \0\x12\x04\xf0\x04\x0b\x0c\n\r\n\x05\x04\x0c\t\0\x01\x12\x04\xf0\x04\x0b\
9257
    \x0c\n\r\n\x05\x04\x0c\t\0\x02\x12\x04\xf0\x04\x0b\x0c\n\x0c\n\x02\x04\r\
9258
    \x12\x06\xf3\x04\0\xf9\x04\x01\n\x0b\n\x03\x04\r\x01\x12\x04\xf3\x04\x08\
9259
    \x14\nO\n\x04\x04\r\x02\0\x12\x04\xf5\x04\x02:\x1aA\x20The\x20parser\x20\
9260
    stores\x20options\x20it\x20doesn't\x20recognize\x20here.\x20See\x20above\
9261
    .\n\n\r\n\x05\x04\r\x02\0\x04\x12\x04\xf5\x04\x02\n\n\r\n\x05\x04\r\x02\
9262
    \0\x06\x12\x04\xf5\x04\x0b\x1e\n\r\n\x05\x04\r\x02\0\x01\x12\x04\xf5\x04\
9263
    \x1f3\n\r\n\x05\x04\r\x02\0\x03\x12\x04\xf5\x0469\nZ\n\x03\x04\r\x05\x12\
9264
    \x04\xf8\x04\x02\x19\x1aM\x20Clients\x20can\x20define\x20custom\x20optio\
9265
    ns\x20in\x20extensions\x20of\x20this\x20message.\x20See\x20above.\n\n\
9266
    \x0c\n\x04\x04\r\x05\0\x12\x04\xf8\x04\r\x18\n\r\n\x05\x04\r\x05\0\x01\
9267
    \x12\x04\xf8\x04\r\x11\n\r\n\x05\x04\r\x05\0\x02\x12\x04\xf8\x04\x15\x18\
9268
    \n\x0c\n\x02\x04\x0e\x12\x06\xfb\x04\0\x8e\x05\x01\n\x0b\n\x03\x04\x0e\
9269
    \x01\x12\x04\xfb\x04\x08\x13\n`\n\x04\x04\x0e\x02\0\x12\x04\xff\x04\x02\
9270
    \x20\x1aR\x20Set\x20this\x20option\x20to\x20true\x20to\x20allow\x20mappi\
9271
    ng\x20different\x20tag\x20names\x20to\x20the\x20same\n\x20value.\n\n\r\n\
9272
    \x05\x04\x0e\x02\0\x04\x12\x04\xff\x04\x02\n\n\r\n\x05\x04\x0e\x02\0\x05\
9273
    \x12\x04\xff\x04\x0b\x0f\n\r\n\x05\x04\x0e\x02\0\x01\x12\x04\xff\x04\x10\
9274
    \x1b\n\r\n\x05\x04\x0e\x02\0\x03\x12\x04\xff\x04\x1e\x1f\n\xe5\x01\n\x04\
9275
    \x04\x0e\x02\x01\x12\x04\x85\x05\x021\x1a\xd6\x01\x20Is\x20this\x20enum\
9276
    \x20deprecated?\n\x20Depending\x20on\x20the\x20target\x20platform,\x20th\
9277
    is\x20can\x20emit\x20Deprecated\x20annotations\n\x20for\x20the\x20enum,\
9278
    \x20or\x20it\x20will\x20be\x20completely\x20ignored;\x20in\x20the\x20ver\
9279
    y\x20least,\x20this\n\x20is\x20a\x20formalization\x20for\x20deprecating\
9280
    \x20enums.\n\n\r\n\x05\x04\x0e\x02\x01\x04\x12\x04\x85\x05\x02\n\n\r\n\
9281
    \x05\x04\x0e\x02\x01\x05\x12\x04\x85\x05\x0b\x0f\n\r\n\x05\x04\x0e\x02\
9282
    \x01\x01\x12\x04\x85\x05\x10\x1a\n\r\n\x05\x04\x0e\x02\x01\x03\x12\x04\
9283
    \x85\x05\x1d\x1e\n\r\n\x05\x04\x0e\x02\x01\x08\x12\x04\x85\x05\x1f0\n\r\
9284
    \n\x05\x04\x0e\x02\x01\x07\x12\x04\x85\x05*/\n\x1f\n\x03\x04\x0e\t\x12\
9285
    \x04\x87\x05\x02\r\"\x12\x20javanano_as_lite\n\n\x0c\n\x04\x04\x0e\t\0\
9286
    \x12\x04\x87\x05\x0b\x0c\n\r\n\x05\x04\x0e\t\0\x01\x12\x04\x87\x05\x0b\
9287
    \x0c\n\r\n\x05\x04\x0e\t\0\x02\x12\x04\x87\x05\x0b\x0c\nO\n\x04\x04\x0e\
9288
    \x02\x02\x12\x04\x8a\x05\x02:\x1aA\x20The\x20parser\x20stores\x20options\
9289
    \x20it\x20doesn't\x20recognize\x20here.\x20See\x20above.\n\n\r\n\x05\x04\
9290
    \x0e\x02\x02\x04\x12\x04\x8a\x05\x02\n\n\r\n\x05\x04\x0e\x02\x02\x06\x12\
9291
    \x04\x8a\x05\x0b\x1e\n\r\n\x05\x04\x0e\x02\x02\x01\x12\x04\x8a\x05\x1f3\
9292
    \n\r\n\x05\x04\x0e\x02\x02\x03\x12\x04\x8a\x0569\nZ\n\x03\x04\x0e\x05\
9293
    \x12\x04\x8d\x05\x02\x19\x1aM\x20Clients\x20can\x20define\x20custom\x20o\
9294
    ptions\x20in\x20extensions\x20of\x20this\x20message.\x20See\x20above.\n\
9295
    \n\x0c\n\x04\x04\x0e\x05\0\x12\x04\x8d\x05\r\x18\n\r\n\x05\x04\x0e\x05\0\
9296
    \x01\x12\x04\x8d\x05\r\x11\n\r\n\x05\x04\x0e\x05\0\x02\x12\x04\x8d\x05\
9297
    \x15\x18\n\x0c\n\x02\x04\x0f\x12\x06\x90\x05\0\x9c\x05\x01\n\x0b\n\x03\
9298
    \x04\x0f\x01\x12\x04\x90\x05\x08\x18\n\xf7\x01\n\x04\x04\x0f\x02\0\x12\
9299
    \x04\x95\x05\x021\x1a\xe8\x01\x20Is\x20this\x20enum\x20value\x20deprecat\
9300
    ed?\n\x20Depending\x20on\x20the\x20target\x20platform,\x20this\x20can\
9301
    \x20emit\x20Deprecated\x20annotations\n\x20for\x20the\x20enum\x20value,\
9302
    \x20or\x20it\x20will\x20be\x20completely\x20ignored;\x20in\x20the\x20ver\
9303
    y\x20least,\n\x20this\x20is\x20a\x20formalization\x20for\x20deprecating\
9304
    \x20enum\x20values.\n\n\r\n\x05\x04\x0f\x02\0\x04\x12\x04\x95\x05\x02\n\
9305
    \n\r\n\x05\x04\x0f\x02\0\x05\x12\x04\x95\x05\x0b\x0f\n\r\n\x05\x04\x0f\
9306
    \x02\0\x01\x12\x04\x95\x05\x10\x1a\n\r\n\x05\x04\x0f\x02\0\x03\x12\x04\
9307
    \x95\x05\x1d\x1e\n\r\n\x05\x04\x0f\x02\0\x08\x12\x04\x95\x05\x1f0\n\r\n\
9308
    \x05\x04\x0f\x02\0\x07\x12\x04\x95\x05*/\nO\n\x04\x04\x0f\x02\x01\x12\
9309
    \x04\x98\x05\x02:\x1aA\x20The\x20parser\x20stores\x20options\x20it\x20do\
9310
    esn't\x20recognize\x20here.\x20See\x20above.\n\n\r\n\x05\x04\x0f\x02\x01\
9311
    \x04\x12\x04\x98\x05\x02\n\n\r\n\x05\x04\x0f\x02\x01\x06\x12\x04\x98\x05\
9312
    \x0b\x1e\n\r\n\x05\x04\x0f\x02\x01\x01\x12\x04\x98\x05\x1f3\n\r\n\x05\
9313
    \x04\x0f\x02\x01\x03\x12\x04\x98\x0569\nZ\n\x03\x04\x0f\x05\x12\x04\x9b\
9314
    \x05\x02\x19\x1aM\x20Clients\x20can\x20define\x20custom\x20options\x20in\
9315
    \x20extensions\x20of\x20this\x20message.\x20See\x20above.\n\n\x0c\n\x04\
9316
    \x04\x0f\x05\0\x12\x04\x9b\x05\r\x18\n\r\n\x05\x04\x0f\x05\0\x01\x12\x04\
9317
    \x9b\x05\r\x11\n\r\n\x05\x04\x0f\x05\0\x02\x12\x04\x9b\x05\x15\x18\n\x0c\
9318
    \n\x02\x04\x10\x12\x06\x9e\x05\0\xb0\x05\x01\n\x0b\n\x03\x04\x10\x01\x12\
9319
    \x04\x9e\x05\x08\x16\n\xd9\x03\n\x04\x04\x10\x02\0\x12\x04\xa9\x05\x022\
9320
    \x1a\xdf\x01\x20Is\x20this\x20service\x20deprecated?\n\x20Depending\x20o\
9321
    n\x20the\x20target\x20platform,\x20this\x20can\x20emit\x20Deprecated\x20\
9322
    annotations\n\x20for\x20the\x20service,\x20or\x20it\x20will\x20be\x20com\
9323
    pletely\x20ignored;\x20in\x20the\x20very\x20least,\n\x20this\x20is\x20a\
9324
    \x20formalization\x20for\x20deprecating\x20services.\n2\xe8\x01\x20Note:\
9325
    \x20\x20Field\x20numbers\x201\x20through\x2032\x20are\x20reserved\x20for\
9326
    \x20Google's\x20internal\x20RPC\n\x20\x20\x20framework.\x20\x20We\x20apo\
9327
    logize\x20for\x20hoarding\x20these\x20numbers\x20to\x20ourselves,\x20but\
9328
    \n\x20\x20\x20we\x20were\x20already\x20using\x20them\x20long\x20before\
9329
    \x20we\x20decided\x20to\x20release\x20Protocol\n\x20\x20\x20Buffers.\n\n\
9330
    \r\n\x05\x04\x10\x02\0\x04\x12\x04\xa9\x05\x02\n\n\r\n\x05\x04\x10\x02\0\
9331
    \x05\x12\x04\xa9\x05\x0b\x0f\n\r\n\x05\x04\x10\x02\0\x01\x12\x04\xa9\x05\
9332
    \x10\x1a\n\r\n\x05\x04\x10\x02\0\x03\x12\x04\xa9\x05\x1d\x1f\n\r\n\x05\
9333
    \x04\x10\x02\0\x08\x12\x04\xa9\x05\x201\n\r\n\x05\x04\x10\x02\0\x07\x12\
9334
    \x04\xa9\x05+0\nO\n\x04\x04\x10\x02\x01\x12\x04\xac\x05\x02:\x1aA\x20The\
9335
    \x20parser\x20stores\x20options\x20it\x20doesn't\x20recognize\x20here.\
9336
    \x20See\x20above.\n\n\r\n\x05\x04\x10\x02\x01\x04\x12\x04\xac\x05\x02\n\
9337
    \n\r\n\x05\x04\x10\x02\x01\x06\x12\x04\xac\x05\x0b\x1e\n\r\n\x05\x04\x10\
9338
    \x02\x01\x01\x12\x04\xac\x05\x1f3\n\r\n\x05\x04\x10\x02\x01\x03\x12\x04\
9339
    \xac\x0569\nZ\n\x03\x04\x10\x05\x12\x04\xaf\x05\x02\x19\x1aM\x20Clients\
9340
    \x20can\x20define\x20custom\x20options\x20in\x20extensions\x20of\x20this\
9341
    \x20message.\x20See\x20above.\n\n\x0c\n\x04\x04\x10\x05\0\x12\x04\xaf\
9342
    \x05\r\x18\n\r\n\x05\x04\x10\x05\0\x01\x12\x04\xaf\x05\r\x11\n\r\n\x05\
9343
    \x04\x10\x05\0\x02\x12\x04\xaf\x05\x15\x18\n\x0c\n\x02\x04\x11\x12\x06\
9344
    \xb2\x05\0\xcf\x05\x01\n\x0b\n\x03\x04\x11\x01\x12\x04\xb2\x05\x08\x15\n\
9345
    \xd6\x03\n\x04\x04\x11\x02\0\x12\x04\xbd\x05\x022\x1a\xdc\x01\x20Is\x20t\
9346
    his\x20method\x20deprecated?\n\x20Depending\x20on\x20the\x20target\x20pl\
9347
    atform,\x20this\x20can\x20emit\x20Deprecated\x20annotations\n\x20for\x20\
9348
    the\x20method,\x20or\x20it\x20will\x20be\x20completely\x20ignored;\x20in\
9349
    \x20the\x20very\x20least,\n\x20this\x20is\x20a\x20formalization\x20for\
9350
    \x20deprecating\x20methods.\n2\xe8\x01\x20Note:\x20\x20Field\x20numbers\
9351
    \x201\x20through\x2032\x20are\x20reserved\x20for\x20Google's\x20internal\
9352
    \x20RPC\n\x20\x20\x20framework.\x20\x20We\x20apologize\x20for\x20hoardin\
9353
    g\x20these\x20numbers\x20to\x20ourselves,\x20but\n\x20\x20\x20we\x20were\
9354
    \x20already\x20using\x20them\x20long\x20before\x20we\x20decided\x20to\
9355
    \x20release\x20Protocol\n\x20\x20\x20Buffers.\n\n\r\n\x05\x04\x11\x02\0\
9356
    \x04\x12\x04\xbd\x05\x02\n\n\r\n\x05\x04\x11\x02\0\x05\x12\x04\xbd\x05\
9357
    \x0b\x0f\n\r\n\x05\x04\x11\x02\0\x01\x12\x04\xbd\x05\x10\x1a\n\r\n\x05\
9358
    \x04\x11\x02\0\x03\x12\x04\xbd\x05\x1d\x1f\n\r\n\x05\x04\x11\x02\0\x08\
9359
    \x12\x04\xbd\x05\x201\n\r\n\x05\x04\x11\x02\0\x07\x12\x04\xbd\x05+0\n\
9360
    \xf0\x01\n\x04\x04\x11\x04\0\x12\x06\xc2\x05\x02\xc6\x05\x03\x1a\xdf\x01\
9361
    \x20Is\x20this\x20method\x20side-effect-free\x20(or\x20safe\x20in\x20HTT\
9362
    P\x20parlance),\x20or\x20idempotent,\n\x20or\x20neither?\x20HTTP\x20base\
9363
    d\x20RPC\x20implementation\x20may\x20choose\x20GET\x20verb\x20for\x20saf\
9364
    e\n\x20methods,\x20and\x20PUT\x20verb\x20for\x20idempotent\x20methods\
9365
    \x20instead\x20of\x20the\x20default\x20POST.\n\n\r\n\x05\x04\x11\x04\0\
9366
    \x01\x12\x04\xc2\x05\x07\x17\n\x0e\n\x06\x04\x11\x04\0\x02\0\x12\x04\xc3\
9367
    \x05\x04\x1c\n\x0f\n\x07\x04\x11\x04\0\x02\0\x01\x12\x04\xc3\x05\x04\x17\
9368
    \n\x0f\n\x07\x04\x11\x04\0\x02\0\x02\x12\x04\xc3\x05\x1a\x1b\n$\n\x06\
9369
    \x04\x11\x04\0\x02\x01\x12\x04\xc4\x05\x04\x18\"\x14\x20implies\x20idemp\
9370
    otent\n\n\x0f\n\x07\x04\x11\x04\0\x02\x01\x01\x12\x04\xc4\x05\x04\x13\n\
9371
    \x0f\n\x07\x04\x11\x04\0\x02\x01\x02\x12\x04\xc4\x05\x16\x17\n7\n\x06\
9372
    \x04\x11\x04\0\x02\x02\x12\x04\xc5\x05\x04\x13\"'\x20idempotent,\x20but\
9373
    \x20may\x20have\x20side\x20effects\n\n\x0f\n\x07\x04\x11\x04\0\x02\x02\
9374
    \x01\x12\x04\xc5\x05\x04\x0e\n\x0f\n\x07\x04\x11\x04\0\x02\x02\x02\x12\
9375
    \x04\xc5\x05\x11\x12\n\x0e\n\x04\x04\x11\x02\x01\x12\x06\xc7\x05\x02\xc8\
9376
    \x05&\n\r\n\x05\x04\x11\x02\x01\x04\x12\x04\xc7\x05\x02\n\n\r\n\x05\x04\
9377
    \x11\x02\x01\x06\x12\x04\xc7\x05\x0b\x1b\n\r\n\x05\x04\x11\x02\x01\x01\
9378
    \x12\x04\xc7\x05\x1c-\n\r\n\x05\x04\x11\x02\x01\x03\x12\x04\xc7\x0502\n\
9379
    \r\n\x05\x04\x11\x02\x01\x08\x12\x04\xc8\x05\x06%\n\r\n\x05\x04\x11\x02\
9380
    \x01\x07\x12\x04\xc8\x05\x11$\nO\n\x04\x04\x11\x02\x02\x12\x04\xcb\x05\
9381
    \x02:\x1aA\x20The\x20parser\x20stores\x20options\x20it\x20doesn't\x20rec\
9382
    ognize\x20here.\x20See\x20above.\n\n\r\n\x05\x04\x11\x02\x02\x04\x12\x04\
9383
    \xcb\x05\x02\n\n\r\n\x05\x04\x11\x02\x02\x06\x12\x04\xcb\x05\x0b\x1e\n\r\
9384
    \n\x05\x04\x11\x02\x02\x01\x12\x04\xcb\x05\x1f3\n\r\n\x05\x04\x11\x02\
9385
    \x02\x03\x12\x04\xcb\x0569\nZ\n\x03\x04\x11\x05\x12\x04\xce\x05\x02\x19\
9386
    \x1aM\x20Clients\x20can\x20define\x20custom\x20options\x20in\x20extensio\
9387
    ns\x20of\x20this\x20message.\x20See\x20above.\n\n\x0c\n\x04\x04\x11\x05\
9388
    \0\x12\x04\xce\x05\r\x18\n\r\n\x05\x04\x11\x05\0\x01\x12\x04\xce\x05\r\
9389
    \x11\n\r\n\x05\x04\x11\x05\0\x02\x12\x04\xce\x05\x15\x18\n\x8b\x03\n\x02\
9390
    \x04\x12\x12\x06\xd8\x05\0\xec\x05\x01\x1a\xfc\x02\x20A\x20message\x20re\
9391
    presenting\x20a\x20option\x20the\x20parser\x20does\x20not\x20recognize.\
9392
    \x20This\x20only\n\x20appears\x20in\x20options\x20protos\x20created\x20b\
9393
    y\x20the\x20compiler::Parser\x20class.\n\x20DescriptorPool\x20resolves\
9394
    \x20these\x20when\x20building\x20Descriptor\x20objects.\x20Therefore,\n\
9395
    \x20options\x20protos\x20in\x20descriptor\x20objects\x20(e.g.\x20returne\
9396
    d\x20by\x20Descriptor::options(),\n\x20or\x20produced\x20by\x20Descripto\
9397
    r::CopyTo())\x20will\x20never\x20have\x20UninterpretedOptions\n\x20in\
9398
    \x20them.\n\n\x0b\n\x03\x04\x12\x01\x12\x04\xd8\x05\x08\x1b\n\xcb\x02\n\
9399
    \x04\x04\x12\x03\0\x12\x06\xde\x05\x02\xe1\x05\x03\x1a\xba\x02\x20The\
9400
    \x20name\x20of\x20the\x20uninterpreted\x20option.\x20\x20Each\x20string\
9401
    \x20represents\x20a\x20segment\x20in\n\x20a\x20dot-separated\x20name.\
9402
    \x20\x20is_extension\x20is\x20true\x20iff\x20a\x20segment\x20represents\
9403
    \x20an\n\x20extension\x20(denoted\x20with\x20parentheses\x20in\x20option\
9404
    s\x20specs\x20in\x20.proto\x20files).\n\x20E.g.,{\x20[\"foo\",\x20false]\
9405
    ,\x20[\"bar.baz\",\x20true],\x20[\"qux\",\x20false]\x20}\x20represents\n\
9406
    \x20\"foo.(bar.baz).qux\".\n\n\r\n\x05\x04\x12\x03\0\x01\x12\x04\xde\x05\
9407
    \n\x12\n\x0e\n\x06\x04\x12\x03\0\x02\0\x12\x04\xdf\x05\x04\"\n\x0f\n\x07\
9408
    \x04\x12\x03\0\x02\0\x04\x12\x04\xdf\x05\x04\x0c\n\x0f\n\x07\x04\x12\x03\
9409
    \0\x02\0\x05\x12\x04\xdf\x05\r\x13\n\x0f\n\x07\x04\x12\x03\0\x02\0\x01\
9410
    \x12\x04\xdf\x05\x14\x1d\n\x0f\n\x07\x04\x12\x03\0\x02\0\x03\x12\x04\xdf\
9411
    \x05\x20!\n\x0e\n\x06\x04\x12\x03\0\x02\x01\x12\x04\xe0\x05\x04#\n\x0f\n\
9412
    \x07\x04\x12\x03\0\x02\x01\x04\x12\x04\xe0\x05\x04\x0c\n\x0f\n\x07\x04\
9413
    \x12\x03\0\x02\x01\x05\x12\x04\xe0\x05\r\x11\n\x0f\n\x07\x04\x12\x03\0\
9414
    \x02\x01\x01\x12\x04\xe0\x05\x12\x1e\n\x0f\n\x07\x04\x12\x03\0\x02\x01\
9415
    \x03\x12\x04\xe0\x05!\"\n\x0c\n\x04\x04\x12\x02\0\x12\x04\xe2\x05\x02\
9416
    \x1d\n\r\n\x05\x04\x12\x02\0\x04\x12\x04\xe2\x05\x02\n\n\r\n\x05\x04\x12\
9417
    \x02\0\x06\x12\x04\xe2\x05\x0b\x13\n\r\n\x05\x04\x12\x02\0\x01\x12\x04\
9418
    \xe2\x05\x14\x18\n\r\n\x05\x04\x12\x02\0\x03\x12\x04\xe2\x05\x1b\x1c\n\
9419
    \x9c\x01\n\x04\x04\x12\x02\x01\x12\x04\xe6\x05\x02'\x1a\x8d\x01\x20The\
9420
    \x20value\x20of\x20the\x20uninterpreted\x20option,\x20in\x20whatever\x20\
9421
    type\x20the\x20tokenizer\n\x20identified\x20it\x20as\x20during\x20parsin\
9422
    g.\x20Exactly\x20one\x20of\x20these\x20should\x20be\x20set.\n\n\r\n\x05\
9423
    \x04\x12\x02\x01\x04\x12\x04\xe6\x05\x02\n\n\r\n\x05\x04\x12\x02\x01\x05\
9424
    \x12\x04\xe6\x05\x0b\x11\n\r\n\x05\x04\x12\x02\x01\x01\x12\x04\xe6\x05\
9425
    \x12\"\n\r\n\x05\x04\x12\x02\x01\x03\x12\x04\xe6\x05%&\n\x0c\n\x04\x04\
9426
    \x12\x02\x02\x12\x04\xe7\x05\x02)\n\r\n\x05\x04\x12\x02\x02\x04\x12\x04\
9427
    \xe7\x05\x02\n\n\r\n\x05\x04\x12\x02\x02\x05\x12\x04\xe7\x05\x0b\x11\n\r\
9428
    \n\x05\x04\x12\x02\x02\x01\x12\x04\xe7\x05\x12$\n\r\n\x05\x04\x12\x02\
9429
    \x02\x03\x12\x04\xe7\x05'(\n\x0c\n\x04\x04\x12\x02\x03\x12\x04\xe8\x05\
9430
    \x02(\n\r\n\x05\x04\x12\x02\x03\x04\x12\x04\xe8\x05\x02\n\n\r\n\x05\x04\
9431
    \x12\x02\x03\x05\x12\x04\xe8\x05\x0b\x10\n\r\n\x05\x04\x12\x02\x03\x01\
9432
    \x12\x04\xe8\x05\x11#\n\r\n\x05\x04\x12\x02\x03\x03\x12\x04\xe8\x05&'\n\
9433
    \x0c\n\x04\x04\x12\x02\x04\x12\x04\xe9\x05\x02#\n\r\n\x05\x04\x12\x02\
9434
    \x04\x04\x12\x04\xe9\x05\x02\n\n\r\n\x05\x04\x12\x02\x04\x05\x12\x04\xe9\
9435
    \x05\x0b\x11\n\r\n\x05\x04\x12\x02\x04\x01\x12\x04\xe9\x05\x12\x1e\n\r\n\
9436
    \x05\x04\x12\x02\x04\x03\x12\x04\xe9\x05!\"\n\x0c\n\x04\x04\x12\x02\x05\
9437
    \x12\x04\xea\x05\x02\"\n\r\n\x05\x04\x12\x02\x05\x04\x12\x04\xea\x05\x02\
9438
    \n\n\r\n\x05\x04\x12\x02\x05\x05\x12\x04\xea\x05\x0b\x10\n\r\n\x05\x04\
9439
    \x12\x02\x05\x01\x12\x04\xea\x05\x11\x1d\n\r\n\x05\x04\x12\x02\x05\x03\
9440
    \x12\x04\xea\x05\x20!\n\x0c\n\x04\x04\x12\x02\x06\x12\x04\xeb\x05\x02&\n\
9441
    \r\n\x05\x04\x12\x02\x06\x04\x12\x04\xeb\x05\x02\n\n\r\n\x05\x04\x12\x02\
9442
    \x06\x05\x12\x04\xeb\x05\x0b\x11\n\r\n\x05\x04\x12\x02\x06\x01\x12\x04\
9443
    \xeb\x05\x12!\n\r\n\x05\x04\x12\x02\x06\x03\x12\x04\xeb\x05$%\n\xda\x01\
9444
    \n\x02\x04\x13\x12\x06\xf3\x05\0\xf4\x06\x01\x1aj\x20Encapsulates\x20inf\
9445
    ormation\x20about\x20the\x20original\x20source\x20file\x20from\x20which\
9446
    \x20a\n\x20FileDescriptorProto\x20was\x20generated.\n2`\x20=============\
9447
    ======================================================\n\x20Optional\x20\
9448
    source\x20code\x20info\n\n\x0b\n\x03\x04\x13\x01\x12\x04\xf3\x05\x08\x16\
9449
    \n\x82\x11\n\x04\x04\x13\x02\0\x12\x04\x9f\x06\x02!\x1a\xf3\x10\x20A\x20\
9450
    Location\x20identifies\x20a\x20piece\x20of\x20source\x20code\x20in\x20a\
9451
    \x20.proto\x20file\x20which\n\x20corresponds\x20to\x20a\x20particular\
9452
    \x20definition.\x20\x20This\x20information\x20is\x20intended\n\x20to\x20\
9453
    be\x20useful\x20to\x20IDEs,\x20code\x20indexers,\x20documentation\x20gen\
9454
    erators,\x20and\x20similar\n\x20tools.\n\n\x20For\x20example,\x20say\x20\
9455
    we\x20have\x20a\x20file\x20like:\n\x20\x20\x20message\x20Foo\x20{\n\x20\
9456
    \x20\x20\x20\x20optional\x20string\x20foo\x20=\x201;\n\x20\x20\x20}\n\
9457
    \x20Let's\x20look\x20at\x20just\x20the\x20field\x20definition:\n\x20\x20\
9458
    \x20optional\x20string\x20foo\x20=\x201;\n\x20\x20\x20^\x20\x20\x20\x20\
9459
    \x20\x20\x20^^\x20\x20\x20\x20\x20^^\x20\x20^\x20\x20^^^\n\x20\x20\x20a\
9460
    \x20\x20\x20\x20\x20\x20\x20bc\x20\x20\x20\x20\x20de\x20\x20f\x20\x20ghi\
9461
    \n\x20We\x20have\x20the\x20following\x20locations:\n\x20\x20\x20span\x20\
9462
    \x20\x20path\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\
9463
    represents\n\x20\x20\x20[a,i)\x20\x20[\x204,\x200,\x202,\x200\x20]\x20\
9464
    \x20\x20\x20\x20The\x20whole\x20field\x20definition.\n\x20\x20\x20[a,b)\
9465
    \x20\x20[\x204,\x200,\x202,\x200,\x204\x20]\x20\x20The\x20label\x20(opti\
9466
    onal).\n\x20\x20\x20[c,d)\x20\x20[\x204,\x200,\x202,\x200,\x205\x20]\x20\
9467
    \x20The\x20type\x20(string).\n\x20\x20\x20[e,f)\x20\x20[\x204,\x200,\x20\
9468
    2,\x200,\x201\x20]\x20\x20The\x20name\x20(foo).\n\x20\x20\x20[g,h)\x20\
9469
    \x20[\x204,\x200,\x202,\x200,\x203\x20]\x20\x20The\x20number\x20(1).\n\n\
9470
    \x20Notes:\n\x20-\x20A\x20location\x20may\x20refer\x20to\x20a\x20repeate\
9471
    d\x20field\x20itself\x20(i.e.\x20not\x20to\x20any\n\x20\x20\x20particula\
9472
    r\x20index\x20within\x20it).\x20\x20This\x20is\x20used\x20whenever\x20a\
9473
    \x20set\x20of\x20elements\x20are\n\x20\x20\x20logically\x20enclosed\x20i\
9474
    n\x20a\x20single\x20code\x20segment.\x20\x20For\x20example,\x20an\x20ent\
9475
    ire\n\x20\x20\x20extend\x20block\x20(possibly\x20containing\x20multiple\
9476
    \x20extension\x20definitions)\x20will\n\x20\x20\x20have\x20an\x20outer\
9477
    \x20location\x20whose\x20path\x20refers\x20to\x20the\x20\"extensions\"\
9478
    \x20repeated\n\x20\x20\x20field\x20without\x20an\x20index.\n\x20-\x20Mul\
9479
    tiple\x20locations\x20may\x20have\x20the\x20same\x20path.\x20\x20This\
9480
    \x20happens\x20when\x20a\x20single\n\x20\x20\x20logical\x20declaration\
9481
    \x20is\x20spread\x20out\x20across\x20multiple\x20places.\x20\x20The\x20m\
9482
    ost\n\x20\x20\x20obvious\x20example\x20is\x20the\x20\"extend\"\x20block\
9483
    \x20again\x20--\x20there\x20may\x20be\x20multiple\n\x20\x20\x20extend\
9484
    \x20blocks\x20in\x20the\x20same\x20scope,\x20each\x20of\x20which\x20will\
9485
    \x20have\x20the\x20same\x20path.\n\x20-\x20A\x20location's\x20span\x20is\
9486
    \x20not\x20always\x20a\x20subset\x20of\x20its\x20parent's\x20span.\x20\
9487
    \x20For\n\x20\x20\x20example,\x20the\x20\"extendee\"\x20of\x20an\x20exte\
9488
    nsion\x20declaration\x20appears\x20at\x20the\n\x20\x20\x20beginning\x20o\
9489
    f\x20the\x20\"extend\"\x20block\x20and\x20is\x20shared\x20by\x20all\x20e\
9490
    xtensions\x20within\n\x20\x20\x20the\x20block.\n\x20-\x20Just\x20because\
9491
    \x20a\x20location's\x20span\x20is\x20a\x20subset\x20of\x20some\x20other\
9492
    \x20location's\x20span\n\x20\x20\x20does\x20not\x20mean\x20that\x20it\
9493
    \x20is\x20a\x20descendant.\x20\x20For\x20example,\x20a\x20\"group\"\x20d\
9494
    efines\n\x20\x20\x20both\x20a\x20type\x20and\x20a\x20field\x20in\x20a\
9495
    \x20single\x20declaration.\x20\x20Thus,\x20the\x20locations\n\x20\x20\
9496
    \x20corresponding\x20to\x20the\x20type\x20and\x20field\x20and\x20their\
9497
    \x20components\x20will\x20overlap.\n\x20-\x20Code\x20which\x20tries\x20t\
9498
    o\x20interpret\x20locations\x20should\x20probably\x20be\x20designed\x20t\
9499
    o\n\x20\x20\x20ignore\x20those\x20that\x20it\x20doesn't\x20understand,\
9500
    \x20as\x20more\x20types\x20of\x20locations\x20could\n\x20\x20\x20be\x20r\
9501
    ecorded\x20in\x20the\x20future.\n\n\r\n\x05\x04\x13\x02\0\x04\x12\x04\
9502
    \x9f\x06\x02\n\n\r\n\x05\x04\x13\x02\0\x06\x12\x04\x9f\x06\x0b\x13\n\r\n\
9503
    \x05\x04\x13\x02\0\x01\x12\x04\x9f\x06\x14\x1c\n\r\n\x05\x04\x13\x02\0\
9504
    \x03\x12\x04\x9f\x06\x1f\x20\n\x0e\n\x04\x04\x13\x03\0\x12\x06\xa0\x06\
9505
    \x02\xf3\x06\x03\n\r\n\x05\x04\x13\x03\0\x01\x12\x04\xa0\x06\n\x12\n\x83\
9506
    \x07\n\x06\x04\x13\x03\0\x02\0\x12\x04\xb8\x06\x04,\x1a\xf2\x06\x20Ident\
9507
    ifies\x20which\x20part\x20of\x20the\x20FileDescriptorProto\x20was\x20def\
9508
    ined\x20at\x20this\n\x20location.\n\n\x20Each\x20element\x20is\x20a\x20f\
9509
    ield\x20number\x20or\x20an\x20index.\x20\x20They\x20form\x20a\x20path\
9510
    \x20from\n\x20the\x20root\x20FileDescriptorProto\x20to\x20the\x20place\
9511
    \x20where\x20the\x20definition.\x20\x20For\n\x20example,\x20this\x20path\
9512
    :\n\x20\x20\x20[\x204,\x203,\x202,\x207,\x201\x20]\n\x20refers\x20to:\n\
9513
    \x20\x20\x20file.message_type(3)\x20\x20//\x204,\x203\n\x20\x20\x20\x20\
9514
    \x20\x20\x20.field(7)\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x202,\x207\n\
9515
    \x20\x20\x20\x20\x20\x20\x20.name()\x20\x20\x20\x20\x20\x20\x20\x20\x20\
9516
    \x20\x20//\x201\n\x20This\x20is\x20because\x20FileDescriptorProto.messag\
9517
    e_type\x20has\x20field\x20number\x204:\n\x20\x20\x20repeated\x20Descript\
9518
    orProto\x20message_type\x20=\x204;\n\x20and\x20DescriptorProto.field\x20\
9519
    has\x20field\x20number\x202:\n\x20\x20\x20repeated\x20FieldDescriptorPro\
9520
    to\x20field\x20=\x202;\n\x20and\x20FieldDescriptorProto.name\x20has\x20f\
9521
    ield\x20number\x201:\n\x20\x20\x20optional\x20string\x20name\x20=\x201;\
9522
    \n\n\x20Thus,\x20the\x20above\x20path\x20gives\x20the\x20location\x20of\
9523
    \x20a\x20field\x20name.\x20\x20If\x20we\x20removed\n\x20the\x20last\x20e\
9524
    lement:\n\x20\x20\x20[\x204,\x203,\x202,\x207\x20]\n\x20this\x20path\x20\
9525
    refers\x20to\x20the\x20whole\x20field\x20declaration\x20(from\x20the\x20\
9526
    beginning\n\x20of\x20the\x20label\x20to\x20the\x20terminating\x20semicol\
9527
    on).\n\n\x0f\n\x07\x04\x13\x03\0\x02\0\x04\x12\x04\xb8\x06\x04\x0c\n\x0f\
9528
    \n\x07\x04\x13\x03\0\x02\0\x05\x12\x04\xb8\x06\r\x12\n\x0f\n\x07\x04\x13\
9529
    \x03\0\x02\0\x01\x12\x04\xb8\x06\x13\x17\n\x0f\n\x07\x04\x13\x03\0\x02\0\
9530
    \x03\x12\x04\xb8\x06\x1a\x1b\n\x0f\n\x07\x04\x13\x03\0\x02\0\x08\x12\x04\
9531
    \xb8\x06\x1c+\n\x10\n\x08\x04\x13\x03\0\x02\0\x08\x02\x12\x04\xb8\x06\
9532
    \x1d*\n\xd2\x02\n\x06\x04\x13\x03\0\x02\x01\x12\x04\xbf\x06\x04,\x1a\xc1\
9533
    \x02\x20Always\x20has\x20exactly\x20three\x20or\x20four\x20elements:\x20\
9534
    start\x20line,\x20start\x20column,\n\x20end\x20line\x20(optional,\x20oth\
9535
    erwise\x20assumed\x20same\x20as\x20start\x20line),\x20end\x20column.\n\
9536
    \x20These\x20are\x20packed\x20into\x20a\x20single\x20field\x20for\x20eff\
9537
    iciency.\x20\x20Note\x20that\x20line\n\x20and\x20column\x20numbers\x20ar\
9538
    e\x20zero-based\x20--\x20typically\x20you\x20will\x20want\x20to\x20add\n\
9539
    \x201\x20to\x20each\x20before\x20displaying\x20to\x20a\x20user.\n\n\x0f\
9540
    \n\x07\x04\x13\x03\0\x02\x01\x04\x12\x04\xbf\x06\x04\x0c\n\x0f\n\x07\x04\
9541
    \x13\x03\0\x02\x01\x05\x12\x04\xbf\x06\r\x12\n\x0f\n\x07\x04\x13\x03\0\
9542
    \x02\x01\x01\x12\x04\xbf\x06\x13\x17\n\x0f\n\x07\x04\x13\x03\0\x02\x01\
9543
    \x03\x12\x04\xbf\x06\x1a\x1b\n\x0f\n\x07\x04\x13\x03\0\x02\x01\x08\x12\
9544
    \x04\xbf\x06\x1c+\n\x10\n\x08\x04\x13\x03\0\x02\x01\x08\x02\x12\x04\xbf\
9545
    \x06\x1d*\n\xa5\x0c\n\x06\x04\x13\x03\0\x02\x02\x12\x04\xf0\x06\x04)\x1a\
9546
    \x94\x0c\x20If\x20this\x20SourceCodeInfo\x20represents\x20a\x20complete\
9547
    \x20declaration,\x20these\x20are\x20any\n\x20comments\x20appearing\x20be\
9548
    fore\x20and\x20after\x20the\x20declaration\x20which\x20appear\x20to\x20b\
9549
    e\n\x20attached\x20to\x20the\x20declaration.\n\n\x20A\x20series\x20of\
9550
    \x20line\x20comments\x20appearing\x20on\x20consecutive\x20lines,\x20with\
9551
    \x20no\x20other\n\x20tokens\x20appearing\x20on\x20those\x20lines,\x20wil\
9552
    l\x20be\x20treated\x20as\x20a\x20single\x20comment.\n\n\x20leading_detac\
9553
    hed_comments\x20will\x20keep\x20paragraphs\x20of\x20comments\x20that\x20\
9554
    appear\n\x20before\x20(but\x20not\x20connected\x20to)\x20the\x20current\
9555
    \x20element.\x20Each\x20paragraph,\n\x20separated\x20by\x20empty\x20line\
9556
    s,\x20will\x20be\x20one\x20comment\x20element\x20in\x20the\x20repeated\n\
9557
    \x20field.\n\n\x20Only\x20the\x20comment\x20content\x20is\x20provided;\
9558
    \x20comment\x20markers\x20(e.g.\x20//)\x20are\n\x20stripped\x20out.\x20\
9559
    \x20For\x20block\x20comments,\x20leading\x20whitespace\x20and\x20an\x20a\
9560
    sterisk\n\x20will\x20be\x20stripped\x20from\x20the\x20beginning\x20of\
9561
    \x20each\x20line\x20other\x20than\x20the\x20first.\n\x20Newlines\x20are\
9562
    \x20included\x20in\x20the\x20output.\n\n\x20Examples:\n\n\x20\x20\x20opt\
9563
    ional\x20int32\x20foo\x20=\x201;\x20\x20//\x20Comment\x20attached\x20to\
9564
    \x20foo.\n\x20\x20\x20//\x20Comment\x20attached\x20to\x20bar.\n\x20\x20\
9565
    \x20optional\x20int32\x20bar\x20=\x202;\n\n\x20\x20\x20optional\x20strin\
9566
    g\x20baz\x20=\x203;\n\x20\x20\x20//\x20Comment\x20attached\x20to\x20baz.\
9567
    \n\x20\x20\x20//\x20Another\x20line\x20attached\x20to\x20baz.\n\n\x20\
9568
    \x20\x20//\x20Comment\x20attached\x20to\x20qux.\n\x20\x20\x20//\n\x20\
9569
    \x20\x20//\x20Another\x20line\x20attached\x20to\x20qux.\n\x20\x20\x20opt\
9570
    ional\x20double\x20qux\x20=\x204;\n\n\x20\x20\x20//\x20Detached\x20comme\
9571
    nt\x20for\x20corge.\x20This\x20is\x20not\x20leading\x20or\x20trailing\
9572
    \x20comments\n\x20\x20\x20//\x20to\x20qux\x20or\x20corge\x20because\x20t\
9573
    here\x20are\x20blank\x20lines\x20separating\x20it\x20from\n\x20\x20\x20/\
9574
    /\x20both.\n\n\x20\x20\x20//\x20Detached\x20comment\x20for\x20corge\x20p\
9575
    aragraph\x202.\n\n\x20\x20\x20optional\x20string\x20corge\x20=\x205;\n\
9576
    \x20\x20\x20/*\x20Block\x20comment\x20attached\n\x20\x20\x20\x20*\x20to\
9577
    \x20corge.\x20\x20Leading\x20asterisks\n\x20\x20\x20\x20*\x20will\x20be\
9578
    \x20removed.\x20*/\n\x20\x20\x20/*\x20Block\x20comment\x20attached\x20to\
9579
    \n\x20\x20\x20\x20*\x20grault.\x20*/\n\x20\x20\x20optional\x20int32\x20g\
9580
    rault\x20=\x206;\n\n\x20\x20\x20//\x20ignored\x20detached\x20comments.\n\
9581
    \n\x0f\n\x07\x04\x13\x03\0\x02\x02\x04\x12\x04\xf0\x06\x04\x0c\n\x0f\n\
9582
    \x07\x04\x13\x03\0\x02\x02\x05\x12\x04\xf0\x06\r\x13\n\x0f\n\x07\x04\x13\
9583
    \x03\0\x02\x02\x01\x12\x04\xf0\x06\x14$\n\x0f\n\x07\x04\x13\x03\0\x02\
9584
    \x02\x03\x12\x04\xf0\x06'(\n\x0e\n\x06\x04\x13\x03\0\x02\x03\x12\x04\xf1\
9585
    \x06\x04*\n\x0f\n\x07\x04\x13\x03\0\x02\x03\x04\x12\x04\xf1\x06\x04\x0c\
9586
    \n\x0f\n\x07\x04\x13\x03\0\x02\x03\x05\x12\x04\xf1\x06\r\x13\n\x0f\n\x07\
9587
    \x04\x13\x03\0\x02\x03\x01\x12\x04\xf1\x06\x14%\n\x0f\n\x07\x04\x13\x03\
9588
    \0\x02\x03\x03\x12\x04\xf1\x06()\n\x0e\n\x06\x04\x13\x03\0\x02\x04\x12\
9589
    \x04\xf2\x06\x042\n\x0f\n\x07\x04\x13\x03\0\x02\x04\x04\x12\x04\xf2\x06\
9590
    \x04\x0c\n\x0f\n\x07\x04\x13\x03\0\x02\x04\x05\x12\x04\xf2\x06\r\x13\n\
9591
    \x0f\n\x07\x04\x13\x03\0\x02\x04\x01\x12\x04\xf2\x06\x14-\n\x0f\n\x07\
9592
    \x04\x13\x03\0\x02\x04\x03\x12\x04\xf2\x0601\n\xee\x01\n\x02\x04\x14\x12\
9593
    \x06\xf9\x06\0\x8e\x07\x01\x1a\xdf\x01\x20Describes\x20the\x20relationsh\
9594
    ip\x20between\x20generated\x20code\x20and\x20its\x20original\x20source\n\
9595
    \x20file.\x20A\x20GeneratedCodeInfo\x20message\x20is\x20associated\x20wi\
9596
    th\x20only\x20one\x20generated\n\x20source\x20file,\x20but\x20may\x20con\
9597
    tain\x20references\x20to\x20different\x20source\x20.proto\x20files.\n\n\
9598
    \x0b\n\x03\x04\x14\x01\x12\x04\xf9\x06\x08\x19\nx\n\x04\x04\x14\x02\0\
9599
    \x12\x04\xfc\x06\x02%\x1aj\x20An\x20Annotation\x20connects\x20some\x20sp\
9600
    an\x20of\x20text\x20in\x20generated\x20code\x20to\x20an\x20element\n\x20\
9601
    of\x20its\x20generating\x20.proto\x20file.\n\n\r\n\x05\x04\x14\x02\0\x04\
9602
    \x12\x04\xfc\x06\x02\n\n\r\n\x05\x04\x14\x02\0\x06\x12\x04\xfc\x06\x0b\
9603
    \x15\n\r\n\x05\x04\x14\x02\0\x01\x12\x04\xfc\x06\x16\x20\n\r\n\x05\x04\
9604
    \x14\x02\0\x03\x12\x04\xfc\x06#$\n\x0e\n\x04\x04\x14\x03\0\x12\x06\xfd\
9605
    \x06\x02\x8d\x07\x03\n\r\n\x05\x04\x14\x03\0\x01\x12\x04\xfd\x06\n\x14\n\
9606
    \x8f\x01\n\x06\x04\x14\x03\0\x02\0\x12\x04\x80\x07\x04,\x1a\x7f\x20Ident\
9607
    ifies\x20the\x20element\x20in\x20the\x20original\x20source\x20.proto\x20\
9608
    file.\x20This\x20field\n\x20is\x20formatted\x20the\x20same\x20as\x20Sour\
9609
    ceCodeInfo.Location.path.\n\n\x0f\n\x07\x04\x14\x03\0\x02\0\x04\x12\x04\
9610
    \x80\x07\x04\x0c\n\x0f\n\x07\x04\x14\x03\0\x02\0\x05\x12\x04\x80\x07\r\
9611
    \x12\n\x0f\n\x07\x04\x14\x03\0\x02\0\x01\x12\x04\x80\x07\x13\x17\n\x0f\n\
9612
    \x07\x04\x14\x03\0\x02\0\x03\x12\x04\x80\x07\x1a\x1b\n\x0f\n\x07\x04\x14\
9613
    \x03\0\x02\0\x08\x12\x04\x80\x07\x1c+\n\x10\n\x08\x04\x14\x03\0\x02\0\
9614
    \x08\x02\x12\x04\x80\x07\x1d*\nO\n\x06\x04\x14\x03\0\x02\x01\x12\x04\x83\
9615
    \x07\x04$\x1a?\x20Identifies\x20the\x20filesystem\x20path\x20to\x20the\
9616
    \x20original\x20source\x20.proto.\n\n\x0f\n\x07\x04\x14\x03\0\x02\x01\
9617
    \x04\x12\x04\x83\x07\x04\x0c\n\x0f\n\x07\x04\x14\x03\0\x02\x01\x05\x12\
9618
    \x04\x83\x07\r\x13\n\x0f\n\x07\x04\x14\x03\0\x02\x01\x01\x12\x04\x83\x07\
9619
    \x14\x1f\n\x0f\n\x07\x04\x14\x03\0\x02\x01\x03\x12\x04\x83\x07\"#\nw\n\
9620
    \x06\x04\x14\x03\0\x02\x02\x12\x04\x87\x07\x04\x1d\x1ag\x20Identifies\
9621
    \x20the\x20starting\x20offset\x20in\x20bytes\x20in\x20the\x20generated\
9622
    \x20code\n\x20that\x20relates\x20to\x20the\x20identified\x20object.\n\n\
9623
    \x0f\n\x07\x04\x14\x03\0\x02\x02\x04\x12\x04\x87\x07\x04\x0c\n\x0f\n\x07\
9624
    \x04\x14\x03\0\x02\x02\x05\x12\x04\x87\x07\r\x12\n\x0f\n\x07\x04\x14\x03\
9625
    \0\x02\x02\x01\x12\x04\x87\x07\x13\x18\n\x0f\n\x07\x04\x14\x03\0\x02\x02\
9626
    \x03\x12\x04\x87\x07\x1b\x1c\n\xdb\x01\n\x06\x04\x14\x03\0\x02\x03\x12\
9627
    \x04\x8c\x07\x04\x1b\x1a\xca\x01\x20Identifies\x20the\x20ending\x20offse\
9628
    t\x20in\x20bytes\x20in\x20the\x20generated\x20code\x20that\n\x20relates\
9629
    \x20to\x20the\x20identified\x20offset.\x20The\x20end\x20offset\x20should\
9630
    \x20be\x20one\x20past\n\x20the\x20last\x20relevant\x20byte\x20(so\x20the\
9631
    \x20length\x20of\x20the\x20text\x20=\x20end\x20-\x20begin).\n\n\x0f\n\
9632
    \x07\x04\x14\x03\0\x02\x03\x04\x12\x04\x8c\x07\x04\x0c\n\x0f\n\x07\x04\
9633
    \x14\x03\0\x02\x03\x05\x12\x04\x8c\x07\r\x12\n\x0f\n\x07\x04\x14\x03\0\
9634
    \x02\x03\x01\x12\x04\x8c\x07\x13\x16\n\x0f\n\x07\x04\x14\x03\0\x02\x03\
9635
    \x03\x12\x04\x8c\x07\x19\x1a\
9636
";
9637
9638
/// `FileDescriptorProto` object which was a source for this generated file
9639
0
fn file_descriptor_proto() -> &'static crate::descriptor::FileDescriptorProto {
9640
    static file_descriptor_proto_lazy: crate::rt::Lazy<crate::descriptor::FileDescriptorProto> = crate::rt::Lazy::new();
9641
0
    file_descriptor_proto_lazy.get(|| {
9642
0
        crate::Message::parse_from_bytes(file_descriptor_proto_data).unwrap()
9643
0
    })
9644
0
}
9645
9646
/// `FileDescriptor` object which allows dynamic access to files
9647
0
pub fn file_descriptor() -> &'static crate::reflect::FileDescriptor {
9648
    static generated_file_descriptor_lazy: crate::rt::Lazy<crate::reflect::GeneratedFileDescriptor> = crate::rt::Lazy::new();
9649
    static file_descriptor: crate::rt::Lazy<crate::reflect::FileDescriptor> = crate::rt::Lazy::new();
9650
0
    file_descriptor.get(|| {
9651
0
        let generated_file_descriptor = generated_file_descriptor_lazy.get(|| {
9652
0
            let mut deps = ::std::vec::Vec::with_capacity(0);
9653
0
            let mut messages = ::std::vec::Vec::with_capacity(27);
9654
0
            messages.push(FileDescriptorSet::generated_message_descriptor_data());
9655
0
            messages.push(FileDescriptorProto::generated_message_descriptor_data());
9656
0
            messages.push(DescriptorProto::generated_message_descriptor_data());
9657
0
            messages.push(ExtensionRangeOptions::generated_message_descriptor_data());
9658
0
            messages.push(FieldDescriptorProto::generated_message_descriptor_data());
9659
0
            messages.push(OneofDescriptorProto::generated_message_descriptor_data());
9660
0
            messages.push(EnumDescriptorProto::generated_message_descriptor_data());
9661
0
            messages.push(EnumValueDescriptorProto::generated_message_descriptor_data());
9662
0
            messages.push(ServiceDescriptorProto::generated_message_descriptor_data());
9663
0
            messages.push(MethodDescriptorProto::generated_message_descriptor_data());
9664
0
            messages.push(FileOptions::generated_message_descriptor_data());
9665
0
            messages.push(MessageOptions::generated_message_descriptor_data());
9666
0
            messages.push(FieldOptions::generated_message_descriptor_data());
9667
0
            messages.push(OneofOptions::generated_message_descriptor_data());
9668
0
            messages.push(EnumOptions::generated_message_descriptor_data());
9669
0
            messages.push(EnumValueOptions::generated_message_descriptor_data());
9670
0
            messages.push(ServiceOptions::generated_message_descriptor_data());
9671
0
            messages.push(MethodOptions::generated_message_descriptor_data());
9672
0
            messages.push(UninterpretedOption::generated_message_descriptor_data());
9673
0
            messages.push(SourceCodeInfo::generated_message_descriptor_data());
9674
0
            messages.push(GeneratedCodeInfo::generated_message_descriptor_data());
9675
0
            messages.push(descriptor_proto::ExtensionRange::generated_message_descriptor_data());
9676
0
            messages.push(descriptor_proto::ReservedRange::generated_message_descriptor_data());
9677
0
            messages.push(enum_descriptor_proto::EnumReservedRange::generated_message_descriptor_data());
9678
0
            messages.push(uninterpreted_option::NamePart::generated_message_descriptor_data());
9679
0
            messages.push(source_code_info::Location::generated_message_descriptor_data());
9680
0
            messages.push(generated_code_info::Annotation::generated_message_descriptor_data());
9681
0
            let mut enums = ::std::vec::Vec::with_capacity(6);
9682
0
            enums.push(field_descriptor_proto::Type::generated_enum_descriptor_data());
9683
0
            enums.push(field_descriptor_proto::Label::generated_enum_descriptor_data());
9684
0
            enums.push(file_options::OptimizeMode::generated_enum_descriptor_data());
9685
0
            enums.push(field_options::CType::generated_enum_descriptor_data());
9686
0
            enums.push(field_options::JSType::generated_enum_descriptor_data());
9687
0
            enums.push(method_options::IdempotencyLevel::generated_enum_descriptor_data());
9688
0
            crate::reflect::GeneratedFileDescriptor::new_generated(
9689
0
                file_descriptor_proto(),
9690
0
                deps,
9691
0
                messages,
9692
0
                enums,
9693
            )
9694
0
        });
9695
0
        crate::reflect::FileDescriptor::new_generated_2(generated_file_descriptor)
9696
0
    })
9697
0
}