• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // This file is generated by rust-protobuf 3.0.0-pre. Do not edit
2 // .proto file is parsed by protoc --rust-out=...
3 // @generated
4 
5 // https://github.com/rust-lang/rust-clippy/issues/702
6 #![allow(unknown_lints)]
7 #![allow(clippy::all)]
8 
9 #![allow(unused_attributes)]
10 #![cfg_attr(rustfmt, rustfmt::skip)]
11 
12 #![allow(box_pointers)]
13 #![allow(dead_code)]
14 #![allow(missing_docs)]
15 #![allow(non_camel_case_types)]
16 #![allow(non_snake_case)]
17 #![allow(non_upper_case_globals)]
18 #![allow(trivial_casts)]
19 #![allow(unused_results)]
20 #![allow(unused_mut)]
21 
22 //! Generated file from `google/protobuf/descriptor.proto`
23 
24 ///  The protocol compiler can output a FileDescriptorSet containing the .proto
25 ///  files it parses.
26 #[derive(PartialEq,Clone,Default,Debug)]
27 // @@protoc_insertion_point(message:google.protobuf.FileDescriptorSet)
28 pub struct FileDescriptorSet {
29     // message fields
30     // @@protoc_insertion_point(field:google.protobuf.FileDescriptorSet.file)
31     pub file: ::std::vec::Vec<FileDescriptorProto>,
32     // special fields
33     // @@protoc_insertion_point(special_field:google.protobuf.FileDescriptorSet.special_fields)
34     pub special_fields: crate::SpecialFields,
35 }
36 
37 impl<'a> ::std::default::Default for &'a FileDescriptorSet {
default() -> &'a FileDescriptorSet38     fn default() -> &'a FileDescriptorSet {
39         <FileDescriptorSet as crate::Message>::default_instance()
40     }
41 }
42 
43 impl FileDescriptorSet {
new() -> FileDescriptorSet44     pub fn new() -> FileDescriptorSet {
45         ::std::default::Default::default()
46     }
47 
generated_message_descriptor_data() -> crate::reflect::GeneratedMessageDescriptorData48     fn generated_message_descriptor_data() -> crate::reflect::GeneratedMessageDescriptorData {
49         let mut fields = ::std::vec::Vec::with_capacity(1);
50         let mut oneofs = ::std::vec::Vec::with_capacity(0);
51         fields.push(crate::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
52             "file",
53             |m: &FileDescriptorSet| { &m.file },
54             |m: &mut FileDescriptorSet| { &mut m.file },
55         ));
56         crate::reflect::GeneratedMessageDescriptorData::new_2::<FileDescriptorSet>(
57             "FileDescriptorSet",
58             fields,
59             oneofs,
60         )
61     }
62 }
63 
64 impl crate::Message for FileDescriptorSet {
65     const NAME: &'static str = "FileDescriptorSet";
66 
is_initialized(&self) -> bool67     fn is_initialized(&self) -> bool {
68         for v in &self.file {
69             if !v.is_initialized() {
70                 return false;
71             }
72         };
73         true
74     }
75 
merge_from(&mut self, is: &mut crate::CodedInputStream<'_>) -> crate::Result<()>76     fn merge_from(&mut self, is: &mut crate::CodedInputStream<'_>) -> crate::Result<()> {
77         while let Some(tag) = is.read_raw_tag_or_eof()? {
78             match tag {
79                 10 => {
80                     self.file.push(is.read_message()?);
81                 },
82                 tag => {
83                     crate::rt::read_unknown_or_skip_group(tag, is, self.special_fields.mut_unknown_fields())?;
84                 },
85             };
86         }
87         ::std::result::Result::Ok(())
88     }
89 
90     // Compute sizes of nested messages
91     #[allow(unused_variables)]
compute_size(&self) -> u6492     fn compute_size(&self) -> u64 {
93         let mut my_size = 0;
94         for value in &self.file {
95             let len = value.compute_size();
96             my_size += 1 + crate::rt::compute_raw_varint64_size(len) + len;
97         };
98         my_size += crate::rt::unknown_fields_size(self.special_fields.unknown_fields());
99         self.special_fields.cached_size().set(my_size as u32);
100         my_size
101     }
102 
write_to_with_cached_sizes(&self, os: &mut crate::CodedOutputStream<'_>) -> crate::Result<()>103     fn write_to_with_cached_sizes(&self, os: &mut crate::CodedOutputStream<'_>) -> crate::Result<()> {
104         for v in &self.file {
105             crate::rt::write_message_field_with_cached_size(1, v, os)?;
106         };
107         os.write_unknown_fields(self.special_fields.unknown_fields())?;
108         ::std::result::Result::Ok(())
109     }
110 
special_fields(&self) -> &crate::SpecialFields111     fn special_fields(&self) -> &crate::SpecialFields {
112         &self.special_fields
113     }
114 
mut_special_fields(&mut self) -> &mut crate::SpecialFields115     fn mut_special_fields(&mut self) -> &mut crate::SpecialFields {
116         &mut self.special_fields
117     }
118 
new() -> FileDescriptorSet119     fn new() -> FileDescriptorSet {
120         FileDescriptorSet::new()
121     }
122 
clear(&mut self)123     fn clear(&mut self) {
124         self.file.clear();
125         self.special_fields.clear();
126     }
127 
default_instance() -> &'static FileDescriptorSet128     fn default_instance() -> &'static FileDescriptorSet {
129         static instance: FileDescriptorSet = FileDescriptorSet {
130             file: ::std::vec::Vec::new(),
131             special_fields: crate::SpecialFields::new(),
132         };
133         &instance
134     }
135 }
136 
137 impl crate::MessageFull for FileDescriptorSet {
descriptor() -> crate::reflect::MessageDescriptor138     fn descriptor() -> crate::reflect::MessageDescriptor {
139         static descriptor: crate::rt::Lazy<crate::reflect::MessageDescriptor> = crate::rt::Lazy::new();
140         descriptor.get(|| file_descriptor().message_by_package_relative_name("FileDescriptorSet").unwrap()).clone()
141     }
142 }
143 
144 impl ::std::fmt::Display for FileDescriptorSet {
fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result145     fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
146         crate::text_format::fmt(self, f)
147     }
148 }
149 
150 impl crate::reflect::ProtobufValue for FileDescriptorSet {
151     type RuntimeType = crate::reflect::rt::RuntimeTypeMessage<Self>;
152 }
153 
154 ///  Describes a complete .proto file.
155 #[derive(PartialEq,Clone,Default,Debug)]
156 // @@protoc_insertion_point(message:google.protobuf.FileDescriptorProto)
157 pub struct FileDescriptorProto {
158     // message fields
159     // @@protoc_insertion_point(field:google.protobuf.FileDescriptorProto.name)
160     pub name: ::std::option::Option<::std::string::String>,
161     // @@protoc_insertion_point(field:google.protobuf.FileDescriptorProto.package)
162     pub package: ::std::option::Option<::std::string::String>,
163     ///  Names of files imported by this file.
164     // @@protoc_insertion_point(field:google.protobuf.FileDescriptorProto.dependency)
165     pub dependency: ::std::vec::Vec<::std::string::String>,
166     ///  Indexes of the public imported files in the dependency list above.
167     // @@protoc_insertion_point(field:google.protobuf.FileDescriptorProto.public_dependency)
168     pub public_dependency: ::std::vec::Vec<i32>,
169     ///  Indexes of the weak imported files in the dependency list.
170     ///  For Google-internal migration only. Do not use.
171     // @@protoc_insertion_point(field:google.protobuf.FileDescriptorProto.weak_dependency)
172     pub weak_dependency: ::std::vec::Vec<i32>,
173     ///  All top-level definitions in this file.
174     // @@protoc_insertion_point(field:google.protobuf.FileDescriptorProto.message_type)
175     pub message_type: ::std::vec::Vec<DescriptorProto>,
176     // @@protoc_insertion_point(field:google.protobuf.FileDescriptorProto.enum_type)
177     pub enum_type: ::std::vec::Vec<EnumDescriptorProto>,
178     // @@protoc_insertion_point(field:google.protobuf.FileDescriptorProto.service)
179     pub service: ::std::vec::Vec<ServiceDescriptorProto>,
180     // @@protoc_insertion_point(field:google.protobuf.FileDescriptorProto.extension)
181     pub extension: ::std::vec::Vec<FieldDescriptorProto>,
182     // @@protoc_insertion_point(field:google.protobuf.FileDescriptorProto.options)
183     pub options: crate::MessageField<FileOptions>,
184     ///  This field contains optional information about the original source code.
185     ///  You may safely remove this entire field without harming runtime
186     ///  functionality of the descriptors -- the information is needed only by
187     ///  development tools.
188     // @@protoc_insertion_point(field:google.protobuf.FileDescriptorProto.source_code_info)
189     pub source_code_info: crate::MessageField<SourceCodeInfo>,
190     ///  The syntax of the proto file.
191     ///  The supported values are "proto2" and "proto3".
192     // @@protoc_insertion_point(field:google.protobuf.FileDescriptorProto.syntax)
193     pub syntax: ::std::option::Option<::std::string::String>,
194     // special fields
195     // @@protoc_insertion_point(special_field:google.protobuf.FileDescriptorProto.special_fields)
196     pub special_fields: crate::SpecialFields,
197 }
198 
199 impl<'a> ::std::default::Default for &'a FileDescriptorProto {
default() -> &'a FileDescriptorProto200     fn default() -> &'a FileDescriptorProto {
201         <FileDescriptorProto as crate::Message>::default_instance()
202     }
203 }
204 
205 impl FileDescriptorProto {
new() -> FileDescriptorProto206     pub fn new() -> FileDescriptorProto {
207         ::std::default::Default::default()
208     }
209 
210     // optional string name = 1;
211 
name(&self) -> &str212     pub fn name(&self) -> &str {
213         match self.name.as_ref() {
214             Some(v) => v,
215             None => "",
216         }
217     }
218 
clear_name(&mut self)219     pub fn clear_name(&mut self) {
220         self.name = ::std::option::Option::None;
221     }
222 
has_name(&self) -> bool223     pub fn has_name(&self) -> bool {
224         self.name.is_some()
225     }
226 
227     // Param is passed by value, moved
set_name(&mut self, v: ::std::string::String)228     pub fn set_name(&mut self, v: ::std::string::String) {
229         self.name = ::std::option::Option::Some(v);
230     }
231 
232     // Mutable pointer to the field.
233     // If field is not initialized, it is initialized with default value first.
mut_name(&mut self) -> &mut ::std::string::String234     pub fn mut_name(&mut self) -> &mut ::std::string::String {
235         if self.name.is_none() {
236             self.name = ::std::option::Option::Some(::std::string::String::new());
237         }
238         self.name.as_mut().unwrap()
239     }
240 
241     // Take field
take_name(&mut self) -> ::std::string::String242     pub fn take_name(&mut self) -> ::std::string::String {
243         self.name.take().unwrap_or_else(|| ::std::string::String::new())
244     }
245 
246     // optional string package = 2;
247 
package(&self) -> &str248     pub fn package(&self) -> &str {
249         match self.package.as_ref() {
250             Some(v) => v,
251             None => "",
252         }
253     }
254 
clear_package(&mut self)255     pub fn clear_package(&mut self) {
256         self.package = ::std::option::Option::None;
257     }
258 
has_package(&self) -> bool259     pub fn has_package(&self) -> bool {
260         self.package.is_some()
261     }
262 
263     // Param is passed by value, moved
set_package(&mut self, v: ::std::string::String)264     pub fn set_package(&mut self, v: ::std::string::String) {
265         self.package = ::std::option::Option::Some(v);
266     }
267 
268     // Mutable pointer to the field.
269     // If field is not initialized, it is initialized with default value first.
mut_package(&mut self) -> &mut ::std::string::String270     pub fn mut_package(&mut self) -> &mut ::std::string::String {
271         if self.package.is_none() {
272             self.package = ::std::option::Option::Some(::std::string::String::new());
273         }
274         self.package.as_mut().unwrap()
275     }
276 
277     // Take field
take_package(&mut self) -> ::std::string::String278     pub fn take_package(&mut self) -> ::std::string::String {
279         self.package.take().unwrap_or_else(|| ::std::string::String::new())
280     }
281 
282     // optional string syntax = 12;
283 
syntax(&self) -> &str284     pub fn syntax(&self) -> &str {
285         match self.syntax.as_ref() {
286             Some(v) => v,
287             None => "",
288         }
289     }
290 
clear_syntax(&mut self)291     pub fn clear_syntax(&mut self) {
292         self.syntax = ::std::option::Option::None;
293     }
294 
has_syntax(&self) -> bool295     pub fn has_syntax(&self) -> bool {
296         self.syntax.is_some()
297     }
298 
299     // Param is passed by value, moved
set_syntax(&mut self, v: ::std::string::String)300     pub fn set_syntax(&mut self, v: ::std::string::String) {
301         self.syntax = ::std::option::Option::Some(v);
302     }
303 
304     // Mutable pointer to the field.
305     // If field is not initialized, it is initialized with default value first.
mut_syntax(&mut self) -> &mut ::std::string::String306     pub fn mut_syntax(&mut self) -> &mut ::std::string::String {
307         if self.syntax.is_none() {
308             self.syntax = ::std::option::Option::Some(::std::string::String::new());
309         }
310         self.syntax.as_mut().unwrap()
311     }
312 
313     // Take field
take_syntax(&mut self) -> ::std::string::String314     pub fn take_syntax(&mut self) -> ::std::string::String {
315         self.syntax.take().unwrap_or_else(|| ::std::string::String::new())
316     }
317 
generated_message_descriptor_data() -> crate::reflect::GeneratedMessageDescriptorData318     fn generated_message_descriptor_data() -> crate::reflect::GeneratedMessageDescriptorData {
319         let mut fields = ::std::vec::Vec::with_capacity(12);
320         let mut oneofs = ::std::vec::Vec::with_capacity(0);
321         fields.push(crate::reflect::rt::v2::make_option_accessor::<_, _>(
322             "name",
323             |m: &FileDescriptorProto| { &m.name },
324             |m: &mut FileDescriptorProto| { &mut m.name },
325         ));
326         fields.push(crate::reflect::rt::v2::make_option_accessor::<_, _>(
327             "package",
328             |m: &FileDescriptorProto| { &m.package },
329             |m: &mut FileDescriptorProto| { &mut m.package },
330         ));
331         fields.push(crate::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
332             "dependency",
333             |m: &FileDescriptorProto| { &m.dependency },
334             |m: &mut FileDescriptorProto| { &mut m.dependency },
335         ));
336         fields.push(crate::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
337             "public_dependency",
338             |m: &FileDescriptorProto| { &m.public_dependency },
339             |m: &mut FileDescriptorProto| { &mut m.public_dependency },
340         ));
341         fields.push(crate::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
342             "weak_dependency",
343             |m: &FileDescriptorProto| { &m.weak_dependency },
344             |m: &mut FileDescriptorProto| { &mut m.weak_dependency },
345         ));
346         fields.push(crate::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
347             "message_type",
348             |m: &FileDescriptorProto| { &m.message_type },
349             |m: &mut FileDescriptorProto| { &mut m.message_type },
350         ));
351         fields.push(crate::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
352             "enum_type",
353             |m: &FileDescriptorProto| { &m.enum_type },
354             |m: &mut FileDescriptorProto| { &mut m.enum_type },
355         ));
356         fields.push(crate::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
357             "service",
358             |m: &FileDescriptorProto| { &m.service },
359             |m: &mut FileDescriptorProto| { &mut m.service },
360         ));
361         fields.push(crate::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
362             "extension",
363             |m: &FileDescriptorProto| { &m.extension },
364             |m: &mut FileDescriptorProto| { &mut m.extension },
365         ));
366         fields.push(crate::reflect::rt::v2::make_message_field_accessor::<_, FileOptions>(
367             "options",
368             |m: &FileDescriptorProto| { &m.options },
369             |m: &mut FileDescriptorProto| { &mut m.options },
370         ));
371         fields.push(crate::reflect::rt::v2::make_message_field_accessor::<_, SourceCodeInfo>(
372             "source_code_info",
373             |m: &FileDescriptorProto| { &m.source_code_info },
374             |m: &mut FileDescriptorProto| { &mut m.source_code_info },
375         ));
376         fields.push(crate::reflect::rt::v2::make_option_accessor::<_, _>(
377             "syntax",
378             |m: &FileDescriptorProto| { &m.syntax },
379             |m: &mut FileDescriptorProto| { &mut m.syntax },
380         ));
381         crate::reflect::GeneratedMessageDescriptorData::new_2::<FileDescriptorProto>(
382             "FileDescriptorProto",
383             fields,
384             oneofs,
385         )
386     }
387 }
388 
389 impl crate::Message for FileDescriptorProto {
390     const NAME: &'static str = "FileDescriptorProto";
391 
is_initialized(&self) -> bool392     fn is_initialized(&self) -> bool {
393         for v in &self.message_type {
394             if !v.is_initialized() {
395                 return false;
396             }
397         };
398         for v in &self.enum_type {
399             if !v.is_initialized() {
400                 return false;
401             }
402         };
403         for v in &self.service {
404             if !v.is_initialized() {
405                 return false;
406             }
407         };
408         for v in &self.extension {
409             if !v.is_initialized() {
410                 return false;
411             }
412         };
413         for v in &self.options {
414             if !v.is_initialized() {
415                 return false;
416             }
417         };
418         for v in &self.source_code_info {
419             if !v.is_initialized() {
420                 return false;
421             }
422         };
423         true
424     }
425 
merge_from(&mut self, is: &mut crate::CodedInputStream<'_>) -> crate::Result<()>426     fn merge_from(&mut self, is: &mut crate::CodedInputStream<'_>) -> crate::Result<()> {
427         while let Some(tag) = is.read_raw_tag_or_eof()? {
428             match tag {
429                 10 => {
430                     self.name = ::std::option::Option::Some(is.read_string()?);
431                 },
432                 18 => {
433                     self.package = ::std::option::Option::Some(is.read_string()?);
434                 },
435                 26 => {
436                     self.dependency.push(is.read_string()?);
437                 },
438                 82 => {
439                     is.read_repeated_packed_int32_into(&mut self.public_dependency)?;
440                 },
441                 80 => {
442                     self.public_dependency.push(is.read_int32()?);
443                 },
444                 90 => {
445                     is.read_repeated_packed_int32_into(&mut self.weak_dependency)?;
446                 },
447                 88 => {
448                     self.weak_dependency.push(is.read_int32()?);
449                 },
450                 34 => {
451                     self.message_type.push(is.read_message()?);
452                 },
453                 42 => {
454                     self.enum_type.push(is.read_message()?);
455                 },
456                 50 => {
457                     self.service.push(is.read_message()?);
458                 },
459                 58 => {
460                     self.extension.push(is.read_message()?);
461                 },
462                 66 => {
463                     crate::rt::read_singular_message_into_field(is, &mut self.options)?;
464                 },
465                 74 => {
466                     crate::rt::read_singular_message_into_field(is, &mut self.source_code_info)?;
467                 },
468                 98 => {
469                     self.syntax = ::std::option::Option::Some(is.read_string()?);
470                 },
471                 tag => {
472                     crate::rt::read_unknown_or_skip_group(tag, is, self.special_fields.mut_unknown_fields())?;
473                 },
474             };
475         }
476         ::std::result::Result::Ok(())
477     }
478 
479     // Compute sizes of nested messages
480     #[allow(unused_variables)]
compute_size(&self) -> u64481     fn compute_size(&self) -> u64 {
482         let mut my_size = 0;
483         if let Some(v) = self.name.as_ref() {
484             my_size += crate::rt::string_size(1, &v);
485         }
486         if let Some(v) = self.package.as_ref() {
487             my_size += crate::rt::string_size(2, &v);
488         }
489         for value in &self.dependency {
490             my_size += crate::rt::string_size(3, &value);
491         };
492         for value in &self.public_dependency {
493             my_size += crate::rt::int32_size(10, *value);
494         };
495         for value in &self.weak_dependency {
496             my_size += crate::rt::int32_size(11, *value);
497         };
498         for value in &self.message_type {
499             let len = value.compute_size();
500             my_size += 1 + crate::rt::compute_raw_varint64_size(len) + len;
501         };
502         for value in &self.enum_type {
503             let len = value.compute_size();
504             my_size += 1 + crate::rt::compute_raw_varint64_size(len) + len;
505         };
506         for value in &self.service {
507             let len = value.compute_size();
508             my_size += 1 + crate::rt::compute_raw_varint64_size(len) + len;
509         };
510         for value in &self.extension {
511             let len = value.compute_size();
512             my_size += 1 + crate::rt::compute_raw_varint64_size(len) + len;
513         };
514         if let Some(v) = self.options.as_ref() {
515             let len = v.compute_size();
516             my_size += 1 + crate::rt::compute_raw_varint64_size(len) + len;
517         }
518         if let Some(v) = self.source_code_info.as_ref() {
519             let len = v.compute_size();
520             my_size += 1 + crate::rt::compute_raw_varint64_size(len) + len;
521         }
522         if let Some(v) = self.syntax.as_ref() {
523             my_size += crate::rt::string_size(12, &v);
524         }
525         my_size += crate::rt::unknown_fields_size(self.special_fields.unknown_fields());
526         self.special_fields.cached_size().set(my_size as u32);
527         my_size
528     }
529 
write_to_with_cached_sizes(&self, os: &mut crate::CodedOutputStream<'_>) -> crate::Result<()>530     fn write_to_with_cached_sizes(&self, os: &mut crate::CodedOutputStream<'_>) -> crate::Result<()> {
531         if let Some(v) = self.name.as_ref() {
532             os.write_string(1, v)?;
533         }
534         if let Some(v) = self.package.as_ref() {
535             os.write_string(2, v)?;
536         }
537         for v in &self.dependency {
538             os.write_string(3, &v)?;
539         };
540         for v in &self.public_dependency {
541             os.write_int32(10, *v)?;
542         };
543         for v in &self.weak_dependency {
544             os.write_int32(11, *v)?;
545         };
546         for v in &self.message_type {
547             crate::rt::write_message_field_with_cached_size(4, v, os)?;
548         };
549         for v in &self.enum_type {
550             crate::rt::write_message_field_with_cached_size(5, v, os)?;
551         };
552         for v in &self.service {
553             crate::rt::write_message_field_with_cached_size(6, v, os)?;
554         };
555         for v in &self.extension {
556             crate::rt::write_message_field_with_cached_size(7, v, os)?;
557         };
558         if let Some(v) = self.options.as_ref() {
559             crate::rt::write_message_field_with_cached_size(8, v, os)?;
560         }
561         if let Some(v) = self.source_code_info.as_ref() {
562             crate::rt::write_message_field_with_cached_size(9, v, os)?;
563         }
564         if let Some(v) = self.syntax.as_ref() {
565             os.write_string(12, v)?;
566         }
567         os.write_unknown_fields(self.special_fields.unknown_fields())?;
568         ::std::result::Result::Ok(())
569     }
570 
special_fields(&self) -> &crate::SpecialFields571     fn special_fields(&self) -> &crate::SpecialFields {
572         &self.special_fields
573     }
574 
mut_special_fields(&mut self) -> &mut crate::SpecialFields575     fn mut_special_fields(&mut self) -> &mut crate::SpecialFields {
576         &mut self.special_fields
577     }
578 
new() -> FileDescriptorProto579     fn new() -> FileDescriptorProto {
580         FileDescriptorProto::new()
581     }
582 
clear(&mut self)583     fn clear(&mut self) {
584         self.name = ::std::option::Option::None;
585         self.package = ::std::option::Option::None;
586         self.dependency.clear();
587         self.public_dependency.clear();
588         self.weak_dependency.clear();
589         self.message_type.clear();
590         self.enum_type.clear();
591         self.service.clear();
592         self.extension.clear();
593         self.options.clear();
594         self.source_code_info.clear();
595         self.syntax = ::std::option::Option::None;
596         self.special_fields.clear();
597     }
598 
default_instance() -> &'static FileDescriptorProto599     fn default_instance() -> &'static FileDescriptorProto {
600         static instance: FileDescriptorProto = FileDescriptorProto {
601             name: ::std::option::Option::None,
602             package: ::std::option::Option::None,
603             dependency: ::std::vec::Vec::new(),
604             public_dependency: ::std::vec::Vec::new(),
605             weak_dependency: ::std::vec::Vec::new(),
606             message_type: ::std::vec::Vec::new(),
607             enum_type: ::std::vec::Vec::new(),
608             service: ::std::vec::Vec::new(),
609             extension: ::std::vec::Vec::new(),
610             options: crate::MessageField::none(),
611             source_code_info: crate::MessageField::none(),
612             syntax: ::std::option::Option::None,
613             special_fields: crate::SpecialFields::new(),
614         };
615         &instance
616     }
617 }
618 
619 impl crate::MessageFull for FileDescriptorProto {
descriptor() -> crate::reflect::MessageDescriptor620     fn descriptor() -> crate::reflect::MessageDescriptor {
621         static descriptor: crate::rt::Lazy<crate::reflect::MessageDescriptor> = crate::rt::Lazy::new();
622         descriptor.get(|| file_descriptor().message_by_package_relative_name("FileDescriptorProto").unwrap()).clone()
623     }
624 }
625 
626 impl ::std::fmt::Display for FileDescriptorProto {
fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result627     fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
628         crate::text_format::fmt(self, f)
629     }
630 }
631 
632 impl crate::reflect::ProtobufValue for FileDescriptorProto {
633     type RuntimeType = crate::reflect::rt::RuntimeTypeMessage<Self>;
634 }
635 
636 ///  Describes a message type.
637 #[derive(PartialEq,Clone,Default,Debug)]
638 // @@protoc_insertion_point(message:google.protobuf.DescriptorProto)
639 pub struct DescriptorProto {
640     // message fields
641     // @@protoc_insertion_point(field:google.protobuf.DescriptorProto.name)
642     pub name: ::std::option::Option<::std::string::String>,
643     // @@protoc_insertion_point(field:google.protobuf.DescriptorProto.field)
644     pub field: ::std::vec::Vec<FieldDescriptorProto>,
645     // @@protoc_insertion_point(field:google.protobuf.DescriptorProto.extension)
646     pub extension: ::std::vec::Vec<FieldDescriptorProto>,
647     // @@protoc_insertion_point(field:google.protobuf.DescriptorProto.nested_type)
648     pub nested_type: ::std::vec::Vec<DescriptorProto>,
649     // @@protoc_insertion_point(field:google.protobuf.DescriptorProto.enum_type)
650     pub enum_type: ::std::vec::Vec<EnumDescriptorProto>,
651     // @@protoc_insertion_point(field:google.protobuf.DescriptorProto.extension_range)
652     pub extension_range: ::std::vec::Vec<descriptor_proto::ExtensionRange>,
653     // @@protoc_insertion_point(field:google.protobuf.DescriptorProto.oneof_decl)
654     pub oneof_decl: ::std::vec::Vec<OneofDescriptorProto>,
655     // @@protoc_insertion_point(field:google.protobuf.DescriptorProto.options)
656     pub options: crate::MessageField<MessageOptions>,
657     // @@protoc_insertion_point(field:google.protobuf.DescriptorProto.reserved_range)
658     pub reserved_range: ::std::vec::Vec<descriptor_proto::ReservedRange>,
659     ///  Reserved field names, which may not be used by fields in the same message.
660     ///  A given name may only be reserved once.
661     // @@protoc_insertion_point(field:google.protobuf.DescriptorProto.reserved_name)
662     pub reserved_name: ::std::vec::Vec<::std::string::String>,
663     // special fields
664     // @@protoc_insertion_point(special_field:google.protobuf.DescriptorProto.special_fields)
665     pub special_fields: crate::SpecialFields,
666 }
667 
668 impl<'a> ::std::default::Default for &'a DescriptorProto {
default() -> &'a DescriptorProto669     fn default() -> &'a DescriptorProto {
670         <DescriptorProto as crate::Message>::default_instance()
671     }
672 }
673 
674 impl DescriptorProto {
new() -> DescriptorProto675     pub fn new() -> DescriptorProto {
676         ::std::default::Default::default()
677     }
678 
679     // optional string name = 1;
680 
name(&self) -> &str681     pub fn name(&self) -> &str {
682         match self.name.as_ref() {
683             Some(v) => v,
684             None => "",
685         }
686     }
687 
clear_name(&mut self)688     pub fn clear_name(&mut self) {
689         self.name = ::std::option::Option::None;
690     }
691 
has_name(&self) -> bool692     pub fn has_name(&self) -> bool {
693         self.name.is_some()
694     }
695 
696     // Param is passed by value, moved
set_name(&mut self, v: ::std::string::String)697     pub fn set_name(&mut self, v: ::std::string::String) {
698         self.name = ::std::option::Option::Some(v);
699     }
700 
701     // Mutable pointer to the field.
702     // If field is not initialized, it is initialized with default value first.
mut_name(&mut self) -> &mut ::std::string::String703     pub fn mut_name(&mut self) -> &mut ::std::string::String {
704         if self.name.is_none() {
705             self.name = ::std::option::Option::Some(::std::string::String::new());
706         }
707         self.name.as_mut().unwrap()
708     }
709 
710     // Take field
take_name(&mut self) -> ::std::string::String711     pub fn take_name(&mut self) -> ::std::string::String {
712         self.name.take().unwrap_or_else(|| ::std::string::String::new())
713     }
714 
generated_message_descriptor_data() -> crate::reflect::GeneratedMessageDescriptorData715     fn generated_message_descriptor_data() -> crate::reflect::GeneratedMessageDescriptorData {
716         let mut fields = ::std::vec::Vec::with_capacity(10);
717         let mut oneofs = ::std::vec::Vec::with_capacity(0);
718         fields.push(crate::reflect::rt::v2::make_option_accessor::<_, _>(
719             "name",
720             |m: &DescriptorProto| { &m.name },
721             |m: &mut DescriptorProto| { &mut m.name },
722         ));
723         fields.push(crate::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
724             "field",
725             |m: &DescriptorProto| { &m.field },
726             |m: &mut DescriptorProto| { &mut m.field },
727         ));
728         fields.push(crate::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
729             "extension",
730             |m: &DescriptorProto| { &m.extension },
731             |m: &mut DescriptorProto| { &mut m.extension },
732         ));
733         fields.push(crate::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
734             "nested_type",
735             |m: &DescriptorProto| { &m.nested_type },
736             |m: &mut DescriptorProto| { &mut m.nested_type },
737         ));
738         fields.push(crate::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
739             "enum_type",
740             |m: &DescriptorProto| { &m.enum_type },
741             |m: &mut DescriptorProto| { &mut m.enum_type },
742         ));
743         fields.push(crate::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
744             "extension_range",
745             |m: &DescriptorProto| { &m.extension_range },
746             |m: &mut DescriptorProto| { &mut m.extension_range },
747         ));
748         fields.push(crate::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
749             "oneof_decl",
750             |m: &DescriptorProto| { &m.oneof_decl },
751             |m: &mut DescriptorProto| { &mut m.oneof_decl },
752         ));
753         fields.push(crate::reflect::rt::v2::make_message_field_accessor::<_, MessageOptions>(
754             "options",
755             |m: &DescriptorProto| { &m.options },
756             |m: &mut DescriptorProto| { &mut m.options },
757         ));
758         fields.push(crate::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
759             "reserved_range",
760             |m: &DescriptorProto| { &m.reserved_range },
761             |m: &mut DescriptorProto| { &mut m.reserved_range },
762         ));
763         fields.push(crate::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
764             "reserved_name",
765             |m: &DescriptorProto| { &m.reserved_name },
766             |m: &mut DescriptorProto| { &mut m.reserved_name },
767         ));
768         crate::reflect::GeneratedMessageDescriptorData::new_2::<DescriptorProto>(
769             "DescriptorProto",
770             fields,
771             oneofs,
772         )
773     }
774 }
775 
776 impl crate::Message for DescriptorProto {
777     const NAME: &'static str = "DescriptorProto";
778 
is_initialized(&self) -> bool779     fn is_initialized(&self) -> bool {
780         for v in &self.field {
781             if !v.is_initialized() {
782                 return false;
783             }
784         };
785         for v in &self.extension {
786             if !v.is_initialized() {
787                 return false;
788             }
789         };
790         for v in &self.nested_type {
791             if !v.is_initialized() {
792                 return false;
793             }
794         };
795         for v in &self.enum_type {
796             if !v.is_initialized() {
797                 return false;
798             }
799         };
800         for v in &self.extension_range {
801             if !v.is_initialized() {
802                 return false;
803             }
804         };
805         for v in &self.oneof_decl {
806             if !v.is_initialized() {
807                 return false;
808             }
809         };
810         for v in &self.options {
811             if !v.is_initialized() {
812                 return false;
813             }
814         };
815         for v in &self.reserved_range {
816             if !v.is_initialized() {
817                 return false;
818             }
819         };
820         true
821     }
822 
merge_from(&mut self, is: &mut crate::CodedInputStream<'_>) -> crate::Result<()>823     fn merge_from(&mut self, is: &mut crate::CodedInputStream<'_>) -> crate::Result<()> {
824         while let Some(tag) = is.read_raw_tag_or_eof()? {
825             match tag {
826                 10 => {
827                     self.name = ::std::option::Option::Some(is.read_string()?);
828                 },
829                 18 => {
830                     self.field.push(is.read_message()?);
831                 },
832                 50 => {
833                     self.extension.push(is.read_message()?);
834                 },
835                 26 => {
836                     self.nested_type.push(is.read_message()?);
837                 },
838                 34 => {
839                     self.enum_type.push(is.read_message()?);
840                 },
841                 42 => {
842                     self.extension_range.push(is.read_message()?);
843                 },
844                 66 => {
845                     self.oneof_decl.push(is.read_message()?);
846                 },
847                 58 => {
848                     crate::rt::read_singular_message_into_field(is, &mut self.options)?;
849                 },
850                 74 => {
851                     self.reserved_range.push(is.read_message()?);
852                 },
853                 82 => {
854                     self.reserved_name.push(is.read_string()?);
855                 },
856                 tag => {
857                     crate::rt::read_unknown_or_skip_group(tag, is, self.special_fields.mut_unknown_fields())?;
858                 },
859             };
860         }
861         ::std::result::Result::Ok(())
862     }
863 
864     // Compute sizes of nested messages
865     #[allow(unused_variables)]
compute_size(&self) -> u64866     fn compute_size(&self) -> u64 {
867         let mut my_size = 0;
868         if let Some(v) = self.name.as_ref() {
869             my_size += crate::rt::string_size(1, &v);
870         }
871         for value in &self.field {
872             let len = value.compute_size();
873             my_size += 1 + crate::rt::compute_raw_varint64_size(len) + len;
874         };
875         for value in &self.extension {
876             let len = value.compute_size();
877             my_size += 1 + crate::rt::compute_raw_varint64_size(len) + len;
878         };
879         for value in &self.nested_type {
880             let len = value.compute_size();
881             my_size += 1 + crate::rt::compute_raw_varint64_size(len) + len;
882         };
883         for value in &self.enum_type {
884             let len = value.compute_size();
885             my_size += 1 + crate::rt::compute_raw_varint64_size(len) + len;
886         };
887         for value in &self.extension_range {
888             let len = value.compute_size();
889             my_size += 1 + crate::rt::compute_raw_varint64_size(len) + len;
890         };
891         for value in &self.oneof_decl {
892             let len = value.compute_size();
893             my_size += 1 + crate::rt::compute_raw_varint64_size(len) + len;
894         };
895         if let Some(v) = self.options.as_ref() {
896             let len = v.compute_size();
897             my_size += 1 + crate::rt::compute_raw_varint64_size(len) + len;
898         }
899         for value in &self.reserved_range {
900             let len = value.compute_size();
901             my_size += 1 + crate::rt::compute_raw_varint64_size(len) + len;
902         };
903         for value in &self.reserved_name {
904             my_size += crate::rt::string_size(10, &value);
905         };
906         my_size += crate::rt::unknown_fields_size(self.special_fields.unknown_fields());
907         self.special_fields.cached_size().set(my_size as u32);
908         my_size
909     }
910 
write_to_with_cached_sizes(&self, os: &mut crate::CodedOutputStream<'_>) -> crate::Result<()>911     fn write_to_with_cached_sizes(&self, os: &mut crate::CodedOutputStream<'_>) -> crate::Result<()> {
912         if let Some(v) = self.name.as_ref() {
913             os.write_string(1, v)?;
914         }
915         for v in &self.field {
916             crate::rt::write_message_field_with_cached_size(2, v, os)?;
917         };
918         for v in &self.extension {
919             crate::rt::write_message_field_with_cached_size(6, v, os)?;
920         };
921         for v in &self.nested_type {
922             crate::rt::write_message_field_with_cached_size(3, v, os)?;
923         };
924         for v in &self.enum_type {
925             crate::rt::write_message_field_with_cached_size(4, v, os)?;
926         };
927         for v in &self.extension_range {
928             crate::rt::write_message_field_with_cached_size(5, v, os)?;
929         };
930         for v in &self.oneof_decl {
931             crate::rt::write_message_field_with_cached_size(8, v, os)?;
932         };
933         if let Some(v) = self.options.as_ref() {
934             crate::rt::write_message_field_with_cached_size(7, v, os)?;
935         }
936         for v in &self.reserved_range {
937             crate::rt::write_message_field_with_cached_size(9, v, os)?;
938         };
939         for v in &self.reserved_name {
940             os.write_string(10, &v)?;
941         };
942         os.write_unknown_fields(self.special_fields.unknown_fields())?;
943         ::std::result::Result::Ok(())
944     }
945 
special_fields(&self) -> &crate::SpecialFields946     fn special_fields(&self) -> &crate::SpecialFields {
947         &self.special_fields
948     }
949 
mut_special_fields(&mut self) -> &mut crate::SpecialFields950     fn mut_special_fields(&mut self) -> &mut crate::SpecialFields {
951         &mut self.special_fields
952     }
953 
new() -> DescriptorProto954     fn new() -> DescriptorProto {
955         DescriptorProto::new()
956     }
957 
clear(&mut self)958     fn clear(&mut self) {
959         self.name = ::std::option::Option::None;
960         self.field.clear();
961         self.extension.clear();
962         self.nested_type.clear();
963         self.enum_type.clear();
964         self.extension_range.clear();
965         self.oneof_decl.clear();
966         self.options.clear();
967         self.reserved_range.clear();
968         self.reserved_name.clear();
969         self.special_fields.clear();
970     }
971 
default_instance() -> &'static DescriptorProto972     fn default_instance() -> &'static DescriptorProto {
973         static instance: DescriptorProto = DescriptorProto {
974             name: ::std::option::Option::None,
975             field: ::std::vec::Vec::new(),
976             extension: ::std::vec::Vec::new(),
977             nested_type: ::std::vec::Vec::new(),
978             enum_type: ::std::vec::Vec::new(),
979             extension_range: ::std::vec::Vec::new(),
980             oneof_decl: ::std::vec::Vec::new(),
981             options: crate::MessageField::none(),
982             reserved_range: ::std::vec::Vec::new(),
983             reserved_name: ::std::vec::Vec::new(),
984             special_fields: crate::SpecialFields::new(),
985         };
986         &instance
987     }
988 }
989 
990 impl crate::MessageFull for DescriptorProto {
descriptor() -> crate::reflect::MessageDescriptor991     fn descriptor() -> crate::reflect::MessageDescriptor {
992         static descriptor: crate::rt::Lazy<crate::reflect::MessageDescriptor> = crate::rt::Lazy::new();
993         descriptor.get(|| file_descriptor().message_by_package_relative_name("DescriptorProto").unwrap()).clone()
994     }
995 }
996 
997 impl ::std::fmt::Display for DescriptorProto {
fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result998     fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
999         crate::text_format::fmt(self, f)
1000     }
1001 }
1002 
1003 impl crate::reflect::ProtobufValue for DescriptorProto {
1004     type RuntimeType = crate::reflect::rt::RuntimeTypeMessage<Self>;
1005 }
1006 
1007 /// Nested message and enums of message `DescriptorProto`
1008 pub mod descriptor_proto {
1009     #[derive(PartialEq,Clone,Default,Debug)]
1010     // @@protoc_insertion_point(message:google.protobuf.DescriptorProto.ExtensionRange)
1011     pub struct ExtensionRange {
1012         // message fields
1013         // @@protoc_insertion_point(field:google.protobuf.DescriptorProto.ExtensionRange.start)
1014         pub start: ::std::option::Option<i32>,
1015         // @@protoc_insertion_point(field:google.protobuf.DescriptorProto.ExtensionRange.end)
1016         pub end: ::std::option::Option<i32>,
1017         // @@protoc_insertion_point(field:google.protobuf.DescriptorProto.ExtensionRange.options)
1018         pub options: crate::MessageField<super::ExtensionRangeOptions>,
1019         // special fields
1020         // @@protoc_insertion_point(special_field:google.protobuf.DescriptorProto.ExtensionRange.special_fields)
1021         pub special_fields: crate::SpecialFields,
1022     }
1023 
1024     impl<'a> ::std::default::Default for &'a ExtensionRange {
default() -> &'a ExtensionRange1025         fn default() -> &'a ExtensionRange {
1026             <ExtensionRange as crate::Message>::default_instance()
1027         }
1028     }
1029 
1030     impl ExtensionRange {
new() -> ExtensionRange1031         pub fn new() -> ExtensionRange {
1032             ::std::default::Default::default()
1033         }
1034 
1035         // optional int32 start = 1;
1036 
start(&self) -> i321037         pub fn start(&self) -> i32 {
1038             self.start.unwrap_or(0)
1039         }
1040 
clear_start(&mut self)1041         pub fn clear_start(&mut self) {
1042             self.start = ::std::option::Option::None;
1043         }
1044 
has_start(&self) -> bool1045         pub fn has_start(&self) -> bool {
1046             self.start.is_some()
1047         }
1048 
1049         // Param is passed by value, moved
set_start(&mut self, v: i32)1050         pub fn set_start(&mut self, v: i32) {
1051             self.start = ::std::option::Option::Some(v);
1052         }
1053 
1054         // optional int32 end = 2;
1055 
end(&self) -> i321056         pub fn end(&self) -> i32 {
1057             self.end.unwrap_or(0)
1058         }
1059 
clear_end(&mut self)1060         pub fn clear_end(&mut self) {
1061             self.end = ::std::option::Option::None;
1062         }
1063 
has_end(&self) -> bool1064         pub fn has_end(&self) -> bool {
1065             self.end.is_some()
1066         }
1067 
1068         // Param is passed by value, moved
set_end(&mut self, v: i32)1069         pub fn set_end(&mut self, v: i32) {
1070             self.end = ::std::option::Option::Some(v);
1071         }
1072 
generated_message_descriptor_data() -> crate::reflect::GeneratedMessageDescriptorData1073         pub(in super) fn generated_message_descriptor_data() -> crate::reflect::GeneratedMessageDescriptorData {
1074             let mut fields = ::std::vec::Vec::with_capacity(3);
1075             let mut oneofs = ::std::vec::Vec::with_capacity(0);
1076             fields.push(crate::reflect::rt::v2::make_option_accessor::<_, _>(
1077                 "start",
1078                 |m: &ExtensionRange| { &m.start },
1079                 |m: &mut ExtensionRange| { &mut m.start },
1080             ));
1081             fields.push(crate::reflect::rt::v2::make_option_accessor::<_, _>(
1082                 "end",
1083                 |m: &ExtensionRange| { &m.end },
1084                 |m: &mut ExtensionRange| { &mut m.end },
1085             ));
1086             fields.push(crate::reflect::rt::v2::make_message_field_accessor::<_, super::ExtensionRangeOptions>(
1087                 "options",
1088                 |m: &ExtensionRange| { &m.options },
1089                 |m: &mut ExtensionRange| { &mut m.options },
1090             ));
1091             crate::reflect::GeneratedMessageDescriptorData::new_2::<ExtensionRange>(
1092                 "DescriptorProto.ExtensionRange",
1093                 fields,
1094                 oneofs,
1095             )
1096         }
1097     }
1098 
1099     impl crate::Message for ExtensionRange {
1100         const NAME: &'static str = "ExtensionRange";
1101 
is_initialized(&self) -> bool1102         fn is_initialized(&self) -> bool {
1103             for v in &self.options {
1104                 if !v.is_initialized() {
1105                     return false;
1106                 }
1107             };
1108             true
1109         }
1110 
merge_from(&mut self, is: &mut crate::CodedInputStream<'_>) -> crate::Result<()>1111         fn merge_from(&mut self, is: &mut crate::CodedInputStream<'_>) -> crate::Result<()> {
1112             while let Some(tag) = is.read_raw_tag_or_eof()? {
1113                 match tag {
1114                     8 => {
1115                         self.start = ::std::option::Option::Some(is.read_int32()?);
1116                     },
1117                     16 => {
1118                         self.end = ::std::option::Option::Some(is.read_int32()?);
1119                     },
1120                     26 => {
1121                         crate::rt::read_singular_message_into_field(is, &mut self.options)?;
1122                     },
1123                     tag => {
1124                         crate::rt::read_unknown_or_skip_group(tag, is, self.special_fields.mut_unknown_fields())?;
1125                     },
1126                 };
1127             }
1128             ::std::result::Result::Ok(())
1129         }
1130 
1131         // Compute sizes of nested messages
1132         #[allow(unused_variables)]
compute_size(&self) -> u641133         fn compute_size(&self) -> u64 {
1134             let mut my_size = 0;
1135             if let Some(v) = self.start {
1136                 my_size += crate::rt::int32_size(1, v);
1137             }
1138             if let Some(v) = self.end {
1139                 my_size += crate::rt::int32_size(2, v);
1140             }
1141             if let Some(v) = self.options.as_ref() {
1142                 let len = v.compute_size();
1143                 my_size += 1 + crate::rt::compute_raw_varint64_size(len) + len;
1144             }
1145             my_size += crate::rt::unknown_fields_size(self.special_fields.unknown_fields());
1146             self.special_fields.cached_size().set(my_size as u32);
1147             my_size
1148         }
1149 
write_to_with_cached_sizes(&self, os: &mut crate::CodedOutputStream<'_>) -> crate::Result<()>1150         fn write_to_with_cached_sizes(&self, os: &mut crate::CodedOutputStream<'_>) -> crate::Result<()> {
1151             if let Some(v) = self.start {
1152                 os.write_int32(1, v)?;
1153             }
1154             if let Some(v) = self.end {
1155                 os.write_int32(2, v)?;
1156             }
1157             if let Some(v) = self.options.as_ref() {
1158                 crate::rt::write_message_field_with_cached_size(3, v, os)?;
1159             }
1160             os.write_unknown_fields(self.special_fields.unknown_fields())?;
1161             ::std::result::Result::Ok(())
1162         }
1163 
special_fields(&self) -> &crate::SpecialFields1164         fn special_fields(&self) -> &crate::SpecialFields {
1165             &self.special_fields
1166         }
1167 
mut_special_fields(&mut self) -> &mut crate::SpecialFields1168         fn mut_special_fields(&mut self) -> &mut crate::SpecialFields {
1169             &mut self.special_fields
1170         }
1171 
new() -> ExtensionRange1172         fn new() -> ExtensionRange {
1173             ExtensionRange::new()
1174         }
1175 
clear(&mut self)1176         fn clear(&mut self) {
1177             self.start = ::std::option::Option::None;
1178             self.end = ::std::option::Option::None;
1179             self.options.clear();
1180             self.special_fields.clear();
1181         }
1182 
default_instance() -> &'static ExtensionRange1183         fn default_instance() -> &'static ExtensionRange {
1184             static instance: ExtensionRange = ExtensionRange {
1185                 start: ::std::option::Option::None,
1186                 end: ::std::option::Option::None,
1187                 options: crate::MessageField::none(),
1188                 special_fields: crate::SpecialFields::new(),
1189             };
1190             &instance
1191         }
1192     }
1193 
1194     impl crate::MessageFull for ExtensionRange {
descriptor() -> crate::reflect::MessageDescriptor1195         fn descriptor() -> crate::reflect::MessageDescriptor {
1196             static descriptor: crate::rt::Lazy<crate::reflect::MessageDescriptor> = crate::rt::Lazy::new();
1197             descriptor.get(|| super::file_descriptor().message_by_package_relative_name("DescriptorProto.ExtensionRange").unwrap()).clone()
1198         }
1199     }
1200 
1201     impl ::std::fmt::Display for ExtensionRange {
fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result1202         fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1203             crate::text_format::fmt(self, f)
1204         }
1205     }
1206 
1207     impl crate::reflect::ProtobufValue for ExtensionRange {
1208         type RuntimeType = crate::reflect::rt::RuntimeTypeMessage<Self>;
1209     }
1210 
1211     ///  Range of reserved tag numbers. Reserved tag numbers may not be used by
1212     ///  fields or extension ranges in the same message. Reserved ranges may
1213     ///  not overlap.
1214     #[derive(PartialEq,Clone,Default,Debug)]
1215     // @@protoc_insertion_point(message:google.protobuf.DescriptorProto.ReservedRange)
1216     pub struct ReservedRange {
1217         // message fields
1218         // @@protoc_insertion_point(field:google.protobuf.DescriptorProto.ReservedRange.start)
1219         pub start: ::std::option::Option<i32>,
1220         // @@protoc_insertion_point(field:google.protobuf.DescriptorProto.ReservedRange.end)
1221         pub end: ::std::option::Option<i32>,
1222         // special fields
1223         // @@protoc_insertion_point(special_field:google.protobuf.DescriptorProto.ReservedRange.special_fields)
1224         pub special_fields: crate::SpecialFields,
1225     }
1226 
1227     impl<'a> ::std::default::Default for &'a ReservedRange {
default() -> &'a ReservedRange1228         fn default() -> &'a ReservedRange {
1229             <ReservedRange as crate::Message>::default_instance()
1230         }
1231     }
1232 
1233     impl ReservedRange {
new() -> ReservedRange1234         pub fn new() -> ReservedRange {
1235             ::std::default::Default::default()
1236         }
1237 
1238         // optional int32 start = 1;
1239 
start(&self) -> i321240         pub fn start(&self) -> i32 {
1241             self.start.unwrap_or(0)
1242         }
1243 
clear_start(&mut self)1244         pub fn clear_start(&mut self) {
1245             self.start = ::std::option::Option::None;
1246         }
1247 
has_start(&self) -> bool1248         pub fn has_start(&self) -> bool {
1249             self.start.is_some()
1250         }
1251 
1252         // Param is passed by value, moved
set_start(&mut self, v: i32)1253         pub fn set_start(&mut self, v: i32) {
1254             self.start = ::std::option::Option::Some(v);
1255         }
1256 
1257         // optional int32 end = 2;
1258 
end(&self) -> i321259         pub fn end(&self) -> i32 {
1260             self.end.unwrap_or(0)
1261         }
1262 
clear_end(&mut self)1263         pub fn clear_end(&mut self) {
1264             self.end = ::std::option::Option::None;
1265         }
1266 
has_end(&self) -> bool1267         pub fn has_end(&self) -> bool {
1268             self.end.is_some()
1269         }
1270 
1271         // Param is passed by value, moved
set_end(&mut self, v: i32)1272         pub fn set_end(&mut self, v: i32) {
1273             self.end = ::std::option::Option::Some(v);
1274         }
1275 
generated_message_descriptor_data() -> crate::reflect::GeneratedMessageDescriptorData1276         pub(in super) fn generated_message_descriptor_data() -> crate::reflect::GeneratedMessageDescriptorData {
1277             let mut fields = ::std::vec::Vec::with_capacity(2);
1278             let mut oneofs = ::std::vec::Vec::with_capacity(0);
1279             fields.push(crate::reflect::rt::v2::make_option_accessor::<_, _>(
1280                 "start",
1281                 |m: &ReservedRange| { &m.start },
1282                 |m: &mut ReservedRange| { &mut m.start },
1283             ));
1284             fields.push(crate::reflect::rt::v2::make_option_accessor::<_, _>(
1285                 "end",
1286                 |m: &ReservedRange| { &m.end },
1287                 |m: &mut ReservedRange| { &mut m.end },
1288             ));
1289             crate::reflect::GeneratedMessageDescriptorData::new_2::<ReservedRange>(
1290                 "DescriptorProto.ReservedRange",
1291                 fields,
1292                 oneofs,
1293             )
1294         }
1295     }
1296 
1297     impl crate::Message for ReservedRange {
1298         const NAME: &'static str = "ReservedRange";
1299 
is_initialized(&self) -> bool1300         fn is_initialized(&self) -> bool {
1301             true
1302         }
1303 
merge_from(&mut self, is: &mut crate::CodedInputStream<'_>) -> crate::Result<()>1304         fn merge_from(&mut self, is: &mut crate::CodedInputStream<'_>) -> crate::Result<()> {
1305             while let Some(tag) = is.read_raw_tag_or_eof()? {
1306                 match tag {
1307                     8 => {
1308                         self.start = ::std::option::Option::Some(is.read_int32()?);
1309                     },
1310                     16 => {
1311                         self.end = ::std::option::Option::Some(is.read_int32()?);
1312                     },
1313                     tag => {
1314                         crate::rt::read_unknown_or_skip_group(tag, is, self.special_fields.mut_unknown_fields())?;
1315                     },
1316                 };
1317             }
1318             ::std::result::Result::Ok(())
1319         }
1320 
1321         // Compute sizes of nested messages
1322         #[allow(unused_variables)]
compute_size(&self) -> u641323         fn compute_size(&self) -> u64 {
1324             let mut my_size = 0;
1325             if let Some(v) = self.start {
1326                 my_size += crate::rt::int32_size(1, v);
1327             }
1328             if let Some(v) = self.end {
1329                 my_size += crate::rt::int32_size(2, v);
1330             }
1331             my_size += crate::rt::unknown_fields_size(self.special_fields.unknown_fields());
1332             self.special_fields.cached_size().set(my_size as u32);
1333             my_size
1334         }
1335 
write_to_with_cached_sizes(&self, os: &mut crate::CodedOutputStream<'_>) -> crate::Result<()>1336         fn write_to_with_cached_sizes(&self, os: &mut crate::CodedOutputStream<'_>) -> crate::Result<()> {
1337             if let Some(v) = self.start {
1338                 os.write_int32(1, v)?;
1339             }
1340             if let Some(v) = self.end {
1341                 os.write_int32(2, v)?;
1342             }
1343             os.write_unknown_fields(self.special_fields.unknown_fields())?;
1344             ::std::result::Result::Ok(())
1345         }
1346 
special_fields(&self) -> &crate::SpecialFields1347         fn special_fields(&self) -> &crate::SpecialFields {
1348             &self.special_fields
1349         }
1350 
mut_special_fields(&mut self) -> &mut crate::SpecialFields1351         fn mut_special_fields(&mut self) -> &mut crate::SpecialFields {
1352             &mut self.special_fields
1353         }
1354 
new() -> ReservedRange1355         fn new() -> ReservedRange {
1356             ReservedRange::new()
1357         }
1358 
clear(&mut self)1359         fn clear(&mut self) {
1360             self.start = ::std::option::Option::None;
1361             self.end = ::std::option::Option::None;
1362             self.special_fields.clear();
1363         }
1364 
default_instance() -> &'static ReservedRange1365         fn default_instance() -> &'static ReservedRange {
1366             static instance: ReservedRange = ReservedRange {
1367                 start: ::std::option::Option::None,
1368                 end: ::std::option::Option::None,
1369                 special_fields: crate::SpecialFields::new(),
1370             };
1371             &instance
1372         }
1373     }
1374 
1375     impl crate::MessageFull for ReservedRange {
descriptor() -> crate::reflect::MessageDescriptor1376         fn descriptor() -> crate::reflect::MessageDescriptor {
1377             static descriptor: crate::rt::Lazy<crate::reflect::MessageDescriptor> = crate::rt::Lazy::new();
1378             descriptor.get(|| super::file_descriptor().message_by_package_relative_name("DescriptorProto.ReservedRange").unwrap()).clone()
1379         }
1380     }
1381 
1382     impl ::std::fmt::Display for ReservedRange {
fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result1383         fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1384             crate::text_format::fmt(self, f)
1385         }
1386     }
1387 
1388     impl crate::reflect::ProtobufValue for ReservedRange {
1389         type RuntimeType = crate::reflect::rt::RuntimeTypeMessage<Self>;
1390     }
1391 }
1392 
1393 #[derive(PartialEq,Clone,Default,Debug)]
1394 // @@protoc_insertion_point(message:google.protobuf.ExtensionRangeOptions)
1395 pub struct ExtensionRangeOptions {
1396     // message fields
1397     ///  The parser stores options it doesn't recognize here. See above.
1398     // @@protoc_insertion_point(field:google.protobuf.ExtensionRangeOptions.uninterpreted_option)
1399     pub uninterpreted_option: ::std::vec::Vec<UninterpretedOption>,
1400     // special fields
1401     // @@protoc_insertion_point(special_field:google.protobuf.ExtensionRangeOptions.special_fields)
1402     pub special_fields: crate::SpecialFields,
1403 }
1404 
1405 impl<'a> ::std::default::Default for &'a ExtensionRangeOptions {
default() -> &'a ExtensionRangeOptions1406     fn default() -> &'a ExtensionRangeOptions {
1407         <ExtensionRangeOptions as crate::Message>::default_instance()
1408     }
1409 }
1410 
1411 impl ExtensionRangeOptions {
new() -> ExtensionRangeOptions1412     pub fn new() -> ExtensionRangeOptions {
1413         ::std::default::Default::default()
1414     }
1415 
generated_message_descriptor_data() -> crate::reflect::GeneratedMessageDescriptorData1416     fn generated_message_descriptor_data() -> crate::reflect::GeneratedMessageDescriptorData {
1417         let mut fields = ::std::vec::Vec::with_capacity(1);
1418         let mut oneofs = ::std::vec::Vec::with_capacity(0);
1419         fields.push(crate::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
1420             "uninterpreted_option",
1421             |m: &ExtensionRangeOptions| { &m.uninterpreted_option },
1422             |m: &mut ExtensionRangeOptions| { &mut m.uninterpreted_option },
1423         ));
1424         crate::reflect::GeneratedMessageDescriptorData::new_2::<ExtensionRangeOptions>(
1425             "ExtensionRangeOptions",
1426             fields,
1427             oneofs,
1428         )
1429     }
1430 }
1431 
1432 impl crate::Message for ExtensionRangeOptions {
1433     const NAME: &'static str = "ExtensionRangeOptions";
1434 
is_initialized(&self) -> bool1435     fn is_initialized(&self) -> bool {
1436         for v in &self.uninterpreted_option {
1437             if !v.is_initialized() {
1438                 return false;
1439             }
1440         };
1441         true
1442     }
1443 
merge_from(&mut self, is: &mut crate::CodedInputStream<'_>) -> crate::Result<()>1444     fn merge_from(&mut self, is: &mut crate::CodedInputStream<'_>) -> crate::Result<()> {
1445         while let Some(tag) = is.read_raw_tag_or_eof()? {
1446             match tag {
1447                 7994 => {
1448                     self.uninterpreted_option.push(is.read_message()?);
1449                 },
1450                 tag => {
1451                     crate::rt::read_unknown_or_skip_group(tag, is, self.special_fields.mut_unknown_fields())?;
1452                 },
1453             };
1454         }
1455         ::std::result::Result::Ok(())
1456     }
1457 
1458     // Compute sizes of nested messages
1459     #[allow(unused_variables)]
compute_size(&self) -> u641460     fn compute_size(&self) -> u64 {
1461         let mut my_size = 0;
1462         for value in &self.uninterpreted_option {
1463             let len = value.compute_size();
1464             my_size += 2 + crate::rt::compute_raw_varint64_size(len) + len;
1465         };
1466         my_size += crate::rt::unknown_fields_size(self.special_fields.unknown_fields());
1467         self.special_fields.cached_size().set(my_size as u32);
1468         my_size
1469     }
1470 
write_to_with_cached_sizes(&self, os: &mut crate::CodedOutputStream<'_>) -> crate::Result<()>1471     fn write_to_with_cached_sizes(&self, os: &mut crate::CodedOutputStream<'_>) -> crate::Result<()> {
1472         for v in &self.uninterpreted_option {
1473             crate::rt::write_message_field_with_cached_size(999, v, os)?;
1474         };
1475         os.write_unknown_fields(self.special_fields.unknown_fields())?;
1476         ::std::result::Result::Ok(())
1477     }
1478 
special_fields(&self) -> &crate::SpecialFields1479     fn special_fields(&self) -> &crate::SpecialFields {
1480         &self.special_fields
1481     }
1482 
mut_special_fields(&mut self) -> &mut crate::SpecialFields1483     fn mut_special_fields(&mut self) -> &mut crate::SpecialFields {
1484         &mut self.special_fields
1485     }
1486 
new() -> ExtensionRangeOptions1487     fn new() -> ExtensionRangeOptions {
1488         ExtensionRangeOptions::new()
1489     }
1490 
clear(&mut self)1491     fn clear(&mut self) {
1492         self.uninterpreted_option.clear();
1493         self.special_fields.clear();
1494     }
1495 
default_instance() -> &'static ExtensionRangeOptions1496     fn default_instance() -> &'static ExtensionRangeOptions {
1497         static instance: ExtensionRangeOptions = ExtensionRangeOptions {
1498             uninterpreted_option: ::std::vec::Vec::new(),
1499             special_fields: crate::SpecialFields::new(),
1500         };
1501         &instance
1502     }
1503 }
1504 
1505 impl crate::MessageFull for ExtensionRangeOptions {
descriptor() -> crate::reflect::MessageDescriptor1506     fn descriptor() -> crate::reflect::MessageDescriptor {
1507         static descriptor: crate::rt::Lazy<crate::reflect::MessageDescriptor> = crate::rt::Lazy::new();
1508         descriptor.get(|| file_descriptor().message_by_package_relative_name("ExtensionRangeOptions").unwrap()).clone()
1509     }
1510 }
1511 
1512 impl ::std::fmt::Display for ExtensionRangeOptions {
fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result1513     fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1514         crate::text_format::fmt(self, f)
1515     }
1516 }
1517 
1518 impl crate::reflect::ProtobufValue for ExtensionRangeOptions {
1519     type RuntimeType = crate::reflect::rt::RuntimeTypeMessage<Self>;
1520 }
1521 
1522 ///  Describes a field within a message.
1523 #[derive(PartialEq,Clone,Default,Debug)]
1524 // @@protoc_insertion_point(message:google.protobuf.FieldDescriptorProto)
1525 pub struct FieldDescriptorProto {
1526     // message fields
1527     // @@protoc_insertion_point(field:google.protobuf.FieldDescriptorProto.name)
1528     pub name: ::std::option::Option<::std::string::String>,
1529     // @@protoc_insertion_point(field:google.protobuf.FieldDescriptorProto.number)
1530     pub number: ::std::option::Option<i32>,
1531     // @@protoc_insertion_point(field:google.protobuf.FieldDescriptorProto.label)
1532     pub label: ::std::option::Option<crate::EnumOrUnknown<field_descriptor_proto::Label>>,
1533     ///  If type_name is set, this need not be set.  If both this and type_name
1534     ///  are set, this must be one of TYPE_ENUM, TYPE_MESSAGE or TYPE_GROUP.
1535     // @@protoc_insertion_point(field:google.protobuf.FieldDescriptorProto.type)
1536     pub type_: ::std::option::Option<crate::EnumOrUnknown<field_descriptor_proto::Type>>,
1537     ///  For message and enum types, this is the name of the type.  If the name
1538     ///  starts with a '.', it is fully-qualified.  Otherwise, C++-like scoping
1539     ///  rules are used to find the type (i.e. first the nested types within this
1540     ///  message are searched, then within the parent, on up to the root
1541     ///  namespace).
1542     // @@protoc_insertion_point(field:google.protobuf.FieldDescriptorProto.type_name)
1543     pub type_name: ::std::option::Option<::std::string::String>,
1544     ///  For extensions, this is the name of the type being extended.  It is
1545     ///  resolved in the same manner as type_name.
1546     // @@protoc_insertion_point(field:google.protobuf.FieldDescriptorProto.extendee)
1547     pub extendee: ::std::option::Option<::std::string::String>,
1548     ///  For numeric types, contains the original text representation of the value.
1549     ///  For booleans, "true" or "false".
1550     ///  For strings, contains the default text contents (not escaped in any way).
1551     ///  For bytes, contains the C escaped value.  All bytes >= 128 are escaped.
1552     ///  TODO(kenton):  Base-64 encode?
1553     // @@protoc_insertion_point(field:google.protobuf.FieldDescriptorProto.default_value)
1554     pub default_value: ::std::option::Option<::std::string::String>,
1555     ///  If set, gives the index of a oneof in the containing type's oneof_decl
1556     ///  list.  This field is a member of that oneof.
1557     // @@protoc_insertion_point(field:google.protobuf.FieldDescriptorProto.oneof_index)
1558     pub oneof_index: ::std::option::Option<i32>,
1559     ///  JSON name of this field. The value is set by protocol compiler. If the
1560     ///  user has set a "json_name" option on this field, that option's value
1561     ///  will be used. Otherwise, it's deduced from the field's name by converting
1562     ///  it to camelCase.
1563     // @@protoc_insertion_point(field:google.protobuf.FieldDescriptorProto.json_name)
1564     pub json_name: ::std::option::Option<::std::string::String>,
1565     // @@protoc_insertion_point(field:google.protobuf.FieldDescriptorProto.options)
1566     pub options: crate::MessageField<FieldOptions>,
1567     ///  If true, this is a proto3 "optional". When a proto3 field is optional, it
1568     ///  tracks presence regardless of field type.
1569     ///
1570     ///  When proto3_optional is true, this field must be belong to a oneof to
1571     ///  signal to old proto3 clients that presence is tracked for this field. This
1572     ///  oneof is known as a "synthetic" oneof, and this field must be its sole
1573     ///  member (each proto3 optional field gets its own synthetic oneof). Synthetic
1574     ///  oneofs exist in the descriptor only, and do not generate any API. Synthetic
1575     ///  oneofs must be ordered after all "real" oneofs.
1576     ///
1577     ///  For message fields, proto3_optional doesn't create any semantic change,
1578     ///  since non-repeated message fields always track presence. However it still
1579     ///  indicates the semantic detail of whether the user wrote "optional" or not.
1580     ///  This can be useful for round-tripping the .proto file. For consistency we
1581     ///  give message fields a synthetic oneof also, even though it is not required
1582     ///  to track presence. This is especially important because the parser can't
1583     ///  tell if a field is a message or an enum, so it must always create a
1584     ///  synthetic oneof.
1585     ///
1586     ///  Proto2 optional fields do not set this flag, because they already indicate
1587     ///  optional with `LABEL_OPTIONAL`.
1588     // @@protoc_insertion_point(field:google.protobuf.FieldDescriptorProto.proto3_optional)
1589     pub proto3_optional: ::std::option::Option<bool>,
1590     // special fields
1591     // @@protoc_insertion_point(special_field:google.protobuf.FieldDescriptorProto.special_fields)
1592     pub special_fields: crate::SpecialFields,
1593 }
1594 
1595 impl<'a> ::std::default::Default for &'a FieldDescriptorProto {
default() -> &'a FieldDescriptorProto1596     fn default() -> &'a FieldDescriptorProto {
1597         <FieldDescriptorProto as crate::Message>::default_instance()
1598     }
1599 }
1600 
1601 impl FieldDescriptorProto {
new() -> FieldDescriptorProto1602     pub fn new() -> FieldDescriptorProto {
1603         ::std::default::Default::default()
1604     }
1605 
1606     // optional string name = 1;
1607 
name(&self) -> &str1608     pub fn name(&self) -> &str {
1609         match self.name.as_ref() {
1610             Some(v) => v,
1611             None => "",
1612         }
1613     }
1614 
clear_name(&mut self)1615     pub fn clear_name(&mut self) {
1616         self.name = ::std::option::Option::None;
1617     }
1618 
has_name(&self) -> bool1619     pub fn has_name(&self) -> bool {
1620         self.name.is_some()
1621     }
1622 
1623     // Param is passed by value, moved
set_name(&mut self, v: ::std::string::String)1624     pub fn set_name(&mut self, v: ::std::string::String) {
1625         self.name = ::std::option::Option::Some(v);
1626     }
1627 
1628     // Mutable pointer to the field.
1629     // If field is not initialized, it is initialized with default value first.
mut_name(&mut self) -> &mut ::std::string::String1630     pub fn mut_name(&mut self) -> &mut ::std::string::String {
1631         if self.name.is_none() {
1632             self.name = ::std::option::Option::Some(::std::string::String::new());
1633         }
1634         self.name.as_mut().unwrap()
1635     }
1636 
1637     // Take field
take_name(&mut self) -> ::std::string::String1638     pub fn take_name(&mut self) -> ::std::string::String {
1639         self.name.take().unwrap_or_else(|| ::std::string::String::new())
1640     }
1641 
1642     // optional int32 number = 3;
1643 
number(&self) -> i321644     pub fn number(&self) -> i32 {
1645         self.number.unwrap_or(0)
1646     }
1647 
clear_number(&mut self)1648     pub fn clear_number(&mut self) {
1649         self.number = ::std::option::Option::None;
1650     }
1651 
has_number(&self) -> bool1652     pub fn has_number(&self) -> bool {
1653         self.number.is_some()
1654     }
1655 
1656     // Param is passed by value, moved
set_number(&mut self, v: i32)1657     pub fn set_number(&mut self, v: i32) {
1658         self.number = ::std::option::Option::Some(v);
1659     }
1660 
1661     // optional .google.protobuf.FieldDescriptorProto.Label label = 4;
1662 
label(&self) -> field_descriptor_proto::Label1663     pub fn label(&self) -> field_descriptor_proto::Label {
1664         match self.label {
1665             Some(e) => e.enum_value_or(field_descriptor_proto::Label::LABEL_OPTIONAL),
1666             None => field_descriptor_proto::Label::LABEL_OPTIONAL,
1667         }
1668     }
1669 
clear_label(&mut self)1670     pub fn clear_label(&mut self) {
1671         self.label = ::std::option::Option::None;
1672     }
1673 
has_label(&self) -> bool1674     pub fn has_label(&self) -> bool {
1675         self.label.is_some()
1676     }
1677 
1678     // Param is passed by value, moved
set_label(&mut self, v: field_descriptor_proto::Label)1679     pub fn set_label(&mut self, v: field_descriptor_proto::Label) {
1680         self.label = ::std::option::Option::Some(crate::EnumOrUnknown::new(v));
1681     }
1682 
1683     // optional .google.protobuf.FieldDescriptorProto.Type type = 5;
1684 
type_(&self) -> field_descriptor_proto::Type1685     pub fn type_(&self) -> field_descriptor_proto::Type {
1686         match self.type_ {
1687             Some(e) => e.enum_value_or(field_descriptor_proto::Type::TYPE_DOUBLE),
1688             None => field_descriptor_proto::Type::TYPE_DOUBLE,
1689         }
1690     }
1691 
clear_type_(&mut self)1692     pub fn clear_type_(&mut self) {
1693         self.type_ = ::std::option::Option::None;
1694     }
1695 
has_type(&self) -> bool1696     pub fn has_type(&self) -> bool {
1697         self.type_.is_some()
1698     }
1699 
1700     // Param is passed by value, moved
set_type(&mut self, v: field_descriptor_proto::Type)1701     pub fn set_type(&mut self, v: field_descriptor_proto::Type) {
1702         self.type_ = ::std::option::Option::Some(crate::EnumOrUnknown::new(v));
1703     }
1704 
1705     // optional string type_name = 6;
1706 
type_name(&self) -> &str1707     pub fn type_name(&self) -> &str {
1708         match self.type_name.as_ref() {
1709             Some(v) => v,
1710             None => "",
1711         }
1712     }
1713 
clear_type_name(&mut self)1714     pub fn clear_type_name(&mut self) {
1715         self.type_name = ::std::option::Option::None;
1716     }
1717 
has_type_name(&self) -> bool1718     pub fn has_type_name(&self) -> bool {
1719         self.type_name.is_some()
1720     }
1721 
1722     // Param is passed by value, moved
set_type_name(&mut self, v: ::std::string::String)1723     pub fn set_type_name(&mut self, v: ::std::string::String) {
1724         self.type_name = ::std::option::Option::Some(v);
1725     }
1726 
1727     // Mutable pointer to the field.
1728     // If field is not initialized, it is initialized with default value first.
mut_type_name(&mut self) -> &mut ::std::string::String1729     pub fn mut_type_name(&mut self) -> &mut ::std::string::String {
1730         if self.type_name.is_none() {
1731             self.type_name = ::std::option::Option::Some(::std::string::String::new());
1732         }
1733         self.type_name.as_mut().unwrap()
1734     }
1735 
1736     // Take field
take_type_name(&mut self) -> ::std::string::String1737     pub fn take_type_name(&mut self) -> ::std::string::String {
1738         self.type_name.take().unwrap_or_else(|| ::std::string::String::new())
1739     }
1740 
1741     // optional string extendee = 2;
1742 
extendee(&self) -> &str1743     pub fn extendee(&self) -> &str {
1744         match self.extendee.as_ref() {
1745             Some(v) => v,
1746             None => "",
1747         }
1748     }
1749 
clear_extendee(&mut self)1750     pub fn clear_extendee(&mut self) {
1751         self.extendee = ::std::option::Option::None;
1752     }
1753 
has_extendee(&self) -> bool1754     pub fn has_extendee(&self) -> bool {
1755         self.extendee.is_some()
1756     }
1757 
1758     // Param is passed by value, moved
set_extendee(&mut self, v: ::std::string::String)1759     pub fn set_extendee(&mut self, v: ::std::string::String) {
1760         self.extendee = ::std::option::Option::Some(v);
1761     }
1762 
1763     // Mutable pointer to the field.
1764     // If field is not initialized, it is initialized with default value first.
mut_extendee(&mut self) -> &mut ::std::string::String1765     pub fn mut_extendee(&mut self) -> &mut ::std::string::String {
1766         if self.extendee.is_none() {
1767             self.extendee = ::std::option::Option::Some(::std::string::String::new());
1768         }
1769         self.extendee.as_mut().unwrap()
1770     }
1771 
1772     // Take field
take_extendee(&mut self) -> ::std::string::String1773     pub fn take_extendee(&mut self) -> ::std::string::String {
1774         self.extendee.take().unwrap_or_else(|| ::std::string::String::new())
1775     }
1776 
1777     // optional string default_value = 7;
1778 
default_value(&self) -> &str1779     pub fn default_value(&self) -> &str {
1780         match self.default_value.as_ref() {
1781             Some(v) => v,
1782             None => "",
1783         }
1784     }
1785 
clear_default_value(&mut self)1786     pub fn clear_default_value(&mut self) {
1787         self.default_value = ::std::option::Option::None;
1788     }
1789 
has_default_value(&self) -> bool1790     pub fn has_default_value(&self) -> bool {
1791         self.default_value.is_some()
1792     }
1793 
1794     // Param is passed by value, moved
set_default_value(&mut self, v: ::std::string::String)1795     pub fn set_default_value(&mut self, v: ::std::string::String) {
1796         self.default_value = ::std::option::Option::Some(v);
1797     }
1798 
1799     // Mutable pointer to the field.
1800     // If field is not initialized, it is initialized with default value first.
mut_default_value(&mut self) -> &mut ::std::string::String1801     pub fn mut_default_value(&mut self) -> &mut ::std::string::String {
1802         if self.default_value.is_none() {
1803             self.default_value = ::std::option::Option::Some(::std::string::String::new());
1804         }
1805         self.default_value.as_mut().unwrap()
1806     }
1807 
1808     // Take field
take_default_value(&mut self) -> ::std::string::String1809     pub fn take_default_value(&mut self) -> ::std::string::String {
1810         self.default_value.take().unwrap_or_else(|| ::std::string::String::new())
1811     }
1812 
1813     // optional int32 oneof_index = 9;
1814 
oneof_index(&self) -> i321815     pub fn oneof_index(&self) -> i32 {
1816         self.oneof_index.unwrap_or(0)
1817     }
1818 
clear_oneof_index(&mut self)1819     pub fn clear_oneof_index(&mut self) {
1820         self.oneof_index = ::std::option::Option::None;
1821     }
1822 
has_oneof_index(&self) -> bool1823     pub fn has_oneof_index(&self) -> bool {
1824         self.oneof_index.is_some()
1825     }
1826 
1827     // Param is passed by value, moved
set_oneof_index(&mut self, v: i32)1828     pub fn set_oneof_index(&mut self, v: i32) {
1829         self.oneof_index = ::std::option::Option::Some(v);
1830     }
1831 
1832     // optional string json_name = 10;
1833 
json_name(&self) -> &str1834     pub fn json_name(&self) -> &str {
1835         match self.json_name.as_ref() {
1836             Some(v) => v,
1837             None => "",
1838         }
1839     }
1840 
clear_json_name(&mut self)1841     pub fn clear_json_name(&mut self) {
1842         self.json_name = ::std::option::Option::None;
1843     }
1844 
has_json_name(&self) -> bool1845     pub fn has_json_name(&self) -> bool {
1846         self.json_name.is_some()
1847     }
1848 
1849     // Param is passed by value, moved
set_json_name(&mut self, v: ::std::string::String)1850     pub fn set_json_name(&mut self, v: ::std::string::String) {
1851         self.json_name = ::std::option::Option::Some(v);
1852     }
1853 
1854     // Mutable pointer to the field.
1855     // If field is not initialized, it is initialized with default value first.
mut_json_name(&mut self) -> &mut ::std::string::String1856     pub fn mut_json_name(&mut self) -> &mut ::std::string::String {
1857         if self.json_name.is_none() {
1858             self.json_name = ::std::option::Option::Some(::std::string::String::new());
1859         }
1860         self.json_name.as_mut().unwrap()
1861     }
1862 
1863     // Take field
take_json_name(&mut self) -> ::std::string::String1864     pub fn take_json_name(&mut self) -> ::std::string::String {
1865         self.json_name.take().unwrap_or_else(|| ::std::string::String::new())
1866     }
1867 
1868     // optional bool proto3_optional = 17;
1869 
proto3_optional(&self) -> bool1870     pub fn proto3_optional(&self) -> bool {
1871         self.proto3_optional.unwrap_or(false)
1872     }
1873 
clear_proto3_optional(&mut self)1874     pub fn clear_proto3_optional(&mut self) {
1875         self.proto3_optional = ::std::option::Option::None;
1876     }
1877 
has_proto3_optional(&self) -> bool1878     pub fn has_proto3_optional(&self) -> bool {
1879         self.proto3_optional.is_some()
1880     }
1881 
1882     // Param is passed by value, moved
set_proto3_optional(&mut self, v: bool)1883     pub fn set_proto3_optional(&mut self, v: bool) {
1884         self.proto3_optional = ::std::option::Option::Some(v);
1885     }
1886 
generated_message_descriptor_data() -> crate::reflect::GeneratedMessageDescriptorData1887     fn generated_message_descriptor_data() -> crate::reflect::GeneratedMessageDescriptorData {
1888         let mut fields = ::std::vec::Vec::with_capacity(11);
1889         let mut oneofs = ::std::vec::Vec::with_capacity(0);
1890         fields.push(crate::reflect::rt::v2::make_option_accessor::<_, _>(
1891             "name",
1892             |m: &FieldDescriptorProto| { &m.name },
1893             |m: &mut FieldDescriptorProto| { &mut m.name },
1894         ));
1895         fields.push(crate::reflect::rt::v2::make_option_accessor::<_, _>(
1896             "number",
1897             |m: &FieldDescriptorProto| { &m.number },
1898             |m: &mut FieldDescriptorProto| { &mut m.number },
1899         ));
1900         fields.push(crate::reflect::rt::v2::make_option_accessor::<_, _>(
1901             "label",
1902             |m: &FieldDescriptorProto| { &m.label },
1903             |m: &mut FieldDescriptorProto| { &mut m.label },
1904         ));
1905         fields.push(crate::reflect::rt::v2::make_option_accessor::<_, _>(
1906             "type",
1907             |m: &FieldDescriptorProto| { &m.type_ },
1908             |m: &mut FieldDescriptorProto| { &mut m.type_ },
1909         ));
1910         fields.push(crate::reflect::rt::v2::make_option_accessor::<_, _>(
1911             "type_name",
1912             |m: &FieldDescriptorProto| { &m.type_name },
1913             |m: &mut FieldDescriptorProto| { &mut m.type_name },
1914         ));
1915         fields.push(crate::reflect::rt::v2::make_option_accessor::<_, _>(
1916             "extendee",
1917             |m: &FieldDescriptorProto| { &m.extendee },
1918             |m: &mut FieldDescriptorProto| { &mut m.extendee },
1919         ));
1920         fields.push(crate::reflect::rt::v2::make_option_accessor::<_, _>(
1921             "default_value",
1922             |m: &FieldDescriptorProto| { &m.default_value },
1923             |m: &mut FieldDescriptorProto| { &mut m.default_value },
1924         ));
1925         fields.push(crate::reflect::rt::v2::make_option_accessor::<_, _>(
1926             "oneof_index",
1927             |m: &FieldDescriptorProto| { &m.oneof_index },
1928             |m: &mut FieldDescriptorProto| { &mut m.oneof_index },
1929         ));
1930         fields.push(crate::reflect::rt::v2::make_option_accessor::<_, _>(
1931             "json_name",
1932             |m: &FieldDescriptorProto| { &m.json_name },
1933             |m: &mut FieldDescriptorProto| { &mut m.json_name },
1934         ));
1935         fields.push(crate::reflect::rt::v2::make_message_field_accessor::<_, FieldOptions>(
1936             "options",
1937             |m: &FieldDescriptorProto| { &m.options },
1938             |m: &mut FieldDescriptorProto| { &mut m.options },
1939         ));
1940         fields.push(crate::reflect::rt::v2::make_option_accessor::<_, _>(
1941             "proto3_optional",
1942             |m: &FieldDescriptorProto| { &m.proto3_optional },
1943             |m: &mut FieldDescriptorProto| { &mut m.proto3_optional },
1944         ));
1945         crate::reflect::GeneratedMessageDescriptorData::new_2::<FieldDescriptorProto>(
1946             "FieldDescriptorProto",
1947             fields,
1948             oneofs,
1949         )
1950     }
1951 }
1952 
1953 impl crate::Message for FieldDescriptorProto {
1954     const NAME: &'static str = "FieldDescriptorProto";
1955 
is_initialized(&self) -> bool1956     fn is_initialized(&self) -> bool {
1957         for v in &self.options {
1958             if !v.is_initialized() {
1959                 return false;
1960             }
1961         };
1962         true
1963     }
1964 
merge_from(&mut self, is: &mut crate::CodedInputStream<'_>) -> crate::Result<()>1965     fn merge_from(&mut self, is: &mut crate::CodedInputStream<'_>) -> crate::Result<()> {
1966         while let Some(tag) = is.read_raw_tag_or_eof()? {
1967             match tag {
1968                 10 => {
1969                     self.name = ::std::option::Option::Some(is.read_string()?);
1970                 },
1971                 24 => {
1972                     self.number = ::std::option::Option::Some(is.read_int32()?);
1973                 },
1974                 32 => {
1975                     self.label = ::std::option::Option::Some(is.read_enum_or_unknown()?);
1976                 },
1977                 40 => {
1978                     self.type_ = ::std::option::Option::Some(is.read_enum_or_unknown()?);
1979                 },
1980                 50 => {
1981                     self.type_name = ::std::option::Option::Some(is.read_string()?);
1982                 },
1983                 18 => {
1984                     self.extendee = ::std::option::Option::Some(is.read_string()?);
1985                 },
1986                 58 => {
1987                     self.default_value = ::std::option::Option::Some(is.read_string()?);
1988                 },
1989                 72 => {
1990                     self.oneof_index = ::std::option::Option::Some(is.read_int32()?);
1991                 },
1992                 82 => {
1993                     self.json_name = ::std::option::Option::Some(is.read_string()?);
1994                 },
1995                 66 => {
1996                     crate::rt::read_singular_message_into_field(is, &mut self.options)?;
1997                 },
1998                 136 => {
1999                     self.proto3_optional = ::std::option::Option::Some(is.read_bool()?);
2000                 },
2001                 tag => {
2002                     crate::rt::read_unknown_or_skip_group(tag, is, self.special_fields.mut_unknown_fields())?;
2003                 },
2004             };
2005         }
2006         ::std::result::Result::Ok(())
2007     }
2008 
2009     // Compute sizes of nested messages
2010     #[allow(unused_variables)]
compute_size(&self) -> u642011     fn compute_size(&self) -> u64 {
2012         let mut my_size = 0;
2013         if let Some(v) = self.name.as_ref() {
2014             my_size += crate::rt::string_size(1, &v);
2015         }
2016         if let Some(v) = self.number {
2017             my_size += crate::rt::int32_size(3, v);
2018         }
2019         if let Some(v) = self.label {
2020             my_size += crate::rt::int32_size(4, v.value());
2021         }
2022         if let Some(v) = self.type_ {
2023             my_size += crate::rt::int32_size(5, v.value());
2024         }
2025         if let Some(v) = self.type_name.as_ref() {
2026             my_size += crate::rt::string_size(6, &v);
2027         }
2028         if let Some(v) = self.extendee.as_ref() {
2029             my_size += crate::rt::string_size(2, &v);
2030         }
2031         if let Some(v) = self.default_value.as_ref() {
2032             my_size += crate::rt::string_size(7, &v);
2033         }
2034         if let Some(v) = self.oneof_index {
2035             my_size += crate::rt::int32_size(9, v);
2036         }
2037         if let Some(v) = self.json_name.as_ref() {
2038             my_size += crate::rt::string_size(10, &v);
2039         }
2040         if let Some(v) = self.options.as_ref() {
2041             let len = v.compute_size();
2042             my_size += 1 + crate::rt::compute_raw_varint64_size(len) + len;
2043         }
2044         if let Some(v) = self.proto3_optional {
2045             my_size += 2 + 1;
2046         }
2047         my_size += crate::rt::unknown_fields_size(self.special_fields.unknown_fields());
2048         self.special_fields.cached_size().set(my_size as u32);
2049         my_size
2050     }
2051 
write_to_with_cached_sizes(&self, os: &mut crate::CodedOutputStream<'_>) -> crate::Result<()>2052     fn write_to_with_cached_sizes(&self, os: &mut crate::CodedOutputStream<'_>) -> crate::Result<()> {
2053         if let Some(v) = self.name.as_ref() {
2054             os.write_string(1, v)?;
2055         }
2056         if let Some(v) = self.number {
2057             os.write_int32(3, v)?;
2058         }
2059         if let Some(v) = self.label {
2060             os.write_enum(4, crate::EnumOrUnknown::value(&v))?;
2061         }
2062         if let Some(v) = self.type_ {
2063             os.write_enum(5, crate::EnumOrUnknown::value(&v))?;
2064         }
2065         if let Some(v) = self.type_name.as_ref() {
2066             os.write_string(6, v)?;
2067         }
2068         if let Some(v) = self.extendee.as_ref() {
2069             os.write_string(2, v)?;
2070         }
2071         if let Some(v) = self.default_value.as_ref() {
2072             os.write_string(7, v)?;
2073         }
2074         if let Some(v) = self.oneof_index {
2075             os.write_int32(9, v)?;
2076         }
2077         if let Some(v) = self.json_name.as_ref() {
2078             os.write_string(10, v)?;
2079         }
2080         if let Some(v) = self.options.as_ref() {
2081             crate::rt::write_message_field_with_cached_size(8, v, os)?;
2082         }
2083         if let Some(v) = self.proto3_optional {
2084             os.write_bool(17, v)?;
2085         }
2086         os.write_unknown_fields(self.special_fields.unknown_fields())?;
2087         ::std::result::Result::Ok(())
2088     }
2089 
special_fields(&self) -> &crate::SpecialFields2090     fn special_fields(&self) -> &crate::SpecialFields {
2091         &self.special_fields
2092     }
2093 
mut_special_fields(&mut self) -> &mut crate::SpecialFields2094     fn mut_special_fields(&mut self) -> &mut crate::SpecialFields {
2095         &mut self.special_fields
2096     }
2097 
new() -> FieldDescriptorProto2098     fn new() -> FieldDescriptorProto {
2099         FieldDescriptorProto::new()
2100     }
2101 
clear(&mut self)2102     fn clear(&mut self) {
2103         self.name = ::std::option::Option::None;
2104         self.number = ::std::option::Option::None;
2105         self.label = ::std::option::Option::None;
2106         self.type_ = ::std::option::Option::None;
2107         self.type_name = ::std::option::Option::None;
2108         self.extendee = ::std::option::Option::None;
2109         self.default_value = ::std::option::Option::None;
2110         self.oneof_index = ::std::option::Option::None;
2111         self.json_name = ::std::option::Option::None;
2112         self.options.clear();
2113         self.proto3_optional = ::std::option::Option::None;
2114         self.special_fields.clear();
2115     }
2116 
default_instance() -> &'static FieldDescriptorProto2117     fn default_instance() -> &'static FieldDescriptorProto {
2118         static instance: FieldDescriptorProto = FieldDescriptorProto {
2119             name: ::std::option::Option::None,
2120             number: ::std::option::Option::None,
2121             label: ::std::option::Option::None,
2122             type_: ::std::option::Option::None,
2123             type_name: ::std::option::Option::None,
2124             extendee: ::std::option::Option::None,
2125             default_value: ::std::option::Option::None,
2126             oneof_index: ::std::option::Option::None,
2127             json_name: ::std::option::Option::None,
2128             options: crate::MessageField::none(),
2129             proto3_optional: ::std::option::Option::None,
2130             special_fields: crate::SpecialFields::new(),
2131         };
2132         &instance
2133     }
2134 }
2135 
2136 impl crate::MessageFull for FieldDescriptorProto {
descriptor() -> crate::reflect::MessageDescriptor2137     fn descriptor() -> crate::reflect::MessageDescriptor {
2138         static descriptor: crate::rt::Lazy<crate::reflect::MessageDescriptor> = crate::rt::Lazy::new();
2139         descriptor.get(|| file_descriptor().message_by_package_relative_name("FieldDescriptorProto").unwrap()).clone()
2140     }
2141 }
2142 
2143 impl ::std::fmt::Display for FieldDescriptorProto {
fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result2144     fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
2145         crate::text_format::fmt(self, f)
2146     }
2147 }
2148 
2149 impl crate::reflect::ProtobufValue for FieldDescriptorProto {
2150     type RuntimeType = crate::reflect::rt::RuntimeTypeMessage<Self>;
2151 }
2152 
2153 /// Nested message and enums of message `FieldDescriptorProto`
2154 pub mod field_descriptor_proto {
2155     #[derive(Clone,Copy,PartialEq,Eq,Debug,Hash)]
2156     // @@protoc_insertion_point(enum:google.protobuf.FieldDescriptorProto.Type)
2157     pub enum Type {
2158         // @@protoc_insertion_point(enum_value:google.protobuf.FieldDescriptorProto.Type.TYPE_DOUBLE)
2159         TYPE_DOUBLE = 1,
2160         // @@protoc_insertion_point(enum_value:google.protobuf.FieldDescriptorProto.Type.TYPE_FLOAT)
2161         TYPE_FLOAT = 2,
2162         // @@protoc_insertion_point(enum_value:google.protobuf.FieldDescriptorProto.Type.TYPE_INT64)
2163         TYPE_INT64 = 3,
2164         // @@protoc_insertion_point(enum_value:google.protobuf.FieldDescriptorProto.Type.TYPE_UINT64)
2165         TYPE_UINT64 = 4,
2166         // @@protoc_insertion_point(enum_value:google.protobuf.FieldDescriptorProto.Type.TYPE_INT32)
2167         TYPE_INT32 = 5,
2168         // @@protoc_insertion_point(enum_value:google.protobuf.FieldDescriptorProto.Type.TYPE_FIXED64)
2169         TYPE_FIXED64 = 6,
2170         // @@protoc_insertion_point(enum_value:google.protobuf.FieldDescriptorProto.Type.TYPE_FIXED32)
2171         TYPE_FIXED32 = 7,
2172         // @@protoc_insertion_point(enum_value:google.protobuf.FieldDescriptorProto.Type.TYPE_BOOL)
2173         TYPE_BOOL = 8,
2174         // @@protoc_insertion_point(enum_value:google.protobuf.FieldDescriptorProto.Type.TYPE_STRING)
2175         TYPE_STRING = 9,
2176         // @@protoc_insertion_point(enum_value:google.protobuf.FieldDescriptorProto.Type.TYPE_GROUP)
2177         TYPE_GROUP = 10,
2178         // @@protoc_insertion_point(enum_value:google.protobuf.FieldDescriptorProto.Type.TYPE_MESSAGE)
2179         TYPE_MESSAGE = 11,
2180         // @@protoc_insertion_point(enum_value:google.protobuf.FieldDescriptorProto.Type.TYPE_BYTES)
2181         TYPE_BYTES = 12,
2182         // @@protoc_insertion_point(enum_value:google.protobuf.FieldDescriptorProto.Type.TYPE_UINT32)
2183         TYPE_UINT32 = 13,
2184         // @@protoc_insertion_point(enum_value:google.protobuf.FieldDescriptorProto.Type.TYPE_ENUM)
2185         TYPE_ENUM = 14,
2186         // @@protoc_insertion_point(enum_value:google.protobuf.FieldDescriptorProto.Type.TYPE_SFIXED32)
2187         TYPE_SFIXED32 = 15,
2188         // @@protoc_insertion_point(enum_value:google.protobuf.FieldDescriptorProto.Type.TYPE_SFIXED64)
2189         TYPE_SFIXED64 = 16,
2190         // @@protoc_insertion_point(enum_value:google.protobuf.FieldDescriptorProto.Type.TYPE_SINT32)
2191         TYPE_SINT32 = 17,
2192         // @@protoc_insertion_point(enum_value:google.protobuf.FieldDescriptorProto.Type.TYPE_SINT64)
2193         TYPE_SINT64 = 18,
2194     }
2195 
2196     impl crate::Enum for Type {
2197         const NAME: &'static str = "Type";
2198 
value(&self) -> i322199         fn value(&self) -> i32 {
2200             *self as i32
2201         }
2202 
from_i32(value: i32) -> ::std::option::Option<Type>2203         fn from_i32(value: i32) -> ::std::option::Option<Type> {
2204             match value {
2205                 1 => ::std::option::Option::Some(Type::TYPE_DOUBLE),
2206                 2 => ::std::option::Option::Some(Type::TYPE_FLOAT),
2207                 3 => ::std::option::Option::Some(Type::TYPE_INT64),
2208                 4 => ::std::option::Option::Some(Type::TYPE_UINT64),
2209                 5 => ::std::option::Option::Some(Type::TYPE_INT32),
2210                 6 => ::std::option::Option::Some(Type::TYPE_FIXED64),
2211                 7 => ::std::option::Option::Some(Type::TYPE_FIXED32),
2212                 8 => ::std::option::Option::Some(Type::TYPE_BOOL),
2213                 9 => ::std::option::Option::Some(Type::TYPE_STRING),
2214                 10 => ::std::option::Option::Some(Type::TYPE_GROUP),
2215                 11 => ::std::option::Option::Some(Type::TYPE_MESSAGE),
2216                 12 => ::std::option::Option::Some(Type::TYPE_BYTES),
2217                 13 => ::std::option::Option::Some(Type::TYPE_UINT32),
2218                 14 => ::std::option::Option::Some(Type::TYPE_ENUM),
2219                 15 => ::std::option::Option::Some(Type::TYPE_SFIXED32),
2220                 16 => ::std::option::Option::Some(Type::TYPE_SFIXED64),
2221                 17 => ::std::option::Option::Some(Type::TYPE_SINT32),
2222                 18 => ::std::option::Option::Some(Type::TYPE_SINT64),
2223                 _ => ::std::option::Option::None
2224             }
2225         }
2226 
2227         const VALUES: &'static [Type] = &[
2228             Type::TYPE_DOUBLE,
2229             Type::TYPE_FLOAT,
2230             Type::TYPE_INT64,
2231             Type::TYPE_UINT64,
2232             Type::TYPE_INT32,
2233             Type::TYPE_FIXED64,
2234             Type::TYPE_FIXED32,
2235             Type::TYPE_BOOL,
2236             Type::TYPE_STRING,
2237             Type::TYPE_GROUP,
2238             Type::TYPE_MESSAGE,
2239             Type::TYPE_BYTES,
2240             Type::TYPE_UINT32,
2241             Type::TYPE_ENUM,
2242             Type::TYPE_SFIXED32,
2243             Type::TYPE_SFIXED64,
2244             Type::TYPE_SINT32,
2245             Type::TYPE_SINT64,
2246         ];
2247     }
2248 
2249     impl crate::EnumFull for Type {
enum_descriptor() -> crate::reflect::EnumDescriptor2250         fn enum_descriptor() -> crate::reflect::EnumDescriptor {
2251             static descriptor: crate::rt::Lazy<crate::reflect::EnumDescriptor> = crate::rt::Lazy::new();
2252             descriptor.get(|| super::file_descriptor().enum_by_package_relative_name("FieldDescriptorProto.Type").unwrap()).clone()
2253         }
2254 
descriptor(&self) -> crate::reflect::EnumValueDescriptor2255         fn descriptor(&self) -> crate::reflect::EnumValueDescriptor {
2256             let index = match self {
2257                 Type::TYPE_DOUBLE => 0,
2258                 Type::TYPE_FLOAT => 1,
2259                 Type::TYPE_INT64 => 2,
2260                 Type::TYPE_UINT64 => 3,
2261                 Type::TYPE_INT32 => 4,
2262                 Type::TYPE_FIXED64 => 5,
2263                 Type::TYPE_FIXED32 => 6,
2264                 Type::TYPE_BOOL => 7,
2265                 Type::TYPE_STRING => 8,
2266                 Type::TYPE_GROUP => 9,
2267                 Type::TYPE_MESSAGE => 10,
2268                 Type::TYPE_BYTES => 11,
2269                 Type::TYPE_UINT32 => 12,
2270                 Type::TYPE_ENUM => 13,
2271                 Type::TYPE_SFIXED32 => 14,
2272                 Type::TYPE_SFIXED64 => 15,
2273                 Type::TYPE_SINT32 => 16,
2274                 Type::TYPE_SINT64 => 17,
2275             };
2276             Self::enum_descriptor().value_by_index(index)
2277         }
2278     }
2279 
2280     // Note, `Default` is implemented although default value is not 0
2281     impl ::std::default::Default for Type {
default() -> Self2282         fn default() -> Self {
2283             Type::TYPE_DOUBLE
2284         }
2285     }
2286 
2287     impl Type {
generated_enum_descriptor_data() -> crate::reflect::GeneratedEnumDescriptorData2288         pub(in super) fn generated_enum_descriptor_data() -> crate::reflect::GeneratedEnumDescriptorData {
2289             crate::reflect::GeneratedEnumDescriptorData::new::<Type>("FieldDescriptorProto.Type")
2290         }
2291     }
2292 
2293     #[derive(Clone,Copy,PartialEq,Eq,Debug,Hash)]
2294     // @@protoc_insertion_point(enum:google.protobuf.FieldDescriptorProto.Label)
2295     pub enum Label {
2296         // @@protoc_insertion_point(enum_value:google.protobuf.FieldDescriptorProto.Label.LABEL_OPTIONAL)
2297         LABEL_OPTIONAL = 1,
2298         // @@protoc_insertion_point(enum_value:google.protobuf.FieldDescriptorProto.Label.LABEL_REQUIRED)
2299         LABEL_REQUIRED = 2,
2300         // @@protoc_insertion_point(enum_value:google.protobuf.FieldDescriptorProto.Label.LABEL_REPEATED)
2301         LABEL_REPEATED = 3,
2302     }
2303 
2304     impl crate::Enum for Label {
2305         const NAME: &'static str = "Label";
2306 
value(&self) -> i322307         fn value(&self) -> i32 {
2308             *self as i32
2309         }
2310 
from_i32(value: i32) -> ::std::option::Option<Label>2311         fn from_i32(value: i32) -> ::std::option::Option<Label> {
2312             match value {
2313                 1 => ::std::option::Option::Some(Label::LABEL_OPTIONAL),
2314                 2 => ::std::option::Option::Some(Label::LABEL_REQUIRED),
2315                 3 => ::std::option::Option::Some(Label::LABEL_REPEATED),
2316                 _ => ::std::option::Option::None
2317             }
2318         }
2319 
2320         const VALUES: &'static [Label] = &[
2321             Label::LABEL_OPTIONAL,
2322             Label::LABEL_REQUIRED,
2323             Label::LABEL_REPEATED,
2324         ];
2325     }
2326 
2327     impl crate::EnumFull for Label {
enum_descriptor() -> crate::reflect::EnumDescriptor2328         fn enum_descriptor() -> crate::reflect::EnumDescriptor {
2329             static descriptor: crate::rt::Lazy<crate::reflect::EnumDescriptor> = crate::rt::Lazy::new();
2330             descriptor.get(|| super::file_descriptor().enum_by_package_relative_name("FieldDescriptorProto.Label").unwrap()).clone()
2331         }
2332 
descriptor(&self) -> crate::reflect::EnumValueDescriptor2333         fn descriptor(&self) -> crate::reflect::EnumValueDescriptor {
2334             let index = match self {
2335                 Label::LABEL_OPTIONAL => 0,
2336                 Label::LABEL_REQUIRED => 1,
2337                 Label::LABEL_REPEATED => 2,
2338             };
2339             Self::enum_descriptor().value_by_index(index)
2340         }
2341     }
2342 
2343     // Note, `Default` is implemented although default value is not 0
2344     impl ::std::default::Default for Label {
default() -> Self2345         fn default() -> Self {
2346             Label::LABEL_OPTIONAL
2347         }
2348     }
2349 
2350     impl Label {
generated_enum_descriptor_data() -> crate::reflect::GeneratedEnumDescriptorData2351         pub(in super) fn generated_enum_descriptor_data() -> crate::reflect::GeneratedEnumDescriptorData {
2352             crate::reflect::GeneratedEnumDescriptorData::new::<Label>("FieldDescriptorProto.Label")
2353         }
2354     }
2355 }
2356 
2357 ///  Describes a oneof.
2358 #[derive(PartialEq,Clone,Default,Debug)]
2359 // @@protoc_insertion_point(message:google.protobuf.OneofDescriptorProto)
2360 pub struct OneofDescriptorProto {
2361     // message fields
2362     // @@protoc_insertion_point(field:google.protobuf.OneofDescriptorProto.name)
2363     pub name: ::std::option::Option<::std::string::String>,
2364     // @@protoc_insertion_point(field:google.protobuf.OneofDescriptorProto.options)
2365     pub options: crate::MessageField<OneofOptions>,
2366     // special fields
2367     // @@protoc_insertion_point(special_field:google.protobuf.OneofDescriptorProto.special_fields)
2368     pub special_fields: crate::SpecialFields,
2369 }
2370 
2371 impl<'a> ::std::default::Default for &'a OneofDescriptorProto {
default() -> &'a OneofDescriptorProto2372     fn default() -> &'a OneofDescriptorProto {
2373         <OneofDescriptorProto as crate::Message>::default_instance()
2374     }
2375 }
2376 
2377 impl OneofDescriptorProto {
new() -> OneofDescriptorProto2378     pub fn new() -> OneofDescriptorProto {
2379         ::std::default::Default::default()
2380     }
2381 
2382     // optional string name = 1;
2383 
name(&self) -> &str2384     pub fn name(&self) -> &str {
2385         match self.name.as_ref() {
2386             Some(v) => v,
2387             None => "",
2388         }
2389     }
2390 
clear_name(&mut self)2391     pub fn clear_name(&mut self) {
2392         self.name = ::std::option::Option::None;
2393     }
2394 
has_name(&self) -> bool2395     pub fn has_name(&self) -> bool {
2396         self.name.is_some()
2397     }
2398 
2399     // Param is passed by value, moved
set_name(&mut self, v: ::std::string::String)2400     pub fn set_name(&mut self, v: ::std::string::String) {
2401         self.name = ::std::option::Option::Some(v);
2402     }
2403 
2404     // Mutable pointer to the field.
2405     // If field is not initialized, it is initialized with default value first.
mut_name(&mut self) -> &mut ::std::string::String2406     pub fn mut_name(&mut self) -> &mut ::std::string::String {
2407         if self.name.is_none() {
2408             self.name = ::std::option::Option::Some(::std::string::String::new());
2409         }
2410         self.name.as_mut().unwrap()
2411     }
2412 
2413     // Take field
take_name(&mut self) -> ::std::string::String2414     pub fn take_name(&mut self) -> ::std::string::String {
2415         self.name.take().unwrap_or_else(|| ::std::string::String::new())
2416     }
2417 
generated_message_descriptor_data() -> crate::reflect::GeneratedMessageDescriptorData2418     fn generated_message_descriptor_data() -> crate::reflect::GeneratedMessageDescriptorData {
2419         let mut fields = ::std::vec::Vec::with_capacity(2);
2420         let mut oneofs = ::std::vec::Vec::with_capacity(0);
2421         fields.push(crate::reflect::rt::v2::make_option_accessor::<_, _>(
2422             "name",
2423             |m: &OneofDescriptorProto| { &m.name },
2424             |m: &mut OneofDescriptorProto| { &mut m.name },
2425         ));
2426         fields.push(crate::reflect::rt::v2::make_message_field_accessor::<_, OneofOptions>(
2427             "options",
2428             |m: &OneofDescriptorProto| { &m.options },
2429             |m: &mut OneofDescriptorProto| { &mut m.options },
2430         ));
2431         crate::reflect::GeneratedMessageDescriptorData::new_2::<OneofDescriptorProto>(
2432             "OneofDescriptorProto",
2433             fields,
2434             oneofs,
2435         )
2436     }
2437 }
2438 
2439 impl crate::Message for OneofDescriptorProto {
2440     const NAME: &'static str = "OneofDescriptorProto";
2441 
is_initialized(&self) -> bool2442     fn is_initialized(&self) -> bool {
2443         for v in &self.options {
2444             if !v.is_initialized() {
2445                 return false;
2446             }
2447         };
2448         true
2449     }
2450 
merge_from(&mut self, is: &mut crate::CodedInputStream<'_>) -> crate::Result<()>2451     fn merge_from(&mut self, is: &mut crate::CodedInputStream<'_>) -> crate::Result<()> {
2452         while let Some(tag) = is.read_raw_tag_or_eof()? {
2453             match tag {
2454                 10 => {
2455                     self.name = ::std::option::Option::Some(is.read_string()?);
2456                 },
2457                 18 => {
2458                     crate::rt::read_singular_message_into_field(is, &mut self.options)?;
2459                 },
2460                 tag => {
2461                     crate::rt::read_unknown_or_skip_group(tag, is, self.special_fields.mut_unknown_fields())?;
2462                 },
2463             };
2464         }
2465         ::std::result::Result::Ok(())
2466     }
2467 
2468     // Compute sizes of nested messages
2469     #[allow(unused_variables)]
compute_size(&self) -> u642470     fn compute_size(&self) -> u64 {
2471         let mut my_size = 0;
2472         if let Some(v) = self.name.as_ref() {
2473             my_size += crate::rt::string_size(1, &v);
2474         }
2475         if let Some(v) = self.options.as_ref() {
2476             let len = v.compute_size();
2477             my_size += 1 + crate::rt::compute_raw_varint64_size(len) + len;
2478         }
2479         my_size += crate::rt::unknown_fields_size(self.special_fields.unknown_fields());
2480         self.special_fields.cached_size().set(my_size as u32);
2481         my_size
2482     }
2483 
write_to_with_cached_sizes(&self, os: &mut crate::CodedOutputStream<'_>) -> crate::Result<()>2484     fn write_to_with_cached_sizes(&self, os: &mut crate::CodedOutputStream<'_>) -> crate::Result<()> {
2485         if let Some(v) = self.name.as_ref() {
2486             os.write_string(1, v)?;
2487         }
2488         if let Some(v) = self.options.as_ref() {
2489             crate::rt::write_message_field_with_cached_size(2, v, os)?;
2490         }
2491         os.write_unknown_fields(self.special_fields.unknown_fields())?;
2492         ::std::result::Result::Ok(())
2493     }
2494 
special_fields(&self) -> &crate::SpecialFields2495     fn special_fields(&self) -> &crate::SpecialFields {
2496         &self.special_fields
2497     }
2498 
mut_special_fields(&mut self) -> &mut crate::SpecialFields2499     fn mut_special_fields(&mut self) -> &mut crate::SpecialFields {
2500         &mut self.special_fields
2501     }
2502 
new() -> OneofDescriptorProto2503     fn new() -> OneofDescriptorProto {
2504         OneofDescriptorProto::new()
2505     }
2506 
clear(&mut self)2507     fn clear(&mut self) {
2508         self.name = ::std::option::Option::None;
2509         self.options.clear();
2510         self.special_fields.clear();
2511     }
2512 
default_instance() -> &'static OneofDescriptorProto2513     fn default_instance() -> &'static OneofDescriptorProto {
2514         static instance: OneofDescriptorProto = OneofDescriptorProto {
2515             name: ::std::option::Option::None,
2516             options: crate::MessageField::none(),
2517             special_fields: crate::SpecialFields::new(),
2518         };
2519         &instance
2520     }
2521 }
2522 
2523 impl crate::MessageFull for OneofDescriptorProto {
descriptor() -> crate::reflect::MessageDescriptor2524     fn descriptor() -> crate::reflect::MessageDescriptor {
2525         static descriptor: crate::rt::Lazy<crate::reflect::MessageDescriptor> = crate::rt::Lazy::new();
2526         descriptor.get(|| file_descriptor().message_by_package_relative_name("OneofDescriptorProto").unwrap()).clone()
2527     }
2528 }
2529 
2530 impl ::std::fmt::Display for OneofDescriptorProto {
fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result2531     fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
2532         crate::text_format::fmt(self, f)
2533     }
2534 }
2535 
2536 impl crate::reflect::ProtobufValue for OneofDescriptorProto {
2537     type RuntimeType = crate::reflect::rt::RuntimeTypeMessage<Self>;
2538 }
2539 
2540 ///  Describes an enum type.
2541 #[derive(PartialEq,Clone,Default,Debug)]
2542 // @@protoc_insertion_point(message:google.protobuf.EnumDescriptorProto)
2543 pub struct EnumDescriptorProto {
2544     // message fields
2545     // @@protoc_insertion_point(field:google.protobuf.EnumDescriptorProto.name)
2546     pub name: ::std::option::Option<::std::string::String>,
2547     // @@protoc_insertion_point(field:google.protobuf.EnumDescriptorProto.value)
2548     pub value: ::std::vec::Vec<EnumValueDescriptorProto>,
2549     // @@protoc_insertion_point(field:google.protobuf.EnumDescriptorProto.options)
2550     pub options: crate::MessageField<EnumOptions>,
2551     ///  Range of reserved numeric values. Reserved numeric values may not be used
2552     ///  by enum values in the same enum declaration. Reserved ranges may not
2553     ///  overlap.
2554     // @@protoc_insertion_point(field:google.protobuf.EnumDescriptorProto.reserved_range)
2555     pub reserved_range: ::std::vec::Vec<enum_descriptor_proto::EnumReservedRange>,
2556     ///  Reserved enum value names, which may not be reused. A given name may only
2557     ///  be reserved once.
2558     // @@protoc_insertion_point(field:google.protobuf.EnumDescriptorProto.reserved_name)
2559     pub reserved_name: ::std::vec::Vec<::std::string::String>,
2560     // special fields
2561     // @@protoc_insertion_point(special_field:google.protobuf.EnumDescriptorProto.special_fields)
2562     pub special_fields: crate::SpecialFields,
2563 }
2564 
2565 impl<'a> ::std::default::Default for &'a EnumDescriptorProto {
default() -> &'a EnumDescriptorProto2566     fn default() -> &'a EnumDescriptorProto {
2567         <EnumDescriptorProto as crate::Message>::default_instance()
2568     }
2569 }
2570 
2571 impl EnumDescriptorProto {
new() -> EnumDescriptorProto2572     pub fn new() -> EnumDescriptorProto {
2573         ::std::default::Default::default()
2574     }
2575 
2576     // optional string name = 1;
2577 
name(&self) -> &str2578     pub fn name(&self) -> &str {
2579         match self.name.as_ref() {
2580             Some(v) => v,
2581             None => "",
2582         }
2583     }
2584 
clear_name(&mut self)2585     pub fn clear_name(&mut self) {
2586         self.name = ::std::option::Option::None;
2587     }
2588 
has_name(&self) -> bool2589     pub fn has_name(&self) -> bool {
2590         self.name.is_some()
2591     }
2592 
2593     // Param is passed by value, moved
set_name(&mut self, v: ::std::string::String)2594     pub fn set_name(&mut self, v: ::std::string::String) {
2595         self.name = ::std::option::Option::Some(v);
2596     }
2597 
2598     // Mutable pointer to the field.
2599     // If field is not initialized, it is initialized with default value first.
mut_name(&mut self) -> &mut ::std::string::String2600     pub fn mut_name(&mut self) -> &mut ::std::string::String {
2601         if self.name.is_none() {
2602             self.name = ::std::option::Option::Some(::std::string::String::new());
2603         }
2604         self.name.as_mut().unwrap()
2605     }
2606 
2607     // Take field
take_name(&mut self) -> ::std::string::String2608     pub fn take_name(&mut self) -> ::std::string::String {
2609         self.name.take().unwrap_or_else(|| ::std::string::String::new())
2610     }
2611 
generated_message_descriptor_data() -> crate::reflect::GeneratedMessageDescriptorData2612     fn generated_message_descriptor_data() -> crate::reflect::GeneratedMessageDescriptorData {
2613         let mut fields = ::std::vec::Vec::with_capacity(5);
2614         let mut oneofs = ::std::vec::Vec::with_capacity(0);
2615         fields.push(crate::reflect::rt::v2::make_option_accessor::<_, _>(
2616             "name",
2617             |m: &EnumDescriptorProto| { &m.name },
2618             |m: &mut EnumDescriptorProto| { &mut m.name },
2619         ));
2620         fields.push(crate::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
2621             "value",
2622             |m: &EnumDescriptorProto| { &m.value },
2623             |m: &mut EnumDescriptorProto| { &mut m.value },
2624         ));
2625         fields.push(crate::reflect::rt::v2::make_message_field_accessor::<_, EnumOptions>(
2626             "options",
2627             |m: &EnumDescriptorProto| { &m.options },
2628             |m: &mut EnumDescriptorProto| { &mut m.options },
2629         ));
2630         fields.push(crate::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
2631             "reserved_range",
2632             |m: &EnumDescriptorProto| { &m.reserved_range },
2633             |m: &mut EnumDescriptorProto| { &mut m.reserved_range },
2634         ));
2635         fields.push(crate::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
2636             "reserved_name",
2637             |m: &EnumDescriptorProto| { &m.reserved_name },
2638             |m: &mut EnumDescriptorProto| { &mut m.reserved_name },
2639         ));
2640         crate::reflect::GeneratedMessageDescriptorData::new_2::<EnumDescriptorProto>(
2641             "EnumDescriptorProto",
2642             fields,
2643             oneofs,
2644         )
2645     }
2646 }
2647 
2648 impl crate::Message for EnumDescriptorProto {
2649     const NAME: &'static str = "EnumDescriptorProto";
2650 
is_initialized(&self) -> bool2651     fn is_initialized(&self) -> bool {
2652         for v in &self.value {
2653             if !v.is_initialized() {
2654                 return false;
2655             }
2656         };
2657         for v in &self.options {
2658             if !v.is_initialized() {
2659                 return false;
2660             }
2661         };
2662         for v in &self.reserved_range {
2663             if !v.is_initialized() {
2664                 return false;
2665             }
2666         };
2667         true
2668     }
2669 
merge_from(&mut self, is: &mut crate::CodedInputStream<'_>) -> crate::Result<()>2670     fn merge_from(&mut self, is: &mut crate::CodedInputStream<'_>) -> crate::Result<()> {
2671         while let Some(tag) = is.read_raw_tag_or_eof()? {
2672             match tag {
2673                 10 => {
2674                     self.name = ::std::option::Option::Some(is.read_string()?);
2675                 },
2676                 18 => {
2677                     self.value.push(is.read_message()?);
2678                 },
2679                 26 => {
2680                     crate::rt::read_singular_message_into_field(is, &mut self.options)?;
2681                 },
2682                 34 => {
2683                     self.reserved_range.push(is.read_message()?);
2684                 },
2685                 42 => {
2686                     self.reserved_name.push(is.read_string()?);
2687                 },
2688                 tag => {
2689                     crate::rt::read_unknown_or_skip_group(tag, is, self.special_fields.mut_unknown_fields())?;
2690                 },
2691             };
2692         }
2693         ::std::result::Result::Ok(())
2694     }
2695 
2696     // Compute sizes of nested messages
2697     #[allow(unused_variables)]
compute_size(&self) -> u642698     fn compute_size(&self) -> u64 {
2699         let mut my_size = 0;
2700         if let Some(v) = self.name.as_ref() {
2701             my_size += crate::rt::string_size(1, &v);
2702         }
2703         for value in &self.value {
2704             let len = value.compute_size();
2705             my_size += 1 + crate::rt::compute_raw_varint64_size(len) + len;
2706         };
2707         if let Some(v) = self.options.as_ref() {
2708             let len = v.compute_size();
2709             my_size += 1 + crate::rt::compute_raw_varint64_size(len) + len;
2710         }
2711         for value in &self.reserved_range {
2712             let len = value.compute_size();
2713             my_size += 1 + crate::rt::compute_raw_varint64_size(len) + len;
2714         };
2715         for value in &self.reserved_name {
2716             my_size += crate::rt::string_size(5, &value);
2717         };
2718         my_size += crate::rt::unknown_fields_size(self.special_fields.unknown_fields());
2719         self.special_fields.cached_size().set(my_size as u32);
2720         my_size
2721     }
2722 
write_to_with_cached_sizes(&self, os: &mut crate::CodedOutputStream<'_>) -> crate::Result<()>2723     fn write_to_with_cached_sizes(&self, os: &mut crate::CodedOutputStream<'_>) -> crate::Result<()> {
2724         if let Some(v) = self.name.as_ref() {
2725             os.write_string(1, v)?;
2726         }
2727         for v in &self.value {
2728             crate::rt::write_message_field_with_cached_size(2, v, os)?;
2729         };
2730         if let Some(v) = self.options.as_ref() {
2731             crate::rt::write_message_field_with_cached_size(3, v, os)?;
2732         }
2733         for v in &self.reserved_range {
2734             crate::rt::write_message_field_with_cached_size(4, v, os)?;
2735         };
2736         for v in &self.reserved_name {
2737             os.write_string(5, &v)?;
2738         };
2739         os.write_unknown_fields(self.special_fields.unknown_fields())?;
2740         ::std::result::Result::Ok(())
2741     }
2742 
special_fields(&self) -> &crate::SpecialFields2743     fn special_fields(&self) -> &crate::SpecialFields {
2744         &self.special_fields
2745     }
2746 
mut_special_fields(&mut self) -> &mut crate::SpecialFields2747     fn mut_special_fields(&mut self) -> &mut crate::SpecialFields {
2748         &mut self.special_fields
2749     }
2750 
new() -> EnumDescriptorProto2751     fn new() -> EnumDescriptorProto {
2752         EnumDescriptorProto::new()
2753     }
2754 
clear(&mut self)2755     fn clear(&mut self) {
2756         self.name = ::std::option::Option::None;
2757         self.value.clear();
2758         self.options.clear();
2759         self.reserved_range.clear();
2760         self.reserved_name.clear();
2761         self.special_fields.clear();
2762     }
2763 
default_instance() -> &'static EnumDescriptorProto2764     fn default_instance() -> &'static EnumDescriptorProto {
2765         static instance: EnumDescriptorProto = EnumDescriptorProto {
2766             name: ::std::option::Option::None,
2767             value: ::std::vec::Vec::new(),
2768             options: crate::MessageField::none(),
2769             reserved_range: ::std::vec::Vec::new(),
2770             reserved_name: ::std::vec::Vec::new(),
2771             special_fields: crate::SpecialFields::new(),
2772         };
2773         &instance
2774     }
2775 }
2776 
2777 impl crate::MessageFull for EnumDescriptorProto {
descriptor() -> crate::reflect::MessageDescriptor2778     fn descriptor() -> crate::reflect::MessageDescriptor {
2779         static descriptor: crate::rt::Lazy<crate::reflect::MessageDescriptor> = crate::rt::Lazy::new();
2780         descriptor.get(|| file_descriptor().message_by_package_relative_name("EnumDescriptorProto").unwrap()).clone()
2781     }
2782 }
2783 
2784 impl ::std::fmt::Display for EnumDescriptorProto {
fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result2785     fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
2786         crate::text_format::fmt(self, f)
2787     }
2788 }
2789 
2790 impl crate::reflect::ProtobufValue for EnumDescriptorProto {
2791     type RuntimeType = crate::reflect::rt::RuntimeTypeMessage<Self>;
2792 }
2793 
2794 /// Nested message and enums of message `EnumDescriptorProto`
2795 pub mod enum_descriptor_proto {
2796     ///  Range of reserved numeric values. Reserved values may not be used by
2797     ///  entries in the same enum. Reserved ranges may not overlap.
2798     ///
2799     ///  Note that this is distinct from DescriptorProto.ReservedRange in that it
2800     ///  is inclusive such that it can appropriately represent the entire int32
2801     ///  domain.
2802     #[derive(PartialEq,Clone,Default,Debug)]
2803     // @@protoc_insertion_point(message:google.protobuf.EnumDescriptorProto.EnumReservedRange)
2804     pub struct EnumReservedRange {
2805         // message fields
2806         // @@protoc_insertion_point(field:google.protobuf.EnumDescriptorProto.EnumReservedRange.start)
2807         pub start: ::std::option::Option<i32>,
2808         // @@protoc_insertion_point(field:google.protobuf.EnumDescriptorProto.EnumReservedRange.end)
2809         pub end: ::std::option::Option<i32>,
2810         // special fields
2811         // @@protoc_insertion_point(special_field:google.protobuf.EnumDescriptorProto.EnumReservedRange.special_fields)
2812         pub special_fields: crate::SpecialFields,
2813     }
2814 
2815     impl<'a> ::std::default::Default for &'a EnumReservedRange {
default() -> &'a EnumReservedRange2816         fn default() -> &'a EnumReservedRange {
2817             <EnumReservedRange as crate::Message>::default_instance()
2818         }
2819     }
2820 
2821     impl EnumReservedRange {
new() -> EnumReservedRange2822         pub fn new() -> EnumReservedRange {
2823             ::std::default::Default::default()
2824         }
2825 
2826         // optional int32 start = 1;
2827 
start(&self) -> i322828         pub fn start(&self) -> i32 {
2829             self.start.unwrap_or(0)
2830         }
2831 
clear_start(&mut self)2832         pub fn clear_start(&mut self) {
2833             self.start = ::std::option::Option::None;
2834         }
2835 
has_start(&self) -> bool2836         pub fn has_start(&self) -> bool {
2837             self.start.is_some()
2838         }
2839 
2840         // Param is passed by value, moved
set_start(&mut self, v: i32)2841         pub fn set_start(&mut self, v: i32) {
2842             self.start = ::std::option::Option::Some(v);
2843         }
2844 
2845         // optional int32 end = 2;
2846 
end(&self) -> i322847         pub fn end(&self) -> i32 {
2848             self.end.unwrap_or(0)
2849         }
2850 
clear_end(&mut self)2851         pub fn clear_end(&mut self) {
2852             self.end = ::std::option::Option::None;
2853         }
2854 
has_end(&self) -> bool2855         pub fn has_end(&self) -> bool {
2856             self.end.is_some()
2857         }
2858 
2859         // Param is passed by value, moved
set_end(&mut self, v: i32)2860         pub fn set_end(&mut self, v: i32) {
2861             self.end = ::std::option::Option::Some(v);
2862         }
2863 
generated_message_descriptor_data() -> crate::reflect::GeneratedMessageDescriptorData2864         pub(in super) fn generated_message_descriptor_data() -> crate::reflect::GeneratedMessageDescriptorData {
2865             let mut fields = ::std::vec::Vec::with_capacity(2);
2866             let mut oneofs = ::std::vec::Vec::with_capacity(0);
2867             fields.push(crate::reflect::rt::v2::make_option_accessor::<_, _>(
2868                 "start",
2869                 |m: &EnumReservedRange| { &m.start },
2870                 |m: &mut EnumReservedRange| { &mut m.start },
2871             ));
2872             fields.push(crate::reflect::rt::v2::make_option_accessor::<_, _>(
2873                 "end",
2874                 |m: &EnumReservedRange| { &m.end },
2875                 |m: &mut EnumReservedRange| { &mut m.end },
2876             ));
2877             crate::reflect::GeneratedMessageDescriptorData::new_2::<EnumReservedRange>(
2878                 "EnumDescriptorProto.EnumReservedRange",
2879                 fields,
2880                 oneofs,
2881             )
2882         }
2883     }
2884 
2885     impl crate::Message for EnumReservedRange {
2886         const NAME: &'static str = "EnumReservedRange";
2887 
is_initialized(&self) -> bool2888         fn is_initialized(&self) -> bool {
2889             true
2890         }
2891 
merge_from(&mut self, is: &mut crate::CodedInputStream<'_>) -> crate::Result<()>2892         fn merge_from(&mut self, is: &mut crate::CodedInputStream<'_>) -> crate::Result<()> {
2893             while let Some(tag) = is.read_raw_tag_or_eof()? {
2894                 match tag {
2895                     8 => {
2896                         self.start = ::std::option::Option::Some(is.read_int32()?);
2897                     },
2898                     16 => {
2899                         self.end = ::std::option::Option::Some(is.read_int32()?);
2900                     },
2901                     tag => {
2902                         crate::rt::read_unknown_or_skip_group(tag, is, self.special_fields.mut_unknown_fields())?;
2903                     },
2904                 };
2905             }
2906             ::std::result::Result::Ok(())
2907         }
2908 
2909         // Compute sizes of nested messages
2910         #[allow(unused_variables)]
compute_size(&self) -> u642911         fn compute_size(&self) -> u64 {
2912             let mut my_size = 0;
2913             if let Some(v) = self.start {
2914                 my_size += crate::rt::int32_size(1, v);
2915             }
2916             if let Some(v) = self.end {
2917                 my_size += crate::rt::int32_size(2, v);
2918             }
2919             my_size += crate::rt::unknown_fields_size(self.special_fields.unknown_fields());
2920             self.special_fields.cached_size().set(my_size as u32);
2921             my_size
2922         }
2923 
write_to_with_cached_sizes(&self, os: &mut crate::CodedOutputStream<'_>) -> crate::Result<()>2924         fn write_to_with_cached_sizes(&self, os: &mut crate::CodedOutputStream<'_>) -> crate::Result<()> {
2925             if let Some(v) = self.start {
2926                 os.write_int32(1, v)?;
2927             }
2928             if let Some(v) = self.end {
2929                 os.write_int32(2, v)?;
2930             }
2931             os.write_unknown_fields(self.special_fields.unknown_fields())?;
2932             ::std::result::Result::Ok(())
2933         }
2934 
special_fields(&self) -> &crate::SpecialFields2935         fn special_fields(&self) -> &crate::SpecialFields {
2936             &self.special_fields
2937         }
2938 
mut_special_fields(&mut self) -> &mut crate::SpecialFields2939         fn mut_special_fields(&mut self) -> &mut crate::SpecialFields {
2940             &mut self.special_fields
2941         }
2942 
new() -> EnumReservedRange2943         fn new() -> EnumReservedRange {
2944             EnumReservedRange::new()
2945         }
2946 
clear(&mut self)2947         fn clear(&mut self) {
2948             self.start = ::std::option::Option::None;
2949             self.end = ::std::option::Option::None;
2950             self.special_fields.clear();
2951         }
2952 
default_instance() -> &'static EnumReservedRange2953         fn default_instance() -> &'static EnumReservedRange {
2954             static instance: EnumReservedRange = EnumReservedRange {
2955                 start: ::std::option::Option::None,
2956                 end: ::std::option::Option::None,
2957                 special_fields: crate::SpecialFields::new(),
2958             };
2959             &instance
2960         }
2961     }
2962 
2963     impl crate::MessageFull for EnumReservedRange {
descriptor() -> crate::reflect::MessageDescriptor2964         fn descriptor() -> crate::reflect::MessageDescriptor {
2965             static descriptor: crate::rt::Lazy<crate::reflect::MessageDescriptor> = crate::rt::Lazy::new();
2966             descriptor.get(|| super::file_descriptor().message_by_package_relative_name("EnumDescriptorProto.EnumReservedRange").unwrap()).clone()
2967         }
2968     }
2969 
2970     impl ::std::fmt::Display for EnumReservedRange {
fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result2971         fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
2972             crate::text_format::fmt(self, f)
2973         }
2974     }
2975 
2976     impl crate::reflect::ProtobufValue for EnumReservedRange {
2977         type RuntimeType = crate::reflect::rt::RuntimeTypeMessage<Self>;
2978     }
2979 }
2980 
2981 ///  Describes a value within an enum.
2982 #[derive(PartialEq,Clone,Default,Debug)]
2983 // @@protoc_insertion_point(message:google.protobuf.EnumValueDescriptorProto)
2984 pub struct EnumValueDescriptorProto {
2985     // message fields
2986     // @@protoc_insertion_point(field:google.protobuf.EnumValueDescriptorProto.name)
2987     pub name: ::std::option::Option<::std::string::String>,
2988     // @@protoc_insertion_point(field:google.protobuf.EnumValueDescriptorProto.number)
2989     pub number: ::std::option::Option<i32>,
2990     // @@protoc_insertion_point(field:google.protobuf.EnumValueDescriptorProto.options)
2991     pub options: crate::MessageField<EnumValueOptions>,
2992     // special fields
2993     // @@protoc_insertion_point(special_field:google.protobuf.EnumValueDescriptorProto.special_fields)
2994     pub special_fields: crate::SpecialFields,
2995 }
2996 
2997 impl<'a> ::std::default::Default for &'a EnumValueDescriptorProto {
default() -> &'a EnumValueDescriptorProto2998     fn default() -> &'a EnumValueDescriptorProto {
2999         <EnumValueDescriptorProto as crate::Message>::default_instance()
3000     }
3001 }
3002 
3003 impl EnumValueDescriptorProto {
new() -> EnumValueDescriptorProto3004     pub fn new() -> EnumValueDescriptorProto {
3005         ::std::default::Default::default()
3006     }
3007 
3008     // optional string name = 1;
3009 
name(&self) -> &str3010     pub fn name(&self) -> &str {
3011         match self.name.as_ref() {
3012             Some(v) => v,
3013             None => "",
3014         }
3015     }
3016 
clear_name(&mut self)3017     pub fn clear_name(&mut self) {
3018         self.name = ::std::option::Option::None;
3019     }
3020 
has_name(&self) -> bool3021     pub fn has_name(&self) -> bool {
3022         self.name.is_some()
3023     }
3024 
3025     // Param is passed by value, moved
set_name(&mut self, v: ::std::string::String)3026     pub fn set_name(&mut self, v: ::std::string::String) {
3027         self.name = ::std::option::Option::Some(v);
3028     }
3029 
3030     // Mutable pointer to the field.
3031     // If field is not initialized, it is initialized with default value first.
mut_name(&mut self) -> &mut ::std::string::String3032     pub fn mut_name(&mut self) -> &mut ::std::string::String {
3033         if self.name.is_none() {
3034             self.name = ::std::option::Option::Some(::std::string::String::new());
3035         }
3036         self.name.as_mut().unwrap()
3037     }
3038 
3039     // Take field
take_name(&mut self) -> ::std::string::String3040     pub fn take_name(&mut self) -> ::std::string::String {
3041         self.name.take().unwrap_or_else(|| ::std::string::String::new())
3042     }
3043 
3044     // optional int32 number = 2;
3045 
number(&self) -> i323046     pub fn number(&self) -> i32 {
3047         self.number.unwrap_or(0)
3048     }
3049 
clear_number(&mut self)3050     pub fn clear_number(&mut self) {
3051         self.number = ::std::option::Option::None;
3052     }
3053 
has_number(&self) -> bool3054     pub fn has_number(&self) -> bool {
3055         self.number.is_some()
3056     }
3057 
3058     // Param is passed by value, moved
set_number(&mut self, v: i32)3059     pub fn set_number(&mut self, v: i32) {
3060         self.number = ::std::option::Option::Some(v);
3061     }
3062 
generated_message_descriptor_data() -> crate::reflect::GeneratedMessageDescriptorData3063     fn generated_message_descriptor_data() -> crate::reflect::GeneratedMessageDescriptorData {
3064         let mut fields = ::std::vec::Vec::with_capacity(3);
3065         let mut oneofs = ::std::vec::Vec::with_capacity(0);
3066         fields.push(crate::reflect::rt::v2::make_option_accessor::<_, _>(
3067             "name",
3068             |m: &EnumValueDescriptorProto| { &m.name },
3069             |m: &mut EnumValueDescriptorProto| { &mut m.name },
3070         ));
3071         fields.push(crate::reflect::rt::v2::make_option_accessor::<_, _>(
3072             "number",
3073             |m: &EnumValueDescriptorProto| { &m.number },
3074             |m: &mut EnumValueDescriptorProto| { &mut m.number },
3075         ));
3076         fields.push(crate::reflect::rt::v2::make_message_field_accessor::<_, EnumValueOptions>(
3077             "options",
3078             |m: &EnumValueDescriptorProto| { &m.options },
3079             |m: &mut EnumValueDescriptorProto| { &mut m.options },
3080         ));
3081         crate::reflect::GeneratedMessageDescriptorData::new_2::<EnumValueDescriptorProto>(
3082             "EnumValueDescriptorProto",
3083             fields,
3084             oneofs,
3085         )
3086     }
3087 }
3088 
3089 impl crate::Message for EnumValueDescriptorProto {
3090     const NAME: &'static str = "EnumValueDescriptorProto";
3091 
is_initialized(&self) -> bool3092     fn is_initialized(&self) -> bool {
3093         for v in &self.options {
3094             if !v.is_initialized() {
3095                 return false;
3096             }
3097         };
3098         true
3099     }
3100 
merge_from(&mut self, is: &mut crate::CodedInputStream<'_>) -> crate::Result<()>3101     fn merge_from(&mut self, is: &mut crate::CodedInputStream<'_>) -> crate::Result<()> {
3102         while let Some(tag) = is.read_raw_tag_or_eof()? {
3103             match tag {
3104                 10 => {
3105                     self.name = ::std::option::Option::Some(is.read_string()?);
3106                 },
3107                 16 => {
3108                     self.number = ::std::option::Option::Some(is.read_int32()?);
3109                 },
3110                 26 => {
3111                     crate::rt::read_singular_message_into_field(is, &mut self.options)?;
3112                 },
3113                 tag => {
3114                     crate::rt::read_unknown_or_skip_group(tag, is, self.special_fields.mut_unknown_fields())?;
3115                 },
3116             };
3117         }
3118         ::std::result::Result::Ok(())
3119     }
3120 
3121     // Compute sizes of nested messages
3122     #[allow(unused_variables)]
compute_size(&self) -> u643123     fn compute_size(&self) -> u64 {
3124         let mut my_size = 0;
3125         if let Some(v) = self.name.as_ref() {
3126             my_size += crate::rt::string_size(1, &v);
3127         }
3128         if let Some(v) = self.number {
3129             my_size += crate::rt::int32_size(2, v);
3130         }
3131         if let Some(v) = self.options.as_ref() {
3132             let len = v.compute_size();
3133             my_size += 1 + crate::rt::compute_raw_varint64_size(len) + len;
3134         }
3135         my_size += crate::rt::unknown_fields_size(self.special_fields.unknown_fields());
3136         self.special_fields.cached_size().set(my_size as u32);
3137         my_size
3138     }
3139 
write_to_with_cached_sizes(&self, os: &mut crate::CodedOutputStream<'_>) -> crate::Result<()>3140     fn write_to_with_cached_sizes(&self, os: &mut crate::CodedOutputStream<'_>) -> crate::Result<()> {
3141         if let Some(v) = self.name.as_ref() {
3142             os.write_string(1, v)?;
3143         }
3144         if let Some(v) = self.number {
3145             os.write_int32(2, v)?;
3146         }
3147         if let Some(v) = self.options.as_ref() {
3148             crate::rt::write_message_field_with_cached_size(3, v, os)?;
3149         }
3150         os.write_unknown_fields(self.special_fields.unknown_fields())?;
3151         ::std::result::Result::Ok(())
3152     }
3153 
special_fields(&self) -> &crate::SpecialFields3154     fn special_fields(&self) -> &crate::SpecialFields {
3155         &self.special_fields
3156     }
3157 
mut_special_fields(&mut self) -> &mut crate::SpecialFields3158     fn mut_special_fields(&mut self) -> &mut crate::SpecialFields {
3159         &mut self.special_fields
3160     }
3161 
new() -> EnumValueDescriptorProto3162     fn new() -> EnumValueDescriptorProto {
3163         EnumValueDescriptorProto::new()
3164     }
3165 
clear(&mut self)3166     fn clear(&mut self) {
3167         self.name = ::std::option::Option::None;
3168         self.number = ::std::option::Option::None;
3169         self.options.clear();
3170         self.special_fields.clear();
3171     }
3172 
default_instance() -> &'static EnumValueDescriptorProto3173     fn default_instance() -> &'static EnumValueDescriptorProto {
3174         static instance: EnumValueDescriptorProto = EnumValueDescriptorProto {
3175             name: ::std::option::Option::None,
3176             number: ::std::option::Option::None,
3177             options: crate::MessageField::none(),
3178             special_fields: crate::SpecialFields::new(),
3179         };
3180         &instance
3181     }
3182 }
3183 
3184 impl crate::MessageFull for EnumValueDescriptorProto {
descriptor() -> crate::reflect::MessageDescriptor3185     fn descriptor() -> crate::reflect::MessageDescriptor {
3186         static descriptor: crate::rt::Lazy<crate::reflect::MessageDescriptor> = crate::rt::Lazy::new();
3187         descriptor.get(|| file_descriptor().message_by_package_relative_name("EnumValueDescriptorProto").unwrap()).clone()
3188     }
3189 }
3190 
3191 impl ::std::fmt::Display for EnumValueDescriptorProto {
fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result3192     fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
3193         crate::text_format::fmt(self, f)
3194     }
3195 }
3196 
3197 impl crate::reflect::ProtobufValue for EnumValueDescriptorProto {
3198     type RuntimeType = crate::reflect::rt::RuntimeTypeMessage<Self>;
3199 }
3200 
3201 ///  Describes a service.
3202 #[derive(PartialEq,Clone,Default,Debug)]
3203 // @@protoc_insertion_point(message:google.protobuf.ServiceDescriptorProto)
3204 pub struct ServiceDescriptorProto {
3205     // message fields
3206     // @@protoc_insertion_point(field:google.protobuf.ServiceDescriptorProto.name)
3207     pub name: ::std::option::Option<::std::string::String>,
3208     // @@protoc_insertion_point(field:google.protobuf.ServiceDescriptorProto.method)
3209     pub method: ::std::vec::Vec<MethodDescriptorProto>,
3210     // @@protoc_insertion_point(field:google.protobuf.ServiceDescriptorProto.options)
3211     pub options: crate::MessageField<ServiceOptions>,
3212     // special fields
3213     // @@protoc_insertion_point(special_field:google.protobuf.ServiceDescriptorProto.special_fields)
3214     pub special_fields: crate::SpecialFields,
3215 }
3216 
3217 impl<'a> ::std::default::Default for &'a ServiceDescriptorProto {
default() -> &'a ServiceDescriptorProto3218     fn default() -> &'a ServiceDescriptorProto {
3219         <ServiceDescriptorProto as crate::Message>::default_instance()
3220     }
3221 }
3222 
3223 impl ServiceDescriptorProto {
new() -> ServiceDescriptorProto3224     pub fn new() -> ServiceDescriptorProto {
3225         ::std::default::Default::default()
3226     }
3227 
3228     // optional string name = 1;
3229 
name(&self) -> &str3230     pub fn name(&self) -> &str {
3231         match self.name.as_ref() {
3232             Some(v) => v,
3233             None => "",
3234         }
3235     }
3236 
clear_name(&mut self)3237     pub fn clear_name(&mut self) {
3238         self.name = ::std::option::Option::None;
3239     }
3240 
has_name(&self) -> bool3241     pub fn has_name(&self) -> bool {
3242         self.name.is_some()
3243     }
3244 
3245     // Param is passed by value, moved
set_name(&mut self, v: ::std::string::String)3246     pub fn set_name(&mut self, v: ::std::string::String) {
3247         self.name = ::std::option::Option::Some(v);
3248     }
3249 
3250     // Mutable pointer to the field.
3251     // If field is not initialized, it is initialized with default value first.
mut_name(&mut self) -> &mut ::std::string::String3252     pub fn mut_name(&mut self) -> &mut ::std::string::String {
3253         if self.name.is_none() {
3254             self.name = ::std::option::Option::Some(::std::string::String::new());
3255         }
3256         self.name.as_mut().unwrap()
3257     }
3258 
3259     // Take field
take_name(&mut self) -> ::std::string::String3260     pub fn take_name(&mut self) -> ::std::string::String {
3261         self.name.take().unwrap_or_else(|| ::std::string::String::new())
3262     }
3263 
generated_message_descriptor_data() -> crate::reflect::GeneratedMessageDescriptorData3264     fn generated_message_descriptor_data() -> crate::reflect::GeneratedMessageDescriptorData {
3265         let mut fields = ::std::vec::Vec::with_capacity(3);
3266         let mut oneofs = ::std::vec::Vec::with_capacity(0);
3267         fields.push(crate::reflect::rt::v2::make_option_accessor::<_, _>(
3268             "name",
3269             |m: &ServiceDescriptorProto| { &m.name },
3270             |m: &mut ServiceDescriptorProto| { &mut m.name },
3271         ));
3272         fields.push(crate::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
3273             "method",
3274             |m: &ServiceDescriptorProto| { &m.method },
3275             |m: &mut ServiceDescriptorProto| { &mut m.method },
3276         ));
3277         fields.push(crate::reflect::rt::v2::make_message_field_accessor::<_, ServiceOptions>(
3278             "options",
3279             |m: &ServiceDescriptorProto| { &m.options },
3280             |m: &mut ServiceDescriptorProto| { &mut m.options },
3281         ));
3282         crate::reflect::GeneratedMessageDescriptorData::new_2::<ServiceDescriptorProto>(
3283             "ServiceDescriptorProto",
3284             fields,
3285             oneofs,
3286         )
3287     }
3288 }
3289 
3290 impl crate::Message for ServiceDescriptorProto {
3291     const NAME: &'static str = "ServiceDescriptorProto";
3292 
is_initialized(&self) -> bool3293     fn is_initialized(&self) -> bool {
3294         for v in &self.method {
3295             if !v.is_initialized() {
3296                 return false;
3297             }
3298         };
3299         for v in &self.options {
3300             if !v.is_initialized() {
3301                 return false;
3302             }
3303         };
3304         true
3305     }
3306 
merge_from(&mut self, is: &mut crate::CodedInputStream<'_>) -> crate::Result<()>3307     fn merge_from(&mut self, is: &mut crate::CodedInputStream<'_>) -> crate::Result<()> {
3308         while let Some(tag) = is.read_raw_tag_or_eof()? {
3309             match tag {
3310                 10 => {
3311                     self.name = ::std::option::Option::Some(is.read_string()?);
3312                 },
3313                 18 => {
3314                     self.method.push(is.read_message()?);
3315                 },
3316                 26 => {
3317                     crate::rt::read_singular_message_into_field(is, &mut self.options)?;
3318                 },
3319                 tag => {
3320                     crate::rt::read_unknown_or_skip_group(tag, is, self.special_fields.mut_unknown_fields())?;
3321                 },
3322             };
3323         }
3324         ::std::result::Result::Ok(())
3325     }
3326 
3327     // Compute sizes of nested messages
3328     #[allow(unused_variables)]
compute_size(&self) -> u643329     fn compute_size(&self) -> u64 {
3330         let mut my_size = 0;
3331         if let Some(v) = self.name.as_ref() {
3332             my_size += crate::rt::string_size(1, &v);
3333         }
3334         for value in &self.method {
3335             let len = value.compute_size();
3336             my_size += 1 + crate::rt::compute_raw_varint64_size(len) + len;
3337         };
3338         if let Some(v) = self.options.as_ref() {
3339             let len = v.compute_size();
3340             my_size += 1 + crate::rt::compute_raw_varint64_size(len) + len;
3341         }
3342         my_size += crate::rt::unknown_fields_size(self.special_fields.unknown_fields());
3343         self.special_fields.cached_size().set(my_size as u32);
3344         my_size
3345     }
3346 
write_to_with_cached_sizes(&self, os: &mut crate::CodedOutputStream<'_>) -> crate::Result<()>3347     fn write_to_with_cached_sizes(&self, os: &mut crate::CodedOutputStream<'_>) -> crate::Result<()> {
3348         if let Some(v) = self.name.as_ref() {
3349             os.write_string(1, v)?;
3350         }
3351         for v in &self.method {
3352             crate::rt::write_message_field_with_cached_size(2, v, os)?;
3353         };
3354         if let Some(v) = self.options.as_ref() {
3355             crate::rt::write_message_field_with_cached_size(3, v, os)?;
3356         }
3357         os.write_unknown_fields(self.special_fields.unknown_fields())?;
3358         ::std::result::Result::Ok(())
3359     }
3360 
special_fields(&self) -> &crate::SpecialFields3361     fn special_fields(&self) -> &crate::SpecialFields {
3362         &self.special_fields
3363     }
3364 
mut_special_fields(&mut self) -> &mut crate::SpecialFields3365     fn mut_special_fields(&mut self) -> &mut crate::SpecialFields {
3366         &mut self.special_fields
3367     }
3368 
new() -> ServiceDescriptorProto3369     fn new() -> ServiceDescriptorProto {
3370         ServiceDescriptorProto::new()
3371     }
3372 
clear(&mut self)3373     fn clear(&mut self) {
3374         self.name = ::std::option::Option::None;
3375         self.method.clear();
3376         self.options.clear();
3377         self.special_fields.clear();
3378     }
3379 
default_instance() -> &'static ServiceDescriptorProto3380     fn default_instance() -> &'static ServiceDescriptorProto {
3381         static instance: ServiceDescriptorProto = ServiceDescriptorProto {
3382             name: ::std::option::Option::None,
3383             method: ::std::vec::Vec::new(),
3384             options: crate::MessageField::none(),
3385             special_fields: crate::SpecialFields::new(),
3386         };
3387         &instance
3388     }
3389 }
3390 
3391 impl crate::MessageFull for ServiceDescriptorProto {
descriptor() -> crate::reflect::MessageDescriptor3392     fn descriptor() -> crate::reflect::MessageDescriptor {
3393         static descriptor: crate::rt::Lazy<crate::reflect::MessageDescriptor> = crate::rt::Lazy::new();
3394         descriptor.get(|| file_descriptor().message_by_package_relative_name("ServiceDescriptorProto").unwrap()).clone()
3395     }
3396 }
3397 
3398 impl ::std::fmt::Display for ServiceDescriptorProto {
fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result3399     fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
3400         crate::text_format::fmt(self, f)
3401     }
3402 }
3403 
3404 impl crate::reflect::ProtobufValue for ServiceDescriptorProto {
3405     type RuntimeType = crate::reflect::rt::RuntimeTypeMessage<Self>;
3406 }
3407 
3408 ///  Describes a method of a service.
3409 #[derive(PartialEq,Clone,Default,Debug)]
3410 // @@protoc_insertion_point(message:google.protobuf.MethodDescriptorProto)
3411 pub struct MethodDescriptorProto {
3412     // message fields
3413     // @@protoc_insertion_point(field:google.protobuf.MethodDescriptorProto.name)
3414     pub name: ::std::option::Option<::std::string::String>,
3415     ///  Input and output type names.  These are resolved in the same way as
3416     ///  FieldDescriptorProto.type_name, but must refer to a message type.
3417     // @@protoc_insertion_point(field:google.protobuf.MethodDescriptorProto.input_type)
3418     pub input_type: ::std::option::Option<::std::string::String>,
3419     // @@protoc_insertion_point(field:google.protobuf.MethodDescriptorProto.output_type)
3420     pub output_type: ::std::option::Option<::std::string::String>,
3421     // @@protoc_insertion_point(field:google.protobuf.MethodDescriptorProto.options)
3422     pub options: crate::MessageField<MethodOptions>,
3423     ///  Identifies if client streams multiple client messages
3424     // @@protoc_insertion_point(field:google.protobuf.MethodDescriptorProto.client_streaming)
3425     pub client_streaming: ::std::option::Option<bool>,
3426     ///  Identifies if server streams multiple server messages
3427     // @@protoc_insertion_point(field:google.protobuf.MethodDescriptorProto.server_streaming)
3428     pub server_streaming: ::std::option::Option<bool>,
3429     // special fields
3430     // @@protoc_insertion_point(special_field:google.protobuf.MethodDescriptorProto.special_fields)
3431     pub special_fields: crate::SpecialFields,
3432 }
3433 
3434 impl<'a> ::std::default::Default for &'a MethodDescriptorProto {
default() -> &'a MethodDescriptorProto3435     fn default() -> &'a MethodDescriptorProto {
3436         <MethodDescriptorProto as crate::Message>::default_instance()
3437     }
3438 }
3439 
3440 impl MethodDescriptorProto {
new() -> MethodDescriptorProto3441     pub fn new() -> MethodDescriptorProto {
3442         ::std::default::Default::default()
3443     }
3444 
3445     // optional string name = 1;
3446 
name(&self) -> &str3447     pub fn name(&self) -> &str {
3448         match self.name.as_ref() {
3449             Some(v) => v,
3450             None => "",
3451         }
3452     }
3453 
clear_name(&mut self)3454     pub fn clear_name(&mut self) {
3455         self.name = ::std::option::Option::None;
3456     }
3457 
has_name(&self) -> bool3458     pub fn has_name(&self) -> bool {
3459         self.name.is_some()
3460     }
3461 
3462     // Param is passed by value, moved
set_name(&mut self, v: ::std::string::String)3463     pub fn set_name(&mut self, v: ::std::string::String) {
3464         self.name = ::std::option::Option::Some(v);
3465     }
3466 
3467     // Mutable pointer to the field.
3468     // If field is not initialized, it is initialized with default value first.
mut_name(&mut self) -> &mut ::std::string::String3469     pub fn mut_name(&mut self) -> &mut ::std::string::String {
3470         if self.name.is_none() {
3471             self.name = ::std::option::Option::Some(::std::string::String::new());
3472         }
3473         self.name.as_mut().unwrap()
3474     }
3475 
3476     // Take field
take_name(&mut self) -> ::std::string::String3477     pub fn take_name(&mut self) -> ::std::string::String {
3478         self.name.take().unwrap_or_else(|| ::std::string::String::new())
3479     }
3480 
3481     // optional string input_type = 2;
3482 
input_type(&self) -> &str3483     pub fn input_type(&self) -> &str {
3484         match self.input_type.as_ref() {
3485             Some(v) => v,
3486             None => "",
3487         }
3488     }
3489 
clear_input_type(&mut self)3490     pub fn clear_input_type(&mut self) {
3491         self.input_type = ::std::option::Option::None;
3492     }
3493 
has_input_type(&self) -> bool3494     pub fn has_input_type(&self) -> bool {
3495         self.input_type.is_some()
3496     }
3497 
3498     // Param is passed by value, moved
set_input_type(&mut self, v: ::std::string::String)3499     pub fn set_input_type(&mut self, v: ::std::string::String) {
3500         self.input_type = ::std::option::Option::Some(v);
3501     }
3502 
3503     // Mutable pointer to the field.
3504     // If field is not initialized, it is initialized with default value first.
mut_input_type(&mut self) -> &mut ::std::string::String3505     pub fn mut_input_type(&mut self) -> &mut ::std::string::String {
3506         if self.input_type.is_none() {
3507             self.input_type = ::std::option::Option::Some(::std::string::String::new());
3508         }
3509         self.input_type.as_mut().unwrap()
3510     }
3511 
3512     // Take field
take_input_type(&mut self) -> ::std::string::String3513     pub fn take_input_type(&mut self) -> ::std::string::String {
3514         self.input_type.take().unwrap_or_else(|| ::std::string::String::new())
3515     }
3516 
3517     // optional string output_type = 3;
3518 
output_type(&self) -> &str3519     pub fn output_type(&self) -> &str {
3520         match self.output_type.as_ref() {
3521             Some(v) => v,
3522             None => "",
3523         }
3524     }
3525 
clear_output_type(&mut self)3526     pub fn clear_output_type(&mut self) {
3527         self.output_type = ::std::option::Option::None;
3528     }
3529 
has_output_type(&self) -> bool3530     pub fn has_output_type(&self) -> bool {
3531         self.output_type.is_some()
3532     }
3533 
3534     // Param is passed by value, moved
set_output_type(&mut self, v: ::std::string::String)3535     pub fn set_output_type(&mut self, v: ::std::string::String) {
3536         self.output_type = ::std::option::Option::Some(v);
3537     }
3538 
3539     // Mutable pointer to the field.
3540     // If field is not initialized, it is initialized with default value first.
mut_output_type(&mut self) -> &mut ::std::string::String3541     pub fn mut_output_type(&mut self) -> &mut ::std::string::String {
3542         if self.output_type.is_none() {
3543             self.output_type = ::std::option::Option::Some(::std::string::String::new());
3544         }
3545         self.output_type.as_mut().unwrap()
3546     }
3547 
3548     // Take field
take_output_type(&mut self) -> ::std::string::String3549     pub fn take_output_type(&mut self) -> ::std::string::String {
3550         self.output_type.take().unwrap_or_else(|| ::std::string::String::new())
3551     }
3552 
3553     // optional bool client_streaming = 5;
3554 
client_streaming(&self) -> bool3555     pub fn client_streaming(&self) -> bool {
3556         self.client_streaming.unwrap_or(false)
3557     }
3558 
clear_client_streaming(&mut self)3559     pub fn clear_client_streaming(&mut self) {
3560         self.client_streaming = ::std::option::Option::None;
3561     }
3562 
has_client_streaming(&self) -> bool3563     pub fn has_client_streaming(&self) -> bool {
3564         self.client_streaming.is_some()
3565     }
3566 
3567     // Param is passed by value, moved
set_client_streaming(&mut self, v: bool)3568     pub fn set_client_streaming(&mut self, v: bool) {
3569         self.client_streaming = ::std::option::Option::Some(v);
3570     }
3571 
3572     // optional bool server_streaming = 6;
3573 
server_streaming(&self) -> bool3574     pub fn server_streaming(&self) -> bool {
3575         self.server_streaming.unwrap_or(false)
3576     }
3577 
clear_server_streaming(&mut self)3578     pub fn clear_server_streaming(&mut self) {
3579         self.server_streaming = ::std::option::Option::None;
3580     }
3581 
has_server_streaming(&self) -> bool3582     pub fn has_server_streaming(&self) -> bool {
3583         self.server_streaming.is_some()
3584     }
3585 
3586     // Param is passed by value, moved
set_server_streaming(&mut self, v: bool)3587     pub fn set_server_streaming(&mut self, v: bool) {
3588         self.server_streaming = ::std::option::Option::Some(v);
3589     }
3590 
generated_message_descriptor_data() -> crate::reflect::GeneratedMessageDescriptorData3591     fn generated_message_descriptor_data() -> crate::reflect::GeneratedMessageDescriptorData {
3592         let mut fields = ::std::vec::Vec::with_capacity(6);
3593         let mut oneofs = ::std::vec::Vec::with_capacity(0);
3594         fields.push(crate::reflect::rt::v2::make_option_accessor::<_, _>(
3595             "name",
3596             |m: &MethodDescriptorProto| { &m.name },
3597             |m: &mut MethodDescriptorProto| { &mut m.name },
3598         ));
3599         fields.push(crate::reflect::rt::v2::make_option_accessor::<_, _>(
3600             "input_type",
3601             |m: &MethodDescriptorProto| { &m.input_type },
3602             |m: &mut MethodDescriptorProto| { &mut m.input_type },
3603         ));
3604         fields.push(crate::reflect::rt::v2::make_option_accessor::<_, _>(
3605             "output_type",
3606             |m: &MethodDescriptorProto| { &m.output_type },
3607             |m: &mut MethodDescriptorProto| { &mut m.output_type },
3608         ));
3609         fields.push(crate::reflect::rt::v2::make_message_field_accessor::<_, MethodOptions>(
3610             "options",
3611             |m: &MethodDescriptorProto| { &m.options },
3612             |m: &mut MethodDescriptorProto| { &mut m.options },
3613         ));
3614         fields.push(crate::reflect::rt::v2::make_option_accessor::<_, _>(
3615             "client_streaming",
3616             |m: &MethodDescriptorProto| { &m.client_streaming },
3617             |m: &mut MethodDescriptorProto| { &mut m.client_streaming },
3618         ));
3619         fields.push(crate::reflect::rt::v2::make_option_accessor::<_, _>(
3620             "server_streaming",
3621             |m: &MethodDescriptorProto| { &m.server_streaming },
3622             |m: &mut MethodDescriptorProto| { &mut m.server_streaming },
3623         ));
3624         crate::reflect::GeneratedMessageDescriptorData::new_2::<MethodDescriptorProto>(
3625             "MethodDescriptorProto",
3626             fields,
3627             oneofs,
3628         )
3629     }
3630 }
3631 
3632 impl crate::Message for MethodDescriptorProto {
3633     const NAME: &'static str = "MethodDescriptorProto";
3634 
is_initialized(&self) -> bool3635     fn is_initialized(&self) -> bool {
3636         for v in &self.options {
3637             if !v.is_initialized() {
3638                 return false;
3639             }
3640         };
3641         true
3642     }
3643 
merge_from(&mut self, is: &mut crate::CodedInputStream<'_>) -> crate::Result<()>3644     fn merge_from(&mut self, is: &mut crate::CodedInputStream<'_>) -> crate::Result<()> {
3645         while let Some(tag) = is.read_raw_tag_or_eof()? {
3646             match tag {
3647                 10 => {
3648                     self.name = ::std::option::Option::Some(is.read_string()?);
3649                 },
3650                 18 => {
3651                     self.input_type = ::std::option::Option::Some(is.read_string()?);
3652                 },
3653                 26 => {
3654                     self.output_type = ::std::option::Option::Some(is.read_string()?);
3655                 },
3656                 34 => {
3657                     crate::rt::read_singular_message_into_field(is, &mut self.options)?;
3658                 },
3659                 40 => {
3660                     self.client_streaming = ::std::option::Option::Some(is.read_bool()?);
3661                 },
3662                 48 => {
3663                     self.server_streaming = ::std::option::Option::Some(is.read_bool()?);
3664                 },
3665                 tag => {
3666                     crate::rt::read_unknown_or_skip_group(tag, is, self.special_fields.mut_unknown_fields())?;
3667                 },
3668             };
3669         }
3670         ::std::result::Result::Ok(())
3671     }
3672 
3673     // Compute sizes of nested messages
3674     #[allow(unused_variables)]
compute_size(&self) -> u643675     fn compute_size(&self) -> u64 {
3676         let mut my_size = 0;
3677         if let Some(v) = self.name.as_ref() {
3678             my_size += crate::rt::string_size(1, &v);
3679         }
3680         if let Some(v) = self.input_type.as_ref() {
3681             my_size += crate::rt::string_size(2, &v);
3682         }
3683         if let Some(v) = self.output_type.as_ref() {
3684             my_size += crate::rt::string_size(3, &v);
3685         }
3686         if let Some(v) = self.options.as_ref() {
3687             let len = v.compute_size();
3688             my_size += 1 + crate::rt::compute_raw_varint64_size(len) + len;
3689         }
3690         if let Some(v) = self.client_streaming {
3691             my_size += 1 + 1;
3692         }
3693         if let Some(v) = self.server_streaming {
3694             my_size += 1 + 1;
3695         }
3696         my_size += crate::rt::unknown_fields_size(self.special_fields.unknown_fields());
3697         self.special_fields.cached_size().set(my_size as u32);
3698         my_size
3699     }
3700 
write_to_with_cached_sizes(&self, os: &mut crate::CodedOutputStream<'_>) -> crate::Result<()>3701     fn write_to_with_cached_sizes(&self, os: &mut crate::CodedOutputStream<'_>) -> crate::Result<()> {
3702         if let Some(v) = self.name.as_ref() {
3703             os.write_string(1, v)?;
3704         }
3705         if let Some(v) = self.input_type.as_ref() {
3706             os.write_string(2, v)?;
3707         }
3708         if let Some(v) = self.output_type.as_ref() {
3709             os.write_string(3, v)?;
3710         }
3711         if let Some(v) = self.options.as_ref() {
3712             crate::rt::write_message_field_with_cached_size(4, v, os)?;
3713         }
3714         if let Some(v) = self.client_streaming {
3715             os.write_bool(5, v)?;
3716         }
3717         if let Some(v) = self.server_streaming {
3718             os.write_bool(6, v)?;
3719         }
3720         os.write_unknown_fields(self.special_fields.unknown_fields())?;
3721         ::std::result::Result::Ok(())
3722     }
3723 
special_fields(&self) -> &crate::SpecialFields3724     fn special_fields(&self) -> &crate::SpecialFields {
3725         &self.special_fields
3726     }
3727 
mut_special_fields(&mut self) -> &mut crate::SpecialFields3728     fn mut_special_fields(&mut self) -> &mut crate::SpecialFields {
3729         &mut self.special_fields
3730     }
3731 
new() -> MethodDescriptorProto3732     fn new() -> MethodDescriptorProto {
3733         MethodDescriptorProto::new()
3734     }
3735 
clear(&mut self)3736     fn clear(&mut self) {
3737         self.name = ::std::option::Option::None;
3738         self.input_type = ::std::option::Option::None;
3739         self.output_type = ::std::option::Option::None;
3740         self.options.clear();
3741         self.client_streaming = ::std::option::Option::None;
3742         self.server_streaming = ::std::option::Option::None;
3743         self.special_fields.clear();
3744     }
3745 
default_instance() -> &'static MethodDescriptorProto3746     fn default_instance() -> &'static MethodDescriptorProto {
3747         static instance: MethodDescriptorProto = MethodDescriptorProto {
3748             name: ::std::option::Option::None,
3749             input_type: ::std::option::Option::None,
3750             output_type: ::std::option::Option::None,
3751             options: crate::MessageField::none(),
3752             client_streaming: ::std::option::Option::None,
3753             server_streaming: ::std::option::Option::None,
3754             special_fields: crate::SpecialFields::new(),
3755         };
3756         &instance
3757     }
3758 }
3759 
3760 impl crate::MessageFull for MethodDescriptorProto {
descriptor() -> crate::reflect::MessageDescriptor3761     fn descriptor() -> crate::reflect::MessageDescriptor {
3762         static descriptor: crate::rt::Lazy<crate::reflect::MessageDescriptor> = crate::rt::Lazy::new();
3763         descriptor.get(|| file_descriptor().message_by_package_relative_name("MethodDescriptorProto").unwrap()).clone()
3764     }
3765 }
3766 
3767 impl ::std::fmt::Display for MethodDescriptorProto {
fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result3768     fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
3769         crate::text_format::fmt(self, f)
3770     }
3771 }
3772 
3773 impl crate::reflect::ProtobufValue for MethodDescriptorProto {
3774     type RuntimeType = crate::reflect::rt::RuntimeTypeMessage<Self>;
3775 }
3776 
3777 #[derive(PartialEq,Clone,Default,Debug)]
3778 // @@protoc_insertion_point(message:google.protobuf.FileOptions)
3779 pub struct FileOptions {
3780     // message fields
3781     ///  Sets the Java package where classes generated from this .proto will be
3782     ///  placed.  By default, the proto package is used, but this is often
3783     ///  inappropriate because proto packages do not normally start with backwards
3784     ///  domain names.
3785     // @@protoc_insertion_point(field:google.protobuf.FileOptions.java_package)
3786     pub java_package: ::std::option::Option<::std::string::String>,
3787     ///  Controls the name of the wrapper Java class generated for the .proto file.
3788     ///  That class will always contain the .proto file's getDescriptor() method as
3789     ///  well as any top-level extensions defined in the .proto file.
3790     ///  If java_multiple_files is disabled, then all the other classes from the
3791     ///  .proto file will be nested inside the single wrapper outer class.
3792     // @@protoc_insertion_point(field:google.protobuf.FileOptions.java_outer_classname)
3793     pub java_outer_classname: ::std::option::Option<::std::string::String>,
3794     ///  If enabled, then the Java code generator will generate a separate .java
3795     ///  file for each top-level message, enum, and service defined in the .proto
3796     ///  file.  Thus, these types will *not* be nested inside the wrapper class
3797     ///  named by java_outer_classname.  However, the wrapper class will still be
3798     ///  generated to contain the file's getDescriptor() method as well as any
3799     ///  top-level extensions defined in the file.
3800     // @@protoc_insertion_point(field:google.protobuf.FileOptions.java_multiple_files)
3801     pub java_multiple_files: ::std::option::Option<bool>,
3802     ///  This option does nothing.
3803     // @@protoc_insertion_point(field:google.protobuf.FileOptions.java_generate_equals_and_hash)
3804     pub java_generate_equals_and_hash: ::std::option::Option<bool>,
3805     ///  If set true, then the Java2 code generator will generate code that
3806     ///  throws an exception whenever an attempt is made to assign a non-UTF-8
3807     ///  byte sequence to a string field.
3808     ///  Message reflection will do the same.
3809     ///  However, an extension field still accepts non-UTF-8 byte sequences.
3810     ///  This option has no effect on when used with the lite runtime.
3811     // @@protoc_insertion_point(field:google.protobuf.FileOptions.java_string_check_utf8)
3812     pub java_string_check_utf8: ::std::option::Option<bool>,
3813     // @@protoc_insertion_point(field:google.protobuf.FileOptions.optimize_for)
3814     pub optimize_for: ::std::option::Option<crate::EnumOrUnknown<file_options::OptimizeMode>>,
3815     ///  Sets the Go package where structs generated from this .proto will be
3816     ///  placed. If omitted, the Go package will be derived from the following:
3817     ///    - The basename of the package import path, if provided.
3818     ///    - Otherwise, the package statement in the .proto file, if present.
3819     ///    - Otherwise, the basename of the .proto file, without extension.
3820     // @@protoc_insertion_point(field:google.protobuf.FileOptions.go_package)
3821     pub go_package: ::std::option::Option<::std::string::String>,
3822     ///  Should generic services be generated in each language?  "Generic" services
3823     ///  are not specific to any particular RPC system.  They are generated by the
3824     ///  main code generators in each language (without additional plugins).
3825     ///  Generic services were the only kind of service generation supported by
3826     ///  early versions of google.protobuf.
3827     ///
3828     ///  Generic services are now considered deprecated in favor of using plugins
3829     ///  that generate code specific to your particular RPC system.  Therefore,
3830     ///  these default to false.  Old code which depends on generic services should
3831     ///  explicitly set them to true.
3832     // @@protoc_insertion_point(field:google.protobuf.FileOptions.cc_generic_services)
3833     pub cc_generic_services: ::std::option::Option<bool>,
3834     // @@protoc_insertion_point(field:google.protobuf.FileOptions.java_generic_services)
3835     pub java_generic_services: ::std::option::Option<bool>,
3836     // @@protoc_insertion_point(field:google.protobuf.FileOptions.py_generic_services)
3837     pub py_generic_services: ::std::option::Option<bool>,
3838     // @@protoc_insertion_point(field:google.protobuf.FileOptions.php_generic_services)
3839     pub php_generic_services: ::std::option::Option<bool>,
3840     ///  Is this file deprecated?
3841     ///  Depending on the target platform, this can emit Deprecated annotations
3842     ///  for everything in the file, or it will be completely ignored; in the very
3843     ///  least, this is a formalization for deprecating files.
3844     // @@protoc_insertion_point(field:google.protobuf.FileOptions.deprecated)
3845     pub deprecated: ::std::option::Option<bool>,
3846     ///  Enables the use of arenas for the proto messages in this file. This applies
3847     ///  only to generated classes for C++.
3848     // @@protoc_insertion_point(field:google.protobuf.FileOptions.cc_enable_arenas)
3849     pub cc_enable_arenas: ::std::option::Option<bool>,
3850     ///  Sets the objective c class prefix which is prepended to all objective c
3851     ///  generated classes from this .proto. There is no default.
3852     // @@protoc_insertion_point(field:google.protobuf.FileOptions.objc_class_prefix)
3853     pub objc_class_prefix: ::std::option::Option<::std::string::String>,
3854     ///  Namespace for generated classes; defaults to the package.
3855     // @@protoc_insertion_point(field:google.protobuf.FileOptions.csharp_namespace)
3856     pub csharp_namespace: ::std::option::Option<::std::string::String>,
3857     ///  By default Swift generators will take the proto package and CamelCase it
3858     ///  replacing '.' with underscore and use that to prefix the types/symbols
3859     ///  defined. When this options is provided, they will use this value instead
3860     ///  to prefix the types/symbols defined.
3861     // @@protoc_insertion_point(field:google.protobuf.FileOptions.swift_prefix)
3862     pub swift_prefix: ::std::option::Option<::std::string::String>,
3863     ///  Sets the php class prefix which is prepended to all php generated classes
3864     ///  from this .proto. Default is empty.
3865     // @@protoc_insertion_point(field:google.protobuf.FileOptions.php_class_prefix)
3866     pub php_class_prefix: ::std::option::Option<::std::string::String>,
3867     ///  Use this option to change the namespace of php generated classes. Default
3868     ///  is empty. When this option is empty, the package name will be used for
3869     ///  determining the namespace.
3870     // @@protoc_insertion_point(field:google.protobuf.FileOptions.php_namespace)
3871     pub php_namespace: ::std::option::Option<::std::string::String>,
3872     ///  Use this option to change the namespace of php generated metadata classes.
3873     ///  Default is empty. When this option is empty, the proto file name will be
3874     ///  used for determining the namespace.
3875     // @@protoc_insertion_point(field:google.protobuf.FileOptions.php_metadata_namespace)
3876     pub php_metadata_namespace: ::std::option::Option<::std::string::String>,
3877     ///  Use this option to change the package of ruby generated classes. Default
3878     ///  is empty. When this option is not set, the package name will be used for
3879     ///  determining the ruby package.
3880     // @@protoc_insertion_point(field:google.protobuf.FileOptions.ruby_package)
3881     pub ruby_package: ::std::option::Option<::std::string::String>,
3882     ///  The parser stores options it doesn't recognize here.
3883     ///  See the documentation for the "Options" section above.
3884     // @@protoc_insertion_point(field:google.protobuf.FileOptions.uninterpreted_option)
3885     pub uninterpreted_option: ::std::vec::Vec<UninterpretedOption>,
3886     // special fields
3887     // @@protoc_insertion_point(special_field:google.protobuf.FileOptions.special_fields)
3888     pub special_fields: crate::SpecialFields,
3889 }
3890 
3891 impl<'a> ::std::default::Default for &'a FileOptions {
default() -> &'a FileOptions3892     fn default() -> &'a FileOptions {
3893         <FileOptions as crate::Message>::default_instance()
3894     }
3895 }
3896 
3897 impl FileOptions {
new() -> FileOptions3898     pub fn new() -> FileOptions {
3899         ::std::default::Default::default()
3900     }
3901 
3902     // optional string java_package = 1;
3903 
java_package(&self) -> &str3904     pub fn java_package(&self) -> &str {
3905         match self.java_package.as_ref() {
3906             Some(v) => v,
3907             None => "",
3908         }
3909     }
3910 
clear_java_package(&mut self)3911     pub fn clear_java_package(&mut self) {
3912         self.java_package = ::std::option::Option::None;
3913     }
3914 
has_java_package(&self) -> bool3915     pub fn has_java_package(&self) -> bool {
3916         self.java_package.is_some()
3917     }
3918 
3919     // Param is passed by value, moved
set_java_package(&mut self, v: ::std::string::String)3920     pub fn set_java_package(&mut self, v: ::std::string::String) {
3921         self.java_package = ::std::option::Option::Some(v);
3922     }
3923 
3924     // Mutable pointer to the field.
3925     // If field is not initialized, it is initialized with default value first.
mut_java_package(&mut self) -> &mut ::std::string::String3926     pub fn mut_java_package(&mut self) -> &mut ::std::string::String {
3927         if self.java_package.is_none() {
3928             self.java_package = ::std::option::Option::Some(::std::string::String::new());
3929         }
3930         self.java_package.as_mut().unwrap()
3931     }
3932 
3933     // Take field
take_java_package(&mut self) -> ::std::string::String3934     pub fn take_java_package(&mut self) -> ::std::string::String {
3935         self.java_package.take().unwrap_or_else(|| ::std::string::String::new())
3936     }
3937 
3938     // optional string java_outer_classname = 8;
3939 
java_outer_classname(&self) -> &str3940     pub fn java_outer_classname(&self) -> &str {
3941         match self.java_outer_classname.as_ref() {
3942             Some(v) => v,
3943             None => "",
3944         }
3945     }
3946 
clear_java_outer_classname(&mut self)3947     pub fn clear_java_outer_classname(&mut self) {
3948         self.java_outer_classname = ::std::option::Option::None;
3949     }
3950 
has_java_outer_classname(&self) -> bool3951     pub fn has_java_outer_classname(&self) -> bool {
3952         self.java_outer_classname.is_some()
3953     }
3954 
3955     // Param is passed by value, moved
set_java_outer_classname(&mut self, v: ::std::string::String)3956     pub fn set_java_outer_classname(&mut self, v: ::std::string::String) {
3957         self.java_outer_classname = ::std::option::Option::Some(v);
3958     }
3959 
3960     // Mutable pointer to the field.
3961     // If field is not initialized, it is initialized with default value first.
mut_java_outer_classname(&mut self) -> &mut ::std::string::String3962     pub fn mut_java_outer_classname(&mut self) -> &mut ::std::string::String {
3963         if self.java_outer_classname.is_none() {
3964             self.java_outer_classname = ::std::option::Option::Some(::std::string::String::new());
3965         }
3966         self.java_outer_classname.as_mut().unwrap()
3967     }
3968 
3969     // Take field
take_java_outer_classname(&mut self) -> ::std::string::String3970     pub fn take_java_outer_classname(&mut self) -> ::std::string::String {
3971         self.java_outer_classname.take().unwrap_or_else(|| ::std::string::String::new())
3972     }
3973 
3974     // optional bool java_multiple_files = 10;
3975 
java_multiple_files(&self) -> bool3976     pub fn java_multiple_files(&self) -> bool {
3977         self.java_multiple_files.unwrap_or(false)
3978     }
3979 
clear_java_multiple_files(&mut self)3980     pub fn clear_java_multiple_files(&mut self) {
3981         self.java_multiple_files = ::std::option::Option::None;
3982     }
3983 
has_java_multiple_files(&self) -> bool3984     pub fn has_java_multiple_files(&self) -> bool {
3985         self.java_multiple_files.is_some()
3986     }
3987 
3988     // Param is passed by value, moved
set_java_multiple_files(&mut self, v: bool)3989     pub fn set_java_multiple_files(&mut self, v: bool) {
3990         self.java_multiple_files = ::std::option::Option::Some(v);
3991     }
3992 
3993     // optional bool java_generate_equals_and_hash = 20;
3994 
java_generate_equals_and_hash(&self) -> bool3995     pub fn java_generate_equals_and_hash(&self) -> bool {
3996         self.java_generate_equals_and_hash.unwrap_or(false)
3997     }
3998 
clear_java_generate_equals_and_hash(&mut self)3999     pub fn clear_java_generate_equals_and_hash(&mut self) {
4000         self.java_generate_equals_and_hash = ::std::option::Option::None;
4001     }
4002 
has_java_generate_equals_and_hash(&self) -> bool4003     pub fn has_java_generate_equals_and_hash(&self) -> bool {
4004         self.java_generate_equals_and_hash.is_some()
4005     }
4006 
4007     // Param is passed by value, moved
set_java_generate_equals_and_hash(&mut self, v: bool)4008     pub fn set_java_generate_equals_and_hash(&mut self, v: bool) {
4009         self.java_generate_equals_and_hash = ::std::option::Option::Some(v);
4010     }
4011 
4012     // optional bool java_string_check_utf8 = 27;
4013 
java_string_check_utf8(&self) -> bool4014     pub fn java_string_check_utf8(&self) -> bool {
4015         self.java_string_check_utf8.unwrap_or(false)
4016     }
4017 
clear_java_string_check_utf8(&mut self)4018     pub fn clear_java_string_check_utf8(&mut self) {
4019         self.java_string_check_utf8 = ::std::option::Option::None;
4020     }
4021 
has_java_string_check_utf8(&self) -> bool4022     pub fn has_java_string_check_utf8(&self) -> bool {
4023         self.java_string_check_utf8.is_some()
4024     }
4025 
4026     // Param is passed by value, moved
set_java_string_check_utf8(&mut self, v: bool)4027     pub fn set_java_string_check_utf8(&mut self, v: bool) {
4028         self.java_string_check_utf8 = ::std::option::Option::Some(v);
4029     }
4030 
4031     // optional .google.protobuf.FileOptions.OptimizeMode optimize_for = 9;
4032 
optimize_for(&self) -> file_options::OptimizeMode4033     pub fn optimize_for(&self) -> file_options::OptimizeMode {
4034         match self.optimize_for {
4035             Some(e) => e.enum_value_or(file_options::OptimizeMode::SPEED),
4036             None => file_options::OptimizeMode::SPEED,
4037         }
4038     }
4039 
clear_optimize_for(&mut self)4040     pub fn clear_optimize_for(&mut self) {
4041         self.optimize_for = ::std::option::Option::None;
4042     }
4043 
has_optimize_for(&self) -> bool4044     pub fn has_optimize_for(&self) -> bool {
4045         self.optimize_for.is_some()
4046     }
4047 
4048     // Param is passed by value, moved
set_optimize_for(&mut self, v: file_options::OptimizeMode)4049     pub fn set_optimize_for(&mut self, v: file_options::OptimizeMode) {
4050         self.optimize_for = ::std::option::Option::Some(crate::EnumOrUnknown::new(v));
4051     }
4052 
4053     // optional string go_package = 11;
4054 
go_package(&self) -> &str4055     pub fn go_package(&self) -> &str {
4056         match self.go_package.as_ref() {
4057             Some(v) => v,
4058             None => "",
4059         }
4060     }
4061 
clear_go_package(&mut self)4062     pub fn clear_go_package(&mut self) {
4063         self.go_package = ::std::option::Option::None;
4064     }
4065 
has_go_package(&self) -> bool4066     pub fn has_go_package(&self) -> bool {
4067         self.go_package.is_some()
4068     }
4069 
4070     // Param is passed by value, moved
set_go_package(&mut self, v: ::std::string::String)4071     pub fn set_go_package(&mut self, v: ::std::string::String) {
4072         self.go_package = ::std::option::Option::Some(v);
4073     }
4074 
4075     // Mutable pointer to the field.
4076     // If field is not initialized, it is initialized with default value first.
mut_go_package(&mut self) -> &mut ::std::string::String4077     pub fn mut_go_package(&mut self) -> &mut ::std::string::String {
4078         if self.go_package.is_none() {
4079             self.go_package = ::std::option::Option::Some(::std::string::String::new());
4080         }
4081         self.go_package.as_mut().unwrap()
4082     }
4083 
4084     // Take field
take_go_package(&mut self) -> ::std::string::String4085     pub fn take_go_package(&mut self) -> ::std::string::String {
4086         self.go_package.take().unwrap_or_else(|| ::std::string::String::new())
4087     }
4088 
4089     // optional bool cc_generic_services = 16;
4090 
cc_generic_services(&self) -> bool4091     pub fn cc_generic_services(&self) -> bool {
4092         self.cc_generic_services.unwrap_or(false)
4093     }
4094 
clear_cc_generic_services(&mut self)4095     pub fn clear_cc_generic_services(&mut self) {
4096         self.cc_generic_services = ::std::option::Option::None;
4097     }
4098 
has_cc_generic_services(&self) -> bool4099     pub fn has_cc_generic_services(&self) -> bool {
4100         self.cc_generic_services.is_some()
4101     }
4102 
4103     // Param is passed by value, moved
set_cc_generic_services(&mut self, v: bool)4104     pub fn set_cc_generic_services(&mut self, v: bool) {
4105         self.cc_generic_services = ::std::option::Option::Some(v);
4106     }
4107 
4108     // optional bool java_generic_services = 17;
4109 
java_generic_services(&self) -> bool4110     pub fn java_generic_services(&self) -> bool {
4111         self.java_generic_services.unwrap_or(false)
4112     }
4113 
clear_java_generic_services(&mut self)4114     pub fn clear_java_generic_services(&mut self) {
4115         self.java_generic_services = ::std::option::Option::None;
4116     }
4117 
has_java_generic_services(&self) -> bool4118     pub fn has_java_generic_services(&self) -> bool {
4119         self.java_generic_services.is_some()
4120     }
4121 
4122     // Param is passed by value, moved
set_java_generic_services(&mut self, v: bool)4123     pub fn set_java_generic_services(&mut self, v: bool) {
4124         self.java_generic_services = ::std::option::Option::Some(v);
4125     }
4126 
4127     // optional bool py_generic_services = 18;
4128 
py_generic_services(&self) -> bool4129     pub fn py_generic_services(&self) -> bool {
4130         self.py_generic_services.unwrap_or(false)
4131     }
4132 
clear_py_generic_services(&mut self)4133     pub fn clear_py_generic_services(&mut self) {
4134         self.py_generic_services = ::std::option::Option::None;
4135     }
4136 
has_py_generic_services(&self) -> bool4137     pub fn has_py_generic_services(&self) -> bool {
4138         self.py_generic_services.is_some()
4139     }
4140 
4141     // Param is passed by value, moved
set_py_generic_services(&mut self, v: bool)4142     pub fn set_py_generic_services(&mut self, v: bool) {
4143         self.py_generic_services = ::std::option::Option::Some(v);
4144     }
4145 
4146     // optional bool php_generic_services = 42;
4147 
php_generic_services(&self) -> bool4148     pub fn php_generic_services(&self) -> bool {
4149         self.php_generic_services.unwrap_or(false)
4150     }
4151 
clear_php_generic_services(&mut self)4152     pub fn clear_php_generic_services(&mut self) {
4153         self.php_generic_services = ::std::option::Option::None;
4154     }
4155 
has_php_generic_services(&self) -> bool4156     pub fn has_php_generic_services(&self) -> bool {
4157         self.php_generic_services.is_some()
4158     }
4159 
4160     // Param is passed by value, moved
set_php_generic_services(&mut self, v: bool)4161     pub fn set_php_generic_services(&mut self, v: bool) {
4162         self.php_generic_services = ::std::option::Option::Some(v);
4163     }
4164 
4165     // optional bool deprecated = 23;
4166 
deprecated(&self) -> bool4167     pub fn deprecated(&self) -> bool {
4168         self.deprecated.unwrap_or(false)
4169     }
4170 
clear_deprecated(&mut self)4171     pub fn clear_deprecated(&mut self) {
4172         self.deprecated = ::std::option::Option::None;
4173     }
4174 
has_deprecated(&self) -> bool4175     pub fn has_deprecated(&self) -> bool {
4176         self.deprecated.is_some()
4177     }
4178 
4179     // Param is passed by value, moved
set_deprecated(&mut self, v: bool)4180     pub fn set_deprecated(&mut self, v: bool) {
4181         self.deprecated = ::std::option::Option::Some(v);
4182     }
4183 
4184     // optional bool cc_enable_arenas = 31;
4185 
cc_enable_arenas(&self) -> bool4186     pub fn cc_enable_arenas(&self) -> bool {
4187         self.cc_enable_arenas.unwrap_or(true)
4188     }
4189 
clear_cc_enable_arenas(&mut self)4190     pub fn clear_cc_enable_arenas(&mut self) {
4191         self.cc_enable_arenas = ::std::option::Option::None;
4192     }
4193 
has_cc_enable_arenas(&self) -> bool4194     pub fn has_cc_enable_arenas(&self) -> bool {
4195         self.cc_enable_arenas.is_some()
4196     }
4197 
4198     // Param is passed by value, moved
set_cc_enable_arenas(&mut self, v: bool)4199     pub fn set_cc_enable_arenas(&mut self, v: bool) {
4200         self.cc_enable_arenas = ::std::option::Option::Some(v);
4201     }
4202 
4203     // optional string objc_class_prefix = 36;
4204 
objc_class_prefix(&self) -> &str4205     pub fn objc_class_prefix(&self) -> &str {
4206         match self.objc_class_prefix.as_ref() {
4207             Some(v) => v,
4208             None => "",
4209         }
4210     }
4211 
clear_objc_class_prefix(&mut self)4212     pub fn clear_objc_class_prefix(&mut self) {
4213         self.objc_class_prefix = ::std::option::Option::None;
4214     }
4215 
has_objc_class_prefix(&self) -> bool4216     pub fn has_objc_class_prefix(&self) -> bool {
4217         self.objc_class_prefix.is_some()
4218     }
4219 
4220     // Param is passed by value, moved
set_objc_class_prefix(&mut self, v: ::std::string::String)4221     pub fn set_objc_class_prefix(&mut self, v: ::std::string::String) {
4222         self.objc_class_prefix = ::std::option::Option::Some(v);
4223     }
4224 
4225     // Mutable pointer to the field.
4226     // If field is not initialized, it is initialized with default value first.
mut_objc_class_prefix(&mut self) -> &mut ::std::string::String4227     pub fn mut_objc_class_prefix(&mut self) -> &mut ::std::string::String {
4228         if self.objc_class_prefix.is_none() {
4229             self.objc_class_prefix = ::std::option::Option::Some(::std::string::String::new());
4230         }
4231         self.objc_class_prefix.as_mut().unwrap()
4232     }
4233 
4234     // Take field
take_objc_class_prefix(&mut self) -> ::std::string::String4235     pub fn take_objc_class_prefix(&mut self) -> ::std::string::String {
4236         self.objc_class_prefix.take().unwrap_or_else(|| ::std::string::String::new())
4237     }
4238 
4239     // optional string csharp_namespace = 37;
4240 
csharp_namespace(&self) -> &str4241     pub fn csharp_namespace(&self) -> &str {
4242         match self.csharp_namespace.as_ref() {
4243             Some(v) => v,
4244             None => "",
4245         }
4246     }
4247 
clear_csharp_namespace(&mut self)4248     pub fn clear_csharp_namespace(&mut self) {
4249         self.csharp_namespace = ::std::option::Option::None;
4250     }
4251 
has_csharp_namespace(&self) -> bool4252     pub fn has_csharp_namespace(&self) -> bool {
4253         self.csharp_namespace.is_some()
4254     }
4255 
4256     // Param is passed by value, moved
set_csharp_namespace(&mut self, v: ::std::string::String)4257     pub fn set_csharp_namespace(&mut self, v: ::std::string::String) {
4258         self.csharp_namespace = ::std::option::Option::Some(v);
4259     }
4260 
4261     // Mutable pointer to the field.
4262     // If field is not initialized, it is initialized with default value first.
mut_csharp_namespace(&mut self) -> &mut ::std::string::String4263     pub fn mut_csharp_namespace(&mut self) -> &mut ::std::string::String {
4264         if self.csharp_namespace.is_none() {
4265             self.csharp_namespace = ::std::option::Option::Some(::std::string::String::new());
4266         }
4267         self.csharp_namespace.as_mut().unwrap()
4268     }
4269 
4270     // Take field
take_csharp_namespace(&mut self) -> ::std::string::String4271     pub fn take_csharp_namespace(&mut self) -> ::std::string::String {
4272         self.csharp_namespace.take().unwrap_or_else(|| ::std::string::String::new())
4273     }
4274 
4275     // optional string swift_prefix = 39;
4276 
swift_prefix(&self) -> &str4277     pub fn swift_prefix(&self) -> &str {
4278         match self.swift_prefix.as_ref() {
4279             Some(v) => v,
4280             None => "",
4281         }
4282     }
4283 
clear_swift_prefix(&mut self)4284     pub fn clear_swift_prefix(&mut self) {
4285         self.swift_prefix = ::std::option::Option::None;
4286     }
4287 
has_swift_prefix(&self) -> bool4288     pub fn has_swift_prefix(&self) -> bool {
4289         self.swift_prefix.is_some()
4290     }
4291 
4292     // Param is passed by value, moved
set_swift_prefix(&mut self, v: ::std::string::String)4293     pub fn set_swift_prefix(&mut self, v: ::std::string::String) {
4294         self.swift_prefix = ::std::option::Option::Some(v);
4295     }
4296 
4297     // Mutable pointer to the field.
4298     // If field is not initialized, it is initialized with default value first.
mut_swift_prefix(&mut self) -> &mut ::std::string::String4299     pub fn mut_swift_prefix(&mut self) -> &mut ::std::string::String {
4300         if self.swift_prefix.is_none() {
4301             self.swift_prefix = ::std::option::Option::Some(::std::string::String::new());
4302         }
4303         self.swift_prefix.as_mut().unwrap()
4304     }
4305 
4306     // Take field
take_swift_prefix(&mut self) -> ::std::string::String4307     pub fn take_swift_prefix(&mut self) -> ::std::string::String {
4308         self.swift_prefix.take().unwrap_or_else(|| ::std::string::String::new())
4309     }
4310 
4311     // optional string php_class_prefix = 40;
4312 
php_class_prefix(&self) -> &str4313     pub fn php_class_prefix(&self) -> &str {
4314         match self.php_class_prefix.as_ref() {
4315             Some(v) => v,
4316             None => "",
4317         }
4318     }
4319 
clear_php_class_prefix(&mut self)4320     pub fn clear_php_class_prefix(&mut self) {
4321         self.php_class_prefix = ::std::option::Option::None;
4322     }
4323 
has_php_class_prefix(&self) -> bool4324     pub fn has_php_class_prefix(&self) -> bool {
4325         self.php_class_prefix.is_some()
4326     }
4327 
4328     // Param is passed by value, moved
set_php_class_prefix(&mut self, v: ::std::string::String)4329     pub fn set_php_class_prefix(&mut self, v: ::std::string::String) {
4330         self.php_class_prefix = ::std::option::Option::Some(v);
4331     }
4332 
4333     // Mutable pointer to the field.
4334     // If field is not initialized, it is initialized with default value first.
mut_php_class_prefix(&mut self) -> &mut ::std::string::String4335     pub fn mut_php_class_prefix(&mut self) -> &mut ::std::string::String {
4336         if self.php_class_prefix.is_none() {
4337             self.php_class_prefix = ::std::option::Option::Some(::std::string::String::new());
4338         }
4339         self.php_class_prefix.as_mut().unwrap()
4340     }
4341 
4342     // Take field
take_php_class_prefix(&mut self) -> ::std::string::String4343     pub fn take_php_class_prefix(&mut self) -> ::std::string::String {
4344         self.php_class_prefix.take().unwrap_or_else(|| ::std::string::String::new())
4345     }
4346 
4347     // optional string php_namespace = 41;
4348 
php_namespace(&self) -> &str4349     pub fn php_namespace(&self) -> &str {
4350         match self.php_namespace.as_ref() {
4351             Some(v) => v,
4352             None => "",
4353         }
4354     }
4355 
clear_php_namespace(&mut self)4356     pub fn clear_php_namespace(&mut self) {
4357         self.php_namespace = ::std::option::Option::None;
4358     }
4359 
has_php_namespace(&self) -> bool4360     pub fn has_php_namespace(&self) -> bool {
4361         self.php_namespace.is_some()
4362     }
4363 
4364     // Param is passed by value, moved
set_php_namespace(&mut self, v: ::std::string::String)4365     pub fn set_php_namespace(&mut self, v: ::std::string::String) {
4366         self.php_namespace = ::std::option::Option::Some(v);
4367     }
4368 
4369     // Mutable pointer to the field.
4370     // If field is not initialized, it is initialized with default value first.
mut_php_namespace(&mut self) -> &mut ::std::string::String4371     pub fn mut_php_namespace(&mut self) -> &mut ::std::string::String {
4372         if self.php_namespace.is_none() {
4373             self.php_namespace = ::std::option::Option::Some(::std::string::String::new());
4374         }
4375         self.php_namespace.as_mut().unwrap()
4376     }
4377 
4378     // Take field
take_php_namespace(&mut self) -> ::std::string::String4379     pub fn take_php_namespace(&mut self) -> ::std::string::String {
4380         self.php_namespace.take().unwrap_or_else(|| ::std::string::String::new())
4381     }
4382 
4383     // optional string php_metadata_namespace = 44;
4384 
php_metadata_namespace(&self) -> &str4385     pub fn php_metadata_namespace(&self) -> &str {
4386         match self.php_metadata_namespace.as_ref() {
4387             Some(v) => v,
4388             None => "",
4389         }
4390     }
4391 
clear_php_metadata_namespace(&mut self)4392     pub fn clear_php_metadata_namespace(&mut self) {
4393         self.php_metadata_namespace = ::std::option::Option::None;
4394     }
4395 
has_php_metadata_namespace(&self) -> bool4396     pub fn has_php_metadata_namespace(&self) -> bool {
4397         self.php_metadata_namespace.is_some()
4398     }
4399 
4400     // Param is passed by value, moved
set_php_metadata_namespace(&mut self, v: ::std::string::String)4401     pub fn set_php_metadata_namespace(&mut self, v: ::std::string::String) {
4402         self.php_metadata_namespace = ::std::option::Option::Some(v);
4403     }
4404 
4405     // Mutable pointer to the field.
4406     // If field is not initialized, it is initialized with default value first.
mut_php_metadata_namespace(&mut self) -> &mut ::std::string::String4407     pub fn mut_php_metadata_namespace(&mut self) -> &mut ::std::string::String {
4408         if self.php_metadata_namespace.is_none() {
4409             self.php_metadata_namespace = ::std::option::Option::Some(::std::string::String::new());
4410         }
4411         self.php_metadata_namespace.as_mut().unwrap()
4412     }
4413 
4414     // Take field
take_php_metadata_namespace(&mut self) -> ::std::string::String4415     pub fn take_php_metadata_namespace(&mut self) -> ::std::string::String {
4416         self.php_metadata_namespace.take().unwrap_or_else(|| ::std::string::String::new())
4417     }
4418 
4419     // optional string ruby_package = 45;
4420 
ruby_package(&self) -> &str4421     pub fn ruby_package(&self) -> &str {
4422         match self.ruby_package.as_ref() {
4423             Some(v) => v,
4424             None => "",
4425         }
4426     }
4427 
clear_ruby_package(&mut self)4428     pub fn clear_ruby_package(&mut self) {
4429         self.ruby_package = ::std::option::Option::None;
4430     }
4431 
has_ruby_package(&self) -> bool4432     pub fn has_ruby_package(&self) -> bool {
4433         self.ruby_package.is_some()
4434     }
4435 
4436     // Param is passed by value, moved
set_ruby_package(&mut self, v: ::std::string::String)4437     pub fn set_ruby_package(&mut self, v: ::std::string::String) {
4438         self.ruby_package = ::std::option::Option::Some(v);
4439     }
4440 
4441     // Mutable pointer to the field.
4442     // If field is not initialized, it is initialized with default value first.
mut_ruby_package(&mut self) -> &mut ::std::string::String4443     pub fn mut_ruby_package(&mut self) -> &mut ::std::string::String {
4444         if self.ruby_package.is_none() {
4445             self.ruby_package = ::std::option::Option::Some(::std::string::String::new());
4446         }
4447         self.ruby_package.as_mut().unwrap()
4448     }
4449 
4450     // Take field
take_ruby_package(&mut self) -> ::std::string::String4451     pub fn take_ruby_package(&mut self) -> ::std::string::String {
4452         self.ruby_package.take().unwrap_or_else(|| ::std::string::String::new())
4453     }
4454 
generated_message_descriptor_data() -> crate::reflect::GeneratedMessageDescriptorData4455     fn generated_message_descriptor_data() -> crate::reflect::GeneratedMessageDescriptorData {
4456         let mut fields = ::std::vec::Vec::with_capacity(21);
4457         let mut oneofs = ::std::vec::Vec::with_capacity(0);
4458         fields.push(crate::reflect::rt::v2::make_option_accessor::<_, _>(
4459             "java_package",
4460             |m: &FileOptions| { &m.java_package },
4461             |m: &mut FileOptions| { &mut m.java_package },
4462         ));
4463         fields.push(crate::reflect::rt::v2::make_option_accessor::<_, _>(
4464             "java_outer_classname",
4465             |m: &FileOptions| { &m.java_outer_classname },
4466             |m: &mut FileOptions| { &mut m.java_outer_classname },
4467         ));
4468         fields.push(crate::reflect::rt::v2::make_option_accessor::<_, _>(
4469             "java_multiple_files",
4470             |m: &FileOptions| { &m.java_multiple_files },
4471             |m: &mut FileOptions| { &mut m.java_multiple_files },
4472         ));
4473         fields.push(crate::reflect::rt::v2::make_option_accessor::<_, _>(
4474             "java_generate_equals_and_hash",
4475             |m: &FileOptions| { &m.java_generate_equals_and_hash },
4476             |m: &mut FileOptions| { &mut m.java_generate_equals_and_hash },
4477         ));
4478         fields.push(crate::reflect::rt::v2::make_option_accessor::<_, _>(
4479             "java_string_check_utf8",
4480             |m: &FileOptions| { &m.java_string_check_utf8 },
4481             |m: &mut FileOptions| { &mut m.java_string_check_utf8 },
4482         ));
4483         fields.push(crate::reflect::rt::v2::make_option_accessor::<_, _>(
4484             "optimize_for",
4485             |m: &FileOptions| { &m.optimize_for },
4486             |m: &mut FileOptions| { &mut m.optimize_for },
4487         ));
4488         fields.push(crate::reflect::rt::v2::make_option_accessor::<_, _>(
4489             "go_package",
4490             |m: &FileOptions| { &m.go_package },
4491             |m: &mut FileOptions| { &mut m.go_package },
4492         ));
4493         fields.push(crate::reflect::rt::v2::make_option_accessor::<_, _>(
4494             "cc_generic_services",
4495             |m: &FileOptions| { &m.cc_generic_services },
4496             |m: &mut FileOptions| { &mut m.cc_generic_services },
4497         ));
4498         fields.push(crate::reflect::rt::v2::make_option_accessor::<_, _>(
4499             "java_generic_services",
4500             |m: &FileOptions| { &m.java_generic_services },
4501             |m: &mut FileOptions| { &mut m.java_generic_services },
4502         ));
4503         fields.push(crate::reflect::rt::v2::make_option_accessor::<_, _>(
4504             "py_generic_services",
4505             |m: &FileOptions| { &m.py_generic_services },
4506             |m: &mut FileOptions| { &mut m.py_generic_services },
4507         ));
4508         fields.push(crate::reflect::rt::v2::make_option_accessor::<_, _>(
4509             "php_generic_services",
4510             |m: &FileOptions| { &m.php_generic_services },
4511             |m: &mut FileOptions| { &mut m.php_generic_services },
4512         ));
4513         fields.push(crate::reflect::rt::v2::make_option_accessor::<_, _>(
4514             "deprecated",
4515             |m: &FileOptions| { &m.deprecated },
4516             |m: &mut FileOptions| { &mut m.deprecated },
4517         ));
4518         fields.push(crate::reflect::rt::v2::make_option_accessor::<_, _>(
4519             "cc_enable_arenas",
4520             |m: &FileOptions| { &m.cc_enable_arenas },
4521             |m: &mut FileOptions| { &mut m.cc_enable_arenas },
4522         ));
4523         fields.push(crate::reflect::rt::v2::make_option_accessor::<_, _>(
4524             "objc_class_prefix",
4525             |m: &FileOptions| { &m.objc_class_prefix },
4526             |m: &mut FileOptions| { &mut m.objc_class_prefix },
4527         ));
4528         fields.push(crate::reflect::rt::v2::make_option_accessor::<_, _>(
4529             "csharp_namespace",
4530             |m: &FileOptions| { &m.csharp_namespace },
4531             |m: &mut FileOptions| { &mut m.csharp_namespace },
4532         ));
4533         fields.push(crate::reflect::rt::v2::make_option_accessor::<_, _>(
4534             "swift_prefix",
4535             |m: &FileOptions| { &m.swift_prefix },
4536             |m: &mut FileOptions| { &mut m.swift_prefix },
4537         ));
4538         fields.push(crate::reflect::rt::v2::make_option_accessor::<_, _>(
4539             "php_class_prefix",
4540             |m: &FileOptions| { &m.php_class_prefix },
4541             |m: &mut FileOptions| { &mut m.php_class_prefix },
4542         ));
4543         fields.push(crate::reflect::rt::v2::make_option_accessor::<_, _>(
4544             "php_namespace",
4545             |m: &FileOptions| { &m.php_namespace },
4546             |m: &mut FileOptions| { &mut m.php_namespace },
4547         ));
4548         fields.push(crate::reflect::rt::v2::make_option_accessor::<_, _>(
4549             "php_metadata_namespace",
4550             |m: &FileOptions| { &m.php_metadata_namespace },
4551             |m: &mut FileOptions| { &mut m.php_metadata_namespace },
4552         ));
4553         fields.push(crate::reflect::rt::v2::make_option_accessor::<_, _>(
4554             "ruby_package",
4555             |m: &FileOptions| { &m.ruby_package },
4556             |m: &mut FileOptions| { &mut m.ruby_package },
4557         ));
4558         fields.push(crate::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
4559             "uninterpreted_option",
4560             |m: &FileOptions| { &m.uninterpreted_option },
4561             |m: &mut FileOptions| { &mut m.uninterpreted_option },
4562         ));
4563         crate::reflect::GeneratedMessageDescriptorData::new_2::<FileOptions>(
4564             "FileOptions",
4565             fields,
4566             oneofs,
4567         )
4568     }
4569 }
4570 
4571 impl crate::Message for FileOptions {
4572     const NAME: &'static str = "FileOptions";
4573 
is_initialized(&self) -> bool4574     fn is_initialized(&self) -> bool {
4575         for v in &self.uninterpreted_option {
4576             if !v.is_initialized() {
4577                 return false;
4578             }
4579         };
4580         true
4581     }
4582 
merge_from(&mut self, is: &mut crate::CodedInputStream<'_>) -> crate::Result<()>4583     fn merge_from(&mut self, is: &mut crate::CodedInputStream<'_>) -> crate::Result<()> {
4584         while let Some(tag) = is.read_raw_tag_or_eof()? {
4585             match tag {
4586                 10 => {
4587                     self.java_package = ::std::option::Option::Some(is.read_string()?);
4588                 },
4589                 66 => {
4590                     self.java_outer_classname = ::std::option::Option::Some(is.read_string()?);
4591                 },
4592                 80 => {
4593                     self.java_multiple_files = ::std::option::Option::Some(is.read_bool()?);
4594                 },
4595                 160 => {
4596                     self.java_generate_equals_and_hash = ::std::option::Option::Some(is.read_bool()?);
4597                 },
4598                 216 => {
4599                     self.java_string_check_utf8 = ::std::option::Option::Some(is.read_bool()?);
4600                 },
4601                 72 => {
4602                     self.optimize_for = ::std::option::Option::Some(is.read_enum_or_unknown()?);
4603                 },
4604                 90 => {
4605                     self.go_package = ::std::option::Option::Some(is.read_string()?);
4606                 },
4607                 128 => {
4608                     self.cc_generic_services = ::std::option::Option::Some(is.read_bool()?);
4609                 },
4610                 136 => {
4611                     self.java_generic_services = ::std::option::Option::Some(is.read_bool()?);
4612                 },
4613                 144 => {
4614                     self.py_generic_services = ::std::option::Option::Some(is.read_bool()?);
4615                 },
4616                 336 => {
4617                     self.php_generic_services = ::std::option::Option::Some(is.read_bool()?);
4618                 },
4619                 184 => {
4620                     self.deprecated = ::std::option::Option::Some(is.read_bool()?);
4621                 },
4622                 248 => {
4623                     self.cc_enable_arenas = ::std::option::Option::Some(is.read_bool()?);
4624                 },
4625                 290 => {
4626                     self.objc_class_prefix = ::std::option::Option::Some(is.read_string()?);
4627                 },
4628                 298 => {
4629                     self.csharp_namespace = ::std::option::Option::Some(is.read_string()?);
4630                 },
4631                 314 => {
4632                     self.swift_prefix = ::std::option::Option::Some(is.read_string()?);
4633                 },
4634                 322 => {
4635                     self.php_class_prefix = ::std::option::Option::Some(is.read_string()?);
4636                 },
4637                 330 => {
4638                     self.php_namespace = ::std::option::Option::Some(is.read_string()?);
4639                 },
4640                 354 => {
4641                     self.php_metadata_namespace = ::std::option::Option::Some(is.read_string()?);
4642                 },
4643                 362 => {
4644                     self.ruby_package = ::std::option::Option::Some(is.read_string()?);
4645                 },
4646                 7994 => {
4647                     self.uninterpreted_option.push(is.read_message()?);
4648                 },
4649                 tag => {
4650                     crate::rt::read_unknown_or_skip_group(tag, is, self.special_fields.mut_unknown_fields())?;
4651                 },
4652             };
4653         }
4654         ::std::result::Result::Ok(())
4655     }
4656 
4657     // Compute sizes of nested messages
4658     #[allow(unused_variables)]
compute_size(&self) -> u644659     fn compute_size(&self) -> u64 {
4660         let mut my_size = 0;
4661         if let Some(v) = self.java_package.as_ref() {
4662             my_size += crate::rt::string_size(1, &v);
4663         }
4664         if let Some(v) = self.java_outer_classname.as_ref() {
4665             my_size += crate::rt::string_size(8, &v);
4666         }
4667         if let Some(v) = self.java_multiple_files {
4668             my_size += 1 + 1;
4669         }
4670         if let Some(v) = self.java_generate_equals_and_hash {
4671             my_size += 2 + 1;
4672         }
4673         if let Some(v) = self.java_string_check_utf8 {
4674             my_size += 2 + 1;
4675         }
4676         if let Some(v) = self.optimize_for {
4677             my_size += crate::rt::int32_size(9, v.value());
4678         }
4679         if let Some(v) = self.go_package.as_ref() {
4680             my_size += crate::rt::string_size(11, &v);
4681         }
4682         if let Some(v) = self.cc_generic_services {
4683             my_size += 2 + 1;
4684         }
4685         if let Some(v) = self.java_generic_services {
4686             my_size += 2 + 1;
4687         }
4688         if let Some(v) = self.py_generic_services {
4689             my_size += 2 + 1;
4690         }
4691         if let Some(v) = self.php_generic_services {
4692             my_size += 2 + 1;
4693         }
4694         if let Some(v) = self.deprecated {
4695             my_size += 2 + 1;
4696         }
4697         if let Some(v) = self.cc_enable_arenas {
4698             my_size += 2 + 1;
4699         }
4700         if let Some(v) = self.objc_class_prefix.as_ref() {
4701             my_size += crate::rt::string_size(36, &v);
4702         }
4703         if let Some(v) = self.csharp_namespace.as_ref() {
4704             my_size += crate::rt::string_size(37, &v);
4705         }
4706         if let Some(v) = self.swift_prefix.as_ref() {
4707             my_size += crate::rt::string_size(39, &v);
4708         }
4709         if let Some(v) = self.php_class_prefix.as_ref() {
4710             my_size += crate::rt::string_size(40, &v);
4711         }
4712         if let Some(v) = self.php_namespace.as_ref() {
4713             my_size += crate::rt::string_size(41, &v);
4714         }
4715         if let Some(v) = self.php_metadata_namespace.as_ref() {
4716             my_size += crate::rt::string_size(44, &v);
4717         }
4718         if let Some(v) = self.ruby_package.as_ref() {
4719             my_size += crate::rt::string_size(45, &v);
4720         }
4721         for value in &self.uninterpreted_option {
4722             let len = value.compute_size();
4723             my_size += 2 + crate::rt::compute_raw_varint64_size(len) + len;
4724         };
4725         my_size += crate::rt::unknown_fields_size(self.special_fields.unknown_fields());
4726         self.special_fields.cached_size().set(my_size as u32);
4727         my_size
4728     }
4729 
write_to_with_cached_sizes(&self, os: &mut crate::CodedOutputStream<'_>) -> crate::Result<()>4730     fn write_to_with_cached_sizes(&self, os: &mut crate::CodedOutputStream<'_>) -> crate::Result<()> {
4731         if let Some(v) = self.java_package.as_ref() {
4732             os.write_string(1, v)?;
4733         }
4734         if let Some(v) = self.java_outer_classname.as_ref() {
4735             os.write_string(8, v)?;
4736         }
4737         if let Some(v) = self.java_multiple_files {
4738             os.write_bool(10, v)?;
4739         }
4740         if let Some(v) = self.java_generate_equals_and_hash {
4741             os.write_bool(20, v)?;
4742         }
4743         if let Some(v) = self.java_string_check_utf8 {
4744             os.write_bool(27, v)?;
4745         }
4746         if let Some(v) = self.optimize_for {
4747             os.write_enum(9, crate::EnumOrUnknown::value(&v))?;
4748         }
4749         if let Some(v) = self.go_package.as_ref() {
4750             os.write_string(11, v)?;
4751         }
4752         if let Some(v) = self.cc_generic_services {
4753             os.write_bool(16, v)?;
4754         }
4755         if let Some(v) = self.java_generic_services {
4756             os.write_bool(17, v)?;
4757         }
4758         if let Some(v) = self.py_generic_services {
4759             os.write_bool(18, v)?;
4760         }
4761         if let Some(v) = self.php_generic_services {
4762             os.write_bool(42, v)?;
4763         }
4764         if let Some(v) = self.deprecated {
4765             os.write_bool(23, v)?;
4766         }
4767         if let Some(v) = self.cc_enable_arenas {
4768             os.write_bool(31, v)?;
4769         }
4770         if let Some(v) = self.objc_class_prefix.as_ref() {
4771             os.write_string(36, v)?;
4772         }
4773         if let Some(v) = self.csharp_namespace.as_ref() {
4774             os.write_string(37, v)?;
4775         }
4776         if let Some(v) = self.swift_prefix.as_ref() {
4777             os.write_string(39, v)?;
4778         }
4779         if let Some(v) = self.php_class_prefix.as_ref() {
4780             os.write_string(40, v)?;
4781         }
4782         if let Some(v) = self.php_namespace.as_ref() {
4783             os.write_string(41, v)?;
4784         }
4785         if let Some(v) = self.php_metadata_namespace.as_ref() {
4786             os.write_string(44, v)?;
4787         }
4788         if let Some(v) = self.ruby_package.as_ref() {
4789             os.write_string(45, v)?;
4790         }
4791         for v in &self.uninterpreted_option {
4792             crate::rt::write_message_field_with_cached_size(999, v, os)?;
4793         };
4794         os.write_unknown_fields(self.special_fields.unknown_fields())?;
4795         ::std::result::Result::Ok(())
4796     }
4797 
special_fields(&self) -> &crate::SpecialFields4798     fn special_fields(&self) -> &crate::SpecialFields {
4799         &self.special_fields
4800     }
4801 
mut_special_fields(&mut self) -> &mut crate::SpecialFields4802     fn mut_special_fields(&mut self) -> &mut crate::SpecialFields {
4803         &mut self.special_fields
4804     }
4805 
new() -> FileOptions4806     fn new() -> FileOptions {
4807         FileOptions::new()
4808     }
4809 
clear(&mut self)4810     fn clear(&mut self) {
4811         self.java_package = ::std::option::Option::None;
4812         self.java_outer_classname = ::std::option::Option::None;
4813         self.java_multiple_files = ::std::option::Option::None;
4814         self.java_generate_equals_and_hash = ::std::option::Option::None;
4815         self.java_string_check_utf8 = ::std::option::Option::None;
4816         self.optimize_for = ::std::option::Option::None;
4817         self.go_package = ::std::option::Option::None;
4818         self.cc_generic_services = ::std::option::Option::None;
4819         self.java_generic_services = ::std::option::Option::None;
4820         self.py_generic_services = ::std::option::Option::None;
4821         self.php_generic_services = ::std::option::Option::None;
4822         self.deprecated = ::std::option::Option::None;
4823         self.cc_enable_arenas = ::std::option::Option::None;
4824         self.objc_class_prefix = ::std::option::Option::None;
4825         self.csharp_namespace = ::std::option::Option::None;
4826         self.swift_prefix = ::std::option::Option::None;
4827         self.php_class_prefix = ::std::option::Option::None;
4828         self.php_namespace = ::std::option::Option::None;
4829         self.php_metadata_namespace = ::std::option::Option::None;
4830         self.ruby_package = ::std::option::Option::None;
4831         self.uninterpreted_option.clear();
4832         self.special_fields.clear();
4833     }
4834 
default_instance() -> &'static FileOptions4835     fn default_instance() -> &'static FileOptions {
4836         static instance: FileOptions = FileOptions {
4837             java_package: ::std::option::Option::None,
4838             java_outer_classname: ::std::option::Option::None,
4839             java_multiple_files: ::std::option::Option::None,
4840             java_generate_equals_and_hash: ::std::option::Option::None,
4841             java_string_check_utf8: ::std::option::Option::None,
4842             optimize_for: ::std::option::Option::None,
4843             go_package: ::std::option::Option::None,
4844             cc_generic_services: ::std::option::Option::None,
4845             java_generic_services: ::std::option::Option::None,
4846             py_generic_services: ::std::option::Option::None,
4847             php_generic_services: ::std::option::Option::None,
4848             deprecated: ::std::option::Option::None,
4849             cc_enable_arenas: ::std::option::Option::None,
4850             objc_class_prefix: ::std::option::Option::None,
4851             csharp_namespace: ::std::option::Option::None,
4852             swift_prefix: ::std::option::Option::None,
4853             php_class_prefix: ::std::option::Option::None,
4854             php_namespace: ::std::option::Option::None,
4855             php_metadata_namespace: ::std::option::Option::None,
4856             ruby_package: ::std::option::Option::None,
4857             uninterpreted_option: ::std::vec::Vec::new(),
4858             special_fields: crate::SpecialFields::new(),
4859         };
4860         &instance
4861     }
4862 }
4863 
4864 impl crate::MessageFull for FileOptions {
descriptor() -> crate::reflect::MessageDescriptor4865     fn descriptor() -> crate::reflect::MessageDescriptor {
4866         static descriptor: crate::rt::Lazy<crate::reflect::MessageDescriptor> = crate::rt::Lazy::new();
4867         descriptor.get(|| file_descriptor().message_by_package_relative_name("FileOptions").unwrap()).clone()
4868     }
4869 }
4870 
4871 impl ::std::fmt::Display for FileOptions {
fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result4872     fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
4873         crate::text_format::fmt(self, f)
4874     }
4875 }
4876 
4877 impl crate::reflect::ProtobufValue for FileOptions {
4878     type RuntimeType = crate::reflect::rt::RuntimeTypeMessage<Self>;
4879 }
4880 
4881 /// Nested message and enums of message `FileOptions`
4882 pub mod file_options {
4883     ///  Generated classes can be optimized for speed or code size.
4884     #[derive(Clone,Copy,PartialEq,Eq,Debug,Hash)]
4885     // @@protoc_insertion_point(enum:google.protobuf.FileOptions.OptimizeMode)
4886     pub enum OptimizeMode {
4887         // @@protoc_insertion_point(enum_value:google.protobuf.FileOptions.OptimizeMode.SPEED)
4888         SPEED = 1,
4889         // @@protoc_insertion_point(enum_value:google.protobuf.FileOptions.OptimizeMode.CODE_SIZE)
4890         CODE_SIZE = 2,
4891         // @@protoc_insertion_point(enum_value:google.protobuf.FileOptions.OptimizeMode.LITE_RUNTIME)
4892         LITE_RUNTIME = 3,
4893     }
4894 
4895     impl crate::Enum for OptimizeMode {
4896         const NAME: &'static str = "OptimizeMode";
4897 
value(&self) -> i324898         fn value(&self) -> i32 {
4899             *self as i32
4900         }
4901 
from_i32(value: i32) -> ::std::option::Option<OptimizeMode>4902         fn from_i32(value: i32) -> ::std::option::Option<OptimizeMode> {
4903             match value {
4904                 1 => ::std::option::Option::Some(OptimizeMode::SPEED),
4905                 2 => ::std::option::Option::Some(OptimizeMode::CODE_SIZE),
4906                 3 => ::std::option::Option::Some(OptimizeMode::LITE_RUNTIME),
4907                 _ => ::std::option::Option::None
4908             }
4909         }
4910 
4911         const VALUES: &'static [OptimizeMode] = &[
4912             OptimizeMode::SPEED,
4913             OptimizeMode::CODE_SIZE,
4914             OptimizeMode::LITE_RUNTIME,
4915         ];
4916     }
4917 
4918     impl crate::EnumFull for OptimizeMode {
enum_descriptor() -> crate::reflect::EnumDescriptor4919         fn enum_descriptor() -> crate::reflect::EnumDescriptor {
4920             static descriptor: crate::rt::Lazy<crate::reflect::EnumDescriptor> = crate::rt::Lazy::new();
4921             descriptor.get(|| super::file_descriptor().enum_by_package_relative_name("FileOptions.OptimizeMode").unwrap()).clone()
4922         }
4923 
descriptor(&self) -> crate::reflect::EnumValueDescriptor4924         fn descriptor(&self) -> crate::reflect::EnumValueDescriptor {
4925             let index = match self {
4926                 OptimizeMode::SPEED => 0,
4927                 OptimizeMode::CODE_SIZE => 1,
4928                 OptimizeMode::LITE_RUNTIME => 2,
4929             };
4930             Self::enum_descriptor().value_by_index(index)
4931         }
4932     }
4933 
4934     // Note, `Default` is implemented although default value is not 0
4935     impl ::std::default::Default for OptimizeMode {
default() -> Self4936         fn default() -> Self {
4937             OptimizeMode::SPEED
4938         }
4939     }
4940 
4941     impl OptimizeMode {
generated_enum_descriptor_data() -> crate::reflect::GeneratedEnumDescriptorData4942         pub(in super) fn generated_enum_descriptor_data() -> crate::reflect::GeneratedEnumDescriptorData {
4943             crate::reflect::GeneratedEnumDescriptorData::new::<OptimizeMode>("FileOptions.OptimizeMode")
4944         }
4945     }
4946 }
4947 
4948 #[derive(PartialEq,Clone,Default,Debug)]
4949 // @@protoc_insertion_point(message:google.protobuf.MessageOptions)
4950 pub struct MessageOptions {
4951     // message fields
4952     // @@protoc_insertion_point(field:google.protobuf.MessageOptions.message_set_wire_format)
4953     pub message_set_wire_format: ::std::option::Option<bool>,
4954     ///  Disables the generation of the standard "descriptor()" accessor, which can
4955     ///  conflict with a field of the same name.  This is meant to make migration
4956     ///  from proto1 easier; new code should avoid fields named "descriptor".
4957     // @@protoc_insertion_point(field:google.protobuf.MessageOptions.no_standard_descriptor_accessor)
4958     pub no_standard_descriptor_accessor: ::std::option::Option<bool>,
4959     ///  Is this message deprecated?
4960     ///  Depending on the target platform, this can emit Deprecated annotations
4961     ///  for the message, or it will be completely ignored; in the very least,
4962     ///  this is a formalization for deprecating messages.
4963     // @@protoc_insertion_point(field:google.protobuf.MessageOptions.deprecated)
4964     pub deprecated: ::std::option::Option<bool>,
4965     // @@protoc_insertion_point(field:google.protobuf.MessageOptions.map_entry)
4966     pub map_entry: ::std::option::Option<bool>,
4967     ///  The parser stores options it doesn't recognize here. See above.
4968     // @@protoc_insertion_point(field:google.protobuf.MessageOptions.uninterpreted_option)
4969     pub uninterpreted_option: ::std::vec::Vec<UninterpretedOption>,
4970     // special fields
4971     // @@protoc_insertion_point(special_field:google.protobuf.MessageOptions.special_fields)
4972     pub special_fields: crate::SpecialFields,
4973 }
4974 
4975 impl<'a> ::std::default::Default for &'a MessageOptions {
default() -> &'a MessageOptions4976     fn default() -> &'a MessageOptions {
4977         <MessageOptions as crate::Message>::default_instance()
4978     }
4979 }
4980 
4981 impl MessageOptions {
new() -> MessageOptions4982     pub fn new() -> MessageOptions {
4983         ::std::default::Default::default()
4984     }
4985 
4986     // optional bool message_set_wire_format = 1;
4987 
message_set_wire_format(&self) -> bool4988     pub fn message_set_wire_format(&self) -> bool {
4989         self.message_set_wire_format.unwrap_or(false)
4990     }
4991 
clear_message_set_wire_format(&mut self)4992     pub fn clear_message_set_wire_format(&mut self) {
4993         self.message_set_wire_format = ::std::option::Option::None;
4994     }
4995 
has_message_set_wire_format(&self) -> bool4996     pub fn has_message_set_wire_format(&self) -> bool {
4997         self.message_set_wire_format.is_some()
4998     }
4999 
5000     // Param is passed by value, moved
set_message_set_wire_format(&mut self, v: bool)5001     pub fn set_message_set_wire_format(&mut self, v: bool) {
5002         self.message_set_wire_format = ::std::option::Option::Some(v);
5003     }
5004 
5005     // optional bool no_standard_descriptor_accessor = 2;
5006 
no_standard_descriptor_accessor(&self) -> bool5007     pub fn no_standard_descriptor_accessor(&self) -> bool {
5008         self.no_standard_descriptor_accessor.unwrap_or(false)
5009     }
5010 
clear_no_standard_descriptor_accessor(&mut self)5011     pub fn clear_no_standard_descriptor_accessor(&mut self) {
5012         self.no_standard_descriptor_accessor = ::std::option::Option::None;
5013     }
5014 
has_no_standard_descriptor_accessor(&self) -> bool5015     pub fn has_no_standard_descriptor_accessor(&self) -> bool {
5016         self.no_standard_descriptor_accessor.is_some()
5017     }
5018 
5019     // Param is passed by value, moved
set_no_standard_descriptor_accessor(&mut self, v: bool)5020     pub fn set_no_standard_descriptor_accessor(&mut self, v: bool) {
5021         self.no_standard_descriptor_accessor = ::std::option::Option::Some(v);
5022     }
5023 
5024     // optional bool deprecated = 3;
5025 
deprecated(&self) -> bool5026     pub fn deprecated(&self) -> bool {
5027         self.deprecated.unwrap_or(false)
5028     }
5029 
clear_deprecated(&mut self)5030     pub fn clear_deprecated(&mut self) {
5031         self.deprecated = ::std::option::Option::None;
5032     }
5033 
has_deprecated(&self) -> bool5034     pub fn has_deprecated(&self) -> bool {
5035         self.deprecated.is_some()
5036     }
5037 
5038     // Param is passed by value, moved
set_deprecated(&mut self, v: bool)5039     pub fn set_deprecated(&mut self, v: bool) {
5040         self.deprecated = ::std::option::Option::Some(v);
5041     }
5042 
5043     // optional bool map_entry = 7;
5044 
map_entry(&self) -> bool5045     pub fn map_entry(&self) -> bool {
5046         self.map_entry.unwrap_or(false)
5047     }
5048 
clear_map_entry(&mut self)5049     pub fn clear_map_entry(&mut self) {
5050         self.map_entry = ::std::option::Option::None;
5051     }
5052 
has_map_entry(&self) -> bool5053     pub fn has_map_entry(&self) -> bool {
5054         self.map_entry.is_some()
5055     }
5056 
5057     // Param is passed by value, moved
set_map_entry(&mut self, v: bool)5058     pub fn set_map_entry(&mut self, v: bool) {
5059         self.map_entry = ::std::option::Option::Some(v);
5060     }
5061 
generated_message_descriptor_data() -> crate::reflect::GeneratedMessageDescriptorData5062     fn generated_message_descriptor_data() -> crate::reflect::GeneratedMessageDescriptorData {
5063         let mut fields = ::std::vec::Vec::with_capacity(5);
5064         let mut oneofs = ::std::vec::Vec::with_capacity(0);
5065         fields.push(crate::reflect::rt::v2::make_option_accessor::<_, _>(
5066             "message_set_wire_format",
5067             |m: &MessageOptions| { &m.message_set_wire_format },
5068             |m: &mut MessageOptions| { &mut m.message_set_wire_format },
5069         ));
5070         fields.push(crate::reflect::rt::v2::make_option_accessor::<_, _>(
5071             "no_standard_descriptor_accessor",
5072             |m: &MessageOptions| { &m.no_standard_descriptor_accessor },
5073             |m: &mut MessageOptions| { &mut m.no_standard_descriptor_accessor },
5074         ));
5075         fields.push(crate::reflect::rt::v2::make_option_accessor::<_, _>(
5076             "deprecated",
5077             |m: &MessageOptions| { &m.deprecated },
5078             |m: &mut MessageOptions| { &mut m.deprecated },
5079         ));
5080         fields.push(crate::reflect::rt::v2::make_option_accessor::<_, _>(
5081             "map_entry",
5082             |m: &MessageOptions| { &m.map_entry },
5083             |m: &mut MessageOptions| { &mut m.map_entry },
5084         ));
5085         fields.push(crate::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
5086             "uninterpreted_option",
5087             |m: &MessageOptions| { &m.uninterpreted_option },
5088             |m: &mut MessageOptions| { &mut m.uninterpreted_option },
5089         ));
5090         crate::reflect::GeneratedMessageDescriptorData::new_2::<MessageOptions>(
5091             "MessageOptions",
5092             fields,
5093             oneofs,
5094         )
5095     }
5096 }
5097 
5098 impl crate::Message for MessageOptions {
5099     const NAME: &'static str = "MessageOptions";
5100 
is_initialized(&self) -> bool5101     fn is_initialized(&self) -> bool {
5102         for v in &self.uninterpreted_option {
5103             if !v.is_initialized() {
5104                 return false;
5105             }
5106         };
5107         true
5108     }
5109 
merge_from(&mut self, is: &mut crate::CodedInputStream<'_>) -> crate::Result<()>5110     fn merge_from(&mut self, is: &mut crate::CodedInputStream<'_>) -> crate::Result<()> {
5111         while let Some(tag) = is.read_raw_tag_or_eof()? {
5112             match tag {
5113                 8 => {
5114                     self.message_set_wire_format = ::std::option::Option::Some(is.read_bool()?);
5115                 },
5116                 16 => {
5117                     self.no_standard_descriptor_accessor = ::std::option::Option::Some(is.read_bool()?);
5118                 },
5119                 24 => {
5120                     self.deprecated = ::std::option::Option::Some(is.read_bool()?);
5121                 },
5122                 56 => {
5123                     self.map_entry = ::std::option::Option::Some(is.read_bool()?);
5124                 },
5125                 7994 => {
5126                     self.uninterpreted_option.push(is.read_message()?);
5127                 },
5128                 tag => {
5129                     crate::rt::read_unknown_or_skip_group(tag, is, self.special_fields.mut_unknown_fields())?;
5130                 },
5131             };
5132         }
5133         ::std::result::Result::Ok(())
5134     }
5135 
5136     // Compute sizes of nested messages
5137     #[allow(unused_variables)]
compute_size(&self) -> u645138     fn compute_size(&self) -> u64 {
5139         let mut my_size = 0;
5140         if let Some(v) = self.message_set_wire_format {
5141             my_size += 1 + 1;
5142         }
5143         if let Some(v) = self.no_standard_descriptor_accessor {
5144             my_size += 1 + 1;
5145         }
5146         if let Some(v) = self.deprecated {
5147             my_size += 1 + 1;
5148         }
5149         if let Some(v) = self.map_entry {
5150             my_size += 1 + 1;
5151         }
5152         for value in &self.uninterpreted_option {
5153             let len = value.compute_size();
5154             my_size += 2 + crate::rt::compute_raw_varint64_size(len) + len;
5155         };
5156         my_size += crate::rt::unknown_fields_size(self.special_fields.unknown_fields());
5157         self.special_fields.cached_size().set(my_size as u32);
5158         my_size
5159     }
5160 
write_to_with_cached_sizes(&self, os: &mut crate::CodedOutputStream<'_>) -> crate::Result<()>5161     fn write_to_with_cached_sizes(&self, os: &mut crate::CodedOutputStream<'_>) -> crate::Result<()> {
5162         if let Some(v) = self.message_set_wire_format {
5163             os.write_bool(1, v)?;
5164         }
5165         if let Some(v) = self.no_standard_descriptor_accessor {
5166             os.write_bool(2, v)?;
5167         }
5168         if let Some(v) = self.deprecated {
5169             os.write_bool(3, v)?;
5170         }
5171         if let Some(v) = self.map_entry {
5172             os.write_bool(7, v)?;
5173         }
5174         for v in &self.uninterpreted_option {
5175             crate::rt::write_message_field_with_cached_size(999, v, os)?;
5176         };
5177         os.write_unknown_fields(self.special_fields.unknown_fields())?;
5178         ::std::result::Result::Ok(())
5179     }
5180 
special_fields(&self) -> &crate::SpecialFields5181     fn special_fields(&self) -> &crate::SpecialFields {
5182         &self.special_fields
5183     }
5184 
mut_special_fields(&mut self) -> &mut crate::SpecialFields5185     fn mut_special_fields(&mut self) -> &mut crate::SpecialFields {
5186         &mut self.special_fields
5187     }
5188 
new() -> MessageOptions5189     fn new() -> MessageOptions {
5190         MessageOptions::new()
5191     }
5192 
clear(&mut self)5193     fn clear(&mut self) {
5194         self.message_set_wire_format = ::std::option::Option::None;
5195         self.no_standard_descriptor_accessor = ::std::option::Option::None;
5196         self.deprecated = ::std::option::Option::None;
5197         self.map_entry = ::std::option::Option::None;
5198         self.uninterpreted_option.clear();
5199         self.special_fields.clear();
5200     }
5201 
default_instance() -> &'static MessageOptions5202     fn default_instance() -> &'static MessageOptions {
5203         static instance: MessageOptions = MessageOptions {
5204             message_set_wire_format: ::std::option::Option::None,
5205             no_standard_descriptor_accessor: ::std::option::Option::None,
5206             deprecated: ::std::option::Option::None,
5207             map_entry: ::std::option::Option::None,
5208             uninterpreted_option: ::std::vec::Vec::new(),
5209             special_fields: crate::SpecialFields::new(),
5210         };
5211         &instance
5212     }
5213 }
5214 
5215 impl crate::MessageFull for MessageOptions {
descriptor() -> crate::reflect::MessageDescriptor5216     fn descriptor() -> crate::reflect::MessageDescriptor {
5217         static descriptor: crate::rt::Lazy<crate::reflect::MessageDescriptor> = crate::rt::Lazy::new();
5218         descriptor.get(|| file_descriptor().message_by_package_relative_name("MessageOptions").unwrap()).clone()
5219     }
5220 }
5221 
5222 impl ::std::fmt::Display for MessageOptions {
fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result5223     fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
5224         crate::text_format::fmt(self, f)
5225     }
5226 }
5227 
5228 impl crate::reflect::ProtobufValue for MessageOptions {
5229     type RuntimeType = crate::reflect::rt::RuntimeTypeMessage<Self>;
5230 }
5231 
5232 #[derive(PartialEq,Clone,Default,Debug)]
5233 // @@protoc_insertion_point(message:google.protobuf.FieldOptions)
5234 pub struct FieldOptions {
5235     // message fields
5236     ///  The ctype option instructs the C++ code generator to use a different
5237     ///  representation of the field than it normally would.  See the specific
5238     ///  options below.  This option is not yet implemented in the open source
5239     ///  release -- sorry, we'll try to include it in a future version!
5240     // @@protoc_insertion_point(field:google.protobuf.FieldOptions.ctype)
5241     pub ctype: ::std::option::Option<crate::EnumOrUnknown<field_options::CType>>,
5242     ///  The packed option can be enabled for repeated primitive fields to enable
5243     ///  a more efficient representation on the wire. Rather than repeatedly
5244     ///  writing the tag and type for each element, the entire array is encoded as
5245     ///  a single length-delimited blob. In proto3, only explicit setting it to
5246     ///  false will avoid using packed encoding.
5247     // @@protoc_insertion_point(field:google.protobuf.FieldOptions.packed)
5248     pub packed: ::std::option::Option<bool>,
5249     ///  The jstype option determines the JavaScript type used for values of the
5250     ///  field.  The option is permitted only for 64 bit integral and fixed types
5251     ///  (int64, uint64, sint64, fixed64, sfixed64).  A field with jstype JS_STRING
5252     ///  is represented as JavaScript string, which avoids loss of precision that
5253     ///  can happen when a large value is converted to a floating point JavaScript.
5254     ///  Specifying JS_NUMBER for the jstype causes the generated JavaScript code to
5255     ///  use the JavaScript "number" type.  The behavior of the default option
5256     ///  JS_NORMAL is implementation dependent.
5257     ///
5258     ///  This option is an enum to permit additional types to be added, e.g.
5259     ///  goog.math.Integer.
5260     // @@protoc_insertion_point(field:google.protobuf.FieldOptions.jstype)
5261     pub jstype: ::std::option::Option<crate::EnumOrUnknown<field_options::JSType>>,
5262     ///  Should this field be parsed lazily?  Lazy applies only to message-type
5263     ///  fields.  It means that when the outer message is initially parsed, the
5264     ///  inner message's contents will not be parsed but instead stored in encoded
5265     ///  form.  The inner message will actually be parsed when it is first accessed.
5266     ///
5267     ///  This is only a hint.  Implementations are free to choose whether to use
5268     ///  eager or lazy parsing regardless of the value of this option.  However,
5269     ///  setting this option true suggests that the protocol author believes that
5270     ///  using lazy parsing on this field is worth the additional bookkeeping
5271     ///  overhead typically needed to implement it.
5272     ///
5273     ///  This option does not affect the public interface of any generated code;
5274     ///  all method signatures remain the same.  Furthermore, thread-safety of the
5275     ///  interface is not affected by this option; const methods remain safe to
5276     ///  call from multiple threads concurrently, while non-const methods continue
5277     ///  to require exclusive access.
5278     ///
5279     ///
5280     ///  Note that implementations may choose not to check required fields within
5281     ///  a lazy sub-message.  That is, calling IsInitialized() on the outer message
5282     ///  may return true even if the inner message has missing required fields.
5283     ///  This is necessary because otherwise the inner message would have to be
5284     ///  parsed in order to perform the check, defeating the purpose of lazy
5285     ///  parsing.  An implementation which chooses not to check required fields
5286     ///  must be consistent about it.  That is, for any particular sub-message, the
5287     ///  implementation must either *always* check its required fields, or *never*
5288     ///  check its required fields, regardless of whether or not the message has
5289     ///  been parsed.
5290     // @@protoc_insertion_point(field:google.protobuf.FieldOptions.lazy)
5291     pub lazy: ::std::option::Option<bool>,
5292     ///  Is this field deprecated?
5293     ///  Depending on the target platform, this can emit Deprecated annotations
5294     ///  for accessors, or it will be completely ignored; in the very least, this
5295     ///  is a formalization for deprecating fields.
5296     // @@protoc_insertion_point(field:google.protobuf.FieldOptions.deprecated)
5297     pub deprecated: ::std::option::Option<bool>,
5298     ///  For Google-internal migration only. Do not use.
5299     // @@protoc_insertion_point(field:google.protobuf.FieldOptions.weak)
5300     pub weak: ::std::option::Option<bool>,
5301     ///  The parser stores options it doesn't recognize here. See above.
5302     // @@protoc_insertion_point(field:google.protobuf.FieldOptions.uninterpreted_option)
5303     pub uninterpreted_option: ::std::vec::Vec<UninterpretedOption>,
5304     // special fields
5305     // @@protoc_insertion_point(special_field:google.protobuf.FieldOptions.special_fields)
5306     pub special_fields: crate::SpecialFields,
5307 }
5308 
5309 impl<'a> ::std::default::Default for &'a FieldOptions {
default() -> &'a FieldOptions5310     fn default() -> &'a FieldOptions {
5311         <FieldOptions as crate::Message>::default_instance()
5312     }
5313 }
5314 
5315 impl FieldOptions {
new() -> FieldOptions5316     pub fn new() -> FieldOptions {
5317         ::std::default::Default::default()
5318     }
5319 
5320     // optional .google.protobuf.FieldOptions.CType ctype = 1;
5321 
ctype(&self) -> field_options::CType5322     pub fn ctype(&self) -> field_options::CType {
5323         match self.ctype {
5324             Some(e) => e.enum_value_or(field_options::CType::STRING),
5325             None => field_options::CType::STRING,
5326         }
5327     }
5328 
clear_ctype(&mut self)5329     pub fn clear_ctype(&mut self) {
5330         self.ctype = ::std::option::Option::None;
5331     }
5332 
has_ctype(&self) -> bool5333     pub fn has_ctype(&self) -> bool {
5334         self.ctype.is_some()
5335     }
5336 
5337     // Param is passed by value, moved
set_ctype(&mut self, v: field_options::CType)5338     pub fn set_ctype(&mut self, v: field_options::CType) {
5339         self.ctype = ::std::option::Option::Some(crate::EnumOrUnknown::new(v));
5340     }
5341 
5342     // optional bool packed = 2;
5343 
packed(&self) -> bool5344     pub fn packed(&self) -> bool {
5345         self.packed.unwrap_or(false)
5346     }
5347 
clear_packed(&mut self)5348     pub fn clear_packed(&mut self) {
5349         self.packed = ::std::option::Option::None;
5350     }
5351 
has_packed(&self) -> bool5352     pub fn has_packed(&self) -> bool {
5353         self.packed.is_some()
5354     }
5355 
5356     // Param is passed by value, moved
set_packed(&mut self, v: bool)5357     pub fn set_packed(&mut self, v: bool) {
5358         self.packed = ::std::option::Option::Some(v);
5359     }
5360 
5361     // optional .google.protobuf.FieldOptions.JSType jstype = 6;
5362 
jstype(&self) -> field_options::JSType5363     pub fn jstype(&self) -> field_options::JSType {
5364         match self.jstype {
5365             Some(e) => e.enum_value_or(field_options::JSType::JS_NORMAL),
5366             None => field_options::JSType::JS_NORMAL,
5367         }
5368     }
5369 
clear_jstype(&mut self)5370     pub fn clear_jstype(&mut self) {
5371         self.jstype = ::std::option::Option::None;
5372     }
5373 
has_jstype(&self) -> bool5374     pub fn has_jstype(&self) -> bool {
5375         self.jstype.is_some()
5376     }
5377 
5378     // Param is passed by value, moved
set_jstype(&mut self, v: field_options::JSType)5379     pub fn set_jstype(&mut self, v: field_options::JSType) {
5380         self.jstype = ::std::option::Option::Some(crate::EnumOrUnknown::new(v));
5381     }
5382 
5383     // optional bool lazy = 5;
5384 
lazy(&self) -> bool5385     pub fn lazy(&self) -> bool {
5386         self.lazy.unwrap_or(false)
5387     }
5388 
clear_lazy(&mut self)5389     pub fn clear_lazy(&mut self) {
5390         self.lazy = ::std::option::Option::None;
5391     }
5392 
has_lazy(&self) -> bool5393     pub fn has_lazy(&self) -> bool {
5394         self.lazy.is_some()
5395     }
5396 
5397     // Param is passed by value, moved
set_lazy(&mut self, v: bool)5398     pub fn set_lazy(&mut self, v: bool) {
5399         self.lazy = ::std::option::Option::Some(v);
5400     }
5401 
5402     // optional bool deprecated = 3;
5403 
deprecated(&self) -> bool5404     pub fn deprecated(&self) -> bool {
5405         self.deprecated.unwrap_or(false)
5406     }
5407 
clear_deprecated(&mut self)5408     pub fn clear_deprecated(&mut self) {
5409         self.deprecated = ::std::option::Option::None;
5410     }
5411 
has_deprecated(&self) -> bool5412     pub fn has_deprecated(&self) -> bool {
5413         self.deprecated.is_some()
5414     }
5415 
5416     // Param is passed by value, moved
set_deprecated(&mut self, v: bool)5417     pub fn set_deprecated(&mut self, v: bool) {
5418         self.deprecated = ::std::option::Option::Some(v);
5419     }
5420 
5421     // optional bool weak = 10;
5422 
weak(&self) -> bool5423     pub fn weak(&self) -> bool {
5424         self.weak.unwrap_or(false)
5425     }
5426 
clear_weak(&mut self)5427     pub fn clear_weak(&mut self) {
5428         self.weak = ::std::option::Option::None;
5429     }
5430 
has_weak(&self) -> bool5431     pub fn has_weak(&self) -> bool {
5432         self.weak.is_some()
5433     }
5434 
5435     // Param is passed by value, moved
set_weak(&mut self, v: bool)5436     pub fn set_weak(&mut self, v: bool) {
5437         self.weak = ::std::option::Option::Some(v);
5438     }
5439 
generated_message_descriptor_data() -> crate::reflect::GeneratedMessageDescriptorData5440     fn generated_message_descriptor_data() -> crate::reflect::GeneratedMessageDescriptorData {
5441         let mut fields = ::std::vec::Vec::with_capacity(7);
5442         let mut oneofs = ::std::vec::Vec::with_capacity(0);
5443         fields.push(crate::reflect::rt::v2::make_option_accessor::<_, _>(
5444             "ctype",
5445             |m: &FieldOptions| { &m.ctype },
5446             |m: &mut FieldOptions| { &mut m.ctype },
5447         ));
5448         fields.push(crate::reflect::rt::v2::make_option_accessor::<_, _>(
5449             "packed",
5450             |m: &FieldOptions| { &m.packed },
5451             |m: &mut FieldOptions| { &mut m.packed },
5452         ));
5453         fields.push(crate::reflect::rt::v2::make_option_accessor::<_, _>(
5454             "jstype",
5455             |m: &FieldOptions| { &m.jstype },
5456             |m: &mut FieldOptions| { &mut m.jstype },
5457         ));
5458         fields.push(crate::reflect::rt::v2::make_option_accessor::<_, _>(
5459             "lazy",
5460             |m: &FieldOptions| { &m.lazy },
5461             |m: &mut FieldOptions| { &mut m.lazy },
5462         ));
5463         fields.push(crate::reflect::rt::v2::make_option_accessor::<_, _>(
5464             "deprecated",
5465             |m: &FieldOptions| { &m.deprecated },
5466             |m: &mut FieldOptions| { &mut m.deprecated },
5467         ));
5468         fields.push(crate::reflect::rt::v2::make_option_accessor::<_, _>(
5469             "weak",
5470             |m: &FieldOptions| { &m.weak },
5471             |m: &mut FieldOptions| { &mut m.weak },
5472         ));
5473         fields.push(crate::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
5474             "uninterpreted_option",
5475             |m: &FieldOptions| { &m.uninterpreted_option },
5476             |m: &mut FieldOptions| { &mut m.uninterpreted_option },
5477         ));
5478         crate::reflect::GeneratedMessageDescriptorData::new_2::<FieldOptions>(
5479             "FieldOptions",
5480             fields,
5481             oneofs,
5482         )
5483     }
5484 }
5485 
5486 impl crate::Message for FieldOptions {
5487     const NAME: &'static str = "FieldOptions";
5488 
is_initialized(&self) -> bool5489     fn is_initialized(&self) -> bool {
5490         for v in &self.uninterpreted_option {
5491             if !v.is_initialized() {
5492                 return false;
5493             }
5494         };
5495         true
5496     }
5497 
merge_from(&mut self, is: &mut crate::CodedInputStream<'_>) -> crate::Result<()>5498     fn merge_from(&mut self, is: &mut crate::CodedInputStream<'_>) -> crate::Result<()> {
5499         while let Some(tag) = is.read_raw_tag_or_eof()? {
5500             match tag {
5501                 8 => {
5502                     self.ctype = ::std::option::Option::Some(is.read_enum_or_unknown()?);
5503                 },
5504                 16 => {
5505                     self.packed = ::std::option::Option::Some(is.read_bool()?);
5506                 },
5507                 48 => {
5508                     self.jstype = ::std::option::Option::Some(is.read_enum_or_unknown()?);
5509                 },
5510                 40 => {
5511                     self.lazy = ::std::option::Option::Some(is.read_bool()?);
5512                 },
5513                 24 => {
5514                     self.deprecated = ::std::option::Option::Some(is.read_bool()?);
5515                 },
5516                 80 => {
5517                     self.weak = ::std::option::Option::Some(is.read_bool()?);
5518                 },
5519                 7994 => {
5520                     self.uninterpreted_option.push(is.read_message()?);
5521                 },
5522                 tag => {
5523                     crate::rt::read_unknown_or_skip_group(tag, is, self.special_fields.mut_unknown_fields())?;
5524                 },
5525             };
5526         }
5527         ::std::result::Result::Ok(())
5528     }
5529 
5530     // Compute sizes of nested messages
5531     #[allow(unused_variables)]
compute_size(&self) -> u645532     fn compute_size(&self) -> u64 {
5533         let mut my_size = 0;
5534         if let Some(v) = self.ctype {
5535             my_size += crate::rt::int32_size(1, v.value());
5536         }
5537         if let Some(v) = self.packed {
5538             my_size += 1 + 1;
5539         }
5540         if let Some(v) = self.jstype {
5541             my_size += crate::rt::int32_size(6, v.value());
5542         }
5543         if let Some(v) = self.lazy {
5544             my_size += 1 + 1;
5545         }
5546         if let Some(v) = self.deprecated {
5547             my_size += 1 + 1;
5548         }
5549         if let Some(v) = self.weak {
5550             my_size += 1 + 1;
5551         }
5552         for value in &self.uninterpreted_option {
5553             let len = value.compute_size();
5554             my_size += 2 + crate::rt::compute_raw_varint64_size(len) + len;
5555         };
5556         my_size += crate::rt::unknown_fields_size(self.special_fields.unknown_fields());
5557         self.special_fields.cached_size().set(my_size as u32);
5558         my_size
5559     }
5560 
write_to_with_cached_sizes(&self, os: &mut crate::CodedOutputStream<'_>) -> crate::Result<()>5561     fn write_to_with_cached_sizes(&self, os: &mut crate::CodedOutputStream<'_>) -> crate::Result<()> {
5562         if let Some(v) = self.ctype {
5563             os.write_enum(1, crate::EnumOrUnknown::value(&v))?;
5564         }
5565         if let Some(v) = self.packed {
5566             os.write_bool(2, v)?;
5567         }
5568         if let Some(v) = self.jstype {
5569             os.write_enum(6, crate::EnumOrUnknown::value(&v))?;
5570         }
5571         if let Some(v) = self.lazy {
5572             os.write_bool(5, v)?;
5573         }
5574         if let Some(v) = self.deprecated {
5575             os.write_bool(3, v)?;
5576         }
5577         if let Some(v) = self.weak {
5578             os.write_bool(10, v)?;
5579         }
5580         for v in &self.uninterpreted_option {
5581             crate::rt::write_message_field_with_cached_size(999, v, os)?;
5582         };
5583         os.write_unknown_fields(self.special_fields.unknown_fields())?;
5584         ::std::result::Result::Ok(())
5585     }
5586 
special_fields(&self) -> &crate::SpecialFields5587     fn special_fields(&self) -> &crate::SpecialFields {
5588         &self.special_fields
5589     }
5590 
mut_special_fields(&mut self) -> &mut crate::SpecialFields5591     fn mut_special_fields(&mut self) -> &mut crate::SpecialFields {
5592         &mut self.special_fields
5593     }
5594 
new() -> FieldOptions5595     fn new() -> FieldOptions {
5596         FieldOptions::new()
5597     }
5598 
clear(&mut self)5599     fn clear(&mut self) {
5600         self.ctype = ::std::option::Option::None;
5601         self.packed = ::std::option::Option::None;
5602         self.jstype = ::std::option::Option::None;
5603         self.lazy = ::std::option::Option::None;
5604         self.deprecated = ::std::option::Option::None;
5605         self.weak = ::std::option::Option::None;
5606         self.uninterpreted_option.clear();
5607         self.special_fields.clear();
5608     }
5609 
default_instance() -> &'static FieldOptions5610     fn default_instance() -> &'static FieldOptions {
5611         static instance: FieldOptions = FieldOptions {
5612             ctype: ::std::option::Option::None,
5613             packed: ::std::option::Option::None,
5614             jstype: ::std::option::Option::None,
5615             lazy: ::std::option::Option::None,
5616             deprecated: ::std::option::Option::None,
5617             weak: ::std::option::Option::None,
5618             uninterpreted_option: ::std::vec::Vec::new(),
5619             special_fields: crate::SpecialFields::new(),
5620         };
5621         &instance
5622     }
5623 }
5624 
5625 impl crate::MessageFull for FieldOptions {
descriptor() -> crate::reflect::MessageDescriptor5626     fn descriptor() -> crate::reflect::MessageDescriptor {
5627         static descriptor: crate::rt::Lazy<crate::reflect::MessageDescriptor> = crate::rt::Lazy::new();
5628         descriptor.get(|| file_descriptor().message_by_package_relative_name("FieldOptions").unwrap()).clone()
5629     }
5630 }
5631 
5632 impl ::std::fmt::Display for FieldOptions {
fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result5633     fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
5634         crate::text_format::fmt(self, f)
5635     }
5636 }
5637 
5638 impl crate::reflect::ProtobufValue for FieldOptions {
5639     type RuntimeType = crate::reflect::rt::RuntimeTypeMessage<Self>;
5640 }
5641 
5642 /// Nested message and enums of message `FieldOptions`
5643 pub mod field_options {
5644     #[derive(Clone,Copy,PartialEq,Eq,Debug,Hash)]
5645     // @@protoc_insertion_point(enum:google.protobuf.FieldOptions.CType)
5646     pub enum CType {
5647         // @@protoc_insertion_point(enum_value:google.protobuf.FieldOptions.CType.STRING)
5648         STRING = 0,
5649         // @@protoc_insertion_point(enum_value:google.protobuf.FieldOptions.CType.CORD)
5650         CORD = 1,
5651         // @@protoc_insertion_point(enum_value:google.protobuf.FieldOptions.CType.STRING_PIECE)
5652         STRING_PIECE = 2,
5653     }
5654 
5655     impl crate::Enum for CType {
5656         const NAME: &'static str = "CType";
5657 
value(&self) -> i325658         fn value(&self) -> i32 {
5659             *self as i32
5660         }
5661 
from_i32(value: i32) -> ::std::option::Option<CType>5662         fn from_i32(value: i32) -> ::std::option::Option<CType> {
5663             match value {
5664                 0 => ::std::option::Option::Some(CType::STRING),
5665                 1 => ::std::option::Option::Some(CType::CORD),
5666                 2 => ::std::option::Option::Some(CType::STRING_PIECE),
5667                 _ => ::std::option::Option::None
5668             }
5669         }
5670 
5671         const VALUES: &'static [CType] = &[
5672             CType::STRING,
5673             CType::CORD,
5674             CType::STRING_PIECE,
5675         ];
5676     }
5677 
5678     impl crate::EnumFull for CType {
enum_descriptor() -> crate::reflect::EnumDescriptor5679         fn enum_descriptor() -> crate::reflect::EnumDescriptor {
5680             static descriptor: crate::rt::Lazy<crate::reflect::EnumDescriptor> = crate::rt::Lazy::new();
5681             descriptor.get(|| super::file_descriptor().enum_by_package_relative_name("FieldOptions.CType").unwrap()).clone()
5682         }
5683 
descriptor(&self) -> crate::reflect::EnumValueDescriptor5684         fn descriptor(&self) -> crate::reflect::EnumValueDescriptor {
5685             let index = *self as usize;
5686             Self::enum_descriptor().value_by_index(index)
5687         }
5688     }
5689 
5690     impl ::std::default::Default for CType {
default() -> Self5691         fn default() -> Self {
5692             CType::STRING
5693         }
5694     }
5695 
5696     impl CType {
generated_enum_descriptor_data() -> crate::reflect::GeneratedEnumDescriptorData5697         pub(in super) fn generated_enum_descriptor_data() -> crate::reflect::GeneratedEnumDescriptorData {
5698             crate::reflect::GeneratedEnumDescriptorData::new::<CType>("FieldOptions.CType")
5699         }
5700     }
5701 
5702     #[derive(Clone,Copy,PartialEq,Eq,Debug,Hash)]
5703     // @@protoc_insertion_point(enum:google.protobuf.FieldOptions.JSType)
5704     pub enum JSType {
5705         // @@protoc_insertion_point(enum_value:google.protobuf.FieldOptions.JSType.JS_NORMAL)
5706         JS_NORMAL = 0,
5707         // @@protoc_insertion_point(enum_value:google.protobuf.FieldOptions.JSType.JS_STRING)
5708         JS_STRING = 1,
5709         // @@protoc_insertion_point(enum_value:google.protobuf.FieldOptions.JSType.JS_NUMBER)
5710         JS_NUMBER = 2,
5711     }
5712 
5713     impl crate::Enum for JSType {
5714         const NAME: &'static str = "JSType";
5715 
value(&self) -> i325716         fn value(&self) -> i32 {
5717             *self as i32
5718         }
5719 
from_i32(value: i32) -> ::std::option::Option<JSType>5720         fn from_i32(value: i32) -> ::std::option::Option<JSType> {
5721             match value {
5722                 0 => ::std::option::Option::Some(JSType::JS_NORMAL),
5723                 1 => ::std::option::Option::Some(JSType::JS_STRING),
5724                 2 => ::std::option::Option::Some(JSType::JS_NUMBER),
5725                 _ => ::std::option::Option::None
5726             }
5727         }
5728 
5729         const VALUES: &'static [JSType] = &[
5730             JSType::JS_NORMAL,
5731             JSType::JS_STRING,
5732             JSType::JS_NUMBER,
5733         ];
5734     }
5735 
5736     impl crate::EnumFull for JSType {
enum_descriptor() -> crate::reflect::EnumDescriptor5737         fn enum_descriptor() -> crate::reflect::EnumDescriptor {
5738             static descriptor: crate::rt::Lazy<crate::reflect::EnumDescriptor> = crate::rt::Lazy::new();
5739             descriptor.get(|| super::file_descriptor().enum_by_package_relative_name("FieldOptions.JSType").unwrap()).clone()
5740         }
5741 
descriptor(&self) -> crate::reflect::EnumValueDescriptor5742         fn descriptor(&self) -> crate::reflect::EnumValueDescriptor {
5743             let index = *self as usize;
5744             Self::enum_descriptor().value_by_index(index)
5745         }
5746     }
5747 
5748     impl ::std::default::Default for JSType {
default() -> Self5749         fn default() -> Self {
5750             JSType::JS_NORMAL
5751         }
5752     }
5753 
5754     impl JSType {
generated_enum_descriptor_data() -> crate::reflect::GeneratedEnumDescriptorData5755         pub(in super) fn generated_enum_descriptor_data() -> crate::reflect::GeneratedEnumDescriptorData {
5756             crate::reflect::GeneratedEnumDescriptorData::new::<JSType>("FieldOptions.JSType")
5757         }
5758     }
5759 }
5760 
5761 #[derive(PartialEq,Clone,Default,Debug)]
5762 // @@protoc_insertion_point(message:google.protobuf.OneofOptions)
5763 pub struct OneofOptions {
5764     // message fields
5765     ///  The parser stores options it doesn't recognize here. See above.
5766     // @@protoc_insertion_point(field:google.protobuf.OneofOptions.uninterpreted_option)
5767     pub uninterpreted_option: ::std::vec::Vec<UninterpretedOption>,
5768     // special fields
5769     // @@protoc_insertion_point(special_field:google.protobuf.OneofOptions.special_fields)
5770     pub special_fields: crate::SpecialFields,
5771 }
5772 
5773 impl<'a> ::std::default::Default for &'a OneofOptions {
default() -> &'a OneofOptions5774     fn default() -> &'a OneofOptions {
5775         <OneofOptions as crate::Message>::default_instance()
5776     }
5777 }
5778 
5779 impl OneofOptions {
new() -> OneofOptions5780     pub fn new() -> OneofOptions {
5781         ::std::default::Default::default()
5782     }
5783 
generated_message_descriptor_data() -> crate::reflect::GeneratedMessageDescriptorData5784     fn generated_message_descriptor_data() -> crate::reflect::GeneratedMessageDescriptorData {
5785         let mut fields = ::std::vec::Vec::with_capacity(1);
5786         let mut oneofs = ::std::vec::Vec::with_capacity(0);
5787         fields.push(crate::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
5788             "uninterpreted_option",
5789             |m: &OneofOptions| { &m.uninterpreted_option },
5790             |m: &mut OneofOptions| { &mut m.uninterpreted_option },
5791         ));
5792         crate::reflect::GeneratedMessageDescriptorData::new_2::<OneofOptions>(
5793             "OneofOptions",
5794             fields,
5795             oneofs,
5796         )
5797     }
5798 }
5799 
5800 impl crate::Message for OneofOptions {
5801     const NAME: &'static str = "OneofOptions";
5802 
is_initialized(&self) -> bool5803     fn is_initialized(&self) -> bool {
5804         for v in &self.uninterpreted_option {
5805             if !v.is_initialized() {
5806                 return false;
5807             }
5808         };
5809         true
5810     }
5811 
merge_from(&mut self, is: &mut crate::CodedInputStream<'_>) -> crate::Result<()>5812     fn merge_from(&mut self, is: &mut crate::CodedInputStream<'_>) -> crate::Result<()> {
5813         while let Some(tag) = is.read_raw_tag_or_eof()? {
5814             match tag {
5815                 7994 => {
5816                     self.uninterpreted_option.push(is.read_message()?);
5817                 },
5818                 tag => {
5819                     crate::rt::read_unknown_or_skip_group(tag, is, self.special_fields.mut_unknown_fields())?;
5820                 },
5821             };
5822         }
5823         ::std::result::Result::Ok(())
5824     }
5825 
5826     // Compute sizes of nested messages
5827     #[allow(unused_variables)]
compute_size(&self) -> u645828     fn compute_size(&self) -> u64 {
5829         let mut my_size = 0;
5830         for value in &self.uninterpreted_option {
5831             let len = value.compute_size();
5832             my_size += 2 + crate::rt::compute_raw_varint64_size(len) + len;
5833         };
5834         my_size += crate::rt::unknown_fields_size(self.special_fields.unknown_fields());
5835         self.special_fields.cached_size().set(my_size as u32);
5836         my_size
5837     }
5838 
write_to_with_cached_sizes(&self, os: &mut crate::CodedOutputStream<'_>) -> crate::Result<()>5839     fn write_to_with_cached_sizes(&self, os: &mut crate::CodedOutputStream<'_>) -> crate::Result<()> {
5840         for v in &self.uninterpreted_option {
5841             crate::rt::write_message_field_with_cached_size(999, v, os)?;
5842         };
5843         os.write_unknown_fields(self.special_fields.unknown_fields())?;
5844         ::std::result::Result::Ok(())
5845     }
5846 
special_fields(&self) -> &crate::SpecialFields5847     fn special_fields(&self) -> &crate::SpecialFields {
5848         &self.special_fields
5849     }
5850 
mut_special_fields(&mut self) -> &mut crate::SpecialFields5851     fn mut_special_fields(&mut self) -> &mut crate::SpecialFields {
5852         &mut self.special_fields
5853     }
5854 
new() -> OneofOptions5855     fn new() -> OneofOptions {
5856         OneofOptions::new()
5857     }
5858 
clear(&mut self)5859     fn clear(&mut self) {
5860         self.uninterpreted_option.clear();
5861         self.special_fields.clear();
5862     }
5863 
default_instance() -> &'static OneofOptions5864     fn default_instance() -> &'static OneofOptions {
5865         static instance: OneofOptions = OneofOptions {
5866             uninterpreted_option: ::std::vec::Vec::new(),
5867             special_fields: crate::SpecialFields::new(),
5868         };
5869         &instance
5870     }
5871 }
5872 
5873 impl crate::MessageFull for OneofOptions {
descriptor() -> crate::reflect::MessageDescriptor5874     fn descriptor() -> crate::reflect::MessageDescriptor {
5875         static descriptor: crate::rt::Lazy<crate::reflect::MessageDescriptor> = crate::rt::Lazy::new();
5876         descriptor.get(|| file_descriptor().message_by_package_relative_name("OneofOptions").unwrap()).clone()
5877     }
5878 }
5879 
5880 impl ::std::fmt::Display for OneofOptions {
fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result5881     fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
5882         crate::text_format::fmt(self, f)
5883     }
5884 }
5885 
5886 impl crate::reflect::ProtobufValue for OneofOptions {
5887     type RuntimeType = crate::reflect::rt::RuntimeTypeMessage<Self>;
5888 }
5889 
5890 #[derive(PartialEq,Clone,Default,Debug)]
5891 // @@protoc_insertion_point(message:google.protobuf.EnumOptions)
5892 pub struct EnumOptions {
5893     // message fields
5894     ///  Set this option to true to allow mapping different tag names to the same
5895     ///  value.
5896     // @@protoc_insertion_point(field:google.protobuf.EnumOptions.allow_alias)
5897     pub allow_alias: ::std::option::Option<bool>,
5898     ///  Is this enum deprecated?
5899     ///  Depending on the target platform, this can emit Deprecated annotations
5900     ///  for the enum, or it will be completely ignored; in the very least, this
5901     ///  is a formalization for deprecating enums.
5902     // @@protoc_insertion_point(field:google.protobuf.EnumOptions.deprecated)
5903     pub deprecated: ::std::option::Option<bool>,
5904     ///  The parser stores options it doesn't recognize here. See above.
5905     // @@protoc_insertion_point(field:google.protobuf.EnumOptions.uninterpreted_option)
5906     pub uninterpreted_option: ::std::vec::Vec<UninterpretedOption>,
5907     // special fields
5908     // @@protoc_insertion_point(special_field:google.protobuf.EnumOptions.special_fields)
5909     pub special_fields: crate::SpecialFields,
5910 }
5911 
5912 impl<'a> ::std::default::Default for &'a EnumOptions {
default() -> &'a EnumOptions5913     fn default() -> &'a EnumOptions {
5914         <EnumOptions as crate::Message>::default_instance()
5915     }
5916 }
5917 
5918 impl EnumOptions {
new() -> EnumOptions5919     pub fn new() -> EnumOptions {
5920         ::std::default::Default::default()
5921     }
5922 
5923     // optional bool allow_alias = 2;
5924 
allow_alias(&self) -> bool5925     pub fn allow_alias(&self) -> bool {
5926         self.allow_alias.unwrap_or(false)
5927     }
5928 
clear_allow_alias(&mut self)5929     pub fn clear_allow_alias(&mut self) {
5930         self.allow_alias = ::std::option::Option::None;
5931     }
5932 
has_allow_alias(&self) -> bool5933     pub fn has_allow_alias(&self) -> bool {
5934         self.allow_alias.is_some()
5935     }
5936 
5937     // Param is passed by value, moved
set_allow_alias(&mut self, v: bool)5938     pub fn set_allow_alias(&mut self, v: bool) {
5939         self.allow_alias = ::std::option::Option::Some(v);
5940     }
5941 
5942     // optional bool deprecated = 3;
5943 
deprecated(&self) -> bool5944     pub fn deprecated(&self) -> bool {
5945         self.deprecated.unwrap_or(false)
5946     }
5947 
clear_deprecated(&mut self)5948     pub fn clear_deprecated(&mut self) {
5949         self.deprecated = ::std::option::Option::None;
5950     }
5951 
has_deprecated(&self) -> bool5952     pub fn has_deprecated(&self) -> bool {
5953         self.deprecated.is_some()
5954     }
5955 
5956     // Param is passed by value, moved
set_deprecated(&mut self, v: bool)5957     pub fn set_deprecated(&mut self, v: bool) {
5958         self.deprecated = ::std::option::Option::Some(v);
5959     }
5960 
generated_message_descriptor_data() -> crate::reflect::GeneratedMessageDescriptorData5961     fn generated_message_descriptor_data() -> crate::reflect::GeneratedMessageDescriptorData {
5962         let mut fields = ::std::vec::Vec::with_capacity(3);
5963         let mut oneofs = ::std::vec::Vec::with_capacity(0);
5964         fields.push(crate::reflect::rt::v2::make_option_accessor::<_, _>(
5965             "allow_alias",
5966             |m: &EnumOptions| { &m.allow_alias },
5967             |m: &mut EnumOptions| { &mut m.allow_alias },
5968         ));
5969         fields.push(crate::reflect::rt::v2::make_option_accessor::<_, _>(
5970             "deprecated",
5971             |m: &EnumOptions| { &m.deprecated },
5972             |m: &mut EnumOptions| { &mut m.deprecated },
5973         ));
5974         fields.push(crate::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
5975             "uninterpreted_option",
5976             |m: &EnumOptions| { &m.uninterpreted_option },
5977             |m: &mut EnumOptions| { &mut m.uninterpreted_option },
5978         ));
5979         crate::reflect::GeneratedMessageDescriptorData::new_2::<EnumOptions>(
5980             "EnumOptions",
5981             fields,
5982             oneofs,
5983         )
5984     }
5985 }
5986 
5987 impl crate::Message for EnumOptions {
5988     const NAME: &'static str = "EnumOptions";
5989 
is_initialized(&self) -> bool5990     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 
merge_from(&mut self, is: &mut crate::CodedInputStream<'_>) -> crate::Result<()>5999     fn merge_from(&mut self, is: &mut crate::CodedInputStream<'_>) -> crate::Result<()> {
6000         while let Some(tag) = is.read_raw_tag_or_eof()? {
6001             match tag {
6002                 16 => {
6003                     self.allow_alias = ::std::option::Option::Some(is.read_bool()?);
6004                 },
6005                 24 => {
6006                     self.deprecated = ::std::option::Option::Some(is.read_bool()?);
6007                 },
6008                 7994 => {
6009                     self.uninterpreted_option.push(is.read_message()?);
6010                 },
6011                 tag => {
6012                     crate::rt::read_unknown_or_skip_group(tag, is, self.special_fields.mut_unknown_fields())?;
6013                 },
6014             };
6015         }
6016         ::std::result::Result::Ok(())
6017     }
6018 
6019     // Compute sizes of nested messages
6020     #[allow(unused_variables)]
compute_size(&self) -> u646021     fn compute_size(&self) -> u64 {
6022         let mut my_size = 0;
6023         if let Some(v) = self.allow_alias {
6024             my_size += 1 + 1;
6025         }
6026         if let Some(v) = self.deprecated {
6027             my_size += 1 + 1;
6028         }
6029         for value in &self.uninterpreted_option {
6030             let len = value.compute_size();
6031             my_size += 2 + crate::rt::compute_raw_varint64_size(len) + len;
6032         };
6033         my_size += crate::rt::unknown_fields_size(self.special_fields.unknown_fields());
6034         self.special_fields.cached_size().set(my_size as u32);
6035         my_size
6036     }
6037 
write_to_with_cached_sizes(&self, os: &mut crate::CodedOutputStream<'_>) -> crate::Result<()>6038     fn write_to_with_cached_sizes(&self, os: &mut crate::CodedOutputStream<'_>) -> crate::Result<()> {
6039         if let Some(v) = self.allow_alias {
6040             os.write_bool(2, v)?;
6041         }
6042         if let Some(v) = self.deprecated {
6043             os.write_bool(3, v)?;
6044         }
6045         for v in &self.uninterpreted_option {
6046             crate::rt::write_message_field_with_cached_size(999, v, os)?;
6047         };
6048         os.write_unknown_fields(self.special_fields.unknown_fields())?;
6049         ::std::result::Result::Ok(())
6050     }
6051 
special_fields(&self) -> &crate::SpecialFields6052     fn special_fields(&self) -> &crate::SpecialFields {
6053         &self.special_fields
6054     }
6055 
mut_special_fields(&mut self) -> &mut crate::SpecialFields6056     fn mut_special_fields(&mut self) -> &mut crate::SpecialFields {
6057         &mut self.special_fields
6058     }
6059 
new() -> EnumOptions6060     fn new() -> EnumOptions {
6061         EnumOptions::new()
6062     }
6063 
clear(&mut self)6064     fn clear(&mut self) {
6065         self.allow_alias = ::std::option::Option::None;
6066         self.deprecated = ::std::option::Option::None;
6067         self.uninterpreted_option.clear();
6068         self.special_fields.clear();
6069     }
6070 
default_instance() -> &'static EnumOptions6071     fn default_instance() -> &'static EnumOptions {
6072         static instance: EnumOptions = EnumOptions {
6073             allow_alias: ::std::option::Option::None,
6074             deprecated: ::std::option::Option::None,
6075             uninterpreted_option: ::std::vec::Vec::new(),
6076             special_fields: crate::SpecialFields::new(),
6077         };
6078         &instance
6079     }
6080 }
6081 
6082 impl crate::MessageFull for EnumOptions {
descriptor() -> crate::reflect::MessageDescriptor6083     fn descriptor() -> crate::reflect::MessageDescriptor {
6084         static descriptor: crate::rt::Lazy<crate::reflect::MessageDescriptor> = crate::rt::Lazy::new();
6085         descriptor.get(|| file_descriptor().message_by_package_relative_name("EnumOptions").unwrap()).clone()
6086     }
6087 }
6088 
6089 impl ::std::fmt::Display for EnumOptions {
fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result6090     fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
6091         crate::text_format::fmt(self, f)
6092     }
6093 }
6094 
6095 impl crate::reflect::ProtobufValue for EnumOptions {
6096     type RuntimeType = crate::reflect::rt::RuntimeTypeMessage<Self>;
6097 }
6098 
6099 #[derive(PartialEq,Clone,Default,Debug)]
6100 // @@protoc_insertion_point(message:google.protobuf.EnumValueOptions)
6101 pub struct EnumValueOptions {
6102     // message fields
6103     ///  Is this enum value deprecated?
6104     ///  Depending on the target platform, this can emit Deprecated annotations
6105     ///  for the enum value, or it will be completely ignored; in the very least,
6106     ///  this is a formalization for deprecating enum values.
6107     // @@protoc_insertion_point(field:google.protobuf.EnumValueOptions.deprecated)
6108     pub deprecated: ::std::option::Option<bool>,
6109     ///  The parser stores options it doesn't recognize here. See above.
6110     // @@protoc_insertion_point(field:google.protobuf.EnumValueOptions.uninterpreted_option)
6111     pub uninterpreted_option: ::std::vec::Vec<UninterpretedOption>,
6112     // special fields
6113     // @@protoc_insertion_point(special_field:google.protobuf.EnumValueOptions.special_fields)
6114     pub special_fields: crate::SpecialFields,
6115 }
6116 
6117 impl<'a> ::std::default::Default for &'a EnumValueOptions {
default() -> &'a EnumValueOptions6118     fn default() -> &'a EnumValueOptions {
6119         <EnumValueOptions as crate::Message>::default_instance()
6120     }
6121 }
6122 
6123 impl EnumValueOptions {
new() -> EnumValueOptions6124     pub fn new() -> EnumValueOptions {
6125         ::std::default::Default::default()
6126     }
6127 
6128     // optional bool deprecated = 1;
6129 
deprecated(&self) -> bool6130     pub fn deprecated(&self) -> bool {
6131         self.deprecated.unwrap_or(false)
6132     }
6133 
clear_deprecated(&mut self)6134     pub fn clear_deprecated(&mut self) {
6135         self.deprecated = ::std::option::Option::None;
6136     }
6137 
has_deprecated(&self) -> bool6138     pub fn has_deprecated(&self) -> bool {
6139         self.deprecated.is_some()
6140     }
6141 
6142     // Param is passed by value, moved
set_deprecated(&mut self, v: bool)6143     pub fn set_deprecated(&mut self, v: bool) {
6144         self.deprecated = ::std::option::Option::Some(v);
6145     }
6146 
generated_message_descriptor_data() -> crate::reflect::GeneratedMessageDescriptorData6147     fn generated_message_descriptor_data() -> crate::reflect::GeneratedMessageDescriptorData {
6148         let mut fields = ::std::vec::Vec::with_capacity(2);
6149         let mut oneofs = ::std::vec::Vec::with_capacity(0);
6150         fields.push(crate::reflect::rt::v2::make_option_accessor::<_, _>(
6151             "deprecated",
6152             |m: &EnumValueOptions| { &m.deprecated },
6153             |m: &mut EnumValueOptions| { &mut m.deprecated },
6154         ));
6155         fields.push(crate::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
6156             "uninterpreted_option",
6157             |m: &EnumValueOptions| { &m.uninterpreted_option },
6158             |m: &mut EnumValueOptions| { &mut m.uninterpreted_option },
6159         ));
6160         crate::reflect::GeneratedMessageDescriptorData::new_2::<EnumValueOptions>(
6161             "EnumValueOptions",
6162             fields,
6163             oneofs,
6164         )
6165     }
6166 }
6167 
6168 impl crate::Message for EnumValueOptions {
6169     const NAME: &'static str = "EnumValueOptions";
6170 
is_initialized(&self) -> bool6171     fn is_initialized(&self) -> bool {
6172         for v in &self.uninterpreted_option {
6173             if !v.is_initialized() {
6174                 return false;
6175             }
6176         };
6177         true
6178     }
6179 
merge_from(&mut self, is: &mut crate::CodedInputStream<'_>) -> crate::Result<()>6180     fn merge_from(&mut self, is: &mut crate::CodedInputStream<'_>) -> crate::Result<()> {
6181         while let Some(tag) = is.read_raw_tag_or_eof()? {
6182             match tag {
6183                 8 => {
6184                     self.deprecated = ::std::option::Option::Some(is.read_bool()?);
6185                 },
6186                 7994 => {
6187                     self.uninterpreted_option.push(is.read_message()?);
6188                 },
6189                 tag => {
6190                     crate::rt::read_unknown_or_skip_group(tag, is, self.special_fields.mut_unknown_fields())?;
6191                 },
6192             };
6193         }
6194         ::std::result::Result::Ok(())
6195     }
6196 
6197     // Compute sizes of nested messages
6198     #[allow(unused_variables)]
compute_size(&self) -> u646199     fn compute_size(&self) -> u64 {
6200         let mut my_size = 0;
6201         if let Some(v) = self.deprecated {
6202             my_size += 1 + 1;
6203         }
6204         for value in &self.uninterpreted_option {
6205             let len = value.compute_size();
6206             my_size += 2 + crate::rt::compute_raw_varint64_size(len) + len;
6207         };
6208         my_size += crate::rt::unknown_fields_size(self.special_fields.unknown_fields());
6209         self.special_fields.cached_size().set(my_size as u32);
6210         my_size
6211     }
6212 
write_to_with_cached_sizes(&self, os: &mut crate::CodedOutputStream<'_>) -> crate::Result<()>6213     fn write_to_with_cached_sizes(&self, os: &mut crate::CodedOutputStream<'_>) -> crate::Result<()> {
6214         if let Some(v) = self.deprecated {
6215             os.write_bool(1, v)?;
6216         }
6217         for v in &self.uninterpreted_option {
6218             crate::rt::write_message_field_with_cached_size(999, v, os)?;
6219         };
6220         os.write_unknown_fields(self.special_fields.unknown_fields())?;
6221         ::std::result::Result::Ok(())
6222     }
6223 
special_fields(&self) -> &crate::SpecialFields6224     fn special_fields(&self) -> &crate::SpecialFields {
6225         &self.special_fields
6226     }
6227 
mut_special_fields(&mut self) -> &mut crate::SpecialFields6228     fn mut_special_fields(&mut self) -> &mut crate::SpecialFields {
6229         &mut self.special_fields
6230     }
6231 
new() -> EnumValueOptions6232     fn new() -> EnumValueOptions {
6233         EnumValueOptions::new()
6234     }
6235 
clear(&mut self)6236     fn clear(&mut self) {
6237         self.deprecated = ::std::option::Option::None;
6238         self.uninterpreted_option.clear();
6239         self.special_fields.clear();
6240     }
6241 
default_instance() -> &'static EnumValueOptions6242     fn default_instance() -> &'static EnumValueOptions {
6243         static instance: EnumValueOptions = EnumValueOptions {
6244             deprecated: ::std::option::Option::None,
6245             uninterpreted_option: ::std::vec::Vec::new(),
6246             special_fields: crate::SpecialFields::new(),
6247         };
6248         &instance
6249     }
6250 }
6251 
6252 impl crate::MessageFull for EnumValueOptions {
descriptor() -> crate::reflect::MessageDescriptor6253     fn descriptor() -> crate::reflect::MessageDescriptor {
6254         static descriptor: crate::rt::Lazy<crate::reflect::MessageDescriptor> = crate::rt::Lazy::new();
6255         descriptor.get(|| file_descriptor().message_by_package_relative_name("EnumValueOptions").unwrap()).clone()
6256     }
6257 }
6258 
6259 impl ::std::fmt::Display for EnumValueOptions {
fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result6260     fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
6261         crate::text_format::fmt(self, f)
6262     }
6263 }
6264 
6265 impl crate::reflect::ProtobufValue for EnumValueOptions {
6266     type RuntimeType = crate::reflect::rt::RuntimeTypeMessage<Self>;
6267 }
6268 
6269 #[derive(PartialEq,Clone,Default,Debug)]
6270 // @@protoc_insertion_point(message:google.protobuf.ServiceOptions)
6271 pub struct ServiceOptions {
6272     // message fields
6273     ///  Is this service deprecated?
6274     ///  Depending on the target platform, this can emit Deprecated annotations
6275     ///  for the service, or it will be completely ignored; in the very least,
6276     ///  this is a formalization for deprecating services.
6277     // @@protoc_insertion_point(field:google.protobuf.ServiceOptions.deprecated)
6278     pub deprecated: ::std::option::Option<bool>,
6279     ///  The parser stores options it doesn't recognize here. See above.
6280     // @@protoc_insertion_point(field:google.protobuf.ServiceOptions.uninterpreted_option)
6281     pub uninterpreted_option: ::std::vec::Vec<UninterpretedOption>,
6282     // special fields
6283     // @@protoc_insertion_point(special_field:google.protobuf.ServiceOptions.special_fields)
6284     pub special_fields: crate::SpecialFields,
6285 }
6286 
6287 impl<'a> ::std::default::Default for &'a ServiceOptions {
default() -> &'a ServiceOptions6288     fn default() -> &'a ServiceOptions {
6289         <ServiceOptions as crate::Message>::default_instance()
6290     }
6291 }
6292 
6293 impl ServiceOptions {
new() -> ServiceOptions6294     pub fn new() -> ServiceOptions {
6295         ::std::default::Default::default()
6296     }
6297 
6298     // optional bool deprecated = 33;
6299 
deprecated(&self) -> bool6300     pub fn deprecated(&self) -> bool {
6301         self.deprecated.unwrap_or(false)
6302     }
6303 
clear_deprecated(&mut self)6304     pub fn clear_deprecated(&mut self) {
6305         self.deprecated = ::std::option::Option::None;
6306     }
6307 
has_deprecated(&self) -> bool6308     pub fn has_deprecated(&self) -> bool {
6309         self.deprecated.is_some()
6310     }
6311 
6312     // Param is passed by value, moved
set_deprecated(&mut self, v: bool)6313     pub fn set_deprecated(&mut self, v: bool) {
6314         self.deprecated = ::std::option::Option::Some(v);
6315     }
6316 
generated_message_descriptor_data() -> crate::reflect::GeneratedMessageDescriptorData6317     fn generated_message_descriptor_data() -> crate::reflect::GeneratedMessageDescriptorData {
6318         let mut fields = ::std::vec::Vec::with_capacity(2);
6319         let mut oneofs = ::std::vec::Vec::with_capacity(0);
6320         fields.push(crate::reflect::rt::v2::make_option_accessor::<_, _>(
6321             "deprecated",
6322             |m: &ServiceOptions| { &m.deprecated },
6323             |m: &mut ServiceOptions| { &mut m.deprecated },
6324         ));
6325         fields.push(crate::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
6326             "uninterpreted_option",
6327             |m: &ServiceOptions| { &m.uninterpreted_option },
6328             |m: &mut ServiceOptions| { &mut m.uninterpreted_option },
6329         ));
6330         crate::reflect::GeneratedMessageDescriptorData::new_2::<ServiceOptions>(
6331             "ServiceOptions",
6332             fields,
6333             oneofs,
6334         )
6335     }
6336 }
6337 
6338 impl crate::Message for ServiceOptions {
6339     const NAME: &'static str = "ServiceOptions";
6340 
is_initialized(&self) -> bool6341     fn is_initialized(&self) -> bool {
6342         for v in &self.uninterpreted_option {
6343             if !v.is_initialized() {
6344                 return false;
6345             }
6346         };
6347         true
6348     }
6349 
merge_from(&mut self, is: &mut crate::CodedInputStream<'_>) -> crate::Result<()>6350     fn merge_from(&mut self, is: &mut crate::CodedInputStream<'_>) -> crate::Result<()> {
6351         while let Some(tag) = is.read_raw_tag_or_eof()? {
6352             match tag {
6353                 264 => {
6354                     self.deprecated = ::std::option::Option::Some(is.read_bool()?);
6355                 },
6356                 7994 => {
6357                     self.uninterpreted_option.push(is.read_message()?);
6358                 },
6359                 tag => {
6360                     crate::rt::read_unknown_or_skip_group(tag, is, self.special_fields.mut_unknown_fields())?;
6361                 },
6362             };
6363         }
6364         ::std::result::Result::Ok(())
6365     }
6366 
6367     // Compute sizes of nested messages
6368     #[allow(unused_variables)]
compute_size(&self) -> u646369     fn compute_size(&self) -> u64 {
6370         let mut my_size = 0;
6371         if let Some(v) = self.deprecated {
6372             my_size += 2 + 1;
6373         }
6374         for value in &self.uninterpreted_option {
6375             let len = value.compute_size();
6376             my_size += 2 + crate::rt::compute_raw_varint64_size(len) + len;
6377         };
6378         my_size += crate::rt::unknown_fields_size(self.special_fields.unknown_fields());
6379         self.special_fields.cached_size().set(my_size as u32);
6380         my_size
6381     }
6382 
write_to_with_cached_sizes(&self, os: &mut crate::CodedOutputStream<'_>) -> crate::Result<()>6383     fn write_to_with_cached_sizes(&self, os: &mut crate::CodedOutputStream<'_>) -> crate::Result<()> {
6384         if let Some(v) = self.deprecated {
6385             os.write_bool(33, v)?;
6386         }
6387         for v in &self.uninterpreted_option {
6388             crate::rt::write_message_field_with_cached_size(999, v, os)?;
6389         };
6390         os.write_unknown_fields(self.special_fields.unknown_fields())?;
6391         ::std::result::Result::Ok(())
6392     }
6393 
special_fields(&self) -> &crate::SpecialFields6394     fn special_fields(&self) -> &crate::SpecialFields {
6395         &self.special_fields
6396     }
6397 
mut_special_fields(&mut self) -> &mut crate::SpecialFields6398     fn mut_special_fields(&mut self) -> &mut crate::SpecialFields {
6399         &mut self.special_fields
6400     }
6401 
new() -> ServiceOptions6402     fn new() -> ServiceOptions {
6403         ServiceOptions::new()
6404     }
6405 
clear(&mut self)6406     fn clear(&mut self) {
6407         self.deprecated = ::std::option::Option::None;
6408         self.uninterpreted_option.clear();
6409         self.special_fields.clear();
6410     }
6411 
default_instance() -> &'static ServiceOptions6412     fn default_instance() -> &'static ServiceOptions {
6413         static instance: ServiceOptions = ServiceOptions {
6414             deprecated: ::std::option::Option::None,
6415             uninterpreted_option: ::std::vec::Vec::new(),
6416             special_fields: crate::SpecialFields::new(),
6417         };
6418         &instance
6419     }
6420 }
6421 
6422 impl crate::MessageFull for ServiceOptions {
descriptor() -> crate::reflect::MessageDescriptor6423     fn descriptor() -> crate::reflect::MessageDescriptor {
6424         static descriptor: crate::rt::Lazy<crate::reflect::MessageDescriptor> = crate::rt::Lazy::new();
6425         descriptor.get(|| file_descriptor().message_by_package_relative_name("ServiceOptions").unwrap()).clone()
6426     }
6427 }
6428 
6429 impl ::std::fmt::Display for ServiceOptions {
fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result6430     fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
6431         crate::text_format::fmt(self, f)
6432     }
6433 }
6434 
6435 impl crate::reflect::ProtobufValue for ServiceOptions {
6436     type RuntimeType = crate::reflect::rt::RuntimeTypeMessage<Self>;
6437 }
6438 
6439 #[derive(PartialEq,Clone,Default,Debug)]
6440 // @@protoc_insertion_point(message:google.protobuf.MethodOptions)
6441 pub struct MethodOptions {
6442     // message fields
6443     ///  Is this method deprecated?
6444     ///  Depending on the target platform, this can emit Deprecated annotations
6445     ///  for the method, or it will be completely ignored; in the very least,
6446     ///  this is a formalization for deprecating methods.
6447     // @@protoc_insertion_point(field:google.protobuf.MethodOptions.deprecated)
6448     pub deprecated: ::std::option::Option<bool>,
6449     // @@protoc_insertion_point(field:google.protobuf.MethodOptions.idempotency_level)
6450     pub idempotency_level: ::std::option::Option<crate::EnumOrUnknown<method_options::IdempotencyLevel>>,
6451     ///  The parser stores options it doesn't recognize here. See above.
6452     // @@protoc_insertion_point(field:google.protobuf.MethodOptions.uninterpreted_option)
6453     pub uninterpreted_option: ::std::vec::Vec<UninterpretedOption>,
6454     // special fields
6455     // @@protoc_insertion_point(special_field:google.protobuf.MethodOptions.special_fields)
6456     pub special_fields: crate::SpecialFields,
6457 }
6458 
6459 impl<'a> ::std::default::Default for &'a MethodOptions {
default() -> &'a MethodOptions6460     fn default() -> &'a MethodOptions {
6461         <MethodOptions as crate::Message>::default_instance()
6462     }
6463 }
6464 
6465 impl MethodOptions {
new() -> MethodOptions6466     pub fn new() -> MethodOptions {
6467         ::std::default::Default::default()
6468     }
6469 
6470     // optional bool deprecated = 33;
6471 
deprecated(&self) -> bool6472     pub fn deprecated(&self) -> bool {
6473         self.deprecated.unwrap_or(false)
6474     }
6475 
clear_deprecated(&mut self)6476     pub fn clear_deprecated(&mut self) {
6477         self.deprecated = ::std::option::Option::None;
6478     }
6479 
has_deprecated(&self) -> bool6480     pub fn has_deprecated(&self) -> bool {
6481         self.deprecated.is_some()
6482     }
6483 
6484     // Param is passed by value, moved
set_deprecated(&mut self, v: bool)6485     pub fn set_deprecated(&mut self, v: bool) {
6486         self.deprecated = ::std::option::Option::Some(v);
6487     }
6488 
6489     // optional .google.protobuf.MethodOptions.IdempotencyLevel idempotency_level = 34;
6490 
idempotency_level(&self) -> method_options::IdempotencyLevel6491     pub fn idempotency_level(&self) -> method_options::IdempotencyLevel {
6492         match self.idempotency_level {
6493             Some(e) => e.enum_value_or(method_options::IdempotencyLevel::IDEMPOTENCY_UNKNOWN),
6494             None => method_options::IdempotencyLevel::IDEMPOTENCY_UNKNOWN,
6495         }
6496     }
6497 
clear_idempotency_level(&mut self)6498     pub fn clear_idempotency_level(&mut self) {
6499         self.idempotency_level = ::std::option::Option::None;
6500     }
6501 
has_idempotency_level(&self) -> bool6502     pub fn has_idempotency_level(&self) -> bool {
6503         self.idempotency_level.is_some()
6504     }
6505 
6506     // Param is passed by value, moved
set_idempotency_level(&mut self, v: method_options::IdempotencyLevel)6507     pub fn set_idempotency_level(&mut self, v: method_options::IdempotencyLevel) {
6508         self.idempotency_level = ::std::option::Option::Some(crate::EnumOrUnknown::new(v));
6509     }
6510 
generated_message_descriptor_data() -> crate::reflect::GeneratedMessageDescriptorData6511     fn generated_message_descriptor_data() -> crate::reflect::GeneratedMessageDescriptorData {
6512         let mut fields = ::std::vec::Vec::with_capacity(3);
6513         let mut oneofs = ::std::vec::Vec::with_capacity(0);
6514         fields.push(crate::reflect::rt::v2::make_option_accessor::<_, _>(
6515             "deprecated",
6516             |m: &MethodOptions| { &m.deprecated },
6517             |m: &mut MethodOptions| { &mut m.deprecated },
6518         ));
6519         fields.push(crate::reflect::rt::v2::make_option_accessor::<_, _>(
6520             "idempotency_level",
6521             |m: &MethodOptions| { &m.idempotency_level },
6522             |m: &mut MethodOptions| { &mut m.idempotency_level },
6523         ));
6524         fields.push(crate::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
6525             "uninterpreted_option",
6526             |m: &MethodOptions| { &m.uninterpreted_option },
6527             |m: &mut MethodOptions| { &mut m.uninterpreted_option },
6528         ));
6529         crate::reflect::GeneratedMessageDescriptorData::new_2::<MethodOptions>(
6530             "MethodOptions",
6531             fields,
6532             oneofs,
6533         )
6534     }
6535 }
6536 
6537 impl crate::Message for MethodOptions {
6538     const NAME: &'static str = "MethodOptions";
6539 
is_initialized(&self) -> bool6540     fn is_initialized(&self) -> bool {
6541         for v in &self.uninterpreted_option {
6542             if !v.is_initialized() {
6543                 return false;
6544             }
6545         };
6546         true
6547     }
6548 
merge_from(&mut self, is: &mut crate::CodedInputStream<'_>) -> crate::Result<()>6549     fn merge_from(&mut self, is: &mut crate::CodedInputStream<'_>) -> crate::Result<()> {
6550         while let Some(tag) = is.read_raw_tag_or_eof()? {
6551             match tag {
6552                 264 => {
6553                     self.deprecated = ::std::option::Option::Some(is.read_bool()?);
6554                 },
6555                 272 => {
6556                     self.idempotency_level = ::std::option::Option::Some(is.read_enum_or_unknown()?);
6557                 },
6558                 7994 => {
6559                     self.uninterpreted_option.push(is.read_message()?);
6560                 },
6561                 tag => {
6562                     crate::rt::read_unknown_or_skip_group(tag, is, self.special_fields.mut_unknown_fields())?;
6563                 },
6564             };
6565         }
6566         ::std::result::Result::Ok(())
6567     }
6568 
6569     // Compute sizes of nested messages
6570     #[allow(unused_variables)]
compute_size(&self) -> u646571     fn compute_size(&self) -> u64 {
6572         let mut my_size = 0;
6573         if let Some(v) = self.deprecated {
6574             my_size += 2 + 1;
6575         }
6576         if let Some(v) = self.idempotency_level {
6577             my_size += crate::rt::int32_size(34, v.value());
6578         }
6579         for value in &self.uninterpreted_option {
6580             let len = value.compute_size();
6581             my_size += 2 + crate::rt::compute_raw_varint64_size(len) + len;
6582         };
6583         my_size += crate::rt::unknown_fields_size(self.special_fields.unknown_fields());
6584         self.special_fields.cached_size().set(my_size as u32);
6585         my_size
6586     }
6587 
write_to_with_cached_sizes(&self, os: &mut crate::CodedOutputStream<'_>) -> crate::Result<()>6588     fn write_to_with_cached_sizes(&self, os: &mut crate::CodedOutputStream<'_>) -> crate::Result<()> {
6589         if let Some(v) = self.deprecated {
6590             os.write_bool(33, v)?;
6591         }
6592         if let Some(v) = self.idempotency_level {
6593             os.write_enum(34, crate::EnumOrUnknown::value(&v))?;
6594         }
6595         for v in &self.uninterpreted_option {
6596             crate::rt::write_message_field_with_cached_size(999, v, os)?;
6597         };
6598         os.write_unknown_fields(self.special_fields.unknown_fields())?;
6599         ::std::result::Result::Ok(())
6600     }
6601 
special_fields(&self) -> &crate::SpecialFields6602     fn special_fields(&self) -> &crate::SpecialFields {
6603         &self.special_fields
6604     }
6605 
mut_special_fields(&mut self) -> &mut crate::SpecialFields6606     fn mut_special_fields(&mut self) -> &mut crate::SpecialFields {
6607         &mut self.special_fields
6608     }
6609 
new() -> MethodOptions6610     fn new() -> MethodOptions {
6611         MethodOptions::new()
6612     }
6613 
clear(&mut self)6614     fn clear(&mut self) {
6615         self.deprecated = ::std::option::Option::None;
6616         self.idempotency_level = ::std::option::Option::None;
6617         self.uninterpreted_option.clear();
6618         self.special_fields.clear();
6619     }
6620 
default_instance() -> &'static MethodOptions6621     fn default_instance() -> &'static MethodOptions {
6622         static instance: MethodOptions = MethodOptions {
6623             deprecated: ::std::option::Option::None,
6624             idempotency_level: ::std::option::Option::None,
6625             uninterpreted_option: ::std::vec::Vec::new(),
6626             special_fields: crate::SpecialFields::new(),
6627         };
6628         &instance
6629     }
6630 }
6631 
6632 impl crate::MessageFull for MethodOptions {
descriptor() -> crate::reflect::MessageDescriptor6633     fn descriptor() -> crate::reflect::MessageDescriptor {
6634         static descriptor: crate::rt::Lazy<crate::reflect::MessageDescriptor> = crate::rt::Lazy::new();
6635         descriptor.get(|| file_descriptor().message_by_package_relative_name("MethodOptions").unwrap()).clone()
6636     }
6637 }
6638 
6639 impl ::std::fmt::Display for MethodOptions {
fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result6640     fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
6641         crate::text_format::fmt(self, f)
6642     }
6643 }
6644 
6645 impl crate::reflect::ProtobufValue for MethodOptions {
6646     type RuntimeType = crate::reflect::rt::RuntimeTypeMessage<Self>;
6647 }
6648 
6649 /// Nested message and enums of message `MethodOptions`
6650 pub mod method_options {
6651     ///  Is this method side-effect-free (or safe in HTTP parlance), or idempotent,
6652     ///  or neither? HTTP based RPC implementation may choose GET verb for safe
6653     ///  methods, and PUT verb for idempotent methods instead of the default POST.
6654     #[derive(Clone,Copy,PartialEq,Eq,Debug,Hash)]
6655     // @@protoc_insertion_point(enum:google.protobuf.MethodOptions.IdempotencyLevel)
6656     pub enum IdempotencyLevel {
6657         // @@protoc_insertion_point(enum_value:google.protobuf.MethodOptions.IdempotencyLevel.IDEMPOTENCY_UNKNOWN)
6658         IDEMPOTENCY_UNKNOWN = 0,
6659         // @@protoc_insertion_point(enum_value:google.protobuf.MethodOptions.IdempotencyLevel.NO_SIDE_EFFECTS)
6660         NO_SIDE_EFFECTS = 1,
6661         // @@protoc_insertion_point(enum_value:google.protobuf.MethodOptions.IdempotencyLevel.IDEMPOTENT)
6662         IDEMPOTENT = 2,
6663     }
6664 
6665     impl crate::Enum for IdempotencyLevel {
6666         const NAME: &'static str = "IdempotencyLevel";
6667 
value(&self) -> i326668         fn value(&self) -> i32 {
6669             *self as i32
6670         }
6671 
from_i32(value: i32) -> ::std::option::Option<IdempotencyLevel>6672         fn from_i32(value: i32) -> ::std::option::Option<IdempotencyLevel> {
6673             match value {
6674                 0 => ::std::option::Option::Some(IdempotencyLevel::IDEMPOTENCY_UNKNOWN),
6675                 1 => ::std::option::Option::Some(IdempotencyLevel::NO_SIDE_EFFECTS),
6676                 2 => ::std::option::Option::Some(IdempotencyLevel::IDEMPOTENT),
6677                 _ => ::std::option::Option::None
6678             }
6679         }
6680 
6681         const VALUES: &'static [IdempotencyLevel] = &[
6682             IdempotencyLevel::IDEMPOTENCY_UNKNOWN,
6683             IdempotencyLevel::NO_SIDE_EFFECTS,
6684             IdempotencyLevel::IDEMPOTENT,
6685         ];
6686     }
6687 
6688     impl crate::EnumFull for IdempotencyLevel {
enum_descriptor() -> crate::reflect::EnumDescriptor6689         fn enum_descriptor() -> crate::reflect::EnumDescriptor {
6690             static descriptor: crate::rt::Lazy<crate::reflect::EnumDescriptor> = crate::rt::Lazy::new();
6691             descriptor.get(|| super::file_descriptor().enum_by_package_relative_name("MethodOptions.IdempotencyLevel").unwrap()).clone()
6692         }
6693 
descriptor(&self) -> crate::reflect::EnumValueDescriptor6694         fn descriptor(&self) -> crate::reflect::EnumValueDescriptor {
6695             let index = *self as usize;
6696             Self::enum_descriptor().value_by_index(index)
6697         }
6698     }
6699 
6700     impl ::std::default::Default for IdempotencyLevel {
default() -> Self6701         fn default() -> Self {
6702             IdempotencyLevel::IDEMPOTENCY_UNKNOWN
6703         }
6704     }
6705 
6706     impl IdempotencyLevel {
generated_enum_descriptor_data() -> crate::reflect::GeneratedEnumDescriptorData6707         pub(in super) fn generated_enum_descriptor_data() -> crate::reflect::GeneratedEnumDescriptorData {
6708             crate::reflect::GeneratedEnumDescriptorData::new::<IdempotencyLevel>("MethodOptions.IdempotencyLevel")
6709         }
6710     }
6711 }
6712 
6713 ///  A message representing a option the parser does not recognize. This only
6714 ///  appears in options protos created by the compiler::Parser class.
6715 ///  DescriptorPool resolves these when building Descriptor objects. Therefore,
6716 ///  options protos in descriptor objects (e.g. returned by Descriptor::options(),
6717 ///  or produced by Descriptor::CopyTo()) will never have UninterpretedOptions
6718 ///  in them.
6719 #[derive(PartialEq,Clone,Default,Debug)]
6720 // @@protoc_insertion_point(message:google.protobuf.UninterpretedOption)
6721 pub struct UninterpretedOption {
6722     // message fields
6723     // @@protoc_insertion_point(field:google.protobuf.UninterpretedOption.name)
6724     pub name: ::std::vec::Vec<uninterpreted_option::NamePart>,
6725     ///  The value of the uninterpreted option, in whatever type the tokenizer
6726     ///  identified it as during parsing. Exactly one of these should be set.
6727     // @@protoc_insertion_point(field:google.protobuf.UninterpretedOption.identifier_value)
6728     pub identifier_value: ::std::option::Option<::std::string::String>,
6729     // @@protoc_insertion_point(field:google.protobuf.UninterpretedOption.positive_int_value)
6730     pub positive_int_value: ::std::option::Option<u64>,
6731     // @@protoc_insertion_point(field:google.protobuf.UninterpretedOption.negative_int_value)
6732     pub negative_int_value: ::std::option::Option<i64>,
6733     // @@protoc_insertion_point(field:google.protobuf.UninterpretedOption.double_value)
6734     pub double_value: ::std::option::Option<f64>,
6735     // @@protoc_insertion_point(field:google.protobuf.UninterpretedOption.string_value)
6736     pub string_value: ::std::option::Option<::std::vec::Vec<u8>>,
6737     // @@protoc_insertion_point(field:google.protobuf.UninterpretedOption.aggregate_value)
6738     pub aggregate_value: ::std::option::Option<::std::string::String>,
6739     // special fields
6740     // @@protoc_insertion_point(special_field:google.protobuf.UninterpretedOption.special_fields)
6741     pub special_fields: crate::SpecialFields,
6742 }
6743 
6744 impl<'a> ::std::default::Default for &'a UninterpretedOption {
default() -> &'a UninterpretedOption6745     fn default() -> &'a UninterpretedOption {
6746         <UninterpretedOption as crate::Message>::default_instance()
6747     }
6748 }
6749 
6750 impl UninterpretedOption {
new() -> UninterpretedOption6751     pub fn new() -> UninterpretedOption {
6752         ::std::default::Default::default()
6753     }
6754 
6755     // optional string identifier_value = 3;
6756 
identifier_value(&self) -> &str6757     pub fn identifier_value(&self) -> &str {
6758         match self.identifier_value.as_ref() {
6759             Some(v) => v,
6760             None => "",
6761         }
6762     }
6763 
clear_identifier_value(&mut self)6764     pub fn clear_identifier_value(&mut self) {
6765         self.identifier_value = ::std::option::Option::None;
6766     }
6767 
has_identifier_value(&self) -> bool6768     pub fn has_identifier_value(&self) -> bool {
6769         self.identifier_value.is_some()
6770     }
6771 
6772     // Param is passed by value, moved
set_identifier_value(&mut self, v: ::std::string::String)6773     pub fn set_identifier_value(&mut self, v: ::std::string::String) {
6774         self.identifier_value = ::std::option::Option::Some(v);
6775     }
6776 
6777     // Mutable pointer to the field.
6778     // If field is not initialized, it is initialized with default value first.
mut_identifier_value(&mut self) -> &mut ::std::string::String6779     pub fn mut_identifier_value(&mut self) -> &mut ::std::string::String {
6780         if self.identifier_value.is_none() {
6781             self.identifier_value = ::std::option::Option::Some(::std::string::String::new());
6782         }
6783         self.identifier_value.as_mut().unwrap()
6784     }
6785 
6786     // Take field
take_identifier_value(&mut self) -> ::std::string::String6787     pub fn take_identifier_value(&mut self) -> ::std::string::String {
6788         self.identifier_value.take().unwrap_or_else(|| ::std::string::String::new())
6789     }
6790 
6791     // optional uint64 positive_int_value = 4;
6792 
positive_int_value(&self) -> u646793     pub fn positive_int_value(&self) -> u64 {
6794         self.positive_int_value.unwrap_or(0)
6795     }
6796 
clear_positive_int_value(&mut self)6797     pub fn clear_positive_int_value(&mut self) {
6798         self.positive_int_value = ::std::option::Option::None;
6799     }
6800 
has_positive_int_value(&self) -> bool6801     pub fn has_positive_int_value(&self) -> bool {
6802         self.positive_int_value.is_some()
6803     }
6804 
6805     // Param is passed by value, moved
set_positive_int_value(&mut self, v: u64)6806     pub fn set_positive_int_value(&mut self, v: u64) {
6807         self.positive_int_value = ::std::option::Option::Some(v);
6808     }
6809 
6810     // optional int64 negative_int_value = 5;
6811 
negative_int_value(&self) -> i646812     pub fn negative_int_value(&self) -> i64 {
6813         self.negative_int_value.unwrap_or(0)
6814     }
6815 
clear_negative_int_value(&mut self)6816     pub fn clear_negative_int_value(&mut self) {
6817         self.negative_int_value = ::std::option::Option::None;
6818     }
6819 
has_negative_int_value(&self) -> bool6820     pub fn has_negative_int_value(&self) -> bool {
6821         self.negative_int_value.is_some()
6822     }
6823 
6824     // Param is passed by value, moved
set_negative_int_value(&mut self, v: i64)6825     pub fn set_negative_int_value(&mut self, v: i64) {
6826         self.negative_int_value = ::std::option::Option::Some(v);
6827     }
6828 
6829     // optional double double_value = 6;
6830 
double_value(&self) -> f646831     pub fn double_value(&self) -> f64 {
6832         self.double_value.unwrap_or(0.)
6833     }
6834 
clear_double_value(&mut self)6835     pub fn clear_double_value(&mut self) {
6836         self.double_value = ::std::option::Option::None;
6837     }
6838 
has_double_value(&self) -> bool6839     pub fn has_double_value(&self) -> bool {
6840         self.double_value.is_some()
6841     }
6842 
6843     // Param is passed by value, moved
set_double_value(&mut self, v: f64)6844     pub fn set_double_value(&mut self, v: f64) {
6845         self.double_value = ::std::option::Option::Some(v);
6846     }
6847 
6848     // optional bytes string_value = 7;
6849 
string_value(&self) -> &[u8]6850     pub fn string_value(&self) -> &[u8] {
6851         match self.string_value.as_ref() {
6852             Some(v) => v,
6853             None => &[],
6854         }
6855     }
6856 
clear_string_value(&mut self)6857     pub fn clear_string_value(&mut self) {
6858         self.string_value = ::std::option::Option::None;
6859     }
6860 
has_string_value(&self) -> bool6861     pub fn has_string_value(&self) -> bool {
6862         self.string_value.is_some()
6863     }
6864 
6865     // Param is passed by value, moved
set_string_value(&mut self, v: ::std::vec::Vec<u8>)6866     pub fn set_string_value(&mut self, v: ::std::vec::Vec<u8>) {
6867         self.string_value = ::std::option::Option::Some(v);
6868     }
6869 
6870     // Mutable pointer to the field.
6871     // If field is not initialized, it is initialized with default value first.
mut_string_value(&mut self) -> &mut ::std::vec::Vec<u8>6872     pub fn mut_string_value(&mut self) -> &mut ::std::vec::Vec<u8> {
6873         if self.string_value.is_none() {
6874             self.string_value = ::std::option::Option::Some(::std::vec::Vec::new());
6875         }
6876         self.string_value.as_mut().unwrap()
6877     }
6878 
6879     // Take field
take_string_value(&mut self) -> ::std::vec::Vec<u8>6880     pub fn take_string_value(&mut self) -> ::std::vec::Vec<u8> {
6881         self.string_value.take().unwrap_or_else(|| ::std::vec::Vec::new())
6882     }
6883 
6884     // optional string aggregate_value = 8;
6885 
aggregate_value(&self) -> &str6886     pub fn aggregate_value(&self) -> &str {
6887         match self.aggregate_value.as_ref() {
6888             Some(v) => v,
6889             None => "",
6890         }
6891     }
6892 
clear_aggregate_value(&mut self)6893     pub fn clear_aggregate_value(&mut self) {
6894         self.aggregate_value = ::std::option::Option::None;
6895     }
6896 
has_aggregate_value(&self) -> bool6897     pub fn has_aggregate_value(&self) -> bool {
6898         self.aggregate_value.is_some()
6899     }
6900 
6901     // Param is passed by value, moved
set_aggregate_value(&mut self, v: ::std::string::String)6902     pub fn set_aggregate_value(&mut self, v: ::std::string::String) {
6903         self.aggregate_value = ::std::option::Option::Some(v);
6904     }
6905 
6906     // Mutable pointer to the field.
6907     // If field is not initialized, it is initialized with default value first.
mut_aggregate_value(&mut self) -> &mut ::std::string::String6908     pub fn mut_aggregate_value(&mut self) -> &mut ::std::string::String {
6909         if self.aggregate_value.is_none() {
6910             self.aggregate_value = ::std::option::Option::Some(::std::string::String::new());
6911         }
6912         self.aggregate_value.as_mut().unwrap()
6913     }
6914 
6915     // Take field
take_aggregate_value(&mut self) -> ::std::string::String6916     pub fn take_aggregate_value(&mut self) -> ::std::string::String {
6917         self.aggregate_value.take().unwrap_or_else(|| ::std::string::String::new())
6918     }
6919 
generated_message_descriptor_data() -> crate::reflect::GeneratedMessageDescriptorData6920     fn generated_message_descriptor_data() -> crate::reflect::GeneratedMessageDescriptorData {
6921         let mut fields = ::std::vec::Vec::with_capacity(7);
6922         let mut oneofs = ::std::vec::Vec::with_capacity(0);
6923         fields.push(crate::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
6924             "name",
6925             |m: &UninterpretedOption| { &m.name },
6926             |m: &mut UninterpretedOption| { &mut m.name },
6927         ));
6928         fields.push(crate::reflect::rt::v2::make_option_accessor::<_, _>(
6929             "identifier_value",
6930             |m: &UninterpretedOption| { &m.identifier_value },
6931             |m: &mut UninterpretedOption| { &mut m.identifier_value },
6932         ));
6933         fields.push(crate::reflect::rt::v2::make_option_accessor::<_, _>(
6934             "positive_int_value",
6935             |m: &UninterpretedOption| { &m.positive_int_value },
6936             |m: &mut UninterpretedOption| { &mut m.positive_int_value },
6937         ));
6938         fields.push(crate::reflect::rt::v2::make_option_accessor::<_, _>(
6939             "negative_int_value",
6940             |m: &UninterpretedOption| { &m.negative_int_value },
6941             |m: &mut UninterpretedOption| { &mut m.negative_int_value },
6942         ));
6943         fields.push(crate::reflect::rt::v2::make_option_accessor::<_, _>(
6944             "double_value",
6945             |m: &UninterpretedOption| { &m.double_value },
6946             |m: &mut UninterpretedOption| { &mut m.double_value },
6947         ));
6948         fields.push(crate::reflect::rt::v2::make_option_accessor::<_, _>(
6949             "string_value",
6950             |m: &UninterpretedOption| { &m.string_value },
6951             |m: &mut UninterpretedOption| { &mut m.string_value },
6952         ));
6953         fields.push(crate::reflect::rt::v2::make_option_accessor::<_, _>(
6954             "aggregate_value",
6955             |m: &UninterpretedOption| { &m.aggregate_value },
6956             |m: &mut UninterpretedOption| { &mut m.aggregate_value },
6957         ));
6958         crate::reflect::GeneratedMessageDescriptorData::new_2::<UninterpretedOption>(
6959             "UninterpretedOption",
6960             fields,
6961             oneofs,
6962         )
6963     }
6964 }
6965 
6966 impl crate::Message for UninterpretedOption {
6967     const NAME: &'static str = "UninterpretedOption";
6968 
is_initialized(&self) -> bool6969     fn is_initialized(&self) -> bool {
6970         for v in &self.name {
6971             if !v.is_initialized() {
6972                 return false;
6973             }
6974         };
6975         true
6976     }
6977 
merge_from(&mut self, is: &mut crate::CodedInputStream<'_>) -> crate::Result<()>6978     fn merge_from(&mut self, is: &mut crate::CodedInputStream<'_>) -> crate::Result<()> {
6979         while let Some(tag) = is.read_raw_tag_or_eof()? {
6980             match tag {
6981                 18 => {
6982                     self.name.push(is.read_message()?);
6983                 },
6984                 26 => {
6985                     self.identifier_value = ::std::option::Option::Some(is.read_string()?);
6986                 },
6987                 32 => {
6988                     self.positive_int_value = ::std::option::Option::Some(is.read_uint64()?);
6989                 },
6990                 40 => {
6991                     self.negative_int_value = ::std::option::Option::Some(is.read_int64()?);
6992                 },
6993                 49 => {
6994                     self.double_value = ::std::option::Option::Some(is.read_double()?);
6995                 },
6996                 58 => {
6997                     self.string_value = ::std::option::Option::Some(is.read_bytes()?);
6998                 },
6999                 66 => {
7000                     self.aggregate_value = ::std::option::Option::Some(is.read_string()?);
7001                 },
7002                 tag => {
7003                     crate::rt::read_unknown_or_skip_group(tag, is, self.special_fields.mut_unknown_fields())?;
7004                 },
7005             };
7006         }
7007         ::std::result::Result::Ok(())
7008     }
7009 
7010     // Compute sizes of nested messages
7011     #[allow(unused_variables)]
compute_size(&self) -> u647012     fn compute_size(&self) -> u64 {
7013         let mut my_size = 0;
7014         for value in &self.name {
7015             let len = value.compute_size();
7016             my_size += 1 + crate::rt::compute_raw_varint64_size(len) + len;
7017         };
7018         if let Some(v) = self.identifier_value.as_ref() {
7019             my_size += crate::rt::string_size(3, &v);
7020         }
7021         if let Some(v) = self.positive_int_value {
7022             my_size += crate::rt::uint64_size(4, v);
7023         }
7024         if let Some(v) = self.negative_int_value {
7025             my_size += crate::rt::int64_size(5, v);
7026         }
7027         if let Some(v) = self.double_value {
7028             my_size += 1 + 8;
7029         }
7030         if let Some(v) = self.string_value.as_ref() {
7031             my_size += crate::rt::bytes_size(7, &v);
7032         }
7033         if let Some(v) = self.aggregate_value.as_ref() {
7034             my_size += crate::rt::string_size(8, &v);
7035         }
7036         my_size += crate::rt::unknown_fields_size(self.special_fields.unknown_fields());
7037         self.special_fields.cached_size().set(my_size as u32);
7038         my_size
7039     }
7040 
write_to_with_cached_sizes(&self, os: &mut crate::CodedOutputStream<'_>) -> crate::Result<()>7041     fn write_to_with_cached_sizes(&self, os: &mut crate::CodedOutputStream<'_>) -> crate::Result<()> {
7042         for v in &self.name {
7043             crate::rt::write_message_field_with_cached_size(2, v, os)?;
7044         };
7045         if let Some(v) = self.identifier_value.as_ref() {
7046             os.write_string(3, v)?;
7047         }
7048         if let Some(v) = self.positive_int_value {
7049             os.write_uint64(4, v)?;
7050         }
7051         if let Some(v) = self.negative_int_value {
7052             os.write_int64(5, v)?;
7053         }
7054         if let Some(v) = self.double_value {
7055             os.write_double(6, v)?;
7056         }
7057         if let Some(v) = self.string_value.as_ref() {
7058             os.write_bytes(7, v)?;
7059         }
7060         if let Some(v) = self.aggregate_value.as_ref() {
7061             os.write_string(8, v)?;
7062         }
7063         os.write_unknown_fields(self.special_fields.unknown_fields())?;
7064         ::std::result::Result::Ok(())
7065     }
7066 
special_fields(&self) -> &crate::SpecialFields7067     fn special_fields(&self) -> &crate::SpecialFields {
7068         &self.special_fields
7069     }
7070 
mut_special_fields(&mut self) -> &mut crate::SpecialFields7071     fn mut_special_fields(&mut self) -> &mut crate::SpecialFields {
7072         &mut self.special_fields
7073     }
7074 
new() -> UninterpretedOption7075     fn new() -> UninterpretedOption {
7076         UninterpretedOption::new()
7077     }
7078 
clear(&mut self)7079     fn clear(&mut self) {
7080         self.name.clear();
7081         self.identifier_value = ::std::option::Option::None;
7082         self.positive_int_value = ::std::option::Option::None;
7083         self.negative_int_value = ::std::option::Option::None;
7084         self.double_value = ::std::option::Option::None;
7085         self.string_value = ::std::option::Option::None;
7086         self.aggregate_value = ::std::option::Option::None;
7087         self.special_fields.clear();
7088     }
7089 
default_instance() -> &'static UninterpretedOption7090     fn default_instance() -> &'static UninterpretedOption {
7091         static instance: UninterpretedOption = UninterpretedOption {
7092             name: ::std::vec::Vec::new(),
7093             identifier_value: ::std::option::Option::None,
7094             positive_int_value: ::std::option::Option::None,
7095             negative_int_value: ::std::option::Option::None,
7096             double_value: ::std::option::Option::None,
7097             string_value: ::std::option::Option::None,
7098             aggregate_value: ::std::option::Option::None,
7099             special_fields: crate::SpecialFields::new(),
7100         };
7101         &instance
7102     }
7103 }
7104 
7105 impl crate::MessageFull for UninterpretedOption {
descriptor() -> crate::reflect::MessageDescriptor7106     fn descriptor() -> crate::reflect::MessageDescriptor {
7107         static descriptor: crate::rt::Lazy<crate::reflect::MessageDescriptor> = crate::rt::Lazy::new();
7108         descriptor.get(|| file_descriptor().message_by_package_relative_name("UninterpretedOption").unwrap()).clone()
7109     }
7110 }
7111 
7112 impl ::std::fmt::Display for UninterpretedOption {
fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result7113     fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
7114         crate::text_format::fmt(self, f)
7115     }
7116 }
7117 
7118 impl crate::reflect::ProtobufValue for UninterpretedOption {
7119     type RuntimeType = crate::reflect::rt::RuntimeTypeMessage<Self>;
7120 }
7121 
7122 /// Nested message and enums of message `UninterpretedOption`
7123 pub mod uninterpreted_option {
7124     ///  The name of the uninterpreted option.  Each string represents a segment in
7125     ///  a dot-separated name.  is_extension is true iff a segment represents an
7126     ///  extension (denoted with parentheses in options specs in .proto files).
7127     ///  E.g.,{ ["foo", false], ["bar.baz", true], ["qux", false] } represents
7128     ///  "foo.(bar.baz).qux".
7129     #[derive(PartialEq,Clone,Default,Debug)]
7130     // @@protoc_insertion_point(message:google.protobuf.UninterpretedOption.NamePart)
7131     pub struct NamePart {
7132         // message fields
7133         // @@protoc_insertion_point(field:google.protobuf.UninterpretedOption.NamePart.name_part)
7134         pub name_part: ::std::option::Option<::std::string::String>,
7135         // @@protoc_insertion_point(field:google.protobuf.UninterpretedOption.NamePart.is_extension)
7136         pub is_extension: ::std::option::Option<bool>,
7137         // special fields
7138         // @@protoc_insertion_point(special_field:google.protobuf.UninterpretedOption.NamePart.special_fields)
7139         pub special_fields: crate::SpecialFields,
7140     }
7141 
7142     impl<'a> ::std::default::Default for &'a NamePart {
default() -> &'a NamePart7143         fn default() -> &'a NamePart {
7144             <NamePart as crate::Message>::default_instance()
7145         }
7146     }
7147 
7148     impl NamePart {
new() -> NamePart7149         pub fn new() -> NamePart {
7150             ::std::default::Default::default()
7151         }
7152 
7153         // required string name_part = 1;
7154 
name_part(&self) -> &str7155         pub fn name_part(&self) -> &str {
7156             match self.name_part.as_ref() {
7157                 Some(v) => v,
7158                 None => "",
7159             }
7160         }
7161 
clear_name_part(&mut self)7162         pub fn clear_name_part(&mut self) {
7163             self.name_part = ::std::option::Option::None;
7164         }
7165 
has_name_part(&self) -> bool7166         pub fn has_name_part(&self) -> bool {
7167             self.name_part.is_some()
7168         }
7169 
7170         // Param is passed by value, moved
set_name_part(&mut self, v: ::std::string::String)7171         pub fn set_name_part(&mut self, v: ::std::string::String) {
7172             self.name_part = ::std::option::Option::Some(v);
7173         }
7174 
7175         // Mutable pointer to the field.
7176         // If field is not initialized, it is initialized with default value first.
mut_name_part(&mut self) -> &mut ::std::string::String7177         pub fn mut_name_part(&mut self) -> &mut ::std::string::String {
7178             if self.name_part.is_none() {
7179                 self.name_part = ::std::option::Option::Some(::std::string::String::new());
7180             }
7181             self.name_part.as_mut().unwrap()
7182         }
7183 
7184         // Take field
take_name_part(&mut self) -> ::std::string::String7185         pub fn take_name_part(&mut self) -> ::std::string::String {
7186             self.name_part.take().unwrap_or_else(|| ::std::string::String::new())
7187         }
7188 
7189         // required bool is_extension = 2;
7190 
is_extension(&self) -> bool7191         pub fn is_extension(&self) -> bool {
7192             self.is_extension.unwrap_or(false)
7193         }
7194 
clear_is_extension(&mut self)7195         pub fn clear_is_extension(&mut self) {
7196             self.is_extension = ::std::option::Option::None;
7197         }
7198 
has_is_extension(&self) -> bool7199         pub fn has_is_extension(&self) -> bool {
7200             self.is_extension.is_some()
7201         }
7202 
7203         // Param is passed by value, moved
set_is_extension(&mut self, v: bool)7204         pub fn set_is_extension(&mut self, v: bool) {
7205             self.is_extension = ::std::option::Option::Some(v);
7206         }
7207 
generated_message_descriptor_data() -> crate::reflect::GeneratedMessageDescriptorData7208         pub(in super) fn generated_message_descriptor_data() -> crate::reflect::GeneratedMessageDescriptorData {
7209             let mut fields = ::std::vec::Vec::with_capacity(2);
7210             let mut oneofs = ::std::vec::Vec::with_capacity(0);
7211             fields.push(crate::reflect::rt::v2::make_option_accessor::<_, _>(
7212                 "name_part",
7213                 |m: &NamePart| { &m.name_part },
7214                 |m: &mut NamePart| { &mut m.name_part },
7215             ));
7216             fields.push(crate::reflect::rt::v2::make_option_accessor::<_, _>(
7217                 "is_extension",
7218                 |m: &NamePart| { &m.is_extension },
7219                 |m: &mut NamePart| { &mut m.is_extension },
7220             ));
7221             crate::reflect::GeneratedMessageDescriptorData::new_2::<NamePart>(
7222                 "UninterpretedOption.NamePart",
7223                 fields,
7224                 oneofs,
7225             )
7226         }
7227     }
7228 
7229     impl crate::Message for NamePart {
7230         const NAME: &'static str = "NamePart";
7231 
is_initialized(&self) -> bool7232         fn is_initialized(&self) -> bool {
7233             if self.name_part.is_none() {
7234                 return false;
7235             }
7236             if self.is_extension.is_none() {
7237                 return false;
7238             }
7239             true
7240         }
7241 
merge_from(&mut self, is: &mut crate::CodedInputStream<'_>) -> crate::Result<()>7242         fn merge_from(&mut self, is: &mut crate::CodedInputStream<'_>) -> crate::Result<()> {
7243             while let Some(tag) = is.read_raw_tag_or_eof()? {
7244                 match tag {
7245                     10 => {
7246                         self.name_part = ::std::option::Option::Some(is.read_string()?);
7247                     },
7248                     16 => {
7249                         self.is_extension = ::std::option::Option::Some(is.read_bool()?);
7250                     },
7251                     tag => {
7252                         crate::rt::read_unknown_or_skip_group(tag, is, self.special_fields.mut_unknown_fields())?;
7253                     },
7254                 };
7255             }
7256             ::std::result::Result::Ok(())
7257         }
7258 
7259         // Compute sizes of nested messages
7260         #[allow(unused_variables)]
compute_size(&self) -> u647261         fn compute_size(&self) -> u64 {
7262             let mut my_size = 0;
7263             if let Some(v) = self.name_part.as_ref() {
7264                 my_size += crate::rt::string_size(1, &v);
7265             }
7266             if let Some(v) = self.is_extension {
7267                 my_size += 1 + 1;
7268             }
7269             my_size += crate::rt::unknown_fields_size(self.special_fields.unknown_fields());
7270             self.special_fields.cached_size().set(my_size as u32);
7271             my_size
7272         }
7273 
write_to_with_cached_sizes(&self, os: &mut crate::CodedOutputStream<'_>) -> crate::Result<()>7274         fn write_to_with_cached_sizes(&self, os: &mut crate::CodedOutputStream<'_>) -> crate::Result<()> {
7275             if let Some(v) = self.name_part.as_ref() {
7276                 os.write_string(1, v)?;
7277             }
7278             if let Some(v) = self.is_extension {
7279                 os.write_bool(2, v)?;
7280             }
7281             os.write_unknown_fields(self.special_fields.unknown_fields())?;
7282             ::std::result::Result::Ok(())
7283         }
7284 
special_fields(&self) -> &crate::SpecialFields7285         fn special_fields(&self) -> &crate::SpecialFields {
7286             &self.special_fields
7287         }
7288 
mut_special_fields(&mut self) -> &mut crate::SpecialFields7289         fn mut_special_fields(&mut self) -> &mut crate::SpecialFields {
7290             &mut self.special_fields
7291         }
7292 
new() -> NamePart7293         fn new() -> NamePart {
7294             NamePart::new()
7295         }
7296 
clear(&mut self)7297         fn clear(&mut self) {
7298             self.name_part = ::std::option::Option::None;
7299             self.is_extension = ::std::option::Option::None;
7300             self.special_fields.clear();
7301         }
7302 
default_instance() -> &'static NamePart7303         fn default_instance() -> &'static NamePart {
7304             static instance: NamePart = NamePart {
7305                 name_part: ::std::option::Option::None,
7306                 is_extension: ::std::option::Option::None,
7307                 special_fields: crate::SpecialFields::new(),
7308             };
7309             &instance
7310         }
7311     }
7312 
7313     impl crate::MessageFull for NamePart {
descriptor() -> crate::reflect::MessageDescriptor7314         fn descriptor() -> crate::reflect::MessageDescriptor {
7315             static descriptor: crate::rt::Lazy<crate::reflect::MessageDescriptor> = crate::rt::Lazy::new();
7316             descriptor.get(|| super::file_descriptor().message_by_package_relative_name("UninterpretedOption.NamePart").unwrap()).clone()
7317         }
7318     }
7319 
7320     impl ::std::fmt::Display for NamePart {
fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result7321         fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
7322             crate::text_format::fmt(self, f)
7323         }
7324     }
7325 
7326     impl crate::reflect::ProtobufValue for NamePart {
7327         type RuntimeType = crate::reflect::rt::RuntimeTypeMessage<Self>;
7328     }
7329 }
7330 
7331 ///  Encapsulates information about the original source file from which a
7332 ///  FileDescriptorProto was generated.
7333 #[derive(PartialEq,Clone,Default,Debug)]
7334 // @@protoc_insertion_point(message:google.protobuf.SourceCodeInfo)
7335 pub struct SourceCodeInfo {
7336     // message fields
7337     // @@protoc_insertion_point(field:google.protobuf.SourceCodeInfo.location)
7338     pub location: ::std::vec::Vec<source_code_info::Location>,
7339     // special fields
7340     // @@protoc_insertion_point(special_field:google.protobuf.SourceCodeInfo.special_fields)
7341     pub special_fields: crate::SpecialFields,
7342 }
7343 
7344 impl<'a> ::std::default::Default for &'a SourceCodeInfo {
default() -> &'a SourceCodeInfo7345     fn default() -> &'a SourceCodeInfo {
7346         <SourceCodeInfo as crate::Message>::default_instance()
7347     }
7348 }
7349 
7350 impl SourceCodeInfo {
new() -> SourceCodeInfo7351     pub fn new() -> SourceCodeInfo {
7352         ::std::default::Default::default()
7353     }
7354 
generated_message_descriptor_data() -> crate::reflect::GeneratedMessageDescriptorData7355     fn generated_message_descriptor_data() -> crate::reflect::GeneratedMessageDescriptorData {
7356         let mut fields = ::std::vec::Vec::with_capacity(1);
7357         let mut oneofs = ::std::vec::Vec::with_capacity(0);
7358         fields.push(crate::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
7359             "location",
7360             |m: &SourceCodeInfo| { &m.location },
7361             |m: &mut SourceCodeInfo| { &mut m.location },
7362         ));
7363         crate::reflect::GeneratedMessageDescriptorData::new_2::<SourceCodeInfo>(
7364             "SourceCodeInfo",
7365             fields,
7366             oneofs,
7367         )
7368     }
7369 }
7370 
7371 impl crate::Message for SourceCodeInfo {
7372     const NAME: &'static str = "SourceCodeInfo";
7373 
is_initialized(&self) -> bool7374     fn is_initialized(&self) -> bool {
7375         true
7376     }
7377 
merge_from(&mut self, is: &mut crate::CodedInputStream<'_>) -> crate::Result<()>7378     fn merge_from(&mut self, is: &mut crate::CodedInputStream<'_>) -> crate::Result<()> {
7379         while let Some(tag) = is.read_raw_tag_or_eof()? {
7380             match tag {
7381                 10 => {
7382                     self.location.push(is.read_message()?);
7383                 },
7384                 tag => {
7385                     crate::rt::read_unknown_or_skip_group(tag, is, self.special_fields.mut_unknown_fields())?;
7386                 },
7387             };
7388         }
7389         ::std::result::Result::Ok(())
7390     }
7391 
7392     // Compute sizes of nested messages
7393     #[allow(unused_variables)]
compute_size(&self) -> u647394     fn compute_size(&self) -> u64 {
7395         let mut my_size = 0;
7396         for value in &self.location {
7397             let len = value.compute_size();
7398             my_size += 1 + crate::rt::compute_raw_varint64_size(len) + len;
7399         };
7400         my_size += crate::rt::unknown_fields_size(self.special_fields.unknown_fields());
7401         self.special_fields.cached_size().set(my_size as u32);
7402         my_size
7403     }
7404 
write_to_with_cached_sizes(&self, os: &mut crate::CodedOutputStream<'_>) -> crate::Result<()>7405     fn write_to_with_cached_sizes(&self, os: &mut crate::CodedOutputStream<'_>) -> crate::Result<()> {
7406         for v in &self.location {
7407             crate::rt::write_message_field_with_cached_size(1, v, os)?;
7408         };
7409         os.write_unknown_fields(self.special_fields.unknown_fields())?;
7410         ::std::result::Result::Ok(())
7411     }
7412 
special_fields(&self) -> &crate::SpecialFields7413     fn special_fields(&self) -> &crate::SpecialFields {
7414         &self.special_fields
7415     }
7416 
mut_special_fields(&mut self) -> &mut crate::SpecialFields7417     fn mut_special_fields(&mut self) -> &mut crate::SpecialFields {
7418         &mut self.special_fields
7419     }
7420 
new() -> SourceCodeInfo7421     fn new() -> SourceCodeInfo {
7422         SourceCodeInfo::new()
7423     }
7424 
clear(&mut self)7425     fn clear(&mut self) {
7426         self.location.clear();
7427         self.special_fields.clear();
7428     }
7429 
default_instance() -> &'static SourceCodeInfo7430     fn default_instance() -> &'static SourceCodeInfo {
7431         static instance: SourceCodeInfo = SourceCodeInfo {
7432             location: ::std::vec::Vec::new(),
7433             special_fields: crate::SpecialFields::new(),
7434         };
7435         &instance
7436     }
7437 }
7438 
7439 impl crate::MessageFull for SourceCodeInfo {
descriptor() -> crate::reflect::MessageDescriptor7440     fn descriptor() -> crate::reflect::MessageDescriptor {
7441         static descriptor: crate::rt::Lazy<crate::reflect::MessageDescriptor> = crate::rt::Lazy::new();
7442         descriptor.get(|| file_descriptor().message_by_package_relative_name("SourceCodeInfo").unwrap()).clone()
7443     }
7444 }
7445 
7446 impl ::std::fmt::Display for SourceCodeInfo {
fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result7447     fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
7448         crate::text_format::fmt(self, f)
7449     }
7450 }
7451 
7452 impl crate::reflect::ProtobufValue for SourceCodeInfo {
7453     type RuntimeType = crate::reflect::rt::RuntimeTypeMessage<Self>;
7454 }
7455 
7456 /// Nested message and enums of message `SourceCodeInfo`
7457 pub mod source_code_info {
7458     #[derive(PartialEq,Clone,Default,Debug)]
7459     // @@protoc_insertion_point(message:google.protobuf.SourceCodeInfo.Location)
7460     pub struct Location {
7461         // message fields
7462         // @@protoc_insertion_point(field:google.protobuf.SourceCodeInfo.Location.path)
7463         pub path: ::std::vec::Vec<i32>,
7464         ///  Always has exactly three or four elements: start line, start column,
7465         ///  end line (optional, otherwise assumed same as start line), end column.
7466         ///  These are packed into a single field for efficiency.  Note that line
7467         ///  and column numbers are zero-based -- typically you will want to add
7468         ///  1 to each before displaying to a user.
7469         // @@protoc_insertion_point(field:google.protobuf.SourceCodeInfo.Location.span)
7470         pub span: ::std::vec::Vec<i32>,
7471         // @@protoc_insertion_point(field:google.protobuf.SourceCodeInfo.Location.leading_comments)
7472         pub leading_comments: ::std::option::Option<::std::string::String>,
7473         // @@protoc_insertion_point(field:google.protobuf.SourceCodeInfo.Location.trailing_comments)
7474         pub trailing_comments: ::std::option::Option<::std::string::String>,
7475         // @@protoc_insertion_point(field:google.protobuf.SourceCodeInfo.Location.leading_detached_comments)
7476         pub leading_detached_comments: ::std::vec::Vec<::std::string::String>,
7477         // special fields
7478         // @@protoc_insertion_point(special_field:google.protobuf.SourceCodeInfo.Location.special_fields)
7479         pub special_fields: crate::SpecialFields,
7480     }
7481 
7482     impl<'a> ::std::default::Default for &'a Location {
default() -> &'a Location7483         fn default() -> &'a Location {
7484             <Location as crate::Message>::default_instance()
7485         }
7486     }
7487 
7488     impl Location {
new() -> Location7489         pub fn new() -> Location {
7490             ::std::default::Default::default()
7491         }
7492 
7493         // optional string leading_comments = 3;
7494 
leading_comments(&self) -> &str7495         pub fn leading_comments(&self) -> &str {
7496             match self.leading_comments.as_ref() {
7497                 Some(v) => v,
7498                 None => "",
7499             }
7500         }
7501 
clear_leading_comments(&mut self)7502         pub fn clear_leading_comments(&mut self) {
7503             self.leading_comments = ::std::option::Option::None;
7504         }
7505 
has_leading_comments(&self) -> bool7506         pub fn has_leading_comments(&self) -> bool {
7507             self.leading_comments.is_some()
7508         }
7509 
7510         // Param is passed by value, moved
set_leading_comments(&mut self, v: ::std::string::String)7511         pub fn set_leading_comments(&mut self, v: ::std::string::String) {
7512             self.leading_comments = ::std::option::Option::Some(v);
7513         }
7514 
7515         // Mutable pointer to the field.
7516         // If field is not initialized, it is initialized with default value first.
mut_leading_comments(&mut self) -> &mut ::std::string::String7517         pub fn mut_leading_comments(&mut self) -> &mut ::std::string::String {
7518             if self.leading_comments.is_none() {
7519                 self.leading_comments = ::std::option::Option::Some(::std::string::String::new());
7520             }
7521             self.leading_comments.as_mut().unwrap()
7522         }
7523 
7524         // Take field
take_leading_comments(&mut self) -> ::std::string::String7525         pub fn take_leading_comments(&mut self) -> ::std::string::String {
7526             self.leading_comments.take().unwrap_or_else(|| ::std::string::String::new())
7527         }
7528 
7529         // optional string trailing_comments = 4;
7530 
trailing_comments(&self) -> &str7531         pub fn trailing_comments(&self) -> &str {
7532             match self.trailing_comments.as_ref() {
7533                 Some(v) => v,
7534                 None => "",
7535             }
7536         }
7537 
clear_trailing_comments(&mut self)7538         pub fn clear_trailing_comments(&mut self) {
7539             self.trailing_comments = ::std::option::Option::None;
7540         }
7541 
has_trailing_comments(&self) -> bool7542         pub fn has_trailing_comments(&self) -> bool {
7543             self.trailing_comments.is_some()
7544         }
7545 
7546         // Param is passed by value, moved
set_trailing_comments(&mut self, v: ::std::string::String)7547         pub fn set_trailing_comments(&mut self, v: ::std::string::String) {
7548             self.trailing_comments = ::std::option::Option::Some(v);
7549         }
7550 
7551         // Mutable pointer to the field.
7552         // If field is not initialized, it is initialized with default value first.
mut_trailing_comments(&mut self) -> &mut ::std::string::String7553         pub fn mut_trailing_comments(&mut self) -> &mut ::std::string::String {
7554             if self.trailing_comments.is_none() {
7555                 self.trailing_comments = ::std::option::Option::Some(::std::string::String::new());
7556             }
7557             self.trailing_comments.as_mut().unwrap()
7558         }
7559 
7560         // Take field
take_trailing_comments(&mut self) -> ::std::string::String7561         pub fn take_trailing_comments(&mut self) -> ::std::string::String {
7562             self.trailing_comments.take().unwrap_or_else(|| ::std::string::String::new())
7563         }
7564 
generated_message_descriptor_data() -> crate::reflect::GeneratedMessageDescriptorData7565         pub(in super) fn generated_message_descriptor_data() -> crate::reflect::GeneratedMessageDescriptorData {
7566             let mut fields = ::std::vec::Vec::with_capacity(5);
7567             let mut oneofs = ::std::vec::Vec::with_capacity(0);
7568             fields.push(crate::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
7569                 "path",
7570                 |m: &Location| { &m.path },
7571                 |m: &mut Location| { &mut m.path },
7572             ));
7573             fields.push(crate::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
7574                 "span",
7575                 |m: &Location| { &m.span },
7576                 |m: &mut Location| { &mut m.span },
7577             ));
7578             fields.push(crate::reflect::rt::v2::make_option_accessor::<_, _>(
7579                 "leading_comments",
7580                 |m: &Location| { &m.leading_comments },
7581                 |m: &mut Location| { &mut m.leading_comments },
7582             ));
7583             fields.push(crate::reflect::rt::v2::make_option_accessor::<_, _>(
7584                 "trailing_comments",
7585                 |m: &Location| { &m.trailing_comments },
7586                 |m: &mut Location| { &mut m.trailing_comments },
7587             ));
7588             fields.push(crate::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
7589                 "leading_detached_comments",
7590                 |m: &Location| { &m.leading_detached_comments },
7591                 |m: &mut Location| { &mut m.leading_detached_comments },
7592             ));
7593             crate::reflect::GeneratedMessageDescriptorData::new_2::<Location>(
7594                 "SourceCodeInfo.Location",
7595                 fields,
7596                 oneofs,
7597             )
7598         }
7599     }
7600 
7601     impl crate::Message for Location {
7602         const NAME: &'static str = "Location";
7603 
is_initialized(&self) -> bool7604         fn is_initialized(&self) -> bool {
7605             true
7606         }
7607 
merge_from(&mut self, is: &mut crate::CodedInputStream<'_>) -> crate::Result<()>7608         fn merge_from(&mut self, is: &mut crate::CodedInputStream<'_>) -> crate::Result<()> {
7609             while let Some(tag) = is.read_raw_tag_or_eof()? {
7610                 match tag {
7611                     10 => {
7612                         is.read_repeated_packed_int32_into(&mut self.path)?;
7613                     },
7614                     8 => {
7615                         self.path.push(is.read_int32()?);
7616                     },
7617                     18 => {
7618                         is.read_repeated_packed_int32_into(&mut self.span)?;
7619                     },
7620                     16 => {
7621                         self.span.push(is.read_int32()?);
7622                     },
7623                     26 => {
7624                         self.leading_comments = ::std::option::Option::Some(is.read_string()?);
7625                     },
7626                     34 => {
7627                         self.trailing_comments = ::std::option::Option::Some(is.read_string()?);
7628                     },
7629                     50 => {
7630                         self.leading_detached_comments.push(is.read_string()?);
7631                     },
7632                     tag => {
7633                         crate::rt::read_unknown_or_skip_group(tag, is, self.special_fields.mut_unknown_fields())?;
7634                     },
7635                 };
7636             }
7637             ::std::result::Result::Ok(())
7638         }
7639 
7640         // Compute sizes of nested messages
7641         #[allow(unused_variables)]
compute_size(&self) -> u647642         fn compute_size(&self) -> u64 {
7643             let mut my_size = 0;
7644             my_size += crate::rt::vec_packed_int32_size(1, &self.path);
7645             my_size += crate::rt::vec_packed_int32_size(2, &self.span);
7646             if let Some(v) = self.leading_comments.as_ref() {
7647                 my_size += crate::rt::string_size(3, &v);
7648             }
7649             if let Some(v) = self.trailing_comments.as_ref() {
7650                 my_size += crate::rt::string_size(4, &v);
7651             }
7652             for value in &self.leading_detached_comments {
7653                 my_size += crate::rt::string_size(6, &value);
7654             };
7655             my_size += crate::rt::unknown_fields_size(self.special_fields.unknown_fields());
7656             self.special_fields.cached_size().set(my_size as u32);
7657             my_size
7658         }
7659 
write_to_with_cached_sizes(&self, os: &mut crate::CodedOutputStream<'_>) -> crate::Result<()>7660         fn write_to_with_cached_sizes(&self, os: &mut crate::CodedOutputStream<'_>) -> crate::Result<()> {
7661             os.write_repeated_packed_int32(1, &self.path)?;
7662             os.write_repeated_packed_int32(2, &self.span)?;
7663             if let Some(v) = self.leading_comments.as_ref() {
7664                 os.write_string(3, v)?;
7665             }
7666             if let Some(v) = self.trailing_comments.as_ref() {
7667                 os.write_string(4, v)?;
7668             }
7669             for v in &self.leading_detached_comments {
7670                 os.write_string(6, &v)?;
7671             };
7672             os.write_unknown_fields(self.special_fields.unknown_fields())?;
7673             ::std::result::Result::Ok(())
7674         }
7675 
special_fields(&self) -> &crate::SpecialFields7676         fn special_fields(&self) -> &crate::SpecialFields {
7677             &self.special_fields
7678         }
7679 
mut_special_fields(&mut self) -> &mut crate::SpecialFields7680         fn mut_special_fields(&mut self) -> &mut crate::SpecialFields {
7681             &mut self.special_fields
7682         }
7683 
new() -> Location7684         fn new() -> Location {
7685             Location::new()
7686         }
7687 
clear(&mut self)7688         fn clear(&mut self) {
7689             self.path.clear();
7690             self.span.clear();
7691             self.leading_comments = ::std::option::Option::None;
7692             self.trailing_comments = ::std::option::Option::None;
7693             self.leading_detached_comments.clear();
7694             self.special_fields.clear();
7695         }
7696 
default_instance() -> &'static Location7697         fn default_instance() -> &'static Location {
7698             static instance: Location = Location {
7699                 path: ::std::vec::Vec::new(),
7700                 span: ::std::vec::Vec::new(),
7701                 leading_comments: ::std::option::Option::None,
7702                 trailing_comments: ::std::option::Option::None,
7703                 leading_detached_comments: ::std::vec::Vec::new(),
7704                 special_fields: crate::SpecialFields::new(),
7705             };
7706             &instance
7707         }
7708     }
7709 
7710     impl crate::MessageFull for Location {
descriptor() -> crate::reflect::MessageDescriptor7711         fn descriptor() -> crate::reflect::MessageDescriptor {
7712             static descriptor: crate::rt::Lazy<crate::reflect::MessageDescriptor> = crate::rt::Lazy::new();
7713             descriptor.get(|| super::file_descriptor().message_by_package_relative_name("SourceCodeInfo.Location").unwrap()).clone()
7714         }
7715     }
7716 
7717     impl ::std::fmt::Display for Location {
fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result7718         fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
7719             crate::text_format::fmt(self, f)
7720         }
7721     }
7722 
7723     impl crate::reflect::ProtobufValue for Location {
7724         type RuntimeType = crate::reflect::rt::RuntimeTypeMessage<Self>;
7725     }
7726 }
7727 
7728 ///  Describes the relationship between generated code and its original source
7729 ///  file. A GeneratedCodeInfo message is associated with only one generated
7730 ///  source file, but may contain references to different source .proto files.
7731 #[derive(PartialEq,Clone,Default,Debug)]
7732 // @@protoc_insertion_point(message:google.protobuf.GeneratedCodeInfo)
7733 pub struct GeneratedCodeInfo {
7734     // message fields
7735     ///  An Annotation connects some span of text in generated code to an element
7736     ///  of its generating .proto file.
7737     // @@protoc_insertion_point(field:google.protobuf.GeneratedCodeInfo.annotation)
7738     pub annotation: ::std::vec::Vec<generated_code_info::Annotation>,
7739     // special fields
7740     // @@protoc_insertion_point(special_field:google.protobuf.GeneratedCodeInfo.special_fields)
7741     pub special_fields: crate::SpecialFields,
7742 }
7743 
7744 impl<'a> ::std::default::Default for &'a GeneratedCodeInfo {
default() -> &'a GeneratedCodeInfo7745     fn default() -> &'a GeneratedCodeInfo {
7746         <GeneratedCodeInfo as crate::Message>::default_instance()
7747     }
7748 }
7749 
7750 impl GeneratedCodeInfo {
new() -> GeneratedCodeInfo7751     pub fn new() -> GeneratedCodeInfo {
7752         ::std::default::Default::default()
7753     }
7754 
generated_message_descriptor_data() -> crate::reflect::GeneratedMessageDescriptorData7755     fn generated_message_descriptor_data() -> crate::reflect::GeneratedMessageDescriptorData {
7756         let mut fields = ::std::vec::Vec::with_capacity(1);
7757         let mut oneofs = ::std::vec::Vec::with_capacity(0);
7758         fields.push(crate::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
7759             "annotation",
7760             |m: &GeneratedCodeInfo| { &m.annotation },
7761             |m: &mut GeneratedCodeInfo| { &mut m.annotation },
7762         ));
7763         crate::reflect::GeneratedMessageDescriptorData::new_2::<GeneratedCodeInfo>(
7764             "GeneratedCodeInfo",
7765             fields,
7766             oneofs,
7767         )
7768     }
7769 }
7770 
7771 impl crate::Message for GeneratedCodeInfo {
7772     const NAME: &'static str = "GeneratedCodeInfo";
7773 
is_initialized(&self) -> bool7774     fn is_initialized(&self) -> bool {
7775         true
7776     }
7777 
merge_from(&mut self, is: &mut crate::CodedInputStream<'_>) -> crate::Result<()>7778     fn merge_from(&mut self, is: &mut crate::CodedInputStream<'_>) -> crate::Result<()> {
7779         while let Some(tag) = is.read_raw_tag_or_eof()? {
7780             match tag {
7781                 10 => {
7782                     self.annotation.push(is.read_message()?);
7783                 },
7784                 tag => {
7785                     crate::rt::read_unknown_or_skip_group(tag, is, self.special_fields.mut_unknown_fields())?;
7786                 },
7787             };
7788         }
7789         ::std::result::Result::Ok(())
7790     }
7791 
7792     // Compute sizes of nested messages
7793     #[allow(unused_variables)]
compute_size(&self) -> u647794     fn compute_size(&self) -> u64 {
7795         let mut my_size = 0;
7796         for value in &self.annotation {
7797             let len = value.compute_size();
7798             my_size += 1 + crate::rt::compute_raw_varint64_size(len) + len;
7799         };
7800         my_size += crate::rt::unknown_fields_size(self.special_fields.unknown_fields());
7801         self.special_fields.cached_size().set(my_size as u32);
7802         my_size
7803     }
7804 
write_to_with_cached_sizes(&self, os: &mut crate::CodedOutputStream<'_>) -> crate::Result<()>7805     fn write_to_with_cached_sizes(&self, os: &mut crate::CodedOutputStream<'_>) -> crate::Result<()> {
7806         for v in &self.annotation {
7807             crate::rt::write_message_field_with_cached_size(1, v, os)?;
7808         };
7809         os.write_unknown_fields(self.special_fields.unknown_fields())?;
7810         ::std::result::Result::Ok(())
7811     }
7812 
special_fields(&self) -> &crate::SpecialFields7813     fn special_fields(&self) -> &crate::SpecialFields {
7814         &self.special_fields
7815     }
7816 
mut_special_fields(&mut self) -> &mut crate::SpecialFields7817     fn mut_special_fields(&mut self) -> &mut crate::SpecialFields {
7818         &mut self.special_fields
7819     }
7820 
new() -> GeneratedCodeInfo7821     fn new() -> GeneratedCodeInfo {
7822         GeneratedCodeInfo::new()
7823     }
7824 
clear(&mut self)7825     fn clear(&mut self) {
7826         self.annotation.clear();
7827         self.special_fields.clear();
7828     }
7829 
default_instance() -> &'static GeneratedCodeInfo7830     fn default_instance() -> &'static GeneratedCodeInfo {
7831         static instance: GeneratedCodeInfo = GeneratedCodeInfo {
7832             annotation: ::std::vec::Vec::new(),
7833             special_fields: crate::SpecialFields::new(),
7834         };
7835         &instance
7836     }
7837 }
7838 
7839 impl crate::MessageFull for GeneratedCodeInfo {
descriptor() -> crate::reflect::MessageDescriptor7840     fn descriptor() -> crate::reflect::MessageDescriptor {
7841         static descriptor: crate::rt::Lazy<crate::reflect::MessageDescriptor> = crate::rt::Lazy::new();
7842         descriptor.get(|| file_descriptor().message_by_package_relative_name("GeneratedCodeInfo").unwrap()).clone()
7843     }
7844 }
7845 
7846 impl ::std::fmt::Display for GeneratedCodeInfo {
fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result7847     fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
7848         crate::text_format::fmt(self, f)
7849     }
7850 }
7851 
7852 impl crate::reflect::ProtobufValue for GeneratedCodeInfo {
7853     type RuntimeType = crate::reflect::rt::RuntimeTypeMessage<Self>;
7854 }
7855 
7856 /// Nested message and enums of message `GeneratedCodeInfo`
7857 pub mod generated_code_info {
7858     #[derive(PartialEq,Clone,Default,Debug)]
7859     // @@protoc_insertion_point(message:google.protobuf.GeneratedCodeInfo.Annotation)
7860     pub struct Annotation {
7861         // message fields
7862         ///  Identifies the element in the original source .proto file. This field
7863         ///  is formatted the same as SourceCodeInfo.Location.path.
7864         // @@protoc_insertion_point(field:google.protobuf.GeneratedCodeInfo.Annotation.path)
7865         pub path: ::std::vec::Vec<i32>,
7866         ///  Identifies the filesystem path to the original source .proto.
7867         // @@protoc_insertion_point(field:google.protobuf.GeneratedCodeInfo.Annotation.source_file)
7868         pub source_file: ::std::option::Option<::std::string::String>,
7869         ///  Identifies the starting offset in bytes in the generated code
7870         ///  that relates to the identified object.
7871         // @@protoc_insertion_point(field:google.protobuf.GeneratedCodeInfo.Annotation.begin)
7872         pub begin: ::std::option::Option<i32>,
7873         ///  Identifies the ending offset in bytes in the generated code that
7874         ///  relates to the identified offset. The end offset should be one past
7875         ///  the last relevant byte (so the length of the text = end - begin).
7876         // @@protoc_insertion_point(field:google.protobuf.GeneratedCodeInfo.Annotation.end)
7877         pub end: ::std::option::Option<i32>,
7878         // special fields
7879         // @@protoc_insertion_point(special_field:google.protobuf.GeneratedCodeInfo.Annotation.special_fields)
7880         pub special_fields: crate::SpecialFields,
7881     }
7882 
7883     impl<'a> ::std::default::Default for &'a Annotation {
default() -> &'a Annotation7884         fn default() -> &'a Annotation {
7885             <Annotation as crate::Message>::default_instance()
7886         }
7887     }
7888 
7889     impl Annotation {
new() -> Annotation7890         pub fn new() -> Annotation {
7891             ::std::default::Default::default()
7892         }
7893 
7894         // optional string source_file = 2;
7895 
source_file(&self) -> &str7896         pub fn source_file(&self) -> &str {
7897             match self.source_file.as_ref() {
7898                 Some(v) => v,
7899                 None => "",
7900             }
7901         }
7902 
clear_source_file(&mut self)7903         pub fn clear_source_file(&mut self) {
7904             self.source_file = ::std::option::Option::None;
7905         }
7906 
has_source_file(&self) -> bool7907         pub fn has_source_file(&self) -> bool {
7908             self.source_file.is_some()
7909         }
7910 
7911         // Param is passed by value, moved
set_source_file(&mut self, v: ::std::string::String)7912         pub fn set_source_file(&mut self, v: ::std::string::String) {
7913             self.source_file = ::std::option::Option::Some(v);
7914         }
7915 
7916         // Mutable pointer to the field.
7917         // If field is not initialized, it is initialized with default value first.
mut_source_file(&mut self) -> &mut ::std::string::String7918         pub fn mut_source_file(&mut self) -> &mut ::std::string::String {
7919             if self.source_file.is_none() {
7920                 self.source_file = ::std::option::Option::Some(::std::string::String::new());
7921             }
7922             self.source_file.as_mut().unwrap()
7923         }
7924 
7925         // Take field
take_source_file(&mut self) -> ::std::string::String7926         pub fn take_source_file(&mut self) -> ::std::string::String {
7927             self.source_file.take().unwrap_or_else(|| ::std::string::String::new())
7928         }
7929 
7930         // optional int32 begin = 3;
7931 
begin(&self) -> i327932         pub fn begin(&self) -> i32 {
7933             self.begin.unwrap_or(0)
7934         }
7935 
clear_begin(&mut self)7936         pub fn clear_begin(&mut self) {
7937             self.begin = ::std::option::Option::None;
7938         }
7939 
has_begin(&self) -> bool7940         pub fn has_begin(&self) -> bool {
7941             self.begin.is_some()
7942         }
7943 
7944         // Param is passed by value, moved
set_begin(&mut self, v: i32)7945         pub fn set_begin(&mut self, v: i32) {
7946             self.begin = ::std::option::Option::Some(v);
7947         }
7948 
7949         // optional int32 end = 4;
7950 
end(&self) -> i327951         pub fn end(&self) -> i32 {
7952             self.end.unwrap_or(0)
7953         }
7954 
clear_end(&mut self)7955         pub fn clear_end(&mut self) {
7956             self.end = ::std::option::Option::None;
7957         }
7958 
has_end(&self) -> bool7959         pub fn has_end(&self) -> bool {
7960             self.end.is_some()
7961         }
7962 
7963         // Param is passed by value, moved
set_end(&mut self, v: i32)7964         pub fn set_end(&mut self, v: i32) {
7965             self.end = ::std::option::Option::Some(v);
7966         }
7967 
generated_message_descriptor_data() -> crate::reflect::GeneratedMessageDescriptorData7968         pub(in super) fn generated_message_descriptor_data() -> crate::reflect::GeneratedMessageDescriptorData {
7969             let mut fields = ::std::vec::Vec::with_capacity(4);
7970             let mut oneofs = ::std::vec::Vec::with_capacity(0);
7971             fields.push(crate::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
7972                 "path",
7973                 |m: &Annotation| { &m.path },
7974                 |m: &mut Annotation| { &mut m.path },
7975             ));
7976             fields.push(crate::reflect::rt::v2::make_option_accessor::<_, _>(
7977                 "source_file",
7978                 |m: &Annotation| { &m.source_file },
7979                 |m: &mut Annotation| { &mut m.source_file },
7980             ));
7981             fields.push(crate::reflect::rt::v2::make_option_accessor::<_, _>(
7982                 "begin",
7983                 |m: &Annotation| { &m.begin },
7984                 |m: &mut Annotation| { &mut m.begin },
7985             ));
7986             fields.push(crate::reflect::rt::v2::make_option_accessor::<_, _>(
7987                 "end",
7988                 |m: &Annotation| { &m.end },
7989                 |m: &mut Annotation| { &mut m.end },
7990             ));
7991             crate::reflect::GeneratedMessageDescriptorData::new_2::<Annotation>(
7992                 "GeneratedCodeInfo.Annotation",
7993                 fields,
7994                 oneofs,
7995             )
7996         }
7997     }
7998 
7999     impl crate::Message for Annotation {
8000         const NAME: &'static str = "Annotation";
8001 
is_initialized(&self) -> bool8002         fn is_initialized(&self) -> bool {
8003             true
8004         }
8005 
merge_from(&mut self, is: &mut crate::CodedInputStream<'_>) -> crate::Result<()>8006         fn merge_from(&mut self, is: &mut crate::CodedInputStream<'_>) -> crate::Result<()> {
8007             while let Some(tag) = is.read_raw_tag_or_eof()? {
8008                 match tag {
8009                     10 => {
8010                         is.read_repeated_packed_int32_into(&mut self.path)?;
8011                     },
8012                     8 => {
8013                         self.path.push(is.read_int32()?);
8014                     },
8015                     18 => {
8016                         self.source_file = ::std::option::Option::Some(is.read_string()?);
8017                     },
8018                     24 => {
8019                         self.begin = ::std::option::Option::Some(is.read_int32()?);
8020                     },
8021                     32 => {
8022                         self.end = ::std::option::Option::Some(is.read_int32()?);
8023                     },
8024                     tag => {
8025                         crate::rt::read_unknown_or_skip_group(tag, is, self.special_fields.mut_unknown_fields())?;
8026                     },
8027                 };
8028             }
8029             ::std::result::Result::Ok(())
8030         }
8031 
8032         // Compute sizes of nested messages
8033         #[allow(unused_variables)]
compute_size(&self) -> u648034         fn compute_size(&self) -> u64 {
8035             let mut my_size = 0;
8036             my_size += crate::rt::vec_packed_int32_size(1, &self.path);
8037             if let Some(v) = self.source_file.as_ref() {
8038                 my_size += crate::rt::string_size(2, &v);
8039             }
8040             if let Some(v) = self.begin {
8041                 my_size += crate::rt::int32_size(3, v);
8042             }
8043             if let Some(v) = self.end {
8044                 my_size += crate::rt::int32_size(4, v);
8045             }
8046             my_size += crate::rt::unknown_fields_size(self.special_fields.unknown_fields());
8047             self.special_fields.cached_size().set(my_size as u32);
8048             my_size
8049         }
8050 
write_to_with_cached_sizes(&self, os: &mut crate::CodedOutputStream<'_>) -> crate::Result<()>8051         fn write_to_with_cached_sizes(&self, os: &mut crate::CodedOutputStream<'_>) -> crate::Result<()> {
8052             os.write_repeated_packed_int32(1, &self.path)?;
8053             if let Some(v) = self.source_file.as_ref() {
8054                 os.write_string(2, v)?;
8055             }
8056             if let Some(v) = self.begin {
8057                 os.write_int32(3, v)?;
8058             }
8059             if let Some(v) = self.end {
8060                 os.write_int32(4, v)?;
8061             }
8062             os.write_unknown_fields(self.special_fields.unknown_fields())?;
8063             ::std::result::Result::Ok(())
8064         }
8065 
special_fields(&self) -> &crate::SpecialFields8066         fn special_fields(&self) -> &crate::SpecialFields {
8067             &self.special_fields
8068         }
8069 
mut_special_fields(&mut self) -> &mut crate::SpecialFields8070         fn mut_special_fields(&mut self) -> &mut crate::SpecialFields {
8071             &mut self.special_fields
8072         }
8073 
new() -> Annotation8074         fn new() -> Annotation {
8075             Annotation::new()
8076         }
8077 
clear(&mut self)8078         fn clear(&mut self) {
8079             self.path.clear();
8080             self.source_file = ::std::option::Option::None;
8081             self.begin = ::std::option::Option::None;
8082             self.end = ::std::option::Option::None;
8083             self.special_fields.clear();
8084         }
8085 
default_instance() -> &'static Annotation8086         fn default_instance() -> &'static Annotation {
8087             static instance: Annotation = Annotation {
8088                 path: ::std::vec::Vec::new(),
8089                 source_file: ::std::option::Option::None,
8090                 begin: ::std::option::Option::None,
8091                 end: ::std::option::Option::None,
8092                 special_fields: crate::SpecialFields::new(),
8093             };
8094             &instance
8095         }
8096     }
8097 
8098     impl crate::MessageFull for Annotation {
descriptor() -> crate::reflect::MessageDescriptor8099         fn descriptor() -> crate::reflect::MessageDescriptor {
8100             static descriptor: crate::rt::Lazy<crate::reflect::MessageDescriptor> = crate::rt::Lazy::new();
8101             descriptor.get(|| super::file_descriptor().message_by_package_relative_name("GeneratedCodeInfo.Annotation").unwrap()).clone()
8102         }
8103     }
8104 
8105     impl ::std::fmt::Display for Annotation {
fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result8106         fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
8107             crate::text_format::fmt(self, f)
8108         }
8109     }
8110 
8111     impl crate::reflect::ProtobufValue for Annotation {
8112         type RuntimeType = crate::reflect::rt::RuntimeTypeMessage<Self>;
8113     }
8114 }
8115 
8116 static file_descriptor_proto_data: &'static [u8] = b"\
8117     \n\x20google/protobuf/descriptor.proto\x12\x0fgoogle.protobuf\"M\n\x11Fi\
8118     leDescriptorSet\x128\n\x04file\x18\x01\x20\x03(\x0b2$.google.protobuf.Fi\
8119     leDescriptorProtoR\x04file\"\xe4\x04\n\x13FileDescriptorProto\x12\x12\n\
8120     \x04name\x18\x01\x20\x01(\tR\x04name\x12\x18\n\x07package\x18\x02\x20\
8121     \x01(\tR\x07package\x12\x1e\n\ndependency\x18\x03\x20\x03(\tR\ndependenc\
8122     y\x12+\n\x11public_dependency\x18\n\x20\x03(\x05R\x10publicDependency\
8123     \x12'\n\x0fweak_dependency\x18\x0b\x20\x03(\x05R\x0eweakDependency\x12C\
8124     \n\x0cmessage_type\x18\x04\x20\x03(\x0b2\x20.google.protobuf.DescriptorP\
8125     rotoR\x0bmessageType\x12A\n\tenum_type\x18\x05\x20\x03(\x0b2$.google.pro\
8126     tobuf.EnumDescriptorProtoR\x08enumType\x12A\n\x07service\x18\x06\x20\x03\
8127     (\x0b2'.google.protobuf.ServiceDescriptorProtoR\x07service\x12C\n\texten\
8128     sion\x18\x07\x20\x03(\x0b2%.google.protobuf.FieldDescriptorProtoR\texten\
8129     sion\x126\n\x07options\x18\x08\x20\x01(\x0b2\x1c.google.protobuf.FileOpt\
8130     ionsR\x07options\x12I\n\x10source_code_info\x18\t\x20\x01(\x0b2\x1f.goog\
8131     le.protobuf.SourceCodeInfoR\x0esourceCodeInfo\x12\x16\n\x06syntax\x18\
8132     \x0c\x20\x01(\tR\x06syntax\"\xb9\x06\n\x0fDescriptorProto\x12\x12\n\x04n\
8133     ame\x18\x01\x20\x01(\tR\x04name\x12;\n\x05field\x18\x02\x20\x03(\x0b2%.g\
8134     oogle.protobuf.FieldDescriptorProtoR\x05field\x12C\n\textension\x18\x06\
8135     \x20\x03(\x0b2%.google.protobuf.FieldDescriptorProtoR\textension\x12A\n\
8136     \x0bnested_type\x18\x03\x20\x03(\x0b2\x20.google.protobuf.DescriptorProt\
8137     oR\nnestedType\x12A\n\tenum_type\x18\x04\x20\x03(\x0b2$.google.protobuf.\
8138     EnumDescriptorProtoR\x08enumType\x12X\n\x0fextension_range\x18\x05\x20\
8139     \x03(\x0b2/.google.protobuf.DescriptorProto.ExtensionRangeR\x0eextension\
8140     Range\x12D\n\noneof_decl\x18\x08\x20\x03(\x0b2%.google.protobuf.OneofDes\
8141     criptorProtoR\toneofDecl\x129\n\x07options\x18\x07\x20\x01(\x0b2\x1f.goo\
8142     gle.protobuf.MessageOptionsR\x07options\x12U\n\x0ereserved_range\x18\t\
8143     \x20\x03(\x0b2..google.protobuf.DescriptorProto.ReservedRangeR\rreserved\
8144     Range\x12#\n\rreserved_name\x18\n\x20\x03(\tR\x0creservedName\x1az\n\x0e\
8145     ExtensionRange\x12\x14\n\x05start\x18\x01\x20\x01(\x05R\x05start\x12\x10\
8146     \n\x03end\x18\x02\x20\x01(\x05R\x03end\x12@\n\x07options\x18\x03\x20\x01\
8147     (\x0b2&.google.protobuf.ExtensionRangeOptionsR\x07options\x1a7\n\rReserv\
8148     edRange\x12\x14\n\x05start\x18\x01\x20\x01(\x05R\x05start\x12\x10\n\x03e\
8149     nd\x18\x02\x20\x01(\x05R\x03end\"|\n\x15ExtensionRangeOptions\x12X\n\x14\
8150     uninterpreted_option\x18\xe7\x07\x20\x03(\x0b2$.google.protobuf.Uninterp\
8151     retedOptionR\x13uninterpretedOption*\t\x08\xe8\x07\x10\x80\x80\x80\x80\
8152     \x02\"\xc1\x06\n\x14FieldDescriptorProto\x12\x12\n\x04name\x18\x01\x20\
8153     \x01(\tR\x04name\x12\x16\n\x06number\x18\x03\x20\x01(\x05R\x06number\x12\
8154     A\n\x05label\x18\x04\x20\x01(\x0e2+.google.protobuf.FieldDescriptorProto\
8155     .LabelR\x05label\x12>\n\x04type\x18\x05\x20\x01(\x0e2*.google.protobuf.F\
8156     ieldDescriptorProto.TypeR\x04type\x12\x1b\n\ttype_name\x18\x06\x20\x01(\
8157     \tR\x08typeName\x12\x1a\n\x08extendee\x18\x02\x20\x01(\tR\x08extendee\
8158     \x12#\n\rdefault_value\x18\x07\x20\x01(\tR\x0cdefaultValue\x12\x1f\n\x0b\
8159     oneof_index\x18\t\x20\x01(\x05R\noneofIndex\x12\x1b\n\tjson_name\x18\n\
8160     \x20\x01(\tR\x08jsonName\x127\n\x07options\x18\x08\x20\x01(\x0b2\x1d.goo\
8161     gle.protobuf.FieldOptionsR\x07options\x12'\n\x0fproto3_optional\x18\x11\
8162     \x20\x01(\x08R\x0eproto3Optional\"\xb6\x02\n\x04Type\x12\x0f\n\x0bTYPE_D\
8163     OUBLE\x10\x01\x12\x0e\n\nTYPE_FLOAT\x10\x02\x12\x0e\n\nTYPE_INT64\x10\
8164     \x03\x12\x0f\n\x0bTYPE_UINT64\x10\x04\x12\x0e\n\nTYPE_INT32\x10\x05\x12\
8165     \x10\n\x0cTYPE_FIXED64\x10\x06\x12\x10\n\x0cTYPE_FIXED32\x10\x07\x12\r\n\
8166     \tTYPE_BOOL\x10\x08\x12\x0f\n\x0bTYPE_STRING\x10\t\x12\x0e\n\nTYPE_GROUP\
8167     \x10\n\x12\x10\n\x0cTYPE_MESSAGE\x10\x0b\x12\x0e\n\nTYPE_BYTES\x10\x0c\
8168     \x12\x0f\n\x0bTYPE_UINT32\x10\r\x12\r\n\tTYPE_ENUM\x10\x0e\x12\x11\n\rTY\
8169     PE_SFIXED32\x10\x0f\x12\x11\n\rTYPE_SFIXED64\x10\x10\x12\x0f\n\x0bTYPE_S\
8170     INT32\x10\x11\x12\x0f\n\x0bTYPE_SINT64\x10\x12\"C\n\x05Label\x12\x12\n\
8171     \x0eLABEL_OPTIONAL\x10\x01\x12\x12\n\x0eLABEL_REQUIRED\x10\x02\x12\x12\n\
8172     \x0eLABEL_REPEATED\x10\x03\"c\n\x14OneofDescriptorProto\x12\x12\n\x04nam\
8173     e\x18\x01\x20\x01(\tR\x04name\x127\n\x07options\x18\x02\x20\x01(\x0b2\
8174     \x1d.google.protobuf.OneofOptionsR\x07options\"\xe3\x02\n\x13EnumDescrip\
8175     torProto\x12\x12\n\x04name\x18\x01\x20\x01(\tR\x04name\x12?\n\x05value\
8176     \x18\x02\x20\x03(\x0b2).google.protobuf.EnumValueDescriptorProtoR\x05val\
8177     ue\x126\n\x07options\x18\x03\x20\x01(\x0b2\x1c.google.protobuf.EnumOptio\
8178     nsR\x07options\x12]\n\x0ereserved_range\x18\x04\x20\x03(\x0b26.google.pr\
8179     otobuf.EnumDescriptorProto.EnumReservedRangeR\rreservedRange\x12#\n\rres\
8180     erved_name\x18\x05\x20\x03(\tR\x0creservedName\x1a;\n\x11EnumReservedRan\
8181     ge\x12\x14\n\x05start\x18\x01\x20\x01(\x05R\x05start\x12\x10\n\x03end\
8182     \x18\x02\x20\x01(\x05R\x03end\"\x83\x01\n\x18EnumValueDescriptorProto\
8183     \x12\x12\n\x04name\x18\x01\x20\x01(\tR\x04name\x12\x16\n\x06number\x18\
8184     \x02\x20\x01(\x05R\x06number\x12;\n\x07options\x18\x03\x20\x01(\x0b2!.go\
8185     ogle.protobuf.EnumValueOptionsR\x07options\"\xa7\x01\n\x16ServiceDescrip\
8186     torProto\x12\x12\n\x04name\x18\x01\x20\x01(\tR\x04name\x12>\n\x06method\
8187     \x18\x02\x20\x03(\x0b2&.google.protobuf.MethodDescriptorProtoR\x06method\
8188     \x129\n\x07options\x18\x03\x20\x01(\x0b2\x1f.google.protobuf.ServiceOpti\
8189     onsR\x07options\"\x89\x02\n\x15MethodDescriptorProto\x12\x12\n\x04name\
8190     \x18\x01\x20\x01(\tR\x04name\x12\x1d\n\ninput_type\x18\x02\x20\x01(\tR\t\
8191     inputType\x12\x1f\n\x0boutput_type\x18\x03\x20\x01(\tR\noutputType\x128\
8192     \n\x07options\x18\x04\x20\x01(\x0b2\x1e.google.protobuf.MethodOptionsR\
8193     \x07options\x120\n\x10client_streaming\x18\x05\x20\x01(\x08:\x05falseR\
8194     \x0fclientStreaming\x120\n\x10server_streaming\x18\x06\x20\x01(\x08:\x05\
8195     falseR\x0fserverStreaming\"\x91\t\n\x0bFileOptions\x12!\n\x0cjava_packag\
8196     e\x18\x01\x20\x01(\tR\x0bjavaPackage\x120\n\x14java_outer_classname\x18\
8197     \x08\x20\x01(\tR\x12javaOuterClassname\x125\n\x13java_multiple_files\x18\
8198     \n\x20\x01(\x08:\x05falseR\x11javaMultipleFiles\x12D\n\x1djava_generate_\
8199     equals_and_hash\x18\x14\x20\x01(\x08R\x19javaGenerateEqualsAndHashB\x02\
8200     \x18\x01\x12:\n\x16java_string_check_utf8\x18\x1b\x20\x01(\x08:\x05false\
8201     R\x13javaStringCheckUtf8\x12S\n\x0coptimize_for\x18\t\x20\x01(\x0e2).goo\
8202     gle.protobuf.FileOptions.OptimizeMode:\x05SPEEDR\x0boptimizeFor\x12\x1d\
8203     \n\ngo_package\x18\x0b\x20\x01(\tR\tgoPackage\x125\n\x13cc_generic_servi\
8204     ces\x18\x10\x20\x01(\x08:\x05falseR\x11ccGenericServices\x129\n\x15java_\
8205     generic_services\x18\x11\x20\x01(\x08:\x05falseR\x13javaGenericServices\
8206     \x125\n\x13py_generic_services\x18\x12\x20\x01(\x08:\x05falseR\x11pyGene\
8207     ricServices\x127\n\x14php_generic_services\x18*\x20\x01(\x08:\x05falseR\
8208     \x12phpGenericServices\x12%\n\ndeprecated\x18\x17\x20\x01(\x08:\x05false\
8209     R\ndeprecated\x12.\n\x10cc_enable_arenas\x18\x1f\x20\x01(\x08:\x04trueR\
8210     \x0eccEnableArenas\x12*\n\x11objc_class_prefix\x18$\x20\x01(\tR\x0fobjcC\
8211     lassPrefix\x12)\n\x10csharp_namespace\x18%\x20\x01(\tR\x0fcsharpNamespac\
8212     e\x12!\n\x0cswift_prefix\x18'\x20\x01(\tR\x0bswiftPrefix\x12(\n\x10php_c\
8213     lass_prefix\x18(\x20\x01(\tR\x0ephpClassPrefix\x12#\n\rphp_namespace\x18\
8214     )\x20\x01(\tR\x0cphpNamespace\x124\n\x16php_metadata_namespace\x18,\x20\
8215     \x01(\tR\x14phpMetadataNamespace\x12!\n\x0cruby_package\x18-\x20\x01(\tR\
8216     \x0brubyPackage\x12X\n\x14uninterpreted_option\x18\xe7\x07\x20\x03(\x0b2\
8217     $.google.protobuf.UninterpretedOptionR\x13uninterpretedOption\":\n\x0cOp\
8218     timizeMode\x12\t\n\x05SPEED\x10\x01\x12\r\n\tCODE_SIZE\x10\x02\x12\x10\n\
8219     \x0cLITE_RUNTIME\x10\x03*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02J\x04\x08\
8220     &\x10'\"\xe3\x02\n\x0eMessageOptions\x12<\n\x17message_set_wire_format\
8221     \x18\x01\x20\x01(\x08:\x05falseR\x14messageSetWireFormat\x12L\n\x1fno_st\
8222     andard_descriptor_accessor\x18\x02\x20\x01(\x08:\x05falseR\x1cnoStandard\
8223     DescriptorAccessor\x12%\n\ndeprecated\x18\x03\x20\x01(\x08:\x05falseR\nd\
8224     eprecated\x12\x1b\n\tmap_entry\x18\x07\x20\x01(\x08R\x08mapEntry\x12X\n\
8225     \x14uninterpreted_option\x18\xe7\x07\x20\x03(\x0b2$.google.protobuf.Unin\
8226     terpretedOptionR\x13uninterpretedOption*\t\x08\xe8\x07\x10\x80\x80\x80\
8227     \x80\x02J\x04\x08\x04\x10\x05J\x04\x08\x05\x10\x06J\x04\x08\x06\x10\x07J\
8228     \x04\x08\x08\x10\tJ\x04\x08\t\x10\n\"\xe2\x03\n\x0cFieldOptions\x12A\n\
8229     \x05ctype\x18\x01\x20\x01(\x0e2#.google.protobuf.FieldOptions.CType:\x06\
8230     STRINGR\x05ctype\x12\x16\n\x06packed\x18\x02\x20\x01(\x08R\x06packed\x12\
8231     G\n\x06jstype\x18\x06\x20\x01(\x0e2$.google.protobuf.FieldOptions.JSType\
8232     :\tJS_NORMALR\x06jstype\x12\x19\n\x04lazy\x18\x05\x20\x01(\x08:\x05false\
8233     R\x04lazy\x12%\n\ndeprecated\x18\x03\x20\x01(\x08:\x05falseR\ndeprecated\
8234     \x12\x19\n\x04weak\x18\n\x20\x01(\x08:\x05falseR\x04weak\x12X\n\x14unint\
8235     erpreted_option\x18\xe7\x07\x20\x03(\x0b2$.google.protobuf.Uninterpreted\
8236     OptionR\x13uninterpretedOption\"/\n\x05CType\x12\n\n\x06STRING\x10\0\x12\
8237     \x08\n\x04CORD\x10\x01\x12\x10\n\x0cSTRING_PIECE\x10\x02\"5\n\x06JSType\
8238     \x12\r\n\tJS_NORMAL\x10\0\x12\r\n\tJS_STRING\x10\x01\x12\r\n\tJS_NUMBER\
8239     \x10\x02*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02J\x04\x08\x04\x10\x05\"s\
8240     \n\x0cOneofOptions\x12X\n\x14uninterpreted_option\x18\xe7\x07\x20\x03(\
8241     \x0b2$.google.protobuf.UninterpretedOptionR\x13uninterpretedOption*\t\
8242     \x08\xe8\x07\x10\x80\x80\x80\x80\x02\"\xc0\x01\n\x0bEnumOptions\x12\x1f\
8243     \n\x0ballow_alias\x18\x02\x20\x01(\x08R\nallowAlias\x12%\n\ndeprecated\
8244     \x18\x03\x20\x01(\x08:\x05falseR\ndeprecated\x12X\n\x14uninterpreted_opt\
8245     ion\x18\xe7\x07\x20\x03(\x0b2$.google.protobuf.UninterpretedOptionR\x13u\
8246     ninterpretedOption*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02J\x04\x08\x05\
8247     \x10\x06\"\x9e\x01\n\x10EnumValueOptions\x12%\n\ndeprecated\x18\x01\x20\
8248     \x01(\x08:\x05falseR\ndeprecated\x12X\n\x14uninterpreted_option\x18\xe7\
8249     \x07\x20\x03(\x0b2$.google.protobuf.UninterpretedOptionR\x13uninterprete\
8250     dOption*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02\"\x9c\x01\n\x0eServiceOpt\
8251     ions\x12%\n\ndeprecated\x18!\x20\x01(\x08:\x05falseR\ndeprecated\x12X\n\
8252     \x14uninterpreted_option\x18\xe7\x07\x20\x03(\x0b2$.google.protobuf.Unin\
8253     terpretedOptionR\x13uninterpretedOption*\t\x08\xe8\x07\x10\x80\x80\x80\
8254     \x80\x02\"\xe0\x02\n\rMethodOptions\x12%\n\ndeprecated\x18!\x20\x01(\x08\
8255     :\x05falseR\ndeprecated\x12q\n\x11idempotency_level\x18\"\x20\x01(\x0e2/\
8256     .google.protobuf.MethodOptions.IdempotencyLevel:\x13IDEMPOTENCY_UNKNOWNR\
8257     \x10idempotencyLevel\x12X\n\x14uninterpreted_option\x18\xe7\x07\x20\x03(\
8258     \x0b2$.google.protobuf.UninterpretedOptionR\x13uninterpretedOption\"P\n\
8259     \x10IdempotencyLevel\x12\x17\n\x13IDEMPOTENCY_UNKNOWN\x10\0\x12\x13\n\
8260     \x0fNO_SIDE_EFFECTS\x10\x01\x12\x0e\n\nIDEMPOTENT\x10\x02*\t\x08\xe8\x07\
8261     \x10\x80\x80\x80\x80\x02\"\x9a\x03\n\x13UninterpretedOption\x12A\n\x04na\
8262     me\x18\x02\x20\x03(\x0b2-.google.protobuf.UninterpretedOption.NamePartR\
8263     \x04name\x12)\n\x10identifier_value\x18\x03\x20\x01(\tR\x0fidentifierVal\
8264     ue\x12,\n\x12positive_int_value\x18\x04\x20\x01(\x04R\x10positiveIntValu\
8265     e\x12,\n\x12negative_int_value\x18\x05\x20\x01(\x03R\x10negativeIntValue\
8266     \x12!\n\x0cdouble_value\x18\x06\x20\x01(\x01R\x0bdoubleValue\x12!\n\x0cs\
8267     tring_value\x18\x07\x20\x01(\x0cR\x0bstringValue\x12'\n\x0faggregate_val\
8268     ue\x18\x08\x20\x01(\tR\x0eaggregateValue\x1aJ\n\x08NamePart\x12\x1b\n\tn\
8269     ame_part\x18\x01\x20\x02(\tR\x08namePart\x12!\n\x0cis_extension\x18\x02\
8270     \x20\x02(\x08R\x0bisExtension\"\xa7\x02\n\x0eSourceCodeInfo\x12D\n\x08lo\
8271     cation\x18\x01\x20\x03(\x0b2(.google.protobuf.SourceCodeInfo.LocationR\
8272     \x08location\x1a\xce\x01\n\x08Location\x12\x16\n\x04path\x18\x01\x20\x03\
8273     (\x05R\x04pathB\x02\x10\x01\x12\x16\n\x04span\x18\x02\x20\x03(\x05R\x04s\
8274     panB\x02\x10\x01\x12)\n\x10leading_comments\x18\x03\x20\x01(\tR\x0fleadi\
8275     ngComments\x12+\n\x11trailing_comments\x18\x04\x20\x01(\tR\x10trailingCo\
8276     mments\x12:\n\x19leading_detached_comments\x18\x06\x20\x03(\tR\x17leadin\
8277     gDetachedComments\"\xd1\x01\n\x11GeneratedCodeInfo\x12M\n\nannotation\
8278     \x18\x01\x20\x03(\x0b2-.google.protobuf.GeneratedCodeInfo.AnnotationR\na\
8279     nnotation\x1am\n\nAnnotation\x12\x16\n\x04path\x18\x01\x20\x03(\x05R\x04\
8280     pathB\x02\x10\x01\x12\x1f\n\x0bsource_file\x18\x02\x20\x01(\tR\nsourceFi\
8281     le\x12\x14\n\x05begin\x18\x03\x20\x01(\x05R\x05begin\x12\x10\n\x03end\
8282     \x18\x04\x20\x01(\x05R\x03endB~\n\x13com.google.protobufB\x10DescriptorP\
8283     rotosH\x01Z-google.golang.org/protobuf/types/descriptorpb\xf8\x01\x01\
8284     \xa2\x02\x03GPB\xaa\x02\x1aGoogle.Protobuf.ReflectionJ\x82\xca\x02\n\x07\
8285     \x12\x05'\0\x8e\x07\x01\n\xaa\x0f\n\x01\x0c\x12\x03'\0\x122\xc1\x0c\x20P\
8286     rotocol\x20Buffers\x20-\x20Google's\x20data\x20interchange\x20format\n\
8287     \x20Copyright\x202008\x20Google\x20Inc.\x20\x20All\x20rights\x20reserved\
8288     .\n\x20https://developers.google.com/protocol-buffers/\n\n\x20Redistribu\
8289     tion\x20and\x20use\x20in\x20source\x20and\x20binary\x20forms,\x20with\
8290     \x20or\x20without\n\x20modification,\x20are\x20permitted\x20provided\x20\
8291     that\x20the\x20following\x20conditions\x20are\n\x20met:\n\n\x20\x20\x20\
8292     \x20\x20*\x20Redistributions\x20of\x20source\x20code\x20must\x20retain\
8293     \x20the\x20above\x20copyright\n\x20notice,\x20this\x20list\x20of\x20cond\
8294     itions\x20and\x20the\x20following\x20disclaimer.\n\x20\x20\x20\x20\x20*\
8295     \x20Redistributions\x20in\x20binary\x20form\x20must\x20reproduce\x20the\
8296     \x20above\n\x20copyright\x20notice,\x20this\x20list\x20of\x20conditions\
8297     \x20and\x20the\x20following\x20disclaimer\n\x20in\x20the\x20documentatio\
8298     n\x20and/or\x20other\x20materials\x20provided\x20with\x20the\n\x20distri\
8299     bution.\n\x20\x20\x20\x20\x20*\x20Neither\x20the\x20name\x20of\x20Google\
8300     \x20Inc.\x20nor\x20the\x20names\x20of\x20its\n\x20contributors\x20may\
8301     \x20be\x20used\x20to\x20endorse\x20or\x20promote\x20products\x20derived\
8302     \x20from\n\x20this\x20software\x20without\x20specific\x20prior\x20writte\
8303     n\x20permission.\n\n\x20THIS\x20SOFTWARE\x20IS\x20PROVIDED\x20BY\x20THE\
8304     \x20COPYRIGHT\x20HOLDERS\x20AND\x20CONTRIBUTORS\n\x20\"AS\x20IS\"\x20AND\
8305     \x20ANY\x20EXPRESS\x20OR\x20IMPLIED\x20WARRANTIES,\x20INCLUDING,\x20BUT\
8306     \x20NOT\n\x20LIMITED\x20TO,\x20THE\x20IMPLIED\x20WARRANTIES\x20OF\x20MER\
8307     CHANTABILITY\x20AND\x20FITNESS\x20FOR\n\x20A\x20PARTICULAR\x20PURPOSE\
8308     \x20ARE\x20DISCLAIMED.\x20IN\x20NO\x20EVENT\x20SHALL\x20THE\x20COPYRIGHT\
8309     \n\x20OWNER\x20OR\x20CONTRIBUTORS\x20BE\x20LIABLE\x20FOR\x20ANY\x20DIREC\
8310     T,\x20INDIRECT,\x20INCIDENTAL,\n\x20SPECIAL,\x20EXEMPLARY,\x20OR\x20CONS\
8311     EQUENTIAL\x20DAMAGES\x20(INCLUDING,\x20BUT\x20NOT\n\x20LIMITED\x20TO,\
8312     \x20PROCUREMENT\x20OF\x20SUBSTITUTE\x20GOODS\x20OR\x20SERVICES;\x20LOSS\
8313     \x20OF\x20USE,\n\x20DATA,\x20OR\x20PROFITS;\x20OR\x20BUSINESS\x20INTERRU\
8314     PTION)\x20HOWEVER\x20CAUSED\x20AND\x20ON\x20ANY\n\x20THEORY\x20OF\x20LIA\
8315     BILITY,\x20WHETHER\x20IN\x20CONTRACT,\x20STRICT\x20LIABILITY,\x20OR\x20T\
8316     ORT\n\x20(INCLUDING\x20NEGLIGENCE\x20OR\x20OTHERWISE)\x20ARISING\x20IN\
8317     \x20ANY\x20WAY\x20OUT\x20OF\x20THE\x20USE\n\x20OF\x20THIS\x20SOFTWARE,\
8318     \x20EVEN\x20IF\x20ADVISED\x20OF\x20THE\x20POSSIBILITY\x20OF\x20SUCH\x20D\
8319     AMAGE.\n2\xdb\x02\x20Author:\x20kenton@google.com\x20(Kenton\x20Varda)\n\
8320     \x20\x20Based\x20on\x20original\x20Protocol\x20Buffers\x20design\x20by\n\
8321     \x20\x20Sanjay\x20Ghemawat,\x20Jeff\x20Dean,\x20and\x20others.\n\n\x20Th\
8322     e\x20messages\x20in\x20this\x20file\x20describe\x20the\x20definitions\
8323     \x20found\x20in\x20.proto\x20files.\n\x20A\x20valid\x20.proto\x20file\
8324     \x20can\x20be\x20translated\x20directly\x20to\x20a\x20FileDescriptorProt\
8325     o\n\x20without\x20any\x20other\x20information\x20(e.g.\x20without\x20rea\
8326     ding\x20its\x20imports).\n\n\x08\n\x01\x02\x12\x03)\0\x18\n\x08\n\x01\
8327     \x08\x12\x03+\0D\n\t\n\x02\x08\x0b\x12\x03+\0D\n\x08\n\x01\x08\x12\x03,\
8328     \0,\n\t\n\x02\x08\x01\x12\x03,\0,\n\x08\n\x01\x08\x12\x03-\01\n\t\n\x02\
8329     \x08\x08\x12\x03-\01\n\x08\n\x01\x08\x12\x03.\07\n\t\n\x02\x08%\x12\x03.\
8330     \07\n\x08\n\x01\x08\x12\x03/\0!\n\t\n\x02\x08$\x12\x03/\0!\n\x08\n\x01\
8331     \x08\x12\x030\0\x1f\n\t\n\x02\x08\x1f\x12\x030\0\x1f\n\x08\n\x01\x08\x12\
8332     \x034\0\x1c\n\x7f\n\x02\x08\t\x12\x034\0\x1c\x1at\x20descriptor.proto\
8333     \x20must\x20be\x20optimized\x20for\x20speed\x20because\x20reflection-bas\
8334     ed\n\x20algorithms\x20don't\x20work\x20during\x20bootstrapping.\n\nj\n\
8335     \x02\x04\0\x12\x048\0:\x01\x1a^\x20The\x20protocol\x20compiler\x20can\
8336     \x20output\x20a\x20FileDescriptorSet\x20containing\x20the\x20.proto\n\
8337     \x20files\x20it\x20parses.\n\n\n\n\x03\x04\0\x01\x12\x038\x08\x19\n\x0b\
8338     \n\x04\x04\0\x02\0\x12\x039\x02(\n\x0c\n\x05\x04\0\x02\0\x04\x12\x039\
8339     \x02\n\n\x0c\n\x05\x04\0\x02\0\x06\x12\x039\x0b\x1e\n\x0c\n\x05\x04\0\
8340     \x02\0\x01\x12\x039\x1f#\n\x0c\n\x05\x04\0\x02\0\x03\x12\x039&'\n/\n\x02\
8341     \x04\x01\x12\x04=\0Z\x01\x1a#\x20Describes\x20a\x20complete\x20.proto\
8342     \x20file.\n\n\n\n\x03\x04\x01\x01\x12\x03=\x08\x1b\n9\n\x04\x04\x01\x02\
8343     \0\x12\x03>\x02\x1b\",\x20file\x20name,\x20relative\x20to\x20root\x20of\
8344     \x20source\x20tree\n\n\x0c\n\x05\x04\x01\x02\0\x04\x12\x03>\x02\n\n\x0c\
8345     \n\x05\x04\x01\x02\0\x05\x12\x03>\x0b\x11\n\x0c\n\x05\x04\x01\x02\0\x01\
8346     \x12\x03>\x12\x16\n\x0c\n\x05\x04\x01\x02\0\x03\x12\x03>\x19\x1a\n*\n\
8347     \x04\x04\x01\x02\x01\x12\x03?\x02\x1e\"\x1d\x20e.g.\x20\"foo\",\x20\"foo\
8348     .bar\",\x20etc.\n\n\x0c\n\x05\x04\x01\x02\x01\x04\x12\x03?\x02\n\n\x0c\n\
8349     \x05\x04\x01\x02\x01\x05\x12\x03?\x0b\x11\n\x0c\n\x05\x04\x01\x02\x01\
8350     \x01\x12\x03?\x12\x19\n\x0c\n\x05\x04\x01\x02\x01\x03\x12\x03?\x1c\x1d\n\
8351     4\n\x04\x04\x01\x02\x02\x12\x03B\x02!\x1a'\x20Names\x20of\x20files\x20im\
8352     ported\x20by\x20this\x20file.\n\n\x0c\n\x05\x04\x01\x02\x02\x04\x12\x03B\
8353     \x02\n\n\x0c\n\x05\x04\x01\x02\x02\x05\x12\x03B\x0b\x11\n\x0c\n\x05\x04\
8354     \x01\x02\x02\x01\x12\x03B\x12\x1c\n\x0c\n\x05\x04\x01\x02\x02\x03\x12\
8355     \x03B\x1f\x20\nQ\n\x04\x04\x01\x02\x03\x12\x03D\x02(\x1aD\x20Indexes\x20\
8356     of\x20the\x20public\x20imported\x20files\x20in\x20the\x20dependency\x20l\
8357     ist\x20above.\n\n\x0c\n\x05\x04\x01\x02\x03\x04\x12\x03D\x02\n\n\x0c\n\
8358     \x05\x04\x01\x02\x03\x05\x12\x03D\x0b\x10\n\x0c\n\x05\x04\x01\x02\x03\
8359     \x01\x12\x03D\x11\"\n\x0c\n\x05\x04\x01\x02\x03\x03\x12\x03D%'\nz\n\x04\
8360     \x04\x01\x02\x04\x12\x03G\x02&\x1am\x20Indexes\x20of\x20the\x20weak\x20i\
8361     mported\x20files\x20in\x20the\x20dependency\x20list.\n\x20For\x20Google-\
8362     internal\x20migration\x20only.\x20Do\x20not\x20use.\n\n\x0c\n\x05\x04\
8363     \x01\x02\x04\x04\x12\x03G\x02\n\n\x0c\n\x05\x04\x01\x02\x04\x05\x12\x03G\
8364     \x0b\x10\n\x0c\n\x05\x04\x01\x02\x04\x01\x12\x03G\x11\x20\n\x0c\n\x05\
8365     \x04\x01\x02\x04\x03\x12\x03G#%\n6\n\x04\x04\x01\x02\x05\x12\x03J\x02,\
8366     \x1a)\x20All\x20top-level\x20definitions\x20in\x20this\x20file.\n\n\x0c\
8367     \n\x05\x04\x01\x02\x05\x04\x12\x03J\x02\n\n\x0c\n\x05\x04\x01\x02\x05\
8368     \x06\x12\x03J\x0b\x1a\n\x0c\n\x05\x04\x01\x02\x05\x01\x12\x03J\x1b'\n\
8369     \x0c\n\x05\x04\x01\x02\x05\x03\x12\x03J*+\n\x0b\n\x04\x04\x01\x02\x06\
8370     \x12\x03K\x02-\n\x0c\n\x05\x04\x01\x02\x06\x04\x12\x03K\x02\n\n\x0c\n\
8371     \x05\x04\x01\x02\x06\x06\x12\x03K\x0b\x1e\n\x0c\n\x05\x04\x01\x02\x06\
8372     \x01\x12\x03K\x1f(\n\x0c\n\x05\x04\x01\x02\x06\x03\x12\x03K+,\n\x0b\n\
8373     \x04\x04\x01\x02\x07\x12\x03L\x02.\n\x0c\n\x05\x04\x01\x02\x07\x04\x12\
8374     \x03L\x02\n\n\x0c\n\x05\x04\x01\x02\x07\x06\x12\x03L\x0b!\n\x0c\n\x05\
8375     \x04\x01\x02\x07\x01\x12\x03L\")\n\x0c\n\x05\x04\x01\x02\x07\x03\x12\x03\
8376     L,-\n\x0b\n\x04\x04\x01\x02\x08\x12\x03M\x02.\n\x0c\n\x05\x04\x01\x02\
8377     \x08\x04\x12\x03M\x02\n\n\x0c\n\x05\x04\x01\x02\x08\x06\x12\x03M\x0b\x1f\
8378     \n\x0c\n\x05\x04\x01\x02\x08\x01\x12\x03M\x20)\n\x0c\n\x05\x04\x01\x02\
8379     \x08\x03\x12\x03M,-\n\x0b\n\x04\x04\x01\x02\t\x12\x03O\x02#\n\x0c\n\x05\
8380     \x04\x01\x02\t\x04\x12\x03O\x02\n\n\x0c\n\x05\x04\x01\x02\t\x06\x12\x03O\
8381     \x0b\x16\n\x0c\n\x05\x04\x01\x02\t\x01\x12\x03O\x17\x1e\n\x0c\n\x05\x04\
8382     \x01\x02\t\x03\x12\x03O!\"\n\xf4\x01\n\x04\x04\x01\x02\n\x12\x03U\x02/\
8383     \x1a\xe6\x01\x20This\x20field\x20contains\x20optional\x20information\x20\
8384     about\x20the\x20original\x20source\x20code.\n\x20You\x20may\x20safely\
8385     \x20remove\x20this\x20entire\x20field\x20without\x20harming\x20runtime\n\
8386     \x20functionality\x20of\x20the\x20descriptors\x20--\x20the\x20informatio\
8387     n\x20is\x20needed\x20only\x20by\n\x20development\x20tools.\n\n\x0c\n\x05\
8388     \x04\x01\x02\n\x04\x12\x03U\x02\n\n\x0c\n\x05\x04\x01\x02\n\x06\x12\x03U\
8389     \x0b\x19\n\x0c\n\x05\x04\x01\x02\n\x01\x12\x03U\x1a*\n\x0c\n\x05\x04\x01\
8390     \x02\n\x03\x12\x03U-.\n]\n\x04\x04\x01\x02\x0b\x12\x03Y\x02\x1e\x1aP\x20\
8391     The\x20syntax\x20of\x20the\x20proto\x20file.\n\x20The\x20supported\x20va\
8392     lues\x20are\x20\"proto2\"\x20and\x20\"proto3\".\n\n\x0c\n\x05\x04\x01\
8393     \x02\x0b\x04\x12\x03Y\x02\n\n\x0c\n\x05\x04\x01\x02\x0b\x05\x12\x03Y\x0b\
8394     \x11\n\x0c\n\x05\x04\x01\x02\x0b\x01\x12\x03Y\x12\x18\n\x0c\n\x05\x04\
8395     \x01\x02\x0b\x03\x12\x03Y\x1b\x1d\n'\n\x02\x04\x02\x12\x04]\0}\x01\x1a\
8396     \x1b\x20Describes\x20a\x20message\x20type.\n\n\n\n\x03\x04\x02\x01\x12\
8397     \x03]\x08\x17\n\x0b\n\x04\x04\x02\x02\0\x12\x03^\x02\x1b\n\x0c\n\x05\x04\
8398     \x02\x02\0\x04\x12\x03^\x02\n\n\x0c\n\x05\x04\x02\x02\0\x05\x12\x03^\x0b\
8399     \x11\n\x0c\n\x05\x04\x02\x02\0\x01\x12\x03^\x12\x16\n\x0c\n\x05\x04\x02\
8400     \x02\0\x03\x12\x03^\x19\x1a\n\x0b\n\x04\x04\x02\x02\x01\x12\x03`\x02*\n\
8401     \x0c\n\x05\x04\x02\x02\x01\x04\x12\x03`\x02\n\n\x0c\n\x05\x04\x02\x02\
8402     \x01\x06\x12\x03`\x0b\x1f\n\x0c\n\x05\x04\x02\x02\x01\x01\x12\x03`\x20%\
8403     \n\x0c\n\x05\x04\x02\x02\x01\x03\x12\x03`()\n\x0b\n\x04\x04\x02\x02\x02\
8404     \x12\x03a\x02.\n\x0c\n\x05\x04\x02\x02\x02\x04\x12\x03a\x02\n\n\x0c\n\
8405     \x05\x04\x02\x02\x02\x06\x12\x03a\x0b\x1f\n\x0c\n\x05\x04\x02\x02\x02\
8406     \x01\x12\x03a\x20)\n\x0c\n\x05\x04\x02\x02\x02\x03\x12\x03a,-\n\x0b\n\
8407     \x04\x04\x02\x02\x03\x12\x03c\x02+\n\x0c\n\x05\x04\x02\x02\x03\x04\x12\
8408     \x03c\x02\n\n\x0c\n\x05\x04\x02\x02\x03\x06\x12\x03c\x0b\x1a\n\x0c\n\x05\
8409     \x04\x02\x02\x03\x01\x12\x03c\x1b&\n\x0c\n\x05\x04\x02\x02\x03\x03\x12\
8410     \x03c)*\n\x0b\n\x04\x04\x02\x02\x04\x12\x03d\x02-\n\x0c\n\x05\x04\x02\
8411     \x02\x04\x04\x12\x03d\x02\n\n\x0c\n\x05\x04\x02\x02\x04\x06\x12\x03d\x0b\
8412     \x1e\n\x0c\n\x05\x04\x02\x02\x04\x01\x12\x03d\x1f(\n\x0c\n\x05\x04\x02\
8413     \x02\x04\x03\x12\x03d+,\n\x0c\n\x04\x04\x02\x03\0\x12\x04f\x02k\x03\n\
8414     \x0c\n\x05\x04\x02\x03\0\x01\x12\x03f\n\x18\n\x1b\n\x06\x04\x02\x03\0\
8415     \x02\0\x12\x03g\x04\x1d\"\x0c\x20Inclusive.\n\n\x0e\n\x07\x04\x02\x03\0\
8416     \x02\0\x04\x12\x03g\x04\x0c\n\x0e\n\x07\x04\x02\x03\0\x02\0\x05\x12\x03g\
8417     \r\x12\n\x0e\n\x07\x04\x02\x03\0\x02\0\x01\x12\x03g\x13\x18\n\x0e\n\x07\
8418     \x04\x02\x03\0\x02\0\x03\x12\x03g\x1b\x1c\n\x1b\n\x06\x04\x02\x03\0\x02\
8419     \x01\x12\x03h\x04\x1b\"\x0c\x20Exclusive.\n\n\x0e\n\x07\x04\x02\x03\0\
8420     \x02\x01\x04\x12\x03h\x04\x0c\n\x0e\n\x07\x04\x02\x03\0\x02\x01\x05\x12\
8421     \x03h\r\x12\n\x0e\n\x07\x04\x02\x03\0\x02\x01\x01\x12\x03h\x13\x16\n\x0e\
8422     \n\x07\x04\x02\x03\0\x02\x01\x03\x12\x03h\x19\x1a\n\r\n\x06\x04\x02\x03\
8423     \0\x02\x02\x12\x03j\x04/\n\x0e\n\x07\x04\x02\x03\0\x02\x02\x04\x12\x03j\
8424     \x04\x0c\n\x0e\n\x07\x04\x02\x03\0\x02\x02\x06\x12\x03j\r\"\n\x0e\n\x07\
8425     \x04\x02\x03\0\x02\x02\x01\x12\x03j#*\n\x0e\n\x07\x04\x02\x03\0\x02\x02\
8426     \x03\x12\x03j-.\n\x0b\n\x04\x04\x02\x02\x05\x12\x03l\x02.\n\x0c\n\x05\
8427     \x04\x02\x02\x05\x04\x12\x03l\x02\n\n\x0c\n\x05\x04\x02\x02\x05\x06\x12\
8428     \x03l\x0b\x19\n\x0c\n\x05\x04\x02\x02\x05\x01\x12\x03l\x1a)\n\x0c\n\x05\
8429     \x04\x02\x02\x05\x03\x12\x03l,-\n\x0b\n\x04\x04\x02\x02\x06\x12\x03n\x02\
8430     /\n\x0c\n\x05\x04\x02\x02\x06\x04\x12\x03n\x02\n\n\x0c\n\x05\x04\x02\x02\
8431     \x06\x06\x12\x03n\x0b\x1f\n\x0c\n\x05\x04\x02\x02\x06\x01\x12\x03n\x20*\
8432     \n\x0c\n\x05\x04\x02\x02\x06\x03\x12\x03n-.\n\x0b\n\x04\x04\x02\x02\x07\
8433     \x12\x03p\x02&\n\x0c\n\x05\x04\x02\x02\x07\x04\x12\x03p\x02\n\n\x0c\n\
8434     \x05\x04\x02\x02\x07\x06\x12\x03p\x0b\x19\n\x0c\n\x05\x04\x02\x02\x07\
8435     \x01\x12\x03p\x1a!\n\x0c\n\x05\x04\x02\x02\x07\x03\x12\x03p$%\n\xaa\x01\
8436     \n\x04\x04\x02\x03\x01\x12\x04u\x02x\x03\x1a\x9b\x01\x20Range\x20of\x20r\
8437     eserved\x20tag\x20numbers.\x20Reserved\x20tag\x20numbers\x20may\x20not\
8438     \x20be\x20used\x20by\n\x20fields\x20or\x20extension\x20ranges\x20in\x20t\
8439     he\x20same\x20message.\x20Reserved\x20ranges\x20may\n\x20not\x20overlap.\
8440     \n\n\x0c\n\x05\x04\x02\x03\x01\x01\x12\x03u\n\x17\n\x1b\n\x06\x04\x02\
8441     \x03\x01\x02\0\x12\x03v\x04\x1d\"\x0c\x20Inclusive.\n\n\x0e\n\x07\x04\
8442     \x02\x03\x01\x02\0\x04\x12\x03v\x04\x0c\n\x0e\n\x07\x04\x02\x03\x01\x02\
8443     \0\x05\x12\x03v\r\x12\n\x0e\n\x07\x04\x02\x03\x01\x02\0\x01\x12\x03v\x13\
8444     \x18\n\x0e\n\x07\x04\x02\x03\x01\x02\0\x03\x12\x03v\x1b\x1c\n\x1b\n\x06\
8445     \x04\x02\x03\x01\x02\x01\x12\x03w\x04\x1b\"\x0c\x20Exclusive.\n\n\x0e\n\
8446     \x07\x04\x02\x03\x01\x02\x01\x04\x12\x03w\x04\x0c\n\x0e\n\x07\x04\x02\
8447     \x03\x01\x02\x01\x05\x12\x03w\r\x12\n\x0e\n\x07\x04\x02\x03\x01\x02\x01\
8448     \x01\x12\x03w\x13\x16\n\x0e\n\x07\x04\x02\x03\x01\x02\x01\x03\x12\x03w\
8449     \x19\x1a\n\x0b\n\x04\x04\x02\x02\x08\x12\x03y\x02,\n\x0c\n\x05\x04\x02\
8450     \x02\x08\x04\x12\x03y\x02\n\n\x0c\n\x05\x04\x02\x02\x08\x06\x12\x03y\x0b\
8451     \x18\n\x0c\n\x05\x04\x02\x02\x08\x01\x12\x03y\x19'\n\x0c\n\x05\x04\x02\
8452     \x02\x08\x03\x12\x03y*+\n\x82\x01\n\x04\x04\x02\x02\t\x12\x03|\x02%\x1au\
8453     \x20Reserved\x20field\x20names,\x20which\x20may\x20not\x20be\x20used\x20\
8454     by\x20fields\x20in\x20the\x20same\x20message.\n\x20A\x20given\x20name\
8455     \x20may\x20only\x20be\x20reserved\x20once.\n\n\x0c\n\x05\x04\x02\x02\t\
8456     \x04\x12\x03|\x02\n\n\x0c\n\x05\x04\x02\x02\t\x05\x12\x03|\x0b\x11\n\x0c\
8457     \n\x05\x04\x02\x02\t\x01\x12\x03|\x12\x1f\n\x0c\n\x05\x04\x02\x02\t\x03\
8458     \x12\x03|\"$\n\x0b\n\x02\x04\x03\x12\x05\x7f\0\x86\x01\x01\n\n\n\x03\x04\
8459     \x03\x01\x12\x03\x7f\x08\x1d\nO\n\x04\x04\x03\x02\0\x12\x04\x81\x01\x02:\
8460     \x1aA\x20The\x20parser\x20stores\x20options\x20it\x20doesn't\x20recogniz\
8461     e\x20here.\x20See\x20above.\n\n\r\n\x05\x04\x03\x02\0\x04\x12\x04\x81\
8462     \x01\x02\n\n\r\n\x05\x04\x03\x02\0\x06\x12\x04\x81\x01\x0b\x1e\n\r\n\x05\
8463     \x04\x03\x02\0\x01\x12\x04\x81\x01\x1f3\n\r\n\x05\x04\x03\x02\0\x03\x12\
8464     \x04\x81\x0169\nZ\n\x03\x04\x03\x05\x12\x04\x85\x01\x02\x19\x1aM\x20Clie\
8465     nts\x20can\x20define\x20custom\x20options\x20in\x20extensions\x20of\x20t\
8466     his\x20message.\x20See\x20above.\n\n\x0c\n\x04\x04\x03\x05\0\x12\x04\x85\
8467     \x01\r\x18\n\r\n\x05\x04\x03\x05\0\x01\x12\x04\x85\x01\r\x11\n\r\n\x05\
8468     \x04\x03\x05\0\x02\x12\x04\x85\x01\x15\x18\n3\n\x02\x04\x04\x12\x06\x89\
8469     \x01\0\xee\x01\x01\x1a%\x20Describes\x20a\x20field\x20within\x20a\x20mes\
8470     sage.\n\n\x0b\n\x03\x04\x04\x01\x12\x04\x89\x01\x08\x1c\n\x0e\n\x04\x04\
8471     \x04\x04\0\x12\x06\x8a\x01\x02\xa9\x01\x03\n\r\n\x05\x04\x04\x04\0\x01\
8472     \x12\x04\x8a\x01\x07\x0b\nS\n\x06\x04\x04\x04\0\x02\0\x12\x04\x8d\x01\
8473     \x04\x14\x1aC\x200\x20is\x20reserved\x20for\x20errors.\n\x20Order\x20is\
8474     \x20weird\x20for\x20historical\x20reasons.\n\n\x0f\n\x07\x04\x04\x04\0\
8475     \x02\0\x01\x12\x04\x8d\x01\x04\x0f\n\x0f\n\x07\x04\x04\x04\0\x02\0\x02\
8476     \x12\x04\x8d\x01\x12\x13\n\x0e\n\x06\x04\x04\x04\0\x02\x01\x12\x04\x8e\
8477     \x01\x04\x13\n\x0f\n\x07\x04\x04\x04\0\x02\x01\x01\x12\x04\x8e\x01\x04\
8478     \x0e\n\x0f\n\x07\x04\x04\x04\0\x02\x01\x02\x12\x04\x8e\x01\x11\x12\nw\n\
8479     \x06\x04\x04\x04\0\x02\x02\x12\x04\x91\x01\x04\x13\x1ag\x20Not\x20ZigZag\
8480     \x20encoded.\x20\x20Negative\x20numbers\x20take\x2010\x20bytes.\x20\x20U\
8481     se\x20TYPE_SINT64\x20if\n\x20negative\x20values\x20are\x20likely.\n\n\
8482     \x0f\n\x07\x04\x04\x04\0\x02\x02\x01\x12\x04\x91\x01\x04\x0e\n\x0f\n\x07\
8483     \x04\x04\x04\0\x02\x02\x02\x12\x04\x91\x01\x11\x12\n\x0e\n\x06\x04\x04\
8484     \x04\0\x02\x03\x12\x04\x92\x01\x04\x14\n\x0f\n\x07\x04\x04\x04\0\x02\x03\
8485     \x01\x12\x04\x92\x01\x04\x0f\n\x0f\n\x07\x04\x04\x04\0\x02\x03\x02\x12\
8486     \x04\x92\x01\x12\x13\nw\n\x06\x04\x04\x04\0\x02\x04\x12\x04\x95\x01\x04\
8487     \x13\x1ag\x20Not\x20ZigZag\x20encoded.\x20\x20Negative\x20numbers\x20tak\
8488     e\x2010\x20bytes.\x20\x20Use\x20TYPE_SINT32\x20if\n\x20negative\x20value\
8489     s\x20are\x20likely.\n\n\x0f\n\x07\x04\x04\x04\0\x02\x04\x01\x12\x04\x95\
8490     \x01\x04\x0e\n\x0f\n\x07\x04\x04\x04\0\x02\x04\x02\x12\x04\x95\x01\x11\
8491     \x12\n\x0e\n\x06\x04\x04\x04\0\x02\x05\x12\x04\x96\x01\x04\x15\n\x0f\n\
8492     \x07\x04\x04\x04\0\x02\x05\x01\x12\x04\x96\x01\x04\x10\n\x0f\n\x07\x04\
8493     \x04\x04\0\x02\x05\x02\x12\x04\x96\x01\x13\x14\n\x0e\n\x06\x04\x04\x04\0\
8494     \x02\x06\x12\x04\x97\x01\x04\x15\n\x0f\n\x07\x04\x04\x04\0\x02\x06\x01\
8495     \x12\x04\x97\x01\x04\x10\n\x0f\n\x07\x04\x04\x04\0\x02\x06\x02\x12\x04\
8496     \x97\x01\x13\x14\n\x0e\n\x06\x04\x04\x04\0\x02\x07\x12\x04\x98\x01\x04\
8497     \x12\n\x0f\n\x07\x04\x04\x04\0\x02\x07\x01\x12\x04\x98\x01\x04\r\n\x0f\n\
8498     \x07\x04\x04\x04\0\x02\x07\x02\x12\x04\x98\x01\x10\x11\n\x0e\n\x06\x04\
8499     \x04\x04\0\x02\x08\x12\x04\x99\x01\x04\x14\n\x0f\n\x07\x04\x04\x04\0\x02\
8500     \x08\x01\x12\x04\x99\x01\x04\x0f\n\x0f\n\x07\x04\x04\x04\0\x02\x08\x02\
8501     \x12\x04\x99\x01\x12\x13\n\xe2\x01\n\x06\x04\x04\x04\0\x02\t\x12\x04\x9e\
8502     \x01\x04\x14\x1a\xd1\x01\x20Tag-delimited\x20aggregate.\n\x20Group\x20ty\
8503     pe\x20is\x20deprecated\x20and\x20not\x20supported\x20in\x20proto3.\x20Ho\
8504     wever,\x20Proto3\n\x20implementations\x20should\x20still\x20be\x20able\
8505     \x20to\x20parse\x20the\x20group\x20wire\x20format\x20and\n\x20treat\x20g\
8506     roup\x20fields\x20as\x20unknown\x20fields.\n\n\x0f\n\x07\x04\x04\x04\0\
8507     \x02\t\x01\x12\x04\x9e\x01\x04\x0e\n\x0f\n\x07\x04\x04\x04\0\x02\t\x02\
8508     \x12\x04\x9e\x01\x11\x13\n-\n\x06\x04\x04\x04\0\x02\n\x12\x04\x9f\x01\
8509     \x04\x16\"\x1d\x20Length-delimited\x20aggregate.\n\n\x0f\n\x07\x04\x04\
8510     \x04\0\x02\n\x01\x12\x04\x9f\x01\x04\x10\n\x0f\n\x07\x04\x04\x04\0\x02\n\
8511     \x02\x12\x04\x9f\x01\x13\x15\n#\n\x06\x04\x04\x04\0\x02\x0b\x12\x04\xa2\
8512     \x01\x04\x14\x1a\x13\x20New\x20in\x20version\x202.\n\n\x0f\n\x07\x04\x04\
8513     \x04\0\x02\x0b\x01\x12\x04\xa2\x01\x04\x0e\n\x0f\n\x07\x04\x04\x04\0\x02\
8514     \x0b\x02\x12\x04\xa2\x01\x11\x13\n\x0e\n\x06\x04\x04\x04\0\x02\x0c\x12\
8515     \x04\xa3\x01\x04\x15\n\x0f\n\x07\x04\x04\x04\0\x02\x0c\x01\x12\x04\xa3\
8516     \x01\x04\x0f\n\x0f\n\x07\x04\x04\x04\0\x02\x0c\x02\x12\x04\xa3\x01\x12\
8517     \x14\n\x0e\n\x06\x04\x04\x04\0\x02\r\x12\x04\xa4\x01\x04\x13\n\x0f\n\x07\
8518     \x04\x04\x04\0\x02\r\x01\x12\x04\xa4\x01\x04\r\n\x0f\n\x07\x04\x04\x04\0\
8519     \x02\r\x02\x12\x04\xa4\x01\x10\x12\n\x0e\n\x06\x04\x04\x04\0\x02\x0e\x12\
8520     \x04\xa5\x01\x04\x17\n\x0f\n\x07\x04\x04\x04\0\x02\x0e\x01\x12\x04\xa5\
8521     \x01\x04\x11\n\x0f\n\x07\x04\x04\x04\0\x02\x0e\x02\x12\x04\xa5\x01\x14\
8522     \x16\n\x0e\n\x06\x04\x04\x04\0\x02\x0f\x12\x04\xa6\x01\x04\x17\n\x0f\n\
8523     \x07\x04\x04\x04\0\x02\x0f\x01\x12\x04\xa6\x01\x04\x11\n\x0f\n\x07\x04\
8524     \x04\x04\0\x02\x0f\x02\x12\x04\xa6\x01\x14\x16\n'\n\x06\x04\x04\x04\0\
8525     \x02\x10\x12\x04\xa7\x01\x04\x15\"\x17\x20Uses\x20ZigZag\x20encoding.\n\
8526     \n\x0f\n\x07\x04\x04\x04\0\x02\x10\x01\x12\x04\xa7\x01\x04\x0f\n\x0f\n\
8527     \x07\x04\x04\x04\0\x02\x10\x02\x12\x04\xa7\x01\x12\x14\n'\n\x06\x04\x04\
8528     \x04\0\x02\x11\x12\x04\xa8\x01\x04\x15\"\x17\x20Uses\x20ZigZag\x20encodi\
8529     ng.\n\n\x0f\n\x07\x04\x04\x04\0\x02\x11\x01\x12\x04\xa8\x01\x04\x0f\n\
8530     \x0f\n\x07\x04\x04\x04\0\x02\x11\x02\x12\x04\xa8\x01\x12\x14\n\x0e\n\x04\
8531     \x04\x04\x04\x01\x12\x06\xab\x01\x02\xb0\x01\x03\n\r\n\x05\x04\x04\x04\
8532     \x01\x01\x12\x04\xab\x01\x07\x0c\n*\n\x06\x04\x04\x04\x01\x02\0\x12\x04\
8533     \xad\x01\x04\x17\x1a\x1a\x200\x20is\x20reserved\x20for\x20errors\n\n\x0f\
8534     \n\x07\x04\x04\x04\x01\x02\0\x01\x12\x04\xad\x01\x04\x12\n\x0f\n\x07\x04\
8535     \x04\x04\x01\x02\0\x02\x12\x04\xad\x01\x15\x16\n\x0e\n\x06\x04\x04\x04\
8536     \x01\x02\x01\x12\x04\xae\x01\x04\x17\n\x0f\n\x07\x04\x04\x04\x01\x02\x01\
8537     \x01\x12\x04\xae\x01\x04\x12\n\x0f\n\x07\x04\x04\x04\x01\x02\x01\x02\x12\
8538     \x04\xae\x01\x15\x16\n\x0e\n\x06\x04\x04\x04\x01\x02\x02\x12\x04\xaf\x01\
8539     \x04\x17\n\x0f\n\x07\x04\x04\x04\x01\x02\x02\x01\x12\x04\xaf\x01\x04\x12\
8540     \n\x0f\n\x07\x04\x04\x04\x01\x02\x02\x02\x12\x04\xaf\x01\x15\x16\n\x0c\n\
8541     \x04\x04\x04\x02\0\x12\x04\xb2\x01\x02\x1b\n\r\n\x05\x04\x04\x02\0\x04\
8542     \x12\x04\xb2\x01\x02\n\n\r\n\x05\x04\x04\x02\0\x05\x12\x04\xb2\x01\x0b\
8543     \x11\n\r\n\x05\x04\x04\x02\0\x01\x12\x04\xb2\x01\x12\x16\n\r\n\x05\x04\
8544     \x04\x02\0\x03\x12\x04\xb2\x01\x19\x1a\n\x0c\n\x04\x04\x04\x02\x01\x12\
8545     \x04\xb3\x01\x02\x1c\n\r\n\x05\x04\x04\x02\x01\x04\x12\x04\xb3\x01\x02\n\
8546     \n\r\n\x05\x04\x04\x02\x01\x05\x12\x04\xb3\x01\x0b\x10\n\r\n\x05\x04\x04\
8547     \x02\x01\x01\x12\x04\xb3\x01\x11\x17\n\r\n\x05\x04\x04\x02\x01\x03\x12\
8548     \x04\xb3\x01\x1a\x1b\n\x0c\n\x04\x04\x04\x02\x02\x12\x04\xb4\x01\x02\x1b\
8549     \n\r\n\x05\x04\x04\x02\x02\x04\x12\x04\xb4\x01\x02\n\n\r\n\x05\x04\x04\
8550     \x02\x02\x06\x12\x04\xb4\x01\x0b\x10\n\r\n\x05\x04\x04\x02\x02\x01\x12\
8551     \x04\xb4\x01\x11\x16\n\r\n\x05\x04\x04\x02\x02\x03\x12\x04\xb4\x01\x19\
8552     \x1a\n\x9c\x01\n\x04\x04\x04\x02\x03\x12\x04\xb8\x01\x02\x19\x1a\x8d\x01\
8553     \x20If\x20type_name\x20is\x20set,\x20this\x20need\x20not\x20be\x20set.\
8554     \x20\x20If\x20both\x20this\x20and\x20type_name\n\x20are\x20set,\x20this\
8555     \x20must\x20be\x20one\x20of\x20TYPE_ENUM,\x20TYPE_MESSAGE\x20or\x20TYPE_\
8556     GROUP.\n\n\r\n\x05\x04\x04\x02\x03\x04\x12\x04\xb8\x01\x02\n\n\r\n\x05\
8557     \x04\x04\x02\x03\x06\x12\x04\xb8\x01\x0b\x0f\n\r\n\x05\x04\x04\x02\x03\
8558     \x01\x12\x04\xb8\x01\x10\x14\n\r\n\x05\x04\x04\x02\x03\x03\x12\x04\xb8\
8559     \x01\x17\x18\n\xb7\x02\n\x04\x04\x04\x02\x04\x12\x04\xbf\x01\x02\x20\x1a\
8560     \xa8\x02\x20For\x20message\x20and\x20enum\x20types,\x20this\x20is\x20the\
8561     \x20name\x20of\x20the\x20type.\x20\x20If\x20the\x20name\n\x20starts\x20w\
8562     ith\x20a\x20'.',\x20it\x20is\x20fully-qualified.\x20\x20Otherwise,\x20C+\
8563     +-like\x20scoping\n\x20rules\x20are\x20used\x20to\x20find\x20the\x20type\
8564     \x20(i.e.\x20first\x20the\x20nested\x20types\x20within\x20this\n\x20mess\
8565     age\x20are\x20searched,\x20then\x20within\x20the\x20parent,\x20on\x20up\
8566     \x20to\x20the\x20root\n\x20namespace).\n\n\r\n\x05\x04\x04\x02\x04\x04\
8567     \x12\x04\xbf\x01\x02\n\n\r\n\x05\x04\x04\x02\x04\x05\x12\x04\xbf\x01\x0b\
8568     \x11\n\r\n\x05\x04\x04\x02\x04\x01\x12\x04\xbf\x01\x12\x1b\n\r\n\x05\x04\
8569     \x04\x02\x04\x03\x12\x04\xbf\x01\x1e\x1f\n~\n\x04\x04\x04\x02\x05\x12\
8570     \x04\xc3\x01\x02\x1f\x1ap\x20For\x20extensions,\x20this\x20is\x20the\x20\
8571     name\x20of\x20the\x20type\x20being\x20extended.\x20\x20It\x20is\n\x20res\
8572     olved\x20in\x20the\x20same\x20manner\x20as\x20type_name.\n\n\r\n\x05\x04\
8573     \x04\x02\x05\x04\x12\x04\xc3\x01\x02\n\n\r\n\x05\x04\x04\x02\x05\x05\x12\
8574     \x04\xc3\x01\x0b\x11\n\r\n\x05\x04\x04\x02\x05\x01\x12\x04\xc3\x01\x12\
8575     \x1a\n\r\n\x05\x04\x04\x02\x05\x03\x12\x04\xc3\x01\x1d\x1e\n\xb1\x02\n\
8576     \x04\x04\x04\x02\x06\x12\x04\xca\x01\x02$\x1a\xa2\x02\x20For\x20numeric\
8577     \x20types,\x20contains\x20the\x20original\x20text\x20representation\x20o\
8578     f\x20the\x20value.\n\x20For\x20booleans,\x20\"true\"\x20or\x20\"false\".\
8579     \n\x20For\x20strings,\x20contains\x20the\x20default\x20text\x20contents\
8580     \x20(not\x20escaped\x20in\x20any\x20way).\n\x20For\x20bytes,\x20contains\
8581     \x20the\x20C\x20escaped\x20value.\x20\x20All\x20bytes\x20>=\x20128\x20ar\
8582     e\x20escaped.\n\x20TODO(kenton):\x20\x20Base-64\x20encode?\n\n\r\n\x05\
8583     \x04\x04\x02\x06\x04\x12\x04\xca\x01\x02\n\n\r\n\x05\x04\x04\x02\x06\x05\
8584     \x12\x04\xca\x01\x0b\x11\n\r\n\x05\x04\x04\x02\x06\x01\x12\x04\xca\x01\
8585     \x12\x1f\n\r\n\x05\x04\x04\x02\x06\x03\x12\x04\xca\x01\"#\n\x84\x01\n\
8586     \x04\x04\x04\x02\x07\x12\x04\xce\x01\x02!\x1av\x20If\x20set,\x20gives\
8587     \x20the\x20index\x20of\x20a\x20oneof\x20in\x20the\x20containing\x20type'\
8588     s\x20oneof_decl\n\x20list.\x20\x20This\x20field\x20is\x20a\x20member\x20\
8589     of\x20that\x20oneof.\n\n\r\n\x05\x04\x04\x02\x07\x04\x12\x04\xce\x01\x02\
8590     \n\n\r\n\x05\x04\x04\x02\x07\x05\x12\x04\xce\x01\x0b\x10\n\r\n\x05\x04\
8591     \x04\x02\x07\x01\x12\x04\xce\x01\x11\x1c\n\r\n\x05\x04\x04\x02\x07\x03\
8592     \x12\x04\xce\x01\x1f\x20\n\xfa\x01\n\x04\x04\x04\x02\x08\x12\x04\xd4\x01\
8593     \x02!\x1a\xeb\x01\x20JSON\x20name\x20of\x20this\x20field.\x20The\x20valu\
8594     e\x20is\x20set\x20by\x20protocol\x20compiler.\x20If\x20the\n\x20user\x20\
8595     has\x20set\x20a\x20\"json_name\"\x20option\x20on\x20this\x20field,\x20th\
8596     at\x20option's\x20value\n\x20will\x20be\x20used.\x20Otherwise,\x20it's\
8597     \x20deduced\x20from\x20the\x20field's\x20name\x20by\x20converting\n\x20i\
8598     t\x20to\x20camelCase.\n\n\r\n\x05\x04\x04\x02\x08\x04\x12\x04\xd4\x01\
8599     \x02\n\n\r\n\x05\x04\x04\x02\x08\x05\x12\x04\xd4\x01\x0b\x11\n\r\n\x05\
8600     \x04\x04\x02\x08\x01\x12\x04\xd4\x01\x12\x1b\n\r\n\x05\x04\x04\x02\x08\
8601     \x03\x12\x04\xd4\x01\x1e\x20\n\x0c\n\x04\x04\x04\x02\t\x12\x04\xd6\x01\
8602     \x02$\n\r\n\x05\x04\x04\x02\t\x04\x12\x04\xd6\x01\x02\n\n\r\n\x05\x04\
8603     \x04\x02\t\x06\x12\x04\xd6\x01\x0b\x17\n\r\n\x05\x04\x04\x02\t\x01\x12\
8604     \x04\xd6\x01\x18\x1f\n\r\n\x05\x04\x04\x02\t\x03\x12\x04\xd6\x01\"#\n\
8605     \xb3\t\n\x04\x04\x04\x02\n\x12\x04\xed\x01\x02%\x1a\xa4\t\x20If\x20true,\
8606     \x20this\x20is\x20a\x20proto3\x20\"optional\".\x20When\x20a\x20proto3\
8607     \x20field\x20is\x20optional,\x20it\n\x20tracks\x20presence\x20regardless\
8608     \x20of\x20field\x20type.\n\n\x20When\x20proto3_optional\x20is\x20true,\
8609     \x20this\x20field\x20must\x20be\x20belong\x20to\x20a\x20oneof\x20to\n\
8610     \x20signal\x20to\x20old\x20proto3\x20clients\x20that\x20presence\x20is\
8611     \x20tracked\x20for\x20this\x20field.\x20This\n\x20oneof\x20is\x20known\
8612     \x20as\x20a\x20\"synthetic\"\x20oneof,\x20and\x20this\x20field\x20must\
8613     \x20be\x20its\x20sole\n\x20member\x20(each\x20proto3\x20optional\x20fiel\
8614     d\x20gets\x20its\x20own\x20synthetic\x20oneof).\x20Synthetic\n\x20oneofs\
8615     \x20exist\x20in\x20the\x20descriptor\x20only,\x20and\x20do\x20not\x20gen\
8616     erate\x20any\x20API.\x20Synthetic\n\x20oneofs\x20must\x20be\x20ordered\
8617     \x20after\x20all\x20\"real\"\x20oneofs.\n\n\x20For\x20message\x20fields,\
8618     \x20proto3_optional\x20doesn't\x20create\x20any\x20semantic\x20change,\n\
8619     \x20since\x20non-repeated\x20message\x20fields\x20always\x20track\x20pre\
8620     sence.\x20However\x20it\x20still\n\x20indicates\x20the\x20semantic\x20de\
8621     tail\x20of\x20whether\x20the\x20user\x20wrote\x20\"optional\"\x20or\x20n\
8622     ot.\n\x20This\x20can\x20be\x20useful\x20for\x20round-tripping\x20the\x20\
8623     .proto\x20file.\x20For\x20consistency\x20we\n\x20give\x20message\x20fiel\
8624     ds\x20a\x20synthetic\x20oneof\x20also,\x20even\x20though\x20it\x20is\x20\
8625     not\x20required\n\x20to\x20track\x20presence.\x20This\x20is\x20especiall\
8626     y\x20important\x20because\x20the\x20parser\x20can't\n\x20tell\x20if\x20a\
8627     \x20field\x20is\x20a\x20message\x20or\x20an\x20enum,\x20so\x20it\x20must\
8628     \x20always\x20create\x20a\n\x20synthetic\x20oneof.\n\n\x20Proto2\x20opti\
8629     onal\x20fields\x20do\x20not\x20set\x20this\x20flag,\x20because\x20they\
8630     \x20already\x20indicate\n\x20optional\x20with\x20`LABEL_OPTIONAL`.\n\n\r\
8631     \n\x05\x04\x04\x02\n\x04\x12\x04\xed\x01\x02\n\n\r\n\x05\x04\x04\x02\n\
8632     \x05\x12\x04\xed\x01\x0b\x0f\n\r\n\x05\x04\x04\x02\n\x01\x12\x04\xed\x01\
8633     \x10\x1f\n\r\n\x05\x04\x04\x02\n\x03\x12\x04\xed\x01\"$\n\"\n\x02\x04\
8634     \x05\x12\x06\xf1\x01\0\xf4\x01\x01\x1a\x14\x20Describes\x20a\x20oneof.\n\
8635     \n\x0b\n\x03\x04\x05\x01\x12\x04\xf1\x01\x08\x1c\n\x0c\n\x04\x04\x05\x02\
8636     \0\x12\x04\xf2\x01\x02\x1b\n\r\n\x05\x04\x05\x02\0\x04\x12\x04\xf2\x01\
8637     \x02\n\n\r\n\x05\x04\x05\x02\0\x05\x12\x04\xf2\x01\x0b\x11\n\r\n\x05\x04\
8638     \x05\x02\0\x01\x12\x04\xf2\x01\x12\x16\n\r\n\x05\x04\x05\x02\0\x03\x12\
8639     \x04\xf2\x01\x19\x1a\n\x0c\n\x04\x04\x05\x02\x01\x12\x04\xf3\x01\x02$\n\
8640     \r\n\x05\x04\x05\x02\x01\x04\x12\x04\xf3\x01\x02\n\n\r\n\x05\x04\x05\x02\
8641     \x01\x06\x12\x04\xf3\x01\x0b\x17\n\r\n\x05\x04\x05\x02\x01\x01\x12\x04\
8642     \xf3\x01\x18\x1f\n\r\n\x05\x04\x05\x02\x01\x03\x12\x04\xf3\x01\"#\n'\n\
8643     \x02\x04\x06\x12\x06\xf7\x01\0\x91\x02\x01\x1a\x19\x20Describes\x20an\
8644     \x20enum\x20type.\n\n\x0b\n\x03\x04\x06\x01\x12\x04\xf7\x01\x08\x1b\n\
8645     \x0c\n\x04\x04\x06\x02\0\x12\x04\xf8\x01\x02\x1b\n\r\n\x05\x04\x06\x02\0\
8646     \x04\x12\x04\xf8\x01\x02\n\n\r\n\x05\x04\x06\x02\0\x05\x12\x04\xf8\x01\
8647     \x0b\x11\n\r\n\x05\x04\x06\x02\0\x01\x12\x04\xf8\x01\x12\x16\n\r\n\x05\
8648     \x04\x06\x02\0\x03\x12\x04\xf8\x01\x19\x1a\n\x0c\n\x04\x04\x06\x02\x01\
8649     \x12\x04\xfa\x01\x02.\n\r\n\x05\x04\x06\x02\x01\x04\x12\x04\xfa\x01\x02\
8650     \n\n\r\n\x05\x04\x06\x02\x01\x06\x12\x04\xfa\x01\x0b#\n\r\n\x05\x04\x06\
8651     \x02\x01\x01\x12\x04\xfa\x01$)\n\r\n\x05\x04\x06\x02\x01\x03\x12\x04\xfa\
8652     \x01,-\n\x0c\n\x04\x04\x06\x02\x02\x12\x04\xfc\x01\x02#\n\r\n\x05\x04\
8653     \x06\x02\x02\x04\x12\x04\xfc\x01\x02\n\n\r\n\x05\x04\x06\x02\x02\x06\x12\
8654     \x04\xfc\x01\x0b\x16\n\r\n\x05\x04\x06\x02\x02\x01\x12\x04\xfc\x01\x17\
8655     \x1e\n\r\n\x05\x04\x06\x02\x02\x03\x12\x04\xfc\x01!\"\n\xaf\x02\n\x04\
8656     \x04\x06\x03\0\x12\x06\x84\x02\x02\x87\x02\x03\x1a\x9e\x02\x20Range\x20o\
8657     f\x20reserved\x20numeric\x20values.\x20Reserved\x20values\x20may\x20not\
8658     \x20be\x20used\x20by\n\x20entries\x20in\x20the\x20same\x20enum.\x20Reser\
8659     ved\x20ranges\x20may\x20not\x20overlap.\n\n\x20Note\x20that\x20this\x20i\
8660     s\x20distinct\x20from\x20DescriptorProto.ReservedRange\x20in\x20that\x20\
8661     it\n\x20is\x20inclusive\x20such\x20that\x20it\x20can\x20appropriately\
8662     \x20represent\x20the\x20entire\x20int32\n\x20domain.\n\n\r\n\x05\x04\x06\
8663     \x03\0\x01\x12\x04\x84\x02\n\x1b\n\x1c\n\x06\x04\x06\x03\0\x02\0\x12\x04\
8664     \x85\x02\x04\x1d\"\x0c\x20Inclusive.\n\n\x0f\n\x07\x04\x06\x03\0\x02\0\
8665     \x04\x12\x04\x85\x02\x04\x0c\n\x0f\n\x07\x04\x06\x03\0\x02\0\x05\x12\x04\
8666     \x85\x02\r\x12\n\x0f\n\x07\x04\x06\x03\0\x02\0\x01\x12\x04\x85\x02\x13\
8667     \x18\n\x0f\n\x07\x04\x06\x03\0\x02\0\x03\x12\x04\x85\x02\x1b\x1c\n\x1c\n\
8668     \x06\x04\x06\x03\0\x02\x01\x12\x04\x86\x02\x04\x1b\"\x0c\x20Inclusive.\n\
8669     \n\x0f\n\x07\x04\x06\x03\0\x02\x01\x04\x12\x04\x86\x02\x04\x0c\n\x0f\n\
8670     \x07\x04\x06\x03\0\x02\x01\x05\x12\x04\x86\x02\r\x12\n\x0f\n\x07\x04\x06\
8671     \x03\0\x02\x01\x01\x12\x04\x86\x02\x13\x16\n\x0f\n\x07\x04\x06\x03\0\x02\
8672     \x01\x03\x12\x04\x86\x02\x19\x1a\n\xaa\x01\n\x04\x04\x06\x02\x03\x12\x04\
8673     \x8c\x02\x020\x1a\x9b\x01\x20Range\x20of\x20reserved\x20numeric\x20value\
8674     s.\x20Reserved\x20numeric\x20values\x20may\x20not\x20be\x20used\n\x20by\
8675     \x20enum\x20values\x20in\x20the\x20same\x20enum\x20declaration.\x20Reser\
8676     ved\x20ranges\x20may\x20not\n\x20overlap.\n\n\r\n\x05\x04\x06\x02\x03\
8677     \x04\x12\x04\x8c\x02\x02\n\n\r\n\x05\x04\x06\x02\x03\x06\x12\x04\x8c\x02\
8678     \x0b\x1c\n\r\n\x05\x04\x06\x02\x03\x01\x12\x04\x8c\x02\x1d+\n\r\n\x05\
8679     \x04\x06\x02\x03\x03\x12\x04\x8c\x02./\nl\n\x04\x04\x06\x02\x04\x12\x04\
8680     \x90\x02\x02$\x1a^\x20Reserved\x20enum\x20value\x20names,\x20which\x20ma\
8681     y\x20not\x20be\x20reused.\x20A\x20given\x20name\x20may\x20only\n\x20be\
8682     \x20reserved\x20once.\n\n\r\n\x05\x04\x06\x02\x04\x04\x12\x04\x90\x02\
8683     \x02\n\n\r\n\x05\x04\x06\x02\x04\x05\x12\x04\x90\x02\x0b\x11\n\r\n\x05\
8684     \x04\x06\x02\x04\x01\x12\x04\x90\x02\x12\x1f\n\r\n\x05\x04\x06\x02\x04\
8685     \x03\x12\x04\x90\x02\"#\n1\n\x02\x04\x07\x12\x06\x94\x02\0\x99\x02\x01\
8686     \x1a#\x20Describes\x20a\x20value\x20within\x20an\x20enum.\n\n\x0b\n\x03\
8687     \x04\x07\x01\x12\x04\x94\x02\x08\x20\n\x0c\n\x04\x04\x07\x02\0\x12\x04\
8688     \x95\x02\x02\x1b\n\r\n\x05\x04\x07\x02\0\x04\x12\x04\x95\x02\x02\n\n\r\n\
8689     \x05\x04\x07\x02\0\x05\x12\x04\x95\x02\x0b\x11\n\r\n\x05\x04\x07\x02\0\
8690     \x01\x12\x04\x95\x02\x12\x16\n\r\n\x05\x04\x07\x02\0\x03\x12\x04\x95\x02\
8691     \x19\x1a\n\x0c\n\x04\x04\x07\x02\x01\x12\x04\x96\x02\x02\x1c\n\r\n\x05\
8692     \x04\x07\x02\x01\x04\x12\x04\x96\x02\x02\n\n\r\n\x05\x04\x07\x02\x01\x05\
8693     \x12\x04\x96\x02\x0b\x10\n\r\n\x05\x04\x07\x02\x01\x01\x12\x04\x96\x02\
8694     \x11\x17\n\r\n\x05\x04\x07\x02\x01\x03\x12\x04\x96\x02\x1a\x1b\n\x0c\n\
8695     \x04\x04\x07\x02\x02\x12\x04\x98\x02\x02(\n\r\n\x05\x04\x07\x02\x02\x04\
8696     \x12\x04\x98\x02\x02\n\n\r\n\x05\x04\x07\x02\x02\x06\x12\x04\x98\x02\x0b\
8697     \x1b\n\r\n\x05\x04\x07\x02\x02\x01\x12\x04\x98\x02\x1c#\n\r\n\x05\x04\
8698     \x07\x02\x02\x03\x12\x04\x98\x02&'\n$\n\x02\x04\x08\x12\x06\x9c\x02\0\
8699     \xa1\x02\x01\x1a\x16\x20Describes\x20a\x20service.\n\n\x0b\n\x03\x04\x08\
8700     \x01\x12\x04\x9c\x02\x08\x1e\n\x0c\n\x04\x04\x08\x02\0\x12\x04\x9d\x02\
8701     \x02\x1b\n\r\n\x05\x04\x08\x02\0\x04\x12\x04\x9d\x02\x02\n\n\r\n\x05\x04\
8702     \x08\x02\0\x05\x12\x04\x9d\x02\x0b\x11\n\r\n\x05\x04\x08\x02\0\x01\x12\
8703     \x04\x9d\x02\x12\x16\n\r\n\x05\x04\x08\x02\0\x03\x12\x04\x9d\x02\x19\x1a\
8704     \n\x0c\n\x04\x04\x08\x02\x01\x12\x04\x9e\x02\x02,\n\r\n\x05\x04\x08\x02\
8705     \x01\x04\x12\x04\x9e\x02\x02\n\n\r\n\x05\x04\x08\x02\x01\x06\x12\x04\x9e\
8706     \x02\x0b\x20\n\r\n\x05\x04\x08\x02\x01\x01\x12\x04\x9e\x02!'\n\r\n\x05\
8707     \x04\x08\x02\x01\x03\x12\x04\x9e\x02*+\n\x0c\n\x04\x04\x08\x02\x02\x12\
8708     \x04\xa0\x02\x02&\n\r\n\x05\x04\x08\x02\x02\x04\x12\x04\xa0\x02\x02\n\n\
8709     \r\n\x05\x04\x08\x02\x02\x06\x12\x04\xa0\x02\x0b\x19\n\r\n\x05\x04\x08\
8710     \x02\x02\x01\x12\x04\xa0\x02\x1a!\n\r\n\x05\x04\x08\x02\x02\x03\x12\x04\
8711     \xa0\x02$%\n0\n\x02\x04\t\x12\x06\xa4\x02\0\xb2\x02\x01\x1a\"\x20Describ\
8712     es\x20a\x20method\x20of\x20a\x20service.\n\n\x0b\n\x03\x04\t\x01\x12\x04\
8713     \xa4\x02\x08\x1d\n\x0c\n\x04\x04\t\x02\0\x12\x04\xa5\x02\x02\x1b\n\r\n\
8714     \x05\x04\t\x02\0\x04\x12\x04\xa5\x02\x02\n\n\r\n\x05\x04\t\x02\0\x05\x12\
8715     \x04\xa5\x02\x0b\x11\n\r\n\x05\x04\t\x02\0\x01\x12\x04\xa5\x02\x12\x16\n\
8716     \r\n\x05\x04\t\x02\0\x03\x12\x04\xa5\x02\x19\x1a\n\x97\x01\n\x04\x04\t\
8717     \x02\x01\x12\x04\xa9\x02\x02!\x1a\x88\x01\x20Input\x20and\x20output\x20t\
8718     ype\x20names.\x20\x20These\x20are\x20resolved\x20in\x20the\x20same\x20wa\
8719     y\x20as\n\x20FieldDescriptorProto.type_name,\x20but\x20must\x20refer\x20\
8720     to\x20a\x20message\x20type.\n\n\r\n\x05\x04\t\x02\x01\x04\x12\x04\xa9\
8721     \x02\x02\n\n\r\n\x05\x04\t\x02\x01\x05\x12\x04\xa9\x02\x0b\x11\n\r\n\x05\
8722     \x04\t\x02\x01\x01\x12\x04\xa9\x02\x12\x1c\n\r\n\x05\x04\t\x02\x01\x03\
8723     \x12\x04\xa9\x02\x1f\x20\n\x0c\n\x04\x04\t\x02\x02\x12\x04\xaa\x02\x02\"\
8724     \n\r\n\x05\x04\t\x02\x02\x04\x12\x04\xaa\x02\x02\n\n\r\n\x05\x04\t\x02\
8725     \x02\x05\x12\x04\xaa\x02\x0b\x11\n\r\n\x05\x04\t\x02\x02\x01\x12\x04\xaa\
8726     \x02\x12\x1d\n\r\n\x05\x04\t\x02\x02\x03\x12\x04\xaa\x02\x20!\n\x0c\n\
8727     \x04\x04\t\x02\x03\x12\x04\xac\x02\x02%\n\r\n\x05\x04\t\x02\x03\x04\x12\
8728     \x04\xac\x02\x02\n\n\r\n\x05\x04\t\x02\x03\x06\x12\x04\xac\x02\x0b\x18\n\
8729     \r\n\x05\x04\t\x02\x03\x01\x12\x04\xac\x02\x19\x20\n\r\n\x05\x04\t\x02\
8730     \x03\x03\x12\x04\xac\x02#$\nE\n\x04\x04\t\x02\x04\x12\x04\xaf\x02\x027\
8731     \x1a7\x20Identifies\x20if\x20client\x20streams\x20multiple\x20client\x20\
8732     messages\n\n\r\n\x05\x04\t\x02\x04\x04\x12\x04\xaf\x02\x02\n\n\r\n\x05\
8733     \x04\t\x02\x04\x05\x12\x04\xaf\x02\x0b\x0f\n\r\n\x05\x04\t\x02\x04\x01\
8734     \x12\x04\xaf\x02\x10\x20\n\r\n\x05\x04\t\x02\x04\x03\x12\x04\xaf\x02#$\n\
8735     \r\n\x05\x04\t\x02\x04\x08\x12\x04\xaf\x02%6\n\r\n\x05\x04\t\x02\x04\x07\
8736     \x12\x04\xaf\x0205\nE\n\x04\x04\t\x02\x05\x12\x04\xb1\x02\x027\x1a7\x20I\
8737     dentifies\x20if\x20server\x20streams\x20multiple\x20server\x20messages\n\
8738     \n\r\n\x05\x04\t\x02\x05\x04\x12\x04\xb1\x02\x02\n\n\r\n\x05\x04\t\x02\
8739     \x05\x05\x12\x04\xb1\x02\x0b\x0f\n\r\n\x05\x04\t\x02\x05\x01\x12\x04\xb1\
8740     \x02\x10\x20\n\r\n\x05\x04\t\x02\x05\x03\x12\x04\xb1\x02#$\n\r\n\x05\x04\
8741     \t\x02\x05\x08\x12\x04\xb1\x02%6\n\r\n\x05\x04\t\x02\x05\x07\x12\x04\xb1\
8742     \x0205\n\xaf\x0e\n\x02\x04\n\x12\x06\xd5\x02\0\xd0\x03\x012N\x20========\
8743     ===========================================================\n\x20Options\
8744     \n2\xd0\r\x20Each\x20of\x20the\x20definitions\x20above\x20may\x20have\
8745     \x20\"options\"\x20attached.\x20\x20These\x20are\n\x20just\x20annotation\
8746     s\x20which\x20may\x20cause\x20code\x20to\x20be\x20generated\x20slightly\
8747     \x20differently\n\x20or\x20may\x20contain\x20hints\x20for\x20code\x20tha\
8748     t\x20manipulates\x20protocol\x20messages.\n\n\x20Clients\x20may\x20defin\
8749     e\x20custom\x20options\x20as\x20extensions\x20of\x20the\x20*Options\x20m\
8750     essages.\n\x20These\x20extensions\x20may\x20not\x20yet\x20be\x20known\
8751     \x20at\x20parsing\x20time,\x20so\x20the\x20parser\x20cannot\n\x20store\
8752     \x20the\x20values\x20in\x20them.\x20\x20Instead\x20it\x20stores\x20them\
8753     \x20in\x20a\x20field\x20in\x20the\x20*Options\n\x20message\x20called\x20\
8754     uninterpreted_option.\x20This\x20field\x20must\x20have\x20the\x20same\
8755     \x20name\n\x20across\x20all\x20*Options\x20messages.\x20We\x20then\x20us\
8756     e\x20this\x20field\x20to\x20populate\x20the\n\x20extensions\x20when\x20w\
8757     e\x20build\x20a\x20descriptor,\x20at\x20which\x20point\x20all\x20protos\
8758     \x20have\x20been\n\x20parsed\x20and\x20so\x20all\x20extensions\x20are\
8759     \x20known.\n\n\x20Extension\x20numbers\x20for\x20custom\x20options\x20ma\
8760     y\x20be\x20chosen\x20as\x20follows:\n\x20*\x20For\x20options\x20which\
8761     \x20will\x20only\x20be\x20used\x20within\x20a\x20single\x20application\
8762     \x20or\n\x20\x20\x20organization,\x20or\x20for\x20experimental\x20option\
8763     s,\x20use\x20field\x20numbers\x2050000\n\x20\x20\x20through\x2099999.\
8764     \x20\x20It\x20is\x20up\x20to\x20you\x20to\x20ensure\x20that\x20you\x20do\
8765     \x20not\x20use\x20the\n\x20\x20\x20same\x20number\x20for\x20multiple\x20\
8766     options.\n\x20*\x20For\x20options\x20which\x20will\x20be\x20published\
8767     \x20and\x20used\x20publicly\x20by\x20multiple\n\x20\x20\x20independent\
8768     \x20entities,\x20e-mail\x20protobuf-global-extension-registry@google.com\
8769     \n\x20\x20\x20to\x20reserve\x20extension\x20numbers.\x20Simply\x20provid\
8770     e\x20your\x20project\x20name\x20(e.g.\n\x20\x20\x20Objective-C\x20plugin\
8771     )\x20and\x20your\x20project\x20website\x20(if\x20available)\x20--\x20the\
8772     re's\x20no\n\x20\x20\x20need\x20to\x20explain\x20how\x20you\x20intend\
8773     \x20to\x20use\x20them.\x20Usually\x20you\x20only\x20need\x20one\n\x20\
8774     \x20\x20extension\x20number.\x20You\x20can\x20declare\x20multiple\x20opt\
8775     ions\x20with\x20only\x20one\x20extension\n\x20\x20\x20number\x20by\x20pu\
8776     tting\x20them\x20in\x20a\x20sub-message.\x20See\x20the\x20Custom\x20Opti\
8777     ons\x20section\x20of\n\x20\x20\x20the\x20docs\x20for\x20examples:\n\x20\
8778     \x20\x20https://developers.google.com/protocol-buffers/docs/proto#option\
8779     s\n\x20\x20\x20If\x20this\x20turns\x20out\x20to\x20be\x20popular,\x20a\
8780     \x20web\x20service\x20will\x20be\x20set\x20up\n\x20\x20\x20to\x20automat\
8781     ically\x20assign\x20option\x20numbers.\n\n\x0b\n\x03\x04\n\x01\x12\x04\
8782     \xd5\x02\x08\x13\n\xf4\x01\n\x04\x04\n\x02\0\x12\x04\xdb\x02\x02#\x1a\
8783     \xe5\x01\x20Sets\x20the\x20Java\x20package\x20where\x20classes\x20genera\
8784     ted\x20from\x20this\x20.proto\x20will\x20be\n\x20placed.\x20\x20By\x20de\
8785     fault,\x20the\x20proto\x20package\x20is\x20used,\x20but\x20this\x20is\
8786     \x20often\n\x20inappropriate\x20because\x20proto\x20packages\x20do\x20no\
8787     t\x20normally\x20start\x20with\x20backwards\n\x20domain\x20names.\n\n\r\
8788     \n\x05\x04\n\x02\0\x04\x12\x04\xdb\x02\x02\n\n\r\n\x05\x04\n\x02\0\x05\
8789     \x12\x04\xdb\x02\x0b\x11\n\r\n\x05\x04\n\x02\0\x01\x12\x04\xdb\x02\x12\
8790     \x1e\n\r\n\x05\x04\n\x02\0\x03\x12\x04\xdb\x02!\"\n\xf1\x02\n\x04\x04\n\
8791     \x02\x01\x12\x04\xe3\x02\x02+\x1a\xe2\x02\x20Controls\x20the\x20name\x20\
8792     of\x20the\x20wrapper\x20Java\x20class\x20generated\x20for\x20the\x20.pro\
8793     to\x20file.\n\x20That\x20class\x20will\x20always\x20contain\x20the\x20.p\
8794     roto\x20file's\x20getDescriptor()\x20method\x20as\n\x20well\x20as\x20any\
8795     \x20top-level\x20extensions\x20defined\x20in\x20the\x20.proto\x20file.\n\
8796     \x20If\x20java_multiple_files\x20is\x20disabled,\x20then\x20all\x20the\
8797     \x20other\x20classes\x20from\x20the\n\x20.proto\x20file\x20will\x20be\
8798     \x20nested\x20inside\x20the\x20single\x20wrapper\x20outer\x20class.\n\n\
8799     \r\n\x05\x04\n\x02\x01\x04\x12\x04\xe3\x02\x02\n\n\r\n\x05\x04\n\x02\x01\
8800     \x05\x12\x04\xe3\x02\x0b\x11\n\r\n\x05\x04\n\x02\x01\x01\x12\x04\xe3\x02\
8801     \x12&\n\r\n\x05\x04\n\x02\x01\x03\x12\x04\xe3\x02)*\n\xa6\x03\n\x04\x04\
8802     \n\x02\x02\x12\x04\xeb\x02\x02;\x1a\x97\x03\x20If\x20enabled,\x20then\
8803     \x20the\x20Java\x20code\x20generator\x20will\x20generate\x20a\x20separat\
8804     e\x20.java\n\x20file\x20for\x20each\x20top-level\x20message,\x20enum,\
8805     \x20and\x20service\x20defined\x20in\x20the\x20.proto\n\x20file.\x20\x20T\
8806     hus,\x20these\x20types\x20will\x20*not*\x20be\x20nested\x20inside\x20the\
8807     \x20wrapper\x20class\n\x20named\x20by\x20java_outer_classname.\x20\x20Ho\
8808     wever,\x20the\x20wrapper\x20class\x20will\x20still\x20be\n\x20generated\
8809     \x20to\x20contain\x20the\x20file's\x20getDescriptor()\x20method\x20as\
8810     \x20well\x20as\x20any\n\x20top-level\x20extensions\x20defined\x20in\x20t\
8811     he\x20file.\n\n\r\n\x05\x04\n\x02\x02\x04\x12\x04\xeb\x02\x02\n\n\r\n\
8812     \x05\x04\n\x02\x02\x05\x12\x04\xeb\x02\x0b\x0f\n\r\n\x05\x04\n\x02\x02\
8813     \x01\x12\x04\xeb\x02\x10#\n\r\n\x05\x04\n\x02\x02\x03\x12\x04\xeb\x02&(\
8814     \n\r\n\x05\x04\n\x02\x02\x08\x12\x04\xeb\x02):\n\r\n\x05\x04\n\x02\x02\
8815     \x07\x12\x04\xeb\x0249\n)\n\x04\x04\n\x02\x03\x12\x04\xee\x02\x02E\x1a\
8816     \x1b\x20This\x20option\x20does\x20nothing.\n\n\r\n\x05\x04\n\x02\x03\x04\
8817     \x12\x04\xee\x02\x02\n\n\r\n\x05\x04\n\x02\x03\x05\x12\x04\xee\x02\x0b\
8818     \x0f\n\r\n\x05\x04\n\x02\x03\x01\x12\x04\xee\x02\x10-\n\r\n\x05\x04\n\
8819     \x02\x03\x03\x12\x04\xee\x0202\n\r\n\x05\x04\n\x02\x03\x08\x12\x04\xee\
8820     \x023D\n\x0e\n\x06\x04\n\x02\x03\x08\x03\x12\x04\xee\x024C\n\xe6\x02\n\
8821     \x04\x04\n\x02\x04\x12\x04\xf6\x02\x02>\x1a\xd7\x02\x20If\x20set\x20true\
8822     ,\x20then\x20the\x20Java2\x20code\x20generator\x20will\x20generate\x20co\
8823     de\x20that\n\x20throws\x20an\x20exception\x20whenever\x20an\x20attempt\
8824     \x20is\x20made\x20to\x20assign\x20a\x20non-UTF-8\n\x20byte\x20sequence\
8825     \x20to\x20a\x20string\x20field.\n\x20Message\x20reflection\x20will\x20do\
8826     \x20the\x20same.\n\x20However,\x20an\x20extension\x20field\x20still\x20a\
8827     ccepts\x20non-UTF-8\x20byte\x20sequences.\n\x20This\x20option\x20has\x20\
8828     no\x20effect\x20on\x20when\x20used\x20with\x20the\x20lite\x20runtime.\n\
8829     \n\r\n\x05\x04\n\x02\x04\x04\x12\x04\xf6\x02\x02\n\n\r\n\x05\x04\n\x02\
8830     \x04\x05\x12\x04\xf6\x02\x0b\x0f\n\r\n\x05\x04\n\x02\x04\x01\x12\x04\xf6\
8831     \x02\x10&\n\r\n\x05\x04\n\x02\x04\x03\x12\x04\xf6\x02)+\n\r\n\x05\x04\n\
8832     \x02\x04\x08\x12\x04\xf6\x02,=\n\r\n\x05\x04\n\x02\x04\x07\x12\x04\xf6\
8833     \x027<\nL\n\x04\x04\n\x04\0\x12\x06\xfa\x02\x02\xff\x02\x03\x1a<\x20Gene\
8834     rated\x20classes\x20can\x20be\x20optimized\x20for\x20speed\x20or\x20code\
8835     \x20size.\n\n\r\n\x05\x04\n\x04\0\x01\x12\x04\xfa\x02\x07\x13\nD\n\x06\
8836     \x04\n\x04\0\x02\0\x12\x04\xfb\x02\x04\x0e\"4\x20Generate\x20complete\
8837     \x20code\x20for\x20parsing,\x20serialization,\n\n\x0f\n\x07\x04\n\x04\0\
8838     \x02\0\x01\x12\x04\xfb\x02\x04\t\n\x0f\n\x07\x04\n\x04\0\x02\0\x02\x12\
8839     \x04\xfb\x02\x0c\r\nG\n\x06\x04\n\x04\0\x02\x01\x12\x04\xfd\x02\x04\x12\
8840     \x1a\x06\x20etc.\n\"/\x20Use\x20ReflectionOps\x20to\x20implement\x20thes\
8841     e\x20methods.\n\n\x0f\n\x07\x04\n\x04\0\x02\x01\x01\x12\x04\xfd\x02\x04\
8842     \r\n\x0f\n\x07\x04\n\x04\0\x02\x01\x02\x12\x04\xfd\x02\x10\x11\nG\n\x06\
8843     \x04\n\x04\0\x02\x02\x12\x04\xfe\x02\x04\x15\"7\x20Generate\x20code\x20u\
8844     sing\x20MessageLite\x20and\x20the\x20lite\x20runtime.\n\n\x0f\n\x07\x04\
8845     \n\x04\0\x02\x02\x01\x12\x04\xfe\x02\x04\x10\n\x0f\n\x07\x04\n\x04\0\x02\
8846     \x02\x02\x12\x04\xfe\x02\x13\x14\n\x0c\n\x04\x04\n\x02\x05\x12\x04\x80\
8847     \x03\x02;\n\r\n\x05\x04\n\x02\x05\x04\x12\x04\x80\x03\x02\n\n\r\n\x05\
8848     \x04\n\x02\x05\x06\x12\x04\x80\x03\x0b\x17\n\r\n\x05\x04\n\x02\x05\x01\
8849     \x12\x04\x80\x03\x18$\n\r\n\x05\x04\n\x02\x05\x03\x12\x04\x80\x03'(\n\r\
8850     \n\x05\x04\n\x02\x05\x08\x12\x04\x80\x03):\n\r\n\x05\x04\n\x02\x05\x07\
8851     \x12\x04\x80\x0349\n\xe2\x02\n\x04\x04\n\x02\x06\x12\x04\x87\x03\x02\"\
8852     \x1a\xd3\x02\x20Sets\x20the\x20Go\x20package\x20where\x20structs\x20gene\
8853     rated\x20from\x20this\x20.proto\x20will\x20be\n\x20placed.\x20If\x20omit\
8854     ted,\x20the\x20Go\x20package\x20will\x20be\x20derived\x20from\x20the\x20\
8855     following:\n\x20\x20\x20-\x20The\x20basename\x20of\x20the\x20package\x20\
8856     import\x20path,\x20if\x20provided.\n\x20\x20\x20-\x20Otherwise,\x20the\
8857     \x20package\x20statement\x20in\x20the\x20.proto\x20file,\x20if\x20presen\
8858     t.\n\x20\x20\x20-\x20Otherwise,\x20the\x20basename\x20of\x20the\x20.prot\
8859     o\x20file,\x20without\x20extension.\n\n\r\n\x05\x04\n\x02\x06\x04\x12\
8860     \x04\x87\x03\x02\n\n\r\n\x05\x04\n\x02\x06\x05\x12\x04\x87\x03\x0b\x11\n\
8861     \r\n\x05\x04\n\x02\x06\x01\x12\x04\x87\x03\x12\x1c\n\r\n\x05\x04\n\x02\
8862     \x06\x03\x12\x04\x87\x03\x1f!\n\xd4\x04\n\x04\x04\n\x02\x07\x12\x04\x96\
8863     \x03\x02;\x1a\xc5\x04\x20Should\x20generic\x20services\x20be\x20generate\
8864     d\x20in\x20each\x20language?\x20\x20\"Generic\"\x20services\n\x20are\x20\
8865     not\x20specific\x20to\x20any\x20particular\x20RPC\x20system.\x20\x20They\
8866     \x20are\x20generated\x20by\x20the\n\x20main\x20code\x20generators\x20in\
8867     \x20each\x20language\x20(without\x20additional\x20plugins).\n\x20Generic\
8868     \x20services\x20were\x20the\x20only\x20kind\x20of\x20service\x20generati\
8869     on\x20supported\x20by\n\x20early\x20versions\x20of\x20google.protobuf.\n\
8870     \n\x20Generic\x20services\x20are\x20now\x20considered\x20deprecated\x20i\
8871     n\x20favor\x20of\x20using\x20plugins\n\x20that\x20generate\x20code\x20sp\
8872     ecific\x20to\x20your\x20particular\x20RPC\x20system.\x20\x20Therefore,\n\
8873     \x20these\x20default\x20to\x20false.\x20\x20Old\x20code\x20which\x20depe\
8874     nds\x20on\x20generic\x20services\x20should\n\x20explicitly\x20set\x20the\
8875     m\x20to\x20true.\n\n\r\n\x05\x04\n\x02\x07\x04\x12\x04\x96\x03\x02\n\n\r\
8876     \n\x05\x04\n\x02\x07\x05\x12\x04\x96\x03\x0b\x0f\n\r\n\x05\x04\n\x02\x07\
8877     \x01\x12\x04\x96\x03\x10#\n\r\n\x05\x04\n\x02\x07\x03\x12\x04\x96\x03&(\
8878     \n\r\n\x05\x04\n\x02\x07\x08\x12\x04\x96\x03):\n\r\n\x05\x04\n\x02\x07\
8879     \x07\x12\x04\x96\x0349\n\x0c\n\x04\x04\n\x02\x08\x12\x04\x97\x03\x02=\n\
8880     \r\n\x05\x04\n\x02\x08\x04\x12\x04\x97\x03\x02\n\n\r\n\x05\x04\n\x02\x08\
8881     \x05\x12\x04\x97\x03\x0b\x0f\n\r\n\x05\x04\n\x02\x08\x01\x12\x04\x97\x03\
8882     \x10%\n\r\n\x05\x04\n\x02\x08\x03\x12\x04\x97\x03(*\n\r\n\x05\x04\n\x02\
8883     \x08\x08\x12\x04\x97\x03+<\n\r\n\x05\x04\n\x02\x08\x07\x12\x04\x97\x036;\
8884     \n\x0c\n\x04\x04\n\x02\t\x12\x04\x98\x03\x02;\n\r\n\x05\x04\n\x02\t\x04\
8885     \x12\x04\x98\x03\x02\n\n\r\n\x05\x04\n\x02\t\x05\x12\x04\x98\x03\x0b\x0f\
8886     \n\r\n\x05\x04\n\x02\t\x01\x12\x04\x98\x03\x10#\n\r\n\x05\x04\n\x02\t\
8887     \x03\x12\x04\x98\x03&(\n\r\n\x05\x04\n\x02\t\x08\x12\x04\x98\x03):\n\r\n\
8888     \x05\x04\n\x02\t\x07\x12\x04\x98\x0349\n\x0c\n\x04\x04\n\x02\n\x12\x04\
8889     \x99\x03\x02<\n\r\n\x05\x04\n\x02\n\x04\x12\x04\x99\x03\x02\n\n\r\n\x05\
8890     \x04\n\x02\n\x05\x12\x04\x99\x03\x0b\x0f\n\r\n\x05\x04\n\x02\n\x01\x12\
8891     \x04\x99\x03\x10$\n\r\n\x05\x04\n\x02\n\x03\x12\x04\x99\x03')\n\r\n\x05\
8892     \x04\n\x02\n\x08\x12\x04\x99\x03*;\n\r\n\x05\x04\n\x02\n\x07\x12\x04\x99\
8893     \x035:\n\xf3\x01\n\x04\x04\n\x02\x0b\x12\x04\x9f\x03\x022\x1a\xe4\x01\
8894     \x20Is\x20this\x20file\x20deprecated?\n\x20Depending\x20on\x20the\x20tar\
8895     get\x20platform,\x20this\x20can\x20emit\x20Deprecated\x20annotations\n\
8896     \x20for\x20everything\x20in\x20the\x20file,\x20or\x20it\x20will\x20be\
8897     \x20completely\x20ignored;\x20in\x20the\x20very\n\x20least,\x20this\x20i\
8898     s\x20a\x20formalization\x20for\x20deprecating\x20files.\n\n\r\n\x05\x04\
8899     \n\x02\x0b\x04\x12\x04\x9f\x03\x02\n\n\r\n\x05\x04\n\x02\x0b\x05\x12\x04\
8900     \x9f\x03\x0b\x0f\n\r\n\x05\x04\n\x02\x0b\x01\x12\x04\x9f\x03\x10\x1a\n\r\
8901     \n\x05\x04\n\x02\x0b\x03\x12\x04\x9f\x03\x1d\x1f\n\r\n\x05\x04\n\x02\x0b\
8902     \x08\x12\x04\x9f\x03\x201\n\r\n\x05\x04\n\x02\x0b\x07\x12\x04\x9f\x03+0\
8903     \n\x7f\n\x04\x04\n\x02\x0c\x12\x04\xa3\x03\x027\x1aq\x20Enables\x20the\
8904     \x20use\x20of\x20arenas\x20for\x20the\x20proto\x20messages\x20in\x20this\
8905     \x20file.\x20This\x20applies\n\x20only\x20to\x20generated\x20classes\x20\
8906     for\x20C++.\n\n\r\n\x05\x04\n\x02\x0c\x04\x12\x04\xa3\x03\x02\n\n\r\n\
8907     \x05\x04\n\x02\x0c\x05\x12\x04\xa3\x03\x0b\x0f\n\r\n\x05\x04\n\x02\x0c\
8908     \x01\x12\x04\xa3\x03\x10\x20\n\r\n\x05\x04\n\x02\x0c\x03\x12\x04\xa3\x03\
8909     #%\n\r\n\x05\x04\n\x02\x0c\x08\x12\x04\xa3\x03&6\n\r\n\x05\x04\n\x02\x0c\
8910     \x07\x12\x04\xa3\x0315\n\x92\x01\n\x04\x04\n\x02\r\x12\x04\xa8\x03\x02)\
8911     \x1a\x83\x01\x20Sets\x20the\x20objective\x20c\x20class\x20prefix\x20whic\
8912     h\x20is\x20prepended\x20to\x20all\x20objective\x20c\n\x20generated\x20cl\
8913     asses\x20from\x20this\x20.proto.\x20There\x20is\x20no\x20default.\n\n\r\
8914     \n\x05\x04\n\x02\r\x04\x12\x04\xa8\x03\x02\n\n\r\n\x05\x04\n\x02\r\x05\
8915     \x12\x04\xa8\x03\x0b\x11\n\r\n\x05\x04\n\x02\r\x01\x12\x04\xa8\x03\x12#\
8916     \n\r\n\x05\x04\n\x02\r\x03\x12\x04\xa8\x03&(\nI\n\x04\x04\n\x02\x0e\x12\
8917     \x04\xab\x03\x02(\x1a;\x20Namespace\x20for\x20generated\x20classes;\x20d\
8918     efaults\x20to\x20the\x20package.\n\n\r\n\x05\x04\n\x02\x0e\x04\x12\x04\
8919     \xab\x03\x02\n\n\r\n\x05\x04\n\x02\x0e\x05\x12\x04\xab\x03\x0b\x11\n\r\n\
8920     \x05\x04\n\x02\x0e\x01\x12\x04\xab\x03\x12\"\n\r\n\x05\x04\n\x02\x0e\x03\
8921     \x12\x04\xab\x03%'\n\x91\x02\n\x04\x04\n\x02\x0f\x12\x04\xb1\x03\x02$\
8922     \x1a\x82\x02\x20By\x20default\x20Swift\x20generators\x20will\x20take\x20\
8923     the\x20proto\x20package\x20and\x20CamelCase\x20it\n\x20replacing\x20'.'\
8924     \x20with\x20underscore\x20and\x20use\x20that\x20to\x20prefix\x20the\x20t\
8925     ypes/symbols\n\x20defined.\x20When\x20this\x20options\x20is\x20provided,\
8926     \x20they\x20will\x20use\x20this\x20value\x20instead\n\x20to\x20prefix\
8927     \x20the\x20types/symbols\x20defined.\n\n\r\n\x05\x04\n\x02\x0f\x04\x12\
8928     \x04\xb1\x03\x02\n\n\r\n\x05\x04\n\x02\x0f\x05\x12\x04\xb1\x03\x0b\x11\n\
8929     \r\n\x05\x04\n\x02\x0f\x01\x12\x04\xb1\x03\x12\x1e\n\r\n\x05\x04\n\x02\
8930     \x0f\x03\x12\x04\xb1\x03!#\n~\n\x04\x04\n\x02\x10\x12\x04\xb5\x03\x02(\
8931     \x1ap\x20Sets\x20the\x20php\x20class\x20prefix\x20which\x20is\x20prepend\
8932     ed\x20to\x20all\x20php\x20generated\x20classes\n\x20from\x20this\x20.pro\
8933     to.\x20Default\x20is\x20empty.\n\n\r\n\x05\x04\n\x02\x10\x04\x12\x04\xb5\
8934     \x03\x02\n\n\r\n\x05\x04\n\x02\x10\x05\x12\x04\xb5\x03\x0b\x11\n\r\n\x05\
8935     \x04\n\x02\x10\x01\x12\x04\xb5\x03\x12\"\n\r\n\x05\x04\n\x02\x10\x03\x12\
8936     \x04\xb5\x03%'\n\xbe\x01\n\x04\x04\n\x02\x11\x12\x04\xba\x03\x02%\x1a\
8937     \xaf\x01\x20Use\x20this\x20option\x20to\x20change\x20the\x20namespace\
8938     \x20of\x20php\x20generated\x20classes.\x20Default\n\x20is\x20empty.\x20W\
8939     hen\x20this\x20option\x20is\x20empty,\x20the\x20package\x20name\x20will\
8940     \x20be\x20used\x20for\n\x20determining\x20the\x20namespace.\n\n\r\n\x05\
8941     \x04\n\x02\x11\x04\x12\x04\xba\x03\x02\n\n\r\n\x05\x04\n\x02\x11\x05\x12\
8942     \x04\xba\x03\x0b\x11\n\r\n\x05\x04\n\x02\x11\x01\x12\x04\xba\x03\x12\x1f\
8943     \n\r\n\x05\x04\n\x02\x11\x03\x12\x04\xba\x03\"$\n\xca\x01\n\x04\x04\n\
8944     \x02\x12\x12\x04\xbf\x03\x02.\x1a\xbb\x01\x20Use\x20this\x20option\x20to\
8945     \x20change\x20the\x20namespace\x20of\x20php\x20generated\x20metadata\x20\
8946     classes.\n\x20Default\x20is\x20empty.\x20When\x20this\x20option\x20is\
8947     \x20empty,\x20the\x20proto\x20file\x20name\x20will\x20be\n\x20used\x20fo\
8948     r\x20determining\x20the\x20namespace.\n\n\r\n\x05\x04\n\x02\x12\x04\x12\
8949     \x04\xbf\x03\x02\n\n\r\n\x05\x04\n\x02\x12\x05\x12\x04\xbf\x03\x0b\x11\n\
8950     \r\n\x05\x04\n\x02\x12\x01\x12\x04\xbf\x03\x12(\n\r\n\x05\x04\n\x02\x12\
8951     \x03\x12\x04\xbf\x03+-\n\xc2\x01\n\x04\x04\n\x02\x13\x12\x04\xc4\x03\x02\
8952     $\x1a\xb3\x01\x20Use\x20this\x20option\x20to\x20change\x20the\x20package\
8953     \x20of\x20ruby\x20generated\x20classes.\x20Default\n\x20is\x20empty.\x20\
8954     When\x20this\x20option\x20is\x20not\x20set,\x20the\x20package\x20name\
8955     \x20will\x20be\x20used\x20for\n\x20determining\x20the\x20ruby\x20package\
8956     .\n\n\r\n\x05\x04\n\x02\x13\x04\x12\x04\xc4\x03\x02\n\n\r\n\x05\x04\n\
8957     \x02\x13\x05\x12\x04\xc4\x03\x0b\x11\n\r\n\x05\x04\n\x02\x13\x01\x12\x04\
8958     \xc4\x03\x12\x1e\n\r\n\x05\x04\n\x02\x13\x03\x12\x04\xc4\x03!#\n|\n\x04\
8959     \x04\n\x02\x14\x12\x04\xc9\x03\x02:\x1an\x20The\x20parser\x20stores\x20o\
8960     ptions\x20it\x20doesn't\x20recognize\x20here.\n\x20See\x20the\x20documen\
8961     tation\x20for\x20the\x20\"Options\"\x20section\x20above.\n\n\r\n\x05\x04\
8962     \n\x02\x14\x04\x12\x04\xc9\x03\x02\n\n\r\n\x05\x04\n\x02\x14\x06\x12\x04\
8963     \xc9\x03\x0b\x1e\n\r\n\x05\x04\n\x02\x14\x01\x12\x04\xc9\x03\x1f3\n\r\n\
8964     \x05\x04\n\x02\x14\x03\x12\x04\xc9\x0369\n\x87\x01\n\x03\x04\n\x05\x12\
8965     \x04\xcd\x03\x02\x19\x1az\x20Clients\x20can\x20define\x20custom\x20optio\
8966     ns\x20in\x20extensions\x20of\x20this\x20message.\n\x20See\x20the\x20docu\
8967     mentation\x20for\x20the\x20\"Options\"\x20section\x20above.\n\n\x0c\n\
8968     \x04\x04\n\x05\0\x12\x04\xcd\x03\r\x18\n\r\n\x05\x04\n\x05\0\x01\x12\x04\
8969     \xcd\x03\r\x11\n\r\n\x05\x04\n\x05\0\x02\x12\x04\xcd\x03\x15\x18\n\x0b\n\
8970     \x03\x04\n\t\x12\x04\xcf\x03\x02\x0e\n\x0c\n\x04\x04\n\t\0\x12\x04\xcf\
8971     \x03\x0b\r\n\r\n\x05\x04\n\t\0\x01\x12\x04\xcf\x03\x0b\r\n\r\n\x05\x04\n\
8972     \t\0\x02\x12\x04\xcf\x03\x0b\r\n\x0c\n\x02\x04\x0b\x12\x06\xd2\x03\0\x94\
8973     \x04\x01\n\x0b\n\x03\x04\x0b\x01\x12\x04\xd2\x03\x08\x16\n\xd8\x05\n\x04\
8974     \x04\x0b\x02\0\x12\x04\xe5\x03\x02>\x1a\xc9\x05\x20Set\x20true\x20to\x20\
8975     use\x20the\x20old\x20proto1\x20MessageSet\x20wire\x20format\x20for\x20ex\
8976     tensions.\n\x20This\x20is\x20provided\x20for\x20backwards-compatibility\
8977     \x20with\x20the\x20MessageSet\x20wire\n\x20format.\x20\x20You\x20should\
8978     \x20not\x20use\x20this\x20for\x20any\x20other\x20reason:\x20\x20It's\x20\
8979     less\n\x20efficient,\x20has\x20fewer\x20features,\x20and\x20is\x20more\
8980     \x20complicated.\n\n\x20The\x20message\x20must\x20be\x20defined\x20exact\
8981     ly\x20as\x20follows:\n\x20\x20\x20message\x20Foo\x20{\n\x20\x20\x20\x20\
8982     \x20option\x20message_set_wire_format\x20=\x20true;\n\x20\x20\x20\x20\
8983     \x20extensions\x204\x20to\x20max;\n\x20\x20\x20}\n\x20Note\x20that\x20th\
8984     e\x20message\x20cannot\x20have\x20any\x20defined\x20fields;\x20MessageSe\
8985     ts\x20only\n\x20have\x20extensions.\n\n\x20All\x20extensions\x20of\x20yo\
8986     ur\x20type\x20must\x20be\x20singular\x20messages;\x20e.g.\x20they\x20can\
8987     not\n\x20be\x20int32s,\x20enums,\x20or\x20repeated\x20messages.\n\n\x20B\
8988     ecause\x20this\x20is\x20an\x20option,\x20the\x20above\x20two\x20restrict\
8989     ions\x20are\x20not\x20enforced\x20by\n\x20the\x20protocol\x20compiler.\n\
8990     \n\r\n\x05\x04\x0b\x02\0\x04\x12\x04\xe5\x03\x02\n\n\r\n\x05\x04\x0b\x02\
8991     \0\x05\x12\x04\xe5\x03\x0b\x0f\n\r\n\x05\x04\x0b\x02\0\x01\x12\x04\xe5\
8992     \x03\x10'\n\r\n\x05\x04\x0b\x02\0\x03\x12\x04\xe5\x03*+\n\r\n\x05\x04\
8993     \x0b\x02\0\x08\x12\x04\xe5\x03,=\n\r\n\x05\x04\x0b\x02\0\x07\x12\x04\xe5\
8994     \x037<\n\xeb\x01\n\x04\x04\x0b\x02\x01\x12\x04\xea\x03\x02F\x1a\xdc\x01\
8995     \x20Disables\x20the\x20generation\x20of\x20the\x20standard\x20\"descript\
8996     or()\"\x20accessor,\x20which\x20can\n\x20conflict\x20with\x20a\x20field\
8997     \x20of\x20the\x20same\x20name.\x20\x20This\x20is\x20meant\x20to\x20make\
8998     \x20migration\n\x20from\x20proto1\x20easier;\x20new\x20code\x20should\
8999     \x20avoid\x20fields\x20named\x20\"descriptor\".\n\n\r\n\x05\x04\x0b\x02\
9000     \x01\x04\x12\x04\xea\x03\x02\n\n\r\n\x05\x04\x0b\x02\x01\x05\x12\x04\xea\
9001     \x03\x0b\x0f\n\r\n\x05\x04\x0b\x02\x01\x01\x12\x04\xea\x03\x10/\n\r\n\
9002     \x05\x04\x0b\x02\x01\x03\x12\x04\xea\x0323\n\r\n\x05\x04\x0b\x02\x01\x08\
9003     \x12\x04\xea\x034E\n\r\n\x05\x04\x0b\x02\x01\x07\x12\x04\xea\x03?D\n\xee\
9004     \x01\n\x04\x04\x0b\x02\x02\x12\x04\xf0\x03\x021\x1a\xdf\x01\x20Is\x20thi\
9005     s\x20message\x20deprecated?\n\x20Depending\x20on\x20the\x20target\x20pla\
9006     tform,\x20this\x20can\x20emit\x20Deprecated\x20annotations\n\x20for\x20t\
9007     he\x20message,\x20or\x20it\x20will\x20be\x20completely\x20ignored;\x20in\
9008     \x20the\x20very\x20least,\n\x20this\x20is\x20a\x20formalization\x20for\
9009     \x20deprecating\x20messages.\n\n\r\n\x05\x04\x0b\x02\x02\x04\x12\x04\xf0\
9010     \x03\x02\n\n\r\n\x05\x04\x0b\x02\x02\x05\x12\x04\xf0\x03\x0b\x0f\n\r\n\
9011     \x05\x04\x0b\x02\x02\x01\x12\x04\xf0\x03\x10\x1a\n\r\n\x05\x04\x0b\x02\
9012     \x02\x03\x12\x04\xf0\x03\x1d\x1e\n\r\n\x05\x04\x0b\x02\x02\x08\x12\x04\
9013     \xf0\x03\x1f0\n\r\n\x05\x04\x0b\x02\x02\x07\x12\x04\xf0\x03*/\n\x0b\n\
9014     \x03\x04\x0b\t\x12\x04\xf2\x03\x02\x13\n\x0c\n\x04\x04\x0b\t\0\x12\x04\
9015     \xf2\x03\x0b\x0c\n\r\n\x05\x04\x0b\t\0\x01\x12\x04\xf2\x03\x0b\x0c\n\r\n\
9016     \x05\x04\x0b\t\0\x02\x12\x04\xf2\x03\x0b\x0c\n\x0c\n\x04\x04\x0b\t\x01\
9017     \x12\x04\xf2\x03\x0e\x0f\n\r\n\x05\x04\x0b\t\x01\x01\x12\x04\xf2\x03\x0e\
9018     \x0f\n\r\n\x05\x04\x0b\t\x01\x02\x12\x04\xf2\x03\x0e\x0f\n\x0c\n\x04\x04\
9019     \x0b\t\x02\x12\x04\xf2\x03\x11\x12\n\r\n\x05\x04\x0b\t\x02\x01\x12\x04\
9020     \xf2\x03\x11\x12\n\r\n\x05\x04\x0b\t\x02\x02\x12\x04\xf2\x03\x11\x12\n\
9021     \xa0\x06\n\x04\x04\x0b\x02\x03\x12\x04\x89\x04\x02\x1e\x1a\x91\x06\x20Wh\
9022     ether\x20the\x20message\x20is\x20an\x20automatically\x20generated\x20map\
9023     \x20entry\x20type\x20for\x20the\n\x20maps\x20field.\n\n\x20For\x20maps\
9024     \x20fields:\n\x20\x20\x20\x20\x20map<KeyType,\x20ValueType>\x20map_field\
9025     \x20=\x201;\n\x20The\x20parsed\x20descriptor\x20looks\x20like:\n\x20\x20\
9026     \x20\x20\x20message\x20MapFieldEntry\x20{\n\x20\x20\x20\x20\x20\x20\x20\
9027     \x20\x20option\x20map_entry\x20=\x20true;\n\x20\x20\x20\x20\x20\x20\x20\
9028     \x20\x20optional\x20KeyType\x20key\x20=\x201;\n\x20\x20\x20\x20\x20\x20\
9029     \x20\x20\x20optional\x20ValueType\x20value\x20=\x202;\n\x20\x20\x20\x20\
9030     \x20}\n\x20\x20\x20\x20\x20repeated\x20MapFieldEntry\x20map_field\x20=\
9031     \x201;\n\n\x20Implementations\x20may\x20choose\x20not\x20to\x20generate\
9032     \x20the\x20map_entry=true\x20message,\x20but\n\x20use\x20a\x20native\x20\
9033     map\x20in\x20the\x20target\x20language\x20to\x20hold\x20the\x20keys\x20a\
9034     nd\x20values.\n\x20The\x20reflection\x20APIs\x20in\x20such\x20implementa\
9035     tions\x20still\x20need\x20to\x20work\x20as\n\x20if\x20the\x20field\x20is\
9036     \x20a\x20repeated\x20message\x20field.\n\n\x20NOTE:\x20Do\x20not\x20set\
9037     \x20the\x20option\x20in\x20.proto\x20files.\x20Always\x20use\x20the\x20m\
9038     aps\x20syntax\n\x20instead.\x20The\x20option\x20should\x20only\x20be\x20\
9039     implicitly\x20set\x20by\x20the\x20proto\x20compiler\n\x20parser.\n\n\r\n\
9040     \x05\x04\x0b\x02\x03\x04\x12\x04\x89\x04\x02\n\n\r\n\x05\x04\x0b\x02\x03\
9041     \x05\x12\x04\x89\x04\x0b\x0f\n\r\n\x05\x04\x0b\x02\x03\x01\x12\x04\x89\
9042     \x04\x10\x19\n\r\n\x05\x04\x0b\x02\x03\x03\x12\x04\x89\x04\x1c\x1d\n$\n\
9043     \x03\x04\x0b\t\x12\x04\x8b\x04\x02\r\"\x17\x20javalite_serializable\n\n\
9044     \x0c\n\x04\x04\x0b\t\x03\x12\x04\x8b\x04\x0b\x0c\n\r\n\x05\x04\x0b\t\x03\
9045     \x01\x12\x04\x8b\x04\x0b\x0c\n\r\n\x05\x04\x0b\t\x03\x02\x12\x04\x8b\x04\
9046     \x0b\x0c\n\x1f\n\x03\x04\x0b\t\x12\x04\x8c\x04\x02\r\"\x12\x20javanano_a\
9047     s_lite\n\n\x0c\n\x04\x04\x0b\t\x04\x12\x04\x8c\x04\x0b\x0c\n\r\n\x05\x04\
9048     \x0b\t\x04\x01\x12\x04\x8c\x04\x0b\x0c\n\r\n\x05\x04\x0b\t\x04\x02\x12\
9049     \x04\x8c\x04\x0b\x0c\nO\n\x04\x04\x0b\x02\x04\x12\x04\x90\x04\x02:\x1aA\
9050     \x20The\x20parser\x20stores\x20options\x20it\x20doesn't\x20recognize\x20\
9051     here.\x20See\x20above.\n\n\r\n\x05\x04\x0b\x02\x04\x04\x12\x04\x90\x04\
9052     \x02\n\n\r\n\x05\x04\x0b\x02\x04\x06\x12\x04\x90\x04\x0b\x1e\n\r\n\x05\
9053     \x04\x0b\x02\x04\x01\x12\x04\x90\x04\x1f3\n\r\n\x05\x04\x0b\x02\x04\x03\
9054     \x12\x04\x90\x0469\nZ\n\x03\x04\x0b\x05\x12\x04\x93\x04\x02\x19\x1aM\x20\
9055     Clients\x20can\x20define\x20custom\x20options\x20in\x20extensions\x20of\
9056     \x20this\x20message.\x20See\x20above.\n\n\x0c\n\x04\x04\x0b\x05\0\x12\
9057     \x04\x93\x04\r\x18\n\r\n\x05\x04\x0b\x05\0\x01\x12\x04\x93\x04\r\x11\n\r\
9058     \n\x05\x04\x0b\x05\0\x02\x12\x04\x93\x04\x15\x18\n\x0c\n\x02\x04\x0c\x12\
9059     \x06\x96\x04\0\xf1\x04\x01\n\x0b\n\x03\x04\x0c\x01\x12\x04\x96\x04\x08\
9060     \x14\n\xa3\x02\n\x04\x04\x0c\x02\0\x12\x04\x9b\x04\x02.\x1a\x94\x02\x20T\
9061     he\x20ctype\x20option\x20instructs\x20the\x20C++\x20code\x20generator\
9062     \x20to\x20use\x20a\x20different\n\x20representation\x20of\x20the\x20fiel\
9063     d\x20than\x20it\x20normally\x20would.\x20\x20See\x20the\x20specific\n\
9064     \x20options\x20below.\x20\x20This\x20option\x20is\x20not\x20yet\x20imple\
9065     mented\x20in\x20the\x20open\x20source\n\x20release\x20--\x20sorry,\x20we\
9066     'll\x20try\x20to\x20include\x20it\x20in\x20a\x20future\x20version!\n\n\r\
9067     \n\x05\x04\x0c\x02\0\x04\x12\x04\x9b\x04\x02\n\n\r\n\x05\x04\x0c\x02\0\
9068     \x06\x12\x04\x9b\x04\x0b\x10\n\r\n\x05\x04\x0c\x02\0\x01\x12\x04\x9b\x04\
9069     \x11\x16\n\r\n\x05\x04\x0c\x02\0\x03\x12\x04\x9b\x04\x19\x1a\n\r\n\x05\
9070     \x04\x0c\x02\0\x08\x12\x04\x9b\x04\x1b-\n\r\n\x05\x04\x0c\x02\0\x07\x12\
9071     \x04\x9b\x04&,\n\x0e\n\x04\x04\x0c\x04\0\x12\x06\x9c\x04\x02\xa3\x04\x03\
9072     \n\r\n\x05\x04\x0c\x04\0\x01\x12\x04\x9c\x04\x07\x0c\n\x1f\n\x06\x04\x0c\
9073     \x04\0\x02\0\x12\x04\x9e\x04\x04\x0f\x1a\x0f\x20Default\x20mode.\n\n\x0f\
9074     \n\x07\x04\x0c\x04\0\x02\0\x01\x12\x04\x9e\x04\x04\n\n\x0f\n\x07\x04\x0c\
9075     \x04\0\x02\0\x02\x12\x04\x9e\x04\r\x0e\n\x0e\n\x06\x04\x0c\x04\0\x02\x01\
9076     \x12\x04\xa0\x04\x04\r\n\x0f\n\x07\x04\x0c\x04\0\x02\x01\x01\x12\x04\xa0\
9077     \x04\x04\x08\n\x0f\n\x07\x04\x0c\x04\0\x02\x01\x02\x12\x04\xa0\x04\x0b\
9078     \x0c\n\x0e\n\x06\x04\x0c\x04\0\x02\x02\x12\x04\xa2\x04\x04\x15\n\x0f\n\
9079     \x07\x04\x0c\x04\0\x02\x02\x01\x12\x04\xa2\x04\x04\x10\n\x0f\n\x07\x04\
9080     \x0c\x04\0\x02\x02\x02\x12\x04\xa2\x04\x13\x14\n\xda\x02\n\x04\x04\x0c\
9081     \x02\x01\x12\x04\xa9\x04\x02\x1b\x1a\xcb\x02\x20The\x20packed\x20option\
9082     \x20can\x20be\x20enabled\x20for\x20repeated\x20primitive\x20fields\x20to\
9083     \x20enable\n\x20a\x20more\x20efficient\x20representation\x20on\x20the\
9084     \x20wire.\x20Rather\x20than\x20repeatedly\n\x20writing\x20the\x20tag\x20\
9085     and\x20type\x20for\x20each\x20element,\x20the\x20entire\x20array\x20is\
9086     \x20encoded\x20as\n\x20a\x20single\x20length-delimited\x20blob.\x20In\
9087     \x20proto3,\x20only\x20explicit\x20setting\x20it\x20to\n\x20false\x20wil\
9088     l\x20avoid\x20using\x20packed\x20encoding.\n\n\r\n\x05\x04\x0c\x02\x01\
9089     \x04\x12\x04\xa9\x04\x02\n\n\r\n\x05\x04\x0c\x02\x01\x05\x12\x04\xa9\x04\
9090     \x0b\x0f\n\r\n\x05\x04\x0c\x02\x01\x01\x12\x04\xa9\x04\x10\x16\n\r\n\x05\
9091     \x04\x0c\x02\x01\x03\x12\x04\xa9\x04\x19\x1a\n\x9a\x05\n\x04\x04\x0c\x02\
9092     \x02\x12\x04\xb6\x04\x023\x1a\x8b\x05\x20The\x20jstype\x20option\x20dete\
9093     rmines\x20the\x20JavaScript\x20type\x20used\x20for\x20values\x20of\x20th\
9094     e\n\x20field.\x20\x20The\x20option\x20is\x20permitted\x20only\x20for\x20\
9095     64\x20bit\x20integral\x20and\x20fixed\x20types\n\x20(int64,\x20uint64,\
9096     \x20sint64,\x20fixed64,\x20sfixed64).\x20\x20A\x20field\x20with\x20jstyp\
9097     e\x20JS_STRING\n\x20is\x20represented\x20as\x20JavaScript\x20string,\x20\
9098     which\x20avoids\x20loss\x20of\x20precision\x20that\n\x20can\x20happen\
9099     \x20when\x20a\x20large\x20value\x20is\x20converted\x20to\x20a\x20floatin\
9100     g\x20point\x20JavaScript.\n\x20Specifying\x20JS_NUMBER\x20for\x20the\x20\
9101     jstype\x20causes\x20the\x20generated\x20JavaScript\x20code\x20to\n\x20us\
9102     e\x20the\x20JavaScript\x20\"number\"\x20type.\x20\x20The\x20behavior\x20\
9103     of\x20the\x20default\x20option\n\x20JS_NORMAL\x20is\x20implementation\
9104     \x20dependent.\n\n\x20This\x20option\x20is\x20an\x20enum\x20to\x20permit\
9105     \x20additional\x20types\x20to\x20be\x20added,\x20e.g.\n\x20goog.math.Int\
9106     eger.\n\n\r\n\x05\x04\x0c\x02\x02\x04\x12\x04\xb6\x04\x02\n\n\r\n\x05\
9107     \x04\x0c\x02\x02\x06\x12\x04\xb6\x04\x0b\x11\n\r\n\x05\x04\x0c\x02\x02\
9108     \x01\x12\x04\xb6\x04\x12\x18\n\r\n\x05\x04\x0c\x02\x02\x03\x12\x04\xb6\
9109     \x04\x1b\x1c\n\r\n\x05\x04\x0c\x02\x02\x08\x12\x04\xb6\x04\x1d2\n\r\n\
9110     \x05\x04\x0c\x02\x02\x07\x12\x04\xb6\x04(1\n\x0e\n\x04\x04\x0c\x04\x01\
9111     \x12\x06\xb7\x04\x02\xc0\x04\x03\n\r\n\x05\x04\x0c\x04\x01\x01\x12\x04\
9112     \xb7\x04\x07\r\n'\n\x06\x04\x0c\x04\x01\x02\0\x12\x04\xb9\x04\x04\x12\
9113     \x1a\x17\x20Use\x20the\x20default\x20type.\n\n\x0f\n\x07\x04\x0c\x04\x01\
9114     \x02\0\x01\x12\x04\xb9\x04\x04\r\n\x0f\n\x07\x04\x0c\x04\x01\x02\0\x02\
9115     \x12\x04\xb9\x04\x10\x11\n)\n\x06\x04\x0c\x04\x01\x02\x01\x12\x04\xbc\
9116     \x04\x04\x12\x1a\x19\x20Use\x20JavaScript\x20strings.\n\n\x0f\n\x07\x04\
9117     \x0c\x04\x01\x02\x01\x01\x12\x04\xbc\x04\x04\r\n\x0f\n\x07\x04\x0c\x04\
9118     \x01\x02\x01\x02\x12\x04\xbc\x04\x10\x11\n)\n\x06\x04\x0c\x04\x01\x02\
9119     \x02\x12\x04\xbf\x04\x04\x12\x1a\x19\x20Use\x20JavaScript\x20numbers.\n\
9120     \n\x0f\n\x07\x04\x0c\x04\x01\x02\x02\x01\x12\x04\xbf\x04\x04\r\n\x0f\n\
9121     \x07\x04\x0c\x04\x01\x02\x02\x02\x12\x04\xbf\x04\x10\x11\n\xef\x0c\n\x04\
9122     \x04\x0c\x02\x03\x12\x04\xde\x04\x02+\x1a\xe0\x0c\x20Should\x20this\x20f\
9123     ield\x20be\x20parsed\x20lazily?\x20\x20Lazy\x20applies\x20only\x20to\x20\
9124     message-type\n\x20fields.\x20\x20It\x20means\x20that\x20when\x20the\x20o\
9125     uter\x20message\x20is\x20initially\x20parsed,\x20the\n\x20inner\x20messa\
9126     ge's\x20contents\x20will\x20not\x20be\x20parsed\x20but\x20instead\x20sto\
9127     red\x20in\x20encoded\n\x20form.\x20\x20The\x20inner\x20message\x20will\
9128     \x20actually\x20be\x20parsed\x20when\x20it\x20is\x20first\x20accessed.\n\
9129     \n\x20This\x20is\x20only\x20a\x20hint.\x20\x20Implementations\x20are\x20\
9130     free\x20to\x20choose\x20whether\x20to\x20use\n\x20eager\x20or\x20lazy\
9131     \x20parsing\x20regardless\x20of\x20the\x20value\x20of\x20this\x20option.\
9132     \x20\x20However,\n\x20setting\x20this\x20option\x20true\x20suggests\x20t\
9133     hat\x20the\x20protocol\x20author\x20believes\x20that\n\x20using\x20lazy\
9134     \x20parsing\x20on\x20this\x20field\x20is\x20worth\x20the\x20additional\
9135     \x20bookkeeping\n\x20overhead\x20typically\x20needed\x20to\x20implement\
9136     \x20it.\n\n\x20This\x20option\x20does\x20not\x20affect\x20the\x20public\
9137     \x20interface\x20of\x20any\x20generated\x20code;\n\x20all\x20method\x20s\
9138     ignatures\x20remain\x20the\x20same.\x20\x20Furthermore,\x20thread-safety\
9139     \x20of\x20the\n\x20interface\x20is\x20not\x20affected\x20by\x20this\x20o\
9140     ption;\x20const\x20methods\x20remain\x20safe\x20to\n\x20call\x20from\x20\
9141     multiple\x20threads\x20concurrently,\x20while\x20non-const\x20methods\
9142     \x20continue\n\x20to\x20require\x20exclusive\x20access.\n\n\n\x20Note\
9143     \x20that\x20implementations\x20may\x20choose\x20not\x20to\x20check\x20re\
9144     quired\x20fields\x20within\n\x20a\x20lazy\x20sub-message.\x20\x20That\
9145     \x20is,\x20calling\x20IsInitialized()\x20on\x20the\x20outer\x20message\n\
9146     \x20may\x20return\x20true\x20even\x20if\x20the\x20inner\x20message\x20ha\
9147     s\x20missing\x20required\x20fields.\n\x20This\x20is\x20necessary\x20beca\
9148     use\x20otherwise\x20the\x20inner\x20message\x20would\x20have\x20to\x20be\
9149     \n\x20parsed\x20in\x20order\x20to\x20perform\x20the\x20check,\x20defeati\
9150     ng\x20the\x20purpose\x20of\x20lazy\n\x20parsing.\x20\x20An\x20implementa\
9151     tion\x20which\x20chooses\x20not\x20to\x20check\x20required\x20fields\n\
9152     \x20must\x20be\x20consistent\x20about\x20it.\x20\x20That\x20is,\x20for\
9153     \x20any\x20particular\x20sub-message,\x20the\n\x20implementation\x20must\
9154     \x20either\x20*always*\x20check\x20its\x20required\x20fields,\x20or\x20*\
9155     never*\n\x20check\x20its\x20required\x20fields,\x20regardless\x20of\x20w\
9156     hether\x20or\x20not\x20the\x20message\x20has\n\x20been\x20parsed.\n\n\r\
9157     \n\x05\x04\x0c\x02\x03\x04\x12\x04\xde\x04\x02\n\n\r\n\x05\x04\x0c\x02\
9158     \x03\x05\x12\x04\xde\x04\x0b\x0f\n\r\n\x05\x04\x0c\x02\x03\x01\x12\x04\
9159     \xde\x04\x10\x14\n\r\n\x05\x04\x0c\x02\x03\x03\x12\x04\xde\x04\x17\x18\n\
9160     \r\n\x05\x04\x0c\x02\x03\x08\x12\x04\xde\x04\x19*\n\r\n\x05\x04\x0c\x02\
9161     \x03\x07\x12\x04\xde\x04$)\n\xe8\x01\n\x04\x04\x0c\x02\x04\x12\x04\xe4\
9162     \x04\x021\x1a\xd9\x01\x20Is\x20this\x20field\x20deprecated?\n\x20Dependi\
9163     ng\x20on\x20the\x20target\x20platform,\x20this\x20can\x20emit\x20Depreca\
9164     ted\x20annotations\n\x20for\x20accessors,\x20or\x20it\x20will\x20be\x20c\
9165     ompletely\x20ignored;\x20in\x20the\x20very\x20least,\x20this\n\x20is\x20\
9166     a\x20formalization\x20for\x20deprecating\x20fields.\n\n\r\n\x05\x04\x0c\
9167     \x02\x04\x04\x12\x04\xe4\x04\x02\n\n\r\n\x05\x04\x0c\x02\x04\x05\x12\x04\
9168     \xe4\x04\x0b\x0f\n\r\n\x05\x04\x0c\x02\x04\x01\x12\x04\xe4\x04\x10\x1a\n\
9169     \r\n\x05\x04\x0c\x02\x04\x03\x12\x04\xe4\x04\x1d\x1e\n\r\n\x05\x04\x0c\
9170     \x02\x04\x08\x12\x04\xe4\x04\x1f0\n\r\n\x05\x04\x0c\x02\x04\x07\x12\x04\
9171     \xe4\x04*/\n?\n\x04\x04\x0c\x02\x05\x12\x04\xe7\x04\x02,\x1a1\x20For\x20\
9172     Google-internal\x20migration\x20only.\x20Do\x20not\x20use.\n\n\r\n\x05\
9173     \x04\x0c\x02\x05\x04\x12\x04\xe7\x04\x02\n\n\r\n\x05\x04\x0c\x02\x05\x05\
9174     \x12\x04\xe7\x04\x0b\x0f\n\r\n\x05\x04\x0c\x02\x05\x01\x12\x04\xe7\x04\
9175     \x10\x14\n\r\n\x05\x04\x0c\x02\x05\x03\x12\x04\xe7\x04\x17\x19\n\r\n\x05\
9176     \x04\x0c\x02\x05\x08\x12\x04\xe7\x04\x1a+\n\r\n\x05\x04\x0c\x02\x05\x07\
9177     \x12\x04\xe7\x04%*\nO\n\x04\x04\x0c\x02\x06\x12\x04\xeb\x04\x02:\x1aA\
9178     \x20The\x20parser\x20stores\x20options\x20it\x20doesn't\x20recognize\x20\
9179     here.\x20See\x20above.\n\n\r\n\x05\x04\x0c\x02\x06\x04\x12\x04\xeb\x04\
9180     \x02\n\n\r\n\x05\x04\x0c\x02\x06\x06\x12\x04\xeb\x04\x0b\x1e\n\r\n\x05\
9181     \x04\x0c\x02\x06\x01\x12\x04\xeb\x04\x1f3\n\r\n\x05\x04\x0c\x02\x06\x03\
9182     \x12\x04\xeb\x0469\nZ\n\x03\x04\x0c\x05\x12\x04\xee\x04\x02\x19\x1aM\x20\
9183     Clients\x20can\x20define\x20custom\x20options\x20in\x20extensions\x20of\
9184     \x20this\x20message.\x20See\x20above.\n\n\x0c\n\x04\x04\x0c\x05\0\x12\
9185     \x04\xee\x04\r\x18\n\r\n\x05\x04\x0c\x05\0\x01\x12\x04\xee\x04\r\x11\n\r\
9186     \n\x05\x04\x0c\x05\0\x02\x12\x04\xee\x04\x15\x18\n\x1c\n\x03\x04\x0c\t\
9187     \x12\x04\xf0\x04\x02\r\"\x0f\x20removed\x20jtype\n\n\x0c\n\x04\x04\x0c\t\
9188     \0\x12\x04\xf0\x04\x0b\x0c\n\r\n\x05\x04\x0c\t\0\x01\x12\x04\xf0\x04\x0b\
9189     \x0c\n\r\n\x05\x04\x0c\t\0\x02\x12\x04\xf0\x04\x0b\x0c\n\x0c\n\x02\x04\r\
9190     \x12\x06\xf3\x04\0\xf9\x04\x01\n\x0b\n\x03\x04\r\x01\x12\x04\xf3\x04\x08\
9191     \x14\nO\n\x04\x04\r\x02\0\x12\x04\xf5\x04\x02:\x1aA\x20The\x20parser\x20\
9192     stores\x20options\x20it\x20doesn't\x20recognize\x20here.\x20See\x20above\
9193     .\n\n\r\n\x05\x04\r\x02\0\x04\x12\x04\xf5\x04\x02\n\n\r\n\x05\x04\r\x02\
9194     \0\x06\x12\x04\xf5\x04\x0b\x1e\n\r\n\x05\x04\r\x02\0\x01\x12\x04\xf5\x04\
9195     \x1f3\n\r\n\x05\x04\r\x02\0\x03\x12\x04\xf5\x0469\nZ\n\x03\x04\r\x05\x12\
9196     \x04\xf8\x04\x02\x19\x1aM\x20Clients\x20can\x20define\x20custom\x20optio\
9197     ns\x20in\x20extensions\x20of\x20this\x20message.\x20See\x20above.\n\n\
9198     \x0c\n\x04\x04\r\x05\0\x12\x04\xf8\x04\r\x18\n\r\n\x05\x04\r\x05\0\x01\
9199     \x12\x04\xf8\x04\r\x11\n\r\n\x05\x04\r\x05\0\x02\x12\x04\xf8\x04\x15\x18\
9200     \n\x0c\n\x02\x04\x0e\x12\x06\xfb\x04\0\x8e\x05\x01\n\x0b\n\x03\x04\x0e\
9201     \x01\x12\x04\xfb\x04\x08\x13\n`\n\x04\x04\x0e\x02\0\x12\x04\xff\x04\x02\
9202     \x20\x1aR\x20Set\x20this\x20option\x20to\x20true\x20to\x20allow\x20mappi\
9203     ng\x20different\x20tag\x20names\x20to\x20the\x20same\n\x20value.\n\n\r\n\
9204     \x05\x04\x0e\x02\0\x04\x12\x04\xff\x04\x02\n\n\r\n\x05\x04\x0e\x02\0\x05\
9205     \x12\x04\xff\x04\x0b\x0f\n\r\n\x05\x04\x0e\x02\0\x01\x12\x04\xff\x04\x10\
9206     \x1b\n\r\n\x05\x04\x0e\x02\0\x03\x12\x04\xff\x04\x1e\x1f\n\xe5\x01\n\x04\
9207     \x04\x0e\x02\x01\x12\x04\x85\x05\x021\x1a\xd6\x01\x20Is\x20this\x20enum\
9208     \x20deprecated?\n\x20Depending\x20on\x20the\x20target\x20platform,\x20th\
9209     is\x20can\x20emit\x20Deprecated\x20annotations\n\x20for\x20the\x20enum,\
9210     \x20or\x20it\x20will\x20be\x20completely\x20ignored;\x20in\x20the\x20ver\
9211     y\x20least,\x20this\n\x20is\x20a\x20formalization\x20for\x20deprecating\
9212     \x20enums.\n\n\r\n\x05\x04\x0e\x02\x01\x04\x12\x04\x85\x05\x02\n\n\r\n\
9213     \x05\x04\x0e\x02\x01\x05\x12\x04\x85\x05\x0b\x0f\n\r\n\x05\x04\x0e\x02\
9214     \x01\x01\x12\x04\x85\x05\x10\x1a\n\r\n\x05\x04\x0e\x02\x01\x03\x12\x04\
9215     \x85\x05\x1d\x1e\n\r\n\x05\x04\x0e\x02\x01\x08\x12\x04\x85\x05\x1f0\n\r\
9216     \n\x05\x04\x0e\x02\x01\x07\x12\x04\x85\x05*/\n\x1f\n\x03\x04\x0e\t\x12\
9217     \x04\x87\x05\x02\r\"\x12\x20javanano_as_lite\n\n\x0c\n\x04\x04\x0e\t\0\
9218     \x12\x04\x87\x05\x0b\x0c\n\r\n\x05\x04\x0e\t\0\x01\x12\x04\x87\x05\x0b\
9219     \x0c\n\r\n\x05\x04\x0e\t\0\x02\x12\x04\x87\x05\x0b\x0c\nO\n\x04\x04\x0e\
9220     \x02\x02\x12\x04\x8a\x05\x02:\x1aA\x20The\x20parser\x20stores\x20options\
9221     \x20it\x20doesn't\x20recognize\x20here.\x20See\x20above.\n\n\r\n\x05\x04\
9222     \x0e\x02\x02\x04\x12\x04\x8a\x05\x02\n\n\r\n\x05\x04\x0e\x02\x02\x06\x12\
9223     \x04\x8a\x05\x0b\x1e\n\r\n\x05\x04\x0e\x02\x02\x01\x12\x04\x8a\x05\x1f3\
9224     \n\r\n\x05\x04\x0e\x02\x02\x03\x12\x04\x8a\x0569\nZ\n\x03\x04\x0e\x05\
9225     \x12\x04\x8d\x05\x02\x19\x1aM\x20Clients\x20can\x20define\x20custom\x20o\
9226     ptions\x20in\x20extensions\x20of\x20this\x20message.\x20See\x20above.\n\
9227     \n\x0c\n\x04\x04\x0e\x05\0\x12\x04\x8d\x05\r\x18\n\r\n\x05\x04\x0e\x05\0\
9228     \x01\x12\x04\x8d\x05\r\x11\n\r\n\x05\x04\x0e\x05\0\x02\x12\x04\x8d\x05\
9229     \x15\x18\n\x0c\n\x02\x04\x0f\x12\x06\x90\x05\0\x9c\x05\x01\n\x0b\n\x03\
9230     \x04\x0f\x01\x12\x04\x90\x05\x08\x18\n\xf7\x01\n\x04\x04\x0f\x02\0\x12\
9231     \x04\x95\x05\x021\x1a\xe8\x01\x20Is\x20this\x20enum\x20value\x20deprecat\
9232     ed?\n\x20Depending\x20on\x20the\x20target\x20platform,\x20this\x20can\
9233     \x20emit\x20Deprecated\x20annotations\n\x20for\x20the\x20enum\x20value,\
9234     \x20or\x20it\x20will\x20be\x20completely\x20ignored;\x20in\x20the\x20ver\
9235     y\x20least,\n\x20this\x20is\x20a\x20formalization\x20for\x20deprecating\
9236     \x20enum\x20values.\n\n\r\n\x05\x04\x0f\x02\0\x04\x12\x04\x95\x05\x02\n\
9237     \n\r\n\x05\x04\x0f\x02\0\x05\x12\x04\x95\x05\x0b\x0f\n\r\n\x05\x04\x0f\
9238     \x02\0\x01\x12\x04\x95\x05\x10\x1a\n\r\n\x05\x04\x0f\x02\0\x03\x12\x04\
9239     \x95\x05\x1d\x1e\n\r\n\x05\x04\x0f\x02\0\x08\x12\x04\x95\x05\x1f0\n\r\n\
9240     \x05\x04\x0f\x02\0\x07\x12\x04\x95\x05*/\nO\n\x04\x04\x0f\x02\x01\x12\
9241     \x04\x98\x05\x02:\x1aA\x20The\x20parser\x20stores\x20options\x20it\x20do\
9242     esn't\x20recognize\x20here.\x20See\x20above.\n\n\r\n\x05\x04\x0f\x02\x01\
9243     \x04\x12\x04\x98\x05\x02\n\n\r\n\x05\x04\x0f\x02\x01\x06\x12\x04\x98\x05\
9244     \x0b\x1e\n\r\n\x05\x04\x0f\x02\x01\x01\x12\x04\x98\x05\x1f3\n\r\n\x05\
9245     \x04\x0f\x02\x01\x03\x12\x04\x98\x0569\nZ\n\x03\x04\x0f\x05\x12\x04\x9b\
9246     \x05\x02\x19\x1aM\x20Clients\x20can\x20define\x20custom\x20options\x20in\
9247     \x20extensions\x20of\x20this\x20message.\x20See\x20above.\n\n\x0c\n\x04\
9248     \x04\x0f\x05\0\x12\x04\x9b\x05\r\x18\n\r\n\x05\x04\x0f\x05\0\x01\x12\x04\
9249     \x9b\x05\r\x11\n\r\n\x05\x04\x0f\x05\0\x02\x12\x04\x9b\x05\x15\x18\n\x0c\
9250     \n\x02\x04\x10\x12\x06\x9e\x05\0\xb0\x05\x01\n\x0b\n\x03\x04\x10\x01\x12\
9251     \x04\x9e\x05\x08\x16\n\xd9\x03\n\x04\x04\x10\x02\0\x12\x04\xa9\x05\x022\
9252     \x1a\xdf\x01\x20Is\x20this\x20service\x20deprecated?\n\x20Depending\x20o\
9253     n\x20the\x20target\x20platform,\x20this\x20can\x20emit\x20Deprecated\x20\
9254     annotations\n\x20for\x20the\x20service,\x20or\x20it\x20will\x20be\x20com\
9255     pletely\x20ignored;\x20in\x20the\x20very\x20least,\n\x20this\x20is\x20a\
9256     \x20formalization\x20for\x20deprecating\x20services.\n2\xe8\x01\x20Note:\
9257     \x20\x20Field\x20numbers\x201\x20through\x2032\x20are\x20reserved\x20for\
9258     \x20Google's\x20internal\x20RPC\n\x20\x20\x20framework.\x20\x20We\x20apo\
9259     logize\x20for\x20hoarding\x20these\x20numbers\x20to\x20ourselves,\x20but\
9260     \n\x20\x20\x20we\x20were\x20already\x20using\x20them\x20long\x20before\
9261     \x20we\x20decided\x20to\x20release\x20Protocol\n\x20\x20\x20Buffers.\n\n\
9262     \r\n\x05\x04\x10\x02\0\x04\x12\x04\xa9\x05\x02\n\n\r\n\x05\x04\x10\x02\0\
9263     \x05\x12\x04\xa9\x05\x0b\x0f\n\r\n\x05\x04\x10\x02\0\x01\x12\x04\xa9\x05\
9264     \x10\x1a\n\r\n\x05\x04\x10\x02\0\x03\x12\x04\xa9\x05\x1d\x1f\n\r\n\x05\
9265     \x04\x10\x02\0\x08\x12\x04\xa9\x05\x201\n\r\n\x05\x04\x10\x02\0\x07\x12\
9266     \x04\xa9\x05+0\nO\n\x04\x04\x10\x02\x01\x12\x04\xac\x05\x02:\x1aA\x20The\
9267     \x20parser\x20stores\x20options\x20it\x20doesn't\x20recognize\x20here.\
9268     \x20See\x20above.\n\n\r\n\x05\x04\x10\x02\x01\x04\x12\x04\xac\x05\x02\n\
9269     \n\r\n\x05\x04\x10\x02\x01\x06\x12\x04\xac\x05\x0b\x1e\n\r\n\x05\x04\x10\
9270     \x02\x01\x01\x12\x04\xac\x05\x1f3\n\r\n\x05\x04\x10\x02\x01\x03\x12\x04\
9271     \xac\x0569\nZ\n\x03\x04\x10\x05\x12\x04\xaf\x05\x02\x19\x1aM\x20Clients\
9272     \x20can\x20define\x20custom\x20options\x20in\x20extensions\x20of\x20this\
9273     \x20message.\x20See\x20above.\n\n\x0c\n\x04\x04\x10\x05\0\x12\x04\xaf\
9274     \x05\r\x18\n\r\n\x05\x04\x10\x05\0\x01\x12\x04\xaf\x05\r\x11\n\r\n\x05\
9275     \x04\x10\x05\0\x02\x12\x04\xaf\x05\x15\x18\n\x0c\n\x02\x04\x11\x12\x06\
9276     \xb2\x05\0\xcf\x05\x01\n\x0b\n\x03\x04\x11\x01\x12\x04\xb2\x05\x08\x15\n\
9277     \xd6\x03\n\x04\x04\x11\x02\0\x12\x04\xbd\x05\x022\x1a\xdc\x01\x20Is\x20t\
9278     his\x20method\x20deprecated?\n\x20Depending\x20on\x20the\x20target\x20pl\
9279     atform,\x20this\x20can\x20emit\x20Deprecated\x20annotations\n\x20for\x20\
9280     the\x20method,\x20or\x20it\x20will\x20be\x20completely\x20ignored;\x20in\
9281     \x20the\x20very\x20least,\n\x20this\x20is\x20a\x20formalization\x20for\
9282     \x20deprecating\x20methods.\n2\xe8\x01\x20Note:\x20\x20Field\x20numbers\
9283     \x201\x20through\x2032\x20are\x20reserved\x20for\x20Google's\x20internal\
9284     \x20RPC\n\x20\x20\x20framework.\x20\x20We\x20apologize\x20for\x20hoardin\
9285     g\x20these\x20numbers\x20to\x20ourselves,\x20but\n\x20\x20\x20we\x20were\
9286     \x20already\x20using\x20them\x20long\x20before\x20we\x20decided\x20to\
9287     \x20release\x20Protocol\n\x20\x20\x20Buffers.\n\n\r\n\x05\x04\x11\x02\0\
9288     \x04\x12\x04\xbd\x05\x02\n\n\r\n\x05\x04\x11\x02\0\x05\x12\x04\xbd\x05\
9289     \x0b\x0f\n\r\n\x05\x04\x11\x02\0\x01\x12\x04\xbd\x05\x10\x1a\n\r\n\x05\
9290     \x04\x11\x02\0\x03\x12\x04\xbd\x05\x1d\x1f\n\r\n\x05\x04\x11\x02\0\x08\
9291     \x12\x04\xbd\x05\x201\n\r\n\x05\x04\x11\x02\0\x07\x12\x04\xbd\x05+0\n\
9292     \xf0\x01\n\x04\x04\x11\x04\0\x12\x06\xc2\x05\x02\xc6\x05\x03\x1a\xdf\x01\
9293     \x20Is\x20this\x20method\x20side-effect-free\x20(or\x20safe\x20in\x20HTT\
9294     P\x20parlance),\x20or\x20idempotent,\n\x20or\x20neither?\x20HTTP\x20base\
9295     d\x20RPC\x20implementation\x20may\x20choose\x20GET\x20verb\x20for\x20saf\
9296     e\n\x20methods,\x20and\x20PUT\x20verb\x20for\x20idempotent\x20methods\
9297     \x20instead\x20of\x20the\x20default\x20POST.\n\n\r\n\x05\x04\x11\x04\0\
9298     \x01\x12\x04\xc2\x05\x07\x17\n\x0e\n\x06\x04\x11\x04\0\x02\0\x12\x04\xc3\
9299     \x05\x04\x1c\n\x0f\n\x07\x04\x11\x04\0\x02\0\x01\x12\x04\xc3\x05\x04\x17\
9300     \n\x0f\n\x07\x04\x11\x04\0\x02\0\x02\x12\x04\xc3\x05\x1a\x1b\n$\n\x06\
9301     \x04\x11\x04\0\x02\x01\x12\x04\xc4\x05\x04\x18\"\x14\x20implies\x20idemp\
9302     otent\n\n\x0f\n\x07\x04\x11\x04\0\x02\x01\x01\x12\x04\xc4\x05\x04\x13\n\
9303     \x0f\n\x07\x04\x11\x04\0\x02\x01\x02\x12\x04\xc4\x05\x16\x17\n7\n\x06\
9304     \x04\x11\x04\0\x02\x02\x12\x04\xc5\x05\x04\x13\"'\x20idempotent,\x20but\
9305     \x20may\x20have\x20side\x20effects\n\n\x0f\n\x07\x04\x11\x04\0\x02\x02\
9306     \x01\x12\x04\xc5\x05\x04\x0e\n\x0f\n\x07\x04\x11\x04\0\x02\x02\x02\x12\
9307     \x04\xc5\x05\x11\x12\n\x0e\n\x04\x04\x11\x02\x01\x12\x06\xc7\x05\x02\xc8\
9308     \x05&\n\r\n\x05\x04\x11\x02\x01\x04\x12\x04\xc7\x05\x02\n\n\r\n\x05\x04\
9309     \x11\x02\x01\x06\x12\x04\xc7\x05\x0b\x1b\n\r\n\x05\x04\x11\x02\x01\x01\
9310     \x12\x04\xc7\x05\x1c-\n\r\n\x05\x04\x11\x02\x01\x03\x12\x04\xc7\x0502\n\
9311     \r\n\x05\x04\x11\x02\x01\x08\x12\x04\xc8\x05\x06%\n\r\n\x05\x04\x11\x02\
9312     \x01\x07\x12\x04\xc8\x05\x11$\nO\n\x04\x04\x11\x02\x02\x12\x04\xcb\x05\
9313     \x02:\x1aA\x20The\x20parser\x20stores\x20options\x20it\x20doesn't\x20rec\
9314     ognize\x20here.\x20See\x20above.\n\n\r\n\x05\x04\x11\x02\x02\x04\x12\x04\
9315     \xcb\x05\x02\n\n\r\n\x05\x04\x11\x02\x02\x06\x12\x04\xcb\x05\x0b\x1e\n\r\
9316     \n\x05\x04\x11\x02\x02\x01\x12\x04\xcb\x05\x1f3\n\r\n\x05\x04\x11\x02\
9317     \x02\x03\x12\x04\xcb\x0569\nZ\n\x03\x04\x11\x05\x12\x04\xce\x05\x02\x19\
9318     \x1aM\x20Clients\x20can\x20define\x20custom\x20options\x20in\x20extensio\
9319     ns\x20of\x20this\x20message.\x20See\x20above.\n\n\x0c\n\x04\x04\x11\x05\
9320     \0\x12\x04\xce\x05\r\x18\n\r\n\x05\x04\x11\x05\0\x01\x12\x04\xce\x05\r\
9321     \x11\n\r\n\x05\x04\x11\x05\0\x02\x12\x04\xce\x05\x15\x18\n\x8b\x03\n\x02\
9322     \x04\x12\x12\x06\xd8\x05\0\xec\x05\x01\x1a\xfc\x02\x20A\x20message\x20re\
9323     presenting\x20a\x20option\x20the\x20parser\x20does\x20not\x20recognize.\
9324     \x20This\x20only\n\x20appears\x20in\x20options\x20protos\x20created\x20b\
9325     y\x20the\x20compiler::Parser\x20class.\n\x20DescriptorPool\x20resolves\
9326     \x20these\x20when\x20building\x20Descriptor\x20objects.\x20Therefore,\n\
9327     \x20options\x20protos\x20in\x20descriptor\x20objects\x20(e.g.\x20returne\
9328     d\x20by\x20Descriptor::options(),\n\x20or\x20produced\x20by\x20Descripto\
9329     r::CopyTo())\x20will\x20never\x20have\x20UninterpretedOptions\n\x20in\
9330     \x20them.\n\n\x0b\n\x03\x04\x12\x01\x12\x04\xd8\x05\x08\x1b\n\xcb\x02\n\
9331     \x04\x04\x12\x03\0\x12\x06\xde\x05\x02\xe1\x05\x03\x1a\xba\x02\x20The\
9332     \x20name\x20of\x20the\x20uninterpreted\x20option.\x20\x20Each\x20string\
9333     \x20represents\x20a\x20segment\x20in\n\x20a\x20dot-separated\x20name.\
9334     \x20\x20is_extension\x20is\x20true\x20iff\x20a\x20segment\x20represents\
9335     \x20an\n\x20extension\x20(denoted\x20with\x20parentheses\x20in\x20option\
9336     s\x20specs\x20in\x20.proto\x20files).\n\x20E.g.,{\x20[\"foo\",\x20false]\
9337     ,\x20[\"bar.baz\",\x20true],\x20[\"qux\",\x20false]\x20}\x20represents\n\
9338     \x20\"foo.(bar.baz).qux\".\n\n\r\n\x05\x04\x12\x03\0\x01\x12\x04\xde\x05\
9339     \n\x12\n\x0e\n\x06\x04\x12\x03\0\x02\0\x12\x04\xdf\x05\x04\"\n\x0f\n\x07\
9340     \x04\x12\x03\0\x02\0\x04\x12\x04\xdf\x05\x04\x0c\n\x0f\n\x07\x04\x12\x03\
9341     \0\x02\0\x05\x12\x04\xdf\x05\r\x13\n\x0f\n\x07\x04\x12\x03\0\x02\0\x01\
9342     \x12\x04\xdf\x05\x14\x1d\n\x0f\n\x07\x04\x12\x03\0\x02\0\x03\x12\x04\xdf\
9343     \x05\x20!\n\x0e\n\x06\x04\x12\x03\0\x02\x01\x12\x04\xe0\x05\x04#\n\x0f\n\
9344     \x07\x04\x12\x03\0\x02\x01\x04\x12\x04\xe0\x05\x04\x0c\n\x0f\n\x07\x04\
9345     \x12\x03\0\x02\x01\x05\x12\x04\xe0\x05\r\x11\n\x0f\n\x07\x04\x12\x03\0\
9346     \x02\x01\x01\x12\x04\xe0\x05\x12\x1e\n\x0f\n\x07\x04\x12\x03\0\x02\x01\
9347     \x03\x12\x04\xe0\x05!\"\n\x0c\n\x04\x04\x12\x02\0\x12\x04\xe2\x05\x02\
9348     \x1d\n\r\n\x05\x04\x12\x02\0\x04\x12\x04\xe2\x05\x02\n\n\r\n\x05\x04\x12\
9349     \x02\0\x06\x12\x04\xe2\x05\x0b\x13\n\r\n\x05\x04\x12\x02\0\x01\x12\x04\
9350     \xe2\x05\x14\x18\n\r\n\x05\x04\x12\x02\0\x03\x12\x04\xe2\x05\x1b\x1c\n\
9351     \x9c\x01\n\x04\x04\x12\x02\x01\x12\x04\xe6\x05\x02'\x1a\x8d\x01\x20The\
9352     \x20value\x20of\x20the\x20uninterpreted\x20option,\x20in\x20whatever\x20\
9353     type\x20the\x20tokenizer\n\x20identified\x20it\x20as\x20during\x20parsin\
9354     g.\x20Exactly\x20one\x20of\x20these\x20should\x20be\x20set.\n\n\r\n\x05\
9355     \x04\x12\x02\x01\x04\x12\x04\xe6\x05\x02\n\n\r\n\x05\x04\x12\x02\x01\x05\
9356     \x12\x04\xe6\x05\x0b\x11\n\r\n\x05\x04\x12\x02\x01\x01\x12\x04\xe6\x05\
9357     \x12\"\n\r\n\x05\x04\x12\x02\x01\x03\x12\x04\xe6\x05%&\n\x0c\n\x04\x04\
9358     \x12\x02\x02\x12\x04\xe7\x05\x02)\n\r\n\x05\x04\x12\x02\x02\x04\x12\x04\
9359     \xe7\x05\x02\n\n\r\n\x05\x04\x12\x02\x02\x05\x12\x04\xe7\x05\x0b\x11\n\r\
9360     \n\x05\x04\x12\x02\x02\x01\x12\x04\xe7\x05\x12$\n\r\n\x05\x04\x12\x02\
9361     \x02\x03\x12\x04\xe7\x05'(\n\x0c\n\x04\x04\x12\x02\x03\x12\x04\xe8\x05\
9362     \x02(\n\r\n\x05\x04\x12\x02\x03\x04\x12\x04\xe8\x05\x02\n\n\r\n\x05\x04\
9363     \x12\x02\x03\x05\x12\x04\xe8\x05\x0b\x10\n\r\n\x05\x04\x12\x02\x03\x01\
9364     \x12\x04\xe8\x05\x11#\n\r\n\x05\x04\x12\x02\x03\x03\x12\x04\xe8\x05&'\n\
9365     \x0c\n\x04\x04\x12\x02\x04\x12\x04\xe9\x05\x02#\n\r\n\x05\x04\x12\x02\
9366     \x04\x04\x12\x04\xe9\x05\x02\n\n\r\n\x05\x04\x12\x02\x04\x05\x12\x04\xe9\
9367     \x05\x0b\x11\n\r\n\x05\x04\x12\x02\x04\x01\x12\x04\xe9\x05\x12\x1e\n\r\n\
9368     \x05\x04\x12\x02\x04\x03\x12\x04\xe9\x05!\"\n\x0c\n\x04\x04\x12\x02\x05\
9369     \x12\x04\xea\x05\x02\"\n\r\n\x05\x04\x12\x02\x05\x04\x12\x04\xea\x05\x02\
9370     \n\n\r\n\x05\x04\x12\x02\x05\x05\x12\x04\xea\x05\x0b\x10\n\r\n\x05\x04\
9371     \x12\x02\x05\x01\x12\x04\xea\x05\x11\x1d\n\r\n\x05\x04\x12\x02\x05\x03\
9372     \x12\x04\xea\x05\x20!\n\x0c\n\x04\x04\x12\x02\x06\x12\x04\xeb\x05\x02&\n\
9373     \r\n\x05\x04\x12\x02\x06\x04\x12\x04\xeb\x05\x02\n\n\r\n\x05\x04\x12\x02\
9374     \x06\x05\x12\x04\xeb\x05\x0b\x11\n\r\n\x05\x04\x12\x02\x06\x01\x12\x04\
9375     \xeb\x05\x12!\n\r\n\x05\x04\x12\x02\x06\x03\x12\x04\xeb\x05$%\n\xda\x01\
9376     \n\x02\x04\x13\x12\x06\xf3\x05\0\xf4\x06\x01\x1aj\x20Encapsulates\x20inf\
9377     ormation\x20about\x20the\x20original\x20source\x20file\x20from\x20which\
9378     \x20a\n\x20FileDescriptorProto\x20was\x20generated.\n2`\x20=============\
9379     ======================================================\n\x20Optional\x20\
9380     source\x20code\x20info\n\n\x0b\n\x03\x04\x13\x01\x12\x04\xf3\x05\x08\x16\
9381     \n\x82\x11\n\x04\x04\x13\x02\0\x12\x04\x9f\x06\x02!\x1a\xf3\x10\x20A\x20\
9382     Location\x20identifies\x20a\x20piece\x20of\x20source\x20code\x20in\x20a\
9383     \x20.proto\x20file\x20which\n\x20corresponds\x20to\x20a\x20particular\
9384     \x20definition.\x20\x20This\x20information\x20is\x20intended\n\x20to\x20\
9385     be\x20useful\x20to\x20IDEs,\x20code\x20indexers,\x20documentation\x20gen\
9386     erators,\x20and\x20similar\n\x20tools.\n\n\x20For\x20example,\x20say\x20\
9387     we\x20have\x20a\x20file\x20like:\n\x20\x20\x20message\x20Foo\x20{\n\x20\
9388     \x20\x20\x20\x20optional\x20string\x20foo\x20=\x201;\n\x20\x20\x20}\n\
9389     \x20Let's\x20look\x20at\x20just\x20the\x20field\x20definition:\n\x20\x20\
9390     \x20optional\x20string\x20foo\x20=\x201;\n\x20\x20\x20^\x20\x20\x20\x20\
9391     \x20\x20\x20^^\x20\x20\x20\x20\x20^^\x20\x20^\x20\x20^^^\n\x20\x20\x20a\
9392     \x20\x20\x20\x20\x20\x20\x20bc\x20\x20\x20\x20\x20de\x20\x20f\x20\x20ghi\
9393     \n\x20We\x20have\x20the\x20following\x20locations:\n\x20\x20\x20span\x20\
9394     \x20\x20path\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\
9395     represents\n\x20\x20\x20[a,i)\x20\x20[\x204,\x200,\x202,\x200\x20]\x20\
9396     \x20\x20\x20\x20The\x20whole\x20field\x20definition.\n\x20\x20\x20[a,b)\
9397     \x20\x20[\x204,\x200,\x202,\x200,\x204\x20]\x20\x20The\x20label\x20(opti\
9398     onal).\n\x20\x20\x20[c,d)\x20\x20[\x204,\x200,\x202,\x200,\x205\x20]\x20\
9399     \x20The\x20type\x20(string).\n\x20\x20\x20[e,f)\x20\x20[\x204,\x200,\x20\
9400     2,\x200,\x201\x20]\x20\x20The\x20name\x20(foo).\n\x20\x20\x20[g,h)\x20\
9401     \x20[\x204,\x200,\x202,\x200,\x203\x20]\x20\x20The\x20number\x20(1).\n\n\
9402     \x20Notes:\n\x20-\x20A\x20location\x20may\x20refer\x20to\x20a\x20repeate\
9403     d\x20field\x20itself\x20(i.e.\x20not\x20to\x20any\n\x20\x20\x20particula\
9404     r\x20index\x20within\x20it).\x20\x20This\x20is\x20used\x20whenever\x20a\
9405     \x20set\x20of\x20elements\x20are\n\x20\x20\x20logically\x20enclosed\x20i\
9406     n\x20a\x20single\x20code\x20segment.\x20\x20For\x20example,\x20an\x20ent\
9407     ire\n\x20\x20\x20extend\x20block\x20(possibly\x20containing\x20multiple\
9408     \x20extension\x20definitions)\x20will\n\x20\x20\x20have\x20an\x20outer\
9409     \x20location\x20whose\x20path\x20refers\x20to\x20the\x20\"extensions\"\
9410     \x20repeated\n\x20\x20\x20field\x20without\x20an\x20index.\n\x20-\x20Mul\
9411     tiple\x20locations\x20may\x20have\x20the\x20same\x20path.\x20\x20This\
9412     \x20happens\x20when\x20a\x20single\n\x20\x20\x20logical\x20declaration\
9413     \x20is\x20spread\x20out\x20across\x20multiple\x20places.\x20\x20The\x20m\
9414     ost\n\x20\x20\x20obvious\x20example\x20is\x20the\x20\"extend\"\x20block\
9415     \x20again\x20--\x20there\x20may\x20be\x20multiple\n\x20\x20\x20extend\
9416     \x20blocks\x20in\x20the\x20same\x20scope,\x20each\x20of\x20which\x20will\
9417     \x20have\x20the\x20same\x20path.\n\x20-\x20A\x20location's\x20span\x20is\
9418     \x20not\x20always\x20a\x20subset\x20of\x20its\x20parent's\x20span.\x20\
9419     \x20For\n\x20\x20\x20example,\x20the\x20\"extendee\"\x20of\x20an\x20exte\
9420     nsion\x20declaration\x20appears\x20at\x20the\n\x20\x20\x20beginning\x20o\
9421     f\x20the\x20\"extend\"\x20block\x20and\x20is\x20shared\x20by\x20all\x20e\
9422     xtensions\x20within\n\x20\x20\x20the\x20block.\n\x20-\x20Just\x20because\
9423     \x20a\x20location's\x20span\x20is\x20a\x20subset\x20of\x20some\x20other\
9424     \x20location's\x20span\n\x20\x20\x20does\x20not\x20mean\x20that\x20it\
9425     \x20is\x20a\x20descendant.\x20\x20For\x20example,\x20a\x20\"group\"\x20d\
9426     efines\n\x20\x20\x20both\x20a\x20type\x20and\x20a\x20field\x20in\x20a\
9427     \x20single\x20declaration.\x20\x20Thus,\x20the\x20locations\n\x20\x20\
9428     \x20corresponding\x20to\x20the\x20type\x20and\x20field\x20and\x20their\
9429     \x20components\x20will\x20overlap.\n\x20-\x20Code\x20which\x20tries\x20t\
9430     o\x20interpret\x20locations\x20should\x20probably\x20be\x20designed\x20t\
9431     o\n\x20\x20\x20ignore\x20those\x20that\x20it\x20doesn't\x20understand,\
9432     \x20as\x20more\x20types\x20of\x20locations\x20could\n\x20\x20\x20be\x20r\
9433     ecorded\x20in\x20the\x20future.\n\n\r\n\x05\x04\x13\x02\0\x04\x12\x04\
9434     \x9f\x06\x02\n\n\r\n\x05\x04\x13\x02\0\x06\x12\x04\x9f\x06\x0b\x13\n\r\n\
9435     \x05\x04\x13\x02\0\x01\x12\x04\x9f\x06\x14\x1c\n\r\n\x05\x04\x13\x02\0\
9436     \x03\x12\x04\x9f\x06\x1f\x20\n\x0e\n\x04\x04\x13\x03\0\x12\x06\xa0\x06\
9437     \x02\xf3\x06\x03\n\r\n\x05\x04\x13\x03\0\x01\x12\x04\xa0\x06\n\x12\n\x83\
9438     \x07\n\x06\x04\x13\x03\0\x02\0\x12\x04\xb8\x06\x04,\x1a\xf2\x06\x20Ident\
9439     ifies\x20which\x20part\x20of\x20the\x20FileDescriptorProto\x20was\x20def\
9440     ined\x20at\x20this\n\x20location.\n\n\x20Each\x20element\x20is\x20a\x20f\
9441     ield\x20number\x20or\x20an\x20index.\x20\x20They\x20form\x20a\x20path\
9442     \x20from\n\x20the\x20root\x20FileDescriptorProto\x20to\x20the\x20place\
9443     \x20where\x20the\x20definition.\x20\x20For\n\x20example,\x20this\x20path\
9444     :\n\x20\x20\x20[\x204,\x203,\x202,\x207,\x201\x20]\n\x20refers\x20to:\n\
9445     \x20\x20\x20file.message_type(3)\x20\x20//\x204,\x203\n\x20\x20\x20\x20\
9446     \x20\x20\x20.field(7)\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x202,\x207\n\
9447     \x20\x20\x20\x20\x20\x20\x20.name()\x20\x20\x20\x20\x20\x20\x20\x20\x20\
9448     \x20\x20//\x201\n\x20This\x20is\x20because\x20FileDescriptorProto.messag\
9449     e_type\x20has\x20field\x20number\x204:\n\x20\x20\x20repeated\x20Descript\
9450     orProto\x20message_type\x20=\x204;\n\x20and\x20DescriptorProto.field\x20\
9451     has\x20field\x20number\x202:\n\x20\x20\x20repeated\x20FieldDescriptorPro\
9452     to\x20field\x20=\x202;\n\x20and\x20FieldDescriptorProto.name\x20has\x20f\
9453     ield\x20number\x201:\n\x20\x20\x20optional\x20string\x20name\x20=\x201;\
9454     \n\n\x20Thus,\x20the\x20above\x20path\x20gives\x20the\x20location\x20of\
9455     \x20a\x20field\x20name.\x20\x20If\x20we\x20removed\n\x20the\x20last\x20e\
9456     lement:\n\x20\x20\x20[\x204,\x203,\x202,\x207\x20]\n\x20this\x20path\x20\
9457     refers\x20to\x20the\x20whole\x20field\x20declaration\x20(from\x20the\x20\
9458     beginning\n\x20of\x20the\x20label\x20to\x20the\x20terminating\x20semicol\
9459     on).\n\n\x0f\n\x07\x04\x13\x03\0\x02\0\x04\x12\x04\xb8\x06\x04\x0c\n\x0f\
9460     \n\x07\x04\x13\x03\0\x02\0\x05\x12\x04\xb8\x06\r\x12\n\x0f\n\x07\x04\x13\
9461     \x03\0\x02\0\x01\x12\x04\xb8\x06\x13\x17\n\x0f\n\x07\x04\x13\x03\0\x02\0\
9462     \x03\x12\x04\xb8\x06\x1a\x1b\n\x0f\n\x07\x04\x13\x03\0\x02\0\x08\x12\x04\
9463     \xb8\x06\x1c+\n\x10\n\x08\x04\x13\x03\0\x02\0\x08\x02\x12\x04\xb8\x06\
9464     \x1d*\n\xd2\x02\n\x06\x04\x13\x03\0\x02\x01\x12\x04\xbf\x06\x04,\x1a\xc1\
9465     \x02\x20Always\x20has\x20exactly\x20three\x20or\x20four\x20elements:\x20\
9466     start\x20line,\x20start\x20column,\n\x20end\x20line\x20(optional,\x20oth\
9467     erwise\x20assumed\x20same\x20as\x20start\x20line),\x20end\x20column.\n\
9468     \x20These\x20are\x20packed\x20into\x20a\x20single\x20field\x20for\x20eff\
9469     iciency.\x20\x20Note\x20that\x20line\n\x20and\x20column\x20numbers\x20ar\
9470     e\x20zero-based\x20--\x20typically\x20you\x20will\x20want\x20to\x20add\n\
9471     \x201\x20to\x20each\x20before\x20displaying\x20to\x20a\x20user.\n\n\x0f\
9472     \n\x07\x04\x13\x03\0\x02\x01\x04\x12\x04\xbf\x06\x04\x0c\n\x0f\n\x07\x04\
9473     \x13\x03\0\x02\x01\x05\x12\x04\xbf\x06\r\x12\n\x0f\n\x07\x04\x13\x03\0\
9474     \x02\x01\x01\x12\x04\xbf\x06\x13\x17\n\x0f\n\x07\x04\x13\x03\0\x02\x01\
9475     \x03\x12\x04\xbf\x06\x1a\x1b\n\x0f\n\x07\x04\x13\x03\0\x02\x01\x08\x12\
9476     \x04\xbf\x06\x1c+\n\x10\n\x08\x04\x13\x03\0\x02\x01\x08\x02\x12\x04\xbf\
9477     \x06\x1d*\n\xa5\x0c\n\x06\x04\x13\x03\0\x02\x02\x12\x04\xf0\x06\x04)\x1a\
9478     \x94\x0c\x20If\x20this\x20SourceCodeInfo\x20represents\x20a\x20complete\
9479     \x20declaration,\x20these\x20are\x20any\n\x20comments\x20appearing\x20be\
9480     fore\x20and\x20after\x20the\x20declaration\x20which\x20appear\x20to\x20b\
9481     e\n\x20attached\x20to\x20the\x20declaration.\n\n\x20A\x20series\x20of\
9482     \x20line\x20comments\x20appearing\x20on\x20consecutive\x20lines,\x20with\
9483     \x20no\x20other\n\x20tokens\x20appearing\x20on\x20those\x20lines,\x20wil\
9484     l\x20be\x20treated\x20as\x20a\x20single\x20comment.\n\n\x20leading_detac\
9485     hed_comments\x20will\x20keep\x20paragraphs\x20of\x20comments\x20that\x20\
9486     appear\n\x20before\x20(but\x20not\x20connected\x20to)\x20the\x20current\
9487     \x20element.\x20Each\x20paragraph,\n\x20separated\x20by\x20empty\x20line\
9488     s,\x20will\x20be\x20one\x20comment\x20element\x20in\x20the\x20repeated\n\
9489     \x20field.\n\n\x20Only\x20the\x20comment\x20content\x20is\x20provided;\
9490     \x20comment\x20markers\x20(e.g.\x20//)\x20are\n\x20stripped\x20out.\x20\
9491     \x20For\x20block\x20comments,\x20leading\x20whitespace\x20and\x20an\x20a\
9492     sterisk\n\x20will\x20be\x20stripped\x20from\x20the\x20beginning\x20of\
9493     \x20each\x20line\x20other\x20than\x20the\x20first.\n\x20Newlines\x20are\
9494     \x20included\x20in\x20the\x20output.\n\n\x20Examples:\n\n\x20\x20\x20opt\
9495     ional\x20int32\x20foo\x20=\x201;\x20\x20//\x20Comment\x20attached\x20to\
9496     \x20foo.\n\x20\x20\x20//\x20Comment\x20attached\x20to\x20bar.\n\x20\x20\
9497     \x20optional\x20int32\x20bar\x20=\x202;\n\n\x20\x20\x20optional\x20strin\
9498     g\x20baz\x20=\x203;\n\x20\x20\x20//\x20Comment\x20attached\x20to\x20baz.\
9499     \n\x20\x20\x20//\x20Another\x20line\x20attached\x20to\x20baz.\n\n\x20\
9500     \x20\x20//\x20Comment\x20attached\x20to\x20qux.\n\x20\x20\x20//\n\x20\
9501     \x20\x20//\x20Another\x20line\x20attached\x20to\x20qux.\n\x20\x20\x20opt\
9502     ional\x20double\x20qux\x20=\x204;\n\n\x20\x20\x20//\x20Detached\x20comme\
9503     nt\x20for\x20corge.\x20This\x20is\x20not\x20leading\x20or\x20trailing\
9504     \x20comments\n\x20\x20\x20//\x20to\x20qux\x20or\x20corge\x20because\x20t\
9505     here\x20are\x20blank\x20lines\x20separating\x20it\x20from\n\x20\x20\x20/\
9506     /\x20both.\n\n\x20\x20\x20//\x20Detached\x20comment\x20for\x20corge\x20p\
9507     aragraph\x202.\n\n\x20\x20\x20optional\x20string\x20corge\x20=\x205;\n\
9508     \x20\x20\x20/*\x20Block\x20comment\x20attached\n\x20\x20\x20\x20*\x20to\
9509     \x20corge.\x20\x20Leading\x20asterisks\n\x20\x20\x20\x20*\x20will\x20be\
9510     \x20removed.\x20*/\n\x20\x20\x20/*\x20Block\x20comment\x20attached\x20to\
9511     \n\x20\x20\x20\x20*\x20grault.\x20*/\n\x20\x20\x20optional\x20int32\x20g\
9512     rault\x20=\x206;\n\n\x20\x20\x20//\x20ignored\x20detached\x20comments.\n\
9513     \n\x0f\n\x07\x04\x13\x03\0\x02\x02\x04\x12\x04\xf0\x06\x04\x0c\n\x0f\n\
9514     \x07\x04\x13\x03\0\x02\x02\x05\x12\x04\xf0\x06\r\x13\n\x0f\n\x07\x04\x13\
9515     \x03\0\x02\x02\x01\x12\x04\xf0\x06\x14$\n\x0f\n\x07\x04\x13\x03\0\x02\
9516     \x02\x03\x12\x04\xf0\x06'(\n\x0e\n\x06\x04\x13\x03\0\x02\x03\x12\x04\xf1\
9517     \x06\x04*\n\x0f\n\x07\x04\x13\x03\0\x02\x03\x04\x12\x04\xf1\x06\x04\x0c\
9518     \n\x0f\n\x07\x04\x13\x03\0\x02\x03\x05\x12\x04\xf1\x06\r\x13\n\x0f\n\x07\
9519     \x04\x13\x03\0\x02\x03\x01\x12\x04\xf1\x06\x14%\n\x0f\n\x07\x04\x13\x03\
9520     \0\x02\x03\x03\x12\x04\xf1\x06()\n\x0e\n\x06\x04\x13\x03\0\x02\x04\x12\
9521     \x04\xf2\x06\x042\n\x0f\n\x07\x04\x13\x03\0\x02\x04\x04\x12\x04\xf2\x06\
9522     \x04\x0c\n\x0f\n\x07\x04\x13\x03\0\x02\x04\x05\x12\x04\xf2\x06\r\x13\n\
9523     \x0f\n\x07\x04\x13\x03\0\x02\x04\x01\x12\x04\xf2\x06\x14-\n\x0f\n\x07\
9524     \x04\x13\x03\0\x02\x04\x03\x12\x04\xf2\x0601\n\xee\x01\n\x02\x04\x14\x12\
9525     \x06\xf9\x06\0\x8e\x07\x01\x1a\xdf\x01\x20Describes\x20the\x20relationsh\
9526     ip\x20between\x20generated\x20code\x20and\x20its\x20original\x20source\n\
9527     \x20file.\x20A\x20GeneratedCodeInfo\x20message\x20is\x20associated\x20wi\
9528     th\x20only\x20one\x20generated\n\x20source\x20file,\x20but\x20may\x20con\
9529     tain\x20references\x20to\x20different\x20source\x20.proto\x20files.\n\n\
9530     \x0b\n\x03\x04\x14\x01\x12\x04\xf9\x06\x08\x19\nx\n\x04\x04\x14\x02\0\
9531     \x12\x04\xfc\x06\x02%\x1aj\x20An\x20Annotation\x20connects\x20some\x20sp\
9532     an\x20of\x20text\x20in\x20generated\x20code\x20to\x20an\x20element\n\x20\
9533     of\x20its\x20generating\x20.proto\x20file.\n\n\r\n\x05\x04\x14\x02\0\x04\
9534     \x12\x04\xfc\x06\x02\n\n\r\n\x05\x04\x14\x02\0\x06\x12\x04\xfc\x06\x0b\
9535     \x15\n\r\n\x05\x04\x14\x02\0\x01\x12\x04\xfc\x06\x16\x20\n\r\n\x05\x04\
9536     \x14\x02\0\x03\x12\x04\xfc\x06#$\n\x0e\n\x04\x04\x14\x03\0\x12\x06\xfd\
9537     \x06\x02\x8d\x07\x03\n\r\n\x05\x04\x14\x03\0\x01\x12\x04\xfd\x06\n\x14\n\
9538     \x8f\x01\n\x06\x04\x14\x03\0\x02\0\x12\x04\x80\x07\x04,\x1a\x7f\x20Ident\
9539     ifies\x20the\x20element\x20in\x20the\x20original\x20source\x20.proto\x20\
9540     file.\x20This\x20field\n\x20is\x20formatted\x20the\x20same\x20as\x20Sour\
9541     ceCodeInfo.Location.path.\n\n\x0f\n\x07\x04\x14\x03\0\x02\0\x04\x12\x04\
9542     \x80\x07\x04\x0c\n\x0f\n\x07\x04\x14\x03\0\x02\0\x05\x12\x04\x80\x07\r\
9543     \x12\n\x0f\n\x07\x04\x14\x03\0\x02\0\x01\x12\x04\x80\x07\x13\x17\n\x0f\n\
9544     \x07\x04\x14\x03\0\x02\0\x03\x12\x04\x80\x07\x1a\x1b\n\x0f\n\x07\x04\x14\
9545     \x03\0\x02\0\x08\x12\x04\x80\x07\x1c+\n\x10\n\x08\x04\x14\x03\0\x02\0\
9546     \x08\x02\x12\x04\x80\x07\x1d*\nO\n\x06\x04\x14\x03\0\x02\x01\x12\x04\x83\
9547     \x07\x04$\x1a?\x20Identifies\x20the\x20filesystem\x20path\x20to\x20the\
9548     \x20original\x20source\x20.proto.\n\n\x0f\n\x07\x04\x14\x03\0\x02\x01\
9549     \x04\x12\x04\x83\x07\x04\x0c\n\x0f\n\x07\x04\x14\x03\0\x02\x01\x05\x12\
9550     \x04\x83\x07\r\x13\n\x0f\n\x07\x04\x14\x03\0\x02\x01\x01\x12\x04\x83\x07\
9551     \x14\x1f\n\x0f\n\x07\x04\x14\x03\0\x02\x01\x03\x12\x04\x83\x07\"#\nw\n\
9552     \x06\x04\x14\x03\0\x02\x02\x12\x04\x87\x07\x04\x1d\x1ag\x20Identifies\
9553     \x20the\x20starting\x20offset\x20in\x20bytes\x20in\x20the\x20generated\
9554     \x20code\n\x20that\x20relates\x20to\x20the\x20identified\x20object.\n\n\
9555     \x0f\n\x07\x04\x14\x03\0\x02\x02\x04\x12\x04\x87\x07\x04\x0c\n\x0f\n\x07\
9556     \x04\x14\x03\0\x02\x02\x05\x12\x04\x87\x07\r\x12\n\x0f\n\x07\x04\x14\x03\
9557     \0\x02\x02\x01\x12\x04\x87\x07\x13\x18\n\x0f\n\x07\x04\x14\x03\0\x02\x02\
9558     \x03\x12\x04\x87\x07\x1b\x1c\n\xdb\x01\n\x06\x04\x14\x03\0\x02\x03\x12\
9559     \x04\x8c\x07\x04\x1b\x1a\xca\x01\x20Identifies\x20the\x20ending\x20offse\
9560     t\x20in\x20bytes\x20in\x20the\x20generated\x20code\x20that\n\x20relates\
9561     \x20to\x20the\x20identified\x20offset.\x20The\x20end\x20offset\x20should\
9562     \x20be\x20one\x20past\n\x20the\x20last\x20relevant\x20byte\x20(so\x20the\
9563     \x20length\x20of\x20the\x20text\x20=\x20end\x20-\x20begin).\n\n\x0f\n\
9564     \x07\x04\x14\x03\0\x02\x03\x04\x12\x04\x8c\x07\x04\x0c\n\x0f\n\x07\x04\
9565     \x14\x03\0\x02\x03\x05\x12\x04\x8c\x07\r\x12\n\x0f\n\x07\x04\x14\x03\0\
9566     \x02\x03\x01\x12\x04\x8c\x07\x13\x16\n\x0f\n\x07\x04\x14\x03\0\x02\x03\
9567     \x03\x12\x04\x8c\x07\x19\x1a\
9568 ";
9569 
9570 /// `FileDescriptorProto` object which was a source for this generated file
file_descriptor_proto() -> &'static crate::descriptor::FileDescriptorProto9571 fn file_descriptor_proto() -> &'static crate::descriptor::FileDescriptorProto {
9572     static file_descriptor_proto_lazy: crate::rt::Lazy<crate::descriptor::FileDescriptorProto> = crate::rt::Lazy::new();
9573     file_descriptor_proto_lazy.get(|| {
9574         crate::Message::parse_from_bytes(file_descriptor_proto_data).unwrap()
9575     })
9576 }
9577 
9578 /// `FileDescriptor` object which allows dynamic access to files
file_descriptor() -> &'static crate::reflect::FileDescriptor9579 pub fn file_descriptor() -> &'static crate::reflect::FileDescriptor {
9580     static generated_file_descriptor_lazy: crate::rt::Lazy<crate::reflect::GeneratedFileDescriptor> = crate::rt::Lazy::new();
9581     static file_descriptor: crate::rt::Lazy<crate::reflect::FileDescriptor> = crate::rt::Lazy::new();
9582     file_descriptor.get(|| {
9583         let generated_file_descriptor = generated_file_descriptor_lazy.get(|| {
9584             let mut deps = ::std::vec::Vec::with_capacity(0);
9585             let mut messages = ::std::vec::Vec::with_capacity(27);
9586             messages.push(FileDescriptorSet::generated_message_descriptor_data());
9587             messages.push(FileDescriptorProto::generated_message_descriptor_data());
9588             messages.push(DescriptorProto::generated_message_descriptor_data());
9589             messages.push(ExtensionRangeOptions::generated_message_descriptor_data());
9590             messages.push(FieldDescriptorProto::generated_message_descriptor_data());
9591             messages.push(OneofDescriptorProto::generated_message_descriptor_data());
9592             messages.push(EnumDescriptorProto::generated_message_descriptor_data());
9593             messages.push(EnumValueDescriptorProto::generated_message_descriptor_data());
9594             messages.push(ServiceDescriptorProto::generated_message_descriptor_data());
9595             messages.push(MethodDescriptorProto::generated_message_descriptor_data());
9596             messages.push(FileOptions::generated_message_descriptor_data());
9597             messages.push(MessageOptions::generated_message_descriptor_data());
9598             messages.push(FieldOptions::generated_message_descriptor_data());
9599             messages.push(OneofOptions::generated_message_descriptor_data());
9600             messages.push(EnumOptions::generated_message_descriptor_data());
9601             messages.push(EnumValueOptions::generated_message_descriptor_data());
9602             messages.push(ServiceOptions::generated_message_descriptor_data());
9603             messages.push(MethodOptions::generated_message_descriptor_data());
9604             messages.push(UninterpretedOption::generated_message_descriptor_data());
9605             messages.push(SourceCodeInfo::generated_message_descriptor_data());
9606             messages.push(GeneratedCodeInfo::generated_message_descriptor_data());
9607             messages.push(descriptor_proto::ExtensionRange::generated_message_descriptor_data());
9608             messages.push(descriptor_proto::ReservedRange::generated_message_descriptor_data());
9609             messages.push(enum_descriptor_proto::EnumReservedRange::generated_message_descriptor_data());
9610             messages.push(uninterpreted_option::NamePart::generated_message_descriptor_data());
9611             messages.push(source_code_info::Location::generated_message_descriptor_data());
9612             messages.push(generated_code_info::Annotation::generated_message_descriptor_data());
9613             let mut enums = ::std::vec::Vec::with_capacity(6);
9614             enums.push(field_descriptor_proto::Type::generated_enum_descriptor_data());
9615             enums.push(field_descriptor_proto::Label::generated_enum_descriptor_data());
9616             enums.push(file_options::OptimizeMode::generated_enum_descriptor_data());
9617             enums.push(field_options::CType::generated_enum_descriptor_data());
9618             enums.push(field_options::JSType::generated_enum_descriptor_data());
9619             enums.push(method_options::IdempotencyLevel::generated_enum_descriptor_data());
9620             crate::reflect::GeneratedFileDescriptor::new_generated(
9621                 file_descriptor_proto(),
9622                 deps,
9623                 messages,
9624                 enums,
9625             )
9626         });
9627         crate::reflect::FileDescriptor::new_generated_2(generated_file_descriptor)
9628     })
9629 }
9630