puroro/protobuf/google/protobuf/
compiler.rs

1mod _root {
2    #[allow(unused)]
3    pub(crate) use super::super::_root::*;
4}
5mod _puroro {
6    #[allow(unused)]
7    pub(crate) use super::_root::_puroro::*;
8}
9mod _pinternal {
10    #[allow(unused)]
11    pub(crate) use super::_root::_pinternal::*;
12}
13pub mod code_generator_response;
14/** The version number of protocol compiler.
15*/
16pub struct Version(
17    ::std::boxed::Box<self::_root::google::protobuf::compiler::_view::VersionView>,
18);
19impl Version {
20    pub fn major_mut(&mut self) -> &mut i32 {
21        use self::_pinternal::{NonRepeatedFieldType, SharedItems as _};
22        let mut_view: &mut self::_root::google::protobuf::compiler::_view::VersionView = &mut self
23            .0;
24        NonRepeatedFieldType::get_field_mut(
25            &mut mut_view.fields.major,
26            mut_view.shared.bitfield_mut(),
27            ::std::default::Default::default,
28        )
29    }
30    pub fn clear_major(&mut self) {
31        use self::_pinternal::{NonRepeatedFieldType, SharedItems as _};
32        let mut_view: &mut self::_root::google::protobuf::compiler::_view::VersionView = &mut self
33            .0;
34        NonRepeatedFieldType::clear(
35            &mut mut_view.fields.major,
36            mut_view.shared.bitfield_mut(),
37        )
38    }
39    pub fn minor_mut(&mut self) -> &mut i32 {
40        use self::_pinternal::{NonRepeatedFieldType, SharedItems as _};
41        let mut_view: &mut self::_root::google::protobuf::compiler::_view::VersionView = &mut self
42            .0;
43        NonRepeatedFieldType::get_field_mut(
44            &mut mut_view.fields.minor,
45            mut_view.shared.bitfield_mut(),
46            ::std::default::Default::default,
47        )
48    }
49    pub fn clear_minor(&mut self) {
50        use self::_pinternal::{NonRepeatedFieldType, SharedItems as _};
51        let mut_view: &mut self::_root::google::protobuf::compiler::_view::VersionView = &mut self
52            .0;
53        NonRepeatedFieldType::clear(
54            &mut mut_view.fields.minor,
55            mut_view.shared.bitfield_mut(),
56        )
57    }
58    pub fn patch_mut(&mut self) -> &mut i32 {
59        use self::_pinternal::{NonRepeatedFieldType, SharedItems as _};
60        let mut_view: &mut self::_root::google::protobuf::compiler::_view::VersionView = &mut self
61            .0;
62        NonRepeatedFieldType::get_field_mut(
63            &mut mut_view.fields.patch,
64            mut_view.shared.bitfield_mut(),
65            ::std::default::Default::default,
66        )
67    }
68    pub fn clear_patch(&mut self) {
69        use self::_pinternal::{NonRepeatedFieldType, SharedItems as _};
70        let mut_view: &mut self::_root::google::protobuf::compiler::_view::VersionView = &mut self
71            .0;
72        NonRepeatedFieldType::clear(
73            &mut mut_view.fields.patch,
74            mut_view.shared.bitfield_mut(),
75        )
76    }
77    pub fn suffix_mut(&mut self) -> &mut ::std::string::String {
78        use self::_pinternal::{NonRepeatedFieldType, SharedItems as _};
79        let mut_view: &mut self::_root::google::protobuf::compiler::_view::VersionView = &mut self
80            .0;
81        NonRepeatedFieldType::get_field_mut(
82            &mut mut_view.fields.suffix,
83            mut_view.shared.bitfield_mut(),
84            ::std::default::Default::default,
85        )
86    }
87    pub fn clear_suffix(&mut self) {
88        use self::_pinternal::{NonRepeatedFieldType, SharedItems as _};
89        let mut_view: &mut self::_root::google::protobuf::compiler::_view::VersionView = &mut self
90            .0;
91        NonRepeatedFieldType::clear(
92            &mut mut_view.fields.suffix,
93            mut_view.shared.bitfield_mut(),
94        )
95    }
96    pub const MAJOR_FIELD_NUMBER: i32 = 1i32;
97    pub const MINOR_FIELD_NUMBER: i32 = 2i32;
98    pub const PATCH_FIELD_NUMBER: i32 = 3i32;
99    pub const SUFFIX_FIELD_NUMBER: i32 = 4i32;
100}
101impl self::_puroro::Message for Version {
102    type ViewType = self::_root::google::protobuf::compiler::_view::VersionView;
103    fn from_bytes_iter<I: ::std::iter::Iterator<Item = ::std::io::Result<u8>>>(
104        iter: I,
105    ) -> self::_puroro::Result<Self> {
106        let mut msg = <Self as ::std::default::Default>::default();
107        msg.merge_from_bytes_iter(iter)?;
108        ::std::result::Result::Ok(msg)
109    }
110    fn merge_from_bytes_iter<I: ::std::iter::Iterator<Item = ::std::io::Result<u8>>>(
111        &mut self,
112        iter: I,
113    ) -> self::_puroro::Result<()> {
114        let mut pos_iter = self::_pinternal::PosIter::new(iter);
115        let mut scoped_iter = self::_pinternal::ScopedIter::from_mut_pos_iter(
116            &mut pos_iter,
117        );
118        <Self as self::_pinternal::MessageInternal>::merge_from_scoped_bytes_iter(
119            self,
120            &mut scoped_iter,
121        )?;
122        scoped_iter.drop_and_check_scope_completed()?;
123        Ok(())
124    }
125}
126impl self::_pinternal::MessageInternal for Version {
127    fn merge_from_scoped_bytes_iter<
128        'a,
129        I: ::std::iter::Iterator<Item = ::std::io::Result<u8>>,
130    >(
131        &mut self,
132        iter: &mut self::_pinternal::ScopedIter<'a, I>,
133    ) -> self::_puroro::Result<()> {
134        use self::_pinternal::ser::FieldData;
135        #[allow(unused)]
136        use self::_pinternal::OneofUnion as _;
137        use self::_pinternal::{SharedItems as _, UnknownFields as _};
138        #[allow(unused)]
139        use ::std::result::Result;
140        #[allow(unused)]
141        use ::std::result::Result::{Ok, Err};
142        #[allow(unused)]
143        use ::std::vec::Vec;
144        use self::_puroro::PuroroError;
145        while let Some((number, field_data))
146            = FieldData::from_bytes_scoped_iter(iter.by_ref())? {
147            let result: self::_puroro::Result<()> = (|| {
148                match number {
149                    1i32 => {
150                        let view_ref: &mut self::_root::google::protobuf::compiler::_view::VersionView = &mut self
151                            .0;
152                        self::_pinternal::FieldType::deser_from_field_data(
153                            &mut view_ref.fields.major,
154                            view_ref.shared.bitfield_mut(),
155                            field_data,
156                        )?
157                    }
158                    2i32 => {
159                        let view_ref: &mut self::_root::google::protobuf::compiler::_view::VersionView = &mut self
160                            .0;
161                        self::_pinternal::FieldType::deser_from_field_data(
162                            &mut view_ref.fields.minor,
163                            view_ref.shared.bitfield_mut(),
164                            field_data,
165                        )?
166                    }
167                    3i32 => {
168                        let view_ref: &mut self::_root::google::protobuf::compiler::_view::VersionView = &mut self
169                            .0;
170                        self::_pinternal::FieldType::deser_from_field_data(
171                            &mut view_ref.fields.patch,
172                            view_ref.shared.bitfield_mut(),
173                            field_data,
174                        )?
175                    }
176                    4i32 => {
177                        let view_ref: &mut self::_root::google::protobuf::compiler::_view::VersionView = &mut self
178                            .0;
179                        self::_pinternal::FieldType::deser_from_field_data(
180                            &mut view_ref.fields.suffix,
181                            view_ref.shared.bitfield_mut(),
182                            field_data,
183                        )?
184                    }
185                    _ => {
186                        let field_data = field_data
187                            .map(|iter| { iter.collect::<Result<Vec<_>, _>>() })
188                            .transpose()?;
189                        Err(PuroroError::UnknownFieldNumber(field_data))?
190                    }
191                }
192                Ok(())
193            })();
194            match result {
195                Ok(_) => {}
196                Err(PuroroError::UnknownFieldNumber(field_data)) => {
197                    self.0.shared.unknown_fields_mut().push(number, field_data)?;
198                }
199                Err(e) => Err(e)?,
200            }
201        }
202        Ok(())
203    }
204}
205impl ::std::borrow::Borrow<self::_root::google::protobuf::compiler::_view::VersionView>
206for Version {
207    fn borrow(&self) -> &self::_root::google::protobuf::compiler::_view::VersionView {
208        &self
209    }
210}
211impl ::std::clone::Clone for Version {
212    fn clone(&self) -> Self {
213        #[allow(unused)]
214        use ::std::borrow::ToOwned;
215        <self::_root::google::protobuf::compiler::_view::VersionView as ToOwned>::to_owned(
216            &self,
217        )
218    }
219}
220impl ::std::fmt::Debug for Version {
221    fn fmt(
222        &self,
223        fmt: &mut ::std::fmt::Formatter<'_>,
224    ) -> ::std::result::Result<(), ::std::fmt::Error> {
225        <self::_root::google::protobuf::compiler::_view::VersionView as ::std::fmt::Debug>::fmt(
226            &self,
227            fmt,
228        )
229    }
230}
231impl ::std::default::Default for self::Version {
232    fn default() -> Self {
233        Self(
234            <self::_root::google::protobuf::compiler::_view::VersionView as self::_pinternal::MessageViewInternal>::new_boxed(),
235        )
236    }
237}
238impl ::std::ops::Deref for Version {
239    type Target = self::_root::google::protobuf::compiler::_view::VersionView;
240    fn deref(&self) -> &Self::Target {
241        <::std::boxed::Box<_> as ::std::ops::Deref>::deref(&self.0)
242    }
243}
244impl ::std::cmp::PartialEq for Version {
245    fn eq(&self, rhs: &Self) -> bool {
246        <self::_root::google::protobuf::compiler::_view::VersionView as ::std::cmp::PartialEq>::eq(
247            &self.0,
248            &rhs.0,
249        )
250    }
251}
252/** An encoded CodeGeneratorRequest is written to the plugin's stdin.
253*/
254pub struct CodeGeneratorRequest(
255    ::std::boxed::Box<
256        self::_root::google::protobuf::compiler::_view::CodeGeneratorRequestView,
257    >,
258);
259impl CodeGeneratorRequest {
260    pub fn file_to_generate_mut(
261        &mut self,
262    ) -> &mut ::std::vec::Vec::<::std::string::String> {
263        use self::_pinternal::{RepeatedFieldType, SharedItems as _};
264        RepeatedFieldType::get_field_mut(
265            &mut self.0.fields.file_to_generate,
266            self.0.shared.bitfield_mut(),
267        )
268    }
269    pub fn clear_file_to_generate(&mut self) {
270        use self::_pinternal::{RepeatedFieldType, SharedItems as _};
271        RepeatedFieldType::clear(
272            &mut self.0.fields.file_to_generate,
273            self.0.shared.bitfield_mut(),
274        )
275    }
276    pub fn parameter_mut(&mut self) -> &mut ::std::string::String {
277        use self::_pinternal::{NonRepeatedFieldType, SharedItems as _};
278        let mut_view: &mut self::_root::google::protobuf::compiler::_view::CodeGeneratorRequestView = &mut self
279            .0;
280        NonRepeatedFieldType::get_field_mut(
281            &mut mut_view.fields.parameter,
282            mut_view.shared.bitfield_mut(),
283            ::std::default::Default::default,
284        )
285    }
286    pub fn clear_parameter(&mut self) {
287        use self::_pinternal::{NonRepeatedFieldType, SharedItems as _};
288        let mut_view: &mut self::_root::google::protobuf::compiler::_view::CodeGeneratorRequestView = &mut self
289            .0;
290        NonRepeatedFieldType::clear(
291            &mut mut_view.fields.parameter,
292            mut_view.shared.bitfield_mut(),
293        )
294    }
295    pub fn proto_file_mut(
296        &mut self,
297    ) -> &mut ::std::vec::Vec::<self::_root::google::protobuf::FileDescriptorProto> {
298        use self::_pinternal::{RepeatedFieldType, SharedItems as _};
299        RepeatedFieldType::get_field_mut(
300            &mut self.0.fields.proto_file,
301            self.0.shared.bitfield_mut(),
302        )
303    }
304    pub fn clear_proto_file(&mut self) {
305        use self::_pinternal::{RepeatedFieldType, SharedItems as _};
306        RepeatedFieldType::clear(
307            &mut self.0.fields.proto_file,
308            self.0.shared.bitfield_mut(),
309        )
310    }
311    pub fn compiler_version_mut(
312        &mut self,
313    ) -> &mut self::_root::google::protobuf::compiler::Version {
314        use self::_pinternal::{NonRepeatedFieldType, SharedItems as _};
315        let mut_view: &mut self::_root::google::protobuf::compiler::_view::CodeGeneratorRequestView = &mut self
316            .0;
317        NonRepeatedFieldType::get_field_mut(
318            &mut mut_view.fields.compiler_version,
319            mut_view.shared.bitfield_mut(),
320            ::std::default::Default::default,
321        )
322    }
323    pub fn clear_compiler_version(&mut self) {
324        use self::_pinternal::{NonRepeatedFieldType, SharedItems as _};
325        let mut_view: &mut self::_root::google::protobuf::compiler::_view::CodeGeneratorRequestView = &mut self
326            .0;
327        NonRepeatedFieldType::clear(
328            &mut mut_view.fields.compiler_version,
329            mut_view.shared.bitfield_mut(),
330        )
331    }
332    pub const FILE_TO_GENERATE_FIELD_NUMBER: i32 = 1i32;
333    pub const PARAMETER_FIELD_NUMBER: i32 = 2i32;
334    pub const PROTO_FILE_FIELD_NUMBER: i32 = 15i32;
335    pub const COMPILER_VERSION_FIELD_NUMBER: i32 = 3i32;
336}
337impl self::_puroro::Message for CodeGeneratorRequest {
338    type ViewType = self::_root::google::protobuf::compiler::_view::CodeGeneratorRequestView;
339    fn from_bytes_iter<I: ::std::iter::Iterator<Item = ::std::io::Result<u8>>>(
340        iter: I,
341    ) -> self::_puroro::Result<Self> {
342        let mut msg = <Self as ::std::default::Default>::default();
343        msg.merge_from_bytes_iter(iter)?;
344        ::std::result::Result::Ok(msg)
345    }
346    fn merge_from_bytes_iter<I: ::std::iter::Iterator<Item = ::std::io::Result<u8>>>(
347        &mut self,
348        iter: I,
349    ) -> self::_puroro::Result<()> {
350        let mut pos_iter = self::_pinternal::PosIter::new(iter);
351        let mut scoped_iter = self::_pinternal::ScopedIter::from_mut_pos_iter(
352            &mut pos_iter,
353        );
354        <Self as self::_pinternal::MessageInternal>::merge_from_scoped_bytes_iter(
355            self,
356            &mut scoped_iter,
357        )?;
358        scoped_iter.drop_and_check_scope_completed()?;
359        Ok(())
360    }
361}
362impl self::_pinternal::MessageInternal for CodeGeneratorRequest {
363    fn merge_from_scoped_bytes_iter<
364        'a,
365        I: ::std::iter::Iterator<Item = ::std::io::Result<u8>>,
366    >(
367        &mut self,
368        iter: &mut self::_pinternal::ScopedIter<'a, I>,
369    ) -> self::_puroro::Result<()> {
370        use self::_pinternal::ser::FieldData;
371        #[allow(unused)]
372        use self::_pinternal::OneofUnion as _;
373        use self::_pinternal::{SharedItems as _, UnknownFields as _};
374        #[allow(unused)]
375        use ::std::result::Result;
376        #[allow(unused)]
377        use ::std::result::Result::{Ok, Err};
378        #[allow(unused)]
379        use ::std::vec::Vec;
380        use self::_puroro::PuroroError;
381        while let Some((number, field_data))
382            = FieldData::from_bytes_scoped_iter(iter.by_ref())? {
383            let result: self::_puroro::Result<()> = (|| {
384                match number {
385                    1i32 => {
386                        let view_ref: &mut self::_root::google::protobuf::compiler::_view::CodeGeneratorRequestView = &mut self
387                            .0;
388                        self::_pinternal::FieldType::deser_from_field_data(
389                            &mut view_ref.fields.file_to_generate,
390                            view_ref.shared.bitfield_mut(),
391                            field_data,
392                        )?
393                    }
394                    2i32 => {
395                        let view_ref: &mut self::_root::google::protobuf::compiler::_view::CodeGeneratorRequestView = &mut self
396                            .0;
397                        self::_pinternal::FieldType::deser_from_field_data(
398                            &mut view_ref.fields.parameter,
399                            view_ref.shared.bitfield_mut(),
400                            field_data,
401                        )?
402                    }
403                    15i32 => {
404                        let view_ref: &mut self::_root::google::protobuf::compiler::_view::CodeGeneratorRequestView = &mut self
405                            .0;
406                        self::_pinternal::FieldType::deser_from_field_data(
407                            &mut view_ref.fields.proto_file,
408                            view_ref.shared.bitfield_mut(),
409                            field_data,
410                        )?
411                    }
412                    3i32 => {
413                        let view_ref: &mut self::_root::google::protobuf::compiler::_view::CodeGeneratorRequestView = &mut self
414                            .0;
415                        self::_pinternal::FieldType::deser_from_field_data(
416                            &mut view_ref.fields.compiler_version,
417                            view_ref.shared.bitfield_mut(),
418                            field_data,
419                        )?
420                    }
421                    _ => {
422                        let field_data = field_data
423                            .map(|iter| { iter.collect::<Result<Vec<_>, _>>() })
424                            .transpose()?;
425                        Err(PuroroError::UnknownFieldNumber(field_data))?
426                    }
427                }
428                Ok(())
429            })();
430            match result {
431                Ok(_) => {}
432                Err(PuroroError::UnknownFieldNumber(field_data)) => {
433                    self.0.shared.unknown_fields_mut().push(number, field_data)?;
434                }
435                Err(e) => Err(e)?,
436            }
437        }
438        Ok(())
439    }
440}
441impl ::std::borrow::Borrow<
442    self::_root::google::protobuf::compiler::_view::CodeGeneratorRequestView,
443> for CodeGeneratorRequest {
444    fn borrow(
445        &self,
446    ) -> &self::_root::google::protobuf::compiler::_view::CodeGeneratorRequestView {
447        &self
448    }
449}
450impl ::std::clone::Clone for CodeGeneratorRequest {
451    fn clone(&self) -> Self {
452        #[allow(unused)]
453        use ::std::borrow::ToOwned;
454        <self::_root::google::protobuf::compiler::_view::CodeGeneratorRequestView as ToOwned>::to_owned(
455            &self,
456        )
457    }
458}
459impl ::std::fmt::Debug for CodeGeneratorRequest {
460    fn fmt(
461        &self,
462        fmt: &mut ::std::fmt::Formatter<'_>,
463    ) -> ::std::result::Result<(), ::std::fmt::Error> {
464        <self::_root::google::protobuf::compiler::_view::CodeGeneratorRequestView as ::std::fmt::Debug>::fmt(
465            &self,
466            fmt,
467        )
468    }
469}
470impl ::std::default::Default for self::CodeGeneratorRequest {
471    fn default() -> Self {
472        Self(
473            <self::_root::google::protobuf::compiler::_view::CodeGeneratorRequestView as self::_pinternal::MessageViewInternal>::new_boxed(),
474        )
475    }
476}
477impl ::std::ops::Deref for CodeGeneratorRequest {
478    type Target = self::_root::google::protobuf::compiler::_view::CodeGeneratorRequestView;
479    fn deref(&self) -> &Self::Target {
480        <::std::boxed::Box<_> as ::std::ops::Deref>::deref(&self.0)
481    }
482}
483impl ::std::cmp::PartialEq for CodeGeneratorRequest {
484    fn eq(&self, rhs: &Self) -> bool {
485        <self::_root::google::protobuf::compiler::_view::CodeGeneratorRequestView as ::std::cmp::PartialEq>::eq(
486            &self.0,
487            &rhs.0,
488        )
489    }
490}
491/** The plugin writes an encoded CodeGeneratorResponse to stdout.
492*/
493pub struct CodeGeneratorResponse(
494    ::std::boxed::Box<
495        self::_root::google::protobuf::compiler::_view::CodeGeneratorResponseView,
496    >,
497);
498impl CodeGeneratorResponse {
499    pub fn error_mut(&mut self) -> &mut ::std::string::String {
500        use self::_pinternal::{NonRepeatedFieldType, SharedItems as _};
501        let mut_view: &mut self::_root::google::protobuf::compiler::_view::CodeGeneratorResponseView = &mut self
502            .0;
503        NonRepeatedFieldType::get_field_mut(
504            &mut mut_view.fields.error,
505            mut_view.shared.bitfield_mut(),
506            ::std::default::Default::default,
507        )
508    }
509    pub fn clear_error(&mut self) {
510        use self::_pinternal::{NonRepeatedFieldType, SharedItems as _};
511        let mut_view: &mut self::_root::google::protobuf::compiler::_view::CodeGeneratorResponseView = &mut self
512            .0;
513        NonRepeatedFieldType::clear(
514            &mut mut_view.fields.error,
515            mut_view.shared.bitfield_mut(),
516        )
517    }
518    pub fn supported_features_mut(&mut self) -> &mut u64 {
519        use self::_pinternal::{NonRepeatedFieldType, SharedItems as _};
520        let mut_view: &mut self::_root::google::protobuf::compiler::_view::CodeGeneratorResponseView = &mut self
521            .0;
522        NonRepeatedFieldType::get_field_mut(
523            &mut mut_view.fields.supported_features,
524            mut_view.shared.bitfield_mut(),
525            ::std::default::Default::default,
526        )
527    }
528    pub fn clear_supported_features(&mut self) {
529        use self::_pinternal::{NonRepeatedFieldType, SharedItems as _};
530        let mut_view: &mut self::_root::google::protobuf::compiler::_view::CodeGeneratorResponseView = &mut self
531            .0;
532        NonRepeatedFieldType::clear(
533            &mut mut_view.fields.supported_features,
534            mut_view.shared.bitfield_mut(),
535        )
536    }
537    pub fn file_mut(
538        &mut self,
539    ) -> &mut ::std::vec::Vec::<
540        self::_root::google::protobuf::compiler::code_generator_response::File,
541    > {
542        use self::_pinternal::{RepeatedFieldType, SharedItems as _};
543        RepeatedFieldType::get_field_mut(
544            &mut self.0.fields.file,
545            self.0.shared.bitfield_mut(),
546        )
547    }
548    pub fn clear_file(&mut self) {
549        use self::_pinternal::{RepeatedFieldType, SharedItems as _};
550        RepeatedFieldType::clear(&mut self.0.fields.file, self.0.shared.bitfield_mut())
551    }
552    pub const ERROR_FIELD_NUMBER: i32 = 1i32;
553    pub const SUPPORTED_FEATURES_FIELD_NUMBER: i32 = 2i32;
554    pub const FILE_FIELD_NUMBER: i32 = 15i32;
555}
556impl self::_puroro::Message for CodeGeneratorResponse {
557    type ViewType = self::_root::google::protobuf::compiler::_view::CodeGeneratorResponseView;
558    fn from_bytes_iter<I: ::std::iter::Iterator<Item = ::std::io::Result<u8>>>(
559        iter: I,
560    ) -> self::_puroro::Result<Self> {
561        let mut msg = <Self as ::std::default::Default>::default();
562        msg.merge_from_bytes_iter(iter)?;
563        ::std::result::Result::Ok(msg)
564    }
565    fn merge_from_bytes_iter<I: ::std::iter::Iterator<Item = ::std::io::Result<u8>>>(
566        &mut self,
567        iter: I,
568    ) -> self::_puroro::Result<()> {
569        let mut pos_iter = self::_pinternal::PosIter::new(iter);
570        let mut scoped_iter = self::_pinternal::ScopedIter::from_mut_pos_iter(
571            &mut pos_iter,
572        );
573        <Self as self::_pinternal::MessageInternal>::merge_from_scoped_bytes_iter(
574            self,
575            &mut scoped_iter,
576        )?;
577        scoped_iter.drop_and_check_scope_completed()?;
578        Ok(())
579    }
580}
581impl self::_pinternal::MessageInternal for CodeGeneratorResponse {
582    fn merge_from_scoped_bytes_iter<
583        'a,
584        I: ::std::iter::Iterator<Item = ::std::io::Result<u8>>,
585    >(
586        &mut self,
587        iter: &mut self::_pinternal::ScopedIter<'a, I>,
588    ) -> self::_puroro::Result<()> {
589        use self::_pinternal::ser::FieldData;
590        #[allow(unused)]
591        use self::_pinternal::OneofUnion as _;
592        use self::_pinternal::{SharedItems as _, UnknownFields as _};
593        #[allow(unused)]
594        use ::std::result::Result;
595        #[allow(unused)]
596        use ::std::result::Result::{Ok, Err};
597        #[allow(unused)]
598        use ::std::vec::Vec;
599        use self::_puroro::PuroroError;
600        while let Some((number, field_data))
601            = FieldData::from_bytes_scoped_iter(iter.by_ref())? {
602            let result: self::_puroro::Result<()> = (|| {
603                match number {
604                    1i32 => {
605                        let view_ref: &mut self::_root::google::protobuf::compiler::_view::CodeGeneratorResponseView = &mut self
606                            .0;
607                        self::_pinternal::FieldType::deser_from_field_data(
608                            &mut view_ref.fields.error,
609                            view_ref.shared.bitfield_mut(),
610                            field_data,
611                        )?
612                    }
613                    2i32 => {
614                        let view_ref: &mut self::_root::google::protobuf::compiler::_view::CodeGeneratorResponseView = &mut self
615                            .0;
616                        self::_pinternal::FieldType::deser_from_field_data(
617                            &mut view_ref.fields.supported_features,
618                            view_ref.shared.bitfield_mut(),
619                            field_data,
620                        )?
621                    }
622                    15i32 => {
623                        let view_ref: &mut self::_root::google::protobuf::compiler::_view::CodeGeneratorResponseView = &mut self
624                            .0;
625                        self::_pinternal::FieldType::deser_from_field_data(
626                            &mut view_ref.fields.file,
627                            view_ref.shared.bitfield_mut(),
628                            field_data,
629                        )?
630                    }
631                    _ => {
632                        let field_data = field_data
633                            .map(|iter| { iter.collect::<Result<Vec<_>, _>>() })
634                            .transpose()?;
635                        Err(PuroroError::UnknownFieldNumber(field_data))?
636                    }
637                }
638                Ok(())
639            })();
640            match result {
641                Ok(_) => {}
642                Err(PuroroError::UnknownFieldNumber(field_data)) => {
643                    self.0.shared.unknown_fields_mut().push(number, field_data)?;
644                }
645                Err(e) => Err(e)?,
646            }
647        }
648        Ok(())
649    }
650}
651impl ::std::borrow::Borrow<
652    self::_root::google::protobuf::compiler::_view::CodeGeneratorResponseView,
653> for CodeGeneratorResponse {
654    fn borrow(
655        &self,
656    ) -> &self::_root::google::protobuf::compiler::_view::CodeGeneratorResponseView {
657        &self
658    }
659}
660impl ::std::clone::Clone for CodeGeneratorResponse {
661    fn clone(&self) -> Self {
662        #[allow(unused)]
663        use ::std::borrow::ToOwned;
664        <self::_root::google::protobuf::compiler::_view::CodeGeneratorResponseView as ToOwned>::to_owned(
665            &self,
666        )
667    }
668}
669impl ::std::fmt::Debug for CodeGeneratorResponse {
670    fn fmt(
671        &self,
672        fmt: &mut ::std::fmt::Formatter<'_>,
673    ) -> ::std::result::Result<(), ::std::fmt::Error> {
674        <self::_root::google::protobuf::compiler::_view::CodeGeneratorResponseView as ::std::fmt::Debug>::fmt(
675            &self,
676            fmt,
677        )
678    }
679}
680impl ::std::default::Default for self::CodeGeneratorResponse {
681    fn default() -> Self {
682        Self(
683            <self::_root::google::protobuf::compiler::_view::CodeGeneratorResponseView as self::_pinternal::MessageViewInternal>::new_boxed(),
684        )
685    }
686}
687impl ::std::ops::Deref for CodeGeneratorResponse {
688    type Target = self::_root::google::protobuf::compiler::_view::CodeGeneratorResponseView;
689    fn deref(&self) -> &Self::Target {
690        <::std::boxed::Box<_> as ::std::ops::Deref>::deref(&self.0)
691    }
692}
693impl ::std::cmp::PartialEq for CodeGeneratorResponse {
694    fn eq(&self, rhs: &Self) -> bool {
695        <self::_root::google::protobuf::compiler::_view::CodeGeneratorResponseView as ::std::cmp::PartialEq>::eq(
696            &self.0,
697            &rhs.0,
698        )
699    }
700}
701#[doc(hidden)]
702pub mod _view {
703    mod _root {
704        #[allow(unused)]
705        pub(crate) use super::super::_root::*;
706    }
707    mod _puroro {
708        #[allow(unused)]
709        pub(crate) use super::_root::_puroro::*;
710    }
711    mod _pinternal {
712        #[allow(unused)]
713        pub(crate) use super::_root::_pinternal::*;
714    }
715    pub struct VersionView {
716        pub(super) fields: self::_root::google::protobuf::compiler::_fields::VersionFields::<
717            self::_pinternal::OptionalNumericalField::<
718                i32,
719                self::_pinternal::tags::Int32,
720                0usize,
721            >,
722            self::_pinternal::OptionalNumericalField::<
723                i32,
724                self::_pinternal::tags::Int32,
725                1usize,
726            >,
727            self::_pinternal::OptionalNumericalField::<
728                i32,
729                self::_pinternal::tags::Int32,
730                2usize,
731            >,
732            self::_pinternal::OptionalUnsizedField::<
733                ::std::string::String,
734                self::_pinternal::tags::String,
735                3usize,
736            >,
737        >,
738        pub(super) shared: self::_pinternal::SharedItemsImpl<1usize>,
739    }
740    impl VersionView {
741        pub fn major(&self) -> i32 {
742            use self::_pinternal::{NonRepeatedFieldType, SharedItems as _};
743            NonRepeatedFieldType::get_field_or_else(
744                &self.fields.major,
745                self.shared.bitfield(),
746                ::std::default::Default::default,
747            )
748        }
749        pub fn major_opt(&self) -> ::std::option::Option::<i32> {
750            use self::_pinternal::{NonRepeatedFieldType, SharedItems as _};
751            NonRepeatedFieldType::get_field_opt(
752                &self.fields.major,
753                self.shared.bitfield(),
754            )
755        }
756        pub fn has_major(&self) -> bool {
757            use self::_pinternal::{NonRepeatedFieldType, SharedItems as _};
758            NonRepeatedFieldType::get_field_opt(
759                    &self.fields.major,
760                    self.shared.bitfield(),
761                )
762                .is_some()
763        }
764        pub fn minor(&self) -> i32 {
765            use self::_pinternal::{NonRepeatedFieldType, SharedItems as _};
766            NonRepeatedFieldType::get_field_or_else(
767                &self.fields.minor,
768                self.shared.bitfield(),
769                ::std::default::Default::default,
770            )
771        }
772        pub fn minor_opt(&self) -> ::std::option::Option::<i32> {
773            use self::_pinternal::{NonRepeatedFieldType, SharedItems as _};
774            NonRepeatedFieldType::get_field_opt(
775                &self.fields.minor,
776                self.shared.bitfield(),
777            )
778        }
779        pub fn has_minor(&self) -> bool {
780            use self::_pinternal::{NonRepeatedFieldType, SharedItems as _};
781            NonRepeatedFieldType::get_field_opt(
782                    &self.fields.minor,
783                    self.shared.bitfield(),
784                )
785                .is_some()
786        }
787        pub fn patch(&self) -> i32 {
788            use self::_pinternal::{NonRepeatedFieldType, SharedItems as _};
789            NonRepeatedFieldType::get_field_or_else(
790                &self.fields.patch,
791                self.shared.bitfield(),
792                ::std::default::Default::default,
793            )
794        }
795        pub fn patch_opt(&self) -> ::std::option::Option::<i32> {
796            use self::_pinternal::{NonRepeatedFieldType, SharedItems as _};
797            NonRepeatedFieldType::get_field_opt(
798                &self.fields.patch,
799                self.shared.bitfield(),
800            )
801        }
802        pub fn has_patch(&self) -> bool {
803            use self::_pinternal::{NonRepeatedFieldType, SharedItems as _};
804            NonRepeatedFieldType::get_field_opt(
805                    &self.fields.patch,
806                    self.shared.bitfield(),
807                )
808                .is_some()
809        }
810        pub fn suffix(&self) -> &str {
811            use self::_pinternal::{NonRepeatedFieldType, SharedItems as _};
812            NonRepeatedFieldType::get_field_or_else(
813                &self.fields.suffix,
814                self.shared.bitfield(),
815                ::std::default::Default::default,
816            )
817        }
818        /** A suffix for alpha, beta or rc release, e.g., "alpha-1", "rc2". It should
819 be empty for mainline stable releases.
820*/
821        pub fn suffix_opt(&self) -> ::std::option::Option::<&str> {
822            use self::_pinternal::{NonRepeatedFieldType, SharedItems as _};
823            NonRepeatedFieldType::get_field_opt(
824                &self.fields.suffix,
825                self.shared.bitfield(),
826            )
827        }
828        pub fn has_suffix(&self) -> bool {
829            use self::_pinternal::{NonRepeatedFieldType, SharedItems as _};
830            NonRepeatedFieldType::get_field_opt(
831                    &self.fields.suffix,
832                    self.shared.bitfield(),
833                )
834                .is_some()
835        }
836    }
837    impl self::_puroro::MessageView for self::VersionView {
838        type MessageType = self::_root::google::protobuf::compiler::Version;
839        fn to_bytes<W: ::std::io::Write>(
840            &self,
841            #[allow(unused)]
842            out: &mut W,
843        ) -> self::_puroro::Result<()> {
844            #[allow(unused)]
845            use self::_pinternal::OneofUnion as _;
846            use self::_pinternal::{SharedItems as _, UnknownFields as _};
847            self::_pinternal::FieldType::ser_to_write(
848                &self.fields.major,
849                self.shared.bitfield(),
850                1i32,
851                out,
852            )?;
853            self::_pinternal::FieldType::ser_to_write(
854                &self.fields.minor,
855                self.shared.bitfield(),
856                2i32,
857                out,
858            )?;
859            self::_pinternal::FieldType::ser_to_write(
860                &self.fields.patch,
861                self.shared.bitfield(),
862                3i32,
863                out,
864            )?;
865            self::_pinternal::FieldType::ser_to_write(
866                &self.fields.suffix,
867                self.shared.bitfield(),
868                4i32,
869                out,
870            )?;
871            self.shared.unknown_fields().ser_to_write(out)?;
872            ::std::result::Result::Ok(())
873        }
874    }
875    impl self::_pinternal::MessageViewInternal for self::VersionView {
876        fn new_boxed() -> ::std::boxed::Box<Self> {
877            use self::_pinternal::SharedItems as _;
878            let mut shared: self::_pinternal::SharedItemsImpl::<1usize> = ::std::default::Default::default();
879            let fields = self::_root::google::protobuf::compiler::_fields::VersionFields {
880                major: self::_pinternal::FieldType::new(shared.bitfield_mut()),
881                minor: self::_pinternal::FieldType::new(shared.bitfield_mut()),
882                patch: self::_pinternal::FieldType::new(shared.bitfield_mut()),
883                suffix: self::_pinternal::FieldType::new(shared.bitfield_mut()),
884            };
885            ::std::boxed::Box::new(Self { fields, shared })
886        }
887    }
888    impl ::std::ops::Drop for VersionView {
889        fn drop(&mut self) {
890            #[allow(unused)]
891            use self::_pinternal::{OneofUnion as _, SharedItems as _};
892        }
893    }
894    impl ::std::fmt::Debug for VersionView {
895        fn fmt(
896            &self,
897            fmt: &mut ::std::fmt::Formatter<'_>,
898        ) -> ::std::result::Result<(), ::std::fmt::Error> {
899            use self::_pinternal::{SharedItems as _, UnknownFields as _};
900            let mut debug_struct = fmt.debug_struct(stringify!(VersionView));
901            debug_struct
902                .field(stringify!(major), &self.major_opt())
903                .field(stringify!(minor), &self.minor_opt())
904                .field(stringify!(patch), &self.patch_opt())
905                .field(stringify!(suffix), &self.suffix_opt());
906            self.shared.unknown_fields().debug_struct_fields(&mut debug_struct)?;
907            debug_struct.finish()
908        }
909    }
910    impl ::std::cmp::PartialEq for VersionView {
911        fn eq(&self, rhs: &Self) -> bool {
912            #[allow(unused)]
913            use self::_pinternal::OneofUnion as _;
914            use self::_pinternal::SharedItems as _;
915            true && self.major_opt() == rhs.major_opt()
916                && self.minor_opt() == rhs.minor_opt()
917                && self.patch_opt() == rhs.patch_opt()
918                && self.suffix_opt() == rhs.suffix_opt()
919                && self.shared.unknown_fields() == rhs.shared.unknown_fields()
920        }
921    }
922    impl ::std::borrow::ToOwned for VersionView {
923        type Owned = self::_root::google::protobuf::compiler::Version;
924        fn to_owned(&self) -> Self::Owned {
925            #[allow(unused)]
926            use self::_pinternal::SharedItems;
927            self::_root::google::protobuf::compiler::Version(
928                ::std::boxed::Box::new(Self {
929                    fields: self::_root::google::protobuf::compiler::_fields::VersionFields {
930                        major: ::std::clone::Clone::clone(&self.fields.major),
931                        minor: ::std::clone::Clone::clone(&self.fields.minor),
932                        patch: ::std::clone::Clone::clone(&self.fields.patch),
933                        suffix: ::std::clone::Clone::clone(&self.fields.suffix),
934                    },
935                    shared: ::std::clone::Clone::clone(&self.shared),
936                }),
937            )
938        }
939    }
940    pub struct CodeGeneratorRequestView {
941        pub(super) fields: self::_root::google::protobuf::compiler::_fields::CodeGeneratorRequestFields::<
942            self::_pinternal::RepeatedUnsizedField::<
943                ::std::string::String,
944                self::_pinternal::tags::String,
945            >,
946            self::_pinternal::OptionalUnsizedField::<
947                ::std::string::String,
948                self::_pinternal::tags::String,
949                0usize,
950            >,
951            self::_pinternal::RepeatedMessageField::<
952                self::_root::google::protobuf::FileDescriptorProto,
953            >,
954            self::_pinternal::SingularMessageField::<
955                self::_root::google::protobuf::compiler::Version,
956            >,
957        >,
958        pub(super) shared: self::_pinternal::SharedItemsImpl<1usize>,
959    }
960    impl CodeGeneratorRequestView {
961        /** The .proto files that were explicitly listed on the command-line.  The
962 code generator should generate code only for these files.  Each file's
963 descriptor will be included in proto_file, below.
964*/
965        pub fn file_to_generate(
966            &self,
967        ) -> impl '_ + self::_puroro::repeated::RepeatedFieldView<'_, Item = str> {
968            use self::_pinternal::{RepeatedFieldType, SharedItems as _};
969            RepeatedFieldType::get_field(
970                &self.fields.file_to_generate,
971                self.shared.bitfield(),
972            )
973        }
974        pub fn parameter(&self) -> &str {
975            use self::_pinternal::{NonRepeatedFieldType, SharedItems as _};
976            NonRepeatedFieldType::get_field_or_else(
977                &self.fields.parameter,
978                self.shared.bitfield(),
979                ::std::default::Default::default,
980            )
981        }
982        /** The generator parameter passed on the command-line.
983*/
984        pub fn parameter_opt(&self) -> ::std::option::Option::<&str> {
985            use self::_pinternal::{NonRepeatedFieldType, SharedItems as _};
986            NonRepeatedFieldType::get_field_opt(
987                &self.fields.parameter,
988                self.shared.bitfield(),
989            )
990        }
991        pub fn has_parameter(&self) -> bool {
992            use self::_pinternal::{NonRepeatedFieldType, SharedItems as _};
993            NonRepeatedFieldType::get_field_opt(
994                    &self.fields.parameter,
995                    self.shared.bitfield(),
996                )
997                .is_some()
998        }
999        /** FileDescriptorProtos for all files in files_to_generate and everything
1000 they import.  The files will appear in topological order, so each file
1001 appears before any file that imports it.
1002
1003 protoc guarantees that all proto_files will be written after
1004 the fields above, even though this is not technically guaranteed by the
1005 protobuf wire format.  This theoretically could allow a plugin to stream
1006 in the FileDescriptorProtos and handle them one by one rather than read
1007 the entire set into memory at once.  However, as of this writing, this
1008 is not similarly optimized on protoc's end -- it will store all fields in
1009 memory at once before sending them to the plugin.
1010
1011 Type names of fields and extensions in the FileDescriptorProto are always
1012 fully qualified.
1013*/
1014        pub fn proto_file(
1015            &self,
1016        ) -> impl '_ + self::_puroro::repeated::RepeatedFieldView<
1017            '_,
1018            Item = self::_root::google::protobuf::_view::FileDescriptorProtoView,
1019        > {
1020            use self::_pinternal::{RepeatedFieldType, SharedItems as _};
1021            RepeatedFieldType::get_field(&self.fields.proto_file, self.shared.bitfield())
1022        }
1023        pub fn compiler_version(
1024            &self,
1025        ) -> ::std::option::Option::<
1026            &self::_root::google::protobuf::compiler::_view::VersionView,
1027        > {
1028            use self::_pinternal::{NonRepeatedFieldType, SharedItems as _};
1029            NonRepeatedFieldType::get_field_or_else(
1030                &self.fields.compiler_version,
1031                self.shared.bitfield(),
1032                ::std::default::Default::default,
1033            )
1034        }
1035        /** The version number of protocol compiler.
1036*/
1037        pub fn compiler_version_opt(
1038            &self,
1039        ) -> ::std::option::Option::<
1040            &self::_root::google::protobuf::compiler::_view::VersionView,
1041        > {
1042            use self::_pinternal::{NonRepeatedFieldType, SharedItems as _};
1043            NonRepeatedFieldType::get_field_opt(
1044                &self.fields.compiler_version,
1045                self.shared.bitfield(),
1046            )
1047        }
1048        pub fn has_compiler_version(&self) -> bool {
1049            use self::_pinternal::{NonRepeatedFieldType, SharedItems as _};
1050            NonRepeatedFieldType::get_field_opt(
1051                    &self.fields.compiler_version,
1052                    self.shared.bitfield(),
1053                )
1054                .is_some()
1055        }
1056    }
1057    impl self::_puroro::MessageView for self::CodeGeneratorRequestView {
1058        type MessageType = self::_root::google::protobuf::compiler::CodeGeneratorRequest;
1059        fn to_bytes<W: ::std::io::Write>(
1060            &self,
1061            #[allow(unused)]
1062            out: &mut W,
1063        ) -> self::_puroro::Result<()> {
1064            #[allow(unused)]
1065            use self::_pinternal::OneofUnion as _;
1066            use self::_pinternal::{SharedItems as _, UnknownFields as _};
1067            self::_pinternal::FieldType::ser_to_write(
1068                &self.fields.file_to_generate,
1069                self.shared.bitfield(),
1070                1i32,
1071                out,
1072            )?;
1073            self::_pinternal::FieldType::ser_to_write(
1074                &self.fields.parameter,
1075                self.shared.bitfield(),
1076                2i32,
1077                out,
1078            )?;
1079            self::_pinternal::FieldType::ser_to_write(
1080                &self.fields.proto_file,
1081                self.shared.bitfield(),
1082                15i32,
1083                out,
1084            )?;
1085            self::_pinternal::FieldType::ser_to_write(
1086                &self.fields.compiler_version,
1087                self.shared.bitfield(),
1088                3i32,
1089                out,
1090            )?;
1091            self.shared.unknown_fields().ser_to_write(out)?;
1092            ::std::result::Result::Ok(())
1093        }
1094    }
1095    impl self::_pinternal::MessageViewInternal for self::CodeGeneratorRequestView {
1096        fn new_boxed() -> ::std::boxed::Box<Self> {
1097            use self::_pinternal::SharedItems as _;
1098            let mut shared: self::_pinternal::SharedItemsImpl::<1usize> = ::std::default::Default::default();
1099            let fields = self::_root::google::protobuf::compiler::_fields::CodeGeneratorRequestFields {
1100                file_to_generate: self::_pinternal::FieldType::new(
1101                    shared.bitfield_mut(),
1102                ),
1103                parameter: self::_pinternal::FieldType::new(shared.bitfield_mut()),
1104                proto_file: self::_pinternal::FieldType::new(shared.bitfield_mut()),
1105                compiler_version: self::_pinternal::FieldType::new(shared.bitfield_mut()),
1106            };
1107            ::std::boxed::Box::new(Self { fields, shared })
1108        }
1109    }
1110    impl ::std::ops::Drop for CodeGeneratorRequestView {
1111        fn drop(&mut self) {
1112            #[allow(unused)]
1113            use self::_pinternal::{OneofUnion as _, SharedItems as _};
1114        }
1115    }
1116    impl ::std::fmt::Debug for CodeGeneratorRequestView {
1117        fn fmt(
1118            &self,
1119            fmt: &mut ::std::fmt::Formatter<'_>,
1120        ) -> ::std::result::Result<(), ::std::fmt::Error> {
1121            use self::_pinternal::{SharedItems as _, UnknownFields as _};
1122            let mut debug_struct = fmt
1123                .debug_struct(stringify!(CodeGeneratorRequestView));
1124            debug_struct
1125                .field(
1126                    stringify!(file_to_generate),
1127                    &self
1128                        .file_to_generate()
1129                        .into_iter()
1130                        .collect::<::std::vec::Vec<_>>()
1131                        .as_slice(),
1132                )
1133                .field(stringify!(parameter), &self.parameter_opt())
1134                .field(
1135                    stringify!(proto_file),
1136                    &self
1137                        .proto_file()
1138                        .into_iter()
1139                        .collect::<::std::vec::Vec<_>>()
1140                        .as_slice(),
1141                )
1142                .field(stringify!(compiler_version), &self.compiler_version_opt());
1143            self.shared.unknown_fields().debug_struct_fields(&mut debug_struct)?;
1144            debug_struct.finish()
1145        }
1146    }
1147    impl ::std::cmp::PartialEq for CodeGeneratorRequestView {
1148        fn eq(&self, rhs: &Self) -> bool {
1149            #[allow(unused)]
1150            use self::_pinternal::OneofUnion as _;
1151            use self::_pinternal::SharedItems as _;
1152            true && self.file_to_generate().into_iter().eq(rhs.file_to_generate())
1153                && self.parameter_opt() == rhs.parameter_opt()
1154                && self.proto_file().into_iter().eq(rhs.proto_file())
1155                && self.compiler_version_opt() == rhs.compiler_version_opt()
1156                && self.shared.unknown_fields() == rhs.shared.unknown_fields()
1157        }
1158    }
1159    impl ::std::borrow::ToOwned for CodeGeneratorRequestView {
1160        type Owned = self::_root::google::protobuf::compiler::CodeGeneratorRequest;
1161        fn to_owned(&self) -> Self::Owned {
1162            #[allow(unused)]
1163            use self::_pinternal::SharedItems;
1164            self::_root::google::protobuf::compiler::CodeGeneratorRequest(
1165                ::std::boxed::Box::new(Self {
1166                    fields: self::_root::google::protobuf::compiler::_fields::CodeGeneratorRequestFields {
1167                        file_to_generate: ::std::clone::Clone::clone(
1168                            &self.fields.file_to_generate,
1169                        ),
1170                        parameter: ::std::clone::Clone::clone(&self.fields.parameter),
1171                        proto_file: ::std::clone::Clone::clone(&self.fields.proto_file),
1172                        compiler_version: ::std::clone::Clone::clone(
1173                            &self.fields.compiler_version,
1174                        ),
1175                    },
1176                    shared: ::std::clone::Clone::clone(&self.shared),
1177                }),
1178            )
1179        }
1180    }
1181    pub struct CodeGeneratorResponseView {
1182        pub(super) fields: self::_root::google::protobuf::compiler::_fields::CodeGeneratorResponseFields::<
1183            self::_pinternal::OptionalUnsizedField::<
1184                ::std::string::String,
1185                self::_pinternal::tags::String,
1186                0usize,
1187            >,
1188            self::_pinternal::OptionalNumericalField::<
1189                u64,
1190                self::_pinternal::tags::UInt64,
1191                1usize,
1192            >,
1193            self::_pinternal::RepeatedMessageField::<
1194                self::_root::google::protobuf::compiler::code_generator_response::File,
1195            >,
1196        >,
1197        pub(super) shared: self::_pinternal::SharedItemsImpl<1usize>,
1198    }
1199    impl CodeGeneratorResponseView {
1200        pub fn error(&self) -> &str {
1201            use self::_pinternal::{NonRepeatedFieldType, SharedItems as _};
1202            NonRepeatedFieldType::get_field_or_else(
1203                &self.fields.error,
1204                self.shared.bitfield(),
1205                ::std::default::Default::default,
1206            )
1207        }
1208        /** Error message.  If non-empty, code generation failed.  The plugin process
1209 should exit with status code zero even if it reports an error in this way.
1210
1211 This should be used to indicate errors in .proto files which prevent the
1212 code generator from generating correct code.  Errors which indicate a
1213 problem in protoc itself -- such as the input CodeGeneratorRequest being
1214 unparseable -- should be reported by writing a message to stderr and
1215 exiting with a non-zero status code.
1216*/
1217        pub fn error_opt(&self) -> ::std::option::Option::<&str> {
1218            use self::_pinternal::{NonRepeatedFieldType, SharedItems as _};
1219            NonRepeatedFieldType::get_field_opt(
1220                &self.fields.error,
1221                self.shared.bitfield(),
1222            )
1223        }
1224        pub fn has_error(&self) -> bool {
1225            use self::_pinternal::{NonRepeatedFieldType, SharedItems as _};
1226            NonRepeatedFieldType::get_field_opt(
1227                    &self.fields.error,
1228                    self.shared.bitfield(),
1229                )
1230                .is_some()
1231        }
1232        pub fn supported_features(&self) -> u64 {
1233            use self::_pinternal::{NonRepeatedFieldType, SharedItems as _};
1234            NonRepeatedFieldType::get_field_or_else(
1235                &self.fields.supported_features,
1236                self.shared.bitfield(),
1237                ::std::default::Default::default,
1238            )
1239        }
1240        /** A bitmask of supported features that the code generator supports.
1241 This is a bitwise "or" of values from the Feature enum.
1242*/
1243        pub fn supported_features_opt(&self) -> ::std::option::Option::<u64> {
1244            use self::_pinternal::{NonRepeatedFieldType, SharedItems as _};
1245            NonRepeatedFieldType::get_field_opt(
1246                &self.fields.supported_features,
1247                self.shared.bitfield(),
1248            )
1249        }
1250        pub fn has_supported_features(&self) -> bool {
1251            use self::_pinternal::{NonRepeatedFieldType, SharedItems as _};
1252            NonRepeatedFieldType::get_field_opt(
1253                    &self.fields.supported_features,
1254                    self.shared.bitfield(),
1255                )
1256                .is_some()
1257        }
1258        pub fn file(
1259            &self,
1260        ) -> impl '_ + self::_puroro::repeated::RepeatedFieldView<
1261            '_,
1262            Item = self::_root::google::protobuf::compiler::code_generator_response::_view::FileView,
1263        > {
1264            use self::_pinternal::{RepeatedFieldType, SharedItems as _};
1265            RepeatedFieldType::get_field(&self.fields.file, self.shared.bitfield())
1266        }
1267    }
1268    impl self::_puroro::MessageView for self::CodeGeneratorResponseView {
1269        type MessageType = self::_root::google::protobuf::compiler::CodeGeneratorResponse;
1270        fn to_bytes<W: ::std::io::Write>(
1271            &self,
1272            #[allow(unused)]
1273            out: &mut W,
1274        ) -> self::_puroro::Result<()> {
1275            #[allow(unused)]
1276            use self::_pinternal::OneofUnion as _;
1277            use self::_pinternal::{SharedItems as _, UnknownFields as _};
1278            self::_pinternal::FieldType::ser_to_write(
1279                &self.fields.error,
1280                self.shared.bitfield(),
1281                1i32,
1282                out,
1283            )?;
1284            self::_pinternal::FieldType::ser_to_write(
1285                &self.fields.supported_features,
1286                self.shared.bitfield(),
1287                2i32,
1288                out,
1289            )?;
1290            self::_pinternal::FieldType::ser_to_write(
1291                &self.fields.file,
1292                self.shared.bitfield(),
1293                15i32,
1294                out,
1295            )?;
1296            self.shared.unknown_fields().ser_to_write(out)?;
1297            ::std::result::Result::Ok(())
1298        }
1299    }
1300    impl self::_pinternal::MessageViewInternal for self::CodeGeneratorResponseView {
1301        fn new_boxed() -> ::std::boxed::Box<Self> {
1302            use self::_pinternal::SharedItems as _;
1303            let mut shared: self::_pinternal::SharedItemsImpl::<1usize> = ::std::default::Default::default();
1304            let fields = self::_root::google::protobuf::compiler::_fields::CodeGeneratorResponseFields {
1305                error: self::_pinternal::FieldType::new(shared.bitfield_mut()),
1306                supported_features: self::_pinternal::FieldType::new(
1307                    shared.bitfield_mut(),
1308                ),
1309                file: self::_pinternal::FieldType::new(shared.bitfield_mut()),
1310            };
1311            ::std::boxed::Box::new(Self { fields, shared })
1312        }
1313    }
1314    impl ::std::ops::Drop for CodeGeneratorResponseView {
1315        fn drop(&mut self) {
1316            #[allow(unused)]
1317            use self::_pinternal::{OneofUnion as _, SharedItems as _};
1318        }
1319    }
1320    impl ::std::fmt::Debug for CodeGeneratorResponseView {
1321        fn fmt(
1322            &self,
1323            fmt: &mut ::std::fmt::Formatter<'_>,
1324        ) -> ::std::result::Result<(), ::std::fmt::Error> {
1325            use self::_pinternal::{SharedItems as _, UnknownFields as _};
1326            let mut debug_struct = fmt
1327                .debug_struct(stringify!(CodeGeneratorResponseView));
1328            debug_struct
1329                .field(stringify!(error), &self.error_opt())
1330                .field(stringify!(supported_features), &self.supported_features_opt())
1331                .field(
1332                    stringify!(file),
1333                    &self.file().into_iter().collect::<::std::vec::Vec<_>>().as_slice(),
1334                );
1335            self.shared.unknown_fields().debug_struct_fields(&mut debug_struct)?;
1336            debug_struct.finish()
1337        }
1338    }
1339    impl ::std::cmp::PartialEq for CodeGeneratorResponseView {
1340        fn eq(&self, rhs: &Self) -> bool {
1341            #[allow(unused)]
1342            use self::_pinternal::OneofUnion as _;
1343            use self::_pinternal::SharedItems as _;
1344            true && self.error_opt() == rhs.error_opt()
1345                && self.supported_features_opt() == rhs.supported_features_opt()
1346                && self.file().into_iter().eq(rhs.file())
1347                && self.shared.unknown_fields() == rhs.shared.unknown_fields()
1348        }
1349    }
1350    impl ::std::borrow::ToOwned for CodeGeneratorResponseView {
1351        type Owned = self::_root::google::protobuf::compiler::CodeGeneratorResponse;
1352        fn to_owned(&self) -> Self::Owned {
1353            #[allow(unused)]
1354            use self::_pinternal::SharedItems;
1355            self::_root::google::protobuf::compiler::CodeGeneratorResponse(
1356                ::std::boxed::Box::new(Self {
1357                    fields: self::_root::google::protobuf::compiler::_fields::CodeGeneratorResponseFields {
1358                        error: ::std::clone::Clone::clone(&self.fields.error),
1359                        supported_features: ::std::clone::Clone::clone(
1360                            &self.fields.supported_features,
1361                        ),
1362                        file: ::std::clone::Clone::clone(&self.fields.file),
1363                    },
1364                    shared: ::std::clone::Clone::clone(&self.shared),
1365                }),
1366            )
1367        }
1368    }
1369}
1370#[doc(inline)]
1371pub use self::_view::*;
1372#[doc(hidden)]
1373pub mod _fields {
1374    mod _root {
1375        #[allow(unused)]
1376        pub(crate) use super::super::_root::*;
1377    }
1378    mod _puroro {
1379        #[allow(unused)]
1380        pub(crate) use super::_root::_puroro::*;
1381    }
1382    mod _pinternal {
1383        #[allow(unused)]
1384        pub(crate) use super::_root::_pinternal::*;
1385    }
1386    pub struct VersionFields<TMajor, TMinor, TPatch, TSuffix> {
1387        pub major: TMajor,
1388        pub minor: TMinor,
1389        pub patch: TPatch,
1390        pub suffix: TSuffix,
1391    }
1392    pub struct CodeGeneratorRequestFields<
1393        TFileToGenerate,
1394        TParameter,
1395        TProtoFile,
1396        TCompilerVersion,
1397    > {
1398        pub file_to_generate: TFileToGenerate,
1399        pub parameter: TParameter,
1400        pub proto_file: TProtoFile,
1401        pub compiler_version: TCompilerVersion,
1402    }
1403    pub struct CodeGeneratorResponseFields<TError, TSupportedFeatures, TFile> {
1404        pub error: TError,
1405        pub supported_features: TSupportedFeatures,
1406        pub file: TFile,
1407    }
1408}
1409#[doc(hidden)]
1410pub use self::_fields::*;