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 ClockDomain = u32;
13
14pub type ElementId = u64;
15
16pub type TokenId = u64;
17
18pub type TopologyId = u64;
19
20pub const DEFAULT_DAI_INTERCONNECT_ELEMENT_ID: u64 = 1;
24
25pub const MAX_COUNT_CHANNELS: u32 =
27 fidl_fuchsia_hardware_audio__common::MAX_COUNT_CHANNELS_IN_RING_BUFFER as u32;
28
29pub const MAX_COUNT_CHANNEL_SETS: u32 =
31 fidl_fuchsia_hardware_audio__common::MAX_COUNT_CHANNEL_SETS as u32;
32
33pub const MAX_COUNT_DAI_FORMATS: u32 =
34 fidl_fuchsia_hardware_audio__common::MAX_COUNT_DAI_FORMATS as u32;
35
36pub const MAX_COUNT_DEVICES: u32 = 256;
38
39pub const MAX_COUNT_FORMATS: u32 = fidl_fuchsia_hardware_audio__common::MAX_COUNT_FORMATS as u32;
41
42pub const MAX_COUNT_PROCESSING_ELEMENTS: u32 =
44 fidl_fuchsia_hardware_audio_signalprocessing__common::MAX_COUNT_PROCESSING_ELEMENTS as u32;
45
46pub const MAX_COUNT_RATES: u32 =
48 fidl_fuchsia_hardware_audio__common::MAX_COUNT_SUPPORTED_RATES as u32;
49
50pub const MAX_COUNT_SAMPLE_TYPES: u32 = 32;
52
53pub const MAX_STRING_SIZE: u32 = fidl_fuchsia_hardware_audio__common::MAX_UI_STRING_SIZE as u32;
55
56pub const UNIQUE_INSTANCE_ID_SIZE: u32 = fidl_fuchsia_hardware_audio__common::UNIQUE_ID_SIZE as u32;
58
59#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
61pub enum ControlCodecStartError {
62 DeviceError,
64 WrongDeviceType,
66 AlreadyPending,
68 DaiFormatNotSet,
70 AlreadyStarted,
72 Other,
74 #[doc(hidden)]
75 __SourceBreaking { unknown_ordinal: u32 },
76}
77
78#[macro_export]
80macro_rules! ControlCodecStartErrorUnknown {
81 () => {
82 _
83 };
84}
85
86impl ControlCodecStartError {
87 #[inline]
88 pub fn from_primitive(prim: u32) -> Option<Self> {
89 match prim {
90 1 => Some(Self::DeviceError),
91 2 => Some(Self::WrongDeviceType),
92 3 => Some(Self::AlreadyPending),
93 4 => Some(Self::DaiFormatNotSet),
94 5 => Some(Self::AlreadyStarted),
95 6 => Some(Self::Other),
96 _ => None,
97 }
98 }
99
100 #[inline]
101 pub fn from_primitive_allow_unknown(prim: u32) -> Self {
102 match prim {
103 1 => Self::DeviceError,
104 2 => Self::WrongDeviceType,
105 3 => Self::AlreadyPending,
106 4 => Self::DaiFormatNotSet,
107 5 => Self::AlreadyStarted,
108 6 => Self::Other,
109 unknown_ordinal => Self::__SourceBreaking { unknown_ordinal },
110 }
111 }
112
113 #[inline]
114 pub fn unknown() -> Self {
115 Self::__SourceBreaking { unknown_ordinal: 0xffffffff }
116 }
117
118 #[inline]
119 pub const fn into_primitive(self) -> u32 {
120 match self {
121 Self::DeviceError => 1,
122 Self::WrongDeviceType => 2,
123 Self::AlreadyPending => 3,
124 Self::DaiFormatNotSet => 4,
125 Self::AlreadyStarted => 5,
126 Self::Other => 6,
127 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
128 }
129 }
130
131 #[inline]
132 pub fn is_unknown(&self) -> bool {
133 match self {
134 Self::__SourceBreaking { unknown_ordinal: _ } => true,
135 _ => false,
136 }
137 }
138}
139
140#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
142pub enum ControlCodecStopError {
143 DeviceError,
145 WrongDeviceType,
147 AlreadyPending,
149 DaiFormatNotSet,
151 AlreadyStopped,
153 Other,
155 #[doc(hidden)]
156 __SourceBreaking { unknown_ordinal: u32 },
157}
158
159#[macro_export]
161macro_rules! ControlCodecStopErrorUnknown {
162 () => {
163 _
164 };
165}
166
167impl ControlCodecStopError {
168 #[inline]
169 pub fn from_primitive(prim: u32) -> Option<Self> {
170 match prim {
171 1 => Some(Self::DeviceError),
172 2 => Some(Self::WrongDeviceType),
173 3 => Some(Self::AlreadyPending),
174 4 => Some(Self::DaiFormatNotSet),
175 5 => Some(Self::AlreadyStopped),
176 6 => Some(Self::Other),
177 _ => None,
178 }
179 }
180
181 #[inline]
182 pub fn from_primitive_allow_unknown(prim: u32) -> Self {
183 match prim {
184 1 => Self::DeviceError,
185 2 => Self::WrongDeviceType,
186 3 => Self::AlreadyPending,
187 4 => Self::DaiFormatNotSet,
188 5 => Self::AlreadyStopped,
189 6 => Self::Other,
190 unknown_ordinal => Self::__SourceBreaking { unknown_ordinal },
191 }
192 }
193
194 #[inline]
195 pub fn unknown() -> Self {
196 Self::__SourceBreaking { unknown_ordinal: 0xffffffff }
197 }
198
199 #[inline]
200 pub const fn into_primitive(self) -> u32 {
201 match self {
202 Self::DeviceError => 1,
203 Self::WrongDeviceType => 2,
204 Self::AlreadyPending => 3,
205 Self::DaiFormatNotSet => 4,
206 Self::AlreadyStopped => 5,
207 Self::Other => 6,
208 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
209 }
210 }
211
212 #[inline]
213 pub fn is_unknown(&self) -> bool {
214 match self {
215 Self::__SourceBreaking { unknown_ordinal: _ } => true,
216 _ => false,
217 }
218 }
219}
220
221#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
224pub enum ControlCreateRingBufferError {
225 DeviceError,
227 WrongDeviceType,
229 AlreadyPending,
231 InvalidElementId,
233 InvalidOptions,
235 InvalidFormat,
237 InvalidMinBytes,
239 InvalidRingBuffer,
241 AlreadyAllocated,
243 FormatMismatch,
245 BadRingBufferOption,
247 Other,
249 #[doc(hidden)]
250 __SourceBreaking { unknown_ordinal: u32 },
251}
252
253#[macro_export]
255macro_rules! ControlCreateRingBufferErrorUnknown {
256 () => {
257 _
258 };
259}
260
261impl ControlCreateRingBufferError {
262 #[inline]
263 pub fn from_primitive(prim: u32) -> Option<Self> {
264 match prim {
265 1 => Some(Self::DeviceError),
266 2 => Some(Self::WrongDeviceType),
267 3 => Some(Self::AlreadyPending),
268 4 => Some(Self::InvalidElementId),
269 5 => Some(Self::InvalidOptions),
270 6 => Some(Self::InvalidFormat),
271 7 => Some(Self::InvalidMinBytes),
272 8 => Some(Self::InvalidRingBuffer),
273 9 => Some(Self::AlreadyAllocated),
274 10 => Some(Self::FormatMismatch),
275 11 => Some(Self::BadRingBufferOption),
276 12 => Some(Self::Other),
277 _ => None,
278 }
279 }
280
281 #[inline]
282 pub fn from_primitive_allow_unknown(prim: u32) -> Self {
283 match prim {
284 1 => Self::DeviceError,
285 2 => Self::WrongDeviceType,
286 3 => Self::AlreadyPending,
287 4 => Self::InvalidElementId,
288 5 => Self::InvalidOptions,
289 6 => Self::InvalidFormat,
290 7 => Self::InvalidMinBytes,
291 8 => Self::InvalidRingBuffer,
292 9 => Self::AlreadyAllocated,
293 10 => Self::FormatMismatch,
294 11 => Self::BadRingBufferOption,
295 12 => Self::Other,
296 unknown_ordinal => Self::__SourceBreaking { unknown_ordinal },
297 }
298 }
299
300 #[inline]
301 pub fn unknown() -> Self {
302 Self::__SourceBreaking { unknown_ordinal: 0xffffffff }
303 }
304
305 #[inline]
306 pub const fn into_primitive(self) -> u32 {
307 match self {
308 Self::DeviceError => 1,
309 Self::WrongDeviceType => 2,
310 Self::AlreadyPending => 3,
311 Self::InvalidElementId => 4,
312 Self::InvalidOptions => 5,
313 Self::InvalidFormat => 6,
314 Self::InvalidMinBytes => 7,
315 Self::InvalidRingBuffer => 8,
316 Self::AlreadyAllocated => 9,
317 Self::FormatMismatch => 10,
318 Self::BadRingBufferOption => 11,
319 Self::Other => 12,
320 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
321 }
322 }
323
324 #[inline]
325 pub fn is_unknown(&self) -> bool {
326 match self {
327 Self::__SourceBreaking { unknown_ordinal: _ } => true,
328 _ => false,
329 }
330 }
331}
332
333#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
335pub enum ControlCreatorError {
336 InvalidTokenId,
338 InvalidControl,
340 DeviceNotFound,
343 DeviceError,
345 AlreadyAllocated,
348 #[doc(hidden)]
349 __SourceBreaking { unknown_ordinal: u32 },
350}
351
352#[macro_export]
354macro_rules! ControlCreatorErrorUnknown {
355 () => {
356 _
357 };
358}
359
360impl ControlCreatorError {
361 #[inline]
362 pub fn from_primitive(prim: u32) -> Option<Self> {
363 match prim {
364 1 => Some(Self::InvalidTokenId),
365 2 => Some(Self::InvalidControl),
366 3 => Some(Self::DeviceNotFound),
367 4 => Some(Self::DeviceError),
368 5 => Some(Self::AlreadyAllocated),
369 _ => None,
370 }
371 }
372
373 #[inline]
374 pub fn from_primitive_allow_unknown(prim: u32) -> Self {
375 match prim {
376 1 => Self::InvalidTokenId,
377 2 => Self::InvalidControl,
378 3 => Self::DeviceNotFound,
379 4 => Self::DeviceError,
380 5 => Self::AlreadyAllocated,
381 unknown_ordinal => Self::__SourceBreaking { unknown_ordinal },
382 }
383 }
384
385 #[inline]
386 pub fn unknown() -> Self {
387 Self::__SourceBreaking { unknown_ordinal: 0xffffffff }
388 }
389
390 #[inline]
391 pub const fn into_primitive(self) -> u32 {
392 match self {
393 Self::InvalidTokenId => 1,
394 Self::InvalidControl => 2,
395 Self::DeviceNotFound => 3,
396 Self::DeviceError => 4,
397 Self::AlreadyAllocated => 5,
398 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
399 }
400 }
401
402 #[inline]
403 pub fn is_unknown(&self) -> bool {
404 match self {
405 Self::__SourceBreaking { unknown_ordinal: _ } => true,
406 _ => false,
407 }
408 }
409}
410
411#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
413pub enum ControlResetError {
414 DeviceError,
416 WrongDeviceType,
418 AlreadyPending,
420 #[doc(hidden)]
421 __SourceBreaking { unknown_ordinal: u32 },
422}
423
424#[macro_export]
426macro_rules! ControlResetErrorUnknown {
427 () => {
428 _
429 };
430}
431
432impl ControlResetError {
433 #[inline]
434 pub fn from_primitive(prim: u32) -> Option<Self> {
435 match prim {
436 1 => Some(Self::DeviceError),
437 2 => Some(Self::WrongDeviceType),
438 3 => Some(Self::AlreadyPending),
439 _ => None,
440 }
441 }
442
443 #[inline]
444 pub fn from_primitive_allow_unknown(prim: u32) -> Self {
445 match prim {
446 1 => Self::DeviceError,
447 2 => Self::WrongDeviceType,
448 3 => Self::AlreadyPending,
449 unknown_ordinal => Self::__SourceBreaking { unknown_ordinal },
450 }
451 }
452
453 #[inline]
454 pub fn unknown() -> Self {
455 Self::__SourceBreaking { unknown_ordinal: 0xffffffff }
456 }
457
458 #[inline]
459 pub const fn into_primitive(self) -> u32 {
460 match self {
461 Self::DeviceError => 1,
462 Self::WrongDeviceType => 2,
463 Self::AlreadyPending => 3,
464 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
465 }
466 }
467
468 #[inline]
469 pub fn is_unknown(&self) -> bool {
470 match self {
471 Self::__SourceBreaking { unknown_ordinal: _ } => true,
472 _ => false,
473 }
474 }
475}
476
477#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
479pub enum ControlSetDaiFormatError {
480 DeviceError,
482 WrongDeviceType,
484 AlreadyPending,
486 InvalidElementId,
488 InvalidDaiFormat,
490 FormatMismatch,
492 Other,
494 #[doc(hidden)]
495 __SourceBreaking { unknown_ordinal: u32 },
496}
497
498#[macro_export]
500macro_rules! ControlSetDaiFormatErrorUnknown {
501 () => {
502 _
503 };
504}
505
506impl ControlSetDaiFormatError {
507 #[inline]
508 pub fn from_primitive(prim: u32) -> Option<Self> {
509 match prim {
510 1 => Some(Self::DeviceError),
511 2 => Some(Self::WrongDeviceType),
512 3 => Some(Self::AlreadyPending),
513 4 => Some(Self::InvalidElementId),
514 5 => Some(Self::InvalidDaiFormat),
515 6 => Some(Self::FormatMismatch),
516 7 => Some(Self::Other),
517 _ => None,
518 }
519 }
520
521 #[inline]
522 pub fn from_primitive_allow_unknown(prim: u32) -> Self {
523 match prim {
524 1 => Self::DeviceError,
525 2 => Self::WrongDeviceType,
526 3 => Self::AlreadyPending,
527 4 => Self::InvalidElementId,
528 5 => Self::InvalidDaiFormat,
529 6 => Self::FormatMismatch,
530 7 => Self::Other,
531 unknown_ordinal => Self::__SourceBreaking { unknown_ordinal },
532 }
533 }
534
535 #[inline]
536 pub fn unknown() -> Self {
537 Self::__SourceBreaking { unknown_ordinal: 0xffffffff }
538 }
539
540 #[inline]
541 pub const fn into_primitive(self) -> u32 {
542 match self {
543 Self::DeviceError => 1,
544 Self::WrongDeviceType => 2,
545 Self::AlreadyPending => 3,
546 Self::InvalidElementId => 4,
547 Self::InvalidDaiFormat => 5,
548 Self::FormatMismatch => 6,
549 Self::Other => 7,
550 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
551 }
552 }
553
554 #[inline]
555 pub fn is_unknown(&self) -> bool {
556 match self {
557 Self::__SourceBreaking { unknown_ordinal: _ } => true,
558 _ => false,
559 }
560 }
561}
562
563#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
565pub enum DeviceType {
566 Codec,
568 Composite,
570 #[doc(hidden)]
571 __SourceBreaking { unknown_ordinal: u32 },
572}
573
574#[macro_export]
576macro_rules! DeviceTypeUnknown {
577 () => {
578 _
579 };
580}
581
582impl DeviceType {
583 #[inline]
584 pub fn from_primitive(prim: u32) -> Option<Self> {
585 match prim {
586 1 => Some(Self::Codec),
587 2 => Some(Self::Composite),
588 _ => None,
589 }
590 }
591
592 #[inline]
593 pub fn from_primitive_allow_unknown(prim: u32) -> Self {
594 match prim {
595 1 => Self::Codec,
596 2 => Self::Composite,
597 unknown_ordinal => Self::__SourceBreaking { unknown_ordinal },
598 }
599 }
600
601 #[inline]
602 pub fn unknown() -> Self {
603 Self::__SourceBreaking { unknown_ordinal: 0xffffffff }
604 }
605
606 #[inline]
607 pub const fn into_primitive(self) -> u32 {
608 match self {
609 Self::Codec => 1,
610 Self::Composite => 2,
611 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
612 }
613 }
614
615 #[inline]
616 pub fn is_unknown(&self) -> bool {
617 match self {
618 Self::__SourceBreaking { unknown_ordinal: _ } => true,
619 _ => false,
620 }
621 }
622}
623
624#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
626pub enum ObserverGetReferenceClockError {
627 DeviceError,
629 WrongDeviceType,
631 DeviceClockUnavailable,
633 #[doc(hidden)]
634 __SourceBreaking { unknown_ordinal: u32 },
635}
636
637#[macro_export]
639macro_rules! ObserverGetReferenceClockErrorUnknown {
640 () => {
641 _
642 };
643}
644
645impl ObserverGetReferenceClockError {
646 #[inline]
647 pub fn from_primitive(prim: u32) -> Option<Self> {
648 match prim {
649 1 => Some(Self::DeviceError),
650 2 => Some(Self::WrongDeviceType),
651 3 => Some(Self::DeviceClockUnavailable),
652 _ => None,
653 }
654 }
655
656 #[inline]
657 pub fn from_primitive_allow_unknown(prim: u32) -> Self {
658 match prim {
659 1 => Self::DeviceError,
660 2 => Self::WrongDeviceType,
661 3 => Self::DeviceClockUnavailable,
662 unknown_ordinal => Self::__SourceBreaking { unknown_ordinal },
663 }
664 }
665
666 #[inline]
667 pub fn unknown() -> Self {
668 Self::__SourceBreaking { unknown_ordinal: 0xffffffff }
669 }
670
671 #[inline]
672 pub const fn into_primitive(self) -> u32 {
673 match self {
674 Self::DeviceError => 1,
675 Self::WrongDeviceType => 2,
676 Self::DeviceClockUnavailable => 3,
677 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
678 }
679 }
680
681 #[inline]
682 pub fn is_unknown(&self) -> bool {
683 match self {
684 Self::__SourceBreaking { unknown_ordinal: _ } => true,
685 _ => false,
686 }
687 }
688}
689
690#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
692pub enum ObserverWatchPlugStateError {
693 DeviceError,
695 WrongDeviceType,
697 AlreadyPending,
699 #[doc(hidden)]
700 __SourceBreaking { unknown_ordinal: u32 },
701}
702
703#[macro_export]
705macro_rules! ObserverWatchPlugStateErrorUnknown {
706 () => {
707 _
708 };
709}
710
711impl ObserverWatchPlugStateError {
712 #[inline]
713 pub fn from_primitive(prim: u32) -> Option<Self> {
714 match prim {
715 1 => Some(Self::DeviceError),
716 2 => Some(Self::WrongDeviceType),
717 3 => Some(Self::AlreadyPending),
718 _ => None,
719 }
720 }
721
722 #[inline]
723 pub fn from_primitive_allow_unknown(prim: u32) -> Self {
724 match prim {
725 1 => Self::DeviceError,
726 2 => Self::WrongDeviceType,
727 3 => Self::AlreadyPending,
728 unknown_ordinal => Self::__SourceBreaking { unknown_ordinal },
729 }
730 }
731
732 #[inline]
733 pub fn unknown() -> Self {
734 Self::__SourceBreaking { unknown_ordinal: 0xffffffff }
735 }
736
737 #[inline]
738 pub const fn into_primitive(self) -> u32 {
739 match self {
740 Self::DeviceError => 1,
741 Self::WrongDeviceType => 2,
742 Self::AlreadyPending => 3,
743 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
744 }
745 }
746
747 #[inline]
748 pub fn is_unknown(&self) -> bool {
749 match self {
750 Self::__SourceBreaking { unknown_ordinal: _ } => true,
751 _ => false,
752 }
753 }
754}
755
756#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
758pub enum PlugDetectCapabilities {
759 Hardwired,
761 Pluggable,
763 #[doc(hidden)]
764 __SourceBreaking { unknown_ordinal: u32 },
765}
766
767#[macro_export]
769macro_rules! PlugDetectCapabilitiesUnknown {
770 () => {
771 _
772 };
773}
774
775impl PlugDetectCapabilities {
776 #[inline]
777 pub fn from_primitive(prim: u32) -> Option<Self> {
778 match prim {
779 0 => Some(Self::Hardwired),
780 1 => Some(Self::Pluggable),
781 _ => None,
782 }
783 }
784
785 #[inline]
786 pub fn from_primitive_allow_unknown(prim: u32) -> Self {
787 match prim {
788 0 => Self::Hardwired,
789 1 => Self::Pluggable,
790 unknown_ordinal => Self::__SourceBreaking { unknown_ordinal },
791 }
792 }
793
794 #[inline]
795 pub fn unknown() -> Self {
796 Self::__SourceBreaking { unknown_ordinal: 0xffffffff }
797 }
798
799 #[inline]
800 pub const fn into_primitive(self) -> u32 {
801 match self {
802 Self::Hardwired => 0,
803 Self::Pluggable => 1,
804 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
805 }
806 }
807
808 #[inline]
809 pub fn is_unknown(&self) -> bool {
810 match self {
811 Self::__SourceBreaking { unknown_ordinal: _ } => true,
812 _ => false,
813 }
814 }
815}
816
817#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
819pub enum PlugState {
820 Plugged,
822 Unplugged,
824 #[doc(hidden)]
825 __SourceBreaking { unknown_ordinal: u32 },
826}
827
828#[macro_export]
830macro_rules! PlugStateUnknown {
831 () => {
832 _
833 };
834}
835
836impl PlugState {
837 #[inline]
838 pub fn from_primitive(prim: u32) -> Option<Self> {
839 match prim {
840 1 => Some(Self::Plugged),
841 2 => Some(Self::Unplugged),
842 _ => None,
843 }
844 }
845
846 #[inline]
847 pub fn from_primitive_allow_unknown(prim: u32) -> Self {
848 match prim {
849 1 => Self::Plugged,
850 2 => Self::Unplugged,
851 unknown_ordinal => Self::__SourceBreaking { unknown_ordinal },
852 }
853 }
854
855 #[inline]
856 pub fn unknown() -> Self {
857 Self::__SourceBreaking { unknown_ordinal: 0xffffffff }
858 }
859
860 #[inline]
861 pub const fn into_primitive(self) -> u32 {
862 match self {
863 Self::Plugged => 1,
864 Self::Unplugged => 2,
865 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
866 }
867 }
868
869 #[inline]
870 pub fn is_unknown(&self) -> bool {
871 match self {
872 Self::__SourceBreaking { unknown_ordinal: _ } => true,
873 _ => false,
874 }
875 }
876}
877
878#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
880pub enum ProviderAddDeviceError {
881 InvalidName,
883 InvalidType,
885 InvalidDriverClient,
887 WrongClientType,
889 #[doc(hidden)]
890 __SourceBreaking { unknown_ordinal: u32 },
891}
892
893#[macro_export]
895macro_rules! ProviderAddDeviceErrorUnknown {
896 () => {
897 _
898 };
899}
900
901impl ProviderAddDeviceError {
902 #[inline]
903 pub fn from_primitive(prim: u32) -> Option<Self> {
904 match prim {
905 1 => Some(Self::InvalidName),
906 2 => Some(Self::InvalidType),
907 3 => Some(Self::InvalidDriverClient),
908 4 => Some(Self::WrongClientType),
909 _ => None,
910 }
911 }
912
913 #[inline]
914 pub fn from_primitive_allow_unknown(prim: u32) -> Self {
915 match prim {
916 1 => Self::InvalidName,
917 2 => Self::InvalidType,
918 3 => Self::InvalidDriverClient,
919 4 => Self::WrongClientType,
920 unknown_ordinal => Self::__SourceBreaking { unknown_ordinal },
921 }
922 }
923
924 #[inline]
925 pub fn unknown() -> Self {
926 Self::__SourceBreaking { unknown_ordinal: 0xffffffff }
927 }
928
929 #[inline]
930 pub const fn into_primitive(self) -> u32 {
931 match self {
932 Self::InvalidName => 1,
933 Self::InvalidType => 2,
934 Self::InvalidDriverClient => 3,
935 Self::WrongClientType => 4,
936 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
937 }
938 }
939
940 #[inline]
941 pub fn is_unknown(&self) -> bool {
942 match self {
943 Self::__SourceBreaking { unknown_ordinal: _ } => true,
944 _ => false,
945 }
946 }
947}
948
949#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
951pub enum RegistryCreateObserverError {
952 InvalidTokenId,
954 InvalidObserver,
956 DeviceNotFound,
959 DeviceError,
961 #[doc(hidden)]
962 __SourceBreaking { unknown_ordinal: u32 },
963}
964
965#[macro_export]
967macro_rules! RegistryCreateObserverErrorUnknown {
968 () => {
969 _
970 };
971}
972
973impl RegistryCreateObserverError {
974 #[inline]
975 pub fn from_primitive(prim: u32) -> Option<Self> {
976 match prim {
977 1 => Some(Self::InvalidTokenId),
978 2 => Some(Self::InvalidObserver),
979 3 => Some(Self::DeviceNotFound),
980 4 => Some(Self::DeviceError),
981 _ => None,
982 }
983 }
984
985 #[inline]
986 pub fn from_primitive_allow_unknown(prim: u32) -> Self {
987 match prim {
988 1 => Self::InvalidTokenId,
989 2 => Self::InvalidObserver,
990 3 => Self::DeviceNotFound,
991 4 => Self::DeviceError,
992 unknown_ordinal => Self::__SourceBreaking { unknown_ordinal },
993 }
994 }
995
996 #[inline]
997 pub fn unknown() -> Self {
998 Self::__SourceBreaking { unknown_ordinal: 0xffffffff }
999 }
1000
1001 #[inline]
1002 pub const fn into_primitive(self) -> u32 {
1003 match self {
1004 Self::InvalidTokenId => 1,
1005 Self::InvalidObserver => 2,
1006 Self::DeviceNotFound => 3,
1007 Self::DeviceError => 4,
1008 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
1009 }
1010 }
1011
1012 #[inline]
1013 pub fn is_unknown(&self) -> bool {
1014 match self {
1015 Self::__SourceBreaking { unknown_ordinal: _ } => true,
1016 _ => false,
1017 }
1018 }
1019}
1020
1021#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
1023pub enum RegistryWatchDeviceRemovedError {
1024 AlreadyPending,
1026 #[doc(hidden)]
1027 __SourceBreaking { unknown_ordinal: u32 },
1028}
1029
1030#[macro_export]
1032macro_rules! RegistryWatchDeviceRemovedErrorUnknown {
1033 () => {
1034 _
1035 };
1036}
1037
1038impl RegistryWatchDeviceRemovedError {
1039 #[inline]
1040 pub fn from_primitive(prim: u32) -> Option<Self> {
1041 match prim {
1042 1 => Some(Self::AlreadyPending),
1043 _ => None,
1044 }
1045 }
1046
1047 #[inline]
1048 pub fn from_primitive_allow_unknown(prim: u32) -> Self {
1049 match prim {
1050 1 => Self::AlreadyPending,
1051 unknown_ordinal => Self::__SourceBreaking { unknown_ordinal },
1052 }
1053 }
1054
1055 #[inline]
1056 pub fn unknown() -> Self {
1057 Self::__SourceBreaking { unknown_ordinal: 0xffffffff }
1058 }
1059
1060 #[inline]
1061 pub const fn into_primitive(self) -> u32 {
1062 match self {
1063 Self::AlreadyPending => 1,
1064 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
1065 }
1066 }
1067
1068 #[inline]
1069 pub fn is_unknown(&self) -> bool {
1070 match self {
1071 Self::__SourceBreaking { unknown_ordinal: _ } => true,
1072 _ => false,
1073 }
1074 }
1075}
1076
1077#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
1079pub enum RegistryWatchDevicesAddedError {
1080 AlreadyPending,
1082 #[doc(hidden)]
1083 __SourceBreaking { unknown_ordinal: u32 },
1084}
1085
1086#[macro_export]
1088macro_rules! RegistryWatchDevicesAddedErrorUnknown {
1089 () => {
1090 _
1091 };
1092}
1093
1094impl RegistryWatchDevicesAddedError {
1095 #[inline]
1096 pub fn from_primitive(prim: u32) -> Option<Self> {
1097 match prim {
1098 1 => Some(Self::AlreadyPending),
1099 _ => None,
1100 }
1101 }
1102
1103 #[inline]
1104 pub fn from_primitive_allow_unknown(prim: u32) -> Self {
1105 match prim {
1106 1 => Self::AlreadyPending,
1107 unknown_ordinal => Self::__SourceBreaking { unknown_ordinal },
1108 }
1109 }
1110
1111 #[inline]
1112 pub fn unknown() -> Self {
1113 Self::__SourceBreaking { unknown_ordinal: 0xffffffff }
1114 }
1115
1116 #[inline]
1117 pub const fn into_primitive(self) -> u32 {
1118 match self {
1119 Self::AlreadyPending => 1,
1120 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
1121 }
1122 }
1123
1124 #[inline]
1125 pub fn is_unknown(&self) -> bool {
1126 match self {
1127 Self::__SourceBreaking { unknown_ordinal: _ } => true,
1128 _ => false,
1129 }
1130 }
1131}
1132
1133#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
1135pub enum RingBufferSetActiveChannelsError {
1136 DeviceError,
1138 AlreadyPending,
1140 MethodNotSupported,
1143 InvalidChannelBitmask,
1145 ChannelOutOfRange,
1148 #[doc(hidden)]
1149 __SourceBreaking { unknown_ordinal: u32 },
1150}
1151
1152#[macro_export]
1154macro_rules! RingBufferSetActiveChannelsErrorUnknown {
1155 () => {
1156 _
1157 };
1158}
1159
1160impl RingBufferSetActiveChannelsError {
1161 #[inline]
1162 pub fn from_primitive(prim: u32) -> Option<Self> {
1163 match prim {
1164 1 => Some(Self::DeviceError),
1165 2 => Some(Self::AlreadyPending),
1166 3 => Some(Self::MethodNotSupported),
1167 4 => Some(Self::InvalidChannelBitmask),
1168 5 => Some(Self::ChannelOutOfRange),
1169 _ => None,
1170 }
1171 }
1172
1173 #[inline]
1174 pub fn from_primitive_allow_unknown(prim: u32) -> Self {
1175 match prim {
1176 1 => Self::DeviceError,
1177 2 => Self::AlreadyPending,
1178 3 => Self::MethodNotSupported,
1179 4 => Self::InvalidChannelBitmask,
1180 5 => Self::ChannelOutOfRange,
1181 unknown_ordinal => Self::__SourceBreaking { unknown_ordinal },
1182 }
1183 }
1184
1185 #[inline]
1186 pub fn unknown() -> Self {
1187 Self::__SourceBreaking { unknown_ordinal: 0xffffffff }
1188 }
1189
1190 #[inline]
1191 pub const fn into_primitive(self) -> u32 {
1192 match self {
1193 Self::DeviceError => 1,
1194 Self::AlreadyPending => 2,
1195 Self::MethodNotSupported => 3,
1196 Self::InvalidChannelBitmask => 4,
1197 Self::ChannelOutOfRange => 5,
1198 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
1199 }
1200 }
1201
1202 #[inline]
1203 pub fn is_unknown(&self) -> bool {
1204 match self {
1205 Self::__SourceBreaking { unknown_ordinal: _ } => true,
1206 _ => false,
1207 }
1208 }
1209}
1210
1211#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
1213pub enum RingBufferStartError {
1214 DeviceError,
1216 AlreadyPending,
1218 AlreadyStarted,
1220 #[doc(hidden)]
1221 __SourceBreaking { unknown_ordinal: u32 },
1222}
1223
1224#[macro_export]
1226macro_rules! RingBufferStartErrorUnknown {
1227 () => {
1228 _
1229 };
1230}
1231
1232impl RingBufferStartError {
1233 #[inline]
1234 pub fn from_primitive(prim: u32) -> Option<Self> {
1235 match prim {
1236 1 => Some(Self::DeviceError),
1237 2 => Some(Self::AlreadyPending),
1238 3 => Some(Self::AlreadyStarted),
1239 _ => None,
1240 }
1241 }
1242
1243 #[inline]
1244 pub fn from_primitive_allow_unknown(prim: u32) -> Self {
1245 match prim {
1246 1 => Self::DeviceError,
1247 2 => Self::AlreadyPending,
1248 3 => Self::AlreadyStarted,
1249 unknown_ordinal => Self::__SourceBreaking { unknown_ordinal },
1250 }
1251 }
1252
1253 #[inline]
1254 pub fn unknown() -> Self {
1255 Self::__SourceBreaking { unknown_ordinal: 0xffffffff }
1256 }
1257
1258 #[inline]
1259 pub const fn into_primitive(self) -> u32 {
1260 match self {
1261 Self::DeviceError => 1,
1262 Self::AlreadyPending => 2,
1263 Self::AlreadyStarted => 3,
1264 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
1265 }
1266 }
1267
1268 #[inline]
1269 pub fn is_unknown(&self) -> bool {
1270 match self {
1271 Self::__SourceBreaking { unknown_ordinal: _ } => true,
1272 _ => false,
1273 }
1274 }
1275}
1276
1277#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
1279pub enum RingBufferStopError {
1280 DeviceError,
1282 AlreadyPending,
1284 AlreadyStopped,
1286 #[doc(hidden)]
1287 __SourceBreaking { unknown_ordinal: u32 },
1288}
1289
1290#[macro_export]
1292macro_rules! RingBufferStopErrorUnknown {
1293 () => {
1294 _
1295 };
1296}
1297
1298impl RingBufferStopError {
1299 #[inline]
1300 pub fn from_primitive(prim: u32) -> Option<Self> {
1301 match prim {
1302 1 => Some(Self::DeviceError),
1303 2 => Some(Self::AlreadyPending),
1304 3 => Some(Self::AlreadyStopped),
1305 _ => None,
1306 }
1307 }
1308
1309 #[inline]
1310 pub fn from_primitive_allow_unknown(prim: u32) -> Self {
1311 match prim {
1312 1 => Self::DeviceError,
1313 2 => Self::AlreadyPending,
1314 3 => Self::AlreadyStopped,
1315 unknown_ordinal => Self::__SourceBreaking { unknown_ordinal },
1316 }
1317 }
1318
1319 #[inline]
1320 pub fn unknown() -> Self {
1321 Self::__SourceBreaking { unknown_ordinal: 0xffffffff }
1322 }
1323
1324 #[inline]
1325 pub const fn into_primitive(self) -> u32 {
1326 match self {
1327 Self::DeviceError => 1,
1328 Self::AlreadyPending => 2,
1329 Self::AlreadyStopped => 3,
1330 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
1331 }
1332 }
1333
1334 #[inline]
1335 pub fn is_unknown(&self) -> bool {
1336 match self {
1337 Self::__SourceBreaking { unknown_ordinal: _ } => true,
1338 _ => false,
1339 }
1340 }
1341}
1342
1343#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
1345pub enum RingBufferWatchDelayInfoError {
1346 DeviceError,
1348 AlreadyPending,
1350 #[doc(hidden)]
1351 __SourceBreaking { unknown_ordinal: u32 },
1352}
1353
1354#[macro_export]
1356macro_rules! RingBufferWatchDelayInfoErrorUnknown {
1357 () => {
1358 _
1359 };
1360}
1361
1362impl RingBufferWatchDelayInfoError {
1363 #[inline]
1364 pub fn from_primitive(prim: u32) -> Option<Self> {
1365 match prim {
1366 1 => Some(Self::DeviceError),
1367 2 => Some(Self::AlreadyPending),
1368 _ => None,
1369 }
1370 }
1371
1372 #[inline]
1373 pub fn from_primitive_allow_unknown(prim: u32) -> Self {
1374 match prim {
1375 1 => Self::DeviceError,
1376 2 => Self::AlreadyPending,
1377 unknown_ordinal => Self::__SourceBreaking { unknown_ordinal },
1378 }
1379 }
1380
1381 #[inline]
1382 pub fn unknown() -> Self {
1383 Self::__SourceBreaking { unknown_ordinal: 0xffffffff }
1384 }
1385
1386 #[inline]
1387 pub const fn into_primitive(self) -> u32 {
1388 match self {
1389 Self::DeviceError => 1,
1390 Self::AlreadyPending => 2,
1391 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
1392 }
1393 }
1394
1395 #[inline]
1396 pub fn is_unknown(&self) -> bool {
1397 match self {
1398 Self::__SourceBreaking { unknown_ordinal: _ } => true,
1399 _ => false,
1400 }
1401 }
1402}
1403
1404#[derive(Clone, Debug, Default, PartialEq)]
1406pub struct ChannelAttributes {
1407 pub min_frequency: Option<u32>,
1412 pub max_frequency: Option<u32>,
1417 #[doc(hidden)]
1418 pub __source_breaking: fidl::marker::SourceBreaking,
1419}
1420
1421impl fidl::Persistable for ChannelAttributes {}
1422
1423#[derive(Clone, Debug, Default, PartialEq)]
1425pub struct ChannelSet {
1426 pub attributes: Option<Vec<ChannelAttributes>>,
1432 #[doc(hidden)]
1433 pub __source_breaking: fidl::marker::SourceBreaking,
1434}
1435
1436impl fidl::Persistable for ChannelSet {}
1437
1438#[derive(Clone, Debug, Default, PartialEq)]
1439pub struct ControlCreatorCreateResponse {
1440 #[doc(hidden)]
1441 pub __source_breaking: fidl::marker::SourceBreaking,
1442}
1443
1444impl fidl::Persistable for ControlCreatorCreateResponse {}
1445
1446#[derive(Clone, Debug, Default, PartialEq)]
1447pub struct ControlSetDaiFormatRequest {
1448 pub element_id: Option<u64>,
1452 pub dai_format: Option<fidl_fuchsia_hardware_audio__common::DaiFormat>,
1453 #[doc(hidden)]
1454 pub __source_breaking: fidl::marker::SourceBreaking,
1455}
1456
1457impl fidl::Persistable for ControlSetDaiFormatRequest {}
1458
1459#[derive(Clone, Debug, Default, PartialEq)]
1460pub struct ControlCodecStartResponse {
1461 pub start_time: Option<i64>,
1462 #[doc(hidden)]
1463 pub __source_breaking: fidl::marker::SourceBreaking,
1464}
1465
1466impl fidl::Persistable for ControlCodecStartResponse {}
1467
1468#[derive(Clone, Debug, Default, PartialEq)]
1469pub struct ControlCodecStopResponse {
1470 pub stop_time: Option<i64>,
1471 #[doc(hidden)]
1472 pub __source_breaking: fidl::marker::SourceBreaking,
1473}
1474
1475impl fidl::Persistable for ControlCodecStopResponse {}
1476
1477#[derive(Clone, Debug, Default, PartialEq)]
1478pub struct ControlResetResponse {
1479 #[doc(hidden)]
1480 pub __source_breaking: fidl::marker::SourceBreaking,
1481}
1482
1483impl fidl::Persistable for ControlResetResponse {}
1484
1485#[derive(Clone, Debug, Default, PartialEq)]
1486pub struct ControlSetDaiFormatResponse {
1487 pub state: Option<fidl_fuchsia_hardware_audio__common::CodecFormatInfo>,
1488 #[doc(hidden)]
1489 pub __source_breaking: fidl::marker::SourceBreaking,
1490}
1491
1492impl fidl::Persistable for ControlSetDaiFormatResponse {}
1493
1494#[derive(Clone, Debug, Default, PartialEq)]
1495pub struct DelayInfo {
1496 pub internal_delay: Option<i64>,
1501 pub external_delay: Option<i64>,
1507 #[doc(hidden)]
1508 pub __source_breaking: fidl::marker::SourceBreaking,
1509}
1510
1511impl fidl::Persistable for DelayInfo {}
1512
1513#[derive(Clone, Debug, Default, PartialEq)]
1515pub struct ElementDaiFormatSet {
1516 pub element_id: Option<u64>,
1523 pub format_sets: Option<Vec<fidl_fuchsia_hardware_audio__common::DaiSupportedFormats>>,
1527 #[doc(hidden)]
1528 pub __source_breaking: fidl::marker::SourceBreaking,
1529}
1530
1531impl fidl::Persistable for ElementDaiFormatSet {}
1532
1533#[derive(Clone, Debug, Default, PartialEq)]
1535pub struct ElementRingBufferFormatSet {
1536 pub element_id: Option<u64>,
1541 pub format_sets: Option<Vec<PcmFormatSet>>,
1545 #[doc(hidden)]
1546 pub __source_breaking: fidl::marker::SourceBreaking,
1547}
1548
1549impl fidl::Persistable for ElementRingBufferFormatSet {}
1550
1551#[derive(Clone, Debug, Default, PartialEq)]
1558pub struct Info {
1559 pub token_id: Option<u64>,
1564 pub device_type: Option<DeviceType>,
1568 pub device_name: Option<String>,
1573 pub manufacturer: Option<String>,
1578 pub product: Option<String>,
1583 pub unique_instance_id: Option<[u8; 16]>,
1589 pub is_input: Option<bool>,
1593 pub ring_buffer_format_sets: Option<Vec<ElementRingBufferFormatSet>>,
1603 pub dai_format_sets: Option<Vec<ElementDaiFormatSet>>,
1613 pub plug_detect_caps: Option<PlugDetectCapabilities>,
1617 pub clock_domain: Option<u32>,
1634 pub signal_processing_elements:
1639 Option<Vec<fidl_fuchsia_hardware_audio_signalprocessing__common::Element>>,
1640 pub signal_processing_topologies:
1645 Option<Vec<fidl_fuchsia_hardware_audio_signalprocessing__common::Topology>>,
1646 #[doc(hidden)]
1647 pub __source_breaking: fidl::marker::SourceBreaking,
1648}
1649
1650impl fidl::Persistable for Info {}
1651
1652#[derive(Clone, Debug, Default, PartialEq)]
1653pub struct ObserverWatchPlugStateResponse {
1654 pub state: Option<PlugState>,
1656 pub plug_time: Option<i64>,
1658 #[doc(hidden)]
1659 pub __source_breaking: fidl::marker::SourceBreaking,
1660}
1661
1662impl fidl::Persistable for ObserverWatchPlugStateResponse {}
1663
1664#[derive(Clone, Debug, Default, PartialEq)]
1668pub struct PcmFormatSet {
1669 pub channel_sets: Option<Vec<ChannelSet>>,
1674 pub sample_types: Option<Vec<fidl_fuchsia_audio__common::SampleType>>,
1679 pub frame_rates: Option<Vec<u32>>,
1684 #[doc(hidden)]
1685 pub __source_breaking: fidl::marker::SourceBreaking,
1686}
1687
1688impl fidl::Persistable for PcmFormatSet {}
1689
1690#[derive(Clone, Debug, Default, PartialEq)]
1691pub struct ProviderAddDeviceResponse {
1692 #[doc(hidden)]
1693 pub __source_breaking: fidl::marker::SourceBreaking,
1694}
1695
1696impl fidl::Persistable for ProviderAddDeviceResponse {}
1697
1698#[derive(Clone, Debug, Default, PartialEq)]
1699pub struct RegistryCreateObserverResponse {
1700 #[doc(hidden)]
1701 pub __source_breaking: fidl::marker::SourceBreaking,
1702}
1703
1704impl fidl::Persistable for RegistryCreateObserverResponse {}
1705
1706#[derive(Clone, Debug, Default, PartialEq)]
1707pub struct RegistryWatchDeviceRemovedResponse {
1708 pub token_id: Option<u64>,
1710 #[doc(hidden)]
1711 pub __source_breaking: fidl::marker::SourceBreaking,
1712}
1713
1714impl fidl::Persistable for RegistryWatchDeviceRemovedResponse {}
1715
1716#[derive(Clone, Debug, Default, PartialEq)]
1717pub struct RegistryWatchDevicesAddedResponse {
1718 pub devices: Option<Vec<Info>>,
1723 #[doc(hidden)]
1724 pub __source_breaking: fidl::marker::SourceBreaking,
1725}
1726
1727impl fidl::Persistable for RegistryWatchDevicesAddedResponse {}
1728
1729#[derive(Clone, Debug, Default, PartialEq)]
1731pub struct RingBufferOptions {
1732 pub format: Option<fidl_fuchsia_audio__common::Format>,
1737 pub ring_buffer_min_bytes: Option<u32>,
1742 #[doc(hidden)]
1743 pub __source_breaking: fidl::marker::SourceBreaking,
1744}
1745
1746impl fidl::Persistable for RingBufferOptions {}
1747
1748#[derive(Clone, Debug, Default, PartialEq)]
1750pub struct RingBufferProperties {
1751 pub valid_bits_per_sample: Option<u8>,
1758 pub turn_on_delay: Option<i64>,
1764 #[doc(hidden)]
1765 pub __source_breaking: fidl::marker::SourceBreaking,
1766}
1767
1768impl fidl::Persistable for RingBufferProperties {}
1769
1770#[derive(Clone, Debug, Default, PartialEq)]
1771pub struct RingBufferSetActiveChannelsRequest {
1772 pub channel_bitmask: Option<u64>,
1779 #[doc(hidden)]
1780 pub __source_breaking: fidl::marker::SourceBreaking,
1781}
1782
1783impl fidl::Persistable for RingBufferSetActiveChannelsRequest {}
1784
1785#[derive(Clone, Debug, Default, PartialEq)]
1786pub struct RingBufferStartRequest {
1787 #[doc(hidden)]
1788 pub __source_breaking: fidl::marker::SourceBreaking,
1789}
1790
1791impl fidl::Persistable for RingBufferStartRequest {}
1792
1793#[derive(Clone, Debug, Default, PartialEq)]
1794pub struct RingBufferStopRequest {
1795 #[doc(hidden)]
1796 pub __source_breaking: fidl::marker::SourceBreaking,
1797}
1798
1799impl fidl::Persistable for RingBufferStopRequest {}
1800
1801#[derive(Clone, Debug, Default, PartialEq)]
1802pub struct RingBufferSetActiveChannelsResponse {
1803 pub set_time: Option<i64>,
1808 #[doc(hidden)]
1809 pub __source_breaking: fidl::marker::SourceBreaking,
1810}
1811
1812impl fidl::Persistable for RingBufferSetActiveChannelsResponse {}
1813
1814#[derive(Clone, Debug, Default, PartialEq)]
1815pub struct RingBufferStartResponse {
1816 pub start_time: Option<i64>,
1820 #[doc(hidden)]
1821 pub __source_breaking: fidl::marker::SourceBreaking,
1822}
1823
1824impl fidl::Persistable for RingBufferStartResponse {}
1825
1826#[derive(Clone, Debug, Default, PartialEq)]
1827pub struct RingBufferStopResponse {
1828 #[doc(hidden)]
1829 pub __source_breaking: fidl::marker::SourceBreaking,
1830}
1831
1832impl fidl::Persistable for RingBufferStopResponse {}
1833
1834#[derive(Clone, Debug, Default, PartialEq)]
1835pub struct RingBufferWatchDelayInfoResponse {
1836 pub delay_info: Option<DelayInfo>,
1838 #[doc(hidden)]
1839 pub __source_breaking: fidl::marker::SourceBreaking,
1840}
1841
1842impl fidl::Persistable for RingBufferWatchDelayInfoResponse {}
1843
1844pub mod control_ordinals {
1845 pub const GET_ELEMENTS: u64 = 0x1b14ff4adf5dc6f8;
1846 pub const WATCH_ELEMENT_STATE: u64 = 0x524da8772a69056f;
1847 pub const GET_TOPOLOGIES: u64 = 0x73ffb73af24d30b6;
1848 pub const WATCH_TOPOLOGY: u64 = 0x66d172acdb36a729;
1849 pub const SET_TOPOLOGY: u64 = 0x1d9a7f9b8fee790c;
1850 pub const SET_ELEMENT_STATE: u64 = 0x38c3b2d4bae698f4;
1851 pub const CREATE_RING_BUFFER: u64 = 0x7462941cedb333db;
1852 pub const SET_DAI_FORMAT: u64 = 0x1d84f5a456a92216;
1853 pub const CODEC_START: u64 = 0x2a90a9d2958b997b;
1854 pub const CODEC_STOP: u64 = 0x387297bb6bcad25f;
1855 pub const RESET: u64 = 0x49840db00a698996;
1856}
1857
1858pub mod control_creator_ordinals {
1859 pub const CREATE: u64 = 0x341bdc9f49103a31;
1860}
1861
1862pub mod observer_ordinals {
1863 pub const GET_ELEMENTS: u64 = 0x1b14ff4adf5dc6f8;
1864 pub const WATCH_ELEMENT_STATE: u64 = 0x524da8772a69056f;
1865 pub const GET_TOPOLOGIES: u64 = 0x73ffb73af24d30b6;
1866 pub const WATCH_TOPOLOGY: u64 = 0x66d172acdb36a729;
1867 pub const WATCH_PLUG_STATE: u64 = 0x6312bce495d2907a;
1868 pub const GET_REFERENCE_CLOCK: u64 = 0x3819c5e0f9574c39;
1869}
1870
1871pub mod provider_ordinals {
1872 pub const ADD_DEVICE: u64 = 0x685fdfd91937758b;
1873}
1874
1875pub mod registry_ordinals {
1876 pub const WATCH_DEVICES_ADDED: u64 = 0x562ca31f7c149def;
1877 pub const WATCH_DEVICE_REMOVED: u64 = 0x6e67aabc99a502af;
1878 pub const CREATE_OBSERVER: u64 = 0x577bc322eb8d2bd1;
1879}
1880
1881pub mod ring_buffer_ordinals {
1882 pub const SET_ACTIVE_CHANNELS: u64 = 0x4276c43e4a3b59ee;
1883 pub const START: u64 = 0x5365a8609dc2dc5;
1884 pub const STOP: u64 = 0x5a238810af11e6e1;
1885 pub const WATCH_DELAY_INFO: u64 = 0x6d1dc5a928f38ad6;
1886}
1887
1888mod internal {
1889 use super::*;
1890 unsafe impl fidl::encoding::TypeMarker for ControlCodecStartError {
1891 type Owned = Self;
1892
1893 #[inline(always)]
1894 fn inline_align(_context: fidl::encoding::Context) -> usize {
1895 std::mem::align_of::<u32>()
1896 }
1897
1898 #[inline(always)]
1899 fn inline_size(_context: fidl::encoding::Context) -> usize {
1900 std::mem::size_of::<u32>()
1901 }
1902
1903 #[inline(always)]
1904 fn encode_is_copy() -> bool {
1905 false
1906 }
1907
1908 #[inline(always)]
1909 fn decode_is_copy() -> bool {
1910 false
1911 }
1912 }
1913
1914 impl fidl::encoding::ValueTypeMarker for ControlCodecStartError {
1915 type Borrowed<'a> = Self;
1916 #[inline(always)]
1917 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1918 *value
1919 }
1920 }
1921
1922 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
1923 for ControlCodecStartError
1924 {
1925 #[inline]
1926 unsafe fn encode(
1927 self,
1928 encoder: &mut fidl::encoding::Encoder<'_, D>,
1929 offset: usize,
1930 _depth: fidl::encoding::Depth,
1931 ) -> fidl::Result<()> {
1932 encoder.debug_check_bounds::<Self>(offset);
1933 encoder.write_num(self.into_primitive(), offset);
1934 Ok(())
1935 }
1936 }
1937
1938 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1939 for ControlCodecStartError
1940 {
1941 #[inline(always)]
1942 fn new_empty() -> Self {
1943 Self::unknown()
1944 }
1945
1946 #[inline]
1947 unsafe fn decode(
1948 &mut self,
1949 decoder: &mut fidl::encoding::Decoder<'_, D>,
1950 offset: usize,
1951 _depth: fidl::encoding::Depth,
1952 ) -> fidl::Result<()> {
1953 decoder.debug_check_bounds::<Self>(offset);
1954 let prim = decoder.read_num::<u32>(offset);
1955
1956 *self = Self::from_primitive_allow_unknown(prim);
1957 Ok(())
1958 }
1959 }
1960 unsafe impl fidl::encoding::TypeMarker for ControlCodecStopError {
1961 type Owned = Self;
1962
1963 #[inline(always)]
1964 fn inline_align(_context: fidl::encoding::Context) -> usize {
1965 std::mem::align_of::<u32>()
1966 }
1967
1968 #[inline(always)]
1969 fn inline_size(_context: fidl::encoding::Context) -> usize {
1970 std::mem::size_of::<u32>()
1971 }
1972
1973 #[inline(always)]
1974 fn encode_is_copy() -> bool {
1975 false
1976 }
1977
1978 #[inline(always)]
1979 fn decode_is_copy() -> bool {
1980 false
1981 }
1982 }
1983
1984 impl fidl::encoding::ValueTypeMarker for ControlCodecStopError {
1985 type Borrowed<'a> = Self;
1986 #[inline(always)]
1987 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1988 *value
1989 }
1990 }
1991
1992 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
1993 for ControlCodecStopError
1994 {
1995 #[inline]
1996 unsafe fn encode(
1997 self,
1998 encoder: &mut fidl::encoding::Encoder<'_, D>,
1999 offset: usize,
2000 _depth: fidl::encoding::Depth,
2001 ) -> fidl::Result<()> {
2002 encoder.debug_check_bounds::<Self>(offset);
2003 encoder.write_num(self.into_primitive(), offset);
2004 Ok(())
2005 }
2006 }
2007
2008 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ControlCodecStopError {
2009 #[inline(always)]
2010 fn new_empty() -> Self {
2011 Self::unknown()
2012 }
2013
2014 #[inline]
2015 unsafe fn decode(
2016 &mut self,
2017 decoder: &mut fidl::encoding::Decoder<'_, D>,
2018 offset: usize,
2019 _depth: fidl::encoding::Depth,
2020 ) -> fidl::Result<()> {
2021 decoder.debug_check_bounds::<Self>(offset);
2022 let prim = decoder.read_num::<u32>(offset);
2023
2024 *self = Self::from_primitive_allow_unknown(prim);
2025 Ok(())
2026 }
2027 }
2028 unsafe impl fidl::encoding::TypeMarker for ControlCreateRingBufferError {
2029 type Owned = Self;
2030
2031 #[inline(always)]
2032 fn inline_align(_context: fidl::encoding::Context) -> usize {
2033 std::mem::align_of::<u32>()
2034 }
2035
2036 #[inline(always)]
2037 fn inline_size(_context: fidl::encoding::Context) -> usize {
2038 std::mem::size_of::<u32>()
2039 }
2040
2041 #[inline(always)]
2042 fn encode_is_copy() -> bool {
2043 false
2044 }
2045
2046 #[inline(always)]
2047 fn decode_is_copy() -> bool {
2048 false
2049 }
2050 }
2051
2052 impl fidl::encoding::ValueTypeMarker for ControlCreateRingBufferError {
2053 type Borrowed<'a> = Self;
2054 #[inline(always)]
2055 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2056 *value
2057 }
2058 }
2059
2060 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
2061 for ControlCreateRingBufferError
2062 {
2063 #[inline]
2064 unsafe fn encode(
2065 self,
2066 encoder: &mut fidl::encoding::Encoder<'_, D>,
2067 offset: usize,
2068 _depth: fidl::encoding::Depth,
2069 ) -> fidl::Result<()> {
2070 encoder.debug_check_bounds::<Self>(offset);
2071 encoder.write_num(self.into_primitive(), offset);
2072 Ok(())
2073 }
2074 }
2075
2076 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2077 for ControlCreateRingBufferError
2078 {
2079 #[inline(always)]
2080 fn new_empty() -> Self {
2081 Self::unknown()
2082 }
2083
2084 #[inline]
2085 unsafe fn decode(
2086 &mut self,
2087 decoder: &mut fidl::encoding::Decoder<'_, D>,
2088 offset: usize,
2089 _depth: fidl::encoding::Depth,
2090 ) -> fidl::Result<()> {
2091 decoder.debug_check_bounds::<Self>(offset);
2092 let prim = decoder.read_num::<u32>(offset);
2093
2094 *self = Self::from_primitive_allow_unknown(prim);
2095 Ok(())
2096 }
2097 }
2098 unsafe impl fidl::encoding::TypeMarker for ControlCreatorError {
2099 type Owned = Self;
2100
2101 #[inline(always)]
2102 fn inline_align(_context: fidl::encoding::Context) -> usize {
2103 std::mem::align_of::<u32>()
2104 }
2105
2106 #[inline(always)]
2107 fn inline_size(_context: fidl::encoding::Context) -> usize {
2108 std::mem::size_of::<u32>()
2109 }
2110
2111 #[inline(always)]
2112 fn encode_is_copy() -> bool {
2113 false
2114 }
2115
2116 #[inline(always)]
2117 fn decode_is_copy() -> bool {
2118 false
2119 }
2120 }
2121
2122 impl fidl::encoding::ValueTypeMarker for ControlCreatorError {
2123 type Borrowed<'a> = Self;
2124 #[inline(always)]
2125 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2126 *value
2127 }
2128 }
2129
2130 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
2131 for ControlCreatorError
2132 {
2133 #[inline]
2134 unsafe fn encode(
2135 self,
2136 encoder: &mut fidl::encoding::Encoder<'_, D>,
2137 offset: usize,
2138 _depth: fidl::encoding::Depth,
2139 ) -> fidl::Result<()> {
2140 encoder.debug_check_bounds::<Self>(offset);
2141 encoder.write_num(self.into_primitive(), offset);
2142 Ok(())
2143 }
2144 }
2145
2146 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ControlCreatorError {
2147 #[inline(always)]
2148 fn new_empty() -> Self {
2149 Self::unknown()
2150 }
2151
2152 #[inline]
2153 unsafe fn decode(
2154 &mut self,
2155 decoder: &mut fidl::encoding::Decoder<'_, D>,
2156 offset: usize,
2157 _depth: fidl::encoding::Depth,
2158 ) -> fidl::Result<()> {
2159 decoder.debug_check_bounds::<Self>(offset);
2160 let prim = decoder.read_num::<u32>(offset);
2161
2162 *self = Self::from_primitive_allow_unknown(prim);
2163 Ok(())
2164 }
2165 }
2166 unsafe impl fidl::encoding::TypeMarker for ControlResetError {
2167 type Owned = Self;
2168
2169 #[inline(always)]
2170 fn inline_align(_context: fidl::encoding::Context) -> usize {
2171 std::mem::align_of::<u32>()
2172 }
2173
2174 #[inline(always)]
2175 fn inline_size(_context: fidl::encoding::Context) -> usize {
2176 std::mem::size_of::<u32>()
2177 }
2178
2179 #[inline(always)]
2180 fn encode_is_copy() -> bool {
2181 false
2182 }
2183
2184 #[inline(always)]
2185 fn decode_is_copy() -> bool {
2186 false
2187 }
2188 }
2189
2190 impl fidl::encoding::ValueTypeMarker for ControlResetError {
2191 type Borrowed<'a> = Self;
2192 #[inline(always)]
2193 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2194 *value
2195 }
2196 }
2197
2198 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
2199 for ControlResetError
2200 {
2201 #[inline]
2202 unsafe fn encode(
2203 self,
2204 encoder: &mut fidl::encoding::Encoder<'_, D>,
2205 offset: usize,
2206 _depth: fidl::encoding::Depth,
2207 ) -> fidl::Result<()> {
2208 encoder.debug_check_bounds::<Self>(offset);
2209 encoder.write_num(self.into_primitive(), offset);
2210 Ok(())
2211 }
2212 }
2213
2214 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ControlResetError {
2215 #[inline(always)]
2216 fn new_empty() -> Self {
2217 Self::unknown()
2218 }
2219
2220 #[inline]
2221 unsafe fn decode(
2222 &mut self,
2223 decoder: &mut fidl::encoding::Decoder<'_, D>,
2224 offset: usize,
2225 _depth: fidl::encoding::Depth,
2226 ) -> fidl::Result<()> {
2227 decoder.debug_check_bounds::<Self>(offset);
2228 let prim = decoder.read_num::<u32>(offset);
2229
2230 *self = Self::from_primitive_allow_unknown(prim);
2231 Ok(())
2232 }
2233 }
2234 unsafe impl fidl::encoding::TypeMarker for ControlSetDaiFormatError {
2235 type Owned = Self;
2236
2237 #[inline(always)]
2238 fn inline_align(_context: fidl::encoding::Context) -> usize {
2239 std::mem::align_of::<u32>()
2240 }
2241
2242 #[inline(always)]
2243 fn inline_size(_context: fidl::encoding::Context) -> usize {
2244 std::mem::size_of::<u32>()
2245 }
2246
2247 #[inline(always)]
2248 fn encode_is_copy() -> bool {
2249 false
2250 }
2251
2252 #[inline(always)]
2253 fn decode_is_copy() -> bool {
2254 false
2255 }
2256 }
2257
2258 impl fidl::encoding::ValueTypeMarker for ControlSetDaiFormatError {
2259 type Borrowed<'a> = Self;
2260 #[inline(always)]
2261 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2262 *value
2263 }
2264 }
2265
2266 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
2267 for ControlSetDaiFormatError
2268 {
2269 #[inline]
2270 unsafe fn encode(
2271 self,
2272 encoder: &mut fidl::encoding::Encoder<'_, D>,
2273 offset: usize,
2274 _depth: fidl::encoding::Depth,
2275 ) -> fidl::Result<()> {
2276 encoder.debug_check_bounds::<Self>(offset);
2277 encoder.write_num(self.into_primitive(), offset);
2278 Ok(())
2279 }
2280 }
2281
2282 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2283 for ControlSetDaiFormatError
2284 {
2285 #[inline(always)]
2286 fn new_empty() -> Self {
2287 Self::unknown()
2288 }
2289
2290 #[inline]
2291 unsafe fn decode(
2292 &mut self,
2293 decoder: &mut fidl::encoding::Decoder<'_, D>,
2294 offset: usize,
2295 _depth: fidl::encoding::Depth,
2296 ) -> fidl::Result<()> {
2297 decoder.debug_check_bounds::<Self>(offset);
2298 let prim = decoder.read_num::<u32>(offset);
2299
2300 *self = Self::from_primitive_allow_unknown(prim);
2301 Ok(())
2302 }
2303 }
2304 unsafe impl fidl::encoding::TypeMarker for DeviceType {
2305 type Owned = Self;
2306
2307 #[inline(always)]
2308 fn inline_align(_context: fidl::encoding::Context) -> usize {
2309 std::mem::align_of::<u32>()
2310 }
2311
2312 #[inline(always)]
2313 fn inline_size(_context: fidl::encoding::Context) -> usize {
2314 std::mem::size_of::<u32>()
2315 }
2316
2317 #[inline(always)]
2318 fn encode_is_copy() -> bool {
2319 false
2320 }
2321
2322 #[inline(always)]
2323 fn decode_is_copy() -> bool {
2324 false
2325 }
2326 }
2327
2328 impl fidl::encoding::ValueTypeMarker for DeviceType {
2329 type Borrowed<'a> = Self;
2330 #[inline(always)]
2331 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2332 *value
2333 }
2334 }
2335
2336 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for DeviceType {
2337 #[inline]
2338 unsafe fn encode(
2339 self,
2340 encoder: &mut fidl::encoding::Encoder<'_, D>,
2341 offset: usize,
2342 _depth: fidl::encoding::Depth,
2343 ) -> fidl::Result<()> {
2344 encoder.debug_check_bounds::<Self>(offset);
2345 encoder.write_num(self.into_primitive(), offset);
2346 Ok(())
2347 }
2348 }
2349
2350 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for DeviceType {
2351 #[inline(always)]
2352 fn new_empty() -> Self {
2353 Self::unknown()
2354 }
2355
2356 #[inline]
2357 unsafe fn decode(
2358 &mut self,
2359 decoder: &mut fidl::encoding::Decoder<'_, D>,
2360 offset: usize,
2361 _depth: fidl::encoding::Depth,
2362 ) -> fidl::Result<()> {
2363 decoder.debug_check_bounds::<Self>(offset);
2364 let prim = decoder.read_num::<u32>(offset);
2365
2366 *self = Self::from_primitive_allow_unknown(prim);
2367 Ok(())
2368 }
2369 }
2370 unsafe impl fidl::encoding::TypeMarker for ObserverGetReferenceClockError {
2371 type Owned = Self;
2372
2373 #[inline(always)]
2374 fn inline_align(_context: fidl::encoding::Context) -> usize {
2375 std::mem::align_of::<u32>()
2376 }
2377
2378 #[inline(always)]
2379 fn inline_size(_context: fidl::encoding::Context) -> usize {
2380 std::mem::size_of::<u32>()
2381 }
2382
2383 #[inline(always)]
2384 fn encode_is_copy() -> bool {
2385 false
2386 }
2387
2388 #[inline(always)]
2389 fn decode_is_copy() -> bool {
2390 false
2391 }
2392 }
2393
2394 impl fidl::encoding::ValueTypeMarker for ObserverGetReferenceClockError {
2395 type Borrowed<'a> = Self;
2396 #[inline(always)]
2397 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2398 *value
2399 }
2400 }
2401
2402 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
2403 for ObserverGetReferenceClockError
2404 {
2405 #[inline]
2406 unsafe fn encode(
2407 self,
2408 encoder: &mut fidl::encoding::Encoder<'_, D>,
2409 offset: usize,
2410 _depth: fidl::encoding::Depth,
2411 ) -> fidl::Result<()> {
2412 encoder.debug_check_bounds::<Self>(offset);
2413 encoder.write_num(self.into_primitive(), offset);
2414 Ok(())
2415 }
2416 }
2417
2418 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2419 for ObserverGetReferenceClockError
2420 {
2421 #[inline(always)]
2422 fn new_empty() -> Self {
2423 Self::unknown()
2424 }
2425
2426 #[inline]
2427 unsafe fn decode(
2428 &mut self,
2429 decoder: &mut fidl::encoding::Decoder<'_, D>,
2430 offset: usize,
2431 _depth: fidl::encoding::Depth,
2432 ) -> fidl::Result<()> {
2433 decoder.debug_check_bounds::<Self>(offset);
2434 let prim = decoder.read_num::<u32>(offset);
2435
2436 *self = Self::from_primitive_allow_unknown(prim);
2437 Ok(())
2438 }
2439 }
2440 unsafe impl fidl::encoding::TypeMarker for ObserverWatchPlugStateError {
2441 type Owned = Self;
2442
2443 #[inline(always)]
2444 fn inline_align(_context: fidl::encoding::Context) -> usize {
2445 std::mem::align_of::<u32>()
2446 }
2447
2448 #[inline(always)]
2449 fn inline_size(_context: fidl::encoding::Context) -> usize {
2450 std::mem::size_of::<u32>()
2451 }
2452
2453 #[inline(always)]
2454 fn encode_is_copy() -> bool {
2455 false
2456 }
2457
2458 #[inline(always)]
2459 fn decode_is_copy() -> bool {
2460 false
2461 }
2462 }
2463
2464 impl fidl::encoding::ValueTypeMarker for ObserverWatchPlugStateError {
2465 type Borrowed<'a> = Self;
2466 #[inline(always)]
2467 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2468 *value
2469 }
2470 }
2471
2472 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
2473 for ObserverWatchPlugStateError
2474 {
2475 #[inline]
2476 unsafe fn encode(
2477 self,
2478 encoder: &mut fidl::encoding::Encoder<'_, D>,
2479 offset: usize,
2480 _depth: fidl::encoding::Depth,
2481 ) -> fidl::Result<()> {
2482 encoder.debug_check_bounds::<Self>(offset);
2483 encoder.write_num(self.into_primitive(), offset);
2484 Ok(())
2485 }
2486 }
2487
2488 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2489 for ObserverWatchPlugStateError
2490 {
2491 #[inline(always)]
2492 fn new_empty() -> Self {
2493 Self::unknown()
2494 }
2495
2496 #[inline]
2497 unsafe fn decode(
2498 &mut self,
2499 decoder: &mut fidl::encoding::Decoder<'_, D>,
2500 offset: usize,
2501 _depth: fidl::encoding::Depth,
2502 ) -> fidl::Result<()> {
2503 decoder.debug_check_bounds::<Self>(offset);
2504 let prim = decoder.read_num::<u32>(offset);
2505
2506 *self = Self::from_primitive_allow_unknown(prim);
2507 Ok(())
2508 }
2509 }
2510 unsafe impl fidl::encoding::TypeMarker for PlugDetectCapabilities {
2511 type Owned = Self;
2512
2513 #[inline(always)]
2514 fn inline_align(_context: fidl::encoding::Context) -> usize {
2515 std::mem::align_of::<u32>()
2516 }
2517
2518 #[inline(always)]
2519 fn inline_size(_context: fidl::encoding::Context) -> usize {
2520 std::mem::size_of::<u32>()
2521 }
2522
2523 #[inline(always)]
2524 fn encode_is_copy() -> bool {
2525 false
2526 }
2527
2528 #[inline(always)]
2529 fn decode_is_copy() -> bool {
2530 false
2531 }
2532 }
2533
2534 impl fidl::encoding::ValueTypeMarker for PlugDetectCapabilities {
2535 type Borrowed<'a> = Self;
2536 #[inline(always)]
2537 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2538 *value
2539 }
2540 }
2541
2542 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
2543 for PlugDetectCapabilities
2544 {
2545 #[inline]
2546 unsafe fn encode(
2547 self,
2548 encoder: &mut fidl::encoding::Encoder<'_, D>,
2549 offset: usize,
2550 _depth: fidl::encoding::Depth,
2551 ) -> fidl::Result<()> {
2552 encoder.debug_check_bounds::<Self>(offset);
2553 encoder.write_num(self.into_primitive(), offset);
2554 Ok(())
2555 }
2556 }
2557
2558 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2559 for PlugDetectCapabilities
2560 {
2561 #[inline(always)]
2562 fn new_empty() -> Self {
2563 Self::unknown()
2564 }
2565
2566 #[inline]
2567 unsafe fn decode(
2568 &mut self,
2569 decoder: &mut fidl::encoding::Decoder<'_, D>,
2570 offset: usize,
2571 _depth: fidl::encoding::Depth,
2572 ) -> fidl::Result<()> {
2573 decoder.debug_check_bounds::<Self>(offset);
2574 let prim = decoder.read_num::<u32>(offset);
2575
2576 *self = Self::from_primitive_allow_unknown(prim);
2577 Ok(())
2578 }
2579 }
2580 unsafe impl fidl::encoding::TypeMarker for PlugState {
2581 type Owned = Self;
2582
2583 #[inline(always)]
2584 fn inline_align(_context: fidl::encoding::Context) -> usize {
2585 std::mem::align_of::<u32>()
2586 }
2587
2588 #[inline(always)]
2589 fn inline_size(_context: fidl::encoding::Context) -> usize {
2590 std::mem::size_of::<u32>()
2591 }
2592
2593 #[inline(always)]
2594 fn encode_is_copy() -> bool {
2595 false
2596 }
2597
2598 #[inline(always)]
2599 fn decode_is_copy() -> bool {
2600 false
2601 }
2602 }
2603
2604 impl fidl::encoding::ValueTypeMarker for PlugState {
2605 type Borrowed<'a> = Self;
2606 #[inline(always)]
2607 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2608 *value
2609 }
2610 }
2611
2612 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for PlugState {
2613 #[inline]
2614 unsafe fn encode(
2615 self,
2616 encoder: &mut fidl::encoding::Encoder<'_, D>,
2617 offset: usize,
2618 _depth: fidl::encoding::Depth,
2619 ) -> fidl::Result<()> {
2620 encoder.debug_check_bounds::<Self>(offset);
2621 encoder.write_num(self.into_primitive(), offset);
2622 Ok(())
2623 }
2624 }
2625
2626 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for PlugState {
2627 #[inline(always)]
2628 fn new_empty() -> Self {
2629 Self::unknown()
2630 }
2631
2632 #[inline]
2633 unsafe fn decode(
2634 &mut self,
2635 decoder: &mut fidl::encoding::Decoder<'_, D>,
2636 offset: usize,
2637 _depth: fidl::encoding::Depth,
2638 ) -> fidl::Result<()> {
2639 decoder.debug_check_bounds::<Self>(offset);
2640 let prim = decoder.read_num::<u32>(offset);
2641
2642 *self = Self::from_primitive_allow_unknown(prim);
2643 Ok(())
2644 }
2645 }
2646 unsafe impl fidl::encoding::TypeMarker for ProviderAddDeviceError {
2647 type Owned = Self;
2648
2649 #[inline(always)]
2650 fn inline_align(_context: fidl::encoding::Context) -> usize {
2651 std::mem::align_of::<u32>()
2652 }
2653
2654 #[inline(always)]
2655 fn inline_size(_context: fidl::encoding::Context) -> usize {
2656 std::mem::size_of::<u32>()
2657 }
2658
2659 #[inline(always)]
2660 fn encode_is_copy() -> bool {
2661 false
2662 }
2663
2664 #[inline(always)]
2665 fn decode_is_copy() -> bool {
2666 false
2667 }
2668 }
2669
2670 impl fidl::encoding::ValueTypeMarker for ProviderAddDeviceError {
2671 type Borrowed<'a> = Self;
2672 #[inline(always)]
2673 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2674 *value
2675 }
2676 }
2677
2678 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
2679 for ProviderAddDeviceError
2680 {
2681 #[inline]
2682 unsafe fn encode(
2683 self,
2684 encoder: &mut fidl::encoding::Encoder<'_, D>,
2685 offset: usize,
2686 _depth: fidl::encoding::Depth,
2687 ) -> fidl::Result<()> {
2688 encoder.debug_check_bounds::<Self>(offset);
2689 encoder.write_num(self.into_primitive(), offset);
2690 Ok(())
2691 }
2692 }
2693
2694 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2695 for ProviderAddDeviceError
2696 {
2697 #[inline(always)]
2698 fn new_empty() -> Self {
2699 Self::unknown()
2700 }
2701
2702 #[inline]
2703 unsafe fn decode(
2704 &mut self,
2705 decoder: &mut fidl::encoding::Decoder<'_, D>,
2706 offset: usize,
2707 _depth: fidl::encoding::Depth,
2708 ) -> fidl::Result<()> {
2709 decoder.debug_check_bounds::<Self>(offset);
2710 let prim = decoder.read_num::<u32>(offset);
2711
2712 *self = Self::from_primitive_allow_unknown(prim);
2713 Ok(())
2714 }
2715 }
2716 unsafe impl fidl::encoding::TypeMarker for RegistryCreateObserverError {
2717 type Owned = Self;
2718
2719 #[inline(always)]
2720 fn inline_align(_context: fidl::encoding::Context) -> usize {
2721 std::mem::align_of::<u32>()
2722 }
2723
2724 #[inline(always)]
2725 fn inline_size(_context: fidl::encoding::Context) -> usize {
2726 std::mem::size_of::<u32>()
2727 }
2728
2729 #[inline(always)]
2730 fn encode_is_copy() -> bool {
2731 false
2732 }
2733
2734 #[inline(always)]
2735 fn decode_is_copy() -> bool {
2736 false
2737 }
2738 }
2739
2740 impl fidl::encoding::ValueTypeMarker for RegistryCreateObserverError {
2741 type Borrowed<'a> = Self;
2742 #[inline(always)]
2743 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2744 *value
2745 }
2746 }
2747
2748 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
2749 for RegistryCreateObserverError
2750 {
2751 #[inline]
2752 unsafe fn encode(
2753 self,
2754 encoder: &mut fidl::encoding::Encoder<'_, D>,
2755 offset: usize,
2756 _depth: fidl::encoding::Depth,
2757 ) -> fidl::Result<()> {
2758 encoder.debug_check_bounds::<Self>(offset);
2759 encoder.write_num(self.into_primitive(), offset);
2760 Ok(())
2761 }
2762 }
2763
2764 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2765 for RegistryCreateObserverError
2766 {
2767 #[inline(always)]
2768 fn new_empty() -> Self {
2769 Self::unknown()
2770 }
2771
2772 #[inline]
2773 unsafe fn decode(
2774 &mut self,
2775 decoder: &mut fidl::encoding::Decoder<'_, D>,
2776 offset: usize,
2777 _depth: fidl::encoding::Depth,
2778 ) -> fidl::Result<()> {
2779 decoder.debug_check_bounds::<Self>(offset);
2780 let prim = decoder.read_num::<u32>(offset);
2781
2782 *self = Self::from_primitive_allow_unknown(prim);
2783 Ok(())
2784 }
2785 }
2786 unsafe impl fidl::encoding::TypeMarker for RegistryWatchDeviceRemovedError {
2787 type Owned = Self;
2788
2789 #[inline(always)]
2790 fn inline_align(_context: fidl::encoding::Context) -> usize {
2791 std::mem::align_of::<u32>()
2792 }
2793
2794 #[inline(always)]
2795 fn inline_size(_context: fidl::encoding::Context) -> usize {
2796 std::mem::size_of::<u32>()
2797 }
2798
2799 #[inline(always)]
2800 fn encode_is_copy() -> bool {
2801 false
2802 }
2803
2804 #[inline(always)]
2805 fn decode_is_copy() -> bool {
2806 false
2807 }
2808 }
2809
2810 impl fidl::encoding::ValueTypeMarker for RegistryWatchDeviceRemovedError {
2811 type Borrowed<'a> = Self;
2812 #[inline(always)]
2813 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2814 *value
2815 }
2816 }
2817
2818 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
2819 for RegistryWatchDeviceRemovedError
2820 {
2821 #[inline]
2822 unsafe fn encode(
2823 self,
2824 encoder: &mut fidl::encoding::Encoder<'_, D>,
2825 offset: usize,
2826 _depth: fidl::encoding::Depth,
2827 ) -> fidl::Result<()> {
2828 encoder.debug_check_bounds::<Self>(offset);
2829 encoder.write_num(self.into_primitive(), offset);
2830 Ok(())
2831 }
2832 }
2833
2834 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2835 for RegistryWatchDeviceRemovedError
2836 {
2837 #[inline(always)]
2838 fn new_empty() -> Self {
2839 Self::unknown()
2840 }
2841
2842 #[inline]
2843 unsafe fn decode(
2844 &mut self,
2845 decoder: &mut fidl::encoding::Decoder<'_, D>,
2846 offset: usize,
2847 _depth: fidl::encoding::Depth,
2848 ) -> fidl::Result<()> {
2849 decoder.debug_check_bounds::<Self>(offset);
2850 let prim = decoder.read_num::<u32>(offset);
2851
2852 *self = Self::from_primitive_allow_unknown(prim);
2853 Ok(())
2854 }
2855 }
2856 unsafe impl fidl::encoding::TypeMarker for RegistryWatchDevicesAddedError {
2857 type Owned = Self;
2858
2859 #[inline(always)]
2860 fn inline_align(_context: fidl::encoding::Context) -> usize {
2861 std::mem::align_of::<u32>()
2862 }
2863
2864 #[inline(always)]
2865 fn inline_size(_context: fidl::encoding::Context) -> usize {
2866 std::mem::size_of::<u32>()
2867 }
2868
2869 #[inline(always)]
2870 fn encode_is_copy() -> bool {
2871 false
2872 }
2873
2874 #[inline(always)]
2875 fn decode_is_copy() -> bool {
2876 false
2877 }
2878 }
2879
2880 impl fidl::encoding::ValueTypeMarker for RegistryWatchDevicesAddedError {
2881 type Borrowed<'a> = Self;
2882 #[inline(always)]
2883 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2884 *value
2885 }
2886 }
2887
2888 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
2889 for RegistryWatchDevicesAddedError
2890 {
2891 #[inline]
2892 unsafe fn encode(
2893 self,
2894 encoder: &mut fidl::encoding::Encoder<'_, D>,
2895 offset: usize,
2896 _depth: fidl::encoding::Depth,
2897 ) -> fidl::Result<()> {
2898 encoder.debug_check_bounds::<Self>(offset);
2899 encoder.write_num(self.into_primitive(), offset);
2900 Ok(())
2901 }
2902 }
2903
2904 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2905 for RegistryWatchDevicesAddedError
2906 {
2907 #[inline(always)]
2908 fn new_empty() -> Self {
2909 Self::unknown()
2910 }
2911
2912 #[inline]
2913 unsafe fn decode(
2914 &mut self,
2915 decoder: &mut fidl::encoding::Decoder<'_, D>,
2916 offset: usize,
2917 _depth: fidl::encoding::Depth,
2918 ) -> fidl::Result<()> {
2919 decoder.debug_check_bounds::<Self>(offset);
2920 let prim = decoder.read_num::<u32>(offset);
2921
2922 *self = Self::from_primitive_allow_unknown(prim);
2923 Ok(())
2924 }
2925 }
2926 unsafe impl fidl::encoding::TypeMarker for RingBufferSetActiveChannelsError {
2927 type Owned = Self;
2928
2929 #[inline(always)]
2930 fn inline_align(_context: fidl::encoding::Context) -> usize {
2931 std::mem::align_of::<u32>()
2932 }
2933
2934 #[inline(always)]
2935 fn inline_size(_context: fidl::encoding::Context) -> usize {
2936 std::mem::size_of::<u32>()
2937 }
2938
2939 #[inline(always)]
2940 fn encode_is_copy() -> bool {
2941 false
2942 }
2943
2944 #[inline(always)]
2945 fn decode_is_copy() -> bool {
2946 false
2947 }
2948 }
2949
2950 impl fidl::encoding::ValueTypeMarker for RingBufferSetActiveChannelsError {
2951 type Borrowed<'a> = Self;
2952 #[inline(always)]
2953 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2954 *value
2955 }
2956 }
2957
2958 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
2959 for RingBufferSetActiveChannelsError
2960 {
2961 #[inline]
2962 unsafe fn encode(
2963 self,
2964 encoder: &mut fidl::encoding::Encoder<'_, D>,
2965 offset: usize,
2966 _depth: fidl::encoding::Depth,
2967 ) -> fidl::Result<()> {
2968 encoder.debug_check_bounds::<Self>(offset);
2969 encoder.write_num(self.into_primitive(), offset);
2970 Ok(())
2971 }
2972 }
2973
2974 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2975 for RingBufferSetActiveChannelsError
2976 {
2977 #[inline(always)]
2978 fn new_empty() -> Self {
2979 Self::unknown()
2980 }
2981
2982 #[inline]
2983 unsafe fn decode(
2984 &mut self,
2985 decoder: &mut fidl::encoding::Decoder<'_, D>,
2986 offset: usize,
2987 _depth: fidl::encoding::Depth,
2988 ) -> fidl::Result<()> {
2989 decoder.debug_check_bounds::<Self>(offset);
2990 let prim = decoder.read_num::<u32>(offset);
2991
2992 *self = Self::from_primitive_allow_unknown(prim);
2993 Ok(())
2994 }
2995 }
2996 unsafe impl fidl::encoding::TypeMarker for RingBufferStartError {
2997 type Owned = Self;
2998
2999 #[inline(always)]
3000 fn inline_align(_context: fidl::encoding::Context) -> usize {
3001 std::mem::align_of::<u32>()
3002 }
3003
3004 #[inline(always)]
3005 fn inline_size(_context: fidl::encoding::Context) -> usize {
3006 std::mem::size_of::<u32>()
3007 }
3008
3009 #[inline(always)]
3010 fn encode_is_copy() -> bool {
3011 false
3012 }
3013
3014 #[inline(always)]
3015 fn decode_is_copy() -> bool {
3016 false
3017 }
3018 }
3019
3020 impl fidl::encoding::ValueTypeMarker for RingBufferStartError {
3021 type Borrowed<'a> = Self;
3022 #[inline(always)]
3023 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3024 *value
3025 }
3026 }
3027
3028 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
3029 for RingBufferStartError
3030 {
3031 #[inline]
3032 unsafe fn encode(
3033 self,
3034 encoder: &mut fidl::encoding::Encoder<'_, D>,
3035 offset: usize,
3036 _depth: fidl::encoding::Depth,
3037 ) -> fidl::Result<()> {
3038 encoder.debug_check_bounds::<Self>(offset);
3039 encoder.write_num(self.into_primitive(), offset);
3040 Ok(())
3041 }
3042 }
3043
3044 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for RingBufferStartError {
3045 #[inline(always)]
3046 fn new_empty() -> Self {
3047 Self::unknown()
3048 }
3049
3050 #[inline]
3051 unsafe fn decode(
3052 &mut self,
3053 decoder: &mut fidl::encoding::Decoder<'_, D>,
3054 offset: usize,
3055 _depth: fidl::encoding::Depth,
3056 ) -> fidl::Result<()> {
3057 decoder.debug_check_bounds::<Self>(offset);
3058 let prim = decoder.read_num::<u32>(offset);
3059
3060 *self = Self::from_primitive_allow_unknown(prim);
3061 Ok(())
3062 }
3063 }
3064 unsafe impl fidl::encoding::TypeMarker for RingBufferStopError {
3065 type Owned = Self;
3066
3067 #[inline(always)]
3068 fn inline_align(_context: fidl::encoding::Context) -> usize {
3069 std::mem::align_of::<u32>()
3070 }
3071
3072 #[inline(always)]
3073 fn inline_size(_context: fidl::encoding::Context) -> usize {
3074 std::mem::size_of::<u32>()
3075 }
3076
3077 #[inline(always)]
3078 fn encode_is_copy() -> bool {
3079 false
3080 }
3081
3082 #[inline(always)]
3083 fn decode_is_copy() -> bool {
3084 false
3085 }
3086 }
3087
3088 impl fidl::encoding::ValueTypeMarker for RingBufferStopError {
3089 type Borrowed<'a> = Self;
3090 #[inline(always)]
3091 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3092 *value
3093 }
3094 }
3095
3096 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
3097 for RingBufferStopError
3098 {
3099 #[inline]
3100 unsafe fn encode(
3101 self,
3102 encoder: &mut fidl::encoding::Encoder<'_, D>,
3103 offset: usize,
3104 _depth: fidl::encoding::Depth,
3105 ) -> fidl::Result<()> {
3106 encoder.debug_check_bounds::<Self>(offset);
3107 encoder.write_num(self.into_primitive(), offset);
3108 Ok(())
3109 }
3110 }
3111
3112 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for RingBufferStopError {
3113 #[inline(always)]
3114 fn new_empty() -> Self {
3115 Self::unknown()
3116 }
3117
3118 #[inline]
3119 unsafe fn decode(
3120 &mut self,
3121 decoder: &mut fidl::encoding::Decoder<'_, D>,
3122 offset: usize,
3123 _depth: fidl::encoding::Depth,
3124 ) -> fidl::Result<()> {
3125 decoder.debug_check_bounds::<Self>(offset);
3126 let prim = decoder.read_num::<u32>(offset);
3127
3128 *self = Self::from_primitive_allow_unknown(prim);
3129 Ok(())
3130 }
3131 }
3132 unsafe impl fidl::encoding::TypeMarker for RingBufferWatchDelayInfoError {
3133 type Owned = Self;
3134
3135 #[inline(always)]
3136 fn inline_align(_context: fidl::encoding::Context) -> usize {
3137 std::mem::align_of::<u32>()
3138 }
3139
3140 #[inline(always)]
3141 fn inline_size(_context: fidl::encoding::Context) -> usize {
3142 std::mem::size_of::<u32>()
3143 }
3144
3145 #[inline(always)]
3146 fn encode_is_copy() -> bool {
3147 false
3148 }
3149
3150 #[inline(always)]
3151 fn decode_is_copy() -> bool {
3152 false
3153 }
3154 }
3155
3156 impl fidl::encoding::ValueTypeMarker for RingBufferWatchDelayInfoError {
3157 type Borrowed<'a> = Self;
3158 #[inline(always)]
3159 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3160 *value
3161 }
3162 }
3163
3164 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
3165 for RingBufferWatchDelayInfoError
3166 {
3167 #[inline]
3168 unsafe fn encode(
3169 self,
3170 encoder: &mut fidl::encoding::Encoder<'_, D>,
3171 offset: usize,
3172 _depth: fidl::encoding::Depth,
3173 ) -> fidl::Result<()> {
3174 encoder.debug_check_bounds::<Self>(offset);
3175 encoder.write_num(self.into_primitive(), offset);
3176 Ok(())
3177 }
3178 }
3179
3180 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
3181 for RingBufferWatchDelayInfoError
3182 {
3183 #[inline(always)]
3184 fn new_empty() -> Self {
3185 Self::unknown()
3186 }
3187
3188 #[inline]
3189 unsafe fn decode(
3190 &mut self,
3191 decoder: &mut fidl::encoding::Decoder<'_, D>,
3192 offset: usize,
3193 _depth: fidl::encoding::Depth,
3194 ) -> fidl::Result<()> {
3195 decoder.debug_check_bounds::<Self>(offset);
3196 let prim = decoder.read_num::<u32>(offset);
3197
3198 *self = Self::from_primitive_allow_unknown(prim);
3199 Ok(())
3200 }
3201 }
3202
3203 impl ChannelAttributes {
3204 #[inline(always)]
3205 fn max_ordinal_present(&self) -> u64 {
3206 if let Some(_) = self.max_frequency {
3207 return 2;
3208 }
3209 if let Some(_) = self.min_frequency {
3210 return 1;
3211 }
3212 0
3213 }
3214 }
3215
3216 impl fidl::encoding::ValueTypeMarker for ChannelAttributes {
3217 type Borrowed<'a> = &'a Self;
3218 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3219 value
3220 }
3221 }
3222
3223 unsafe impl fidl::encoding::TypeMarker for ChannelAttributes {
3224 type Owned = Self;
3225
3226 #[inline(always)]
3227 fn inline_align(_context: fidl::encoding::Context) -> usize {
3228 8
3229 }
3230
3231 #[inline(always)]
3232 fn inline_size(_context: fidl::encoding::Context) -> usize {
3233 16
3234 }
3235 }
3236
3237 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<ChannelAttributes, D>
3238 for &ChannelAttributes
3239 {
3240 unsafe fn encode(
3241 self,
3242 encoder: &mut fidl::encoding::Encoder<'_, D>,
3243 offset: usize,
3244 mut depth: fidl::encoding::Depth,
3245 ) -> fidl::Result<()> {
3246 encoder.debug_check_bounds::<ChannelAttributes>(offset);
3247 let max_ordinal: u64 = self.max_ordinal_present();
3249 encoder.write_num(max_ordinal, offset);
3250 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
3251 if max_ordinal == 0 {
3253 return Ok(());
3254 }
3255 depth.increment()?;
3256 let envelope_size = 8;
3257 let bytes_len = max_ordinal as usize * envelope_size;
3258 #[allow(unused_variables)]
3259 let offset = encoder.out_of_line_offset(bytes_len);
3260 let mut _prev_end_offset: usize = 0;
3261 if 1 > max_ordinal {
3262 return Ok(());
3263 }
3264
3265 let cur_offset: usize = (1 - 1) * envelope_size;
3268
3269 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3271
3272 fidl::encoding::encode_in_envelope_optional::<u32, D>(
3277 self.min_frequency.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
3278 encoder,
3279 offset + cur_offset,
3280 depth,
3281 )?;
3282
3283 _prev_end_offset = cur_offset + envelope_size;
3284 if 2 > max_ordinal {
3285 return Ok(());
3286 }
3287
3288 let cur_offset: usize = (2 - 1) * envelope_size;
3291
3292 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3294
3295 fidl::encoding::encode_in_envelope_optional::<u32, D>(
3300 self.max_frequency.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
3301 encoder,
3302 offset + cur_offset,
3303 depth,
3304 )?;
3305
3306 _prev_end_offset = cur_offset + envelope_size;
3307
3308 Ok(())
3309 }
3310 }
3311
3312 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ChannelAttributes {
3313 #[inline(always)]
3314 fn new_empty() -> Self {
3315 Self::default()
3316 }
3317
3318 unsafe fn decode(
3319 &mut self,
3320 decoder: &mut fidl::encoding::Decoder<'_, D>,
3321 offset: usize,
3322 mut depth: fidl::encoding::Depth,
3323 ) -> fidl::Result<()> {
3324 decoder.debug_check_bounds::<Self>(offset);
3325 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
3326 None => return Err(fidl::Error::NotNullable),
3327 Some(len) => len,
3328 };
3329 if len == 0 {
3331 return Ok(());
3332 };
3333 depth.increment()?;
3334 let envelope_size = 8;
3335 let bytes_len = len * envelope_size;
3336 let offset = decoder.out_of_line_offset(bytes_len)?;
3337 let mut _next_ordinal_to_read = 0;
3339 let mut next_offset = offset;
3340 let end_offset = offset + bytes_len;
3341 _next_ordinal_to_read += 1;
3342 if next_offset >= end_offset {
3343 return Ok(());
3344 }
3345
3346 while _next_ordinal_to_read < 1 {
3348 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3349 _next_ordinal_to_read += 1;
3350 next_offset += envelope_size;
3351 }
3352
3353 let next_out_of_line = decoder.next_out_of_line();
3354 let handles_before = decoder.remaining_handles();
3355 if let Some((inlined, num_bytes, num_handles)) =
3356 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3357 {
3358 let member_inline_size =
3359 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3360 if inlined != (member_inline_size <= 4) {
3361 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3362 }
3363 let inner_offset;
3364 let mut inner_depth = depth.clone();
3365 if inlined {
3366 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3367 inner_offset = next_offset;
3368 } else {
3369 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3370 inner_depth.increment()?;
3371 }
3372 let val_ref = self.min_frequency.get_or_insert_with(|| fidl::new_empty!(u32, D));
3373 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
3374 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3375 {
3376 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3377 }
3378 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3379 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3380 }
3381 }
3382
3383 next_offset += envelope_size;
3384 _next_ordinal_to_read += 1;
3385 if next_offset >= end_offset {
3386 return Ok(());
3387 }
3388
3389 while _next_ordinal_to_read < 2 {
3391 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3392 _next_ordinal_to_read += 1;
3393 next_offset += envelope_size;
3394 }
3395
3396 let next_out_of_line = decoder.next_out_of_line();
3397 let handles_before = decoder.remaining_handles();
3398 if let Some((inlined, num_bytes, num_handles)) =
3399 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3400 {
3401 let member_inline_size =
3402 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3403 if inlined != (member_inline_size <= 4) {
3404 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3405 }
3406 let inner_offset;
3407 let mut inner_depth = depth.clone();
3408 if inlined {
3409 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3410 inner_offset = next_offset;
3411 } else {
3412 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3413 inner_depth.increment()?;
3414 }
3415 let val_ref = self.max_frequency.get_or_insert_with(|| fidl::new_empty!(u32, D));
3416 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
3417 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3418 {
3419 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3420 }
3421 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3422 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3423 }
3424 }
3425
3426 next_offset += envelope_size;
3427
3428 while next_offset < end_offset {
3430 _next_ordinal_to_read += 1;
3431 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3432 next_offset += envelope_size;
3433 }
3434
3435 Ok(())
3436 }
3437 }
3438
3439 impl ChannelSet {
3440 #[inline(always)]
3441 fn max_ordinal_present(&self) -> u64 {
3442 if let Some(_) = self.attributes {
3443 return 1;
3444 }
3445 0
3446 }
3447 }
3448
3449 impl fidl::encoding::ValueTypeMarker for ChannelSet {
3450 type Borrowed<'a> = &'a Self;
3451 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3452 value
3453 }
3454 }
3455
3456 unsafe impl fidl::encoding::TypeMarker for ChannelSet {
3457 type Owned = Self;
3458
3459 #[inline(always)]
3460 fn inline_align(_context: fidl::encoding::Context) -> usize {
3461 8
3462 }
3463
3464 #[inline(always)]
3465 fn inline_size(_context: fidl::encoding::Context) -> usize {
3466 16
3467 }
3468 }
3469
3470 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<ChannelSet, D>
3471 for &ChannelSet
3472 {
3473 unsafe fn encode(
3474 self,
3475 encoder: &mut fidl::encoding::Encoder<'_, D>,
3476 offset: usize,
3477 mut depth: fidl::encoding::Depth,
3478 ) -> fidl::Result<()> {
3479 encoder.debug_check_bounds::<ChannelSet>(offset);
3480 let max_ordinal: u64 = self.max_ordinal_present();
3482 encoder.write_num(max_ordinal, offset);
3483 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
3484 if max_ordinal == 0 {
3486 return Ok(());
3487 }
3488 depth.increment()?;
3489 let envelope_size = 8;
3490 let bytes_len = max_ordinal as usize * envelope_size;
3491 #[allow(unused_variables)]
3492 let offset = encoder.out_of_line_offset(bytes_len);
3493 let mut _prev_end_offset: usize = 0;
3494 if 1 > max_ordinal {
3495 return Ok(());
3496 }
3497
3498 let cur_offset: usize = (1 - 1) * envelope_size;
3501
3502 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3504
3505 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<ChannelAttributes, 64>, D>(
3510 self.attributes.as_ref().map(<fidl::encoding::Vector<ChannelAttributes, 64> as fidl::encoding::ValueTypeMarker>::borrow),
3511 encoder, offset + cur_offset, depth
3512 )?;
3513
3514 _prev_end_offset = cur_offset + envelope_size;
3515
3516 Ok(())
3517 }
3518 }
3519
3520 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ChannelSet {
3521 #[inline(always)]
3522 fn new_empty() -> Self {
3523 Self::default()
3524 }
3525
3526 unsafe fn decode(
3527 &mut self,
3528 decoder: &mut fidl::encoding::Decoder<'_, D>,
3529 offset: usize,
3530 mut depth: fidl::encoding::Depth,
3531 ) -> fidl::Result<()> {
3532 decoder.debug_check_bounds::<Self>(offset);
3533 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
3534 None => return Err(fidl::Error::NotNullable),
3535 Some(len) => len,
3536 };
3537 if len == 0 {
3539 return Ok(());
3540 };
3541 depth.increment()?;
3542 let envelope_size = 8;
3543 let bytes_len = len * envelope_size;
3544 let offset = decoder.out_of_line_offset(bytes_len)?;
3545 let mut _next_ordinal_to_read = 0;
3547 let mut next_offset = offset;
3548 let end_offset = offset + bytes_len;
3549 _next_ordinal_to_read += 1;
3550 if next_offset >= end_offset {
3551 return Ok(());
3552 }
3553
3554 while _next_ordinal_to_read < 1 {
3556 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3557 _next_ordinal_to_read += 1;
3558 next_offset += envelope_size;
3559 }
3560
3561 let next_out_of_line = decoder.next_out_of_line();
3562 let handles_before = decoder.remaining_handles();
3563 if let Some((inlined, num_bytes, num_handles)) =
3564 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3565 {
3566 let member_inline_size = <fidl::encoding::Vector<ChannelAttributes, 64> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3567 if inlined != (member_inline_size <= 4) {
3568 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3569 }
3570 let inner_offset;
3571 let mut inner_depth = depth.clone();
3572 if inlined {
3573 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3574 inner_offset = next_offset;
3575 } else {
3576 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3577 inner_depth.increment()?;
3578 }
3579 let val_ref = self.attributes.get_or_insert_with(
3580 || fidl::new_empty!(fidl::encoding::Vector<ChannelAttributes, 64>, D),
3581 );
3582 fidl::decode!(fidl::encoding::Vector<ChannelAttributes, 64>, D, val_ref, decoder, inner_offset, inner_depth)?;
3583 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3584 {
3585 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3586 }
3587 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3588 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3589 }
3590 }
3591
3592 next_offset += envelope_size;
3593
3594 while next_offset < end_offset {
3596 _next_ordinal_to_read += 1;
3597 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3598 next_offset += envelope_size;
3599 }
3600
3601 Ok(())
3602 }
3603 }
3604
3605 impl ControlCreatorCreateResponse {
3606 #[inline(always)]
3607 fn max_ordinal_present(&self) -> u64 {
3608 0
3609 }
3610 }
3611
3612 impl fidl::encoding::ValueTypeMarker for ControlCreatorCreateResponse {
3613 type Borrowed<'a> = &'a Self;
3614 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3615 value
3616 }
3617 }
3618
3619 unsafe impl fidl::encoding::TypeMarker for ControlCreatorCreateResponse {
3620 type Owned = Self;
3621
3622 #[inline(always)]
3623 fn inline_align(_context: fidl::encoding::Context) -> usize {
3624 8
3625 }
3626
3627 #[inline(always)]
3628 fn inline_size(_context: fidl::encoding::Context) -> usize {
3629 16
3630 }
3631 }
3632
3633 unsafe impl<D: fidl::encoding::ResourceDialect>
3634 fidl::encoding::Encode<ControlCreatorCreateResponse, D> for &ControlCreatorCreateResponse
3635 {
3636 unsafe fn encode(
3637 self,
3638 encoder: &mut fidl::encoding::Encoder<'_, D>,
3639 offset: usize,
3640 mut depth: fidl::encoding::Depth,
3641 ) -> fidl::Result<()> {
3642 encoder.debug_check_bounds::<ControlCreatorCreateResponse>(offset);
3643 let max_ordinal: u64 = self.max_ordinal_present();
3645 encoder.write_num(max_ordinal, offset);
3646 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
3647 if max_ordinal == 0 {
3649 return Ok(());
3650 }
3651 depth.increment()?;
3652 let envelope_size = 8;
3653 let bytes_len = max_ordinal as usize * envelope_size;
3654 #[allow(unused_variables)]
3655 let offset = encoder.out_of_line_offset(bytes_len);
3656 let mut _prev_end_offset: usize = 0;
3657
3658 Ok(())
3659 }
3660 }
3661
3662 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
3663 for ControlCreatorCreateResponse
3664 {
3665 #[inline(always)]
3666 fn new_empty() -> Self {
3667 Self::default()
3668 }
3669
3670 unsafe fn decode(
3671 &mut self,
3672 decoder: &mut fidl::encoding::Decoder<'_, D>,
3673 offset: usize,
3674 mut depth: fidl::encoding::Depth,
3675 ) -> fidl::Result<()> {
3676 decoder.debug_check_bounds::<Self>(offset);
3677 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
3678 None => return Err(fidl::Error::NotNullable),
3679 Some(len) => len,
3680 };
3681 if len == 0 {
3683 return Ok(());
3684 };
3685 depth.increment()?;
3686 let envelope_size = 8;
3687 let bytes_len = len * envelope_size;
3688 let offset = decoder.out_of_line_offset(bytes_len)?;
3689 let mut _next_ordinal_to_read = 0;
3691 let mut next_offset = offset;
3692 let end_offset = offset + bytes_len;
3693
3694 while next_offset < end_offset {
3696 _next_ordinal_to_read += 1;
3697 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3698 next_offset += envelope_size;
3699 }
3700
3701 Ok(())
3702 }
3703 }
3704
3705 impl ControlSetDaiFormatRequest {
3706 #[inline(always)]
3707 fn max_ordinal_present(&self) -> u64 {
3708 if let Some(_) = self.dai_format {
3709 return 2;
3710 }
3711 if let Some(_) = self.element_id {
3712 return 1;
3713 }
3714 0
3715 }
3716 }
3717
3718 impl fidl::encoding::ValueTypeMarker for ControlSetDaiFormatRequest {
3719 type Borrowed<'a> = &'a Self;
3720 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3721 value
3722 }
3723 }
3724
3725 unsafe impl fidl::encoding::TypeMarker for ControlSetDaiFormatRequest {
3726 type Owned = Self;
3727
3728 #[inline(always)]
3729 fn inline_align(_context: fidl::encoding::Context) -> usize {
3730 8
3731 }
3732
3733 #[inline(always)]
3734 fn inline_size(_context: fidl::encoding::Context) -> usize {
3735 16
3736 }
3737 }
3738
3739 unsafe impl<D: fidl::encoding::ResourceDialect>
3740 fidl::encoding::Encode<ControlSetDaiFormatRequest, D> for &ControlSetDaiFormatRequest
3741 {
3742 unsafe fn encode(
3743 self,
3744 encoder: &mut fidl::encoding::Encoder<'_, D>,
3745 offset: usize,
3746 mut depth: fidl::encoding::Depth,
3747 ) -> fidl::Result<()> {
3748 encoder.debug_check_bounds::<ControlSetDaiFormatRequest>(offset);
3749 let max_ordinal: u64 = self.max_ordinal_present();
3751 encoder.write_num(max_ordinal, offset);
3752 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
3753 if max_ordinal == 0 {
3755 return Ok(());
3756 }
3757 depth.increment()?;
3758 let envelope_size = 8;
3759 let bytes_len = max_ordinal as usize * envelope_size;
3760 #[allow(unused_variables)]
3761 let offset = encoder.out_of_line_offset(bytes_len);
3762 let mut _prev_end_offset: usize = 0;
3763 if 1 > max_ordinal {
3764 return Ok(());
3765 }
3766
3767 let cur_offset: usize = (1 - 1) * envelope_size;
3770
3771 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3773
3774 fidl::encoding::encode_in_envelope_optional::<u64, D>(
3779 self.element_id.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
3780 encoder,
3781 offset + cur_offset,
3782 depth,
3783 )?;
3784
3785 _prev_end_offset = cur_offset + envelope_size;
3786 if 2 > max_ordinal {
3787 return Ok(());
3788 }
3789
3790 let cur_offset: usize = (2 - 1) * envelope_size;
3793
3794 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3796
3797 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_hardware_audio__common::DaiFormat, D>(
3802 self.dai_format.as_ref().map(<fidl_fuchsia_hardware_audio__common::DaiFormat as fidl::encoding::ValueTypeMarker>::borrow),
3803 encoder, offset + cur_offset, depth
3804 )?;
3805
3806 _prev_end_offset = cur_offset + envelope_size;
3807
3808 Ok(())
3809 }
3810 }
3811
3812 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
3813 for ControlSetDaiFormatRequest
3814 {
3815 #[inline(always)]
3816 fn new_empty() -> Self {
3817 Self::default()
3818 }
3819
3820 unsafe fn decode(
3821 &mut self,
3822 decoder: &mut fidl::encoding::Decoder<'_, D>,
3823 offset: usize,
3824 mut depth: fidl::encoding::Depth,
3825 ) -> fidl::Result<()> {
3826 decoder.debug_check_bounds::<Self>(offset);
3827 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
3828 None => return Err(fidl::Error::NotNullable),
3829 Some(len) => len,
3830 };
3831 if len == 0 {
3833 return Ok(());
3834 };
3835 depth.increment()?;
3836 let envelope_size = 8;
3837 let bytes_len = len * envelope_size;
3838 let offset = decoder.out_of_line_offset(bytes_len)?;
3839 let mut _next_ordinal_to_read = 0;
3841 let mut next_offset = offset;
3842 let end_offset = offset + bytes_len;
3843 _next_ordinal_to_read += 1;
3844 if next_offset >= end_offset {
3845 return Ok(());
3846 }
3847
3848 while _next_ordinal_to_read < 1 {
3850 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3851 _next_ordinal_to_read += 1;
3852 next_offset += envelope_size;
3853 }
3854
3855 let next_out_of_line = decoder.next_out_of_line();
3856 let handles_before = decoder.remaining_handles();
3857 if let Some((inlined, num_bytes, num_handles)) =
3858 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3859 {
3860 let member_inline_size =
3861 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3862 if inlined != (member_inline_size <= 4) {
3863 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3864 }
3865 let inner_offset;
3866 let mut inner_depth = depth.clone();
3867 if inlined {
3868 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3869 inner_offset = next_offset;
3870 } else {
3871 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3872 inner_depth.increment()?;
3873 }
3874 let val_ref = self.element_id.get_or_insert_with(|| fidl::new_empty!(u64, D));
3875 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
3876 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3877 {
3878 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3879 }
3880 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3881 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3882 }
3883 }
3884
3885 next_offset += envelope_size;
3886 _next_ordinal_to_read += 1;
3887 if next_offset >= end_offset {
3888 return Ok(());
3889 }
3890
3891 while _next_ordinal_to_read < 2 {
3893 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3894 _next_ordinal_to_read += 1;
3895 next_offset += envelope_size;
3896 }
3897
3898 let next_out_of_line = decoder.next_out_of_line();
3899 let handles_before = decoder.remaining_handles();
3900 if let Some((inlined, num_bytes, num_handles)) =
3901 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3902 {
3903 let member_inline_size = <fidl_fuchsia_hardware_audio__common::DaiFormat as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3904 if inlined != (member_inline_size <= 4) {
3905 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3906 }
3907 let inner_offset;
3908 let mut inner_depth = depth.clone();
3909 if inlined {
3910 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3911 inner_offset = next_offset;
3912 } else {
3913 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3914 inner_depth.increment()?;
3915 }
3916 let val_ref = self.dai_format.get_or_insert_with(|| {
3917 fidl::new_empty!(fidl_fuchsia_hardware_audio__common::DaiFormat, D)
3918 });
3919 fidl::decode!(
3920 fidl_fuchsia_hardware_audio__common::DaiFormat,
3921 D,
3922 val_ref,
3923 decoder,
3924 inner_offset,
3925 inner_depth
3926 )?;
3927 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3928 {
3929 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3930 }
3931 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3932 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3933 }
3934 }
3935
3936 next_offset += envelope_size;
3937
3938 while next_offset < end_offset {
3940 _next_ordinal_to_read += 1;
3941 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3942 next_offset += envelope_size;
3943 }
3944
3945 Ok(())
3946 }
3947 }
3948
3949 impl ControlCodecStartResponse {
3950 #[inline(always)]
3951 fn max_ordinal_present(&self) -> u64 {
3952 if let Some(_) = self.start_time {
3953 return 1;
3954 }
3955 0
3956 }
3957 }
3958
3959 impl fidl::encoding::ValueTypeMarker for ControlCodecStartResponse {
3960 type Borrowed<'a> = &'a Self;
3961 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3962 value
3963 }
3964 }
3965
3966 unsafe impl fidl::encoding::TypeMarker for ControlCodecStartResponse {
3967 type Owned = Self;
3968
3969 #[inline(always)]
3970 fn inline_align(_context: fidl::encoding::Context) -> usize {
3971 8
3972 }
3973
3974 #[inline(always)]
3975 fn inline_size(_context: fidl::encoding::Context) -> usize {
3976 16
3977 }
3978 }
3979
3980 unsafe impl<D: fidl::encoding::ResourceDialect>
3981 fidl::encoding::Encode<ControlCodecStartResponse, D> for &ControlCodecStartResponse
3982 {
3983 unsafe fn encode(
3984 self,
3985 encoder: &mut fidl::encoding::Encoder<'_, D>,
3986 offset: usize,
3987 mut depth: fidl::encoding::Depth,
3988 ) -> fidl::Result<()> {
3989 encoder.debug_check_bounds::<ControlCodecStartResponse>(offset);
3990 let max_ordinal: u64 = self.max_ordinal_present();
3992 encoder.write_num(max_ordinal, offset);
3993 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
3994 if max_ordinal == 0 {
3996 return Ok(());
3997 }
3998 depth.increment()?;
3999 let envelope_size = 8;
4000 let bytes_len = max_ordinal as usize * envelope_size;
4001 #[allow(unused_variables)]
4002 let offset = encoder.out_of_line_offset(bytes_len);
4003 let mut _prev_end_offset: usize = 0;
4004 if 1 > max_ordinal {
4005 return Ok(());
4006 }
4007
4008 let cur_offset: usize = (1 - 1) * envelope_size;
4011
4012 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4014
4015 fidl::encoding::encode_in_envelope_optional::<i64, D>(
4020 self.start_time.as_ref().map(<i64 as fidl::encoding::ValueTypeMarker>::borrow),
4021 encoder,
4022 offset + cur_offset,
4023 depth,
4024 )?;
4025
4026 _prev_end_offset = cur_offset + envelope_size;
4027
4028 Ok(())
4029 }
4030 }
4031
4032 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
4033 for ControlCodecStartResponse
4034 {
4035 #[inline(always)]
4036 fn new_empty() -> Self {
4037 Self::default()
4038 }
4039
4040 unsafe fn decode(
4041 &mut self,
4042 decoder: &mut fidl::encoding::Decoder<'_, D>,
4043 offset: usize,
4044 mut depth: fidl::encoding::Depth,
4045 ) -> fidl::Result<()> {
4046 decoder.debug_check_bounds::<Self>(offset);
4047 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
4048 None => return Err(fidl::Error::NotNullable),
4049 Some(len) => len,
4050 };
4051 if len == 0 {
4053 return Ok(());
4054 };
4055 depth.increment()?;
4056 let envelope_size = 8;
4057 let bytes_len = len * envelope_size;
4058 let offset = decoder.out_of_line_offset(bytes_len)?;
4059 let mut _next_ordinal_to_read = 0;
4061 let mut next_offset = offset;
4062 let end_offset = offset + bytes_len;
4063 _next_ordinal_to_read += 1;
4064 if next_offset >= end_offset {
4065 return Ok(());
4066 }
4067
4068 while _next_ordinal_to_read < 1 {
4070 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4071 _next_ordinal_to_read += 1;
4072 next_offset += envelope_size;
4073 }
4074
4075 let next_out_of_line = decoder.next_out_of_line();
4076 let handles_before = decoder.remaining_handles();
4077 if let Some((inlined, num_bytes, num_handles)) =
4078 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4079 {
4080 let member_inline_size =
4081 <i64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4082 if inlined != (member_inline_size <= 4) {
4083 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4084 }
4085 let inner_offset;
4086 let mut inner_depth = depth.clone();
4087 if inlined {
4088 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4089 inner_offset = next_offset;
4090 } else {
4091 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4092 inner_depth.increment()?;
4093 }
4094 let val_ref = self.start_time.get_or_insert_with(|| fidl::new_empty!(i64, D));
4095 fidl::decode!(i64, D, val_ref, decoder, inner_offset, inner_depth)?;
4096 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4097 {
4098 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4099 }
4100 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4101 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4102 }
4103 }
4104
4105 next_offset += envelope_size;
4106
4107 while next_offset < end_offset {
4109 _next_ordinal_to_read += 1;
4110 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4111 next_offset += envelope_size;
4112 }
4113
4114 Ok(())
4115 }
4116 }
4117
4118 impl ControlCodecStopResponse {
4119 #[inline(always)]
4120 fn max_ordinal_present(&self) -> u64 {
4121 if let Some(_) = self.stop_time {
4122 return 1;
4123 }
4124 0
4125 }
4126 }
4127
4128 impl fidl::encoding::ValueTypeMarker for ControlCodecStopResponse {
4129 type Borrowed<'a> = &'a Self;
4130 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4131 value
4132 }
4133 }
4134
4135 unsafe impl fidl::encoding::TypeMarker for ControlCodecStopResponse {
4136 type Owned = Self;
4137
4138 #[inline(always)]
4139 fn inline_align(_context: fidl::encoding::Context) -> usize {
4140 8
4141 }
4142
4143 #[inline(always)]
4144 fn inline_size(_context: fidl::encoding::Context) -> usize {
4145 16
4146 }
4147 }
4148
4149 unsafe impl<D: fidl::encoding::ResourceDialect>
4150 fidl::encoding::Encode<ControlCodecStopResponse, D> for &ControlCodecStopResponse
4151 {
4152 unsafe fn encode(
4153 self,
4154 encoder: &mut fidl::encoding::Encoder<'_, D>,
4155 offset: usize,
4156 mut depth: fidl::encoding::Depth,
4157 ) -> fidl::Result<()> {
4158 encoder.debug_check_bounds::<ControlCodecStopResponse>(offset);
4159 let max_ordinal: u64 = self.max_ordinal_present();
4161 encoder.write_num(max_ordinal, offset);
4162 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
4163 if max_ordinal == 0 {
4165 return Ok(());
4166 }
4167 depth.increment()?;
4168 let envelope_size = 8;
4169 let bytes_len = max_ordinal as usize * envelope_size;
4170 #[allow(unused_variables)]
4171 let offset = encoder.out_of_line_offset(bytes_len);
4172 let mut _prev_end_offset: usize = 0;
4173 if 1 > max_ordinal {
4174 return Ok(());
4175 }
4176
4177 let cur_offset: usize = (1 - 1) * envelope_size;
4180
4181 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4183
4184 fidl::encoding::encode_in_envelope_optional::<i64, D>(
4189 self.stop_time.as_ref().map(<i64 as fidl::encoding::ValueTypeMarker>::borrow),
4190 encoder,
4191 offset + cur_offset,
4192 depth,
4193 )?;
4194
4195 _prev_end_offset = cur_offset + envelope_size;
4196
4197 Ok(())
4198 }
4199 }
4200
4201 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
4202 for ControlCodecStopResponse
4203 {
4204 #[inline(always)]
4205 fn new_empty() -> Self {
4206 Self::default()
4207 }
4208
4209 unsafe fn decode(
4210 &mut self,
4211 decoder: &mut fidl::encoding::Decoder<'_, D>,
4212 offset: usize,
4213 mut depth: fidl::encoding::Depth,
4214 ) -> fidl::Result<()> {
4215 decoder.debug_check_bounds::<Self>(offset);
4216 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
4217 None => return Err(fidl::Error::NotNullable),
4218 Some(len) => len,
4219 };
4220 if len == 0 {
4222 return Ok(());
4223 };
4224 depth.increment()?;
4225 let envelope_size = 8;
4226 let bytes_len = len * envelope_size;
4227 let offset = decoder.out_of_line_offset(bytes_len)?;
4228 let mut _next_ordinal_to_read = 0;
4230 let mut next_offset = offset;
4231 let end_offset = offset + bytes_len;
4232 _next_ordinal_to_read += 1;
4233 if next_offset >= end_offset {
4234 return Ok(());
4235 }
4236
4237 while _next_ordinal_to_read < 1 {
4239 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4240 _next_ordinal_to_read += 1;
4241 next_offset += envelope_size;
4242 }
4243
4244 let next_out_of_line = decoder.next_out_of_line();
4245 let handles_before = decoder.remaining_handles();
4246 if let Some((inlined, num_bytes, num_handles)) =
4247 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4248 {
4249 let member_inline_size =
4250 <i64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4251 if inlined != (member_inline_size <= 4) {
4252 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4253 }
4254 let inner_offset;
4255 let mut inner_depth = depth.clone();
4256 if inlined {
4257 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4258 inner_offset = next_offset;
4259 } else {
4260 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4261 inner_depth.increment()?;
4262 }
4263 let val_ref = self.stop_time.get_or_insert_with(|| fidl::new_empty!(i64, D));
4264 fidl::decode!(i64, D, val_ref, decoder, inner_offset, inner_depth)?;
4265 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4266 {
4267 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4268 }
4269 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4270 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4271 }
4272 }
4273
4274 next_offset += envelope_size;
4275
4276 while next_offset < end_offset {
4278 _next_ordinal_to_read += 1;
4279 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4280 next_offset += envelope_size;
4281 }
4282
4283 Ok(())
4284 }
4285 }
4286
4287 impl ControlResetResponse {
4288 #[inline(always)]
4289 fn max_ordinal_present(&self) -> u64 {
4290 0
4291 }
4292 }
4293
4294 impl fidl::encoding::ValueTypeMarker for ControlResetResponse {
4295 type Borrowed<'a> = &'a Self;
4296 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4297 value
4298 }
4299 }
4300
4301 unsafe impl fidl::encoding::TypeMarker for ControlResetResponse {
4302 type Owned = Self;
4303
4304 #[inline(always)]
4305 fn inline_align(_context: fidl::encoding::Context) -> usize {
4306 8
4307 }
4308
4309 #[inline(always)]
4310 fn inline_size(_context: fidl::encoding::Context) -> usize {
4311 16
4312 }
4313 }
4314
4315 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<ControlResetResponse, D>
4316 for &ControlResetResponse
4317 {
4318 unsafe fn encode(
4319 self,
4320 encoder: &mut fidl::encoding::Encoder<'_, D>,
4321 offset: usize,
4322 mut depth: fidl::encoding::Depth,
4323 ) -> fidl::Result<()> {
4324 encoder.debug_check_bounds::<ControlResetResponse>(offset);
4325 let max_ordinal: u64 = self.max_ordinal_present();
4327 encoder.write_num(max_ordinal, offset);
4328 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
4329 if max_ordinal == 0 {
4331 return Ok(());
4332 }
4333 depth.increment()?;
4334 let envelope_size = 8;
4335 let bytes_len = max_ordinal as usize * envelope_size;
4336 #[allow(unused_variables)]
4337 let offset = encoder.out_of_line_offset(bytes_len);
4338 let mut _prev_end_offset: usize = 0;
4339
4340 Ok(())
4341 }
4342 }
4343
4344 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ControlResetResponse {
4345 #[inline(always)]
4346 fn new_empty() -> Self {
4347 Self::default()
4348 }
4349
4350 unsafe fn decode(
4351 &mut self,
4352 decoder: &mut fidl::encoding::Decoder<'_, D>,
4353 offset: usize,
4354 mut depth: fidl::encoding::Depth,
4355 ) -> fidl::Result<()> {
4356 decoder.debug_check_bounds::<Self>(offset);
4357 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
4358 None => return Err(fidl::Error::NotNullable),
4359 Some(len) => len,
4360 };
4361 if len == 0 {
4363 return Ok(());
4364 };
4365 depth.increment()?;
4366 let envelope_size = 8;
4367 let bytes_len = len * envelope_size;
4368 let offset = decoder.out_of_line_offset(bytes_len)?;
4369 let mut _next_ordinal_to_read = 0;
4371 let mut next_offset = offset;
4372 let end_offset = offset + bytes_len;
4373
4374 while next_offset < end_offset {
4376 _next_ordinal_to_read += 1;
4377 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4378 next_offset += envelope_size;
4379 }
4380
4381 Ok(())
4382 }
4383 }
4384
4385 impl ControlSetDaiFormatResponse {
4386 #[inline(always)]
4387 fn max_ordinal_present(&self) -> u64 {
4388 if let Some(_) = self.state {
4389 return 1;
4390 }
4391 0
4392 }
4393 }
4394
4395 impl fidl::encoding::ValueTypeMarker for ControlSetDaiFormatResponse {
4396 type Borrowed<'a> = &'a Self;
4397 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4398 value
4399 }
4400 }
4401
4402 unsafe impl fidl::encoding::TypeMarker for ControlSetDaiFormatResponse {
4403 type Owned = Self;
4404
4405 #[inline(always)]
4406 fn inline_align(_context: fidl::encoding::Context) -> usize {
4407 8
4408 }
4409
4410 #[inline(always)]
4411 fn inline_size(_context: fidl::encoding::Context) -> usize {
4412 16
4413 }
4414 }
4415
4416 unsafe impl<D: fidl::encoding::ResourceDialect>
4417 fidl::encoding::Encode<ControlSetDaiFormatResponse, D> for &ControlSetDaiFormatResponse
4418 {
4419 unsafe fn encode(
4420 self,
4421 encoder: &mut fidl::encoding::Encoder<'_, D>,
4422 offset: usize,
4423 mut depth: fidl::encoding::Depth,
4424 ) -> fidl::Result<()> {
4425 encoder.debug_check_bounds::<ControlSetDaiFormatResponse>(offset);
4426 let max_ordinal: u64 = self.max_ordinal_present();
4428 encoder.write_num(max_ordinal, offset);
4429 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
4430 if max_ordinal == 0 {
4432 return Ok(());
4433 }
4434 depth.increment()?;
4435 let envelope_size = 8;
4436 let bytes_len = max_ordinal as usize * envelope_size;
4437 #[allow(unused_variables)]
4438 let offset = encoder.out_of_line_offset(bytes_len);
4439 let mut _prev_end_offset: usize = 0;
4440 if 1 > max_ordinal {
4441 return Ok(());
4442 }
4443
4444 let cur_offset: usize = (1 - 1) * envelope_size;
4447
4448 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4450
4451 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_hardware_audio__common::CodecFormatInfo, D>(
4456 self.state.as_ref().map(<fidl_fuchsia_hardware_audio__common::CodecFormatInfo as fidl::encoding::ValueTypeMarker>::borrow),
4457 encoder, offset + cur_offset, depth
4458 )?;
4459
4460 _prev_end_offset = cur_offset + envelope_size;
4461
4462 Ok(())
4463 }
4464 }
4465
4466 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
4467 for ControlSetDaiFormatResponse
4468 {
4469 #[inline(always)]
4470 fn new_empty() -> Self {
4471 Self::default()
4472 }
4473
4474 unsafe fn decode(
4475 &mut self,
4476 decoder: &mut fidl::encoding::Decoder<'_, D>,
4477 offset: usize,
4478 mut depth: fidl::encoding::Depth,
4479 ) -> fidl::Result<()> {
4480 decoder.debug_check_bounds::<Self>(offset);
4481 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
4482 None => return Err(fidl::Error::NotNullable),
4483 Some(len) => len,
4484 };
4485 if len == 0 {
4487 return Ok(());
4488 };
4489 depth.increment()?;
4490 let envelope_size = 8;
4491 let bytes_len = len * envelope_size;
4492 let offset = decoder.out_of_line_offset(bytes_len)?;
4493 let mut _next_ordinal_to_read = 0;
4495 let mut next_offset = offset;
4496 let end_offset = offset + bytes_len;
4497 _next_ordinal_to_read += 1;
4498 if next_offset >= end_offset {
4499 return Ok(());
4500 }
4501
4502 while _next_ordinal_to_read < 1 {
4504 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4505 _next_ordinal_to_read += 1;
4506 next_offset += envelope_size;
4507 }
4508
4509 let next_out_of_line = decoder.next_out_of_line();
4510 let handles_before = decoder.remaining_handles();
4511 if let Some((inlined, num_bytes, num_handles)) =
4512 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4513 {
4514 let member_inline_size = <fidl_fuchsia_hardware_audio__common::CodecFormatInfo as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4515 if inlined != (member_inline_size <= 4) {
4516 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4517 }
4518 let inner_offset;
4519 let mut inner_depth = depth.clone();
4520 if inlined {
4521 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4522 inner_offset = next_offset;
4523 } else {
4524 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4525 inner_depth.increment()?;
4526 }
4527 let val_ref = self.state.get_or_insert_with(|| {
4528 fidl::new_empty!(fidl_fuchsia_hardware_audio__common::CodecFormatInfo, D)
4529 });
4530 fidl::decode!(
4531 fidl_fuchsia_hardware_audio__common::CodecFormatInfo,
4532 D,
4533 val_ref,
4534 decoder,
4535 inner_offset,
4536 inner_depth
4537 )?;
4538 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4539 {
4540 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4541 }
4542 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4543 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4544 }
4545 }
4546
4547 next_offset += envelope_size;
4548
4549 while next_offset < end_offset {
4551 _next_ordinal_to_read += 1;
4552 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4553 next_offset += envelope_size;
4554 }
4555
4556 Ok(())
4557 }
4558 }
4559
4560 impl DelayInfo {
4561 #[inline(always)]
4562 fn max_ordinal_present(&self) -> u64 {
4563 if let Some(_) = self.external_delay {
4564 return 2;
4565 }
4566 if let Some(_) = self.internal_delay {
4567 return 1;
4568 }
4569 0
4570 }
4571 }
4572
4573 impl fidl::encoding::ValueTypeMarker for DelayInfo {
4574 type Borrowed<'a> = &'a Self;
4575 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4576 value
4577 }
4578 }
4579
4580 unsafe impl fidl::encoding::TypeMarker for DelayInfo {
4581 type Owned = Self;
4582
4583 #[inline(always)]
4584 fn inline_align(_context: fidl::encoding::Context) -> usize {
4585 8
4586 }
4587
4588 #[inline(always)]
4589 fn inline_size(_context: fidl::encoding::Context) -> usize {
4590 16
4591 }
4592 }
4593
4594 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<DelayInfo, D>
4595 for &DelayInfo
4596 {
4597 unsafe fn encode(
4598 self,
4599 encoder: &mut fidl::encoding::Encoder<'_, D>,
4600 offset: usize,
4601 mut depth: fidl::encoding::Depth,
4602 ) -> fidl::Result<()> {
4603 encoder.debug_check_bounds::<DelayInfo>(offset);
4604 let max_ordinal: u64 = self.max_ordinal_present();
4606 encoder.write_num(max_ordinal, offset);
4607 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
4608 if max_ordinal == 0 {
4610 return Ok(());
4611 }
4612 depth.increment()?;
4613 let envelope_size = 8;
4614 let bytes_len = max_ordinal as usize * envelope_size;
4615 #[allow(unused_variables)]
4616 let offset = encoder.out_of_line_offset(bytes_len);
4617 let mut _prev_end_offset: usize = 0;
4618 if 1 > max_ordinal {
4619 return Ok(());
4620 }
4621
4622 let cur_offset: usize = (1 - 1) * envelope_size;
4625
4626 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4628
4629 fidl::encoding::encode_in_envelope_optional::<i64, D>(
4634 self.internal_delay.as_ref().map(<i64 as fidl::encoding::ValueTypeMarker>::borrow),
4635 encoder,
4636 offset + cur_offset,
4637 depth,
4638 )?;
4639
4640 _prev_end_offset = cur_offset + envelope_size;
4641 if 2 > max_ordinal {
4642 return Ok(());
4643 }
4644
4645 let cur_offset: usize = (2 - 1) * envelope_size;
4648
4649 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4651
4652 fidl::encoding::encode_in_envelope_optional::<i64, D>(
4657 self.external_delay.as_ref().map(<i64 as fidl::encoding::ValueTypeMarker>::borrow),
4658 encoder,
4659 offset + cur_offset,
4660 depth,
4661 )?;
4662
4663 _prev_end_offset = cur_offset + envelope_size;
4664
4665 Ok(())
4666 }
4667 }
4668
4669 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for DelayInfo {
4670 #[inline(always)]
4671 fn new_empty() -> Self {
4672 Self::default()
4673 }
4674
4675 unsafe fn decode(
4676 &mut self,
4677 decoder: &mut fidl::encoding::Decoder<'_, D>,
4678 offset: usize,
4679 mut depth: fidl::encoding::Depth,
4680 ) -> fidl::Result<()> {
4681 decoder.debug_check_bounds::<Self>(offset);
4682 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
4683 None => return Err(fidl::Error::NotNullable),
4684 Some(len) => len,
4685 };
4686 if len == 0 {
4688 return Ok(());
4689 };
4690 depth.increment()?;
4691 let envelope_size = 8;
4692 let bytes_len = len * envelope_size;
4693 let offset = decoder.out_of_line_offset(bytes_len)?;
4694 let mut _next_ordinal_to_read = 0;
4696 let mut next_offset = offset;
4697 let end_offset = offset + bytes_len;
4698 _next_ordinal_to_read += 1;
4699 if next_offset >= end_offset {
4700 return Ok(());
4701 }
4702
4703 while _next_ordinal_to_read < 1 {
4705 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4706 _next_ordinal_to_read += 1;
4707 next_offset += envelope_size;
4708 }
4709
4710 let next_out_of_line = decoder.next_out_of_line();
4711 let handles_before = decoder.remaining_handles();
4712 if let Some((inlined, num_bytes, num_handles)) =
4713 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4714 {
4715 let member_inline_size =
4716 <i64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4717 if inlined != (member_inline_size <= 4) {
4718 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4719 }
4720 let inner_offset;
4721 let mut inner_depth = depth.clone();
4722 if inlined {
4723 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4724 inner_offset = next_offset;
4725 } else {
4726 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4727 inner_depth.increment()?;
4728 }
4729 let val_ref = self.internal_delay.get_or_insert_with(|| fidl::new_empty!(i64, D));
4730 fidl::decode!(i64, D, val_ref, decoder, inner_offset, inner_depth)?;
4731 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4732 {
4733 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4734 }
4735 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4736 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4737 }
4738 }
4739
4740 next_offset += envelope_size;
4741 _next_ordinal_to_read += 1;
4742 if next_offset >= end_offset {
4743 return Ok(());
4744 }
4745
4746 while _next_ordinal_to_read < 2 {
4748 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4749 _next_ordinal_to_read += 1;
4750 next_offset += envelope_size;
4751 }
4752
4753 let next_out_of_line = decoder.next_out_of_line();
4754 let handles_before = decoder.remaining_handles();
4755 if let Some((inlined, num_bytes, num_handles)) =
4756 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4757 {
4758 let member_inline_size =
4759 <i64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4760 if inlined != (member_inline_size <= 4) {
4761 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4762 }
4763 let inner_offset;
4764 let mut inner_depth = depth.clone();
4765 if inlined {
4766 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4767 inner_offset = next_offset;
4768 } else {
4769 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4770 inner_depth.increment()?;
4771 }
4772 let val_ref = self.external_delay.get_or_insert_with(|| fidl::new_empty!(i64, D));
4773 fidl::decode!(i64, D, val_ref, decoder, inner_offset, inner_depth)?;
4774 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4775 {
4776 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4777 }
4778 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4779 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4780 }
4781 }
4782
4783 next_offset += envelope_size;
4784
4785 while next_offset < end_offset {
4787 _next_ordinal_to_read += 1;
4788 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4789 next_offset += envelope_size;
4790 }
4791
4792 Ok(())
4793 }
4794 }
4795
4796 impl ElementDaiFormatSet {
4797 #[inline(always)]
4798 fn max_ordinal_present(&self) -> u64 {
4799 if let Some(_) = self.format_sets {
4800 return 2;
4801 }
4802 if let Some(_) = self.element_id {
4803 return 1;
4804 }
4805 0
4806 }
4807 }
4808
4809 impl fidl::encoding::ValueTypeMarker for ElementDaiFormatSet {
4810 type Borrowed<'a> = &'a Self;
4811 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4812 value
4813 }
4814 }
4815
4816 unsafe impl fidl::encoding::TypeMarker for ElementDaiFormatSet {
4817 type Owned = Self;
4818
4819 #[inline(always)]
4820 fn inline_align(_context: fidl::encoding::Context) -> usize {
4821 8
4822 }
4823
4824 #[inline(always)]
4825 fn inline_size(_context: fidl::encoding::Context) -> usize {
4826 16
4827 }
4828 }
4829
4830 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<ElementDaiFormatSet, D>
4831 for &ElementDaiFormatSet
4832 {
4833 unsafe fn encode(
4834 self,
4835 encoder: &mut fidl::encoding::Encoder<'_, D>,
4836 offset: usize,
4837 mut depth: fidl::encoding::Depth,
4838 ) -> fidl::Result<()> {
4839 encoder.debug_check_bounds::<ElementDaiFormatSet>(offset);
4840 let max_ordinal: u64 = self.max_ordinal_present();
4842 encoder.write_num(max_ordinal, offset);
4843 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
4844 if max_ordinal == 0 {
4846 return Ok(());
4847 }
4848 depth.increment()?;
4849 let envelope_size = 8;
4850 let bytes_len = max_ordinal as usize * envelope_size;
4851 #[allow(unused_variables)]
4852 let offset = encoder.out_of_line_offset(bytes_len);
4853 let mut _prev_end_offset: usize = 0;
4854 if 1 > max_ordinal {
4855 return Ok(());
4856 }
4857
4858 let cur_offset: usize = (1 - 1) * envelope_size;
4861
4862 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4864
4865 fidl::encoding::encode_in_envelope_optional::<u64, D>(
4870 self.element_id.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
4871 encoder,
4872 offset + cur_offset,
4873 depth,
4874 )?;
4875
4876 _prev_end_offset = cur_offset + envelope_size;
4877 if 2 > max_ordinal {
4878 return Ok(());
4879 }
4880
4881 let cur_offset: usize = (2 - 1) * envelope_size;
4884
4885 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4887
4888 fidl::encoding::encode_in_envelope_optional::<
4893 fidl::encoding::Vector<
4894 fidl_fuchsia_hardware_audio__common::DaiSupportedFormats,
4895 64,
4896 >,
4897 D,
4898 >(
4899 self.format_sets.as_ref().map(
4900 <fidl::encoding::Vector<
4901 fidl_fuchsia_hardware_audio__common::DaiSupportedFormats,
4902 64,
4903 > as fidl::encoding::ValueTypeMarker>::borrow,
4904 ),
4905 encoder,
4906 offset + cur_offset,
4907 depth,
4908 )?;
4909
4910 _prev_end_offset = cur_offset + envelope_size;
4911
4912 Ok(())
4913 }
4914 }
4915
4916 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ElementDaiFormatSet {
4917 #[inline(always)]
4918 fn new_empty() -> Self {
4919 Self::default()
4920 }
4921
4922 unsafe fn decode(
4923 &mut self,
4924 decoder: &mut fidl::encoding::Decoder<'_, D>,
4925 offset: usize,
4926 mut depth: fidl::encoding::Depth,
4927 ) -> fidl::Result<()> {
4928 decoder.debug_check_bounds::<Self>(offset);
4929 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
4930 None => return Err(fidl::Error::NotNullable),
4931 Some(len) => len,
4932 };
4933 if len == 0 {
4935 return Ok(());
4936 };
4937 depth.increment()?;
4938 let envelope_size = 8;
4939 let bytes_len = len * envelope_size;
4940 let offset = decoder.out_of_line_offset(bytes_len)?;
4941 let mut _next_ordinal_to_read = 0;
4943 let mut next_offset = offset;
4944 let end_offset = offset + bytes_len;
4945 _next_ordinal_to_read += 1;
4946 if next_offset >= end_offset {
4947 return Ok(());
4948 }
4949
4950 while _next_ordinal_to_read < 1 {
4952 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4953 _next_ordinal_to_read += 1;
4954 next_offset += envelope_size;
4955 }
4956
4957 let next_out_of_line = decoder.next_out_of_line();
4958 let handles_before = decoder.remaining_handles();
4959 if let Some((inlined, num_bytes, num_handles)) =
4960 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4961 {
4962 let member_inline_size =
4963 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4964 if inlined != (member_inline_size <= 4) {
4965 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4966 }
4967 let inner_offset;
4968 let mut inner_depth = depth.clone();
4969 if inlined {
4970 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4971 inner_offset = next_offset;
4972 } else {
4973 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4974 inner_depth.increment()?;
4975 }
4976 let val_ref = self.element_id.get_or_insert_with(|| fidl::new_empty!(u64, D));
4977 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
4978 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4979 {
4980 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4981 }
4982 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4983 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4984 }
4985 }
4986
4987 next_offset += envelope_size;
4988 _next_ordinal_to_read += 1;
4989 if next_offset >= end_offset {
4990 return Ok(());
4991 }
4992
4993 while _next_ordinal_to_read < 2 {
4995 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4996 _next_ordinal_to_read += 1;
4997 next_offset += envelope_size;
4998 }
4999
5000 let next_out_of_line = decoder.next_out_of_line();
5001 let handles_before = decoder.remaining_handles();
5002 if let Some((inlined, num_bytes, num_handles)) =
5003 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5004 {
5005 let member_inline_size = <fidl::encoding::Vector<
5006 fidl_fuchsia_hardware_audio__common::DaiSupportedFormats,
5007 64,
5008 > as fidl::encoding::TypeMarker>::inline_size(
5009 decoder.context
5010 );
5011 if inlined != (member_inline_size <= 4) {
5012 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5013 }
5014 let inner_offset;
5015 let mut inner_depth = depth.clone();
5016 if inlined {
5017 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5018 inner_offset = next_offset;
5019 } else {
5020 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5021 inner_depth.increment()?;
5022 }
5023 let val_ref =
5024 self.format_sets.get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<fidl_fuchsia_hardware_audio__common::DaiSupportedFormats, 64>, D));
5025 fidl::decode!(fidl::encoding::Vector<fidl_fuchsia_hardware_audio__common::DaiSupportedFormats, 64>, D, val_ref, decoder, inner_offset, inner_depth)?;
5026 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5027 {
5028 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5029 }
5030 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5031 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5032 }
5033 }
5034
5035 next_offset += envelope_size;
5036
5037 while next_offset < end_offset {
5039 _next_ordinal_to_read += 1;
5040 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5041 next_offset += envelope_size;
5042 }
5043
5044 Ok(())
5045 }
5046 }
5047
5048 impl ElementRingBufferFormatSet {
5049 #[inline(always)]
5050 fn max_ordinal_present(&self) -> u64 {
5051 if let Some(_) = self.format_sets {
5052 return 2;
5053 }
5054 if let Some(_) = self.element_id {
5055 return 1;
5056 }
5057 0
5058 }
5059 }
5060
5061 impl fidl::encoding::ValueTypeMarker for ElementRingBufferFormatSet {
5062 type Borrowed<'a> = &'a Self;
5063 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
5064 value
5065 }
5066 }
5067
5068 unsafe impl fidl::encoding::TypeMarker for ElementRingBufferFormatSet {
5069 type Owned = Self;
5070
5071 #[inline(always)]
5072 fn inline_align(_context: fidl::encoding::Context) -> usize {
5073 8
5074 }
5075
5076 #[inline(always)]
5077 fn inline_size(_context: fidl::encoding::Context) -> usize {
5078 16
5079 }
5080 }
5081
5082 unsafe impl<D: fidl::encoding::ResourceDialect>
5083 fidl::encoding::Encode<ElementRingBufferFormatSet, D> for &ElementRingBufferFormatSet
5084 {
5085 unsafe fn encode(
5086 self,
5087 encoder: &mut fidl::encoding::Encoder<'_, D>,
5088 offset: usize,
5089 mut depth: fidl::encoding::Depth,
5090 ) -> fidl::Result<()> {
5091 encoder.debug_check_bounds::<ElementRingBufferFormatSet>(offset);
5092 let max_ordinal: u64 = self.max_ordinal_present();
5094 encoder.write_num(max_ordinal, offset);
5095 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
5096 if max_ordinal == 0 {
5098 return Ok(());
5099 }
5100 depth.increment()?;
5101 let envelope_size = 8;
5102 let bytes_len = max_ordinal as usize * envelope_size;
5103 #[allow(unused_variables)]
5104 let offset = encoder.out_of_line_offset(bytes_len);
5105 let mut _prev_end_offset: usize = 0;
5106 if 1 > max_ordinal {
5107 return Ok(());
5108 }
5109
5110 let cur_offset: usize = (1 - 1) * envelope_size;
5113
5114 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5116
5117 fidl::encoding::encode_in_envelope_optional::<u64, D>(
5122 self.element_id.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
5123 encoder,
5124 offset + cur_offset,
5125 depth,
5126 )?;
5127
5128 _prev_end_offset = cur_offset + envelope_size;
5129 if 2 > max_ordinal {
5130 return Ok(());
5131 }
5132
5133 let cur_offset: usize = (2 - 1) * envelope_size;
5136
5137 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5139
5140 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<PcmFormatSet, 64>, D>(
5145 self.format_sets.as_ref().map(<fidl::encoding::Vector<PcmFormatSet, 64> as fidl::encoding::ValueTypeMarker>::borrow),
5146 encoder, offset + cur_offset, depth
5147 )?;
5148
5149 _prev_end_offset = cur_offset + envelope_size;
5150
5151 Ok(())
5152 }
5153 }
5154
5155 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
5156 for ElementRingBufferFormatSet
5157 {
5158 #[inline(always)]
5159 fn new_empty() -> Self {
5160 Self::default()
5161 }
5162
5163 unsafe fn decode(
5164 &mut self,
5165 decoder: &mut fidl::encoding::Decoder<'_, D>,
5166 offset: usize,
5167 mut depth: fidl::encoding::Depth,
5168 ) -> fidl::Result<()> {
5169 decoder.debug_check_bounds::<Self>(offset);
5170 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
5171 None => return Err(fidl::Error::NotNullable),
5172 Some(len) => len,
5173 };
5174 if len == 0 {
5176 return Ok(());
5177 };
5178 depth.increment()?;
5179 let envelope_size = 8;
5180 let bytes_len = len * envelope_size;
5181 let offset = decoder.out_of_line_offset(bytes_len)?;
5182 let mut _next_ordinal_to_read = 0;
5184 let mut next_offset = offset;
5185 let end_offset = offset + bytes_len;
5186 _next_ordinal_to_read += 1;
5187 if next_offset >= end_offset {
5188 return Ok(());
5189 }
5190
5191 while _next_ordinal_to_read < 1 {
5193 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5194 _next_ordinal_to_read += 1;
5195 next_offset += envelope_size;
5196 }
5197
5198 let next_out_of_line = decoder.next_out_of_line();
5199 let handles_before = decoder.remaining_handles();
5200 if let Some((inlined, num_bytes, num_handles)) =
5201 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5202 {
5203 let member_inline_size =
5204 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5205 if inlined != (member_inline_size <= 4) {
5206 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5207 }
5208 let inner_offset;
5209 let mut inner_depth = depth.clone();
5210 if inlined {
5211 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5212 inner_offset = next_offset;
5213 } else {
5214 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5215 inner_depth.increment()?;
5216 }
5217 let val_ref = self.element_id.get_or_insert_with(|| fidl::new_empty!(u64, D));
5218 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
5219 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5220 {
5221 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5222 }
5223 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5224 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5225 }
5226 }
5227
5228 next_offset += envelope_size;
5229 _next_ordinal_to_read += 1;
5230 if next_offset >= end_offset {
5231 return Ok(());
5232 }
5233
5234 while _next_ordinal_to_read < 2 {
5236 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5237 _next_ordinal_to_read += 1;
5238 next_offset += envelope_size;
5239 }
5240
5241 let next_out_of_line = decoder.next_out_of_line();
5242 let handles_before = decoder.remaining_handles();
5243 if let Some((inlined, num_bytes, num_handles)) =
5244 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5245 {
5246 let member_inline_size = <fidl::encoding::Vector<PcmFormatSet, 64> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5247 if inlined != (member_inline_size <= 4) {
5248 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5249 }
5250 let inner_offset;
5251 let mut inner_depth = depth.clone();
5252 if inlined {
5253 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5254 inner_offset = next_offset;
5255 } else {
5256 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5257 inner_depth.increment()?;
5258 }
5259 let val_ref = self.format_sets.get_or_insert_with(
5260 || fidl::new_empty!(fidl::encoding::Vector<PcmFormatSet, 64>, D),
5261 );
5262 fidl::decode!(fidl::encoding::Vector<PcmFormatSet, 64>, D, val_ref, decoder, inner_offset, inner_depth)?;
5263 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5264 {
5265 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5266 }
5267 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5268 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5269 }
5270 }
5271
5272 next_offset += envelope_size;
5273
5274 while next_offset < end_offset {
5276 _next_ordinal_to_read += 1;
5277 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5278 next_offset += envelope_size;
5279 }
5280
5281 Ok(())
5282 }
5283 }
5284
5285 impl Info {
5286 #[inline(always)]
5287 fn max_ordinal_present(&self) -> u64 {
5288 if let Some(_) = self.signal_processing_topologies {
5289 return 13;
5290 }
5291 if let Some(_) = self.signal_processing_elements {
5292 return 12;
5293 }
5294 if let Some(_) = self.clock_domain {
5295 return 11;
5296 }
5297 if let Some(_) = self.plug_detect_caps {
5298 return 10;
5299 }
5300 if let Some(_) = self.dai_format_sets {
5301 return 9;
5302 }
5303 if let Some(_) = self.ring_buffer_format_sets {
5304 return 8;
5305 }
5306 if let Some(_) = self.is_input {
5307 return 7;
5308 }
5309 if let Some(_) = self.unique_instance_id {
5310 return 6;
5311 }
5312 if let Some(_) = self.product {
5313 return 5;
5314 }
5315 if let Some(_) = self.manufacturer {
5316 return 4;
5317 }
5318 if let Some(_) = self.device_name {
5319 return 3;
5320 }
5321 if let Some(_) = self.device_type {
5322 return 2;
5323 }
5324 if let Some(_) = self.token_id {
5325 return 1;
5326 }
5327 0
5328 }
5329 }
5330
5331 impl fidl::encoding::ValueTypeMarker for Info {
5332 type Borrowed<'a> = &'a Self;
5333 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
5334 value
5335 }
5336 }
5337
5338 unsafe impl fidl::encoding::TypeMarker for Info {
5339 type Owned = Self;
5340
5341 #[inline(always)]
5342 fn inline_align(_context: fidl::encoding::Context) -> usize {
5343 8
5344 }
5345
5346 #[inline(always)]
5347 fn inline_size(_context: fidl::encoding::Context) -> usize {
5348 16
5349 }
5350 }
5351
5352 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Info, D> for &Info {
5353 unsafe fn encode(
5354 self,
5355 encoder: &mut fidl::encoding::Encoder<'_, D>,
5356 offset: usize,
5357 mut depth: fidl::encoding::Depth,
5358 ) -> fidl::Result<()> {
5359 encoder.debug_check_bounds::<Info>(offset);
5360 let max_ordinal: u64 = self.max_ordinal_present();
5362 encoder.write_num(max_ordinal, offset);
5363 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
5364 if max_ordinal == 0 {
5366 return Ok(());
5367 }
5368 depth.increment()?;
5369 let envelope_size = 8;
5370 let bytes_len = max_ordinal as usize * envelope_size;
5371 #[allow(unused_variables)]
5372 let offset = encoder.out_of_line_offset(bytes_len);
5373 let mut _prev_end_offset: usize = 0;
5374 if 1 > max_ordinal {
5375 return Ok(());
5376 }
5377
5378 let cur_offset: usize = (1 - 1) * envelope_size;
5381
5382 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5384
5385 fidl::encoding::encode_in_envelope_optional::<u64, D>(
5390 self.token_id.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
5391 encoder,
5392 offset + cur_offset,
5393 depth,
5394 )?;
5395
5396 _prev_end_offset = cur_offset + envelope_size;
5397 if 2 > max_ordinal {
5398 return Ok(());
5399 }
5400
5401 let cur_offset: usize = (2 - 1) * envelope_size;
5404
5405 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5407
5408 fidl::encoding::encode_in_envelope_optional::<DeviceType, D>(
5413 self.device_type
5414 .as_ref()
5415 .map(<DeviceType as fidl::encoding::ValueTypeMarker>::borrow),
5416 encoder,
5417 offset + cur_offset,
5418 depth,
5419 )?;
5420
5421 _prev_end_offset = cur_offset + envelope_size;
5422 if 3 > max_ordinal {
5423 return Ok(());
5424 }
5425
5426 let cur_offset: usize = (3 - 1) * envelope_size;
5429
5430 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5432
5433 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<256>, D>(
5438 self.device_name.as_ref().map(
5439 <fidl::encoding::BoundedString<256> as fidl::encoding::ValueTypeMarker>::borrow,
5440 ),
5441 encoder,
5442 offset + cur_offset,
5443 depth,
5444 )?;
5445
5446 _prev_end_offset = cur_offset + envelope_size;
5447 if 4 > max_ordinal {
5448 return Ok(());
5449 }
5450
5451 let cur_offset: usize = (4 - 1) * envelope_size;
5454
5455 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5457
5458 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<256>, D>(
5463 self.manufacturer.as_ref().map(
5464 <fidl::encoding::BoundedString<256> as fidl::encoding::ValueTypeMarker>::borrow,
5465 ),
5466 encoder,
5467 offset + cur_offset,
5468 depth,
5469 )?;
5470
5471 _prev_end_offset = cur_offset + envelope_size;
5472 if 5 > max_ordinal {
5473 return Ok(());
5474 }
5475
5476 let cur_offset: usize = (5 - 1) * envelope_size;
5479
5480 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5482
5483 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<256>, D>(
5488 self.product.as_ref().map(
5489 <fidl::encoding::BoundedString<256> as fidl::encoding::ValueTypeMarker>::borrow,
5490 ),
5491 encoder,
5492 offset + cur_offset,
5493 depth,
5494 )?;
5495
5496 _prev_end_offset = cur_offset + envelope_size;
5497 if 6 > max_ordinal {
5498 return Ok(());
5499 }
5500
5501 let cur_offset: usize = (6 - 1) * envelope_size;
5504
5505 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5507
5508 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 16>, D>(
5513 self.unique_instance_id.as_ref().map(
5514 <fidl::encoding::Array<u8, 16> as fidl::encoding::ValueTypeMarker>::borrow,
5515 ),
5516 encoder,
5517 offset + cur_offset,
5518 depth,
5519 )?;
5520
5521 _prev_end_offset = cur_offset + envelope_size;
5522 if 7 > max_ordinal {
5523 return Ok(());
5524 }
5525
5526 let cur_offset: usize = (7 - 1) * envelope_size;
5529
5530 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5532
5533 fidl::encoding::encode_in_envelope_optional::<bool, D>(
5538 self.is_input.as_ref().map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
5539 encoder,
5540 offset + cur_offset,
5541 depth,
5542 )?;
5543
5544 _prev_end_offset = cur_offset + envelope_size;
5545 if 8 > max_ordinal {
5546 return Ok(());
5547 }
5548
5549 let cur_offset: usize = (8 - 1) * envelope_size;
5552
5553 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5555
5556 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<ElementRingBufferFormatSet, 64>, D>(
5561 self.ring_buffer_format_sets.as_ref().map(<fidl::encoding::Vector<ElementRingBufferFormatSet, 64> as fidl::encoding::ValueTypeMarker>::borrow),
5562 encoder, offset + cur_offset, depth
5563 )?;
5564
5565 _prev_end_offset = cur_offset + envelope_size;
5566 if 9 > max_ordinal {
5567 return Ok(());
5568 }
5569
5570 let cur_offset: usize = (9 - 1) * envelope_size;
5573
5574 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5576
5577 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<ElementDaiFormatSet, 64>, D>(
5582 self.dai_format_sets.as_ref().map(<fidl::encoding::Vector<ElementDaiFormatSet, 64> as fidl::encoding::ValueTypeMarker>::borrow),
5583 encoder, offset + cur_offset, depth
5584 )?;
5585
5586 _prev_end_offset = cur_offset + envelope_size;
5587 if 10 > max_ordinal {
5588 return Ok(());
5589 }
5590
5591 let cur_offset: usize = (10 - 1) * envelope_size;
5594
5595 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5597
5598 fidl::encoding::encode_in_envelope_optional::<PlugDetectCapabilities, D>(
5603 self.plug_detect_caps
5604 .as_ref()
5605 .map(<PlugDetectCapabilities as fidl::encoding::ValueTypeMarker>::borrow),
5606 encoder,
5607 offset + cur_offset,
5608 depth,
5609 )?;
5610
5611 _prev_end_offset = cur_offset + envelope_size;
5612 if 11 > max_ordinal {
5613 return Ok(());
5614 }
5615
5616 let cur_offset: usize = (11 - 1) * envelope_size;
5619
5620 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5622
5623 fidl::encoding::encode_in_envelope_optional::<u32, D>(
5628 self.clock_domain.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
5629 encoder,
5630 offset + cur_offset,
5631 depth,
5632 )?;
5633
5634 _prev_end_offset = cur_offset + envelope_size;
5635 if 12 > max_ordinal {
5636 return Ok(());
5637 }
5638
5639 let cur_offset: usize = (12 - 1) * envelope_size;
5642
5643 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5645
5646 fidl::encoding::encode_in_envelope_optional::<
5651 fidl::encoding::Vector<
5652 fidl_fuchsia_hardware_audio_signalprocessing__common::Element,
5653 64,
5654 >,
5655 D,
5656 >(
5657 self.signal_processing_elements.as_ref().map(
5658 <fidl::encoding::Vector<
5659 fidl_fuchsia_hardware_audio_signalprocessing__common::Element,
5660 64,
5661 > as fidl::encoding::ValueTypeMarker>::borrow,
5662 ),
5663 encoder,
5664 offset + cur_offset,
5665 depth,
5666 )?;
5667
5668 _prev_end_offset = cur_offset + envelope_size;
5669 if 13 > max_ordinal {
5670 return Ok(());
5671 }
5672
5673 let cur_offset: usize = (13 - 1) * envelope_size;
5676
5677 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5679
5680 fidl::encoding::encode_in_envelope_optional::<
5685 fidl::encoding::Vector<
5686 fidl_fuchsia_hardware_audio_signalprocessing__common::Topology,
5687 64,
5688 >,
5689 D,
5690 >(
5691 self.signal_processing_topologies.as_ref().map(
5692 <fidl::encoding::Vector<
5693 fidl_fuchsia_hardware_audio_signalprocessing__common::Topology,
5694 64,
5695 > as fidl::encoding::ValueTypeMarker>::borrow,
5696 ),
5697 encoder,
5698 offset + cur_offset,
5699 depth,
5700 )?;
5701
5702 _prev_end_offset = cur_offset + envelope_size;
5703
5704 Ok(())
5705 }
5706 }
5707
5708 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Info {
5709 #[inline(always)]
5710 fn new_empty() -> Self {
5711 Self::default()
5712 }
5713
5714 unsafe fn decode(
5715 &mut self,
5716 decoder: &mut fidl::encoding::Decoder<'_, D>,
5717 offset: usize,
5718 mut depth: fidl::encoding::Depth,
5719 ) -> fidl::Result<()> {
5720 decoder.debug_check_bounds::<Self>(offset);
5721 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
5722 None => return Err(fidl::Error::NotNullable),
5723 Some(len) => len,
5724 };
5725 if len == 0 {
5727 return Ok(());
5728 };
5729 depth.increment()?;
5730 let envelope_size = 8;
5731 let bytes_len = len * envelope_size;
5732 let offset = decoder.out_of_line_offset(bytes_len)?;
5733 let mut _next_ordinal_to_read = 0;
5735 let mut next_offset = offset;
5736 let end_offset = offset + bytes_len;
5737 _next_ordinal_to_read += 1;
5738 if next_offset >= end_offset {
5739 return Ok(());
5740 }
5741
5742 while _next_ordinal_to_read < 1 {
5744 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5745 _next_ordinal_to_read += 1;
5746 next_offset += envelope_size;
5747 }
5748
5749 let next_out_of_line = decoder.next_out_of_line();
5750 let handles_before = decoder.remaining_handles();
5751 if let Some((inlined, num_bytes, num_handles)) =
5752 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5753 {
5754 let member_inline_size =
5755 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5756 if inlined != (member_inline_size <= 4) {
5757 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5758 }
5759 let inner_offset;
5760 let mut inner_depth = depth.clone();
5761 if inlined {
5762 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5763 inner_offset = next_offset;
5764 } else {
5765 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5766 inner_depth.increment()?;
5767 }
5768 let val_ref = self.token_id.get_or_insert_with(|| fidl::new_empty!(u64, D));
5769 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
5770 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5771 {
5772 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5773 }
5774 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5775 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5776 }
5777 }
5778
5779 next_offset += envelope_size;
5780 _next_ordinal_to_read += 1;
5781 if next_offset >= end_offset {
5782 return Ok(());
5783 }
5784
5785 while _next_ordinal_to_read < 2 {
5787 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5788 _next_ordinal_to_read += 1;
5789 next_offset += envelope_size;
5790 }
5791
5792 let next_out_of_line = decoder.next_out_of_line();
5793 let handles_before = decoder.remaining_handles();
5794 if let Some((inlined, num_bytes, num_handles)) =
5795 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5796 {
5797 let member_inline_size =
5798 <DeviceType as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5799 if inlined != (member_inline_size <= 4) {
5800 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5801 }
5802 let inner_offset;
5803 let mut inner_depth = depth.clone();
5804 if inlined {
5805 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5806 inner_offset = next_offset;
5807 } else {
5808 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5809 inner_depth.increment()?;
5810 }
5811 let val_ref =
5812 self.device_type.get_or_insert_with(|| fidl::new_empty!(DeviceType, D));
5813 fidl::decode!(DeviceType, D, val_ref, decoder, inner_offset, inner_depth)?;
5814 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5815 {
5816 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5817 }
5818 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5819 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5820 }
5821 }
5822
5823 next_offset += envelope_size;
5824 _next_ordinal_to_read += 1;
5825 if next_offset >= end_offset {
5826 return Ok(());
5827 }
5828
5829 while _next_ordinal_to_read < 3 {
5831 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5832 _next_ordinal_to_read += 1;
5833 next_offset += envelope_size;
5834 }
5835
5836 let next_out_of_line = decoder.next_out_of_line();
5837 let handles_before = decoder.remaining_handles();
5838 if let Some((inlined, num_bytes, num_handles)) =
5839 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5840 {
5841 let member_inline_size =
5842 <fidl::encoding::BoundedString<256> as fidl::encoding::TypeMarker>::inline_size(
5843 decoder.context,
5844 );
5845 if inlined != (member_inline_size <= 4) {
5846 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5847 }
5848 let inner_offset;
5849 let mut inner_depth = depth.clone();
5850 if inlined {
5851 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5852 inner_offset = next_offset;
5853 } else {
5854 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5855 inner_depth.increment()?;
5856 }
5857 let val_ref = self
5858 .device_name
5859 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<256>, D));
5860 fidl::decode!(
5861 fidl::encoding::BoundedString<256>,
5862 D,
5863 val_ref,
5864 decoder,
5865 inner_offset,
5866 inner_depth
5867 )?;
5868 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5869 {
5870 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5871 }
5872 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5873 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5874 }
5875 }
5876
5877 next_offset += envelope_size;
5878 _next_ordinal_to_read += 1;
5879 if next_offset >= end_offset {
5880 return Ok(());
5881 }
5882
5883 while _next_ordinal_to_read < 4 {
5885 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5886 _next_ordinal_to_read += 1;
5887 next_offset += envelope_size;
5888 }
5889
5890 let next_out_of_line = decoder.next_out_of_line();
5891 let handles_before = decoder.remaining_handles();
5892 if let Some((inlined, num_bytes, num_handles)) =
5893 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5894 {
5895 let member_inline_size =
5896 <fidl::encoding::BoundedString<256> as fidl::encoding::TypeMarker>::inline_size(
5897 decoder.context,
5898 );
5899 if inlined != (member_inline_size <= 4) {
5900 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5901 }
5902 let inner_offset;
5903 let mut inner_depth = depth.clone();
5904 if inlined {
5905 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5906 inner_offset = next_offset;
5907 } else {
5908 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5909 inner_depth.increment()?;
5910 }
5911 let val_ref = self
5912 .manufacturer
5913 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<256>, D));
5914 fidl::decode!(
5915 fidl::encoding::BoundedString<256>,
5916 D,
5917 val_ref,
5918 decoder,
5919 inner_offset,
5920 inner_depth
5921 )?;
5922 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5923 {
5924 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5925 }
5926 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5927 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5928 }
5929 }
5930
5931 next_offset += envelope_size;
5932 _next_ordinal_to_read += 1;
5933 if next_offset >= end_offset {
5934 return Ok(());
5935 }
5936
5937 while _next_ordinal_to_read < 5 {
5939 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5940 _next_ordinal_to_read += 1;
5941 next_offset += envelope_size;
5942 }
5943
5944 let next_out_of_line = decoder.next_out_of_line();
5945 let handles_before = decoder.remaining_handles();
5946 if let Some((inlined, num_bytes, num_handles)) =
5947 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5948 {
5949 let member_inline_size =
5950 <fidl::encoding::BoundedString<256> as fidl::encoding::TypeMarker>::inline_size(
5951 decoder.context,
5952 );
5953 if inlined != (member_inline_size <= 4) {
5954 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5955 }
5956 let inner_offset;
5957 let mut inner_depth = depth.clone();
5958 if inlined {
5959 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5960 inner_offset = next_offset;
5961 } else {
5962 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5963 inner_depth.increment()?;
5964 }
5965 let val_ref = self
5966 .product
5967 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<256>, D));
5968 fidl::decode!(
5969 fidl::encoding::BoundedString<256>,
5970 D,
5971 val_ref,
5972 decoder,
5973 inner_offset,
5974 inner_depth
5975 )?;
5976 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5977 {
5978 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5979 }
5980 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5981 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5982 }
5983 }
5984
5985 next_offset += envelope_size;
5986 _next_ordinal_to_read += 1;
5987 if next_offset >= end_offset {
5988 return Ok(());
5989 }
5990
5991 while _next_ordinal_to_read < 6 {
5993 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5994 _next_ordinal_to_read += 1;
5995 next_offset += envelope_size;
5996 }
5997
5998 let next_out_of_line = decoder.next_out_of_line();
5999 let handles_before = decoder.remaining_handles();
6000 if let Some((inlined, num_bytes, num_handles)) =
6001 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6002 {
6003 let member_inline_size =
6004 <fidl::encoding::Array<u8, 16> as fidl::encoding::TypeMarker>::inline_size(
6005 decoder.context,
6006 );
6007 if inlined != (member_inline_size <= 4) {
6008 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6009 }
6010 let inner_offset;
6011 let mut inner_depth = depth.clone();
6012 if inlined {
6013 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6014 inner_offset = next_offset;
6015 } else {
6016 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6017 inner_depth.increment()?;
6018 }
6019 let val_ref = self
6020 .unique_instance_id
6021 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 16>, D));
6022 fidl::decode!(fidl::encoding::Array<u8, 16>, D, val_ref, decoder, inner_offset, inner_depth)?;
6023 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6024 {
6025 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6026 }
6027 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6028 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6029 }
6030 }
6031
6032 next_offset += envelope_size;
6033 _next_ordinal_to_read += 1;
6034 if next_offset >= end_offset {
6035 return Ok(());
6036 }
6037
6038 while _next_ordinal_to_read < 7 {
6040 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6041 _next_ordinal_to_read += 1;
6042 next_offset += envelope_size;
6043 }
6044
6045 let next_out_of_line = decoder.next_out_of_line();
6046 let handles_before = decoder.remaining_handles();
6047 if let Some((inlined, num_bytes, num_handles)) =
6048 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6049 {
6050 let member_inline_size =
6051 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6052 if inlined != (member_inline_size <= 4) {
6053 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6054 }
6055 let inner_offset;
6056 let mut inner_depth = depth.clone();
6057 if inlined {
6058 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6059 inner_offset = next_offset;
6060 } else {
6061 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6062 inner_depth.increment()?;
6063 }
6064 let val_ref = self.is_input.get_or_insert_with(|| fidl::new_empty!(bool, D));
6065 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
6066 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6067 {
6068 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6069 }
6070 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6071 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6072 }
6073 }
6074
6075 next_offset += envelope_size;
6076 _next_ordinal_to_read += 1;
6077 if next_offset >= end_offset {
6078 return Ok(());
6079 }
6080
6081 while _next_ordinal_to_read < 8 {
6083 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6084 _next_ordinal_to_read += 1;
6085 next_offset += envelope_size;
6086 }
6087
6088 let next_out_of_line = decoder.next_out_of_line();
6089 let handles_before = decoder.remaining_handles();
6090 if let Some((inlined, num_bytes, num_handles)) =
6091 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6092 {
6093 let member_inline_size = <fidl::encoding::Vector<ElementRingBufferFormatSet, 64> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6094 if inlined != (member_inline_size <= 4) {
6095 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6096 }
6097 let inner_offset;
6098 let mut inner_depth = depth.clone();
6099 if inlined {
6100 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6101 inner_offset = next_offset;
6102 } else {
6103 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6104 inner_depth.increment()?;
6105 }
6106 let val_ref = self.ring_buffer_format_sets.get_or_insert_with(
6107 || fidl::new_empty!(fidl::encoding::Vector<ElementRingBufferFormatSet, 64>, D),
6108 );
6109 fidl::decode!(fidl::encoding::Vector<ElementRingBufferFormatSet, 64>, D, val_ref, decoder, inner_offset, inner_depth)?;
6110 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6111 {
6112 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6113 }
6114 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6115 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6116 }
6117 }
6118
6119 next_offset += envelope_size;
6120 _next_ordinal_to_read += 1;
6121 if next_offset >= end_offset {
6122 return Ok(());
6123 }
6124
6125 while _next_ordinal_to_read < 9 {
6127 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6128 _next_ordinal_to_read += 1;
6129 next_offset += envelope_size;
6130 }
6131
6132 let next_out_of_line = decoder.next_out_of_line();
6133 let handles_before = decoder.remaining_handles();
6134 if let Some((inlined, num_bytes, num_handles)) =
6135 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6136 {
6137 let member_inline_size = <fidl::encoding::Vector<ElementDaiFormatSet, 64> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6138 if inlined != (member_inline_size <= 4) {
6139 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6140 }
6141 let inner_offset;
6142 let mut inner_depth = depth.clone();
6143 if inlined {
6144 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6145 inner_offset = next_offset;
6146 } else {
6147 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6148 inner_depth.increment()?;
6149 }
6150 let val_ref = self.dai_format_sets.get_or_insert_with(
6151 || fidl::new_empty!(fidl::encoding::Vector<ElementDaiFormatSet, 64>, D),
6152 );
6153 fidl::decode!(fidl::encoding::Vector<ElementDaiFormatSet, 64>, D, val_ref, decoder, inner_offset, inner_depth)?;
6154 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6155 {
6156 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6157 }
6158 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6159 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6160 }
6161 }
6162
6163 next_offset += envelope_size;
6164 _next_ordinal_to_read += 1;
6165 if next_offset >= end_offset {
6166 return Ok(());
6167 }
6168
6169 while _next_ordinal_to_read < 10 {
6171 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6172 _next_ordinal_to_read += 1;
6173 next_offset += envelope_size;
6174 }
6175
6176 let next_out_of_line = decoder.next_out_of_line();
6177 let handles_before = decoder.remaining_handles();
6178 if let Some((inlined, num_bytes, num_handles)) =
6179 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6180 {
6181 let member_inline_size =
6182 <PlugDetectCapabilities as fidl::encoding::TypeMarker>::inline_size(
6183 decoder.context,
6184 );
6185 if inlined != (member_inline_size <= 4) {
6186 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6187 }
6188 let inner_offset;
6189 let mut inner_depth = depth.clone();
6190 if inlined {
6191 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6192 inner_offset = next_offset;
6193 } else {
6194 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6195 inner_depth.increment()?;
6196 }
6197 let val_ref = self
6198 .plug_detect_caps
6199 .get_or_insert_with(|| fidl::new_empty!(PlugDetectCapabilities, D));
6200 fidl::decode!(
6201 PlugDetectCapabilities,
6202 D,
6203 val_ref,
6204 decoder,
6205 inner_offset,
6206 inner_depth
6207 )?;
6208 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6209 {
6210 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6211 }
6212 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6213 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6214 }
6215 }
6216
6217 next_offset += envelope_size;
6218 _next_ordinal_to_read += 1;
6219 if next_offset >= end_offset {
6220 return Ok(());
6221 }
6222
6223 while _next_ordinal_to_read < 11 {
6225 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6226 _next_ordinal_to_read += 1;
6227 next_offset += envelope_size;
6228 }
6229
6230 let next_out_of_line = decoder.next_out_of_line();
6231 let handles_before = decoder.remaining_handles();
6232 if let Some((inlined, num_bytes, num_handles)) =
6233 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6234 {
6235 let member_inline_size =
6236 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6237 if inlined != (member_inline_size <= 4) {
6238 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6239 }
6240 let inner_offset;
6241 let mut inner_depth = depth.clone();
6242 if inlined {
6243 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6244 inner_offset = next_offset;
6245 } else {
6246 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6247 inner_depth.increment()?;
6248 }
6249 let val_ref = self.clock_domain.get_or_insert_with(|| fidl::new_empty!(u32, D));
6250 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
6251 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6252 {
6253 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6254 }
6255 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6256 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6257 }
6258 }
6259
6260 next_offset += envelope_size;
6261 _next_ordinal_to_read += 1;
6262 if next_offset >= end_offset {
6263 return Ok(());
6264 }
6265
6266 while _next_ordinal_to_read < 12 {
6268 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6269 _next_ordinal_to_read += 1;
6270 next_offset += envelope_size;
6271 }
6272
6273 let next_out_of_line = decoder.next_out_of_line();
6274 let handles_before = decoder.remaining_handles();
6275 if let Some((inlined, num_bytes, num_handles)) =
6276 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6277 {
6278 let member_inline_size = <fidl::encoding::Vector<
6279 fidl_fuchsia_hardware_audio_signalprocessing__common::Element,
6280 64,
6281 > as fidl::encoding::TypeMarker>::inline_size(
6282 decoder.context
6283 );
6284 if inlined != (member_inline_size <= 4) {
6285 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6286 }
6287 let inner_offset;
6288 let mut inner_depth = depth.clone();
6289 if inlined {
6290 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6291 inner_offset = next_offset;
6292 } else {
6293 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6294 inner_depth.increment()?;
6295 }
6296 let val_ref =
6297 self.signal_processing_elements.get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<fidl_fuchsia_hardware_audio_signalprocessing__common::Element, 64>, D));
6298 fidl::decode!(fidl::encoding::Vector<fidl_fuchsia_hardware_audio_signalprocessing__common::Element, 64>, D, val_ref, decoder, inner_offset, inner_depth)?;
6299 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6300 {
6301 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6302 }
6303 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6304 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6305 }
6306 }
6307
6308 next_offset += envelope_size;
6309 _next_ordinal_to_read += 1;
6310 if next_offset >= end_offset {
6311 return Ok(());
6312 }
6313
6314 while _next_ordinal_to_read < 13 {
6316 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6317 _next_ordinal_to_read += 1;
6318 next_offset += envelope_size;
6319 }
6320
6321 let next_out_of_line = decoder.next_out_of_line();
6322 let handles_before = decoder.remaining_handles();
6323 if let Some((inlined, num_bytes, num_handles)) =
6324 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6325 {
6326 let member_inline_size = <fidl::encoding::Vector<
6327 fidl_fuchsia_hardware_audio_signalprocessing__common::Topology,
6328 64,
6329 > as fidl::encoding::TypeMarker>::inline_size(
6330 decoder.context
6331 );
6332 if inlined != (member_inline_size <= 4) {
6333 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6334 }
6335 let inner_offset;
6336 let mut inner_depth = depth.clone();
6337 if inlined {
6338 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6339 inner_offset = next_offset;
6340 } else {
6341 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6342 inner_depth.increment()?;
6343 }
6344 let val_ref =
6345 self.signal_processing_topologies.get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<fidl_fuchsia_hardware_audio_signalprocessing__common::Topology, 64>, D));
6346 fidl::decode!(fidl::encoding::Vector<fidl_fuchsia_hardware_audio_signalprocessing__common::Topology, 64>, D, val_ref, decoder, inner_offset, inner_depth)?;
6347 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6348 {
6349 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6350 }
6351 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6352 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6353 }
6354 }
6355
6356 next_offset += envelope_size;
6357
6358 while next_offset < end_offset {
6360 _next_ordinal_to_read += 1;
6361 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6362 next_offset += envelope_size;
6363 }
6364
6365 Ok(())
6366 }
6367 }
6368
6369 impl ObserverWatchPlugStateResponse {
6370 #[inline(always)]
6371 fn max_ordinal_present(&self) -> u64 {
6372 if let Some(_) = self.plug_time {
6373 return 2;
6374 }
6375 if let Some(_) = self.state {
6376 return 1;
6377 }
6378 0
6379 }
6380 }
6381
6382 impl fidl::encoding::ValueTypeMarker for ObserverWatchPlugStateResponse {
6383 type Borrowed<'a> = &'a Self;
6384 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
6385 value
6386 }
6387 }
6388
6389 unsafe impl fidl::encoding::TypeMarker for ObserverWatchPlugStateResponse {
6390 type Owned = Self;
6391
6392 #[inline(always)]
6393 fn inline_align(_context: fidl::encoding::Context) -> usize {
6394 8
6395 }
6396
6397 #[inline(always)]
6398 fn inline_size(_context: fidl::encoding::Context) -> usize {
6399 16
6400 }
6401 }
6402
6403 unsafe impl<D: fidl::encoding::ResourceDialect>
6404 fidl::encoding::Encode<ObserverWatchPlugStateResponse, D>
6405 for &ObserverWatchPlugStateResponse
6406 {
6407 unsafe fn encode(
6408 self,
6409 encoder: &mut fidl::encoding::Encoder<'_, D>,
6410 offset: usize,
6411 mut depth: fidl::encoding::Depth,
6412 ) -> fidl::Result<()> {
6413 encoder.debug_check_bounds::<ObserverWatchPlugStateResponse>(offset);
6414 let max_ordinal: u64 = self.max_ordinal_present();
6416 encoder.write_num(max_ordinal, offset);
6417 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
6418 if max_ordinal == 0 {
6420 return Ok(());
6421 }
6422 depth.increment()?;
6423 let envelope_size = 8;
6424 let bytes_len = max_ordinal as usize * envelope_size;
6425 #[allow(unused_variables)]
6426 let offset = encoder.out_of_line_offset(bytes_len);
6427 let mut _prev_end_offset: usize = 0;
6428 if 1 > max_ordinal {
6429 return Ok(());
6430 }
6431
6432 let cur_offset: usize = (1 - 1) * envelope_size;
6435
6436 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6438
6439 fidl::encoding::encode_in_envelope_optional::<PlugState, D>(
6444 self.state.as_ref().map(<PlugState as fidl::encoding::ValueTypeMarker>::borrow),
6445 encoder,
6446 offset + cur_offset,
6447 depth,
6448 )?;
6449
6450 _prev_end_offset = cur_offset + envelope_size;
6451 if 2 > max_ordinal {
6452 return Ok(());
6453 }
6454
6455 let cur_offset: usize = (2 - 1) * envelope_size;
6458
6459 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6461
6462 fidl::encoding::encode_in_envelope_optional::<i64, D>(
6467 self.plug_time.as_ref().map(<i64 as fidl::encoding::ValueTypeMarker>::borrow),
6468 encoder,
6469 offset + cur_offset,
6470 depth,
6471 )?;
6472
6473 _prev_end_offset = cur_offset + envelope_size;
6474
6475 Ok(())
6476 }
6477 }
6478
6479 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
6480 for ObserverWatchPlugStateResponse
6481 {
6482 #[inline(always)]
6483 fn new_empty() -> Self {
6484 Self::default()
6485 }
6486
6487 unsafe fn decode(
6488 &mut self,
6489 decoder: &mut fidl::encoding::Decoder<'_, D>,
6490 offset: usize,
6491 mut depth: fidl::encoding::Depth,
6492 ) -> fidl::Result<()> {
6493 decoder.debug_check_bounds::<Self>(offset);
6494 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
6495 None => return Err(fidl::Error::NotNullable),
6496 Some(len) => len,
6497 };
6498 if len == 0 {
6500 return Ok(());
6501 };
6502 depth.increment()?;
6503 let envelope_size = 8;
6504 let bytes_len = len * envelope_size;
6505 let offset = decoder.out_of_line_offset(bytes_len)?;
6506 let mut _next_ordinal_to_read = 0;
6508 let mut next_offset = offset;
6509 let end_offset = offset + bytes_len;
6510 _next_ordinal_to_read += 1;
6511 if next_offset >= end_offset {
6512 return Ok(());
6513 }
6514
6515 while _next_ordinal_to_read < 1 {
6517 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6518 _next_ordinal_to_read += 1;
6519 next_offset += envelope_size;
6520 }
6521
6522 let next_out_of_line = decoder.next_out_of_line();
6523 let handles_before = decoder.remaining_handles();
6524 if let Some((inlined, num_bytes, num_handles)) =
6525 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6526 {
6527 let member_inline_size =
6528 <PlugState as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6529 if inlined != (member_inline_size <= 4) {
6530 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6531 }
6532 let inner_offset;
6533 let mut inner_depth = depth.clone();
6534 if inlined {
6535 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6536 inner_offset = next_offset;
6537 } else {
6538 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6539 inner_depth.increment()?;
6540 }
6541 let val_ref = self.state.get_or_insert_with(|| fidl::new_empty!(PlugState, D));
6542 fidl::decode!(PlugState, D, val_ref, decoder, inner_offset, inner_depth)?;
6543 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6544 {
6545 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6546 }
6547 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6548 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6549 }
6550 }
6551
6552 next_offset += envelope_size;
6553 _next_ordinal_to_read += 1;
6554 if next_offset >= end_offset {
6555 return Ok(());
6556 }
6557
6558 while _next_ordinal_to_read < 2 {
6560 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6561 _next_ordinal_to_read += 1;
6562 next_offset += envelope_size;
6563 }
6564
6565 let next_out_of_line = decoder.next_out_of_line();
6566 let handles_before = decoder.remaining_handles();
6567 if let Some((inlined, num_bytes, num_handles)) =
6568 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6569 {
6570 let member_inline_size =
6571 <i64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6572 if inlined != (member_inline_size <= 4) {
6573 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6574 }
6575 let inner_offset;
6576 let mut inner_depth = depth.clone();
6577 if inlined {
6578 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6579 inner_offset = next_offset;
6580 } else {
6581 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6582 inner_depth.increment()?;
6583 }
6584 let val_ref = self.plug_time.get_or_insert_with(|| fidl::new_empty!(i64, D));
6585 fidl::decode!(i64, D, val_ref, decoder, inner_offset, inner_depth)?;
6586 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6587 {
6588 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6589 }
6590 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6591 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6592 }
6593 }
6594
6595 next_offset += envelope_size;
6596
6597 while next_offset < end_offset {
6599 _next_ordinal_to_read += 1;
6600 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6601 next_offset += envelope_size;
6602 }
6603
6604 Ok(())
6605 }
6606 }
6607
6608 impl PcmFormatSet {
6609 #[inline(always)]
6610 fn max_ordinal_present(&self) -> u64 {
6611 if let Some(_) = self.frame_rates {
6612 return 3;
6613 }
6614 if let Some(_) = self.sample_types {
6615 return 2;
6616 }
6617 if let Some(_) = self.channel_sets {
6618 return 1;
6619 }
6620 0
6621 }
6622 }
6623
6624 impl fidl::encoding::ValueTypeMarker for PcmFormatSet {
6625 type Borrowed<'a> = &'a Self;
6626 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
6627 value
6628 }
6629 }
6630
6631 unsafe impl fidl::encoding::TypeMarker for PcmFormatSet {
6632 type Owned = Self;
6633
6634 #[inline(always)]
6635 fn inline_align(_context: fidl::encoding::Context) -> usize {
6636 8
6637 }
6638
6639 #[inline(always)]
6640 fn inline_size(_context: fidl::encoding::Context) -> usize {
6641 16
6642 }
6643 }
6644
6645 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<PcmFormatSet, D>
6646 for &PcmFormatSet
6647 {
6648 unsafe fn encode(
6649 self,
6650 encoder: &mut fidl::encoding::Encoder<'_, D>,
6651 offset: usize,
6652 mut depth: fidl::encoding::Depth,
6653 ) -> fidl::Result<()> {
6654 encoder.debug_check_bounds::<PcmFormatSet>(offset);
6655 let max_ordinal: u64 = self.max_ordinal_present();
6657 encoder.write_num(max_ordinal, offset);
6658 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
6659 if max_ordinal == 0 {
6661 return Ok(());
6662 }
6663 depth.increment()?;
6664 let envelope_size = 8;
6665 let bytes_len = max_ordinal as usize * envelope_size;
6666 #[allow(unused_variables)]
6667 let offset = encoder.out_of_line_offset(bytes_len);
6668 let mut _prev_end_offset: usize = 0;
6669 if 1 > max_ordinal {
6670 return Ok(());
6671 }
6672
6673 let cur_offset: usize = (1 - 1) * envelope_size;
6676
6677 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6679
6680 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<ChannelSet, 64>, D>(
6685 self.channel_sets.as_ref().map(<fidl::encoding::Vector<ChannelSet, 64> as fidl::encoding::ValueTypeMarker>::borrow),
6686 encoder, offset + cur_offset, depth
6687 )?;
6688
6689 _prev_end_offset = cur_offset + envelope_size;
6690 if 2 > max_ordinal {
6691 return Ok(());
6692 }
6693
6694 let cur_offset: usize = (2 - 1) * envelope_size;
6697
6698 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6700
6701 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<fidl_fuchsia_audio__common::SampleType, 32>, D>(
6706 self.sample_types.as_ref().map(<fidl::encoding::Vector<fidl_fuchsia_audio__common::SampleType, 32> as fidl::encoding::ValueTypeMarker>::borrow),
6707 encoder, offset + cur_offset, depth
6708 )?;
6709
6710 _prev_end_offset = cur_offset + envelope_size;
6711 if 3 > max_ordinal {
6712 return Ok(());
6713 }
6714
6715 let cur_offset: usize = (3 - 1) * envelope_size;
6718
6719 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6721
6722 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<u32, 64>, D>(
6727 self.frame_rates.as_ref().map(
6728 <fidl::encoding::Vector<u32, 64> as fidl::encoding::ValueTypeMarker>::borrow,
6729 ),
6730 encoder,
6731 offset + cur_offset,
6732 depth,
6733 )?;
6734
6735 _prev_end_offset = cur_offset + envelope_size;
6736
6737 Ok(())
6738 }
6739 }
6740
6741 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for PcmFormatSet {
6742 #[inline(always)]
6743 fn new_empty() -> Self {
6744 Self::default()
6745 }
6746
6747 unsafe fn decode(
6748 &mut self,
6749 decoder: &mut fidl::encoding::Decoder<'_, D>,
6750 offset: usize,
6751 mut depth: fidl::encoding::Depth,
6752 ) -> fidl::Result<()> {
6753 decoder.debug_check_bounds::<Self>(offset);
6754 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
6755 None => return Err(fidl::Error::NotNullable),
6756 Some(len) => len,
6757 };
6758 if len == 0 {
6760 return Ok(());
6761 };
6762 depth.increment()?;
6763 let envelope_size = 8;
6764 let bytes_len = len * envelope_size;
6765 let offset = decoder.out_of_line_offset(bytes_len)?;
6766 let mut _next_ordinal_to_read = 0;
6768 let mut next_offset = offset;
6769 let end_offset = offset + bytes_len;
6770 _next_ordinal_to_read += 1;
6771 if next_offset >= end_offset {
6772 return Ok(());
6773 }
6774
6775 while _next_ordinal_to_read < 1 {
6777 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6778 _next_ordinal_to_read += 1;
6779 next_offset += envelope_size;
6780 }
6781
6782 let next_out_of_line = decoder.next_out_of_line();
6783 let handles_before = decoder.remaining_handles();
6784 if let Some((inlined, num_bytes, num_handles)) =
6785 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6786 {
6787 let member_inline_size = <fidl::encoding::Vector<ChannelSet, 64> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6788 if inlined != (member_inline_size <= 4) {
6789 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6790 }
6791 let inner_offset;
6792 let mut inner_depth = depth.clone();
6793 if inlined {
6794 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6795 inner_offset = next_offset;
6796 } else {
6797 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6798 inner_depth.increment()?;
6799 }
6800 let val_ref = self.channel_sets.get_or_insert_with(
6801 || fidl::new_empty!(fidl::encoding::Vector<ChannelSet, 64>, D),
6802 );
6803 fidl::decode!(fidl::encoding::Vector<ChannelSet, 64>, D, val_ref, decoder, inner_offset, inner_depth)?;
6804 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6805 {
6806 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6807 }
6808 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6809 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6810 }
6811 }
6812
6813 next_offset += envelope_size;
6814 _next_ordinal_to_read += 1;
6815 if next_offset >= end_offset {
6816 return Ok(());
6817 }
6818
6819 while _next_ordinal_to_read < 2 {
6821 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6822 _next_ordinal_to_read += 1;
6823 next_offset += envelope_size;
6824 }
6825
6826 let next_out_of_line = decoder.next_out_of_line();
6827 let handles_before = decoder.remaining_handles();
6828 if let Some((inlined, num_bytes, num_handles)) =
6829 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6830 {
6831 let member_inline_size = <fidl::encoding::Vector<
6832 fidl_fuchsia_audio__common::SampleType,
6833 32,
6834 > as fidl::encoding::TypeMarker>::inline_size(
6835 decoder.context
6836 );
6837 if inlined != (member_inline_size <= 4) {
6838 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6839 }
6840 let inner_offset;
6841 let mut inner_depth = depth.clone();
6842 if inlined {
6843 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6844 inner_offset = next_offset;
6845 } else {
6846 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6847 inner_depth.increment()?;
6848 }
6849 let val_ref =
6850 self.sample_types.get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<fidl_fuchsia_audio__common::SampleType, 32>, D));
6851 fidl::decode!(fidl::encoding::Vector<fidl_fuchsia_audio__common::SampleType, 32>, D, val_ref, decoder, inner_offset, inner_depth)?;
6852 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6853 {
6854 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6855 }
6856 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6857 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6858 }
6859 }
6860
6861 next_offset += envelope_size;
6862 _next_ordinal_to_read += 1;
6863 if next_offset >= end_offset {
6864 return Ok(());
6865 }
6866
6867 while _next_ordinal_to_read < 3 {
6869 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6870 _next_ordinal_to_read += 1;
6871 next_offset += envelope_size;
6872 }
6873
6874 let next_out_of_line = decoder.next_out_of_line();
6875 let handles_before = decoder.remaining_handles();
6876 if let Some((inlined, num_bytes, num_handles)) =
6877 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6878 {
6879 let member_inline_size =
6880 <fidl::encoding::Vector<u32, 64> as fidl::encoding::TypeMarker>::inline_size(
6881 decoder.context,
6882 );
6883 if inlined != (member_inline_size <= 4) {
6884 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6885 }
6886 let inner_offset;
6887 let mut inner_depth = depth.clone();
6888 if inlined {
6889 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6890 inner_offset = next_offset;
6891 } else {
6892 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6893 inner_depth.increment()?;
6894 }
6895 let val_ref = self
6896 .frame_rates
6897 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<u32, 64>, D));
6898 fidl::decode!(fidl::encoding::Vector<u32, 64>, D, val_ref, decoder, inner_offset, inner_depth)?;
6899 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6900 {
6901 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6902 }
6903 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6904 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6905 }
6906 }
6907
6908 next_offset += envelope_size;
6909
6910 while next_offset < end_offset {
6912 _next_ordinal_to_read += 1;
6913 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6914 next_offset += envelope_size;
6915 }
6916
6917 Ok(())
6918 }
6919 }
6920
6921 impl ProviderAddDeviceResponse {
6922 #[inline(always)]
6923 fn max_ordinal_present(&self) -> u64 {
6924 0
6925 }
6926 }
6927
6928 impl fidl::encoding::ValueTypeMarker for ProviderAddDeviceResponse {
6929 type Borrowed<'a> = &'a Self;
6930 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
6931 value
6932 }
6933 }
6934
6935 unsafe impl fidl::encoding::TypeMarker for ProviderAddDeviceResponse {
6936 type Owned = Self;
6937
6938 #[inline(always)]
6939 fn inline_align(_context: fidl::encoding::Context) -> usize {
6940 8
6941 }
6942
6943 #[inline(always)]
6944 fn inline_size(_context: fidl::encoding::Context) -> usize {
6945 16
6946 }
6947 }
6948
6949 unsafe impl<D: fidl::encoding::ResourceDialect>
6950 fidl::encoding::Encode<ProviderAddDeviceResponse, D> for &ProviderAddDeviceResponse
6951 {
6952 unsafe fn encode(
6953 self,
6954 encoder: &mut fidl::encoding::Encoder<'_, D>,
6955 offset: usize,
6956 mut depth: fidl::encoding::Depth,
6957 ) -> fidl::Result<()> {
6958 encoder.debug_check_bounds::<ProviderAddDeviceResponse>(offset);
6959 let max_ordinal: u64 = self.max_ordinal_present();
6961 encoder.write_num(max_ordinal, offset);
6962 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
6963 if max_ordinal == 0 {
6965 return Ok(());
6966 }
6967 depth.increment()?;
6968 let envelope_size = 8;
6969 let bytes_len = max_ordinal as usize * envelope_size;
6970 #[allow(unused_variables)]
6971 let offset = encoder.out_of_line_offset(bytes_len);
6972 let mut _prev_end_offset: usize = 0;
6973
6974 Ok(())
6975 }
6976 }
6977
6978 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
6979 for ProviderAddDeviceResponse
6980 {
6981 #[inline(always)]
6982 fn new_empty() -> Self {
6983 Self::default()
6984 }
6985
6986 unsafe fn decode(
6987 &mut self,
6988 decoder: &mut fidl::encoding::Decoder<'_, D>,
6989 offset: usize,
6990 mut depth: fidl::encoding::Depth,
6991 ) -> fidl::Result<()> {
6992 decoder.debug_check_bounds::<Self>(offset);
6993 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
6994 None => return Err(fidl::Error::NotNullable),
6995 Some(len) => len,
6996 };
6997 if len == 0 {
6999 return Ok(());
7000 };
7001 depth.increment()?;
7002 let envelope_size = 8;
7003 let bytes_len = len * envelope_size;
7004 let offset = decoder.out_of_line_offset(bytes_len)?;
7005 let mut _next_ordinal_to_read = 0;
7007 let mut next_offset = offset;
7008 let end_offset = offset + bytes_len;
7009
7010 while next_offset < end_offset {
7012 _next_ordinal_to_read += 1;
7013 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7014 next_offset += envelope_size;
7015 }
7016
7017 Ok(())
7018 }
7019 }
7020
7021 impl RegistryCreateObserverResponse {
7022 #[inline(always)]
7023 fn max_ordinal_present(&self) -> u64 {
7024 0
7025 }
7026 }
7027
7028 impl fidl::encoding::ValueTypeMarker for RegistryCreateObserverResponse {
7029 type Borrowed<'a> = &'a Self;
7030 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
7031 value
7032 }
7033 }
7034
7035 unsafe impl fidl::encoding::TypeMarker for RegistryCreateObserverResponse {
7036 type Owned = Self;
7037
7038 #[inline(always)]
7039 fn inline_align(_context: fidl::encoding::Context) -> usize {
7040 8
7041 }
7042
7043 #[inline(always)]
7044 fn inline_size(_context: fidl::encoding::Context) -> usize {
7045 16
7046 }
7047 }
7048
7049 unsafe impl<D: fidl::encoding::ResourceDialect>
7050 fidl::encoding::Encode<RegistryCreateObserverResponse, D>
7051 for &RegistryCreateObserverResponse
7052 {
7053 unsafe fn encode(
7054 self,
7055 encoder: &mut fidl::encoding::Encoder<'_, D>,
7056 offset: usize,
7057 mut depth: fidl::encoding::Depth,
7058 ) -> fidl::Result<()> {
7059 encoder.debug_check_bounds::<RegistryCreateObserverResponse>(offset);
7060 let max_ordinal: u64 = self.max_ordinal_present();
7062 encoder.write_num(max_ordinal, offset);
7063 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
7064 if max_ordinal == 0 {
7066 return Ok(());
7067 }
7068 depth.increment()?;
7069 let envelope_size = 8;
7070 let bytes_len = max_ordinal as usize * envelope_size;
7071 #[allow(unused_variables)]
7072 let offset = encoder.out_of_line_offset(bytes_len);
7073 let mut _prev_end_offset: usize = 0;
7074
7075 Ok(())
7076 }
7077 }
7078
7079 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
7080 for RegistryCreateObserverResponse
7081 {
7082 #[inline(always)]
7083 fn new_empty() -> Self {
7084 Self::default()
7085 }
7086
7087 unsafe fn decode(
7088 &mut self,
7089 decoder: &mut fidl::encoding::Decoder<'_, D>,
7090 offset: usize,
7091 mut depth: fidl::encoding::Depth,
7092 ) -> fidl::Result<()> {
7093 decoder.debug_check_bounds::<Self>(offset);
7094 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
7095 None => return Err(fidl::Error::NotNullable),
7096 Some(len) => len,
7097 };
7098 if len == 0 {
7100 return Ok(());
7101 };
7102 depth.increment()?;
7103 let envelope_size = 8;
7104 let bytes_len = len * envelope_size;
7105 let offset = decoder.out_of_line_offset(bytes_len)?;
7106 let mut _next_ordinal_to_read = 0;
7108 let mut next_offset = offset;
7109 let end_offset = offset + bytes_len;
7110
7111 while next_offset < end_offset {
7113 _next_ordinal_to_read += 1;
7114 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7115 next_offset += envelope_size;
7116 }
7117
7118 Ok(())
7119 }
7120 }
7121
7122 impl RegistryWatchDeviceRemovedResponse {
7123 #[inline(always)]
7124 fn max_ordinal_present(&self) -> u64 {
7125 if let Some(_) = self.token_id {
7126 return 1;
7127 }
7128 0
7129 }
7130 }
7131
7132 impl fidl::encoding::ValueTypeMarker for RegistryWatchDeviceRemovedResponse {
7133 type Borrowed<'a> = &'a Self;
7134 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
7135 value
7136 }
7137 }
7138
7139 unsafe impl fidl::encoding::TypeMarker for RegistryWatchDeviceRemovedResponse {
7140 type Owned = Self;
7141
7142 #[inline(always)]
7143 fn inline_align(_context: fidl::encoding::Context) -> usize {
7144 8
7145 }
7146
7147 #[inline(always)]
7148 fn inline_size(_context: fidl::encoding::Context) -> usize {
7149 16
7150 }
7151 }
7152
7153 unsafe impl<D: fidl::encoding::ResourceDialect>
7154 fidl::encoding::Encode<RegistryWatchDeviceRemovedResponse, D>
7155 for &RegistryWatchDeviceRemovedResponse
7156 {
7157 unsafe fn encode(
7158 self,
7159 encoder: &mut fidl::encoding::Encoder<'_, D>,
7160 offset: usize,
7161 mut depth: fidl::encoding::Depth,
7162 ) -> fidl::Result<()> {
7163 encoder.debug_check_bounds::<RegistryWatchDeviceRemovedResponse>(offset);
7164 let max_ordinal: u64 = self.max_ordinal_present();
7166 encoder.write_num(max_ordinal, offset);
7167 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
7168 if max_ordinal == 0 {
7170 return Ok(());
7171 }
7172 depth.increment()?;
7173 let envelope_size = 8;
7174 let bytes_len = max_ordinal as usize * envelope_size;
7175 #[allow(unused_variables)]
7176 let offset = encoder.out_of_line_offset(bytes_len);
7177 let mut _prev_end_offset: usize = 0;
7178 if 1 > max_ordinal {
7179 return Ok(());
7180 }
7181
7182 let cur_offset: usize = (1 - 1) * envelope_size;
7185
7186 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7188
7189 fidl::encoding::encode_in_envelope_optional::<u64, D>(
7194 self.token_id.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
7195 encoder,
7196 offset + cur_offset,
7197 depth,
7198 )?;
7199
7200 _prev_end_offset = cur_offset + envelope_size;
7201
7202 Ok(())
7203 }
7204 }
7205
7206 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
7207 for RegistryWatchDeviceRemovedResponse
7208 {
7209 #[inline(always)]
7210 fn new_empty() -> Self {
7211 Self::default()
7212 }
7213
7214 unsafe fn decode(
7215 &mut self,
7216 decoder: &mut fidl::encoding::Decoder<'_, D>,
7217 offset: usize,
7218 mut depth: fidl::encoding::Depth,
7219 ) -> fidl::Result<()> {
7220 decoder.debug_check_bounds::<Self>(offset);
7221 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
7222 None => return Err(fidl::Error::NotNullable),
7223 Some(len) => len,
7224 };
7225 if len == 0 {
7227 return Ok(());
7228 };
7229 depth.increment()?;
7230 let envelope_size = 8;
7231 let bytes_len = len * envelope_size;
7232 let offset = decoder.out_of_line_offset(bytes_len)?;
7233 let mut _next_ordinal_to_read = 0;
7235 let mut next_offset = offset;
7236 let end_offset = offset + bytes_len;
7237 _next_ordinal_to_read += 1;
7238 if next_offset >= end_offset {
7239 return Ok(());
7240 }
7241
7242 while _next_ordinal_to_read < 1 {
7244 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7245 _next_ordinal_to_read += 1;
7246 next_offset += envelope_size;
7247 }
7248
7249 let next_out_of_line = decoder.next_out_of_line();
7250 let handles_before = decoder.remaining_handles();
7251 if let Some((inlined, num_bytes, num_handles)) =
7252 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7253 {
7254 let member_inline_size =
7255 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7256 if inlined != (member_inline_size <= 4) {
7257 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7258 }
7259 let inner_offset;
7260 let mut inner_depth = depth.clone();
7261 if inlined {
7262 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7263 inner_offset = next_offset;
7264 } else {
7265 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7266 inner_depth.increment()?;
7267 }
7268 let val_ref = self.token_id.get_or_insert_with(|| fidl::new_empty!(u64, D));
7269 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
7270 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7271 {
7272 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7273 }
7274 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7275 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7276 }
7277 }
7278
7279 next_offset += envelope_size;
7280
7281 while next_offset < end_offset {
7283 _next_ordinal_to_read += 1;
7284 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7285 next_offset += envelope_size;
7286 }
7287
7288 Ok(())
7289 }
7290 }
7291
7292 impl RegistryWatchDevicesAddedResponse {
7293 #[inline(always)]
7294 fn max_ordinal_present(&self) -> u64 {
7295 if let Some(_) = self.devices {
7296 return 1;
7297 }
7298 0
7299 }
7300 }
7301
7302 impl fidl::encoding::ValueTypeMarker for RegistryWatchDevicesAddedResponse {
7303 type Borrowed<'a> = &'a Self;
7304 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
7305 value
7306 }
7307 }
7308
7309 unsafe impl fidl::encoding::TypeMarker for RegistryWatchDevicesAddedResponse {
7310 type Owned = Self;
7311
7312 #[inline(always)]
7313 fn inline_align(_context: fidl::encoding::Context) -> usize {
7314 8
7315 }
7316
7317 #[inline(always)]
7318 fn inline_size(_context: fidl::encoding::Context) -> usize {
7319 16
7320 }
7321 }
7322
7323 unsafe impl<D: fidl::encoding::ResourceDialect>
7324 fidl::encoding::Encode<RegistryWatchDevicesAddedResponse, D>
7325 for &RegistryWatchDevicesAddedResponse
7326 {
7327 unsafe fn encode(
7328 self,
7329 encoder: &mut fidl::encoding::Encoder<'_, D>,
7330 offset: usize,
7331 mut depth: fidl::encoding::Depth,
7332 ) -> fidl::Result<()> {
7333 encoder.debug_check_bounds::<RegistryWatchDevicesAddedResponse>(offset);
7334 let max_ordinal: u64 = self.max_ordinal_present();
7336 encoder.write_num(max_ordinal, offset);
7337 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
7338 if max_ordinal == 0 {
7340 return Ok(());
7341 }
7342 depth.increment()?;
7343 let envelope_size = 8;
7344 let bytes_len = max_ordinal as usize * envelope_size;
7345 #[allow(unused_variables)]
7346 let offset = encoder.out_of_line_offset(bytes_len);
7347 let mut _prev_end_offset: usize = 0;
7348 if 1 > max_ordinal {
7349 return Ok(());
7350 }
7351
7352 let cur_offset: usize = (1 - 1) * envelope_size;
7355
7356 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7358
7359 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<Info, 256>, D>(
7364 self.devices.as_ref().map(
7365 <fidl::encoding::Vector<Info, 256> as fidl::encoding::ValueTypeMarker>::borrow,
7366 ),
7367 encoder,
7368 offset + cur_offset,
7369 depth,
7370 )?;
7371
7372 _prev_end_offset = cur_offset + envelope_size;
7373
7374 Ok(())
7375 }
7376 }
7377
7378 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
7379 for RegistryWatchDevicesAddedResponse
7380 {
7381 #[inline(always)]
7382 fn new_empty() -> Self {
7383 Self::default()
7384 }
7385
7386 unsafe fn decode(
7387 &mut self,
7388 decoder: &mut fidl::encoding::Decoder<'_, D>,
7389 offset: usize,
7390 mut depth: fidl::encoding::Depth,
7391 ) -> fidl::Result<()> {
7392 decoder.debug_check_bounds::<Self>(offset);
7393 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
7394 None => return Err(fidl::Error::NotNullable),
7395 Some(len) => len,
7396 };
7397 if len == 0 {
7399 return Ok(());
7400 };
7401 depth.increment()?;
7402 let envelope_size = 8;
7403 let bytes_len = len * envelope_size;
7404 let offset = decoder.out_of_line_offset(bytes_len)?;
7405 let mut _next_ordinal_to_read = 0;
7407 let mut next_offset = offset;
7408 let end_offset = offset + bytes_len;
7409 _next_ordinal_to_read += 1;
7410 if next_offset >= end_offset {
7411 return Ok(());
7412 }
7413
7414 while _next_ordinal_to_read < 1 {
7416 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7417 _next_ordinal_to_read += 1;
7418 next_offset += envelope_size;
7419 }
7420
7421 let next_out_of_line = decoder.next_out_of_line();
7422 let handles_before = decoder.remaining_handles();
7423 if let Some((inlined, num_bytes, num_handles)) =
7424 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7425 {
7426 let member_inline_size =
7427 <fidl::encoding::Vector<Info, 256> as fidl::encoding::TypeMarker>::inline_size(
7428 decoder.context,
7429 );
7430 if inlined != (member_inline_size <= 4) {
7431 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7432 }
7433 let inner_offset;
7434 let mut inner_depth = depth.clone();
7435 if inlined {
7436 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7437 inner_offset = next_offset;
7438 } else {
7439 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7440 inner_depth.increment()?;
7441 }
7442 let val_ref = self
7443 .devices
7444 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<Info, 256>, D));
7445 fidl::decode!(fidl::encoding::Vector<Info, 256>, D, val_ref, decoder, inner_offset, inner_depth)?;
7446 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7447 {
7448 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7449 }
7450 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7451 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7452 }
7453 }
7454
7455 next_offset += envelope_size;
7456
7457 while next_offset < end_offset {
7459 _next_ordinal_to_read += 1;
7460 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7461 next_offset += envelope_size;
7462 }
7463
7464 Ok(())
7465 }
7466 }
7467
7468 impl RingBufferOptions {
7469 #[inline(always)]
7470 fn max_ordinal_present(&self) -> u64 {
7471 if let Some(_) = self.ring_buffer_min_bytes {
7472 return 2;
7473 }
7474 if let Some(_) = self.format {
7475 return 1;
7476 }
7477 0
7478 }
7479 }
7480
7481 impl fidl::encoding::ValueTypeMarker for RingBufferOptions {
7482 type Borrowed<'a> = &'a Self;
7483 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
7484 value
7485 }
7486 }
7487
7488 unsafe impl fidl::encoding::TypeMarker for RingBufferOptions {
7489 type Owned = Self;
7490
7491 #[inline(always)]
7492 fn inline_align(_context: fidl::encoding::Context) -> usize {
7493 8
7494 }
7495
7496 #[inline(always)]
7497 fn inline_size(_context: fidl::encoding::Context) -> usize {
7498 16
7499 }
7500 }
7501
7502 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<RingBufferOptions, D>
7503 for &RingBufferOptions
7504 {
7505 unsafe fn encode(
7506 self,
7507 encoder: &mut fidl::encoding::Encoder<'_, D>,
7508 offset: usize,
7509 mut depth: fidl::encoding::Depth,
7510 ) -> fidl::Result<()> {
7511 encoder.debug_check_bounds::<RingBufferOptions>(offset);
7512 let max_ordinal: u64 = self.max_ordinal_present();
7514 encoder.write_num(max_ordinal, offset);
7515 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
7516 if max_ordinal == 0 {
7518 return Ok(());
7519 }
7520 depth.increment()?;
7521 let envelope_size = 8;
7522 let bytes_len = max_ordinal as usize * envelope_size;
7523 #[allow(unused_variables)]
7524 let offset = encoder.out_of_line_offset(bytes_len);
7525 let mut _prev_end_offset: usize = 0;
7526 if 1 > max_ordinal {
7527 return Ok(());
7528 }
7529
7530 let cur_offset: usize = (1 - 1) * envelope_size;
7533
7534 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7536
7537 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_audio__common::Format, D>(
7542 self.format.as_ref().map(
7543 <fidl_fuchsia_audio__common::Format as fidl::encoding::ValueTypeMarker>::borrow,
7544 ),
7545 encoder,
7546 offset + cur_offset,
7547 depth,
7548 )?;
7549
7550 _prev_end_offset = cur_offset + envelope_size;
7551 if 2 > max_ordinal {
7552 return Ok(());
7553 }
7554
7555 let cur_offset: usize = (2 - 1) * envelope_size;
7558
7559 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7561
7562 fidl::encoding::encode_in_envelope_optional::<u32, D>(
7567 self.ring_buffer_min_bytes
7568 .as_ref()
7569 .map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
7570 encoder,
7571 offset + cur_offset,
7572 depth,
7573 )?;
7574
7575 _prev_end_offset = cur_offset + envelope_size;
7576
7577 Ok(())
7578 }
7579 }
7580
7581 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for RingBufferOptions {
7582 #[inline(always)]
7583 fn new_empty() -> Self {
7584 Self::default()
7585 }
7586
7587 unsafe fn decode(
7588 &mut self,
7589 decoder: &mut fidl::encoding::Decoder<'_, D>,
7590 offset: usize,
7591 mut depth: fidl::encoding::Depth,
7592 ) -> fidl::Result<()> {
7593 decoder.debug_check_bounds::<Self>(offset);
7594 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
7595 None => return Err(fidl::Error::NotNullable),
7596 Some(len) => len,
7597 };
7598 if len == 0 {
7600 return Ok(());
7601 };
7602 depth.increment()?;
7603 let envelope_size = 8;
7604 let bytes_len = len * envelope_size;
7605 let offset = decoder.out_of_line_offset(bytes_len)?;
7606 let mut _next_ordinal_to_read = 0;
7608 let mut next_offset = offset;
7609 let end_offset = offset + bytes_len;
7610 _next_ordinal_to_read += 1;
7611 if next_offset >= end_offset {
7612 return Ok(());
7613 }
7614
7615 while _next_ordinal_to_read < 1 {
7617 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7618 _next_ordinal_to_read += 1;
7619 next_offset += envelope_size;
7620 }
7621
7622 let next_out_of_line = decoder.next_out_of_line();
7623 let handles_before = decoder.remaining_handles();
7624 if let Some((inlined, num_bytes, num_handles)) =
7625 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7626 {
7627 let member_inline_size =
7628 <fidl_fuchsia_audio__common::Format as fidl::encoding::TypeMarker>::inline_size(
7629 decoder.context,
7630 );
7631 if inlined != (member_inline_size <= 4) {
7632 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7633 }
7634 let inner_offset;
7635 let mut inner_depth = depth.clone();
7636 if inlined {
7637 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7638 inner_offset = next_offset;
7639 } else {
7640 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7641 inner_depth.increment()?;
7642 }
7643 let val_ref = self
7644 .format
7645 .get_or_insert_with(|| fidl::new_empty!(fidl_fuchsia_audio__common::Format, D));
7646 fidl::decode!(
7647 fidl_fuchsia_audio__common::Format,
7648 D,
7649 val_ref,
7650 decoder,
7651 inner_offset,
7652 inner_depth
7653 )?;
7654 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7655 {
7656 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7657 }
7658 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7659 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7660 }
7661 }
7662
7663 next_offset += envelope_size;
7664 _next_ordinal_to_read += 1;
7665 if next_offset >= end_offset {
7666 return Ok(());
7667 }
7668
7669 while _next_ordinal_to_read < 2 {
7671 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7672 _next_ordinal_to_read += 1;
7673 next_offset += envelope_size;
7674 }
7675
7676 let next_out_of_line = decoder.next_out_of_line();
7677 let handles_before = decoder.remaining_handles();
7678 if let Some((inlined, num_bytes, num_handles)) =
7679 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7680 {
7681 let member_inline_size =
7682 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7683 if inlined != (member_inline_size <= 4) {
7684 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7685 }
7686 let inner_offset;
7687 let mut inner_depth = depth.clone();
7688 if inlined {
7689 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7690 inner_offset = next_offset;
7691 } else {
7692 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7693 inner_depth.increment()?;
7694 }
7695 let val_ref =
7696 self.ring_buffer_min_bytes.get_or_insert_with(|| fidl::new_empty!(u32, D));
7697 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
7698 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7699 {
7700 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7701 }
7702 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7703 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7704 }
7705 }
7706
7707 next_offset += envelope_size;
7708
7709 while next_offset < end_offset {
7711 _next_ordinal_to_read += 1;
7712 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7713 next_offset += envelope_size;
7714 }
7715
7716 Ok(())
7717 }
7718 }
7719
7720 impl RingBufferProperties {
7721 #[inline(always)]
7722 fn max_ordinal_present(&self) -> u64 {
7723 if let Some(_) = self.turn_on_delay {
7724 return 2;
7725 }
7726 if let Some(_) = self.valid_bits_per_sample {
7727 return 1;
7728 }
7729 0
7730 }
7731 }
7732
7733 impl fidl::encoding::ValueTypeMarker for RingBufferProperties {
7734 type Borrowed<'a> = &'a Self;
7735 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
7736 value
7737 }
7738 }
7739
7740 unsafe impl fidl::encoding::TypeMarker for RingBufferProperties {
7741 type Owned = Self;
7742
7743 #[inline(always)]
7744 fn inline_align(_context: fidl::encoding::Context) -> usize {
7745 8
7746 }
7747
7748 #[inline(always)]
7749 fn inline_size(_context: fidl::encoding::Context) -> usize {
7750 16
7751 }
7752 }
7753
7754 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<RingBufferProperties, D>
7755 for &RingBufferProperties
7756 {
7757 unsafe fn encode(
7758 self,
7759 encoder: &mut fidl::encoding::Encoder<'_, D>,
7760 offset: usize,
7761 mut depth: fidl::encoding::Depth,
7762 ) -> fidl::Result<()> {
7763 encoder.debug_check_bounds::<RingBufferProperties>(offset);
7764 let max_ordinal: u64 = self.max_ordinal_present();
7766 encoder.write_num(max_ordinal, offset);
7767 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
7768 if max_ordinal == 0 {
7770 return Ok(());
7771 }
7772 depth.increment()?;
7773 let envelope_size = 8;
7774 let bytes_len = max_ordinal as usize * envelope_size;
7775 #[allow(unused_variables)]
7776 let offset = encoder.out_of_line_offset(bytes_len);
7777 let mut _prev_end_offset: usize = 0;
7778 if 1 > max_ordinal {
7779 return Ok(());
7780 }
7781
7782 let cur_offset: usize = (1 - 1) * envelope_size;
7785
7786 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7788
7789 fidl::encoding::encode_in_envelope_optional::<u8, D>(
7794 self.valid_bits_per_sample
7795 .as_ref()
7796 .map(<u8 as fidl::encoding::ValueTypeMarker>::borrow),
7797 encoder,
7798 offset + cur_offset,
7799 depth,
7800 )?;
7801
7802 _prev_end_offset = cur_offset + envelope_size;
7803 if 2 > max_ordinal {
7804 return Ok(());
7805 }
7806
7807 let cur_offset: usize = (2 - 1) * envelope_size;
7810
7811 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7813
7814 fidl::encoding::encode_in_envelope_optional::<i64, D>(
7819 self.turn_on_delay.as_ref().map(<i64 as fidl::encoding::ValueTypeMarker>::borrow),
7820 encoder,
7821 offset + cur_offset,
7822 depth,
7823 )?;
7824
7825 _prev_end_offset = cur_offset + envelope_size;
7826
7827 Ok(())
7828 }
7829 }
7830
7831 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for RingBufferProperties {
7832 #[inline(always)]
7833 fn new_empty() -> Self {
7834 Self::default()
7835 }
7836
7837 unsafe fn decode(
7838 &mut self,
7839 decoder: &mut fidl::encoding::Decoder<'_, D>,
7840 offset: usize,
7841 mut depth: fidl::encoding::Depth,
7842 ) -> fidl::Result<()> {
7843 decoder.debug_check_bounds::<Self>(offset);
7844 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
7845 None => return Err(fidl::Error::NotNullable),
7846 Some(len) => len,
7847 };
7848 if len == 0 {
7850 return Ok(());
7851 };
7852 depth.increment()?;
7853 let envelope_size = 8;
7854 let bytes_len = len * envelope_size;
7855 let offset = decoder.out_of_line_offset(bytes_len)?;
7856 let mut _next_ordinal_to_read = 0;
7858 let mut next_offset = offset;
7859 let end_offset = offset + bytes_len;
7860 _next_ordinal_to_read += 1;
7861 if next_offset >= end_offset {
7862 return Ok(());
7863 }
7864
7865 while _next_ordinal_to_read < 1 {
7867 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7868 _next_ordinal_to_read += 1;
7869 next_offset += envelope_size;
7870 }
7871
7872 let next_out_of_line = decoder.next_out_of_line();
7873 let handles_before = decoder.remaining_handles();
7874 if let Some((inlined, num_bytes, num_handles)) =
7875 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7876 {
7877 let member_inline_size =
7878 <u8 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7879 if inlined != (member_inline_size <= 4) {
7880 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7881 }
7882 let inner_offset;
7883 let mut inner_depth = depth.clone();
7884 if inlined {
7885 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7886 inner_offset = next_offset;
7887 } else {
7888 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7889 inner_depth.increment()?;
7890 }
7891 let val_ref =
7892 self.valid_bits_per_sample.get_or_insert_with(|| fidl::new_empty!(u8, D));
7893 fidl::decode!(u8, D, val_ref, decoder, inner_offset, inner_depth)?;
7894 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7895 {
7896 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7897 }
7898 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7899 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7900 }
7901 }
7902
7903 next_offset += envelope_size;
7904 _next_ordinal_to_read += 1;
7905 if next_offset >= end_offset {
7906 return Ok(());
7907 }
7908
7909 while _next_ordinal_to_read < 2 {
7911 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7912 _next_ordinal_to_read += 1;
7913 next_offset += envelope_size;
7914 }
7915
7916 let next_out_of_line = decoder.next_out_of_line();
7917 let handles_before = decoder.remaining_handles();
7918 if let Some((inlined, num_bytes, num_handles)) =
7919 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7920 {
7921 let member_inline_size =
7922 <i64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7923 if inlined != (member_inline_size <= 4) {
7924 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7925 }
7926 let inner_offset;
7927 let mut inner_depth = depth.clone();
7928 if inlined {
7929 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7930 inner_offset = next_offset;
7931 } else {
7932 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7933 inner_depth.increment()?;
7934 }
7935 let val_ref = self.turn_on_delay.get_or_insert_with(|| fidl::new_empty!(i64, D));
7936 fidl::decode!(i64, D, val_ref, decoder, inner_offset, inner_depth)?;
7937 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7938 {
7939 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7940 }
7941 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7942 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7943 }
7944 }
7945
7946 next_offset += envelope_size;
7947
7948 while next_offset < end_offset {
7950 _next_ordinal_to_read += 1;
7951 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7952 next_offset += envelope_size;
7953 }
7954
7955 Ok(())
7956 }
7957 }
7958
7959 impl RingBufferSetActiveChannelsRequest {
7960 #[inline(always)]
7961 fn max_ordinal_present(&self) -> u64 {
7962 if let Some(_) = self.channel_bitmask {
7963 return 1;
7964 }
7965 0
7966 }
7967 }
7968
7969 impl fidl::encoding::ValueTypeMarker for RingBufferSetActiveChannelsRequest {
7970 type Borrowed<'a> = &'a Self;
7971 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
7972 value
7973 }
7974 }
7975
7976 unsafe impl fidl::encoding::TypeMarker for RingBufferSetActiveChannelsRequest {
7977 type Owned = Self;
7978
7979 #[inline(always)]
7980 fn inline_align(_context: fidl::encoding::Context) -> usize {
7981 8
7982 }
7983
7984 #[inline(always)]
7985 fn inline_size(_context: fidl::encoding::Context) -> usize {
7986 16
7987 }
7988 }
7989
7990 unsafe impl<D: fidl::encoding::ResourceDialect>
7991 fidl::encoding::Encode<RingBufferSetActiveChannelsRequest, D>
7992 for &RingBufferSetActiveChannelsRequest
7993 {
7994 unsafe fn encode(
7995 self,
7996 encoder: &mut fidl::encoding::Encoder<'_, D>,
7997 offset: usize,
7998 mut depth: fidl::encoding::Depth,
7999 ) -> fidl::Result<()> {
8000 encoder.debug_check_bounds::<RingBufferSetActiveChannelsRequest>(offset);
8001 let max_ordinal: u64 = self.max_ordinal_present();
8003 encoder.write_num(max_ordinal, offset);
8004 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
8005 if max_ordinal == 0 {
8007 return Ok(());
8008 }
8009 depth.increment()?;
8010 let envelope_size = 8;
8011 let bytes_len = max_ordinal as usize * envelope_size;
8012 #[allow(unused_variables)]
8013 let offset = encoder.out_of_line_offset(bytes_len);
8014 let mut _prev_end_offset: usize = 0;
8015 if 1 > max_ordinal {
8016 return Ok(());
8017 }
8018
8019 let cur_offset: usize = (1 - 1) * envelope_size;
8022
8023 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8025
8026 fidl::encoding::encode_in_envelope_optional::<u64, D>(
8031 self.channel_bitmask.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
8032 encoder,
8033 offset + cur_offset,
8034 depth,
8035 )?;
8036
8037 _prev_end_offset = cur_offset + envelope_size;
8038
8039 Ok(())
8040 }
8041 }
8042
8043 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
8044 for RingBufferSetActiveChannelsRequest
8045 {
8046 #[inline(always)]
8047 fn new_empty() -> Self {
8048 Self::default()
8049 }
8050
8051 unsafe fn decode(
8052 &mut self,
8053 decoder: &mut fidl::encoding::Decoder<'_, D>,
8054 offset: usize,
8055 mut depth: fidl::encoding::Depth,
8056 ) -> fidl::Result<()> {
8057 decoder.debug_check_bounds::<Self>(offset);
8058 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
8059 None => return Err(fidl::Error::NotNullable),
8060 Some(len) => len,
8061 };
8062 if len == 0 {
8064 return Ok(());
8065 };
8066 depth.increment()?;
8067 let envelope_size = 8;
8068 let bytes_len = len * envelope_size;
8069 let offset = decoder.out_of_line_offset(bytes_len)?;
8070 let mut _next_ordinal_to_read = 0;
8072 let mut next_offset = offset;
8073 let end_offset = offset + bytes_len;
8074 _next_ordinal_to_read += 1;
8075 if next_offset >= end_offset {
8076 return Ok(());
8077 }
8078
8079 while _next_ordinal_to_read < 1 {
8081 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8082 _next_ordinal_to_read += 1;
8083 next_offset += envelope_size;
8084 }
8085
8086 let next_out_of_line = decoder.next_out_of_line();
8087 let handles_before = decoder.remaining_handles();
8088 if let Some((inlined, num_bytes, num_handles)) =
8089 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8090 {
8091 let member_inline_size =
8092 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8093 if inlined != (member_inline_size <= 4) {
8094 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8095 }
8096 let inner_offset;
8097 let mut inner_depth = depth.clone();
8098 if inlined {
8099 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8100 inner_offset = next_offset;
8101 } else {
8102 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8103 inner_depth.increment()?;
8104 }
8105 let val_ref = self.channel_bitmask.get_or_insert_with(|| fidl::new_empty!(u64, D));
8106 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
8107 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8108 {
8109 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8110 }
8111 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8112 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8113 }
8114 }
8115
8116 next_offset += envelope_size;
8117
8118 while next_offset < end_offset {
8120 _next_ordinal_to_read += 1;
8121 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8122 next_offset += envelope_size;
8123 }
8124
8125 Ok(())
8126 }
8127 }
8128
8129 impl RingBufferStartRequest {
8130 #[inline(always)]
8131 fn max_ordinal_present(&self) -> u64 {
8132 0
8133 }
8134 }
8135
8136 impl fidl::encoding::ValueTypeMarker for RingBufferStartRequest {
8137 type Borrowed<'a> = &'a Self;
8138 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
8139 value
8140 }
8141 }
8142
8143 unsafe impl fidl::encoding::TypeMarker for RingBufferStartRequest {
8144 type Owned = Self;
8145
8146 #[inline(always)]
8147 fn inline_align(_context: fidl::encoding::Context) -> usize {
8148 8
8149 }
8150
8151 #[inline(always)]
8152 fn inline_size(_context: fidl::encoding::Context) -> usize {
8153 16
8154 }
8155 }
8156
8157 unsafe impl<D: fidl::encoding::ResourceDialect>
8158 fidl::encoding::Encode<RingBufferStartRequest, D> for &RingBufferStartRequest
8159 {
8160 unsafe fn encode(
8161 self,
8162 encoder: &mut fidl::encoding::Encoder<'_, D>,
8163 offset: usize,
8164 mut depth: fidl::encoding::Depth,
8165 ) -> fidl::Result<()> {
8166 encoder.debug_check_bounds::<RingBufferStartRequest>(offset);
8167 let max_ordinal: u64 = self.max_ordinal_present();
8169 encoder.write_num(max_ordinal, offset);
8170 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
8171 if max_ordinal == 0 {
8173 return Ok(());
8174 }
8175 depth.increment()?;
8176 let envelope_size = 8;
8177 let bytes_len = max_ordinal as usize * envelope_size;
8178 #[allow(unused_variables)]
8179 let offset = encoder.out_of_line_offset(bytes_len);
8180 let mut _prev_end_offset: usize = 0;
8181
8182 Ok(())
8183 }
8184 }
8185
8186 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
8187 for RingBufferStartRequest
8188 {
8189 #[inline(always)]
8190 fn new_empty() -> Self {
8191 Self::default()
8192 }
8193
8194 unsafe fn decode(
8195 &mut self,
8196 decoder: &mut fidl::encoding::Decoder<'_, D>,
8197 offset: usize,
8198 mut depth: fidl::encoding::Depth,
8199 ) -> fidl::Result<()> {
8200 decoder.debug_check_bounds::<Self>(offset);
8201 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
8202 None => return Err(fidl::Error::NotNullable),
8203 Some(len) => len,
8204 };
8205 if len == 0 {
8207 return Ok(());
8208 };
8209 depth.increment()?;
8210 let envelope_size = 8;
8211 let bytes_len = len * envelope_size;
8212 let offset = decoder.out_of_line_offset(bytes_len)?;
8213 let mut _next_ordinal_to_read = 0;
8215 let mut next_offset = offset;
8216 let end_offset = offset + bytes_len;
8217
8218 while next_offset < end_offset {
8220 _next_ordinal_to_read += 1;
8221 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8222 next_offset += envelope_size;
8223 }
8224
8225 Ok(())
8226 }
8227 }
8228
8229 impl RingBufferStopRequest {
8230 #[inline(always)]
8231 fn max_ordinal_present(&self) -> u64 {
8232 0
8233 }
8234 }
8235
8236 impl fidl::encoding::ValueTypeMarker for RingBufferStopRequest {
8237 type Borrowed<'a> = &'a Self;
8238 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
8239 value
8240 }
8241 }
8242
8243 unsafe impl fidl::encoding::TypeMarker for RingBufferStopRequest {
8244 type Owned = Self;
8245
8246 #[inline(always)]
8247 fn inline_align(_context: fidl::encoding::Context) -> usize {
8248 8
8249 }
8250
8251 #[inline(always)]
8252 fn inline_size(_context: fidl::encoding::Context) -> usize {
8253 16
8254 }
8255 }
8256
8257 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<RingBufferStopRequest, D>
8258 for &RingBufferStopRequest
8259 {
8260 unsafe fn encode(
8261 self,
8262 encoder: &mut fidl::encoding::Encoder<'_, D>,
8263 offset: usize,
8264 mut depth: fidl::encoding::Depth,
8265 ) -> fidl::Result<()> {
8266 encoder.debug_check_bounds::<RingBufferStopRequest>(offset);
8267 let max_ordinal: u64 = self.max_ordinal_present();
8269 encoder.write_num(max_ordinal, offset);
8270 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
8271 if max_ordinal == 0 {
8273 return Ok(());
8274 }
8275 depth.increment()?;
8276 let envelope_size = 8;
8277 let bytes_len = max_ordinal as usize * envelope_size;
8278 #[allow(unused_variables)]
8279 let offset = encoder.out_of_line_offset(bytes_len);
8280 let mut _prev_end_offset: usize = 0;
8281
8282 Ok(())
8283 }
8284 }
8285
8286 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for RingBufferStopRequest {
8287 #[inline(always)]
8288 fn new_empty() -> Self {
8289 Self::default()
8290 }
8291
8292 unsafe fn decode(
8293 &mut self,
8294 decoder: &mut fidl::encoding::Decoder<'_, D>,
8295 offset: usize,
8296 mut depth: fidl::encoding::Depth,
8297 ) -> fidl::Result<()> {
8298 decoder.debug_check_bounds::<Self>(offset);
8299 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
8300 None => return Err(fidl::Error::NotNullable),
8301 Some(len) => len,
8302 };
8303 if len == 0 {
8305 return Ok(());
8306 };
8307 depth.increment()?;
8308 let envelope_size = 8;
8309 let bytes_len = len * envelope_size;
8310 let offset = decoder.out_of_line_offset(bytes_len)?;
8311 let mut _next_ordinal_to_read = 0;
8313 let mut next_offset = offset;
8314 let end_offset = offset + bytes_len;
8315
8316 while next_offset < end_offset {
8318 _next_ordinal_to_read += 1;
8319 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8320 next_offset += envelope_size;
8321 }
8322
8323 Ok(())
8324 }
8325 }
8326
8327 impl RingBufferSetActiveChannelsResponse {
8328 #[inline(always)]
8329 fn max_ordinal_present(&self) -> u64 {
8330 if let Some(_) = self.set_time {
8331 return 1;
8332 }
8333 0
8334 }
8335 }
8336
8337 impl fidl::encoding::ValueTypeMarker for RingBufferSetActiveChannelsResponse {
8338 type Borrowed<'a> = &'a Self;
8339 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
8340 value
8341 }
8342 }
8343
8344 unsafe impl fidl::encoding::TypeMarker for RingBufferSetActiveChannelsResponse {
8345 type Owned = Self;
8346
8347 #[inline(always)]
8348 fn inline_align(_context: fidl::encoding::Context) -> usize {
8349 8
8350 }
8351
8352 #[inline(always)]
8353 fn inline_size(_context: fidl::encoding::Context) -> usize {
8354 16
8355 }
8356 }
8357
8358 unsafe impl<D: fidl::encoding::ResourceDialect>
8359 fidl::encoding::Encode<RingBufferSetActiveChannelsResponse, D>
8360 for &RingBufferSetActiveChannelsResponse
8361 {
8362 unsafe fn encode(
8363 self,
8364 encoder: &mut fidl::encoding::Encoder<'_, D>,
8365 offset: usize,
8366 mut depth: fidl::encoding::Depth,
8367 ) -> fidl::Result<()> {
8368 encoder.debug_check_bounds::<RingBufferSetActiveChannelsResponse>(offset);
8369 let max_ordinal: u64 = self.max_ordinal_present();
8371 encoder.write_num(max_ordinal, offset);
8372 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
8373 if max_ordinal == 0 {
8375 return Ok(());
8376 }
8377 depth.increment()?;
8378 let envelope_size = 8;
8379 let bytes_len = max_ordinal as usize * envelope_size;
8380 #[allow(unused_variables)]
8381 let offset = encoder.out_of_line_offset(bytes_len);
8382 let mut _prev_end_offset: usize = 0;
8383 if 1 > max_ordinal {
8384 return Ok(());
8385 }
8386
8387 let cur_offset: usize = (1 - 1) * envelope_size;
8390
8391 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8393
8394 fidl::encoding::encode_in_envelope_optional::<i64, D>(
8399 self.set_time.as_ref().map(<i64 as fidl::encoding::ValueTypeMarker>::borrow),
8400 encoder,
8401 offset + cur_offset,
8402 depth,
8403 )?;
8404
8405 _prev_end_offset = cur_offset + envelope_size;
8406
8407 Ok(())
8408 }
8409 }
8410
8411 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
8412 for RingBufferSetActiveChannelsResponse
8413 {
8414 #[inline(always)]
8415 fn new_empty() -> Self {
8416 Self::default()
8417 }
8418
8419 unsafe fn decode(
8420 &mut self,
8421 decoder: &mut fidl::encoding::Decoder<'_, D>,
8422 offset: usize,
8423 mut depth: fidl::encoding::Depth,
8424 ) -> fidl::Result<()> {
8425 decoder.debug_check_bounds::<Self>(offset);
8426 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
8427 None => return Err(fidl::Error::NotNullable),
8428 Some(len) => len,
8429 };
8430 if len == 0 {
8432 return Ok(());
8433 };
8434 depth.increment()?;
8435 let envelope_size = 8;
8436 let bytes_len = len * envelope_size;
8437 let offset = decoder.out_of_line_offset(bytes_len)?;
8438 let mut _next_ordinal_to_read = 0;
8440 let mut next_offset = offset;
8441 let end_offset = offset + bytes_len;
8442 _next_ordinal_to_read += 1;
8443 if next_offset >= end_offset {
8444 return Ok(());
8445 }
8446
8447 while _next_ordinal_to_read < 1 {
8449 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8450 _next_ordinal_to_read += 1;
8451 next_offset += envelope_size;
8452 }
8453
8454 let next_out_of_line = decoder.next_out_of_line();
8455 let handles_before = decoder.remaining_handles();
8456 if let Some((inlined, num_bytes, num_handles)) =
8457 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8458 {
8459 let member_inline_size =
8460 <i64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8461 if inlined != (member_inline_size <= 4) {
8462 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8463 }
8464 let inner_offset;
8465 let mut inner_depth = depth.clone();
8466 if inlined {
8467 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8468 inner_offset = next_offset;
8469 } else {
8470 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8471 inner_depth.increment()?;
8472 }
8473 let val_ref = self.set_time.get_or_insert_with(|| fidl::new_empty!(i64, D));
8474 fidl::decode!(i64, D, val_ref, decoder, inner_offset, inner_depth)?;
8475 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8476 {
8477 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8478 }
8479 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8480 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8481 }
8482 }
8483
8484 next_offset += envelope_size;
8485
8486 while next_offset < end_offset {
8488 _next_ordinal_to_read += 1;
8489 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8490 next_offset += envelope_size;
8491 }
8492
8493 Ok(())
8494 }
8495 }
8496
8497 impl RingBufferStartResponse {
8498 #[inline(always)]
8499 fn max_ordinal_present(&self) -> u64 {
8500 if let Some(_) = self.start_time {
8501 return 1;
8502 }
8503 0
8504 }
8505 }
8506
8507 impl fidl::encoding::ValueTypeMarker for RingBufferStartResponse {
8508 type Borrowed<'a> = &'a Self;
8509 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
8510 value
8511 }
8512 }
8513
8514 unsafe impl fidl::encoding::TypeMarker for RingBufferStartResponse {
8515 type Owned = Self;
8516
8517 #[inline(always)]
8518 fn inline_align(_context: fidl::encoding::Context) -> usize {
8519 8
8520 }
8521
8522 #[inline(always)]
8523 fn inline_size(_context: fidl::encoding::Context) -> usize {
8524 16
8525 }
8526 }
8527
8528 unsafe impl<D: fidl::encoding::ResourceDialect>
8529 fidl::encoding::Encode<RingBufferStartResponse, D> for &RingBufferStartResponse
8530 {
8531 unsafe fn encode(
8532 self,
8533 encoder: &mut fidl::encoding::Encoder<'_, D>,
8534 offset: usize,
8535 mut depth: fidl::encoding::Depth,
8536 ) -> fidl::Result<()> {
8537 encoder.debug_check_bounds::<RingBufferStartResponse>(offset);
8538 let max_ordinal: u64 = self.max_ordinal_present();
8540 encoder.write_num(max_ordinal, offset);
8541 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
8542 if max_ordinal == 0 {
8544 return Ok(());
8545 }
8546 depth.increment()?;
8547 let envelope_size = 8;
8548 let bytes_len = max_ordinal as usize * envelope_size;
8549 #[allow(unused_variables)]
8550 let offset = encoder.out_of_line_offset(bytes_len);
8551 let mut _prev_end_offset: usize = 0;
8552 if 1 > max_ordinal {
8553 return Ok(());
8554 }
8555
8556 let cur_offset: usize = (1 - 1) * envelope_size;
8559
8560 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8562
8563 fidl::encoding::encode_in_envelope_optional::<i64, D>(
8568 self.start_time.as_ref().map(<i64 as fidl::encoding::ValueTypeMarker>::borrow),
8569 encoder,
8570 offset + cur_offset,
8571 depth,
8572 )?;
8573
8574 _prev_end_offset = cur_offset + envelope_size;
8575
8576 Ok(())
8577 }
8578 }
8579
8580 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
8581 for RingBufferStartResponse
8582 {
8583 #[inline(always)]
8584 fn new_empty() -> Self {
8585 Self::default()
8586 }
8587
8588 unsafe fn decode(
8589 &mut self,
8590 decoder: &mut fidl::encoding::Decoder<'_, D>,
8591 offset: usize,
8592 mut depth: fidl::encoding::Depth,
8593 ) -> fidl::Result<()> {
8594 decoder.debug_check_bounds::<Self>(offset);
8595 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
8596 None => return Err(fidl::Error::NotNullable),
8597 Some(len) => len,
8598 };
8599 if len == 0 {
8601 return Ok(());
8602 };
8603 depth.increment()?;
8604 let envelope_size = 8;
8605 let bytes_len = len * envelope_size;
8606 let offset = decoder.out_of_line_offset(bytes_len)?;
8607 let mut _next_ordinal_to_read = 0;
8609 let mut next_offset = offset;
8610 let end_offset = offset + bytes_len;
8611 _next_ordinal_to_read += 1;
8612 if next_offset >= end_offset {
8613 return Ok(());
8614 }
8615
8616 while _next_ordinal_to_read < 1 {
8618 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8619 _next_ordinal_to_read += 1;
8620 next_offset += envelope_size;
8621 }
8622
8623 let next_out_of_line = decoder.next_out_of_line();
8624 let handles_before = decoder.remaining_handles();
8625 if let Some((inlined, num_bytes, num_handles)) =
8626 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8627 {
8628 let member_inline_size =
8629 <i64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8630 if inlined != (member_inline_size <= 4) {
8631 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8632 }
8633 let inner_offset;
8634 let mut inner_depth = depth.clone();
8635 if inlined {
8636 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8637 inner_offset = next_offset;
8638 } else {
8639 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8640 inner_depth.increment()?;
8641 }
8642 let val_ref = self.start_time.get_or_insert_with(|| fidl::new_empty!(i64, D));
8643 fidl::decode!(i64, D, val_ref, decoder, inner_offset, inner_depth)?;
8644 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8645 {
8646 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8647 }
8648 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8649 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8650 }
8651 }
8652
8653 next_offset += envelope_size;
8654
8655 while next_offset < end_offset {
8657 _next_ordinal_to_read += 1;
8658 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8659 next_offset += envelope_size;
8660 }
8661
8662 Ok(())
8663 }
8664 }
8665
8666 impl RingBufferStopResponse {
8667 #[inline(always)]
8668 fn max_ordinal_present(&self) -> u64 {
8669 0
8670 }
8671 }
8672
8673 impl fidl::encoding::ValueTypeMarker for RingBufferStopResponse {
8674 type Borrowed<'a> = &'a Self;
8675 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
8676 value
8677 }
8678 }
8679
8680 unsafe impl fidl::encoding::TypeMarker for RingBufferStopResponse {
8681 type Owned = Self;
8682
8683 #[inline(always)]
8684 fn inline_align(_context: fidl::encoding::Context) -> usize {
8685 8
8686 }
8687
8688 #[inline(always)]
8689 fn inline_size(_context: fidl::encoding::Context) -> usize {
8690 16
8691 }
8692 }
8693
8694 unsafe impl<D: fidl::encoding::ResourceDialect>
8695 fidl::encoding::Encode<RingBufferStopResponse, D> for &RingBufferStopResponse
8696 {
8697 unsafe fn encode(
8698 self,
8699 encoder: &mut fidl::encoding::Encoder<'_, D>,
8700 offset: usize,
8701 mut depth: fidl::encoding::Depth,
8702 ) -> fidl::Result<()> {
8703 encoder.debug_check_bounds::<RingBufferStopResponse>(offset);
8704 let max_ordinal: u64 = self.max_ordinal_present();
8706 encoder.write_num(max_ordinal, offset);
8707 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
8708 if max_ordinal == 0 {
8710 return Ok(());
8711 }
8712 depth.increment()?;
8713 let envelope_size = 8;
8714 let bytes_len = max_ordinal as usize * envelope_size;
8715 #[allow(unused_variables)]
8716 let offset = encoder.out_of_line_offset(bytes_len);
8717 let mut _prev_end_offset: usize = 0;
8718
8719 Ok(())
8720 }
8721 }
8722
8723 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
8724 for RingBufferStopResponse
8725 {
8726 #[inline(always)]
8727 fn new_empty() -> Self {
8728 Self::default()
8729 }
8730
8731 unsafe fn decode(
8732 &mut self,
8733 decoder: &mut fidl::encoding::Decoder<'_, D>,
8734 offset: usize,
8735 mut depth: fidl::encoding::Depth,
8736 ) -> fidl::Result<()> {
8737 decoder.debug_check_bounds::<Self>(offset);
8738 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
8739 None => return Err(fidl::Error::NotNullable),
8740 Some(len) => len,
8741 };
8742 if len == 0 {
8744 return Ok(());
8745 };
8746 depth.increment()?;
8747 let envelope_size = 8;
8748 let bytes_len = len * envelope_size;
8749 let offset = decoder.out_of_line_offset(bytes_len)?;
8750 let mut _next_ordinal_to_read = 0;
8752 let mut next_offset = offset;
8753 let end_offset = offset + bytes_len;
8754
8755 while next_offset < end_offset {
8757 _next_ordinal_to_read += 1;
8758 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8759 next_offset += envelope_size;
8760 }
8761
8762 Ok(())
8763 }
8764 }
8765
8766 impl RingBufferWatchDelayInfoResponse {
8767 #[inline(always)]
8768 fn max_ordinal_present(&self) -> u64 {
8769 if let Some(_) = self.delay_info {
8770 return 1;
8771 }
8772 0
8773 }
8774 }
8775
8776 impl fidl::encoding::ValueTypeMarker for RingBufferWatchDelayInfoResponse {
8777 type Borrowed<'a> = &'a Self;
8778 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
8779 value
8780 }
8781 }
8782
8783 unsafe impl fidl::encoding::TypeMarker for RingBufferWatchDelayInfoResponse {
8784 type Owned = Self;
8785
8786 #[inline(always)]
8787 fn inline_align(_context: fidl::encoding::Context) -> usize {
8788 8
8789 }
8790
8791 #[inline(always)]
8792 fn inline_size(_context: fidl::encoding::Context) -> usize {
8793 16
8794 }
8795 }
8796
8797 unsafe impl<D: fidl::encoding::ResourceDialect>
8798 fidl::encoding::Encode<RingBufferWatchDelayInfoResponse, D>
8799 for &RingBufferWatchDelayInfoResponse
8800 {
8801 unsafe fn encode(
8802 self,
8803 encoder: &mut fidl::encoding::Encoder<'_, D>,
8804 offset: usize,
8805 mut depth: fidl::encoding::Depth,
8806 ) -> fidl::Result<()> {
8807 encoder.debug_check_bounds::<RingBufferWatchDelayInfoResponse>(offset);
8808 let max_ordinal: u64 = self.max_ordinal_present();
8810 encoder.write_num(max_ordinal, offset);
8811 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
8812 if max_ordinal == 0 {
8814 return Ok(());
8815 }
8816 depth.increment()?;
8817 let envelope_size = 8;
8818 let bytes_len = max_ordinal as usize * envelope_size;
8819 #[allow(unused_variables)]
8820 let offset = encoder.out_of_line_offset(bytes_len);
8821 let mut _prev_end_offset: usize = 0;
8822 if 1 > max_ordinal {
8823 return Ok(());
8824 }
8825
8826 let cur_offset: usize = (1 - 1) * envelope_size;
8829
8830 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8832
8833 fidl::encoding::encode_in_envelope_optional::<DelayInfo, D>(
8838 self.delay_info
8839 .as_ref()
8840 .map(<DelayInfo as fidl::encoding::ValueTypeMarker>::borrow),
8841 encoder,
8842 offset + cur_offset,
8843 depth,
8844 )?;
8845
8846 _prev_end_offset = cur_offset + envelope_size;
8847
8848 Ok(())
8849 }
8850 }
8851
8852 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
8853 for RingBufferWatchDelayInfoResponse
8854 {
8855 #[inline(always)]
8856 fn new_empty() -> Self {
8857 Self::default()
8858 }
8859
8860 unsafe fn decode(
8861 &mut self,
8862 decoder: &mut fidl::encoding::Decoder<'_, D>,
8863 offset: usize,
8864 mut depth: fidl::encoding::Depth,
8865 ) -> fidl::Result<()> {
8866 decoder.debug_check_bounds::<Self>(offset);
8867 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
8868 None => return Err(fidl::Error::NotNullable),
8869 Some(len) => len,
8870 };
8871 if len == 0 {
8873 return Ok(());
8874 };
8875 depth.increment()?;
8876 let envelope_size = 8;
8877 let bytes_len = len * envelope_size;
8878 let offset = decoder.out_of_line_offset(bytes_len)?;
8879 let mut _next_ordinal_to_read = 0;
8881 let mut next_offset = offset;
8882 let end_offset = offset + bytes_len;
8883 _next_ordinal_to_read += 1;
8884 if next_offset >= end_offset {
8885 return Ok(());
8886 }
8887
8888 while _next_ordinal_to_read < 1 {
8890 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8891 _next_ordinal_to_read += 1;
8892 next_offset += envelope_size;
8893 }
8894
8895 let next_out_of_line = decoder.next_out_of_line();
8896 let handles_before = decoder.remaining_handles();
8897 if let Some((inlined, num_bytes, num_handles)) =
8898 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8899 {
8900 let member_inline_size =
8901 <DelayInfo as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8902 if inlined != (member_inline_size <= 4) {
8903 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8904 }
8905 let inner_offset;
8906 let mut inner_depth = depth.clone();
8907 if inlined {
8908 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8909 inner_offset = next_offset;
8910 } else {
8911 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8912 inner_depth.increment()?;
8913 }
8914 let val_ref = self.delay_info.get_or_insert_with(|| fidl::new_empty!(DelayInfo, D));
8915 fidl::decode!(DelayInfo, D, val_ref, decoder, inner_offset, inner_depth)?;
8916 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8917 {
8918 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8919 }
8920 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8921 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8922 }
8923 }
8924
8925 next_offset += envelope_size;
8926
8927 while next_offset < end_offset {
8929 _next_ordinal_to_read += 1;
8930 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8931 next_offset += envelope_size;
8932 }
8933
8934 Ok(())
8935 }
8936 }
8937}