1#![allow(unknown_lints)]
7#![allow(clippy::all)]
8
9#![allow(unused_attributes)]
10#![cfg_attr(rustfmt, rustfmt::skip)]
11
12#![allow(dead_code)]
13#![allow(missing_docs)]
14#![allow(non_camel_case_types)]
15#![allow(non_snake_case)]
16#![allow(non_upper_case_globals)]
17#![allow(trivial_casts)]
18#![allow(unused_results)]
19#![allow(unused_mut)]
20
21#[derive(PartialEq,Clone,Default,Debug)]
26pub struct Version {
27 pub major: ::std::option::Option<i32>,
30 pub minor: ::std::option::Option<i32>,
32 pub patch: ::std::option::Option<i32>,
34 pub suffix: ::std::option::Option<::std::string::String>,
38 pub special_fields: crate::SpecialFields,
41}
42
43impl<'a> ::std::default::Default for &'a Version {
44 fn default() -> &'a Version {
45 <Version as crate::Message>::default_instance()
46 }
47}
48
49impl Version {
50 pub fn new() -> Version {
51 ::std::default::Default::default()
52 }
53
54 pub fn major(&self) -> i32 {
57 self.major.unwrap_or(0)
58 }
59
60 pub fn clear_major(&mut self) {
61 self.major = ::std::option::Option::None;
62 }
63
64 pub fn has_major(&self) -> bool {
65 self.major.is_some()
66 }
67
68 pub fn set_major(&mut self, v: i32) {
70 self.major = ::std::option::Option::Some(v);
71 }
72
73 pub fn minor(&self) -> i32 {
76 self.minor.unwrap_or(0)
77 }
78
79 pub fn clear_minor(&mut self) {
80 self.minor = ::std::option::Option::None;
81 }
82
83 pub fn has_minor(&self) -> bool {
84 self.minor.is_some()
85 }
86
87 pub fn set_minor(&mut self, v: i32) {
89 self.minor = ::std::option::Option::Some(v);
90 }
91
92 pub fn patch(&self) -> i32 {
95 self.patch.unwrap_or(0)
96 }
97
98 pub fn clear_patch(&mut self) {
99 self.patch = ::std::option::Option::None;
100 }
101
102 pub fn has_patch(&self) -> bool {
103 self.patch.is_some()
104 }
105
106 pub fn set_patch(&mut self, v: i32) {
108 self.patch = ::std::option::Option::Some(v);
109 }
110
111 pub fn suffix(&self) -> &str {
114 match self.suffix.as_ref() {
115 Some(v) => v,
116 None => "",
117 }
118 }
119
120 pub fn clear_suffix(&mut self) {
121 self.suffix = ::std::option::Option::None;
122 }
123
124 pub fn has_suffix(&self) -> bool {
125 self.suffix.is_some()
126 }
127
128 pub fn set_suffix(&mut self, v: ::std::string::String) {
130 self.suffix = ::std::option::Option::Some(v);
131 }
132
133 pub fn mut_suffix(&mut self) -> &mut ::std::string::String {
136 if self.suffix.is_none() {
137 self.suffix = ::std::option::Option::Some(::std::string::String::new());
138 }
139 self.suffix.as_mut().unwrap()
140 }
141
142 pub fn take_suffix(&mut self) -> ::std::string::String {
144 self.suffix.take().unwrap_or_else(|| ::std::string::String::new())
145 }
146
147 fn generated_message_descriptor_data() -> crate::reflect::GeneratedMessageDescriptorData {
148 let mut fields = ::std::vec::Vec::with_capacity(4);
149 let mut oneofs = ::std::vec::Vec::with_capacity(0);
150 fields.push(crate::reflect::rt::v2::make_option_accessor::<_, _>(
151 "major",
152 |m: &Version| { &m.major },
153 |m: &mut Version| { &mut m.major },
154 ));
155 fields.push(crate::reflect::rt::v2::make_option_accessor::<_, _>(
156 "minor",
157 |m: &Version| { &m.minor },
158 |m: &mut Version| { &mut m.minor },
159 ));
160 fields.push(crate::reflect::rt::v2::make_option_accessor::<_, _>(
161 "patch",
162 |m: &Version| { &m.patch },
163 |m: &mut Version| { &mut m.patch },
164 ));
165 fields.push(crate::reflect::rt::v2::make_option_accessor::<_, _>(
166 "suffix",
167 |m: &Version| { &m.suffix },
168 |m: &mut Version| { &mut m.suffix },
169 ));
170 crate::reflect::GeneratedMessageDescriptorData::new_2::<Version>(
171 "Version",
172 fields,
173 oneofs,
174 )
175 }
176}
177
178impl crate::Message for Version {
179 const NAME: &'static str = "Version";
180
181 fn is_initialized(&self) -> bool {
182 true
183 }
184
185 fn merge_from(&mut self, is: &mut crate::CodedInputStream<'_>) -> crate::Result<()> {
186 while let Some(tag) = is.read_raw_tag_or_eof()? {
187 match tag {
188 8 => {
189 self.major = ::std::option::Option::Some(is.read_int32()?);
190 },
191 16 => {
192 self.minor = ::std::option::Option::Some(is.read_int32()?);
193 },
194 24 => {
195 self.patch = ::std::option::Option::Some(is.read_int32()?);
196 },
197 34 => {
198 self.suffix = ::std::option::Option::Some(is.read_string()?);
199 },
200 tag => {
201 crate::rt::read_unknown_or_skip_group(tag, is, self.special_fields.mut_unknown_fields())?;
202 },
203 };
204 }
205 ::std::result::Result::Ok(())
206 }
207
208 #[allow(unused_variables)]
210 fn compute_size(&self) -> u64 {
211 let mut my_size = 0;
212 if let Some(v) = self.major {
213 my_size += crate::rt::int32_size(1, v);
214 }
215 if let Some(v) = self.minor {
216 my_size += crate::rt::int32_size(2, v);
217 }
218 if let Some(v) = self.patch {
219 my_size += crate::rt::int32_size(3, v);
220 }
221 if let Some(v) = self.suffix.as_ref() {
222 my_size += crate::rt::string_size(4, &v);
223 }
224 my_size += crate::rt::unknown_fields_size(self.special_fields.unknown_fields());
225 self.special_fields.cached_size().set(my_size as u32);
226 my_size
227 }
228
229 fn write_to_with_cached_sizes(&self, os: &mut crate::CodedOutputStream<'_>) -> crate::Result<()> {
230 if let Some(v) = self.major {
231 os.write_int32(1, v)?;
232 }
233 if let Some(v) = self.minor {
234 os.write_int32(2, v)?;
235 }
236 if let Some(v) = self.patch {
237 os.write_int32(3, v)?;
238 }
239 if let Some(v) = self.suffix.as_ref() {
240 os.write_string(4, v)?;
241 }
242 os.write_unknown_fields(self.special_fields.unknown_fields())?;
243 ::std::result::Result::Ok(())
244 }
245
246 fn special_fields(&self) -> &crate::SpecialFields {
247 &self.special_fields
248 }
249
250 fn mut_special_fields(&mut self) -> &mut crate::SpecialFields {
251 &mut self.special_fields
252 }
253
254 fn new() -> Version {
255 Version::new()
256 }
257
258 fn clear(&mut self) {
259 self.major = ::std::option::Option::None;
260 self.minor = ::std::option::Option::None;
261 self.patch = ::std::option::Option::None;
262 self.suffix = ::std::option::Option::None;
263 self.special_fields.clear();
264 }
265
266 fn default_instance() -> &'static Version {
267 static instance: Version = Version {
268 major: ::std::option::Option::None,
269 minor: ::std::option::Option::None,
270 patch: ::std::option::Option::None,
271 suffix: ::std::option::Option::None,
272 special_fields: crate::SpecialFields::new(),
273 };
274 &instance
275 }
276}
277
278impl crate::MessageFull for Version {
279 fn descriptor() -> crate::reflect::MessageDescriptor {
280 static descriptor: crate::rt::Lazy<crate::reflect::MessageDescriptor> = crate::rt::Lazy::new();
281 descriptor.get(|| file_descriptor().message_by_package_relative_name("Version").unwrap()).clone()
282 }
283}
284
285impl ::std::fmt::Display for Version {
286 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
287 crate::text_format::fmt(self, f)
288 }
289}
290
291impl crate::reflect::ProtobufValue for Version {
292 type RuntimeType = crate::reflect::rt::RuntimeTypeMessage<Self>;
293}
294
295#[derive(PartialEq,Clone,Default,Debug)]
298pub struct CodeGeneratorRequest {
299 pub file_to_generate: ::std::vec::Vec<::std::string::String>,
305 pub parameter: ::std::option::Option<::std::string::String>,
308 pub proto_file: ::std::vec::Vec<crate::descriptor::FileDescriptorProto>,
324 pub compiler_version: crate::MessageField<Version>,
327 pub special_fields: crate::SpecialFields,
330}
331
332impl<'a> ::std::default::Default for &'a CodeGeneratorRequest {
333 fn default() -> &'a CodeGeneratorRequest {
334 <CodeGeneratorRequest as crate::Message>::default_instance()
335 }
336}
337
338impl CodeGeneratorRequest {
339 pub fn new() -> CodeGeneratorRequest {
340 ::std::default::Default::default()
341 }
342
343 pub fn parameter(&self) -> &str {
346 match self.parameter.as_ref() {
347 Some(v) => v,
348 None => "",
349 }
350 }
351
352 pub fn clear_parameter(&mut self) {
353 self.parameter = ::std::option::Option::None;
354 }
355
356 pub fn has_parameter(&self) -> bool {
357 self.parameter.is_some()
358 }
359
360 pub fn set_parameter(&mut self, v: ::std::string::String) {
362 self.parameter = ::std::option::Option::Some(v);
363 }
364
365 pub fn mut_parameter(&mut self) -> &mut ::std::string::String {
368 if self.parameter.is_none() {
369 self.parameter = ::std::option::Option::Some(::std::string::String::new());
370 }
371 self.parameter.as_mut().unwrap()
372 }
373
374 pub fn take_parameter(&mut self) -> ::std::string::String {
376 self.parameter.take().unwrap_or_else(|| ::std::string::String::new())
377 }
378
379 fn generated_message_descriptor_data() -> crate::reflect::GeneratedMessageDescriptorData {
380 let mut fields = ::std::vec::Vec::with_capacity(4);
381 let mut oneofs = ::std::vec::Vec::with_capacity(0);
382 fields.push(crate::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
383 "file_to_generate",
384 |m: &CodeGeneratorRequest| { &m.file_to_generate },
385 |m: &mut CodeGeneratorRequest| { &mut m.file_to_generate },
386 ));
387 fields.push(crate::reflect::rt::v2::make_option_accessor::<_, _>(
388 "parameter",
389 |m: &CodeGeneratorRequest| { &m.parameter },
390 |m: &mut CodeGeneratorRequest| { &mut m.parameter },
391 ));
392 fields.push(crate::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
393 "proto_file",
394 |m: &CodeGeneratorRequest| { &m.proto_file },
395 |m: &mut CodeGeneratorRequest| { &mut m.proto_file },
396 ));
397 fields.push(crate::reflect::rt::v2::make_message_field_accessor::<_, Version>(
398 "compiler_version",
399 |m: &CodeGeneratorRequest| { &m.compiler_version },
400 |m: &mut CodeGeneratorRequest| { &mut m.compiler_version },
401 ));
402 crate::reflect::GeneratedMessageDescriptorData::new_2::<CodeGeneratorRequest>(
403 "CodeGeneratorRequest",
404 fields,
405 oneofs,
406 )
407 }
408}
409
410impl crate::Message for CodeGeneratorRequest {
411 const NAME: &'static str = "CodeGeneratorRequest";
412
413 fn is_initialized(&self) -> bool {
414 for v in &self.proto_file {
415 if !v.is_initialized() {
416 return false;
417 }
418 };
419 for v in &self.compiler_version {
420 if !v.is_initialized() {
421 return false;
422 }
423 };
424 true
425 }
426
427 fn merge_from(&mut self, is: &mut crate::CodedInputStream<'_>) -> crate::Result<()> {
428 while let Some(tag) = is.read_raw_tag_or_eof()? {
429 match tag {
430 10 => {
431 self.file_to_generate.push(is.read_string()?);
432 },
433 18 => {
434 self.parameter = ::std::option::Option::Some(is.read_string()?);
435 },
436 122 => {
437 self.proto_file.push(is.read_message()?);
438 },
439 26 => {
440 crate::rt::read_singular_message_into_field(is, &mut self.compiler_version)?;
441 },
442 tag => {
443 crate::rt::read_unknown_or_skip_group(tag, is, self.special_fields.mut_unknown_fields())?;
444 },
445 };
446 }
447 ::std::result::Result::Ok(())
448 }
449
450 #[allow(unused_variables)]
452 fn compute_size(&self) -> u64 {
453 let mut my_size = 0;
454 for value in &self.file_to_generate {
455 my_size += crate::rt::string_size(1, &value);
456 };
457 if let Some(v) = self.parameter.as_ref() {
458 my_size += crate::rt::string_size(2, &v);
459 }
460 for value in &self.proto_file {
461 let len = value.compute_size();
462 my_size += 1 + crate::rt::compute_raw_varint64_size(len) + len;
463 };
464 if let Some(v) = self.compiler_version.as_ref() {
465 let len = v.compute_size();
466 my_size += 1 + crate::rt::compute_raw_varint64_size(len) + len;
467 }
468 my_size += crate::rt::unknown_fields_size(self.special_fields.unknown_fields());
469 self.special_fields.cached_size().set(my_size as u32);
470 my_size
471 }
472
473 fn write_to_with_cached_sizes(&self, os: &mut crate::CodedOutputStream<'_>) -> crate::Result<()> {
474 for v in &self.file_to_generate {
475 os.write_string(1, &v)?;
476 };
477 if let Some(v) = self.parameter.as_ref() {
478 os.write_string(2, v)?;
479 }
480 for v in &self.proto_file {
481 crate::rt::write_message_field_with_cached_size(15, v, os)?;
482 };
483 if let Some(v) = self.compiler_version.as_ref() {
484 crate::rt::write_message_field_with_cached_size(3, v, os)?;
485 }
486 os.write_unknown_fields(self.special_fields.unknown_fields())?;
487 ::std::result::Result::Ok(())
488 }
489
490 fn special_fields(&self) -> &crate::SpecialFields {
491 &self.special_fields
492 }
493
494 fn mut_special_fields(&mut self) -> &mut crate::SpecialFields {
495 &mut self.special_fields
496 }
497
498 fn new() -> CodeGeneratorRequest {
499 CodeGeneratorRequest::new()
500 }
501
502 fn clear(&mut self) {
503 self.file_to_generate.clear();
504 self.parameter = ::std::option::Option::None;
505 self.proto_file.clear();
506 self.compiler_version.clear();
507 self.special_fields.clear();
508 }
509
510 fn default_instance() -> &'static CodeGeneratorRequest {
511 static instance: CodeGeneratorRequest = CodeGeneratorRequest {
512 file_to_generate: ::std::vec::Vec::new(),
513 parameter: ::std::option::Option::None,
514 proto_file: ::std::vec::Vec::new(),
515 compiler_version: crate::MessageField::none(),
516 special_fields: crate::SpecialFields::new(),
517 };
518 &instance
519 }
520}
521
522impl crate::MessageFull for CodeGeneratorRequest {
523 fn descriptor() -> crate::reflect::MessageDescriptor {
524 static descriptor: crate::rt::Lazy<crate::reflect::MessageDescriptor> = crate::rt::Lazy::new();
525 descriptor.get(|| file_descriptor().message_by_package_relative_name("CodeGeneratorRequest").unwrap()).clone()
526 }
527}
528
529impl ::std::fmt::Display for CodeGeneratorRequest {
530 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
531 crate::text_format::fmt(self, f)
532 }
533}
534
535impl crate::reflect::ProtobufValue for CodeGeneratorRequest {
536 type RuntimeType = crate::reflect::rt::RuntimeTypeMessage<Self>;
537}
538
539#[derive(PartialEq,Clone,Default,Debug)]
542pub struct CodeGeneratorResponse {
543 pub error: ::std::option::Option<::std::string::String>,
554 pub supported_features: ::std::option::Option<u64>,
558 pub file: ::std::vec::Vec<code_generator_response::File>,
560 pub special_fields: crate::SpecialFields,
563}
564
565impl<'a> ::std::default::Default for &'a CodeGeneratorResponse {
566 fn default() -> &'a CodeGeneratorResponse {
567 <CodeGeneratorResponse as crate::Message>::default_instance()
568 }
569}
570
571impl CodeGeneratorResponse {
572 pub fn new() -> CodeGeneratorResponse {
573 ::std::default::Default::default()
574 }
575
576 pub fn error(&self) -> &str {
579 match self.error.as_ref() {
580 Some(v) => v,
581 None => "",
582 }
583 }
584
585 pub fn clear_error(&mut self) {
586 self.error = ::std::option::Option::None;
587 }
588
589 pub fn has_error(&self) -> bool {
590 self.error.is_some()
591 }
592
593 pub fn set_error(&mut self, v: ::std::string::String) {
595 self.error = ::std::option::Option::Some(v);
596 }
597
598 pub fn mut_error(&mut self) -> &mut ::std::string::String {
601 if self.error.is_none() {
602 self.error = ::std::option::Option::Some(::std::string::String::new());
603 }
604 self.error.as_mut().unwrap()
605 }
606
607 pub fn take_error(&mut self) -> ::std::string::String {
609 self.error.take().unwrap_or_else(|| ::std::string::String::new())
610 }
611
612 pub fn supported_features(&self) -> u64 {
615 self.supported_features.unwrap_or(0)
616 }
617
618 pub fn clear_supported_features(&mut self) {
619 self.supported_features = ::std::option::Option::None;
620 }
621
622 pub fn has_supported_features(&self) -> bool {
623 self.supported_features.is_some()
624 }
625
626 pub fn set_supported_features(&mut self, v: u64) {
628 self.supported_features = ::std::option::Option::Some(v);
629 }
630
631 fn generated_message_descriptor_data() -> crate::reflect::GeneratedMessageDescriptorData {
632 let mut fields = ::std::vec::Vec::with_capacity(3);
633 let mut oneofs = ::std::vec::Vec::with_capacity(0);
634 fields.push(crate::reflect::rt::v2::make_option_accessor::<_, _>(
635 "error",
636 |m: &CodeGeneratorResponse| { &m.error },
637 |m: &mut CodeGeneratorResponse| { &mut m.error },
638 ));
639 fields.push(crate::reflect::rt::v2::make_option_accessor::<_, _>(
640 "supported_features",
641 |m: &CodeGeneratorResponse| { &m.supported_features },
642 |m: &mut CodeGeneratorResponse| { &mut m.supported_features },
643 ));
644 fields.push(crate::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
645 "file",
646 |m: &CodeGeneratorResponse| { &m.file },
647 |m: &mut CodeGeneratorResponse| { &mut m.file },
648 ));
649 crate::reflect::GeneratedMessageDescriptorData::new_2::<CodeGeneratorResponse>(
650 "CodeGeneratorResponse",
651 fields,
652 oneofs,
653 )
654 }
655}
656
657impl crate::Message for CodeGeneratorResponse {
658 const NAME: &'static str = "CodeGeneratorResponse";
659
660 fn is_initialized(&self) -> bool {
661 true
662 }
663
664 fn merge_from(&mut self, is: &mut crate::CodedInputStream<'_>) -> crate::Result<()> {
665 while let Some(tag) = is.read_raw_tag_or_eof()? {
666 match tag {
667 10 => {
668 self.error = ::std::option::Option::Some(is.read_string()?);
669 },
670 16 => {
671 self.supported_features = ::std::option::Option::Some(is.read_uint64()?);
672 },
673 122 => {
674 self.file.push(is.read_message()?);
675 },
676 tag => {
677 crate::rt::read_unknown_or_skip_group(tag, is, self.special_fields.mut_unknown_fields())?;
678 },
679 };
680 }
681 ::std::result::Result::Ok(())
682 }
683
684 #[allow(unused_variables)]
686 fn compute_size(&self) -> u64 {
687 let mut my_size = 0;
688 if let Some(v) = self.error.as_ref() {
689 my_size += crate::rt::string_size(1, &v);
690 }
691 if let Some(v) = self.supported_features {
692 my_size += crate::rt::uint64_size(2, v);
693 }
694 for value in &self.file {
695 let len = value.compute_size();
696 my_size += 1 + crate::rt::compute_raw_varint64_size(len) + len;
697 };
698 my_size += crate::rt::unknown_fields_size(self.special_fields.unknown_fields());
699 self.special_fields.cached_size().set(my_size as u32);
700 my_size
701 }
702
703 fn write_to_with_cached_sizes(&self, os: &mut crate::CodedOutputStream<'_>) -> crate::Result<()> {
704 if let Some(v) = self.error.as_ref() {
705 os.write_string(1, v)?;
706 }
707 if let Some(v) = self.supported_features {
708 os.write_uint64(2, v)?;
709 }
710 for v in &self.file {
711 crate::rt::write_message_field_with_cached_size(15, v, os)?;
712 };
713 os.write_unknown_fields(self.special_fields.unknown_fields())?;
714 ::std::result::Result::Ok(())
715 }
716
717 fn special_fields(&self) -> &crate::SpecialFields {
718 &self.special_fields
719 }
720
721 fn mut_special_fields(&mut self) -> &mut crate::SpecialFields {
722 &mut self.special_fields
723 }
724
725 fn new() -> CodeGeneratorResponse {
726 CodeGeneratorResponse::new()
727 }
728
729 fn clear(&mut self) {
730 self.error = ::std::option::Option::None;
731 self.supported_features = ::std::option::Option::None;
732 self.file.clear();
733 self.special_fields.clear();
734 }
735
736 fn default_instance() -> &'static CodeGeneratorResponse {
737 static instance: CodeGeneratorResponse = CodeGeneratorResponse {
738 error: ::std::option::Option::None,
739 supported_features: ::std::option::Option::None,
740 file: ::std::vec::Vec::new(),
741 special_fields: crate::SpecialFields::new(),
742 };
743 &instance
744 }
745}
746
747impl crate::MessageFull for CodeGeneratorResponse {
748 fn descriptor() -> crate::reflect::MessageDescriptor {
749 static descriptor: crate::rt::Lazy<crate::reflect::MessageDescriptor> = crate::rt::Lazy::new();
750 descriptor.get(|| file_descriptor().message_by_package_relative_name("CodeGeneratorResponse").unwrap()).clone()
751 }
752}
753
754impl ::std::fmt::Display for CodeGeneratorResponse {
755 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
756 crate::text_format::fmt(self, f)
757 }
758}
759
760impl crate::reflect::ProtobufValue for CodeGeneratorResponse {
761 type RuntimeType = crate::reflect::rt::RuntimeTypeMessage<Self>;
762}
763
764pub mod code_generator_response {
766 #[derive(PartialEq,Clone,Default,Debug)]
769 pub struct File {
770 pub name: ::std::option::Option<::std::string::String>,
784 pub insertion_point: ::std::option::Option<::std::string::String>,
823 pub content: ::std::option::Option<::std::string::String>,
826 pub generated_code_info: crate::MessageField<crate::descriptor::GeneratedCodeInfo>,
831 pub special_fields: crate::SpecialFields,
834 }
835
836 impl<'a> ::std::default::Default for &'a File {
837 fn default() -> &'a File {
838 <File as crate::Message>::default_instance()
839 }
840 }
841
842 impl File {
843 pub fn new() -> File {
844 ::std::default::Default::default()
845 }
846
847 pub fn name(&self) -> &str {
850 match self.name.as_ref() {
851 Some(v) => v,
852 None => "",
853 }
854 }
855
856 pub fn clear_name(&mut self) {
857 self.name = ::std::option::Option::None;
858 }
859
860 pub fn has_name(&self) -> bool {
861 self.name.is_some()
862 }
863
864 pub fn set_name(&mut self, v: ::std::string::String) {
866 self.name = ::std::option::Option::Some(v);
867 }
868
869 pub fn mut_name(&mut self) -> &mut ::std::string::String {
872 if self.name.is_none() {
873 self.name = ::std::option::Option::Some(::std::string::String::new());
874 }
875 self.name.as_mut().unwrap()
876 }
877
878 pub fn take_name(&mut self) -> ::std::string::String {
880 self.name.take().unwrap_or_else(|| ::std::string::String::new())
881 }
882
883 pub fn insertion_point(&self) -> &str {
886 match self.insertion_point.as_ref() {
887 Some(v) => v,
888 None => "",
889 }
890 }
891
892 pub fn clear_insertion_point(&mut self) {
893 self.insertion_point = ::std::option::Option::None;
894 }
895
896 pub fn has_insertion_point(&self) -> bool {
897 self.insertion_point.is_some()
898 }
899
900 pub fn set_insertion_point(&mut self, v: ::std::string::String) {
902 self.insertion_point = ::std::option::Option::Some(v);
903 }
904
905 pub fn mut_insertion_point(&mut self) -> &mut ::std::string::String {
908 if self.insertion_point.is_none() {
909 self.insertion_point = ::std::option::Option::Some(::std::string::String::new());
910 }
911 self.insertion_point.as_mut().unwrap()
912 }
913
914 pub fn take_insertion_point(&mut self) -> ::std::string::String {
916 self.insertion_point.take().unwrap_or_else(|| ::std::string::String::new())
917 }
918
919 pub fn content(&self) -> &str {
922 match self.content.as_ref() {
923 Some(v) => v,
924 None => "",
925 }
926 }
927
928 pub fn clear_content(&mut self) {
929 self.content = ::std::option::Option::None;
930 }
931
932 pub fn has_content(&self) -> bool {
933 self.content.is_some()
934 }
935
936 pub fn set_content(&mut self, v: ::std::string::String) {
938 self.content = ::std::option::Option::Some(v);
939 }
940
941 pub fn mut_content(&mut self) -> &mut ::std::string::String {
944 if self.content.is_none() {
945 self.content = ::std::option::Option::Some(::std::string::String::new());
946 }
947 self.content.as_mut().unwrap()
948 }
949
950 pub fn take_content(&mut self) -> ::std::string::String {
952 self.content.take().unwrap_or_else(|| ::std::string::String::new())
953 }
954
955 pub(in super) fn generated_message_descriptor_data() -> crate::reflect::GeneratedMessageDescriptorData {
956 let mut fields = ::std::vec::Vec::with_capacity(4);
957 let mut oneofs = ::std::vec::Vec::with_capacity(0);
958 fields.push(crate::reflect::rt::v2::make_option_accessor::<_, _>(
959 "name",
960 |m: &File| { &m.name },
961 |m: &mut File| { &mut m.name },
962 ));
963 fields.push(crate::reflect::rt::v2::make_option_accessor::<_, _>(
964 "insertion_point",
965 |m: &File| { &m.insertion_point },
966 |m: &mut File| { &mut m.insertion_point },
967 ));
968 fields.push(crate::reflect::rt::v2::make_option_accessor::<_, _>(
969 "content",
970 |m: &File| { &m.content },
971 |m: &mut File| { &mut m.content },
972 ));
973 fields.push(crate::reflect::rt::v2::make_message_field_accessor::<_, crate::descriptor::GeneratedCodeInfo>(
974 "generated_code_info",
975 |m: &File| { &m.generated_code_info },
976 |m: &mut File| { &mut m.generated_code_info },
977 ));
978 crate::reflect::GeneratedMessageDescriptorData::new_2::<File>(
979 "CodeGeneratorResponse.File",
980 fields,
981 oneofs,
982 )
983 }
984 }
985
986 impl crate::Message for File {
987 const NAME: &'static str = "File";
988
989 fn is_initialized(&self) -> bool {
990 true
991 }
992
993 fn merge_from(&mut self, is: &mut crate::CodedInputStream<'_>) -> crate::Result<()> {
994 while let Some(tag) = is.read_raw_tag_or_eof()? {
995 match tag {
996 10 => {
997 self.name = ::std::option::Option::Some(is.read_string()?);
998 },
999 18 => {
1000 self.insertion_point = ::std::option::Option::Some(is.read_string()?);
1001 },
1002 122 => {
1003 self.content = ::std::option::Option::Some(is.read_string()?);
1004 },
1005 130 => {
1006 crate::rt::read_singular_message_into_field(is, &mut self.generated_code_info)?;
1007 },
1008 tag => {
1009 crate::rt::read_unknown_or_skip_group(tag, is, self.special_fields.mut_unknown_fields())?;
1010 },
1011 };
1012 }
1013 ::std::result::Result::Ok(())
1014 }
1015
1016 #[allow(unused_variables)]
1018 fn compute_size(&self) -> u64 {
1019 let mut my_size = 0;
1020 if let Some(v) = self.name.as_ref() {
1021 my_size += crate::rt::string_size(1, &v);
1022 }
1023 if let Some(v) = self.insertion_point.as_ref() {
1024 my_size += crate::rt::string_size(2, &v);
1025 }
1026 if let Some(v) = self.content.as_ref() {
1027 my_size += crate::rt::string_size(15, &v);
1028 }
1029 if let Some(v) = self.generated_code_info.as_ref() {
1030 let len = v.compute_size();
1031 my_size += 2 + crate::rt::compute_raw_varint64_size(len) + len;
1032 }
1033 my_size += crate::rt::unknown_fields_size(self.special_fields.unknown_fields());
1034 self.special_fields.cached_size().set(my_size as u32);
1035 my_size
1036 }
1037
1038 fn write_to_with_cached_sizes(&self, os: &mut crate::CodedOutputStream<'_>) -> crate::Result<()> {
1039 if let Some(v) = self.name.as_ref() {
1040 os.write_string(1, v)?;
1041 }
1042 if let Some(v) = self.insertion_point.as_ref() {
1043 os.write_string(2, v)?;
1044 }
1045 if let Some(v) = self.content.as_ref() {
1046 os.write_string(15, v)?;
1047 }
1048 if let Some(v) = self.generated_code_info.as_ref() {
1049 crate::rt::write_message_field_with_cached_size(16, v, os)?;
1050 }
1051 os.write_unknown_fields(self.special_fields.unknown_fields())?;
1052 ::std::result::Result::Ok(())
1053 }
1054
1055 fn special_fields(&self) -> &crate::SpecialFields {
1056 &self.special_fields
1057 }
1058
1059 fn mut_special_fields(&mut self) -> &mut crate::SpecialFields {
1060 &mut self.special_fields
1061 }
1062
1063 fn new() -> File {
1064 File::new()
1065 }
1066
1067 fn clear(&mut self) {
1068 self.name = ::std::option::Option::None;
1069 self.insertion_point = ::std::option::Option::None;
1070 self.content = ::std::option::Option::None;
1071 self.generated_code_info.clear();
1072 self.special_fields.clear();
1073 }
1074
1075 fn default_instance() -> &'static File {
1076 static instance: File = File {
1077 name: ::std::option::Option::None,
1078 insertion_point: ::std::option::Option::None,
1079 content: ::std::option::Option::None,
1080 generated_code_info: crate::MessageField::none(),
1081 special_fields: crate::SpecialFields::new(),
1082 };
1083 &instance
1084 }
1085 }
1086
1087 impl crate::MessageFull for File {
1088 fn descriptor() -> crate::reflect::MessageDescriptor {
1089 static descriptor: crate::rt::Lazy<crate::reflect::MessageDescriptor> = crate::rt::Lazy::new();
1090 descriptor.get(|| super::file_descriptor().message_by_package_relative_name("CodeGeneratorResponse.File").unwrap()).clone()
1091 }
1092 }
1093
1094 impl ::std::fmt::Display for File {
1095 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1096 crate::text_format::fmt(self, f)
1097 }
1098 }
1099
1100 impl crate::reflect::ProtobufValue for File {
1101 type RuntimeType = crate::reflect::rt::RuntimeTypeMessage<Self>;
1102 }
1103
1104 #[derive(Clone,Copy,PartialEq,Eq,Debug,Hash)]
1106 pub enum Feature {
1108 FEATURE_NONE = 0,
1110 FEATURE_PROTO3_OPTIONAL = 1,
1112 }
1113
1114 impl crate::Enum for Feature {
1115 const NAME: &'static str = "Feature";
1116
1117 fn value(&self) -> i32 {
1118 *self as i32
1119 }
1120
1121 fn from_i32(value: i32) -> ::std::option::Option<Feature> {
1122 match value {
1123 0 => ::std::option::Option::Some(Feature::FEATURE_NONE),
1124 1 => ::std::option::Option::Some(Feature::FEATURE_PROTO3_OPTIONAL),
1125 _ => ::std::option::Option::None
1126 }
1127 }
1128
1129 fn from_str(str: &str) -> ::std::option::Option<Feature> {
1130 match str {
1131 "FEATURE_NONE" => ::std::option::Option::Some(Feature::FEATURE_NONE),
1132 "FEATURE_PROTO3_OPTIONAL" => ::std::option::Option::Some(Feature::FEATURE_PROTO3_OPTIONAL),
1133 _ => ::std::option::Option::None
1134 }
1135 }
1136
1137 const VALUES: &'static [Feature] = &[
1138 Feature::FEATURE_NONE,
1139 Feature::FEATURE_PROTO3_OPTIONAL,
1140 ];
1141 }
1142
1143 impl crate::EnumFull for Feature {
1144 fn enum_descriptor() -> crate::reflect::EnumDescriptor {
1145 static descriptor: crate::rt::Lazy<crate::reflect::EnumDescriptor> = crate::rt::Lazy::new();
1146 descriptor.get(|| super::file_descriptor().enum_by_package_relative_name("CodeGeneratorResponse.Feature").unwrap()).clone()
1147 }
1148
1149 fn descriptor(&self) -> crate::reflect::EnumValueDescriptor {
1150 let index = *self as usize;
1151 Self::enum_descriptor().value_by_index(index)
1152 }
1153 }
1154
1155 impl ::std::default::Default for Feature {
1156 fn default() -> Self {
1157 Feature::FEATURE_NONE
1158 }
1159 }
1160
1161 impl Feature {
1162 pub(in super) fn generated_enum_descriptor_data() -> crate::reflect::GeneratedEnumDescriptorData {
1163 crate::reflect::GeneratedEnumDescriptorData::new::<Feature>("CodeGeneratorResponse.Feature")
1164 }
1165 }
1166}
1167
1168static file_descriptor_proto_data: &'static [u8] = b"\
1169 \n%google/protobuf/compiler/plugin.proto\x12\x18google.protobuf.compiler\
1170 \x1a\x20google/protobuf/descriptor.proto\"c\n\x07Version\x12\x14\n\x05ma\
1171 jor\x18\x01\x20\x01(\x05R\x05major\x12\x14\n\x05minor\x18\x02\x20\x01(\
1172 \x05R\x05minor\x12\x14\n\x05patch\x18\x03\x20\x01(\x05R\x05patch\x12\x16\
1173 \n\x06suffix\x18\x04\x20\x01(\tR\x06suffix\"\xf1\x01\n\x14CodeGeneratorR\
1174 equest\x12(\n\x10file_to_generate\x18\x01\x20\x03(\tR\x0efileToGenerate\
1175 \x12\x1c\n\tparameter\x18\x02\x20\x01(\tR\tparameter\x12C\n\nproto_file\
1176 \x18\x0f\x20\x03(\x0b2$.google.protobuf.FileDescriptorProtoR\tprotoFile\
1177 \x12L\n\x10compiler_version\x18\x03\x20\x01(\x0b2!.google.protobuf.compi\
1178 ler.VersionR\x0fcompilerVersion\"\x94\x03\n\x15CodeGeneratorResponse\x12\
1179 \x14\n\x05error\x18\x01\x20\x01(\tR\x05error\x12-\n\x12supported_feature\
1180 s\x18\x02\x20\x01(\x04R\x11supportedFeatures\x12H\n\x04file\x18\x0f\x20\
1181 \x03(\x0b24.google.protobuf.compiler.CodeGeneratorResponse.FileR\x04file\
1182 \x1a\xb1\x01\n\x04File\x12\x12\n\x04name\x18\x01\x20\x01(\tR\x04name\x12\
1183 '\n\x0finsertion_point\x18\x02\x20\x01(\tR\x0einsertionPoint\x12\x18\n\
1184 \x07content\x18\x0f\x20\x01(\tR\x07content\x12R\n\x13generated_code_info\
1185 \x18\x10\x20\x01(\x0b2\".google.protobuf.GeneratedCodeInfoR\x11generated\
1186 CodeInfo\"8\n\x07Feature\x12\x10\n\x0cFEATURE_NONE\x10\0\x12\x1b\n\x17FE\
1187 ATURE_PROTO3_OPTIONAL\x10\x01BW\n\x1ccom.google.protobuf.compilerB\x0cPl\
1188 uginProtosZ)google.golang.org/protobuf/types/pluginpbJ\xf9C\n\x07\x12\
1189 \x05.\0\xb6\x01\x01\n\xca\x11\n\x01\x0c\x12\x03.\0\x122\xc1\x0c\x20Proto\
1190 col\x20Buffers\x20-\x20Google's\x20data\x20interchange\x20format\n\x20Co\
1191 pyright\x202008\x20Google\x20Inc.\x20\x20All\x20rights\x20reserved.\n\
1192 \x20https://developers.google.com/protocol-buffers/\n\n\x20Redistributio\
1193 n\x20and\x20use\x20in\x20source\x20and\x20binary\x20forms,\x20with\x20or\
1194 \x20without\n\x20modification,\x20are\x20permitted\x20provided\x20that\
1195 \x20the\x20following\x20conditions\x20are\n\x20met:\n\n\x20\x20\x20\x20\
1196 \x20*\x20Redistributions\x20of\x20source\x20code\x20must\x20retain\x20th\
1197 e\x20above\x20copyright\n\x20notice,\x20this\x20list\x20of\x20conditions\
1198 \x20and\x20the\x20following\x20disclaimer.\n\x20\x20\x20\x20\x20*\x20Red\
1199 istributions\x20in\x20binary\x20form\x20must\x20reproduce\x20the\x20abov\
1200 e\n\x20copyright\x20notice,\x20this\x20list\x20of\x20conditions\x20and\
1201 \x20the\x20following\x20disclaimer\n\x20in\x20the\x20documentation\x20an\
1202 d/or\x20other\x20materials\x20provided\x20with\x20the\n\x20distribution.\
1203 \n\x20\x20\x20\x20\x20*\x20Neither\x20the\x20name\x20of\x20Google\x20Inc\
1204 .\x20nor\x20the\x20names\x20of\x20its\n\x20contributors\x20may\x20be\x20\
1205 used\x20to\x20endorse\x20or\x20promote\x20products\x20derived\x20from\n\
1206 \x20this\x20software\x20without\x20specific\x20prior\x20written\x20permi\
1207 ssion.\n\n\x20THIS\x20SOFTWARE\x20IS\x20PROVIDED\x20BY\x20THE\x20COPYRIG\
1208 HT\x20HOLDERS\x20AND\x20CONTRIBUTORS\n\x20\"AS\x20IS\"\x20AND\x20ANY\x20\
1209 EXPRESS\x20OR\x20IMPLIED\x20WARRANTIES,\x20INCLUDING,\x20BUT\x20NOT\n\
1210 \x20LIMITED\x20TO,\x20THE\x20IMPLIED\x20WARRANTIES\x20OF\x20MERCHANTABIL\
1211 ITY\x20AND\x20FITNESS\x20FOR\n\x20A\x20PARTICULAR\x20PURPOSE\x20ARE\x20D\
1212 ISCLAIMED.\x20IN\x20NO\x20EVENT\x20SHALL\x20THE\x20COPYRIGHT\n\x20OWNER\
1213 \x20OR\x20CONTRIBUTORS\x20BE\x20LIABLE\x20FOR\x20ANY\x20DIRECT,\x20INDIR\
1214 ECT,\x20INCIDENTAL,\n\x20SPECIAL,\x20EXEMPLARY,\x20OR\x20CONSEQUENTIAL\
1215 \x20DAMAGES\x20(INCLUDING,\x20BUT\x20NOT\n\x20LIMITED\x20TO,\x20PROCUREM\
1216 ENT\x20OF\x20SUBSTITUTE\x20GOODS\x20OR\x20SERVICES;\x20LOSS\x20OF\x20USE\
1217 ,\n\x20DATA,\x20OR\x20PROFITS;\x20OR\x20BUSINESS\x20INTERRUPTION)\x20HOW\
1218 EVER\x20CAUSED\x20AND\x20ON\x20ANY\n\x20THEORY\x20OF\x20LIABILITY,\x20WH\
1219 ETHER\x20IN\x20CONTRACT,\x20STRICT\x20LIABILITY,\x20OR\x20TORT\n\x20(INC\
1220 LUDING\x20NEGLIGENCE\x20OR\x20OTHERWISE)\x20ARISING\x20IN\x20ANY\x20WAY\
1221 \x20OUT\x20OF\x20THE\x20USE\n\x20OF\x20THIS\x20SOFTWARE,\x20EVEN\x20IF\
1222 \x20ADVISED\x20OF\x20THE\x20POSSIBILITY\x20OF\x20SUCH\x20DAMAGE.\n2\xfb\
1223 \x04\x20Author:\x20kenton@google.com\x20(Kenton\x20Varda)\n\n\x20WARNING\
1224 :\x20\x20The\x20plugin\x20interface\x20is\x20currently\x20EXPERIMENTAL\
1225 \x20and\x20is\x20subject\x20to\n\x20\x20\x20change.\n\n\x20protoc\x20(ak\
1226 a\x20the\x20Protocol\x20Compiler)\x20can\x20be\x20extended\x20via\x20plu\
1227 gins.\x20\x20A\x20plugin\x20is\n\x20just\x20a\x20program\x20that\x20read\
1228 s\x20a\x20CodeGeneratorRequest\x20from\x20stdin\x20and\x20writes\x20a\n\
1229 \x20CodeGeneratorResponse\x20to\x20stdout.\n\n\x20Plugins\x20written\x20\
1230 using\x20C++\x20can\x20use\x20google/protobuf/compiler/plugin.h\x20inste\
1231 ad\n\x20of\x20dealing\x20with\x20the\x20raw\x20protocol\x20defined\x20he\
1232 re.\n\n\x20A\x20plugin\x20executable\x20needs\x20only\x20to\x20be\x20pla\
1233 ced\x20somewhere\x20in\x20the\x20path.\x20\x20The\n\x20plugin\x20should\
1234 \x20be\x20named\x20\"protoc-gen-$NAME\",\x20and\x20will\x20then\x20be\
1235 \x20used\x20when\x20the\n\x20flag\x20\"--${NAME}_out\"\x20is\x20passed\
1236 \x20to\x20protoc.\n\n\x08\n\x01\x02\x12\x030\0!\n\x08\n\x01\x08\x12\x031\
1237 \05\n\t\n\x02\x08\x01\x12\x031\05\n\x08\n\x01\x08\x12\x032\0-\n\t\n\x02\
1238 \x08\x08\x12\x032\0-\n\x08\n\x01\x08\x12\x034\0@\n\t\n\x02\x08\x0b\x12\
1239 \x034\0@\n\t\n\x02\x03\0\x12\x036\0*\n6\n\x02\x04\0\x12\x049\0@\x01\x1a*\
1240 \x20The\x20version\x20number\x20of\x20protocol\x20compiler.\n\n\n\n\x03\
1241 \x04\0\x01\x12\x039\x08\x0f\n\x0b\n\x04\x04\0\x02\0\x12\x03:\x02\x1b\n\
1242 \x0c\n\x05\x04\0\x02\0\x04\x12\x03:\x02\n\n\x0c\n\x05\x04\0\x02\0\x05\
1243 \x12\x03:\x0b\x10\n\x0c\n\x05\x04\0\x02\0\x01\x12\x03:\x11\x16\n\x0c\n\
1244 \x05\x04\0\x02\0\x03\x12\x03:\x19\x1a\n\x0b\n\x04\x04\0\x02\x01\x12\x03;\
1245 \x02\x1b\n\x0c\n\x05\x04\0\x02\x01\x04\x12\x03;\x02\n\n\x0c\n\x05\x04\0\
1246 \x02\x01\x05\x12\x03;\x0b\x10\n\x0c\n\x05\x04\0\x02\x01\x01\x12\x03;\x11\
1247 \x16\n\x0c\n\x05\x04\0\x02\x01\x03\x12\x03;\x19\x1a\n\x0b\n\x04\x04\0\
1248 \x02\x02\x12\x03<\x02\x1b\n\x0c\n\x05\x04\0\x02\x02\x04\x12\x03<\x02\n\n\
1249 \x0c\n\x05\x04\0\x02\x02\x05\x12\x03<\x0b\x10\n\x0c\n\x05\x04\0\x02\x02\
1250 \x01\x12\x03<\x11\x16\n\x0c\n\x05\x04\0\x02\x02\x03\x12\x03<\x19\x1a\n\
1251 \x80\x01\n\x04\x04\0\x02\x03\x12\x03?\x02\x1d\x1as\x20A\x20suffix\x20for\
1252 \x20alpha,\x20beta\x20or\x20rc\x20release,\x20e.g.,\x20\"alpha-1\",\x20\
1253 \"rc2\".\x20It\x20should\n\x20be\x20empty\x20for\x20mainline\x20stable\
1254 \x20releases.\n\n\x0c\n\x05\x04\0\x02\x03\x04\x12\x03?\x02\n\n\x0c\n\x05\
1255 \x04\0\x02\x03\x05\x12\x03?\x0b\x11\n\x0c\n\x05\x04\0\x02\x03\x01\x12\
1256 \x03?\x12\x18\n\x0c\n\x05\x04\0\x02\x03\x03\x12\x03?\x1b\x1c\nO\n\x02\
1257 \x04\x01\x12\x04C\0_\x01\x1aC\x20An\x20encoded\x20CodeGeneratorRequest\
1258 \x20is\x20written\x20to\x20the\x20plugin's\x20stdin.\n\n\n\n\x03\x04\x01\
1259 \x01\x12\x03C\x08\x1c\n\xd1\x01\n\x04\x04\x01\x02\0\x12\x03G\x02'\x1a\
1260 \xc3\x01\x20The\x20.proto\x20files\x20that\x20were\x20explicitly\x20list\
1261 ed\x20on\x20the\x20command-line.\x20\x20The\n\x20code\x20generator\x20sh\
1262 ould\x20generate\x20code\x20only\x20for\x20these\x20files.\x20\x20Each\
1263 \x20file's\n\x20descriptor\x20will\x20be\x20included\x20in\x20proto_file\
1264 ,\x20below.\n\n\x0c\n\x05\x04\x01\x02\0\x04\x12\x03G\x02\n\n\x0c\n\x05\
1265 \x04\x01\x02\0\x05\x12\x03G\x0b\x11\n\x0c\n\x05\x04\x01\x02\0\x01\x12\
1266 \x03G\x12\"\n\x0c\n\x05\x04\x01\x02\0\x03\x12\x03G%&\nB\n\x04\x04\x01\
1267 \x02\x01\x12\x03J\x02\x20\x1a5\x20The\x20generator\x20parameter\x20passe\
1268 d\x20on\x20the\x20command-line.\n\n\x0c\n\x05\x04\x01\x02\x01\x04\x12\
1269 \x03J\x02\n\n\x0c\n\x05\x04\x01\x02\x01\x05\x12\x03J\x0b\x11\n\x0c\n\x05\
1270 \x04\x01\x02\x01\x01\x12\x03J\x12\x1b\n\x0c\n\x05\x04\x01\x02\x01\x03\
1271 \x12\x03J\x1e\x1f\n\x87\x06\n\x04\x04\x01\x02\x02\x12\x03Z\x02/\x1a\xf9\
1272 \x05\x20FileDescriptorProtos\x20for\x20all\x20files\x20in\x20files_to_ge\
1273 nerate\x20and\x20everything\n\x20they\x20import.\x20\x20The\x20files\x20\
1274 will\x20appear\x20in\x20topological\x20order,\x20so\x20each\x20file\n\
1275 \x20appears\x20before\x20any\x20file\x20that\x20imports\x20it.\n\n\x20pr\
1276 otoc\x20guarantees\x20that\x20all\x20proto_files\x20will\x20be\x20writte\
1277 n\x20after\n\x20the\x20fields\x20above,\x20even\x20though\x20this\x20is\
1278 \x20not\x20technically\x20guaranteed\x20by\x20the\n\x20protobuf\x20wire\
1279 \x20format.\x20\x20This\x20theoretically\x20could\x20allow\x20a\x20plugi\
1280 n\x20to\x20stream\n\x20in\x20the\x20FileDescriptorProtos\x20and\x20handl\
1281 e\x20them\x20one\x20by\x20one\x20rather\x20than\x20read\n\x20the\x20enti\
1282 re\x20set\x20into\x20memory\x20at\x20once.\x20\x20However,\x20as\x20of\
1283 \x20this\x20writing,\x20this\n\x20is\x20not\x20similarly\x20optimized\
1284 \x20on\x20protoc's\x20end\x20--\x20it\x20will\x20store\x20all\x20fields\
1285 \x20in\n\x20memory\x20at\x20once\x20before\x20sending\x20them\x20to\x20t\
1286 he\x20plugin.\n\n\x20Type\x20names\x20of\x20fields\x20and\x20extensions\
1287 \x20in\x20the\x20FileDescriptorProto\x20are\x20always\n\x20fully\x20qual\
1288 ified.\n\n\x0c\n\x05\x04\x01\x02\x02\x04\x12\x03Z\x02\n\n\x0c\n\x05\x04\
1289 \x01\x02\x02\x06\x12\x03Z\x0b\x1e\n\x0c\n\x05\x04\x01\x02\x02\x01\x12\
1290 \x03Z\x1f)\n\x0c\n\x05\x04\x01\x02\x02\x03\x12\x03Z,.\n7\n\x04\x04\x01\
1291 \x02\x03\x12\x03]\x02(\x1a*\x20The\x20version\x20number\x20of\x20protoco\
1292 l\x20compiler.\n\n\x0c\n\x05\x04\x01\x02\x03\x04\x12\x03]\x02\n\n\x0c\n\
1293 \x05\x04\x01\x02\x03\x06\x12\x03]\x0b\x12\n\x0c\n\x05\x04\x01\x02\x03\
1294 \x01\x12\x03]\x13#\n\x0c\n\x05\x04\x01\x02\x03\x03\x12\x03]&'\nL\n\x02\
1295 \x04\x02\x12\x05b\0\xb6\x01\x01\x1a?\x20The\x20plugin\x20writes\x20an\
1296 \x20encoded\x20CodeGeneratorResponse\x20to\x20stdout.\n\n\n\n\x03\x04\
1297 \x02\x01\x12\x03b\x08\x1d\n\xed\x03\n\x04\x04\x02\x02\0\x12\x03k\x02\x1c\
1298 \x1a\xdf\x03\x20Error\x20message.\x20\x20If\x20non-empty,\x20code\x20gen\
1299 eration\x20failed.\x20\x20The\x20plugin\x20process\n\x20should\x20exit\
1300 \x20with\x20status\x20code\x20zero\x20even\x20if\x20it\x20reports\x20an\
1301 \x20error\x20in\x20this\x20way.\n\n\x20This\x20should\x20be\x20used\x20t\
1302 o\x20indicate\x20errors\x20in\x20.proto\x20files\x20which\x20prevent\x20\
1303 the\n\x20code\x20generator\x20from\x20generating\x20correct\x20code.\x20\
1304 \x20Errors\x20which\x20indicate\x20a\n\x20problem\x20in\x20protoc\x20its\
1305 elf\x20--\x20such\x20as\x20the\x20input\x20CodeGeneratorRequest\x20being\
1306 \n\x20unparseable\x20--\x20should\x20be\x20reported\x20by\x20writing\x20\
1307 a\x20message\x20to\x20stderr\x20and\n\x20exiting\x20with\x20a\x20non-zer\
1308 o\x20status\x20code.\n\n\x0c\n\x05\x04\x02\x02\0\x04\x12\x03k\x02\n\n\
1309 \x0c\n\x05\x04\x02\x02\0\x05\x12\x03k\x0b\x11\n\x0c\n\x05\x04\x02\x02\0\
1310 \x01\x12\x03k\x12\x17\n\x0c\n\x05\x04\x02\x02\0\x03\x12\x03k\x1a\x1b\n\
1311 \x89\x01\n\x04\x04\x02\x02\x01\x12\x03o\x02)\x1a|\x20A\x20bitmask\x20of\
1312 \x20supported\x20features\x20that\x20the\x20code\x20generator\x20support\
1313 s.\n\x20This\x20is\x20a\x20bitwise\x20\"or\"\x20of\x20values\x20from\x20\
1314 the\x20Feature\x20enum.\n\n\x0c\n\x05\x04\x02\x02\x01\x04\x12\x03o\x02\n\
1315 \n\x0c\n\x05\x04\x02\x02\x01\x05\x12\x03o\x0b\x11\n\x0c\n\x05\x04\x02\
1316 \x02\x01\x01\x12\x03o\x12$\n\x0c\n\x05\x04\x02\x02\x01\x03\x12\x03o'(\n+\
1317 \n\x04\x04\x02\x04\0\x12\x04r\x02u\x03\x1a\x1d\x20Sync\x20with\x20code_g\
1318 enerator.h.\n\n\x0c\n\x05\x04\x02\x04\0\x01\x12\x03r\x07\x0e\n\r\n\x06\
1319 \x04\x02\x04\0\x02\0\x12\x03s\x04\x15\n\x0e\n\x07\x04\x02\x04\0\x02\0\
1320 \x01\x12\x03s\x04\x10\n\x0e\n\x07\x04\x02\x04\0\x02\0\x02\x12\x03s\x13\
1321 \x14\n\r\n\x06\x04\x02\x04\0\x02\x01\x12\x03t\x04\x20\n\x0e\n\x07\x04\
1322 \x02\x04\0\x02\x01\x01\x12\x03t\x04\x1b\n\x0e\n\x07\x04\x02\x04\0\x02\
1323 \x01\x02\x12\x03t\x1e\x1f\n4\n\x04\x04\x02\x03\0\x12\x05x\x02\xb4\x01\
1324 \x03\x1a%\x20Represents\x20a\x20single\x20generated\x20file.\n\n\x0c\n\
1325 \x05\x04\x02\x03\0\x01\x12\x03x\n\x0e\n\xae\x05\n\x06\x04\x02\x03\0\x02\
1326 \0\x12\x04\x84\x01\x04\x1d\x1a\x9d\x05\x20The\x20file\x20name,\x20relati\
1327 ve\x20to\x20the\x20output\x20directory.\x20\x20The\x20name\x20must\x20no\
1328 t\n\x20contain\x20\".\"\x20or\x20\"..\"\x20components\x20and\x20must\x20\
1329 be\x20relative,\x20not\x20be\x20absolute\x20(so,\n\x20the\x20file\x20can\
1330 not\x20lie\x20outside\x20the\x20output\x20directory).\x20\x20\"/\"\x20mu\
1331 st\x20be\x20used\x20as\n\x20the\x20path\x20separator,\x20not\x20\"\\\".\
1332 \n\n\x20If\x20the\x20name\x20is\x20omitted,\x20the\x20content\x20will\
1333 \x20be\x20appended\x20to\x20the\x20previous\n\x20file.\x20\x20This\x20al\
1334 lows\x20the\x20generator\x20to\x20break\x20large\x20files\x20into\x20sma\
1335 ll\x20chunks,\n\x20and\x20allows\x20the\x20generated\x20text\x20to\x20be\
1336 \x20streamed\x20back\x20to\x20protoc\x20so\x20that\x20large\n\x20files\
1337 \x20need\x20not\x20reside\x20completely\x20in\x20memory\x20at\x20one\x20\
1338 time.\x20\x20Note\x20that\x20as\x20of\n\x20this\x20writing\x20protoc\x20\
1339 does\x20not\x20optimize\x20for\x20this\x20--\x20it\x20will\x20read\x20th\
1340 e\x20entire\n\x20CodeGeneratorResponse\x20before\x20writing\x20files\x20\
1341 to\x20disk.\n\n\x0f\n\x07\x04\x02\x03\0\x02\0\x04\x12\x04\x84\x01\x04\
1342 \x0c\n\x0f\n\x07\x04\x02\x03\0\x02\0\x05\x12\x04\x84\x01\r\x13\n\x0f\n\
1343 \x07\x04\x02\x03\0\x02\0\x01\x12\x04\x84\x01\x14\x18\n\x0f\n\x07\x04\x02\
1344 \x03\0\x02\0\x03\x12\x04\x84\x01\x1b\x1c\n\xae\x10\n\x06\x04\x02\x03\0\
1345 \x02\x01\x12\x04\xab\x01\x04(\x1a\x9d\x10\x20If\x20non-empty,\x20indicat\
1346 es\x20that\x20the\x20named\x20file\x20should\x20already\x20exist,\x20and\
1347 \x20the\n\x20content\x20here\x20is\x20to\x20be\x20inserted\x20into\x20th\
1348 at\x20file\x20at\x20a\x20defined\x20insertion\n\x20point.\x20\x20This\
1349 \x20feature\x20allows\x20a\x20code\x20generator\x20to\x20extend\x20the\
1350 \x20output\n\x20produced\x20by\x20another\x20code\x20generator.\x20\x20T\
1351 he\x20original\x20generator\x20may\x20provide\n\x20insertion\x20points\
1352 \x20by\x20placing\x20special\x20annotations\x20in\x20the\x20file\x20that\
1353 \x20look\n\x20like:\n\x20\x20\x20@@protoc_insertion_point(NAME)\n\x20The\
1354 \x20annotation\x20can\x20have\x20arbitrary\x20text\x20before\x20and\x20a\
1355 fter\x20it\x20on\x20the\x20line,\n\x20which\x20allows\x20it\x20to\x20be\
1356 \x20placed\x20in\x20a\x20comment.\x20\x20NAME\x20should\x20be\x20replace\
1357 d\x20with\n\x20an\x20identifier\x20naming\x20the\x20point\x20--\x20this\
1358 \x20is\x20what\x20other\x20generators\x20will\x20use\n\x20as\x20the\x20i\
1359 nsertion_point.\x20\x20Code\x20inserted\x20at\x20this\x20point\x20will\
1360 \x20be\x20placed\n\x20immediately\x20above\x20the\x20line\x20containing\
1361 \x20the\x20insertion\x20point\x20(thus\x20multiple\n\x20insertions\x20to\
1362 \x20the\x20same\x20point\x20will\x20come\x20out\x20in\x20the\x20order\
1363 \x20they\x20were\x20added).\n\x20The\x20double-@\x20is\x20intended\x20to\
1364 \x20make\x20it\x20unlikely\x20that\x20the\x20generated\x20code\n\x20coul\
1365 d\x20contain\x20things\x20that\x20look\x20like\x20insertion\x20points\
1366 \x20by\x20accident.\n\n\x20For\x20example,\x20the\x20C++\x20code\x20gene\
1367 rator\x20places\x20the\x20following\x20line\x20in\x20the\n\x20.pb.h\x20f\
1368 iles\x20that\x20it\x20generates:\n\x20\x20\x20//\x20@@protoc_insertion_p\
1369 oint(namespace_scope)\n\x20This\x20line\x20appears\x20within\x20the\x20s\
1370 cope\x20of\x20the\x20file's\x20package\x20namespace,\x20but\n\x20outside\
1371 \x20of\x20any\x20particular\x20class.\x20\x20Another\x20plugin\x20can\
1372 \x20then\x20specify\x20the\n\x20insertion_point\x20\"namespace_scope\"\
1373 \x20to\x20generate\x20additional\x20classes\x20or\n\x20other\x20declarat\
1374 ions\x20that\x20should\x20be\x20placed\x20in\x20this\x20scope.\n\n\x20No\
1375 te\x20that\x20if\x20the\x20line\x20containing\x20the\x20insertion\x20poi\
1376 nt\x20begins\x20with\n\x20whitespace,\x20the\x20same\x20whitespace\x20wi\
1377 ll\x20be\x20added\x20to\x20every\x20line\x20of\x20the\n\x20inserted\x20t\
1378 ext.\x20\x20This\x20is\x20useful\x20for\x20languages\x20like\x20Python,\
1379 \x20where\n\x20indentation\x20matters.\x20\x20In\x20these\x20languages,\
1380 \x20the\x20insertion\x20point\x20comment\n\x20should\x20be\x20indented\
1381 \x20the\x20same\x20amount\x20as\x20any\x20inserted\x20code\x20will\x20ne\
1382 ed\x20to\x20be\n\x20in\x20order\x20to\x20work\x20correctly\x20in\x20that\
1383 \x20context.\n\n\x20The\x20code\x20generator\x20that\x20generates\x20the\
1384 \x20initial\x20file\x20and\x20the\x20one\x20which\n\x20inserts\x20into\
1385 \x20it\x20must\x20both\x20run\x20as\x20part\x20of\x20a\x20single\x20invo\
1386 cation\x20of\x20protoc.\n\x20Code\x20generators\x20are\x20executed\x20in\
1387 \x20the\x20order\x20in\x20which\x20they\x20appear\x20on\x20the\n\x20comm\
1388 and\x20line.\n\n\x20If\x20|insertion_point|\x20is\x20present,\x20|name|\
1389 \x20must\x20also\x20be\x20present.\n\n\x0f\n\x07\x04\x02\x03\0\x02\x01\
1390 \x04\x12\x04\xab\x01\x04\x0c\n\x0f\n\x07\x04\x02\x03\0\x02\x01\x05\x12\
1391 \x04\xab\x01\r\x13\n\x0f\n\x07\x04\x02\x03\0\x02\x01\x01\x12\x04\xab\x01\
1392 \x14#\n\x0f\n\x07\x04\x02\x03\0\x02\x01\x03\x12\x04\xab\x01&'\n$\n\x06\
1393 \x04\x02\x03\0\x02\x02\x12\x04\xae\x01\x04!\x1a\x14\x20The\x20file\x20co\
1394 ntents.\n\n\x0f\n\x07\x04\x02\x03\0\x02\x02\x04\x12\x04\xae\x01\x04\x0c\
1395 \n\x0f\n\x07\x04\x02\x03\0\x02\x02\x05\x12\x04\xae\x01\r\x13\n\x0f\n\x07\
1396 \x04\x02\x03\0\x02\x02\x01\x12\x04\xae\x01\x14\x1b\n\x0f\n\x07\x04\x02\
1397 \x03\0\x02\x02\x03\x12\x04\xae\x01\x1e\x20\n\xe1\x01\n\x06\x04\x02\x03\0\
1398 \x02\x03\x12\x04\xb3\x01\x048\x1a\xd0\x01\x20Information\x20describing\
1399 \x20the\x20file\x20content\x20being\x20inserted.\x20If\x20an\x20insertio\
1400 n\n\x20point\x20is\x20used,\x20this\x20information\x20will\x20be\x20appr\
1401 opriately\x20offset\x20and\x20inserted\n\x20into\x20the\x20code\x20gener\
1402 ation\x20metadata\x20for\x20the\x20generated\x20files.\n\n\x0f\n\x07\x04\
1403 \x02\x03\0\x02\x03\x04\x12\x04\xb3\x01\x04\x0c\n\x0f\n\x07\x04\x02\x03\0\
1404 \x02\x03\x06\x12\x04\xb3\x01\r\x1e\n\x0f\n\x07\x04\x02\x03\0\x02\x03\x01\
1405 \x12\x04\xb3\x01\x1f2\n\x0f\n\x07\x04\x02\x03\0\x02\x03\x03\x12\x04\xb3\
1406 \x0157\n\x0c\n\x04\x04\x02\x02\x02\x12\x04\xb5\x01\x02\x1a\n\r\n\x05\x04\
1407 \x02\x02\x02\x04\x12\x04\xb5\x01\x02\n\n\r\n\x05\x04\x02\x02\x02\x06\x12\
1408 \x04\xb5\x01\x0b\x0f\n\r\n\x05\x04\x02\x02\x02\x01\x12\x04\xb5\x01\x10\
1409 \x14\n\r\n\x05\x04\x02\x02\x02\x03\x12\x04\xb5\x01\x17\x19\
1410";
1411
1412fn file_descriptor_proto() -> &'static crate::descriptor::FileDescriptorProto {
1414 static file_descriptor_proto_lazy: crate::rt::Lazy<crate::descriptor::FileDescriptorProto> = crate::rt::Lazy::new();
1415 file_descriptor_proto_lazy.get(|| {
1416 crate::Message::parse_from_bytes(file_descriptor_proto_data).unwrap()
1417 })
1418}
1419
1420pub fn file_descriptor() -> &'static crate::reflect::FileDescriptor {
1422 static generated_file_descriptor_lazy: crate::rt::Lazy<crate::reflect::GeneratedFileDescriptor> = crate::rt::Lazy::new();
1423 static file_descriptor: crate::rt::Lazy<crate::reflect::FileDescriptor> = crate::rt::Lazy::new();
1424 file_descriptor.get(|| {
1425 let generated_file_descriptor = generated_file_descriptor_lazy.get(|| {
1426 let mut deps = ::std::vec::Vec::with_capacity(1);
1427 deps.push(crate::descriptor::file_descriptor().clone());
1428 let mut messages = ::std::vec::Vec::with_capacity(4);
1429 messages.push(Version::generated_message_descriptor_data());
1430 messages.push(CodeGeneratorRequest::generated_message_descriptor_data());
1431 messages.push(CodeGeneratorResponse::generated_message_descriptor_data());
1432 messages.push(code_generator_response::File::generated_message_descriptor_data());
1433 let mut enums = ::std::vec::Vec::with_capacity(1);
1434 enums.push(code_generator_response::Feature::generated_enum_descriptor_data());
1435 crate::reflect::GeneratedFileDescriptor::new_generated(
1436 file_descriptor_proto(),
1437 deps,
1438 messages,
1439 enums,
1440 )
1441 });
1442 crate::reflect::FileDescriptor::new_generated_2(generated_file_descriptor)
1443 })
1444}