1#![warn(clippy::all)]
4#![allow(unused_parens, unused_mut, unused_imports, nonstandard_style)]
5
6use bitflags::bitflags;
7use fidl::encoding::{MessageBufFor, ProxyChannelBox, ResourceDialect};
8use futures::future::{self, MaybeDone, TryFutureExt};
9use zx_status;
10
11pub type FirmwareName = String;
12
13pub const MAX_ID_NAME_SIZE: u32 = 100;
14
15pub const MAX_MESSAGE_SIZE: u32 = 255;
17
18pub const SIGNAL_READABLE: u32 = 16777216;
21
22pub const SIGNAL_WAKELOCK: u32 = 67108864;
26
27pub const SIGNAL_WRITABLE: u32 = 33554432;
30
31#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
33pub enum DisplayMode {
34 None,
36 Init,
38 Off,
40 Idle,
42 On,
44 HighBrightness,
46 #[doc(hidden)]
47 __SourceBreaking { unknown_ordinal: u8 },
48}
49
50#[macro_export]
52macro_rules! DisplayModeUnknown {
53 () => {
54 _
55 };
56}
57
58impl DisplayMode {
59 #[inline]
60 pub fn from_primitive(prim: u8) -> Option<Self> {
61 match prim {
62 0 => Some(Self::None),
63 1 => Some(Self::Init),
64 2 => Some(Self::Off),
65 3 => Some(Self::Idle),
66 4 => Some(Self::On),
67 5 => Some(Self::HighBrightness),
68 _ => None,
69 }
70 }
71
72 #[inline]
73 pub fn from_primitive_allow_unknown(prim: u8) -> Self {
74 match prim {
75 0 => Self::None,
76 1 => Self::Init,
77 2 => Self::Off,
78 3 => Self::Idle,
79 4 => Self::On,
80 5 => Self::HighBrightness,
81 unknown_ordinal => Self::__SourceBreaking { unknown_ordinal },
82 }
83 }
84
85 #[inline]
86 pub fn unknown() -> Self {
87 Self::__SourceBreaking { unknown_ordinal: 0xff }
88 }
89
90 #[inline]
91 pub const fn into_primitive(self) -> u8 {
92 match self {
93 Self::None => 0,
94 Self::Init => 1,
95 Self::Off => 2,
96 Self::Idle => 3,
97 Self::On => 4,
98 Self::HighBrightness => 5,
99 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
100 }
101 }
102
103 #[inline]
104 pub fn is_unknown(&self) -> bool {
105 match self {
106 Self::__SourceBreaking { unknown_ordinal: _ } => true,
107 _ => false,
108 }
109 }
110}
111
112#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
114pub enum DisplaySelect {
115 Mcu,
117 Ap,
119 #[doc(hidden)]
120 __SourceBreaking { unknown_ordinal: i64 },
121}
122
123#[macro_export]
125macro_rules! DisplaySelectUnknown {
126 () => {
127 _
128 };
129}
130
131impl DisplaySelect {
132 #[inline]
133 pub fn from_primitive(prim: i64) -> Option<Self> {
134 match prim {
135 0 => Some(Self::Mcu),
136 1 => Some(Self::Ap),
137 _ => None,
138 }
139 }
140
141 #[inline]
142 pub fn from_primitive_allow_unknown(prim: i64) -> Self {
143 match prim {
144 0 => Self::Mcu,
145 1 => Self::Ap,
146 unknown_ordinal => Self::__SourceBreaking { unknown_ordinal },
147 }
148 }
149
150 #[inline]
151 pub fn unknown() -> Self {
152 Self::__SourceBreaking { unknown_ordinal: 0x7fffffffffffffff }
153 }
154
155 #[inline]
156 pub const fn into_primitive(self) -> i64 {
157 match self {
158 Self::Mcu => 0,
159 Self::Ap => 1,
160 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
161 }
162 }
163
164 #[inline]
165 pub fn is_unknown(&self) -> bool {
166 match self {
167 Self::__SourceBreaking { unknown_ordinal: _ } => true,
168 _ => false,
169 }
170 }
171}
172
173#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
175pub enum LifecycleEvent {
176 Unconfigured,
178 Start,
180 Ready,
182 Shutdown,
184 #[doc(hidden)]
185 __SourceBreaking { unknown_ordinal: u32 },
186}
187
188#[macro_export]
190macro_rules! LifecycleEventUnknown {
191 () => {
192 _
193 };
194}
195
196impl LifecycleEvent {
197 #[inline]
198 pub fn from_primitive(prim: u32) -> Option<Self> {
199 match prim {
200 0 => Some(Self::Unconfigured),
201 1 => Some(Self::Start),
202 2 => Some(Self::Ready),
203 3 => Some(Self::Shutdown),
204 _ => None,
205 }
206 }
207
208 #[inline]
209 pub fn from_primitive_allow_unknown(prim: u32) -> Self {
210 match prim {
211 0 => Self::Unconfigured,
212 1 => Self::Start,
213 2 => Self::Ready,
214 3 => Self::Shutdown,
215 unknown_ordinal => Self::__SourceBreaking { unknown_ordinal },
216 }
217 }
218
219 #[inline]
220 pub fn unknown() -> Self {
221 Self::__SourceBreaking { unknown_ordinal: 0xffffffff }
222 }
223
224 #[inline]
225 pub const fn into_primitive(self) -> u32 {
226 match self {
227 Self::Unconfigured => 0,
228 Self::Start => 1,
229 Self::Ready => 2,
230 Self::Shutdown => 3,
231 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
232 }
233 }
234
235 #[inline]
236 pub fn is_unknown(&self) -> bool {
237 match self {
238 Self::__SourceBreaking { unknown_ordinal: _ } => true,
239 _ => false,
240 }
241 }
242}
243
244#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
245#[repr(u8)]
246pub enum McuWakeLockValue {
247 Release = 0,
248 Acquire = 1,
249}
250
251impl McuWakeLockValue {
252 #[inline]
253 pub fn from_primitive(prim: u8) -> Option<Self> {
254 match prim {
255 0 => Some(Self::Release),
256 1 => Some(Self::Acquire),
257 _ => None,
258 }
259 }
260
261 #[inline]
262 pub const fn into_primitive(self) -> u8 {
263 self as u8
264 }
265}
266
267#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
268#[repr(u32)]
269pub enum PinState {
270 Low = 0,
271 High = 1,
272}
273
274impl PinState {
275 #[inline]
276 pub fn from_primitive(prim: u32) -> Option<Self> {
277 match prim {
278 0 => Some(Self::Low),
279 1 => Some(Self::High),
280 _ => None,
281 }
282 }
283
284 #[inline]
285 pub const fn into_primitive(self) -> u32 {
286 self as u32
287 }
288}
289
290#[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
291pub struct DeviceGetFirmwareNameResponse {
292 pub firmware_name: String,
293}
294
295impl fidl::Persistable for DeviceGetFirmwareNameResponse {}
296
297#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
298#[repr(C)]
299pub struct DeviceGetFirmwareVersionResponse {
300 pub version_info: McuVersionInfo,
301}
302
303impl fidl::Persistable for DeviceGetFirmwareVersionResponse {}
304
305#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
306pub struct DeviceSetWakeLockRequest {
307 pub value: McuWakeLockValue,
308}
309
310impl fidl::Persistable for DeviceSetWakeLockRequest {}
311
312#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
313#[repr(C)]
314pub struct DeviceSetWakeUpEventDurationRequest {
315 pub duration: i64,
316}
317
318impl fidl::Persistable for DeviceSetWakeUpEventDurationRequest {}
319
320#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
321#[repr(C)]
322pub struct DeviceGetWakeUpEventDurationResponse {
323 pub duration: i64,
324}
325
326impl fidl::Persistable for DeviceGetWakeUpEventDurationResponse {}
327
328#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
329pub struct HardwareResetPinStates {
330 pub isp_pin_0: PinState,
331 pub isp_pin_1: PinState,
332 pub isp_pin_2: PinState,
333}
334
335impl fidl::Persistable for HardwareResetPinStates {}
336
337#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
338pub struct LifecycleObserverOnLifecycleChangeRequest {
339 pub event: LifecycleEvent,
340}
341
342impl fidl::Persistable for LifecycleObserverOnLifecycleChangeRequest {}
343
344#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
345#[repr(C)]
346pub struct McuVersionInfo {
347 pub hardware_type: u16,
348 pub hardware_version: u16,
349 pub bootloader_version: u16,
350 pub os_version: u16,
351 pub variant_version: u32,
352}
353
354impl fidl::Persistable for McuVersionInfo {}
355
356#[derive(Clone, Debug, Default, PartialEq)]
357pub struct DataChannelReadRequest {
358 pub blocking: Option<bool>,
362 #[doc(hidden)]
363 pub __source_breaking: fidl::marker::SourceBreaking,
364}
365
366impl fidl::Persistable for DataChannelReadRequest {}
367
368#[derive(Clone, Debug, Default, PartialEq)]
369pub struct DataChannelWriteRequest {
370 pub data: Option<Vec<u8>>,
371 #[doc(hidden)]
372 pub __source_breaking: fidl::marker::SourceBreaking,
373}
374
375impl fidl::Persistable for DataChannelWriteRequest {}
376
377#[derive(Clone, Debug, Default, PartialEq)]
378pub struct DataChannelGetIdentifierResponse {
379 pub name: Option<String>,
380 #[doc(hidden)]
381 pub __source_breaking: fidl::marker::SourceBreaking,
382}
383
384impl fidl::Persistable for DataChannelGetIdentifierResponse {}
385
386#[derive(Clone, Debug, Default, PartialEq)]
387pub struct DisplayDeviceSetDisplaySelectRequest {
388 pub display_select: Option<DisplaySelect>,
389 #[doc(hidden)]
390 pub __source_breaking: fidl::marker::SourceBreaking,
391}
392
393impl fidl::Persistable for DisplayDeviceSetDisplaySelectRequest {}
394
395#[derive(Clone, Debug, Default, PartialEq)]
396pub struct DisplayDeviceGetDisplaySelectResponse {
397 pub display_select: Option<DisplaySelect>,
398 #[doc(hidden)]
399 pub __source_breaking: fidl::marker::SourceBreaking,
400}
401
402impl fidl::Persistable for DisplayDeviceGetDisplaySelectResponse {}
403
404#[derive(Clone, Debug, Default, PartialEq)]
406pub struct DisplayState {
407 pub mode: Option<DisplayMode>,
409 #[doc(hidden)]
410 pub __source_breaking: fidl::marker::SourceBreaking,
411}
412
413impl fidl::Persistable for DisplayState {}
414
415#[derive(Clone, Debug, Default, PartialEq)]
417pub struct DisplaySyncInfo {
418 pub display_mode: Option<DisplayMode>,
420 pub panel_mode: Option<u8>,
422 pub normal_brightness: Option<u16>,
424 pub always_on_display_brightness: Option<u16>,
426 #[doc(hidden)]
427 pub __source_breaking: fidl::marker::SourceBreaking,
428}
429
430impl fidl::Persistable for DisplaySyncInfo {}
431
432#[derive(Clone, Debug, Default, PartialEq)]
433pub struct HangingDataChannelWriteRequest {
434 pub data: Option<Vec<u8>>,
435 #[doc(hidden)]
436 pub __source_breaking: fidl::marker::SourceBreaking,
437}
438
439impl fidl::Persistable for HangingDataChannelWriteRequest {}
440
441#[derive(Clone, Debug, Default, PartialEq)]
442pub struct McuTimeSyncInfo {
443 pub ap_boot_time: Option<i64>,
444 pub mcu_boot_time: Option<i64>,
445 #[doc(hidden)]
446 pub __source_breaking: fidl::marker::SourceBreaking,
447}
448
449impl fidl::Persistable for McuTimeSyncInfo {}
450
451#[derive(Clone, Debug, Default, PartialEq)]
452pub struct UnboundHangingDataChannelGetIdentifierResponse {
453 pub name: Option<String>,
454 #[doc(hidden)]
455 pub __source_breaking: fidl::marker::SourceBreaking,
456}
457
458impl fidl::Persistable for UnboundHangingDataChannelGetIdentifierResponse {}
459
460#[derive(Clone, Debug, Default, PartialEq)]
461pub struct UnboundWaitableDataChannelGetIdentifierResponse {
462 pub name: Option<String>,
463 #[doc(hidden)]
464 pub __source_breaking: fidl::marker::SourceBreaking,
465}
466
467impl fidl::Persistable for UnboundWaitableDataChannelGetIdentifierResponse {}
468
469#[derive(Clone, Debug, Default, PartialEq)]
470pub struct WaitableDataChannelWriteRequest {
471 pub data: Option<Vec<u8>>,
472 #[doc(hidden)]
473 pub __source_breaking: fidl::marker::SourceBreaking,
474}
475
476impl fidl::Persistable for WaitableDataChannelWriteRequest {}
477
478pub mod data_channel_ordinals {
479 pub const REGISTER: u64 = 0x1778251ad75157b6;
480 pub const GET_IDENTIFIER: u64 = 0x4bf148d0ddbd4f69;
481 pub const READ: u64 = 0x12ab08cf21533d26;
482 pub const WRITE: u64 = 0xf2e12121698789b;
483}
484
485pub mod device_ordinals {
486 pub const DOWNLOAD_FIRMWARE: u64 = 0x7bba8137e24661e5;
487 pub const GET_FIRMWARE_NAME: u64 = 0x1649434b5e5bcb8d;
488 pub const GET_FIRMWARE_VERSION: u64 = 0x4f0599abcc95736b;
489 pub const GET_TIME_SYNC: u64 = 0x4406991222e3975d;
490 pub const SET_WAKE_LOCK: u64 = 0x9f83f614affa1dc;
491 pub const GET_WAKE_UP_EVENT_DURATION: u64 = 0x45c79749f65e7176;
492 pub const SET_WAKE_UP_EVENT_DURATION: u64 = 0x1fa1771ffa5f570;
493 pub const HARDWARE_RESET: u64 = 0x78e3d2ded2f929f;
494}
495
496pub mod display_device_ordinals {
497 pub const GET_DISPLAY_STATE: u64 = 0x1648924f6e003444;
498 pub const GET_DISPLAY_INFO: u64 = 0x311c8e4cb6b1b4d1;
499 pub const GET_DISPLAY_SELECT: u64 = 0x6191c86cffd6323;
500 pub const SET_DISPLAY_SELECT: u64 = 0x2b07f6ba12e7a412;
501}
502
503pub mod hanging_data_channel_ordinals {
504 pub const READ: u64 = 0x160be10337c2484f;
505 pub const WRITE: u64 = 0x6addfd084eb16746;
506}
507
508pub mod lifecycle_observer_ordinals {
509 pub const ON_LIFECYCLE_CHANGE: u64 = 0x7034eb94979bd8de;
510}
511
512pub mod unbound_hanging_data_channel_ordinals {
513 pub const BIND: u64 = 0x62be1ffca6ea4090;
514 pub const GET_IDENTIFIER: u64 = 0x63d3f258532f3b0;
515}
516
517pub mod unbound_waitable_data_channel_ordinals {
518 pub const BIND: u64 = 0x135713194412491e;
519 pub const GET_IDENTIFIER: u64 = 0x6a36e55ac6beb9d6;
520}
521
522pub mod waitable_data_channel_ordinals {
523 pub const READ: u64 = 0x48f55df455309245;
524 pub const WRITE: u64 = 0x6d9b754b0e3122f2;
525}
526
527mod internal {
528 use super::*;
529 unsafe impl fidl::encoding::TypeMarker for DisplayMode {
530 type Owned = Self;
531
532 #[inline(always)]
533 fn inline_align(_context: fidl::encoding::Context) -> usize {
534 std::mem::align_of::<u8>()
535 }
536
537 #[inline(always)]
538 fn inline_size(_context: fidl::encoding::Context) -> usize {
539 std::mem::size_of::<u8>()
540 }
541
542 #[inline(always)]
543 fn encode_is_copy() -> bool {
544 false
545 }
546
547 #[inline(always)]
548 fn decode_is_copy() -> bool {
549 false
550 }
551 }
552
553 impl fidl::encoding::ValueTypeMarker for DisplayMode {
554 type Borrowed<'a> = Self;
555 #[inline(always)]
556 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
557 *value
558 }
559 }
560
561 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for DisplayMode {
562 #[inline]
563 unsafe fn encode(
564 self,
565 encoder: &mut fidl::encoding::Encoder<'_, D>,
566 offset: usize,
567 _depth: fidl::encoding::Depth,
568 ) -> fidl::Result<()> {
569 encoder.debug_check_bounds::<Self>(offset);
570 encoder.write_num(self.into_primitive(), offset);
571 Ok(())
572 }
573 }
574
575 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for DisplayMode {
576 #[inline(always)]
577 fn new_empty() -> Self {
578 Self::unknown()
579 }
580
581 #[inline]
582 unsafe fn decode(
583 &mut self,
584 decoder: &mut fidl::encoding::Decoder<'_, D>,
585 offset: usize,
586 _depth: fidl::encoding::Depth,
587 ) -> fidl::Result<()> {
588 decoder.debug_check_bounds::<Self>(offset);
589 let prim = decoder.read_num::<u8>(offset);
590
591 *self = Self::from_primitive_allow_unknown(prim);
592 Ok(())
593 }
594 }
595 unsafe impl fidl::encoding::TypeMarker for DisplaySelect {
596 type Owned = Self;
597
598 #[inline(always)]
599 fn inline_align(_context: fidl::encoding::Context) -> usize {
600 std::mem::align_of::<i64>()
601 }
602
603 #[inline(always)]
604 fn inline_size(_context: fidl::encoding::Context) -> usize {
605 std::mem::size_of::<i64>()
606 }
607
608 #[inline(always)]
609 fn encode_is_copy() -> bool {
610 false
611 }
612
613 #[inline(always)]
614 fn decode_is_copy() -> bool {
615 false
616 }
617 }
618
619 impl fidl::encoding::ValueTypeMarker for DisplaySelect {
620 type Borrowed<'a> = Self;
621 #[inline(always)]
622 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
623 *value
624 }
625 }
626
627 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for DisplaySelect {
628 #[inline]
629 unsafe fn encode(
630 self,
631 encoder: &mut fidl::encoding::Encoder<'_, D>,
632 offset: usize,
633 _depth: fidl::encoding::Depth,
634 ) -> fidl::Result<()> {
635 encoder.debug_check_bounds::<Self>(offset);
636 encoder.write_num(self.into_primitive(), offset);
637 Ok(())
638 }
639 }
640
641 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for DisplaySelect {
642 #[inline(always)]
643 fn new_empty() -> Self {
644 Self::unknown()
645 }
646
647 #[inline]
648 unsafe fn decode(
649 &mut self,
650 decoder: &mut fidl::encoding::Decoder<'_, D>,
651 offset: usize,
652 _depth: fidl::encoding::Depth,
653 ) -> fidl::Result<()> {
654 decoder.debug_check_bounds::<Self>(offset);
655 let prim = decoder.read_num::<i64>(offset);
656
657 *self = Self::from_primitive_allow_unknown(prim);
658 Ok(())
659 }
660 }
661 unsafe impl fidl::encoding::TypeMarker for LifecycleEvent {
662 type Owned = Self;
663
664 #[inline(always)]
665 fn inline_align(_context: fidl::encoding::Context) -> usize {
666 std::mem::align_of::<u32>()
667 }
668
669 #[inline(always)]
670 fn inline_size(_context: fidl::encoding::Context) -> usize {
671 std::mem::size_of::<u32>()
672 }
673
674 #[inline(always)]
675 fn encode_is_copy() -> bool {
676 false
677 }
678
679 #[inline(always)]
680 fn decode_is_copy() -> bool {
681 false
682 }
683 }
684
685 impl fidl::encoding::ValueTypeMarker for LifecycleEvent {
686 type Borrowed<'a> = Self;
687 #[inline(always)]
688 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
689 *value
690 }
691 }
692
693 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for LifecycleEvent {
694 #[inline]
695 unsafe fn encode(
696 self,
697 encoder: &mut fidl::encoding::Encoder<'_, D>,
698 offset: usize,
699 _depth: fidl::encoding::Depth,
700 ) -> fidl::Result<()> {
701 encoder.debug_check_bounds::<Self>(offset);
702 encoder.write_num(self.into_primitive(), offset);
703 Ok(())
704 }
705 }
706
707 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for LifecycleEvent {
708 #[inline(always)]
709 fn new_empty() -> Self {
710 Self::unknown()
711 }
712
713 #[inline]
714 unsafe fn decode(
715 &mut self,
716 decoder: &mut fidl::encoding::Decoder<'_, D>,
717 offset: usize,
718 _depth: fidl::encoding::Depth,
719 ) -> fidl::Result<()> {
720 decoder.debug_check_bounds::<Self>(offset);
721 let prim = decoder.read_num::<u32>(offset);
722
723 *self = Self::from_primitive_allow_unknown(prim);
724 Ok(())
725 }
726 }
727 unsafe impl fidl::encoding::TypeMarker for McuWakeLockValue {
728 type Owned = Self;
729
730 #[inline(always)]
731 fn inline_align(_context: fidl::encoding::Context) -> usize {
732 std::mem::align_of::<u8>()
733 }
734
735 #[inline(always)]
736 fn inline_size(_context: fidl::encoding::Context) -> usize {
737 std::mem::size_of::<u8>()
738 }
739
740 #[inline(always)]
741 fn encode_is_copy() -> bool {
742 true
743 }
744
745 #[inline(always)]
746 fn decode_is_copy() -> bool {
747 false
748 }
749 }
750
751 impl fidl::encoding::ValueTypeMarker for McuWakeLockValue {
752 type Borrowed<'a> = Self;
753 #[inline(always)]
754 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
755 *value
756 }
757 }
758
759 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
760 for McuWakeLockValue
761 {
762 #[inline]
763 unsafe fn encode(
764 self,
765 encoder: &mut fidl::encoding::Encoder<'_, D>,
766 offset: usize,
767 _depth: fidl::encoding::Depth,
768 ) -> fidl::Result<()> {
769 encoder.debug_check_bounds::<Self>(offset);
770 encoder.write_num(self.into_primitive(), offset);
771 Ok(())
772 }
773 }
774
775 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for McuWakeLockValue {
776 #[inline(always)]
777 fn new_empty() -> Self {
778 Self::Release
779 }
780
781 #[inline]
782 unsafe fn decode(
783 &mut self,
784 decoder: &mut fidl::encoding::Decoder<'_, D>,
785 offset: usize,
786 _depth: fidl::encoding::Depth,
787 ) -> fidl::Result<()> {
788 decoder.debug_check_bounds::<Self>(offset);
789 let prim = decoder.read_num::<u8>(offset);
790
791 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
792 Ok(())
793 }
794 }
795 unsafe impl fidl::encoding::TypeMarker for PinState {
796 type Owned = Self;
797
798 #[inline(always)]
799 fn inline_align(_context: fidl::encoding::Context) -> usize {
800 std::mem::align_of::<u32>()
801 }
802
803 #[inline(always)]
804 fn inline_size(_context: fidl::encoding::Context) -> usize {
805 std::mem::size_of::<u32>()
806 }
807
808 #[inline(always)]
809 fn encode_is_copy() -> bool {
810 true
811 }
812
813 #[inline(always)]
814 fn decode_is_copy() -> bool {
815 false
816 }
817 }
818
819 impl fidl::encoding::ValueTypeMarker for PinState {
820 type Borrowed<'a> = Self;
821 #[inline(always)]
822 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
823 *value
824 }
825 }
826
827 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for PinState {
828 #[inline]
829 unsafe fn encode(
830 self,
831 encoder: &mut fidl::encoding::Encoder<'_, D>,
832 offset: usize,
833 _depth: fidl::encoding::Depth,
834 ) -> fidl::Result<()> {
835 encoder.debug_check_bounds::<Self>(offset);
836 encoder.write_num(self.into_primitive(), offset);
837 Ok(())
838 }
839 }
840
841 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for PinState {
842 #[inline(always)]
843 fn new_empty() -> Self {
844 Self::Low
845 }
846
847 #[inline]
848 unsafe fn decode(
849 &mut self,
850 decoder: &mut fidl::encoding::Decoder<'_, D>,
851 offset: usize,
852 _depth: fidl::encoding::Depth,
853 ) -> fidl::Result<()> {
854 decoder.debug_check_bounds::<Self>(offset);
855 let prim = decoder.read_num::<u32>(offset);
856
857 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
858 Ok(())
859 }
860 }
861
862 impl fidl::encoding::ValueTypeMarker for DeviceGetFirmwareNameResponse {
863 type Borrowed<'a> = &'a Self;
864 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
865 value
866 }
867 }
868
869 unsafe impl fidl::encoding::TypeMarker for DeviceGetFirmwareNameResponse {
870 type Owned = Self;
871
872 #[inline(always)]
873 fn inline_align(_context: fidl::encoding::Context) -> usize {
874 8
875 }
876
877 #[inline(always)]
878 fn inline_size(_context: fidl::encoding::Context) -> usize {
879 16
880 }
881 }
882
883 unsafe impl<D: fidl::encoding::ResourceDialect>
884 fidl::encoding::Encode<DeviceGetFirmwareNameResponse, D>
885 for &DeviceGetFirmwareNameResponse
886 {
887 #[inline]
888 unsafe fn encode(
889 self,
890 encoder: &mut fidl::encoding::Encoder<'_, D>,
891 offset: usize,
892 _depth: fidl::encoding::Depth,
893 ) -> fidl::Result<()> {
894 encoder.debug_check_bounds::<DeviceGetFirmwareNameResponse>(offset);
895 fidl::encoding::Encode::<DeviceGetFirmwareNameResponse, D>::encode(
897 (<fidl::encoding::BoundedString<64> as fidl::encoding::ValueTypeMarker>::borrow(
898 &self.firmware_name,
899 ),),
900 encoder,
901 offset,
902 _depth,
903 )
904 }
905 }
906 unsafe impl<
907 D: fidl::encoding::ResourceDialect,
908 T0: fidl::encoding::Encode<fidl::encoding::BoundedString<64>, D>,
909 > fidl::encoding::Encode<DeviceGetFirmwareNameResponse, D> for (T0,)
910 {
911 #[inline]
912 unsafe fn encode(
913 self,
914 encoder: &mut fidl::encoding::Encoder<'_, D>,
915 offset: usize,
916 depth: fidl::encoding::Depth,
917 ) -> fidl::Result<()> {
918 encoder.debug_check_bounds::<DeviceGetFirmwareNameResponse>(offset);
919 self.0.encode(encoder, offset + 0, depth)?;
923 Ok(())
924 }
925 }
926
927 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
928 for DeviceGetFirmwareNameResponse
929 {
930 #[inline(always)]
931 fn new_empty() -> Self {
932 Self { firmware_name: fidl::new_empty!(fidl::encoding::BoundedString<64>, D) }
933 }
934
935 #[inline]
936 unsafe fn decode(
937 &mut self,
938 decoder: &mut fidl::encoding::Decoder<'_, D>,
939 offset: usize,
940 _depth: fidl::encoding::Depth,
941 ) -> fidl::Result<()> {
942 decoder.debug_check_bounds::<Self>(offset);
943 fidl::decode!(
945 fidl::encoding::BoundedString<64>,
946 D,
947 &mut self.firmware_name,
948 decoder,
949 offset + 0,
950 _depth
951 )?;
952 Ok(())
953 }
954 }
955
956 impl fidl::encoding::ValueTypeMarker for DeviceGetFirmwareVersionResponse {
957 type Borrowed<'a> = &'a Self;
958 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
959 value
960 }
961 }
962
963 unsafe impl fidl::encoding::TypeMarker for DeviceGetFirmwareVersionResponse {
964 type Owned = Self;
965
966 #[inline(always)]
967 fn inline_align(_context: fidl::encoding::Context) -> usize {
968 4
969 }
970
971 #[inline(always)]
972 fn inline_size(_context: fidl::encoding::Context) -> usize {
973 12
974 }
975 #[inline(always)]
976 fn encode_is_copy() -> bool {
977 true
978 }
979
980 #[inline(always)]
981 fn decode_is_copy() -> bool {
982 true
983 }
984 }
985
986 unsafe impl<D: fidl::encoding::ResourceDialect>
987 fidl::encoding::Encode<DeviceGetFirmwareVersionResponse, D>
988 for &DeviceGetFirmwareVersionResponse
989 {
990 #[inline]
991 unsafe fn encode(
992 self,
993 encoder: &mut fidl::encoding::Encoder<'_, D>,
994 offset: usize,
995 _depth: fidl::encoding::Depth,
996 ) -> fidl::Result<()> {
997 encoder.debug_check_bounds::<DeviceGetFirmwareVersionResponse>(offset);
998 unsafe {
999 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
1001 (buf_ptr as *mut DeviceGetFirmwareVersionResponse)
1002 .write_unaligned((self as *const DeviceGetFirmwareVersionResponse).read());
1003 }
1006 Ok(())
1007 }
1008 }
1009 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<McuVersionInfo, D>>
1010 fidl::encoding::Encode<DeviceGetFirmwareVersionResponse, D> for (T0,)
1011 {
1012 #[inline]
1013 unsafe fn encode(
1014 self,
1015 encoder: &mut fidl::encoding::Encoder<'_, D>,
1016 offset: usize,
1017 depth: fidl::encoding::Depth,
1018 ) -> fidl::Result<()> {
1019 encoder.debug_check_bounds::<DeviceGetFirmwareVersionResponse>(offset);
1020 self.0.encode(encoder, offset + 0, depth)?;
1024 Ok(())
1025 }
1026 }
1027
1028 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1029 for DeviceGetFirmwareVersionResponse
1030 {
1031 #[inline(always)]
1032 fn new_empty() -> Self {
1033 Self { version_info: fidl::new_empty!(McuVersionInfo, D) }
1034 }
1035
1036 #[inline]
1037 unsafe fn decode(
1038 &mut self,
1039 decoder: &mut fidl::encoding::Decoder<'_, D>,
1040 offset: usize,
1041 _depth: fidl::encoding::Depth,
1042 ) -> fidl::Result<()> {
1043 decoder.debug_check_bounds::<Self>(offset);
1044 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
1045 unsafe {
1048 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 12);
1049 }
1050 Ok(())
1051 }
1052 }
1053
1054 impl fidl::encoding::ValueTypeMarker for DeviceSetWakeLockRequest {
1055 type Borrowed<'a> = &'a Self;
1056 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1057 value
1058 }
1059 }
1060
1061 unsafe impl fidl::encoding::TypeMarker for DeviceSetWakeLockRequest {
1062 type Owned = Self;
1063
1064 #[inline(always)]
1065 fn inline_align(_context: fidl::encoding::Context) -> usize {
1066 1
1067 }
1068
1069 #[inline(always)]
1070 fn inline_size(_context: fidl::encoding::Context) -> usize {
1071 1
1072 }
1073 }
1074
1075 unsafe impl<D: fidl::encoding::ResourceDialect>
1076 fidl::encoding::Encode<DeviceSetWakeLockRequest, D> for &DeviceSetWakeLockRequest
1077 {
1078 #[inline]
1079 unsafe fn encode(
1080 self,
1081 encoder: &mut fidl::encoding::Encoder<'_, D>,
1082 offset: usize,
1083 _depth: fidl::encoding::Depth,
1084 ) -> fidl::Result<()> {
1085 encoder.debug_check_bounds::<DeviceSetWakeLockRequest>(offset);
1086 fidl::encoding::Encode::<DeviceSetWakeLockRequest, D>::encode(
1088 (<McuWakeLockValue as fidl::encoding::ValueTypeMarker>::borrow(&self.value),),
1089 encoder,
1090 offset,
1091 _depth,
1092 )
1093 }
1094 }
1095 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<McuWakeLockValue, D>>
1096 fidl::encoding::Encode<DeviceSetWakeLockRequest, D> for (T0,)
1097 {
1098 #[inline]
1099 unsafe fn encode(
1100 self,
1101 encoder: &mut fidl::encoding::Encoder<'_, D>,
1102 offset: usize,
1103 depth: fidl::encoding::Depth,
1104 ) -> fidl::Result<()> {
1105 encoder.debug_check_bounds::<DeviceSetWakeLockRequest>(offset);
1106 self.0.encode(encoder, offset + 0, depth)?;
1110 Ok(())
1111 }
1112 }
1113
1114 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1115 for DeviceSetWakeLockRequest
1116 {
1117 #[inline(always)]
1118 fn new_empty() -> Self {
1119 Self { value: fidl::new_empty!(McuWakeLockValue, D) }
1120 }
1121
1122 #[inline]
1123 unsafe fn decode(
1124 &mut self,
1125 decoder: &mut fidl::encoding::Decoder<'_, D>,
1126 offset: usize,
1127 _depth: fidl::encoding::Depth,
1128 ) -> fidl::Result<()> {
1129 decoder.debug_check_bounds::<Self>(offset);
1130 fidl::decode!(McuWakeLockValue, D, &mut self.value, decoder, offset + 0, _depth)?;
1132 Ok(())
1133 }
1134 }
1135
1136 impl fidl::encoding::ValueTypeMarker for DeviceSetWakeUpEventDurationRequest {
1137 type Borrowed<'a> = &'a Self;
1138 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1139 value
1140 }
1141 }
1142
1143 unsafe impl fidl::encoding::TypeMarker for DeviceSetWakeUpEventDurationRequest {
1144 type Owned = Self;
1145
1146 #[inline(always)]
1147 fn inline_align(_context: fidl::encoding::Context) -> usize {
1148 8
1149 }
1150
1151 #[inline(always)]
1152 fn inline_size(_context: fidl::encoding::Context) -> usize {
1153 8
1154 }
1155 #[inline(always)]
1156 fn encode_is_copy() -> bool {
1157 true
1158 }
1159
1160 #[inline(always)]
1161 fn decode_is_copy() -> bool {
1162 true
1163 }
1164 }
1165
1166 unsafe impl<D: fidl::encoding::ResourceDialect>
1167 fidl::encoding::Encode<DeviceSetWakeUpEventDurationRequest, D>
1168 for &DeviceSetWakeUpEventDurationRequest
1169 {
1170 #[inline]
1171 unsafe fn encode(
1172 self,
1173 encoder: &mut fidl::encoding::Encoder<'_, D>,
1174 offset: usize,
1175 _depth: fidl::encoding::Depth,
1176 ) -> fidl::Result<()> {
1177 encoder.debug_check_bounds::<DeviceSetWakeUpEventDurationRequest>(offset);
1178 unsafe {
1179 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
1181 (buf_ptr as *mut DeviceSetWakeUpEventDurationRequest)
1182 .write_unaligned((self as *const DeviceSetWakeUpEventDurationRequest).read());
1183 }
1186 Ok(())
1187 }
1188 }
1189 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<i64, D>>
1190 fidl::encoding::Encode<DeviceSetWakeUpEventDurationRequest, D> for (T0,)
1191 {
1192 #[inline]
1193 unsafe fn encode(
1194 self,
1195 encoder: &mut fidl::encoding::Encoder<'_, D>,
1196 offset: usize,
1197 depth: fidl::encoding::Depth,
1198 ) -> fidl::Result<()> {
1199 encoder.debug_check_bounds::<DeviceSetWakeUpEventDurationRequest>(offset);
1200 self.0.encode(encoder, offset + 0, depth)?;
1204 Ok(())
1205 }
1206 }
1207
1208 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1209 for DeviceSetWakeUpEventDurationRequest
1210 {
1211 #[inline(always)]
1212 fn new_empty() -> Self {
1213 Self { duration: fidl::new_empty!(i64, D) }
1214 }
1215
1216 #[inline]
1217 unsafe fn decode(
1218 &mut self,
1219 decoder: &mut fidl::encoding::Decoder<'_, D>,
1220 offset: usize,
1221 _depth: fidl::encoding::Depth,
1222 ) -> fidl::Result<()> {
1223 decoder.debug_check_bounds::<Self>(offset);
1224 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
1225 unsafe {
1228 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 8);
1229 }
1230 Ok(())
1231 }
1232 }
1233
1234 impl fidl::encoding::ValueTypeMarker for DeviceGetWakeUpEventDurationResponse {
1235 type Borrowed<'a> = &'a Self;
1236 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1237 value
1238 }
1239 }
1240
1241 unsafe impl fidl::encoding::TypeMarker for DeviceGetWakeUpEventDurationResponse {
1242 type Owned = Self;
1243
1244 #[inline(always)]
1245 fn inline_align(_context: fidl::encoding::Context) -> usize {
1246 8
1247 }
1248
1249 #[inline(always)]
1250 fn inline_size(_context: fidl::encoding::Context) -> usize {
1251 8
1252 }
1253 #[inline(always)]
1254 fn encode_is_copy() -> bool {
1255 true
1256 }
1257
1258 #[inline(always)]
1259 fn decode_is_copy() -> bool {
1260 true
1261 }
1262 }
1263
1264 unsafe impl<D: fidl::encoding::ResourceDialect>
1265 fidl::encoding::Encode<DeviceGetWakeUpEventDurationResponse, D>
1266 for &DeviceGetWakeUpEventDurationResponse
1267 {
1268 #[inline]
1269 unsafe fn encode(
1270 self,
1271 encoder: &mut fidl::encoding::Encoder<'_, D>,
1272 offset: usize,
1273 _depth: fidl::encoding::Depth,
1274 ) -> fidl::Result<()> {
1275 encoder.debug_check_bounds::<DeviceGetWakeUpEventDurationResponse>(offset);
1276 unsafe {
1277 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
1279 (buf_ptr as *mut DeviceGetWakeUpEventDurationResponse)
1280 .write_unaligned((self as *const DeviceGetWakeUpEventDurationResponse).read());
1281 }
1284 Ok(())
1285 }
1286 }
1287 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<i64, D>>
1288 fidl::encoding::Encode<DeviceGetWakeUpEventDurationResponse, D> for (T0,)
1289 {
1290 #[inline]
1291 unsafe fn encode(
1292 self,
1293 encoder: &mut fidl::encoding::Encoder<'_, D>,
1294 offset: usize,
1295 depth: fidl::encoding::Depth,
1296 ) -> fidl::Result<()> {
1297 encoder.debug_check_bounds::<DeviceGetWakeUpEventDurationResponse>(offset);
1298 self.0.encode(encoder, offset + 0, depth)?;
1302 Ok(())
1303 }
1304 }
1305
1306 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1307 for DeviceGetWakeUpEventDurationResponse
1308 {
1309 #[inline(always)]
1310 fn new_empty() -> Self {
1311 Self { duration: fidl::new_empty!(i64, D) }
1312 }
1313
1314 #[inline]
1315 unsafe fn decode(
1316 &mut self,
1317 decoder: &mut fidl::encoding::Decoder<'_, D>,
1318 offset: usize,
1319 _depth: fidl::encoding::Depth,
1320 ) -> fidl::Result<()> {
1321 decoder.debug_check_bounds::<Self>(offset);
1322 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
1323 unsafe {
1326 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 8);
1327 }
1328 Ok(())
1329 }
1330 }
1331
1332 impl fidl::encoding::ValueTypeMarker for HardwareResetPinStates {
1333 type Borrowed<'a> = &'a Self;
1334 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1335 value
1336 }
1337 }
1338
1339 unsafe impl fidl::encoding::TypeMarker for HardwareResetPinStates {
1340 type Owned = Self;
1341
1342 #[inline(always)]
1343 fn inline_align(_context: fidl::encoding::Context) -> usize {
1344 4
1345 }
1346
1347 #[inline(always)]
1348 fn inline_size(_context: fidl::encoding::Context) -> usize {
1349 12
1350 }
1351 }
1352
1353 unsafe impl<D: fidl::encoding::ResourceDialect>
1354 fidl::encoding::Encode<HardwareResetPinStates, D> for &HardwareResetPinStates
1355 {
1356 #[inline]
1357 unsafe fn encode(
1358 self,
1359 encoder: &mut fidl::encoding::Encoder<'_, D>,
1360 offset: usize,
1361 _depth: fidl::encoding::Depth,
1362 ) -> fidl::Result<()> {
1363 encoder.debug_check_bounds::<HardwareResetPinStates>(offset);
1364 fidl::encoding::Encode::<HardwareResetPinStates, D>::encode(
1366 (
1367 <PinState as fidl::encoding::ValueTypeMarker>::borrow(&self.isp_pin_0),
1368 <PinState as fidl::encoding::ValueTypeMarker>::borrow(&self.isp_pin_1),
1369 <PinState as fidl::encoding::ValueTypeMarker>::borrow(&self.isp_pin_2),
1370 ),
1371 encoder,
1372 offset,
1373 _depth,
1374 )
1375 }
1376 }
1377 unsafe impl<
1378 D: fidl::encoding::ResourceDialect,
1379 T0: fidl::encoding::Encode<PinState, D>,
1380 T1: fidl::encoding::Encode<PinState, D>,
1381 T2: fidl::encoding::Encode<PinState, D>,
1382 > fidl::encoding::Encode<HardwareResetPinStates, D> for (T0, T1, T2)
1383 {
1384 #[inline]
1385 unsafe fn encode(
1386 self,
1387 encoder: &mut fidl::encoding::Encoder<'_, D>,
1388 offset: usize,
1389 depth: fidl::encoding::Depth,
1390 ) -> fidl::Result<()> {
1391 encoder.debug_check_bounds::<HardwareResetPinStates>(offset);
1392 self.0.encode(encoder, offset + 0, depth)?;
1396 self.1.encode(encoder, offset + 4, depth)?;
1397 self.2.encode(encoder, offset + 8, depth)?;
1398 Ok(())
1399 }
1400 }
1401
1402 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1403 for HardwareResetPinStates
1404 {
1405 #[inline(always)]
1406 fn new_empty() -> Self {
1407 Self {
1408 isp_pin_0: fidl::new_empty!(PinState, D),
1409 isp_pin_1: fidl::new_empty!(PinState, D),
1410 isp_pin_2: fidl::new_empty!(PinState, D),
1411 }
1412 }
1413
1414 #[inline]
1415 unsafe fn decode(
1416 &mut self,
1417 decoder: &mut fidl::encoding::Decoder<'_, D>,
1418 offset: usize,
1419 _depth: fidl::encoding::Depth,
1420 ) -> fidl::Result<()> {
1421 decoder.debug_check_bounds::<Self>(offset);
1422 fidl::decode!(PinState, D, &mut self.isp_pin_0, decoder, offset + 0, _depth)?;
1424 fidl::decode!(PinState, D, &mut self.isp_pin_1, decoder, offset + 4, _depth)?;
1425 fidl::decode!(PinState, D, &mut self.isp_pin_2, decoder, offset + 8, _depth)?;
1426 Ok(())
1427 }
1428 }
1429
1430 impl fidl::encoding::ValueTypeMarker for LifecycleObserverOnLifecycleChangeRequest {
1431 type Borrowed<'a> = &'a Self;
1432 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1433 value
1434 }
1435 }
1436
1437 unsafe impl fidl::encoding::TypeMarker for LifecycleObserverOnLifecycleChangeRequest {
1438 type Owned = Self;
1439
1440 #[inline(always)]
1441 fn inline_align(_context: fidl::encoding::Context) -> usize {
1442 4
1443 }
1444
1445 #[inline(always)]
1446 fn inline_size(_context: fidl::encoding::Context) -> usize {
1447 4
1448 }
1449 }
1450
1451 unsafe impl<D: fidl::encoding::ResourceDialect>
1452 fidl::encoding::Encode<LifecycleObserverOnLifecycleChangeRequest, D>
1453 for &LifecycleObserverOnLifecycleChangeRequest
1454 {
1455 #[inline]
1456 unsafe fn encode(
1457 self,
1458 encoder: &mut fidl::encoding::Encoder<'_, D>,
1459 offset: usize,
1460 _depth: fidl::encoding::Depth,
1461 ) -> fidl::Result<()> {
1462 encoder.debug_check_bounds::<LifecycleObserverOnLifecycleChangeRequest>(offset);
1463 fidl::encoding::Encode::<LifecycleObserverOnLifecycleChangeRequest, D>::encode(
1465 (<LifecycleEvent as fidl::encoding::ValueTypeMarker>::borrow(&self.event),),
1466 encoder,
1467 offset,
1468 _depth,
1469 )
1470 }
1471 }
1472 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<LifecycleEvent, D>>
1473 fidl::encoding::Encode<LifecycleObserverOnLifecycleChangeRequest, D> for (T0,)
1474 {
1475 #[inline]
1476 unsafe fn encode(
1477 self,
1478 encoder: &mut fidl::encoding::Encoder<'_, D>,
1479 offset: usize,
1480 depth: fidl::encoding::Depth,
1481 ) -> fidl::Result<()> {
1482 encoder.debug_check_bounds::<LifecycleObserverOnLifecycleChangeRequest>(offset);
1483 self.0.encode(encoder, offset + 0, depth)?;
1487 Ok(())
1488 }
1489 }
1490
1491 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1492 for LifecycleObserverOnLifecycleChangeRequest
1493 {
1494 #[inline(always)]
1495 fn new_empty() -> Self {
1496 Self { event: fidl::new_empty!(LifecycleEvent, D) }
1497 }
1498
1499 #[inline]
1500 unsafe fn decode(
1501 &mut self,
1502 decoder: &mut fidl::encoding::Decoder<'_, D>,
1503 offset: usize,
1504 _depth: fidl::encoding::Depth,
1505 ) -> fidl::Result<()> {
1506 decoder.debug_check_bounds::<Self>(offset);
1507 fidl::decode!(LifecycleEvent, D, &mut self.event, decoder, offset + 0, _depth)?;
1509 Ok(())
1510 }
1511 }
1512
1513 impl fidl::encoding::ValueTypeMarker for McuVersionInfo {
1514 type Borrowed<'a> = &'a Self;
1515 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1516 value
1517 }
1518 }
1519
1520 unsafe impl fidl::encoding::TypeMarker for McuVersionInfo {
1521 type Owned = Self;
1522
1523 #[inline(always)]
1524 fn inline_align(_context: fidl::encoding::Context) -> usize {
1525 4
1526 }
1527
1528 #[inline(always)]
1529 fn inline_size(_context: fidl::encoding::Context) -> usize {
1530 12
1531 }
1532 #[inline(always)]
1533 fn encode_is_copy() -> bool {
1534 true
1535 }
1536
1537 #[inline(always)]
1538 fn decode_is_copy() -> bool {
1539 true
1540 }
1541 }
1542
1543 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<McuVersionInfo, D>
1544 for &McuVersionInfo
1545 {
1546 #[inline]
1547 unsafe fn encode(
1548 self,
1549 encoder: &mut fidl::encoding::Encoder<'_, D>,
1550 offset: usize,
1551 _depth: fidl::encoding::Depth,
1552 ) -> fidl::Result<()> {
1553 encoder.debug_check_bounds::<McuVersionInfo>(offset);
1554 unsafe {
1555 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
1557 (buf_ptr as *mut McuVersionInfo)
1558 .write_unaligned((self as *const McuVersionInfo).read());
1559 }
1562 Ok(())
1563 }
1564 }
1565 unsafe impl<
1566 D: fidl::encoding::ResourceDialect,
1567 T0: fidl::encoding::Encode<u16, D>,
1568 T1: fidl::encoding::Encode<u16, D>,
1569 T2: fidl::encoding::Encode<u16, D>,
1570 T3: fidl::encoding::Encode<u16, D>,
1571 T4: fidl::encoding::Encode<u32, D>,
1572 > fidl::encoding::Encode<McuVersionInfo, D> for (T0, T1, T2, T3, T4)
1573 {
1574 #[inline]
1575 unsafe fn encode(
1576 self,
1577 encoder: &mut fidl::encoding::Encoder<'_, D>,
1578 offset: usize,
1579 depth: fidl::encoding::Depth,
1580 ) -> fidl::Result<()> {
1581 encoder.debug_check_bounds::<McuVersionInfo>(offset);
1582 self.0.encode(encoder, offset + 0, depth)?;
1586 self.1.encode(encoder, offset + 2, depth)?;
1587 self.2.encode(encoder, offset + 4, depth)?;
1588 self.3.encode(encoder, offset + 6, depth)?;
1589 self.4.encode(encoder, offset + 8, depth)?;
1590 Ok(())
1591 }
1592 }
1593
1594 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for McuVersionInfo {
1595 #[inline(always)]
1596 fn new_empty() -> Self {
1597 Self {
1598 hardware_type: fidl::new_empty!(u16, D),
1599 hardware_version: fidl::new_empty!(u16, D),
1600 bootloader_version: fidl::new_empty!(u16, D),
1601 os_version: fidl::new_empty!(u16, D),
1602 variant_version: fidl::new_empty!(u32, D),
1603 }
1604 }
1605
1606 #[inline]
1607 unsafe fn decode(
1608 &mut self,
1609 decoder: &mut fidl::encoding::Decoder<'_, D>,
1610 offset: usize,
1611 _depth: fidl::encoding::Depth,
1612 ) -> fidl::Result<()> {
1613 decoder.debug_check_bounds::<Self>(offset);
1614 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
1615 unsafe {
1618 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 12);
1619 }
1620 Ok(())
1621 }
1622 }
1623
1624 impl DataChannelReadRequest {
1625 #[inline(always)]
1626 fn max_ordinal_present(&self) -> u64 {
1627 if let Some(_) = self.blocking {
1628 return 1;
1629 }
1630 0
1631 }
1632 }
1633
1634 impl fidl::encoding::ValueTypeMarker for DataChannelReadRequest {
1635 type Borrowed<'a> = &'a Self;
1636 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1637 value
1638 }
1639 }
1640
1641 unsafe impl fidl::encoding::TypeMarker for DataChannelReadRequest {
1642 type Owned = Self;
1643
1644 #[inline(always)]
1645 fn inline_align(_context: fidl::encoding::Context) -> usize {
1646 8
1647 }
1648
1649 #[inline(always)]
1650 fn inline_size(_context: fidl::encoding::Context) -> usize {
1651 16
1652 }
1653 }
1654
1655 unsafe impl<D: fidl::encoding::ResourceDialect>
1656 fidl::encoding::Encode<DataChannelReadRequest, D> for &DataChannelReadRequest
1657 {
1658 unsafe fn encode(
1659 self,
1660 encoder: &mut fidl::encoding::Encoder<'_, D>,
1661 offset: usize,
1662 mut depth: fidl::encoding::Depth,
1663 ) -> fidl::Result<()> {
1664 encoder.debug_check_bounds::<DataChannelReadRequest>(offset);
1665 let max_ordinal: u64 = self.max_ordinal_present();
1667 encoder.write_num(max_ordinal, offset);
1668 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
1669 if max_ordinal == 0 {
1671 return Ok(());
1672 }
1673 depth.increment()?;
1674 let envelope_size = 8;
1675 let bytes_len = max_ordinal as usize * envelope_size;
1676 #[allow(unused_variables)]
1677 let offset = encoder.out_of_line_offset(bytes_len);
1678 let mut _prev_end_offset: usize = 0;
1679 if 1 > max_ordinal {
1680 return Ok(());
1681 }
1682
1683 let cur_offset: usize = (1 - 1) * envelope_size;
1686
1687 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
1689
1690 fidl::encoding::encode_in_envelope_optional::<bool, D>(
1695 self.blocking.as_ref().map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
1696 encoder,
1697 offset + cur_offset,
1698 depth,
1699 )?;
1700
1701 _prev_end_offset = cur_offset + envelope_size;
1702
1703 Ok(())
1704 }
1705 }
1706
1707 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1708 for DataChannelReadRequest
1709 {
1710 #[inline(always)]
1711 fn new_empty() -> Self {
1712 Self::default()
1713 }
1714
1715 unsafe fn decode(
1716 &mut self,
1717 decoder: &mut fidl::encoding::Decoder<'_, D>,
1718 offset: usize,
1719 mut depth: fidl::encoding::Depth,
1720 ) -> fidl::Result<()> {
1721 decoder.debug_check_bounds::<Self>(offset);
1722 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
1723 None => return Err(fidl::Error::NotNullable),
1724 Some(len) => len,
1725 };
1726 if len == 0 {
1728 return Ok(());
1729 };
1730 depth.increment()?;
1731 let envelope_size = 8;
1732 let bytes_len = len * envelope_size;
1733 let offset = decoder.out_of_line_offset(bytes_len)?;
1734 let mut _next_ordinal_to_read = 0;
1736 let mut next_offset = offset;
1737 let end_offset = offset + bytes_len;
1738 _next_ordinal_to_read += 1;
1739 if next_offset >= end_offset {
1740 return Ok(());
1741 }
1742
1743 while _next_ordinal_to_read < 1 {
1745 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
1746 _next_ordinal_to_read += 1;
1747 next_offset += envelope_size;
1748 }
1749
1750 let next_out_of_line = decoder.next_out_of_line();
1751 let handles_before = decoder.remaining_handles();
1752 if let Some((inlined, num_bytes, num_handles)) =
1753 fidl::encoding::decode_envelope_header(decoder, next_offset)?
1754 {
1755 let member_inline_size =
1756 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
1757 if inlined != (member_inline_size <= 4) {
1758 return Err(fidl::Error::InvalidInlineBitInEnvelope);
1759 }
1760 let inner_offset;
1761 let mut inner_depth = depth.clone();
1762 if inlined {
1763 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
1764 inner_offset = next_offset;
1765 } else {
1766 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
1767 inner_depth.increment()?;
1768 }
1769 let val_ref = self.blocking.get_or_insert_with(|| fidl::new_empty!(bool, D));
1770 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
1771 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
1772 {
1773 return Err(fidl::Error::InvalidNumBytesInEnvelope);
1774 }
1775 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
1776 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
1777 }
1778 }
1779
1780 next_offset += envelope_size;
1781
1782 while next_offset < end_offset {
1784 _next_ordinal_to_read += 1;
1785 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
1786 next_offset += envelope_size;
1787 }
1788
1789 Ok(())
1790 }
1791 }
1792
1793 impl DataChannelWriteRequest {
1794 #[inline(always)]
1795 fn max_ordinal_present(&self) -> u64 {
1796 if let Some(_) = self.data {
1797 return 1;
1798 }
1799 0
1800 }
1801 }
1802
1803 impl fidl::encoding::ValueTypeMarker for DataChannelWriteRequest {
1804 type Borrowed<'a> = &'a Self;
1805 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1806 value
1807 }
1808 }
1809
1810 unsafe impl fidl::encoding::TypeMarker for DataChannelWriteRequest {
1811 type Owned = Self;
1812
1813 #[inline(always)]
1814 fn inline_align(_context: fidl::encoding::Context) -> usize {
1815 8
1816 }
1817
1818 #[inline(always)]
1819 fn inline_size(_context: fidl::encoding::Context) -> usize {
1820 16
1821 }
1822 }
1823
1824 unsafe impl<D: fidl::encoding::ResourceDialect>
1825 fidl::encoding::Encode<DataChannelWriteRequest, D> for &DataChannelWriteRequest
1826 {
1827 unsafe fn encode(
1828 self,
1829 encoder: &mut fidl::encoding::Encoder<'_, D>,
1830 offset: usize,
1831 mut depth: fidl::encoding::Depth,
1832 ) -> fidl::Result<()> {
1833 encoder.debug_check_bounds::<DataChannelWriteRequest>(offset);
1834 let max_ordinal: u64 = self.max_ordinal_present();
1836 encoder.write_num(max_ordinal, offset);
1837 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
1838 if max_ordinal == 0 {
1840 return Ok(());
1841 }
1842 depth.increment()?;
1843 let envelope_size = 8;
1844 let bytes_len = max_ordinal as usize * envelope_size;
1845 #[allow(unused_variables)]
1846 let offset = encoder.out_of_line_offset(bytes_len);
1847 let mut _prev_end_offset: usize = 0;
1848 if 1 > max_ordinal {
1849 return Ok(());
1850 }
1851
1852 let cur_offset: usize = (1 - 1) * envelope_size;
1855
1856 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
1858
1859 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<u8, 255>, D>(
1864 self.data.as_ref().map(
1865 <fidl::encoding::Vector<u8, 255> as fidl::encoding::ValueTypeMarker>::borrow,
1866 ),
1867 encoder,
1868 offset + cur_offset,
1869 depth,
1870 )?;
1871
1872 _prev_end_offset = cur_offset + envelope_size;
1873
1874 Ok(())
1875 }
1876 }
1877
1878 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1879 for DataChannelWriteRequest
1880 {
1881 #[inline(always)]
1882 fn new_empty() -> Self {
1883 Self::default()
1884 }
1885
1886 unsafe fn decode(
1887 &mut self,
1888 decoder: &mut fidl::encoding::Decoder<'_, D>,
1889 offset: usize,
1890 mut depth: fidl::encoding::Depth,
1891 ) -> fidl::Result<()> {
1892 decoder.debug_check_bounds::<Self>(offset);
1893 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
1894 None => return Err(fidl::Error::NotNullable),
1895 Some(len) => len,
1896 };
1897 if len == 0 {
1899 return Ok(());
1900 };
1901 depth.increment()?;
1902 let envelope_size = 8;
1903 let bytes_len = len * envelope_size;
1904 let offset = decoder.out_of_line_offset(bytes_len)?;
1905 let mut _next_ordinal_to_read = 0;
1907 let mut next_offset = offset;
1908 let end_offset = offset + bytes_len;
1909 _next_ordinal_to_read += 1;
1910 if next_offset >= end_offset {
1911 return Ok(());
1912 }
1913
1914 while _next_ordinal_to_read < 1 {
1916 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
1917 _next_ordinal_to_read += 1;
1918 next_offset += envelope_size;
1919 }
1920
1921 let next_out_of_line = decoder.next_out_of_line();
1922 let handles_before = decoder.remaining_handles();
1923 if let Some((inlined, num_bytes, num_handles)) =
1924 fidl::encoding::decode_envelope_header(decoder, next_offset)?
1925 {
1926 let member_inline_size =
1927 <fidl::encoding::Vector<u8, 255> as fidl::encoding::TypeMarker>::inline_size(
1928 decoder.context,
1929 );
1930 if inlined != (member_inline_size <= 4) {
1931 return Err(fidl::Error::InvalidInlineBitInEnvelope);
1932 }
1933 let inner_offset;
1934 let mut inner_depth = depth.clone();
1935 if inlined {
1936 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
1937 inner_offset = next_offset;
1938 } else {
1939 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
1940 inner_depth.increment()?;
1941 }
1942 let val_ref = self
1943 .data
1944 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<u8, 255>, D));
1945 fidl::decode!(fidl::encoding::Vector<u8, 255>, D, val_ref, decoder, inner_offset, inner_depth)?;
1946 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
1947 {
1948 return Err(fidl::Error::InvalidNumBytesInEnvelope);
1949 }
1950 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
1951 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
1952 }
1953 }
1954
1955 next_offset += envelope_size;
1956
1957 while next_offset < end_offset {
1959 _next_ordinal_to_read += 1;
1960 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
1961 next_offset += envelope_size;
1962 }
1963
1964 Ok(())
1965 }
1966 }
1967
1968 impl DataChannelGetIdentifierResponse {
1969 #[inline(always)]
1970 fn max_ordinal_present(&self) -> u64 {
1971 if let Some(_) = self.name {
1972 return 1;
1973 }
1974 0
1975 }
1976 }
1977
1978 impl fidl::encoding::ValueTypeMarker for DataChannelGetIdentifierResponse {
1979 type Borrowed<'a> = &'a Self;
1980 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1981 value
1982 }
1983 }
1984
1985 unsafe impl fidl::encoding::TypeMarker for DataChannelGetIdentifierResponse {
1986 type Owned = Self;
1987
1988 #[inline(always)]
1989 fn inline_align(_context: fidl::encoding::Context) -> usize {
1990 8
1991 }
1992
1993 #[inline(always)]
1994 fn inline_size(_context: fidl::encoding::Context) -> usize {
1995 16
1996 }
1997 }
1998
1999 unsafe impl<D: fidl::encoding::ResourceDialect>
2000 fidl::encoding::Encode<DataChannelGetIdentifierResponse, D>
2001 for &DataChannelGetIdentifierResponse
2002 {
2003 unsafe fn encode(
2004 self,
2005 encoder: &mut fidl::encoding::Encoder<'_, D>,
2006 offset: usize,
2007 mut depth: fidl::encoding::Depth,
2008 ) -> fidl::Result<()> {
2009 encoder.debug_check_bounds::<DataChannelGetIdentifierResponse>(offset);
2010 let max_ordinal: u64 = self.max_ordinal_present();
2012 encoder.write_num(max_ordinal, offset);
2013 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
2014 if max_ordinal == 0 {
2016 return Ok(());
2017 }
2018 depth.increment()?;
2019 let envelope_size = 8;
2020 let bytes_len = max_ordinal as usize * envelope_size;
2021 #[allow(unused_variables)]
2022 let offset = encoder.out_of_line_offset(bytes_len);
2023 let mut _prev_end_offset: usize = 0;
2024 if 1 > max_ordinal {
2025 return Ok(());
2026 }
2027
2028 let cur_offset: usize = (1 - 1) * envelope_size;
2031
2032 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2034
2035 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
2040 self.name.as_ref().map(
2041 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
2042 ),
2043 encoder,
2044 offset + cur_offset,
2045 depth,
2046 )?;
2047
2048 _prev_end_offset = cur_offset + envelope_size;
2049
2050 Ok(())
2051 }
2052 }
2053
2054 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2055 for DataChannelGetIdentifierResponse
2056 {
2057 #[inline(always)]
2058 fn new_empty() -> Self {
2059 Self::default()
2060 }
2061
2062 unsafe fn decode(
2063 &mut self,
2064 decoder: &mut fidl::encoding::Decoder<'_, D>,
2065 offset: usize,
2066 mut depth: fidl::encoding::Depth,
2067 ) -> fidl::Result<()> {
2068 decoder.debug_check_bounds::<Self>(offset);
2069 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
2070 None => return Err(fidl::Error::NotNullable),
2071 Some(len) => len,
2072 };
2073 if len == 0 {
2075 return Ok(());
2076 };
2077 depth.increment()?;
2078 let envelope_size = 8;
2079 let bytes_len = len * envelope_size;
2080 let offset = decoder.out_of_line_offset(bytes_len)?;
2081 let mut _next_ordinal_to_read = 0;
2083 let mut next_offset = offset;
2084 let end_offset = offset + bytes_len;
2085 _next_ordinal_to_read += 1;
2086 if next_offset >= end_offset {
2087 return Ok(());
2088 }
2089
2090 while _next_ordinal_to_read < 1 {
2092 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2093 _next_ordinal_to_read += 1;
2094 next_offset += envelope_size;
2095 }
2096
2097 let next_out_of_line = decoder.next_out_of_line();
2098 let handles_before = decoder.remaining_handles();
2099 if let Some((inlined, num_bytes, num_handles)) =
2100 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2101 {
2102 let member_inline_size =
2103 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
2104 decoder.context,
2105 );
2106 if inlined != (member_inline_size <= 4) {
2107 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2108 }
2109 let inner_offset;
2110 let mut inner_depth = depth.clone();
2111 if inlined {
2112 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2113 inner_offset = next_offset;
2114 } else {
2115 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2116 inner_depth.increment()?;
2117 }
2118 let val_ref = self
2119 .name
2120 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
2121 fidl::decode!(
2122 fidl::encoding::BoundedString<100>,
2123 D,
2124 val_ref,
2125 decoder,
2126 inner_offset,
2127 inner_depth
2128 )?;
2129 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2130 {
2131 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2132 }
2133 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2134 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2135 }
2136 }
2137
2138 next_offset += envelope_size;
2139
2140 while next_offset < end_offset {
2142 _next_ordinal_to_read += 1;
2143 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2144 next_offset += envelope_size;
2145 }
2146
2147 Ok(())
2148 }
2149 }
2150
2151 impl DisplayDeviceSetDisplaySelectRequest {
2152 #[inline(always)]
2153 fn max_ordinal_present(&self) -> u64 {
2154 if let Some(_) = self.display_select {
2155 return 1;
2156 }
2157 0
2158 }
2159 }
2160
2161 impl fidl::encoding::ValueTypeMarker for DisplayDeviceSetDisplaySelectRequest {
2162 type Borrowed<'a> = &'a Self;
2163 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2164 value
2165 }
2166 }
2167
2168 unsafe impl fidl::encoding::TypeMarker for DisplayDeviceSetDisplaySelectRequest {
2169 type Owned = Self;
2170
2171 #[inline(always)]
2172 fn inline_align(_context: fidl::encoding::Context) -> usize {
2173 8
2174 }
2175
2176 #[inline(always)]
2177 fn inline_size(_context: fidl::encoding::Context) -> usize {
2178 16
2179 }
2180 }
2181
2182 unsafe impl<D: fidl::encoding::ResourceDialect>
2183 fidl::encoding::Encode<DisplayDeviceSetDisplaySelectRequest, D>
2184 for &DisplayDeviceSetDisplaySelectRequest
2185 {
2186 unsafe fn encode(
2187 self,
2188 encoder: &mut fidl::encoding::Encoder<'_, D>,
2189 offset: usize,
2190 mut depth: fidl::encoding::Depth,
2191 ) -> fidl::Result<()> {
2192 encoder.debug_check_bounds::<DisplayDeviceSetDisplaySelectRequest>(offset);
2193 let max_ordinal: u64 = self.max_ordinal_present();
2195 encoder.write_num(max_ordinal, offset);
2196 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
2197 if max_ordinal == 0 {
2199 return Ok(());
2200 }
2201 depth.increment()?;
2202 let envelope_size = 8;
2203 let bytes_len = max_ordinal as usize * envelope_size;
2204 #[allow(unused_variables)]
2205 let offset = encoder.out_of_line_offset(bytes_len);
2206 let mut _prev_end_offset: usize = 0;
2207 if 1 > max_ordinal {
2208 return Ok(());
2209 }
2210
2211 let cur_offset: usize = (1 - 1) * envelope_size;
2214
2215 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2217
2218 fidl::encoding::encode_in_envelope_optional::<DisplaySelect, D>(
2223 self.display_select
2224 .as_ref()
2225 .map(<DisplaySelect as fidl::encoding::ValueTypeMarker>::borrow),
2226 encoder,
2227 offset + cur_offset,
2228 depth,
2229 )?;
2230
2231 _prev_end_offset = cur_offset + envelope_size;
2232
2233 Ok(())
2234 }
2235 }
2236
2237 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2238 for DisplayDeviceSetDisplaySelectRequest
2239 {
2240 #[inline(always)]
2241 fn new_empty() -> Self {
2242 Self::default()
2243 }
2244
2245 unsafe fn decode(
2246 &mut self,
2247 decoder: &mut fidl::encoding::Decoder<'_, D>,
2248 offset: usize,
2249 mut depth: fidl::encoding::Depth,
2250 ) -> fidl::Result<()> {
2251 decoder.debug_check_bounds::<Self>(offset);
2252 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
2253 None => return Err(fidl::Error::NotNullable),
2254 Some(len) => len,
2255 };
2256 if len == 0 {
2258 return Ok(());
2259 };
2260 depth.increment()?;
2261 let envelope_size = 8;
2262 let bytes_len = len * envelope_size;
2263 let offset = decoder.out_of_line_offset(bytes_len)?;
2264 let mut _next_ordinal_to_read = 0;
2266 let mut next_offset = offset;
2267 let end_offset = offset + bytes_len;
2268 _next_ordinal_to_read += 1;
2269 if next_offset >= end_offset {
2270 return Ok(());
2271 }
2272
2273 while _next_ordinal_to_read < 1 {
2275 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2276 _next_ordinal_to_read += 1;
2277 next_offset += envelope_size;
2278 }
2279
2280 let next_out_of_line = decoder.next_out_of_line();
2281 let handles_before = decoder.remaining_handles();
2282 if let Some((inlined, num_bytes, num_handles)) =
2283 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2284 {
2285 let member_inline_size =
2286 <DisplaySelect as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2287 if inlined != (member_inline_size <= 4) {
2288 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2289 }
2290 let inner_offset;
2291 let mut inner_depth = depth.clone();
2292 if inlined {
2293 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2294 inner_offset = next_offset;
2295 } else {
2296 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2297 inner_depth.increment()?;
2298 }
2299 let val_ref =
2300 self.display_select.get_or_insert_with(|| fidl::new_empty!(DisplaySelect, D));
2301 fidl::decode!(DisplaySelect, D, val_ref, decoder, inner_offset, inner_depth)?;
2302 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2303 {
2304 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2305 }
2306 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2307 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2308 }
2309 }
2310
2311 next_offset += envelope_size;
2312
2313 while next_offset < end_offset {
2315 _next_ordinal_to_read += 1;
2316 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2317 next_offset += envelope_size;
2318 }
2319
2320 Ok(())
2321 }
2322 }
2323
2324 impl DisplayDeviceGetDisplaySelectResponse {
2325 #[inline(always)]
2326 fn max_ordinal_present(&self) -> u64 {
2327 if let Some(_) = self.display_select {
2328 return 1;
2329 }
2330 0
2331 }
2332 }
2333
2334 impl fidl::encoding::ValueTypeMarker for DisplayDeviceGetDisplaySelectResponse {
2335 type Borrowed<'a> = &'a Self;
2336 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2337 value
2338 }
2339 }
2340
2341 unsafe impl fidl::encoding::TypeMarker for DisplayDeviceGetDisplaySelectResponse {
2342 type Owned = Self;
2343
2344 #[inline(always)]
2345 fn inline_align(_context: fidl::encoding::Context) -> usize {
2346 8
2347 }
2348
2349 #[inline(always)]
2350 fn inline_size(_context: fidl::encoding::Context) -> usize {
2351 16
2352 }
2353 }
2354
2355 unsafe impl<D: fidl::encoding::ResourceDialect>
2356 fidl::encoding::Encode<DisplayDeviceGetDisplaySelectResponse, D>
2357 for &DisplayDeviceGetDisplaySelectResponse
2358 {
2359 unsafe fn encode(
2360 self,
2361 encoder: &mut fidl::encoding::Encoder<'_, D>,
2362 offset: usize,
2363 mut depth: fidl::encoding::Depth,
2364 ) -> fidl::Result<()> {
2365 encoder.debug_check_bounds::<DisplayDeviceGetDisplaySelectResponse>(offset);
2366 let max_ordinal: u64 = self.max_ordinal_present();
2368 encoder.write_num(max_ordinal, offset);
2369 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
2370 if max_ordinal == 0 {
2372 return Ok(());
2373 }
2374 depth.increment()?;
2375 let envelope_size = 8;
2376 let bytes_len = max_ordinal as usize * envelope_size;
2377 #[allow(unused_variables)]
2378 let offset = encoder.out_of_line_offset(bytes_len);
2379 let mut _prev_end_offset: usize = 0;
2380 if 1 > max_ordinal {
2381 return Ok(());
2382 }
2383
2384 let cur_offset: usize = (1 - 1) * envelope_size;
2387
2388 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2390
2391 fidl::encoding::encode_in_envelope_optional::<DisplaySelect, D>(
2396 self.display_select
2397 .as_ref()
2398 .map(<DisplaySelect as fidl::encoding::ValueTypeMarker>::borrow),
2399 encoder,
2400 offset + cur_offset,
2401 depth,
2402 )?;
2403
2404 _prev_end_offset = cur_offset + envelope_size;
2405
2406 Ok(())
2407 }
2408 }
2409
2410 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2411 for DisplayDeviceGetDisplaySelectResponse
2412 {
2413 #[inline(always)]
2414 fn new_empty() -> Self {
2415 Self::default()
2416 }
2417
2418 unsafe fn decode(
2419 &mut self,
2420 decoder: &mut fidl::encoding::Decoder<'_, D>,
2421 offset: usize,
2422 mut depth: fidl::encoding::Depth,
2423 ) -> fidl::Result<()> {
2424 decoder.debug_check_bounds::<Self>(offset);
2425 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
2426 None => return Err(fidl::Error::NotNullable),
2427 Some(len) => len,
2428 };
2429 if len == 0 {
2431 return Ok(());
2432 };
2433 depth.increment()?;
2434 let envelope_size = 8;
2435 let bytes_len = len * envelope_size;
2436 let offset = decoder.out_of_line_offset(bytes_len)?;
2437 let mut _next_ordinal_to_read = 0;
2439 let mut next_offset = offset;
2440 let end_offset = offset + bytes_len;
2441 _next_ordinal_to_read += 1;
2442 if next_offset >= end_offset {
2443 return Ok(());
2444 }
2445
2446 while _next_ordinal_to_read < 1 {
2448 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2449 _next_ordinal_to_read += 1;
2450 next_offset += envelope_size;
2451 }
2452
2453 let next_out_of_line = decoder.next_out_of_line();
2454 let handles_before = decoder.remaining_handles();
2455 if let Some((inlined, num_bytes, num_handles)) =
2456 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2457 {
2458 let member_inline_size =
2459 <DisplaySelect as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2460 if inlined != (member_inline_size <= 4) {
2461 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2462 }
2463 let inner_offset;
2464 let mut inner_depth = depth.clone();
2465 if inlined {
2466 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2467 inner_offset = next_offset;
2468 } else {
2469 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2470 inner_depth.increment()?;
2471 }
2472 let val_ref =
2473 self.display_select.get_or_insert_with(|| fidl::new_empty!(DisplaySelect, D));
2474 fidl::decode!(DisplaySelect, D, val_ref, decoder, inner_offset, inner_depth)?;
2475 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2476 {
2477 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2478 }
2479 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2480 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2481 }
2482 }
2483
2484 next_offset += envelope_size;
2485
2486 while next_offset < end_offset {
2488 _next_ordinal_to_read += 1;
2489 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2490 next_offset += envelope_size;
2491 }
2492
2493 Ok(())
2494 }
2495 }
2496
2497 impl DisplayState {
2498 #[inline(always)]
2499 fn max_ordinal_present(&self) -> u64 {
2500 if let Some(_) = self.mode {
2501 return 1;
2502 }
2503 0
2504 }
2505 }
2506
2507 impl fidl::encoding::ValueTypeMarker for DisplayState {
2508 type Borrowed<'a> = &'a Self;
2509 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2510 value
2511 }
2512 }
2513
2514 unsafe impl fidl::encoding::TypeMarker for DisplayState {
2515 type Owned = Self;
2516
2517 #[inline(always)]
2518 fn inline_align(_context: fidl::encoding::Context) -> usize {
2519 8
2520 }
2521
2522 #[inline(always)]
2523 fn inline_size(_context: fidl::encoding::Context) -> usize {
2524 16
2525 }
2526 }
2527
2528 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<DisplayState, D>
2529 for &DisplayState
2530 {
2531 unsafe fn encode(
2532 self,
2533 encoder: &mut fidl::encoding::Encoder<'_, D>,
2534 offset: usize,
2535 mut depth: fidl::encoding::Depth,
2536 ) -> fidl::Result<()> {
2537 encoder.debug_check_bounds::<DisplayState>(offset);
2538 let max_ordinal: u64 = self.max_ordinal_present();
2540 encoder.write_num(max_ordinal, offset);
2541 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
2542 if max_ordinal == 0 {
2544 return Ok(());
2545 }
2546 depth.increment()?;
2547 let envelope_size = 8;
2548 let bytes_len = max_ordinal as usize * envelope_size;
2549 #[allow(unused_variables)]
2550 let offset = encoder.out_of_line_offset(bytes_len);
2551 let mut _prev_end_offset: usize = 0;
2552 if 1 > max_ordinal {
2553 return Ok(());
2554 }
2555
2556 let cur_offset: usize = (1 - 1) * envelope_size;
2559
2560 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2562
2563 fidl::encoding::encode_in_envelope_optional::<DisplayMode, D>(
2568 self.mode.as_ref().map(<DisplayMode as fidl::encoding::ValueTypeMarker>::borrow),
2569 encoder,
2570 offset + cur_offset,
2571 depth,
2572 )?;
2573
2574 _prev_end_offset = cur_offset + envelope_size;
2575
2576 Ok(())
2577 }
2578 }
2579
2580 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for DisplayState {
2581 #[inline(always)]
2582 fn new_empty() -> Self {
2583 Self::default()
2584 }
2585
2586 unsafe fn decode(
2587 &mut self,
2588 decoder: &mut fidl::encoding::Decoder<'_, D>,
2589 offset: usize,
2590 mut depth: fidl::encoding::Depth,
2591 ) -> fidl::Result<()> {
2592 decoder.debug_check_bounds::<Self>(offset);
2593 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
2594 None => return Err(fidl::Error::NotNullable),
2595 Some(len) => len,
2596 };
2597 if len == 0 {
2599 return Ok(());
2600 };
2601 depth.increment()?;
2602 let envelope_size = 8;
2603 let bytes_len = len * envelope_size;
2604 let offset = decoder.out_of_line_offset(bytes_len)?;
2605 let mut _next_ordinal_to_read = 0;
2607 let mut next_offset = offset;
2608 let end_offset = offset + bytes_len;
2609 _next_ordinal_to_read += 1;
2610 if next_offset >= end_offset {
2611 return Ok(());
2612 }
2613
2614 while _next_ordinal_to_read < 1 {
2616 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2617 _next_ordinal_to_read += 1;
2618 next_offset += envelope_size;
2619 }
2620
2621 let next_out_of_line = decoder.next_out_of_line();
2622 let handles_before = decoder.remaining_handles();
2623 if let Some((inlined, num_bytes, num_handles)) =
2624 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2625 {
2626 let member_inline_size =
2627 <DisplayMode as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2628 if inlined != (member_inline_size <= 4) {
2629 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2630 }
2631 let inner_offset;
2632 let mut inner_depth = depth.clone();
2633 if inlined {
2634 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2635 inner_offset = next_offset;
2636 } else {
2637 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2638 inner_depth.increment()?;
2639 }
2640 let val_ref = self.mode.get_or_insert_with(|| fidl::new_empty!(DisplayMode, D));
2641 fidl::decode!(DisplayMode, D, val_ref, decoder, inner_offset, inner_depth)?;
2642 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2643 {
2644 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2645 }
2646 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2647 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2648 }
2649 }
2650
2651 next_offset += envelope_size;
2652
2653 while next_offset < end_offset {
2655 _next_ordinal_to_read += 1;
2656 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2657 next_offset += envelope_size;
2658 }
2659
2660 Ok(())
2661 }
2662 }
2663
2664 impl DisplaySyncInfo {
2665 #[inline(always)]
2666 fn max_ordinal_present(&self) -> u64 {
2667 if let Some(_) = self.always_on_display_brightness {
2668 return 4;
2669 }
2670 if let Some(_) = self.normal_brightness {
2671 return 3;
2672 }
2673 if let Some(_) = self.panel_mode {
2674 return 2;
2675 }
2676 if let Some(_) = self.display_mode {
2677 return 1;
2678 }
2679 0
2680 }
2681 }
2682
2683 impl fidl::encoding::ValueTypeMarker for DisplaySyncInfo {
2684 type Borrowed<'a> = &'a Self;
2685 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2686 value
2687 }
2688 }
2689
2690 unsafe impl fidl::encoding::TypeMarker for DisplaySyncInfo {
2691 type Owned = Self;
2692
2693 #[inline(always)]
2694 fn inline_align(_context: fidl::encoding::Context) -> usize {
2695 8
2696 }
2697
2698 #[inline(always)]
2699 fn inline_size(_context: fidl::encoding::Context) -> usize {
2700 16
2701 }
2702 }
2703
2704 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<DisplaySyncInfo, D>
2705 for &DisplaySyncInfo
2706 {
2707 unsafe fn encode(
2708 self,
2709 encoder: &mut fidl::encoding::Encoder<'_, D>,
2710 offset: usize,
2711 mut depth: fidl::encoding::Depth,
2712 ) -> fidl::Result<()> {
2713 encoder.debug_check_bounds::<DisplaySyncInfo>(offset);
2714 let max_ordinal: u64 = self.max_ordinal_present();
2716 encoder.write_num(max_ordinal, offset);
2717 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
2718 if max_ordinal == 0 {
2720 return Ok(());
2721 }
2722 depth.increment()?;
2723 let envelope_size = 8;
2724 let bytes_len = max_ordinal as usize * envelope_size;
2725 #[allow(unused_variables)]
2726 let offset = encoder.out_of_line_offset(bytes_len);
2727 let mut _prev_end_offset: usize = 0;
2728 if 1 > max_ordinal {
2729 return Ok(());
2730 }
2731
2732 let cur_offset: usize = (1 - 1) * envelope_size;
2735
2736 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2738
2739 fidl::encoding::encode_in_envelope_optional::<DisplayMode, D>(
2744 self.display_mode
2745 .as_ref()
2746 .map(<DisplayMode as fidl::encoding::ValueTypeMarker>::borrow),
2747 encoder,
2748 offset + cur_offset,
2749 depth,
2750 )?;
2751
2752 _prev_end_offset = cur_offset + envelope_size;
2753 if 2 > max_ordinal {
2754 return Ok(());
2755 }
2756
2757 let cur_offset: usize = (2 - 1) * envelope_size;
2760
2761 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2763
2764 fidl::encoding::encode_in_envelope_optional::<u8, D>(
2769 self.panel_mode.as_ref().map(<u8 as fidl::encoding::ValueTypeMarker>::borrow),
2770 encoder,
2771 offset + cur_offset,
2772 depth,
2773 )?;
2774
2775 _prev_end_offset = cur_offset + envelope_size;
2776 if 3 > max_ordinal {
2777 return Ok(());
2778 }
2779
2780 let cur_offset: usize = (3 - 1) * envelope_size;
2783
2784 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2786
2787 fidl::encoding::encode_in_envelope_optional::<u16, D>(
2792 self.normal_brightness
2793 .as_ref()
2794 .map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
2795 encoder,
2796 offset + cur_offset,
2797 depth,
2798 )?;
2799
2800 _prev_end_offset = cur_offset + envelope_size;
2801 if 4 > max_ordinal {
2802 return Ok(());
2803 }
2804
2805 let cur_offset: usize = (4 - 1) * envelope_size;
2808
2809 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2811
2812 fidl::encoding::encode_in_envelope_optional::<u16, D>(
2817 self.always_on_display_brightness
2818 .as_ref()
2819 .map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
2820 encoder,
2821 offset + cur_offset,
2822 depth,
2823 )?;
2824
2825 _prev_end_offset = cur_offset + envelope_size;
2826
2827 Ok(())
2828 }
2829 }
2830
2831 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for DisplaySyncInfo {
2832 #[inline(always)]
2833 fn new_empty() -> Self {
2834 Self::default()
2835 }
2836
2837 unsafe fn decode(
2838 &mut self,
2839 decoder: &mut fidl::encoding::Decoder<'_, D>,
2840 offset: usize,
2841 mut depth: fidl::encoding::Depth,
2842 ) -> fidl::Result<()> {
2843 decoder.debug_check_bounds::<Self>(offset);
2844 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
2845 None => return Err(fidl::Error::NotNullable),
2846 Some(len) => len,
2847 };
2848 if len == 0 {
2850 return Ok(());
2851 };
2852 depth.increment()?;
2853 let envelope_size = 8;
2854 let bytes_len = len * envelope_size;
2855 let offset = decoder.out_of_line_offset(bytes_len)?;
2856 let mut _next_ordinal_to_read = 0;
2858 let mut next_offset = offset;
2859 let end_offset = offset + bytes_len;
2860 _next_ordinal_to_read += 1;
2861 if next_offset >= end_offset {
2862 return Ok(());
2863 }
2864
2865 while _next_ordinal_to_read < 1 {
2867 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2868 _next_ordinal_to_read += 1;
2869 next_offset += envelope_size;
2870 }
2871
2872 let next_out_of_line = decoder.next_out_of_line();
2873 let handles_before = decoder.remaining_handles();
2874 if let Some((inlined, num_bytes, num_handles)) =
2875 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2876 {
2877 let member_inline_size =
2878 <DisplayMode as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2879 if inlined != (member_inline_size <= 4) {
2880 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2881 }
2882 let inner_offset;
2883 let mut inner_depth = depth.clone();
2884 if inlined {
2885 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2886 inner_offset = next_offset;
2887 } else {
2888 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2889 inner_depth.increment()?;
2890 }
2891 let val_ref =
2892 self.display_mode.get_or_insert_with(|| fidl::new_empty!(DisplayMode, D));
2893 fidl::decode!(DisplayMode, D, val_ref, decoder, inner_offset, inner_depth)?;
2894 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2895 {
2896 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2897 }
2898 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2899 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2900 }
2901 }
2902
2903 next_offset += envelope_size;
2904 _next_ordinal_to_read += 1;
2905 if next_offset >= end_offset {
2906 return Ok(());
2907 }
2908
2909 while _next_ordinal_to_read < 2 {
2911 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2912 _next_ordinal_to_read += 1;
2913 next_offset += envelope_size;
2914 }
2915
2916 let next_out_of_line = decoder.next_out_of_line();
2917 let handles_before = decoder.remaining_handles();
2918 if let Some((inlined, num_bytes, num_handles)) =
2919 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2920 {
2921 let member_inline_size =
2922 <u8 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2923 if inlined != (member_inline_size <= 4) {
2924 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2925 }
2926 let inner_offset;
2927 let mut inner_depth = depth.clone();
2928 if inlined {
2929 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2930 inner_offset = next_offset;
2931 } else {
2932 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2933 inner_depth.increment()?;
2934 }
2935 let val_ref = self.panel_mode.get_or_insert_with(|| fidl::new_empty!(u8, D));
2936 fidl::decode!(u8, D, val_ref, decoder, inner_offset, inner_depth)?;
2937 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2938 {
2939 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2940 }
2941 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2942 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2943 }
2944 }
2945
2946 next_offset += envelope_size;
2947 _next_ordinal_to_read += 1;
2948 if next_offset >= end_offset {
2949 return Ok(());
2950 }
2951
2952 while _next_ordinal_to_read < 3 {
2954 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2955 _next_ordinal_to_read += 1;
2956 next_offset += envelope_size;
2957 }
2958
2959 let next_out_of_line = decoder.next_out_of_line();
2960 let handles_before = decoder.remaining_handles();
2961 if let Some((inlined, num_bytes, num_handles)) =
2962 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2963 {
2964 let member_inline_size =
2965 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2966 if inlined != (member_inline_size <= 4) {
2967 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2968 }
2969 let inner_offset;
2970 let mut inner_depth = depth.clone();
2971 if inlined {
2972 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2973 inner_offset = next_offset;
2974 } else {
2975 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2976 inner_depth.increment()?;
2977 }
2978 let val_ref =
2979 self.normal_brightness.get_or_insert_with(|| fidl::new_empty!(u16, D));
2980 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
2981 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2982 {
2983 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2984 }
2985 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2986 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2987 }
2988 }
2989
2990 next_offset += envelope_size;
2991 _next_ordinal_to_read += 1;
2992 if next_offset >= end_offset {
2993 return Ok(());
2994 }
2995
2996 while _next_ordinal_to_read < 4 {
2998 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2999 _next_ordinal_to_read += 1;
3000 next_offset += envelope_size;
3001 }
3002
3003 let next_out_of_line = decoder.next_out_of_line();
3004 let handles_before = decoder.remaining_handles();
3005 if let Some((inlined, num_bytes, num_handles)) =
3006 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3007 {
3008 let member_inline_size =
3009 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3010 if inlined != (member_inline_size <= 4) {
3011 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3012 }
3013 let inner_offset;
3014 let mut inner_depth = depth.clone();
3015 if inlined {
3016 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3017 inner_offset = next_offset;
3018 } else {
3019 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3020 inner_depth.increment()?;
3021 }
3022 let val_ref = self
3023 .always_on_display_brightness
3024 .get_or_insert_with(|| fidl::new_empty!(u16, D));
3025 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
3026 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3027 {
3028 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3029 }
3030 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3031 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3032 }
3033 }
3034
3035 next_offset += envelope_size;
3036
3037 while next_offset < end_offset {
3039 _next_ordinal_to_read += 1;
3040 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3041 next_offset += envelope_size;
3042 }
3043
3044 Ok(())
3045 }
3046 }
3047
3048 impl HangingDataChannelWriteRequest {
3049 #[inline(always)]
3050 fn max_ordinal_present(&self) -> u64 {
3051 if let Some(_) = self.data {
3052 return 1;
3053 }
3054 0
3055 }
3056 }
3057
3058 impl fidl::encoding::ValueTypeMarker for HangingDataChannelWriteRequest {
3059 type Borrowed<'a> = &'a Self;
3060 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3061 value
3062 }
3063 }
3064
3065 unsafe impl fidl::encoding::TypeMarker for HangingDataChannelWriteRequest {
3066 type Owned = Self;
3067
3068 #[inline(always)]
3069 fn inline_align(_context: fidl::encoding::Context) -> usize {
3070 8
3071 }
3072
3073 #[inline(always)]
3074 fn inline_size(_context: fidl::encoding::Context) -> usize {
3075 16
3076 }
3077 }
3078
3079 unsafe impl<D: fidl::encoding::ResourceDialect>
3080 fidl::encoding::Encode<HangingDataChannelWriteRequest, D>
3081 for &HangingDataChannelWriteRequest
3082 {
3083 unsafe fn encode(
3084 self,
3085 encoder: &mut fidl::encoding::Encoder<'_, D>,
3086 offset: usize,
3087 mut depth: fidl::encoding::Depth,
3088 ) -> fidl::Result<()> {
3089 encoder.debug_check_bounds::<HangingDataChannelWriteRequest>(offset);
3090 let max_ordinal: u64 = self.max_ordinal_present();
3092 encoder.write_num(max_ordinal, offset);
3093 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
3094 if max_ordinal == 0 {
3096 return Ok(());
3097 }
3098 depth.increment()?;
3099 let envelope_size = 8;
3100 let bytes_len = max_ordinal as usize * envelope_size;
3101 #[allow(unused_variables)]
3102 let offset = encoder.out_of_line_offset(bytes_len);
3103 let mut _prev_end_offset: usize = 0;
3104 if 1 > max_ordinal {
3105 return Ok(());
3106 }
3107
3108 let cur_offset: usize = (1 - 1) * envelope_size;
3111
3112 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3114
3115 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<u8, 255>, D>(
3120 self.data.as_ref().map(
3121 <fidl::encoding::Vector<u8, 255> as fidl::encoding::ValueTypeMarker>::borrow,
3122 ),
3123 encoder,
3124 offset + cur_offset,
3125 depth,
3126 )?;
3127
3128 _prev_end_offset = cur_offset + envelope_size;
3129
3130 Ok(())
3131 }
3132 }
3133
3134 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
3135 for HangingDataChannelWriteRequest
3136 {
3137 #[inline(always)]
3138 fn new_empty() -> Self {
3139 Self::default()
3140 }
3141
3142 unsafe fn decode(
3143 &mut self,
3144 decoder: &mut fidl::encoding::Decoder<'_, D>,
3145 offset: usize,
3146 mut depth: fidl::encoding::Depth,
3147 ) -> fidl::Result<()> {
3148 decoder.debug_check_bounds::<Self>(offset);
3149 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
3150 None => return Err(fidl::Error::NotNullable),
3151 Some(len) => len,
3152 };
3153 if len == 0 {
3155 return Ok(());
3156 };
3157 depth.increment()?;
3158 let envelope_size = 8;
3159 let bytes_len = len * envelope_size;
3160 let offset = decoder.out_of_line_offset(bytes_len)?;
3161 let mut _next_ordinal_to_read = 0;
3163 let mut next_offset = offset;
3164 let end_offset = offset + bytes_len;
3165 _next_ordinal_to_read += 1;
3166 if next_offset >= end_offset {
3167 return Ok(());
3168 }
3169
3170 while _next_ordinal_to_read < 1 {
3172 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3173 _next_ordinal_to_read += 1;
3174 next_offset += envelope_size;
3175 }
3176
3177 let next_out_of_line = decoder.next_out_of_line();
3178 let handles_before = decoder.remaining_handles();
3179 if let Some((inlined, num_bytes, num_handles)) =
3180 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3181 {
3182 let member_inline_size =
3183 <fidl::encoding::Vector<u8, 255> as fidl::encoding::TypeMarker>::inline_size(
3184 decoder.context,
3185 );
3186 if inlined != (member_inline_size <= 4) {
3187 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3188 }
3189 let inner_offset;
3190 let mut inner_depth = depth.clone();
3191 if inlined {
3192 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3193 inner_offset = next_offset;
3194 } else {
3195 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3196 inner_depth.increment()?;
3197 }
3198 let val_ref = self
3199 .data
3200 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<u8, 255>, D));
3201 fidl::decode!(fidl::encoding::Vector<u8, 255>, D, val_ref, decoder, inner_offset, inner_depth)?;
3202 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3203 {
3204 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3205 }
3206 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3207 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3208 }
3209 }
3210
3211 next_offset += envelope_size;
3212
3213 while next_offset < end_offset {
3215 _next_ordinal_to_read += 1;
3216 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3217 next_offset += envelope_size;
3218 }
3219
3220 Ok(())
3221 }
3222 }
3223
3224 impl McuTimeSyncInfo {
3225 #[inline(always)]
3226 fn max_ordinal_present(&self) -> u64 {
3227 if let Some(_) = self.mcu_boot_time {
3228 return 2;
3229 }
3230 if let Some(_) = self.ap_boot_time {
3231 return 1;
3232 }
3233 0
3234 }
3235 }
3236
3237 impl fidl::encoding::ValueTypeMarker for McuTimeSyncInfo {
3238 type Borrowed<'a> = &'a Self;
3239 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3240 value
3241 }
3242 }
3243
3244 unsafe impl fidl::encoding::TypeMarker for McuTimeSyncInfo {
3245 type Owned = Self;
3246
3247 #[inline(always)]
3248 fn inline_align(_context: fidl::encoding::Context) -> usize {
3249 8
3250 }
3251
3252 #[inline(always)]
3253 fn inline_size(_context: fidl::encoding::Context) -> usize {
3254 16
3255 }
3256 }
3257
3258 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<McuTimeSyncInfo, D>
3259 for &McuTimeSyncInfo
3260 {
3261 unsafe fn encode(
3262 self,
3263 encoder: &mut fidl::encoding::Encoder<'_, D>,
3264 offset: usize,
3265 mut depth: fidl::encoding::Depth,
3266 ) -> fidl::Result<()> {
3267 encoder.debug_check_bounds::<McuTimeSyncInfo>(offset);
3268 let max_ordinal: u64 = self.max_ordinal_present();
3270 encoder.write_num(max_ordinal, offset);
3271 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
3272 if max_ordinal == 0 {
3274 return Ok(());
3275 }
3276 depth.increment()?;
3277 let envelope_size = 8;
3278 let bytes_len = max_ordinal as usize * envelope_size;
3279 #[allow(unused_variables)]
3280 let offset = encoder.out_of_line_offset(bytes_len);
3281 let mut _prev_end_offset: usize = 0;
3282 if 1 > max_ordinal {
3283 return Ok(());
3284 }
3285
3286 let cur_offset: usize = (1 - 1) * envelope_size;
3289
3290 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3292
3293 fidl::encoding::encode_in_envelope_optional::<i64, D>(
3298 self.ap_boot_time.as_ref().map(<i64 as fidl::encoding::ValueTypeMarker>::borrow),
3299 encoder,
3300 offset + cur_offset,
3301 depth,
3302 )?;
3303
3304 _prev_end_offset = cur_offset + envelope_size;
3305 if 2 > max_ordinal {
3306 return Ok(());
3307 }
3308
3309 let cur_offset: usize = (2 - 1) * envelope_size;
3312
3313 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3315
3316 fidl::encoding::encode_in_envelope_optional::<i64, D>(
3321 self.mcu_boot_time.as_ref().map(<i64 as fidl::encoding::ValueTypeMarker>::borrow),
3322 encoder,
3323 offset + cur_offset,
3324 depth,
3325 )?;
3326
3327 _prev_end_offset = cur_offset + envelope_size;
3328
3329 Ok(())
3330 }
3331 }
3332
3333 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for McuTimeSyncInfo {
3334 #[inline(always)]
3335 fn new_empty() -> Self {
3336 Self::default()
3337 }
3338
3339 unsafe fn decode(
3340 &mut self,
3341 decoder: &mut fidl::encoding::Decoder<'_, D>,
3342 offset: usize,
3343 mut depth: fidl::encoding::Depth,
3344 ) -> fidl::Result<()> {
3345 decoder.debug_check_bounds::<Self>(offset);
3346 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
3347 None => return Err(fidl::Error::NotNullable),
3348 Some(len) => len,
3349 };
3350 if len == 0 {
3352 return Ok(());
3353 };
3354 depth.increment()?;
3355 let envelope_size = 8;
3356 let bytes_len = len * envelope_size;
3357 let offset = decoder.out_of_line_offset(bytes_len)?;
3358 let mut _next_ordinal_to_read = 0;
3360 let mut next_offset = offset;
3361 let end_offset = offset + bytes_len;
3362 _next_ordinal_to_read += 1;
3363 if next_offset >= end_offset {
3364 return Ok(());
3365 }
3366
3367 while _next_ordinal_to_read < 1 {
3369 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3370 _next_ordinal_to_read += 1;
3371 next_offset += envelope_size;
3372 }
3373
3374 let next_out_of_line = decoder.next_out_of_line();
3375 let handles_before = decoder.remaining_handles();
3376 if let Some((inlined, num_bytes, num_handles)) =
3377 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3378 {
3379 let member_inline_size =
3380 <i64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3381 if inlined != (member_inline_size <= 4) {
3382 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3383 }
3384 let inner_offset;
3385 let mut inner_depth = depth.clone();
3386 if inlined {
3387 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3388 inner_offset = next_offset;
3389 } else {
3390 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3391 inner_depth.increment()?;
3392 }
3393 let val_ref = self.ap_boot_time.get_or_insert_with(|| fidl::new_empty!(i64, D));
3394 fidl::decode!(i64, D, val_ref, decoder, inner_offset, inner_depth)?;
3395 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3396 {
3397 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3398 }
3399 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3400 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3401 }
3402 }
3403
3404 next_offset += envelope_size;
3405 _next_ordinal_to_read += 1;
3406 if next_offset >= end_offset {
3407 return Ok(());
3408 }
3409
3410 while _next_ordinal_to_read < 2 {
3412 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3413 _next_ordinal_to_read += 1;
3414 next_offset += envelope_size;
3415 }
3416
3417 let next_out_of_line = decoder.next_out_of_line();
3418 let handles_before = decoder.remaining_handles();
3419 if let Some((inlined, num_bytes, num_handles)) =
3420 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3421 {
3422 let member_inline_size =
3423 <i64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3424 if inlined != (member_inline_size <= 4) {
3425 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3426 }
3427 let inner_offset;
3428 let mut inner_depth = depth.clone();
3429 if inlined {
3430 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3431 inner_offset = next_offset;
3432 } else {
3433 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3434 inner_depth.increment()?;
3435 }
3436 let val_ref = self.mcu_boot_time.get_or_insert_with(|| fidl::new_empty!(i64, D));
3437 fidl::decode!(i64, D, val_ref, decoder, inner_offset, inner_depth)?;
3438 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3439 {
3440 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3441 }
3442 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3443 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3444 }
3445 }
3446
3447 next_offset += envelope_size;
3448
3449 while next_offset < end_offset {
3451 _next_ordinal_to_read += 1;
3452 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3453 next_offset += envelope_size;
3454 }
3455
3456 Ok(())
3457 }
3458 }
3459
3460 impl UnboundHangingDataChannelGetIdentifierResponse {
3461 #[inline(always)]
3462 fn max_ordinal_present(&self) -> u64 {
3463 if let Some(_) = self.name {
3464 return 1;
3465 }
3466 0
3467 }
3468 }
3469
3470 impl fidl::encoding::ValueTypeMarker for UnboundHangingDataChannelGetIdentifierResponse {
3471 type Borrowed<'a> = &'a Self;
3472 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3473 value
3474 }
3475 }
3476
3477 unsafe impl fidl::encoding::TypeMarker for UnboundHangingDataChannelGetIdentifierResponse {
3478 type Owned = Self;
3479
3480 #[inline(always)]
3481 fn inline_align(_context: fidl::encoding::Context) -> usize {
3482 8
3483 }
3484
3485 #[inline(always)]
3486 fn inline_size(_context: fidl::encoding::Context) -> usize {
3487 16
3488 }
3489 }
3490
3491 unsafe impl<D: fidl::encoding::ResourceDialect>
3492 fidl::encoding::Encode<UnboundHangingDataChannelGetIdentifierResponse, D>
3493 for &UnboundHangingDataChannelGetIdentifierResponse
3494 {
3495 unsafe fn encode(
3496 self,
3497 encoder: &mut fidl::encoding::Encoder<'_, D>,
3498 offset: usize,
3499 mut depth: fidl::encoding::Depth,
3500 ) -> fidl::Result<()> {
3501 encoder.debug_check_bounds::<UnboundHangingDataChannelGetIdentifierResponse>(offset);
3502 let max_ordinal: u64 = self.max_ordinal_present();
3504 encoder.write_num(max_ordinal, offset);
3505 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
3506 if max_ordinal == 0 {
3508 return Ok(());
3509 }
3510 depth.increment()?;
3511 let envelope_size = 8;
3512 let bytes_len = max_ordinal as usize * envelope_size;
3513 #[allow(unused_variables)]
3514 let offset = encoder.out_of_line_offset(bytes_len);
3515 let mut _prev_end_offset: usize = 0;
3516 if 1 > max_ordinal {
3517 return Ok(());
3518 }
3519
3520 let cur_offset: usize = (1 - 1) * envelope_size;
3523
3524 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3526
3527 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
3532 self.name.as_ref().map(
3533 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
3534 ),
3535 encoder,
3536 offset + cur_offset,
3537 depth,
3538 )?;
3539
3540 _prev_end_offset = cur_offset + envelope_size;
3541
3542 Ok(())
3543 }
3544 }
3545
3546 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
3547 for UnboundHangingDataChannelGetIdentifierResponse
3548 {
3549 #[inline(always)]
3550 fn new_empty() -> Self {
3551 Self::default()
3552 }
3553
3554 unsafe fn decode(
3555 &mut self,
3556 decoder: &mut fidl::encoding::Decoder<'_, D>,
3557 offset: usize,
3558 mut depth: fidl::encoding::Depth,
3559 ) -> fidl::Result<()> {
3560 decoder.debug_check_bounds::<Self>(offset);
3561 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
3562 None => return Err(fidl::Error::NotNullable),
3563 Some(len) => len,
3564 };
3565 if len == 0 {
3567 return Ok(());
3568 };
3569 depth.increment()?;
3570 let envelope_size = 8;
3571 let bytes_len = len * envelope_size;
3572 let offset = decoder.out_of_line_offset(bytes_len)?;
3573 let mut _next_ordinal_to_read = 0;
3575 let mut next_offset = offset;
3576 let end_offset = offset + bytes_len;
3577 _next_ordinal_to_read += 1;
3578 if next_offset >= end_offset {
3579 return Ok(());
3580 }
3581
3582 while _next_ordinal_to_read < 1 {
3584 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3585 _next_ordinal_to_read += 1;
3586 next_offset += envelope_size;
3587 }
3588
3589 let next_out_of_line = decoder.next_out_of_line();
3590 let handles_before = decoder.remaining_handles();
3591 if let Some((inlined, num_bytes, num_handles)) =
3592 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3593 {
3594 let member_inline_size =
3595 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
3596 decoder.context,
3597 );
3598 if inlined != (member_inline_size <= 4) {
3599 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3600 }
3601 let inner_offset;
3602 let mut inner_depth = depth.clone();
3603 if inlined {
3604 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3605 inner_offset = next_offset;
3606 } else {
3607 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3608 inner_depth.increment()?;
3609 }
3610 let val_ref = self
3611 .name
3612 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
3613 fidl::decode!(
3614 fidl::encoding::BoundedString<100>,
3615 D,
3616 val_ref,
3617 decoder,
3618 inner_offset,
3619 inner_depth
3620 )?;
3621 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3622 {
3623 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3624 }
3625 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3626 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3627 }
3628 }
3629
3630 next_offset += envelope_size;
3631
3632 while next_offset < end_offset {
3634 _next_ordinal_to_read += 1;
3635 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3636 next_offset += envelope_size;
3637 }
3638
3639 Ok(())
3640 }
3641 }
3642
3643 impl UnboundWaitableDataChannelGetIdentifierResponse {
3644 #[inline(always)]
3645 fn max_ordinal_present(&self) -> u64 {
3646 if let Some(_) = self.name {
3647 return 1;
3648 }
3649 0
3650 }
3651 }
3652
3653 impl fidl::encoding::ValueTypeMarker for UnboundWaitableDataChannelGetIdentifierResponse {
3654 type Borrowed<'a> = &'a Self;
3655 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3656 value
3657 }
3658 }
3659
3660 unsafe impl fidl::encoding::TypeMarker for UnboundWaitableDataChannelGetIdentifierResponse {
3661 type Owned = Self;
3662
3663 #[inline(always)]
3664 fn inline_align(_context: fidl::encoding::Context) -> usize {
3665 8
3666 }
3667
3668 #[inline(always)]
3669 fn inline_size(_context: fidl::encoding::Context) -> usize {
3670 16
3671 }
3672 }
3673
3674 unsafe impl<D: fidl::encoding::ResourceDialect>
3675 fidl::encoding::Encode<UnboundWaitableDataChannelGetIdentifierResponse, D>
3676 for &UnboundWaitableDataChannelGetIdentifierResponse
3677 {
3678 unsafe fn encode(
3679 self,
3680 encoder: &mut fidl::encoding::Encoder<'_, D>,
3681 offset: usize,
3682 mut depth: fidl::encoding::Depth,
3683 ) -> fidl::Result<()> {
3684 encoder.debug_check_bounds::<UnboundWaitableDataChannelGetIdentifierResponse>(offset);
3685 let max_ordinal: u64 = self.max_ordinal_present();
3687 encoder.write_num(max_ordinal, offset);
3688 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
3689 if max_ordinal == 0 {
3691 return Ok(());
3692 }
3693 depth.increment()?;
3694 let envelope_size = 8;
3695 let bytes_len = max_ordinal as usize * envelope_size;
3696 #[allow(unused_variables)]
3697 let offset = encoder.out_of_line_offset(bytes_len);
3698 let mut _prev_end_offset: usize = 0;
3699 if 1 > max_ordinal {
3700 return Ok(());
3701 }
3702
3703 let cur_offset: usize = (1 - 1) * envelope_size;
3706
3707 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3709
3710 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
3715 self.name.as_ref().map(
3716 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
3717 ),
3718 encoder,
3719 offset + cur_offset,
3720 depth,
3721 )?;
3722
3723 _prev_end_offset = cur_offset + envelope_size;
3724
3725 Ok(())
3726 }
3727 }
3728
3729 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
3730 for UnboundWaitableDataChannelGetIdentifierResponse
3731 {
3732 #[inline(always)]
3733 fn new_empty() -> Self {
3734 Self::default()
3735 }
3736
3737 unsafe fn decode(
3738 &mut self,
3739 decoder: &mut fidl::encoding::Decoder<'_, D>,
3740 offset: usize,
3741 mut depth: fidl::encoding::Depth,
3742 ) -> fidl::Result<()> {
3743 decoder.debug_check_bounds::<Self>(offset);
3744 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
3745 None => return Err(fidl::Error::NotNullable),
3746 Some(len) => len,
3747 };
3748 if len == 0 {
3750 return Ok(());
3751 };
3752 depth.increment()?;
3753 let envelope_size = 8;
3754 let bytes_len = len * envelope_size;
3755 let offset = decoder.out_of_line_offset(bytes_len)?;
3756 let mut _next_ordinal_to_read = 0;
3758 let mut next_offset = offset;
3759 let end_offset = offset + bytes_len;
3760 _next_ordinal_to_read += 1;
3761 if next_offset >= end_offset {
3762 return Ok(());
3763 }
3764
3765 while _next_ordinal_to_read < 1 {
3767 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3768 _next_ordinal_to_read += 1;
3769 next_offset += envelope_size;
3770 }
3771
3772 let next_out_of_line = decoder.next_out_of_line();
3773 let handles_before = decoder.remaining_handles();
3774 if let Some((inlined, num_bytes, num_handles)) =
3775 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3776 {
3777 let member_inline_size =
3778 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
3779 decoder.context,
3780 );
3781 if inlined != (member_inline_size <= 4) {
3782 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3783 }
3784 let inner_offset;
3785 let mut inner_depth = depth.clone();
3786 if inlined {
3787 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3788 inner_offset = next_offset;
3789 } else {
3790 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3791 inner_depth.increment()?;
3792 }
3793 let val_ref = self
3794 .name
3795 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
3796 fidl::decode!(
3797 fidl::encoding::BoundedString<100>,
3798 D,
3799 val_ref,
3800 decoder,
3801 inner_offset,
3802 inner_depth
3803 )?;
3804 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3805 {
3806 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3807 }
3808 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3809 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3810 }
3811 }
3812
3813 next_offset += envelope_size;
3814
3815 while next_offset < end_offset {
3817 _next_ordinal_to_read += 1;
3818 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3819 next_offset += envelope_size;
3820 }
3821
3822 Ok(())
3823 }
3824 }
3825
3826 impl WaitableDataChannelWriteRequest {
3827 #[inline(always)]
3828 fn max_ordinal_present(&self) -> u64 {
3829 if let Some(_) = self.data {
3830 return 1;
3831 }
3832 0
3833 }
3834 }
3835
3836 impl fidl::encoding::ValueTypeMarker for WaitableDataChannelWriteRequest {
3837 type Borrowed<'a> = &'a Self;
3838 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3839 value
3840 }
3841 }
3842
3843 unsafe impl fidl::encoding::TypeMarker for WaitableDataChannelWriteRequest {
3844 type Owned = Self;
3845
3846 #[inline(always)]
3847 fn inline_align(_context: fidl::encoding::Context) -> usize {
3848 8
3849 }
3850
3851 #[inline(always)]
3852 fn inline_size(_context: fidl::encoding::Context) -> usize {
3853 16
3854 }
3855 }
3856
3857 unsafe impl<D: fidl::encoding::ResourceDialect>
3858 fidl::encoding::Encode<WaitableDataChannelWriteRequest, D>
3859 for &WaitableDataChannelWriteRequest
3860 {
3861 unsafe fn encode(
3862 self,
3863 encoder: &mut fidl::encoding::Encoder<'_, D>,
3864 offset: usize,
3865 mut depth: fidl::encoding::Depth,
3866 ) -> fidl::Result<()> {
3867 encoder.debug_check_bounds::<WaitableDataChannelWriteRequest>(offset);
3868 let max_ordinal: u64 = self.max_ordinal_present();
3870 encoder.write_num(max_ordinal, offset);
3871 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
3872 if max_ordinal == 0 {
3874 return Ok(());
3875 }
3876 depth.increment()?;
3877 let envelope_size = 8;
3878 let bytes_len = max_ordinal as usize * envelope_size;
3879 #[allow(unused_variables)]
3880 let offset = encoder.out_of_line_offset(bytes_len);
3881 let mut _prev_end_offset: usize = 0;
3882 if 1 > max_ordinal {
3883 return Ok(());
3884 }
3885
3886 let cur_offset: usize = (1 - 1) * envelope_size;
3889
3890 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3892
3893 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<u8, 255>, D>(
3898 self.data.as_ref().map(
3899 <fidl::encoding::Vector<u8, 255> as fidl::encoding::ValueTypeMarker>::borrow,
3900 ),
3901 encoder,
3902 offset + cur_offset,
3903 depth,
3904 )?;
3905
3906 _prev_end_offset = cur_offset + envelope_size;
3907
3908 Ok(())
3909 }
3910 }
3911
3912 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
3913 for WaitableDataChannelWriteRequest
3914 {
3915 #[inline(always)]
3916 fn new_empty() -> Self {
3917 Self::default()
3918 }
3919
3920 unsafe fn decode(
3921 &mut self,
3922 decoder: &mut fidl::encoding::Decoder<'_, D>,
3923 offset: usize,
3924 mut depth: fidl::encoding::Depth,
3925 ) -> fidl::Result<()> {
3926 decoder.debug_check_bounds::<Self>(offset);
3927 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
3928 None => return Err(fidl::Error::NotNullable),
3929 Some(len) => len,
3930 };
3931 if len == 0 {
3933 return Ok(());
3934 };
3935 depth.increment()?;
3936 let envelope_size = 8;
3937 let bytes_len = len * envelope_size;
3938 let offset = decoder.out_of_line_offset(bytes_len)?;
3939 let mut _next_ordinal_to_read = 0;
3941 let mut next_offset = offset;
3942 let end_offset = offset + bytes_len;
3943 _next_ordinal_to_read += 1;
3944 if next_offset >= end_offset {
3945 return Ok(());
3946 }
3947
3948 while _next_ordinal_to_read < 1 {
3950 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3951 _next_ordinal_to_read += 1;
3952 next_offset += envelope_size;
3953 }
3954
3955 let next_out_of_line = decoder.next_out_of_line();
3956 let handles_before = decoder.remaining_handles();
3957 if let Some((inlined, num_bytes, num_handles)) =
3958 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3959 {
3960 let member_inline_size =
3961 <fidl::encoding::Vector<u8, 255> as fidl::encoding::TypeMarker>::inline_size(
3962 decoder.context,
3963 );
3964 if inlined != (member_inline_size <= 4) {
3965 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3966 }
3967 let inner_offset;
3968 let mut inner_depth = depth.clone();
3969 if inlined {
3970 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3971 inner_offset = next_offset;
3972 } else {
3973 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3974 inner_depth.increment()?;
3975 }
3976 let val_ref = self
3977 .data
3978 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<u8, 255>, D));
3979 fidl::decode!(fidl::encoding::Vector<u8, 255>, D, val_ref, decoder, inner_offset, inner_depth)?;
3980 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3981 {
3982 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3983 }
3984 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3985 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3986 }
3987 }
3988
3989 next_offset += envelope_size;
3990
3991 while next_offset < end_offset {
3993 _next_ordinal_to_read += 1;
3994 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3995 next_offset += envelope_size;
3996 }
3997
3998 Ok(())
3999 }
4000 }
4001}