Skip to main content

nrc_protobuf/
descriptor.rs

1// This file is generated by rust-protobuf 2.8.0-pre. Do not edit
2// @generated
3
4// https://github.com/Manishearth/rust-clippy/issues/702
5#![allow(unknown_lints)]
6#![allow(clippy::all)]
7
8#![cfg_attr(rustfmt, rustfmt_skip)]
9
10#![allow(box_pointers)]
11#![allow(dead_code)]
12#![allow(missing_docs)]
13#![allow(non_camel_case_types)]
14#![allow(non_snake_case)]
15#![allow(non_upper_case_globals)]
16#![allow(trivial_casts)]
17#![allow(unsafe_code)]
18#![allow(unused_imports)]
19#![allow(unused_results)]
20//! Generated file from `google/protobuf/descriptor.proto`
21
22use protobuf::Message as Message_imported_for_functions;
23use protobuf::ProtobufEnum as ProtobufEnum_imported_for_functions;
24
25#[derive(PartialEq,Clone,Default)]
26#[cfg_attr(feature = "with-serde", derive(Serialize, Deserialize))]
27pub struct FileDescriptorSet {
28    // message fields
29    file: ::protobuf::RepeatedField<FileDescriptorProto>,
30    // special fields
31    #[cfg_attr(feature = "with-serde", serde(skip))]
32    pub unknown_fields: ::protobuf::UnknownFields,
33    #[cfg_attr(feature = "with-serde", serde(skip))]
34    pub cached_size: ::protobuf::CachedSize,
35}
36
37impl<'a> ::std::default::Default for &'a FileDescriptorSet {
38    fn default() -> &'a FileDescriptorSet {
39        <FileDescriptorSet as ::protobuf::Message>::default_instance()
40    }
41}
42
43impl FileDescriptorSet {
44    pub fn new() -> FileDescriptorSet {
45        ::std::default::Default::default()
46    }
47
48    // repeated .google.protobuf.FileDescriptorProto file = 1;
49
50
51    pub fn get_file(&self) -> &[FileDescriptorProto] {
52        &self.file
53    }
54    pub fn clear_file(&mut self) {
55        self.file.clear();
56    }
57
58    // Param is passed by value, moved
59    pub fn set_file(&mut self, v: ::protobuf::RepeatedField<FileDescriptorProto>) {
60        self.file = v;
61    }
62
63    // Mutable pointer to the field.
64    pub fn mut_file(&mut self) -> &mut ::protobuf::RepeatedField<FileDescriptorProto> {
65        &mut self.file
66    }
67
68    // Take field
69    pub fn take_file(&mut self) -> ::protobuf::RepeatedField<FileDescriptorProto> {
70        ::std::mem::replace(&mut self.file, ::protobuf::RepeatedField::new())
71    }
72}
73
74impl ::protobuf::Message for FileDescriptorSet {
75    fn is_initialized(&self) -> bool {
76        for v in &self.file {
77            if !v.is_initialized() {
78                return false;
79            }
80        };
81        true
82    }
83
84    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream) -> ::protobuf::ProtobufResult<()> {
85        while !is.eof()? {
86            let (field_number, wire_type) = is.read_tag_unpack()?;
87            match field_number {
88                1 => {
89                    ::protobuf::rt::read_repeated_message_into(wire_type, is, &mut self.file)?;
90                },
91                _ => {
92                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
93                },
94            };
95        }
96        ::std::result::Result::Ok(())
97    }
98
99    // Compute sizes of nested messages
100    #[allow(unused_variables)]
101    fn compute_size(&self) -> u32 {
102        let mut my_size = 0;
103        for value in &self.file {
104            let len = value.compute_size();
105            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
106        };
107        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
108        self.cached_size.set(my_size);
109        my_size
110    }
111
112    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream) -> ::protobuf::ProtobufResult<()> {
113        for v in &self.file {
114            os.write_tag(1, ::protobuf::wire_format::WireTypeLengthDelimited)?;
115            os.write_raw_varint32(v.get_cached_size())?;
116            v.write_to_with_cached_sizes(os)?;
117        };
118        os.write_unknown_fields(self.get_unknown_fields())?;
119        ::std::result::Result::Ok(())
120    }
121
122    fn get_cached_size(&self) -> u32 {
123        self.cached_size.get()
124    }
125
126    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
127        &self.unknown_fields
128    }
129
130    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
131        &mut self.unknown_fields
132    }
133
134    fn as_any(&self) -> &dyn (::std::any::Any) {
135        self as &dyn (::std::any::Any)
136    }
137    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
138        self as &mut dyn (::std::any::Any)
139    }
140    fn into_any(self: Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
141        self
142    }
143
144    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
145        Self::descriptor_static()
146    }
147
148    fn new() -> FileDescriptorSet {
149        FileDescriptorSet::new()
150    }
151
152    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
153        static mut descriptor: ::protobuf::lazy::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::lazy::Lazy {
154            lock: ::protobuf::lazy::ONCE_INIT,
155            ptr: 0 as *const ::protobuf::reflect::MessageDescriptor,
156        };
157        unsafe {
158            descriptor.get(|| {
159                let mut fields = ::std::vec::Vec::new();
160                fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<FileDescriptorProto>>(
161                    "file",
162                    |m: &FileDescriptorSet| { &m.file },
163                    |m: &mut FileDescriptorSet| { &mut m.file },
164                ));
165                ::protobuf::reflect::MessageDescriptor::new::<FileDescriptorSet>(
166                    "FileDescriptorSet",
167                    fields,
168                    file_descriptor_proto()
169                )
170            })
171        }
172    }
173
174    fn default_instance() -> &'static FileDescriptorSet {
175        static mut instance: ::protobuf::lazy::Lazy<FileDescriptorSet> = ::protobuf::lazy::Lazy {
176            lock: ::protobuf::lazy::ONCE_INIT,
177            ptr: 0 as *const FileDescriptorSet,
178        };
179        unsafe {
180            instance.get(FileDescriptorSet::new)
181        }
182    }
183}
184
185impl ::protobuf::Clear for FileDescriptorSet {
186    fn clear(&mut self) {
187        self.file.clear();
188        self.unknown_fields.clear();
189    }
190}
191
192impl ::std::fmt::Debug for FileDescriptorSet {
193    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
194        ::protobuf::text_format::fmt(self, f)
195    }
196}
197
198impl ::protobuf::reflect::ProtobufValue for FileDescriptorSet {
199    fn as_ref(&self) -> ::protobuf::reflect::ProtobufValueRef {
200        ::protobuf::reflect::ProtobufValueRef::Message(self)
201    }
202}
203
204#[derive(PartialEq,Clone,Default)]
205#[cfg_attr(feature = "with-serde", derive(Serialize, Deserialize))]
206pub struct FileDescriptorProto {
207    // message fields
208    name: ::protobuf::SingularField<::std::string::String>,
209    package: ::protobuf::SingularField<::std::string::String>,
210    dependency: ::protobuf::RepeatedField<::std::string::String>,
211    public_dependency: ::std::vec::Vec<i32>,
212    weak_dependency: ::std::vec::Vec<i32>,
213    message_type: ::protobuf::RepeatedField<DescriptorProto>,
214    enum_type: ::protobuf::RepeatedField<EnumDescriptorProto>,
215    service: ::protobuf::RepeatedField<ServiceDescriptorProto>,
216    extension: ::protobuf::RepeatedField<FieldDescriptorProto>,
217    options: ::protobuf::SingularPtrField<FileOptions>,
218    source_code_info: ::protobuf::SingularPtrField<SourceCodeInfo>,
219    syntax: ::protobuf::SingularField<::std::string::String>,
220    // special fields
221    #[cfg_attr(feature = "with-serde", serde(skip))]
222    pub unknown_fields: ::protobuf::UnknownFields,
223    #[cfg_attr(feature = "with-serde", serde(skip))]
224    pub cached_size: ::protobuf::CachedSize,
225}
226
227impl<'a> ::std::default::Default for &'a FileDescriptorProto {
228    fn default() -> &'a FileDescriptorProto {
229        <FileDescriptorProto as ::protobuf::Message>::default_instance()
230    }
231}
232
233impl FileDescriptorProto {
234    pub fn new() -> FileDescriptorProto {
235        ::std::default::Default::default()
236    }
237
238    // optional string name = 1;
239
240
241    pub fn get_name(&self) -> &str {
242        match self.name.as_ref() {
243            Some(v) => &v,
244            None => "",
245        }
246    }
247    pub fn clear_name(&mut self) {
248        self.name.clear();
249    }
250
251    pub fn has_name(&self) -> bool {
252        self.name.is_some()
253    }
254
255    // Param is passed by value, moved
256    pub fn set_name(&mut self, v: ::std::string::String) {
257        self.name = ::protobuf::SingularField::some(v);
258    }
259
260    // Mutable pointer to the field.
261    // If field is not initialized, it is initialized with default value first.
262    pub fn mut_name(&mut self) -> &mut ::std::string::String {
263        if self.name.is_none() {
264            self.name.set_default();
265        }
266        self.name.as_mut().unwrap()
267    }
268
269    // Take field
270    pub fn take_name(&mut self) -> ::std::string::String {
271        self.name.take().unwrap_or_else(|| ::std::string::String::new())
272    }
273
274    // optional string package = 2;
275
276
277    pub fn get_package(&self) -> &str {
278        match self.package.as_ref() {
279            Some(v) => &v,
280            None => "",
281        }
282    }
283    pub fn clear_package(&mut self) {
284        self.package.clear();
285    }
286
287    pub fn has_package(&self) -> bool {
288        self.package.is_some()
289    }
290
291    // Param is passed by value, moved
292    pub fn set_package(&mut self, v: ::std::string::String) {
293        self.package = ::protobuf::SingularField::some(v);
294    }
295
296    // Mutable pointer to the field.
297    // If field is not initialized, it is initialized with default value first.
298    pub fn mut_package(&mut self) -> &mut ::std::string::String {
299        if self.package.is_none() {
300            self.package.set_default();
301        }
302        self.package.as_mut().unwrap()
303    }
304
305    // Take field
306    pub fn take_package(&mut self) -> ::std::string::String {
307        self.package.take().unwrap_or_else(|| ::std::string::String::new())
308    }
309
310    // repeated string dependency = 3;
311
312
313    pub fn get_dependency(&self) -> &[::std::string::String] {
314        &self.dependency
315    }
316    pub fn clear_dependency(&mut self) {
317        self.dependency.clear();
318    }
319
320    // Param is passed by value, moved
321    pub fn set_dependency(&mut self, v: ::protobuf::RepeatedField<::std::string::String>) {
322        self.dependency = v;
323    }
324
325    // Mutable pointer to the field.
326    pub fn mut_dependency(&mut self) -> &mut ::protobuf::RepeatedField<::std::string::String> {
327        &mut self.dependency
328    }
329
330    // Take field
331    pub fn take_dependency(&mut self) -> ::protobuf::RepeatedField<::std::string::String> {
332        ::std::mem::replace(&mut self.dependency, ::protobuf::RepeatedField::new())
333    }
334
335    // repeated int32 public_dependency = 10;
336
337
338    pub fn get_public_dependency(&self) -> &[i32] {
339        &self.public_dependency
340    }
341    pub fn clear_public_dependency(&mut self) {
342        self.public_dependency.clear();
343    }
344
345    // Param is passed by value, moved
346    pub fn set_public_dependency(&mut self, v: ::std::vec::Vec<i32>) {
347        self.public_dependency = v;
348    }
349
350    // Mutable pointer to the field.
351    pub fn mut_public_dependency(&mut self) -> &mut ::std::vec::Vec<i32> {
352        &mut self.public_dependency
353    }
354
355    // Take field
356    pub fn take_public_dependency(&mut self) -> ::std::vec::Vec<i32> {
357        ::std::mem::replace(&mut self.public_dependency, ::std::vec::Vec::new())
358    }
359
360    // repeated int32 weak_dependency = 11;
361
362
363    pub fn get_weak_dependency(&self) -> &[i32] {
364        &self.weak_dependency
365    }
366    pub fn clear_weak_dependency(&mut self) {
367        self.weak_dependency.clear();
368    }
369
370    // Param is passed by value, moved
371    pub fn set_weak_dependency(&mut self, v: ::std::vec::Vec<i32>) {
372        self.weak_dependency = v;
373    }
374
375    // Mutable pointer to the field.
376    pub fn mut_weak_dependency(&mut self) -> &mut ::std::vec::Vec<i32> {
377        &mut self.weak_dependency
378    }
379
380    // Take field
381    pub fn take_weak_dependency(&mut self) -> ::std::vec::Vec<i32> {
382        ::std::mem::replace(&mut self.weak_dependency, ::std::vec::Vec::new())
383    }
384
385    // repeated .google.protobuf.DescriptorProto message_type = 4;
386
387
388    pub fn get_message_type(&self) -> &[DescriptorProto] {
389        &self.message_type
390    }
391    pub fn clear_message_type(&mut self) {
392        self.message_type.clear();
393    }
394
395    // Param is passed by value, moved
396    pub fn set_message_type(&mut self, v: ::protobuf::RepeatedField<DescriptorProto>) {
397        self.message_type = v;
398    }
399
400    // Mutable pointer to the field.
401    pub fn mut_message_type(&mut self) -> &mut ::protobuf::RepeatedField<DescriptorProto> {
402        &mut self.message_type
403    }
404
405    // Take field
406    pub fn take_message_type(&mut self) -> ::protobuf::RepeatedField<DescriptorProto> {
407        ::std::mem::replace(&mut self.message_type, ::protobuf::RepeatedField::new())
408    }
409
410    // repeated .google.protobuf.EnumDescriptorProto enum_type = 5;
411
412
413    pub fn get_enum_type(&self) -> &[EnumDescriptorProto] {
414        &self.enum_type
415    }
416    pub fn clear_enum_type(&mut self) {
417        self.enum_type.clear();
418    }
419
420    // Param is passed by value, moved
421    pub fn set_enum_type(&mut self, v: ::protobuf::RepeatedField<EnumDescriptorProto>) {
422        self.enum_type = v;
423    }
424
425    // Mutable pointer to the field.
426    pub fn mut_enum_type(&mut self) -> &mut ::protobuf::RepeatedField<EnumDescriptorProto> {
427        &mut self.enum_type
428    }
429
430    // Take field
431    pub fn take_enum_type(&mut self) -> ::protobuf::RepeatedField<EnumDescriptorProto> {
432        ::std::mem::replace(&mut self.enum_type, ::protobuf::RepeatedField::new())
433    }
434
435    // repeated .google.protobuf.ServiceDescriptorProto service = 6;
436
437
438    pub fn get_service(&self) -> &[ServiceDescriptorProto] {
439        &self.service
440    }
441    pub fn clear_service(&mut self) {
442        self.service.clear();
443    }
444
445    // Param is passed by value, moved
446    pub fn set_service(&mut self, v: ::protobuf::RepeatedField<ServiceDescriptorProto>) {
447        self.service = v;
448    }
449
450    // Mutable pointer to the field.
451    pub fn mut_service(&mut self) -> &mut ::protobuf::RepeatedField<ServiceDescriptorProto> {
452        &mut self.service
453    }
454
455    // Take field
456    pub fn take_service(&mut self) -> ::protobuf::RepeatedField<ServiceDescriptorProto> {
457        ::std::mem::replace(&mut self.service, ::protobuf::RepeatedField::new())
458    }
459
460    // repeated .google.protobuf.FieldDescriptorProto extension = 7;
461
462
463    pub fn get_extension(&self) -> &[FieldDescriptorProto] {
464        &self.extension
465    }
466    pub fn clear_extension(&mut self) {
467        self.extension.clear();
468    }
469
470    // Param is passed by value, moved
471    pub fn set_extension(&mut self, v: ::protobuf::RepeatedField<FieldDescriptorProto>) {
472        self.extension = v;
473    }
474
475    // Mutable pointer to the field.
476    pub fn mut_extension(&mut self) -> &mut ::protobuf::RepeatedField<FieldDescriptorProto> {
477        &mut self.extension
478    }
479
480    // Take field
481    pub fn take_extension(&mut self) -> ::protobuf::RepeatedField<FieldDescriptorProto> {
482        ::std::mem::replace(&mut self.extension, ::protobuf::RepeatedField::new())
483    }
484
485    // optional .google.protobuf.FileOptions options = 8;
486
487
488    pub fn get_options(&self) -> &FileOptions {
489        self.options.as_ref().unwrap_or_else(|| FileOptions::default_instance())
490    }
491    pub fn clear_options(&mut self) {
492        self.options.clear();
493    }
494
495    pub fn has_options(&self) -> bool {
496        self.options.is_some()
497    }
498
499    // Param is passed by value, moved
500    pub fn set_options(&mut self, v: FileOptions) {
501        self.options = ::protobuf::SingularPtrField::some(v);
502    }
503
504    // Mutable pointer to the field.
505    // If field is not initialized, it is initialized with default value first.
506    pub fn mut_options(&mut self) -> &mut FileOptions {
507        if self.options.is_none() {
508            self.options.set_default();
509        }
510        self.options.as_mut().unwrap()
511    }
512
513    // Take field
514    pub fn take_options(&mut self) -> FileOptions {
515        self.options.take().unwrap_or_else(|| FileOptions::new())
516    }
517
518    // optional .google.protobuf.SourceCodeInfo source_code_info = 9;
519
520
521    pub fn get_source_code_info(&self) -> &SourceCodeInfo {
522        self.source_code_info.as_ref().unwrap_or_else(|| SourceCodeInfo::default_instance())
523    }
524    pub fn clear_source_code_info(&mut self) {
525        self.source_code_info.clear();
526    }
527
528    pub fn has_source_code_info(&self) -> bool {
529        self.source_code_info.is_some()
530    }
531
532    // Param is passed by value, moved
533    pub fn set_source_code_info(&mut self, v: SourceCodeInfo) {
534        self.source_code_info = ::protobuf::SingularPtrField::some(v);
535    }
536
537    // Mutable pointer to the field.
538    // If field is not initialized, it is initialized with default value first.
539    pub fn mut_source_code_info(&mut self) -> &mut SourceCodeInfo {
540        if self.source_code_info.is_none() {
541            self.source_code_info.set_default();
542        }
543        self.source_code_info.as_mut().unwrap()
544    }
545
546    // Take field
547    pub fn take_source_code_info(&mut self) -> SourceCodeInfo {
548        self.source_code_info.take().unwrap_or_else(|| SourceCodeInfo::new())
549    }
550
551    // optional string syntax = 12;
552
553
554    pub fn get_syntax(&self) -> &str {
555        match self.syntax.as_ref() {
556            Some(v) => &v,
557            None => "",
558        }
559    }
560    pub fn clear_syntax(&mut self) {
561        self.syntax.clear();
562    }
563
564    pub fn has_syntax(&self) -> bool {
565        self.syntax.is_some()
566    }
567
568    // Param is passed by value, moved
569    pub fn set_syntax(&mut self, v: ::std::string::String) {
570        self.syntax = ::protobuf::SingularField::some(v);
571    }
572
573    // Mutable pointer to the field.
574    // If field is not initialized, it is initialized with default value first.
575    pub fn mut_syntax(&mut self) -> &mut ::std::string::String {
576        if self.syntax.is_none() {
577            self.syntax.set_default();
578        }
579        self.syntax.as_mut().unwrap()
580    }
581
582    // Take field
583    pub fn take_syntax(&mut self) -> ::std::string::String {
584        self.syntax.take().unwrap_or_else(|| ::std::string::String::new())
585    }
586}
587
588impl ::protobuf::Message for FileDescriptorProto {
589    fn is_initialized(&self) -> bool {
590        for v in &self.message_type {
591            if !v.is_initialized() {
592                return false;
593            }
594        };
595        for v in &self.enum_type {
596            if !v.is_initialized() {
597                return false;
598            }
599        };
600        for v in &self.service {
601            if !v.is_initialized() {
602                return false;
603            }
604        };
605        for v in &self.extension {
606            if !v.is_initialized() {
607                return false;
608            }
609        };
610        for v in &self.options {
611            if !v.is_initialized() {
612                return false;
613            }
614        };
615        for v in &self.source_code_info {
616            if !v.is_initialized() {
617                return false;
618            }
619        };
620        true
621    }
622
623    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream) -> ::protobuf::ProtobufResult<()> {
624        while !is.eof()? {
625            let (field_number, wire_type) = is.read_tag_unpack()?;
626            match field_number {
627                1 => {
628                    ::protobuf::rt::read_singular_string_into(wire_type, is, &mut self.name)?;
629                },
630                2 => {
631                    ::protobuf::rt::read_singular_string_into(wire_type, is, &mut self.package)?;
632                },
633                3 => {
634                    ::protobuf::rt::read_repeated_string_into(wire_type, is, &mut self.dependency)?;
635                },
636                10 => {
637                    ::protobuf::rt::read_repeated_int32_into(wire_type, is, &mut self.public_dependency)?;
638                },
639                11 => {
640                    ::protobuf::rt::read_repeated_int32_into(wire_type, is, &mut self.weak_dependency)?;
641                },
642                4 => {
643                    ::protobuf::rt::read_repeated_message_into(wire_type, is, &mut self.message_type)?;
644                },
645                5 => {
646                    ::protobuf::rt::read_repeated_message_into(wire_type, is, &mut self.enum_type)?;
647                },
648                6 => {
649                    ::protobuf::rt::read_repeated_message_into(wire_type, is, &mut self.service)?;
650                },
651                7 => {
652                    ::protobuf::rt::read_repeated_message_into(wire_type, is, &mut self.extension)?;
653                },
654                8 => {
655                    ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.options)?;
656                },
657                9 => {
658                    ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.source_code_info)?;
659                },
660                12 => {
661                    ::protobuf::rt::read_singular_string_into(wire_type, is, &mut self.syntax)?;
662                },
663                _ => {
664                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
665                },
666            };
667        }
668        ::std::result::Result::Ok(())
669    }
670
671    // Compute sizes of nested messages
672    #[allow(unused_variables)]
673    fn compute_size(&self) -> u32 {
674        let mut my_size = 0;
675        if let Some(ref v) = self.name.as_ref() {
676            my_size += ::protobuf::rt::string_size(1, &v);
677        }
678        if let Some(ref v) = self.package.as_ref() {
679            my_size += ::protobuf::rt::string_size(2, &v);
680        }
681        for value in &self.dependency {
682            my_size += ::protobuf::rt::string_size(3, &value);
683        };
684        for value in &self.public_dependency {
685            my_size += ::protobuf::rt::value_size(10, *value, ::protobuf::wire_format::WireTypeVarint);
686        };
687        for value in &self.weak_dependency {
688            my_size += ::protobuf::rt::value_size(11, *value, ::protobuf::wire_format::WireTypeVarint);
689        };
690        for value in &self.message_type {
691            let len = value.compute_size();
692            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
693        };
694        for value in &self.enum_type {
695            let len = value.compute_size();
696            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
697        };
698        for value in &self.service {
699            let len = value.compute_size();
700            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
701        };
702        for value in &self.extension {
703            let len = value.compute_size();
704            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
705        };
706        if let Some(ref v) = self.options.as_ref() {
707            let len = v.compute_size();
708            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
709        }
710        if let Some(ref v) = self.source_code_info.as_ref() {
711            let len = v.compute_size();
712            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
713        }
714        if let Some(ref v) = self.syntax.as_ref() {
715            my_size += ::protobuf::rt::string_size(12, &v);
716        }
717        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
718        self.cached_size.set(my_size);
719        my_size
720    }
721
722    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream) -> ::protobuf::ProtobufResult<()> {
723        if let Some(ref v) = self.name.as_ref() {
724            os.write_string(1, &v)?;
725        }
726        if let Some(ref v) = self.package.as_ref() {
727            os.write_string(2, &v)?;
728        }
729        for v in &self.dependency {
730            os.write_string(3, &v)?;
731        };
732        for v in &self.public_dependency {
733            os.write_int32(10, *v)?;
734        };
735        for v in &self.weak_dependency {
736            os.write_int32(11, *v)?;
737        };
738        for v in &self.message_type {
739            os.write_tag(4, ::protobuf::wire_format::WireTypeLengthDelimited)?;
740            os.write_raw_varint32(v.get_cached_size())?;
741            v.write_to_with_cached_sizes(os)?;
742        };
743        for v in &self.enum_type {
744            os.write_tag(5, ::protobuf::wire_format::WireTypeLengthDelimited)?;
745            os.write_raw_varint32(v.get_cached_size())?;
746            v.write_to_with_cached_sizes(os)?;
747        };
748        for v in &self.service {
749            os.write_tag(6, ::protobuf::wire_format::WireTypeLengthDelimited)?;
750            os.write_raw_varint32(v.get_cached_size())?;
751            v.write_to_with_cached_sizes(os)?;
752        };
753        for v in &self.extension {
754            os.write_tag(7, ::protobuf::wire_format::WireTypeLengthDelimited)?;
755            os.write_raw_varint32(v.get_cached_size())?;
756            v.write_to_with_cached_sizes(os)?;
757        };
758        if let Some(ref v) = self.options.as_ref() {
759            os.write_tag(8, ::protobuf::wire_format::WireTypeLengthDelimited)?;
760            os.write_raw_varint32(v.get_cached_size())?;
761            v.write_to_with_cached_sizes(os)?;
762        }
763        if let Some(ref v) = self.source_code_info.as_ref() {
764            os.write_tag(9, ::protobuf::wire_format::WireTypeLengthDelimited)?;
765            os.write_raw_varint32(v.get_cached_size())?;
766            v.write_to_with_cached_sizes(os)?;
767        }
768        if let Some(ref v) = self.syntax.as_ref() {
769            os.write_string(12, &v)?;
770        }
771        os.write_unknown_fields(self.get_unknown_fields())?;
772        ::std::result::Result::Ok(())
773    }
774
775    fn get_cached_size(&self) -> u32 {
776        self.cached_size.get()
777    }
778
779    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
780        &self.unknown_fields
781    }
782
783    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
784        &mut self.unknown_fields
785    }
786
787    fn as_any(&self) -> &dyn (::std::any::Any) {
788        self as &dyn (::std::any::Any)
789    }
790    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
791        self as &mut dyn (::std::any::Any)
792    }
793    fn into_any(self: Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
794        self
795    }
796
797    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
798        Self::descriptor_static()
799    }
800
801    fn new() -> FileDescriptorProto {
802        FileDescriptorProto::new()
803    }
804
805    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
806        static mut descriptor: ::protobuf::lazy::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::lazy::Lazy {
807            lock: ::protobuf::lazy::ONCE_INIT,
808            ptr: 0 as *const ::protobuf::reflect::MessageDescriptor,
809        };
810        unsafe {
811            descriptor.get(|| {
812                let mut fields = ::std::vec::Vec::new();
813                fields.push(::protobuf::reflect::accessor::make_singular_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
814                    "name",
815                    |m: &FileDescriptorProto| { &m.name },
816                    |m: &mut FileDescriptorProto| { &mut m.name },
817                ));
818                fields.push(::protobuf::reflect::accessor::make_singular_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
819                    "package",
820                    |m: &FileDescriptorProto| { &m.package },
821                    |m: &mut FileDescriptorProto| { &mut m.package },
822                ));
823                fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
824                    "dependency",
825                    |m: &FileDescriptorProto| { &m.dependency },
826                    |m: &mut FileDescriptorProto| { &mut m.dependency },
827                ));
828                fields.push(::protobuf::reflect::accessor::make_vec_accessor::<_, ::protobuf::types::ProtobufTypeInt32>(
829                    "public_dependency",
830                    |m: &FileDescriptorProto| { &m.public_dependency },
831                    |m: &mut FileDescriptorProto| { &mut m.public_dependency },
832                ));
833                fields.push(::protobuf::reflect::accessor::make_vec_accessor::<_, ::protobuf::types::ProtobufTypeInt32>(
834                    "weak_dependency",
835                    |m: &FileDescriptorProto| { &m.weak_dependency },
836                    |m: &mut FileDescriptorProto| { &mut m.weak_dependency },
837                ));
838                fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<DescriptorProto>>(
839                    "message_type",
840                    |m: &FileDescriptorProto| { &m.message_type },
841                    |m: &mut FileDescriptorProto| { &mut m.message_type },
842                ));
843                fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<EnumDescriptorProto>>(
844                    "enum_type",
845                    |m: &FileDescriptorProto| { &m.enum_type },
846                    |m: &mut FileDescriptorProto| { &mut m.enum_type },
847                ));
848                fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<ServiceDescriptorProto>>(
849                    "service",
850                    |m: &FileDescriptorProto| { &m.service },
851                    |m: &mut FileDescriptorProto| { &mut m.service },
852                ));
853                fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<FieldDescriptorProto>>(
854                    "extension",
855                    |m: &FileDescriptorProto| { &m.extension },
856                    |m: &mut FileDescriptorProto| { &mut m.extension },
857                ));
858                fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<FileOptions>>(
859                    "options",
860                    |m: &FileDescriptorProto| { &m.options },
861                    |m: &mut FileDescriptorProto| { &mut m.options },
862                ));
863                fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<SourceCodeInfo>>(
864                    "source_code_info",
865                    |m: &FileDescriptorProto| { &m.source_code_info },
866                    |m: &mut FileDescriptorProto| { &mut m.source_code_info },
867                ));
868                fields.push(::protobuf::reflect::accessor::make_singular_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
869                    "syntax",
870                    |m: &FileDescriptorProto| { &m.syntax },
871                    |m: &mut FileDescriptorProto| { &mut m.syntax },
872                ));
873                ::protobuf::reflect::MessageDescriptor::new::<FileDescriptorProto>(
874                    "FileDescriptorProto",
875                    fields,
876                    file_descriptor_proto()
877                )
878            })
879        }
880    }
881
882    fn default_instance() -> &'static FileDescriptorProto {
883        static mut instance: ::protobuf::lazy::Lazy<FileDescriptorProto> = ::protobuf::lazy::Lazy {
884            lock: ::protobuf::lazy::ONCE_INIT,
885            ptr: 0 as *const FileDescriptorProto,
886        };
887        unsafe {
888            instance.get(FileDescriptorProto::new)
889        }
890    }
891}
892
893impl ::protobuf::Clear for FileDescriptorProto {
894    fn clear(&mut self) {
895        self.name.clear();
896        self.package.clear();
897        self.dependency.clear();
898        self.public_dependency.clear();
899        self.weak_dependency.clear();
900        self.message_type.clear();
901        self.enum_type.clear();
902        self.service.clear();
903        self.extension.clear();
904        self.options.clear();
905        self.source_code_info.clear();
906        self.syntax.clear();
907        self.unknown_fields.clear();
908    }
909}
910
911impl ::std::fmt::Debug for FileDescriptorProto {
912    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
913        ::protobuf::text_format::fmt(self, f)
914    }
915}
916
917impl ::protobuf::reflect::ProtobufValue for FileDescriptorProto {
918    fn as_ref(&self) -> ::protobuf::reflect::ProtobufValueRef {
919        ::protobuf::reflect::ProtobufValueRef::Message(self)
920    }
921}
922
923#[derive(PartialEq,Clone,Default)]
924#[cfg_attr(feature = "with-serde", derive(Serialize, Deserialize))]
925pub struct DescriptorProto {
926    // message fields
927    name: ::protobuf::SingularField<::std::string::String>,
928    field: ::protobuf::RepeatedField<FieldDescriptorProto>,
929    extension: ::protobuf::RepeatedField<FieldDescriptorProto>,
930    nested_type: ::protobuf::RepeatedField<DescriptorProto>,
931    enum_type: ::protobuf::RepeatedField<EnumDescriptorProto>,
932    extension_range: ::protobuf::RepeatedField<DescriptorProto_ExtensionRange>,
933    oneof_decl: ::protobuf::RepeatedField<OneofDescriptorProto>,
934    options: ::protobuf::SingularPtrField<MessageOptions>,
935    reserved_range: ::protobuf::RepeatedField<DescriptorProto_ReservedRange>,
936    reserved_name: ::protobuf::RepeatedField<::std::string::String>,
937    // special fields
938    #[cfg_attr(feature = "with-serde", serde(skip))]
939    pub unknown_fields: ::protobuf::UnknownFields,
940    #[cfg_attr(feature = "with-serde", serde(skip))]
941    pub cached_size: ::protobuf::CachedSize,
942}
943
944impl<'a> ::std::default::Default for &'a DescriptorProto {
945    fn default() -> &'a DescriptorProto {
946        <DescriptorProto as ::protobuf::Message>::default_instance()
947    }
948}
949
950impl DescriptorProto {
951    pub fn new() -> DescriptorProto {
952        ::std::default::Default::default()
953    }
954
955    // optional string name = 1;
956
957
958    pub fn get_name(&self) -> &str {
959        match self.name.as_ref() {
960            Some(v) => &v,
961            None => "",
962        }
963    }
964    pub fn clear_name(&mut self) {
965        self.name.clear();
966    }
967
968    pub fn has_name(&self) -> bool {
969        self.name.is_some()
970    }
971
972    // Param is passed by value, moved
973    pub fn set_name(&mut self, v: ::std::string::String) {
974        self.name = ::protobuf::SingularField::some(v);
975    }
976
977    // Mutable pointer to the field.
978    // If field is not initialized, it is initialized with default value first.
979    pub fn mut_name(&mut self) -> &mut ::std::string::String {
980        if self.name.is_none() {
981            self.name.set_default();
982        }
983        self.name.as_mut().unwrap()
984    }
985
986    // Take field
987    pub fn take_name(&mut self) -> ::std::string::String {
988        self.name.take().unwrap_or_else(|| ::std::string::String::new())
989    }
990
991    // repeated .google.protobuf.FieldDescriptorProto field = 2;
992
993
994    pub fn get_field(&self) -> &[FieldDescriptorProto] {
995        &self.field
996    }
997    pub fn clear_field(&mut self) {
998        self.field.clear();
999    }
1000
1001    // Param is passed by value, moved
1002    pub fn set_field(&mut self, v: ::protobuf::RepeatedField<FieldDescriptorProto>) {
1003        self.field = v;
1004    }
1005
1006    // Mutable pointer to the field.
1007    pub fn mut_field(&mut self) -> &mut ::protobuf::RepeatedField<FieldDescriptorProto> {
1008        &mut self.field
1009    }
1010
1011    // Take field
1012    pub fn take_field(&mut self) -> ::protobuf::RepeatedField<FieldDescriptorProto> {
1013        ::std::mem::replace(&mut self.field, ::protobuf::RepeatedField::new())
1014    }
1015
1016    // repeated .google.protobuf.FieldDescriptorProto extension = 6;
1017
1018
1019    pub fn get_extension(&self) -> &[FieldDescriptorProto] {
1020        &self.extension
1021    }
1022    pub fn clear_extension(&mut self) {
1023        self.extension.clear();
1024    }
1025
1026    // Param is passed by value, moved
1027    pub fn set_extension(&mut self, v: ::protobuf::RepeatedField<FieldDescriptorProto>) {
1028        self.extension = v;
1029    }
1030
1031    // Mutable pointer to the field.
1032    pub fn mut_extension(&mut self) -> &mut ::protobuf::RepeatedField<FieldDescriptorProto> {
1033        &mut self.extension
1034    }
1035
1036    // Take field
1037    pub fn take_extension(&mut self) -> ::protobuf::RepeatedField<FieldDescriptorProto> {
1038        ::std::mem::replace(&mut self.extension, ::protobuf::RepeatedField::new())
1039    }
1040
1041    // repeated .google.protobuf.DescriptorProto nested_type = 3;
1042
1043
1044    pub fn get_nested_type(&self) -> &[DescriptorProto] {
1045        &self.nested_type
1046    }
1047    pub fn clear_nested_type(&mut self) {
1048        self.nested_type.clear();
1049    }
1050
1051    // Param is passed by value, moved
1052    pub fn set_nested_type(&mut self, v: ::protobuf::RepeatedField<DescriptorProto>) {
1053        self.nested_type = v;
1054    }
1055
1056    // Mutable pointer to the field.
1057    pub fn mut_nested_type(&mut self) -> &mut ::protobuf::RepeatedField<DescriptorProto> {
1058        &mut self.nested_type
1059    }
1060
1061    // Take field
1062    pub fn take_nested_type(&mut self) -> ::protobuf::RepeatedField<DescriptorProto> {
1063        ::std::mem::replace(&mut self.nested_type, ::protobuf::RepeatedField::new())
1064    }
1065
1066    // repeated .google.protobuf.EnumDescriptorProto enum_type = 4;
1067
1068
1069    pub fn get_enum_type(&self) -> &[EnumDescriptorProto] {
1070        &self.enum_type
1071    }
1072    pub fn clear_enum_type(&mut self) {
1073        self.enum_type.clear();
1074    }
1075
1076    // Param is passed by value, moved
1077    pub fn set_enum_type(&mut self, v: ::protobuf::RepeatedField<EnumDescriptorProto>) {
1078        self.enum_type = v;
1079    }
1080
1081    // Mutable pointer to the field.
1082    pub fn mut_enum_type(&mut self) -> &mut ::protobuf::RepeatedField<EnumDescriptorProto> {
1083        &mut self.enum_type
1084    }
1085
1086    // Take field
1087    pub fn take_enum_type(&mut self) -> ::protobuf::RepeatedField<EnumDescriptorProto> {
1088        ::std::mem::replace(&mut self.enum_type, ::protobuf::RepeatedField::new())
1089    }
1090
1091    // repeated .google.protobuf.DescriptorProto.ExtensionRange extension_range = 5;
1092
1093
1094    pub fn get_extension_range(&self) -> &[DescriptorProto_ExtensionRange] {
1095        &self.extension_range
1096    }
1097    pub fn clear_extension_range(&mut self) {
1098        self.extension_range.clear();
1099    }
1100
1101    // Param is passed by value, moved
1102    pub fn set_extension_range(&mut self, v: ::protobuf::RepeatedField<DescriptorProto_ExtensionRange>) {
1103        self.extension_range = v;
1104    }
1105
1106    // Mutable pointer to the field.
1107    pub fn mut_extension_range(&mut self) -> &mut ::protobuf::RepeatedField<DescriptorProto_ExtensionRange> {
1108        &mut self.extension_range
1109    }
1110
1111    // Take field
1112    pub fn take_extension_range(&mut self) -> ::protobuf::RepeatedField<DescriptorProto_ExtensionRange> {
1113        ::std::mem::replace(&mut self.extension_range, ::protobuf::RepeatedField::new())
1114    }
1115
1116    // repeated .google.protobuf.OneofDescriptorProto oneof_decl = 8;
1117
1118
1119    pub fn get_oneof_decl(&self) -> &[OneofDescriptorProto] {
1120        &self.oneof_decl
1121    }
1122    pub fn clear_oneof_decl(&mut self) {
1123        self.oneof_decl.clear();
1124    }
1125
1126    // Param is passed by value, moved
1127    pub fn set_oneof_decl(&mut self, v: ::protobuf::RepeatedField<OneofDescriptorProto>) {
1128        self.oneof_decl = v;
1129    }
1130
1131    // Mutable pointer to the field.
1132    pub fn mut_oneof_decl(&mut self) -> &mut ::protobuf::RepeatedField<OneofDescriptorProto> {
1133        &mut self.oneof_decl
1134    }
1135
1136    // Take field
1137    pub fn take_oneof_decl(&mut self) -> ::protobuf::RepeatedField<OneofDescriptorProto> {
1138        ::std::mem::replace(&mut self.oneof_decl, ::protobuf::RepeatedField::new())
1139    }
1140
1141    // optional .google.protobuf.MessageOptions options = 7;
1142
1143
1144    pub fn get_options(&self) -> &MessageOptions {
1145        self.options.as_ref().unwrap_or_else(|| MessageOptions::default_instance())
1146    }
1147    pub fn clear_options(&mut self) {
1148        self.options.clear();
1149    }
1150
1151    pub fn has_options(&self) -> bool {
1152        self.options.is_some()
1153    }
1154
1155    // Param is passed by value, moved
1156    pub fn set_options(&mut self, v: MessageOptions) {
1157        self.options = ::protobuf::SingularPtrField::some(v);
1158    }
1159
1160    // Mutable pointer to the field.
1161    // If field is not initialized, it is initialized with default value first.
1162    pub fn mut_options(&mut self) -> &mut MessageOptions {
1163        if self.options.is_none() {
1164            self.options.set_default();
1165        }
1166        self.options.as_mut().unwrap()
1167    }
1168
1169    // Take field
1170    pub fn take_options(&mut self) -> MessageOptions {
1171        self.options.take().unwrap_or_else(|| MessageOptions::new())
1172    }
1173
1174    // repeated .google.protobuf.DescriptorProto.ReservedRange reserved_range = 9;
1175
1176
1177    pub fn get_reserved_range(&self) -> &[DescriptorProto_ReservedRange] {
1178        &self.reserved_range
1179    }
1180    pub fn clear_reserved_range(&mut self) {
1181        self.reserved_range.clear();
1182    }
1183
1184    // Param is passed by value, moved
1185    pub fn set_reserved_range(&mut self, v: ::protobuf::RepeatedField<DescriptorProto_ReservedRange>) {
1186        self.reserved_range = v;
1187    }
1188
1189    // Mutable pointer to the field.
1190    pub fn mut_reserved_range(&mut self) -> &mut ::protobuf::RepeatedField<DescriptorProto_ReservedRange> {
1191        &mut self.reserved_range
1192    }
1193
1194    // Take field
1195    pub fn take_reserved_range(&mut self) -> ::protobuf::RepeatedField<DescriptorProto_ReservedRange> {
1196        ::std::mem::replace(&mut self.reserved_range, ::protobuf::RepeatedField::new())
1197    }
1198
1199    // repeated string reserved_name = 10;
1200
1201
1202    pub fn get_reserved_name(&self) -> &[::std::string::String] {
1203        &self.reserved_name
1204    }
1205    pub fn clear_reserved_name(&mut self) {
1206        self.reserved_name.clear();
1207    }
1208
1209    // Param is passed by value, moved
1210    pub fn set_reserved_name(&mut self, v: ::protobuf::RepeatedField<::std::string::String>) {
1211        self.reserved_name = v;
1212    }
1213
1214    // Mutable pointer to the field.
1215    pub fn mut_reserved_name(&mut self) -> &mut ::protobuf::RepeatedField<::std::string::String> {
1216        &mut self.reserved_name
1217    }
1218
1219    // Take field
1220    pub fn take_reserved_name(&mut self) -> ::protobuf::RepeatedField<::std::string::String> {
1221        ::std::mem::replace(&mut self.reserved_name, ::protobuf::RepeatedField::new())
1222    }
1223}
1224
1225impl ::protobuf::Message for DescriptorProto {
1226    fn is_initialized(&self) -> bool {
1227        for v in &self.field {
1228            if !v.is_initialized() {
1229                return false;
1230            }
1231        };
1232        for v in &self.extension {
1233            if !v.is_initialized() {
1234                return false;
1235            }
1236        };
1237        for v in &self.nested_type {
1238            if !v.is_initialized() {
1239                return false;
1240            }
1241        };
1242        for v in &self.enum_type {
1243            if !v.is_initialized() {
1244                return false;
1245            }
1246        };
1247        for v in &self.extension_range {
1248            if !v.is_initialized() {
1249                return false;
1250            }
1251        };
1252        for v in &self.oneof_decl {
1253            if !v.is_initialized() {
1254                return false;
1255            }
1256        };
1257        for v in &self.options {
1258            if !v.is_initialized() {
1259                return false;
1260            }
1261        };
1262        for v in &self.reserved_range {
1263            if !v.is_initialized() {
1264                return false;
1265            }
1266        };
1267        true
1268    }
1269
1270    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream) -> ::protobuf::ProtobufResult<()> {
1271        while !is.eof()? {
1272            let (field_number, wire_type) = is.read_tag_unpack()?;
1273            match field_number {
1274                1 => {
1275                    ::protobuf::rt::read_singular_string_into(wire_type, is, &mut self.name)?;
1276                },
1277                2 => {
1278                    ::protobuf::rt::read_repeated_message_into(wire_type, is, &mut self.field)?;
1279                },
1280                6 => {
1281                    ::protobuf::rt::read_repeated_message_into(wire_type, is, &mut self.extension)?;
1282                },
1283                3 => {
1284                    ::protobuf::rt::read_repeated_message_into(wire_type, is, &mut self.nested_type)?;
1285                },
1286                4 => {
1287                    ::protobuf::rt::read_repeated_message_into(wire_type, is, &mut self.enum_type)?;
1288                },
1289                5 => {
1290                    ::protobuf::rt::read_repeated_message_into(wire_type, is, &mut self.extension_range)?;
1291                },
1292                8 => {
1293                    ::protobuf::rt::read_repeated_message_into(wire_type, is, &mut self.oneof_decl)?;
1294                },
1295                7 => {
1296                    ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.options)?;
1297                },
1298                9 => {
1299                    ::protobuf::rt::read_repeated_message_into(wire_type, is, &mut self.reserved_range)?;
1300                },
1301                10 => {
1302                    ::protobuf::rt::read_repeated_string_into(wire_type, is, &mut self.reserved_name)?;
1303                },
1304                _ => {
1305                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
1306                },
1307            };
1308        }
1309        ::std::result::Result::Ok(())
1310    }
1311
1312    // Compute sizes of nested messages
1313    #[allow(unused_variables)]
1314    fn compute_size(&self) -> u32 {
1315        let mut my_size = 0;
1316        if let Some(ref v) = self.name.as_ref() {
1317            my_size += ::protobuf::rt::string_size(1, &v);
1318        }
1319        for value in &self.field {
1320            let len = value.compute_size();
1321            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
1322        };
1323        for value in &self.extension {
1324            let len = value.compute_size();
1325            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
1326        };
1327        for value in &self.nested_type {
1328            let len = value.compute_size();
1329            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
1330        };
1331        for value in &self.enum_type {
1332            let len = value.compute_size();
1333            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
1334        };
1335        for value in &self.extension_range {
1336            let len = value.compute_size();
1337            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
1338        };
1339        for value in &self.oneof_decl {
1340            let len = value.compute_size();
1341            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
1342        };
1343        if let Some(ref v) = self.options.as_ref() {
1344            let len = v.compute_size();
1345            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
1346        }
1347        for value in &self.reserved_range {
1348            let len = value.compute_size();
1349            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
1350        };
1351        for value in &self.reserved_name {
1352            my_size += ::protobuf::rt::string_size(10, &value);
1353        };
1354        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
1355        self.cached_size.set(my_size);
1356        my_size
1357    }
1358
1359    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream) -> ::protobuf::ProtobufResult<()> {
1360        if let Some(ref v) = self.name.as_ref() {
1361            os.write_string(1, &v)?;
1362        }
1363        for v in &self.field {
1364            os.write_tag(2, ::protobuf::wire_format::WireTypeLengthDelimited)?;
1365            os.write_raw_varint32(v.get_cached_size())?;
1366            v.write_to_with_cached_sizes(os)?;
1367        };
1368        for v in &self.extension {
1369            os.write_tag(6, ::protobuf::wire_format::WireTypeLengthDelimited)?;
1370            os.write_raw_varint32(v.get_cached_size())?;
1371            v.write_to_with_cached_sizes(os)?;
1372        };
1373        for v in &self.nested_type {
1374            os.write_tag(3, ::protobuf::wire_format::WireTypeLengthDelimited)?;
1375            os.write_raw_varint32(v.get_cached_size())?;
1376            v.write_to_with_cached_sizes(os)?;
1377        };
1378        for v in &self.enum_type {
1379            os.write_tag(4, ::protobuf::wire_format::WireTypeLengthDelimited)?;
1380            os.write_raw_varint32(v.get_cached_size())?;
1381            v.write_to_with_cached_sizes(os)?;
1382        };
1383        for v in &self.extension_range {
1384            os.write_tag(5, ::protobuf::wire_format::WireTypeLengthDelimited)?;
1385            os.write_raw_varint32(v.get_cached_size())?;
1386            v.write_to_with_cached_sizes(os)?;
1387        };
1388        for v in &self.oneof_decl {
1389            os.write_tag(8, ::protobuf::wire_format::WireTypeLengthDelimited)?;
1390            os.write_raw_varint32(v.get_cached_size())?;
1391            v.write_to_with_cached_sizes(os)?;
1392        };
1393        if let Some(ref v) = self.options.as_ref() {
1394            os.write_tag(7, ::protobuf::wire_format::WireTypeLengthDelimited)?;
1395            os.write_raw_varint32(v.get_cached_size())?;
1396            v.write_to_with_cached_sizes(os)?;
1397        }
1398        for v in &self.reserved_range {
1399            os.write_tag(9, ::protobuf::wire_format::WireTypeLengthDelimited)?;
1400            os.write_raw_varint32(v.get_cached_size())?;
1401            v.write_to_with_cached_sizes(os)?;
1402        };
1403        for v in &self.reserved_name {
1404            os.write_string(10, &v)?;
1405        };
1406        os.write_unknown_fields(self.get_unknown_fields())?;
1407        ::std::result::Result::Ok(())
1408    }
1409
1410    fn get_cached_size(&self) -> u32 {
1411        self.cached_size.get()
1412    }
1413
1414    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
1415        &self.unknown_fields
1416    }
1417
1418    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
1419        &mut self.unknown_fields
1420    }
1421
1422    fn as_any(&self) -> &dyn (::std::any::Any) {
1423        self as &dyn (::std::any::Any)
1424    }
1425    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
1426        self as &mut dyn (::std::any::Any)
1427    }
1428    fn into_any(self: Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
1429        self
1430    }
1431
1432    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
1433        Self::descriptor_static()
1434    }
1435
1436    fn new() -> DescriptorProto {
1437        DescriptorProto::new()
1438    }
1439
1440    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
1441        static mut descriptor: ::protobuf::lazy::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::lazy::Lazy {
1442            lock: ::protobuf::lazy::ONCE_INIT,
1443            ptr: 0 as *const ::protobuf::reflect::MessageDescriptor,
1444        };
1445        unsafe {
1446            descriptor.get(|| {
1447                let mut fields = ::std::vec::Vec::new();
1448                fields.push(::protobuf::reflect::accessor::make_singular_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
1449                    "name",
1450                    |m: &DescriptorProto| { &m.name },
1451                    |m: &mut DescriptorProto| { &mut m.name },
1452                ));
1453                fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<FieldDescriptorProto>>(
1454                    "field",
1455                    |m: &DescriptorProto| { &m.field },
1456                    |m: &mut DescriptorProto| { &mut m.field },
1457                ));
1458                fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<FieldDescriptorProto>>(
1459                    "extension",
1460                    |m: &DescriptorProto| { &m.extension },
1461                    |m: &mut DescriptorProto| { &mut m.extension },
1462                ));
1463                fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<DescriptorProto>>(
1464                    "nested_type",
1465                    |m: &DescriptorProto| { &m.nested_type },
1466                    |m: &mut DescriptorProto| { &mut m.nested_type },
1467                ));
1468                fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<EnumDescriptorProto>>(
1469                    "enum_type",
1470                    |m: &DescriptorProto| { &m.enum_type },
1471                    |m: &mut DescriptorProto| { &mut m.enum_type },
1472                ));
1473                fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<DescriptorProto_ExtensionRange>>(
1474                    "extension_range",
1475                    |m: &DescriptorProto| { &m.extension_range },
1476                    |m: &mut DescriptorProto| { &mut m.extension_range },
1477                ));
1478                fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<OneofDescriptorProto>>(
1479                    "oneof_decl",
1480                    |m: &DescriptorProto| { &m.oneof_decl },
1481                    |m: &mut DescriptorProto| { &mut m.oneof_decl },
1482                ));
1483                fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<MessageOptions>>(
1484                    "options",
1485                    |m: &DescriptorProto| { &m.options },
1486                    |m: &mut DescriptorProto| { &mut m.options },
1487                ));
1488                fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<DescriptorProto_ReservedRange>>(
1489                    "reserved_range",
1490                    |m: &DescriptorProto| { &m.reserved_range },
1491                    |m: &mut DescriptorProto| { &mut m.reserved_range },
1492                ));
1493                fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
1494                    "reserved_name",
1495                    |m: &DescriptorProto| { &m.reserved_name },
1496                    |m: &mut DescriptorProto| { &mut m.reserved_name },
1497                ));
1498                ::protobuf::reflect::MessageDescriptor::new::<DescriptorProto>(
1499                    "DescriptorProto",
1500                    fields,
1501                    file_descriptor_proto()
1502                )
1503            })
1504        }
1505    }
1506
1507    fn default_instance() -> &'static DescriptorProto {
1508        static mut instance: ::protobuf::lazy::Lazy<DescriptorProto> = ::protobuf::lazy::Lazy {
1509            lock: ::protobuf::lazy::ONCE_INIT,
1510            ptr: 0 as *const DescriptorProto,
1511        };
1512        unsafe {
1513            instance.get(DescriptorProto::new)
1514        }
1515    }
1516}
1517
1518impl ::protobuf::Clear for DescriptorProto {
1519    fn clear(&mut self) {
1520        self.name.clear();
1521        self.field.clear();
1522        self.extension.clear();
1523        self.nested_type.clear();
1524        self.enum_type.clear();
1525        self.extension_range.clear();
1526        self.oneof_decl.clear();
1527        self.options.clear();
1528        self.reserved_range.clear();
1529        self.reserved_name.clear();
1530        self.unknown_fields.clear();
1531    }
1532}
1533
1534impl ::std::fmt::Debug for DescriptorProto {
1535    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1536        ::protobuf::text_format::fmt(self, f)
1537    }
1538}
1539
1540impl ::protobuf::reflect::ProtobufValue for DescriptorProto {
1541    fn as_ref(&self) -> ::protobuf::reflect::ProtobufValueRef {
1542        ::protobuf::reflect::ProtobufValueRef::Message(self)
1543    }
1544}
1545
1546#[derive(PartialEq,Clone,Default)]
1547#[cfg_attr(feature = "with-serde", derive(Serialize, Deserialize))]
1548pub struct DescriptorProto_ExtensionRange {
1549    // message fields
1550    start: ::std::option::Option<i32>,
1551    end: ::std::option::Option<i32>,
1552    // special fields
1553    #[cfg_attr(feature = "with-serde", serde(skip))]
1554    pub unknown_fields: ::protobuf::UnknownFields,
1555    #[cfg_attr(feature = "with-serde", serde(skip))]
1556    pub cached_size: ::protobuf::CachedSize,
1557}
1558
1559impl<'a> ::std::default::Default for &'a DescriptorProto_ExtensionRange {
1560    fn default() -> &'a DescriptorProto_ExtensionRange {
1561        <DescriptorProto_ExtensionRange as ::protobuf::Message>::default_instance()
1562    }
1563}
1564
1565impl DescriptorProto_ExtensionRange {
1566    pub fn new() -> DescriptorProto_ExtensionRange {
1567        ::std::default::Default::default()
1568    }
1569
1570    // optional int32 start = 1;
1571
1572
1573    pub fn get_start(&self) -> i32 {
1574        self.start.unwrap_or(0)
1575    }
1576    pub fn clear_start(&mut self) {
1577        self.start = ::std::option::Option::None;
1578    }
1579
1580    pub fn has_start(&self) -> bool {
1581        self.start.is_some()
1582    }
1583
1584    // Param is passed by value, moved
1585    pub fn set_start(&mut self, v: i32) {
1586        self.start = ::std::option::Option::Some(v);
1587    }
1588
1589    // optional int32 end = 2;
1590
1591
1592    pub fn get_end(&self) -> i32 {
1593        self.end.unwrap_or(0)
1594    }
1595    pub fn clear_end(&mut self) {
1596        self.end = ::std::option::Option::None;
1597    }
1598
1599    pub fn has_end(&self) -> bool {
1600        self.end.is_some()
1601    }
1602
1603    // Param is passed by value, moved
1604    pub fn set_end(&mut self, v: i32) {
1605        self.end = ::std::option::Option::Some(v);
1606    }
1607}
1608
1609impl ::protobuf::Message for DescriptorProto_ExtensionRange {
1610    fn is_initialized(&self) -> bool {
1611        true
1612    }
1613
1614    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream) -> ::protobuf::ProtobufResult<()> {
1615        while !is.eof()? {
1616            let (field_number, wire_type) = is.read_tag_unpack()?;
1617            match field_number {
1618                1 => {
1619                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
1620                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
1621                    }
1622                    let tmp = is.read_int32()?;
1623                    self.start = ::std::option::Option::Some(tmp);
1624                },
1625                2 => {
1626                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
1627                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
1628                    }
1629                    let tmp = is.read_int32()?;
1630                    self.end = ::std::option::Option::Some(tmp);
1631                },
1632                _ => {
1633                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
1634                },
1635            };
1636        }
1637        ::std::result::Result::Ok(())
1638    }
1639
1640    // Compute sizes of nested messages
1641    #[allow(unused_variables)]
1642    fn compute_size(&self) -> u32 {
1643        let mut my_size = 0;
1644        if let Some(v) = self.start {
1645            my_size += ::protobuf::rt::value_size(1, v, ::protobuf::wire_format::WireTypeVarint);
1646        }
1647        if let Some(v) = self.end {
1648            my_size += ::protobuf::rt::value_size(2, v, ::protobuf::wire_format::WireTypeVarint);
1649        }
1650        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
1651        self.cached_size.set(my_size);
1652        my_size
1653    }
1654
1655    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream) -> ::protobuf::ProtobufResult<()> {
1656        if let Some(v) = self.start {
1657            os.write_int32(1, v)?;
1658        }
1659        if let Some(v) = self.end {
1660            os.write_int32(2, v)?;
1661        }
1662        os.write_unknown_fields(self.get_unknown_fields())?;
1663        ::std::result::Result::Ok(())
1664    }
1665
1666    fn get_cached_size(&self) -> u32 {
1667        self.cached_size.get()
1668    }
1669
1670    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
1671        &self.unknown_fields
1672    }
1673
1674    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
1675        &mut self.unknown_fields
1676    }
1677
1678    fn as_any(&self) -> &dyn (::std::any::Any) {
1679        self as &dyn (::std::any::Any)
1680    }
1681    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
1682        self as &mut dyn (::std::any::Any)
1683    }
1684    fn into_any(self: Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
1685        self
1686    }
1687
1688    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
1689        Self::descriptor_static()
1690    }
1691
1692    fn new() -> DescriptorProto_ExtensionRange {
1693        DescriptorProto_ExtensionRange::new()
1694    }
1695
1696    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
1697        static mut descriptor: ::protobuf::lazy::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::lazy::Lazy {
1698            lock: ::protobuf::lazy::ONCE_INIT,
1699            ptr: 0 as *const ::protobuf::reflect::MessageDescriptor,
1700        };
1701        unsafe {
1702            descriptor.get(|| {
1703                let mut fields = ::std::vec::Vec::new();
1704                fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeInt32>(
1705                    "start",
1706                    |m: &DescriptorProto_ExtensionRange| { &m.start },
1707                    |m: &mut DescriptorProto_ExtensionRange| { &mut m.start },
1708                ));
1709                fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeInt32>(
1710                    "end",
1711                    |m: &DescriptorProto_ExtensionRange| { &m.end },
1712                    |m: &mut DescriptorProto_ExtensionRange| { &mut m.end },
1713                ));
1714                ::protobuf::reflect::MessageDescriptor::new::<DescriptorProto_ExtensionRange>(
1715                    "DescriptorProto_ExtensionRange",
1716                    fields,
1717                    file_descriptor_proto()
1718                )
1719            })
1720        }
1721    }
1722
1723    fn default_instance() -> &'static DescriptorProto_ExtensionRange {
1724        static mut instance: ::protobuf::lazy::Lazy<DescriptorProto_ExtensionRange> = ::protobuf::lazy::Lazy {
1725            lock: ::protobuf::lazy::ONCE_INIT,
1726            ptr: 0 as *const DescriptorProto_ExtensionRange,
1727        };
1728        unsafe {
1729            instance.get(DescriptorProto_ExtensionRange::new)
1730        }
1731    }
1732}
1733
1734impl ::protobuf::Clear for DescriptorProto_ExtensionRange {
1735    fn clear(&mut self) {
1736        self.start = ::std::option::Option::None;
1737        self.end = ::std::option::Option::None;
1738        self.unknown_fields.clear();
1739    }
1740}
1741
1742impl ::std::fmt::Debug for DescriptorProto_ExtensionRange {
1743    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1744        ::protobuf::text_format::fmt(self, f)
1745    }
1746}
1747
1748impl ::protobuf::reflect::ProtobufValue for DescriptorProto_ExtensionRange {
1749    fn as_ref(&self) -> ::protobuf::reflect::ProtobufValueRef {
1750        ::protobuf::reflect::ProtobufValueRef::Message(self)
1751    }
1752}
1753
1754#[derive(PartialEq,Clone,Default)]
1755#[cfg_attr(feature = "with-serde", derive(Serialize, Deserialize))]
1756pub struct DescriptorProto_ReservedRange {
1757    // message fields
1758    start: ::std::option::Option<i32>,
1759    end: ::std::option::Option<i32>,
1760    // special fields
1761    #[cfg_attr(feature = "with-serde", serde(skip))]
1762    pub unknown_fields: ::protobuf::UnknownFields,
1763    #[cfg_attr(feature = "with-serde", serde(skip))]
1764    pub cached_size: ::protobuf::CachedSize,
1765}
1766
1767impl<'a> ::std::default::Default for &'a DescriptorProto_ReservedRange {
1768    fn default() -> &'a DescriptorProto_ReservedRange {
1769        <DescriptorProto_ReservedRange as ::protobuf::Message>::default_instance()
1770    }
1771}
1772
1773impl DescriptorProto_ReservedRange {
1774    pub fn new() -> DescriptorProto_ReservedRange {
1775        ::std::default::Default::default()
1776    }
1777
1778    // optional int32 start = 1;
1779
1780
1781    pub fn get_start(&self) -> i32 {
1782        self.start.unwrap_or(0)
1783    }
1784    pub fn clear_start(&mut self) {
1785        self.start = ::std::option::Option::None;
1786    }
1787
1788    pub fn has_start(&self) -> bool {
1789        self.start.is_some()
1790    }
1791
1792    // Param is passed by value, moved
1793    pub fn set_start(&mut self, v: i32) {
1794        self.start = ::std::option::Option::Some(v);
1795    }
1796
1797    // optional int32 end = 2;
1798
1799
1800    pub fn get_end(&self) -> i32 {
1801        self.end.unwrap_or(0)
1802    }
1803    pub fn clear_end(&mut self) {
1804        self.end = ::std::option::Option::None;
1805    }
1806
1807    pub fn has_end(&self) -> bool {
1808        self.end.is_some()
1809    }
1810
1811    // Param is passed by value, moved
1812    pub fn set_end(&mut self, v: i32) {
1813        self.end = ::std::option::Option::Some(v);
1814    }
1815}
1816
1817impl ::protobuf::Message for DescriptorProto_ReservedRange {
1818    fn is_initialized(&self) -> bool {
1819        true
1820    }
1821
1822    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream) -> ::protobuf::ProtobufResult<()> {
1823        while !is.eof()? {
1824            let (field_number, wire_type) = is.read_tag_unpack()?;
1825            match field_number {
1826                1 => {
1827                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
1828                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
1829                    }
1830                    let tmp = is.read_int32()?;
1831                    self.start = ::std::option::Option::Some(tmp);
1832                },
1833                2 => {
1834                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
1835                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
1836                    }
1837                    let tmp = is.read_int32()?;
1838                    self.end = ::std::option::Option::Some(tmp);
1839                },
1840                _ => {
1841                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
1842                },
1843            };
1844        }
1845        ::std::result::Result::Ok(())
1846    }
1847
1848    // Compute sizes of nested messages
1849    #[allow(unused_variables)]
1850    fn compute_size(&self) -> u32 {
1851        let mut my_size = 0;
1852        if let Some(v) = self.start {
1853            my_size += ::protobuf::rt::value_size(1, v, ::protobuf::wire_format::WireTypeVarint);
1854        }
1855        if let Some(v) = self.end {
1856            my_size += ::protobuf::rt::value_size(2, v, ::protobuf::wire_format::WireTypeVarint);
1857        }
1858        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
1859        self.cached_size.set(my_size);
1860        my_size
1861    }
1862
1863    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream) -> ::protobuf::ProtobufResult<()> {
1864        if let Some(v) = self.start {
1865            os.write_int32(1, v)?;
1866        }
1867        if let Some(v) = self.end {
1868            os.write_int32(2, v)?;
1869        }
1870        os.write_unknown_fields(self.get_unknown_fields())?;
1871        ::std::result::Result::Ok(())
1872    }
1873
1874    fn get_cached_size(&self) -> u32 {
1875        self.cached_size.get()
1876    }
1877
1878    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
1879        &self.unknown_fields
1880    }
1881
1882    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
1883        &mut self.unknown_fields
1884    }
1885
1886    fn as_any(&self) -> &dyn (::std::any::Any) {
1887        self as &dyn (::std::any::Any)
1888    }
1889    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
1890        self as &mut dyn (::std::any::Any)
1891    }
1892    fn into_any(self: Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
1893        self
1894    }
1895
1896    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
1897        Self::descriptor_static()
1898    }
1899
1900    fn new() -> DescriptorProto_ReservedRange {
1901        DescriptorProto_ReservedRange::new()
1902    }
1903
1904    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
1905        static mut descriptor: ::protobuf::lazy::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::lazy::Lazy {
1906            lock: ::protobuf::lazy::ONCE_INIT,
1907            ptr: 0 as *const ::protobuf::reflect::MessageDescriptor,
1908        };
1909        unsafe {
1910            descriptor.get(|| {
1911                let mut fields = ::std::vec::Vec::new();
1912                fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeInt32>(
1913                    "start",
1914                    |m: &DescriptorProto_ReservedRange| { &m.start },
1915                    |m: &mut DescriptorProto_ReservedRange| { &mut m.start },
1916                ));
1917                fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeInt32>(
1918                    "end",
1919                    |m: &DescriptorProto_ReservedRange| { &m.end },
1920                    |m: &mut DescriptorProto_ReservedRange| { &mut m.end },
1921                ));
1922                ::protobuf::reflect::MessageDescriptor::new::<DescriptorProto_ReservedRange>(
1923                    "DescriptorProto_ReservedRange",
1924                    fields,
1925                    file_descriptor_proto()
1926                )
1927            })
1928        }
1929    }
1930
1931    fn default_instance() -> &'static DescriptorProto_ReservedRange {
1932        static mut instance: ::protobuf::lazy::Lazy<DescriptorProto_ReservedRange> = ::protobuf::lazy::Lazy {
1933            lock: ::protobuf::lazy::ONCE_INIT,
1934            ptr: 0 as *const DescriptorProto_ReservedRange,
1935        };
1936        unsafe {
1937            instance.get(DescriptorProto_ReservedRange::new)
1938        }
1939    }
1940}
1941
1942impl ::protobuf::Clear for DescriptorProto_ReservedRange {
1943    fn clear(&mut self) {
1944        self.start = ::std::option::Option::None;
1945        self.end = ::std::option::Option::None;
1946        self.unknown_fields.clear();
1947    }
1948}
1949
1950impl ::std::fmt::Debug for DescriptorProto_ReservedRange {
1951    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1952        ::protobuf::text_format::fmt(self, f)
1953    }
1954}
1955
1956impl ::protobuf::reflect::ProtobufValue for DescriptorProto_ReservedRange {
1957    fn as_ref(&self) -> ::protobuf::reflect::ProtobufValueRef {
1958        ::protobuf::reflect::ProtobufValueRef::Message(self)
1959    }
1960}
1961
1962#[derive(PartialEq,Clone,Default)]
1963#[cfg_attr(feature = "with-serde", derive(Serialize, Deserialize))]
1964pub struct FieldDescriptorProto {
1965    // message fields
1966    name: ::protobuf::SingularField<::std::string::String>,
1967    number: ::std::option::Option<i32>,
1968    label: ::std::option::Option<FieldDescriptorProto_Label>,
1969    field_type: ::std::option::Option<FieldDescriptorProto_Type>,
1970    type_name: ::protobuf::SingularField<::std::string::String>,
1971    extendee: ::protobuf::SingularField<::std::string::String>,
1972    default_value: ::protobuf::SingularField<::std::string::String>,
1973    oneof_index: ::std::option::Option<i32>,
1974    json_name: ::protobuf::SingularField<::std::string::String>,
1975    options: ::protobuf::SingularPtrField<FieldOptions>,
1976    // special fields
1977    #[cfg_attr(feature = "with-serde", serde(skip))]
1978    pub unknown_fields: ::protobuf::UnknownFields,
1979    #[cfg_attr(feature = "with-serde", serde(skip))]
1980    pub cached_size: ::protobuf::CachedSize,
1981}
1982
1983impl<'a> ::std::default::Default for &'a FieldDescriptorProto {
1984    fn default() -> &'a FieldDescriptorProto {
1985        <FieldDescriptorProto as ::protobuf::Message>::default_instance()
1986    }
1987}
1988
1989impl FieldDescriptorProto {
1990    pub fn new() -> FieldDescriptorProto {
1991        ::std::default::Default::default()
1992    }
1993
1994    // optional string name = 1;
1995
1996
1997    pub fn get_name(&self) -> &str {
1998        match self.name.as_ref() {
1999            Some(v) => &v,
2000            None => "",
2001        }
2002    }
2003    pub fn clear_name(&mut self) {
2004        self.name.clear();
2005    }
2006
2007    pub fn has_name(&self) -> bool {
2008        self.name.is_some()
2009    }
2010
2011    // Param is passed by value, moved
2012    pub fn set_name(&mut self, v: ::std::string::String) {
2013        self.name = ::protobuf::SingularField::some(v);
2014    }
2015
2016    // Mutable pointer to the field.
2017    // If field is not initialized, it is initialized with default value first.
2018    pub fn mut_name(&mut self) -> &mut ::std::string::String {
2019        if self.name.is_none() {
2020            self.name.set_default();
2021        }
2022        self.name.as_mut().unwrap()
2023    }
2024
2025    // Take field
2026    pub fn take_name(&mut self) -> ::std::string::String {
2027        self.name.take().unwrap_or_else(|| ::std::string::String::new())
2028    }
2029
2030    // optional int32 number = 3;
2031
2032
2033    pub fn get_number(&self) -> i32 {
2034        self.number.unwrap_or(0)
2035    }
2036    pub fn clear_number(&mut self) {
2037        self.number = ::std::option::Option::None;
2038    }
2039
2040    pub fn has_number(&self) -> bool {
2041        self.number.is_some()
2042    }
2043
2044    // Param is passed by value, moved
2045    pub fn set_number(&mut self, v: i32) {
2046        self.number = ::std::option::Option::Some(v);
2047    }
2048
2049    // optional .google.protobuf.FieldDescriptorProto.Label label = 4;
2050
2051
2052    pub fn get_label(&self) -> FieldDescriptorProto_Label {
2053        self.label.unwrap_or(FieldDescriptorProto_Label::LABEL_OPTIONAL)
2054    }
2055    pub fn clear_label(&mut self) {
2056        self.label = ::std::option::Option::None;
2057    }
2058
2059    pub fn has_label(&self) -> bool {
2060        self.label.is_some()
2061    }
2062
2063    // Param is passed by value, moved
2064    pub fn set_label(&mut self, v: FieldDescriptorProto_Label) {
2065        self.label = ::std::option::Option::Some(v);
2066    }
2067
2068    // optional .google.protobuf.FieldDescriptorProto.Type type = 5;
2069
2070
2071    pub fn get_field_type(&self) -> FieldDescriptorProto_Type {
2072        self.field_type.unwrap_or(FieldDescriptorProto_Type::TYPE_DOUBLE)
2073    }
2074    pub fn clear_field_type(&mut self) {
2075        self.field_type = ::std::option::Option::None;
2076    }
2077
2078    pub fn has_field_type(&self) -> bool {
2079        self.field_type.is_some()
2080    }
2081
2082    // Param is passed by value, moved
2083    pub fn set_field_type(&mut self, v: FieldDescriptorProto_Type) {
2084        self.field_type = ::std::option::Option::Some(v);
2085    }
2086
2087    // optional string type_name = 6;
2088
2089
2090    pub fn get_type_name(&self) -> &str {
2091        match self.type_name.as_ref() {
2092            Some(v) => &v,
2093            None => "",
2094        }
2095    }
2096    pub fn clear_type_name(&mut self) {
2097        self.type_name.clear();
2098    }
2099
2100    pub fn has_type_name(&self) -> bool {
2101        self.type_name.is_some()
2102    }
2103
2104    // Param is passed by value, moved
2105    pub fn set_type_name(&mut self, v: ::std::string::String) {
2106        self.type_name = ::protobuf::SingularField::some(v);
2107    }
2108
2109    // Mutable pointer to the field.
2110    // If field is not initialized, it is initialized with default value first.
2111    pub fn mut_type_name(&mut self) -> &mut ::std::string::String {
2112        if self.type_name.is_none() {
2113            self.type_name.set_default();
2114        }
2115        self.type_name.as_mut().unwrap()
2116    }
2117
2118    // Take field
2119    pub fn take_type_name(&mut self) -> ::std::string::String {
2120        self.type_name.take().unwrap_or_else(|| ::std::string::String::new())
2121    }
2122
2123    // optional string extendee = 2;
2124
2125
2126    pub fn get_extendee(&self) -> &str {
2127        match self.extendee.as_ref() {
2128            Some(v) => &v,
2129            None => "",
2130        }
2131    }
2132    pub fn clear_extendee(&mut self) {
2133        self.extendee.clear();
2134    }
2135
2136    pub fn has_extendee(&self) -> bool {
2137        self.extendee.is_some()
2138    }
2139
2140    // Param is passed by value, moved
2141    pub fn set_extendee(&mut self, v: ::std::string::String) {
2142        self.extendee = ::protobuf::SingularField::some(v);
2143    }
2144
2145    // Mutable pointer to the field.
2146    // If field is not initialized, it is initialized with default value first.
2147    pub fn mut_extendee(&mut self) -> &mut ::std::string::String {
2148        if self.extendee.is_none() {
2149            self.extendee.set_default();
2150        }
2151        self.extendee.as_mut().unwrap()
2152    }
2153
2154    // Take field
2155    pub fn take_extendee(&mut self) -> ::std::string::String {
2156        self.extendee.take().unwrap_or_else(|| ::std::string::String::new())
2157    }
2158
2159    // optional string default_value = 7;
2160
2161
2162    pub fn get_default_value(&self) -> &str {
2163        match self.default_value.as_ref() {
2164            Some(v) => &v,
2165            None => "",
2166        }
2167    }
2168    pub fn clear_default_value(&mut self) {
2169        self.default_value.clear();
2170    }
2171
2172    pub fn has_default_value(&self) -> bool {
2173        self.default_value.is_some()
2174    }
2175
2176    // Param is passed by value, moved
2177    pub fn set_default_value(&mut self, v: ::std::string::String) {
2178        self.default_value = ::protobuf::SingularField::some(v);
2179    }
2180
2181    // Mutable pointer to the field.
2182    // If field is not initialized, it is initialized with default value first.
2183    pub fn mut_default_value(&mut self) -> &mut ::std::string::String {
2184        if self.default_value.is_none() {
2185            self.default_value.set_default();
2186        }
2187        self.default_value.as_mut().unwrap()
2188    }
2189
2190    // Take field
2191    pub fn take_default_value(&mut self) -> ::std::string::String {
2192        self.default_value.take().unwrap_or_else(|| ::std::string::String::new())
2193    }
2194
2195    // optional int32 oneof_index = 9;
2196
2197
2198    pub fn get_oneof_index(&self) -> i32 {
2199        self.oneof_index.unwrap_or(0)
2200    }
2201    pub fn clear_oneof_index(&mut self) {
2202        self.oneof_index = ::std::option::Option::None;
2203    }
2204
2205    pub fn has_oneof_index(&self) -> bool {
2206        self.oneof_index.is_some()
2207    }
2208
2209    // Param is passed by value, moved
2210    pub fn set_oneof_index(&mut self, v: i32) {
2211        self.oneof_index = ::std::option::Option::Some(v);
2212    }
2213
2214    // optional string json_name = 10;
2215
2216
2217    pub fn get_json_name(&self) -> &str {
2218        match self.json_name.as_ref() {
2219            Some(v) => &v,
2220            None => "",
2221        }
2222    }
2223    pub fn clear_json_name(&mut self) {
2224        self.json_name.clear();
2225    }
2226
2227    pub fn has_json_name(&self) -> bool {
2228        self.json_name.is_some()
2229    }
2230
2231    // Param is passed by value, moved
2232    pub fn set_json_name(&mut self, v: ::std::string::String) {
2233        self.json_name = ::protobuf::SingularField::some(v);
2234    }
2235
2236    // Mutable pointer to the field.
2237    // If field is not initialized, it is initialized with default value first.
2238    pub fn mut_json_name(&mut self) -> &mut ::std::string::String {
2239        if self.json_name.is_none() {
2240            self.json_name.set_default();
2241        }
2242        self.json_name.as_mut().unwrap()
2243    }
2244
2245    // Take field
2246    pub fn take_json_name(&mut self) -> ::std::string::String {
2247        self.json_name.take().unwrap_or_else(|| ::std::string::String::new())
2248    }
2249
2250    // optional .google.protobuf.FieldOptions options = 8;
2251
2252
2253    pub fn get_options(&self) -> &FieldOptions {
2254        self.options.as_ref().unwrap_or_else(|| FieldOptions::default_instance())
2255    }
2256    pub fn clear_options(&mut self) {
2257        self.options.clear();
2258    }
2259
2260    pub fn has_options(&self) -> bool {
2261        self.options.is_some()
2262    }
2263
2264    // Param is passed by value, moved
2265    pub fn set_options(&mut self, v: FieldOptions) {
2266        self.options = ::protobuf::SingularPtrField::some(v);
2267    }
2268
2269    // Mutable pointer to the field.
2270    // If field is not initialized, it is initialized with default value first.
2271    pub fn mut_options(&mut self) -> &mut FieldOptions {
2272        if self.options.is_none() {
2273            self.options.set_default();
2274        }
2275        self.options.as_mut().unwrap()
2276    }
2277
2278    // Take field
2279    pub fn take_options(&mut self) -> FieldOptions {
2280        self.options.take().unwrap_or_else(|| FieldOptions::new())
2281    }
2282}
2283
2284impl ::protobuf::Message for FieldDescriptorProto {
2285    fn is_initialized(&self) -> bool {
2286        for v in &self.options {
2287            if !v.is_initialized() {
2288                return false;
2289            }
2290        };
2291        true
2292    }
2293
2294    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream) -> ::protobuf::ProtobufResult<()> {
2295        while !is.eof()? {
2296            let (field_number, wire_type) = is.read_tag_unpack()?;
2297            match field_number {
2298                1 => {
2299                    ::protobuf::rt::read_singular_string_into(wire_type, is, &mut self.name)?;
2300                },
2301                3 => {
2302                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
2303                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
2304                    }
2305                    let tmp = is.read_int32()?;
2306                    self.number = ::std::option::Option::Some(tmp);
2307                },
2308                4 => {
2309                    ::protobuf::rt::read_proto2_enum_with_unknown_fields_into(wire_type, is, &mut self.label, 4, &mut self.unknown_fields)?
2310                },
2311                5 => {
2312                    ::protobuf::rt::read_proto2_enum_with_unknown_fields_into(wire_type, is, &mut self.field_type, 5, &mut self.unknown_fields)?
2313                },
2314                6 => {
2315                    ::protobuf::rt::read_singular_string_into(wire_type, is, &mut self.type_name)?;
2316                },
2317                2 => {
2318                    ::protobuf::rt::read_singular_string_into(wire_type, is, &mut self.extendee)?;
2319                },
2320                7 => {
2321                    ::protobuf::rt::read_singular_string_into(wire_type, is, &mut self.default_value)?;
2322                },
2323                9 => {
2324                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
2325                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
2326                    }
2327                    let tmp = is.read_int32()?;
2328                    self.oneof_index = ::std::option::Option::Some(tmp);
2329                },
2330                10 => {
2331                    ::protobuf::rt::read_singular_string_into(wire_type, is, &mut self.json_name)?;
2332                },
2333                8 => {
2334                    ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.options)?;
2335                },
2336                _ => {
2337                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
2338                },
2339            };
2340        }
2341        ::std::result::Result::Ok(())
2342    }
2343
2344    // Compute sizes of nested messages
2345    #[allow(unused_variables)]
2346    fn compute_size(&self) -> u32 {
2347        let mut my_size = 0;
2348        if let Some(ref v) = self.name.as_ref() {
2349            my_size += ::protobuf::rt::string_size(1, &v);
2350        }
2351        if let Some(v) = self.number {
2352            my_size += ::protobuf::rt::value_size(3, v, ::protobuf::wire_format::WireTypeVarint);
2353        }
2354        if let Some(v) = self.label {
2355            my_size += ::protobuf::rt::enum_size(4, v);
2356        }
2357        if let Some(v) = self.field_type {
2358            my_size += ::protobuf::rt::enum_size(5, v);
2359        }
2360        if let Some(ref v) = self.type_name.as_ref() {
2361            my_size += ::protobuf::rt::string_size(6, &v);
2362        }
2363        if let Some(ref v) = self.extendee.as_ref() {
2364            my_size += ::protobuf::rt::string_size(2, &v);
2365        }
2366        if let Some(ref v) = self.default_value.as_ref() {
2367            my_size += ::protobuf::rt::string_size(7, &v);
2368        }
2369        if let Some(v) = self.oneof_index {
2370            my_size += ::protobuf::rt::value_size(9, v, ::protobuf::wire_format::WireTypeVarint);
2371        }
2372        if let Some(ref v) = self.json_name.as_ref() {
2373            my_size += ::protobuf::rt::string_size(10, &v);
2374        }
2375        if let Some(ref v) = self.options.as_ref() {
2376            let len = v.compute_size();
2377            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
2378        }
2379        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
2380        self.cached_size.set(my_size);
2381        my_size
2382    }
2383
2384    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream) -> ::protobuf::ProtobufResult<()> {
2385        if let Some(ref v) = self.name.as_ref() {
2386            os.write_string(1, &v)?;
2387        }
2388        if let Some(v) = self.number {
2389            os.write_int32(3, v)?;
2390        }
2391        if let Some(v) = self.label {
2392            os.write_enum(4, v.value())?;
2393        }
2394        if let Some(v) = self.field_type {
2395            os.write_enum(5, v.value())?;
2396        }
2397        if let Some(ref v) = self.type_name.as_ref() {
2398            os.write_string(6, &v)?;
2399        }
2400        if let Some(ref v) = self.extendee.as_ref() {
2401            os.write_string(2, &v)?;
2402        }
2403        if let Some(ref v) = self.default_value.as_ref() {
2404            os.write_string(7, &v)?;
2405        }
2406        if let Some(v) = self.oneof_index {
2407            os.write_int32(9, v)?;
2408        }
2409        if let Some(ref v) = self.json_name.as_ref() {
2410            os.write_string(10, &v)?;
2411        }
2412        if let Some(ref v) = self.options.as_ref() {
2413            os.write_tag(8, ::protobuf::wire_format::WireTypeLengthDelimited)?;
2414            os.write_raw_varint32(v.get_cached_size())?;
2415            v.write_to_with_cached_sizes(os)?;
2416        }
2417        os.write_unknown_fields(self.get_unknown_fields())?;
2418        ::std::result::Result::Ok(())
2419    }
2420
2421    fn get_cached_size(&self) -> u32 {
2422        self.cached_size.get()
2423    }
2424
2425    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
2426        &self.unknown_fields
2427    }
2428
2429    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
2430        &mut self.unknown_fields
2431    }
2432
2433    fn as_any(&self) -> &dyn (::std::any::Any) {
2434        self as &dyn (::std::any::Any)
2435    }
2436    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
2437        self as &mut dyn (::std::any::Any)
2438    }
2439    fn into_any(self: Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
2440        self
2441    }
2442
2443    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
2444        Self::descriptor_static()
2445    }
2446
2447    fn new() -> FieldDescriptorProto {
2448        FieldDescriptorProto::new()
2449    }
2450
2451    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
2452        static mut descriptor: ::protobuf::lazy::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::lazy::Lazy {
2453            lock: ::protobuf::lazy::ONCE_INIT,
2454            ptr: 0 as *const ::protobuf::reflect::MessageDescriptor,
2455        };
2456        unsafe {
2457            descriptor.get(|| {
2458                let mut fields = ::std::vec::Vec::new();
2459                fields.push(::protobuf::reflect::accessor::make_singular_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
2460                    "name",
2461                    |m: &FieldDescriptorProto| { &m.name },
2462                    |m: &mut FieldDescriptorProto| { &mut m.name },
2463                ));
2464                fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeInt32>(
2465                    "number",
2466                    |m: &FieldDescriptorProto| { &m.number },
2467                    |m: &mut FieldDescriptorProto| { &mut m.number },
2468                ));
2469                fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeEnum<FieldDescriptorProto_Label>>(
2470                    "label",
2471                    |m: &FieldDescriptorProto| { &m.label },
2472                    |m: &mut FieldDescriptorProto| { &mut m.label },
2473                ));
2474                fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeEnum<FieldDescriptorProto_Type>>(
2475                    "type",
2476                    |m: &FieldDescriptorProto| { &m.field_type },
2477                    |m: &mut FieldDescriptorProto| { &mut m.field_type },
2478                ));
2479                fields.push(::protobuf::reflect::accessor::make_singular_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
2480                    "type_name",
2481                    |m: &FieldDescriptorProto| { &m.type_name },
2482                    |m: &mut FieldDescriptorProto| { &mut m.type_name },
2483                ));
2484                fields.push(::protobuf::reflect::accessor::make_singular_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
2485                    "extendee",
2486                    |m: &FieldDescriptorProto| { &m.extendee },
2487                    |m: &mut FieldDescriptorProto| { &mut m.extendee },
2488                ));
2489                fields.push(::protobuf::reflect::accessor::make_singular_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
2490                    "default_value",
2491                    |m: &FieldDescriptorProto| { &m.default_value },
2492                    |m: &mut FieldDescriptorProto| { &mut m.default_value },
2493                ));
2494                fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeInt32>(
2495                    "oneof_index",
2496                    |m: &FieldDescriptorProto| { &m.oneof_index },
2497                    |m: &mut FieldDescriptorProto| { &mut m.oneof_index },
2498                ));
2499                fields.push(::protobuf::reflect::accessor::make_singular_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
2500                    "json_name",
2501                    |m: &FieldDescriptorProto| { &m.json_name },
2502                    |m: &mut FieldDescriptorProto| { &mut m.json_name },
2503                ));
2504                fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<FieldOptions>>(
2505                    "options",
2506                    |m: &FieldDescriptorProto| { &m.options },
2507                    |m: &mut FieldDescriptorProto| { &mut m.options },
2508                ));
2509                ::protobuf::reflect::MessageDescriptor::new::<FieldDescriptorProto>(
2510                    "FieldDescriptorProto",
2511                    fields,
2512                    file_descriptor_proto()
2513                )
2514            })
2515        }
2516    }
2517
2518    fn default_instance() -> &'static FieldDescriptorProto {
2519        static mut instance: ::protobuf::lazy::Lazy<FieldDescriptorProto> = ::protobuf::lazy::Lazy {
2520            lock: ::protobuf::lazy::ONCE_INIT,
2521            ptr: 0 as *const FieldDescriptorProto,
2522        };
2523        unsafe {
2524            instance.get(FieldDescriptorProto::new)
2525        }
2526    }
2527}
2528
2529impl ::protobuf::Clear for FieldDescriptorProto {
2530    fn clear(&mut self) {
2531        self.name.clear();
2532        self.number = ::std::option::Option::None;
2533        self.label = ::std::option::Option::None;
2534        self.field_type = ::std::option::Option::None;
2535        self.type_name.clear();
2536        self.extendee.clear();
2537        self.default_value.clear();
2538        self.oneof_index = ::std::option::Option::None;
2539        self.json_name.clear();
2540        self.options.clear();
2541        self.unknown_fields.clear();
2542    }
2543}
2544
2545impl ::std::fmt::Debug for FieldDescriptorProto {
2546    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2547        ::protobuf::text_format::fmt(self, f)
2548    }
2549}
2550
2551impl ::protobuf::reflect::ProtobufValue for FieldDescriptorProto {
2552    fn as_ref(&self) -> ::protobuf::reflect::ProtobufValueRef {
2553        ::protobuf::reflect::ProtobufValueRef::Message(self)
2554    }
2555}
2556
2557#[derive(Clone,PartialEq,Eq,Debug,Hash)]
2558#[cfg_attr(feature = "with-serde", derive(Serialize, Deserialize))]
2559pub enum FieldDescriptorProto_Type {
2560    TYPE_DOUBLE = 1,
2561    TYPE_FLOAT = 2,
2562    TYPE_INT64 = 3,
2563    TYPE_UINT64 = 4,
2564    TYPE_INT32 = 5,
2565    TYPE_FIXED64 = 6,
2566    TYPE_FIXED32 = 7,
2567    TYPE_BOOL = 8,
2568    TYPE_STRING = 9,
2569    TYPE_GROUP = 10,
2570    TYPE_MESSAGE = 11,
2571    TYPE_BYTES = 12,
2572    TYPE_UINT32 = 13,
2573    TYPE_ENUM = 14,
2574    TYPE_SFIXED32 = 15,
2575    TYPE_SFIXED64 = 16,
2576    TYPE_SINT32 = 17,
2577    TYPE_SINT64 = 18,
2578}
2579
2580impl ::protobuf::ProtobufEnum for FieldDescriptorProto_Type {
2581    fn value(&self) -> i32 {
2582        *self as i32
2583    }
2584
2585    fn from_i32(value: i32) -> ::std::option::Option<FieldDescriptorProto_Type> {
2586        match value {
2587            1 => ::std::option::Option::Some(FieldDescriptorProto_Type::TYPE_DOUBLE),
2588            2 => ::std::option::Option::Some(FieldDescriptorProto_Type::TYPE_FLOAT),
2589            3 => ::std::option::Option::Some(FieldDescriptorProto_Type::TYPE_INT64),
2590            4 => ::std::option::Option::Some(FieldDescriptorProto_Type::TYPE_UINT64),
2591            5 => ::std::option::Option::Some(FieldDescriptorProto_Type::TYPE_INT32),
2592            6 => ::std::option::Option::Some(FieldDescriptorProto_Type::TYPE_FIXED64),
2593            7 => ::std::option::Option::Some(FieldDescriptorProto_Type::TYPE_FIXED32),
2594            8 => ::std::option::Option::Some(FieldDescriptorProto_Type::TYPE_BOOL),
2595            9 => ::std::option::Option::Some(FieldDescriptorProto_Type::TYPE_STRING),
2596            10 => ::std::option::Option::Some(FieldDescriptorProto_Type::TYPE_GROUP),
2597            11 => ::std::option::Option::Some(FieldDescriptorProto_Type::TYPE_MESSAGE),
2598            12 => ::std::option::Option::Some(FieldDescriptorProto_Type::TYPE_BYTES),
2599            13 => ::std::option::Option::Some(FieldDescriptorProto_Type::TYPE_UINT32),
2600            14 => ::std::option::Option::Some(FieldDescriptorProto_Type::TYPE_ENUM),
2601            15 => ::std::option::Option::Some(FieldDescriptorProto_Type::TYPE_SFIXED32),
2602            16 => ::std::option::Option::Some(FieldDescriptorProto_Type::TYPE_SFIXED64),
2603            17 => ::std::option::Option::Some(FieldDescriptorProto_Type::TYPE_SINT32),
2604            18 => ::std::option::Option::Some(FieldDescriptorProto_Type::TYPE_SINT64),
2605            _ => ::std::option::Option::None
2606        }
2607    }
2608
2609    fn values() -> &'static [Self] {
2610        static values: &'static [FieldDescriptorProto_Type] = &[
2611            FieldDescriptorProto_Type::TYPE_DOUBLE,
2612            FieldDescriptorProto_Type::TYPE_FLOAT,
2613            FieldDescriptorProto_Type::TYPE_INT64,
2614            FieldDescriptorProto_Type::TYPE_UINT64,
2615            FieldDescriptorProto_Type::TYPE_INT32,
2616            FieldDescriptorProto_Type::TYPE_FIXED64,
2617            FieldDescriptorProto_Type::TYPE_FIXED32,
2618            FieldDescriptorProto_Type::TYPE_BOOL,
2619            FieldDescriptorProto_Type::TYPE_STRING,
2620            FieldDescriptorProto_Type::TYPE_GROUP,
2621            FieldDescriptorProto_Type::TYPE_MESSAGE,
2622            FieldDescriptorProto_Type::TYPE_BYTES,
2623            FieldDescriptorProto_Type::TYPE_UINT32,
2624            FieldDescriptorProto_Type::TYPE_ENUM,
2625            FieldDescriptorProto_Type::TYPE_SFIXED32,
2626            FieldDescriptorProto_Type::TYPE_SFIXED64,
2627            FieldDescriptorProto_Type::TYPE_SINT32,
2628            FieldDescriptorProto_Type::TYPE_SINT64,
2629        ];
2630        values
2631    }
2632
2633    fn enum_descriptor_static() -> &'static ::protobuf::reflect::EnumDescriptor {
2634        static mut descriptor: ::protobuf::lazy::Lazy<::protobuf::reflect::EnumDescriptor> = ::protobuf::lazy::Lazy {
2635            lock: ::protobuf::lazy::ONCE_INIT,
2636            ptr: 0 as *const ::protobuf::reflect::EnumDescriptor,
2637        };
2638        unsafe {
2639            descriptor.get(|| {
2640                ::protobuf::reflect::EnumDescriptor::new("FieldDescriptorProto_Type", file_descriptor_proto())
2641            })
2642        }
2643    }
2644}
2645
2646impl ::std::marker::Copy for FieldDescriptorProto_Type {
2647}
2648
2649// Note, `Default` is implemented although default value is not 0
2650impl ::std::default::Default for FieldDescriptorProto_Type {
2651    fn default() -> Self {
2652        FieldDescriptorProto_Type::TYPE_DOUBLE
2653    }
2654}
2655
2656impl ::protobuf::reflect::ProtobufValue for FieldDescriptorProto_Type {
2657    fn as_ref(&self) -> ::protobuf::reflect::ProtobufValueRef {
2658        ::protobuf::reflect::ProtobufValueRef::Enum(self.descriptor())
2659    }
2660}
2661
2662#[derive(Clone,PartialEq,Eq,Debug,Hash)]
2663#[cfg_attr(feature = "with-serde", derive(Serialize, Deserialize))]
2664pub enum FieldDescriptorProto_Label {
2665    LABEL_OPTIONAL = 1,
2666    LABEL_REQUIRED = 2,
2667    LABEL_REPEATED = 3,
2668}
2669
2670impl ::protobuf::ProtobufEnum for FieldDescriptorProto_Label {
2671    fn value(&self) -> i32 {
2672        *self as i32
2673    }
2674
2675    fn from_i32(value: i32) -> ::std::option::Option<FieldDescriptorProto_Label> {
2676        match value {
2677            1 => ::std::option::Option::Some(FieldDescriptorProto_Label::LABEL_OPTIONAL),
2678            2 => ::std::option::Option::Some(FieldDescriptorProto_Label::LABEL_REQUIRED),
2679            3 => ::std::option::Option::Some(FieldDescriptorProto_Label::LABEL_REPEATED),
2680            _ => ::std::option::Option::None
2681        }
2682    }
2683
2684    fn values() -> &'static [Self] {
2685        static values: &'static [FieldDescriptorProto_Label] = &[
2686            FieldDescriptorProto_Label::LABEL_OPTIONAL,
2687            FieldDescriptorProto_Label::LABEL_REQUIRED,
2688            FieldDescriptorProto_Label::LABEL_REPEATED,
2689        ];
2690        values
2691    }
2692
2693    fn enum_descriptor_static() -> &'static ::protobuf::reflect::EnumDescriptor {
2694        static mut descriptor: ::protobuf::lazy::Lazy<::protobuf::reflect::EnumDescriptor> = ::protobuf::lazy::Lazy {
2695            lock: ::protobuf::lazy::ONCE_INIT,
2696            ptr: 0 as *const ::protobuf::reflect::EnumDescriptor,
2697        };
2698        unsafe {
2699            descriptor.get(|| {
2700                ::protobuf::reflect::EnumDescriptor::new("FieldDescriptorProto_Label", file_descriptor_proto())
2701            })
2702        }
2703    }
2704}
2705
2706impl ::std::marker::Copy for FieldDescriptorProto_Label {
2707}
2708
2709// Note, `Default` is implemented although default value is not 0
2710impl ::std::default::Default for FieldDescriptorProto_Label {
2711    fn default() -> Self {
2712        FieldDescriptorProto_Label::LABEL_OPTIONAL
2713    }
2714}
2715
2716impl ::protobuf::reflect::ProtobufValue for FieldDescriptorProto_Label {
2717    fn as_ref(&self) -> ::protobuf::reflect::ProtobufValueRef {
2718        ::protobuf::reflect::ProtobufValueRef::Enum(self.descriptor())
2719    }
2720}
2721
2722#[derive(PartialEq,Clone,Default)]
2723#[cfg_attr(feature = "with-serde", derive(Serialize, Deserialize))]
2724pub struct OneofDescriptorProto {
2725    // message fields
2726    name: ::protobuf::SingularField<::std::string::String>,
2727    options: ::protobuf::SingularPtrField<OneofOptions>,
2728    // special fields
2729    #[cfg_attr(feature = "with-serde", serde(skip))]
2730    pub unknown_fields: ::protobuf::UnknownFields,
2731    #[cfg_attr(feature = "with-serde", serde(skip))]
2732    pub cached_size: ::protobuf::CachedSize,
2733}
2734
2735impl<'a> ::std::default::Default for &'a OneofDescriptorProto {
2736    fn default() -> &'a OneofDescriptorProto {
2737        <OneofDescriptorProto as ::protobuf::Message>::default_instance()
2738    }
2739}
2740
2741impl OneofDescriptorProto {
2742    pub fn new() -> OneofDescriptorProto {
2743        ::std::default::Default::default()
2744    }
2745
2746    // optional string name = 1;
2747
2748
2749    pub fn get_name(&self) -> &str {
2750        match self.name.as_ref() {
2751            Some(v) => &v,
2752            None => "",
2753        }
2754    }
2755    pub fn clear_name(&mut self) {
2756        self.name.clear();
2757    }
2758
2759    pub fn has_name(&self) -> bool {
2760        self.name.is_some()
2761    }
2762
2763    // Param is passed by value, moved
2764    pub fn set_name(&mut self, v: ::std::string::String) {
2765        self.name = ::protobuf::SingularField::some(v);
2766    }
2767
2768    // Mutable pointer to the field.
2769    // If field is not initialized, it is initialized with default value first.
2770    pub fn mut_name(&mut self) -> &mut ::std::string::String {
2771        if self.name.is_none() {
2772            self.name.set_default();
2773        }
2774        self.name.as_mut().unwrap()
2775    }
2776
2777    // Take field
2778    pub fn take_name(&mut self) -> ::std::string::String {
2779        self.name.take().unwrap_or_else(|| ::std::string::String::new())
2780    }
2781
2782    // optional .google.protobuf.OneofOptions options = 2;
2783
2784
2785    pub fn get_options(&self) -> &OneofOptions {
2786        self.options.as_ref().unwrap_or_else(|| OneofOptions::default_instance())
2787    }
2788    pub fn clear_options(&mut self) {
2789        self.options.clear();
2790    }
2791
2792    pub fn has_options(&self) -> bool {
2793        self.options.is_some()
2794    }
2795
2796    // Param is passed by value, moved
2797    pub fn set_options(&mut self, v: OneofOptions) {
2798        self.options = ::protobuf::SingularPtrField::some(v);
2799    }
2800
2801    // Mutable pointer to the field.
2802    // If field is not initialized, it is initialized with default value first.
2803    pub fn mut_options(&mut self) -> &mut OneofOptions {
2804        if self.options.is_none() {
2805            self.options.set_default();
2806        }
2807        self.options.as_mut().unwrap()
2808    }
2809
2810    // Take field
2811    pub fn take_options(&mut self) -> OneofOptions {
2812        self.options.take().unwrap_or_else(|| OneofOptions::new())
2813    }
2814}
2815
2816impl ::protobuf::Message for OneofDescriptorProto {
2817    fn is_initialized(&self) -> bool {
2818        for v in &self.options {
2819            if !v.is_initialized() {
2820                return false;
2821            }
2822        };
2823        true
2824    }
2825
2826    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream) -> ::protobuf::ProtobufResult<()> {
2827        while !is.eof()? {
2828            let (field_number, wire_type) = is.read_tag_unpack()?;
2829            match field_number {
2830                1 => {
2831                    ::protobuf::rt::read_singular_string_into(wire_type, is, &mut self.name)?;
2832                },
2833                2 => {
2834                    ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.options)?;
2835                },
2836                _ => {
2837                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
2838                },
2839            };
2840        }
2841        ::std::result::Result::Ok(())
2842    }
2843
2844    // Compute sizes of nested messages
2845    #[allow(unused_variables)]
2846    fn compute_size(&self) -> u32 {
2847        let mut my_size = 0;
2848        if let Some(ref v) = self.name.as_ref() {
2849            my_size += ::protobuf::rt::string_size(1, &v);
2850        }
2851        if let Some(ref v) = self.options.as_ref() {
2852            let len = v.compute_size();
2853            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
2854        }
2855        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
2856        self.cached_size.set(my_size);
2857        my_size
2858    }
2859
2860    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream) -> ::protobuf::ProtobufResult<()> {
2861        if let Some(ref v) = self.name.as_ref() {
2862            os.write_string(1, &v)?;
2863        }
2864        if let Some(ref v) = self.options.as_ref() {
2865            os.write_tag(2, ::protobuf::wire_format::WireTypeLengthDelimited)?;
2866            os.write_raw_varint32(v.get_cached_size())?;
2867            v.write_to_with_cached_sizes(os)?;
2868        }
2869        os.write_unknown_fields(self.get_unknown_fields())?;
2870        ::std::result::Result::Ok(())
2871    }
2872
2873    fn get_cached_size(&self) -> u32 {
2874        self.cached_size.get()
2875    }
2876
2877    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
2878        &self.unknown_fields
2879    }
2880
2881    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
2882        &mut self.unknown_fields
2883    }
2884
2885    fn as_any(&self) -> &dyn (::std::any::Any) {
2886        self as &dyn (::std::any::Any)
2887    }
2888    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
2889        self as &mut dyn (::std::any::Any)
2890    }
2891    fn into_any(self: Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
2892        self
2893    }
2894
2895    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
2896        Self::descriptor_static()
2897    }
2898
2899    fn new() -> OneofDescriptorProto {
2900        OneofDescriptorProto::new()
2901    }
2902
2903    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
2904        static mut descriptor: ::protobuf::lazy::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::lazy::Lazy {
2905            lock: ::protobuf::lazy::ONCE_INIT,
2906            ptr: 0 as *const ::protobuf::reflect::MessageDescriptor,
2907        };
2908        unsafe {
2909            descriptor.get(|| {
2910                let mut fields = ::std::vec::Vec::new();
2911                fields.push(::protobuf::reflect::accessor::make_singular_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
2912                    "name",
2913                    |m: &OneofDescriptorProto| { &m.name },
2914                    |m: &mut OneofDescriptorProto| { &mut m.name },
2915                ));
2916                fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<OneofOptions>>(
2917                    "options",
2918                    |m: &OneofDescriptorProto| { &m.options },
2919                    |m: &mut OneofDescriptorProto| { &mut m.options },
2920                ));
2921                ::protobuf::reflect::MessageDescriptor::new::<OneofDescriptorProto>(
2922                    "OneofDescriptorProto",
2923                    fields,
2924                    file_descriptor_proto()
2925                )
2926            })
2927        }
2928    }
2929
2930    fn default_instance() -> &'static OneofDescriptorProto {
2931        static mut instance: ::protobuf::lazy::Lazy<OneofDescriptorProto> = ::protobuf::lazy::Lazy {
2932            lock: ::protobuf::lazy::ONCE_INIT,
2933            ptr: 0 as *const OneofDescriptorProto,
2934        };
2935        unsafe {
2936            instance.get(OneofDescriptorProto::new)
2937        }
2938    }
2939}
2940
2941impl ::protobuf::Clear for OneofDescriptorProto {
2942    fn clear(&mut self) {
2943        self.name.clear();
2944        self.options.clear();
2945        self.unknown_fields.clear();
2946    }
2947}
2948
2949impl ::std::fmt::Debug for OneofDescriptorProto {
2950    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2951        ::protobuf::text_format::fmt(self, f)
2952    }
2953}
2954
2955impl ::protobuf::reflect::ProtobufValue for OneofDescriptorProto {
2956    fn as_ref(&self) -> ::protobuf::reflect::ProtobufValueRef {
2957        ::protobuf::reflect::ProtobufValueRef::Message(self)
2958    }
2959}
2960
2961#[derive(PartialEq,Clone,Default)]
2962#[cfg_attr(feature = "with-serde", derive(Serialize, Deserialize))]
2963pub struct EnumDescriptorProto {
2964    // message fields
2965    name: ::protobuf::SingularField<::std::string::String>,
2966    value: ::protobuf::RepeatedField<EnumValueDescriptorProto>,
2967    options: ::protobuf::SingularPtrField<EnumOptions>,
2968    // special fields
2969    #[cfg_attr(feature = "with-serde", serde(skip))]
2970    pub unknown_fields: ::protobuf::UnknownFields,
2971    #[cfg_attr(feature = "with-serde", serde(skip))]
2972    pub cached_size: ::protobuf::CachedSize,
2973}
2974
2975impl<'a> ::std::default::Default for &'a EnumDescriptorProto {
2976    fn default() -> &'a EnumDescriptorProto {
2977        <EnumDescriptorProto as ::protobuf::Message>::default_instance()
2978    }
2979}
2980
2981impl EnumDescriptorProto {
2982    pub fn new() -> EnumDescriptorProto {
2983        ::std::default::Default::default()
2984    }
2985
2986    // optional string name = 1;
2987
2988
2989    pub fn get_name(&self) -> &str {
2990        match self.name.as_ref() {
2991            Some(v) => &v,
2992            None => "",
2993        }
2994    }
2995    pub fn clear_name(&mut self) {
2996        self.name.clear();
2997    }
2998
2999    pub fn has_name(&self) -> bool {
3000        self.name.is_some()
3001    }
3002
3003    // Param is passed by value, moved
3004    pub fn set_name(&mut self, v: ::std::string::String) {
3005        self.name = ::protobuf::SingularField::some(v);
3006    }
3007
3008    // Mutable pointer to the field.
3009    // If field is not initialized, it is initialized with default value first.
3010    pub fn mut_name(&mut self) -> &mut ::std::string::String {
3011        if self.name.is_none() {
3012            self.name.set_default();
3013        }
3014        self.name.as_mut().unwrap()
3015    }
3016
3017    // Take field
3018    pub fn take_name(&mut self) -> ::std::string::String {
3019        self.name.take().unwrap_or_else(|| ::std::string::String::new())
3020    }
3021
3022    // repeated .google.protobuf.EnumValueDescriptorProto value = 2;
3023
3024
3025    pub fn get_value(&self) -> &[EnumValueDescriptorProto] {
3026        &self.value
3027    }
3028    pub fn clear_value(&mut self) {
3029        self.value.clear();
3030    }
3031
3032    // Param is passed by value, moved
3033    pub fn set_value(&mut self, v: ::protobuf::RepeatedField<EnumValueDescriptorProto>) {
3034        self.value = v;
3035    }
3036
3037    // Mutable pointer to the field.
3038    pub fn mut_value(&mut self) -> &mut ::protobuf::RepeatedField<EnumValueDescriptorProto> {
3039        &mut self.value
3040    }
3041
3042    // Take field
3043    pub fn take_value(&mut self) -> ::protobuf::RepeatedField<EnumValueDescriptorProto> {
3044        ::std::mem::replace(&mut self.value, ::protobuf::RepeatedField::new())
3045    }
3046
3047    // optional .google.protobuf.EnumOptions options = 3;
3048
3049
3050    pub fn get_options(&self) -> &EnumOptions {
3051        self.options.as_ref().unwrap_or_else(|| EnumOptions::default_instance())
3052    }
3053    pub fn clear_options(&mut self) {
3054        self.options.clear();
3055    }
3056
3057    pub fn has_options(&self) -> bool {
3058        self.options.is_some()
3059    }
3060
3061    // Param is passed by value, moved
3062    pub fn set_options(&mut self, v: EnumOptions) {
3063        self.options = ::protobuf::SingularPtrField::some(v);
3064    }
3065
3066    // Mutable pointer to the field.
3067    // If field is not initialized, it is initialized with default value first.
3068    pub fn mut_options(&mut self) -> &mut EnumOptions {
3069        if self.options.is_none() {
3070            self.options.set_default();
3071        }
3072        self.options.as_mut().unwrap()
3073    }
3074
3075    // Take field
3076    pub fn take_options(&mut self) -> EnumOptions {
3077        self.options.take().unwrap_or_else(|| EnumOptions::new())
3078    }
3079}
3080
3081impl ::protobuf::Message for EnumDescriptorProto {
3082    fn is_initialized(&self) -> bool {
3083        for v in &self.value {
3084            if !v.is_initialized() {
3085                return false;
3086            }
3087        };
3088        for v in &self.options {
3089            if !v.is_initialized() {
3090                return false;
3091            }
3092        };
3093        true
3094    }
3095
3096    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream) -> ::protobuf::ProtobufResult<()> {
3097        while !is.eof()? {
3098            let (field_number, wire_type) = is.read_tag_unpack()?;
3099            match field_number {
3100                1 => {
3101                    ::protobuf::rt::read_singular_string_into(wire_type, is, &mut self.name)?;
3102                },
3103                2 => {
3104                    ::protobuf::rt::read_repeated_message_into(wire_type, is, &mut self.value)?;
3105                },
3106                3 => {
3107                    ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.options)?;
3108                },
3109                _ => {
3110                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
3111                },
3112            };
3113        }
3114        ::std::result::Result::Ok(())
3115    }
3116
3117    // Compute sizes of nested messages
3118    #[allow(unused_variables)]
3119    fn compute_size(&self) -> u32 {
3120        let mut my_size = 0;
3121        if let Some(ref v) = self.name.as_ref() {
3122            my_size += ::protobuf::rt::string_size(1, &v);
3123        }
3124        for value in &self.value {
3125            let len = value.compute_size();
3126            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
3127        };
3128        if let Some(ref v) = self.options.as_ref() {
3129            let len = v.compute_size();
3130            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
3131        }
3132        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
3133        self.cached_size.set(my_size);
3134        my_size
3135    }
3136
3137    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream) -> ::protobuf::ProtobufResult<()> {
3138        if let Some(ref v) = self.name.as_ref() {
3139            os.write_string(1, &v)?;
3140        }
3141        for v in &self.value {
3142            os.write_tag(2, ::protobuf::wire_format::WireTypeLengthDelimited)?;
3143            os.write_raw_varint32(v.get_cached_size())?;
3144            v.write_to_with_cached_sizes(os)?;
3145        };
3146        if let Some(ref v) = self.options.as_ref() {
3147            os.write_tag(3, ::protobuf::wire_format::WireTypeLengthDelimited)?;
3148            os.write_raw_varint32(v.get_cached_size())?;
3149            v.write_to_with_cached_sizes(os)?;
3150        }
3151        os.write_unknown_fields(self.get_unknown_fields())?;
3152        ::std::result::Result::Ok(())
3153    }
3154
3155    fn get_cached_size(&self) -> u32 {
3156        self.cached_size.get()
3157    }
3158
3159    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
3160        &self.unknown_fields
3161    }
3162
3163    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
3164        &mut self.unknown_fields
3165    }
3166
3167    fn as_any(&self) -> &dyn (::std::any::Any) {
3168        self as &dyn (::std::any::Any)
3169    }
3170    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
3171        self as &mut dyn (::std::any::Any)
3172    }
3173    fn into_any(self: Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
3174        self
3175    }
3176
3177    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
3178        Self::descriptor_static()
3179    }
3180
3181    fn new() -> EnumDescriptorProto {
3182        EnumDescriptorProto::new()
3183    }
3184
3185    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
3186        static mut descriptor: ::protobuf::lazy::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::lazy::Lazy {
3187            lock: ::protobuf::lazy::ONCE_INIT,
3188            ptr: 0 as *const ::protobuf::reflect::MessageDescriptor,
3189        };
3190        unsafe {
3191            descriptor.get(|| {
3192                let mut fields = ::std::vec::Vec::new();
3193                fields.push(::protobuf::reflect::accessor::make_singular_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
3194                    "name",
3195                    |m: &EnumDescriptorProto| { &m.name },
3196                    |m: &mut EnumDescriptorProto| { &mut m.name },
3197                ));
3198                fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<EnumValueDescriptorProto>>(
3199                    "value",
3200                    |m: &EnumDescriptorProto| { &m.value },
3201                    |m: &mut EnumDescriptorProto| { &mut m.value },
3202                ));
3203                fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<EnumOptions>>(
3204                    "options",
3205                    |m: &EnumDescriptorProto| { &m.options },
3206                    |m: &mut EnumDescriptorProto| { &mut m.options },
3207                ));
3208                ::protobuf::reflect::MessageDescriptor::new::<EnumDescriptorProto>(
3209                    "EnumDescriptorProto",
3210                    fields,
3211                    file_descriptor_proto()
3212                )
3213            })
3214        }
3215    }
3216
3217    fn default_instance() -> &'static EnumDescriptorProto {
3218        static mut instance: ::protobuf::lazy::Lazy<EnumDescriptorProto> = ::protobuf::lazy::Lazy {
3219            lock: ::protobuf::lazy::ONCE_INIT,
3220            ptr: 0 as *const EnumDescriptorProto,
3221        };
3222        unsafe {
3223            instance.get(EnumDescriptorProto::new)
3224        }
3225    }
3226}
3227
3228impl ::protobuf::Clear for EnumDescriptorProto {
3229    fn clear(&mut self) {
3230        self.name.clear();
3231        self.value.clear();
3232        self.options.clear();
3233        self.unknown_fields.clear();
3234    }
3235}
3236
3237impl ::std::fmt::Debug for EnumDescriptorProto {
3238    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
3239        ::protobuf::text_format::fmt(self, f)
3240    }
3241}
3242
3243impl ::protobuf::reflect::ProtobufValue for EnumDescriptorProto {
3244    fn as_ref(&self) -> ::protobuf::reflect::ProtobufValueRef {
3245        ::protobuf::reflect::ProtobufValueRef::Message(self)
3246    }
3247}
3248
3249#[derive(PartialEq,Clone,Default)]
3250#[cfg_attr(feature = "with-serde", derive(Serialize, Deserialize))]
3251pub struct EnumValueDescriptorProto {
3252    // message fields
3253    name: ::protobuf::SingularField<::std::string::String>,
3254    number: ::std::option::Option<i32>,
3255    options: ::protobuf::SingularPtrField<EnumValueOptions>,
3256    // special fields
3257    #[cfg_attr(feature = "with-serde", serde(skip))]
3258    pub unknown_fields: ::protobuf::UnknownFields,
3259    #[cfg_attr(feature = "with-serde", serde(skip))]
3260    pub cached_size: ::protobuf::CachedSize,
3261}
3262
3263impl<'a> ::std::default::Default for &'a EnumValueDescriptorProto {
3264    fn default() -> &'a EnumValueDescriptorProto {
3265        <EnumValueDescriptorProto as ::protobuf::Message>::default_instance()
3266    }
3267}
3268
3269impl EnumValueDescriptorProto {
3270    pub fn new() -> EnumValueDescriptorProto {
3271        ::std::default::Default::default()
3272    }
3273
3274    // optional string name = 1;
3275
3276
3277    pub fn get_name(&self) -> &str {
3278        match self.name.as_ref() {
3279            Some(v) => &v,
3280            None => "",
3281        }
3282    }
3283    pub fn clear_name(&mut self) {
3284        self.name.clear();
3285    }
3286
3287    pub fn has_name(&self) -> bool {
3288        self.name.is_some()
3289    }
3290
3291    // Param is passed by value, moved
3292    pub fn set_name(&mut self, v: ::std::string::String) {
3293        self.name = ::protobuf::SingularField::some(v);
3294    }
3295
3296    // Mutable pointer to the field.
3297    // If field is not initialized, it is initialized with default value first.
3298    pub fn mut_name(&mut self) -> &mut ::std::string::String {
3299        if self.name.is_none() {
3300            self.name.set_default();
3301        }
3302        self.name.as_mut().unwrap()
3303    }
3304
3305    // Take field
3306    pub fn take_name(&mut self) -> ::std::string::String {
3307        self.name.take().unwrap_or_else(|| ::std::string::String::new())
3308    }
3309
3310    // optional int32 number = 2;
3311
3312
3313    pub fn get_number(&self) -> i32 {
3314        self.number.unwrap_or(0)
3315    }
3316    pub fn clear_number(&mut self) {
3317        self.number = ::std::option::Option::None;
3318    }
3319
3320    pub fn has_number(&self) -> bool {
3321        self.number.is_some()
3322    }
3323
3324    // Param is passed by value, moved
3325    pub fn set_number(&mut self, v: i32) {
3326        self.number = ::std::option::Option::Some(v);
3327    }
3328
3329    // optional .google.protobuf.EnumValueOptions options = 3;
3330
3331
3332    pub fn get_options(&self) -> &EnumValueOptions {
3333        self.options.as_ref().unwrap_or_else(|| EnumValueOptions::default_instance())
3334    }
3335    pub fn clear_options(&mut self) {
3336        self.options.clear();
3337    }
3338
3339    pub fn has_options(&self) -> bool {
3340        self.options.is_some()
3341    }
3342
3343    // Param is passed by value, moved
3344    pub fn set_options(&mut self, v: EnumValueOptions) {
3345        self.options = ::protobuf::SingularPtrField::some(v);
3346    }
3347
3348    // Mutable pointer to the field.
3349    // If field is not initialized, it is initialized with default value first.
3350    pub fn mut_options(&mut self) -> &mut EnumValueOptions {
3351        if self.options.is_none() {
3352            self.options.set_default();
3353        }
3354        self.options.as_mut().unwrap()
3355    }
3356
3357    // Take field
3358    pub fn take_options(&mut self) -> EnumValueOptions {
3359        self.options.take().unwrap_or_else(|| EnumValueOptions::new())
3360    }
3361}
3362
3363impl ::protobuf::Message for EnumValueDescriptorProto {
3364    fn is_initialized(&self) -> bool {
3365        for v in &self.options {
3366            if !v.is_initialized() {
3367                return false;
3368            }
3369        };
3370        true
3371    }
3372
3373    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream) -> ::protobuf::ProtobufResult<()> {
3374        while !is.eof()? {
3375            let (field_number, wire_type) = is.read_tag_unpack()?;
3376            match field_number {
3377                1 => {
3378                    ::protobuf::rt::read_singular_string_into(wire_type, is, &mut self.name)?;
3379                },
3380                2 => {
3381                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
3382                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
3383                    }
3384                    let tmp = is.read_int32()?;
3385                    self.number = ::std::option::Option::Some(tmp);
3386                },
3387                3 => {
3388                    ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.options)?;
3389                },
3390                _ => {
3391                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
3392                },
3393            };
3394        }
3395        ::std::result::Result::Ok(())
3396    }
3397
3398    // Compute sizes of nested messages
3399    #[allow(unused_variables)]
3400    fn compute_size(&self) -> u32 {
3401        let mut my_size = 0;
3402        if let Some(ref v) = self.name.as_ref() {
3403            my_size += ::protobuf::rt::string_size(1, &v);
3404        }
3405        if let Some(v) = self.number {
3406            my_size += ::protobuf::rt::value_size(2, v, ::protobuf::wire_format::WireTypeVarint);
3407        }
3408        if let Some(ref v) = self.options.as_ref() {
3409            let len = v.compute_size();
3410            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
3411        }
3412        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
3413        self.cached_size.set(my_size);
3414        my_size
3415    }
3416
3417    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream) -> ::protobuf::ProtobufResult<()> {
3418        if let Some(ref v) = self.name.as_ref() {
3419            os.write_string(1, &v)?;
3420        }
3421        if let Some(v) = self.number {
3422            os.write_int32(2, v)?;
3423        }
3424        if let Some(ref v) = self.options.as_ref() {
3425            os.write_tag(3, ::protobuf::wire_format::WireTypeLengthDelimited)?;
3426            os.write_raw_varint32(v.get_cached_size())?;
3427            v.write_to_with_cached_sizes(os)?;
3428        }
3429        os.write_unknown_fields(self.get_unknown_fields())?;
3430        ::std::result::Result::Ok(())
3431    }
3432
3433    fn get_cached_size(&self) -> u32 {
3434        self.cached_size.get()
3435    }
3436
3437    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
3438        &self.unknown_fields
3439    }
3440
3441    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
3442        &mut self.unknown_fields
3443    }
3444
3445    fn as_any(&self) -> &dyn (::std::any::Any) {
3446        self as &dyn (::std::any::Any)
3447    }
3448    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
3449        self as &mut dyn (::std::any::Any)
3450    }
3451    fn into_any(self: Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
3452        self
3453    }
3454
3455    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
3456        Self::descriptor_static()
3457    }
3458
3459    fn new() -> EnumValueDescriptorProto {
3460        EnumValueDescriptorProto::new()
3461    }
3462
3463    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
3464        static mut descriptor: ::protobuf::lazy::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::lazy::Lazy {
3465            lock: ::protobuf::lazy::ONCE_INIT,
3466            ptr: 0 as *const ::protobuf::reflect::MessageDescriptor,
3467        };
3468        unsafe {
3469            descriptor.get(|| {
3470                let mut fields = ::std::vec::Vec::new();
3471                fields.push(::protobuf::reflect::accessor::make_singular_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
3472                    "name",
3473                    |m: &EnumValueDescriptorProto| { &m.name },
3474                    |m: &mut EnumValueDescriptorProto| { &mut m.name },
3475                ));
3476                fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeInt32>(
3477                    "number",
3478                    |m: &EnumValueDescriptorProto| { &m.number },
3479                    |m: &mut EnumValueDescriptorProto| { &mut m.number },
3480                ));
3481                fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<EnumValueOptions>>(
3482                    "options",
3483                    |m: &EnumValueDescriptorProto| { &m.options },
3484                    |m: &mut EnumValueDescriptorProto| { &mut m.options },
3485                ));
3486                ::protobuf::reflect::MessageDescriptor::new::<EnumValueDescriptorProto>(
3487                    "EnumValueDescriptorProto",
3488                    fields,
3489                    file_descriptor_proto()
3490                )
3491            })
3492        }
3493    }
3494
3495    fn default_instance() -> &'static EnumValueDescriptorProto {
3496        static mut instance: ::protobuf::lazy::Lazy<EnumValueDescriptorProto> = ::protobuf::lazy::Lazy {
3497            lock: ::protobuf::lazy::ONCE_INIT,
3498            ptr: 0 as *const EnumValueDescriptorProto,
3499        };
3500        unsafe {
3501            instance.get(EnumValueDescriptorProto::new)
3502        }
3503    }
3504}
3505
3506impl ::protobuf::Clear for EnumValueDescriptorProto {
3507    fn clear(&mut self) {
3508        self.name.clear();
3509        self.number = ::std::option::Option::None;
3510        self.options.clear();
3511        self.unknown_fields.clear();
3512    }
3513}
3514
3515impl ::std::fmt::Debug for EnumValueDescriptorProto {
3516    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
3517        ::protobuf::text_format::fmt(self, f)
3518    }
3519}
3520
3521impl ::protobuf::reflect::ProtobufValue for EnumValueDescriptorProto {
3522    fn as_ref(&self) -> ::protobuf::reflect::ProtobufValueRef {
3523        ::protobuf::reflect::ProtobufValueRef::Message(self)
3524    }
3525}
3526
3527#[derive(PartialEq,Clone,Default)]
3528#[cfg_attr(feature = "with-serde", derive(Serialize, Deserialize))]
3529pub struct ServiceDescriptorProto {
3530    // message fields
3531    name: ::protobuf::SingularField<::std::string::String>,
3532    method: ::protobuf::RepeatedField<MethodDescriptorProto>,
3533    options: ::protobuf::SingularPtrField<ServiceOptions>,
3534    // special fields
3535    #[cfg_attr(feature = "with-serde", serde(skip))]
3536    pub unknown_fields: ::protobuf::UnknownFields,
3537    #[cfg_attr(feature = "with-serde", serde(skip))]
3538    pub cached_size: ::protobuf::CachedSize,
3539}
3540
3541impl<'a> ::std::default::Default for &'a ServiceDescriptorProto {
3542    fn default() -> &'a ServiceDescriptorProto {
3543        <ServiceDescriptorProto as ::protobuf::Message>::default_instance()
3544    }
3545}
3546
3547impl ServiceDescriptorProto {
3548    pub fn new() -> ServiceDescriptorProto {
3549        ::std::default::Default::default()
3550    }
3551
3552    // optional string name = 1;
3553
3554
3555    pub fn get_name(&self) -> &str {
3556        match self.name.as_ref() {
3557            Some(v) => &v,
3558            None => "",
3559        }
3560    }
3561    pub fn clear_name(&mut self) {
3562        self.name.clear();
3563    }
3564
3565    pub fn has_name(&self) -> bool {
3566        self.name.is_some()
3567    }
3568
3569    // Param is passed by value, moved
3570    pub fn set_name(&mut self, v: ::std::string::String) {
3571        self.name = ::protobuf::SingularField::some(v);
3572    }
3573
3574    // Mutable pointer to the field.
3575    // If field is not initialized, it is initialized with default value first.
3576    pub fn mut_name(&mut self) -> &mut ::std::string::String {
3577        if self.name.is_none() {
3578            self.name.set_default();
3579        }
3580        self.name.as_mut().unwrap()
3581    }
3582
3583    // Take field
3584    pub fn take_name(&mut self) -> ::std::string::String {
3585        self.name.take().unwrap_or_else(|| ::std::string::String::new())
3586    }
3587
3588    // repeated .google.protobuf.MethodDescriptorProto method = 2;
3589
3590
3591    pub fn get_method(&self) -> &[MethodDescriptorProto] {
3592        &self.method
3593    }
3594    pub fn clear_method(&mut self) {
3595        self.method.clear();
3596    }
3597
3598    // Param is passed by value, moved
3599    pub fn set_method(&mut self, v: ::protobuf::RepeatedField<MethodDescriptorProto>) {
3600        self.method = v;
3601    }
3602
3603    // Mutable pointer to the field.
3604    pub fn mut_method(&mut self) -> &mut ::protobuf::RepeatedField<MethodDescriptorProto> {
3605        &mut self.method
3606    }
3607
3608    // Take field
3609    pub fn take_method(&mut self) -> ::protobuf::RepeatedField<MethodDescriptorProto> {
3610        ::std::mem::replace(&mut self.method, ::protobuf::RepeatedField::new())
3611    }
3612
3613    // optional .google.protobuf.ServiceOptions options = 3;
3614
3615
3616    pub fn get_options(&self) -> &ServiceOptions {
3617        self.options.as_ref().unwrap_or_else(|| ServiceOptions::default_instance())
3618    }
3619    pub fn clear_options(&mut self) {
3620        self.options.clear();
3621    }
3622
3623    pub fn has_options(&self) -> bool {
3624        self.options.is_some()
3625    }
3626
3627    // Param is passed by value, moved
3628    pub fn set_options(&mut self, v: ServiceOptions) {
3629        self.options = ::protobuf::SingularPtrField::some(v);
3630    }
3631
3632    // Mutable pointer to the field.
3633    // If field is not initialized, it is initialized with default value first.
3634    pub fn mut_options(&mut self) -> &mut ServiceOptions {
3635        if self.options.is_none() {
3636            self.options.set_default();
3637        }
3638        self.options.as_mut().unwrap()
3639    }
3640
3641    // Take field
3642    pub fn take_options(&mut self) -> ServiceOptions {
3643        self.options.take().unwrap_or_else(|| ServiceOptions::new())
3644    }
3645}
3646
3647impl ::protobuf::Message for ServiceDescriptorProto {
3648    fn is_initialized(&self) -> bool {
3649        for v in &self.method {
3650            if !v.is_initialized() {
3651                return false;
3652            }
3653        };
3654        for v in &self.options {
3655            if !v.is_initialized() {
3656                return false;
3657            }
3658        };
3659        true
3660    }
3661
3662    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream) -> ::protobuf::ProtobufResult<()> {
3663        while !is.eof()? {
3664            let (field_number, wire_type) = is.read_tag_unpack()?;
3665            match field_number {
3666                1 => {
3667                    ::protobuf::rt::read_singular_string_into(wire_type, is, &mut self.name)?;
3668                },
3669                2 => {
3670                    ::protobuf::rt::read_repeated_message_into(wire_type, is, &mut self.method)?;
3671                },
3672                3 => {
3673                    ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.options)?;
3674                },
3675                _ => {
3676                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
3677                },
3678            };
3679        }
3680        ::std::result::Result::Ok(())
3681    }
3682
3683    // Compute sizes of nested messages
3684    #[allow(unused_variables)]
3685    fn compute_size(&self) -> u32 {
3686        let mut my_size = 0;
3687        if let Some(ref v) = self.name.as_ref() {
3688            my_size += ::protobuf::rt::string_size(1, &v);
3689        }
3690        for value in &self.method {
3691            let len = value.compute_size();
3692            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
3693        };
3694        if let Some(ref v) = self.options.as_ref() {
3695            let len = v.compute_size();
3696            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
3697        }
3698        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
3699        self.cached_size.set(my_size);
3700        my_size
3701    }
3702
3703    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream) -> ::protobuf::ProtobufResult<()> {
3704        if let Some(ref v) = self.name.as_ref() {
3705            os.write_string(1, &v)?;
3706        }
3707        for v in &self.method {
3708            os.write_tag(2, ::protobuf::wire_format::WireTypeLengthDelimited)?;
3709            os.write_raw_varint32(v.get_cached_size())?;
3710            v.write_to_with_cached_sizes(os)?;
3711        };
3712        if let Some(ref v) = self.options.as_ref() {
3713            os.write_tag(3, ::protobuf::wire_format::WireTypeLengthDelimited)?;
3714            os.write_raw_varint32(v.get_cached_size())?;
3715            v.write_to_with_cached_sizes(os)?;
3716        }
3717        os.write_unknown_fields(self.get_unknown_fields())?;
3718        ::std::result::Result::Ok(())
3719    }
3720
3721    fn get_cached_size(&self) -> u32 {
3722        self.cached_size.get()
3723    }
3724
3725    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
3726        &self.unknown_fields
3727    }
3728
3729    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
3730        &mut self.unknown_fields
3731    }
3732
3733    fn as_any(&self) -> &dyn (::std::any::Any) {
3734        self as &dyn (::std::any::Any)
3735    }
3736    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
3737        self as &mut dyn (::std::any::Any)
3738    }
3739    fn into_any(self: Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
3740        self
3741    }
3742
3743    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
3744        Self::descriptor_static()
3745    }
3746
3747    fn new() -> ServiceDescriptorProto {
3748        ServiceDescriptorProto::new()
3749    }
3750
3751    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
3752        static mut descriptor: ::protobuf::lazy::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::lazy::Lazy {
3753            lock: ::protobuf::lazy::ONCE_INIT,
3754            ptr: 0 as *const ::protobuf::reflect::MessageDescriptor,
3755        };
3756        unsafe {
3757            descriptor.get(|| {
3758                let mut fields = ::std::vec::Vec::new();
3759                fields.push(::protobuf::reflect::accessor::make_singular_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
3760                    "name",
3761                    |m: &ServiceDescriptorProto| { &m.name },
3762                    |m: &mut ServiceDescriptorProto| { &mut m.name },
3763                ));
3764                fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<MethodDescriptorProto>>(
3765                    "method",
3766                    |m: &ServiceDescriptorProto| { &m.method },
3767                    |m: &mut ServiceDescriptorProto| { &mut m.method },
3768                ));
3769                fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<ServiceOptions>>(
3770                    "options",
3771                    |m: &ServiceDescriptorProto| { &m.options },
3772                    |m: &mut ServiceDescriptorProto| { &mut m.options },
3773                ));
3774                ::protobuf::reflect::MessageDescriptor::new::<ServiceDescriptorProto>(
3775                    "ServiceDescriptorProto",
3776                    fields,
3777                    file_descriptor_proto()
3778                )
3779            })
3780        }
3781    }
3782
3783    fn default_instance() -> &'static ServiceDescriptorProto {
3784        static mut instance: ::protobuf::lazy::Lazy<ServiceDescriptorProto> = ::protobuf::lazy::Lazy {
3785            lock: ::protobuf::lazy::ONCE_INIT,
3786            ptr: 0 as *const ServiceDescriptorProto,
3787        };
3788        unsafe {
3789            instance.get(ServiceDescriptorProto::new)
3790        }
3791    }
3792}
3793
3794impl ::protobuf::Clear for ServiceDescriptorProto {
3795    fn clear(&mut self) {
3796        self.name.clear();
3797        self.method.clear();
3798        self.options.clear();
3799        self.unknown_fields.clear();
3800    }
3801}
3802
3803impl ::std::fmt::Debug for ServiceDescriptorProto {
3804    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
3805        ::protobuf::text_format::fmt(self, f)
3806    }
3807}
3808
3809impl ::protobuf::reflect::ProtobufValue for ServiceDescriptorProto {
3810    fn as_ref(&self) -> ::protobuf::reflect::ProtobufValueRef {
3811        ::protobuf::reflect::ProtobufValueRef::Message(self)
3812    }
3813}
3814
3815#[derive(PartialEq,Clone,Default)]
3816#[cfg_attr(feature = "with-serde", derive(Serialize, Deserialize))]
3817pub struct MethodDescriptorProto {
3818    // message fields
3819    name: ::protobuf::SingularField<::std::string::String>,
3820    input_type: ::protobuf::SingularField<::std::string::String>,
3821    output_type: ::protobuf::SingularField<::std::string::String>,
3822    options: ::protobuf::SingularPtrField<MethodOptions>,
3823    client_streaming: ::std::option::Option<bool>,
3824    server_streaming: ::std::option::Option<bool>,
3825    // special fields
3826    #[cfg_attr(feature = "with-serde", serde(skip))]
3827    pub unknown_fields: ::protobuf::UnknownFields,
3828    #[cfg_attr(feature = "with-serde", serde(skip))]
3829    pub cached_size: ::protobuf::CachedSize,
3830}
3831
3832impl<'a> ::std::default::Default for &'a MethodDescriptorProto {
3833    fn default() -> &'a MethodDescriptorProto {
3834        <MethodDescriptorProto as ::protobuf::Message>::default_instance()
3835    }
3836}
3837
3838impl MethodDescriptorProto {
3839    pub fn new() -> MethodDescriptorProto {
3840        ::std::default::Default::default()
3841    }
3842
3843    // optional string name = 1;
3844
3845
3846    pub fn get_name(&self) -> &str {
3847        match self.name.as_ref() {
3848            Some(v) => &v,
3849            None => "",
3850        }
3851    }
3852    pub fn clear_name(&mut self) {
3853        self.name.clear();
3854    }
3855
3856    pub fn has_name(&self) -> bool {
3857        self.name.is_some()
3858    }
3859
3860    // Param is passed by value, moved
3861    pub fn set_name(&mut self, v: ::std::string::String) {
3862        self.name = ::protobuf::SingularField::some(v);
3863    }
3864
3865    // Mutable pointer to the field.
3866    // If field is not initialized, it is initialized with default value first.
3867    pub fn mut_name(&mut self) -> &mut ::std::string::String {
3868        if self.name.is_none() {
3869            self.name.set_default();
3870        }
3871        self.name.as_mut().unwrap()
3872    }
3873
3874    // Take field
3875    pub fn take_name(&mut self) -> ::std::string::String {
3876        self.name.take().unwrap_or_else(|| ::std::string::String::new())
3877    }
3878
3879    // optional string input_type = 2;
3880
3881
3882    pub fn get_input_type(&self) -> &str {
3883        match self.input_type.as_ref() {
3884            Some(v) => &v,
3885            None => "",
3886        }
3887    }
3888    pub fn clear_input_type(&mut self) {
3889        self.input_type.clear();
3890    }
3891
3892    pub fn has_input_type(&self) -> bool {
3893        self.input_type.is_some()
3894    }
3895
3896    // Param is passed by value, moved
3897    pub fn set_input_type(&mut self, v: ::std::string::String) {
3898        self.input_type = ::protobuf::SingularField::some(v);
3899    }
3900
3901    // Mutable pointer to the field.
3902    // If field is not initialized, it is initialized with default value first.
3903    pub fn mut_input_type(&mut self) -> &mut ::std::string::String {
3904        if self.input_type.is_none() {
3905            self.input_type.set_default();
3906        }
3907        self.input_type.as_mut().unwrap()
3908    }
3909
3910    // Take field
3911    pub fn take_input_type(&mut self) -> ::std::string::String {
3912        self.input_type.take().unwrap_or_else(|| ::std::string::String::new())
3913    }
3914
3915    // optional string output_type = 3;
3916
3917
3918    pub fn get_output_type(&self) -> &str {
3919        match self.output_type.as_ref() {
3920            Some(v) => &v,
3921            None => "",
3922        }
3923    }
3924    pub fn clear_output_type(&mut self) {
3925        self.output_type.clear();
3926    }
3927
3928    pub fn has_output_type(&self) -> bool {
3929        self.output_type.is_some()
3930    }
3931
3932    // Param is passed by value, moved
3933    pub fn set_output_type(&mut self, v: ::std::string::String) {
3934        self.output_type = ::protobuf::SingularField::some(v);
3935    }
3936
3937    // Mutable pointer to the field.
3938    // If field is not initialized, it is initialized with default value first.
3939    pub fn mut_output_type(&mut self) -> &mut ::std::string::String {
3940        if self.output_type.is_none() {
3941            self.output_type.set_default();
3942        }
3943        self.output_type.as_mut().unwrap()
3944    }
3945
3946    // Take field
3947    pub fn take_output_type(&mut self) -> ::std::string::String {
3948        self.output_type.take().unwrap_or_else(|| ::std::string::String::new())
3949    }
3950
3951    // optional .google.protobuf.MethodOptions options = 4;
3952
3953
3954    pub fn get_options(&self) -> &MethodOptions {
3955        self.options.as_ref().unwrap_or_else(|| MethodOptions::default_instance())
3956    }
3957    pub fn clear_options(&mut self) {
3958        self.options.clear();
3959    }
3960
3961    pub fn has_options(&self) -> bool {
3962        self.options.is_some()
3963    }
3964
3965    // Param is passed by value, moved
3966    pub fn set_options(&mut self, v: MethodOptions) {
3967        self.options = ::protobuf::SingularPtrField::some(v);
3968    }
3969
3970    // Mutable pointer to the field.
3971    // If field is not initialized, it is initialized with default value first.
3972    pub fn mut_options(&mut self) -> &mut MethodOptions {
3973        if self.options.is_none() {
3974            self.options.set_default();
3975        }
3976        self.options.as_mut().unwrap()
3977    }
3978
3979    // Take field
3980    pub fn take_options(&mut self) -> MethodOptions {
3981        self.options.take().unwrap_or_else(|| MethodOptions::new())
3982    }
3983
3984    // optional bool client_streaming = 5;
3985
3986
3987    pub fn get_client_streaming(&self) -> bool {
3988        self.client_streaming.unwrap_or(false)
3989    }
3990    pub fn clear_client_streaming(&mut self) {
3991        self.client_streaming = ::std::option::Option::None;
3992    }
3993
3994    pub fn has_client_streaming(&self) -> bool {
3995        self.client_streaming.is_some()
3996    }
3997
3998    // Param is passed by value, moved
3999    pub fn set_client_streaming(&mut self, v: bool) {
4000        self.client_streaming = ::std::option::Option::Some(v);
4001    }
4002
4003    // optional bool server_streaming = 6;
4004
4005
4006    pub fn get_server_streaming(&self) -> bool {
4007        self.server_streaming.unwrap_or(false)
4008    }
4009    pub fn clear_server_streaming(&mut self) {
4010        self.server_streaming = ::std::option::Option::None;
4011    }
4012
4013    pub fn has_server_streaming(&self) -> bool {
4014        self.server_streaming.is_some()
4015    }
4016
4017    // Param is passed by value, moved
4018    pub fn set_server_streaming(&mut self, v: bool) {
4019        self.server_streaming = ::std::option::Option::Some(v);
4020    }
4021}
4022
4023impl ::protobuf::Message for MethodDescriptorProto {
4024    fn is_initialized(&self) -> bool {
4025        for v in &self.options {
4026            if !v.is_initialized() {
4027                return false;
4028            }
4029        };
4030        true
4031    }
4032
4033    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream) -> ::protobuf::ProtobufResult<()> {
4034        while !is.eof()? {
4035            let (field_number, wire_type) = is.read_tag_unpack()?;
4036            match field_number {
4037                1 => {
4038                    ::protobuf::rt::read_singular_string_into(wire_type, is, &mut self.name)?;
4039                },
4040                2 => {
4041                    ::protobuf::rt::read_singular_string_into(wire_type, is, &mut self.input_type)?;
4042                },
4043                3 => {
4044                    ::protobuf::rt::read_singular_string_into(wire_type, is, &mut self.output_type)?;
4045                },
4046                4 => {
4047                    ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.options)?;
4048                },
4049                5 => {
4050                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
4051                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
4052                    }
4053                    let tmp = is.read_bool()?;
4054                    self.client_streaming = ::std::option::Option::Some(tmp);
4055                },
4056                6 => {
4057                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
4058                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
4059                    }
4060                    let tmp = is.read_bool()?;
4061                    self.server_streaming = ::std::option::Option::Some(tmp);
4062                },
4063                _ => {
4064                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
4065                },
4066            };
4067        }
4068        ::std::result::Result::Ok(())
4069    }
4070
4071    // Compute sizes of nested messages
4072    #[allow(unused_variables)]
4073    fn compute_size(&self) -> u32 {
4074        let mut my_size = 0;
4075        if let Some(ref v) = self.name.as_ref() {
4076            my_size += ::protobuf::rt::string_size(1, &v);
4077        }
4078        if let Some(ref v) = self.input_type.as_ref() {
4079            my_size += ::protobuf::rt::string_size(2, &v);
4080        }
4081        if let Some(ref v) = self.output_type.as_ref() {
4082            my_size += ::protobuf::rt::string_size(3, &v);
4083        }
4084        if let Some(ref v) = self.options.as_ref() {
4085            let len = v.compute_size();
4086            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
4087        }
4088        if let Some(v) = self.client_streaming {
4089            my_size += 2;
4090        }
4091        if let Some(v) = self.server_streaming {
4092            my_size += 2;
4093        }
4094        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
4095        self.cached_size.set(my_size);
4096        my_size
4097    }
4098
4099    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream) -> ::protobuf::ProtobufResult<()> {
4100        if let Some(ref v) = self.name.as_ref() {
4101            os.write_string(1, &v)?;
4102        }
4103        if let Some(ref v) = self.input_type.as_ref() {
4104            os.write_string(2, &v)?;
4105        }
4106        if let Some(ref v) = self.output_type.as_ref() {
4107            os.write_string(3, &v)?;
4108        }
4109        if let Some(ref v) = self.options.as_ref() {
4110            os.write_tag(4, ::protobuf::wire_format::WireTypeLengthDelimited)?;
4111            os.write_raw_varint32(v.get_cached_size())?;
4112            v.write_to_with_cached_sizes(os)?;
4113        }
4114        if let Some(v) = self.client_streaming {
4115            os.write_bool(5, v)?;
4116        }
4117        if let Some(v) = self.server_streaming {
4118            os.write_bool(6, v)?;
4119        }
4120        os.write_unknown_fields(self.get_unknown_fields())?;
4121        ::std::result::Result::Ok(())
4122    }
4123
4124    fn get_cached_size(&self) -> u32 {
4125        self.cached_size.get()
4126    }
4127
4128    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
4129        &self.unknown_fields
4130    }
4131
4132    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
4133        &mut self.unknown_fields
4134    }
4135
4136    fn as_any(&self) -> &dyn (::std::any::Any) {
4137        self as &dyn (::std::any::Any)
4138    }
4139    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
4140        self as &mut dyn (::std::any::Any)
4141    }
4142    fn into_any(self: Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
4143        self
4144    }
4145
4146    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
4147        Self::descriptor_static()
4148    }
4149
4150    fn new() -> MethodDescriptorProto {
4151        MethodDescriptorProto::new()
4152    }
4153
4154    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
4155        static mut descriptor: ::protobuf::lazy::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::lazy::Lazy {
4156            lock: ::protobuf::lazy::ONCE_INIT,
4157            ptr: 0 as *const ::protobuf::reflect::MessageDescriptor,
4158        };
4159        unsafe {
4160            descriptor.get(|| {
4161                let mut fields = ::std::vec::Vec::new();
4162                fields.push(::protobuf::reflect::accessor::make_singular_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
4163                    "name",
4164                    |m: &MethodDescriptorProto| { &m.name },
4165                    |m: &mut MethodDescriptorProto| { &mut m.name },
4166                ));
4167                fields.push(::protobuf::reflect::accessor::make_singular_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
4168                    "input_type",
4169                    |m: &MethodDescriptorProto| { &m.input_type },
4170                    |m: &mut MethodDescriptorProto| { &mut m.input_type },
4171                ));
4172                fields.push(::protobuf::reflect::accessor::make_singular_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
4173                    "output_type",
4174                    |m: &MethodDescriptorProto| { &m.output_type },
4175                    |m: &mut MethodDescriptorProto| { &mut m.output_type },
4176                ));
4177                fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<MethodOptions>>(
4178                    "options",
4179                    |m: &MethodDescriptorProto| { &m.options },
4180                    |m: &mut MethodDescriptorProto| { &mut m.options },
4181                ));
4182                fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeBool>(
4183                    "client_streaming",
4184                    |m: &MethodDescriptorProto| { &m.client_streaming },
4185                    |m: &mut MethodDescriptorProto| { &mut m.client_streaming },
4186                ));
4187                fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeBool>(
4188                    "server_streaming",
4189                    |m: &MethodDescriptorProto| { &m.server_streaming },
4190                    |m: &mut MethodDescriptorProto| { &mut m.server_streaming },
4191                ));
4192                ::protobuf::reflect::MessageDescriptor::new::<MethodDescriptorProto>(
4193                    "MethodDescriptorProto",
4194                    fields,
4195                    file_descriptor_proto()
4196                )
4197            })
4198        }
4199    }
4200
4201    fn default_instance() -> &'static MethodDescriptorProto {
4202        static mut instance: ::protobuf::lazy::Lazy<MethodDescriptorProto> = ::protobuf::lazy::Lazy {
4203            lock: ::protobuf::lazy::ONCE_INIT,
4204            ptr: 0 as *const MethodDescriptorProto,
4205        };
4206        unsafe {
4207            instance.get(MethodDescriptorProto::new)
4208        }
4209    }
4210}
4211
4212impl ::protobuf::Clear for MethodDescriptorProto {
4213    fn clear(&mut self) {
4214        self.name.clear();
4215        self.input_type.clear();
4216        self.output_type.clear();
4217        self.options.clear();
4218        self.client_streaming = ::std::option::Option::None;
4219        self.server_streaming = ::std::option::Option::None;
4220        self.unknown_fields.clear();
4221    }
4222}
4223
4224impl ::std::fmt::Debug for MethodDescriptorProto {
4225    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
4226        ::protobuf::text_format::fmt(self, f)
4227    }
4228}
4229
4230impl ::protobuf::reflect::ProtobufValue for MethodDescriptorProto {
4231    fn as_ref(&self) -> ::protobuf::reflect::ProtobufValueRef {
4232        ::protobuf::reflect::ProtobufValueRef::Message(self)
4233    }
4234}
4235
4236#[derive(PartialEq,Clone,Default)]
4237#[cfg_attr(feature = "with-serde", derive(Serialize, Deserialize))]
4238pub struct FileOptions {
4239    // message fields
4240    java_package: ::protobuf::SingularField<::std::string::String>,
4241    java_outer_classname: ::protobuf::SingularField<::std::string::String>,
4242    java_multiple_files: ::std::option::Option<bool>,
4243    java_generate_equals_and_hash: ::std::option::Option<bool>,
4244    java_string_check_utf8: ::std::option::Option<bool>,
4245    optimize_for: ::std::option::Option<FileOptions_OptimizeMode>,
4246    go_package: ::protobuf::SingularField<::std::string::String>,
4247    cc_generic_services: ::std::option::Option<bool>,
4248    java_generic_services: ::std::option::Option<bool>,
4249    py_generic_services: ::std::option::Option<bool>,
4250    deprecated: ::std::option::Option<bool>,
4251    cc_enable_arenas: ::std::option::Option<bool>,
4252    objc_class_prefix: ::protobuf::SingularField<::std::string::String>,
4253    csharp_namespace: ::protobuf::SingularField<::std::string::String>,
4254    uninterpreted_option: ::protobuf::RepeatedField<UninterpretedOption>,
4255    // special fields
4256    #[cfg_attr(feature = "with-serde", serde(skip))]
4257    pub unknown_fields: ::protobuf::UnknownFields,
4258    #[cfg_attr(feature = "with-serde", serde(skip))]
4259    pub cached_size: ::protobuf::CachedSize,
4260}
4261
4262impl<'a> ::std::default::Default for &'a FileOptions {
4263    fn default() -> &'a FileOptions {
4264        <FileOptions as ::protobuf::Message>::default_instance()
4265    }
4266}
4267
4268impl FileOptions {
4269    pub fn new() -> FileOptions {
4270        ::std::default::Default::default()
4271    }
4272
4273    // optional string java_package = 1;
4274
4275
4276    pub fn get_java_package(&self) -> &str {
4277        match self.java_package.as_ref() {
4278            Some(v) => &v,
4279            None => "",
4280        }
4281    }
4282    pub fn clear_java_package(&mut self) {
4283        self.java_package.clear();
4284    }
4285
4286    pub fn has_java_package(&self) -> bool {
4287        self.java_package.is_some()
4288    }
4289
4290    // Param is passed by value, moved
4291    pub fn set_java_package(&mut self, v: ::std::string::String) {
4292        self.java_package = ::protobuf::SingularField::some(v);
4293    }
4294
4295    // Mutable pointer to the field.
4296    // If field is not initialized, it is initialized with default value first.
4297    pub fn mut_java_package(&mut self) -> &mut ::std::string::String {
4298        if self.java_package.is_none() {
4299            self.java_package.set_default();
4300        }
4301        self.java_package.as_mut().unwrap()
4302    }
4303
4304    // Take field
4305    pub fn take_java_package(&mut self) -> ::std::string::String {
4306        self.java_package.take().unwrap_or_else(|| ::std::string::String::new())
4307    }
4308
4309    // optional string java_outer_classname = 8;
4310
4311
4312    pub fn get_java_outer_classname(&self) -> &str {
4313        match self.java_outer_classname.as_ref() {
4314            Some(v) => &v,
4315            None => "",
4316        }
4317    }
4318    pub fn clear_java_outer_classname(&mut self) {
4319        self.java_outer_classname.clear();
4320    }
4321
4322    pub fn has_java_outer_classname(&self) -> bool {
4323        self.java_outer_classname.is_some()
4324    }
4325
4326    // Param is passed by value, moved
4327    pub fn set_java_outer_classname(&mut self, v: ::std::string::String) {
4328        self.java_outer_classname = ::protobuf::SingularField::some(v);
4329    }
4330
4331    // Mutable pointer to the field.
4332    // If field is not initialized, it is initialized with default value first.
4333    pub fn mut_java_outer_classname(&mut self) -> &mut ::std::string::String {
4334        if self.java_outer_classname.is_none() {
4335            self.java_outer_classname.set_default();
4336        }
4337        self.java_outer_classname.as_mut().unwrap()
4338    }
4339
4340    // Take field
4341    pub fn take_java_outer_classname(&mut self) -> ::std::string::String {
4342        self.java_outer_classname.take().unwrap_or_else(|| ::std::string::String::new())
4343    }
4344
4345    // optional bool java_multiple_files = 10;
4346
4347
4348    pub fn get_java_multiple_files(&self) -> bool {
4349        self.java_multiple_files.unwrap_or(false)
4350    }
4351    pub fn clear_java_multiple_files(&mut self) {
4352        self.java_multiple_files = ::std::option::Option::None;
4353    }
4354
4355    pub fn has_java_multiple_files(&self) -> bool {
4356        self.java_multiple_files.is_some()
4357    }
4358
4359    // Param is passed by value, moved
4360    pub fn set_java_multiple_files(&mut self, v: bool) {
4361        self.java_multiple_files = ::std::option::Option::Some(v);
4362    }
4363
4364    // optional bool java_generate_equals_and_hash = 20;
4365
4366
4367    pub fn get_java_generate_equals_and_hash(&self) -> bool {
4368        self.java_generate_equals_and_hash.unwrap_or(false)
4369    }
4370    pub fn clear_java_generate_equals_and_hash(&mut self) {
4371        self.java_generate_equals_and_hash = ::std::option::Option::None;
4372    }
4373
4374    pub fn has_java_generate_equals_and_hash(&self) -> bool {
4375        self.java_generate_equals_and_hash.is_some()
4376    }
4377
4378    // Param is passed by value, moved
4379    pub fn set_java_generate_equals_and_hash(&mut self, v: bool) {
4380        self.java_generate_equals_and_hash = ::std::option::Option::Some(v);
4381    }
4382
4383    // optional bool java_string_check_utf8 = 27;
4384
4385
4386    pub fn get_java_string_check_utf8(&self) -> bool {
4387        self.java_string_check_utf8.unwrap_or(false)
4388    }
4389    pub fn clear_java_string_check_utf8(&mut self) {
4390        self.java_string_check_utf8 = ::std::option::Option::None;
4391    }
4392
4393    pub fn has_java_string_check_utf8(&self) -> bool {
4394        self.java_string_check_utf8.is_some()
4395    }
4396
4397    // Param is passed by value, moved
4398    pub fn set_java_string_check_utf8(&mut self, v: bool) {
4399        self.java_string_check_utf8 = ::std::option::Option::Some(v);
4400    }
4401
4402    // optional .google.protobuf.FileOptions.OptimizeMode optimize_for = 9;
4403
4404
4405    pub fn get_optimize_for(&self) -> FileOptions_OptimizeMode {
4406        self.optimize_for.unwrap_or(FileOptions_OptimizeMode::SPEED)
4407    }
4408    pub fn clear_optimize_for(&mut self) {
4409        self.optimize_for = ::std::option::Option::None;
4410    }
4411
4412    pub fn has_optimize_for(&self) -> bool {
4413        self.optimize_for.is_some()
4414    }
4415
4416    // Param is passed by value, moved
4417    pub fn set_optimize_for(&mut self, v: FileOptions_OptimizeMode) {
4418        self.optimize_for = ::std::option::Option::Some(v);
4419    }
4420
4421    // optional string go_package = 11;
4422
4423
4424    pub fn get_go_package(&self) -> &str {
4425        match self.go_package.as_ref() {
4426            Some(v) => &v,
4427            None => "",
4428        }
4429    }
4430    pub fn clear_go_package(&mut self) {
4431        self.go_package.clear();
4432    }
4433
4434    pub fn has_go_package(&self) -> bool {
4435        self.go_package.is_some()
4436    }
4437
4438    // Param is passed by value, moved
4439    pub fn set_go_package(&mut self, v: ::std::string::String) {
4440        self.go_package = ::protobuf::SingularField::some(v);
4441    }
4442
4443    // Mutable pointer to the field.
4444    // If field is not initialized, it is initialized with default value first.
4445    pub fn mut_go_package(&mut self) -> &mut ::std::string::String {
4446        if self.go_package.is_none() {
4447            self.go_package.set_default();
4448        }
4449        self.go_package.as_mut().unwrap()
4450    }
4451
4452    // Take field
4453    pub fn take_go_package(&mut self) -> ::std::string::String {
4454        self.go_package.take().unwrap_or_else(|| ::std::string::String::new())
4455    }
4456
4457    // optional bool cc_generic_services = 16;
4458
4459
4460    pub fn get_cc_generic_services(&self) -> bool {
4461        self.cc_generic_services.unwrap_or(false)
4462    }
4463    pub fn clear_cc_generic_services(&mut self) {
4464        self.cc_generic_services = ::std::option::Option::None;
4465    }
4466
4467    pub fn has_cc_generic_services(&self) -> bool {
4468        self.cc_generic_services.is_some()
4469    }
4470
4471    // Param is passed by value, moved
4472    pub fn set_cc_generic_services(&mut self, v: bool) {
4473        self.cc_generic_services = ::std::option::Option::Some(v);
4474    }
4475
4476    // optional bool java_generic_services = 17;
4477
4478
4479    pub fn get_java_generic_services(&self) -> bool {
4480        self.java_generic_services.unwrap_or(false)
4481    }
4482    pub fn clear_java_generic_services(&mut self) {
4483        self.java_generic_services = ::std::option::Option::None;
4484    }
4485
4486    pub fn has_java_generic_services(&self) -> bool {
4487        self.java_generic_services.is_some()
4488    }
4489
4490    // Param is passed by value, moved
4491    pub fn set_java_generic_services(&mut self, v: bool) {
4492        self.java_generic_services = ::std::option::Option::Some(v);
4493    }
4494
4495    // optional bool py_generic_services = 18;
4496
4497
4498    pub fn get_py_generic_services(&self) -> bool {
4499        self.py_generic_services.unwrap_or(false)
4500    }
4501    pub fn clear_py_generic_services(&mut self) {
4502        self.py_generic_services = ::std::option::Option::None;
4503    }
4504
4505    pub fn has_py_generic_services(&self) -> bool {
4506        self.py_generic_services.is_some()
4507    }
4508
4509    // Param is passed by value, moved
4510    pub fn set_py_generic_services(&mut self, v: bool) {
4511        self.py_generic_services = ::std::option::Option::Some(v);
4512    }
4513
4514    // optional bool deprecated = 23;
4515
4516
4517    pub fn get_deprecated(&self) -> bool {
4518        self.deprecated.unwrap_or(false)
4519    }
4520    pub fn clear_deprecated(&mut self) {
4521        self.deprecated = ::std::option::Option::None;
4522    }
4523
4524    pub fn has_deprecated(&self) -> bool {
4525        self.deprecated.is_some()
4526    }
4527
4528    // Param is passed by value, moved
4529    pub fn set_deprecated(&mut self, v: bool) {
4530        self.deprecated = ::std::option::Option::Some(v);
4531    }
4532
4533    // optional bool cc_enable_arenas = 31;
4534
4535
4536    pub fn get_cc_enable_arenas(&self) -> bool {
4537        self.cc_enable_arenas.unwrap_or(false)
4538    }
4539    pub fn clear_cc_enable_arenas(&mut self) {
4540        self.cc_enable_arenas = ::std::option::Option::None;
4541    }
4542
4543    pub fn has_cc_enable_arenas(&self) -> bool {
4544        self.cc_enable_arenas.is_some()
4545    }
4546
4547    // Param is passed by value, moved
4548    pub fn set_cc_enable_arenas(&mut self, v: bool) {
4549        self.cc_enable_arenas = ::std::option::Option::Some(v);
4550    }
4551
4552    // optional string objc_class_prefix = 36;
4553
4554
4555    pub fn get_objc_class_prefix(&self) -> &str {
4556        match self.objc_class_prefix.as_ref() {
4557            Some(v) => &v,
4558            None => "",
4559        }
4560    }
4561    pub fn clear_objc_class_prefix(&mut self) {
4562        self.objc_class_prefix.clear();
4563    }
4564
4565    pub fn has_objc_class_prefix(&self) -> bool {
4566        self.objc_class_prefix.is_some()
4567    }
4568
4569    // Param is passed by value, moved
4570    pub fn set_objc_class_prefix(&mut self, v: ::std::string::String) {
4571        self.objc_class_prefix = ::protobuf::SingularField::some(v);
4572    }
4573
4574    // Mutable pointer to the field.
4575    // If field is not initialized, it is initialized with default value first.
4576    pub fn mut_objc_class_prefix(&mut self) -> &mut ::std::string::String {
4577        if self.objc_class_prefix.is_none() {
4578            self.objc_class_prefix.set_default();
4579        }
4580        self.objc_class_prefix.as_mut().unwrap()
4581    }
4582
4583    // Take field
4584    pub fn take_objc_class_prefix(&mut self) -> ::std::string::String {
4585        self.objc_class_prefix.take().unwrap_or_else(|| ::std::string::String::new())
4586    }
4587
4588    // optional string csharp_namespace = 37;
4589
4590
4591    pub fn get_csharp_namespace(&self) -> &str {
4592        match self.csharp_namespace.as_ref() {
4593            Some(v) => &v,
4594            None => "",
4595        }
4596    }
4597    pub fn clear_csharp_namespace(&mut self) {
4598        self.csharp_namespace.clear();
4599    }
4600
4601    pub fn has_csharp_namespace(&self) -> bool {
4602        self.csharp_namespace.is_some()
4603    }
4604
4605    // Param is passed by value, moved
4606    pub fn set_csharp_namespace(&mut self, v: ::std::string::String) {
4607        self.csharp_namespace = ::protobuf::SingularField::some(v);
4608    }
4609
4610    // Mutable pointer to the field.
4611    // If field is not initialized, it is initialized with default value first.
4612    pub fn mut_csharp_namespace(&mut self) -> &mut ::std::string::String {
4613        if self.csharp_namespace.is_none() {
4614            self.csharp_namespace.set_default();
4615        }
4616        self.csharp_namespace.as_mut().unwrap()
4617    }
4618
4619    // Take field
4620    pub fn take_csharp_namespace(&mut self) -> ::std::string::String {
4621        self.csharp_namespace.take().unwrap_or_else(|| ::std::string::String::new())
4622    }
4623
4624    // repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999;
4625
4626
4627    pub fn get_uninterpreted_option(&self) -> &[UninterpretedOption] {
4628        &self.uninterpreted_option
4629    }
4630    pub fn clear_uninterpreted_option(&mut self) {
4631        self.uninterpreted_option.clear();
4632    }
4633
4634    // Param is passed by value, moved
4635    pub fn set_uninterpreted_option(&mut self, v: ::protobuf::RepeatedField<UninterpretedOption>) {
4636        self.uninterpreted_option = v;
4637    }
4638
4639    // Mutable pointer to the field.
4640    pub fn mut_uninterpreted_option(&mut self) -> &mut ::protobuf::RepeatedField<UninterpretedOption> {
4641        &mut self.uninterpreted_option
4642    }
4643
4644    // Take field
4645    pub fn take_uninterpreted_option(&mut self) -> ::protobuf::RepeatedField<UninterpretedOption> {
4646        ::std::mem::replace(&mut self.uninterpreted_option, ::protobuf::RepeatedField::new())
4647    }
4648}
4649
4650impl ::protobuf::Message for FileOptions {
4651    fn is_initialized(&self) -> bool {
4652        for v in &self.uninterpreted_option {
4653            if !v.is_initialized() {
4654                return false;
4655            }
4656        };
4657        true
4658    }
4659
4660    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream) -> ::protobuf::ProtobufResult<()> {
4661        while !is.eof()? {
4662            let (field_number, wire_type) = is.read_tag_unpack()?;
4663            match field_number {
4664                1 => {
4665                    ::protobuf::rt::read_singular_string_into(wire_type, is, &mut self.java_package)?;
4666                },
4667                8 => {
4668                    ::protobuf::rt::read_singular_string_into(wire_type, is, &mut self.java_outer_classname)?;
4669                },
4670                10 => {
4671                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
4672                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
4673                    }
4674                    let tmp = is.read_bool()?;
4675                    self.java_multiple_files = ::std::option::Option::Some(tmp);
4676                },
4677                20 => {
4678                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
4679                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
4680                    }
4681                    let tmp = is.read_bool()?;
4682                    self.java_generate_equals_and_hash = ::std::option::Option::Some(tmp);
4683                },
4684                27 => {
4685                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
4686                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
4687                    }
4688                    let tmp = is.read_bool()?;
4689                    self.java_string_check_utf8 = ::std::option::Option::Some(tmp);
4690                },
4691                9 => {
4692                    ::protobuf::rt::read_proto2_enum_with_unknown_fields_into(wire_type, is, &mut self.optimize_for, 9, &mut self.unknown_fields)?
4693                },
4694                11 => {
4695                    ::protobuf::rt::read_singular_string_into(wire_type, is, &mut self.go_package)?;
4696                },
4697                16 => {
4698                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
4699                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
4700                    }
4701                    let tmp = is.read_bool()?;
4702                    self.cc_generic_services = ::std::option::Option::Some(tmp);
4703                },
4704                17 => {
4705                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
4706                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
4707                    }
4708                    let tmp = is.read_bool()?;
4709                    self.java_generic_services = ::std::option::Option::Some(tmp);
4710                },
4711                18 => {
4712                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
4713                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
4714                    }
4715                    let tmp = is.read_bool()?;
4716                    self.py_generic_services = ::std::option::Option::Some(tmp);
4717                },
4718                23 => {
4719                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
4720                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
4721                    }
4722                    let tmp = is.read_bool()?;
4723                    self.deprecated = ::std::option::Option::Some(tmp);
4724                },
4725                31 => {
4726                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
4727                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
4728                    }
4729                    let tmp = is.read_bool()?;
4730                    self.cc_enable_arenas = ::std::option::Option::Some(tmp);
4731                },
4732                36 => {
4733                    ::protobuf::rt::read_singular_string_into(wire_type, is, &mut self.objc_class_prefix)?;
4734                },
4735                37 => {
4736                    ::protobuf::rt::read_singular_string_into(wire_type, is, &mut self.csharp_namespace)?;
4737                },
4738                999 => {
4739                    ::protobuf::rt::read_repeated_message_into(wire_type, is, &mut self.uninterpreted_option)?;
4740                },
4741                _ => {
4742                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
4743                },
4744            };
4745        }
4746        ::std::result::Result::Ok(())
4747    }
4748
4749    // Compute sizes of nested messages
4750    #[allow(unused_variables)]
4751    fn compute_size(&self) -> u32 {
4752        let mut my_size = 0;
4753        if let Some(ref v) = self.java_package.as_ref() {
4754            my_size += ::protobuf::rt::string_size(1, &v);
4755        }
4756        if let Some(ref v) = self.java_outer_classname.as_ref() {
4757            my_size += ::protobuf::rt::string_size(8, &v);
4758        }
4759        if let Some(v) = self.java_multiple_files {
4760            my_size += 2;
4761        }
4762        if let Some(v) = self.java_generate_equals_and_hash {
4763            my_size += 3;
4764        }
4765        if let Some(v) = self.java_string_check_utf8 {
4766            my_size += 3;
4767        }
4768        if let Some(v) = self.optimize_for {
4769            my_size += ::protobuf::rt::enum_size(9, v);
4770        }
4771        if let Some(ref v) = self.go_package.as_ref() {
4772            my_size += ::protobuf::rt::string_size(11, &v);
4773        }
4774        if let Some(v) = self.cc_generic_services {
4775            my_size += 3;
4776        }
4777        if let Some(v) = self.java_generic_services {
4778            my_size += 3;
4779        }
4780        if let Some(v) = self.py_generic_services {
4781            my_size += 3;
4782        }
4783        if let Some(v) = self.deprecated {
4784            my_size += 3;
4785        }
4786        if let Some(v) = self.cc_enable_arenas {
4787            my_size += 3;
4788        }
4789        if let Some(ref v) = self.objc_class_prefix.as_ref() {
4790            my_size += ::protobuf::rt::string_size(36, &v);
4791        }
4792        if let Some(ref v) = self.csharp_namespace.as_ref() {
4793            my_size += ::protobuf::rt::string_size(37, &v);
4794        }
4795        for value in &self.uninterpreted_option {
4796            let len = value.compute_size();
4797            my_size += 2 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
4798        };
4799        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
4800        self.cached_size.set(my_size);
4801        my_size
4802    }
4803
4804    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream) -> ::protobuf::ProtobufResult<()> {
4805        if let Some(ref v) = self.java_package.as_ref() {
4806            os.write_string(1, &v)?;
4807        }
4808        if let Some(ref v) = self.java_outer_classname.as_ref() {
4809            os.write_string(8, &v)?;
4810        }
4811        if let Some(v) = self.java_multiple_files {
4812            os.write_bool(10, v)?;
4813        }
4814        if let Some(v) = self.java_generate_equals_and_hash {
4815            os.write_bool(20, v)?;
4816        }
4817        if let Some(v) = self.java_string_check_utf8 {
4818            os.write_bool(27, v)?;
4819        }
4820        if let Some(v) = self.optimize_for {
4821            os.write_enum(9, v.value())?;
4822        }
4823        if let Some(ref v) = self.go_package.as_ref() {
4824            os.write_string(11, &v)?;
4825        }
4826        if let Some(v) = self.cc_generic_services {
4827            os.write_bool(16, v)?;
4828        }
4829        if let Some(v) = self.java_generic_services {
4830            os.write_bool(17, v)?;
4831        }
4832        if let Some(v) = self.py_generic_services {
4833            os.write_bool(18, v)?;
4834        }
4835        if let Some(v) = self.deprecated {
4836            os.write_bool(23, v)?;
4837        }
4838        if let Some(v) = self.cc_enable_arenas {
4839            os.write_bool(31, v)?;
4840        }
4841        if let Some(ref v) = self.objc_class_prefix.as_ref() {
4842            os.write_string(36, &v)?;
4843        }
4844        if let Some(ref v) = self.csharp_namespace.as_ref() {
4845            os.write_string(37, &v)?;
4846        }
4847        for v in &self.uninterpreted_option {
4848            os.write_tag(999, ::protobuf::wire_format::WireTypeLengthDelimited)?;
4849            os.write_raw_varint32(v.get_cached_size())?;
4850            v.write_to_with_cached_sizes(os)?;
4851        };
4852        os.write_unknown_fields(self.get_unknown_fields())?;
4853        ::std::result::Result::Ok(())
4854    }
4855
4856    fn get_cached_size(&self) -> u32 {
4857        self.cached_size.get()
4858    }
4859
4860    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
4861        &self.unknown_fields
4862    }
4863
4864    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
4865        &mut self.unknown_fields
4866    }
4867
4868    fn as_any(&self) -> &dyn (::std::any::Any) {
4869        self as &dyn (::std::any::Any)
4870    }
4871    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
4872        self as &mut dyn (::std::any::Any)
4873    }
4874    fn into_any(self: Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
4875        self
4876    }
4877
4878    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
4879        Self::descriptor_static()
4880    }
4881
4882    fn new() -> FileOptions {
4883        FileOptions::new()
4884    }
4885
4886    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
4887        static mut descriptor: ::protobuf::lazy::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::lazy::Lazy {
4888            lock: ::protobuf::lazy::ONCE_INIT,
4889            ptr: 0 as *const ::protobuf::reflect::MessageDescriptor,
4890        };
4891        unsafe {
4892            descriptor.get(|| {
4893                let mut fields = ::std::vec::Vec::new();
4894                fields.push(::protobuf::reflect::accessor::make_singular_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
4895                    "java_package",
4896                    |m: &FileOptions| { &m.java_package },
4897                    |m: &mut FileOptions| { &mut m.java_package },
4898                ));
4899                fields.push(::protobuf::reflect::accessor::make_singular_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
4900                    "java_outer_classname",
4901                    |m: &FileOptions| { &m.java_outer_classname },
4902                    |m: &mut FileOptions| { &mut m.java_outer_classname },
4903                ));
4904                fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeBool>(
4905                    "java_multiple_files",
4906                    |m: &FileOptions| { &m.java_multiple_files },
4907                    |m: &mut FileOptions| { &mut m.java_multiple_files },
4908                ));
4909                fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeBool>(
4910                    "java_generate_equals_and_hash",
4911                    |m: &FileOptions| { &m.java_generate_equals_and_hash },
4912                    |m: &mut FileOptions| { &mut m.java_generate_equals_and_hash },
4913                ));
4914                fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeBool>(
4915                    "java_string_check_utf8",
4916                    |m: &FileOptions| { &m.java_string_check_utf8 },
4917                    |m: &mut FileOptions| { &mut m.java_string_check_utf8 },
4918                ));
4919                fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeEnum<FileOptions_OptimizeMode>>(
4920                    "optimize_for",
4921                    |m: &FileOptions| { &m.optimize_for },
4922                    |m: &mut FileOptions| { &mut m.optimize_for },
4923                ));
4924                fields.push(::protobuf::reflect::accessor::make_singular_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
4925                    "go_package",
4926                    |m: &FileOptions| { &m.go_package },
4927                    |m: &mut FileOptions| { &mut m.go_package },
4928                ));
4929                fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeBool>(
4930                    "cc_generic_services",
4931                    |m: &FileOptions| { &m.cc_generic_services },
4932                    |m: &mut FileOptions| { &mut m.cc_generic_services },
4933                ));
4934                fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeBool>(
4935                    "java_generic_services",
4936                    |m: &FileOptions| { &m.java_generic_services },
4937                    |m: &mut FileOptions| { &mut m.java_generic_services },
4938                ));
4939                fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeBool>(
4940                    "py_generic_services",
4941                    |m: &FileOptions| { &m.py_generic_services },
4942                    |m: &mut FileOptions| { &mut m.py_generic_services },
4943                ));
4944                fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeBool>(
4945                    "deprecated",
4946                    |m: &FileOptions| { &m.deprecated },
4947                    |m: &mut FileOptions| { &mut m.deprecated },
4948                ));
4949                fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeBool>(
4950                    "cc_enable_arenas",
4951                    |m: &FileOptions| { &m.cc_enable_arenas },
4952                    |m: &mut FileOptions| { &mut m.cc_enable_arenas },
4953                ));
4954                fields.push(::protobuf::reflect::accessor::make_singular_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
4955                    "objc_class_prefix",
4956                    |m: &FileOptions| { &m.objc_class_prefix },
4957                    |m: &mut FileOptions| { &mut m.objc_class_prefix },
4958                ));
4959                fields.push(::protobuf::reflect::accessor::make_singular_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
4960                    "csharp_namespace",
4961                    |m: &FileOptions| { &m.csharp_namespace },
4962                    |m: &mut FileOptions| { &mut m.csharp_namespace },
4963                ));
4964                fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<UninterpretedOption>>(
4965                    "uninterpreted_option",
4966                    |m: &FileOptions| { &m.uninterpreted_option },
4967                    |m: &mut FileOptions| { &mut m.uninterpreted_option },
4968                ));
4969                ::protobuf::reflect::MessageDescriptor::new::<FileOptions>(
4970                    "FileOptions",
4971                    fields,
4972                    file_descriptor_proto()
4973                )
4974            })
4975        }
4976    }
4977
4978    fn default_instance() -> &'static FileOptions {
4979        static mut instance: ::protobuf::lazy::Lazy<FileOptions> = ::protobuf::lazy::Lazy {
4980            lock: ::protobuf::lazy::ONCE_INIT,
4981            ptr: 0 as *const FileOptions,
4982        };
4983        unsafe {
4984            instance.get(FileOptions::new)
4985        }
4986    }
4987}
4988
4989impl ::protobuf::Clear for FileOptions {
4990    fn clear(&mut self) {
4991        self.java_package.clear();
4992        self.java_outer_classname.clear();
4993        self.java_multiple_files = ::std::option::Option::None;
4994        self.java_generate_equals_and_hash = ::std::option::Option::None;
4995        self.java_string_check_utf8 = ::std::option::Option::None;
4996        self.optimize_for = ::std::option::Option::None;
4997        self.go_package.clear();
4998        self.cc_generic_services = ::std::option::Option::None;
4999        self.java_generic_services = ::std::option::Option::None;
5000        self.py_generic_services = ::std::option::Option::None;
5001        self.deprecated = ::std::option::Option::None;
5002        self.cc_enable_arenas = ::std::option::Option::None;
5003        self.objc_class_prefix.clear();
5004        self.csharp_namespace.clear();
5005        self.uninterpreted_option.clear();
5006        self.unknown_fields.clear();
5007    }
5008}
5009
5010impl ::std::fmt::Debug for FileOptions {
5011    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
5012        ::protobuf::text_format::fmt(self, f)
5013    }
5014}
5015
5016impl ::protobuf::reflect::ProtobufValue for FileOptions {
5017    fn as_ref(&self) -> ::protobuf::reflect::ProtobufValueRef {
5018        ::protobuf::reflect::ProtobufValueRef::Message(self)
5019    }
5020}
5021
5022#[derive(Clone,PartialEq,Eq,Debug,Hash)]
5023#[cfg_attr(feature = "with-serde", derive(Serialize, Deserialize))]
5024pub enum FileOptions_OptimizeMode {
5025    SPEED = 1,
5026    CODE_SIZE = 2,
5027    LITE_RUNTIME = 3,
5028}
5029
5030impl ::protobuf::ProtobufEnum for FileOptions_OptimizeMode {
5031    fn value(&self) -> i32 {
5032        *self as i32
5033    }
5034
5035    fn from_i32(value: i32) -> ::std::option::Option<FileOptions_OptimizeMode> {
5036        match value {
5037            1 => ::std::option::Option::Some(FileOptions_OptimizeMode::SPEED),
5038            2 => ::std::option::Option::Some(FileOptions_OptimizeMode::CODE_SIZE),
5039            3 => ::std::option::Option::Some(FileOptions_OptimizeMode::LITE_RUNTIME),
5040            _ => ::std::option::Option::None
5041        }
5042    }
5043
5044    fn values() -> &'static [Self] {
5045        static values: &'static [FileOptions_OptimizeMode] = &[
5046            FileOptions_OptimizeMode::SPEED,
5047            FileOptions_OptimizeMode::CODE_SIZE,
5048            FileOptions_OptimizeMode::LITE_RUNTIME,
5049        ];
5050        values
5051    }
5052
5053    fn enum_descriptor_static() -> &'static ::protobuf::reflect::EnumDescriptor {
5054        static mut descriptor: ::protobuf::lazy::Lazy<::protobuf::reflect::EnumDescriptor> = ::protobuf::lazy::Lazy {
5055            lock: ::protobuf::lazy::ONCE_INIT,
5056            ptr: 0 as *const ::protobuf::reflect::EnumDescriptor,
5057        };
5058        unsafe {
5059            descriptor.get(|| {
5060                ::protobuf::reflect::EnumDescriptor::new("FileOptions_OptimizeMode", file_descriptor_proto())
5061            })
5062        }
5063    }
5064}
5065
5066impl ::std::marker::Copy for FileOptions_OptimizeMode {
5067}
5068
5069// Note, `Default` is implemented although default value is not 0
5070impl ::std::default::Default for FileOptions_OptimizeMode {
5071    fn default() -> Self {
5072        FileOptions_OptimizeMode::SPEED
5073    }
5074}
5075
5076impl ::protobuf::reflect::ProtobufValue for FileOptions_OptimizeMode {
5077    fn as_ref(&self) -> ::protobuf::reflect::ProtobufValueRef {
5078        ::protobuf::reflect::ProtobufValueRef::Enum(self.descriptor())
5079    }
5080}
5081
5082#[derive(PartialEq,Clone,Default)]
5083#[cfg_attr(feature = "with-serde", derive(Serialize, Deserialize))]
5084pub struct MessageOptions {
5085    // message fields
5086    message_set_wire_format: ::std::option::Option<bool>,
5087    no_standard_descriptor_accessor: ::std::option::Option<bool>,
5088    deprecated: ::std::option::Option<bool>,
5089    map_entry: ::std::option::Option<bool>,
5090    uninterpreted_option: ::protobuf::RepeatedField<UninterpretedOption>,
5091    // special fields
5092    #[cfg_attr(feature = "with-serde", serde(skip))]
5093    pub unknown_fields: ::protobuf::UnknownFields,
5094    #[cfg_attr(feature = "with-serde", serde(skip))]
5095    pub cached_size: ::protobuf::CachedSize,
5096}
5097
5098impl<'a> ::std::default::Default for &'a MessageOptions {
5099    fn default() -> &'a MessageOptions {
5100        <MessageOptions as ::protobuf::Message>::default_instance()
5101    }
5102}
5103
5104impl MessageOptions {
5105    pub fn new() -> MessageOptions {
5106        ::std::default::Default::default()
5107    }
5108
5109    // optional bool message_set_wire_format = 1;
5110
5111
5112    pub fn get_message_set_wire_format(&self) -> bool {
5113        self.message_set_wire_format.unwrap_or(false)
5114    }
5115    pub fn clear_message_set_wire_format(&mut self) {
5116        self.message_set_wire_format = ::std::option::Option::None;
5117    }
5118
5119    pub fn has_message_set_wire_format(&self) -> bool {
5120        self.message_set_wire_format.is_some()
5121    }
5122
5123    // Param is passed by value, moved
5124    pub fn set_message_set_wire_format(&mut self, v: bool) {
5125        self.message_set_wire_format = ::std::option::Option::Some(v);
5126    }
5127
5128    // optional bool no_standard_descriptor_accessor = 2;
5129
5130
5131    pub fn get_no_standard_descriptor_accessor(&self) -> bool {
5132        self.no_standard_descriptor_accessor.unwrap_or(false)
5133    }
5134    pub fn clear_no_standard_descriptor_accessor(&mut self) {
5135        self.no_standard_descriptor_accessor = ::std::option::Option::None;
5136    }
5137
5138    pub fn has_no_standard_descriptor_accessor(&self) -> bool {
5139        self.no_standard_descriptor_accessor.is_some()
5140    }
5141
5142    // Param is passed by value, moved
5143    pub fn set_no_standard_descriptor_accessor(&mut self, v: bool) {
5144        self.no_standard_descriptor_accessor = ::std::option::Option::Some(v);
5145    }
5146
5147    // optional bool deprecated = 3;
5148
5149
5150    pub fn get_deprecated(&self) -> bool {
5151        self.deprecated.unwrap_or(false)
5152    }
5153    pub fn clear_deprecated(&mut self) {
5154        self.deprecated = ::std::option::Option::None;
5155    }
5156
5157    pub fn has_deprecated(&self) -> bool {
5158        self.deprecated.is_some()
5159    }
5160
5161    // Param is passed by value, moved
5162    pub fn set_deprecated(&mut self, v: bool) {
5163        self.deprecated = ::std::option::Option::Some(v);
5164    }
5165
5166    // optional bool map_entry = 7;
5167
5168
5169    pub fn get_map_entry(&self) -> bool {
5170        self.map_entry.unwrap_or(false)
5171    }
5172    pub fn clear_map_entry(&mut self) {
5173        self.map_entry = ::std::option::Option::None;
5174    }
5175
5176    pub fn has_map_entry(&self) -> bool {
5177        self.map_entry.is_some()
5178    }
5179
5180    // Param is passed by value, moved
5181    pub fn set_map_entry(&mut self, v: bool) {
5182        self.map_entry = ::std::option::Option::Some(v);
5183    }
5184
5185    // repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999;
5186
5187
5188    pub fn get_uninterpreted_option(&self) -> &[UninterpretedOption] {
5189        &self.uninterpreted_option
5190    }
5191    pub fn clear_uninterpreted_option(&mut self) {
5192        self.uninterpreted_option.clear();
5193    }
5194
5195    // Param is passed by value, moved
5196    pub fn set_uninterpreted_option(&mut self, v: ::protobuf::RepeatedField<UninterpretedOption>) {
5197        self.uninterpreted_option = v;
5198    }
5199
5200    // Mutable pointer to the field.
5201    pub fn mut_uninterpreted_option(&mut self) -> &mut ::protobuf::RepeatedField<UninterpretedOption> {
5202        &mut self.uninterpreted_option
5203    }
5204
5205    // Take field
5206    pub fn take_uninterpreted_option(&mut self) -> ::protobuf::RepeatedField<UninterpretedOption> {
5207        ::std::mem::replace(&mut self.uninterpreted_option, ::protobuf::RepeatedField::new())
5208    }
5209}
5210
5211impl ::protobuf::Message for MessageOptions {
5212    fn is_initialized(&self) -> bool {
5213        for v in &self.uninterpreted_option {
5214            if !v.is_initialized() {
5215                return false;
5216            }
5217        };
5218        true
5219    }
5220
5221    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream) -> ::protobuf::ProtobufResult<()> {
5222        while !is.eof()? {
5223            let (field_number, wire_type) = is.read_tag_unpack()?;
5224            match field_number {
5225                1 => {
5226                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
5227                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
5228                    }
5229                    let tmp = is.read_bool()?;
5230                    self.message_set_wire_format = ::std::option::Option::Some(tmp);
5231                },
5232                2 => {
5233                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
5234                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
5235                    }
5236                    let tmp = is.read_bool()?;
5237                    self.no_standard_descriptor_accessor = ::std::option::Option::Some(tmp);
5238                },
5239                3 => {
5240                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
5241                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
5242                    }
5243                    let tmp = is.read_bool()?;
5244                    self.deprecated = ::std::option::Option::Some(tmp);
5245                },
5246                7 => {
5247                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
5248                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
5249                    }
5250                    let tmp = is.read_bool()?;
5251                    self.map_entry = ::std::option::Option::Some(tmp);
5252                },
5253                999 => {
5254                    ::protobuf::rt::read_repeated_message_into(wire_type, is, &mut self.uninterpreted_option)?;
5255                },
5256                _ => {
5257                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
5258                },
5259            };
5260        }
5261        ::std::result::Result::Ok(())
5262    }
5263
5264    // Compute sizes of nested messages
5265    #[allow(unused_variables)]
5266    fn compute_size(&self) -> u32 {
5267        let mut my_size = 0;
5268        if let Some(v) = self.message_set_wire_format {
5269            my_size += 2;
5270        }
5271        if let Some(v) = self.no_standard_descriptor_accessor {
5272            my_size += 2;
5273        }
5274        if let Some(v) = self.deprecated {
5275            my_size += 2;
5276        }
5277        if let Some(v) = self.map_entry {
5278            my_size += 2;
5279        }
5280        for value in &self.uninterpreted_option {
5281            let len = value.compute_size();
5282            my_size += 2 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
5283        };
5284        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
5285        self.cached_size.set(my_size);
5286        my_size
5287    }
5288
5289    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream) -> ::protobuf::ProtobufResult<()> {
5290        if let Some(v) = self.message_set_wire_format {
5291            os.write_bool(1, v)?;
5292        }
5293        if let Some(v) = self.no_standard_descriptor_accessor {
5294            os.write_bool(2, v)?;
5295        }
5296        if let Some(v) = self.deprecated {
5297            os.write_bool(3, v)?;
5298        }
5299        if let Some(v) = self.map_entry {
5300            os.write_bool(7, v)?;
5301        }
5302        for v in &self.uninterpreted_option {
5303            os.write_tag(999, ::protobuf::wire_format::WireTypeLengthDelimited)?;
5304            os.write_raw_varint32(v.get_cached_size())?;
5305            v.write_to_with_cached_sizes(os)?;
5306        };
5307        os.write_unknown_fields(self.get_unknown_fields())?;
5308        ::std::result::Result::Ok(())
5309    }
5310
5311    fn get_cached_size(&self) -> u32 {
5312        self.cached_size.get()
5313    }
5314
5315    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
5316        &self.unknown_fields
5317    }
5318
5319    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
5320        &mut self.unknown_fields
5321    }
5322
5323    fn as_any(&self) -> &dyn (::std::any::Any) {
5324        self as &dyn (::std::any::Any)
5325    }
5326    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
5327        self as &mut dyn (::std::any::Any)
5328    }
5329    fn into_any(self: Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
5330        self
5331    }
5332
5333    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
5334        Self::descriptor_static()
5335    }
5336
5337    fn new() -> MessageOptions {
5338        MessageOptions::new()
5339    }
5340
5341    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
5342        static mut descriptor: ::protobuf::lazy::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::lazy::Lazy {
5343            lock: ::protobuf::lazy::ONCE_INIT,
5344            ptr: 0 as *const ::protobuf::reflect::MessageDescriptor,
5345        };
5346        unsafe {
5347            descriptor.get(|| {
5348                let mut fields = ::std::vec::Vec::new();
5349                fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeBool>(
5350                    "message_set_wire_format",
5351                    |m: &MessageOptions| { &m.message_set_wire_format },
5352                    |m: &mut MessageOptions| { &mut m.message_set_wire_format },
5353                ));
5354                fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeBool>(
5355                    "no_standard_descriptor_accessor",
5356                    |m: &MessageOptions| { &m.no_standard_descriptor_accessor },
5357                    |m: &mut MessageOptions| { &mut m.no_standard_descriptor_accessor },
5358                ));
5359                fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeBool>(
5360                    "deprecated",
5361                    |m: &MessageOptions| { &m.deprecated },
5362                    |m: &mut MessageOptions| { &mut m.deprecated },
5363                ));
5364                fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeBool>(
5365                    "map_entry",
5366                    |m: &MessageOptions| { &m.map_entry },
5367                    |m: &mut MessageOptions| { &mut m.map_entry },
5368                ));
5369                fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<UninterpretedOption>>(
5370                    "uninterpreted_option",
5371                    |m: &MessageOptions| { &m.uninterpreted_option },
5372                    |m: &mut MessageOptions| { &mut m.uninterpreted_option },
5373                ));
5374                ::protobuf::reflect::MessageDescriptor::new::<MessageOptions>(
5375                    "MessageOptions",
5376                    fields,
5377                    file_descriptor_proto()
5378                )
5379            })
5380        }
5381    }
5382
5383    fn default_instance() -> &'static MessageOptions {
5384        static mut instance: ::protobuf::lazy::Lazy<MessageOptions> = ::protobuf::lazy::Lazy {
5385            lock: ::protobuf::lazy::ONCE_INIT,
5386            ptr: 0 as *const MessageOptions,
5387        };
5388        unsafe {
5389            instance.get(MessageOptions::new)
5390        }
5391    }
5392}
5393
5394impl ::protobuf::Clear for MessageOptions {
5395    fn clear(&mut self) {
5396        self.message_set_wire_format = ::std::option::Option::None;
5397        self.no_standard_descriptor_accessor = ::std::option::Option::None;
5398        self.deprecated = ::std::option::Option::None;
5399        self.map_entry = ::std::option::Option::None;
5400        self.uninterpreted_option.clear();
5401        self.unknown_fields.clear();
5402    }
5403}
5404
5405impl ::std::fmt::Debug for MessageOptions {
5406    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
5407        ::protobuf::text_format::fmt(self, f)
5408    }
5409}
5410
5411impl ::protobuf::reflect::ProtobufValue for MessageOptions {
5412    fn as_ref(&self) -> ::protobuf::reflect::ProtobufValueRef {
5413        ::protobuf::reflect::ProtobufValueRef::Message(self)
5414    }
5415}
5416
5417#[derive(PartialEq,Clone,Default)]
5418#[cfg_attr(feature = "with-serde", derive(Serialize, Deserialize))]
5419pub struct FieldOptions {
5420    // message fields
5421    ctype: ::std::option::Option<FieldOptions_CType>,
5422    packed: ::std::option::Option<bool>,
5423    jstype: ::std::option::Option<FieldOptions_JSType>,
5424    lazy: ::std::option::Option<bool>,
5425    deprecated: ::std::option::Option<bool>,
5426    weak: ::std::option::Option<bool>,
5427    uninterpreted_option: ::protobuf::RepeatedField<UninterpretedOption>,
5428    // special fields
5429    #[cfg_attr(feature = "with-serde", serde(skip))]
5430    pub unknown_fields: ::protobuf::UnknownFields,
5431    #[cfg_attr(feature = "with-serde", serde(skip))]
5432    pub cached_size: ::protobuf::CachedSize,
5433}
5434
5435impl<'a> ::std::default::Default for &'a FieldOptions {
5436    fn default() -> &'a FieldOptions {
5437        <FieldOptions as ::protobuf::Message>::default_instance()
5438    }
5439}
5440
5441impl FieldOptions {
5442    pub fn new() -> FieldOptions {
5443        ::std::default::Default::default()
5444    }
5445
5446    // optional .google.protobuf.FieldOptions.CType ctype = 1;
5447
5448
5449    pub fn get_ctype(&self) -> FieldOptions_CType {
5450        self.ctype.unwrap_or(FieldOptions_CType::STRING)
5451    }
5452    pub fn clear_ctype(&mut self) {
5453        self.ctype = ::std::option::Option::None;
5454    }
5455
5456    pub fn has_ctype(&self) -> bool {
5457        self.ctype.is_some()
5458    }
5459
5460    // Param is passed by value, moved
5461    pub fn set_ctype(&mut self, v: FieldOptions_CType) {
5462        self.ctype = ::std::option::Option::Some(v);
5463    }
5464
5465    // optional bool packed = 2;
5466
5467
5468    pub fn get_packed(&self) -> bool {
5469        self.packed.unwrap_or(false)
5470    }
5471    pub fn clear_packed(&mut self) {
5472        self.packed = ::std::option::Option::None;
5473    }
5474
5475    pub fn has_packed(&self) -> bool {
5476        self.packed.is_some()
5477    }
5478
5479    // Param is passed by value, moved
5480    pub fn set_packed(&mut self, v: bool) {
5481        self.packed = ::std::option::Option::Some(v);
5482    }
5483
5484    // optional .google.protobuf.FieldOptions.JSType jstype = 6;
5485
5486
5487    pub fn get_jstype(&self) -> FieldOptions_JSType {
5488        self.jstype.unwrap_or(FieldOptions_JSType::JS_NORMAL)
5489    }
5490    pub fn clear_jstype(&mut self) {
5491        self.jstype = ::std::option::Option::None;
5492    }
5493
5494    pub fn has_jstype(&self) -> bool {
5495        self.jstype.is_some()
5496    }
5497
5498    // Param is passed by value, moved
5499    pub fn set_jstype(&mut self, v: FieldOptions_JSType) {
5500        self.jstype = ::std::option::Option::Some(v);
5501    }
5502
5503    // optional bool lazy = 5;
5504
5505
5506    pub fn get_lazy(&self) -> bool {
5507        self.lazy.unwrap_or(false)
5508    }
5509    pub fn clear_lazy(&mut self) {
5510        self.lazy = ::std::option::Option::None;
5511    }
5512
5513    pub fn has_lazy(&self) -> bool {
5514        self.lazy.is_some()
5515    }
5516
5517    // Param is passed by value, moved
5518    pub fn set_lazy(&mut self, v: bool) {
5519        self.lazy = ::std::option::Option::Some(v);
5520    }
5521
5522    // optional bool deprecated = 3;
5523
5524
5525    pub fn get_deprecated(&self) -> bool {
5526        self.deprecated.unwrap_or(false)
5527    }
5528    pub fn clear_deprecated(&mut self) {
5529        self.deprecated = ::std::option::Option::None;
5530    }
5531
5532    pub fn has_deprecated(&self) -> bool {
5533        self.deprecated.is_some()
5534    }
5535
5536    // Param is passed by value, moved
5537    pub fn set_deprecated(&mut self, v: bool) {
5538        self.deprecated = ::std::option::Option::Some(v);
5539    }
5540
5541    // optional bool weak = 10;
5542
5543
5544    pub fn get_weak(&self) -> bool {
5545        self.weak.unwrap_or(false)
5546    }
5547    pub fn clear_weak(&mut self) {
5548        self.weak = ::std::option::Option::None;
5549    }
5550
5551    pub fn has_weak(&self) -> bool {
5552        self.weak.is_some()
5553    }
5554
5555    // Param is passed by value, moved
5556    pub fn set_weak(&mut self, v: bool) {
5557        self.weak = ::std::option::Option::Some(v);
5558    }
5559
5560    // repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999;
5561
5562
5563    pub fn get_uninterpreted_option(&self) -> &[UninterpretedOption] {
5564        &self.uninterpreted_option
5565    }
5566    pub fn clear_uninterpreted_option(&mut self) {
5567        self.uninterpreted_option.clear();
5568    }
5569
5570    // Param is passed by value, moved
5571    pub fn set_uninterpreted_option(&mut self, v: ::protobuf::RepeatedField<UninterpretedOption>) {
5572        self.uninterpreted_option = v;
5573    }
5574
5575    // Mutable pointer to the field.
5576    pub fn mut_uninterpreted_option(&mut self) -> &mut ::protobuf::RepeatedField<UninterpretedOption> {
5577        &mut self.uninterpreted_option
5578    }
5579
5580    // Take field
5581    pub fn take_uninterpreted_option(&mut self) -> ::protobuf::RepeatedField<UninterpretedOption> {
5582        ::std::mem::replace(&mut self.uninterpreted_option, ::protobuf::RepeatedField::new())
5583    }
5584}
5585
5586impl ::protobuf::Message for FieldOptions {
5587    fn is_initialized(&self) -> bool {
5588        for v in &self.uninterpreted_option {
5589            if !v.is_initialized() {
5590                return false;
5591            }
5592        };
5593        true
5594    }
5595
5596    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream) -> ::protobuf::ProtobufResult<()> {
5597        while !is.eof()? {
5598            let (field_number, wire_type) = is.read_tag_unpack()?;
5599            match field_number {
5600                1 => {
5601                    ::protobuf::rt::read_proto2_enum_with_unknown_fields_into(wire_type, is, &mut self.ctype, 1, &mut self.unknown_fields)?
5602                },
5603                2 => {
5604                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
5605                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
5606                    }
5607                    let tmp = is.read_bool()?;
5608                    self.packed = ::std::option::Option::Some(tmp);
5609                },
5610                6 => {
5611                    ::protobuf::rt::read_proto2_enum_with_unknown_fields_into(wire_type, is, &mut self.jstype, 6, &mut self.unknown_fields)?
5612                },
5613                5 => {
5614                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
5615                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
5616                    }
5617                    let tmp = is.read_bool()?;
5618                    self.lazy = ::std::option::Option::Some(tmp);
5619                },
5620                3 => {
5621                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
5622                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
5623                    }
5624                    let tmp = is.read_bool()?;
5625                    self.deprecated = ::std::option::Option::Some(tmp);
5626                },
5627                10 => {
5628                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
5629                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
5630                    }
5631                    let tmp = is.read_bool()?;
5632                    self.weak = ::std::option::Option::Some(tmp);
5633                },
5634                999 => {
5635                    ::protobuf::rt::read_repeated_message_into(wire_type, is, &mut self.uninterpreted_option)?;
5636                },
5637                _ => {
5638                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
5639                },
5640            };
5641        }
5642        ::std::result::Result::Ok(())
5643    }
5644
5645    // Compute sizes of nested messages
5646    #[allow(unused_variables)]
5647    fn compute_size(&self) -> u32 {
5648        let mut my_size = 0;
5649        if let Some(v) = self.ctype {
5650            my_size += ::protobuf::rt::enum_size(1, v);
5651        }
5652        if let Some(v) = self.packed {
5653            my_size += 2;
5654        }
5655        if let Some(v) = self.jstype {
5656            my_size += ::protobuf::rt::enum_size(6, v);
5657        }
5658        if let Some(v) = self.lazy {
5659            my_size += 2;
5660        }
5661        if let Some(v) = self.deprecated {
5662            my_size += 2;
5663        }
5664        if let Some(v) = self.weak {
5665            my_size += 2;
5666        }
5667        for value in &self.uninterpreted_option {
5668            let len = value.compute_size();
5669            my_size += 2 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
5670        };
5671        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
5672        self.cached_size.set(my_size);
5673        my_size
5674    }
5675
5676    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream) -> ::protobuf::ProtobufResult<()> {
5677        if let Some(v) = self.ctype {
5678            os.write_enum(1, v.value())?;
5679        }
5680        if let Some(v) = self.packed {
5681            os.write_bool(2, v)?;
5682        }
5683        if let Some(v) = self.jstype {
5684            os.write_enum(6, v.value())?;
5685        }
5686        if let Some(v) = self.lazy {
5687            os.write_bool(5, v)?;
5688        }
5689        if let Some(v) = self.deprecated {
5690            os.write_bool(3, v)?;
5691        }
5692        if let Some(v) = self.weak {
5693            os.write_bool(10, v)?;
5694        }
5695        for v in &self.uninterpreted_option {
5696            os.write_tag(999, ::protobuf::wire_format::WireTypeLengthDelimited)?;
5697            os.write_raw_varint32(v.get_cached_size())?;
5698            v.write_to_with_cached_sizes(os)?;
5699        };
5700        os.write_unknown_fields(self.get_unknown_fields())?;
5701        ::std::result::Result::Ok(())
5702    }
5703
5704    fn get_cached_size(&self) -> u32 {
5705        self.cached_size.get()
5706    }
5707
5708    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
5709        &self.unknown_fields
5710    }
5711
5712    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
5713        &mut self.unknown_fields
5714    }
5715
5716    fn as_any(&self) -> &dyn (::std::any::Any) {
5717        self as &dyn (::std::any::Any)
5718    }
5719    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
5720        self as &mut dyn (::std::any::Any)
5721    }
5722    fn into_any(self: Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
5723        self
5724    }
5725
5726    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
5727        Self::descriptor_static()
5728    }
5729
5730    fn new() -> FieldOptions {
5731        FieldOptions::new()
5732    }
5733
5734    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
5735        static mut descriptor: ::protobuf::lazy::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::lazy::Lazy {
5736            lock: ::protobuf::lazy::ONCE_INIT,
5737            ptr: 0 as *const ::protobuf::reflect::MessageDescriptor,
5738        };
5739        unsafe {
5740            descriptor.get(|| {
5741                let mut fields = ::std::vec::Vec::new();
5742                fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeEnum<FieldOptions_CType>>(
5743                    "ctype",
5744                    |m: &FieldOptions| { &m.ctype },
5745                    |m: &mut FieldOptions| { &mut m.ctype },
5746                ));
5747                fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeBool>(
5748                    "packed",
5749                    |m: &FieldOptions| { &m.packed },
5750                    |m: &mut FieldOptions| { &mut m.packed },
5751                ));
5752                fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeEnum<FieldOptions_JSType>>(
5753                    "jstype",
5754                    |m: &FieldOptions| { &m.jstype },
5755                    |m: &mut FieldOptions| { &mut m.jstype },
5756                ));
5757                fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeBool>(
5758                    "lazy",
5759                    |m: &FieldOptions| { &m.lazy },
5760                    |m: &mut FieldOptions| { &mut m.lazy },
5761                ));
5762                fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeBool>(
5763                    "deprecated",
5764                    |m: &FieldOptions| { &m.deprecated },
5765                    |m: &mut FieldOptions| { &mut m.deprecated },
5766                ));
5767                fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeBool>(
5768                    "weak",
5769                    |m: &FieldOptions| { &m.weak },
5770                    |m: &mut FieldOptions| { &mut m.weak },
5771                ));
5772                fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<UninterpretedOption>>(
5773                    "uninterpreted_option",
5774                    |m: &FieldOptions| { &m.uninterpreted_option },
5775                    |m: &mut FieldOptions| { &mut m.uninterpreted_option },
5776                ));
5777                ::protobuf::reflect::MessageDescriptor::new::<FieldOptions>(
5778                    "FieldOptions",
5779                    fields,
5780                    file_descriptor_proto()
5781                )
5782            })
5783        }
5784    }
5785
5786    fn default_instance() -> &'static FieldOptions {
5787        static mut instance: ::protobuf::lazy::Lazy<FieldOptions> = ::protobuf::lazy::Lazy {
5788            lock: ::protobuf::lazy::ONCE_INIT,
5789            ptr: 0 as *const FieldOptions,
5790        };
5791        unsafe {
5792            instance.get(FieldOptions::new)
5793        }
5794    }
5795}
5796
5797impl ::protobuf::Clear for FieldOptions {
5798    fn clear(&mut self) {
5799        self.ctype = ::std::option::Option::None;
5800        self.packed = ::std::option::Option::None;
5801        self.jstype = ::std::option::Option::None;
5802        self.lazy = ::std::option::Option::None;
5803        self.deprecated = ::std::option::Option::None;
5804        self.weak = ::std::option::Option::None;
5805        self.uninterpreted_option.clear();
5806        self.unknown_fields.clear();
5807    }
5808}
5809
5810impl ::std::fmt::Debug for FieldOptions {
5811    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
5812        ::protobuf::text_format::fmt(self, f)
5813    }
5814}
5815
5816impl ::protobuf::reflect::ProtobufValue for FieldOptions {
5817    fn as_ref(&self) -> ::protobuf::reflect::ProtobufValueRef {
5818        ::protobuf::reflect::ProtobufValueRef::Message(self)
5819    }
5820}
5821
5822#[derive(Clone,PartialEq,Eq,Debug,Hash)]
5823#[cfg_attr(feature = "with-serde", derive(Serialize, Deserialize))]
5824pub enum FieldOptions_CType {
5825    STRING = 0,
5826    CORD = 1,
5827    STRING_PIECE = 2,
5828}
5829
5830impl ::protobuf::ProtobufEnum for FieldOptions_CType {
5831    fn value(&self) -> i32 {
5832        *self as i32
5833    }
5834
5835    fn from_i32(value: i32) -> ::std::option::Option<FieldOptions_CType> {
5836        match value {
5837            0 => ::std::option::Option::Some(FieldOptions_CType::STRING),
5838            1 => ::std::option::Option::Some(FieldOptions_CType::CORD),
5839            2 => ::std::option::Option::Some(FieldOptions_CType::STRING_PIECE),
5840            _ => ::std::option::Option::None
5841        }
5842    }
5843
5844    fn values() -> &'static [Self] {
5845        static values: &'static [FieldOptions_CType] = &[
5846            FieldOptions_CType::STRING,
5847            FieldOptions_CType::CORD,
5848            FieldOptions_CType::STRING_PIECE,
5849        ];
5850        values
5851    }
5852
5853    fn enum_descriptor_static() -> &'static ::protobuf::reflect::EnumDescriptor {
5854        static mut descriptor: ::protobuf::lazy::Lazy<::protobuf::reflect::EnumDescriptor> = ::protobuf::lazy::Lazy {
5855            lock: ::protobuf::lazy::ONCE_INIT,
5856            ptr: 0 as *const ::protobuf::reflect::EnumDescriptor,
5857        };
5858        unsafe {
5859            descriptor.get(|| {
5860                ::protobuf::reflect::EnumDescriptor::new("FieldOptions_CType", file_descriptor_proto())
5861            })
5862        }
5863    }
5864}
5865
5866impl ::std::marker::Copy for FieldOptions_CType {
5867}
5868
5869impl ::std::default::Default for FieldOptions_CType {
5870    fn default() -> Self {
5871        FieldOptions_CType::STRING
5872    }
5873}
5874
5875impl ::protobuf::reflect::ProtobufValue for FieldOptions_CType {
5876    fn as_ref(&self) -> ::protobuf::reflect::ProtobufValueRef {
5877        ::protobuf::reflect::ProtobufValueRef::Enum(self.descriptor())
5878    }
5879}
5880
5881#[derive(Clone,PartialEq,Eq,Debug,Hash)]
5882#[cfg_attr(feature = "with-serde", derive(Serialize, Deserialize))]
5883pub enum FieldOptions_JSType {
5884    JS_NORMAL = 0,
5885    JS_STRING = 1,
5886    JS_NUMBER = 2,
5887}
5888
5889impl ::protobuf::ProtobufEnum for FieldOptions_JSType {
5890    fn value(&self) -> i32 {
5891        *self as i32
5892    }
5893
5894    fn from_i32(value: i32) -> ::std::option::Option<FieldOptions_JSType> {
5895        match value {
5896            0 => ::std::option::Option::Some(FieldOptions_JSType::JS_NORMAL),
5897            1 => ::std::option::Option::Some(FieldOptions_JSType::JS_STRING),
5898            2 => ::std::option::Option::Some(FieldOptions_JSType::JS_NUMBER),
5899            _ => ::std::option::Option::None
5900        }
5901    }
5902
5903    fn values() -> &'static [Self] {
5904        static values: &'static [FieldOptions_JSType] = &[
5905            FieldOptions_JSType::JS_NORMAL,
5906            FieldOptions_JSType::JS_STRING,
5907            FieldOptions_JSType::JS_NUMBER,
5908        ];
5909        values
5910    }
5911
5912    fn enum_descriptor_static() -> &'static ::protobuf::reflect::EnumDescriptor {
5913        static mut descriptor: ::protobuf::lazy::Lazy<::protobuf::reflect::EnumDescriptor> = ::protobuf::lazy::Lazy {
5914            lock: ::protobuf::lazy::ONCE_INIT,
5915            ptr: 0 as *const ::protobuf::reflect::EnumDescriptor,
5916        };
5917        unsafe {
5918            descriptor.get(|| {
5919                ::protobuf::reflect::EnumDescriptor::new("FieldOptions_JSType", file_descriptor_proto())
5920            })
5921        }
5922    }
5923}
5924
5925impl ::std::marker::Copy for FieldOptions_JSType {
5926}
5927
5928impl ::std::default::Default for FieldOptions_JSType {
5929    fn default() -> Self {
5930        FieldOptions_JSType::JS_NORMAL
5931    }
5932}
5933
5934impl ::protobuf::reflect::ProtobufValue for FieldOptions_JSType {
5935    fn as_ref(&self) -> ::protobuf::reflect::ProtobufValueRef {
5936        ::protobuf::reflect::ProtobufValueRef::Enum(self.descriptor())
5937    }
5938}
5939
5940#[derive(PartialEq,Clone,Default)]
5941#[cfg_attr(feature = "with-serde", derive(Serialize, Deserialize))]
5942pub struct OneofOptions {
5943    // message fields
5944    uninterpreted_option: ::protobuf::RepeatedField<UninterpretedOption>,
5945    // special fields
5946    #[cfg_attr(feature = "with-serde", serde(skip))]
5947    pub unknown_fields: ::protobuf::UnknownFields,
5948    #[cfg_attr(feature = "with-serde", serde(skip))]
5949    pub cached_size: ::protobuf::CachedSize,
5950}
5951
5952impl<'a> ::std::default::Default for &'a OneofOptions {
5953    fn default() -> &'a OneofOptions {
5954        <OneofOptions as ::protobuf::Message>::default_instance()
5955    }
5956}
5957
5958impl OneofOptions {
5959    pub fn new() -> OneofOptions {
5960        ::std::default::Default::default()
5961    }
5962
5963    // repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999;
5964
5965
5966    pub fn get_uninterpreted_option(&self) -> &[UninterpretedOption] {
5967        &self.uninterpreted_option
5968    }
5969    pub fn clear_uninterpreted_option(&mut self) {
5970        self.uninterpreted_option.clear();
5971    }
5972
5973    // Param is passed by value, moved
5974    pub fn set_uninterpreted_option(&mut self, v: ::protobuf::RepeatedField<UninterpretedOption>) {
5975        self.uninterpreted_option = v;
5976    }
5977
5978    // Mutable pointer to the field.
5979    pub fn mut_uninterpreted_option(&mut self) -> &mut ::protobuf::RepeatedField<UninterpretedOption> {
5980        &mut self.uninterpreted_option
5981    }
5982
5983    // Take field
5984    pub fn take_uninterpreted_option(&mut self) -> ::protobuf::RepeatedField<UninterpretedOption> {
5985        ::std::mem::replace(&mut self.uninterpreted_option, ::protobuf::RepeatedField::new())
5986    }
5987}
5988
5989impl ::protobuf::Message for OneofOptions {
5990    fn is_initialized(&self) -> bool {
5991        for v in &self.uninterpreted_option {
5992            if !v.is_initialized() {
5993                return false;
5994            }
5995        };
5996        true
5997    }
5998
5999    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream) -> ::protobuf::ProtobufResult<()> {
6000        while !is.eof()? {
6001            let (field_number, wire_type) = is.read_tag_unpack()?;
6002            match field_number {
6003                999 => {
6004                    ::protobuf::rt::read_repeated_message_into(wire_type, is, &mut self.uninterpreted_option)?;
6005                },
6006                _ => {
6007                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
6008                },
6009            };
6010        }
6011        ::std::result::Result::Ok(())
6012    }
6013
6014    // Compute sizes of nested messages
6015    #[allow(unused_variables)]
6016    fn compute_size(&self) -> u32 {
6017        let mut my_size = 0;
6018        for value in &self.uninterpreted_option {
6019            let len = value.compute_size();
6020            my_size += 2 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
6021        };
6022        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
6023        self.cached_size.set(my_size);
6024        my_size
6025    }
6026
6027    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream) -> ::protobuf::ProtobufResult<()> {
6028        for v in &self.uninterpreted_option {
6029            os.write_tag(999, ::protobuf::wire_format::WireTypeLengthDelimited)?;
6030            os.write_raw_varint32(v.get_cached_size())?;
6031            v.write_to_with_cached_sizes(os)?;
6032        };
6033        os.write_unknown_fields(self.get_unknown_fields())?;
6034        ::std::result::Result::Ok(())
6035    }
6036
6037    fn get_cached_size(&self) -> u32 {
6038        self.cached_size.get()
6039    }
6040
6041    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
6042        &self.unknown_fields
6043    }
6044
6045    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
6046        &mut self.unknown_fields
6047    }
6048
6049    fn as_any(&self) -> &dyn (::std::any::Any) {
6050        self as &dyn (::std::any::Any)
6051    }
6052    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
6053        self as &mut dyn (::std::any::Any)
6054    }
6055    fn into_any(self: Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
6056        self
6057    }
6058
6059    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
6060        Self::descriptor_static()
6061    }
6062
6063    fn new() -> OneofOptions {
6064        OneofOptions::new()
6065    }
6066
6067    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
6068        static mut descriptor: ::protobuf::lazy::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::lazy::Lazy {
6069            lock: ::protobuf::lazy::ONCE_INIT,
6070            ptr: 0 as *const ::protobuf::reflect::MessageDescriptor,
6071        };
6072        unsafe {
6073            descriptor.get(|| {
6074                let mut fields = ::std::vec::Vec::new();
6075                fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<UninterpretedOption>>(
6076                    "uninterpreted_option",
6077                    |m: &OneofOptions| { &m.uninterpreted_option },
6078                    |m: &mut OneofOptions| { &mut m.uninterpreted_option },
6079                ));
6080                ::protobuf::reflect::MessageDescriptor::new::<OneofOptions>(
6081                    "OneofOptions",
6082                    fields,
6083                    file_descriptor_proto()
6084                )
6085            })
6086        }
6087    }
6088
6089    fn default_instance() -> &'static OneofOptions {
6090        static mut instance: ::protobuf::lazy::Lazy<OneofOptions> = ::protobuf::lazy::Lazy {
6091            lock: ::protobuf::lazy::ONCE_INIT,
6092            ptr: 0 as *const OneofOptions,
6093        };
6094        unsafe {
6095            instance.get(OneofOptions::new)
6096        }
6097    }
6098}
6099
6100impl ::protobuf::Clear for OneofOptions {
6101    fn clear(&mut self) {
6102        self.uninterpreted_option.clear();
6103        self.unknown_fields.clear();
6104    }
6105}
6106
6107impl ::std::fmt::Debug for OneofOptions {
6108    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
6109        ::protobuf::text_format::fmt(self, f)
6110    }
6111}
6112
6113impl ::protobuf::reflect::ProtobufValue for OneofOptions {
6114    fn as_ref(&self) -> ::protobuf::reflect::ProtobufValueRef {
6115        ::protobuf::reflect::ProtobufValueRef::Message(self)
6116    }
6117}
6118
6119#[derive(PartialEq,Clone,Default)]
6120#[cfg_attr(feature = "with-serde", derive(Serialize, Deserialize))]
6121pub struct EnumOptions {
6122    // message fields
6123    allow_alias: ::std::option::Option<bool>,
6124    deprecated: ::std::option::Option<bool>,
6125    uninterpreted_option: ::protobuf::RepeatedField<UninterpretedOption>,
6126    // special fields
6127    #[cfg_attr(feature = "with-serde", serde(skip))]
6128    pub unknown_fields: ::protobuf::UnknownFields,
6129    #[cfg_attr(feature = "with-serde", serde(skip))]
6130    pub cached_size: ::protobuf::CachedSize,
6131}
6132
6133impl<'a> ::std::default::Default for &'a EnumOptions {
6134    fn default() -> &'a EnumOptions {
6135        <EnumOptions as ::protobuf::Message>::default_instance()
6136    }
6137}
6138
6139impl EnumOptions {
6140    pub fn new() -> EnumOptions {
6141        ::std::default::Default::default()
6142    }
6143
6144    // optional bool allow_alias = 2;
6145
6146
6147    pub fn get_allow_alias(&self) -> bool {
6148        self.allow_alias.unwrap_or(false)
6149    }
6150    pub fn clear_allow_alias(&mut self) {
6151        self.allow_alias = ::std::option::Option::None;
6152    }
6153
6154    pub fn has_allow_alias(&self) -> bool {
6155        self.allow_alias.is_some()
6156    }
6157
6158    // Param is passed by value, moved
6159    pub fn set_allow_alias(&mut self, v: bool) {
6160        self.allow_alias = ::std::option::Option::Some(v);
6161    }
6162
6163    // optional bool deprecated = 3;
6164
6165
6166    pub fn get_deprecated(&self) -> bool {
6167        self.deprecated.unwrap_or(false)
6168    }
6169    pub fn clear_deprecated(&mut self) {
6170        self.deprecated = ::std::option::Option::None;
6171    }
6172
6173    pub fn has_deprecated(&self) -> bool {
6174        self.deprecated.is_some()
6175    }
6176
6177    // Param is passed by value, moved
6178    pub fn set_deprecated(&mut self, v: bool) {
6179        self.deprecated = ::std::option::Option::Some(v);
6180    }
6181
6182    // repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999;
6183
6184
6185    pub fn get_uninterpreted_option(&self) -> &[UninterpretedOption] {
6186        &self.uninterpreted_option
6187    }
6188    pub fn clear_uninterpreted_option(&mut self) {
6189        self.uninterpreted_option.clear();
6190    }
6191
6192    // Param is passed by value, moved
6193    pub fn set_uninterpreted_option(&mut self, v: ::protobuf::RepeatedField<UninterpretedOption>) {
6194        self.uninterpreted_option = v;
6195    }
6196
6197    // Mutable pointer to the field.
6198    pub fn mut_uninterpreted_option(&mut self) -> &mut ::protobuf::RepeatedField<UninterpretedOption> {
6199        &mut self.uninterpreted_option
6200    }
6201
6202    // Take field
6203    pub fn take_uninterpreted_option(&mut self) -> ::protobuf::RepeatedField<UninterpretedOption> {
6204        ::std::mem::replace(&mut self.uninterpreted_option, ::protobuf::RepeatedField::new())
6205    }
6206}
6207
6208impl ::protobuf::Message for EnumOptions {
6209    fn is_initialized(&self) -> bool {
6210        for v in &self.uninterpreted_option {
6211            if !v.is_initialized() {
6212                return false;
6213            }
6214        };
6215        true
6216    }
6217
6218    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream) -> ::protobuf::ProtobufResult<()> {
6219        while !is.eof()? {
6220            let (field_number, wire_type) = is.read_tag_unpack()?;
6221            match field_number {
6222                2 => {
6223                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
6224                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
6225                    }
6226                    let tmp = is.read_bool()?;
6227                    self.allow_alias = ::std::option::Option::Some(tmp);
6228                },
6229                3 => {
6230                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
6231                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
6232                    }
6233                    let tmp = is.read_bool()?;
6234                    self.deprecated = ::std::option::Option::Some(tmp);
6235                },
6236                999 => {
6237                    ::protobuf::rt::read_repeated_message_into(wire_type, is, &mut self.uninterpreted_option)?;
6238                },
6239                _ => {
6240                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
6241                },
6242            };
6243        }
6244        ::std::result::Result::Ok(())
6245    }
6246
6247    // Compute sizes of nested messages
6248    #[allow(unused_variables)]
6249    fn compute_size(&self) -> u32 {
6250        let mut my_size = 0;
6251        if let Some(v) = self.allow_alias {
6252            my_size += 2;
6253        }
6254        if let Some(v) = self.deprecated {
6255            my_size += 2;
6256        }
6257        for value in &self.uninterpreted_option {
6258            let len = value.compute_size();
6259            my_size += 2 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
6260        };
6261        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
6262        self.cached_size.set(my_size);
6263        my_size
6264    }
6265
6266    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream) -> ::protobuf::ProtobufResult<()> {
6267        if let Some(v) = self.allow_alias {
6268            os.write_bool(2, v)?;
6269        }
6270        if let Some(v) = self.deprecated {
6271            os.write_bool(3, v)?;
6272        }
6273        for v in &self.uninterpreted_option {
6274            os.write_tag(999, ::protobuf::wire_format::WireTypeLengthDelimited)?;
6275            os.write_raw_varint32(v.get_cached_size())?;
6276            v.write_to_with_cached_sizes(os)?;
6277        };
6278        os.write_unknown_fields(self.get_unknown_fields())?;
6279        ::std::result::Result::Ok(())
6280    }
6281
6282    fn get_cached_size(&self) -> u32 {
6283        self.cached_size.get()
6284    }
6285
6286    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
6287        &self.unknown_fields
6288    }
6289
6290    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
6291        &mut self.unknown_fields
6292    }
6293
6294    fn as_any(&self) -> &dyn (::std::any::Any) {
6295        self as &dyn (::std::any::Any)
6296    }
6297    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
6298        self as &mut dyn (::std::any::Any)
6299    }
6300    fn into_any(self: Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
6301        self
6302    }
6303
6304    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
6305        Self::descriptor_static()
6306    }
6307
6308    fn new() -> EnumOptions {
6309        EnumOptions::new()
6310    }
6311
6312    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
6313        static mut descriptor: ::protobuf::lazy::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::lazy::Lazy {
6314            lock: ::protobuf::lazy::ONCE_INIT,
6315            ptr: 0 as *const ::protobuf::reflect::MessageDescriptor,
6316        };
6317        unsafe {
6318            descriptor.get(|| {
6319                let mut fields = ::std::vec::Vec::new();
6320                fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeBool>(
6321                    "allow_alias",
6322                    |m: &EnumOptions| { &m.allow_alias },
6323                    |m: &mut EnumOptions| { &mut m.allow_alias },
6324                ));
6325                fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeBool>(
6326                    "deprecated",
6327                    |m: &EnumOptions| { &m.deprecated },
6328                    |m: &mut EnumOptions| { &mut m.deprecated },
6329                ));
6330                fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<UninterpretedOption>>(
6331                    "uninterpreted_option",
6332                    |m: &EnumOptions| { &m.uninterpreted_option },
6333                    |m: &mut EnumOptions| { &mut m.uninterpreted_option },
6334                ));
6335                ::protobuf::reflect::MessageDescriptor::new::<EnumOptions>(
6336                    "EnumOptions",
6337                    fields,
6338                    file_descriptor_proto()
6339                )
6340            })
6341        }
6342    }
6343
6344    fn default_instance() -> &'static EnumOptions {
6345        static mut instance: ::protobuf::lazy::Lazy<EnumOptions> = ::protobuf::lazy::Lazy {
6346            lock: ::protobuf::lazy::ONCE_INIT,
6347            ptr: 0 as *const EnumOptions,
6348        };
6349        unsafe {
6350            instance.get(EnumOptions::new)
6351        }
6352    }
6353}
6354
6355impl ::protobuf::Clear for EnumOptions {
6356    fn clear(&mut self) {
6357        self.allow_alias = ::std::option::Option::None;
6358        self.deprecated = ::std::option::Option::None;
6359        self.uninterpreted_option.clear();
6360        self.unknown_fields.clear();
6361    }
6362}
6363
6364impl ::std::fmt::Debug for EnumOptions {
6365    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
6366        ::protobuf::text_format::fmt(self, f)
6367    }
6368}
6369
6370impl ::protobuf::reflect::ProtobufValue for EnumOptions {
6371    fn as_ref(&self) -> ::protobuf::reflect::ProtobufValueRef {
6372        ::protobuf::reflect::ProtobufValueRef::Message(self)
6373    }
6374}
6375
6376#[derive(PartialEq,Clone,Default)]
6377#[cfg_attr(feature = "with-serde", derive(Serialize, Deserialize))]
6378pub struct EnumValueOptions {
6379    // message fields
6380    deprecated: ::std::option::Option<bool>,
6381    uninterpreted_option: ::protobuf::RepeatedField<UninterpretedOption>,
6382    // special fields
6383    #[cfg_attr(feature = "with-serde", serde(skip))]
6384    pub unknown_fields: ::protobuf::UnknownFields,
6385    #[cfg_attr(feature = "with-serde", serde(skip))]
6386    pub cached_size: ::protobuf::CachedSize,
6387}
6388
6389impl<'a> ::std::default::Default for &'a EnumValueOptions {
6390    fn default() -> &'a EnumValueOptions {
6391        <EnumValueOptions as ::protobuf::Message>::default_instance()
6392    }
6393}
6394
6395impl EnumValueOptions {
6396    pub fn new() -> EnumValueOptions {
6397        ::std::default::Default::default()
6398    }
6399
6400    // optional bool deprecated = 1;
6401
6402
6403    pub fn get_deprecated(&self) -> bool {
6404        self.deprecated.unwrap_or(false)
6405    }
6406    pub fn clear_deprecated(&mut self) {
6407        self.deprecated = ::std::option::Option::None;
6408    }
6409
6410    pub fn has_deprecated(&self) -> bool {
6411        self.deprecated.is_some()
6412    }
6413
6414    // Param is passed by value, moved
6415    pub fn set_deprecated(&mut self, v: bool) {
6416        self.deprecated = ::std::option::Option::Some(v);
6417    }
6418
6419    // repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999;
6420
6421
6422    pub fn get_uninterpreted_option(&self) -> &[UninterpretedOption] {
6423        &self.uninterpreted_option
6424    }
6425    pub fn clear_uninterpreted_option(&mut self) {
6426        self.uninterpreted_option.clear();
6427    }
6428
6429    // Param is passed by value, moved
6430    pub fn set_uninterpreted_option(&mut self, v: ::protobuf::RepeatedField<UninterpretedOption>) {
6431        self.uninterpreted_option = v;
6432    }
6433
6434    // Mutable pointer to the field.
6435    pub fn mut_uninterpreted_option(&mut self) -> &mut ::protobuf::RepeatedField<UninterpretedOption> {
6436        &mut self.uninterpreted_option
6437    }
6438
6439    // Take field
6440    pub fn take_uninterpreted_option(&mut self) -> ::protobuf::RepeatedField<UninterpretedOption> {
6441        ::std::mem::replace(&mut self.uninterpreted_option, ::protobuf::RepeatedField::new())
6442    }
6443}
6444
6445impl ::protobuf::Message for EnumValueOptions {
6446    fn is_initialized(&self) -> bool {
6447        for v in &self.uninterpreted_option {
6448            if !v.is_initialized() {
6449                return false;
6450            }
6451        };
6452        true
6453    }
6454
6455    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream) -> ::protobuf::ProtobufResult<()> {
6456        while !is.eof()? {
6457            let (field_number, wire_type) = is.read_tag_unpack()?;
6458            match field_number {
6459                1 => {
6460                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
6461                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
6462                    }
6463                    let tmp = is.read_bool()?;
6464                    self.deprecated = ::std::option::Option::Some(tmp);
6465                },
6466                999 => {
6467                    ::protobuf::rt::read_repeated_message_into(wire_type, is, &mut self.uninterpreted_option)?;
6468                },
6469                _ => {
6470                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
6471                },
6472            };
6473        }
6474        ::std::result::Result::Ok(())
6475    }
6476
6477    // Compute sizes of nested messages
6478    #[allow(unused_variables)]
6479    fn compute_size(&self) -> u32 {
6480        let mut my_size = 0;
6481        if let Some(v) = self.deprecated {
6482            my_size += 2;
6483        }
6484        for value in &self.uninterpreted_option {
6485            let len = value.compute_size();
6486            my_size += 2 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
6487        };
6488        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
6489        self.cached_size.set(my_size);
6490        my_size
6491    }
6492
6493    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream) -> ::protobuf::ProtobufResult<()> {
6494        if let Some(v) = self.deprecated {
6495            os.write_bool(1, v)?;
6496        }
6497        for v in &self.uninterpreted_option {
6498            os.write_tag(999, ::protobuf::wire_format::WireTypeLengthDelimited)?;
6499            os.write_raw_varint32(v.get_cached_size())?;
6500            v.write_to_with_cached_sizes(os)?;
6501        };
6502        os.write_unknown_fields(self.get_unknown_fields())?;
6503        ::std::result::Result::Ok(())
6504    }
6505
6506    fn get_cached_size(&self) -> u32 {
6507        self.cached_size.get()
6508    }
6509
6510    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
6511        &self.unknown_fields
6512    }
6513
6514    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
6515        &mut self.unknown_fields
6516    }
6517
6518    fn as_any(&self) -> &dyn (::std::any::Any) {
6519        self as &dyn (::std::any::Any)
6520    }
6521    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
6522        self as &mut dyn (::std::any::Any)
6523    }
6524    fn into_any(self: Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
6525        self
6526    }
6527
6528    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
6529        Self::descriptor_static()
6530    }
6531
6532    fn new() -> EnumValueOptions {
6533        EnumValueOptions::new()
6534    }
6535
6536    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
6537        static mut descriptor: ::protobuf::lazy::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::lazy::Lazy {
6538            lock: ::protobuf::lazy::ONCE_INIT,
6539            ptr: 0 as *const ::protobuf::reflect::MessageDescriptor,
6540        };
6541        unsafe {
6542            descriptor.get(|| {
6543                let mut fields = ::std::vec::Vec::new();
6544                fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeBool>(
6545                    "deprecated",
6546                    |m: &EnumValueOptions| { &m.deprecated },
6547                    |m: &mut EnumValueOptions| { &mut m.deprecated },
6548                ));
6549                fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<UninterpretedOption>>(
6550                    "uninterpreted_option",
6551                    |m: &EnumValueOptions| { &m.uninterpreted_option },
6552                    |m: &mut EnumValueOptions| { &mut m.uninterpreted_option },
6553                ));
6554                ::protobuf::reflect::MessageDescriptor::new::<EnumValueOptions>(
6555                    "EnumValueOptions",
6556                    fields,
6557                    file_descriptor_proto()
6558                )
6559            })
6560        }
6561    }
6562
6563    fn default_instance() -> &'static EnumValueOptions {
6564        static mut instance: ::protobuf::lazy::Lazy<EnumValueOptions> = ::protobuf::lazy::Lazy {
6565            lock: ::protobuf::lazy::ONCE_INIT,
6566            ptr: 0 as *const EnumValueOptions,
6567        };
6568        unsafe {
6569            instance.get(EnumValueOptions::new)
6570        }
6571    }
6572}
6573
6574impl ::protobuf::Clear for EnumValueOptions {
6575    fn clear(&mut self) {
6576        self.deprecated = ::std::option::Option::None;
6577        self.uninterpreted_option.clear();
6578        self.unknown_fields.clear();
6579    }
6580}
6581
6582impl ::std::fmt::Debug for EnumValueOptions {
6583    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
6584        ::protobuf::text_format::fmt(self, f)
6585    }
6586}
6587
6588impl ::protobuf::reflect::ProtobufValue for EnumValueOptions {
6589    fn as_ref(&self) -> ::protobuf::reflect::ProtobufValueRef {
6590        ::protobuf::reflect::ProtobufValueRef::Message(self)
6591    }
6592}
6593
6594#[derive(PartialEq,Clone,Default)]
6595#[cfg_attr(feature = "with-serde", derive(Serialize, Deserialize))]
6596pub struct ServiceOptions {
6597    // message fields
6598    deprecated: ::std::option::Option<bool>,
6599    uninterpreted_option: ::protobuf::RepeatedField<UninterpretedOption>,
6600    // special fields
6601    #[cfg_attr(feature = "with-serde", serde(skip))]
6602    pub unknown_fields: ::protobuf::UnknownFields,
6603    #[cfg_attr(feature = "with-serde", serde(skip))]
6604    pub cached_size: ::protobuf::CachedSize,
6605}
6606
6607impl<'a> ::std::default::Default for &'a ServiceOptions {
6608    fn default() -> &'a ServiceOptions {
6609        <ServiceOptions as ::protobuf::Message>::default_instance()
6610    }
6611}
6612
6613impl ServiceOptions {
6614    pub fn new() -> ServiceOptions {
6615        ::std::default::Default::default()
6616    }
6617
6618    // optional bool deprecated = 33;
6619
6620
6621    pub fn get_deprecated(&self) -> bool {
6622        self.deprecated.unwrap_or(false)
6623    }
6624    pub fn clear_deprecated(&mut self) {
6625        self.deprecated = ::std::option::Option::None;
6626    }
6627
6628    pub fn has_deprecated(&self) -> bool {
6629        self.deprecated.is_some()
6630    }
6631
6632    // Param is passed by value, moved
6633    pub fn set_deprecated(&mut self, v: bool) {
6634        self.deprecated = ::std::option::Option::Some(v);
6635    }
6636
6637    // repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999;
6638
6639
6640    pub fn get_uninterpreted_option(&self) -> &[UninterpretedOption] {
6641        &self.uninterpreted_option
6642    }
6643    pub fn clear_uninterpreted_option(&mut self) {
6644        self.uninterpreted_option.clear();
6645    }
6646
6647    // Param is passed by value, moved
6648    pub fn set_uninterpreted_option(&mut self, v: ::protobuf::RepeatedField<UninterpretedOption>) {
6649        self.uninterpreted_option = v;
6650    }
6651
6652    // Mutable pointer to the field.
6653    pub fn mut_uninterpreted_option(&mut self) -> &mut ::protobuf::RepeatedField<UninterpretedOption> {
6654        &mut self.uninterpreted_option
6655    }
6656
6657    // Take field
6658    pub fn take_uninterpreted_option(&mut self) -> ::protobuf::RepeatedField<UninterpretedOption> {
6659        ::std::mem::replace(&mut self.uninterpreted_option, ::protobuf::RepeatedField::new())
6660    }
6661}
6662
6663impl ::protobuf::Message for ServiceOptions {
6664    fn is_initialized(&self) -> bool {
6665        for v in &self.uninterpreted_option {
6666            if !v.is_initialized() {
6667                return false;
6668            }
6669        };
6670        true
6671    }
6672
6673    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream) -> ::protobuf::ProtobufResult<()> {
6674        while !is.eof()? {
6675            let (field_number, wire_type) = is.read_tag_unpack()?;
6676            match field_number {
6677                33 => {
6678                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
6679                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
6680                    }
6681                    let tmp = is.read_bool()?;
6682                    self.deprecated = ::std::option::Option::Some(tmp);
6683                },
6684                999 => {
6685                    ::protobuf::rt::read_repeated_message_into(wire_type, is, &mut self.uninterpreted_option)?;
6686                },
6687                _ => {
6688                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
6689                },
6690            };
6691        }
6692        ::std::result::Result::Ok(())
6693    }
6694
6695    // Compute sizes of nested messages
6696    #[allow(unused_variables)]
6697    fn compute_size(&self) -> u32 {
6698        let mut my_size = 0;
6699        if let Some(v) = self.deprecated {
6700            my_size += 3;
6701        }
6702        for value in &self.uninterpreted_option {
6703            let len = value.compute_size();
6704            my_size += 2 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
6705        };
6706        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
6707        self.cached_size.set(my_size);
6708        my_size
6709    }
6710
6711    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream) -> ::protobuf::ProtobufResult<()> {
6712        if let Some(v) = self.deprecated {
6713            os.write_bool(33, v)?;
6714        }
6715        for v in &self.uninterpreted_option {
6716            os.write_tag(999, ::protobuf::wire_format::WireTypeLengthDelimited)?;
6717            os.write_raw_varint32(v.get_cached_size())?;
6718            v.write_to_with_cached_sizes(os)?;
6719        };
6720        os.write_unknown_fields(self.get_unknown_fields())?;
6721        ::std::result::Result::Ok(())
6722    }
6723
6724    fn get_cached_size(&self) -> u32 {
6725        self.cached_size.get()
6726    }
6727
6728    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
6729        &self.unknown_fields
6730    }
6731
6732    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
6733        &mut self.unknown_fields
6734    }
6735
6736    fn as_any(&self) -> &dyn (::std::any::Any) {
6737        self as &dyn (::std::any::Any)
6738    }
6739    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
6740        self as &mut dyn (::std::any::Any)
6741    }
6742    fn into_any(self: Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
6743        self
6744    }
6745
6746    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
6747        Self::descriptor_static()
6748    }
6749
6750    fn new() -> ServiceOptions {
6751        ServiceOptions::new()
6752    }
6753
6754    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
6755        static mut descriptor: ::protobuf::lazy::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::lazy::Lazy {
6756            lock: ::protobuf::lazy::ONCE_INIT,
6757            ptr: 0 as *const ::protobuf::reflect::MessageDescriptor,
6758        };
6759        unsafe {
6760            descriptor.get(|| {
6761                let mut fields = ::std::vec::Vec::new();
6762                fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeBool>(
6763                    "deprecated",
6764                    |m: &ServiceOptions| { &m.deprecated },
6765                    |m: &mut ServiceOptions| { &mut m.deprecated },
6766                ));
6767                fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<UninterpretedOption>>(
6768                    "uninterpreted_option",
6769                    |m: &ServiceOptions| { &m.uninterpreted_option },
6770                    |m: &mut ServiceOptions| { &mut m.uninterpreted_option },
6771                ));
6772                ::protobuf::reflect::MessageDescriptor::new::<ServiceOptions>(
6773                    "ServiceOptions",
6774                    fields,
6775                    file_descriptor_proto()
6776                )
6777            })
6778        }
6779    }
6780
6781    fn default_instance() -> &'static ServiceOptions {
6782        static mut instance: ::protobuf::lazy::Lazy<ServiceOptions> = ::protobuf::lazy::Lazy {
6783            lock: ::protobuf::lazy::ONCE_INIT,
6784            ptr: 0 as *const ServiceOptions,
6785        };
6786        unsafe {
6787            instance.get(ServiceOptions::new)
6788        }
6789    }
6790}
6791
6792impl ::protobuf::Clear for ServiceOptions {
6793    fn clear(&mut self) {
6794        self.deprecated = ::std::option::Option::None;
6795        self.uninterpreted_option.clear();
6796        self.unknown_fields.clear();
6797    }
6798}
6799
6800impl ::std::fmt::Debug for ServiceOptions {
6801    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
6802        ::protobuf::text_format::fmt(self, f)
6803    }
6804}
6805
6806impl ::protobuf::reflect::ProtobufValue for ServiceOptions {
6807    fn as_ref(&self) -> ::protobuf::reflect::ProtobufValueRef {
6808        ::protobuf::reflect::ProtobufValueRef::Message(self)
6809    }
6810}
6811
6812#[derive(PartialEq,Clone,Default)]
6813#[cfg_attr(feature = "with-serde", derive(Serialize, Deserialize))]
6814pub struct MethodOptions {
6815    // message fields
6816    deprecated: ::std::option::Option<bool>,
6817    uninterpreted_option: ::protobuf::RepeatedField<UninterpretedOption>,
6818    // special fields
6819    #[cfg_attr(feature = "with-serde", serde(skip))]
6820    pub unknown_fields: ::protobuf::UnknownFields,
6821    #[cfg_attr(feature = "with-serde", serde(skip))]
6822    pub cached_size: ::protobuf::CachedSize,
6823}
6824
6825impl<'a> ::std::default::Default for &'a MethodOptions {
6826    fn default() -> &'a MethodOptions {
6827        <MethodOptions as ::protobuf::Message>::default_instance()
6828    }
6829}
6830
6831impl MethodOptions {
6832    pub fn new() -> MethodOptions {
6833        ::std::default::Default::default()
6834    }
6835
6836    // optional bool deprecated = 33;
6837
6838
6839    pub fn get_deprecated(&self) -> bool {
6840        self.deprecated.unwrap_or(false)
6841    }
6842    pub fn clear_deprecated(&mut self) {
6843        self.deprecated = ::std::option::Option::None;
6844    }
6845
6846    pub fn has_deprecated(&self) -> bool {
6847        self.deprecated.is_some()
6848    }
6849
6850    // Param is passed by value, moved
6851    pub fn set_deprecated(&mut self, v: bool) {
6852        self.deprecated = ::std::option::Option::Some(v);
6853    }
6854
6855    // repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999;
6856
6857
6858    pub fn get_uninterpreted_option(&self) -> &[UninterpretedOption] {
6859        &self.uninterpreted_option
6860    }
6861    pub fn clear_uninterpreted_option(&mut self) {
6862        self.uninterpreted_option.clear();
6863    }
6864
6865    // Param is passed by value, moved
6866    pub fn set_uninterpreted_option(&mut self, v: ::protobuf::RepeatedField<UninterpretedOption>) {
6867        self.uninterpreted_option = v;
6868    }
6869
6870    // Mutable pointer to the field.
6871    pub fn mut_uninterpreted_option(&mut self) -> &mut ::protobuf::RepeatedField<UninterpretedOption> {
6872        &mut self.uninterpreted_option
6873    }
6874
6875    // Take field
6876    pub fn take_uninterpreted_option(&mut self) -> ::protobuf::RepeatedField<UninterpretedOption> {
6877        ::std::mem::replace(&mut self.uninterpreted_option, ::protobuf::RepeatedField::new())
6878    }
6879}
6880
6881impl ::protobuf::Message for MethodOptions {
6882    fn is_initialized(&self) -> bool {
6883        for v in &self.uninterpreted_option {
6884            if !v.is_initialized() {
6885                return false;
6886            }
6887        };
6888        true
6889    }
6890
6891    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream) -> ::protobuf::ProtobufResult<()> {
6892        while !is.eof()? {
6893            let (field_number, wire_type) = is.read_tag_unpack()?;
6894            match field_number {
6895                33 => {
6896                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
6897                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
6898                    }
6899                    let tmp = is.read_bool()?;
6900                    self.deprecated = ::std::option::Option::Some(tmp);
6901                },
6902                999 => {
6903                    ::protobuf::rt::read_repeated_message_into(wire_type, is, &mut self.uninterpreted_option)?;
6904                },
6905                _ => {
6906                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
6907                },
6908            };
6909        }
6910        ::std::result::Result::Ok(())
6911    }
6912
6913    // Compute sizes of nested messages
6914    #[allow(unused_variables)]
6915    fn compute_size(&self) -> u32 {
6916        let mut my_size = 0;
6917        if let Some(v) = self.deprecated {
6918            my_size += 3;
6919        }
6920        for value in &self.uninterpreted_option {
6921            let len = value.compute_size();
6922            my_size += 2 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
6923        };
6924        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
6925        self.cached_size.set(my_size);
6926        my_size
6927    }
6928
6929    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream) -> ::protobuf::ProtobufResult<()> {
6930        if let Some(v) = self.deprecated {
6931            os.write_bool(33, v)?;
6932        }
6933        for v in &self.uninterpreted_option {
6934            os.write_tag(999, ::protobuf::wire_format::WireTypeLengthDelimited)?;
6935            os.write_raw_varint32(v.get_cached_size())?;
6936            v.write_to_with_cached_sizes(os)?;
6937        };
6938        os.write_unknown_fields(self.get_unknown_fields())?;
6939        ::std::result::Result::Ok(())
6940    }
6941
6942    fn get_cached_size(&self) -> u32 {
6943        self.cached_size.get()
6944    }
6945
6946    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
6947        &self.unknown_fields
6948    }
6949
6950    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
6951        &mut self.unknown_fields
6952    }
6953
6954    fn as_any(&self) -> &dyn (::std::any::Any) {
6955        self as &dyn (::std::any::Any)
6956    }
6957    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
6958        self as &mut dyn (::std::any::Any)
6959    }
6960    fn into_any(self: Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
6961        self
6962    }
6963
6964    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
6965        Self::descriptor_static()
6966    }
6967
6968    fn new() -> MethodOptions {
6969        MethodOptions::new()
6970    }
6971
6972    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
6973        static mut descriptor: ::protobuf::lazy::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::lazy::Lazy {
6974            lock: ::protobuf::lazy::ONCE_INIT,
6975            ptr: 0 as *const ::protobuf::reflect::MessageDescriptor,
6976        };
6977        unsafe {
6978            descriptor.get(|| {
6979                let mut fields = ::std::vec::Vec::new();
6980                fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeBool>(
6981                    "deprecated",
6982                    |m: &MethodOptions| { &m.deprecated },
6983                    |m: &mut MethodOptions| { &mut m.deprecated },
6984                ));
6985                fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<UninterpretedOption>>(
6986                    "uninterpreted_option",
6987                    |m: &MethodOptions| { &m.uninterpreted_option },
6988                    |m: &mut MethodOptions| { &mut m.uninterpreted_option },
6989                ));
6990                ::protobuf::reflect::MessageDescriptor::new::<MethodOptions>(
6991                    "MethodOptions",
6992                    fields,
6993                    file_descriptor_proto()
6994                )
6995            })
6996        }
6997    }
6998
6999    fn default_instance() -> &'static MethodOptions {
7000        static mut instance: ::protobuf::lazy::Lazy<MethodOptions> = ::protobuf::lazy::Lazy {
7001            lock: ::protobuf::lazy::ONCE_INIT,
7002            ptr: 0 as *const MethodOptions,
7003        };
7004        unsafe {
7005            instance.get(MethodOptions::new)
7006        }
7007    }
7008}
7009
7010impl ::protobuf::Clear for MethodOptions {
7011    fn clear(&mut self) {
7012        self.deprecated = ::std::option::Option::None;
7013        self.uninterpreted_option.clear();
7014        self.unknown_fields.clear();
7015    }
7016}
7017
7018impl ::std::fmt::Debug for MethodOptions {
7019    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
7020        ::protobuf::text_format::fmt(self, f)
7021    }
7022}
7023
7024impl ::protobuf::reflect::ProtobufValue for MethodOptions {
7025    fn as_ref(&self) -> ::protobuf::reflect::ProtobufValueRef {
7026        ::protobuf::reflect::ProtobufValueRef::Message(self)
7027    }
7028}
7029
7030#[derive(PartialEq,Clone,Default)]
7031#[cfg_attr(feature = "with-serde", derive(Serialize, Deserialize))]
7032pub struct UninterpretedOption {
7033    // message fields
7034    name: ::protobuf::RepeatedField<UninterpretedOption_NamePart>,
7035    identifier_value: ::protobuf::SingularField<::std::string::String>,
7036    positive_int_value: ::std::option::Option<u64>,
7037    negative_int_value: ::std::option::Option<i64>,
7038    double_value: ::std::option::Option<f64>,
7039    string_value: ::protobuf::SingularField<::std::vec::Vec<u8>>,
7040    aggregate_value: ::protobuf::SingularField<::std::string::String>,
7041    // special fields
7042    #[cfg_attr(feature = "with-serde", serde(skip))]
7043    pub unknown_fields: ::protobuf::UnknownFields,
7044    #[cfg_attr(feature = "with-serde", serde(skip))]
7045    pub cached_size: ::protobuf::CachedSize,
7046}
7047
7048impl<'a> ::std::default::Default for &'a UninterpretedOption {
7049    fn default() -> &'a UninterpretedOption {
7050        <UninterpretedOption as ::protobuf::Message>::default_instance()
7051    }
7052}
7053
7054impl UninterpretedOption {
7055    pub fn new() -> UninterpretedOption {
7056        ::std::default::Default::default()
7057    }
7058
7059    // repeated .google.protobuf.UninterpretedOption.NamePart name = 2;
7060
7061
7062    pub fn get_name(&self) -> &[UninterpretedOption_NamePart] {
7063        &self.name
7064    }
7065    pub fn clear_name(&mut self) {
7066        self.name.clear();
7067    }
7068
7069    // Param is passed by value, moved
7070    pub fn set_name(&mut self, v: ::protobuf::RepeatedField<UninterpretedOption_NamePart>) {
7071        self.name = v;
7072    }
7073
7074    // Mutable pointer to the field.
7075    pub fn mut_name(&mut self) -> &mut ::protobuf::RepeatedField<UninterpretedOption_NamePart> {
7076        &mut self.name
7077    }
7078
7079    // Take field
7080    pub fn take_name(&mut self) -> ::protobuf::RepeatedField<UninterpretedOption_NamePart> {
7081        ::std::mem::replace(&mut self.name, ::protobuf::RepeatedField::new())
7082    }
7083
7084    // optional string identifier_value = 3;
7085
7086
7087    pub fn get_identifier_value(&self) -> &str {
7088        match self.identifier_value.as_ref() {
7089            Some(v) => &v,
7090            None => "",
7091        }
7092    }
7093    pub fn clear_identifier_value(&mut self) {
7094        self.identifier_value.clear();
7095    }
7096
7097    pub fn has_identifier_value(&self) -> bool {
7098        self.identifier_value.is_some()
7099    }
7100
7101    // Param is passed by value, moved
7102    pub fn set_identifier_value(&mut self, v: ::std::string::String) {
7103        self.identifier_value = ::protobuf::SingularField::some(v);
7104    }
7105
7106    // Mutable pointer to the field.
7107    // If field is not initialized, it is initialized with default value first.
7108    pub fn mut_identifier_value(&mut self) -> &mut ::std::string::String {
7109        if self.identifier_value.is_none() {
7110            self.identifier_value.set_default();
7111        }
7112        self.identifier_value.as_mut().unwrap()
7113    }
7114
7115    // Take field
7116    pub fn take_identifier_value(&mut self) -> ::std::string::String {
7117        self.identifier_value.take().unwrap_or_else(|| ::std::string::String::new())
7118    }
7119
7120    // optional uint64 positive_int_value = 4;
7121
7122
7123    pub fn get_positive_int_value(&self) -> u64 {
7124        self.positive_int_value.unwrap_or(0)
7125    }
7126    pub fn clear_positive_int_value(&mut self) {
7127        self.positive_int_value = ::std::option::Option::None;
7128    }
7129
7130    pub fn has_positive_int_value(&self) -> bool {
7131        self.positive_int_value.is_some()
7132    }
7133
7134    // Param is passed by value, moved
7135    pub fn set_positive_int_value(&mut self, v: u64) {
7136        self.positive_int_value = ::std::option::Option::Some(v);
7137    }
7138
7139    // optional int64 negative_int_value = 5;
7140
7141
7142    pub fn get_negative_int_value(&self) -> i64 {
7143        self.negative_int_value.unwrap_or(0)
7144    }
7145    pub fn clear_negative_int_value(&mut self) {
7146        self.negative_int_value = ::std::option::Option::None;
7147    }
7148
7149    pub fn has_negative_int_value(&self) -> bool {
7150        self.negative_int_value.is_some()
7151    }
7152
7153    // Param is passed by value, moved
7154    pub fn set_negative_int_value(&mut self, v: i64) {
7155        self.negative_int_value = ::std::option::Option::Some(v);
7156    }
7157
7158    // optional double double_value = 6;
7159
7160
7161    pub fn get_double_value(&self) -> f64 {
7162        self.double_value.unwrap_or(0.)
7163    }
7164    pub fn clear_double_value(&mut self) {
7165        self.double_value = ::std::option::Option::None;
7166    }
7167
7168    pub fn has_double_value(&self) -> bool {
7169        self.double_value.is_some()
7170    }
7171
7172    // Param is passed by value, moved
7173    pub fn set_double_value(&mut self, v: f64) {
7174        self.double_value = ::std::option::Option::Some(v);
7175    }
7176
7177    // optional bytes string_value = 7;
7178
7179
7180    pub fn get_string_value(&self) -> &[u8] {
7181        match self.string_value.as_ref() {
7182            Some(v) => &v,
7183            None => &[],
7184        }
7185    }
7186    pub fn clear_string_value(&mut self) {
7187        self.string_value.clear();
7188    }
7189
7190    pub fn has_string_value(&self) -> bool {
7191        self.string_value.is_some()
7192    }
7193
7194    // Param is passed by value, moved
7195    pub fn set_string_value(&mut self, v: ::std::vec::Vec<u8>) {
7196        self.string_value = ::protobuf::SingularField::some(v);
7197    }
7198
7199    // Mutable pointer to the field.
7200    // If field is not initialized, it is initialized with default value first.
7201    pub fn mut_string_value(&mut self) -> &mut ::std::vec::Vec<u8> {
7202        if self.string_value.is_none() {
7203            self.string_value.set_default();
7204        }
7205        self.string_value.as_mut().unwrap()
7206    }
7207
7208    // Take field
7209    pub fn take_string_value(&mut self) -> ::std::vec::Vec<u8> {
7210        self.string_value.take().unwrap_or_else(|| ::std::vec::Vec::new())
7211    }
7212
7213    // optional string aggregate_value = 8;
7214
7215
7216    pub fn get_aggregate_value(&self) -> &str {
7217        match self.aggregate_value.as_ref() {
7218            Some(v) => &v,
7219            None => "",
7220        }
7221    }
7222    pub fn clear_aggregate_value(&mut self) {
7223        self.aggregate_value.clear();
7224    }
7225
7226    pub fn has_aggregate_value(&self) -> bool {
7227        self.aggregate_value.is_some()
7228    }
7229
7230    // Param is passed by value, moved
7231    pub fn set_aggregate_value(&mut self, v: ::std::string::String) {
7232        self.aggregate_value = ::protobuf::SingularField::some(v);
7233    }
7234
7235    // Mutable pointer to the field.
7236    // If field is not initialized, it is initialized with default value first.
7237    pub fn mut_aggregate_value(&mut self) -> &mut ::std::string::String {
7238        if self.aggregate_value.is_none() {
7239            self.aggregate_value.set_default();
7240        }
7241        self.aggregate_value.as_mut().unwrap()
7242    }
7243
7244    // Take field
7245    pub fn take_aggregate_value(&mut self) -> ::std::string::String {
7246        self.aggregate_value.take().unwrap_or_else(|| ::std::string::String::new())
7247    }
7248}
7249
7250impl ::protobuf::Message for UninterpretedOption {
7251    fn is_initialized(&self) -> bool {
7252        for v in &self.name {
7253            if !v.is_initialized() {
7254                return false;
7255            }
7256        };
7257        true
7258    }
7259
7260    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream) -> ::protobuf::ProtobufResult<()> {
7261        while !is.eof()? {
7262            let (field_number, wire_type) = is.read_tag_unpack()?;
7263            match field_number {
7264                2 => {
7265                    ::protobuf::rt::read_repeated_message_into(wire_type, is, &mut self.name)?;
7266                },
7267                3 => {
7268                    ::protobuf::rt::read_singular_string_into(wire_type, is, &mut self.identifier_value)?;
7269                },
7270                4 => {
7271                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
7272                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
7273                    }
7274                    let tmp = is.read_uint64()?;
7275                    self.positive_int_value = ::std::option::Option::Some(tmp);
7276                },
7277                5 => {
7278                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
7279                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
7280                    }
7281                    let tmp = is.read_int64()?;
7282                    self.negative_int_value = ::std::option::Option::Some(tmp);
7283                },
7284                6 => {
7285                    if wire_type != ::protobuf::wire_format::WireTypeFixed64 {
7286                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
7287                    }
7288                    let tmp = is.read_double()?;
7289                    self.double_value = ::std::option::Option::Some(tmp);
7290                },
7291                7 => {
7292                    ::protobuf::rt::read_singular_bytes_into(wire_type, is, &mut self.string_value)?;
7293                },
7294                8 => {
7295                    ::protobuf::rt::read_singular_string_into(wire_type, is, &mut self.aggregate_value)?;
7296                },
7297                _ => {
7298                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
7299                },
7300            };
7301        }
7302        ::std::result::Result::Ok(())
7303    }
7304
7305    // Compute sizes of nested messages
7306    #[allow(unused_variables)]
7307    fn compute_size(&self) -> u32 {
7308        let mut my_size = 0;
7309        for value in &self.name {
7310            let len = value.compute_size();
7311            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
7312        };
7313        if let Some(ref v) = self.identifier_value.as_ref() {
7314            my_size += ::protobuf::rt::string_size(3, &v);
7315        }
7316        if let Some(v) = self.positive_int_value {
7317            my_size += ::protobuf::rt::value_size(4, v, ::protobuf::wire_format::WireTypeVarint);
7318        }
7319        if let Some(v) = self.negative_int_value {
7320            my_size += ::protobuf::rt::value_size(5, v, ::protobuf::wire_format::WireTypeVarint);
7321        }
7322        if let Some(v) = self.double_value {
7323            my_size += 9;
7324        }
7325        if let Some(ref v) = self.string_value.as_ref() {
7326            my_size += ::protobuf::rt::bytes_size(7, &v);
7327        }
7328        if let Some(ref v) = self.aggregate_value.as_ref() {
7329            my_size += ::protobuf::rt::string_size(8, &v);
7330        }
7331        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
7332        self.cached_size.set(my_size);
7333        my_size
7334    }
7335
7336    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream) -> ::protobuf::ProtobufResult<()> {
7337        for v in &self.name {
7338            os.write_tag(2, ::protobuf::wire_format::WireTypeLengthDelimited)?;
7339            os.write_raw_varint32(v.get_cached_size())?;
7340            v.write_to_with_cached_sizes(os)?;
7341        };
7342        if let Some(ref v) = self.identifier_value.as_ref() {
7343            os.write_string(3, &v)?;
7344        }
7345        if let Some(v) = self.positive_int_value {
7346            os.write_uint64(4, v)?;
7347        }
7348        if let Some(v) = self.negative_int_value {
7349            os.write_int64(5, v)?;
7350        }
7351        if let Some(v) = self.double_value {
7352            os.write_double(6, v)?;
7353        }
7354        if let Some(ref v) = self.string_value.as_ref() {
7355            os.write_bytes(7, &v)?;
7356        }
7357        if let Some(ref v) = self.aggregate_value.as_ref() {
7358            os.write_string(8, &v)?;
7359        }
7360        os.write_unknown_fields(self.get_unknown_fields())?;
7361        ::std::result::Result::Ok(())
7362    }
7363
7364    fn get_cached_size(&self) -> u32 {
7365        self.cached_size.get()
7366    }
7367
7368    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
7369        &self.unknown_fields
7370    }
7371
7372    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
7373        &mut self.unknown_fields
7374    }
7375
7376    fn as_any(&self) -> &dyn (::std::any::Any) {
7377        self as &dyn (::std::any::Any)
7378    }
7379    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
7380        self as &mut dyn (::std::any::Any)
7381    }
7382    fn into_any(self: Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
7383        self
7384    }
7385
7386    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
7387        Self::descriptor_static()
7388    }
7389
7390    fn new() -> UninterpretedOption {
7391        UninterpretedOption::new()
7392    }
7393
7394    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
7395        static mut descriptor: ::protobuf::lazy::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::lazy::Lazy {
7396            lock: ::protobuf::lazy::ONCE_INIT,
7397            ptr: 0 as *const ::protobuf::reflect::MessageDescriptor,
7398        };
7399        unsafe {
7400            descriptor.get(|| {
7401                let mut fields = ::std::vec::Vec::new();
7402                fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<UninterpretedOption_NamePart>>(
7403                    "name",
7404                    |m: &UninterpretedOption| { &m.name },
7405                    |m: &mut UninterpretedOption| { &mut m.name },
7406                ));
7407                fields.push(::protobuf::reflect::accessor::make_singular_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
7408                    "identifier_value",
7409                    |m: &UninterpretedOption| { &m.identifier_value },
7410                    |m: &mut UninterpretedOption| { &mut m.identifier_value },
7411                ));
7412                fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeUint64>(
7413                    "positive_int_value",
7414                    |m: &UninterpretedOption| { &m.positive_int_value },
7415                    |m: &mut UninterpretedOption| { &mut m.positive_int_value },
7416                ));
7417                fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeInt64>(
7418                    "negative_int_value",
7419                    |m: &UninterpretedOption| { &m.negative_int_value },
7420                    |m: &mut UninterpretedOption| { &mut m.negative_int_value },
7421                ));
7422                fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeDouble>(
7423                    "double_value",
7424                    |m: &UninterpretedOption| { &m.double_value },
7425                    |m: &mut UninterpretedOption| { &mut m.double_value },
7426                ));
7427                fields.push(::protobuf::reflect::accessor::make_singular_field_accessor::<_, ::protobuf::types::ProtobufTypeBytes>(
7428                    "string_value",
7429                    |m: &UninterpretedOption| { &m.string_value },
7430                    |m: &mut UninterpretedOption| { &mut m.string_value },
7431                ));
7432                fields.push(::protobuf::reflect::accessor::make_singular_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
7433                    "aggregate_value",
7434                    |m: &UninterpretedOption| { &m.aggregate_value },
7435                    |m: &mut UninterpretedOption| { &mut m.aggregate_value },
7436                ));
7437                ::protobuf::reflect::MessageDescriptor::new::<UninterpretedOption>(
7438                    "UninterpretedOption",
7439                    fields,
7440                    file_descriptor_proto()
7441                )
7442            })
7443        }
7444    }
7445
7446    fn default_instance() -> &'static UninterpretedOption {
7447        static mut instance: ::protobuf::lazy::Lazy<UninterpretedOption> = ::protobuf::lazy::Lazy {
7448            lock: ::protobuf::lazy::ONCE_INIT,
7449            ptr: 0 as *const UninterpretedOption,
7450        };
7451        unsafe {
7452            instance.get(UninterpretedOption::new)
7453        }
7454    }
7455}
7456
7457impl ::protobuf::Clear for UninterpretedOption {
7458    fn clear(&mut self) {
7459        self.name.clear();
7460        self.identifier_value.clear();
7461        self.positive_int_value = ::std::option::Option::None;
7462        self.negative_int_value = ::std::option::Option::None;
7463        self.double_value = ::std::option::Option::None;
7464        self.string_value.clear();
7465        self.aggregate_value.clear();
7466        self.unknown_fields.clear();
7467    }
7468}
7469
7470impl ::std::fmt::Debug for UninterpretedOption {
7471    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
7472        ::protobuf::text_format::fmt(self, f)
7473    }
7474}
7475
7476impl ::protobuf::reflect::ProtobufValue for UninterpretedOption {
7477    fn as_ref(&self) -> ::protobuf::reflect::ProtobufValueRef {
7478        ::protobuf::reflect::ProtobufValueRef::Message(self)
7479    }
7480}
7481
7482#[derive(PartialEq,Clone,Default)]
7483#[cfg_attr(feature = "with-serde", derive(Serialize, Deserialize))]
7484pub struct UninterpretedOption_NamePart {
7485    // message fields
7486    name_part: ::protobuf::SingularField<::std::string::String>,
7487    is_extension: ::std::option::Option<bool>,
7488    // special fields
7489    #[cfg_attr(feature = "with-serde", serde(skip))]
7490    pub unknown_fields: ::protobuf::UnknownFields,
7491    #[cfg_attr(feature = "with-serde", serde(skip))]
7492    pub cached_size: ::protobuf::CachedSize,
7493}
7494
7495impl<'a> ::std::default::Default for &'a UninterpretedOption_NamePart {
7496    fn default() -> &'a UninterpretedOption_NamePart {
7497        <UninterpretedOption_NamePart as ::protobuf::Message>::default_instance()
7498    }
7499}
7500
7501impl UninterpretedOption_NamePart {
7502    pub fn new() -> UninterpretedOption_NamePart {
7503        ::std::default::Default::default()
7504    }
7505
7506    // required string name_part = 1;
7507
7508
7509    pub fn get_name_part(&self) -> &str {
7510        match self.name_part.as_ref() {
7511            Some(v) => &v,
7512            None => "",
7513        }
7514    }
7515    pub fn clear_name_part(&mut self) {
7516        self.name_part.clear();
7517    }
7518
7519    pub fn has_name_part(&self) -> bool {
7520        self.name_part.is_some()
7521    }
7522
7523    // Param is passed by value, moved
7524    pub fn set_name_part(&mut self, v: ::std::string::String) {
7525        self.name_part = ::protobuf::SingularField::some(v);
7526    }
7527
7528    // Mutable pointer to the field.
7529    // If field is not initialized, it is initialized with default value first.
7530    pub fn mut_name_part(&mut self) -> &mut ::std::string::String {
7531        if self.name_part.is_none() {
7532            self.name_part.set_default();
7533        }
7534        self.name_part.as_mut().unwrap()
7535    }
7536
7537    // Take field
7538    pub fn take_name_part(&mut self) -> ::std::string::String {
7539        self.name_part.take().unwrap_or_else(|| ::std::string::String::new())
7540    }
7541
7542    // required bool is_extension = 2;
7543
7544
7545    pub fn get_is_extension(&self) -> bool {
7546        self.is_extension.unwrap_or(false)
7547    }
7548    pub fn clear_is_extension(&mut self) {
7549        self.is_extension = ::std::option::Option::None;
7550    }
7551
7552    pub fn has_is_extension(&self) -> bool {
7553        self.is_extension.is_some()
7554    }
7555
7556    // Param is passed by value, moved
7557    pub fn set_is_extension(&mut self, v: bool) {
7558        self.is_extension = ::std::option::Option::Some(v);
7559    }
7560}
7561
7562impl ::protobuf::Message for UninterpretedOption_NamePart {
7563    fn is_initialized(&self) -> bool {
7564        if self.name_part.is_none() {
7565            return false;
7566        }
7567        if self.is_extension.is_none() {
7568            return false;
7569        }
7570        true
7571    }
7572
7573    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream) -> ::protobuf::ProtobufResult<()> {
7574        while !is.eof()? {
7575            let (field_number, wire_type) = is.read_tag_unpack()?;
7576            match field_number {
7577                1 => {
7578                    ::protobuf::rt::read_singular_string_into(wire_type, is, &mut self.name_part)?;
7579                },
7580                2 => {
7581                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
7582                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
7583                    }
7584                    let tmp = is.read_bool()?;
7585                    self.is_extension = ::std::option::Option::Some(tmp);
7586                },
7587                _ => {
7588                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
7589                },
7590            };
7591        }
7592        ::std::result::Result::Ok(())
7593    }
7594
7595    // Compute sizes of nested messages
7596    #[allow(unused_variables)]
7597    fn compute_size(&self) -> u32 {
7598        let mut my_size = 0;
7599        if let Some(ref v) = self.name_part.as_ref() {
7600            my_size += ::protobuf::rt::string_size(1, &v);
7601        }
7602        if let Some(v) = self.is_extension {
7603            my_size += 2;
7604        }
7605        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
7606        self.cached_size.set(my_size);
7607        my_size
7608    }
7609
7610    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream) -> ::protobuf::ProtobufResult<()> {
7611        if let Some(ref v) = self.name_part.as_ref() {
7612            os.write_string(1, &v)?;
7613        }
7614        if let Some(v) = self.is_extension {
7615            os.write_bool(2, v)?;
7616        }
7617        os.write_unknown_fields(self.get_unknown_fields())?;
7618        ::std::result::Result::Ok(())
7619    }
7620
7621    fn get_cached_size(&self) -> u32 {
7622        self.cached_size.get()
7623    }
7624
7625    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
7626        &self.unknown_fields
7627    }
7628
7629    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
7630        &mut self.unknown_fields
7631    }
7632
7633    fn as_any(&self) -> &dyn (::std::any::Any) {
7634        self as &dyn (::std::any::Any)
7635    }
7636    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
7637        self as &mut dyn (::std::any::Any)
7638    }
7639    fn into_any(self: Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
7640        self
7641    }
7642
7643    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
7644        Self::descriptor_static()
7645    }
7646
7647    fn new() -> UninterpretedOption_NamePart {
7648        UninterpretedOption_NamePart::new()
7649    }
7650
7651    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
7652        static mut descriptor: ::protobuf::lazy::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::lazy::Lazy {
7653            lock: ::protobuf::lazy::ONCE_INIT,
7654            ptr: 0 as *const ::protobuf::reflect::MessageDescriptor,
7655        };
7656        unsafe {
7657            descriptor.get(|| {
7658                let mut fields = ::std::vec::Vec::new();
7659                fields.push(::protobuf::reflect::accessor::make_singular_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
7660                    "name_part",
7661                    |m: &UninterpretedOption_NamePart| { &m.name_part },
7662                    |m: &mut UninterpretedOption_NamePart| { &mut m.name_part },
7663                ));
7664                fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeBool>(
7665                    "is_extension",
7666                    |m: &UninterpretedOption_NamePart| { &m.is_extension },
7667                    |m: &mut UninterpretedOption_NamePart| { &mut m.is_extension },
7668                ));
7669                ::protobuf::reflect::MessageDescriptor::new::<UninterpretedOption_NamePart>(
7670                    "UninterpretedOption_NamePart",
7671                    fields,
7672                    file_descriptor_proto()
7673                )
7674            })
7675        }
7676    }
7677
7678    fn default_instance() -> &'static UninterpretedOption_NamePart {
7679        static mut instance: ::protobuf::lazy::Lazy<UninterpretedOption_NamePart> = ::protobuf::lazy::Lazy {
7680            lock: ::protobuf::lazy::ONCE_INIT,
7681            ptr: 0 as *const UninterpretedOption_NamePart,
7682        };
7683        unsafe {
7684            instance.get(UninterpretedOption_NamePart::new)
7685        }
7686    }
7687}
7688
7689impl ::protobuf::Clear for UninterpretedOption_NamePart {
7690    fn clear(&mut self) {
7691        self.name_part.clear();
7692        self.is_extension = ::std::option::Option::None;
7693        self.unknown_fields.clear();
7694    }
7695}
7696
7697impl ::std::fmt::Debug for UninterpretedOption_NamePart {
7698    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
7699        ::protobuf::text_format::fmt(self, f)
7700    }
7701}
7702
7703impl ::protobuf::reflect::ProtobufValue for UninterpretedOption_NamePart {
7704    fn as_ref(&self) -> ::protobuf::reflect::ProtobufValueRef {
7705        ::protobuf::reflect::ProtobufValueRef::Message(self)
7706    }
7707}
7708
7709#[derive(PartialEq,Clone,Default)]
7710#[cfg_attr(feature = "with-serde", derive(Serialize, Deserialize))]
7711pub struct SourceCodeInfo {
7712    // message fields
7713    location: ::protobuf::RepeatedField<SourceCodeInfo_Location>,
7714    // special fields
7715    #[cfg_attr(feature = "with-serde", serde(skip))]
7716    pub unknown_fields: ::protobuf::UnknownFields,
7717    #[cfg_attr(feature = "with-serde", serde(skip))]
7718    pub cached_size: ::protobuf::CachedSize,
7719}
7720
7721impl<'a> ::std::default::Default for &'a SourceCodeInfo {
7722    fn default() -> &'a SourceCodeInfo {
7723        <SourceCodeInfo as ::protobuf::Message>::default_instance()
7724    }
7725}
7726
7727impl SourceCodeInfo {
7728    pub fn new() -> SourceCodeInfo {
7729        ::std::default::Default::default()
7730    }
7731
7732    // repeated .google.protobuf.SourceCodeInfo.Location location = 1;
7733
7734
7735    pub fn get_location(&self) -> &[SourceCodeInfo_Location] {
7736        &self.location
7737    }
7738    pub fn clear_location(&mut self) {
7739        self.location.clear();
7740    }
7741
7742    // Param is passed by value, moved
7743    pub fn set_location(&mut self, v: ::protobuf::RepeatedField<SourceCodeInfo_Location>) {
7744        self.location = v;
7745    }
7746
7747    // Mutable pointer to the field.
7748    pub fn mut_location(&mut self) -> &mut ::protobuf::RepeatedField<SourceCodeInfo_Location> {
7749        &mut self.location
7750    }
7751
7752    // Take field
7753    pub fn take_location(&mut self) -> ::protobuf::RepeatedField<SourceCodeInfo_Location> {
7754        ::std::mem::replace(&mut self.location, ::protobuf::RepeatedField::new())
7755    }
7756}
7757
7758impl ::protobuf::Message for SourceCodeInfo {
7759    fn is_initialized(&self) -> bool {
7760        for v in &self.location {
7761            if !v.is_initialized() {
7762                return false;
7763            }
7764        };
7765        true
7766    }
7767
7768    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream) -> ::protobuf::ProtobufResult<()> {
7769        while !is.eof()? {
7770            let (field_number, wire_type) = is.read_tag_unpack()?;
7771            match field_number {
7772                1 => {
7773                    ::protobuf::rt::read_repeated_message_into(wire_type, is, &mut self.location)?;
7774                },
7775                _ => {
7776                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
7777                },
7778            };
7779        }
7780        ::std::result::Result::Ok(())
7781    }
7782
7783    // Compute sizes of nested messages
7784    #[allow(unused_variables)]
7785    fn compute_size(&self) -> u32 {
7786        let mut my_size = 0;
7787        for value in &self.location {
7788            let len = value.compute_size();
7789            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
7790        };
7791        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
7792        self.cached_size.set(my_size);
7793        my_size
7794    }
7795
7796    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream) -> ::protobuf::ProtobufResult<()> {
7797        for v in &self.location {
7798            os.write_tag(1, ::protobuf::wire_format::WireTypeLengthDelimited)?;
7799            os.write_raw_varint32(v.get_cached_size())?;
7800            v.write_to_with_cached_sizes(os)?;
7801        };
7802        os.write_unknown_fields(self.get_unknown_fields())?;
7803        ::std::result::Result::Ok(())
7804    }
7805
7806    fn get_cached_size(&self) -> u32 {
7807        self.cached_size.get()
7808    }
7809
7810    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
7811        &self.unknown_fields
7812    }
7813
7814    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
7815        &mut self.unknown_fields
7816    }
7817
7818    fn as_any(&self) -> &dyn (::std::any::Any) {
7819        self as &dyn (::std::any::Any)
7820    }
7821    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
7822        self as &mut dyn (::std::any::Any)
7823    }
7824    fn into_any(self: Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
7825        self
7826    }
7827
7828    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
7829        Self::descriptor_static()
7830    }
7831
7832    fn new() -> SourceCodeInfo {
7833        SourceCodeInfo::new()
7834    }
7835
7836    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
7837        static mut descriptor: ::protobuf::lazy::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::lazy::Lazy {
7838            lock: ::protobuf::lazy::ONCE_INIT,
7839            ptr: 0 as *const ::protobuf::reflect::MessageDescriptor,
7840        };
7841        unsafe {
7842            descriptor.get(|| {
7843                let mut fields = ::std::vec::Vec::new();
7844                fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<SourceCodeInfo_Location>>(
7845                    "location",
7846                    |m: &SourceCodeInfo| { &m.location },
7847                    |m: &mut SourceCodeInfo| { &mut m.location },
7848                ));
7849                ::protobuf::reflect::MessageDescriptor::new::<SourceCodeInfo>(
7850                    "SourceCodeInfo",
7851                    fields,
7852                    file_descriptor_proto()
7853                )
7854            })
7855        }
7856    }
7857
7858    fn default_instance() -> &'static SourceCodeInfo {
7859        static mut instance: ::protobuf::lazy::Lazy<SourceCodeInfo> = ::protobuf::lazy::Lazy {
7860            lock: ::protobuf::lazy::ONCE_INIT,
7861            ptr: 0 as *const SourceCodeInfo,
7862        };
7863        unsafe {
7864            instance.get(SourceCodeInfo::new)
7865        }
7866    }
7867}
7868
7869impl ::protobuf::Clear for SourceCodeInfo {
7870    fn clear(&mut self) {
7871        self.location.clear();
7872        self.unknown_fields.clear();
7873    }
7874}
7875
7876impl ::std::fmt::Debug for SourceCodeInfo {
7877    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
7878        ::protobuf::text_format::fmt(self, f)
7879    }
7880}
7881
7882impl ::protobuf::reflect::ProtobufValue for SourceCodeInfo {
7883    fn as_ref(&self) -> ::protobuf::reflect::ProtobufValueRef {
7884        ::protobuf::reflect::ProtobufValueRef::Message(self)
7885    }
7886}
7887
7888#[derive(PartialEq,Clone,Default)]
7889#[cfg_attr(feature = "with-serde", derive(Serialize, Deserialize))]
7890pub struct SourceCodeInfo_Location {
7891    // message fields
7892    path: ::std::vec::Vec<i32>,
7893    span: ::std::vec::Vec<i32>,
7894    leading_comments: ::protobuf::SingularField<::std::string::String>,
7895    trailing_comments: ::protobuf::SingularField<::std::string::String>,
7896    leading_detached_comments: ::protobuf::RepeatedField<::std::string::String>,
7897    // special fields
7898    #[cfg_attr(feature = "with-serde", serde(skip))]
7899    pub unknown_fields: ::protobuf::UnknownFields,
7900    #[cfg_attr(feature = "with-serde", serde(skip))]
7901    pub cached_size: ::protobuf::CachedSize,
7902}
7903
7904impl<'a> ::std::default::Default for &'a SourceCodeInfo_Location {
7905    fn default() -> &'a SourceCodeInfo_Location {
7906        <SourceCodeInfo_Location as ::protobuf::Message>::default_instance()
7907    }
7908}
7909
7910impl SourceCodeInfo_Location {
7911    pub fn new() -> SourceCodeInfo_Location {
7912        ::std::default::Default::default()
7913    }
7914
7915    // repeated int32 path = 1;
7916
7917
7918    pub fn get_path(&self) -> &[i32] {
7919        &self.path
7920    }
7921    pub fn clear_path(&mut self) {
7922        self.path.clear();
7923    }
7924
7925    // Param is passed by value, moved
7926    pub fn set_path(&mut self, v: ::std::vec::Vec<i32>) {
7927        self.path = v;
7928    }
7929
7930    // Mutable pointer to the field.
7931    pub fn mut_path(&mut self) -> &mut ::std::vec::Vec<i32> {
7932        &mut self.path
7933    }
7934
7935    // Take field
7936    pub fn take_path(&mut self) -> ::std::vec::Vec<i32> {
7937        ::std::mem::replace(&mut self.path, ::std::vec::Vec::new())
7938    }
7939
7940    // repeated int32 span = 2;
7941
7942
7943    pub fn get_span(&self) -> &[i32] {
7944        &self.span
7945    }
7946    pub fn clear_span(&mut self) {
7947        self.span.clear();
7948    }
7949
7950    // Param is passed by value, moved
7951    pub fn set_span(&mut self, v: ::std::vec::Vec<i32>) {
7952        self.span = v;
7953    }
7954
7955    // Mutable pointer to the field.
7956    pub fn mut_span(&mut self) -> &mut ::std::vec::Vec<i32> {
7957        &mut self.span
7958    }
7959
7960    // Take field
7961    pub fn take_span(&mut self) -> ::std::vec::Vec<i32> {
7962        ::std::mem::replace(&mut self.span, ::std::vec::Vec::new())
7963    }
7964
7965    // optional string leading_comments = 3;
7966
7967
7968    pub fn get_leading_comments(&self) -> &str {
7969        match self.leading_comments.as_ref() {
7970            Some(v) => &v,
7971            None => "",
7972        }
7973    }
7974    pub fn clear_leading_comments(&mut self) {
7975        self.leading_comments.clear();
7976    }
7977
7978    pub fn has_leading_comments(&self) -> bool {
7979        self.leading_comments.is_some()
7980    }
7981
7982    // Param is passed by value, moved
7983    pub fn set_leading_comments(&mut self, v: ::std::string::String) {
7984        self.leading_comments = ::protobuf::SingularField::some(v);
7985    }
7986
7987    // Mutable pointer to the field.
7988    // If field is not initialized, it is initialized with default value first.
7989    pub fn mut_leading_comments(&mut self) -> &mut ::std::string::String {
7990        if self.leading_comments.is_none() {
7991            self.leading_comments.set_default();
7992        }
7993        self.leading_comments.as_mut().unwrap()
7994    }
7995
7996    // Take field
7997    pub fn take_leading_comments(&mut self) -> ::std::string::String {
7998        self.leading_comments.take().unwrap_or_else(|| ::std::string::String::new())
7999    }
8000
8001    // optional string trailing_comments = 4;
8002
8003
8004    pub fn get_trailing_comments(&self) -> &str {
8005        match self.trailing_comments.as_ref() {
8006            Some(v) => &v,
8007            None => "",
8008        }
8009    }
8010    pub fn clear_trailing_comments(&mut self) {
8011        self.trailing_comments.clear();
8012    }
8013
8014    pub fn has_trailing_comments(&self) -> bool {
8015        self.trailing_comments.is_some()
8016    }
8017
8018    // Param is passed by value, moved
8019    pub fn set_trailing_comments(&mut self, v: ::std::string::String) {
8020        self.trailing_comments = ::protobuf::SingularField::some(v);
8021    }
8022
8023    // Mutable pointer to the field.
8024    // If field is not initialized, it is initialized with default value first.
8025    pub fn mut_trailing_comments(&mut self) -> &mut ::std::string::String {
8026        if self.trailing_comments.is_none() {
8027            self.trailing_comments.set_default();
8028        }
8029        self.trailing_comments.as_mut().unwrap()
8030    }
8031
8032    // Take field
8033    pub fn take_trailing_comments(&mut self) -> ::std::string::String {
8034        self.trailing_comments.take().unwrap_or_else(|| ::std::string::String::new())
8035    }
8036
8037    // repeated string leading_detached_comments = 6;
8038
8039
8040    pub fn get_leading_detached_comments(&self) -> &[::std::string::String] {
8041        &self.leading_detached_comments
8042    }
8043    pub fn clear_leading_detached_comments(&mut self) {
8044        self.leading_detached_comments.clear();
8045    }
8046
8047    // Param is passed by value, moved
8048    pub fn set_leading_detached_comments(&mut self, v: ::protobuf::RepeatedField<::std::string::String>) {
8049        self.leading_detached_comments = v;
8050    }
8051
8052    // Mutable pointer to the field.
8053    pub fn mut_leading_detached_comments(&mut self) -> &mut ::protobuf::RepeatedField<::std::string::String> {
8054        &mut self.leading_detached_comments
8055    }
8056
8057    // Take field
8058    pub fn take_leading_detached_comments(&mut self) -> ::protobuf::RepeatedField<::std::string::String> {
8059        ::std::mem::replace(&mut self.leading_detached_comments, ::protobuf::RepeatedField::new())
8060    }
8061}
8062
8063impl ::protobuf::Message for SourceCodeInfo_Location {
8064    fn is_initialized(&self) -> bool {
8065        true
8066    }
8067
8068    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream) -> ::protobuf::ProtobufResult<()> {
8069        while !is.eof()? {
8070            let (field_number, wire_type) = is.read_tag_unpack()?;
8071            match field_number {
8072                1 => {
8073                    ::protobuf::rt::read_repeated_int32_into(wire_type, is, &mut self.path)?;
8074                },
8075                2 => {
8076                    ::protobuf::rt::read_repeated_int32_into(wire_type, is, &mut self.span)?;
8077                },
8078                3 => {
8079                    ::protobuf::rt::read_singular_string_into(wire_type, is, &mut self.leading_comments)?;
8080                },
8081                4 => {
8082                    ::protobuf::rt::read_singular_string_into(wire_type, is, &mut self.trailing_comments)?;
8083                },
8084                6 => {
8085                    ::protobuf::rt::read_repeated_string_into(wire_type, is, &mut self.leading_detached_comments)?;
8086                },
8087                _ => {
8088                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
8089                },
8090            };
8091        }
8092        ::std::result::Result::Ok(())
8093    }
8094
8095    // Compute sizes of nested messages
8096    #[allow(unused_variables)]
8097    fn compute_size(&self) -> u32 {
8098        let mut my_size = 0;
8099        if !self.path.is_empty() {
8100            my_size += ::protobuf::rt::vec_packed_varint_size(1, &self.path);
8101        }
8102        if !self.span.is_empty() {
8103            my_size += ::protobuf::rt::vec_packed_varint_size(2, &self.span);
8104        }
8105        if let Some(ref v) = self.leading_comments.as_ref() {
8106            my_size += ::protobuf::rt::string_size(3, &v);
8107        }
8108        if let Some(ref v) = self.trailing_comments.as_ref() {
8109            my_size += ::protobuf::rt::string_size(4, &v);
8110        }
8111        for value in &self.leading_detached_comments {
8112            my_size += ::protobuf::rt::string_size(6, &value);
8113        };
8114        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
8115        self.cached_size.set(my_size);
8116        my_size
8117    }
8118
8119    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream) -> ::protobuf::ProtobufResult<()> {
8120        if !self.path.is_empty() {
8121            os.write_tag(1, ::protobuf::wire_format::WireTypeLengthDelimited)?;
8122            // TODO: Data size is computed again, it should be cached
8123            os.write_raw_varint32(::protobuf::rt::vec_packed_varint_data_size(&self.path))?;
8124            for v in &self.path {
8125                os.write_int32_no_tag(*v)?;
8126            };
8127        }
8128        if !self.span.is_empty() {
8129            os.write_tag(2, ::protobuf::wire_format::WireTypeLengthDelimited)?;
8130            // TODO: Data size is computed again, it should be cached
8131            os.write_raw_varint32(::protobuf::rt::vec_packed_varint_data_size(&self.span))?;
8132            for v in &self.span {
8133                os.write_int32_no_tag(*v)?;
8134            };
8135        }
8136        if let Some(ref v) = self.leading_comments.as_ref() {
8137            os.write_string(3, &v)?;
8138        }
8139        if let Some(ref v) = self.trailing_comments.as_ref() {
8140            os.write_string(4, &v)?;
8141        }
8142        for v in &self.leading_detached_comments {
8143            os.write_string(6, &v)?;
8144        };
8145        os.write_unknown_fields(self.get_unknown_fields())?;
8146        ::std::result::Result::Ok(())
8147    }
8148
8149    fn get_cached_size(&self) -> u32 {
8150        self.cached_size.get()
8151    }
8152
8153    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
8154        &self.unknown_fields
8155    }
8156
8157    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
8158        &mut self.unknown_fields
8159    }
8160
8161    fn as_any(&self) -> &dyn (::std::any::Any) {
8162        self as &dyn (::std::any::Any)
8163    }
8164    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
8165        self as &mut dyn (::std::any::Any)
8166    }
8167    fn into_any(self: Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
8168        self
8169    }
8170
8171    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
8172        Self::descriptor_static()
8173    }
8174
8175    fn new() -> SourceCodeInfo_Location {
8176        SourceCodeInfo_Location::new()
8177    }
8178
8179    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
8180        static mut descriptor: ::protobuf::lazy::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::lazy::Lazy {
8181            lock: ::protobuf::lazy::ONCE_INIT,
8182            ptr: 0 as *const ::protobuf::reflect::MessageDescriptor,
8183        };
8184        unsafe {
8185            descriptor.get(|| {
8186                let mut fields = ::std::vec::Vec::new();
8187                fields.push(::protobuf::reflect::accessor::make_vec_accessor::<_, ::protobuf::types::ProtobufTypeInt32>(
8188                    "path",
8189                    |m: &SourceCodeInfo_Location| { &m.path },
8190                    |m: &mut SourceCodeInfo_Location| { &mut m.path },
8191                ));
8192                fields.push(::protobuf::reflect::accessor::make_vec_accessor::<_, ::protobuf::types::ProtobufTypeInt32>(
8193                    "span",
8194                    |m: &SourceCodeInfo_Location| { &m.span },
8195                    |m: &mut SourceCodeInfo_Location| { &mut m.span },
8196                ));
8197                fields.push(::protobuf::reflect::accessor::make_singular_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
8198                    "leading_comments",
8199                    |m: &SourceCodeInfo_Location| { &m.leading_comments },
8200                    |m: &mut SourceCodeInfo_Location| { &mut m.leading_comments },
8201                ));
8202                fields.push(::protobuf::reflect::accessor::make_singular_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
8203                    "trailing_comments",
8204                    |m: &SourceCodeInfo_Location| { &m.trailing_comments },
8205                    |m: &mut SourceCodeInfo_Location| { &mut m.trailing_comments },
8206                ));
8207                fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
8208                    "leading_detached_comments",
8209                    |m: &SourceCodeInfo_Location| { &m.leading_detached_comments },
8210                    |m: &mut SourceCodeInfo_Location| { &mut m.leading_detached_comments },
8211                ));
8212                ::protobuf::reflect::MessageDescriptor::new::<SourceCodeInfo_Location>(
8213                    "SourceCodeInfo_Location",
8214                    fields,
8215                    file_descriptor_proto()
8216                )
8217            })
8218        }
8219    }
8220
8221    fn default_instance() -> &'static SourceCodeInfo_Location {
8222        static mut instance: ::protobuf::lazy::Lazy<SourceCodeInfo_Location> = ::protobuf::lazy::Lazy {
8223            lock: ::protobuf::lazy::ONCE_INIT,
8224            ptr: 0 as *const SourceCodeInfo_Location,
8225        };
8226        unsafe {
8227            instance.get(SourceCodeInfo_Location::new)
8228        }
8229    }
8230}
8231
8232impl ::protobuf::Clear for SourceCodeInfo_Location {
8233    fn clear(&mut self) {
8234        self.path.clear();
8235        self.span.clear();
8236        self.leading_comments.clear();
8237        self.trailing_comments.clear();
8238        self.leading_detached_comments.clear();
8239        self.unknown_fields.clear();
8240    }
8241}
8242
8243impl ::std::fmt::Debug for SourceCodeInfo_Location {
8244    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
8245        ::protobuf::text_format::fmt(self, f)
8246    }
8247}
8248
8249impl ::protobuf::reflect::ProtobufValue for SourceCodeInfo_Location {
8250    fn as_ref(&self) -> ::protobuf::reflect::ProtobufValueRef {
8251        ::protobuf::reflect::ProtobufValueRef::Message(self)
8252    }
8253}
8254
8255#[derive(PartialEq,Clone,Default)]
8256#[cfg_attr(feature = "with-serde", derive(Serialize, Deserialize))]
8257pub struct GeneratedCodeInfo {
8258    // message fields
8259    annotation: ::protobuf::RepeatedField<GeneratedCodeInfo_Annotation>,
8260    // special fields
8261    #[cfg_attr(feature = "with-serde", serde(skip))]
8262    pub unknown_fields: ::protobuf::UnknownFields,
8263    #[cfg_attr(feature = "with-serde", serde(skip))]
8264    pub cached_size: ::protobuf::CachedSize,
8265}
8266
8267impl<'a> ::std::default::Default for &'a GeneratedCodeInfo {
8268    fn default() -> &'a GeneratedCodeInfo {
8269        <GeneratedCodeInfo as ::protobuf::Message>::default_instance()
8270    }
8271}
8272
8273impl GeneratedCodeInfo {
8274    pub fn new() -> GeneratedCodeInfo {
8275        ::std::default::Default::default()
8276    }
8277
8278    // repeated .google.protobuf.GeneratedCodeInfo.Annotation annotation = 1;
8279
8280
8281    pub fn get_annotation(&self) -> &[GeneratedCodeInfo_Annotation] {
8282        &self.annotation
8283    }
8284    pub fn clear_annotation(&mut self) {
8285        self.annotation.clear();
8286    }
8287
8288    // Param is passed by value, moved
8289    pub fn set_annotation(&mut self, v: ::protobuf::RepeatedField<GeneratedCodeInfo_Annotation>) {
8290        self.annotation = v;
8291    }
8292
8293    // Mutable pointer to the field.
8294    pub fn mut_annotation(&mut self) -> &mut ::protobuf::RepeatedField<GeneratedCodeInfo_Annotation> {
8295        &mut self.annotation
8296    }
8297
8298    // Take field
8299    pub fn take_annotation(&mut self) -> ::protobuf::RepeatedField<GeneratedCodeInfo_Annotation> {
8300        ::std::mem::replace(&mut self.annotation, ::protobuf::RepeatedField::new())
8301    }
8302}
8303
8304impl ::protobuf::Message for GeneratedCodeInfo {
8305    fn is_initialized(&self) -> bool {
8306        for v in &self.annotation {
8307            if !v.is_initialized() {
8308                return false;
8309            }
8310        };
8311        true
8312    }
8313
8314    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream) -> ::protobuf::ProtobufResult<()> {
8315        while !is.eof()? {
8316            let (field_number, wire_type) = is.read_tag_unpack()?;
8317            match field_number {
8318                1 => {
8319                    ::protobuf::rt::read_repeated_message_into(wire_type, is, &mut self.annotation)?;
8320                },
8321                _ => {
8322                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
8323                },
8324            };
8325        }
8326        ::std::result::Result::Ok(())
8327    }
8328
8329    // Compute sizes of nested messages
8330    #[allow(unused_variables)]
8331    fn compute_size(&self) -> u32 {
8332        let mut my_size = 0;
8333        for value in &self.annotation {
8334            let len = value.compute_size();
8335            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
8336        };
8337        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
8338        self.cached_size.set(my_size);
8339        my_size
8340    }
8341
8342    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream) -> ::protobuf::ProtobufResult<()> {
8343        for v in &self.annotation {
8344            os.write_tag(1, ::protobuf::wire_format::WireTypeLengthDelimited)?;
8345            os.write_raw_varint32(v.get_cached_size())?;
8346            v.write_to_with_cached_sizes(os)?;
8347        };
8348        os.write_unknown_fields(self.get_unknown_fields())?;
8349        ::std::result::Result::Ok(())
8350    }
8351
8352    fn get_cached_size(&self) -> u32 {
8353        self.cached_size.get()
8354    }
8355
8356    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
8357        &self.unknown_fields
8358    }
8359
8360    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
8361        &mut self.unknown_fields
8362    }
8363
8364    fn as_any(&self) -> &dyn (::std::any::Any) {
8365        self as &dyn (::std::any::Any)
8366    }
8367    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
8368        self as &mut dyn (::std::any::Any)
8369    }
8370    fn into_any(self: Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
8371        self
8372    }
8373
8374    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
8375        Self::descriptor_static()
8376    }
8377
8378    fn new() -> GeneratedCodeInfo {
8379        GeneratedCodeInfo::new()
8380    }
8381
8382    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
8383        static mut descriptor: ::protobuf::lazy::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::lazy::Lazy {
8384            lock: ::protobuf::lazy::ONCE_INIT,
8385            ptr: 0 as *const ::protobuf::reflect::MessageDescriptor,
8386        };
8387        unsafe {
8388            descriptor.get(|| {
8389                let mut fields = ::std::vec::Vec::new();
8390                fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<GeneratedCodeInfo_Annotation>>(
8391                    "annotation",
8392                    |m: &GeneratedCodeInfo| { &m.annotation },
8393                    |m: &mut GeneratedCodeInfo| { &mut m.annotation },
8394                ));
8395                ::protobuf::reflect::MessageDescriptor::new::<GeneratedCodeInfo>(
8396                    "GeneratedCodeInfo",
8397                    fields,
8398                    file_descriptor_proto()
8399                )
8400            })
8401        }
8402    }
8403
8404    fn default_instance() -> &'static GeneratedCodeInfo {
8405        static mut instance: ::protobuf::lazy::Lazy<GeneratedCodeInfo> = ::protobuf::lazy::Lazy {
8406            lock: ::protobuf::lazy::ONCE_INIT,
8407            ptr: 0 as *const GeneratedCodeInfo,
8408        };
8409        unsafe {
8410            instance.get(GeneratedCodeInfo::new)
8411        }
8412    }
8413}
8414
8415impl ::protobuf::Clear for GeneratedCodeInfo {
8416    fn clear(&mut self) {
8417        self.annotation.clear();
8418        self.unknown_fields.clear();
8419    }
8420}
8421
8422impl ::std::fmt::Debug for GeneratedCodeInfo {
8423    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
8424        ::protobuf::text_format::fmt(self, f)
8425    }
8426}
8427
8428impl ::protobuf::reflect::ProtobufValue for GeneratedCodeInfo {
8429    fn as_ref(&self) -> ::protobuf::reflect::ProtobufValueRef {
8430        ::protobuf::reflect::ProtobufValueRef::Message(self)
8431    }
8432}
8433
8434#[derive(PartialEq,Clone,Default)]
8435#[cfg_attr(feature = "with-serde", derive(Serialize, Deserialize))]
8436pub struct GeneratedCodeInfo_Annotation {
8437    // message fields
8438    path: ::std::vec::Vec<i32>,
8439    source_file: ::protobuf::SingularField<::std::string::String>,
8440    begin: ::std::option::Option<i32>,
8441    end: ::std::option::Option<i32>,
8442    // special fields
8443    #[cfg_attr(feature = "with-serde", serde(skip))]
8444    pub unknown_fields: ::protobuf::UnknownFields,
8445    #[cfg_attr(feature = "with-serde", serde(skip))]
8446    pub cached_size: ::protobuf::CachedSize,
8447}
8448
8449impl<'a> ::std::default::Default for &'a GeneratedCodeInfo_Annotation {
8450    fn default() -> &'a GeneratedCodeInfo_Annotation {
8451        <GeneratedCodeInfo_Annotation as ::protobuf::Message>::default_instance()
8452    }
8453}
8454
8455impl GeneratedCodeInfo_Annotation {
8456    pub fn new() -> GeneratedCodeInfo_Annotation {
8457        ::std::default::Default::default()
8458    }
8459
8460    // repeated int32 path = 1;
8461
8462
8463    pub fn get_path(&self) -> &[i32] {
8464        &self.path
8465    }
8466    pub fn clear_path(&mut self) {
8467        self.path.clear();
8468    }
8469
8470    // Param is passed by value, moved
8471    pub fn set_path(&mut self, v: ::std::vec::Vec<i32>) {
8472        self.path = v;
8473    }
8474
8475    // Mutable pointer to the field.
8476    pub fn mut_path(&mut self) -> &mut ::std::vec::Vec<i32> {
8477        &mut self.path
8478    }
8479
8480    // Take field
8481    pub fn take_path(&mut self) -> ::std::vec::Vec<i32> {
8482        ::std::mem::replace(&mut self.path, ::std::vec::Vec::new())
8483    }
8484
8485    // optional string source_file = 2;
8486
8487
8488    pub fn get_source_file(&self) -> &str {
8489        match self.source_file.as_ref() {
8490            Some(v) => &v,
8491            None => "",
8492        }
8493    }
8494    pub fn clear_source_file(&mut self) {
8495        self.source_file.clear();
8496    }
8497
8498    pub fn has_source_file(&self) -> bool {
8499        self.source_file.is_some()
8500    }
8501
8502    // Param is passed by value, moved
8503    pub fn set_source_file(&mut self, v: ::std::string::String) {
8504        self.source_file = ::protobuf::SingularField::some(v);
8505    }
8506
8507    // Mutable pointer to the field.
8508    // If field is not initialized, it is initialized with default value first.
8509    pub fn mut_source_file(&mut self) -> &mut ::std::string::String {
8510        if self.source_file.is_none() {
8511            self.source_file.set_default();
8512        }
8513        self.source_file.as_mut().unwrap()
8514    }
8515
8516    // Take field
8517    pub fn take_source_file(&mut self) -> ::std::string::String {
8518        self.source_file.take().unwrap_or_else(|| ::std::string::String::new())
8519    }
8520
8521    // optional int32 begin = 3;
8522
8523
8524    pub fn get_begin(&self) -> i32 {
8525        self.begin.unwrap_or(0)
8526    }
8527    pub fn clear_begin(&mut self) {
8528        self.begin = ::std::option::Option::None;
8529    }
8530
8531    pub fn has_begin(&self) -> bool {
8532        self.begin.is_some()
8533    }
8534
8535    // Param is passed by value, moved
8536    pub fn set_begin(&mut self, v: i32) {
8537        self.begin = ::std::option::Option::Some(v);
8538    }
8539
8540    // optional int32 end = 4;
8541
8542
8543    pub fn get_end(&self) -> i32 {
8544        self.end.unwrap_or(0)
8545    }
8546    pub fn clear_end(&mut self) {
8547        self.end = ::std::option::Option::None;
8548    }
8549
8550    pub fn has_end(&self) -> bool {
8551        self.end.is_some()
8552    }
8553
8554    // Param is passed by value, moved
8555    pub fn set_end(&mut self, v: i32) {
8556        self.end = ::std::option::Option::Some(v);
8557    }
8558}
8559
8560impl ::protobuf::Message for GeneratedCodeInfo_Annotation {
8561    fn is_initialized(&self) -> bool {
8562        true
8563    }
8564
8565    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream) -> ::protobuf::ProtobufResult<()> {
8566        while !is.eof()? {
8567            let (field_number, wire_type) = is.read_tag_unpack()?;
8568            match field_number {
8569                1 => {
8570                    ::protobuf::rt::read_repeated_int32_into(wire_type, is, &mut self.path)?;
8571                },
8572                2 => {
8573                    ::protobuf::rt::read_singular_string_into(wire_type, is, &mut self.source_file)?;
8574                },
8575                3 => {
8576                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
8577                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
8578                    }
8579                    let tmp = is.read_int32()?;
8580                    self.begin = ::std::option::Option::Some(tmp);
8581                },
8582                4 => {
8583                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
8584                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
8585                    }
8586                    let tmp = is.read_int32()?;
8587                    self.end = ::std::option::Option::Some(tmp);
8588                },
8589                _ => {
8590                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
8591                },
8592            };
8593        }
8594        ::std::result::Result::Ok(())
8595    }
8596
8597    // Compute sizes of nested messages
8598    #[allow(unused_variables)]
8599    fn compute_size(&self) -> u32 {
8600        let mut my_size = 0;
8601        if !self.path.is_empty() {
8602            my_size += ::protobuf::rt::vec_packed_varint_size(1, &self.path);
8603        }
8604        if let Some(ref v) = self.source_file.as_ref() {
8605            my_size += ::protobuf::rt::string_size(2, &v);
8606        }
8607        if let Some(v) = self.begin {
8608            my_size += ::protobuf::rt::value_size(3, v, ::protobuf::wire_format::WireTypeVarint);
8609        }
8610        if let Some(v) = self.end {
8611            my_size += ::protobuf::rt::value_size(4, v, ::protobuf::wire_format::WireTypeVarint);
8612        }
8613        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
8614        self.cached_size.set(my_size);
8615        my_size
8616    }
8617
8618    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream) -> ::protobuf::ProtobufResult<()> {
8619        if !self.path.is_empty() {
8620            os.write_tag(1, ::protobuf::wire_format::WireTypeLengthDelimited)?;
8621            // TODO: Data size is computed again, it should be cached
8622            os.write_raw_varint32(::protobuf::rt::vec_packed_varint_data_size(&self.path))?;
8623            for v in &self.path {
8624                os.write_int32_no_tag(*v)?;
8625            };
8626        }
8627        if let Some(ref v) = self.source_file.as_ref() {
8628            os.write_string(2, &v)?;
8629        }
8630        if let Some(v) = self.begin {
8631            os.write_int32(3, v)?;
8632        }
8633        if let Some(v) = self.end {
8634            os.write_int32(4, v)?;
8635        }
8636        os.write_unknown_fields(self.get_unknown_fields())?;
8637        ::std::result::Result::Ok(())
8638    }
8639
8640    fn get_cached_size(&self) -> u32 {
8641        self.cached_size.get()
8642    }
8643
8644    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
8645        &self.unknown_fields
8646    }
8647
8648    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
8649        &mut self.unknown_fields
8650    }
8651
8652    fn as_any(&self) -> &dyn (::std::any::Any) {
8653        self as &dyn (::std::any::Any)
8654    }
8655    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
8656        self as &mut dyn (::std::any::Any)
8657    }
8658    fn into_any(self: Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
8659        self
8660    }
8661
8662    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
8663        Self::descriptor_static()
8664    }
8665
8666    fn new() -> GeneratedCodeInfo_Annotation {
8667        GeneratedCodeInfo_Annotation::new()
8668    }
8669
8670    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
8671        static mut descriptor: ::protobuf::lazy::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::lazy::Lazy {
8672            lock: ::protobuf::lazy::ONCE_INIT,
8673            ptr: 0 as *const ::protobuf::reflect::MessageDescriptor,
8674        };
8675        unsafe {
8676            descriptor.get(|| {
8677                let mut fields = ::std::vec::Vec::new();
8678                fields.push(::protobuf::reflect::accessor::make_vec_accessor::<_, ::protobuf::types::ProtobufTypeInt32>(
8679                    "path",
8680                    |m: &GeneratedCodeInfo_Annotation| { &m.path },
8681                    |m: &mut GeneratedCodeInfo_Annotation| { &mut m.path },
8682                ));
8683                fields.push(::protobuf::reflect::accessor::make_singular_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
8684                    "source_file",
8685                    |m: &GeneratedCodeInfo_Annotation| { &m.source_file },
8686                    |m: &mut GeneratedCodeInfo_Annotation| { &mut m.source_file },
8687                ));
8688                fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeInt32>(
8689                    "begin",
8690                    |m: &GeneratedCodeInfo_Annotation| { &m.begin },
8691                    |m: &mut GeneratedCodeInfo_Annotation| { &mut m.begin },
8692                ));
8693                fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeInt32>(
8694                    "end",
8695                    |m: &GeneratedCodeInfo_Annotation| { &m.end },
8696                    |m: &mut GeneratedCodeInfo_Annotation| { &mut m.end },
8697                ));
8698                ::protobuf::reflect::MessageDescriptor::new::<GeneratedCodeInfo_Annotation>(
8699                    "GeneratedCodeInfo_Annotation",
8700                    fields,
8701                    file_descriptor_proto()
8702                )
8703            })
8704        }
8705    }
8706
8707    fn default_instance() -> &'static GeneratedCodeInfo_Annotation {
8708        static mut instance: ::protobuf::lazy::Lazy<GeneratedCodeInfo_Annotation> = ::protobuf::lazy::Lazy {
8709            lock: ::protobuf::lazy::ONCE_INIT,
8710            ptr: 0 as *const GeneratedCodeInfo_Annotation,
8711        };
8712        unsafe {
8713            instance.get(GeneratedCodeInfo_Annotation::new)
8714        }
8715    }
8716}
8717
8718impl ::protobuf::Clear for GeneratedCodeInfo_Annotation {
8719    fn clear(&mut self) {
8720        self.path.clear();
8721        self.source_file.clear();
8722        self.begin = ::std::option::Option::None;
8723        self.end = ::std::option::Option::None;
8724        self.unknown_fields.clear();
8725    }
8726}
8727
8728impl ::std::fmt::Debug for GeneratedCodeInfo_Annotation {
8729    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
8730        ::protobuf::text_format::fmt(self, f)
8731    }
8732}
8733
8734impl ::protobuf::reflect::ProtobufValue for GeneratedCodeInfo_Annotation {
8735    fn as_ref(&self) -> ::protobuf::reflect::ProtobufValueRef {
8736        ::protobuf::reflect::ProtobufValueRef::Message(self)
8737    }
8738}
8739
8740static file_descriptor_proto_data: &'static [u8] = b"\
8741    \n\x20google/protobuf/descriptor.proto\x12\x0fgoogle.protobuf\"M\n\x11Fi\
8742    leDescriptorSet\x128\n\x04file\x18\x01\x20\x03(\x0b2$.google.protobuf.Fi\
8743    leDescriptorProtoR\x04file\"\xe4\x04\n\x13FileDescriptorProto\x12\x12\n\
8744    \x04name\x18\x01\x20\x01(\tR\x04name\x12\x18\n\x07package\x18\x02\x20\
8745    \x01(\tR\x07package\x12\x1e\n\ndependency\x18\x03\x20\x03(\tR\ndependenc\
8746    y\x12+\n\x11public_dependency\x18\n\x20\x03(\x05R\x10publicDependency\
8747    \x12'\n\x0fweak_dependency\x18\x0b\x20\x03(\x05R\x0eweakDependency\x12C\
8748    \n\x0cmessage_type\x18\x04\x20\x03(\x0b2\x20.google.protobuf.DescriptorP\
8749    rotoR\x0bmessageType\x12A\n\tenum_type\x18\x05\x20\x03(\x0b2$.google.pro\
8750    tobuf.EnumDescriptorProtoR\x08enumType\x12A\n\x07service\x18\x06\x20\x03\
8751    (\x0b2'.google.protobuf.ServiceDescriptorProtoR\x07service\x12C\n\texten\
8752    sion\x18\x07\x20\x03(\x0b2%.google.protobuf.FieldDescriptorProtoR\texten\
8753    sion\x126\n\x07options\x18\x08\x20\x01(\x0b2\x1c.google.protobuf.FileOpt\
8754    ionsR\x07options\x12I\n\x10source_code_info\x18\t\x20\x01(\x0b2\x1f.goog\
8755    le.protobuf.SourceCodeInfoR\x0esourceCodeInfo\x12\x16\n\x06syntax\x18\
8756    \x0c\x20\x01(\tR\x06syntax\"\xf7\x05\n\x0fDescriptorProto\x12\x12\n\x04n\
8757    ame\x18\x01\x20\x01(\tR\x04name\x12;\n\x05field\x18\x02\x20\x03(\x0b2%.g\
8758    oogle.protobuf.FieldDescriptorProtoR\x05field\x12C\n\textension\x18\x06\
8759    \x20\x03(\x0b2%.google.protobuf.FieldDescriptorProtoR\textension\x12A\n\
8760    \x0bnested_type\x18\x03\x20\x03(\x0b2\x20.google.protobuf.DescriptorProt\
8761    oR\nnestedType\x12A\n\tenum_type\x18\x04\x20\x03(\x0b2$.google.protobuf.\
8762    EnumDescriptorProtoR\x08enumType\x12X\n\x0fextension_range\x18\x05\x20\
8763    \x03(\x0b2/.google.protobuf.DescriptorProto.ExtensionRangeR\x0eextension\
8764    Range\x12D\n\noneof_decl\x18\x08\x20\x03(\x0b2%.google.protobuf.OneofDes\
8765    criptorProtoR\toneofDecl\x129\n\x07options\x18\x07\x20\x01(\x0b2\x1f.goo\
8766    gle.protobuf.MessageOptionsR\x07options\x12U\n\x0ereserved_range\x18\t\
8767    \x20\x03(\x0b2..google.protobuf.DescriptorProto.ReservedRangeR\rreserved\
8768    Range\x12#\n\rreserved_name\x18\n\x20\x03(\tR\x0creservedName\x1a8\n\x0e\
8769    ExtensionRange\x12\x14\n\x05start\x18\x01\x20\x01(\x05R\x05start\x12\x10\
8770    \n\x03end\x18\x02\x20\x01(\x05R\x03end\x1a7\n\rReservedRange\x12\x14\n\
8771    \x05start\x18\x01\x20\x01(\x05R\x05start\x12\x10\n\x03end\x18\x02\x20\
8772    \x01(\x05R\x03end\"\x98\x06\n\x14FieldDescriptorProto\x12\x12\n\x04name\
8773    \x18\x01\x20\x01(\tR\x04name\x12\x16\n\x06number\x18\x03\x20\x01(\x05R\
8774    \x06number\x12A\n\x05label\x18\x04\x20\x01(\x0e2+.google.protobuf.FieldD\
8775    escriptorProto.LabelR\x05label\x12>\n\x04type\x18\x05\x20\x01(\x0e2*.goo\
8776    gle.protobuf.FieldDescriptorProto.TypeR\x04type\x12\x1b\n\ttype_name\x18\
8777    \x06\x20\x01(\tR\x08typeName\x12\x1a\n\x08extendee\x18\x02\x20\x01(\tR\
8778    \x08extendee\x12#\n\rdefault_value\x18\x07\x20\x01(\tR\x0cdefaultValue\
8779    \x12\x1f\n\x0boneof_index\x18\t\x20\x01(\x05R\noneofIndex\x12\x1b\n\tjso\
8780    n_name\x18\n\x20\x01(\tR\x08jsonName\x127\n\x07options\x18\x08\x20\x01(\
8781    \x0b2\x1d.google.protobuf.FieldOptionsR\x07options\"\xb6\x02\n\x04Type\
8782    \x12\x0f\n\x0bTYPE_DOUBLE\x10\x01\x12\x0e\n\nTYPE_FLOAT\x10\x02\x12\x0e\
8783    \n\nTYPE_INT64\x10\x03\x12\x0f\n\x0bTYPE_UINT64\x10\x04\x12\x0e\n\nTYPE_\
8784    INT32\x10\x05\x12\x10\n\x0cTYPE_FIXED64\x10\x06\x12\x10\n\x0cTYPE_FIXED3\
8785    2\x10\x07\x12\r\n\tTYPE_BOOL\x10\x08\x12\x0f\n\x0bTYPE_STRING\x10\t\x12\
8786    \x0e\n\nTYPE_GROUP\x10\n\x12\x10\n\x0cTYPE_MESSAGE\x10\x0b\x12\x0e\n\nTY\
8787    PE_BYTES\x10\x0c\x12\x0f\n\x0bTYPE_UINT32\x10\r\x12\r\n\tTYPE_ENUM\x10\
8788    \x0e\x12\x11\n\rTYPE_SFIXED32\x10\x0f\x12\x11\n\rTYPE_SFIXED64\x10\x10\
8789    \x12\x0f\n\x0bTYPE_SINT32\x10\x11\x12\x0f\n\x0bTYPE_SINT64\x10\x12\"C\n\
8790    \x05Label\x12\x12\n\x0eLABEL_OPTIONAL\x10\x01\x12\x12\n\x0eLABEL_REQUIRE\
8791    D\x10\x02\x12\x12\n\x0eLABEL_REPEATED\x10\x03\"c\n\x14OneofDescriptorPro\
8792    to\x12\x12\n\x04name\x18\x01\x20\x01(\tR\x04name\x127\n\x07options\x18\
8793    \x02\x20\x01(\x0b2\x1d.google.protobuf.OneofOptionsR\x07options\"\xa2\
8794    \x01\n\x13EnumDescriptorProto\x12\x12\n\x04name\x18\x01\x20\x01(\tR\x04n\
8795    ame\x12?\n\x05value\x18\x02\x20\x03(\x0b2).google.protobuf.EnumValueDesc\
8796    riptorProtoR\x05value\x126\n\x07options\x18\x03\x20\x01(\x0b2\x1c.google\
8797    .protobuf.EnumOptionsR\x07options\"\x83\x01\n\x18EnumValueDescriptorProt\
8798    o\x12\x12\n\x04name\x18\x01\x20\x01(\tR\x04name\x12\x16\n\x06number\x18\
8799    \x02\x20\x01(\x05R\x06number\x12;\n\x07options\x18\x03\x20\x01(\x0b2!.go\
8800    ogle.protobuf.EnumValueOptionsR\x07options\"\xa7\x01\n\x16ServiceDescrip\
8801    torProto\x12\x12\n\x04name\x18\x01\x20\x01(\tR\x04name\x12>\n\x06method\
8802    \x18\x02\x20\x03(\x0b2&.google.protobuf.MethodDescriptorProtoR\x06method\
8803    \x129\n\x07options\x18\x03\x20\x01(\x0b2\x1f.google.protobuf.ServiceOpti\
8804    onsR\x07options\"\x89\x02\n\x15MethodDescriptorProto\x12\x12\n\x04name\
8805    \x18\x01\x20\x01(\tR\x04name\x12\x1d\n\ninput_type\x18\x02\x20\x01(\tR\t\
8806    inputType\x12\x1f\n\x0boutput_type\x18\x03\x20\x01(\tR\noutputType\x128\
8807    \n\x07options\x18\x04\x20\x01(\x0b2\x1e.google.protobuf.MethodOptionsR\
8808    \x07options\x120\n\x10client_streaming\x18\x05\x20\x01(\x08:\x05falseR\
8809    \x0fclientStreaming\x120\n\x10server_streaming\x18\x06\x20\x01(\x08:\x05\
8810    falseR\x0fserverStreaming\"\x88\x07\n\x0bFileOptions\x12!\n\x0cjava_pack\
8811    age\x18\x01\x20\x01(\tR\x0bjavaPackage\x120\n\x14java_outer_classname\
8812    \x18\x08\x20\x01(\tR\x12javaOuterClassname\x125\n\x13java_multiple_files\
8813    \x18\n\x20\x01(\x08:\x05falseR\x11javaMultipleFiles\x12D\n\x1djava_gener\
8814    ate_equals_and_hash\x18\x14\x20\x01(\x08R\x19javaGenerateEqualsAndHashB\
8815    \x02\x18\x01\x12:\n\x16java_string_check_utf8\x18\x1b\x20\x01(\x08:\x05f\
8816    alseR\x13javaStringCheckUtf8\x12S\n\x0coptimize_for\x18\t\x20\x01(\x0e2)\
8817    .google.protobuf.FileOptions.OptimizeMode:\x05SPEEDR\x0boptimizeFor\x12\
8818    \x1d\n\ngo_package\x18\x0b\x20\x01(\tR\tgoPackage\x125\n\x13cc_generic_s\
8819    ervices\x18\x10\x20\x01(\x08:\x05falseR\x11ccGenericServices\x129\n\x15j\
8820    ava_generic_services\x18\x11\x20\x01(\x08:\x05falseR\x13javaGenericServi\
8821    ces\x125\n\x13py_generic_services\x18\x12\x20\x01(\x08:\x05falseR\x11pyG\
8822    enericServices\x12%\n\ndeprecated\x18\x17\x20\x01(\x08:\x05falseR\ndepre\
8823    cated\x12/\n\x10cc_enable_arenas\x18\x1f\x20\x01(\x08:\x05falseR\x0eccEn\
8824    ableArenas\x12*\n\x11objc_class_prefix\x18$\x20\x01(\tR\x0fobjcClassPref\
8825    ix\x12)\n\x10csharp_namespace\x18%\x20\x01(\tR\x0fcsharpNamespace\x12X\n\
8826    \x14uninterpreted_option\x18\xe7\x07\x20\x03(\x0b2$.google.protobuf.Unin\
8827    terpretedOptionR\x13uninterpretedOption\":\n\x0cOptimizeMode\x12\t\n\x05\
8828    SPEED\x10\x01\x12\r\n\tCODE_SIZE\x10\x02\x12\x10\n\x0cLITE_RUNTIME\x10\
8829    \x03*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02\"\xc5\x02\n\x0eMessageOption\
8830    s\x12<\n\x17message_set_wire_format\x18\x01\x20\x01(\x08:\x05falseR\x14m\
8831    essageSetWireFormat\x12L\n\x1fno_standard_descriptor_accessor\x18\x02\
8832    \x20\x01(\x08:\x05falseR\x1cnoStandardDescriptorAccessor\x12%\n\ndepreca\
8833    ted\x18\x03\x20\x01(\x08:\x05falseR\ndeprecated\x12\x1b\n\tmap_entry\x18\
8834    \x07\x20\x01(\x08R\x08mapEntry\x12X\n\x14uninterpreted_option\x18\xe7\
8835    \x07\x20\x03(\x0b2$.google.protobuf.UninterpretedOptionR\x13uninterprete\
8836    dOption*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02\"\xdc\x03\n\x0cFieldOptio\
8837    ns\x12A\n\x05ctype\x18\x01\x20\x01(\x0e2#.google.protobuf.FieldOptions.C\
8838    Type:\x06STRINGR\x05ctype\x12\x16\n\x06packed\x18\x02\x20\x01(\x08R\x06p\
8839    acked\x12G\n\x06jstype\x18\x06\x20\x01(\x0e2$.google.protobuf.FieldOptio\
8840    ns.JSType:\tJS_NORMALR\x06jstype\x12\x19\n\x04lazy\x18\x05\x20\x01(\x08:\
8841    \x05falseR\x04lazy\x12%\n\ndeprecated\x18\x03\x20\x01(\x08:\x05falseR\nd\
8842    eprecated\x12\x19\n\x04weak\x18\n\x20\x01(\x08:\x05falseR\x04weak\x12X\n\
8843    \x14uninterpreted_option\x18\xe7\x07\x20\x03(\x0b2$.google.protobuf.Unin\
8844    terpretedOptionR\x13uninterpretedOption\"/\n\x05CType\x12\n\n\x06STRING\
8845    \x10\0\x12\x08\n\x04CORD\x10\x01\x12\x10\n\x0cSTRING_PIECE\x10\x02\"5\n\
8846    \x06JSType\x12\r\n\tJS_NORMAL\x10\0\x12\r\n\tJS_STRING\x10\x01\x12\r\n\t\
8847    JS_NUMBER\x10\x02*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02\"s\n\x0cOneofOp\
8848    tions\x12X\n\x14uninterpreted_option\x18\xe7\x07\x20\x03(\x0b2$.google.p\
8849    rotobuf.UninterpretedOptionR\x13uninterpretedOption*\t\x08\xe8\x07\x10\
8850    \x80\x80\x80\x80\x02\"\xba\x01\n\x0bEnumOptions\x12\x1f\n\x0ballow_alias\
8851    \x18\x02\x20\x01(\x08R\nallowAlias\x12%\n\ndeprecated\x18\x03\x20\x01(\
8852    \x08:\x05falseR\ndeprecated\x12X\n\x14uninterpreted_option\x18\xe7\x07\
8853    \x20\x03(\x0b2$.google.protobuf.UninterpretedOptionR\x13uninterpretedOpt\
8854    ion*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02\"\x9e\x01\n\x10EnumValueOptio\
8855    ns\x12%\n\ndeprecated\x18\x01\x20\x01(\x08:\x05falseR\ndeprecated\x12X\n\
8856    \x14uninterpreted_option\x18\xe7\x07\x20\x03(\x0b2$.google.protobuf.Unin\
8857    terpretedOptionR\x13uninterpretedOption*\t\x08\xe8\x07\x10\x80\x80\x80\
8858    \x80\x02\"\x9c\x01\n\x0eServiceOptions\x12%\n\ndeprecated\x18!\x20\x01(\
8859    \x08:\x05falseR\ndeprecated\x12X\n\x14uninterpreted_option\x18\xe7\x07\
8860    \x20\x03(\x0b2$.google.protobuf.UninterpretedOptionR\x13uninterpretedOpt\
8861    ion*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02\"\x9b\x01\n\rMethodOptions\
8862    \x12%\n\ndeprecated\x18!\x20\x01(\x08:\x05falseR\ndeprecated\x12X\n\x14u\
8863    ninterpreted_option\x18\xe7\x07\x20\x03(\x0b2$.google.protobuf.Uninterpr\
8864    etedOptionR\x13uninterpretedOption*\t\x08\xe8\x07\x10\x80\x80\x80\x80\
8865    \x02\"\x9a\x03\n\x13UninterpretedOption\x12A\n\x04name\x18\x02\x20\x03(\
8866    \x0b2-.google.protobuf.UninterpretedOption.NamePartR\x04name\x12)\n\x10i\
8867    dentifier_value\x18\x03\x20\x01(\tR\x0fidentifierValue\x12,\n\x12positiv\
8868    e_int_value\x18\x04\x20\x01(\x04R\x10positiveIntValue\x12,\n\x12negative\
8869    _int_value\x18\x05\x20\x01(\x03R\x10negativeIntValue\x12!\n\x0cdouble_va\
8870    lue\x18\x06\x20\x01(\x01R\x0bdoubleValue\x12!\n\x0cstring_value\x18\x07\
8871    \x20\x01(\x0cR\x0bstringValue\x12'\n\x0faggregate_value\x18\x08\x20\x01(\
8872    \tR\x0eaggregateValue\x1aJ\n\x08NamePart\x12\x1b\n\tname_part\x18\x01\
8873    \x20\x02(\tR\x08namePart\x12!\n\x0cis_extension\x18\x02\x20\x02(\x08R\
8874    \x0bisExtension\"\xa7\x02\n\x0eSourceCodeInfo\x12D\n\x08location\x18\x01\
8875    \x20\x03(\x0b2(.google.protobuf.SourceCodeInfo.LocationR\x08location\x1a\
8876    \xce\x01\n\x08Location\x12\x16\n\x04path\x18\x01\x20\x03(\x05R\x04pathB\
8877    \x02\x10\x01\x12\x16\n\x04span\x18\x02\x20\x03(\x05R\x04spanB\x02\x10\
8878    \x01\x12)\n\x10leading_comments\x18\x03\x20\x01(\tR\x0fleadingComments\
8879    \x12+\n\x11trailing_comments\x18\x04\x20\x01(\tR\x10trailingComments\x12\
8880    :\n\x19leading_detached_comments\x18\x06\x20\x03(\tR\x17leadingDetachedC\
8881    omments\"\xd1\x01\n\x11GeneratedCodeInfo\x12M\n\nannotation\x18\x01\x20\
8882    \x03(\x0b2-.google.protobuf.GeneratedCodeInfo.AnnotationR\nannotation\
8883    \x1am\n\nAnnotation\x12\x16\n\x04path\x18\x01\x20\x03(\x05R\x04pathB\x02\
8884    \x10\x01\x12\x1f\n\x0bsource_file\x18\x02\x20\x01(\tR\nsourceFile\x12\
8885    \x14\n\x05begin\x18\x03\x20\x01(\x05R\x05begin\x12\x10\n\x03end\x18\x04\
8886    \x20\x01(\x05R\x03endBX\n\x13com.google.protobufB\x10DescriptorProtosH\
8887    \x01Z\ndescriptor\xa2\x02\x03GPB\xaa\x02\x1aGoogle.Protobuf.ReflectionJ\
8888    \xb3\x9f\x02\n\x07\x12\x05'\0\xa3\x06\x01\n\xaa\x0f\n\x01\x0c\x12\x03'\0\
8889    \x122\xc1\x0c\x20Protocol\x20Buffers\x20-\x20Google's\x20data\x20interch\
8890    ange\x20format\n\x20Copyright\x202008\x20Google\x20Inc.\x20\x20All\x20ri\
8891    ghts\x20reserved.\n\x20https://developers.google.com/protocol-buffers/\n\
8892    \n\x20Redistribution\x20and\x20use\x20in\x20source\x20and\x20binary\x20f\
8893    orms,\x20with\x20or\x20without\n\x20modification,\x20are\x20permitted\
8894    \x20provided\x20that\x20the\x20following\x20conditions\x20are\n\x20met:\
8895    \n\n\x20\x20\x20\x20\x20*\x20Redistributions\x20of\x20source\x20code\x20\
8896    must\x20retain\x20the\x20above\x20copyright\n\x20notice,\x20this\x20list\
8897    \x20of\x20conditions\x20and\x20the\x20following\x20disclaimer.\n\x20\x20\
8898    \x20\x20\x20*\x20Redistributions\x20in\x20binary\x20form\x20must\x20repr\
8899    oduce\x20the\x20above\n\x20copyright\x20notice,\x20this\x20list\x20of\
8900    \x20conditions\x20and\x20the\x20following\x20disclaimer\n\x20in\x20the\
8901    \x20documentation\x20and/or\x20other\x20materials\x20provided\x20with\
8902    \x20the\n\x20distribution.\n\x20\x20\x20\x20\x20*\x20Neither\x20the\x20n\
8903    ame\x20of\x20Google\x20Inc.\x20nor\x20the\x20names\x20of\x20its\n\x20con\
8904    tributors\x20may\x20be\x20used\x20to\x20endorse\x20or\x20promote\x20prod\
8905    ucts\x20derived\x20from\n\x20this\x20software\x20without\x20specific\x20\
8906    prior\x20written\x20permission.\n\n\x20THIS\x20SOFTWARE\x20IS\x20PROVIDE\
8907    D\x20BY\x20THE\x20COPYRIGHT\x20HOLDERS\x20AND\x20CONTRIBUTORS\n\x20\"AS\
8908    \x20IS\"\x20AND\x20ANY\x20EXPRESS\x20OR\x20IMPLIED\x20WARRANTIES,\x20INC\
8909    LUDING,\x20BUT\x20NOT\n\x20LIMITED\x20TO,\x20THE\x20IMPLIED\x20WARRANTIE\
8910    S\x20OF\x20MERCHANTABILITY\x20AND\x20FITNESS\x20FOR\n\x20A\x20PARTICULAR\
8911    \x20PURPOSE\x20ARE\x20DISCLAIMED.\x20IN\x20NO\x20EVENT\x20SHALL\x20THE\
8912    \x20COPYRIGHT\n\x20OWNER\x20OR\x20CONTRIBUTORS\x20BE\x20LIABLE\x20FOR\
8913    \x20ANY\x20DIRECT,\x20INDIRECT,\x20INCIDENTAL,\n\x20SPECIAL,\x20EXEMPLAR\
8914    Y,\x20OR\x20CONSEQUENTIAL\x20DAMAGES\x20(INCLUDING,\x20BUT\x20NOT\n\x20L\
8915    IMITED\x20TO,\x20PROCUREMENT\x20OF\x20SUBSTITUTE\x20GOODS\x20OR\x20SERVI\
8916    CES;\x20LOSS\x20OF\x20USE,\n\x20DATA,\x20OR\x20PROFITS;\x20OR\x20BUSINES\
8917    S\x20INTERRUPTION)\x20HOWEVER\x20CAUSED\x20AND\x20ON\x20ANY\n\x20THEORY\
8918    \x20OF\x20LIABILITY,\x20WHETHER\x20IN\x20CONTRACT,\x20STRICT\x20LIABILIT\
8919    Y,\x20OR\x20TORT\n\x20(INCLUDING\x20NEGLIGENCE\x20OR\x20OTHERWISE)\x20AR\
8920    ISING\x20IN\x20ANY\x20WAY\x20OUT\x20OF\x20THE\x20USE\n\x20OF\x20THIS\x20\
8921    SOFTWARE,\x20EVEN\x20IF\x20ADVISED\x20OF\x20THE\x20POSSIBILITY\x20OF\x20\
8922    SUCH\x20DAMAGE.\n2\xdb\x02\x20Author:\x20kenton@google.com\x20(Kenton\
8923    \x20Varda)\n\x20\x20Based\x20on\x20original\x20Protocol\x20Buffers\x20de\
8924    sign\x20by\n\x20\x20Sanjay\x20Ghemawat,\x20Jeff\x20Dean,\x20and\x20other\
8925    s.\n\n\x20The\x20messages\x20in\x20this\x20file\x20describe\x20the\x20de\
8926    finitions\x20found\x20in\x20.proto\x20files.\n\x20A\x20valid\x20.proto\
8927    \x20file\x20can\x20be\x20translated\x20directly\x20to\x20a\x20FileDescri\
8928    ptorProto\n\x20without\x20any\x20other\x20information\x20(e.g.\x20withou\
8929    t\x20reading\x20its\x20imports).\n\n\x08\n\x01\x02\x12\x03)\x08\x17\n\
8930    \x08\n\x01\x08\x12\x03*\0!\n\t\n\x02\x08\x0b\x12\x03*\0!\n\x08\n\x01\x08\
8931    \x12\x03+\0,\n\t\n\x02\x08\x01\x12\x03+\0,\n\x08\n\x01\x08\x12\x03,\01\n\
8932    \t\n\x02\x08\x08\x12\x03,\01\n\x08\n\x01\x08\x12\x03-\07\n\t\n\x02\x08%\
8933    \x12\x03-\07\n\x08\n\x01\x08\x12\x03.\0!\n\t\n\x02\x08$\x12\x03.\0!\n\
8934    \x08\n\x01\x08\x12\x032\0\x1c\n\x7f\n\x02\x08\t\x12\x032\0\x1c\x1at\x20d\
8935    escriptor.proto\x20must\x20be\x20optimized\x20for\x20speed\x20because\
8936    \x20reflection-based\n\x20algorithms\x20don't\x20work\x20during\x20boots\
8937    trapping.\n\nj\n\x02\x04\0\x12\x046\08\x01\x1a^\x20The\x20protocol\x20co\
8938    mpiler\x20can\x20output\x20a\x20FileDescriptorSet\x20containing\x20the\
8939    \x20.proto\n\x20files\x20it\x20parses.\n\n\n\n\x03\x04\0\x01\x12\x036\
8940    \x08\x19\n\x0b\n\x04\x04\0\x02\0\x12\x037\x02(\n\x0c\n\x05\x04\0\x02\0\
8941    \x04\x12\x037\x02\n\n\x0c\n\x05\x04\0\x02\0\x06\x12\x037\x0b\x1e\n\x0c\n\
8942    \x05\x04\0\x02\0\x01\x12\x037\x1f#\n\x0c\n\x05\x04\0\x02\0\x03\x12\x037&\
8943    '\n/\n\x02\x04\x01\x12\x04;\0X\x01\x1a#\x20Describes\x20a\x20complete\
8944    \x20.proto\x20file.\n\n\n\n\x03\x04\x01\x01\x12\x03;\x08\x1b\n9\n\x04\
8945    \x04\x01\x02\0\x12\x03<\x02\x1b\",\x20file\x20name,\x20relative\x20to\
8946    \x20root\x20of\x20source\x20tree\n\n\x0c\n\x05\x04\x01\x02\0\x04\x12\x03\
8947    <\x02\n\n\x0c\n\x05\x04\x01\x02\0\x05\x12\x03<\x0b\x11\n\x0c\n\x05\x04\
8948    \x01\x02\0\x01\x12\x03<\x12\x16\n\x0c\n\x05\x04\x01\x02\0\x03\x12\x03<\
8949    \x19\x1a\n*\n\x04\x04\x01\x02\x01\x12\x03=\x02\x1e\"\x1d\x20e.g.\x20\"fo\
8950    o\",\x20\"foo.bar\",\x20etc.\n\n\x0c\n\x05\x04\x01\x02\x01\x04\x12\x03=\
8951    \x02\n\n\x0c\n\x05\x04\x01\x02\x01\x05\x12\x03=\x0b\x11\n\x0c\n\x05\x04\
8952    \x01\x02\x01\x01\x12\x03=\x12\x19\n\x0c\n\x05\x04\x01\x02\x01\x03\x12\
8953    \x03=\x1c\x1d\n4\n\x04\x04\x01\x02\x02\x12\x03@\x02!\x1a'\x20Names\x20of\
8954    \x20files\x20imported\x20by\x20this\x20file.\n\n\x0c\n\x05\x04\x01\x02\
8955    \x02\x04\x12\x03@\x02\n\n\x0c\n\x05\x04\x01\x02\x02\x05\x12\x03@\x0b\x11\
8956    \n\x0c\n\x05\x04\x01\x02\x02\x01\x12\x03@\x12\x1c\n\x0c\n\x05\x04\x01\
8957    \x02\x02\x03\x12\x03@\x1f\x20\nQ\n\x04\x04\x01\x02\x03\x12\x03B\x02(\x1a\
8958    D\x20Indexes\x20of\x20the\x20public\x20imported\x20files\x20in\x20the\
8959    \x20dependency\x20list\x20above.\n\n\x0c\n\x05\x04\x01\x02\x03\x04\x12\
8960    \x03B\x02\n\n\x0c\n\x05\x04\x01\x02\x03\x05\x12\x03B\x0b\x10\n\x0c\n\x05\
8961    \x04\x01\x02\x03\x01\x12\x03B\x11\"\n\x0c\n\x05\x04\x01\x02\x03\x03\x12\
8962    \x03B%'\nz\n\x04\x04\x01\x02\x04\x12\x03E\x02&\x1am\x20Indexes\x20of\x20\
8963    the\x20weak\x20imported\x20files\x20in\x20the\x20dependency\x20list.\n\
8964    \x20For\x20Google-internal\x20migration\x20only.\x20Do\x20not\x20use.\n\
8965    \n\x0c\n\x05\x04\x01\x02\x04\x04\x12\x03E\x02\n\n\x0c\n\x05\x04\x01\x02\
8966    \x04\x05\x12\x03E\x0b\x10\n\x0c\n\x05\x04\x01\x02\x04\x01\x12\x03E\x11\
8967    \x20\n\x0c\n\x05\x04\x01\x02\x04\x03\x12\x03E#%\n6\n\x04\x04\x01\x02\x05\
8968    \x12\x03H\x02,\x1a)\x20All\x20top-level\x20definitions\x20in\x20this\x20\
8969    file.\n\n\x0c\n\x05\x04\x01\x02\x05\x04\x12\x03H\x02\n\n\x0c\n\x05\x04\
8970    \x01\x02\x05\x06\x12\x03H\x0b\x1a\n\x0c\n\x05\x04\x01\x02\x05\x01\x12\
8971    \x03H\x1b'\n\x0c\n\x05\x04\x01\x02\x05\x03\x12\x03H*+\n\x0b\n\x04\x04\
8972    \x01\x02\x06\x12\x03I\x02-\n\x0c\n\x05\x04\x01\x02\x06\x04\x12\x03I\x02\
8973    \n\n\x0c\n\x05\x04\x01\x02\x06\x06\x12\x03I\x0b\x1e\n\x0c\n\x05\x04\x01\
8974    \x02\x06\x01\x12\x03I\x1f(\n\x0c\n\x05\x04\x01\x02\x06\x03\x12\x03I+,\n\
8975    \x0b\n\x04\x04\x01\x02\x07\x12\x03J\x02.\n\x0c\n\x05\x04\x01\x02\x07\x04\
8976    \x12\x03J\x02\n\n\x0c\n\x05\x04\x01\x02\x07\x06\x12\x03J\x0b!\n\x0c\n\
8977    \x05\x04\x01\x02\x07\x01\x12\x03J\")\n\x0c\n\x05\x04\x01\x02\x07\x03\x12\
8978    \x03J,-\n\x0b\n\x04\x04\x01\x02\x08\x12\x03K\x02.\n\x0c\n\x05\x04\x01\
8979    \x02\x08\x04\x12\x03K\x02\n\n\x0c\n\x05\x04\x01\x02\x08\x06\x12\x03K\x0b\
8980    \x1f\n\x0c\n\x05\x04\x01\x02\x08\x01\x12\x03K\x20)\n\x0c\n\x05\x04\x01\
8981    \x02\x08\x03\x12\x03K,-\n\x0b\n\x04\x04\x01\x02\t\x12\x03M\x02#\n\x0c\n\
8982    \x05\x04\x01\x02\t\x04\x12\x03M\x02\n\n\x0c\n\x05\x04\x01\x02\t\x06\x12\
8983    \x03M\x0b\x16\n\x0c\n\x05\x04\x01\x02\t\x01\x12\x03M\x17\x1e\n\x0c\n\x05\
8984    \x04\x01\x02\t\x03\x12\x03M!\"\n\xf4\x01\n\x04\x04\x01\x02\n\x12\x03S\
8985    \x02/\x1a\xe6\x01\x20This\x20field\x20contains\x20optional\x20informatio\
8986    n\x20about\x20the\x20original\x20source\x20code.\n\x20You\x20may\x20safe\
8987    ly\x20remove\x20this\x20entire\x20field\x20without\x20harming\x20runtime\
8988    \n\x20functionality\x20of\x20the\x20descriptors\x20--\x20the\x20informat\
8989    ion\x20is\x20needed\x20only\x20by\n\x20development\x20tools.\n\n\x0c\n\
8990    \x05\x04\x01\x02\n\x04\x12\x03S\x02\n\n\x0c\n\x05\x04\x01\x02\n\x06\x12\
8991    \x03S\x0b\x19\n\x0c\n\x05\x04\x01\x02\n\x01\x12\x03S\x1a*\n\x0c\n\x05\
8992    \x04\x01\x02\n\x03\x12\x03S-.\n]\n\x04\x04\x01\x02\x0b\x12\x03W\x02\x1e\
8993    \x1aP\x20The\x20syntax\x20of\x20the\x20proto\x20file.\n\x20The\x20suppor\
8994    ted\x20values\x20are\x20\"proto2\"\x20and\x20\"proto3\".\n\n\x0c\n\x05\
8995    \x04\x01\x02\x0b\x04\x12\x03W\x02\n\n\x0c\n\x05\x04\x01\x02\x0b\x05\x12\
8996    \x03W\x0b\x11\n\x0c\n\x05\x04\x01\x02\x0b\x01\x12\x03W\x12\x18\n\x0c\n\
8997    \x05\x04\x01\x02\x0b\x03\x12\x03W\x1b\x1d\n'\n\x02\x04\x02\x12\x04[\0y\
8998    \x01\x1a\x1b\x20Describes\x20a\x20message\x20type.\n\n\n\n\x03\x04\x02\
8999    \x01\x12\x03[\x08\x17\n\x0b\n\x04\x04\x02\x02\0\x12\x03\\\x02\x1b\n\x0c\
9000    \n\x05\x04\x02\x02\0\x04\x12\x03\\\x02\n\n\x0c\n\x05\x04\x02\x02\0\x05\
9001    \x12\x03\\\x0b\x11\n\x0c\n\x05\x04\x02\x02\0\x01\x12\x03\\\x12\x16\n\x0c\
9002    \n\x05\x04\x02\x02\0\x03\x12\x03\\\x19\x1a\n\x0b\n\x04\x04\x02\x02\x01\
9003    \x12\x03^\x02*\n\x0c\n\x05\x04\x02\x02\x01\x04\x12\x03^\x02\n\n\x0c\n\
9004    \x05\x04\x02\x02\x01\x06\x12\x03^\x0b\x1f\n\x0c\n\x05\x04\x02\x02\x01\
9005    \x01\x12\x03^\x20%\n\x0c\n\x05\x04\x02\x02\x01\x03\x12\x03^()\n\x0b\n\
9006    \x04\x04\x02\x02\x02\x12\x03_\x02.\n\x0c\n\x05\x04\x02\x02\x02\x04\x12\
9007    \x03_\x02\n\n\x0c\n\x05\x04\x02\x02\x02\x06\x12\x03_\x0b\x1f\n\x0c\n\x05\
9008    \x04\x02\x02\x02\x01\x12\x03_\x20)\n\x0c\n\x05\x04\x02\x02\x02\x03\x12\
9009    \x03_,-\n\x0b\n\x04\x04\x02\x02\x03\x12\x03a\x02+\n\x0c\n\x05\x04\x02\
9010    \x02\x03\x04\x12\x03a\x02\n\n\x0c\n\x05\x04\x02\x02\x03\x06\x12\x03a\x0b\
9011    \x1a\n\x0c\n\x05\x04\x02\x02\x03\x01\x12\x03a\x1b&\n\x0c\n\x05\x04\x02\
9012    \x02\x03\x03\x12\x03a)*\n\x0b\n\x04\x04\x02\x02\x04\x12\x03b\x02-\n\x0c\
9013    \n\x05\x04\x02\x02\x04\x04\x12\x03b\x02\n\n\x0c\n\x05\x04\x02\x02\x04\
9014    \x06\x12\x03b\x0b\x1e\n\x0c\n\x05\x04\x02\x02\x04\x01\x12\x03b\x1f(\n\
9015    \x0c\n\x05\x04\x02\x02\x04\x03\x12\x03b+,\n\x0c\n\x04\x04\x02\x03\0\x12\
9016    \x04d\x02g\x03\n\x0c\n\x05\x04\x02\x03\0\x01\x12\x03d\n\x18\n\r\n\x06\
9017    \x04\x02\x03\0\x02\0\x12\x03e\x04\x1d\n\x0e\n\x07\x04\x02\x03\0\x02\0\
9018    \x04\x12\x03e\x04\x0c\n\x0e\n\x07\x04\x02\x03\0\x02\0\x05\x12\x03e\r\x12\
9019    \n\x0e\n\x07\x04\x02\x03\0\x02\0\x01\x12\x03e\x13\x18\n\x0e\n\x07\x04\
9020    \x02\x03\0\x02\0\x03\x12\x03e\x1b\x1c\n\r\n\x06\x04\x02\x03\0\x02\x01\
9021    \x12\x03f\x04\x1b\n\x0e\n\x07\x04\x02\x03\0\x02\x01\x04\x12\x03f\x04\x0c\
9022    \n\x0e\n\x07\x04\x02\x03\0\x02\x01\x05\x12\x03f\r\x12\n\x0e\n\x07\x04\
9023    \x02\x03\0\x02\x01\x01\x12\x03f\x13\x16\n\x0e\n\x07\x04\x02\x03\0\x02\
9024    \x01\x03\x12\x03f\x19\x1a\n\x0b\n\x04\x04\x02\x02\x05\x12\x03h\x02.\n\
9025    \x0c\n\x05\x04\x02\x02\x05\x04\x12\x03h\x02\n\n\x0c\n\x05\x04\x02\x02\
9026    \x05\x06\x12\x03h\x0b\x19\n\x0c\n\x05\x04\x02\x02\x05\x01\x12\x03h\x1a)\
9027    \n\x0c\n\x05\x04\x02\x02\x05\x03\x12\x03h,-\n\x0b\n\x04\x04\x02\x02\x06\
9028    \x12\x03j\x02/\n\x0c\n\x05\x04\x02\x02\x06\x04\x12\x03j\x02\n\n\x0c\n\
9029    \x05\x04\x02\x02\x06\x06\x12\x03j\x0b\x1f\n\x0c\n\x05\x04\x02\x02\x06\
9030    \x01\x12\x03j\x20*\n\x0c\n\x05\x04\x02\x02\x06\x03\x12\x03j-.\n\x0b\n\
9031    \x04\x04\x02\x02\x07\x12\x03l\x02&\n\x0c\n\x05\x04\x02\x02\x07\x04\x12\
9032    \x03l\x02\n\n\x0c\n\x05\x04\x02\x02\x07\x06\x12\x03l\x0b\x19\n\x0c\n\x05\
9033    \x04\x02\x02\x07\x01\x12\x03l\x1a!\n\x0c\n\x05\x04\x02\x02\x07\x03\x12\
9034    \x03l$%\n\xaa\x01\n\x04\x04\x02\x03\x01\x12\x04q\x02t\x03\x1a\x9b\x01\
9035    \x20Range\x20of\x20reserved\x20tag\x20numbers.\x20Reserved\x20tag\x20num\
9036    bers\x20may\x20not\x20be\x20used\x20by\n\x20fields\x20or\x20extension\
9037    \x20ranges\x20in\x20the\x20same\x20message.\x20Reserved\x20ranges\x20may\
9038    \n\x20not\x20overlap.\n\n\x0c\n\x05\x04\x02\x03\x01\x01\x12\x03q\n\x17\n\
9039    \x1b\n\x06\x04\x02\x03\x01\x02\0\x12\x03r\x04\x1d\"\x0c\x20Inclusive.\n\
9040    \n\x0e\n\x07\x04\x02\x03\x01\x02\0\x04\x12\x03r\x04\x0c\n\x0e\n\x07\x04\
9041    \x02\x03\x01\x02\0\x05\x12\x03r\r\x12\n\x0e\n\x07\x04\x02\x03\x01\x02\0\
9042    \x01\x12\x03r\x13\x18\n\x0e\n\x07\x04\x02\x03\x01\x02\0\x03\x12\x03r\x1b\
9043    \x1c\n\x1b\n\x06\x04\x02\x03\x01\x02\x01\x12\x03s\x04\x1b\"\x0c\x20Exclu\
9044    sive.\n\n\x0e\n\x07\x04\x02\x03\x01\x02\x01\x04\x12\x03s\x04\x0c\n\x0e\n\
9045    \x07\x04\x02\x03\x01\x02\x01\x05\x12\x03s\r\x12\n\x0e\n\x07\x04\x02\x03\
9046    \x01\x02\x01\x01\x12\x03s\x13\x16\n\x0e\n\x07\x04\x02\x03\x01\x02\x01\
9047    \x03\x12\x03s\x19\x1a\n\x0b\n\x04\x04\x02\x02\x08\x12\x03u\x02,\n\x0c\n\
9048    \x05\x04\x02\x02\x08\x04\x12\x03u\x02\n\n\x0c\n\x05\x04\x02\x02\x08\x06\
9049    \x12\x03u\x0b\x18\n\x0c\n\x05\x04\x02\x02\x08\x01\x12\x03u\x19'\n\x0c\n\
9050    \x05\x04\x02\x02\x08\x03\x12\x03u*+\n\x82\x01\n\x04\x04\x02\x02\t\x12\
9051    \x03x\x02%\x1au\x20Reserved\x20field\x20names,\x20which\x20may\x20not\
9052    \x20be\x20used\x20by\x20fields\x20in\x20the\x20same\x20message.\n\x20A\
9053    \x20given\x20name\x20may\x20only\x20be\x20reserved\x20once.\n\n\x0c\n\
9054    \x05\x04\x02\x02\t\x04\x12\x03x\x02\n\n\x0c\n\x05\x04\x02\x02\t\x05\x12\
9055    \x03x\x0b\x11\n\x0c\n\x05\x04\x02\x02\t\x01\x12\x03x\x12\x1f\n\x0c\n\x05\
9056    \x04\x02\x02\t\x03\x12\x03x\"$\n2\n\x02\x04\x03\x12\x05|\0\xc7\x01\x01\
9057    \x1a%\x20Describes\x20a\x20field\x20within\x20a\x20message.\n\n\n\n\x03\
9058    \x04\x03\x01\x12\x03|\x08\x1c\n\r\n\x04\x04\x03\x04\0\x12\x05}\x02\x98\
9059    \x01\x03\n\x0c\n\x05\x04\x03\x04\0\x01\x12\x03}\x07\x0b\nS\n\x06\x04\x03\
9060    \x04\0\x02\0\x12\x04\x80\x01\x04\x1c\x1aC\x200\x20is\x20reserved\x20for\
9061    \x20errors.\n\x20Order\x20is\x20weird\x20for\x20historical\x20reasons.\n\
9062    \n\x0f\n\x07\x04\x03\x04\0\x02\0\x01\x12\x04\x80\x01\x04\x0f\n\x0f\n\x07\
9063    \x04\x03\x04\0\x02\0\x02\x12\x04\x80\x01\x1a\x1b\n\x0e\n\x06\x04\x03\x04\
9064    \0\x02\x01\x12\x04\x81\x01\x04\x1c\n\x0f\n\x07\x04\x03\x04\0\x02\x01\x01\
9065    \x12\x04\x81\x01\x04\x0e\n\x0f\n\x07\x04\x03\x04\0\x02\x01\x02\x12\x04\
9066    \x81\x01\x1a\x1b\nw\n\x06\x04\x03\x04\0\x02\x02\x12\x04\x84\x01\x04\x1c\
9067    \x1ag\x20Not\x20ZigZag\x20encoded.\x20\x20Negative\x20numbers\x20take\
9068    \x2010\x20bytes.\x20\x20Use\x20TYPE_SINT64\x20if\n\x20negative\x20values\
9069    \x20are\x20likely.\n\n\x0f\n\x07\x04\x03\x04\0\x02\x02\x01\x12\x04\x84\
9070    \x01\x04\x0e\n\x0f\n\x07\x04\x03\x04\0\x02\x02\x02\x12\x04\x84\x01\x1a\
9071    \x1b\n\x0e\n\x06\x04\x03\x04\0\x02\x03\x12\x04\x85\x01\x04\x1c\n\x0f\n\
9072    \x07\x04\x03\x04\0\x02\x03\x01\x12\x04\x85\x01\x04\x0f\n\x0f\n\x07\x04\
9073    \x03\x04\0\x02\x03\x02\x12\x04\x85\x01\x1a\x1b\nw\n\x06\x04\x03\x04\0\
9074    \x02\x04\x12\x04\x88\x01\x04\x1c\x1ag\x20Not\x20ZigZag\x20encoded.\x20\
9075    \x20Negative\x20numbers\x20take\x2010\x20bytes.\x20\x20Use\x20TYPE_SINT3\
9076    2\x20if\n\x20negative\x20values\x20are\x20likely.\n\n\x0f\n\x07\x04\x03\
9077    \x04\0\x02\x04\x01\x12\x04\x88\x01\x04\x0e\n\x0f\n\x07\x04\x03\x04\0\x02\
9078    \x04\x02\x12\x04\x88\x01\x1a\x1b\n\x0e\n\x06\x04\x03\x04\0\x02\x05\x12\
9079    \x04\x89\x01\x04\x1c\n\x0f\n\x07\x04\x03\x04\0\x02\x05\x01\x12\x04\x89\
9080    \x01\x04\x10\n\x0f\n\x07\x04\x03\x04\0\x02\x05\x02\x12\x04\x89\x01\x1a\
9081    \x1b\n\x0e\n\x06\x04\x03\x04\0\x02\x06\x12\x04\x8a\x01\x04\x1c\n\x0f\n\
9082    \x07\x04\x03\x04\0\x02\x06\x01\x12\x04\x8a\x01\x04\x10\n\x0f\n\x07\x04\
9083    \x03\x04\0\x02\x06\x02\x12\x04\x8a\x01\x1a\x1b\n\x0e\n\x06\x04\x03\x04\0\
9084    \x02\x07\x12\x04\x8b\x01\x04\x1c\n\x0f\n\x07\x04\x03\x04\0\x02\x07\x01\
9085    \x12\x04\x8b\x01\x04\r\n\x0f\n\x07\x04\x03\x04\0\x02\x07\x02\x12\x04\x8b\
9086    \x01\x1a\x1b\n\x0e\n\x06\x04\x03\x04\0\x02\x08\x12\x04\x8c\x01\x04\x1c\n\
9087    \x0f\n\x07\x04\x03\x04\0\x02\x08\x01\x12\x04\x8c\x01\x04\x0f\n\x0f\n\x07\
9088    \x04\x03\x04\0\x02\x08\x02\x12\x04\x8c\x01\x1a\x1b\n*\n\x06\x04\x03\x04\
9089    \0\x02\t\x12\x04\x8d\x01\x04\x1d\"\x1a\x20Tag-delimited\x20aggregate.\n\
9090    \n\x0f\n\x07\x04\x03\x04\0\x02\t\x01\x12\x04\x8d\x01\x04\x0e\n\x0f\n\x07\
9091    \x04\x03\x04\0\x02\t\x02\x12\x04\x8d\x01\x1a\x1c\n-\n\x06\x04\x03\x04\0\
9092    \x02\n\x12\x04\x8e\x01\x04\x1d\"\x1d\x20Length-delimited\x20aggregate.\n\
9093    \n\x0f\n\x07\x04\x03\x04\0\x02\n\x01\x12\x04\x8e\x01\x04\x10\n\x0f\n\x07\
9094    \x04\x03\x04\0\x02\n\x02\x12\x04\x8e\x01\x1a\x1c\n#\n\x06\x04\x03\x04\0\
9095    \x02\x0b\x12\x04\x91\x01\x04\x1d\x1a\x13\x20New\x20in\x20version\x202.\n\
9096    \n\x0f\n\x07\x04\x03\x04\0\x02\x0b\x01\x12\x04\x91\x01\x04\x0e\n\x0f\n\
9097    \x07\x04\x03\x04\0\x02\x0b\x02\x12\x04\x91\x01\x1a\x1c\n\x0e\n\x06\x04\
9098    \x03\x04\0\x02\x0c\x12\x04\x92\x01\x04\x1d\n\x0f\n\x07\x04\x03\x04\0\x02\
9099    \x0c\x01\x12\x04\x92\x01\x04\x0f\n\x0f\n\x07\x04\x03\x04\0\x02\x0c\x02\
9100    \x12\x04\x92\x01\x1a\x1c\n\x0e\n\x06\x04\x03\x04\0\x02\r\x12\x04\x93\x01\
9101    \x04\x1d\n\x0f\n\x07\x04\x03\x04\0\x02\r\x01\x12\x04\x93\x01\x04\r\n\x0f\
9102    \n\x07\x04\x03\x04\0\x02\r\x02\x12\x04\x93\x01\x1a\x1c\n\x0e\n\x06\x04\
9103    \x03\x04\0\x02\x0e\x12\x04\x94\x01\x04\x1d\n\x0f\n\x07\x04\x03\x04\0\x02\
9104    \x0e\x01\x12\x04\x94\x01\x04\x11\n\x0f\n\x07\x04\x03\x04\0\x02\x0e\x02\
9105    \x12\x04\x94\x01\x1a\x1c\n\x0e\n\x06\x04\x03\x04\0\x02\x0f\x12\x04\x95\
9106    \x01\x04\x1d\n\x0f\n\x07\x04\x03\x04\0\x02\x0f\x01\x12\x04\x95\x01\x04\
9107    \x11\n\x0f\n\x07\x04\x03\x04\0\x02\x0f\x02\x12\x04\x95\x01\x1a\x1c\n'\n\
9108    \x06\x04\x03\x04\0\x02\x10\x12\x04\x96\x01\x04\x1d\"\x17\x20Uses\x20ZigZ\
9109    ag\x20encoding.\n\n\x0f\n\x07\x04\x03\x04\0\x02\x10\x01\x12\x04\x96\x01\
9110    \x04\x0f\n\x0f\n\x07\x04\x03\x04\0\x02\x10\x02\x12\x04\x96\x01\x1a\x1c\n\
9111    '\n\x06\x04\x03\x04\0\x02\x11\x12\x04\x97\x01\x04\x1d\"\x17\x20Uses\x20Z\
9112    igZag\x20encoding.\n\n\x0f\n\x07\x04\x03\x04\0\x02\x11\x01\x12\x04\x97\
9113    \x01\x04\x0f\n\x0f\n\x07\x04\x03\x04\0\x02\x11\x02\x12\x04\x97\x01\x1a\
9114    \x1c\n\x0e\n\x04\x04\x03\x04\x01\x12\x06\x9a\x01\x02\xa0\x01\x03\n\r\n\
9115    \x05\x04\x03\x04\x01\x01\x12\x04\x9a\x01\x07\x0c\n*\n\x06\x04\x03\x04\
9116    \x01\x02\0\x12\x04\x9c\x01\x04\x1c\x1a\x1a\x200\x20is\x20reserved\x20for\
9117    \x20errors\n\n\x0f\n\x07\x04\x03\x04\x01\x02\0\x01\x12\x04\x9c\x01\x04\
9118    \x12\n\x0f\n\x07\x04\x03\x04\x01\x02\0\x02\x12\x04\x9c\x01\x1a\x1b\n\x0e\
9119    \n\x06\x04\x03\x04\x01\x02\x01\x12\x04\x9d\x01\x04\x1c\n\x0f\n\x07\x04\
9120    \x03\x04\x01\x02\x01\x01\x12\x04\x9d\x01\x04\x12\n\x0f\n\x07\x04\x03\x04\
9121    \x01\x02\x01\x02\x12\x04\x9d\x01\x1a\x1b\n8\n\x06\x04\x03\x04\x01\x02\
9122    \x02\x12\x04\x9e\x01\x04\x1c\"(\x20TODO(sanjay):\x20Should\x20we\x20add\
9123    \x20LABEL_MAP?\n\n\x0f\n\x07\x04\x03\x04\x01\x02\x02\x01\x12\x04\x9e\x01\
9124    \x04\x12\n\x0f\n\x07\x04\x03\x04\x01\x02\x02\x02\x12\x04\x9e\x01\x1a\x1b\
9125    \n\x0c\n\x04\x04\x03\x02\0\x12\x04\xa2\x01\x02\x1b\n\r\n\x05\x04\x03\x02\
9126    \0\x04\x12\x04\xa2\x01\x02\n\n\r\n\x05\x04\x03\x02\0\x05\x12\x04\xa2\x01\
9127    \x0b\x11\n\r\n\x05\x04\x03\x02\0\x01\x12\x04\xa2\x01\x12\x16\n\r\n\x05\
9128    \x04\x03\x02\0\x03\x12\x04\xa2\x01\x19\x1a\n\x0c\n\x04\x04\x03\x02\x01\
9129    \x12\x04\xa3\x01\x02\x1c\n\r\n\x05\x04\x03\x02\x01\x04\x12\x04\xa3\x01\
9130    \x02\n\n\r\n\x05\x04\x03\x02\x01\x05\x12\x04\xa3\x01\x0b\x10\n\r\n\x05\
9131    \x04\x03\x02\x01\x01\x12\x04\xa3\x01\x11\x17\n\r\n\x05\x04\x03\x02\x01\
9132    \x03\x12\x04\xa3\x01\x1a\x1b\n\x0c\n\x04\x04\x03\x02\x02\x12\x04\xa4\x01\
9133    \x02\x1b\n\r\n\x05\x04\x03\x02\x02\x04\x12\x04\xa4\x01\x02\n\n\r\n\x05\
9134    \x04\x03\x02\x02\x06\x12\x04\xa4\x01\x0b\x10\n\r\n\x05\x04\x03\x02\x02\
9135    \x01\x12\x04\xa4\x01\x11\x16\n\r\n\x05\x04\x03\x02\x02\x03\x12\x04\xa4\
9136    \x01\x19\x1a\n\x9c\x01\n\x04\x04\x03\x02\x03\x12\x04\xa8\x01\x02\x19\x1a\
9137    \x8d\x01\x20If\x20type_name\x20is\x20set,\x20this\x20need\x20not\x20be\
9138    \x20set.\x20\x20If\x20both\x20this\x20and\x20type_name\n\x20are\x20set,\
9139    \x20this\x20must\x20be\x20one\x20of\x20TYPE_ENUM,\x20TYPE_MESSAGE\x20or\
9140    \x20TYPE_GROUP.\n\n\r\n\x05\x04\x03\x02\x03\x04\x12\x04\xa8\x01\x02\n\n\
9141    \r\n\x05\x04\x03\x02\x03\x06\x12\x04\xa8\x01\x0b\x0f\n\r\n\x05\x04\x03\
9142    \x02\x03\x01\x12\x04\xa8\x01\x10\x14\n\r\n\x05\x04\x03\x02\x03\x03\x12\
9143    \x04\xa8\x01\x17\x18\n\xb7\x02\n\x04\x04\x03\x02\x04\x12\x04\xaf\x01\x02\
9144    \x20\x1a\xa8\x02\x20For\x20message\x20and\x20enum\x20types,\x20this\x20i\
9145    s\x20the\x20name\x20of\x20the\x20type.\x20\x20If\x20the\x20name\n\x20sta\
9146    rts\x20with\x20a\x20'.',\x20it\x20is\x20fully-qualified.\x20\x20Otherwis\
9147    e,\x20C++-like\x20scoping\n\x20rules\x20are\x20used\x20to\x20find\x20the\
9148    \x20type\x20(i.e.\x20first\x20the\x20nested\x20types\x20within\x20this\n\
9149    \x20message\x20are\x20searched,\x20then\x20within\x20the\x20parent,\x20o\
9150    n\x20up\x20to\x20the\x20root\n\x20namespace).\n\n\r\n\x05\x04\x03\x02\
9151    \x04\x04\x12\x04\xaf\x01\x02\n\n\r\n\x05\x04\x03\x02\x04\x05\x12\x04\xaf\
9152    \x01\x0b\x11\n\r\n\x05\x04\x03\x02\x04\x01\x12\x04\xaf\x01\x12\x1b\n\r\n\
9153    \x05\x04\x03\x02\x04\x03\x12\x04\xaf\x01\x1e\x1f\n~\n\x04\x04\x03\x02\
9154    \x05\x12\x04\xb3\x01\x02\x1f\x1ap\x20For\x20extensions,\x20this\x20is\
9155    \x20the\x20name\x20of\x20the\x20type\x20being\x20extended.\x20\x20It\x20\
9156    is\n\x20resolved\x20in\x20the\x20same\x20manner\x20as\x20type_name.\n\n\
9157    \r\n\x05\x04\x03\x02\x05\x04\x12\x04\xb3\x01\x02\n\n\r\n\x05\x04\x03\x02\
9158    \x05\x05\x12\x04\xb3\x01\x0b\x11\n\r\n\x05\x04\x03\x02\x05\x01\x12\x04\
9159    \xb3\x01\x12\x1a\n\r\n\x05\x04\x03\x02\x05\x03\x12\x04\xb3\x01\x1d\x1e\n\
9160    \xb1\x02\n\x04\x04\x03\x02\x06\x12\x04\xba\x01\x02$\x1a\xa2\x02\x20For\
9161    \x20numeric\x20types,\x20contains\x20the\x20original\x20text\x20represen\
9162    tation\x20of\x20the\x20value.\n\x20For\x20booleans,\x20\"true\"\x20or\
9163    \x20\"false\".\n\x20For\x20strings,\x20contains\x20the\x20default\x20tex\
9164    t\x20contents\x20(not\x20escaped\x20in\x20any\x20way).\n\x20For\x20bytes\
9165    ,\x20contains\x20the\x20C\x20escaped\x20value.\x20\x20All\x20bytes\x20>=\
9166    \x20128\x20are\x20escaped.\n\x20TODO(kenton):\x20\x20Base-64\x20encode?\
9167    \n\n\r\n\x05\x04\x03\x02\x06\x04\x12\x04\xba\x01\x02\n\n\r\n\x05\x04\x03\
9168    \x02\x06\x05\x12\x04\xba\x01\x0b\x11\n\r\n\x05\x04\x03\x02\x06\x01\x12\
9169    \x04\xba\x01\x12\x1f\n\r\n\x05\x04\x03\x02\x06\x03\x12\x04\xba\x01\"#\n\
9170    \x84\x01\n\x04\x04\x03\x02\x07\x12\x04\xbe\x01\x02!\x1av\x20If\x20set,\
9171    \x20gives\x20the\x20index\x20of\x20a\x20oneof\x20in\x20the\x20containing\
9172    \x20type's\x20oneof_decl\n\x20list.\x20\x20This\x20field\x20is\x20a\x20m\
9173    ember\x20of\x20that\x20oneof.\n\n\r\n\x05\x04\x03\x02\x07\x04\x12\x04\
9174    \xbe\x01\x02\n\n\r\n\x05\x04\x03\x02\x07\x05\x12\x04\xbe\x01\x0b\x10\n\r\
9175    \n\x05\x04\x03\x02\x07\x01\x12\x04\xbe\x01\x11\x1c\n\r\n\x05\x04\x03\x02\
9176    \x07\x03\x12\x04\xbe\x01\x1f\x20\n\xfa\x01\n\x04\x04\x03\x02\x08\x12\x04\
9177    \xc4\x01\x02!\x1a\xeb\x01\x20JSON\x20name\x20of\x20this\x20field.\x20The\
9178    \x20value\x20is\x20set\x20by\x20protocol\x20compiler.\x20If\x20the\n\x20\
9179    user\x20has\x20set\x20a\x20\"json_name\"\x20option\x20on\x20this\x20fiel\
9180    d,\x20that\x20option's\x20value\n\x20will\x20be\x20used.\x20Otherwise,\
9181    \x20it's\x20deduced\x20from\x20the\x20field's\x20name\x20by\x20convertin\
9182    g\n\x20it\x20to\x20camelCase.\n\n\r\n\x05\x04\x03\x02\x08\x04\x12\x04\
9183    \xc4\x01\x02\n\n\r\n\x05\x04\x03\x02\x08\x05\x12\x04\xc4\x01\x0b\x11\n\r\
9184    \n\x05\x04\x03\x02\x08\x01\x12\x04\xc4\x01\x12\x1b\n\r\n\x05\x04\x03\x02\
9185    \x08\x03\x12\x04\xc4\x01\x1e\x20\n\x0c\n\x04\x04\x03\x02\t\x12\x04\xc6\
9186    \x01\x02$\n\r\n\x05\x04\x03\x02\t\x04\x12\x04\xc6\x01\x02\n\n\r\n\x05\
9187    \x04\x03\x02\t\x06\x12\x04\xc6\x01\x0b\x17\n\r\n\x05\x04\x03\x02\t\x01\
9188    \x12\x04\xc6\x01\x18\x1f\n\r\n\x05\x04\x03\x02\t\x03\x12\x04\xc6\x01\"#\
9189    \n\"\n\x02\x04\x04\x12\x06\xca\x01\0\xcd\x01\x01\x1a\x14\x20Describes\
9190    \x20a\x20oneof.\n\n\x0b\n\x03\x04\x04\x01\x12\x04\xca\x01\x08\x1c\n\x0c\
9191    \n\x04\x04\x04\x02\0\x12\x04\xcb\x01\x02\x1b\n\r\n\x05\x04\x04\x02\0\x04\
9192    \x12\x04\xcb\x01\x02\n\n\r\n\x05\x04\x04\x02\0\x05\x12\x04\xcb\x01\x0b\
9193    \x11\n\r\n\x05\x04\x04\x02\0\x01\x12\x04\xcb\x01\x12\x16\n\r\n\x05\x04\
9194    \x04\x02\0\x03\x12\x04\xcb\x01\x19\x1a\n\x0c\n\x04\x04\x04\x02\x01\x12\
9195    \x04\xcc\x01\x02$\n\r\n\x05\x04\x04\x02\x01\x04\x12\x04\xcc\x01\x02\n\n\
9196    \r\n\x05\x04\x04\x02\x01\x06\x12\x04\xcc\x01\x0b\x17\n\r\n\x05\x04\x04\
9197    \x02\x01\x01\x12\x04\xcc\x01\x18\x1f\n\r\n\x05\x04\x04\x02\x01\x03\x12\
9198    \x04\xcc\x01\"#\n'\n\x02\x04\x05\x12\x06\xd0\x01\0\xd6\x01\x01\x1a\x19\
9199    \x20Describes\x20an\x20enum\x20type.\n\n\x0b\n\x03\x04\x05\x01\x12\x04\
9200    \xd0\x01\x08\x1b\n\x0c\n\x04\x04\x05\x02\0\x12\x04\xd1\x01\x02\x1b\n\r\n\
9201    \x05\x04\x05\x02\0\x04\x12\x04\xd1\x01\x02\n\n\r\n\x05\x04\x05\x02\0\x05\
9202    \x12\x04\xd1\x01\x0b\x11\n\r\n\x05\x04\x05\x02\0\x01\x12\x04\xd1\x01\x12\
9203    \x16\n\r\n\x05\x04\x05\x02\0\x03\x12\x04\xd1\x01\x19\x1a\n\x0c\n\x04\x04\
9204    \x05\x02\x01\x12\x04\xd3\x01\x02.\n\r\n\x05\x04\x05\x02\x01\x04\x12\x04\
9205    \xd3\x01\x02\n\n\r\n\x05\x04\x05\x02\x01\x06\x12\x04\xd3\x01\x0b#\n\r\n\
9206    \x05\x04\x05\x02\x01\x01\x12\x04\xd3\x01$)\n\r\n\x05\x04\x05\x02\x01\x03\
9207    \x12\x04\xd3\x01,-\n\x0c\n\x04\x04\x05\x02\x02\x12\x04\xd5\x01\x02#\n\r\
9208    \n\x05\x04\x05\x02\x02\x04\x12\x04\xd5\x01\x02\n\n\r\n\x05\x04\x05\x02\
9209    \x02\x06\x12\x04\xd5\x01\x0b\x16\n\r\n\x05\x04\x05\x02\x02\x01\x12\x04\
9210    \xd5\x01\x17\x1e\n\r\n\x05\x04\x05\x02\x02\x03\x12\x04\xd5\x01!\"\n1\n\
9211    \x02\x04\x06\x12\x06\xd9\x01\0\xde\x01\x01\x1a#\x20Describes\x20a\x20val\
9212    ue\x20within\x20an\x20enum.\n\n\x0b\n\x03\x04\x06\x01\x12\x04\xd9\x01\
9213    \x08\x20\n\x0c\n\x04\x04\x06\x02\0\x12\x04\xda\x01\x02\x1b\n\r\n\x05\x04\
9214    \x06\x02\0\x04\x12\x04\xda\x01\x02\n\n\r\n\x05\x04\x06\x02\0\x05\x12\x04\
9215    \xda\x01\x0b\x11\n\r\n\x05\x04\x06\x02\0\x01\x12\x04\xda\x01\x12\x16\n\r\
9216    \n\x05\x04\x06\x02\0\x03\x12\x04\xda\x01\x19\x1a\n\x0c\n\x04\x04\x06\x02\
9217    \x01\x12\x04\xdb\x01\x02\x1c\n\r\n\x05\x04\x06\x02\x01\x04\x12\x04\xdb\
9218    \x01\x02\n\n\r\n\x05\x04\x06\x02\x01\x05\x12\x04\xdb\x01\x0b\x10\n\r\n\
9219    \x05\x04\x06\x02\x01\x01\x12\x04\xdb\x01\x11\x17\n\r\n\x05\x04\x06\x02\
9220    \x01\x03\x12\x04\xdb\x01\x1a\x1b\n\x0c\n\x04\x04\x06\x02\x02\x12\x04\xdd\
9221    \x01\x02(\n\r\n\x05\x04\x06\x02\x02\x04\x12\x04\xdd\x01\x02\n\n\r\n\x05\
9222    \x04\x06\x02\x02\x06\x12\x04\xdd\x01\x0b\x1b\n\r\n\x05\x04\x06\x02\x02\
9223    \x01\x12\x04\xdd\x01\x1c#\n\r\n\x05\x04\x06\x02\x02\x03\x12\x04\xdd\x01&\
9224    '\n$\n\x02\x04\x07\x12\x06\xe1\x01\0\xe6\x01\x01\x1a\x16\x20Describes\
9225    \x20a\x20service.\n\n\x0b\n\x03\x04\x07\x01\x12\x04\xe1\x01\x08\x1e\n\
9226    \x0c\n\x04\x04\x07\x02\0\x12\x04\xe2\x01\x02\x1b\n\r\n\x05\x04\x07\x02\0\
9227    \x04\x12\x04\xe2\x01\x02\n\n\r\n\x05\x04\x07\x02\0\x05\x12\x04\xe2\x01\
9228    \x0b\x11\n\r\n\x05\x04\x07\x02\0\x01\x12\x04\xe2\x01\x12\x16\n\r\n\x05\
9229    \x04\x07\x02\0\x03\x12\x04\xe2\x01\x19\x1a\n\x0c\n\x04\x04\x07\x02\x01\
9230    \x12\x04\xe3\x01\x02,\n\r\n\x05\x04\x07\x02\x01\x04\x12\x04\xe3\x01\x02\
9231    \n\n\r\n\x05\x04\x07\x02\x01\x06\x12\x04\xe3\x01\x0b\x20\n\r\n\x05\x04\
9232    \x07\x02\x01\x01\x12\x04\xe3\x01!'\n\r\n\x05\x04\x07\x02\x01\x03\x12\x04\
9233    \xe3\x01*+\n\x0c\n\x04\x04\x07\x02\x02\x12\x04\xe5\x01\x02&\n\r\n\x05\
9234    \x04\x07\x02\x02\x04\x12\x04\xe5\x01\x02\n\n\r\n\x05\x04\x07\x02\x02\x06\
9235    \x12\x04\xe5\x01\x0b\x19\n\r\n\x05\x04\x07\x02\x02\x01\x12\x04\xe5\x01\
9236    \x1a!\n\r\n\x05\x04\x07\x02\x02\x03\x12\x04\xe5\x01$%\n0\n\x02\x04\x08\
9237    \x12\x06\xe9\x01\0\xf7\x01\x01\x1a\"\x20Describes\x20a\x20method\x20of\
9238    \x20a\x20service.\n\n\x0b\n\x03\x04\x08\x01\x12\x04\xe9\x01\x08\x1d\n\
9239    \x0c\n\x04\x04\x08\x02\0\x12\x04\xea\x01\x02\x1b\n\r\n\x05\x04\x08\x02\0\
9240    \x04\x12\x04\xea\x01\x02\n\n\r\n\x05\x04\x08\x02\0\x05\x12\x04\xea\x01\
9241    \x0b\x11\n\r\n\x05\x04\x08\x02\0\x01\x12\x04\xea\x01\x12\x16\n\r\n\x05\
9242    \x04\x08\x02\0\x03\x12\x04\xea\x01\x19\x1a\n\x97\x01\n\x04\x04\x08\x02\
9243    \x01\x12\x04\xee\x01\x02!\x1a\x88\x01\x20Input\x20and\x20output\x20type\
9244    \x20names.\x20\x20These\x20are\x20resolved\x20in\x20the\x20same\x20way\
9245    \x20as\n\x20FieldDescriptorProto.type_name,\x20but\x20must\x20refer\x20t\
9246    o\x20a\x20message\x20type.\n\n\r\n\x05\x04\x08\x02\x01\x04\x12\x04\xee\
9247    \x01\x02\n\n\r\n\x05\x04\x08\x02\x01\x05\x12\x04\xee\x01\x0b\x11\n\r\n\
9248    \x05\x04\x08\x02\x01\x01\x12\x04\xee\x01\x12\x1c\n\r\n\x05\x04\x08\x02\
9249    \x01\x03\x12\x04\xee\x01\x1f\x20\n\x0c\n\x04\x04\x08\x02\x02\x12\x04\xef\
9250    \x01\x02\"\n\r\n\x05\x04\x08\x02\x02\x04\x12\x04\xef\x01\x02\n\n\r\n\x05\
9251    \x04\x08\x02\x02\x05\x12\x04\xef\x01\x0b\x11\n\r\n\x05\x04\x08\x02\x02\
9252    \x01\x12\x04\xef\x01\x12\x1d\n\r\n\x05\x04\x08\x02\x02\x03\x12\x04\xef\
9253    \x01\x20!\n\x0c\n\x04\x04\x08\x02\x03\x12\x04\xf1\x01\x02%\n\r\n\x05\x04\
9254    \x08\x02\x03\x04\x12\x04\xf1\x01\x02\n\n\r\n\x05\x04\x08\x02\x03\x06\x12\
9255    \x04\xf1\x01\x0b\x18\n\r\n\x05\x04\x08\x02\x03\x01\x12\x04\xf1\x01\x19\
9256    \x20\n\r\n\x05\x04\x08\x02\x03\x03\x12\x04\xf1\x01#$\nE\n\x04\x04\x08\
9257    \x02\x04\x12\x04\xf4\x01\x025\x1a7\x20Identifies\x20if\x20client\x20stre\
9258    ams\x20multiple\x20client\x20messages\n\n\r\n\x05\x04\x08\x02\x04\x04\
9259    \x12\x04\xf4\x01\x02\n\n\r\n\x05\x04\x08\x02\x04\x05\x12\x04\xf4\x01\x0b\
9260    \x0f\n\r\n\x05\x04\x08\x02\x04\x01\x12\x04\xf4\x01\x10\x20\n\r\n\x05\x04\
9261    \x08\x02\x04\x03\x12\x04\xf4\x01#$\n\r\n\x05\x04\x08\x02\x04\x08\x12\x04\
9262    \xf4\x01%4\n\r\n\x05\x04\x08\x02\x04\x07\x12\x04\xf4\x01.3\nE\n\x04\x04\
9263    \x08\x02\x05\x12\x04\xf6\x01\x025\x1a7\x20Identifies\x20if\x20server\x20\
9264    streams\x20multiple\x20server\x20messages\n\n\r\n\x05\x04\x08\x02\x05\
9265    \x04\x12\x04\xf6\x01\x02\n\n\r\n\x05\x04\x08\x02\x05\x05\x12\x04\xf6\x01\
9266    \x0b\x0f\n\r\n\x05\x04\x08\x02\x05\x01\x12\x04\xf6\x01\x10\x20\n\r\n\x05\
9267    \x04\x08\x02\x05\x03\x12\x04\xf6\x01#$\n\r\n\x05\x04\x08\x02\x05\x08\x12\
9268    \x04\xf6\x01%4\n\r\n\x05\x04\x08\x02\x05\x07\x12\x04\xf6\x01.3\n\xaf\x0e\
9269    \n\x02\x04\t\x12\x06\x9b\x02\0\xf8\x02\x012N\x20========================\
9270    ===========================================\n\x20Options\n2\xd0\r\x20Eac\
9271    h\x20of\x20the\x20definitions\x20above\x20may\x20have\x20\"options\"\x20\
9272    attached.\x20\x20These\x20are\n\x20just\x20annotations\x20which\x20may\
9273    \x20cause\x20code\x20to\x20be\x20generated\x20slightly\x20differently\n\
9274    \x20or\x20may\x20contain\x20hints\x20for\x20code\x20that\x20manipulates\
9275    \x20protocol\x20messages.\n\n\x20Clients\x20may\x20define\x20custom\x20o\
9276    ptions\x20as\x20extensions\x20of\x20the\x20*Options\x20messages.\n\x20Th\
9277    ese\x20extensions\x20may\x20not\x20yet\x20be\x20known\x20at\x20parsing\
9278    \x20time,\x20so\x20the\x20parser\x20cannot\n\x20store\x20the\x20values\
9279    \x20in\x20them.\x20\x20Instead\x20it\x20stores\x20them\x20in\x20a\x20fie\
9280    ld\x20in\x20the\x20*Options\n\x20message\x20called\x20uninterpreted_opti\
9281    on.\x20This\x20field\x20must\x20have\x20the\x20same\x20name\n\x20across\
9282    \x20all\x20*Options\x20messages.\x20We\x20then\x20use\x20this\x20field\
9283    \x20to\x20populate\x20the\n\x20extensions\x20when\x20we\x20build\x20a\
9284    \x20descriptor,\x20at\x20which\x20point\x20all\x20protos\x20have\x20been\
9285    \n\x20parsed\x20and\x20so\x20all\x20extensions\x20are\x20known.\n\n\x20E\
9286    xtension\x20numbers\x20for\x20custom\x20options\x20may\x20be\x20chosen\
9287    \x20as\x20follows:\n\x20*\x20For\x20options\x20which\x20will\x20only\x20\
9288    be\x20used\x20within\x20a\x20single\x20application\x20or\n\x20\x20\x20or\
9289    ganization,\x20or\x20for\x20experimental\x20options,\x20use\x20field\x20\
9290    numbers\x2050000\n\x20\x20\x20through\x2099999.\x20\x20It\x20is\x20up\
9291    \x20to\x20you\x20to\x20ensure\x20that\x20you\x20do\x20not\x20use\x20the\
9292    \n\x20\x20\x20same\x20number\x20for\x20multiple\x20options.\n\x20*\x20Fo\
9293    r\x20options\x20which\x20will\x20be\x20published\x20and\x20used\x20publi\
9294    cly\x20by\x20multiple\n\x20\x20\x20independent\x20entities,\x20e-mail\
9295    \x20protobuf-global-extension-registry@google.com\n\x20\x20\x20to\x20res\
9296    erve\x20extension\x20numbers.\x20Simply\x20provide\x20your\x20project\
9297    \x20name\x20(e.g.\n\x20\x20\x20Objective-C\x20plugin)\x20and\x20your\x20\
9298    project\x20website\x20(if\x20available)\x20--\x20there's\x20no\n\x20\x20\
9299    \x20need\x20to\x20explain\x20how\x20you\x20intend\x20to\x20use\x20them.\
9300    \x20Usually\x20you\x20only\x20need\x20one\n\x20\x20\x20extension\x20numb\
9301    er.\x20You\x20can\x20declare\x20multiple\x20options\x20with\x20only\x20o\
9302    ne\x20extension\n\x20\x20\x20number\x20by\x20putting\x20them\x20in\x20a\
9303    \x20sub-message.\x20See\x20the\x20Custom\x20Options\x20section\x20of\n\
9304    \x20\x20\x20the\x20docs\x20for\x20examples:\n\x20\x20\x20https://develop\
9305    ers.google.com/protocol-buffers/docs/proto#options\n\x20\x20\x20If\x20th\
9306    is\x20turns\x20out\x20to\x20be\x20popular,\x20a\x20web\x20service\x20wil\
9307    l\x20be\x20set\x20up\n\x20\x20\x20to\x20automatically\x20assign\x20optio\
9308    n\x20numbers.\n\n\x0b\n\x03\x04\t\x01\x12\x04\x9b\x02\x08\x13\n\xf4\x01\
9309    \n\x04\x04\t\x02\0\x12\x04\xa1\x02\x02#\x1a\xe5\x01\x20Sets\x20the\x20Ja\
9310    va\x20package\x20where\x20classes\x20generated\x20from\x20this\x20.proto\
9311    \x20will\x20be\n\x20placed.\x20\x20By\x20default,\x20the\x20proto\x20pac\
9312    kage\x20is\x20used,\x20but\x20this\x20is\x20often\n\x20inappropriate\x20\
9313    because\x20proto\x20packages\x20do\x20not\x20normally\x20start\x20with\
9314    \x20backwards\n\x20domain\x20names.\n\n\r\n\x05\x04\t\x02\0\x04\x12\x04\
9315    \xa1\x02\x02\n\n\r\n\x05\x04\t\x02\0\x05\x12\x04\xa1\x02\x0b\x11\n\r\n\
9316    \x05\x04\t\x02\0\x01\x12\x04\xa1\x02\x12\x1e\n\r\n\x05\x04\t\x02\0\x03\
9317    \x12\x04\xa1\x02!\"\n\xbf\x02\n\x04\x04\t\x02\x01\x12\x04\xa9\x02\x02+\
9318    \x1a\xb0\x02\x20If\x20set,\x20all\x20the\x20classes\x20from\x20the\x20.p\
9319    roto\x20file\x20are\x20wrapped\x20in\x20a\x20single\n\x20outer\x20class\
9320    \x20with\x20the\x20given\x20name.\x20\x20This\x20applies\x20to\x20both\
9321    \x20Proto1\n\x20(equivalent\x20to\x20the\x20old\x20\"--one_java_file\"\
9322    \x20option)\x20and\x20Proto2\x20(where\n\x20a\x20.proto\x20always\x20tra\
9323    nslates\x20to\x20a\x20single\x20class,\x20but\x20you\x20may\x20want\x20t\
9324    o\n\x20explicitly\x20choose\x20the\x20class\x20name).\n\n\r\n\x05\x04\t\
9325    \x02\x01\x04\x12\x04\xa9\x02\x02\n\n\r\n\x05\x04\t\x02\x01\x05\x12\x04\
9326    \xa9\x02\x0b\x11\n\r\n\x05\x04\t\x02\x01\x01\x12\x04\xa9\x02\x12&\n\r\n\
9327    \x05\x04\t\x02\x01\x03\x12\x04\xa9\x02)*\n\xa3\x03\n\x04\x04\t\x02\x02\
9328    \x12\x04\xb1\x02\x029\x1a\x94\x03\x20If\x20set\x20true,\x20then\x20the\
9329    \x20Java\x20code\x20generator\x20will\x20generate\x20a\x20separate\x20.j\
9330    ava\n\x20file\x20for\x20each\x20top-level\x20message,\x20enum,\x20and\
9331    \x20service\x20defined\x20in\x20the\x20.proto\n\x20file.\x20\x20Thus,\
9332    \x20these\x20types\x20will\x20*not*\x20be\x20nested\x20inside\x20the\x20\
9333    outer\x20class\n\x20named\x20by\x20java_outer_classname.\x20\x20However,\
9334    \x20the\x20outer\x20class\x20will\x20still\x20be\n\x20generated\x20to\
9335    \x20contain\x20the\x20file's\x20getDescriptor()\x20method\x20as\x20well\
9336    \x20as\x20any\n\x20top-level\x20extensions\x20defined\x20in\x20the\x20fi\
9337    le.\n\n\r\n\x05\x04\t\x02\x02\x04\x12\x04\xb1\x02\x02\n\n\r\n\x05\x04\t\
9338    \x02\x02\x05\x12\x04\xb1\x02\x0b\x0f\n\r\n\x05\x04\t\x02\x02\x01\x12\x04\
9339    \xb1\x02\x10#\n\r\n\x05\x04\t\x02\x02\x03\x12\x04\xb1\x02&(\n\r\n\x05\
9340    \x04\t\x02\x02\x08\x12\x04\xb1\x02)8\n\r\n\x05\x04\t\x02\x02\x07\x12\x04\
9341    \xb1\x0227\n)\n\x04\x04\t\x02\x03\x12\x04\xb4\x02\x02E\x1a\x1b\x20This\
9342    \x20option\x20does\x20nothing.\n\n\r\n\x05\x04\t\x02\x03\x04\x12\x04\xb4\
9343    \x02\x02\n\n\r\n\x05\x04\t\x02\x03\x05\x12\x04\xb4\x02\x0b\x0f\n\r\n\x05\
9344    \x04\t\x02\x03\x01\x12\x04\xb4\x02\x10-\n\r\n\x05\x04\t\x02\x03\x03\x12\
9345    \x04\xb4\x0202\n\r\n\x05\x04\t\x02\x03\x08\x12\x04\xb4\x023D\n\x0e\n\x06\
9346    \x04\t\x02\x03\x08\x03\x12\x04\xb4\x024C\n\xe6\x02\n\x04\x04\t\x02\x04\
9347    \x12\x04\xbc\x02\x02<\x1a\xd7\x02\x20If\x20set\x20true,\x20then\x20the\
9348    \x20Java2\x20code\x20generator\x20will\x20generate\x20code\x20that\n\x20\
9349    throws\x20an\x20exception\x20whenever\x20an\x20attempt\x20is\x20made\x20\
9350    to\x20assign\x20a\x20non-UTF-8\n\x20byte\x20sequence\x20to\x20a\x20strin\
9351    g\x20field.\n\x20Message\x20reflection\x20will\x20do\x20the\x20same.\n\
9352    \x20However,\x20an\x20extension\x20field\x20still\x20accepts\x20non-UTF-\
9353    8\x20byte\x20sequences.\n\x20This\x20option\x20has\x20no\x20effect\x20on\
9354    \x20when\x20used\x20with\x20the\x20lite\x20runtime.\n\n\r\n\x05\x04\t\
9355    \x02\x04\x04\x12\x04\xbc\x02\x02\n\n\r\n\x05\x04\t\x02\x04\x05\x12\x04\
9356    \xbc\x02\x0b\x0f\n\r\n\x05\x04\t\x02\x04\x01\x12\x04\xbc\x02\x10&\n\r\n\
9357    \x05\x04\t\x02\x04\x03\x12\x04\xbc\x02)+\n\r\n\x05\x04\t\x02\x04\x08\x12\
9358    \x04\xbc\x02,;\n\r\n\x05\x04\t\x02\x04\x07\x12\x04\xbc\x025:\nL\n\x04\
9359    \x04\t\x04\0\x12\x06\xc0\x02\x02\xc5\x02\x03\x1a<\x20Generated\x20classe\
9360    s\x20can\x20be\x20optimized\x20for\x20speed\x20or\x20code\x20size.\n\n\r\
9361    \n\x05\x04\t\x04\0\x01\x12\x04\xc0\x02\x07\x13\nD\n\x06\x04\t\x04\0\x02\
9362    \0\x12\x04\xc1\x02\x04\x0e\"4\x20Generate\x20complete\x20code\x20for\x20\
9363    parsing,\x20serialization,\n\n\x0f\n\x07\x04\t\x04\0\x02\0\x01\x12\x04\
9364    \xc1\x02\x04\t\n\x0f\n\x07\x04\t\x04\0\x02\0\x02\x12\x04\xc1\x02\x0c\r\n\
9365    G\n\x06\x04\t\x04\0\x02\x01\x12\x04\xc3\x02\x04\x12\x1a\x06\x20etc.\n\"/\
9366    \x20Use\x20ReflectionOps\x20to\x20implement\x20these\x20methods.\n\n\x0f\
9367    \n\x07\x04\t\x04\0\x02\x01\x01\x12\x04\xc3\x02\x04\r\n\x0f\n\x07\x04\t\
9368    \x04\0\x02\x01\x02\x12\x04\xc3\x02\x10\x11\nG\n\x06\x04\t\x04\0\x02\x02\
9369    \x12\x04\xc4\x02\x04\x15\"7\x20Generate\x20code\x20using\x20MessageLite\
9370    \x20and\x20the\x20lite\x20runtime.\n\n\x0f\n\x07\x04\t\x04\0\x02\x02\x01\
9371    \x12\x04\xc4\x02\x04\x10\n\x0f\n\x07\x04\t\x04\0\x02\x02\x02\x12\x04\xc4\
9372    \x02\x13\x14\n\x0c\n\x04\x04\t\x02\x05\x12\x04\xc6\x02\x029\n\r\n\x05\
9373    \x04\t\x02\x05\x04\x12\x04\xc6\x02\x02\n\n\r\n\x05\x04\t\x02\x05\x06\x12\
9374    \x04\xc6\x02\x0b\x17\n\r\n\x05\x04\t\x02\x05\x01\x12\x04\xc6\x02\x18$\n\
9375    \r\n\x05\x04\t\x02\x05\x03\x12\x04\xc6\x02'(\n\r\n\x05\x04\t\x02\x05\x08\
9376    \x12\x04\xc6\x02)8\n\r\n\x05\x04\t\x02\x05\x07\x12\x04\xc6\x0227\n\xe2\
9377    \x02\n\x04\x04\t\x02\x06\x12\x04\xcd\x02\x02\"\x1a\xd3\x02\x20Sets\x20th\
9378    e\x20Go\x20package\x20where\x20structs\x20generated\x20from\x20this\x20.\
9379    proto\x20will\x20be\n\x20placed.\x20If\x20omitted,\x20the\x20Go\x20packa\
9380    ge\x20will\x20be\x20derived\x20from\x20the\x20following:\n\x20\x20\x20-\
9381    \x20The\x20basename\x20of\x20the\x20package\x20import\x20path,\x20if\x20\
9382    provided.\n\x20\x20\x20-\x20Otherwise,\x20the\x20package\x20statement\
9383    \x20in\x20the\x20.proto\x20file,\x20if\x20present.\n\x20\x20\x20-\x20Oth\
9384    erwise,\x20the\x20basename\x20of\x20the\x20.proto\x20file,\x20without\
9385    \x20extension.\n\n\r\n\x05\x04\t\x02\x06\x04\x12\x04\xcd\x02\x02\n\n\r\n\
9386    \x05\x04\t\x02\x06\x05\x12\x04\xcd\x02\x0b\x11\n\r\n\x05\x04\t\x02\x06\
9387    \x01\x12\x04\xcd\x02\x12\x1c\n\r\n\x05\x04\t\x02\x06\x03\x12\x04\xcd\x02\
9388    \x1f!\n\xd4\x04\n\x04\x04\t\x02\x07\x12\x04\xdb\x02\x029\x1a\xc5\x04\x20\
9389    Should\x20generic\x20services\x20be\x20generated\x20in\x20each\x20langua\
9390    ge?\x20\x20\"Generic\"\x20services\n\x20are\x20not\x20specific\x20to\x20\
9391    any\x20particular\x20RPC\x20system.\x20\x20They\x20are\x20generated\x20b\
9392    y\x20the\n\x20main\x20code\x20generators\x20in\x20each\x20language\x20(w\
9393    ithout\x20additional\x20plugins).\n\x20Generic\x20services\x20were\x20th\
9394    e\x20only\x20kind\x20of\x20service\x20generation\x20supported\x20by\n\
9395    \x20early\x20versions\x20of\x20google.protobuf.\n\n\x20Generic\x20servic\
9396    es\x20are\x20now\x20considered\x20deprecated\x20in\x20favor\x20of\x20usi\
9397    ng\x20plugins\n\x20that\x20generate\x20code\x20specific\x20to\x20your\
9398    \x20particular\x20RPC\x20system.\x20\x20Therefore,\n\x20these\x20default\
9399    \x20to\x20false.\x20\x20Old\x20code\x20which\x20depends\x20on\x20generic\
9400    \x20services\x20should\n\x20explicitly\x20set\x20them\x20to\x20true.\n\n\
9401    \r\n\x05\x04\t\x02\x07\x04\x12\x04\xdb\x02\x02\n\n\r\n\x05\x04\t\x02\x07\
9402    \x05\x12\x04\xdb\x02\x0b\x0f\n\r\n\x05\x04\t\x02\x07\x01\x12\x04\xdb\x02\
9403    \x10#\n\r\n\x05\x04\t\x02\x07\x03\x12\x04\xdb\x02&(\n\r\n\x05\x04\t\x02\
9404    \x07\x08\x12\x04\xdb\x02)8\n\r\n\x05\x04\t\x02\x07\x07\x12\x04\xdb\x0227\
9405    \n\x0c\n\x04\x04\t\x02\x08\x12\x04\xdc\x02\x02;\n\r\n\x05\x04\t\x02\x08\
9406    \x04\x12\x04\xdc\x02\x02\n\n\r\n\x05\x04\t\x02\x08\x05\x12\x04\xdc\x02\
9407    \x0b\x0f\n\r\n\x05\x04\t\x02\x08\x01\x12\x04\xdc\x02\x10%\n\r\n\x05\x04\
9408    \t\x02\x08\x03\x12\x04\xdc\x02(*\n\r\n\x05\x04\t\x02\x08\x08\x12\x04\xdc\
9409    \x02+:\n\r\n\x05\x04\t\x02\x08\x07\x12\x04\xdc\x0249\n\x0c\n\x04\x04\t\
9410    \x02\t\x12\x04\xdd\x02\x029\n\r\n\x05\x04\t\x02\t\x04\x12\x04\xdd\x02\
9411    \x02\n\n\r\n\x05\x04\t\x02\t\x05\x12\x04\xdd\x02\x0b\x0f\n\r\n\x05\x04\t\
9412    \x02\t\x01\x12\x04\xdd\x02\x10#\n\r\n\x05\x04\t\x02\t\x03\x12\x04\xdd\
9413    \x02&(\n\r\n\x05\x04\t\x02\t\x08\x12\x04\xdd\x02)8\n\r\n\x05\x04\t\x02\t\
9414    \x07\x12\x04\xdd\x0227\n\xf3\x01\n\x04\x04\t\x02\n\x12\x04\xe3\x02\x020\
9415    \x1a\xe4\x01\x20Is\x20this\x20file\x20deprecated?\n\x20Depending\x20on\
9416    \x20the\x20target\x20platform,\x20this\x20can\x20emit\x20Deprecated\x20a\
9417    nnotations\n\x20for\x20everything\x20in\x20the\x20file,\x20or\x20it\x20w\
9418    ill\x20be\x20completely\x20ignored;\x20in\x20the\x20very\n\x20least,\x20\
9419    this\x20is\x20a\x20formalization\x20for\x20deprecating\x20files.\n\n\r\n\
9420    \x05\x04\t\x02\n\x04\x12\x04\xe3\x02\x02\n\n\r\n\x05\x04\t\x02\n\x05\x12\
9421    \x04\xe3\x02\x0b\x0f\n\r\n\x05\x04\t\x02\n\x01\x12\x04\xe3\x02\x10\x1a\n\
9422    \r\n\x05\x04\t\x02\n\x03\x12\x04\xe3\x02\x1d\x1f\n\r\n\x05\x04\t\x02\n\
9423    \x08\x12\x04\xe3\x02\x20/\n\r\n\x05\x04\t\x02\n\x07\x12\x04\xe3\x02).\n\
9424    \x7f\n\x04\x04\t\x02\x0b\x12\x04\xe7\x02\x026\x1aq\x20Enables\x20the\x20\
9425    use\x20of\x20arenas\x20for\x20the\x20proto\x20messages\x20in\x20this\x20\
9426    file.\x20This\x20applies\n\x20only\x20to\x20generated\x20classes\x20for\
9427    \x20C++.\n\n\r\n\x05\x04\t\x02\x0b\x04\x12\x04\xe7\x02\x02\n\n\r\n\x05\
9428    \x04\t\x02\x0b\x05\x12\x04\xe7\x02\x0b\x0f\n\r\n\x05\x04\t\x02\x0b\x01\
9429    \x12\x04\xe7\x02\x10\x20\n\r\n\x05\x04\t\x02\x0b\x03\x12\x04\xe7\x02#%\n\
9430    \r\n\x05\x04\t\x02\x0b\x08\x12\x04\xe7\x02&5\n\r\n\x05\x04\t\x02\x0b\x07\
9431    \x12\x04\xe7\x02/4\n\x92\x01\n\x04\x04\t\x02\x0c\x12\x04\xec\x02\x02)\
9432    \x1a\x83\x01\x20Sets\x20the\x20objective\x20c\x20class\x20prefix\x20whic\
9433    h\x20is\x20prepended\x20to\x20all\x20objective\x20c\n\x20generated\x20cl\
9434    asses\x20from\x20this\x20.proto.\x20There\x20is\x20no\x20default.\n\n\r\
9435    \n\x05\x04\t\x02\x0c\x04\x12\x04\xec\x02\x02\n\n\r\n\x05\x04\t\x02\x0c\
9436    \x05\x12\x04\xec\x02\x0b\x11\n\r\n\x05\x04\t\x02\x0c\x01\x12\x04\xec\x02\
9437    \x12#\n\r\n\x05\x04\t\x02\x0c\x03\x12\x04\xec\x02&(\nI\n\x04\x04\t\x02\r\
9438    \x12\x04\xef\x02\x02(\x1a;\x20Namespace\x20for\x20generated\x20classes;\
9439    \x20defaults\x20to\x20the\x20package.\n\n\r\n\x05\x04\t\x02\r\x04\x12\
9440    \x04\xef\x02\x02\n\n\r\n\x05\x04\t\x02\r\x05\x12\x04\xef\x02\x0b\x11\n\r\
9441    \n\x05\x04\t\x02\r\x01\x12\x04\xef\x02\x12\"\n\r\n\x05\x04\t\x02\r\x03\
9442    \x12\x04\xef\x02%'\nO\n\x04\x04\t\x02\x0e\x12\x04\xf2\x02\x02:\x1aA\x20T\
9443    he\x20parser\x20stores\x20options\x20it\x20doesn't\x20recognize\x20here.\
9444    \x20See\x20above.\n\n\r\n\x05\x04\t\x02\x0e\x04\x12\x04\xf2\x02\x02\n\n\
9445    \r\n\x05\x04\t\x02\x0e\x06\x12\x04\xf2\x02\x0b\x1e\n\r\n\x05\x04\t\x02\
9446    \x0e\x01\x12\x04\xf2\x02\x1f3\n\r\n\x05\x04\t\x02\x0e\x03\x12\x04\xf2\
9447    \x0269\nZ\n\x03\x04\t\x05\x12\x04\xf5\x02\x02\x19\x1aM\x20Clients\x20can\
9448    \x20define\x20custom\x20options\x20in\x20extensions\x20of\x20this\x20mes\
9449    sage.\x20See\x20above.\n\n\x0c\n\x04\x04\t\x05\0\x12\x04\xf5\x02\r\x18\n\
9450    \r\n\x05\x04\t\x05\0\x01\x12\x04\xf5\x02\r\x11\n\r\n\x05\x04\t\x05\0\x02\
9451    \x12\x04\xf5\x02\x15\x18\n\x0c\n\x02\x04\n\x12\x06\xfa\x02\0\xb8\x03\x01\
9452    \n\x0b\n\x03\x04\n\x01\x12\x04\xfa\x02\x08\x16\n\xd8\x05\n\x04\x04\n\x02\
9453    \0\x12\x04\x8d\x03\x02<\x1a\xc9\x05\x20Set\x20true\x20to\x20use\x20the\
9454    \x20old\x20proto1\x20MessageSet\x20wire\x20format\x20for\x20extensions.\
9455    \n\x20This\x20is\x20provided\x20for\x20backwards-compatibility\x20with\
9456    \x20the\x20MessageSet\x20wire\n\x20format.\x20\x20You\x20should\x20not\
9457    \x20use\x20this\x20for\x20any\x20other\x20reason:\x20\x20It's\x20less\n\
9458    \x20efficient,\x20has\x20fewer\x20features,\x20and\x20is\x20more\x20comp\
9459    licated.\n\n\x20The\x20message\x20must\x20be\x20defined\x20exactly\x20as\
9460    \x20follows:\n\x20\x20\x20message\x20Foo\x20{\n\x20\x20\x20\x20\x20optio\
9461    n\x20message_set_wire_format\x20=\x20true;\n\x20\x20\x20\x20\x20extensio\
9462    ns\x204\x20to\x20max;\n\x20\x20\x20}\n\x20Note\x20that\x20the\x20message\
9463    \x20cannot\x20have\x20any\x20defined\x20fields;\x20MessageSets\x20only\n\
9464    \x20have\x20extensions.\n\n\x20All\x20extensions\x20of\x20your\x20type\
9465    \x20must\x20be\x20singular\x20messages;\x20e.g.\x20they\x20cannot\n\x20b\
9466    e\x20int32s,\x20enums,\x20or\x20repeated\x20messages.\n\n\x20Because\x20\
9467    this\x20is\x20an\x20option,\x20the\x20above\x20two\x20restrictions\x20ar\
9468    e\x20not\x20enforced\x20by\n\x20the\x20protocol\x20compiler.\n\n\r\n\x05\
9469    \x04\n\x02\0\x04\x12\x04\x8d\x03\x02\n\n\r\n\x05\x04\n\x02\0\x05\x12\x04\
9470    \x8d\x03\x0b\x0f\n\r\n\x05\x04\n\x02\0\x01\x12\x04\x8d\x03\x10'\n\r\n\
9471    \x05\x04\n\x02\0\x03\x12\x04\x8d\x03*+\n\r\n\x05\x04\n\x02\0\x08\x12\x04\
9472    \x8d\x03,;\n\r\n\x05\x04\n\x02\0\x07\x12\x04\x8d\x035:\n\xeb\x01\n\x04\
9473    \x04\n\x02\x01\x12\x04\x92\x03\x02D\x1a\xdc\x01\x20Disables\x20the\x20ge\
9474    neration\x20of\x20the\x20standard\x20\"descriptor()\"\x20accessor,\x20wh\
9475    ich\x20can\n\x20conflict\x20with\x20a\x20field\x20of\x20the\x20same\x20n\
9476    ame.\x20\x20This\x20is\x20meant\x20to\x20make\x20migration\n\x20from\x20\
9477    proto1\x20easier;\x20new\x20code\x20should\x20avoid\x20fields\x20named\
9478    \x20\"descriptor\".\n\n\r\n\x05\x04\n\x02\x01\x04\x12\x04\x92\x03\x02\n\
9479    \n\r\n\x05\x04\n\x02\x01\x05\x12\x04\x92\x03\x0b\x0f\n\r\n\x05\x04\n\x02\
9480    \x01\x01\x12\x04\x92\x03\x10/\n\r\n\x05\x04\n\x02\x01\x03\x12\x04\x92\
9481    \x0323\n\r\n\x05\x04\n\x02\x01\x08\x12\x04\x92\x034C\n\r\n\x05\x04\n\x02\
9482    \x01\x07\x12\x04\x92\x03=B\n\xee\x01\n\x04\x04\n\x02\x02\x12\x04\x98\x03\
9483    \x02/\x1a\xdf\x01\x20Is\x20this\x20message\x20deprecated?\n\x20Depending\
9484    \x20on\x20the\x20target\x20platform,\x20this\x20can\x20emit\x20Deprecate\
9485    d\x20annotations\n\x20for\x20the\x20message,\x20or\x20it\x20will\x20be\
9486    \x20completely\x20ignored;\x20in\x20the\x20very\x20least,\n\x20this\x20i\
9487    s\x20a\x20formalization\x20for\x20deprecating\x20messages.\n\n\r\n\x05\
9488    \x04\n\x02\x02\x04\x12\x04\x98\x03\x02\n\n\r\n\x05\x04\n\x02\x02\x05\x12\
9489    \x04\x98\x03\x0b\x0f\n\r\n\x05\x04\n\x02\x02\x01\x12\x04\x98\x03\x10\x1a\
9490    \n\r\n\x05\x04\n\x02\x02\x03\x12\x04\x98\x03\x1d\x1e\n\r\n\x05\x04\n\x02\
9491    \x02\x08\x12\x04\x98\x03\x1f.\n\r\n\x05\x04\n\x02\x02\x07\x12\x04\x98\
9492    \x03(-\n\x9e\x06\n\x04\x04\n\x02\x03\x12\x04\xaf\x03\x02\x1e\x1a\x8f\x06\
9493    \x20Whether\x20the\x20message\x20is\x20an\x20automatically\x20generated\
9494    \x20map\x20entry\x20type\x20for\x20the\n\x20maps\x20field.\n\n\x20For\
9495    \x20maps\x20fields:\n\x20\x20\x20\x20\x20map<KeyType,\x20ValueType>\x20m\
9496    ap_field\x20=\x201;\n\x20The\x20parsed\x20descriptor\x20looks\x20like:\n\
9497    \x20\x20\x20\x20\x20message\x20MapFieldEntry\x20{\n\x20\x20\x20\x20\x20\
9498    \x20\x20\x20\x20option\x20map_entry\x20=\x20true;\n\x20\x20\x20\x20\x20\
9499    \x20\x20\x20\x20optional\x20KeyType\x20key\x20=\x201;\n\x20\x20\x20\x20\
9500    \x20\x20\x20\x20\x20optional\x20ValueType\x20value\x20=\x202;\n\x20\x20\
9501    \x20\x20\x20}\n\x20\x20\x20\x20\x20repeated\x20MapFieldEntry\x20map_fiel\
9502    d\x20=\x201;\n\n\x20Implementations\x20may\x20choose\x20not\x20to\x20gen\
9503    erate\x20the\x20map_entry=true\x20message,\x20but\n\x20use\x20a\x20nativ\
9504    e\x20map\x20in\x20the\x20target\x20language\x20to\x20hold\x20the\x20keys\
9505    \x20and\x20values.\n\x20The\x20reflection\x20APIs\x20in\x20such\x20imple\
9506    mentions\x20still\x20need\x20to\x20work\x20as\n\x20if\x20the\x20field\
9507    \x20is\x20a\x20repeated\x20message\x20field.\n\n\x20NOTE:\x20Do\x20not\
9508    \x20set\x20the\x20option\x20in\x20.proto\x20files.\x20Always\x20use\x20t\
9509    he\x20maps\x20syntax\n\x20instead.\x20The\x20option\x20should\x20only\
9510    \x20be\x20implicitly\x20set\x20by\x20the\x20proto\x20compiler\n\x20parse\
9511    r.\n\n\r\n\x05\x04\n\x02\x03\x04\x12\x04\xaf\x03\x02\n\n\r\n\x05\x04\n\
9512    \x02\x03\x05\x12\x04\xaf\x03\x0b\x0f\n\r\n\x05\x04\n\x02\x03\x01\x12\x04\
9513    \xaf\x03\x10\x19\n\r\n\x05\x04\n\x02\x03\x03\x12\x04\xaf\x03\x1c\x1d\nO\
9514    \n\x04\x04\n\x02\x04\x12\x04\xb2\x03\x02:\x1aA\x20The\x20parser\x20store\
9515    s\x20options\x20it\x20doesn't\x20recognize\x20here.\x20See\x20above.\n\n\
9516    \r\n\x05\x04\n\x02\x04\x04\x12\x04\xb2\x03\x02\n\n\r\n\x05\x04\n\x02\x04\
9517    \x06\x12\x04\xb2\x03\x0b\x1e\n\r\n\x05\x04\n\x02\x04\x01\x12\x04\xb2\x03\
9518    \x1f3\n\r\n\x05\x04\n\x02\x04\x03\x12\x04\xb2\x0369\nZ\n\x03\x04\n\x05\
9519    \x12\x04\xb5\x03\x02\x19\x1aM\x20Clients\x20can\x20define\x20custom\x20o\
9520    ptions\x20in\x20extensions\x20of\x20this\x20message.\x20See\x20above.\n\
9521    \n\x0c\n\x04\x04\n\x05\0\x12\x04\xb5\x03\r\x18\n\r\n\x05\x04\n\x05\0\x01\
9522    \x12\x04\xb5\x03\r\x11\n\r\n\x05\x04\n\x05\0\x02\x12\x04\xb5\x03\x15\x18\
9523    \n\x0c\n\x02\x04\x0b\x12\x06\xba\x03\0\x93\x04\x01\n\x0b\n\x03\x04\x0b\
9524    \x01\x12\x04\xba\x03\x08\x14\n\xa3\x02\n\x04\x04\x0b\x02\0\x12\x04\xbf\
9525    \x03\x02.\x1a\x94\x02\x20The\x20ctype\x20option\x20instructs\x20the\x20C\
9526    ++\x20code\x20generator\x20to\x20use\x20a\x20different\n\x20representati\
9527    on\x20of\x20the\x20field\x20than\x20it\x20normally\x20would.\x20\x20See\
9528    \x20the\x20specific\n\x20options\x20below.\x20\x20This\x20option\x20is\
9529    \x20not\x20yet\x20implemented\x20in\x20the\x20open\x20source\n\x20releas\
9530    e\x20--\x20sorry,\x20we'll\x20try\x20to\x20include\x20it\x20in\x20a\x20f\
9531    uture\x20version!\n\n\r\n\x05\x04\x0b\x02\0\x04\x12\x04\xbf\x03\x02\n\n\
9532    \r\n\x05\x04\x0b\x02\0\x06\x12\x04\xbf\x03\x0b\x10\n\r\n\x05\x04\x0b\x02\
9533    \0\x01\x12\x04\xbf\x03\x11\x16\n\r\n\x05\x04\x0b\x02\0\x03\x12\x04\xbf\
9534    \x03\x19\x1a\n\r\n\x05\x04\x0b\x02\0\x08\x12\x04\xbf\x03\x1b-\n\r\n\x05\
9535    \x04\x0b\x02\0\x07\x12\x04\xbf\x03&,\n\x0e\n\x04\x04\x0b\x04\0\x12\x06\
9536    \xc0\x03\x02\xc7\x03\x03\n\r\n\x05\x04\x0b\x04\0\x01\x12\x04\xc0\x03\x07\
9537    \x0c\n\x1f\n\x06\x04\x0b\x04\0\x02\0\x12\x04\xc2\x03\x04\x0f\x1a\x0f\x20\
9538    Default\x20mode.\n\n\x0f\n\x07\x04\x0b\x04\0\x02\0\x01\x12\x04\xc2\x03\
9539    \x04\n\n\x0f\n\x07\x04\x0b\x04\0\x02\0\x02\x12\x04\xc2\x03\r\x0e\n\x0e\n\
9540    \x06\x04\x0b\x04\0\x02\x01\x12\x04\xc4\x03\x04\r\n\x0f\n\x07\x04\x0b\x04\
9541    \0\x02\x01\x01\x12\x04\xc4\x03\x04\x08\n\x0f\n\x07\x04\x0b\x04\0\x02\x01\
9542    \x02\x12\x04\xc4\x03\x0b\x0c\n\x0e\n\x06\x04\x0b\x04\0\x02\x02\x12\x04\
9543    \xc6\x03\x04\x15\n\x0f\n\x07\x04\x0b\x04\0\x02\x02\x01\x12\x04\xc6\x03\
9544    \x04\x10\n\x0f\n\x07\x04\x0b\x04\0\x02\x02\x02\x12\x04\xc6\x03\x13\x14\n\
9545    \xda\x02\n\x04\x04\x0b\x02\x01\x12\x04\xcd\x03\x02\x1b\x1a\xcb\x02\x20Th\
9546    e\x20packed\x20option\x20can\x20be\x20enabled\x20for\x20repeated\x20prim\
9547    itive\x20fields\x20to\x20enable\n\x20a\x20more\x20efficient\x20represent\
9548    ation\x20on\x20the\x20wire.\x20Rather\x20than\x20repeatedly\n\x20writing\
9549    \x20the\x20tag\x20and\x20type\x20for\x20each\x20element,\x20the\x20entir\
9550    e\x20array\x20is\x20encoded\x20as\n\x20a\x20single\x20length-delimited\
9551    \x20blob.\x20In\x20proto3,\x20only\x20explicit\x20setting\x20it\x20to\n\
9552    \x20false\x20will\x20avoid\x20using\x20packed\x20encoding.\n\n\r\n\x05\
9553    \x04\x0b\x02\x01\x04\x12\x04\xcd\x03\x02\n\n\r\n\x05\x04\x0b\x02\x01\x05\
9554    \x12\x04\xcd\x03\x0b\x0f\n\r\n\x05\x04\x0b\x02\x01\x01\x12\x04\xcd\x03\
9555    \x10\x16\n\r\n\x05\x04\x0b\x02\x01\x03\x12\x04\xcd\x03\x19\x1a\n\xe4\x04\
9556    \n\x04\x04\x0b\x02\x02\x12\x04\xd8\x03\x023\x1a\xd5\x04\x20The\x20jstype\
9557    \x20option\x20determines\x20the\x20JavaScript\x20type\x20used\x20for\x20\
9558    values\x20of\x20the\n\x20field.\x20\x20The\x20option\x20is\x20permitted\
9559    \x20only\x20for\x2064\x20bit\x20integral\x20and\x20fixed\x20types\n\x20(\
9560    int64,\x20uint64,\x20sint64,\x20fixed64,\x20sfixed64).\x20\x20By\x20defa\
9561    ult\x20these\x20types\x20are\n\x20represented\x20as\x20JavaScript\x20str\
9562    ings.\x20\x20This\x20avoids\x20loss\x20of\x20precision\x20that\x20can\n\
9563    \x20happen\x20when\x20a\x20large\x20value\x20is\x20converted\x20to\x20a\
9564    \x20floating\x20point\x20JavaScript\n\x20numbers.\x20\x20Specifying\x20J\
9565    S_NUMBER\x20for\x20the\x20jstype\x20causes\x20the\x20generated\n\x20Java\
9566    Script\x20code\x20to\x20use\x20the\x20JavaScript\x20\"number\"\x20type\
9567    \x20instead\x20of\x20strings.\n\x20This\x20option\x20is\x20an\x20enum\
9568    \x20to\x20permit\x20additional\x20types\x20to\x20be\x20added,\n\x20e.g.\
9569    \x20goog.math.Integer.\n\n\r\n\x05\x04\x0b\x02\x02\x04\x12\x04\xd8\x03\
9570    \x02\n\n\r\n\x05\x04\x0b\x02\x02\x06\x12\x04\xd8\x03\x0b\x11\n\r\n\x05\
9571    \x04\x0b\x02\x02\x01\x12\x04\xd8\x03\x12\x18\n\r\n\x05\x04\x0b\x02\x02\
9572    \x03\x12\x04\xd8\x03\x1b\x1c\n\r\n\x05\x04\x0b\x02\x02\x08\x12\x04\xd8\
9573    \x03\x1d2\n\r\n\x05\x04\x0b\x02\x02\x07\x12\x04\xd8\x03(1\n\x0e\n\x04\
9574    \x04\x0b\x04\x01\x12\x06\xd9\x03\x02\xe2\x03\x03\n\r\n\x05\x04\x0b\x04\
9575    \x01\x01\x12\x04\xd9\x03\x07\r\n'\n\x06\x04\x0b\x04\x01\x02\0\x12\x04\
9576    \xdb\x03\x04\x12\x1a\x17\x20Use\x20the\x20default\x20type.\n\n\x0f\n\x07\
9577    \x04\x0b\x04\x01\x02\0\x01\x12\x04\xdb\x03\x04\r\n\x0f\n\x07\x04\x0b\x04\
9578    \x01\x02\0\x02\x12\x04\xdb\x03\x10\x11\n)\n\x06\x04\x0b\x04\x01\x02\x01\
9579    \x12\x04\xde\x03\x04\x12\x1a\x19\x20Use\x20JavaScript\x20strings.\n\n\
9580    \x0f\n\x07\x04\x0b\x04\x01\x02\x01\x01\x12\x04\xde\x03\x04\r\n\x0f\n\x07\
9581    \x04\x0b\x04\x01\x02\x01\x02\x12\x04\xde\x03\x10\x11\n)\n\x06\x04\x0b\
9582    \x04\x01\x02\x02\x12\x04\xe1\x03\x04\x12\x1a\x19\x20Use\x20JavaScript\
9583    \x20numbers.\n\n\x0f\n\x07\x04\x0b\x04\x01\x02\x02\x01\x12\x04\xe1\x03\
9584    \x04\r\n\x0f\n\x07\x04\x0b\x04\x01\x02\x02\x02\x12\x04\xe1\x03\x10\x11\n\
9585    \xef\x0c\n\x04\x04\x0b\x02\x03\x12\x04\x80\x04\x02)\x1a\xe0\x0c\x20Shoul\
9586    d\x20this\x20field\x20be\x20parsed\x20lazily?\x20\x20Lazy\x20applies\x20\
9587    only\x20to\x20message-type\n\x20fields.\x20\x20It\x20means\x20that\x20wh\
9588    en\x20the\x20outer\x20message\x20is\x20initially\x20parsed,\x20the\n\x20\
9589    inner\x20message's\x20contents\x20will\x20not\x20be\x20parsed\x20but\x20\
9590    instead\x20stored\x20in\x20encoded\n\x20form.\x20\x20The\x20inner\x20mes\
9591    sage\x20will\x20actually\x20be\x20parsed\x20when\x20it\x20is\x20first\
9592    \x20accessed.\n\n\x20This\x20is\x20only\x20a\x20hint.\x20\x20Implementat\
9593    ions\x20are\x20free\x20to\x20choose\x20whether\x20to\x20use\n\x20eager\
9594    \x20or\x20lazy\x20parsing\x20regardless\x20of\x20the\x20value\x20of\x20t\
9595    his\x20option.\x20\x20However,\n\x20setting\x20this\x20option\x20true\
9596    \x20suggests\x20that\x20the\x20protocol\x20author\x20believes\x20that\n\
9597    \x20using\x20lazy\x20parsing\x20on\x20this\x20field\x20is\x20worth\x20th\
9598    e\x20additional\x20bookkeeping\n\x20overhead\x20typically\x20needed\x20t\
9599    o\x20implement\x20it.\n\n\x20This\x20option\x20does\x20not\x20affect\x20\
9600    the\x20public\x20interface\x20of\x20any\x20generated\x20code;\n\x20all\
9601    \x20method\x20signatures\x20remain\x20the\x20same.\x20\x20Furthermore,\
9602    \x20thread-safety\x20of\x20the\n\x20interface\x20is\x20not\x20affected\
9603    \x20by\x20this\x20option;\x20const\x20methods\x20remain\x20safe\x20to\n\
9604    \x20call\x20from\x20multiple\x20threads\x20concurrently,\x20while\x20non\
9605    -const\x20methods\x20continue\n\x20to\x20require\x20exclusive\x20access.\
9606    \n\n\n\x20Note\x20that\x20implementations\x20may\x20choose\x20not\x20to\
9607    \x20check\x20required\x20fields\x20within\n\x20a\x20lazy\x20sub-message.\
9608    \x20\x20That\x20is,\x20calling\x20IsInitialized()\x20on\x20the\x20outer\
9609    \x20message\n\x20may\x20return\x20true\x20even\x20if\x20the\x20inner\x20\
9610    message\x20has\x20missing\x20required\x20fields.\n\x20This\x20is\x20nece\
9611    ssary\x20because\x20otherwise\x20the\x20inner\x20message\x20would\x20hav\
9612    e\x20to\x20be\n\x20parsed\x20in\x20order\x20to\x20perform\x20the\x20chec\
9613    k,\x20defeating\x20the\x20purpose\x20of\x20lazy\n\x20parsing.\x20\x20An\
9614    \x20implementation\x20which\x20chooses\x20not\x20to\x20check\x20required\
9615    \x20fields\n\x20must\x20be\x20consistent\x20about\x20it.\x20\x20That\x20\
9616    is,\x20for\x20any\x20particular\x20sub-message,\x20the\n\x20implementati\
9617    on\x20must\x20either\x20*always*\x20check\x20its\x20required\x20fields,\
9618    \x20or\x20*never*\n\x20check\x20its\x20required\x20fields,\x20regardless\
9619    \x20of\x20whether\x20or\x20not\x20the\x20message\x20has\n\x20been\x20par\
9620    sed.\n\n\r\n\x05\x04\x0b\x02\x03\x04\x12\x04\x80\x04\x02\n\n\r\n\x05\x04\
9621    \x0b\x02\x03\x05\x12\x04\x80\x04\x0b\x0f\n\r\n\x05\x04\x0b\x02\x03\x01\
9622    \x12\x04\x80\x04\x10\x14\n\r\n\x05\x04\x0b\x02\x03\x03\x12\x04\x80\x04\
9623    \x17\x18\n\r\n\x05\x04\x0b\x02\x03\x08\x12\x04\x80\x04\x19(\n\r\n\x05\
9624    \x04\x0b\x02\x03\x07\x12\x04\x80\x04\"'\n\xe8\x01\n\x04\x04\x0b\x02\x04\
9625    \x12\x04\x86\x04\x02/\x1a\xd9\x01\x20Is\x20this\x20field\x20deprecated?\
9626    \n\x20Depending\x20on\x20the\x20target\x20platform,\x20this\x20can\x20em\
9627    it\x20Deprecated\x20annotations\n\x20for\x20accessors,\x20or\x20it\x20wi\
9628    ll\x20be\x20completely\x20ignored;\x20in\x20the\x20very\x20least,\x20thi\
9629    s\n\x20is\x20a\x20formalization\x20for\x20deprecating\x20fields.\n\n\r\n\
9630    \x05\x04\x0b\x02\x04\x04\x12\x04\x86\x04\x02\n\n\r\n\x05\x04\x0b\x02\x04\
9631    \x05\x12\x04\x86\x04\x0b\x0f\n\r\n\x05\x04\x0b\x02\x04\x01\x12\x04\x86\
9632    \x04\x10\x1a\n\r\n\x05\x04\x0b\x02\x04\x03\x12\x04\x86\x04\x1d\x1e\n\r\n\
9633    \x05\x04\x0b\x02\x04\x08\x12\x04\x86\x04\x1f.\n\r\n\x05\x04\x0b\x02\x04\
9634    \x07\x12\x04\x86\x04(-\n?\n\x04\x04\x0b\x02\x05\x12\x04\x89\x04\x02*\x1a\
9635    1\x20For\x20Google-internal\x20migration\x20only.\x20Do\x20not\x20use.\n\
9636    \n\r\n\x05\x04\x0b\x02\x05\x04\x12\x04\x89\x04\x02\n\n\r\n\x05\x04\x0b\
9637    \x02\x05\x05\x12\x04\x89\x04\x0b\x0f\n\r\n\x05\x04\x0b\x02\x05\x01\x12\
9638    \x04\x89\x04\x10\x14\n\r\n\x05\x04\x0b\x02\x05\x03\x12\x04\x89\x04\x17\
9639    \x19\n\r\n\x05\x04\x0b\x02\x05\x08\x12\x04\x89\x04\x1a)\n\r\n\x05\x04\
9640    \x0b\x02\x05\x07\x12\x04\x89\x04#(\nO\n\x04\x04\x0b\x02\x06\x12\x04\x8d\
9641    \x04\x02:\x1aA\x20The\x20parser\x20stores\x20options\x20it\x20doesn't\
9642    \x20recognize\x20here.\x20See\x20above.\n\n\r\n\x05\x04\x0b\x02\x06\x04\
9643    \x12\x04\x8d\x04\x02\n\n\r\n\x05\x04\x0b\x02\x06\x06\x12\x04\x8d\x04\x0b\
9644    \x1e\n\r\n\x05\x04\x0b\x02\x06\x01\x12\x04\x8d\x04\x1f3\n\r\n\x05\x04\
9645    \x0b\x02\x06\x03\x12\x04\x8d\x0469\nZ\n\x03\x04\x0b\x05\x12\x04\x90\x04\
9646    \x02\x19\x1aM\x20Clients\x20can\x20define\x20custom\x20options\x20in\x20\
9647    extensions\x20of\x20this\x20message.\x20See\x20above.\n\n\x0c\n\x04\x04\
9648    \x0b\x05\0\x12\x04\x90\x04\r\x18\n\r\n\x05\x04\x0b\x05\0\x01\x12\x04\x90\
9649    \x04\r\x11\n\r\n\x05\x04\x0b\x05\0\x02\x12\x04\x90\x04\x15\x18\n\x0c\n\
9650    \x02\x04\x0c\x12\x06\x95\x04\0\x9b\x04\x01\n\x0b\n\x03\x04\x0c\x01\x12\
9651    \x04\x95\x04\x08\x14\nO\n\x04\x04\x0c\x02\0\x12\x04\x97\x04\x02:\x1aA\
9652    \x20The\x20parser\x20stores\x20options\x20it\x20doesn't\x20recognize\x20\
9653    here.\x20See\x20above.\n\n\r\n\x05\x04\x0c\x02\0\x04\x12\x04\x97\x04\x02\
9654    \n\n\r\n\x05\x04\x0c\x02\0\x06\x12\x04\x97\x04\x0b\x1e\n\r\n\x05\x04\x0c\
9655    \x02\0\x01\x12\x04\x97\x04\x1f3\n\r\n\x05\x04\x0c\x02\0\x03\x12\x04\x97\
9656    \x0469\nZ\n\x03\x04\x0c\x05\x12\x04\x9a\x04\x02\x19\x1aM\x20Clients\x20c\
9657    an\x20define\x20custom\x20options\x20in\x20extensions\x20of\x20this\x20m\
9658    essage.\x20See\x20above.\n\n\x0c\n\x04\x04\x0c\x05\0\x12\x04\x9a\x04\r\
9659    \x18\n\r\n\x05\x04\x0c\x05\0\x01\x12\x04\x9a\x04\r\x11\n\r\n\x05\x04\x0c\
9660    \x05\0\x02\x12\x04\x9a\x04\x15\x18\n\x0c\n\x02\x04\r\x12\x06\x9d\x04\0\
9661    \xae\x04\x01\n\x0b\n\x03\x04\r\x01\x12\x04\x9d\x04\x08\x13\n`\n\x04\x04\
9662    \r\x02\0\x12\x04\xa1\x04\x02\x20\x1aR\x20Set\x20this\x20option\x20to\x20\
9663    true\x20to\x20allow\x20mapping\x20different\x20tag\x20names\x20to\x20the\
9664    \x20same\n\x20value.\n\n\r\n\x05\x04\r\x02\0\x04\x12\x04\xa1\x04\x02\n\n\
9665    \r\n\x05\x04\r\x02\0\x05\x12\x04\xa1\x04\x0b\x0f\n\r\n\x05\x04\r\x02\0\
9666    \x01\x12\x04\xa1\x04\x10\x1b\n\r\n\x05\x04\r\x02\0\x03\x12\x04\xa1\x04\
9667    \x1e\x1f\n\xe5\x01\n\x04\x04\r\x02\x01\x12\x04\xa7\x04\x02/\x1a\xd6\x01\
9668    \x20Is\x20this\x20enum\x20deprecated?\n\x20Depending\x20on\x20the\x20tar\
9669    get\x20platform,\x20this\x20can\x20emit\x20Deprecated\x20annotations\n\
9670    \x20for\x20the\x20enum,\x20or\x20it\x20will\x20be\x20completely\x20ignor\
9671    ed;\x20in\x20the\x20very\x20least,\x20this\n\x20is\x20a\x20formalization\
9672    \x20for\x20deprecating\x20enums.\n\n\r\n\x05\x04\r\x02\x01\x04\x12\x04\
9673    \xa7\x04\x02\n\n\r\n\x05\x04\r\x02\x01\x05\x12\x04\xa7\x04\x0b\x0f\n\r\n\
9674    \x05\x04\r\x02\x01\x01\x12\x04\xa7\x04\x10\x1a\n\r\n\x05\x04\r\x02\x01\
9675    \x03\x12\x04\xa7\x04\x1d\x1e\n\r\n\x05\x04\r\x02\x01\x08\x12\x04\xa7\x04\
9676    \x1f.\n\r\n\x05\x04\r\x02\x01\x07\x12\x04\xa7\x04(-\nO\n\x04\x04\r\x02\
9677    \x02\x12\x04\xaa\x04\x02:\x1aA\x20The\x20parser\x20stores\x20options\x20\
9678    it\x20doesn't\x20recognize\x20here.\x20See\x20above.\n\n\r\n\x05\x04\r\
9679    \x02\x02\x04\x12\x04\xaa\x04\x02\n\n\r\n\x05\x04\r\x02\x02\x06\x12\x04\
9680    \xaa\x04\x0b\x1e\n\r\n\x05\x04\r\x02\x02\x01\x12\x04\xaa\x04\x1f3\n\r\n\
9681    \x05\x04\r\x02\x02\x03\x12\x04\xaa\x0469\nZ\n\x03\x04\r\x05\x12\x04\xad\
9682    \x04\x02\x19\x1aM\x20Clients\x20can\x20define\x20custom\x20options\x20in\
9683    \x20extensions\x20of\x20this\x20message.\x20See\x20above.\n\n\x0c\n\x04\
9684    \x04\r\x05\0\x12\x04\xad\x04\r\x18\n\r\n\x05\x04\r\x05\0\x01\x12\x04\xad\
9685    \x04\r\x11\n\r\n\x05\x04\r\x05\0\x02\x12\x04\xad\x04\x15\x18\n\x0c\n\x02\
9686    \x04\x0e\x12\x06\xb0\x04\0\xbc\x04\x01\n\x0b\n\x03\x04\x0e\x01\x12\x04\
9687    \xb0\x04\x08\x18\n\xf7\x01\n\x04\x04\x0e\x02\0\x12\x04\xb5\x04\x02/\x1a\
9688    \xe8\x01\x20Is\x20this\x20enum\x20value\x20deprecated?\n\x20Depending\
9689    \x20on\x20the\x20target\x20platform,\x20this\x20can\x20emit\x20Deprecate\
9690    d\x20annotations\n\x20for\x20the\x20enum\x20value,\x20or\x20it\x20will\
9691    \x20be\x20completely\x20ignored;\x20in\x20the\x20very\x20least,\n\x20thi\
9692    s\x20is\x20a\x20formalization\x20for\x20deprecating\x20enum\x20values.\n\
9693    \n\r\n\x05\x04\x0e\x02\0\x04\x12\x04\xb5\x04\x02\n\n\r\n\x05\x04\x0e\x02\
9694    \0\x05\x12\x04\xb5\x04\x0b\x0f\n\r\n\x05\x04\x0e\x02\0\x01\x12\x04\xb5\
9695    \x04\x10\x1a\n\r\n\x05\x04\x0e\x02\0\x03\x12\x04\xb5\x04\x1d\x1e\n\r\n\
9696    \x05\x04\x0e\x02\0\x08\x12\x04\xb5\x04\x1f.\n\r\n\x05\x04\x0e\x02\0\x07\
9697    \x12\x04\xb5\x04(-\nO\n\x04\x04\x0e\x02\x01\x12\x04\xb8\x04\x02:\x1aA\
9698    \x20The\x20parser\x20stores\x20options\x20it\x20doesn't\x20recognize\x20\
9699    here.\x20See\x20above.\n\n\r\n\x05\x04\x0e\x02\x01\x04\x12\x04\xb8\x04\
9700    \x02\n\n\r\n\x05\x04\x0e\x02\x01\x06\x12\x04\xb8\x04\x0b\x1e\n\r\n\x05\
9701    \x04\x0e\x02\x01\x01\x12\x04\xb8\x04\x1f3\n\r\n\x05\x04\x0e\x02\x01\x03\
9702    \x12\x04\xb8\x0469\nZ\n\x03\x04\x0e\x05\x12\x04\xbb\x04\x02\x19\x1aM\x20\
9703    Clients\x20can\x20define\x20custom\x20options\x20in\x20extensions\x20of\
9704    \x20this\x20message.\x20See\x20above.\n\n\x0c\n\x04\x04\x0e\x05\0\x12\
9705    \x04\xbb\x04\r\x18\n\r\n\x05\x04\x0e\x05\0\x01\x12\x04\xbb\x04\r\x11\n\r\
9706    \n\x05\x04\x0e\x05\0\x02\x12\x04\xbb\x04\x15\x18\n\x0c\n\x02\x04\x0f\x12\
9707    \x06\xbe\x04\0\xd0\x04\x01\n\x0b\n\x03\x04\x0f\x01\x12\x04\xbe\x04\x08\
9708    \x16\n\xd9\x03\n\x04\x04\x0f\x02\0\x12\x04\xc9\x04\x020\x1a\xdf\x01\x20I\
9709    s\x20this\x20service\x20deprecated?\n\x20Depending\x20on\x20the\x20targe\
9710    t\x20platform,\x20this\x20can\x20emit\x20Deprecated\x20annotations\n\x20\
9711    for\x20the\x20service,\x20or\x20it\x20will\x20be\x20completely\x20ignore\
9712    d;\x20in\x20the\x20very\x20least,\n\x20this\x20is\x20a\x20formalization\
9713    \x20for\x20deprecating\x20services.\n2\xe8\x01\x20Note:\x20\x20Field\x20\
9714    numbers\x201\x20through\x2032\x20are\x20reserved\x20for\x20Google's\x20i\
9715    nternal\x20RPC\n\x20\x20\x20framework.\x20\x20We\x20apologize\x20for\x20\
9716    hoarding\x20these\x20numbers\x20to\x20ourselves,\x20but\n\x20\x20\x20we\
9717    \x20were\x20already\x20using\x20them\x20long\x20before\x20we\x20decided\
9718    \x20to\x20release\x20Protocol\n\x20\x20\x20Buffers.\n\n\r\n\x05\x04\x0f\
9719    \x02\0\x04\x12\x04\xc9\x04\x02\n\n\r\n\x05\x04\x0f\x02\0\x05\x12\x04\xc9\
9720    \x04\x0b\x0f\n\r\n\x05\x04\x0f\x02\0\x01\x12\x04\xc9\x04\x10\x1a\n\r\n\
9721    \x05\x04\x0f\x02\0\x03\x12\x04\xc9\x04\x1d\x1f\n\r\n\x05\x04\x0f\x02\0\
9722    \x08\x12\x04\xc9\x04\x20/\n\r\n\x05\x04\x0f\x02\0\x07\x12\x04\xc9\x04).\
9723    \nO\n\x04\x04\x0f\x02\x01\x12\x04\xcc\x04\x02:\x1aA\x20The\x20parser\x20\
9724    stores\x20options\x20it\x20doesn't\x20recognize\x20here.\x20See\x20above\
9725    .\n\n\r\n\x05\x04\x0f\x02\x01\x04\x12\x04\xcc\x04\x02\n\n\r\n\x05\x04\
9726    \x0f\x02\x01\x06\x12\x04\xcc\x04\x0b\x1e\n\r\n\x05\x04\x0f\x02\x01\x01\
9727    \x12\x04\xcc\x04\x1f3\n\r\n\x05\x04\x0f\x02\x01\x03\x12\x04\xcc\x0469\nZ\
9728    \n\x03\x04\x0f\x05\x12\x04\xcf\x04\x02\x19\x1aM\x20Clients\x20can\x20def\
9729    ine\x20custom\x20options\x20in\x20extensions\x20of\x20this\x20message.\
9730    \x20See\x20above.\n\n\x0c\n\x04\x04\x0f\x05\0\x12\x04\xcf\x04\r\x18\n\r\
9731    \n\x05\x04\x0f\x05\0\x01\x12\x04\xcf\x04\r\x11\n\r\n\x05\x04\x0f\x05\0\
9732    \x02\x12\x04\xcf\x04\x15\x18\n\x0c\n\x02\x04\x10\x12\x06\xd2\x04\0\xe4\
9733    \x04\x01\n\x0b\n\x03\x04\x10\x01\x12\x04\xd2\x04\x08\x15\n\xd6\x03\n\x04\
9734    \x04\x10\x02\0\x12\x04\xdd\x04\x020\x1a\xdc\x01\x20Is\x20this\x20method\
9735    \x20deprecated?\n\x20Depending\x20on\x20the\x20target\x20platform,\x20th\
9736    is\x20can\x20emit\x20Deprecated\x20annotations\n\x20for\x20the\x20method\
9737    ,\x20or\x20it\x20will\x20be\x20completely\x20ignored;\x20in\x20the\x20ve\
9738    ry\x20least,\n\x20this\x20is\x20a\x20formalization\x20for\x20deprecating\
9739    \x20methods.\n2\xe8\x01\x20Note:\x20\x20Field\x20numbers\x201\x20through\
9740    \x2032\x20are\x20reserved\x20for\x20Google's\x20internal\x20RPC\n\x20\
9741    \x20\x20framework.\x20\x20We\x20apologize\x20for\x20hoarding\x20these\
9742    \x20numbers\x20to\x20ourselves,\x20but\n\x20\x20\x20we\x20were\x20alread\
9743    y\x20using\x20them\x20long\x20before\x20we\x20decided\x20to\x20release\
9744    \x20Protocol\n\x20\x20\x20Buffers.\n\n\r\n\x05\x04\x10\x02\0\x04\x12\x04\
9745    \xdd\x04\x02\n\n\r\n\x05\x04\x10\x02\0\x05\x12\x04\xdd\x04\x0b\x0f\n\r\n\
9746    \x05\x04\x10\x02\0\x01\x12\x04\xdd\x04\x10\x1a\n\r\n\x05\x04\x10\x02\0\
9747    \x03\x12\x04\xdd\x04\x1d\x1f\n\r\n\x05\x04\x10\x02\0\x08\x12\x04\xdd\x04\
9748    \x20/\n\r\n\x05\x04\x10\x02\0\x07\x12\x04\xdd\x04).\nO\n\x04\x04\x10\x02\
9749    \x01\x12\x04\xe0\x04\x02:\x1aA\x20The\x20parser\x20stores\x20options\x20\
9750    it\x20doesn't\x20recognize\x20here.\x20See\x20above.\n\n\r\n\x05\x04\x10\
9751    \x02\x01\x04\x12\x04\xe0\x04\x02\n\n\r\n\x05\x04\x10\x02\x01\x06\x12\x04\
9752    \xe0\x04\x0b\x1e\n\r\n\x05\x04\x10\x02\x01\x01\x12\x04\xe0\x04\x1f3\n\r\
9753    \n\x05\x04\x10\x02\x01\x03\x12\x04\xe0\x0469\nZ\n\x03\x04\x10\x05\x12\
9754    \x04\xe3\x04\x02\x19\x1aM\x20Clients\x20can\x20define\x20custom\x20optio\
9755    ns\x20in\x20extensions\x20of\x20this\x20message.\x20See\x20above.\n\n\
9756    \x0c\n\x04\x04\x10\x05\0\x12\x04\xe3\x04\r\x18\n\r\n\x05\x04\x10\x05\0\
9757    \x01\x12\x04\xe3\x04\r\x11\n\r\n\x05\x04\x10\x05\0\x02\x12\x04\xe3\x04\
9758    \x15\x18\n\x8b\x03\n\x02\x04\x11\x12\x06\xed\x04\0\x81\x05\x01\x1a\xfc\
9759    \x02\x20A\x20message\x20representing\x20a\x20option\x20the\x20parser\x20\
9760    does\x20not\x20recognize.\x20This\x20only\n\x20appears\x20in\x20options\
9761    \x20protos\x20created\x20by\x20the\x20compiler::Parser\x20class.\n\x20De\
9762    scriptorPool\x20resolves\x20these\x20when\x20building\x20Descriptor\x20o\
9763    bjects.\x20Therefore,\n\x20options\x20protos\x20in\x20descriptor\x20obje\
9764    cts\x20(e.g.\x20returned\x20by\x20Descriptor::options(),\n\x20or\x20prod\
9765    uced\x20by\x20Descriptor::CopyTo())\x20will\x20never\x20have\x20Uninterp\
9766    retedOptions\n\x20in\x20them.\n\n\x0b\n\x03\x04\x11\x01\x12\x04\xed\x04\
9767    \x08\x1b\n\xcb\x02\n\x04\x04\x11\x03\0\x12\x06\xf3\x04\x02\xf6\x04\x03\
9768    \x1a\xba\x02\x20The\x20name\x20of\x20the\x20uninterpreted\x20option.\x20\
9769    \x20Each\x20string\x20represents\x20a\x20segment\x20in\n\x20a\x20dot-sep\
9770    arated\x20name.\x20\x20is_extension\x20is\x20true\x20iff\x20a\x20segment\
9771    \x20represents\x20an\n\x20extension\x20(denoted\x20with\x20parentheses\
9772    \x20in\x20options\x20specs\x20in\x20.proto\x20files).\n\x20E.g.,{\x20[\"\
9773    foo\",\x20false],\x20[\"bar.baz\",\x20true],\x20[\"qux\",\x20false]\x20}\
9774    \x20represents\n\x20\"foo.(bar.baz).qux\".\n\n\r\n\x05\x04\x11\x03\0\x01\
9775    \x12\x04\xf3\x04\n\x12\n\x0e\n\x06\x04\x11\x03\0\x02\0\x12\x04\xf4\x04\
9776    \x04\"\n\x0f\n\x07\x04\x11\x03\0\x02\0\x04\x12\x04\xf4\x04\x04\x0c\n\x0f\
9777    \n\x07\x04\x11\x03\0\x02\0\x05\x12\x04\xf4\x04\r\x13\n\x0f\n\x07\x04\x11\
9778    \x03\0\x02\0\x01\x12\x04\xf4\x04\x14\x1d\n\x0f\n\x07\x04\x11\x03\0\x02\0\
9779    \x03\x12\x04\xf4\x04\x20!\n\x0e\n\x06\x04\x11\x03\0\x02\x01\x12\x04\xf5\
9780    \x04\x04#\n\x0f\n\x07\x04\x11\x03\0\x02\x01\x04\x12\x04\xf5\x04\x04\x0c\
9781    \n\x0f\n\x07\x04\x11\x03\0\x02\x01\x05\x12\x04\xf5\x04\r\x11\n\x0f\n\x07\
9782    \x04\x11\x03\0\x02\x01\x01\x12\x04\xf5\x04\x12\x1e\n\x0f\n\x07\x04\x11\
9783    \x03\0\x02\x01\x03\x12\x04\xf5\x04!\"\n\x0c\n\x04\x04\x11\x02\0\x12\x04\
9784    \xf7\x04\x02\x1d\n\r\n\x05\x04\x11\x02\0\x04\x12\x04\xf7\x04\x02\n\n\r\n\
9785    \x05\x04\x11\x02\0\x06\x12\x04\xf7\x04\x0b\x13\n\r\n\x05\x04\x11\x02\0\
9786    \x01\x12\x04\xf7\x04\x14\x18\n\r\n\x05\x04\x11\x02\0\x03\x12\x04\xf7\x04\
9787    \x1b\x1c\n\x9c\x01\n\x04\x04\x11\x02\x01\x12\x04\xfb\x04\x02'\x1a\x8d\
9788    \x01\x20The\x20value\x20of\x20the\x20uninterpreted\x20option,\x20in\x20w\
9789    hatever\x20type\x20the\x20tokenizer\n\x20identified\x20it\x20as\x20durin\
9790    g\x20parsing.\x20Exactly\x20one\x20of\x20these\x20should\x20be\x20set.\n\
9791    \n\r\n\x05\x04\x11\x02\x01\x04\x12\x04\xfb\x04\x02\n\n\r\n\x05\x04\x11\
9792    \x02\x01\x05\x12\x04\xfb\x04\x0b\x11\n\r\n\x05\x04\x11\x02\x01\x01\x12\
9793    \x04\xfb\x04\x12\"\n\r\n\x05\x04\x11\x02\x01\x03\x12\x04\xfb\x04%&\n\x0c\
9794    \n\x04\x04\x11\x02\x02\x12\x04\xfc\x04\x02)\n\r\n\x05\x04\x11\x02\x02\
9795    \x04\x12\x04\xfc\x04\x02\n\n\r\n\x05\x04\x11\x02\x02\x05\x12\x04\xfc\x04\
9796    \x0b\x11\n\r\n\x05\x04\x11\x02\x02\x01\x12\x04\xfc\x04\x12$\n\r\n\x05\
9797    \x04\x11\x02\x02\x03\x12\x04\xfc\x04'(\n\x0c\n\x04\x04\x11\x02\x03\x12\
9798    \x04\xfd\x04\x02(\n\r\n\x05\x04\x11\x02\x03\x04\x12\x04\xfd\x04\x02\n\n\
9799    \r\n\x05\x04\x11\x02\x03\x05\x12\x04\xfd\x04\x0b\x10\n\r\n\x05\x04\x11\
9800    \x02\x03\x01\x12\x04\xfd\x04\x11#\n\r\n\x05\x04\x11\x02\x03\x03\x12\x04\
9801    \xfd\x04&'\n\x0c\n\x04\x04\x11\x02\x04\x12\x04\xfe\x04\x02#\n\r\n\x05\
9802    \x04\x11\x02\x04\x04\x12\x04\xfe\x04\x02\n\n\r\n\x05\x04\x11\x02\x04\x05\
9803    \x12\x04\xfe\x04\x0b\x11\n\r\n\x05\x04\x11\x02\x04\x01\x12\x04\xfe\x04\
9804    \x12\x1e\n\r\n\x05\x04\x11\x02\x04\x03\x12\x04\xfe\x04!\"\n\x0c\n\x04\
9805    \x04\x11\x02\x05\x12\x04\xff\x04\x02\"\n\r\n\x05\x04\x11\x02\x05\x04\x12\
9806    \x04\xff\x04\x02\n\n\r\n\x05\x04\x11\x02\x05\x05\x12\x04\xff\x04\x0b\x10\
9807    \n\r\n\x05\x04\x11\x02\x05\x01\x12\x04\xff\x04\x11\x1d\n\r\n\x05\x04\x11\
9808    \x02\x05\x03\x12\x04\xff\x04\x20!\n\x0c\n\x04\x04\x11\x02\x06\x12\x04\
9809    \x80\x05\x02&\n\r\n\x05\x04\x11\x02\x06\x04\x12\x04\x80\x05\x02\n\n\r\n\
9810    \x05\x04\x11\x02\x06\x05\x12\x04\x80\x05\x0b\x11\n\r\n\x05\x04\x11\x02\
9811    \x06\x01\x12\x04\x80\x05\x12!\n\r\n\x05\x04\x11\x02\x06\x03\x12\x04\x80\
9812    \x05$%\n\xda\x01\n\x02\x04\x12\x12\x06\x88\x05\0\x89\x06\x01\x1aj\x20Enc\
9813    apsulates\x20information\x20about\x20the\x20original\x20source\x20file\
9814    \x20from\x20which\x20a\n\x20FileDescriptorProto\x20was\x20generated.\n2`\
9815    \x20===================================================================\
9816    \n\x20Optional\x20source\x20code\x20info\n\n\x0b\n\x03\x04\x12\x01\x12\
9817    \x04\x88\x05\x08\x16\n\x82\x11\n\x04\x04\x12\x02\0\x12\x04\xb4\x05\x02!\
9818    \x1a\xf3\x10\x20A\x20Location\x20identifies\x20a\x20piece\x20of\x20sourc\
9819    e\x20code\x20in\x20a\x20.proto\x20file\x20which\n\x20corresponds\x20to\
9820    \x20a\x20particular\x20definition.\x20\x20This\x20information\x20is\x20i\
9821    ntended\n\x20to\x20be\x20useful\x20to\x20IDEs,\x20code\x20indexers,\x20d\
9822    ocumentation\x20generators,\x20and\x20similar\n\x20tools.\n\n\x20For\x20\
9823    example,\x20say\x20we\x20have\x20a\x20file\x20like:\n\x20\x20\x20message\
9824    \x20Foo\x20{\n\x20\x20\x20\x20\x20optional\x20string\x20foo\x20=\x201;\n\
9825    \x20\x20\x20}\n\x20Let's\x20look\x20at\x20just\x20the\x20field\x20defini\
9826    tion:\n\x20\x20\x20optional\x20string\x20foo\x20=\x201;\n\x20\x20\x20^\
9827    \x20\x20\x20\x20\x20\x20\x20^^\x20\x20\x20\x20\x20^^\x20\x20^\x20\x20^^^\
9828    \n\x20\x20\x20a\x20\x20\x20\x20\x20\x20\x20bc\x20\x20\x20\x20\x20de\x20\
9829    \x20f\x20\x20ghi\n\x20We\x20have\x20the\x20following\x20locations:\n\x20\
9830    \x20\x20span\x20\x20\x20path\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\
9831    \x20\x20\x20\x20represents\n\x20\x20\x20[a,i)\x20\x20[\x204,\x200,\x202,\
9832    \x200\x20]\x20\x20\x20\x20\x20The\x20whole\x20field\x20definition.\n\x20\
9833    \x20\x20[a,b)\x20\x20[\x204,\x200,\x202,\x200,\x204\x20]\x20\x20The\x20l\
9834    abel\x20(optional).\n\x20\x20\x20[c,d)\x20\x20[\x204,\x200,\x202,\x200,\
9835    \x205\x20]\x20\x20The\x20type\x20(string).\n\x20\x20\x20[e,f)\x20\x20[\
9836    \x204,\x200,\x202,\x200,\x201\x20]\x20\x20The\x20name\x20(foo).\n\x20\
9837    \x20\x20[g,h)\x20\x20[\x204,\x200,\x202,\x200,\x203\x20]\x20\x20The\x20n\
9838    umber\x20(1).\n\n\x20Notes:\n\x20-\x20A\x20location\x20may\x20refer\x20t\
9839    o\x20a\x20repeated\x20field\x20itself\x20(i.e.\x20not\x20to\x20any\n\x20\
9840    \x20\x20particular\x20index\x20within\x20it).\x20\x20This\x20is\x20used\
9841    \x20whenever\x20a\x20set\x20of\x20elements\x20are\n\x20\x20\x20logically\
9842    \x20enclosed\x20in\x20a\x20single\x20code\x20segment.\x20\x20For\x20exam\
9843    ple,\x20an\x20entire\n\x20\x20\x20extend\x20block\x20(possibly\x20contai\
9844    ning\x20multiple\x20extension\x20definitions)\x20will\n\x20\x20\x20have\
9845    \x20an\x20outer\x20location\x20whose\x20path\x20refers\x20to\x20the\x20\
9846    \"extensions\"\x20repeated\n\x20\x20\x20field\x20without\x20an\x20index.\
9847    \n\x20-\x20Multiple\x20locations\x20may\x20have\x20the\x20same\x20path.\
9848    \x20\x20This\x20happens\x20when\x20a\x20single\n\x20\x20\x20logical\x20d\
9849    eclaration\x20is\x20spread\x20out\x20across\x20multiple\x20places.\x20\
9850    \x20The\x20most\n\x20\x20\x20obvious\x20example\x20is\x20the\x20\"extend\
9851    \"\x20block\x20again\x20--\x20there\x20may\x20be\x20multiple\n\x20\x20\
9852    \x20extend\x20blocks\x20in\x20the\x20same\x20scope,\x20each\x20of\x20whi\
9853    ch\x20will\x20have\x20the\x20same\x20path.\n\x20-\x20A\x20location's\x20\
9854    span\x20is\x20not\x20always\x20a\x20subset\x20of\x20its\x20parent's\x20s\
9855    pan.\x20\x20For\n\x20\x20\x20example,\x20the\x20\"extendee\"\x20of\x20an\
9856    \x20extension\x20declaration\x20appears\x20at\x20the\n\x20\x20\x20beginn\
9857    ing\x20of\x20the\x20\"extend\"\x20block\x20and\x20is\x20shared\x20by\x20\
9858    all\x20extensions\x20within\n\x20\x20\x20the\x20block.\n\x20-\x20Just\
9859    \x20because\x20a\x20location's\x20span\x20is\x20a\x20subset\x20of\x20som\
9860    e\x20other\x20location's\x20span\n\x20\x20\x20does\x20not\x20mean\x20tha\
9861    t\x20it\x20is\x20a\x20descendent.\x20\x20For\x20example,\x20a\x20\"group\
9862    \"\x20defines\n\x20\x20\x20both\x20a\x20type\x20and\x20a\x20field\x20in\
9863    \x20a\x20single\x20declaration.\x20\x20Thus,\x20the\x20locations\n\x20\
9864    \x20\x20corresponding\x20to\x20the\x20type\x20and\x20field\x20and\x20the\
9865    ir\x20components\x20will\x20overlap.\n\x20-\x20Code\x20which\x20tries\
9866    \x20to\x20interpret\x20locations\x20should\x20probably\x20be\x20designed\
9867    \x20to\n\x20\x20\x20ignore\x20those\x20that\x20it\x20doesn't\x20understa\
9868    nd,\x20as\x20more\x20types\x20of\x20locations\x20could\n\x20\x20\x20be\
9869    \x20recorded\x20in\x20the\x20future.\n\n\r\n\x05\x04\x12\x02\0\x04\x12\
9870    \x04\xb4\x05\x02\n\n\r\n\x05\x04\x12\x02\0\x06\x12\x04\xb4\x05\x0b\x13\n\
9871    \r\n\x05\x04\x12\x02\0\x01\x12\x04\xb4\x05\x14\x1c\n\r\n\x05\x04\x12\x02\
9872    \0\x03\x12\x04\xb4\x05\x1f\x20\n\x0e\n\x04\x04\x12\x03\0\x12\x06\xb5\x05\
9873    \x02\x88\x06\x03\n\r\n\x05\x04\x12\x03\0\x01\x12\x04\xb5\x05\n\x12\n\x83\
9874    \x07\n\x06\x04\x12\x03\0\x02\0\x12\x04\xcd\x05\x04*\x1a\xf2\x06\x20Ident\
9875    ifies\x20which\x20part\x20of\x20the\x20FileDescriptorProto\x20was\x20def\
9876    ined\x20at\x20this\n\x20location.\n\n\x20Each\x20element\x20is\x20a\x20f\
9877    ield\x20number\x20or\x20an\x20index.\x20\x20They\x20form\x20a\x20path\
9878    \x20from\n\x20the\x20root\x20FileDescriptorProto\x20to\x20the\x20place\
9879    \x20where\x20the\x20definition.\x20\x20For\n\x20example,\x20this\x20path\
9880    :\n\x20\x20\x20[\x204,\x203,\x202,\x207,\x201\x20]\n\x20refers\x20to:\n\
9881    \x20\x20\x20file.message_type(3)\x20\x20//\x204,\x203\n\x20\x20\x20\x20\
9882    \x20\x20\x20.field(7)\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x202,\x207\n\
9883    \x20\x20\x20\x20\x20\x20\x20.name()\x20\x20\x20\x20\x20\x20\x20\x20\x20\
9884    \x20\x20//\x201\n\x20This\x20is\x20because\x20FileDescriptorProto.messag\
9885    e_type\x20has\x20field\x20number\x204:\n\x20\x20\x20repeated\x20Descript\
9886    orProto\x20message_type\x20=\x204;\n\x20and\x20DescriptorProto.field\x20\
9887    has\x20field\x20number\x202:\n\x20\x20\x20repeated\x20FieldDescriptorPro\
9888    to\x20field\x20=\x202;\n\x20and\x20FieldDescriptorProto.name\x20has\x20f\
9889    ield\x20number\x201:\n\x20\x20\x20optional\x20string\x20name\x20=\x201;\
9890    \n\n\x20Thus,\x20the\x20above\x20path\x20gives\x20the\x20location\x20of\
9891    \x20a\x20field\x20name.\x20\x20If\x20we\x20removed\n\x20the\x20last\x20e\
9892    lement:\n\x20\x20\x20[\x204,\x203,\x202,\x207\x20]\n\x20this\x20path\x20\
9893    refers\x20to\x20the\x20whole\x20field\x20declaration\x20(from\x20the\x20\
9894    beginning\n\x20of\x20the\x20label\x20to\x20the\x20terminating\x20semicol\
9895    on).\n\n\x0f\n\x07\x04\x12\x03\0\x02\0\x04\x12\x04\xcd\x05\x04\x0c\n\x0f\
9896    \n\x07\x04\x12\x03\0\x02\0\x05\x12\x04\xcd\x05\r\x12\n\x0f\n\x07\x04\x12\
9897    \x03\0\x02\0\x01\x12\x04\xcd\x05\x13\x17\n\x0f\n\x07\x04\x12\x03\0\x02\0\
9898    \x03\x12\x04\xcd\x05\x1a\x1b\n\x0f\n\x07\x04\x12\x03\0\x02\0\x08\x12\x04\
9899    \xcd\x05\x1c)\n\x10\n\x08\x04\x12\x03\0\x02\0\x08\x02\x12\x04\xcd\x05\
9900    \x1d(\n\xd2\x02\n\x06\x04\x12\x03\0\x02\x01\x12\x04\xd4\x05\x04*\x1a\xc1\
9901    \x02\x20Always\x20has\x20exactly\x20three\x20or\x20four\x20elements:\x20\
9902    start\x20line,\x20start\x20column,\n\x20end\x20line\x20(optional,\x20oth\
9903    erwise\x20assumed\x20same\x20as\x20start\x20line),\x20end\x20column.\n\
9904    \x20These\x20are\x20packed\x20into\x20a\x20single\x20field\x20for\x20eff\
9905    iciency.\x20\x20Note\x20that\x20line\n\x20and\x20column\x20numbers\x20ar\
9906    e\x20zero-based\x20--\x20typically\x20you\x20will\x20want\x20to\x20add\n\
9907    \x201\x20to\x20each\x20before\x20displaying\x20to\x20a\x20user.\n\n\x0f\
9908    \n\x07\x04\x12\x03\0\x02\x01\x04\x12\x04\xd4\x05\x04\x0c\n\x0f\n\x07\x04\
9909    \x12\x03\0\x02\x01\x05\x12\x04\xd4\x05\r\x12\n\x0f\n\x07\x04\x12\x03\0\
9910    \x02\x01\x01\x12\x04\xd4\x05\x13\x17\n\x0f\n\x07\x04\x12\x03\0\x02\x01\
9911    \x03\x12\x04\xd4\x05\x1a\x1b\n\x0f\n\x07\x04\x12\x03\0\x02\x01\x08\x12\
9912    \x04\xd4\x05\x1c)\n\x10\n\x08\x04\x12\x03\0\x02\x01\x08\x02\x12\x04\xd4\
9913    \x05\x1d(\n\xa5\x0c\n\x06\x04\x12\x03\0\x02\x02\x12\x04\x85\x06\x04)\x1a\
9914    \x94\x0c\x20If\x20this\x20SourceCodeInfo\x20represents\x20a\x20complete\
9915    \x20declaration,\x20these\x20are\x20any\n\x20comments\x20appearing\x20be\
9916    fore\x20and\x20after\x20the\x20declaration\x20which\x20appear\x20to\x20b\
9917    e\n\x20attached\x20to\x20the\x20declaration.\n\n\x20A\x20series\x20of\
9918    \x20line\x20comments\x20appearing\x20on\x20consecutive\x20lines,\x20with\
9919    \x20no\x20other\n\x20tokens\x20appearing\x20on\x20those\x20lines,\x20wil\
9920    l\x20be\x20treated\x20as\x20a\x20single\x20comment.\n\n\x20leading_detac\
9921    hed_comments\x20will\x20keep\x20paragraphs\x20of\x20comments\x20that\x20\
9922    appear\n\x20before\x20(but\x20not\x20connected\x20to)\x20the\x20current\
9923    \x20element.\x20Each\x20paragraph,\n\x20separated\x20by\x20empty\x20line\
9924    s,\x20will\x20be\x20one\x20comment\x20element\x20in\x20the\x20repeated\n\
9925    \x20field.\n\n\x20Only\x20the\x20comment\x20content\x20is\x20provided;\
9926    \x20comment\x20markers\x20(e.g.\x20//)\x20are\n\x20stripped\x20out.\x20\
9927    \x20For\x20block\x20comments,\x20leading\x20whitespace\x20and\x20an\x20a\
9928    sterisk\n\x20will\x20be\x20stripped\x20from\x20the\x20beginning\x20of\
9929    \x20each\x20line\x20other\x20than\x20the\x20first.\n\x20Newlines\x20are\
9930    \x20included\x20in\x20the\x20output.\n\n\x20Examples:\n\n\x20\x20\x20opt\
9931    ional\x20int32\x20foo\x20=\x201;\x20\x20//\x20Comment\x20attached\x20to\
9932    \x20foo.\n\x20\x20\x20//\x20Comment\x20attached\x20to\x20bar.\n\x20\x20\
9933    \x20optional\x20int32\x20bar\x20=\x202;\n\n\x20\x20\x20optional\x20strin\
9934    g\x20baz\x20=\x203;\n\x20\x20\x20//\x20Comment\x20attached\x20to\x20baz.\
9935    \n\x20\x20\x20//\x20Another\x20line\x20attached\x20to\x20baz.\n\n\x20\
9936    \x20\x20//\x20Comment\x20attached\x20to\x20qux.\n\x20\x20\x20//\n\x20\
9937    \x20\x20//\x20Another\x20line\x20attached\x20to\x20qux.\n\x20\x20\x20opt\
9938    ional\x20double\x20qux\x20=\x204;\n\n\x20\x20\x20//\x20Detached\x20comme\
9939    nt\x20for\x20corge.\x20This\x20is\x20not\x20leading\x20or\x20trailing\
9940    \x20comments\n\x20\x20\x20//\x20to\x20qux\x20or\x20corge\x20because\x20t\
9941    here\x20are\x20blank\x20lines\x20separating\x20it\x20from\n\x20\x20\x20/\
9942    /\x20both.\n\n\x20\x20\x20//\x20Detached\x20comment\x20for\x20corge\x20p\
9943    aragraph\x202.\n\n\x20\x20\x20optional\x20string\x20corge\x20=\x205;\n\
9944    \x20\x20\x20/*\x20Block\x20comment\x20attached\n\x20\x20\x20\x20*\x20to\
9945    \x20corge.\x20\x20Leading\x20asterisks\n\x20\x20\x20\x20*\x20will\x20be\
9946    \x20removed.\x20*/\n\x20\x20\x20/*\x20Block\x20comment\x20attached\x20to\
9947    \n\x20\x20\x20\x20*\x20grault.\x20*/\n\x20\x20\x20optional\x20int32\x20g\
9948    rault\x20=\x206;\n\n\x20\x20\x20//\x20ignored\x20detached\x20comments.\n\
9949    \n\x0f\n\x07\x04\x12\x03\0\x02\x02\x04\x12\x04\x85\x06\x04\x0c\n\x0f\n\
9950    \x07\x04\x12\x03\0\x02\x02\x05\x12\x04\x85\x06\r\x13\n\x0f\n\x07\x04\x12\
9951    \x03\0\x02\x02\x01\x12\x04\x85\x06\x14$\n\x0f\n\x07\x04\x12\x03\0\x02\
9952    \x02\x03\x12\x04\x85\x06'(\n\x0e\n\x06\x04\x12\x03\0\x02\x03\x12\x04\x86\
9953    \x06\x04*\n\x0f\n\x07\x04\x12\x03\0\x02\x03\x04\x12\x04\x86\x06\x04\x0c\
9954    \n\x0f\n\x07\x04\x12\x03\0\x02\x03\x05\x12\x04\x86\x06\r\x13\n\x0f\n\x07\
9955    \x04\x12\x03\0\x02\x03\x01\x12\x04\x86\x06\x14%\n\x0f\n\x07\x04\x12\x03\
9956    \0\x02\x03\x03\x12\x04\x86\x06()\n\x0e\n\x06\x04\x12\x03\0\x02\x04\x12\
9957    \x04\x87\x06\x042\n\x0f\n\x07\x04\x12\x03\0\x02\x04\x04\x12\x04\x87\x06\
9958    \x04\x0c\n\x0f\n\x07\x04\x12\x03\0\x02\x04\x05\x12\x04\x87\x06\r\x13\n\
9959    \x0f\n\x07\x04\x12\x03\0\x02\x04\x01\x12\x04\x87\x06\x14-\n\x0f\n\x07\
9960    \x04\x12\x03\0\x02\x04\x03\x12\x04\x87\x0601\n\xee\x01\n\x02\x04\x13\x12\
9961    \x06\x8e\x06\0\xa3\x06\x01\x1a\xdf\x01\x20Describes\x20the\x20relationsh\
9962    ip\x20between\x20generated\x20code\x20and\x20its\x20original\x20source\n\
9963    \x20file.\x20A\x20GeneratedCodeInfo\x20message\x20is\x20associated\x20wi\
9964    th\x20only\x20one\x20generated\n\x20source\x20file,\x20but\x20may\x20con\
9965    tain\x20references\x20to\x20different\x20source\x20.proto\x20files.\n\n\
9966    \x0b\n\x03\x04\x13\x01\x12\x04\x8e\x06\x08\x19\nx\n\x04\x04\x13\x02\0\
9967    \x12\x04\x91\x06\x02%\x1aj\x20An\x20Annotation\x20connects\x20some\x20sp\
9968    an\x20of\x20text\x20in\x20generated\x20code\x20to\x20an\x20element\n\x20\
9969    of\x20its\x20generating\x20.proto\x20file.\n\n\r\n\x05\x04\x13\x02\0\x04\
9970    \x12\x04\x91\x06\x02\n\n\r\n\x05\x04\x13\x02\0\x06\x12\x04\x91\x06\x0b\
9971    \x15\n\r\n\x05\x04\x13\x02\0\x01\x12\x04\x91\x06\x16\x20\n\r\n\x05\x04\
9972    \x13\x02\0\x03\x12\x04\x91\x06#$\n\x0e\n\x04\x04\x13\x03\0\x12\x06\x92\
9973    \x06\x02\xa2\x06\x03\n\r\n\x05\x04\x13\x03\0\x01\x12\x04\x92\x06\n\x14\n\
9974    \x8f\x01\n\x06\x04\x13\x03\0\x02\0\x12\x04\x95\x06\x04*\x1a\x7f\x20Ident\
9975    ifies\x20the\x20element\x20in\x20the\x20original\x20source\x20.proto\x20\
9976    file.\x20This\x20field\n\x20is\x20formatted\x20the\x20same\x20as\x20Sour\
9977    ceCodeInfo.Location.path.\n\n\x0f\n\x07\x04\x13\x03\0\x02\0\x04\x12\x04\
9978    \x95\x06\x04\x0c\n\x0f\n\x07\x04\x13\x03\0\x02\0\x05\x12\x04\x95\x06\r\
9979    \x12\n\x0f\n\x07\x04\x13\x03\0\x02\0\x01\x12\x04\x95\x06\x13\x17\n\x0f\n\
9980    \x07\x04\x13\x03\0\x02\0\x03\x12\x04\x95\x06\x1a\x1b\n\x0f\n\x07\x04\x13\
9981    \x03\0\x02\0\x08\x12\x04\x95\x06\x1c)\n\x10\n\x08\x04\x13\x03\0\x02\0\
9982    \x08\x02\x12\x04\x95\x06\x1d(\nO\n\x06\x04\x13\x03\0\x02\x01\x12\x04\x98\
9983    \x06\x04$\x1a?\x20Identifies\x20the\x20filesystem\x20path\x20to\x20the\
9984    \x20original\x20source\x20.proto.\n\n\x0f\n\x07\x04\x13\x03\0\x02\x01\
9985    \x04\x12\x04\x98\x06\x04\x0c\n\x0f\n\x07\x04\x13\x03\0\x02\x01\x05\x12\
9986    \x04\x98\x06\r\x13\n\x0f\n\x07\x04\x13\x03\0\x02\x01\x01\x12\x04\x98\x06\
9987    \x14\x1f\n\x0f\n\x07\x04\x13\x03\0\x02\x01\x03\x12\x04\x98\x06\"#\nw\n\
9988    \x06\x04\x13\x03\0\x02\x02\x12\x04\x9c\x06\x04\x1d\x1ag\x20Identifies\
9989    \x20the\x20starting\x20offset\x20in\x20bytes\x20in\x20the\x20generated\
9990    \x20code\n\x20that\x20relates\x20to\x20the\x20identified\x20object.\n\n\
9991    \x0f\n\x07\x04\x13\x03\0\x02\x02\x04\x12\x04\x9c\x06\x04\x0c\n\x0f\n\x07\
9992    \x04\x13\x03\0\x02\x02\x05\x12\x04\x9c\x06\r\x12\n\x0f\n\x07\x04\x13\x03\
9993    \0\x02\x02\x01\x12\x04\x9c\x06\x13\x18\n\x0f\n\x07\x04\x13\x03\0\x02\x02\
9994    \x03\x12\x04\x9c\x06\x1b\x1c\n\xdb\x01\n\x06\x04\x13\x03\0\x02\x03\x12\
9995    \x04\xa1\x06\x04\x1b\x1a\xca\x01\x20Identifies\x20the\x20ending\x20offse\
9996    t\x20in\x20bytes\x20in\x20the\x20generated\x20code\x20that\n\x20relates\
9997    \x20to\x20the\x20identified\x20offset.\x20The\x20end\x20offset\x20should\
9998    \x20be\x20one\x20past\n\x20the\x20last\x20relevant\x20byte\x20(so\x20the\
9999    \x20length\x20of\x20the\x20text\x20=\x20end\x20-\x20begin).\n\n\x0f\n\
10000    \x07\x04\x13\x03\0\x02\x03\x04\x12\x04\xa1\x06\x04\x0c\n\x0f\n\x07\x04\
10001    \x13\x03\0\x02\x03\x05\x12\x04\xa1\x06\r\x12\n\x0f\n\x07\x04\x13\x03\0\
10002    \x02\x03\x01\x12\x04\xa1\x06\x13\x16\n\x0f\n\x07\x04\x13\x03\0\x02\x03\
10003    \x03\x12\x04\xa1\x06\x19\x1a\
10004";
10005
10006static mut file_descriptor_proto_lazy: ::protobuf::lazy::Lazy<::protobuf::descriptor::FileDescriptorProto> = ::protobuf::lazy::Lazy {
10007    lock: ::protobuf::lazy::ONCE_INIT,
10008    ptr: 0 as *const ::protobuf::descriptor::FileDescriptorProto,
10009};
10010
10011fn parse_descriptor_proto() -> ::protobuf::descriptor::FileDescriptorProto {
10012    ::protobuf::parse_from_bytes(file_descriptor_proto_data).unwrap()
10013}
10014
10015pub fn file_descriptor_proto() -> &'static ::protobuf::descriptor::FileDescriptorProto {
10016    unsafe {
10017        file_descriptor_proto_lazy.get(|| {
10018            parse_descriptor_proto()
10019        })
10020    }
10021}