protobuf/well_known_types/
api.rs

1// This file is generated by rust-protobuf 2.27.1. Do not edit
2// @generated
3
4// https://github.com/rust-lang/rust-clippy/issues/702
5#![allow(unknown_lints)]
6#![allow(clippy::all)]
7
8#![allow(unused_attributes)]
9#![cfg_attr(rustfmt, rustfmt::skip)]
10
11#![allow(box_pointers)]
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_imports)]
19#![allow(unused_results)]
20//! Generated file from `google/protobuf/api.proto`
21
22#[derive(PartialEq,Clone,Default)]
23#[cfg_attr(feature = "with-serde", derive(::serde::Serialize, ::serde::Deserialize))]
24pub struct Api {
25    // message fields
26    pub name: ::std::string::String,
27    pub methods: crate::RepeatedField<Method>,
28    pub options: crate::RepeatedField<crate::well_known_types::Option>,
29    pub version: ::std::string::String,
30    pub source_context: crate::SingularPtrField<crate::well_known_types::SourceContext>,
31    pub mixins: crate::RepeatedField<Mixin>,
32    pub syntax: crate::well_known_types::Syntax,
33    // special fields
34    #[cfg_attr(feature = "with-serde", serde(skip))]
35    pub unknown_fields: crate::UnknownFields,
36    #[cfg_attr(feature = "with-serde", serde(skip))]
37    pub cached_size: crate::CachedSize,
38}
39
40impl<'a> ::std::default::Default for &'a Api {
41    fn default() -> &'a Api {
42        <Api as crate::Message>::default_instance()
43    }
44}
45
46impl Api {
47    pub fn new() -> Api {
48        ::std::default::Default::default()
49    }
50
51    // string name = 1;
52
53
54    pub fn get_name(&self) -> &str {
55        &self.name
56    }
57    pub fn clear_name(&mut self) {
58        self.name.clear();
59    }
60
61    // Param is passed by value, moved
62    pub fn set_name(&mut self, v: ::std::string::String) {
63        self.name = v;
64    }
65
66    // Mutable pointer to the field.
67    // If field is not initialized, it is initialized with default value first.
68    pub fn mut_name(&mut self) -> &mut ::std::string::String {
69        &mut self.name
70    }
71
72    // Take field
73    pub fn take_name(&mut self) -> ::std::string::String {
74        ::std::mem::replace(&mut self.name, ::std::string::String::new())
75    }
76
77    // repeated .google.protobuf.Method methods = 2;
78
79
80    pub fn get_methods(&self) -> &[Method] {
81        &self.methods
82    }
83    pub fn clear_methods(&mut self) {
84        self.methods.clear();
85    }
86
87    // Param is passed by value, moved
88    pub fn set_methods(&mut self, v: crate::RepeatedField<Method>) {
89        self.methods = v;
90    }
91
92    // Mutable pointer to the field.
93    pub fn mut_methods(&mut self) -> &mut crate::RepeatedField<Method> {
94        &mut self.methods
95    }
96
97    // Take field
98    pub fn take_methods(&mut self) -> crate::RepeatedField<Method> {
99        ::std::mem::replace(&mut self.methods, crate::RepeatedField::new())
100    }
101
102    // repeated .google.protobuf.Option options = 3;
103
104
105    pub fn get_options(&self) -> &[crate::well_known_types::Option] {
106        &self.options
107    }
108    pub fn clear_options(&mut self) {
109        self.options.clear();
110    }
111
112    // Param is passed by value, moved
113    pub fn set_options(&mut self, v: crate::RepeatedField<crate::well_known_types::Option>) {
114        self.options = v;
115    }
116
117    // Mutable pointer to the field.
118    pub fn mut_options(&mut self) -> &mut crate::RepeatedField<crate::well_known_types::Option> {
119        &mut self.options
120    }
121
122    // Take field
123    pub fn take_options(&mut self) -> crate::RepeatedField<crate::well_known_types::Option> {
124        ::std::mem::replace(&mut self.options, crate::RepeatedField::new())
125    }
126
127    // string version = 4;
128
129
130    pub fn get_version(&self) -> &str {
131        &self.version
132    }
133    pub fn clear_version(&mut self) {
134        self.version.clear();
135    }
136
137    // Param is passed by value, moved
138    pub fn set_version(&mut self, v: ::std::string::String) {
139        self.version = v;
140    }
141
142    // Mutable pointer to the field.
143    // If field is not initialized, it is initialized with default value first.
144    pub fn mut_version(&mut self) -> &mut ::std::string::String {
145        &mut self.version
146    }
147
148    // Take field
149    pub fn take_version(&mut self) -> ::std::string::String {
150        ::std::mem::replace(&mut self.version, ::std::string::String::new())
151    }
152
153    // .google.protobuf.SourceContext source_context = 5;
154
155
156    pub fn get_source_context(&self) -> &crate::well_known_types::SourceContext {
157        self.source_context.as_ref().unwrap_or_else(|| <crate::well_known_types::SourceContext as crate::Message>::default_instance())
158    }
159    pub fn clear_source_context(&mut self) {
160        self.source_context.clear();
161    }
162
163    pub fn has_source_context(&self) -> bool {
164        self.source_context.is_some()
165    }
166
167    // Param is passed by value, moved
168    pub fn set_source_context(&mut self, v: crate::well_known_types::SourceContext) {
169        self.source_context = crate::SingularPtrField::some(v);
170    }
171
172    // Mutable pointer to the field.
173    // If field is not initialized, it is initialized with default value first.
174    pub fn mut_source_context(&mut self) -> &mut crate::well_known_types::SourceContext {
175        if self.source_context.is_none() {
176            self.source_context.set_default();
177        }
178        self.source_context.as_mut().unwrap()
179    }
180
181    // Take field
182    pub fn take_source_context(&mut self) -> crate::well_known_types::SourceContext {
183        self.source_context.take().unwrap_or_else(|| crate::well_known_types::SourceContext::new())
184    }
185
186    // repeated .google.protobuf.Mixin mixins = 6;
187
188
189    pub fn get_mixins(&self) -> &[Mixin] {
190        &self.mixins
191    }
192    pub fn clear_mixins(&mut self) {
193        self.mixins.clear();
194    }
195
196    // Param is passed by value, moved
197    pub fn set_mixins(&mut self, v: crate::RepeatedField<Mixin>) {
198        self.mixins = v;
199    }
200
201    // Mutable pointer to the field.
202    pub fn mut_mixins(&mut self) -> &mut crate::RepeatedField<Mixin> {
203        &mut self.mixins
204    }
205
206    // Take field
207    pub fn take_mixins(&mut self) -> crate::RepeatedField<Mixin> {
208        ::std::mem::replace(&mut self.mixins, crate::RepeatedField::new())
209    }
210
211    // .google.protobuf.Syntax syntax = 7;
212
213
214    pub fn get_syntax(&self) -> crate::well_known_types::Syntax {
215        self.syntax
216    }
217    pub fn clear_syntax(&mut self) {
218        self.syntax = crate::well_known_types::Syntax::SYNTAX_PROTO2;
219    }
220
221    // Param is passed by value, moved
222    pub fn set_syntax(&mut self, v: crate::well_known_types::Syntax) {
223        self.syntax = v;
224    }
225}
226
227impl crate::Message for Api {
228    fn is_initialized(&self) -> bool {
229        for v in &self.methods {
230            if !v.is_initialized() {
231                return false;
232            }
233        };
234        for v in &self.options {
235            if !v.is_initialized() {
236                return false;
237            }
238        };
239        for v in &self.source_context {
240            if !v.is_initialized() {
241                return false;
242            }
243        };
244        for v in &self.mixins {
245            if !v.is_initialized() {
246                return false;
247            }
248        };
249        true
250    }
251
252    fn merge_from(&mut self, is: &mut crate::CodedInputStream<'_>) -> crate::ProtobufResult<()> {
253        while !is.eof()? {
254            let (field_number, wire_type) = is.read_tag_unpack()?;
255            match field_number {
256                1 => {
257                    crate::rt::read_singular_proto3_string_into(wire_type, is, &mut self.name)?;
258                },
259                2 => {
260                    crate::rt::read_repeated_message_into(wire_type, is, &mut self.methods)?;
261                },
262                3 => {
263                    crate::rt::read_repeated_message_into(wire_type, is, &mut self.options)?;
264                },
265                4 => {
266                    crate::rt::read_singular_proto3_string_into(wire_type, is, &mut self.version)?;
267                },
268                5 => {
269                    crate::rt::read_singular_message_into(wire_type, is, &mut self.source_context)?;
270                },
271                6 => {
272                    crate::rt::read_repeated_message_into(wire_type, is, &mut self.mixins)?;
273                },
274                7 => {
275                    crate::rt::read_proto3_enum_with_unknown_fields_into(wire_type, is, &mut self.syntax, 7, &mut self.unknown_fields)?
276                },
277                _ => {
278                    crate::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
279                },
280            };
281        }
282        ::std::result::Result::Ok(())
283    }
284
285    // Compute sizes of nested messages
286    #[allow(unused_variables)]
287    fn compute_size(&self) -> u32 {
288        let mut my_size = 0;
289        if !self.name.is_empty() {
290            my_size += crate::rt::string_size(1, &self.name);
291        }
292        for value in &self.methods {
293            let len = value.compute_size();
294            my_size += 1 + crate::rt::compute_raw_varint32_size(len) + len;
295        };
296        for value in &self.options {
297            let len = value.compute_size();
298            my_size += 1 + crate::rt::compute_raw_varint32_size(len) + len;
299        };
300        if !self.version.is_empty() {
301            my_size += crate::rt::string_size(4, &self.version);
302        }
303        if let Some(ref v) = self.source_context.as_ref() {
304            let len = v.compute_size();
305            my_size += 1 + crate::rt::compute_raw_varint32_size(len) + len;
306        }
307        for value in &self.mixins {
308            let len = value.compute_size();
309            my_size += 1 + crate::rt::compute_raw_varint32_size(len) + len;
310        };
311        if self.syntax != crate::well_known_types::Syntax::SYNTAX_PROTO2 {
312            my_size += crate::rt::enum_size(7, self.syntax);
313        }
314        my_size += crate::rt::unknown_fields_size(self.get_unknown_fields());
315        self.cached_size.set(my_size);
316        my_size
317    }
318
319    fn write_to_with_cached_sizes(&self, os: &mut crate::CodedOutputStream<'_>) -> crate::ProtobufResult<()> {
320        if !self.name.is_empty() {
321            os.write_string(1, &self.name)?;
322        }
323        for v in &self.methods {
324            os.write_tag(2, crate::wire_format::WireTypeLengthDelimited)?;
325            os.write_raw_varint32(v.get_cached_size())?;
326            v.write_to_with_cached_sizes(os)?;
327        };
328        for v in &self.options {
329            os.write_tag(3, crate::wire_format::WireTypeLengthDelimited)?;
330            os.write_raw_varint32(v.get_cached_size())?;
331            v.write_to_with_cached_sizes(os)?;
332        };
333        if !self.version.is_empty() {
334            os.write_string(4, &self.version)?;
335        }
336        if let Some(ref v) = self.source_context.as_ref() {
337            os.write_tag(5, crate::wire_format::WireTypeLengthDelimited)?;
338            os.write_raw_varint32(v.get_cached_size())?;
339            v.write_to_with_cached_sizes(os)?;
340        }
341        for v in &self.mixins {
342            os.write_tag(6, crate::wire_format::WireTypeLengthDelimited)?;
343            os.write_raw_varint32(v.get_cached_size())?;
344            v.write_to_with_cached_sizes(os)?;
345        };
346        if self.syntax != crate::well_known_types::Syntax::SYNTAX_PROTO2 {
347            os.write_enum(7, crate::ProtobufEnum::value(&self.syntax))?;
348        }
349        os.write_unknown_fields(self.get_unknown_fields())?;
350        ::std::result::Result::Ok(())
351    }
352
353    fn get_cached_size(&self) -> u32 {
354        self.cached_size.get()
355    }
356
357    fn get_unknown_fields(&self) -> &crate::UnknownFields {
358        &self.unknown_fields
359    }
360
361    fn mut_unknown_fields(&mut self) -> &mut crate::UnknownFields {
362        &mut self.unknown_fields
363    }
364
365    fn as_any(&self) -> &dyn (::std::any::Any) {
366        self as &dyn (::std::any::Any)
367    }
368    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
369        self as &mut dyn (::std::any::Any)
370    }
371    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
372        self
373    }
374
375    fn descriptor(&self) -> &'static crate::reflect::MessageDescriptor {
376        Self::descriptor_static()
377    }
378
379    fn new() -> Api {
380        Api::new()
381    }
382
383    fn descriptor_static() -> &'static crate::reflect::MessageDescriptor {
384        static descriptor: crate::rt::LazyV2<crate::reflect::MessageDescriptor> = crate::rt::LazyV2::INIT;
385        descriptor.get(|| {
386            let mut fields = ::std::vec::Vec::new();
387            fields.push(crate::reflect::accessor::make_simple_field_accessor::<_, crate::types::ProtobufTypeString>(
388                "name",
389                |m: &Api| { &m.name },
390                |m: &mut Api| { &mut m.name },
391            ));
392            fields.push(crate::reflect::accessor::make_repeated_field_accessor::<_, crate::types::ProtobufTypeMessage<Method>>(
393                "methods",
394                |m: &Api| { &m.methods },
395                |m: &mut Api| { &mut m.methods },
396            ));
397            fields.push(crate::reflect::accessor::make_repeated_field_accessor::<_, crate::types::ProtobufTypeMessage<crate::well_known_types::Option>>(
398                "options",
399                |m: &Api| { &m.options },
400                |m: &mut Api| { &mut m.options },
401            ));
402            fields.push(crate::reflect::accessor::make_simple_field_accessor::<_, crate::types::ProtobufTypeString>(
403                "version",
404                |m: &Api| { &m.version },
405                |m: &mut Api| { &mut m.version },
406            ));
407            fields.push(crate::reflect::accessor::make_singular_ptr_field_accessor::<_, crate::types::ProtobufTypeMessage<crate::well_known_types::SourceContext>>(
408                "source_context",
409                |m: &Api| { &m.source_context },
410                |m: &mut Api| { &mut m.source_context },
411            ));
412            fields.push(crate::reflect::accessor::make_repeated_field_accessor::<_, crate::types::ProtobufTypeMessage<Mixin>>(
413                "mixins",
414                |m: &Api| { &m.mixins },
415                |m: &mut Api| { &mut m.mixins },
416            ));
417            fields.push(crate::reflect::accessor::make_simple_field_accessor::<_, crate::types::ProtobufTypeEnum<crate::well_known_types::Syntax>>(
418                "syntax",
419                |m: &Api| { &m.syntax },
420                |m: &mut Api| { &mut m.syntax },
421            ));
422            crate::reflect::MessageDescriptor::new_pb_name::<Api>(
423                "Api",
424                fields,
425                file_descriptor_proto()
426            )
427        })
428    }
429
430    fn default_instance() -> &'static Api {
431        static instance: crate::rt::LazyV2<Api> = crate::rt::LazyV2::INIT;
432        instance.get(Api::new)
433    }
434}
435
436impl crate::Clear for Api {
437    fn clear(&mut self) {
438        self.name.clear();
439        self.methods.clear();
440        self.options.clear();
441        self.version.clear();
442        self.source_context.clear();
443        self.mixins.clear();
444        self.syntax = crate::well_known_types::Syntax::SYNTAX_PROTO2;
445        self.unknown_fields.clear();
446    }
447}
448
449impl ::std::fmt::Debug for Api {
450    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
451        crate::text_format::fmt(self, f)
452    }
453}
454
455impl crate::reflect::ProtobufValue for Api {
456    fn as_ref(&self) -> crate::reflect::ReflectValueRef {
457        crate::reflect::ReflectValueRef::Message(self)
458    }
459}
460
461#[derive(PartialEq,Clone,Default)]
462#[cfg_attr(feature = "with-serde", derive(::serde::Serialize, ::serde::Deserialize))]
463pub struct Method {
464    // message fields
465    pub name: ::std::string::String,
466    pub request_type_url: ::std::string::String,
467    pub request_streaming: bool,
468    pub response_type_url: ::std::string::String,
469    pub response_streaming: bool,
470    pub options: crate::RepeatedField<crate::well_known_types::Option>,
471    pub syntax: crate::well_known_types::Syntax,
472    // special fields
473    #[cfg_attr(feature = "with-serde", serde(skip))]
474    pub unknown_fields: crate::UnknownFields,
475    #[cfg_attr(feature = "with-serde", serde(skip))]
476    pub cached_size: crate::CachedSize,
477}
478
479impl<'a> ::std::default::Default for &'a Method {
480    fn default() -> &'a Method {
481        <Method as crate::Message>::default_instance()
482    }
483}
484
485impl Method {
486    pub fn new() -> Method {
487        ::std::default::Default::default()
488    }
489
490    // string name = 1;
491
492
493    pub fn get_name(&self) -> &str {
494        &self.name
495    }
496    pub fn clear_name(&mut self) {
497        self.name.clear();
498    }
499
500    // Param is passed by value, moved
501    pub fn set_name(&mut self, v: ::std::string::String) {
502        self.name = v;
503    }
504
505    // Mutable pointer to the field.
506    // If field is not initialized, it is initialized with default value first.
507    pub fn mut_name(&mut self) -> &mut ::std::string::String {
508        &mut self.name
509    }
510
511    // Take field
512    pub fn take_name(&mut self) -> ::std::string::String {
513        ::std::mem::replace(&mut self.name, ::std::string::String::new())
514    }
515
516    // string request_type_url = 2;
517
518
519    pub fn get_request_type_url(&self) -> &str {
520        &self.request_type_url
521    }
522    pub fn clear_request_type_url(&mut self) {
523        self.request_type_url.clear();
524    }
525
526    // Param is passed by value, moved
527    pub fn set_request_type_url(&mut self, v: ::std::string::String) {
528        self.request_type_url = v;
529    }
530
531    // Mutable pointer to the field.
532    // If field is not initialized, it is initialized with default value first.
533    pub fn mut_request_type_url(&mut self) -> &mut ::std::string::String {
534        &mut self.request_type_url
535    }
536
537    // Take field
538    pub fn take_request_type_url(&mut self) -> ::std::string::String {
539        ::std::mem::replace(&mut self.request_type_url, ::std::string::String::new())
540    }
541
542    // bool request_streaming = 3;
543
544
545    pub fn get_request_streaming(&self) -> bool {
546        self.request_streaming
547    }
548    pub fn clear_request_streaming(&mut self) {
549        self.request_streaming = false;
550    }
551
552    // Param is passed by value, moved
553    pub fn set_request_streaming(&mut self, v: bool) {
554        self.request_streaming = v;
555    }
556
557    // string response_type_url = 4;
558
559
560    pub fn get_response_type_url(&self) -> &str {
561        &self.response_type_url
562    }
563    pub fn clear_response_type_url(&mut self) {
564        self.response_type_url.clear();
565    }
566
567    // Param is passed by value, moved
568    pub fn set_response_type_url(&mut self, v: ::std::string::String) {
569        self.response_type_url = v;
570    }
571
572    // Mutable pointer to the field.
573    // If field is not initialized, it is initialized with default value first.
574    pub fn mut_response_type_url(&mut self) -> &mut ::std::string::String {
575        &mut self.response_type_url
576    }
577
578    // Take field
579    pub fn take_response_type_url(&mut self) -> ::std::string::String {
580        ::std::mem::replace(&mut self.response_type_url, ::std::string::String::new())
581    }
582
583    // bool response_streaming = 5;
584
585
586    pub fn get_response_streaming(&self) -> bool {
587        self.response_streaming
588    }
589    pub fn clear_response_streaming(&mut self) {
590        self.response_streaming = false;
591    }
592
593    // Param is passed by value, moved
594    pub fn set_response_streaming(&mut self, v: bool) {
595        self.response_streaming = v;
596    }
597
598    // repeated .google.protobuf.Option options = 6;
599
600
601    pub fn get_options(&self) -> &[crate::well_known_types::Option] {
602        &self.options
603    }
604    pub fn clear_options(&mut self) {
605        self.options.clear();
606    }
607
608    // Param is passed by value, moved
609    pub fn set_options(&mut self, v: crate::RepeatedField<crate::well_known_types::Option>) {
610        self.options = v;
611    }
612
613    // Mutable pointer to the field.
614    pub fn mut_options(&mut self) -> &mut crate::RepeatedField<crate::well_known_types::Option> {
615        &mut self.options
616    }
617
618    // Take field
619    pub fn take_options(&mut self) -> crate::RepeatedField<crate::well_known_types::Option> {
620        ::std::mem::replace(&mut self.options, crate::RepeatedField::new())
621    }
622
623    // .google.protobuf.Syntax syntax = 7;
624
625
626    pub fn get_syntax(&self) -> crate::well_known_types::Syntax {
627        self.syntax
628    }
629    pub fn clear_syntax(&mut self) {
630        self.syntax = crate::well_known_types::Syntax::SYNTAX_PROTO2;
631    }
632
633    // Param is passed by value, moved
634    pub fn set_syntax(&mut self, v: crate::well_known_types::Syntax) {
635        self.syntax = v;
636    }
637}
638
639impl crate::Message for Method {
640    fn is_initialized(&self) -> bool {
641        for v in &self.options {
642            if !v.is_initialized() {
643                return false;
644            }
645        };
646        true
647    }
648
649    fn merge_from(&mut self, is: &mut crate::CodedInputStream<'_>) -> crate::ProtobufResult<()> {
650        while !is.eof()? {
651            let (field_number, wire_type) = is.read_tag_unpack()?;
652            match field_number {
653                1 => {
654                    crate::rt::read_singular_proto3_string_into(wire_type, is, &mut self.name)?;
655                },
656                2 => {
657                    crate::rt::read_singular_proto3_string_into(wire_type, is, &mut self.request_type_url)?;
658                },
659                3 => {
660                    if wire_type != crate::wire_format::WireTypeVarint {
661                        return ::std::result::Result::Err(crate::rt::unexpected_wire_type(wire_type));
662                    }
663                    let tmp = is.read_bool()?;
664                    self.request_streaming = tmp;
665                },
666                4 => {
667                    crate::rt::read_singular_proto3_string_into(wire_type, is, &mut self.response_type_url)?;
668                },
669                5 => {
670                    if wire_type != crate::wire_format::WireTypeVarint {
671                        return ::std::result::Result::Err(crate::rt::unexpected_wire_type(wire_type));
672                    }
673                    let tmp = is.read_bool()?;
674                    self.response_streaming = tmp;
675                },
676                6 => {
677                    crate::rt::read_repeated_message_into(wire_type, is, &mut self.options)?;
678                },
679                7 => {
680                    crate::rt::read_proto3_enum_with_unknown_fields_into(wire_type, is, &mut self.syntax, 7, &mut self.unknown_fields)?
681                },
682                _ => {
683                    crate::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
684                },
685            };
686        }
687        ::std::result::Result::Ok(())
688    }
689
690    // Compute sizes of nested messages
691    #[allow(unused_variables)]
692    fn compute_size(&self) -> u32 {
693        let mut my_size = 0;
694        if !self.name.is_empty() {
695            my_size += crate::rt::string_size(1, &self.name);
696        }
697        if !self.request_type_url.is_empty() {
698            my_size += crate::rt::string_size(2, &self.request_type_url);
699        }
700        if self.request_streaming != false {
701            my_size += 2;
702        }
703        if !self.response_type_url.is_empty() {
704            my_size += crate::rt::string_size(4, &self.response_type_url);
705        }
706        if self.response_streaming != false {
707            my_size += 2;
708        }
709        for value in &self.options {
710            let len = value.compute_size();
711            my_size += 1 + crate::rt::compute_raw_varint32_size(len) + len;
712        };
713        if self.syntax != crate::well_known_types::Syntax::SYNTAX_PROTO2 {
714            my_size += crate::rt::enum_size(7, self.syntax);
715        }
716        my_size += crate::rt::unknown_fields_size(self.get_unknown_fields());
717        self.cached_size.set(my_size);
718        my_size
719    }
720
721    fn write_to_with_cached_sizes(&self, os: &mut crate::CodedOutputStream<'_>) -> crate::ProtobufResult<()> {
722        if !self.name.is_empty() {
723            os.write_string(1, &self.name)?;
724        }
725        if !self.request_type_url.is_empty() {
726            os.write_string(2, &self.request_type_url)?;
727        }
728        if self.request_streaming != false {
729            os.write_bool(3, self.request_streaming)?;
730        }
731        if !self.response_type_url.is_empty() {
732            os.write_string(4, &self.response_type_url)?;
733        }
734        if self.response_streaming != false {
735            os.write_bool(5, self.response_streaming)?;
736        }
737        for v in &self.options {
738            os.write_tag(6, crate::wire_format::WireTypeLengthDelimited)?;
739            os.write_raw_varint32(v.get_cached_size())?;
740            v.write_to_with_cached_sizes(os)?;
741        };
742        if self.syntax != crate::well_known_types::Syntax::SYNTAX_PROTO2 {
743            os.write_enum(7, crate::ProtobufEnum::value(&self.syntax))?;
744        }
745        os.write_unknown_fields(self.get_unknown_fields())?;
746        ::std::result::Result::Ok(())
747    }
748
749    fn get_cached_size(&self) -> u32 {
750        self.cached_size.get()
751    }
752
753    fn get_unknown_fields(&self) -> &crate::UnknownFields {
754        &self.unknown_fields
755    }
756
757    fn mut_unknown_fields(&mut self) -> &mut crate::UnknownFields {
758        &mut self.unknown_fields
759    }
760
761    fn as_any(&self) -> &dyn (::std::any::Any) {
762        self as &dyn (::std::any::Any)
763    }
764    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
765        self as &mut dyn (::std::any::Any)
766    }
767    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
768        self
769    }
770
771    fn descriptor(&self) -> &'static crate::reflect::MessageDescriptor {
772        Self::descriptor_static()
773    }
774
775    fn new() -> Method {
776        Method::new()
777    }
778
779    fn descriptor_static() -> &'static crate::reflect::MessageDescriptor {
780        static descriptor: crate::rt::LazyV2<crate::reflect::MessageDescriptor> = crate::rt::LazyV2::INIT;
781        descriptor.get(|| {
782            let mut fields = ::std::vec::Vec::new();
783            fields.push(crate::reflect::accessor::make_simple_field_accessor::<_, crate::types::ProtobufTypeString>(
784                "name",
785                |m: &Method| { &m.name },
786                |m: &mut Method| { &mut m.name },
787            ));
788            fields.push(crate::reflect::accessor::make_simple_field_accessor::<_, crate::types::ProtobufTypeString>(
789                "request_type_url",
790                |m: &Method| { &m.request_type_url },
791                |m: &mut Method| { &mut m.request_type_url },
792            ));
793            fields.push(crate::reflect::accessor::make_simple_field_accessor::<_, crate::types::ProtobufTypeBool>(
794                "request_streaming",
795                |m: &Method| { &m.request_streaming },
796                |m: &mut Method| { &mut m.request_streaming },
797            ));
798            fields.push(crate::reflect::accessor::make_simple_field_accessor::<_, crate::types::ProtobufTypeString>(
799                "response_type_url",
800                |m: &Method| { &m.response_type_url },
801                |m: &mut Method| { &mut m.response_type_url },
802            ));
803            fields.push(crate::reflect::accessor::make_simple_field_accessor::<_, crate::types::ProtobufTypeBool>(
804                "response_streaming",
805                |m: &Method| { &m.response_streaming },
806                |m: &mut Method| { &mut m.response_streaming },
807            ));
808            fields.push(crate::reflect::accessor::make_repeated_field_accessor::<_, crate::types::ProtobufTypeMessage<crate::well_known_types::Option>>(
809                "options",
810                |m: &Method| { &m.options },
811                |m: &mut Method| { &mut m.options },
812            ));
813            fields.push(crate::reflect::accessor::make_simple_field_accessor::<_, crate::types::ProtobufTypeEnum<crate::well_known_types::Syntax>>(
814                "syntax",
815                |m: &Method| { &m.syntax },
816                |m: &mut Method| { &mut m.syntax },
817            ));
818            crate::reflect::MessageDescriptor::new_pb_name::<Method>(
819                "Method",
820                fields,
821                file_descriptor_proto()
822            )
823        })
824    }
825
826    fn default_instance() -> &'static Method {
827        static instance: crate::rt::LazyV2<Method> = crate::rt::LazyV2::INIT;
828        instance.get(Method::new)
829    }
830}
831
832impl crate::Clear for Method {
833    fn clear(&mut self) {
834        self.name.clear();
835        self.request_type_url.clear();
836        self.request_streaming = false;
837        self.response_type_url.clear();
838        self.response_streaming = false;
839        self.options.clear();
840        self.syntax = crate::well_known_types::Syntax::SYNTAX_PROTO2;
841        self.unknown_fields.clear();
842    }
843}
844
845impl ::std::fmt::Debug for Method {
846    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
847        crate::text_format::fmt(self, f)
848    }
849}
850
851impl crate::reflect::ProtobufValue for Method {
852    fn as_ref(&self) -> crate::reflect::ReflectValueRef {
853        crate::reflect::ReflectValueRef::Message(self)
854    }
855}
856
857#[derive(PartialEq,Clone,Default)]
858#[cfg_attr(feature = "with-serde", derive(::serde::Serialize, ::serde::Deserialize))]
859pub struct Mixin {
860    // message fields
861    pub name: ::std::string::String,
862    pub root: ::std::string::String,
863    // special fields
864    #[cfg_attr(feature = "with-serde", serde(skip))]
865    pub unknown_fields: crate::UnknownFields,
866    #[cfg_attr(feature = "with-serde", serde(skip))]
867    pub cached_size: crate::CachedSize,
868}
869
870impl<'a> ::std::default::Default for &'a Mixin {
871    fn default() -> &'a Mixin {
872        <Mixin as crate::Message>::default_instance()
873    }
874}
875
876impl Mixin {
877    pub fn new() -> Mixin {
878        ::std::default::Default::default()
879    }
880
881    // string name = 1;
882
883
884    pub fn get_name(&self) -> &str {
885        &self.name
886    }
887    pub fn clear_name(&mut self) {
888        self.name.clear();
889    }
890
891    // Param is passed by value, moved
892    pub fn set_name(&mut self, v: ::std::string::String) {
893        self.name = v;
894    }
895
896    // Mutable pointer to the field.
897    // If field is not initialized, it is initialized with default value first.
898    pub fn mut_name(&mut self) -> &mut ::std::string::String {
899        &mut self.name
900    }
901
902    // Take field
903    pub fn take_name(&mut self) -> ::std::string::String {
904        ::std::mem::replace(&mut self.name, ::std::string::String::new())
905    }
906
907    // string root = 2;
908
909
910    pub fn get_root(&self) -> &str {
911        &self.root
912    }
913    pub fn clear_root(&mut self) {
914        self.root.clear();
915    }
916
917    // Param is passed by value, moved
918    pub fn set_root(&mut self, v: ::std::string::String) {
919        self.root = v;
920    }
921
922    // Mutable pointer to the field.
923    // If field is not initialized, it is initialized with default value first.
924    pub fn mut_root(&mut self) -> &mut ::std::string::String {
925        &mut self.root
926    }
927
928    // Take field
929    pub fn take_root(&mut self) -> ::std::string::String {
930        ::std::mem::replace(&mut self.root, ::std::string::String::new())
931    }
932}
933
934impl crate::Message for Mixin {
935    fn is_initialized(&self) -> bool {
936        true
937    }
938
939    fn merge_from(&mut self, is: &mut crate::CodedInputStream<'_>) -> crate::ProtobufResult<()> {
940        while !is.eof()? {
941            let (field_number, wire_type) = is.read_tag_unpack()?;
942            match field_number {
943                1 => {
944                    crate::rt::read_singular_proto3_string_into(wire_type, is, &mut self.name)?;
945                },
946                2 => {
947                    crate::rt::read_singular_proto3_string_into(wire_type, is, &mut self.root)?;
948                },
949                _ => {
950                    crate::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
951                },
952            };
953        }
954        ::std::result::Result::Ok(())
955    }
956
957    // Compute sizes of nested messages
958    #[allow(unused_variables)]
959    fn compute_size(&self) -> u32 {
960        let mut my_size = 0;
961        if !self.name.is_empty() {
962            my_size += crate::rt::string_size(1, &self.name);
963        }
964        if !self.root.is_empty() {
965            my_size += crate::rt::string_size(2, &self.root);
966        }
967        my_size += crate::rt::unknown_fields_size(self.get_unknown_fields());
968        self.cached_size.set(my_size);
969        my_size
970    }
971
972    fn write_to_with_cached_sizes(&self, os: &mut crate::CodedOutputStream<'_>) -> crate::ProtobufResult<()> {
973        if !self.name.is_empty() {
974            os.write_string(1, &self.name)?;
975        }
976        if !self.root.is_empty() {
977            os.write_string(2, &self.root)?;
978        }
979        os.write_unknown_fields(self.get_unknown_fields())?;
980        ::std::result::Result::Ok(())
981    }
982
983    fn get_cached_size(&self) -> u32 {
984        self.cached_size.get()
985    }
986
987    fn get_unknown_fields(&self) -> &crate::UnknownFields {
988        &self.unknown_fields
989    }
990
991    fn mut_unknown_fields(&mut self) -> &mut crate::UnknownFields {
992        &mut self.unknown_fields
993    }
994
995    fn as_any(&self) -> &dyn (::std::any::Any) {
996        self as &dyn (::std::any::Any)
997    }
998    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
999        self as &mut dyn (::std::any::Any)
1000    }
1001    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
1002        self
1003    }
1004
1005    fn descriptor(&self) -> &'static crate::reflect::MessageDescriptor {
1006        Self::descriptor_static()
1007    }
1008
1009    fn new() -> Mixin {
1010        Mixin::new()
1011    }
1012
1013    fn descriptor_static() -> &'static crate::reflect::MessageDescriptor {
1014        static descriptor: crate::rt::LazyV2<crate::reflect::MessageDescriptor> = crate::rt::LazyV2::INIT;
1015        descriptor.get(|| {
1016            let mut fields = ::std::vec::Vec::new();
1017            fields.push(crate::reflect::accessor::make_simple_field_accessor::<_, crate::types::ProtobufTypeString>(
1018                "name",
1019                |m: &Mixin| { &m.name },
1020                |m: &mut Mixin| { &mut m.name },
1021            ));
1022            fields.push(crate::reflect::accessor::make_simple_field_accessor::<_, crate::types::ProtobufTypeString>(
1023                "root",
1024                |m: &Mixin| { &m.root },
1025                |m: &mut Mixin| { &mut m.root },
1026            ));
1027            crate::reflect::MessageDescriptor::new_pb_name::<Mixin>(
1028                "Mixin",
1029                fields,
1030                file_descriptor_proto()
1031            )
1032        })
1033    }
1034
1035    fn default_instance() -> &'static Mixin {
1036        static instance: crate::rt::LazyV2<Mixin> = crate::rt::LazyV2::INIT;
1037        instance.get(Mixin::new)
1038    }
1039}
1040
1041impl crate::Clear for Mixin {
1042    fn clear(&mut self) {
1043        self.name.clear();
1044        self.root.clear();
1045        self.unknown_fields.clear();
1046    }
1047}
1048
1049impl ::std::fmt::Debug for Mixin {
1050    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1051        crate::text_format::fmt(self, f)
1052    }
1053}
1054
1055impl crate::reflect::ProtobufValue for Mixin {
1056    fn as_ref(&self) -> crate::reflect::ReflectValueRef {
1057        crate::reflect::ReflectValueRef::Message(self)
1058    }
1059}
1060
1061static file_descriptor_proto_data: &'static [u8] = b"\
1062    \n\x19google/protobuf/api.proto\x12\x0fgoogle.protobuf\x1a$google/protob\
1063    uf/source_context.proto\x1a\x1agoogle/protobuf/type.proto\"\xc1\x02\n\
1064    \x03Api\x12\x12\n\x04name\x18\x01\x20\x01(\tR\x04name\x121\n\x07methods\
1065    \x18\x02\x20\x03(\x0b2\x17.google.protobuf.MethodR\x07methods\x121\n\x07\
1066    options\x18\x03\x20\x03(\x0b2\x17.google.protobuf.OptionR\x07options\x12\
1067    \x18\n\x07version\x18\x04\x20\x01(\tR\x07version\x12E\n\x0esource_contex\
1068    t\x18\x05\x20\x01(\x0b2\x1e.google.protobuf.SourceContextR\rsourceContex\
1069    t\x12.\n\x06mixins\x18\x06\x20\x03(\x0b2\x16.google.protobuf.MixinR\x06m\
1070    ixins\x12/\n\x06syntax\x18\x07\x20\x01(\x0e2\x17.google.protobuf.SyntaxR\
1071    \x06syntax\"\xb2\x02\n\x06Method\x12\x12\n\x04name\x18\x01\x20\x01(\tR\
1072    \x04name\x12(\n\x10request_type_url\x18\x02\x20\x01(\tR\x0erequestTypeUr\
1073    l\x12+\n\x11request_streaming\x18\x03\x20\x01(\x08R\x10requestStreaming\
1074    \x12*\n\x11response_type_url\x18\x04\x20\x01(\tR\x0fresponseTypeUrl\x12-\
1075    \n\x12response_streaming\x18\x05\x20\x01(\x08R\x11responseStreaming\x121\
1076    \n\x07options\x18\x06\x20\x03(\x0b2\x17.google.protobuf.OptionR\x07optio\
1077    ns\x12/\n\x06syntax\x18\x07\x20\x01(\x0e2\x17.google.protobuf.SyntaxR\
1078    \x06syntax\"/\n\x05Mixin\x12\x12\n\x04name\x18\x01\x20\x01(\tR\x04name\
1079    \x12\x12\n\x04root\x18\x02\x20\x01(\tR\x04rootBv\n\x13com.google.protobu\
1080    fB\x08ApiProtoP\x01Z,google.golang.org/protobuf/types/known/apipb\xa2\
1081    \x02\x03GPB\xaa\x02\x1eGoogle.Protobuf.WellKnownTypesJ\x81<\n\x07\x12\
1082    \x05\x1e\0\xcf\x01\x01\n\xcc\x0c\n\x01\x0c\x12\x03\x1e\0\x122\xc1\x0c\
1083    \x20Protocol\x20Buffers\x20-\x20Google's\x20data\x20interchange\x20forma\
1084    t\n\x20Copyright\x202008\x20Google\x20Inc.\x20\x20All\x20rights\x20reser\
1085    ved.\n\x20https://developers.google.com/protocol-buffers/\n\n\x20Redistr\
1086    ibution\x20and\x20use\x20in\x20source\x20and\x20binary\x20forms,\x20with\
1087    \x20or\x20without\n\x20modification,\x20are\x20permitted\x20provided\x20\
1088    that\x20the\x20following\x20conditions\x20are\n\x20met:\n\n\x20\x20\x20\
1089    \x20\x20*\x20Redistributions\x20of\x20source\x20code\x20must\x20retain\
1090    \x20the\x20above\x20copyright\n\x20notice,\x20this\x20list\x20of\x20cond\
1091    itions\x20and\x20the\x20following\x20disclaimer.\n\x20\x20\x20\x20\x20*\
1092    \x20Redistributions\x20in\x20binary\x20form\x20must\x20reproduce\x20the\
1093    \x20above\n\x20copyright\x20notice,\x20this\x20list\x20of\x20conditions\
1094    \x20and\x20the\x20following\x20disclaimer\n\x20in\x20the\x20documentatio\
1095    n\x20and/or\x20other\x20materials\x20provided\x20with\x20the\n\x20distri\
1096    bution.\n\x20\x20\x20\x20\x20*\x20Neither\x20the\x20name\x20of\x20Google\
1097    \x20Inc.\x20nor\x20the\x20names\x20of\x20its\n\x20contributors\x20may\
1098    \x20be\x20used\x20to\x20endorse\x20or\x20promote\x20products\x20derived\
1099    \x20from\n\x20this\x20software\x20without\x20specific\x20prior\x20writte\
1100    n\x20permission.\n\n\x20THIS\x20SOFTWARE\x20IS\x20PROVIDED\x20BY\x20THE\
1101    \x20COPYRIGHT\x20HOLDERS\x20AND\x20CONTRIBUTORS\n\x20\"AS\x20IS\"\x20AND\
1102    \x20ANY\x20EXPRESS\x20OR\x20IMPLIED\x20WARRANTIES,\x20INCLUDING,\x20BUT\
1103    \x20NOT\n\x20LIMITED\x20TO,\x20THE\x20IMPLIED\x20WARRANTIES\x20OF\x20MER\
1104    CHANTABILITY\x20AND\x20FITNESS\x20FOR\n\x20A\x20PARTICULAR\x20PURPOSE\
1105    \x20ARE\x20DISCLAIMED.\x20IN\x20NO\x20EVENT\x20SHALL\x20THE\x20COPYRIGHT\
1106    \n\x20OWNER\x20OR\x20CONTRIBUTORS\x20BE\x20LIABLE\x20FOR\x20ANY\x20DIREC\
1107    T,\x20INDIRECT,\x20INCIDENTAL,\n\x20SPECIAL,\x20EXEMPLARY,\x20OR\x20CONS\
1108    EQUENTIAL\x20DAMAGES\x20(INCLUDING,\x20BUT\x20NOT\n\x20LIMITED\x20TO,\
1109    \x20PROCUREMENT\x20OF\x20SUBSTITUTE\x20GOODS\x20OR\x20SERVICES;\x20LOSS\
1110    \x20OF\x20USE,\n\x20DATA,\x20OR\x20PROFITS;\x20OR\x20BUSINESS\x20INTERRU\
1111    PTION)\x20HOWEVER\x20CAUSED\x20AND\x20ON\x20ANY\n\x20THEORY\x20OF\x20LIA\
1112    BILITY,\x20WHETHER\x20IN\x20CONTRACT,\x20STRICT\x20LIABILITY,\x20OR\x20T\
1113    ORT\n\x20(INCLUDING\x20NEGLIGENCE\x20OR\x20OTHERWISE)\x20ARISING\x20IN\
1114    \x20ANY\x20WAY\x20OUT\x20OF\x20THE\x20USE\n\x20OF\x20THIS\x20SOFTWARE,\
1115    \x20EVEN\x20IF\x20ADVISED\x20OF\x20THE\x20POSSIBILITY\x20OF\x20SUCH\x20D\
1116    AMAGE.\n\n\x08\n\x01\x02\x12\x03\x20\0\x18\n\t\n\x02\x03\0\x12\x03\"\0.\
1117    \n\t\n\x02\x03\x01\x12\x03#\0$\n\x08\n\x01\x08\x12\x03%\0;\n\t\n\x02\x08\
1118    %\x12\x03%\0;\n\x08\n\x01\x08\x12\x03&\0,\n\t\n\x02\x08\x01\x12\x03&\0,\
1119    \n\x08\n\x01\x08\x12\x03'\0)\n\t\n\x02\x08\x08\x12\x03'\0)\n\x08\n\x01\
1120    \x08\x12\x03(\0\"\n\t\n\x02\x08\n\x12\x03(\0\"\n\x08\n\x01\x08\x12\x03)\
1121    \0!\n\t\n\x02\x08$\x12\x03)\0!\n\x08\n\x01\x08\x12\x03*\0C\n\t\n\x02\x08\
1122    \x0b\x12\x03*\0C\n\xab\x04\n\x02\x04\0\x12\x045\0`\x01\x1a\x9e\x04\x20Ap\
1123    i\x20is\x20a\x20light-weight\x20descriptor\x20for\x20an\x20API\x20Interf\
1124    ace.\n\n\x20Interfaces\x20are\x20also\x20described\x20as\x20\"protocol\
1125    \x20buffer\x20services\"\x20in\x20some\x20contexts,\n\x20such\x20as\x20b\
1126    y\x20the\x20\"service\"\x20keyword\x20in\x20a\x20.proto\x20file,\x20but\
1127    \x20they\x20are\x20different\n\x20from\x20API\x20Services,\x20which\x20r\
1128    epresent\x20a\x20concrete\x20implementation\x20of\x20an\x20interface\n\
1129    \x20as\x20opposed\x20to\x20simply\x20a\x20description\x20of\x20methods\
1130    \x20and\x20bindings.\x20They\x20are\x20also\n\x20sometimes\x20simply\x20\
1131    referred\x20to\x20as\x20\"APIs\"\x20in\x20other\x20contexts,\x20such\x20\
1132    as\x20the\x20name\x20of\n\x20this\x20message\x20itself.\x20See\x20https:\
1133    //cloud.google.com/apis/design/glossary\x20for\n\x20detailed\x20terminol\
1134    ogy.\n\n\n\n\x03\x04\0\x01\x12\x035\x08\x0b\n{\n\x04\x04\0\x02\0\x12\x03\
1135    8\x02\x12\x1an\x20The\x20fully\x20qualified\x20name\x20of\x20this\x20int\
1136    erface,\x20including\x20package\x20name\n\x20followed\x20by\x20the\x20in\
1137    terface's\x20simple\x20name.\n\n\x0c\n\x05\x04\0\x02\0\x05\x12\x038\x02\
1138    \x08\n\x0c\n\x05\x04\0\x02\0\x01\x12\x038\t\r\n\x0c\n\x05\x04\0\x02\0\
1139    \x03\x12\x038\x10\x11\nC\n\x04\x04\0\x02\x01\x12\x03;\x02\x1e\x1a6\x20Th\
1140    e\x20methods\x20of\x20this\x20interface,\x20in\x20unspecified\x20order.\
1141    \n\n\x0c\n\x05\x04\0\x02\x01\x04\x12\x03;\x02\n\n\x0c\n\x05\x04\0\x02\
1142    \x01\x06\x12\x03;\x0b\x11\n\x0c\n\x05\x04\0\x02\x01\x01\x12\x03;\x12\x19\
1143    \n\x0c\n\x05\x04\0\x02\x01\x03\x12\x03;\x1c\x1d\n6\n\x04\x04\0\x02\x02\
1144    \x12\x03>\x02\x1e\x1a)\x20Any\x20metadata\x20attached\x20to\x20the\x20in\
1145    terface.\n\n\x0c\n\x05\x04\0\x02\x02\x04\x12\x03>\x02\n\n\x0c\n\x05\x04\
1146    \0\x02\x02\x06\x12\x03>\x0b\x11\n\x0c\n\x05\x04\0\x02\x02\x01\x12\x03>\
1147    \x12\x19\n\x0c\n\x05\x04\0\x02\x02\x03\x12\x03>\x1c\x1d\n\x82\x08\n\x04\
1148    \x04\0\x02\x03\x12\x03U\x02\x15\x1a\xf4\x07\x20A\x20version\x20string\
1149    \x20for\x20this\x20interface.\x20If\x20specified,\x20must\x20have\x20the\
1150    \x20form\n\x20`major-version.minor-version`,\x20as\x20in\x20`1.10`.\x20I\
1151    f\x20the\x20minor\x20version\x20is\n\x20omitted,\x20it\x20defaults\x20to\
1152    \x20zero.\x20If\x20the\x20entire\x20version\x20field\x20is\x20empty,\x20\
1153    the\n\x20major\x20version\x20is\x20derived\x20from\x20the\x20package\x20\
1154    name,\x20as\x20outlined\x20below.\x20If\x20the\n\x20field\x20is\x20not\
1155    \x20empty,\x20the\x20version\x20in\x20the\x20package\x20name\x20will\x20\
1156    be\x20verified\x20to\x20be\n\x20consistent\x20with\x20what\x20is\x20prov\
1157    ided\x20here.\n\n\x20The\x20versioning\x20schema\x20uses\x20[semantic\n\
1158    \x20versioning](http://semver.org)\x20where\x20the\x20major\x20version\
1159    \x20number\n\x20indicates\x20a\x20breaking\x20change\x20and\x20the\x20mi\
1160    nor\x20version\x20an\x20additive,\n\x20non-breaking\x20change.\x20Both\
1161    \x20version\x20numbers\x20are\x20signals\x20to\x20users\n\x20what\x20to\
1162    \x20expect\x20from\x20different\x20versions,\x20and\x20should\x20be\x20c\
1163    arefully\n\x20chosen\x20based\x20on\x20the\x20product\x20plan.\n\n\x20Th\
1164    e\x20major\x20version\x20is\x20also\x20reflected\x20in\x20the\x20package\
1165    \x20name\x20of\x20the\n\x20interface,\x20which\x20must\x20end\x20in\x20`\
1166    v<major-version>`,\x20as\x20in\n\x20`google.feature.v1`.\x20For\x20major\
1167    \x20versions\x200\x20and\x201,\x20the\x20suffix\x20can\n\x20be\x20omitte\
1168    d.\x20Zero\x20major\x20versions\x20must\x20only\x20be\x20used\x20for\n\
1169    \x20experimental,\x20non-GA\x20interfaces.\n\n\n\n\x0c\n\x05\x04\0\x02\
1170    \x03\x05\x12\x03U\x02\x08\n\x0c\n\x05\x04\0\x02\x03\x01\x12\x03U\t\x10\n\
1171    \x0c\n\x05\x04\0\x02\x03\x03\x12\x03U\x13\x14\n[\n\x04\x04\0\x02\x04\x12\
1172    \x03Y\x02#\x1aN\x20Source\x20context\x20for\x20the\x20protocol\x20buffer\
1173    \x20service\x20represented\x20by\x20this\n\x20message.\n\n\x0c\n\x05\x04\
1174    \0\x02\x04\x06\x12\x03Y\x02\x0f\n\x0c\n\x05\x04\0\x02\x04\x01\x12\x03Y\
1175    \x10\x1e\n\x0c\n\x05\x04\0\x02\x04\x03\x12\x03Y!\"\n2\n\x04\x04\0\x02\
1176    \x05\x12\x03\\\x02\x1c\x1a%\x20Included\x20interfaces.\x20See\x20[Mixin]\
1177    [].\n\n\x0c\n\x05\x04\0\x02\x05\x04\x12\x03\\\x02\n\n\x0c\n\x05\x04\0\
1178    \x02\x05\x06\x12\x03\\\x0b\x10\n\x0c\n\x05\x04\0\x02\x05\x01\x12\x03\\\
1179    \x11\x17\n\x0c\n\x05\x04\0\x02\x05\x03\x12\x03\\\x1a\x1b\n0\n\x04\x04\0\
1180    \x02\x06\x12\x03_\x02\x14\x1a#\x20The\x20source\x20syntax\x20of\x20the\
1181    \x20service.\n\n\x0c\n\x05\x04\0\x02\x06\x06\x12\x03_\x02\x08\n\x0c\n\
1182    \x05\x04\0\x02\x06\x01\x12\x03_\t\x0f\n\x0c\n\x05\x04\0\x02\x06\x03\x12\
1183    \x03_\x12\x13\n=\n\x02\x04\x01\x12\x04c\0x\x01\x1a1\x20Method\x20represe\
1184    nts\x20a\x20method\x20of\x20an\x20API\x20interface.\n\n\n\n\x03\x04\x01\
1185    \x01\x12\x03c\x08\x0e\n.\n\x04\x04\x01\x02\0\x12\x03e\x02\x12\x1a!\x20Th\
1186    e\x20simple\x20name\x20of\x20this\x20method.\n\n\x0c\n\x05\x04\x01\x02\0\
1187    \x05\x12\x03e\x02\x08\n\x0c\n\x05\x04\x01\x02\0\x01\x12\x03e\t\r\n\x0c\n\
1188    \x05\x04\x01\x02\0\x03\x12\x03e\x10\x11\n/\n\x04\x04\x01\x02\x01\x12\x03\
1189    h\x02\x1e\x1a\"\x20A\x20URL\x20of\x20the\x20input\x20message\x20type.\n\
1190    \n\x0c\n\x05\x04\x01\x02\x01\x05\x12\x03h\x02\x08\n\x0c\n\x05\x04\x01\
1191    \x02\x01\x01\x12\x03h\t\x19\n\x0c\n\x05\x04\x01\x02\x01\x03\x12\x03h\x1c\
1192    \x1d\n0\n\x04\x04\x01\x02\x02\x12\x03k\x02\x1d\x1a#\x20If\x20true,\x20th\
1193    e\x20request\x20is\x20streamed.\n\n\x0c\n\x05\x04\x01\x02\x02\x05\x12\
1194    \x03k\x02\x06\n\x0c\n\x05\x04\x01\x02\x02\x01\x12\x03k\x07\x18\n\x0c\n\
1195    \x05\x04\x01\x02\x02\x03\x12\x03k\x1b\x1c\n2\n\x04\x04\x01\x02\x03\x12\
1196    \x03n\x02\x1f\x1a%\x20The\x20URL\x20of\x20the\x20output\x20message\x20ty\
1197    pe.\n\n\x0c\n\x05\x04\x01\x02\x03\x05\x12\x03n\x02\x08\n\x0c\n\x05\x04\
1198    \x01\x02\x03\x01\x12\x03n\t\x1a\n\x0c\n\x05\x04\x01\x02\x03\x03\x12\x03n\
1199    \x1d\x1e\n1\n\x04\x04\x01\x02\x04\x12\x03q\x02\x1e\x1a$\x20If\x20true,\
1200    \x20the\x20response\x20is\x20streamed.\n\n\x0c\n\x05\x04\x01\x02\x04\x05\
1201    \x12\x03q\x02\x06\n\x0c\n\x05\x04\x01\x02\x04\x01\x12\x03q\x07\x19\n\x0c\
1202    \n\x05\x04\x01\x02\x04\x03\x12\x03q\x1c\x1d\n3\n\x04\x04\x01\x02\x05\x12\
1203    \x03t\x02\x1e\x1a&\x20Any\x20metadata\x20attached\x20to\x20the\x20method\
1204    .\n\n\x0c\n\x05\x04\x01\x02\x05\x04\x12\x03t\x02\n\n\x0c\n\x05\x04\x01\
1205    \x02\x05\x06\x12\x03t\x0b\x11\n\x0c\n\x05\x04\x01\x02\x05\x01\x12\x03t\
1206    \x12\x19\n\x0c\n\x05\x04\x01\x02\x05\x03\x12\x03t\x1c\x1d\n0\n\x04\x04\
1207    \x01\x02\x06\x12\x03w\x02\x14\x1a#\x20The\x20source\x20syntax\x20of\x20t\
1208    his\x20method.\n\n\x0c\n\x05\x04\x01\x02\x06\x06\x12\x03w\x02\x08\n\x0c\
1209    \n\x05\x04\x01\x02\x06\x01\x12\x03w\t\x0f\n\x0c\n\x05\x04\x01\x02\x06\
1210    \x03\x12\x03w\x12\x13\n\xca\x13\n\x02\x04\x02\x12\x06\xc8\x01\0\xcf\x01\
1211    \x01\x1a\xbb\x13\x20Declares\x20an\x20API\x20Interface\x20to\x20be\x20in\
1212    cluded\x20in\x20this\x20interface.\x20The\x20including\n\x20interface\
1213    \x20must\x20redeclare\x20all\x20the\x20methods\x20from\x20the\x20include\
1214    d\x20interface,\x20but\n\x20documentation\x20and\x20options\x20are\x20in\
1215    herited\x20as\x20follows:\n\n\x20-\x20If\x20after\x20comment\x20and\x20w\
1216    hitespace\x20stripping,\x20the\x20documentation\n\x20\x20\x20string\x20o\
1217    f\x20the\x20redeclared\x20method\x20is\x20empty,\x20it\x20will\x20be\x20\
1218    inherited\n\x20\x20\x20from\x20the\x20original\x20method.\n\n\x20-\x20Ea\
1219    ch\x20annotation\x20belonging\x20to\x20the\x20service\x20config\x20(http\
1220    ,\n\x20\x20\x20visibility)\x20which\x20is\x20not\x20set\x20in\x20the\x20\
1221    redeclared\x20method\x20will\x20be\n\x20\x20\x20inherited.\n\n\x20-\x20I\
1222    f\x20an\x20http\x20annotation\x20is\x20inherited,\x20the\x20path\x20patt\
1223    ern\x20will\x20be\n\x20\x20\x20modified\x20as\x20follows.\x20Any\x20vers\
1224    ion\x20prefix\x20will\x20be\x20replaced\x20by\x20the\n\x20\x20\x20versio\
1225    n\x20of\x20the\x20including\x20interface\x20plus\x20the\x20[root][]\x20p\
1226    ath\x20if\n\x20\x20\x20specified.\n\n\x20Example\x20of\x20a\x20simple\
1227    \x20mixin:\n\n\x20\x20\x20\x20\x20package\x20google.acl.v1;\n\x20\x20\
1228    \x20\x20\x20service\x20AccessControl\x20{\n\x20\x20\x20\x20\x20\x20\x20/\
1229    /\x20Get\x20the\x20underlying\x20ACL\x20object.\n\x20\x20\x20\x20\x20\
1230    \x20\x20rpc\x20GetAcl(GetAclRequest)\x20returns\x20(Acl)\x20{\n\x20\x20\
1231    \x20\x20\x20\x20\x20\x20\x20option\x20(google.api.http).get\x20=\x20\"/v\
1232    1/{resource=**}:getAcl\";\n\x20\x20\x20\x20\x20\x20\x20}\n\x20\x20\x20\
1233    \x20\x20}\n\n\x20\x20\x20\x20\x20package\x20google.storage.v2;\n\x20\x20\
1234    \x20\x20\x20service\x20Storage\x20{\n\x20\x20\x20\x20\x20\x20\x20rpc\x20\
1235    GetAcl(GetAclRequest)\x20returns\x20(Acl);\n\n\x20\x20\x20\x20\x20\x20\
1236    \x20//\x20Get\x20a\x20data\x20record.\n\x20\x20\x20\x20\x20\x20\x20rpc\
1237    \x20GetData(GetDataRequest)\x20returns\x20(Data)\x20{\n\x20\x20\x20\x20\
1238    \x20\x20\x20\x20\x20option\x20(google.api.http).get\x20=\x20\"/v2/{resou\
1239    rce=**}\";\n\x20\x20\x20\x20\x20\x20\x20}\n\x20\x20\x20\x20\x20}\n\n\x20\
1240    Example\x20of\x20a\x20mixin\x20configuration:\n\n\x20\x20\x20\x20\x20api\
1241    s:\n\x20\x20\x20\x20\x20-\x20name:\x20google.storage.v2.Storage\n\x20\
1242    \x20\x20\x20\x20\x20\x20mixins:\n\x20\x20\x20\x20\x20\x20\x20-\x20name:\
1243    \x20google.acl.v1.AccessControl\n\n\x20The\x20mixin\x20construct\x20impl\
1244    ies\x20that\x20all\x20methods\x20in\x20`AccessControl`\x20are\n\x20also\
1245    \x20declared\x20with\x20same\x20name\x20and\x20request/response\x20types\
1246    \x20in\n\x20`Storage`.\x20A\x20documentation\x20generator\x20or\x20annot\
1247    ation\x20processor\x20will\n\x20see\x20the\x20effective\x20`Storage.GetA\
1248    cl`\x20method\x20after\x20inheriting\n\x20documentation\x20and\x20annota\
1249    tions\x20as\x20follows:\n\n\x20\x20\x20\x20\x20service\x20Storage\x20{\n\
1250    \x20\x20\x20\x20\x20\x20\x20//\x20Get\x20the\x20underlying\x20ACL\x20obj\
1251    ect.\n\x20\x20\x20\x20\x20\x20\x20rpc\x20GetAcl(GetAclRequest)\x20return\
1252    s\x20(Acl)\x20{\n\x20\x20\x20\x20\x20\x20\x20\x20\x20option\x20(google.a\
1253    pi.http).get\x20=\x20\"/v2/{resource=**}:getAcl\";\n\x20\x20\x20\x20\x20\
1254    \x20\x20}\n\x20\x20\x20\x20\x20\x20\x20...\n\x20\x20\x20\x20\x20}\n\n\
1255    \x20Note\x20how\x20the\x20version\x20in\x20the\x20path\x20pattern\x20cha\
1256    nged\x20from\x20`v1`\x20to\x20`v2`.\n\n\x20If\x20the\x20`root`\x20field\
1257    \x20in\x20the\x20mixin\x20is\x20specified,\x20it\x20should\x20be\x20a\n\
1258    \x20relative\x20path\x20under\x20which\x20inherited\x20HTTP\x20paths\x20\
1259    are\x20placed.\x20Example:\n\n\x20\x20\x20\x20\x20apis:\n\x20\x20\x20\
1260    \x20\x20-\x20name:\x20google.storage.v2.Storage\n\x20\x20\x20\x20\x20\
1261    \x20\x20mixins:\n\x20\x20\x20\x20\x20\x20\x20-\x20name:\x20google.acl.v1\
1262    .AccessControl\n\x20\x20\x20\x20\x20\x20\x20\x20\x20root:\x20acls\n\n\
1263    \x20This\x20implies\x20the\x20following\x20inherited\x20HTTP\x20annotati\
1264    on:\n\n\x20\x20\x20\x20\x20service\x20Storage\x20{\n\x20\x20\x20\x20\x20\
1265    \x20\x20//\x20Get\x20the\x20underlying\x20ACL\x20object.\n\x20\x20\x20\
1266    \x20\x20\x20\x20rpc\x20GetAcl(GetAclRequest)\x20returns\x20(Acl)\x20{\n\
1267    \x20\x20\x20\x20\x20\x20\x20\x20\x20option\x20(google.api.http).get\x20=\
1268    \x20\"/v2/acls/{resource=**}:getAcl\";\n\x20\x20\x20\x20\x20\x20\x20}\n\
1269    \x20\x20\x20\x20\x20\x20\x20...\n\x20\x20\x20\x20\x20}\n\n\x0b\n\x03\x04\
1270    \x02\x01\x12\x04\xc8\x01\x08\r\nL\n\x04\x04\x02\x02\0\x12\x04\xca\x01\
1271    \x02\x12\x1a>\x20The\x20fully\x20qualified\x20name\x20of\x20the\x20inter\
1272    face\x20which\x20is\x20included.\n\n\r\n\x05\x04\x02\x02\0\x05\x12\x04\
1273    \xca\x01\x02\x08\n\r\n\x05\x04\x02\x02\0\x01\x12\x04\xca\x01\t\r\n\r\n\
1274    \x05\x04\x02\x02\0\x03\x12\x04\xca\x01\x10\x11\n[\n\x04\x04\x02\x02\x01\
1275    \x12\x04\xce\x01\x02\x12\x1aM\x20If\x20non-empty\x20specifies\x20a\x20pa\
1276    th\x20under\x20which\x20inherited\x20HTTP\x20paths\n\x20are\x20rooted.\n\
1277    \n\r\n\x05\x04\x02\x02\x01\x05\x12\x04\xce\x01\x02\x08\n\r\n\x05\x04\x02\
1278    \x02\x01\x01\x12\x04\xce\x01\t\r\n\r\n\x05\x04\x02\x02\x01\x03\x12\x04\
1279    \xce\x01\x10\x11b\x06proto3\
1280";
1281
1282static file_descriptor_proto_lazy: crate::rt::LazyV2<crate::descriptor::FileDescriptorProto> = crate::rt::LazyV2::INIT;
1283
1284fn parse_descriptor_proto() -> crate::descriptor::FileDescriptorProto {
1285    crate::Message::parse_from_bytes(file_descriptor_proto_data).unwrap()
1286}
1287
1288pub fn file_descriptor_proto() -> &'static crate::descriptor::FileDescriptorProto {
1289    file_descriptor_proto_lazy.get(|| {
1290        parse_descriptor_proto()
1291    })
1292}