matrix_protos_rust/protos/
driver.rs

1// This file is generated by rust-protobuf 2.25.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 `matrix_io/malos/v1/driver.proto`
21
22/// Generated files are compatible only with the same version
23/// of protobuf runtime.
24// const _PROTOBUF_VERSION_CHECK: () = ::protobuf::VERSION_2_25_1;
25
26#[derive(PartialEq,Clone,Default)]
27pub struct DriverConfig {
28    // message fields
29    pub delay_between_updates: f32,
30    pub timeout_after_last_ping: f32,
31    pub image: ::protobuf::SingularPtrField<super::io::EverloopImage>,
32    pub malos_eye_config: ::protobuf::SingularPtrField<super::maloseye::MalosEyeConfig>,
33    pub zigbee_message: ::protobuf::SingularPtrField<super::comm::ZigBeeMsg>,
34    pub lirc: ::protobuf::SingularPtrField<super::comm::LircParams>,
35    pub servo: ::protobuf::SingularPtrField<super::io::ServoParams>,
36    pub gpio: ::protobuf::SingularPtrField<super::io::GpioParams>,
37    pub humidity: ::protobuf::SingularPtrField<super::sense::HumidityParams>,
38    pub micarray: ::protobuf::SingularPtrField<super::io::MicArrayParams>,
39    pub zwave: ::protobuf::SingularPtrField<super::comm::ZWaveMsg>,
40    pub wakeword: ::protobuf::SingularPtrField<super::io::WakeWordParams>,
41    pub matrix_device: ::protobuf::SingularPtrField<super::io::MatrixDeviceParams>,
42    pub uuid: ::std::string::String,
43    // special fields
44    pub unknown_fields: ::protobuf::UnknownFields,
45    pub cached_size: ::protobuf::CachedSize,
46}
47
48impl<'a> ::std::default::Default for &'a DriverConfig {
49    fn default() -> &'a DriverConfig {
50        <DriverConfig as ::protobuf::Message>::default_instance()
51    }
52}
53
54impl DriverConfig {
55    pub fn new() -> DriverConfig {
56        ::std::default::Default::default()
57    }
58
59    // float delay_between_updates = 1;
60
61
62    pub fn get_delay_between_updates(&self) -> f32 {
63        self.delay_between_updates
64    }
65    pub fn clear_delay_between_updates(&mut self) {
66        self.delay_between_updates = 0.;
67    }
68
69    // Param is passed by value, moved
70    pub fn set_delay_between_updates(&mut self, v: f32) {
71        self.delay_between_updates = v;
72    }
73
74    // float timeout_after_last_ping = 2;
75
76
77    pub fn get_timeout_after_last_ping(&self) -> f32 {
78        self.timeout_after_last_ping
79    }
80    pub fn clear_timeout_after_last_ping(&mut self) {
81        self.timeout_after_last_ping = 0.;
82    }
83
84    // Param is passed by value, moved
85    pub fn set_timeout_after_last_ping(&mut self, v: f32) {
86        self.timeout_after_last_ping = v;
87    }
88
89    // .matrix_io.malos.v1.io.EverloopImage image = 3;
90
91
92    pub fn get_image(&self) -> &super::io::EverloopImage {
93        self.image.as_ref().unwrap_or_else(|| <super::io::EverloopImage as ::protobuf::Message>::default_instance())
94    }
95    pub fn clear_image(&mut self) {
96        self.image.clear();
97    }
98
99    pub fn has_image(&self) -> bool {
100        self.image.is_some()
101    }
102
103    // Param is passed by value, moved
104    pub fn set_image(&mut self, v: super::io::EverloopImage) {
105        self.image = ::protobuf::SingularPtrField::some(v);
106    }
107
108    // Mutable pointer to the field.
109    // If field is not initialized, it is initialized with default value first.
110    pub fn mut_image(&mut self) -> &mut super::io::EverloopImage {
111        if self.image.is_none() {
112            self.image.set_default();
113        }
114        self.image.as_mut().unwrap()
115    }
116
117    // Take field
118    pub fn take_image(&mut self) -> super::io::EverloopImage {
119        self.image.take().unwrap_or_else(|| super::io::EverloopImage::new())
120    }
121
122    // .matrix_io.malos.v1.maloseye.MalosEyeConfig malos_eye_config = 4;
123
124
125    pub fn get_malos_eye_config(&self) -> &super::maloseye::MalosEyeConfig {
126        self.malos_eye_config.as_ref().unwrap_or_else(|| <super::maloseye::MalosEyeConfig as ::protobuf::Message>::default_instance())
127    }
128    pub fn clear_malos_eye_config(&mut self) {
129        self.malos_eye_config.clear();
130    }
131
132    pub fn has_malos_eye_config(&self) -> bool {
133        self.malos_eye_config.is_some()
134    }
135
136    // Param is passed by value, moved
137    pub fn set_malos_eye_config(&mut self, v: super::maloseye::MalosEyeConfig) {
138        self.malos_eye_config = ::protobuf::SingularPtrField::some(v);
139    }
140
141    // Mutable pointer to the field.
142    // If field is not initialized, it is initialized with default value first.
143    pub fn mut_malos_eye_config(&mut self) -> &mut super::maloseye::MalosEyeConfig {
144        if self.malos_eye_config.is_none() {
145            self.malos_eye_config.set_default();
146        }
147        self.malos_eye_config.as_mut().unwrap()
148    }
149
150    // Take field
151    pub fn take_malos_eye_config(&mut self) -> super::maloseye::MalosEyeConfig {
152        self.malos_eye_config.take().unwrap_or_else(|| super::maloseye::MalosEyeConfig::new())
153    }
154
155    // .matrix_io.malos.v1.comm.ZigBeeMsg zigbee_message = 5;
156
157
158    pub fn get_zigbee_message(&self) -> &super::comm::ZigBeeMsg {
159        self.zigbee_message.as_ref().unwrap_or_else(|| <super::comm::ZigBeeMsg as ::protobuf::Message>::default_instance())
160    }
161    pub fn clear_zigbee_message(&mut self) {
162        self.zigbee_message.clear();
163    }
164
165    pub fn has_zigbee_message(&self) -> bool {
166        self.zigbee_message.is_some()
167    }
168
169    // Param is passed by value, moved
170    pub fn set_zigbee_message(&mut self, v: super::comm::ZigBeeMsg) {
171        self.zigbee_message = ::protobuf::SingularPtrField::some(v);
172    }
173
174    // Mutable pointer to the field.
175    // If field is not initialized, it is initialized with default value first.
176    pub fn mut_zigbee_message(&mut self) -> &mut super::comm::ZigBeeMsg {
177        if self.zigbee_message.is_none() {
178            self.zigbee_message.set_default();
179        }
180        self.zigbee_message.as_mut().unwrap()
181    }
182
183    // Take field
184    pub fn take_zigbee_message(&mut self) -> super::comm::ZigBeeMsg {
185        self.zigbee_message.take().unwrap_or_else(|| super::comm::ZigBeeMsg::new())
186    }
187
188    // .matrix_io.malos.v1.comm.LircParams lirc = 6;
189
190
191    pub fn get_lirc(&self) -> &super::comm::LircParams {
192        self.lirc.as_ref().unwrap_or_else(|| <super::comm::LircParams as ::protobuf::Message>::default_instance())
193    }
194    pub fn clear_lirc(&mut self) {
195        self.lirc.clear();
196    }
197
198    pub fn has_lirc(&self) -> bool {
199        self.lirc.is_some()
200    }
201
202    // Param is passed by value, moved
203    pub fn set_lirc(&mut self, v: super::comm::LircParams) {
204        self.lirc = ::protobuf::SingularPtrField::some(v);
205    }
206
207    // Mutable pointer to the field.
208    // If field is not initialized, it is initialized with default value first.
209    pub fn mut_lirc(&mut self) -> &mut super::comm::LircParams {
210        if self.lirc.is_none() {
211            self.lirc.set_default();
212        }
213        self.lirc.as_mut().unwrap()
214    }
215
216    // Take field
217    pub fn take_lirc(&mut self) -> super::comm::LircParams {
218        self.lirc.take().unwrap_or_else(|| super::comm::LircParams::new())
219    }
220
221    // .matrix_io.malos.v1.io.ServoParams servo = 7;
222
223
224    pub fn get_servo(&self) -> &super::io::ServoParams {
225        self.servo.as_ref().unwrap_or_else(|| <super::io::ServoParams as ::protobuf::Message>::default_instance())
226    }
227    pub fn clear_servo(&mut self) {
228        self.servo.clear();
229    }
230
231    pub fn has_servo(&self) -> bool {
232        self.servo.is_some()
233    }
234
235    // Param is passed by value, moved
236    pub fn set_servo(&mut self, v: super::io::ServoParams) {
237        self.servo = ::protobuf::SingularPtrField::some(v);
238    }
239
240    // Mutable pointer to the field.
241    // If field is not initialized, it is initialized with default value first.
242    pub fn mut_servo(&mut self) -> &mut super::io::ServoParams {
243        if self.servo.is_none() {
244            self.servo.set_default();
245        }
246        self.servo.as_mut().unwrap()
247    }
248
249    // Take field
250    pub fn take_servo(&mut self) -> super::io::ServoParams {
251        self.servo.take().unwrap_or_else(|| super::io::ServoParams::new())
252    }
253
254    // .matrix_io.malos.v1.io.GpioParams gpio = 8;
255
256
257    pub fn get_gpio(&self) -> &super::io::GpioParams {
258        self.gpio.as_ref().unwrap_or_else(|| <super::io::GpioParams as ::protobuf::Message>::default_instance())
259    }
260    pub fn clear_gpio(&mut self) {
261        self.gpio.clear();
262    }
263
264    pub fn has_gpio(&self) -> bool {
265        self.gpio.is_some()
266    }
267
268    // Param is passed by value, moved
269    pub fn set_gpio(&mut self, v: super::io::GpioParams) {
270        self.gpio = ::protobuf::SingularPtrField::some(v);
271    }
272
273    // Mutable pointer to the field.
274    // If field is not initialized, it is initialized with default value first.
275    pub fn mut_gpio(&mut self) -> &mut super::io::GpioParams {
276        if self.gpio.is_none() {
277            self.gpio.set_default();
278        }
279        self.gpio.as_mut().unwrap()
280    }
281
282    // Take field
283    pub fn take_gpio(&mut self) -> super::io::GpioParams {
284        self.gpio.take().unwrap_or_else(|| super::io::GpioParams::new())
285    }
286
287    // .matrix_io.malos.v1.sense.HumidityParams humidity = 9;
288
289
290    pub fn get_humidity(&self) -> &super::sense::HumidityParams {
291        self.humidity.as_ref().unwrap_or_else(|| <super::sense::HumidityParams as ::protobuf::Message>::default_instance())
292    }
293    pub fn clear_humidity(&mut self) {
294        self.humidity.clear();
295    }
296
297    pub fn has_humidity(&self) -> bool {
298        self.humidity.is_some()
299    }
300
301    // Param is passed by value, moved
302    pub fn set_humidity(&mut self, v: super::sense::HumidityParams) {
303        self.humidity = ::protobuf::SingularPtrField::some(v);
304    }
305
306    // Mutable pointer to the field.
307    // If field is not initialized, it is initialized with default value first.
308    pub fn mut_humidity(&mut self) -> &mut super::sense::HumidityParams {
309        if self.humidity.is_none() {
310            self.humidity.set_default();
311        }
312        self.humidity.as_mut().unwrap()
313    }
314
315    // Take field
316    pub fn take_humidity(&mut self) -> super::sense::HumidityParams {
317        self.humidity.take().unwrap_or_else(|| super::sense::HumidityParams::new())
318    }
319
320    // .matrix_io.malos.v1.io.MicArrayParams micarray = 10;
321
322
323    pub fn get_micarray(&self) -> &super::io::MicArrayParams {
324        self.micarray.as_ref().unwrap_or_else(|| <super::io::MicArrayParams as ::protobuf::Message>::default_instance())
325    }
326    pub fn clear_micarray(&mut self) {
327        self.micarray.clear();
328    }
329
330    pub fn has_micarray(&self) -> bool {
331        self.micarray.is_some()
332    }
333
334    // Param is passed by value, moved
335    pub fn set_micarray(&mut self, v: super::io::MicArrayParams) {
336        self.micarray = ::protobuf::SingularPtrField::some(v);
337    }
338
339    // Mutable pointer to the field.
340    // If field is not initialized, it is initialized with default value first.
341    pub fn mut_micarray(&mut self) -> &mut super::io::MicArrayParams {
342        if self.micarray.is_none() {
343            self.micarray.set_default();
344        }
345        self.micarray.as_mut().unwrap()
346    }
347
348    // Take field
349    pub fn take_micarray(&mut self) -> super::io::MicArrayParams {
350        self.micarray.take().unwrap_or_else(|| super::io::MicArrayParams::new())
351    }
352
353    // .matrix_io.malos.v1.comm.ZWaveMsg zwave = 11;
354
355
356    pub fn get_zwave(&self) -> &super::comm::ZWaveMsg {
357        self.zwave.as_ref().unwrap_or_else(|| <super::comm::ZWaveMsg as ::protobuf::Message>::default_instance())
358    }
359    pub fn clear_zwave(&mut self) {
360        self.zwave.clear();
361    }
362
363    pub fn has_zwave(&self) -> bool {
364        self.zwave.is_some()
365    }
366
367    // Param is passed by value, moved
368    pub fn set_zwave(&mut self, v: super::comm::ZWaveMsg) {
369        self.zwave = ::protobuf::SingularPtrField::some(v);
370    }
371
372    // Mutable pointer to the field.
373    // If field is not initialized, it is initialized with default value first.
374    pub fn mut_zwave(&mut self) -> &mut super::comm::ZWaveMsg {
375        if self.zwave.is_none() {
376            self.zwave.set_default();
377        }
378        self.zwave.as_mut().unwrap()
379    }
380
381    // Take field
382    pub fn take_zwave(&mut self) -> super::comm::ZWaveMsg {
383        self.zwave.take().unwrap_or_else(|| super::comm::ZWaveMsg::new())
384    }
385
386    // .matrix_io.malos.v1.io.WakeWordParams wakeword = 12;
387
388
389    pub fn get_wakeword(&self) -> &super::io::WakeWordParams {
390        self.wakeword.as_ref().unwrap_or_else(|| <super::io::WakeWordParams as ::protobuf::Message>::default_instance())
391    }
392    pub fn clear_wakeword(&mut self) {
393        self.wakeword.clear();
394    }
395
396    pub fn has_wakeword(&self) -> bool {
397        self.wakeword.is_some()
398    }
399
400    // Param is passed by value, moved
401    pub fn set_wakeword(&mut self, v: super::io::WakeWordParams) {
402        self.wakeword = ::protobuf::SingularPtrField::some(v);
403    }
404
405    // Mutable pointer to the field.
406    // If field is not initialized, it is initialized with default value first.
407    pub fn mut_wakeword(&mut self) -> &mut super::io::WakeWordParams {
408        if self.wakeword.is_none() {
409            self.wakeword.set_default();
410        }
411        self.wakeword.as_mut().unwrap()
412    }
413
414    // Take field
415    pub fn take_wakeword(&mut self) -> super::io::WakeWordParams {
416        self.wakeword.take().unwrap_or_else(|| super::io::WakeWordParams::new())
417    }
418
419    // .matrix_io.malos.v1.io.MatrixDeviceParams matrix_device = 13;
420
421
422    pub fn get_matrix_device(&self) -> &super::io::MatrixDeviceParams {
423        self.matrix_device.as_ref().unwrap_or_else(|| <super::io::MatrixDeviceParams as ::protobuf::Message>::default_instance())
424    }
425    pub fn clear_matrix_device(&mut self) {
426        self.matrix_device.clear();
427    }
428
429    pub fn has_matrix_device(&self) -> bool {
430        self.matrix_device.is_some()
431    }
432
433    // Param is passed by value, moved
434    pub fn set_matrix_device(&mut self, v: super::io::MatrixDeviceParams) {
435        self.matrix_device = ::protobuf::SingularPtrField::some(v);
436    }
437
438    // Mutable pointer to the field.
439    // If field is not initialized, it is initialized with default value first.
440    pub fn mut_matrix_device(&mut self) -> &mut super::io::MatrixDeviceParams {
441        if self.matrix_device.is_none() {
442            self.matrix_device.set_default();
443        }
444        self.matrix_device.as_mut().unwrap()
445    }
446
447    // Take field
448    pub fn take_matrix_device(&mut self) -> super::io::MatrixDeviceParams {
449        self.matrix_device.take().unwrap_or_else(|| super::io::MatrixDeviceParams::new())
450    }
451
452    // string uuid = 14;
453
454
455    pub fn get_uuid(&self) -> &str {
456        &self.uuid
457    }
458    pub fn clear_uuid(&mut self) {
459        self.uuid.clear();
460    }
461
462    // Param is passed by value, moved
463    pub fn set_uuid(&mut self, v: ::std::string::String) {
464        self.uuid = v;
465    }
466
467    // Mutable pointer to the field.
468    // If field is not initialized, it is initialized with default value first.
469    pub fn mut_uuid(&mut self) -> &mut ::std::string::String {
470        &mut self.uuid
471    }
472
473    // Take field
474    pub fn take_uuid(&mut self) -> ::std::string::String {
475        ::std::mem::replace(&mut self.uuid, ::std::string::String::new())
476    }
477}
478
479impl ::protobuf::Message for DriverConfig {
480    fn is_initialized(&self) -> bool {
481        for v in &self.image {
482            if !v.is_initialized() {
483                return false;
484            }
485        };
486        for v in &self.malos_eye_config {
487            if !v.is_initialized() {
488                return false;
489            }
490        };
491        for v in &self.zigbee_message {
492            if !v.is_initialized() {
493                return false;
494            }
495        };
496        for v in &self.lirc {
497            if !v.is_initialized() {
498                return false;
499            }
500        };
501        for v in &self.servo {
502            if !v.is_initialized() {
503                return false;
504            }
505        };
506        for v in &self.gpio {
507            if !v.is_initialized() {
508                return false;
509            }
510        };
511        for v in &self.humidity {
512            if !v.is_initialized() {
513                return false;
514            }
515        };
516        for v in &self.micarray {
517            if !v.is_initialized() {
518                return false;
519            }
520        };
521        for v in &self.zwave {
522            if !v.is_initialized() {
523                return false;
524            }
525        };
526        for v in &self.wakeword {
527            if !v.is_initialized() {
528                return false;
529            }
530        };
531        for v in &self.matrix_device {
532            if !v.is_initialized() {
533                return false;
534            }
535        };
536        true
537    }
538
539    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
540        while !is.eof()? {
541            let (field_number, wire_type) = is.read_tag_unpack()?;
542            match field_number {
543                1 => {
544                    if wire_type != ::protobuf::wire_format::WireTypeFixed32 {
545                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
546                    }
547                    let tmp = is.read_float()?;
548                    self.delay_between_updates = tmp;
549                },
550                2 => {
551                    if wire_type != ::protobuf::wire_format::WireTypeFixed32 {
552                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
553                    }
554                    let tmp = is.read_float()?;
555                    self.timeout_after_last_ping = tmp;
556                },
557                3 => {
558                    ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.image)?;
559                },
560                4 => {
561                    ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.malos_eye_config)?;
562                },
563                5 => {
564                    ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.zigbee_message)?;
565                },
566                6 => {
567                    ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.lirc)?;
568                },
569                7 => {
570                    ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.servo)?;
571                },
572                8 => {
573                    ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.gpio)?;
574                },
575                9 => {
576                    ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.humidity)?;
577                },
578                10 => {
579                    ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.micarray)?;
580                },
581                11 => {
582                    ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.zwave)?;
583                },
584                12 => {
585                    ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.wakeword)?;
586                },
587                13 => {
588                    ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.matrix_device)?;
589                },
590                14 => {
591                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.uuid)?;
592                },
593                _ => {
594                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
595                },
596            };
597        }
598        ::std::result::Result::Ok(())
599    }
600
601    // Compute sizes of nested messages
602    #[allow(unused_variables)]
603    fn compute_size(&self) -> u32 {
604        let mut my_size = 0;
605        if self.delay_between_updates != 0. {
606            my_size += 5;
607        }
608        if self.timeout_after_last_ping != 0. {
609            my_size += 5;
610        }
611        if let Some(ref v) = self.image.as_ref() {
612            let len = v.compute_size();
613            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
614        }
615        if let Some(ref v) = self.malos_eye_config.as_ref() {
616            let len = v.compute_size();
617            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
618        }
619        if let Some(ref v) = self.zigbee_message.as_ref() {
620            let len = v.compute_size();
621            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
622        }
623        if let Some(ref v) = self.lirc.as_ref() {
624            let len = v.compute_size();
625            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
626        }
627        if let Some(ref v) = self.servo.as_ref() {
628            let len = v.compute_size();
629            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
630        }
631        if let Some(ref v) = self.gpio.as_ref() {
632            let len = v.compute_size();
633            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
634        }
635        if let Some(ref v) = self.humidity.as_ref() {
636            let len = v.compute_size();
637            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
638        }
639        if let Some(ref v) = self.micarray.as_ref() {
640            let len = v.compute_size();
641            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
642        }
643        if let Some(ref v) = self.zwave.as_ref() {
644            let len = v.compute_size();
645            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
646        }
647        if let Some(ref v) = self.wakeword.as_ref() {
648            let len = v.compute_size();
649            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
650        }
651        if let Some(ref v) = self.matrix_device.as_ref() {
652            let len = v.compute_size();
653            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
654        }
655        if !self.uuid.is_empty() {
656            my_size += ::protobuf::rt::string_size(14, &self.uuid);
657        }
658        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
659        self.cached_size.set(my_size);
660        my_size
661    }
662
663    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
664        if self.delay_between_updates != 0. {
665            os.write_float(1, self.delay_between_updates)?;
666        }
667        if self.timeout_after_last_ping != 0. {
668            os.write_float(2, self.timeout_after_last_ping)?;
669        }
670        if let Some(ref v) = self.image.as_ref() {
671            os.write_tag(3, ::protobuf::wire_format::WireTypeLengthDelimited)?;
672            os.write_raw_varint32(v.get_cached_size())?;
673            v.write_to_with_cached_sizes(os)?;
674        }
675        if let Some(ref v) = self.malos_eye_config.as_ref() {
676            os.write_tag(4, ::protobuf::wire_format::WireTypeLengthDelimited)?;
677            os.write_raw_varint32(v.get_cached_size())?;
678            v.write_to_with_cached_sizes(os)?;
679        }
680        if let Some(ref v) = self.zigbee_message.as_ref() {
681            os.write_tag(5, ::protobuf::wire_format::WireTypeLengthDelimited)?;
682            os.write_raw_varint32(v.get_cached_size())?;
683            v.write_to_with_cached_sizes(os)?;
684        }
685        if let Some(ref v) = self.lirc.as_ref() {
686            os.write_tag(6, ::protobuf::wire_format::WireTypeLengthDelimited)?;
687            os.write_raw_varint32(v.get_cached_size())?;
688            v.write_to_with_cached_sizes(os)?;
689        }
690        if let Some(ref v) = self.servo.as_ref() {
691            os.write_tag(7, ::protobuf::wire_format::WireTypeLengthDelimited)?;
692            os.write_raw_varint32(v.get_cached_size())?;
693            v.write_to_with_cached_sizes(os)?;
694        }
695        if let Some(ref v) = self.gpio.as_ref() {
696            os.write_tag(8, ::protobuf::wire_format::WireTypeLengthDelimited)?;
697            os.write_raw_varint32(v.get_cached_size())?;
698            v.write_to_with_cached_sizes(os)?;
699        }
700        if let Some(ref v) = self.humidity.as_ref() {
701            os.write_tag(9, ::protobuf::wire_format::WireTypeLengthDelimited)?;
702            os.write_raw_varint32(v.get_cached_size())?;
703            v.write_to_with_cached_sizes(os)?;
704        }
705        if let Some(ref v) = self.micarray.as_ref() {
706            os.write_tag(10, ::protobuf::wire_format::WireTypeLengthDelimited)?;
707            os.write_raw_varint32(v.get_cached_size())?;
708            v.write_to_with_cached_sizes(os)?;
709        }
710        if let Some(ref v) = self.zwave.as_ref() {
711            os.write_tag(11, ::protobuf::wire_format::WireTypeLengthDelimited)?;
712            os.write_raw_varint32(v.get_cached_size())?;
713            v.write_to_with_cached_sizes(os)?;
714        }
715        if let Some(ref v) = self.wakeword.as_ref() {
716            os.write_tag(12, ::protobuf::wire_format::WireTypeLengthDelimited)?;
717            os.write_raw_varint32(v.get_cached_size())?;
718            v.write_to_with_cached_sizes(os)?;
719        }
720        if let Some(ref v) = self.matrix_device.as_ref() {
721            os.write_tag(13, ::protobuf::wire_format::WireTypeLengthDelimited)?;
722            os.write_raw_varint32(v.get_cached_size())?;
723            v.write_to_with_cached_sizes(os)?;
724        }
725        if !self.uuid.is_empty() {
726            os.write_string(14, &self.uuid)?;
727        }
728        os.write_unknown_fields(self.get_unknown_fields())?;
729        ::std::result::Result::Ok(())
730    }
731
732    fn get_cached_size(&self) -> u32 {
733        self.cached_size.get()
734    }
735
736    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
737        &self.unknown_fields
738    }
739
740    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
741        &mut self.unknown_fields
742    }
743
744    fn as_any(&self) -> &dyn (::std::any::Any) {
745        self as &dyn (::std::any::Any)
746    }
747    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
748        self as &mut dyn (::std::any::Any)
749    }
750    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
751        self
752    }
753
754    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
755        Self::descriptor_static()
756    }
757
758    fn new() -> DriverConfig {
759        DriverConfig::new()
760    }
761
762    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
763        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
764        descriptor.get(|| {
765            let mut fields = ::std::vec::Vec::new();
766            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeFloat>(
767                "delay_between_updates",
768                |m: &DriverConfig| { &m.delay_between_updates },
769                |m: &mut DriverConfig| { &mut m.delay_between_updates },
770            ));
771            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeFloat>(
772                "timeout_after_last_ping",
773                |m: &DriverConfig| { &m.timeout_after_last_ping },
774                |m: &mut DriverConfig| { &mut m.timeout_after_last_ping },
775            ));
776            fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<super::io::EverloopImage>>(
777                "image",
778                |m: &DriverConfig| { &m.image },
779                |m: &mut DriverConfig| { &mut m.image },
780            ));
781            fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<super::maloseye::MalosEyeConfig>>(
782                "malos_eye_config",
783                |m: &DriverConfig| { &m.malos_eye_config },
784                |m: &mut DriverConfig| { &mut m.malos_eye_config },
785            ));
786            fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<super::comm::ZigBeeMsg>>(
787                "zigbee_message",
788                |m: &DriverConfig| { &m.zigbee_message },
789                |m: &mut DriverConfig| { &mut m.zigbee_message },
790            ));
791            fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<super::comm::LircParams>>(
792                "lirc",
793                |m: &DriverConfig| { &m.lirc },
794                |m: &mut DriverConfig| { &mut m.lirc },
795            ));
796            fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<super::io::ServoParams>>(
797                "servo",
798                |m: &DriverConfig| { &m.servo },
799                |m: &mut DriverConfig| { &mut m.servo },
800            ));
801            fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<super::io::GpioParams>>(
802                "gpio",
803                |m: &DriverConfig| { &m.gpio },
804                |m: &mut DriverConfig| { &mut m.gpio },
805            ));
806            fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<super::sense::HumidityParams>>(
807                "humidity",
808                |m: &DriverConfig| { &m.humidity },
809                |m: &mut DriverConfig| { &mut m.humidity },
810            ));
811            fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<super::io::MicArrayParams>>(
812                "micarray",
813                |m: &DriverConfig| { &m.micarray },
814                |m: &mut DriverConfig| { &mut m.micarray },
815            ));
816            fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<super::comm::ZWaveMsg>>(
817                "zwave",
818                |m: &DriverConfig| { &m.zwave },
819                |m: &mut DriverConfig| { &mut m.zwave },
820            ));
821            fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<super::io::WakeWordParams>>(
822                "wakeword",
823                |m: &DriverConfig| { &m.wakeword },
824                |m: &mut DriverConfig| { &mut m.wakeword },
825            ));
826            fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<super::io::MatrixDeviceParams>>(
827                "matrix_device",
828                |m: &DriverConfig| { &m.matrix_device },
829                |m: &mut DriverConfig| { &mut m.matrix_device },
830            ));
831            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
832                "uuid",
833                |m: &DriverConfig| { &m.uuid },
834                |m: &mut DriverConfig| { &mut m.uuid },
835            ));
836            ::protobuf::reflect::MessageDescriptor::new_pb_name::<DriverConfig>(
837                "DriverConfig",
838                fields,
839                file_descriptor_proto()
840            )
841        })
842    }
843
844    fn default_instance() -> &'static DriverConfig {
845        static instance: ::protobuf::rt::LazyV2<DriverConfig> = ::protobuf::rt::LazyV2::INIT;
846        instance.get(DriverConfig::new)
847    }
848}
849
850impl ::protobuf::Clear for DriverConfig {
851    fn clear(&mut self) {
852        self.delay_between_updates = 0.;
853        self.timeout_after_last_ping = 0.;
854        self.image.clear();
855        self.malos_eye_config.clear();
856        self.zigbee_message.clear();
857        self.lirc.clear();
858        self.servo.clear();
859        self.gpio.clear();
860        self.humidity.clear();
861        self.micarray.clear();
862        self.zwave.clear();
863        self.wakeword.clear();
864        self.matrix_device.clear();
865        self.uuid.clear();
866        self.unknown_fields.clear();
867    }
868}
869
870impl ::std::fmt::Debug for DriverConfig {
871    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
872        ::protobuf::text_format::fmt(self, f)
873    }
874}
875
876impl ::protobuf::reflect::ProtobufValue for DriverConfig {
877    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
878        ::protobuf::reflect::ReflectValueRef::Message(self)
879    }
880}
881
882#[derive(PartialEq,Clone,Default)]
883pub struct DriverInfo {
884    // message fields
885    pub driver_name: ::std::string::String,
886    pub base_port: i32,
887    pub provides_updates: bool,
888    pub delay_between_updates: i32,
889    pub needs_pings: bool,
890    pub timeout_after_last_ping: i32,
891    pub notes_for_human: ::std::string::String,
892    // special fields
893    pub unknown_fields: ::protobuf::UnknownFields,
894    pub cached_size: ::protobuf::CachedSize,
895}
896
897impl<'a> ::std::default::Default for &'a DriverInfo {
898    fn default() -> &'a DriverInfo {
899        <DriverInfo as ::protobuf::Message>::default_instance()
900    }
901}
902
903impl DriverInfo {
904    pub fn new() -> DriverInfo {
905        ::std::default::Default::default()
906    }
907
908    // string driver_name = 1;
909
910
911    pub fn get_driver_name(&self) -> &str {
912        &self.driver_name
913    }
914    pub fn clear_driver_name(&mut self) {
915        self.driver_name.clear();
916    }
917
918    // Param is passed by value, moved
919    pub fn set_driver_name(&mut self, v: ::std::string::String) {
920        self.driver_name = v;
921    }
922
923    // Mutable pointer to the field.
924    // If field is not initialized, it is initialized with default value first.
925    pub fn mut_driver_name(&mut self) -> &mut ::std::string::String {
926        &mut self.driver_name
927    }
928
929    // Take field
930    pub fn take_driver_name(&mut self) -> ::std::string::String {
931        ::std::mem::replace(&mut self.driver_name, ::std::string::String::new())
932    }
933
934    // int32 base_port = 2;
935
936
937    pub fn get_base_port(&self) -> i32 {
938        self.base_port
939    }
940    pub fn clear_base_port(&mut self) {
941        self.base_port = 0;
942    }
943
944    // Param is passed by value, moved
945    pub fn set_base_port(&mut self, v: i32) {
946        self.base_port = v;
947    }
948
949    // bool provides_updates = 3;
950
951
952    pub fn get_provides_updates(&self) -> bool {
953        self.provides_updates
954    }
955    pub fn clear_provides_updates(&mut self) {
956        self.provides_updates = false;
957    }
958
959    // Param is passed by value, moved
960    pub fn set_provides_updates(&mut self, v: bool) {
961        self.provides_updates = v;
962    }
963
964    // int32 delay_between_updates = 4;
965
966
967    pub fn get_delay_between_updates(&self) -> i32 {
968        self.delay_between_updates
969    }
970    pub fn clear_delay_between_updates(&mut self) {
971        self.delay_between_updates = 0;
972    }
973
974    // Param is passed by value, moved
975    pub fn set_delay_between_updates(&mut self, v: i32) {
976        self.delay_between_updates = v;
977    }
978
979    // bool needs_pings = 5;
980
981
982    pub fn get_needs_pings(&self) -> bool {
983        self.needs_pings
984    }
985    pub fn clear_needs_pings(&mut self) {
986        self.needs_pings = false;
987    }
988
989    // Param is passed by value, moved
990    pub fn set_needs_pings(&mut self, v: bool) {
991        self.needs_pings = v;
992    }
993
994    // int32 timeout_after_last_ping = 6;
995
996
997    pub fn get_timeout_after_last_ping(&self) -> i32 {
998        self.timeout_after_last_ping
999    }
1000    pub fn clear_timeout_after_last_ping(&mut self) {
1001        self.timeout_after_last_ping = 0;
1002    }
1003
1004    // Param is passed by value, moved
1005    pub fn set_timeout_after_last_ping(&mut self, v: i32) {
1006        self.timeout_after_last_ping = v;
1007    }
1008
1009    // string notes_for_human = 7;
1010
1011
1012    pub fn get_notes_for_human(&self) -> &str {
1013        &self.notes_for_human
1014    }
1015    pub fn clear_notes_for_human(&mut self) {
1016        self.notes_for_human.clear();
1017    }
1018
1019    // Param is passed by value, moved
1020    pub fn set_notes_for_human(&mut self, v: ::std::string::String) {
1021        self.notes_for_human = v;
1022    }
1023
1024    // Mutable pointer to the field.
1025    // If field is not initialized, it is initialized with default value first.
1026    pub fn mut_notes_for_human(&mut self) -> &mut ::std::string::String {
1027        &mut self.notes_for_human
1028    }
1029
1030    // Take field
1031    pub fn take_notes_for_human(&mut self) -> ::std::string::String {
1032        ::std::mem::replace(&mut self.notes_for_human, ::std::string::String::new())
1033    }
1034}
1035
1036impl ::protobuf::Message for DriverInfo {
1037    fn is_initialized(&self) -> bool {
1038        true
1039    }
1040
1041    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
1042        while !is.eof()? {
1043            let (field_number, wire_type) = is.read_tag_unpack()?;
1044            match field_number {
1045                1 => {
1046                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.driver_name)?;
1047                },
1048                2 => {
1049                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
1050                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
1051                    }
1052                    let tmp = is.read_int32()?;
1053                    self.base_port = tmp;
1054                },
1055                3 => {
1056                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
1057                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
1058                    }
1059                    let tmp = is.read_bool()?;
1060                    self.provides_updates = tmp;
1061                },
1062                4 => {
1063                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
1064                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
1065                    }
1066                    let tmp = is.read_int32()?;
1067                    self.delay_between_updates = tmp;
1068                },
1069                5 => {
1070                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
1071                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
1072                    }
1073                    let tmp = is.read_bool()?;
1074                    self.needs_pings = tmp;
1075                },
1076                6 => {
1077                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
1078                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
1079                    }
1080                    let tmp = is.read_int32()?;
1081                    self.timeout_after_last_ping = tmp;
1082                },
1083                7 => {
1084                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.notes_for_human)?;
1085                },
1086                _ => {
1087                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
1088                },
1089            };
1090        }
1091        ::std::result::Result::Ok(())
1092    }
1093
1094    // Compute sizes of nested messages
1095    #[allow(unused_variables)]
1096    fn compute_size(&self) -> u32 {
1097        let mut my_size = 0;
1098        if !self.driver_name.is_empty() {
1099            my_size += ::protobuf::rt::string_size(1, &self.driver_name);
1100        }
1101        if self.base_port != 0 {
1102            my_size += ::protobuf::rt::value_size(2, self.base_port, ::protobuf::wire_format::WireTypeVarint);
1103        }
1104        if self.provides_updates != false {
1105            my_size += 2;
1106        }
1107        if self.delay_between_updates != 0 {
1108            my_size += ::protobuf::rt::value_size(4, self.delay_between_updates, ::protobuf::wire_format::WireTypeVarint);
1109        }
1110        if self.needs_pings != false {
1111            my_size += 2;
1112        }
1113        if self.timeout_after_last_ping != 0 {
1114            my_size += ::protobuf::rt::value_size(6, self.timeout_after_last_ping, ::protobuf::wire_format::WireTypeVarint);
1115        }
1116        if !self.notes_for_human.is_empty() {
1117            my_size += ::protobuf::rt::string_size(7, &self.notes_for_human);
1118        }
1119        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
1120        self.cached_size.set(my_size);
1121        my_size
1122    }
1123
1124    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
1125        if !self.driver_name.is_empty() {
1126            os.write_string(1, &self.driver_name)?;
1127        }
1128        if self.base_port != 0 {
1129            os.write_int32(2, self.base_port)?;
1130        }
1131        if self.provides_updates != false {
1132            os.write_bool(3, self.provides_updates)?;
1133        }
1134        if self.delay_between_updates != 0 {
1135            os.write_int32(4, self.delay_between_updates)?;
1136        }
1137        if self.needs_pings != false {
1138            os.write_bool(5, self.needs_pings)?;
1139        }
1140        if self.timeout_after_last_ping != 0 {
1141            os.write_int32(6, self.timeout_after_last_ping)?;
1142        }
1143        if !self.notes_for_human.is_empty() {
1144            os.write_string(7, &self.notes_for_human)?;
1145        }
1146        os.write_unknown_fields(self.get_unknown_fields())?;
1147        ::std::result::Result::Ok(())
1148    }
1149
1150    fn get_cached_size(&self) -> u32 {
1151        self.cached_size.get()
1152    }
1153
1154    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
1155        &self.unknown_fields
1156    }
1157
1158    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
1159        &mut self.unknown_fields
1160    }
1161
1162    fn as_any(&self) -> &dyn (::std::any::Any) {
1163        self as &dyn (::std::any::Any)
1164    }
1165    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
1166        self as &mut dyn (::std::any::Any)
1167    }
1168    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
1169        self
1170    }
1171
1172    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
1173        Self::descriptor_static()
1174    }
1175
1176    fn new() -> DriverInfo {
1177        DriverInfo::new()
1178    }
1179
1180    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
1181        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
1182        descriptor.get(|| {
1183            let mut fields = ::std::vec::Vec::new();
1184            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
1185                "driver_name",
1186                |m: &DriverInfo| { &m.driver_name },
1187                |m: &mut DriverInfo| { &mut m.driver_name },
1188            ));
1189            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeInt32>(
1190                "base_port",
1191                |m: &DriverInfo| { &m.base_port },
1192                |m: &mut DriverInfo| { &mut m.base_port },
1193            ));
1194            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeBool>(
1195                "provides_updates",
1196                |m: &DriverInfo| { &m.provides_updates },
1197                |m: &mut DriverInfo| { &mut m.provides_updates },
1198            ));
1199            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeInt32>(
1200                "delay_between_updates",
1201                |m: &DriverInfo| { &m.delay_between_updates },
1202                |m: &mut DriverInfo| { &mut m.delay_between_updates },
1203            ));
1204            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeBool>(
1205                "needs_pings",
1206                |m: &DriverInfo| { &m.needs_pings },
1207                |m: &mut DriverInfo| { &mut m.needs_pings },
1208            ));
1209            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeInt32>(
1210                "timeout_after_last_ping",
1211                |m: &DriverInfo| { &m.timeout_after_last_ping },
1212                |m: &mut DriverInfo| { &mut m.timeout_after_last_ping },
1213            ));
1214            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
1215                "notes_for_human",
1216                |m: &DriverInfo| { &m.notes_for_human },
1217                |m: &mut DriverInfo| { &mut m.notes_for_human },
1218            ));
1219            ::protobuf::reflect::MessageDescriptor::new_pb_name::<DriverInfo>(
1220                "DriverInfo",
1221                fields,
1222                file_descriptor_proto()
1223            )
1224        })
1225    }
1226
1227    fn default_instance() -> &'static DriverInfo {
1228        static instance: ::protobuf::rt::LazyV2<DriverInfo> = ::protobuf::rt::LazyV2::INIT;
1229        instance.get(DriverInfo::new)
1230    }
1231}
1232
1233impl ::protobuf::Clear for DriverInfo {
1234    fn clear(&mut self) {
1235        self.driver_name.clear();
1236        self.base_port = 0;
1237        self.provides_updates = false;
1238        self.delay_between_updates = 0;
1239        self.needs_pings = false;
1240        self.timeout_after_last_ping = 0;
1241        self.notes_for_human.clear();
1242        self.unknown_fields.clear();
1243    }
1244}
1245
1246impl ::std::fmt::Debug for DriverInfo {
1247    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1248        ::protobuf::text_format::fmt(self, f)
1249    }
1250}
1251
1252impl ::protobuf::reflect::ProtobufValue for DriverInfo {
1253    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
1254        ::protobuf::reflect::ReflectValueRef::Message(self)
1255    }
1256}
1257
1258#[derive(PartialEq,Clone,Default)]
1259pub struct MalosDriverInfo {
1260    // message fields
1261    pub info: ::protobuf::RepeatedField<DriverInfo>,
1262    // special fields
1263    pub unknown_fields: ::protobuf::UnknownFields,
1264    pub cached_size: ::protobuf::CachedSize,
1265}
1266
1267impl<'a> ::std::default::Default for &'a MalosDriverInfo {
1268    fn default() -> &'a MalosDriverInfo {
1269        <MalosDriverInfo as ::protobuf::Message>::default_instance()
1270    }
1271}
1272
1273impl MalosDriverInfo {
1274    pub fn new() -> MalosDriverInfo {
1275        ::std::default::Default::default()
1276    }
1277
1278    // repeated .matrix_io.malos.v1.driver.DriverInfo info = 1;
1279
1280
1281    pub fn get_info(&self) -> &[DriverInfo] {
1282        &self.info
1283    }
1284    pub fn clear_info(&mut self) {
1285        self.info.clear();
1286    }
1287
1288    // Param is passed by value, moved
1289    pub fn set_info(&mut self, v: ::protobuf::RepeatedField<DriverInfo>) {
1290        self.info = v;
1291    }
1292
1293    // Mutable pointer to the field.
1294    pub fn mut_info(&mut self) -> &mut ::protobuf::RepeatedField<DriverInfo> {
1295        &mut self.info
1296    }
1297
1298    // Take field
1299    pub fn take_info(&mut self) -> ::protobuf::RepeatedField<DriverInfo> {
1300        ::std::mem::replace(&mut self.info, ::protobuf::RepeatedField::new())
1301    }
1302}
1303
1304impl ::protobuf::Message for MalosDriverInfo {
1305    fn is_initialized(&self) -> bool {
1306        for v in &self.info {
1307            if !v.is_initialized() {
1308                return false;
1309            }
1310        };
1311        true
1312    }
1313
1314    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
1315        while !is.eof()? {
1316            let (field_number, wire_type) = is.read_tag_unpack()?;
1317            match field_number {
1318                1 => {
1319                    ::protobuf::rt::read_repeated_message_into(wire_type, is, &mut self.info)?;
1320                },
1321                _ => {
1322                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
1323                },
1324            };
1325        }
1326        ::std::result::Result::Ok(())
1327    }
1328
1329    // Compute sizes of nested messages
1330    #[allow(unused_variables)]
1331    fn compute_size(&self) -> u32 {
1332        let mut my_size = 0;
1333        for value in &self.info {
1334            let len = value.compute_size();
1335            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
1336        };
1337        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
1338        self.cached_size.set(my_size);
1339        my_size
1340    }
1341
1342    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
1343        for v in &self.info {
1344            os.write_tag(1, ::protobuf::wire_format::WireTypeLengthDelimited)?;
1345            os.write_raw_varint32(v.get_cached_size())?;
1346            v.write_to_with_cached_sizes(os)?;
1347        };
1348        os.write_unknown_fields(self.get_unknown_fields())?;
1349        ::std::result::Result::Ok(())
1350    }
1351
1352    fn get_cached_size(&self) -> u32 {
1353        self.cached_size.get()
1354    }
1355
1356    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
1357        &self.unknown_fields
1358    }
1359
1360    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
1361        &mut self.unknown_fields
1362    }
1363
1364    fn as_any(&self) -> &dyn (::std::any::Any) {
1365        self as &dyn (::std::any::Any)
1366    }
1367    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
1368        self as &mut dyn (::std::any::Any)
1369    }
1370    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
1371        self
1372    }
1373
1374    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
1375        Self::descriptor_static()
1376    }
1377
1378    fn new() -> MalosDriverInfo {
1379        MalosDriverInfo::new()
1380    }
1381
1382    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
1383        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
1384        descriptor.get(|| {
1385            let mut fields = ::std::vec::Vec::new();
1386            fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<DriverInfo>>(
1387                "info",
1388                |m: &MalosDriverInfo| { &m.info },
1389                |m: &mut MalosDriverInfo| { &mut m.info },
1390            ));
1391            ::protobuf::reflect::MessageDescriptor::new_pb_name::<MalosDriverInfo>(
1392                "MalosDriverInfo",
1393                fields,
1394                file_descriptor_proto()
1395            )
1396        })
1397    }
1398
1399    fn default_instance() -> &'static MalosDriverInfo {
1400        static instance: ::protobuf::rt::LazyV2<MalosDriverInfo> = ::protobuf::rt::LazyV2::INIT;
1401        instance.get(MalosDriverInfo::new)
1402    }
1403}
1404
1405impl ::protobuf::Clear for MalosDriverInfo {
1406    fn clear(&mut self) {
1407        self.info.clear();
1408        self.unknown_fields.clear();
1409    }
1410}
1411
1412impl ::std::fmt::Debug for MalosDriverInfo {
1413    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1414        ::protobuf::text_format::fmt(self, f)
1415    }
1416}
1417
1418impl ::protobuf::reflect::ProtobufValue for MalosDriverInfo {
1419    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
1420        ::protobuf::reflect::ReflectValueRef::Message(self)
1421    }
1422}
1423
1424#[derive(PartialEq,Clone,Default)]
1425pub struct Status {
1426    // message fields
1427    pub field_type: Status_MessageType,
1428    pub uuid: ::std::string::String,
1429    pub message: ::std::string::String,
1430    // special fields
1431    pub unknown_fields: ::protobuf::UnknownFields,
1432    pub cached_size: ::protobuf::CachedSize,
1433}
1434
1435impl<'a> ::std::default::Default for &'a Status {
1436    fn default() -> &'a Status {
1437        <Status as ::protobuf::Message>::default_instance()
1438    }
1439}
1440
1441impl Status {
1442    pub fn new() -> Status {
1443        ::std::default::Default::default()
1444    }
1445
1446    // .matrix_io.malos.v1.driver.Status.MessageType type = 1;
1447
1448
1449    pub fn get_field_type(&self) -> Status_MessageType {
1450        self.field_type
1451    }
1452    pub fn clear_field_type(&mut self) {
1453        self.field_type = Status_MessageType::MESSAGE_TYPE_NOT_DEFINED;
1454    }
1455
1456    // Param is passed by value, moved
1457    pub fn set_field_type(&mut self, v: Status_MessageType) {
1458        self.field_type = v;
1459    }
1460
1461    // string uuid = 2;
1462
1463
1464    pub fn get_uuid(&self) -> &str {
1465        &self.uuid
1466    }
1467    pub fn clear_uuid(&mut self) {
1468        self.uuid.clear();
1469    }
1470
1471    // Param is passed by value, moved
1472    pub fn set_uuid(&mut self, v: ::std::string::String) {
1473        self.uuid = v;
1474    }
1475
1476    // Mutable pointer to the field.
1477    // If field is not initialized, it is initialized with default value first.
1478    pub fn mut_uuid(&mut self) -> &mut ::std::string::String {
1479        &mut self.uuid
1480    }
1481
1482    // Take field
1483    pub fn take_uuid(&mut self) -> ::std::string::String {
1484        ::std::mem::replace(&mut self.uuid, ::std::string::String::new())
1485    }
1486
1487    // string message = 3;
1488
1489
1490    pub fn get_message(&self) -> &str {
1491        &self.message
1492    }
1493    pub fn clear_message(&mut self) {
1494        self.message.clear();
1495    }
1496
1497    // Param is passed by value, moved
1498    pub fn set_message(&mut self, v: ::std::string::String) {
1499        self.message = v;
1500    }
1501
1502    // Mutable pointer to the field.
1503    // If field is not initialized, it is initialized with default value first.
1504    pub fn mut_message(&mut self) -> &mut ::std::string::String {
1505        &mut self.message
1506    }
1507
1508    // Take field
1509    pub fn take_message(&mut self) -> ::std::string::String {
1510        ::std::mem::replace(&mut self.message, ::std::string::String::new())
1511    }
1512}
1513
1514impl ::protobuf::Message for Status {
1515    fn is_initialized(&self) -> bool {
1516        true
1517    }
1518
1519    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
1520        while !is.eof()? {
1521            let (field_number, wire_type) = is.read_tag_unpack()?;
1522            match field_number {
1523                1 => {
1524                    ::protobuf::rt::read_proto3_enum_with_unknown_fields_into(wire_type, is, &mut self.field_type, 1, &mut self.unknown_fields)?
1525                },
1526                2 => {
1527                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.uuid)?;
1528                },
1529                3 => {
1530                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.message)?;
1531                },
1532                _ => {
1533                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
1534                },
1535            };
1536        }
1537        ::std::result::Result::Ok(())
1538    }
1539
1540    // Compute sizes of nested messages
1541    #[allow(unused_variables)]
1542    fn compute_size(&self) -> u32 {
1543        let mut my_size = 0;
1544        if self.field_type != Status_MessageType::MESSAGE_TYPE_NOT_DEFINED {
1545            my_size += ::protobuf::rt::enum_size(1, self.field_type);
1546        }
1547        if !self.uuid.is_empty() {
1548            my_size += ::protobuf::rt::string_size(2, &self.uuid);
1549        }
1550        if !self.message.is_empty() {
1551            my_size += ::protobuf::rt::string_size(3, &self.message);
1552        }
1553        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
1554        self.cached_size.set(my_size);
1555        my_size
1556    }
1557
1558    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
1559        if self.field_type != Status_MessageType::MESSAGE_TYPE_NOT_DEFINED {
1560            os.write_enum(1, ::protobuf::ProtobufEnum::value(&self.field_type))?;
1561        }
1562        if !self.uuid.is_empty() {
1563            os.write_string(2, &self.uuid)?;
1564        }
1565        if !self.message.is_empty() {
1566            os.write_string(3, &self.message)?;
1567        }
1568        os.write_unknown_fields(self.get_unknown_fields())?;
1569        ::std::result::Result::Ok(())
1570    }
1571
1572    fn get_cached_size(&self) -> u32 {
1573        self.cached_size.get()
1574    }
1575
1576    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
1577        &self.unknown_fields
1578    }
1579
1580    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
1581        &mut self.unknown_fields
1582    }
1583
1584    fn as_any(&self) -> &dyn (::std::any::Any) {
1585        self as &dyn (::std::any::Any)
1586    }
1587    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
1588        self as &mut dyn (::std::any::Any)
1589    }
1590    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
1591        self
1592    }
1593
1594    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
1595        Self::descriptor_static()
1596    }
1597
1598    fn new() -> Status {
1599        Status::new()
1600    }
1601
1602    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
1603        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
1604        descriptor.get(|| {
1605            let mut fields = ::std::vec::Vec::new();
1606            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeEnum<Status_MessageType>>(
1607                "type",
1608                |m: &Status| { &m.field_type },
1609                |m: &mut Status| { &mut m.field_type },
1610            ));
1611            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
1612                "uuid",
1613                |m: &Status| { &m.uuid },
1614                |m: &mut Status| { &mut m.uuid },
1615            ));
1616            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
1617                "message",
1618                |m: &Status| { &m.message },
1619                |m: &mut Status| { &mut m.message },
1620            ));
1621            ::protobuf::reflect::MessageDescriptor::new_pb_name::<Status>(
1622                "Status",
1623                fields,
1624                file_descriptor_proto()
1625            )
1626        })
1627    }
1628
1629    fn default_instance() -> &'static Status {
1630        static instance: ::protobuf::rt::LazyV2<Status> = ::protobuf::rt::LazyV2::INIT;
1631        instance.get(Status::new)
1632    }
1633}
1634
1635impl ::protobuf::Clear for Status {
1636    fn clear(&mut self) {
1637        self.field_type = Status_MessageType::MESSAGE_TYPE_NOT_DEFINED;
1638        self.uuid.clear();
1639        self.message.clear();
1640        self.unknown_fields.clear();
1641    }
1642}
1643
1644impl ::std::fmt::Debug for Status {
1645    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1646        ::protobuf::text_format::fmt(self, f)
1647    }
1648}
1649
1650impl ::protobuf::reflect::ProtobufValue for Status {
1651    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
1652        ::protobuf::reflect::ReflectValueRef::Message(self)
1653    }
1654}
1655
1656#[derive(Clone,PartialEq,Eq,Debug,Hash)]
1657pub enum Status_MessageType {
1658    MESSAGE_TYPE_NOT_DEFINED = 0,
1659    STARTED = 1,
1660    STOPPED = 2,
1661    CONFIG_RECEIVED = 3,
1662    COMMAND_EXECUTED = 4,
1663    STATUS_CRITICAL = 5,
1664    STATUS_ERROR = 6,
1665    STATUS_WARNING = 7,
1666    STATUS_INFO = 8,
1667    STATUS_DEBUG = 9,
1668}
1669
1670impl ::protobuf::ProtobufEnum for Status_MessageType {
1671    fn value(&self) -> i32 {
1672        *self as i32
1673    }
1674
1675    fn from_i32(value: i32) -> ::std::option::Option<Status_MessageType> {
1676        match value {
1677            0 => ::std::option::Option::Some(Status_MessageType::MESSAGE_TYPE_NOT_DEFINED),
1678            1 => ::std::option::Option::Some(Status_MessageType::STARTED),
1679            2 => ::std::option::Option::Some(Status_MessageType::STOPPED),
1680            3 => ::std::option::Option::Some(Status_MessageType::CONFIG_RECEIVED),
1681            4 => ::std::option::Option::Some(Status_MessageType::COMMAND_EXECUTED),
1682            5 => ::std::option::Option::Some(Status_MessageType::STATUS_CRITICAL),
1683            6 => ::std::option::Option::Some(Status_MessageType::STATUS_ERROR),
1684            7 => ::std::option::Option::Some(Status_MessageType::STATUS_WARNING),
1685            8 => ::std::option::Option::Some(Status_MessageType::STATUS_INFO),
1686            9 => ::std::option::Option::Some(Status_MessageType::STATUS_DEBUG),
1687            _ => ::std::option::Option::None
1688        }
1689    }
1690
1691    fn values() -> &'static [Self] {
1692        static values: &'static [Status_MessageType] = &[
1693            Status_MessageType::MESSAGE_TYPE_NOT_DEFINED,
1694            Status_MessageType::STARTED,
1695            Status_MessageType::STOPPED,
1696            Status_MessageType::CONFIG_RECEIVED,
1697            Status_MessageType::COMMAND_EXECUTED,
1698            Status_MessageType::STATUS_CRITICAL,
1699            Status_MessageType::STATUS_ERROR,
1700            Status_MessageType::STATUS_WARNING,
1701            Status_MessageType::STATUS_INFO,
1702            Status_MessageType::STATUS_DEBUG,
1703        ];
1704        values
1705    }
1706
1707    fn enum_descriptor_static() -> &'static ::protobuf::reflect::EnumDescriptor {
1708        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::EnumDescriptor> = ::protobuf::rt::LazyV2::INIT;
1709        descriptor.get(|| {
1710            ::protobuf::reflect::EnumDescriptor::new_pb_name::<Status_MessageType>("Status.MessageType", file_descriptor_proto())
1711        })
1712    }
1713}
1714
1715impl ::std::marker::Copy for Status_MessageType {
1716}
1717
1718impl ::std::default::Default for Status_MessageType {
1719    fn default() -> Self {
1720        Status_MessageType::MESSAGE_TYPE_NOT_DEFINED
1721    }
1722}
1723
1724impl ::protobuf::reflect::ProtobufValue for Status_MessageType {
1725    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
1726        ::protobuf::reflect::ReflectValueRef::Enum(::protobuf::ProtobufEnum::descriptor(self))
1727    }
1728}
1729
1730static file_descriptor_proto_data: &'static [u8] = b"\
1731    \n\x1fmatrix_io/malos/v1/driver.proto\x12\x19matrix_io.malos.v1.driver\
1732    \x1a\x1dmatrix_io/malos/v1/comm.proto\x1a\x1bmatrix_io/malos/v1/io.proto\
1733    \x1a!matrix_io/malos/v1/maloseye.proto\x1a\x1ematrix_io/malos/v1/sense.p\
1734    roto\"\x88\x07\n\x0cDriverConfig\x124\n\x15delay_between_updates\x18\x01\
1735    \x20\x01(\x02R\x13delayBetweenUpdatesB\0\x127\n\x17timeout_after_last_pi\
1736    ng\x18\x02\x20\x01(\x02R\x14timeoutAfterLastPingB\0\x12<\n\x05image\x18\
1737    \x03\x20\x01(\x0b2$.matrix_io.malos.v1.io.EverloopImageR\x05imageB\0\x12\
1738    W\n\x10malos_eye_config\x18\x04\x20\x01(\x0b2+.matrix_io.malos.v1.malose\
1739    ye.MalosEyeConfigR\x0emalosEyeConfigB\0\x12K\n\x0ezigbee_message\x18\x05\
1740    \x20\x01(\x0b2\".matrix_io.malos.v1.comm.ZigBeeMsgR\rzigbeeMessageB\0\
1741    \x129\n\x04lirc\x18\x06\x20\x01(\x0b2#.matrix_io.malos.v1.comm.LircParam\
1742    sR\x04lircB\0\x12:\n\x05servo\x18\x07\x20\x01(\x0b2\".matrix_io.malos.v1\
1743    .io.ServoParamsR\x05servoB\0\x127\n\x04gpio\x18\x08\x20\x01(\x0b2!.matri\
1744    x_io.malos.v1.io.GpioParamsR\x04gpioB\0\x12F\n\x08humidity\x18\t\x20\x01\
1745    (\x0b2(.matrix_io.malos.v1.sense.HumidityParamsR\x08humidityB\0\x12C\n\
1746    \x08micarray\x18\n\x20\x01(\x0b2%.matrix_io.malos.v1.io.MicArrayParamsR\
1747    \x08micarrayB\0\x129\n\x05zwave\x18\x0b\x20\x01(\x0b2!.matrix_io.malos.v\
1748    1.comm.ZWaveMsgR\x05zwaveB\0\x12C\n\x08wakeword\x18\x0c\x20\x01(\x0b2%.m\
1749    atrix_io.malos.v1.io.WakeWordParamsR\x08wakewordB\0\x12P\n\rmatrix_devic\
1750    e\x18\r\x20\x01(\x0b2).matrix_io.malos.v1.io.MatrixDeviceParamsR\x0cmatr\
1751    ixDeviceB\0\x12\x14\n\x04uuid\x18\x0e\x20\x01(\tR\x04uuidB\0:\0\"\xb9\
1752    \x02\n\nDriverInfo\x12!\n\x0bdriver_name\x18\x01\x20\x01(\tR\ndriverName\
1753    B\0\x12\x1d\n\tbase_port\x18\x02\x20\x01(\x05R\x08basePortB\0\x12+\n\x10\
1754    provides_updates\x18\x03\x20\x01(\x08R\x0fprovidesUpdatesB\0\x124\n\x15d\
1755    elay_between_updates\x18\x04\x20\x01(\x05R\x13delayBetweenUpdatesB\0\x12\
1756    !\n\x0bneeds_pings\x18\x05\x20\x01(\x08R\nneedsPingsB\0\x127\n\x17timeou\
1757    t_after_last_ping\x18\x06\x20\x01(\x05R\x14timeoutAfterLastPingB\0\x12(\
1758    \n\x0fnotes_for_human\x18\x07\x20\x01(\tR\rnotesForHumanB\0:\0\"P\n\x0fM\
1759    alosDriverInfo\x12;\n\x04info\x18\x01\x20\x03(\x0b2%.matrix_io.malos.v1.\
1760    driver.DriverInfoR\x04infoB\0:\0\"\xd4\x02\n\x06Status\x12C\n\x04type\
1761    \x18\x01\x20\x01(\x0e2-.matrix_io.malos.v1.driver.Status.MessageTypeR\
1762    \x04typeB\0\x12\x14\n\x04uuid\x18\x02\x20\x01(\tR\x04uuidB\0\x12\x1a\n\
1763    \x07message\x18\x03\x20\x01(\tR\x07messageB\0\"\xd0\x01\n\x0bMessageType\
1764    \x12\x1c\n\x18MESSAGE_TYPE_NOT_DEFINED\x10\0\x12\x0b\n\x07STARTED\x10\
1765    \x01\x12\x0b\n\x07STOPPED\x10\x02\x12\x13\n\x0fCONFIG_RECEIVED\x10\x03\
1766    \x12\x14\n\x10COMMAND_EXECUTED\x10\x04\x12\x13\n\x0fSTATUS_CRITICAL\x10\
1767    \x05\x12\x10\n\x0cSTATUS_ERROR\x10\x06\x12\x12\n\x0eSTATUS_WARNING\x10\
1768    \x07\x12\x0f\n\x0bSTATUS_INFO\x10\x08\x12\x10\n\x0cSTATUS_DEBUG\x10\t\
1769    \x1a\0:\0B\0b\x06proto3\
1770";
1771
1772static file_descriptor_proto_lazy: ::protobuf::rt::LazyV2<::protobuf::descriptor::FileDescriptorProto> = ::protobuf::rt::LazyV2::INIT;
1773
1774fn parse_descriptor_proto() -> ::protobuf::descriptor::FileDescriptorProto {
1775    ::protobuf::Message::parse_from_bytes(file_descriptor_proto_data).unwrap()
1776}
1777
1778pub fn file_descriptor_proto() -> &'static ::protobuf::descriptor::FileDescriptorProto {
1779    file_descriptor_proto_lazy.get(|| {
1780        parse_descriptor_proto()
1781    })
1782}