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;
12
13pub type ElementId = u64;
14
15pub type TopologyId = u64;
16
17pub type UniqueId = [u8; 16];
24
25pub type VmoId = u64;
26
27pub const CLOCK_DOMAIN_EXTERNAL: u32 = 4294967295;
28
29pub const CLOCK_DOMAIN_MONOTONIC: u32 = 0;
30
31pub const MAX_COUNT_CHANNELS_IN_RING_BUFFER: u32 = 64;
32
33pub const MAX_COUNT_CHANNEL_SETS: u32 = 64;
34
35pub const MAX_COUNT_DAI_FORMATS: u32 = MAX_COUNT_FORMATS as u32;
36
37pub const MAX_COUNT_DAI_SUPPORTED_BITS_PER_SAMPLE: u32 = 8;
38
39pub const MAX_COUNT_DAI_SUPPORTED_BITS_PER_SLOT: u32 = 8;
40
41pub const MAX_COUNT_DAI_SUPPORTED_FRAME_FORMATS: u32 = 64;
42
43pub const MAX_COUNT_DAI_SUPPORTED_NUMBER_OF_CHANNELS: u32 = 64;
44
45pub const MAX_COUNT_DAI_SUPPORTED_RATES: u32 = 64;
46
47pub const MAX_COUNT_DAI_SUPPORTED_SAMPLE_FORMATS: u32 = 4;
48
49pub const MAX_COUNT_ENCODED_CHANNEL_SETS: u32 = 64;
50
51pub const MAX_COUNT_ENCODED_SUPPORTED_RATES: u32 = 64;
52
53pub const MAX_COUNT_ENCODED_TYPES: u32 = 64;
54
55pub const MAX_COUNT_FORMATS: u32 = 64;
56
57pub const MAX_COUNT_SUPPORTED_BYTES_PER_SAMPLE: u32 = 8;
58
59pub const MAX_COUNT_SUPPORTED_NUMBER_OF_CHANNELS: u32 = 64;
60
61pub const MAX_COUNT_SUPPORTED_RATES: u32 = 64;
62
63pub const MAX_COUNT_SUPPORTED_SAMPLE_FORMATS: u32 = 3;
64
65pub const MAX_COUNT_SUPPORTED_VALID_BITS_PER_SAMPLE: u32 = 8;
66
67pub const MAX_DAI_UI_STRING_SIZE: u32 = 256;
68
69pub const MAX_INLINE_TRANSFER_SIZE: u64 = 8192;
70
71pub const MAX_UI_STRING_SIZE: u32 = 256;
72
73pub const UNIQUE_ID_SIZE: u32 = 16;
74
75pub const VMO_VECTOR_MAX: u32 = 256;
77
78bitflags! {
79 #[derive(Clone, Copy, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Hash)]
82 pub struct BufferType: u64 {
83 const CLIENT_OWNED = 1;
85 const DRIVER_OWNED = 2;
87 const INLINE = 4;
91 }
92}
93
94impl BufferType {
95 #[inline(always)]
96 pub fn from_bits_allow_unknown(bits: u64) -> Self {
97 Self::from_bits_retain(bits)
98 }
99
100 #[inline(always)]
101 pub fn has_unknown_bits(&self) -> bool {
102 self.get_unknown_bits() != 0
103 }
104
105 #[inline(always)]
106 pub fn get_unknown_bits(&self) -> u64 {
107 self.bits() & !Self::all().bits()
108 }
109}
110
111#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
113#[repr(u8)]
114pub enum DaiFrameFormatStandard {
115 None = 1,
117 I2S = 2,
121 StereoLeft = 3,
125 StereoRight = 4,
128 Tdm1 = 5,
132 Tdm2 = 6,
136 Tdm3 = 7,
140}
141
142impl DaiFrameFormatStandard {
143 #[inline]
144 pub fn from_primitive(prim: u8) -> Option<Self> {
145 match prim {
146 1 => Some(Self::None),
147 2 => Some(Self::I2S),
148 3 => Some(Self::StereoLeft),
149 4 => Some(Self::StereoRight),
150 5 => Some(Self::Tdm1),
151 6 => Some(Self::Tdm2),
152 7 => Some(Self::Tdm3),
153 _ => None,
154 }
155 }
156
157 #[inline]
158 pub const fn into_primitive(self) -> u8 {
159 self as u8
160 }
161}
162
163#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
164#[repr(u8)]
165pub enum DaiSampleFormat {
166 Pdm = 1,
168 PcmSigned = 2,
170 PcmUnsigned = 3,
172 PcmFloat = 4,
174}
175
176impl DaiSampleFormat {
177 #[inline]
178 pub fn from_primitive(prim: u8) -> Option<Self> {
179 match prim {
180 1 => Some(Self::Pdm),
181 2 => Some(Self::PcmSigned),
182 3 => Some(Self::PcmUnsigned),
183 4 => Some(Self::PcmFloat),
184 _ => None,
185 }
186 }
187
188 #[inline]
189 pub const fn into_primitive(self) -> u8 {
190 self as u8
191 }
192}
193
194#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
195pub enum DeviceType {
196 StreamConfig,
198 Dai,
200 Codec,
202 Composite,
204 #[doc(hidden)]
205 __SourceBreaking { unknown_ordinal: u32 },
206}
207
208#[macro_export]
210macro_rules! DeviceTypeUnknown {
211 () => {
212 _
213 };
214}
215
216impl DeviceType {
217 #[inline]
218 pub fn from_primitive(prim: u32) -> Option<Self> {
219 match prim {
220 1 => Some(Self::StreamConfig),
221 2 => Some(Self::Dai),
222 3 => Some(Self::Codec),
223 4 => Some(Self::Composite),
224 _ => None,
225 }
226 }
227
228 #[inline]
229 pub fn from_primitive_allow_unknown(prim: u32) -> Self {
230 match prim {
231 1 => Self::StreamConfig,
232 2 => Self::Dai,
233 3 => Self::Codec,
234 4 => Self::Composite,
235 unknown_ordinal => Self::__SourceBreaking { unknown_ordinal },
236 }
237 }
238
239 #[inline]
240 pub fn unknown() -> Self {
241 Self::__SourceBreaking { unknown_ordinal: 0xffffffff }
242 }
243
244 #[inline]
245 pub const fn into_primitive(self) -> u32 {
246 match self {
247 Self::StreamConfig => 1,
248 Self::Dai => 2,
249 Self::Codec => 3,
250 Self::Composite => 4,
251 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
252 }
253 }
254
255 #[inline]
256 pub fn is_unknown(&self) -> bool {
257 match self {
258 Self::__SourceBreaking { unknown_ordinal: _ } => true,
259 _ => false,
260 }
261 }
262}
263
264#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
265pub enum DriverError {
266 InternalError,
268 NotSupported,
270 InvalidArgs,
272 WrongType,
274 ShouldWait,
277 FatalError,
280 #[doc(hidden)]
281 __SourceBreaking { unknown_ordinal: u32 },
282}
283
284#[macro_export]
286macro_rules! DriverErrorUnknown {
287 () => {
288 _
289 };
290}
291
292impl DriverError {
293 #[inline]
294 pub fn from_primitive(prim: u32) -> Option<Self> {
295 match prim {
296 1 => Some(Self::InternalError),
297 2 => Some(Self::NotSupported),
298 3 => Some(Self::InvalidArgs),
299 4 => Some(Self::WrongType),
300 5 => Some(Self::ShouldWait),
301 6 => Some(Self::FatalError),
302 _ => None,
303 }
304 }
305
306 #[inline]
307 pub fn from_primitive_allow_unknown(prim: u32) -> Self {
308 match prim {
309 1 => Self::InternalError,
310 2 => Self::NotSupported,
311 3 => Self::InvalidArgs,
312 4 => Self::WrongType,
313 5 => Self::ShouldWait,
314 6 => Self::FatalError,
315 unknown_ordinal => Self::__SourceBreaking { unknown_ordinal },
316 }
317 }
318
319 #[inline]
320 pub fn unknown() -> Self {
321 Self::__SourceBreaking { unknown_ordinal: 0xffffffff }
322 }
323
324 #[inline]
325 pub const fn into_primitive(self) -> u32 {
326 match self {
327 Self::InternalError => 1,
328 Self::NotSupported => 2,
329 Self::InvalidArgs => 3,
330 Self::WrongType => 4,
331 Self::ShouldWait => 5,
332 Self::FatalError => 6,
333 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
334 }
335 }
336
337 #[inline]
338 pub fn is_unknown(&self) -> bool {
339 match self {
340 Self::__SourceBreaking { unknown_ordinal: _ } => true,
341 _ => false,
342 }
343 }
344}
345
346#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
348pub enum EncodingType {
349 Aac,
350 Sbc,
351 #[doc(hidden)]
352 __SourceBreaking {
353 unknown_ordinal: u32,
354 },
355}
356
357#[macro_export]
359macro_rules! EncodingTypeUnknown {
360 () => {
361 _
362 };
363}
364
365impl EncodingType {
366 #[inline]
367 pub fn from_primitive(prim: u32) -> Option<Self> {
368 match prim {
369 1 => Some(Self::Aac),
370 2 => Some(Self::Sbc),
371 _ => None,
372 }
373 }
374
375 #[inline]
376 pub fn from_primitive_allow_unknown(prim: u32) -> Self {
377 match prim {
378 1 => Self::Aac,
379 2 => Self::Sbc,
380 unknown_ordinal => Self::__SourceBreaking { unknown_ordinal },
381 }
382 }
383
384 #[inline]
385 pub fn unknown() -> Self {
386 Self::__SourceBreaking { unknown_ordinal: 0xffffffff }
387 }
388
389 #[inline]
390 pub const fn into_primitive(self) -> u32 {
391 match self {
392 Self::Aac => 1,
393 Self::Sbc => 2,
394 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
395 }
396 }
397
398 #[inline]
399 pub fn is_unknown(&self) -> bool {
400 match self {
401 Self::__SourceBreaking { unknown_ordinal: _ } => true,
402 _ => false,
403 }
404 }
405}
406
407#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
408#[repr(u32)]
409pub enum GetVmoError {
410 InvalidArgs = 1,
412 InternalError = 2,
414}
415
416impl GetVmoError {
417 #[inline]
418 pub fn from_primitive(prim: u32) -> Option<Self> {
419 match prim {
420 1 => Some(Self::InvalidArgs),
421 2 => Some(Self::InternalError),
422 _ => None,
423 }
424 }
425
426 #[inline]
427 pub const fn into_primitive(self) -> u32 {
428 self as u32
429 }
430}
431
432#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
433#[repr(u32)]
434pub enum PlugDetectCapabilities {
435 Hardwired = 0,
437 CanAsyncNotify = 1,
439}
440
441impl PlugDetectCapabilities {
442 #[inline]
443 pub fn from_primitive(prim: u32) -> Option<Self> {
444 match prim {
445 0 => Some(Self::Hardwired),
446 1 => Some(Self::CanAsyncNotify),
447 _ => None,
448 }
449 }
450
451 #[inline]
452 pub const fn into_primitive(self) -> u32 {
453 self as u32
454 }
455}
456
457#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
458#[repr(u8)]
459pub enum SampleFormat {
460 PcmSigned = 1,
462 PcmUnsigned = 2,
464 PcmFloat = 3,
466}
467
468impl SampleFormat {
469 #[inline]
470 pub fn from_primitive(prim: u8) -> Option<Self> {
471 match prim {
472 1 => Some(Self::PcmSigned),
473 2 => Some(Self::PcmUnsigned),
474 3 => Some(Self::PcmFloat),
475 _ => None,
476 }
477 }
478
479 #[inline]
480 pub const fn into_primitive(self) -> u8 {
481 self as u8
482 }
483}
484
485#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
488pub enum SingularUniqueId {
489 Dsp,
490 BuiltinSpeaker,
491 BuiltinHeadphoneJack,
492 BuiltinMicrophone,
493 BuiltinHeadsetJack,
494 #[doc(hidden)]
495 __SourceBreaking {
496 unknown_ordinal: u8,
497 },
498}
499
500#[macro_export]
502macro_rules! SingularUniqueIdUnknown {
503 () => {
504 _
505 };
506}
507
508impl SingularUniqueId {
509 #[inline]
510 pub fn from_primitive(prim: u8) -> Option<Self> {
511 match prim {
512 0 => Some(Self::Dsp),
513 1 => Some(Self::BuiltinSpeaker),
514 2 => Some(Self::BuiltinHeadphoneJack),
515 3 => Some(Self::BuiltinMicrophone),
516 4 => Some(Self::BuiltinHeadsetJack),
517 _ => None,
518 }
519 }
520
521 #[inline]
522 pub fn from_primitive_allow_unknown(prim: u8) -> Self {
523 match prim {
524 0 => Self::Dsp,
525 1 => Self::BuiltinSpeaker,
526 2 => Self::BuiltinHeadphoneJack,
527 3 => Self::BuiltinMicrophone,
528 4 => Self::BuiltinHeadsetJack,
529 unknown_ordinal => Self::__SourceBreaking { unknown_ordinal },
530 }
531 }
532
533 #[inline]
534 pub fn unknown() -> Self {
535 Self::__SourceBreaking { unknown_ordinal: 0xff }
536 }
537
538 #[inline]
539 pub const fn into_primitive(self) -> u8 {
540 match self {
541 Self::Dsp => 0,
542 Self::BuiltinSpeaker => 1,
543 Self::BuiltinHeadphoneJack => 2,
544 Self::BuiltinMicrophone => 3,
545 Self::BuiltinHeadsetJack => 4,
546 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
547 }
548 }
549
550 #[inline]
551 pub fn is_unknown(&self) -> bool {
552 match self {
553 Self::__SourceBreaking { unknown_ordinal: _ } => true,
554 _ => false,
555 }
556 }
557}
558
559#[derive(Clone, Debug, PartialEq)]
560pub struct CodecGetPropertiesResponse {
561 pub properties: CodecProperties,
562}
563
564impl fidl::Persistable for CodecGetPropertiesResponse {}
565
566#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
567pub struct CodecSetDaiFormatRequest {
568 pub format: DaiFormat,
569}
570
571impl fidl::Persistable for CodecSetDaiFormatRequest {}
572
573#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
574#[repr(C)]
575pub struct CodecStartResponse {
576 pub start_time: i64,
577}
578
579impl fidl::Persistable for CodecStartResponse {}
580
581#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
582#[repr(C)]
583pub struct CodecStopResponse {
584 pub stop_time: i64,
585}
586
587impl fidl::Persistable for CodecStopResponse {}
588
589#[derive(Clone, Debug, PartialEq)]
590pub struct CodecWatchPlugStateResponse {
591 pub plug_state: PlugState,
592}
593
594impl fidl::Persistable for CodecWatchPlugStateResponse {}
595
596#[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
597pub struct CodecGetDaiFormatsResponse {
598 pub formats: Vec<DaiSupportedFormats>,
599}
600
601impl fidl::Persistable for CodecGetDaiFormatsResponse {}
602
603#[derive(Clone, Debug, PartialEq)]
604pub struct CodecSetDaiFormatResponse {
605 pub state: CodecFormatInfo,
606}
607
608impl fidl::Persistable for CodecSetDaiFormatResponse {}
609
610#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
611#[repr(C)]
612pub struct CompositeGetDaiFormatsRequest {
613 pub processing_element_id: u64,
614}
615
616impl fidl::Persistable for CompositeGetDaiFormatsRequest {}
617
618#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
619#[repr(C)]
620pub struct CompositeGetPacketStreamFormatsRequest {
621 pub processing_element_id: u64,
622}
623
624impl fidl::Persistable for CompositeGetPacketStreamFormatsRequest {}
625
626#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
627#[repr(C)]
628pub struct CompositeGetRingBufferFormatsRequest {
629 pub processing_element_id: u64,
630}
631
632impl fidl::Persistable for CompositeGetRingBufferFormatsRequest {}
633
634#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
635pub struct CompositeSetDaiFormatRequest {
636 pub processing_element_id: u64,
637 pub format: DaiFormat,
638}
639
640impl fidl::Persistable for CompositeSetDaiFormatRequest {}
641
642#[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
643pub struct CompositeGetDaiFormatsResponse {
644 pub dai_formats: Vec<DaiSupportedFormats>,
645}
646
647impl fidl::Persistable for CompositeGetDaiFormatsResponse {}
648
649#[derive(Clone, Debug, PartialEq)]
650pub struct CompositeGetPacketStreamFormatsResponse {
651 pub packet_stream_formats: Vec<SupportedFormats2>,
652}
653
654impl fidl::Persistable for CompositeGetPacketStreamFormatsResponse {}
655
656#[derive(Clone, Debug, PartialEq)]
657pub struct CompositeGetPropertiesResponse {
658 pub properties: CompositeProperties,
659}
660
661impl fidl::Persistable for CompositeGetPropertiesResponse {}
662
663#[derive(Clone, Debug, PartialEq)]
664pub struct CompositeGetRingBufferFormatsResponse {
665 pub ring_buffer_formats: Vec<SupportedFormats2>,
666}
667
668impl fidl::Persistable for CompositeGetRingBufferFormatsResponse {}
669
670#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
674pub struct DaiFormat {
675 pub number_of_channels: u32,
678 pub channels_to_use_bitmask: u64,
682 pub sample_format: DaiSampleFormat,
684 pub frame_format: DaiFrameFormat,
686 pub frame_rate: u32,
688 pub bits_per_slot: u8,
690 pub bits_per_sample: u8,
693}
694
695impl fidl::Persistable for DaiFormat {}
696
697#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
699pub struct DaiFrameFormatCustom {
700 pub left_justified: bool,
702 pub sclk_on_raising: bool,
707 pub frame_sync_sclks_offset: i8,
710 pub frame_sync_size: u8,
713}
714
715impl fidl::Persistable for DaiFrameFormatCustom {}
716
717#[derive(Clone, Debug, PartialEq)]
718pub struct DaiGetPropertiesResponse {
719 pub properties: DaiProperties,
720}
721
722impl fidl::Persistable for DaiGetPropertiesResponse {}
723
724#[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
732pub struct DaiSupportedFormats {
733 pub number_of_channels: Vec<u32>,
735 pub sample_formats: Vec<DaiSampleFormat>,
737 pub frame_formats: Vec<DaiFrameFormat>,
739 pub frame_rates: Vec<u32>,
741 pub bits_per_slot: Vec<u8>,
743 pub bits_per_sample: Vec<u8>,
745}
746
747impl fidl::Persistable for DaiSupportedFormats {}
748
749#[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
750pub struct DaiGetDaiFormatsResponse {
751 pub dai_formats: Vec<DaiSupportedFormats>,
752}
753
754impl fidl::Persistable for DaiGetDaiFormatsResponse {}
755
756#[derive(Clone, Debug, PartialEq)]
757pub struct DaiGetRingBufferFormatsResponse {
758 pub ring_buffer_formats: Vec<SupportedFormats>,
759}
760
761impl fidl::Persistable for DaiGetRingBufferFormatsResponse {}
762
763#[derive(Clone, Debug, PartialEq)]
764pub struct HealthGetHealthStateResponse {
765 pub state: HealthState,
766}
767
768impl fidl::Persistable for HealthGetHealthStateResponse {}
769
770#[derive(Clone, Debug, PartialEq)]
771pub struct PacketStreamControlGetPropertiesResponse {
772 pub properties: PacketStreamProperties,
773}
774
775impl fidl::Persistable for PacketStreamControlGetPropertiesResponse {}
776
777#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
783pub struct PcmFormat {
784 pub number_of_channels: u8,
786 pub sample_format: SampleFormat,
788 pub bytes_per_sample: u8,
791 pub valid_bits_per_sample: u8,
796 pub frame_rate: u32,
798}
799
800impl fidl::Persistable for PcmFormat {}
801
802#[derive(Clone, Debug, PartialEq)]
803pub struct RingBufferGetPropertiesResponse {
804 pub properties: RingBufferProperties,
805}
806
807impl fidl::Persistable for RingBufferGetPropertiesResponse {}
808
809#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
810#[repr(C)]
811pub struct RingBufferGetVmoRequest {
812 pub min_frames: u32,
813 pub clock_recovery_notifications_per_ring: u32,
814}
815
816impl fidl::Persistable for RingBufferGetVmoRequest {}
817
818#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
819#[repr(C)]
820pub struct RingBufferPositionInfo {
821 pub timestamp: i64,
827 pub position: u32,
830}
831
832impl fidl::Persistable for RingBufferPositionInfo {}
833
834#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
835#[repr(C)]
836pub struct RingBufferSetActiveChannelsRequest {
837 pub active_channels_bitmask: u64,
838}
839
840impl fidl::Persistable for RingBufferSetActiveChannelsRequest {}
841
842#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
843#[repr(C)]
844pub struct RingBufferStartResponse {
845 pub start_time: i64,
846}
847
848impl fidl::Persistable for RingBufferStartResponse {}
849
850#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
851#[repr(C)]
852pub struct RingBufferWatchClockRecoveryPositionInfoResponse {
853 pub position_info: RingBufferPositionInfo,
854}
855
856impl fidl::Persistable for RingBufferWatchClockRecoveryPositionInfoResponse {}
857
858#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
859#[repr(C)]
860pub struct RingBufferSetActiveChannelsResponse {
861 pub set_time: i64,
862}
863
864impl fidl::Persistable for RingBufferSetActiveChannelsResponse {}
865
866#[derive(Clone, Debug, PartialEq)]
867pub struct RingBufferWatchDelayInfoResponse {
868 pub delay_info: DelayInfo,
869}
870
871impl fidl::Persistable for RingBufferWatchDelayInfoResponse {}
872
873#[derive(Clone, Debug, PartialEq)]
874pub struct StreamConfigGetPropertiesResponse {
875 pub properties: StreamProperties,
876}
877
878impl fidl::Persistable for StreamConfigGetPropertiesResponse {}
879
880#[derive(Clone, Debug, PartialEq)]
881pub struct StreamConfigGetSupportedFormatsResponse {
882 pub supported_formats: Vec<SupportedFormats>,
883}
884
885impl fidl::Persistable for StreamConfigGetSupportedFormatsResponse {}
886
887#[derive(Clone, Debug, PartialEq)]
888pub struct StreamConfigSetGainRequest {
889 pub target_state: GainState,
890}
891
892impl fidl::Persistable for StreamConfigSetGainRequest {}
893
894#[derive(Clone, Debug, PartialEq)]
895pub struct StreamConfigWatchGainStateResponse {
896 pub gain_state: GainState,
897}
898
899impl fidl::Persistable for StreamConfigWatchGainStateResponse {}
900
901#[derive(Clone, Debug, PartialEq)]
902pub struct StreamConfigWatchPlugStateResponse {
903 pub plug_state: PlugState,
904}
905
906impl fidl::Persistable for StreamConfigWatchPlugStateResponse {}
907
908#[derive(Clone, Debug, Default, PartialEq)]
909pub struct AllocateVmosConfig {
910 pub min_vmo_size: Option<u64>,
914 pub vmo_count: Option<u32>,
918 #[doc(hidden)]
919 pub __source_breaking: fidl::marker::SourceBreaking,
920}
921
922impl fidl::Persistable for AllocateVmosConfig {}
923
924#[derive(Clone, Debug, Default, PartialEq)]
926pub struct ChannelAttributes {
927 pub min_frequency: Option<u32>,
933 pub max_frequency: Option<u32>,
939 #[doc(hidden)]
940 pub __source_breaking: fidl::marker::SourceBreaking,
941}
942
943impl fidl::Persistable for ChannelAttributes {}
944
945#[derive(Clone, Debug, Default, PartialEq)]
947pub struct ChannelSet {
948 pub attributes: Option<Vec<ChannelAttributes>>,
954 #[doc(hidden)]
955 pub __source_breaking: fidl::marker::SourceBreaking,
956}
957
958impl fidl::Persistable for ChannelSet {}
959
960#[derive(Clone, Debug, Default, PartialEq)]
962pub struct CodecFormatInfo {
963 pub external_delay: Option<i64>,
970 pub turn_on_delay: Option<i64>,
979 pub turn_off_delay: Option<i64>,
988 #[doc(hidden)]
989 pub __source_breaking: fidl::marker::SourceBreaking,
990}
991
992impl fidl::Persistable for CodecFormatInfo {}
993
994#[derive(Clone, Debug, Default, PartialEq)]
995pub struct CodecProperties {
996 pub is_input: Option<bool>,
1001 pub manufacturer: Option<String>,
1006 pub product: Option<String>,
1011 pub unique_id: Option<[u8; 16]>,
1016 pub plug_detect_capabilities: Option<PlugDetectCapabilities>,
1020 #[doc(hidden)]
1021 pub __source_breaking: fidl::marker::SourceBreaking,
1022}
1023
1024impl fidl::Persistable for CodecProperties {}
1025
1026#[derive(Clone, Debug, Default, PartialEq)]
1027pub struct CompositeProperties {
1028 pub manufacturer: Option<String>,
1033 pub product: Option<String>,
1038 pub unique_id: Option<[u8; 16]>,
1043 pub clock_domain: Option<u32>,
1064 #[doc(hidden)]
1065 pub __source_breaking: fidl::marker::SourceBreaking,
1066}
1067
1068impl fidl::Persistable for CompositeProperties {}
1069
1070#[derive(Clone, Debug, Default, PartialEq)]
1071pub struct DaiProperties {
1072 pub is_input: Option<bool>,
1076 pub manufacturer: Option<String>,
1081 pub product_name: Option<String>,
1086 pub unique_id: Option<[u8; 16]>,
1091 pub clock_domain: Option<u32>,
1112 #[doc(hidden)]
1113 pub __source_breaking: fidl::marker::SourceBreaking,
1114}
1115
1116impl fidl::Persistable for DaiProperties {}
1117
1118#[derive(Clone, Debug, Default, PartialEq)]
1120pub struct DelayInfo {
1121 pub internal_delay: Option<i64>,
1142 pub external_delay: Option<i64>,
1161 #[doc(hidden)]
1162 pub __source_breaking: fidl::marker::SourceBreaking,
1163}
1164
1165impl fidl::Persistable for DelayInfo {}
1166
1167#[derive(Clone, Debug, Default, PartialEq)]
1169pub struct Encoding {
1170 pub decoded_channel_count: Option<u32>,
1174 pub decoded_frame_rate: Option<u32>,
1178 pub average_encoding_bitrate: Option<u32>,
1182 pub encoding_type: Option<EncodingType>,
1186 #[doc(hidden)]
1187 pub __source_breaking: fidl::marker::SourceBreaking,
1188}
1189
1190impl fidl::Persistable for Encoding {}
1191
1192#[derive(Clone, Debug, Default, PartialEq)]
1194pub struct Format {
1195 pub pcm_format: Option<PcmFormat>,
1196 #[doc(hidden)]
1197 pub __source_breaking: fidl::marker::SourceBreaking,
1198}
1199
1200impl fidl::Persistable for Format {}
1201
1202#[derive(Clone, Debug, Default, PartialEq)]
1204pub struct GainState {
1205 pub muted: Option<bool>,
1209 pub agc_enabled: Option<bool>,
1213 pub gain_db: Option<f32>,
1217 #[doc(hidden)]
1218 pub __source_breaking: fidl::marker::SourceBreaking,
1219}
1220
1221impl fidl::Persistable for GainState {}
1222
1223#[derive(Clone, Debug, Default, PartialEq)]
1224pub struct HealthState {
1225 pub healthy: Option<bool>,
1233 #[doc(hidden)]
1234 pub __source_breaking: fidl::marker::SourceBreaking,
1235}
1236
1237impl fidl::Persistable for HealthState {}
1238
1239#[derive(Clone, Debug, Default, PartialEq)]
1241pub struct PacketStreamProperties {
1242 pub needs_cache_flush_or_invalidate: Option<bool>,
1251 pub supported_buffer_types: Option<BufferType>,
1255 #[doc(hidden)]
1256 pub __source_breaking: fidl::marker::SourceBreaking,
1257}
1258
1259impl fidl::Persistable for PacketStreamProperties {}
1260
1261#[derive(Clone, Debug, Default, PartialEq)]
1262pub struct PacketStreamSinkPutPacketResponse {
1263 #[doc(hidden)]
1264 pub __source_breaking: fidl::marker::SourceBreaking,
1265}
1266
1267impl fidl::Persistable for PacketStreamSinkPutPacketResponse {}
1268
1269#[derive(Clone, Debug, Default, PartialEq)]
1282pub struct PcmSupportedFormats {
1283 pub channel_sets: Option<Vec<ChannelSet>>,
1291 pub sample_formats: Option<Vec<SampleFormat>>,
1296 pub bytes_per_sample: Option<Vec<u8>>,
1302 pub valid_bits_per_sample: Option<Vec<u8>>,
1309 pub frame_rates: Option<Vec<u32>>,
1313 #[doc(hidden)]
1314 pub __source_breaking: fidl::marker::SourceBreaking,
1315}
1316
1317impl fidl::Persistable for PcmSupportedFormats {}
1318
1319#[derive(Clone, Debug, Default, PartialEq)]
1324pub struct PlugState {
1325 pub plugged: Option<bool>,
1327 pub plug_state_time: Option<i64>,
1329 #[doc(hidden)]
1330 pub __source_breaking: fidl::marker::SourceBreaking,
1331}
1332
1333impl fidl::Persistable for PlugState {}
1334
1335#[derive(Clone, Debug, Default, PartialEq)]
1337pub struct RingBufferProperties {
1338 pub needs_cache_flush_or_invalidate: Option<bool>,
1353 pub turn_on_delay: Option<i64>,
1366 pub driver_transfer_bytes: Option<u32>,
1378 #[doc(hidden)]
1379 pub __source_breaking: fidl::marker::SourceBreaking,
1380}
1381
1382impl fidl::Persistable for RingBufferProperties {}
1383
1384#[derive(Clone, Debug, Default, PartialEq)]
1385pub struct StreamProperties {
1386 pub unique_id: Option<[u8; 16]>,
1391 pub is_input: Option<bool>,
1395 pub can_mute: Option<bool>,
1399 pub can_agc: Option<bool>,
1403 pub min_gain_db: Option<f32>,
1407 pub max_gain_db: Option<f32>,
1411 pub gain_step_db: Option<f32>,
1416 pub plug_detect_capabilities: Option<PlugDetectCapabilities>,
1420 pub manufacturer: Option<String>,
1425 pub product: Option<String>,
1430 pub clock_domain: Option<u32>,
1451 #[doc(hidden)]
1452 pub __source_breaking: fidl::marker::SourceBreaking,
1453}
1454
1455impl fidl::Persistable for StreamProperties {}
1456
1457#[derive(Clone, Debug, Default, PartialEq)]
1467pub struct SupportedEncodings {
1468 pub decoded_channel_sets: Option<Vec<ChannelSet>>,
1479 pub decoded_frame_rates: Option<Vec<u32>>,
1485 pub min_encoding_bitrate: Option<u32>,
1490 pub max_encoding_bitrate: Option<u32>,
1495 pub encoding_types: Option<Vec<EncodingType>>,
1500 #[doc(hidden)]
1501 pub __source_breaking: fidl::marker::SourceBreaking,
1502}
1503
1504impl fidl::Persistable for SupportedEncodings {}
1505
1506#[derive(Clone, Debug, Default, PartialEq)]
1508pub struct SupportedFormats {
1509 pub pcm_supported_formats: Option<PcmSupportedFormats>,
1510 #[doc(hidden)]
1511 pub __source_breaking: fidl::marker::SourceBreaking,
1512}
1513
1514impl fidl::Persistable for SupportedFormats {}
1515
1516#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
1518pub enum DaiFrameFormat {
1519 FrameFormatStandard(DaiFrameFormatStandard),
1521 FrameFormatCustom(DaiFrameFormatCustom),
1523}
1524
1525impl DaiFrameFormat {
1526 #[inline]
1527 pub fn ordinal(&self) -> u64 {
1528 match *self {
1529 Self::FrameFormatStandard(_) => 1,
1530 Self::FrameFormatCustom(_) => 2,
1531 }
1532 }
1533}
1534
1535impl fidl::Persistable for DaiFrameFormat {}
1536
1537#[derive(Clone, Debug)]
1538pub enum Format2 {
1539 PcmFormat(PcmFormat),
1541 Encoding(Encoding),
1543 #[doc(hidden)]
1544 __SourceBreaking { unknown_ordinal: u64 },
1545}
1546
1547#[macro_export]
1549macro_rules! Format2Unknown {
1550 () => {
1551 _
1552 };
1553}
1554
1555impl PartialEq for Format2 {
1557 fn eq(&self, other: &Self) -> bool {
1558 match (self, other) {
1559 (Self::PcmFormat(x), Self::PcmFormat(y)) => *x == *y,
1560 (Self::Encoding(x), Self::Encoding(y)) => *x == *y,
1561 _ => false,
1562 }
1563 }
1564}
1565
1566impl Format2 {
1567 #[inline]
1568 pub fn ordinal(&self) -> u64 {
1569 match *self {
1570 Self::PcmFormat(_) => 1,
1571 Self::Encoding(_) => 2,
1572 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
1573 }
1574 }
1575
1576 #[inline]
1577 pub fn unknown_variant_for_testing() -> Self {
1578 Self::__SourceBreaking { unknown_ordinal: 0 }
1579 }
1580
1581 #[inline]
1582 pub fn is_unknown(&self) -> bool {
1583 match self {
1584 Self::__SourceBreaking { .. } => true,
1585 _ => false,
1586 }
1587 }
1588}
1589
1590impl fidl::Persistable for Format2 {}
1591
1592#[derive(Clone, Debug)]
1594pub enum SupportedFormats2 {
1595 PcmSupportedFormats(PcmSupportedFormats),
1597 SupportedEncodings(SupportedEncodings),
1599 #[doc(hidden)]
1600 __SourceBreaking { unknown_ordinal: u64 },
1601}
1602
1603#[macro_export]
1605macro_rules! SupportedFormats2Unknown {
1606 () => {
1607 _
1608 };
1609}
1610
1611impl PartialEq for SupportedFormats2 {
1613 fn eq(&self, other: &Self) -> bool {
1614 match (self, other) {
1615 (Self::PcmSupportedFormats(x), Self::PcmSupportedFormats(y)) => *x == *y,
1616 (Self::SupportedEncodings(x), Self::SupportedEncodings(y)) => *x == *y,
1617 _ => false,
1618 }
1619 }
1620}
1621
1622impl SupportedFormats2 {
1623 #[inline]
1624 pub fn ordinal(&self) -> u64 {
1625 match *self {
1626 Self::PcmSupportedFormats(_) => 1,
1627 Self::SupportedEncodings(_) => 2,
1628 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
1629 }
1630 }
1631
1632 #[inline]
1633 pub fn unknown_variant_for_testing() -> Self {
1634 Self::__SourceBreaking { unknown_ordinal: 0 }
1635 }
1636
1637 #[inline]
1638 pub fn is_unknown(&self) -> bool {
1639 match self {
1640 Self::__SourceBreaking { .. } => true,
1641 _ => false,
1642 }
1643 }
1644}
1645
1646impl fidl::Persistable for SupportedFormats2 {}
1647
1648pub mod codec_ordinals {
1649 pub const GET_HEALTH_STATE: u64 = 0x4e146d6bca733a84;
1650 pub const SIGNAL_PROCESSING_CONNECT: u64 = 0xa81907ce6066295;
1651 pub const RESET: u64 = 0x50757ae579a7bd6b;
1652 pub const GET_PROPERTIES: u64 = 0x7a0d138a6a1d9d90;
1653 pub const STOP: u64 = 0x5c2e380df1332dbd;
1654 pub const START: u64 = 0x329cdacb286ab00;
1655 pub const GET_DAI_FORMATS: u64 = 0xf8bbc46b4ba6a52;
1656 pub const SET_DAI_FORMAT: u64 = 0x2f829df9e5a7a1ea;
1657 pub const WATCH_PLUG_STATE: u64 = 0x182b87f935ca7326;
1658}
1659
1660pub mod codec_connector_ordinals {
1661 pub const CONNECT: u64 = 0x1413f551544026c9;
1662}
1663
1664pub mod composite_ordinals {
1665 pub const GET_HEALTH_STATE: u64 = 0x4e146d6bca733a84;
1666 pub const SIGNAL_PROCESSING_CONNECT: u64 = 0xa81907ce6066295;
1667 pub const RESET: u64 = 0xac355fb98341996;
1668 pub const GET_PROPERTIES: u64 = 0x31846fa0a459942b;
1669 pub const GET_RING_BUFFER_FORMATS: u64 = 0x1d89b701b6816ac4;
1670 pub const CREATE_RING_BUFFER: u64 = 0x28c5685f85262033;
1671 pub const GET_DAI_FORMATS: u64 = 0x3cbeaed59c8f69b;
1672 pub const SET_DAI_FORMAT: u64 = 0x155acf5cc0dc8a84;
1673 pub const GET_PACKET_STREAM_FORMATS: u64 = 0x73cc47c6ad39bca7;
1674 pub const CREATE_PACKET_STREAM: u64 = 0x50e8902b756c707c;
1675}
1676
1677pub mod composite_connector_ordinals {
1678 pub const CONNECT: u64 = 0x7ee557529079e466;
1679}
1680
1681pub mod dai_ordinals {
1682 pub const GET_HEALTH_STATE: u64 = 0x4e146d6bca733a84;
1683 pub const SIGNAL_PROCESSING_CONNECT: u64 = 0xa81907ce6066295;
1684 pub const RESET: u64 = 0x69e5fa9fa2f78c14;
1685 pub const GET_PROPERTIES: u64 = 0x2c25a1a66149510b;
1686 pub const GET_DAI_FORMATS: u64 = 0x1eb37b0cddf79d69;
1687 pub const GET_RING_BUFFER_FORMATS: u64 = 0x760371081d8c92e4;
1688 pub const CREATE_RING_BUFFER: u64 = 0x5af9760589a75257;
1689}
1690
1691pub mod dai_connector_ordinals {
1692 pub const CONNECT: u64 = 0x4e4db05c2eca1450;
1693}
1694
1695pub mod health_ordinals {
1696 pub const GET_HEALTH_STATE: u64 = 0x4e146d6bca733a84;
1697}
1698
1699pub mod packet_stream_control_ordinals {
1700 pub const GET_PROPERTIES: u64 = 0x586cf4f0f8d2771f;
1701 pub const ALLOCATE_VMOS: u64 = 0x7ff1473165ed344b;
1702 pub const DEALLOCATE_VMOS: u64 = 0x4db5cc85a7b8405b;
1703 pub const REGISTER_VMOS: u64 = 0x29c3b656a1020bfd;
1704 pub const UNREGISTER_VMOS: u64 = 0x3e3b4dbfe26b6094;
1705 pub const GET_PACKET_STREAM_SINK: u64 = 0x7394726463ebbc6a;
1706 pub const SET_PACKET_STREAM_SINK: u64 = 0xab88800e31dc0e4;
1707 pub const START: u64 = 0x3a584b94d8a6bfd0;
1708 pub const STOP: u64 = 0x703e4fafcdd7ef32;
1709}
1710
1711pub mod packet_stream_sink_ordinals {
1712 pub const PUT_PACKET: u64 = 0x25a8e35efba81f2b;
1713 pub const FLUSH_PACKETS: u64 = 0x13f16ca37ede8a4;
1714}
1715
1716pub mod ring_buffer_ordinals {
1717 pub const GET_PROPERTIES: u64 = 0x12947f061a8fe1;
1718 pub const WATCH_CLOCK_RECOVERY_POSITION_INFO: u64 = 0x694d5b898a4167e5;
1719 pub const GET_VMO: u64 = 0x44c8f4f5680e853a;
1720 pub const START: u64 = 0x5dd780a769a8892d;
1721 pub const STOP: u64 = 0x49a73d9cf1d4e110;
1722 pub const SET_ACTIVE_CHANNELS: u64 = 0x605464c1d384f309;
1723 pub const WATCH_DELAY_INFO: u64 = 0x6c1248db213fcf9f;
1724}
1725
1726pub mod stream_config_ordinals {
1727 pub const GET_HEALTH_STATE: u64 = 0x4e146d6bca733a84;
1728 pub const SIGNAL_PROCESSING_CONNECT: u64 = 0xa81907ce6066295;
1729 pub const GET_PROPERTIES: u64 = 0x7d89c02f3e2d3c01;
1730 pub const GET_SUPPORTED_FORMATS: u64 = 0x448efa7850cafe7e;
1731 pub const CREATE_RING_BUFFER: u64 = 0x2afb19dd13faa1ba;
1732 pub const WATCH_GAIN_STATE: u64 = 0x4772506136ab65c1;
1733 pub const SET_GAIN: u64 = 0x3943b41498c6a384;
1734 pub const WATCH_PLUG_STATE: u64 = 0x497345a6f048b2a6;
1735}
1736
1737pub mod stream_config_connector_ordinals {
1738 pub const CONNECT: u64 = 0x22051ff3021eafec;
1739}
1740
1741mod internal {
1742 use super::*;
1743 unsafe impl fidl::encoding::TypeMarker for BufferType {
1744 type Owned = Self;
1745
1746 #[inline(always)]
1747 fn inline_align(_context: fidl::encoding::Context) -> usize {
1748 8
1749 }
1750
1751 #[inline(always)]
1752 fn inline_size(_context: fidl::encoding::Context) -> usize {
1753 8
1754 }
1755 }
1756
1757 impl fidl::encoding::ValueTypeMarker for BufferType {
1758 type Borrowed<'a> = Self;
1759 #[inline(always)]
1760 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1761 *value
1762 }
1763 }
1764
1765 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for BufferType {
1766 #[inline]
1767 unsafe fn encode(
1768 self,
1769 encoder: &mut fidl::encoding::Encoder<'_, D>,
1770 offset: usize,
1771 _depth: fidl::encoding::Depth,
1772 ) -> fidl::Result<()> {
1773 encoder.debug_check_bounds::<Self>(offset);
1774 encoder.write_num(self.bits(), offset);
1775 Ok(())
1776 }
1777 }
1778
1779 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for BufferType {
1780 #[inline(always)]
1781 fn new_empty() -> Self {
1782 Self::empty()
1783 }
1784
1785 #[inline]
1786 unsafe fn decode(
1787 &mut self,
1788 decoder: &mut fidl::encoding::Decoder<'_, D>,
1789 offset: usize,
1790 _depth: fidl::encoding::Depth,
1791 ) -> fidl::Result<()> {
1792 decoder.debug_check_bounds::<Self>(offset);
1793 let prim = decoder.read_num::<u64>(offset);
1794 *self = Self::from_bits_allow_unknown(prim);
1795 Ok(())
1796 }
1797 }
1798 unsafe impl fidl::encoding::TypeMarker for DaiFrameFormatStandard {
1799 type Owned = Self;
1800
1801 #[inline(always)]
1802 fn inline_align(_context: fidl::encoding::Context) -> usize {
1803 std::mem::align_of::<u8>()
1804 }
1805
1806 #[inline(always)]
1807 fn inline_size(_context: fidl::encoding::Context) -> usize {
1808 std::mem::size_of::<u8>()
1809 }
1810
1811 #[inline(always)]
1812 fn encode_is_copy() -> bool {
1813 true
1814 }
1815
1816 #[inline(always)]
1817 fn decode_is_copy() -> bool {
1818 false
1819 }
1820 }
1821
1822 impl fidl::encoding::ValueTypeMarker for DaiFrameFormatStandard {
1823 type Borrowed<'a> = Self;
1824 #[inline(always)]
1825 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1826 *value
1827 }
1828 }
1829
1830 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
1831 for DaiFrameFormatStandard
1832 {
1833 #[inline]
1834 unsafe fn encode(
1835 self,
1836 encoder: &mut fidl::encoding::Encoder<'_, D>,
1837 offset: usize,
1838 _depth: fidl::encoding::Depth,
1839 ) -> fidl::Result<()> {
1840 encoder.debug_check_bounds::<Self>(offset);
1841 encoder.write_num(self.into_primitive(), offset);
1842 Ok(())
1843 }
1844 }
1845
1846 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1847 for DaiFrameFormatStandard
1848 {
1849 #[inline(always)]
1850 fn new_empty() -> Self {
1851 Self::None
1852 }
1853
1854 #[inline]
1855 unsafe fn decode(
1856 &mut self,
1857 decoder: &mut fidl::encoding::Decoder<'_, D>,
1858 offset: usize,
1859 _depth: fidl::encoding::Depth,
1860 ) -> fidl::Result<()> {
1861 decoder.debug_check_bounds::<Self>(offset);
1862 let prim = decoder.read_num::<u8>(offset);
1863
1864 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
1865 Ok(())
1866 }
1867 }
1868 unsafe impl fidl::encoding::TypeMarker for DaiSampleFormat {
1869 type Owned = Self;
1870
1871 #[inline(always)]
1872 fn inline_align(_context: fidl::encoding::Context) -> usize {
1873 std::mem::align_of::<u8>()
1874 }
1875
1876 #[inline(always)]
1877 fn inline_size(_context: fidl::encoding::Context) -> usize {
1878 std::mem::size_of::<u8>()
1879 }
1880
1881 #[inline(always)]
1882 fn encode_is_copy() -> bool {
1883 true
1884 }
1885
1886 #[inline(always)]
1887 fn decode_is_copy() -> bool {
1888 false
1889 }
1890 }
1891
1892 impl fidl::encoding::ValueTypeMarker for DaiSampleFormat {
1893 type Borrowed<'a> = Self;
1894 #[inline(always)]
1895 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1896 *value
1897 }
1898 }
1899
1900 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
1901 for DaiSampleFormat
1902 {
1903 #[inline]
1904 unsafe fn encode(
1905 self,
1906 encoder: &mut fidl::encoding::Encoder<'_, D>,
1907 offset: usize,
1908 _depth: fidl::encoding::Depth,
1909 ) -> fidl::Result<()> {
1910 encoder.debug_check_bounds::<Self>(offset);
1911 encoder.write_num(self.into_primitive(), offset);
1912 Ok(())
1913 }
1914 }
1915
1916 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for DaiSampleFormat {
1917 #[inline(always)]
1918 fn new_empty() -> Self {
1919 Self::Pdm
1920 }
1921
1922 #[inline]
1923 unsafe fn decode(
1924 &mut self,
1925 decoder: &mut fidl::encoding::Decoder<'_, D>,
1926 offset: usize,
1927 _depth: fidl::encoding::Depth,
1928 ) -> fidl::Result<()> {
1929 decoder.debug_check_bounds::<Self>(offset);
1930 let prim = decoder.read_num::<u8>(offset);
1931
1932 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
1933 Ok(())
1934 }
1935 }
1936 unsafe impl fidl::encoding::TypeMarker for DeviceType {
1937 type Owned = Self;
1938
1939 #[inline(always)]
1940 fn inline_align(_context: fidl::encoding::Context) -> usize {
1941 std::mem::align_of::<u32>()
1942 }
1943
1944 #[inline(always)]
1945 fn inline_size(_context: fidl::encoding::Context) -> usize {
1946 std::mem::size_of::<u32>()
1947 }
1948
1949 #[inline(always)]
1950 fn encode_is_copy() -> bool {
1951 false
1952 }
1953
1954 #[inline(always)]
1955 fn decode_is_copy() -> bool {
1956 false
1957 }
1958 }
1959
1960 impl fidl::encoding::ValueTypeMarker for DeviceType {
1961 type Borrowed<'a> = Self;
1962 #[inline(always)]
1963 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1964 *value
1965 }
1966 }
1967
1968 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for DeviceType {
1969 #[inline]
1970 unsafe fn encode(
1971 self,
1972 encoder: &mut fidl::encoding::Encoder<'_, D>,
1973 offset: usize,
1974 _depth: fidl::encoding::Depth,
1975 ) -> fidl::Result<()> {
1976 encoder.debug_check_bounds::<Self>(offset);
1977 encoder.write_num(self.into_primitive(), offset);
1978 Ok(())
1979 }
1980 }
1981
1982 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for DeviceType {
1983 #[inline(always)]
1984 fn new_empty() -> Self {
1985 Self::unknown()
1986 }
1987
1988 #[inline]
1989 unsafe fn decode(
1990 &mut self,
1991 decoder: &mut fidl::encoding::Decoder<'_, D>,
1992 offset: usize,
1993 _depth: fidl::encoding::Depth,
1994 ) -> fidl::Result<()> {
1995 decoder.debug_check_bounds::<Self>(offset);
1996 let prim = decoder.read_num::<u32>(offset);
1997
1998 *self = Self::from_primitive_allow_unknown(prim);
1999 Ok(())
2000 }
2001 }
2002 unsafe impl fidl::encoding::TypeMarker for DriverError {
2003 type Owned = Self;
2004
2005 #[inline(always)]
2006 fn inline_align(_context: fidl::encoding::Context) -> usize {
2007 std::mem::align_of::<u32>()
2008 }
2009
2010 #[inline(always)]
2011 fn inline_size(_context: fidl::encoding::Context) -> usize {
2012 std::mem::size_of::<u32>()
2013 }
2014
2015 #[inline(always)]
2016 fn encode_is_copy() -> bool {
2017 false
2018 }
2019
2020 #[inline(always)]
2021 fn decode_is_copy() -> bool {
2022 false
2023 }
2024 }
2025
2026 impl fidl::encoding::ValueTypeMarker for DriverError {
2027 type Borrowed<'a> = Self;
2028 #[inline(always)]
2029 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2030 *value
2031 }
2032 }
2033
2034 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for DriverError {
2035 #[inline]
2036 unsafe fn encode(
2037 self,
2038 encoder: &mut fidl::encoding::Encoder<'_, D>,
2039 offset: usize,
2040 _depth: fidl::encoding::Depth,
2041 ) -> fidl::Result<()> {
2042 encoder.debug_check_bounds::<Self>(offset);
2043 encoder.write_num(self.into_primitive(), offset);
2044 Ok(())
2045 }
2046 }
2047
2048 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for DriverError {
2049 #[inline(always)]
2050 fn new_empty() -> Self {
2051 Self::unknown()
2052 }
2053
2054 #[inline]
2055 unsafe fn decode(
2056 &mut self,
2057 decoder: &mut fidl::encoding::Decoder<'_, D>,
2058 offset: usize,
2059 _depth: fidl::encoding::Depth,
2060 ) -> fidl::Result<()> {
2061 decoder.debug_check_bounds::<Self>(offset);
2062 let prim = decoder.read_num::<u32>(offset);
2063
2064 *self = Self::from_primitive_allow_unknown(prim);
2065 Ok(())
2066 }
2067 }
2068 unsafe impl fidl::encoding::TypeMarker for EncodingType {
2069 type Owned = Self;
2070
2071 #[inline(always)]
2072 fn inline_align(_context: fidl::encoding::Context) -> usize {
2073 std::mem::align_of::<u32>()
2074 }
2075
2076 #[inline(always)]
2077 fn inline_size(_context: fidl::encoding::Context) -> usize {
2078 std::mem::size_of::<u32>()
2079 }
2080
2081 #[inline(always)]
2082 fn encode_is_copy() -> bool {
2083 false
2084 }
2085
2086 #[inline(always)]
2087 fn decode_is_copy() -> bool {
2088 false
2089 }
2090 }
2091
2092 impl fidl::encoding::ValueTypeMarker for EncodingType {
2093 type Borrowed<'a> = Self;
2094 #[inline(always)]
2095 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2096 *value
2097 }
2098 }
2099
2100 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for EncodingType {
2101 #[inline]
2102 unsafe fn encode(
2103 self,
2104 encoder: &mut fidl::encoding::Encoder<'_, D>,
2105 offset: usize,
2106 _depth: fidl::encoding::Depth,
2107 ) -> fidl::Result<()> {
2108 encoder.debug_check_bounds::<Self>(offset);
2109 encoder.write_num(self.into_primitive(), offset);
2110 Ok(())
2111 }
2112 }
2113
2114 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for EncodingType {
2115 #[inline(always)]
2116 fn new_empty() -> Self {
2117 Self::unknown()
2118 }
2119
2120 #[inline]
2121 unsafe fn decode(
2122 &mut self,
2123 decoder: &mut fidl::encoding::Decoder<'_, D>,
2124 offset: usize,
2125 _depth: fidl::encoding::Depth,
2126 ) -> fidl::Result<()> {
2127 decoder.debug_check_bounds::<Self>(offset);
2128 let prim = decoder.read_num::<u32>(offset);
2129
2130 *self = Self::from_primitive_allow_unknown(prim);
2131 Ok(())
2132 }
2133 }
2134 unsafe impl fidl::encoding::TypeMarker for GetVmoError {
2135 type Owned = Self;
2136
2137 #[inline(always)]
2138 fn inline_align(_context: fidl::encoding::Context) -> usize {
2139 std::mem::align_of::<u32>()
2140 }
2141
2142 #[inline(always)]
2143 fn inline_size(_context: fidl::encoding::Context) -> usize {
2144 std::mem::size_of::<u32>()
2145 }
2146
2147 #[inline(always)]
2148 fn encode_is_copy() -> bool {
2149 true
2150 }
2151
2152 #[inline(always)]
2153 fn decode_is_copy() -> bool {
2154 false
2155 }
2156 }
2157
2158 impl fidl::encoding::ValueTypeMarker for GetVmoError {
2159 type Borrowed<'a> = Self;
2160 #[inline(always)]
2161 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2162 *value
2163 }
2164 }
2165
2166 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for GetVmoError {
2167 #[inline]
2168 unsafe fn encode(
2169 self,
2170 encoder: &mut fidl::encoding::Encoder<'_, D>,
2171 offset: usize,
2172 _depth: fidl::encoding::Depth,
2173 ) -> fidl::Result<()> {
2174 encoder.debug_check_bounds::<Self>(offset);
2175 encoder.write_num(self.into_primitive(), offset);
2176 Ok(())
2177 }
2178 }
2179
2180 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for GetVmoError {
2181 #[inline(always)]
2182 fn new_empty() -> Self {
2183 Self::InvalidArgs
2184 }
2185
2186 #[inline]
2187 unsafe fn decode(
2188 &mut self,
2189 decoder: &mut fidl::encoding::Decoder<'_, D>,
2190 offset: usize,
2191 _depth: fidl::encoding::Depth,
2192 ) -> fidl::Result<()> {
2193 decoder.debug_check_bounds::<Self>(offset);
2194 let prim = decoder.read_num::<u32>(offset);
2195
2196 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
2197 Ok(())
2198 }
2199 }
2200 unsafe impl fidl::encoding::TypeMarker for PlugDetectCapabilities {
2201 type Owned = Self;
2202
2203 #[inline(always)]
2204 fn inline_align(_context: fidl::encoding::Context) -> usize {
2205 std::mem::align_of::<u32>()
2206 }
2207
2208 #[inline(always)]
2209 fn inline_size(_context: fidl::encoding::Context) -> usize {
2210 std::mem::size_of::<u32>()
2211 }
2212
2213 #[inline(always)]
2214 fn encode_is_copy() -> bool {
2215 true
2216 }
2217
2218 #[inline(always)]
2219 fn decode_is_copy() -> bool {
2220 false
2221 }
2222 }
2223
2224 impl fidl::encoding::ValueTypeMarker for PlugDetectCapabilities {
2225 type Borrowed<'a> = Self;
2226 #[inline(always)]
2227 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2228 *value
2229 }
2230 }
2231
2232 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
2233 for PlugDetectCapabilities
2234 {
2235 #[inline]
2236 unsafe fn encode(
2237 self,
2238 encoder: &mut fidl::encoding::Encoder<'_, D>,
2239 offset: usize,
2240 _depth: fidl::encoding::Depth,
2241 ) -> fidl::Result<()> {
2242 encoder.debug_check_bounds::<Self>(offset);
2243 encoder.write_num(self.into_primitive(), offset);
2244 Ok(())
2245 }
2246 }
2247
2248 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2249 for PlugDetectCapabilities
2250 {
2251 #[inline(always)]
2252 fn new_empty() -> Self {
2253 Self::Hardwired
2254 }
2255
2256 #[inline]
2257 unsafe fn decode(
2258 &mut self,
2259 decoder: &mut fidl::encoding::Decoder<'_, D>,
2260 offset: usize,
2261 _depth: fidl::encoding::Depth,
2262 ) -> fidl::Result<()> {
2263 decoder.debug_check_bounds::<Self>(offset);
2264 let prim = decoder.read_num::<u32>(offset);
2265
2266 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
2267 Ok(())
2268 }
2269 }
2270 unsafe impl fidl::encoding::TypeMarker for SampleFormat {
2271 type Owned = Self;
2272
2273 #[inline(always)]
2274 fn inline_align(_context: fidl::encoding::Context) -> usize {
2275 std::mem::align_of::<u8>()
2276 }
2277
2278 #[inline(always)]
2279 fn inline_size(_context: fidl::encoding::Context) -> usize {
2280 std::mem::size_of::<u8>()
2281 }
2282
2283 #[inline(always)]
2284 fn encode_is_copy() -> bool {
2285 true
2286 }
2287
2288 #[inline(always)]
2289 fn decode_is_copy() -> bool {
2290 false
2291 }
2292 }
2293
2294 impl fidl::encoding::ValueTypeMarker for SampleFormat {
2295 type Borrowed<'a> = Self;
2296 #[inline(always)]
2297 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2298 *value
2299 }
2300 }
2301
2302 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for SampleFormat {
2303 #[inline]
2304 unsafe fn encode(
2305 self,
2306 encoder: &mut fidl::encoding::Encoder<'_, D>,
2307 offset: usize,
2308 _depth: fidl::encoding::Depth,
2309 ) -> fidl::Result<()> {
2310 encoder.debug_check_bounds::<Self>(offset);
2311 encoder.write_num(self.into_primitive(), offset);
2312 Ok(())
2313 }
2314 }
2315
2316 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for SampleFormat {
2317 #[inline(always)]
2318 fn new_empty() -> Self {
2319 Self::PcmSigned
2320 }
2321
2322 #[inline]
2323 unsafe fn decode(
2324 &mut self,
2325 decoder: &mut fidl::encoding::Decoder<'_, D>,
2326 offset: usize,
2327 _depth: fidl::encoding::Depth,
2328 ) -> fidl::Result<()> {
2329 decoder.debug_check_bounds::<Self>(offset);
2330 let prim = decoder.read_num::<u8>(offset);
2331
2332 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
2333 Ok(())
2334 }
2335 }
2336 unsafe impl fidl::encoding::TypeMarker for SingularUniqueId {
2337 type Owned = Self;
2338
2339 #[inline(always)]
2340 fn inline_align(_context: fidl::encoding::Context) -> usize {
2341 std::mem::align_of::<u8>()
2342 }
2343
2344 #[inline(always)]
2345 fn inline_size(_context: fidl::encoding::Context) -> usize {
2346 std::mem::size_of::<u8>()
2347 }
2348
2349 #[inline(always)]
2350 fn encode_is_copy() -> bool {
2351 false
2352 }
2353
2354 #[inline(always)]
2355 fn decode_is_copy() -> bool {
2356 false
2357 }
2358 }
2359
2360 impl fidl::encoding::ValueTypeMarker for SingularUniqueId {
2361 type Borrowed<'a> = Self;
2362 #[inline(always)]
2363 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2364 *value
2365 }
2366 }
2367
2368 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
2369 for SingularUniqueId
2370 {
2371 #[inline]
2372 unsafe fn encode(
2373 self,
2374 encoder: &mut fidl::encoding::Encoder<'_, D>,
2375 offset: usize,
2376 _depth: fidl::encoding::Depth,
2377 ) -> fidl::Result<()> {
2378 encoder.debug_check_bounds::<Self>(offset);
2379 encoder.write_num(self.into_primitive(), offset);
2380 Ok(())
2381 }
2382 }
2383
2384 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for SingularUniqueId {
2385 #[inline(always)]
2386 fn new_empty() -> Self {
2387 Self::unknown()
2388 }
2389
2390 #[inline]
2391 unsafe fn decode(
2392 &mut self,
2393 decoder: &mut fidl::encoding::Decoder<'_, D>,
2394 offset: usize,
2395 _depth: fidl::encoding::Depth,
2396 ) -> fidl::Result<()> {
2397 decoder.debug_check_bounds::<Self>(offset);
2398 let prim = decoder.read_num::<u8>(offset);
2399
2400 *self = Self::from_primitive_allow_unknown(prim);
2401 Ok(())
2402 }
2403 }
2404
2405 impl fidl::encoding::ValueTypeMarker for CodecGetPropertiesResponse {
2406 type Borrowed<'a> = &'a Self;
2407 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2408 value
2409 }
2410 }
2411
2412 unsafe impl fidl::encoding::TypeMarker for CodecGetPropertiesResponse {
2413 type Owned = Self;
2414
2415 #[inline(always)]
2416 fn inline_align(_context: fidl::encoding::Context) -> usize {
2417 8
2418 }
2419
2420 #[inline(always)]
2421 fn inline_size(_context: fidl::encoding::Context) -> usize {
2422 16
2423 }
2424 }
2425
2426 unsafe impl<D: fidl::encoding::ResourceDialect>
2427 fidl::encoding::Encode<CodecGetPropertiesResponse, D> for &CodecGetPropertiesResponse
2428 {
2429 #[inline]
2430 unsafe fn encode(
2431 self,
2432 encoder: &mut fidl::encoding::Encoder<'_, D>,
2433 offset: usize,
2434 _depth: fidl::encoding::Depth,
2435 ) -> fidl::Result<()> {
2436 encoder.debug_check_bounds::<CodecGetPropertiesResponse>(offset);
2437 fidl::encoding::Encode::<CodecGetPropertiesResponse, D>::encode(
2439 (<CodecProperties as fidl::encoding::ValueTypeMarker>::borrow(&self.properties),),
2440 encoder,
2441 offset,
2442 _depth,
2443 )
2444 }
2445 }
2446 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<CodecProperties, D>>
2447 fidl::encoding::Encode<CodecGetPropertiesResponse, D> for (T0,)
2448 {
2449 #[inline]
2450 unsafe fn encode(
2451 self,
2452 encoder: &mut fidl::encoding::Encoder<'_, D>,
2453 offset: usize,
2454 depth: fidl::encoding::Depth,
2455 ) -> fidl::Result<()> {
2456 encoder.debug_check_bounds::<CodecGetPropertiesResponse>(offset);
2457 self.0.encode(encoder, offset + 0, depth)?;
2461 Ok(())
2462 }
2463 }
2464
2465 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2466 for CodecGetPropertiesResponse
2467 {
2468 #[inline(always)]
2469 fn new_empty() -> Self {
2470 Self { properties: fidl::new_empty!(CodecProperties, D) }
2471 }
2472
2473 #[inline]
2474 unsafe fn decode(
2475 &mut self,
2476 decoder: &mut fidl::encoding::Decoder<'_, D>,
2477 offset: usize,
2478 _depth: fidl::encoding::Depth,
2479 ) -> fidl::Result<()> {
2480 decoder.debug_check_bounds::<Self>(offset);
2481 fidl::decode!(CodecProperties, D, &mut self.properties, decoder, offset + 0, _depth)?;
2483 Ok(())
2484 }
2485 }
2486
2487 impl fidl::encoding::ValueTypeMarker for CodecSetDaiFormatRequest {
2488 type Borrowed<'a> = &'a Self;
2489 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2490 value
2491 }
2492 }
2493
2494 unsafe impl fidl::encoding::TypeMarker for CodecSetDaiFormatRequest {
2495 type Owned = Self;
2496
2497 #[inline(always)]
2498 fn inline_align(_context: fidl::encoding::Context) -> usize {
2499 8
2500 }
2501
2502 #[inline(always)]
2503 fn inline_size(_context: fidl::encoding::Context) -> usize {
2504 48
2505 }
2506 }
2507
2508 unsafe impl<D: fidl::encoding::ResourceDialect>
2509 fidl::encoding::Encode<CodecSetDaiFormatRequest, D> for &CodecSetDaiFormatRequest
2510 {
2511 #[inline]
2512 unsafe fn encode(
2513 self,
2514 encoder: &mut fidl::encoding::Encoder<'_, D>,
2515 offset: usize,
2516 _depth: fidl::encoding::Depth,
2517 ) -> fidl::Result<()> {
2518 encoder.debug_check_bounds::<CodecSetDaiFormatRequest>(offset);
2519 fidl::encoding::Encode::<CodecSetDaiFormatRequest, D>::encode(
2521 (<DaiFormat as fidl::encoding::ValueTypeMarker>::borrow(&self.format),),
2522 encoder,
2523 offset,
2524 _depth,
2525 )
2526 }
2527 }
2528 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<DaiFormat, D>>
2529 fidl::encoding::Encode<CodecSetDaiFormatRequest, D> for (T0,)
2530 {
2531 #[inline]
2532 unsafe fn encode(
2533 self,
2534 encoder: &mut fidl::encoding::Encoder<'_, D>,
2535 offset: usize,
2536 depth: fidl::encoding::Depth,
2537 ) -> fidl::Result<()> {
2538 encoder.debug_check_bounds::<CodecSetDaiFormatRequest>(offset);
2539 self.0.encode(encoder, offset + 0, depth)?;
2543 Ok(())
2544 }
2545 }
2546
2547 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2548 for CodecSetDaiFormatRequest
2549 {
2550 #[inline(always)]
2551 fn new_empty() -> Self {
2552 Self { format: fidl::new_empty!(DaiFormat, D) }
2553 }
2554
2555 #[inline]
2556 unsafe fn decode(
2557 &mut self,
2558 decoder: &mut fidl::encoding::Decoder<'_, D>,
2559 offset: usize,
2560 _depth: fidl::encoding::Depth,
2561 ) -> fidl::Result<()> {
2562 decoder.debug_check_bounds::<Self>(offset);
2563 fidl::decode!(DaiFormat, D, &mut self.format, decoder, offset + 0, _depth)?;
2565 Ok(())
2566 }
2567 }
2568
2569 impl fidl::encoding::ValueTypeMarker for CodecStartResponse {
2570 type Borrowed<'a> = &'a Self;
2571 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2572 value
2573 }
2574 }
2575
2576 unsafe impl fidl::encoding::TypeMarker for CodecStartResponse {
2577 type Owned = Self;
2578
2579 #[inline(always)]
2580 fn inline_align(_context: fidl::encoding::Context) -> usize {
2581 8
2582 }
2583
2584 #[inline(always)]
2585 fn inline_size(_context: fidl::encoding::Context) -> usize {
2586 8
2587 }
2588 #[inline(always)]
2589 fn encode_is_copy() -> bool {
2590 true
2591 }
2592
2593 #[inline(always)]
2594 fn decode_is_copy() -> bool {
2595 true
2596 }
2597 }
2598
2599 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<CodecStartResponse, D>
2600 for &CodecStartResponse
2601 {
2602 #[inline]
2603 unsafe fn encode(
2604 self,
2605 encoder: &mut fidl::encoding::Encoder<'_, D>,
2606 offset: usize,
2607 _depth: fidl::encoding::Depth,
2608 ) -> fidl::Result<()> {
2609 encoder.debug_check_bounds::<CodecStartResponse>(offset);
2610 unsafe {
2611 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
2613 (buf_ptr as *mut CodecStartResponse)
2614 .write_unaligned((self as *const CodecStartResponse).read());
2615 }
2618 Ok(())
2619 }
2620 }
2621 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<i64, D>>
2622 fidl::encoding::Encode<CodecStartResponse, D> for (T0,)
2623 {
2624 #[inline]
2625 unsafe fn encode(
2626 self,
2627 encoder: &mut fidl::encoding::Encoder<'_, D>,
2628 offset: usize,
2629 depth: fidl::encoding::Depth,
2630 ) -> fidl::Result<()> {
2631 encoder.debug_check_bounds::<CodecStartResponse>(offset);
2632 self.0.encode(encoder, offset + 0, depth)?;
2636 Ok(())
2637 }
2638 }
2639
2640 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for CodecStartResponse {
2641 #[inline(always)]
2642 fn new_empty() -> Self {
2643 Self { start_time: fidl::new_empty!(i64, D) }
2644 }
2645
2646 #[inline]
2647 unsafe fn decode(
2648 &mut self,
2649 decoder: &mut fidl::encoding::Decoder<'_, D>,
2650 offset: usize,
2651 _depth: fidl::encoding::Depth,
2652 ) -> fidl::Result<()> {
2653 decoder.debug_check_bounds::<Self>(offset);
2654 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
2655 unsafe {
2658 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 8);
2659 }
2660 Ok(())
2661 }
2662 }
2663
2664 impl fidl::encoding::ValueTypeMarker for CodecStopResponse {
2665 type Borrowed<'a> = &'a Self;
2666 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2667 value
2668 }
2669 }
2670
2671 unsafe impl fidl::encoding::TypeMarker for CodecStopResponse {
2672 type Owned = Self;
2673
2674 #[inline(always)]
2675 fn inline_align(_context: fidl::encoding::Context) -> usize {
2676 8
2677 }
2678
2679 #[inline(always)]
2680 fn inline_size(_context: fidl::encoding::Context) -> usize {
2681 8
2682 }
2683 #[inline(always)]
2684 fn encode_is_copy() -> bool {
2685 true
2686 }
2687
2688 #[inline(always)]
2689 fn decode_is_copy() -> bool {
2690 true
2691 }
2692 }
2693
2694 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<CodecStopResponse, D>
2695 for &CodecStopResponse
2696 {
2697 #[inline]
2698 unsafe fn encode(
2699 self,
2700 encoder: &mut fidl::encoding::Encoder<'_, D>,
2701 offset: usize,
2702 _depth: fidl::encoding::Depth,
2703 ) -> fidl::Result<()> {
2704 encoder.debug_check_bounds::<CodecStopResponse>(offset);
2705 unsafe {
2706 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
2708 (buf_ptr as *mut CodecStopResponse)
2709 .write_unaligned((self as *const CodecStopResponse).read());
2710 }
2713 Ok(())
2714 }
2715 }
2716 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<i64, D>>
2717 fidl::encoding::Encode<CodecStopResponse, D> for (T0,)
2718 {
2719 #[inline]
2720 unsafe fn encode(
2721 self,
2722 encoder: &mut fidl::encoding::Encoder<'_, D>,
2723 offset: usize,
2724 depth: fidl::encoding::Depth,
2725 ) -> fidl::Result<()> {
2726 encoder.debug_check_bounds::<CodecStopResponse>(offset);
2727 self.0.encode(encoder, offset + 0, depth)?;
2731 Ok(())
2732 }
2733 }
2734
2735 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for CodecStopResponse {
2736 #[inline(always)]
2737 fn new_empty() -> Self {
2738 Self { stop_time: fidl::new_empty!(i64, D) }
2739 }
2740
2741 #[inline]
2742 unsafe fn decode(
2743 &mut self,
2744 decoder: &mut fidl::encoding::Decoder<'_, D>,
2745 offset: usize,
2746 _depth: fidl::encoding::Depth,
2747 ) -> fidl::Result<()> {
2748 decoder.debug_check_bounds::<Self>(offset);
2749 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
2750 unsafe {
2753 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 8);
2754 }
2755 Ok(())
2756 }
2757 }
2758
2759 impl fidl::encoding::ValueTypeMarker for CodecWatchPlugStateResponse {
2760 type Borrowed<'a> = &'a Self;
2761 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2762 value
2763 }
2764 }
2765
2766 unsafe impl fidl::encoding::TypeMarker for CodecWatchPlugStateResponse {
2767 type Owned = Self;
2768
2769 #[inline(always)]
2770 fn inline_align(_context: fidl::encoding::Context) -> usize {
2771 8
2772 }
2773
2774 #[inline(always)]
2775 fn inline_size(_context: fidl::encoding::Context) -> usize {
2776 16
2777 }
2778 }
2779
2780 unsafe impl<D: fidl::encoding::ResourceDialect>
2781 fidl::encoding::Encode<CodecWatchPlugStateResponse, D> for &CodecWatchPlugStateResponse
2782 {
2783 #[inline]
2784 unsafe fn encode(
2785 self,
2786 encoder: &mut fidl::encoding::Encoder<'_, D>,
2787 offset: usize,
2788 _depth: fidl::encoding::Depth,
2789 ) -> fidl::Result<()> {
2790 encoder.debug_check_bounds::<CodecWatchPlugStateResponse>(offset);
2791 fidl::encoding::Encode::<CodecWatchPlugStateResponse, D>::encode(
2793 (<PlugState as fidl::encoding::ValueTypeMarker>::borrow(&self.plug_state),),
2794 encoder,
2795 offset,
2796 _depth,
2797 )
2798 }
2799 }
2800 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<PlugState, D>>
2801 fidl::encoding::Encode<CodecWatchPlugStateResponse, D> for (T0,)
2802 {
2803 #[inline]
2804 unsafe fn encode(
2805 self,
2806 encoder: &mut fidl::encoding::Encoder<'_, D>,
2807 offset: usize,
2808 depth: fidl::encoding::Depth,
2809 ) -> fidl::Result<()> {
2810 encoder.debug_check_bounds::<CodecWatchPlugStateResponse>(offset);
2811 self.0.encode(encoder, offset + 0, depth)?;
2815 Ok(())
2816 }
2817 }
2818
2819 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2820 for CodecWatchPlugStateResponse
2821 {
2822 #[inline(always)]
2823 fn new_empty() -> Self {
2824 Self { plug_state: fidl::new_empty!(PlugState, D) }
2825 }
2826
2827 #[inline]
2828 unsafe fn decode(
2829 &mut self,
2830 decoder: &mut fidl::encoding::Decoder<'_, D>,
2831 offset: usize,
2832 _depth: fidl::encoding::Depth,
2833 ) -> fidl::Result<()> {
2834 decoder.debug_check_bounds::<Self>(offset);
2835 fidl::decode!(PlugState, D, &mut self.plug_state, decoder, offset + 0, _depth)?;
2837 Ok(())
2838 }
2839 }
2840
2841 impl fidl::encoding::ValueTypeMarker for CodecGetDaiFormatsResponse {
2842 type Borrowed<'a> = &'a Self;
2843 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2844 value
2845 }
2846 }
2847
2848 unsafe impl fidl::encoding::TypeMarker for CodecGetDaiFormatsResponse {
2849 type Owned = Self;
2850
2851 #[inline(always)]
2852 fn inline_align(_context: fidl::encoding::Context) -> usize {
2853 8
2854 }
2855
2856 #[inline(always)]
2857 fn inline_size(_context: fidl::encoding::Context) -> usize {
2858 16
2859 }
2860 }
2861
2862 unsafe impl<D: fidl::encoding::ResourceDialect>
2863 fidl::encoding::Encode<CodecGetDaiFormatsResponse, D> for &CodecGetDaiFormatsResponse
2864 {
2865 #[inline]
2866 unsafe fn encode(
2867 self,
2868 encoder: &mut fidl::encoding::Encoder<'_, D>,
2869 offset: usize,
2870 _depth: fidl::encoding::Depth,
2871 ) -> fidl::Result<()> {
2872 encoder.debug_check_bounds::<CodecGetDaiFormatsResponse>(offset);
2873 fidl::encoding::Encode::<CodecGetDaiFormatsResponse, D>::encode(
2875 (
2876 <fidl::encoding::Vector<DaiSupportedFormats, 64> as fidl::encoding::ValueTypeMarker>::borrow(&self.formats),
2877 ),
2878 encoder, offset, _depth
2879 )
2880 }
2881 }
2882 unsafe impl<
2883 D: fidl::encoding::ResourceDialect,
2884 T0: fidl::encoding::Encode<fidl::encoding::Vector<DaiSupportedFormats, 64>, D>,
2885 > fidl::encoding::Encode<CodecGetDaiFormatsResponse, D> for (T0,)
2886 {
2887 #[inline]
2888 unsafe fn encode(
2889 self,
2890 encoder: &mut fidl::encoding::Encoder<'_, D>,
2891 offset: usize,
2892 depth: fidl::encoding::Depth,
2893 ) -> fidl::Result<()> {
2894 encoder.debug_check_bounds::<CodecGetDaiFormatsResponse>(offset);
2895 self.0.encode(encoder, offset + 0, depth)?;
2899 Ok(())
2900 }
2901 }
2902
2903 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2904 for CodecGetDaiFormatsResponse
2905 {
2906 #[inline(always)]
2907 fn new_empty() -> Self {
2908 Self { formats: fidl::new_empty!(fidl::encoding::Vector<DaiSupportedFormats, 64>, D) }
2909 }
2910
2911 #[inline]
2912 unsafe fn decode(
2913 &mut self,
2914 decoder: &mut fidl::encoding::Decoder<'_, D>,
2915 offset: usize,
2916 _depth: fidl::encoding::Depth,
2917 ) -> fidl::Result<()> {
2918 decoder.debug_check_bounds::<Self>(offset);
2919 fidl::decode!(fidl::encoding::Vector<DaiSupportedFormats, 64>, D, &mut self.formats, decoder, offset + 0, _depth)?;
2921 Ok(())
2922 }
2923 }
2924
2925 impl fidl::encoding::ValueTypeMarker for CodecSetDaiFormatResponse {
2926 type Borrowed<'a> = &'a Self;
2927 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2928 value
2929 }
2930 }
2931
2932 unsafe impl fidl::encoding::TypeMarker for CodecSetDaiFormatResponse {
2933 type Owned = Self;
2934
2935 #[inline(always)]
2936 fn inline_align(_context: fidl::encoding::Context) -> usize {
2937 8
2938 }
2939
2940 #[inline(always)]
2941 fn inline_size(_context: fidl::encoding::Context) -> usize {
2942 16
2943 }
2944 }
2945
2946 unsafe impl<D: fidl::encoding::ResourceDialect>
2947 fidl::encoding::Encode<CodecSetDaiFormatResponse, D> for &CodecSetDaiFormatResponse
2948 {
2949 #[inline]
2950 unsafe fn encode(
2951 self,
2952 encoder: &mut fidl::encoding::Encoder<'_, D>,
2953 offset: usize,
2954 _depth: fidl::encoding::Depth,
2955 ) -> fidl::Result<()> {
2956 encoder.debug_check_bounds::<CodecSetDaiFormatResponse>(offset);
2957 fidl::encoding::Encode::<CodecSetDaiFormatResponse, D>::encode(
2959 (<CodecFormatInfo as fidl::encoding::ValueTypeMarker>::borrow(&self.state),),
2960 encoder,
2961 offset,
2962 _depth,
2963 )
2964 }
2965 }
2966 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<CodecFormatInfo, D>>
2967 fidl::encoding::Encode<CodecSetDaiFormatResponse, D> for (T0,)
2968 {
2969 #[inline]
2970 unsafe fn encode(
2971 self,
2972 encoder: &mut fidl::encoding::Encoder<'_, D>,
2973 offset: usize,
2974 depth: fidl::encoding::Depth,
2975 ) -> fidl::Result<()> {
2976 encoder.debug_check_bounds::<CodecSetDaiFormatResponse>(offset);
2977 self.0.encode(encoder, offset + 0, depth)?;
2981 Ok(())
2982 }
2983 }
2984
2985 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2986 for CodecSetDaiFormatResponse
2987 {
2988 #[inline(always)]
2989 fn new_empty() -> Self {
2990 Self { state: fidl::new_empty!(CodecFormatInfo, D) }
2991 }
2992
2993 #[inline]
2994 unsafe fn decode(
2995 &mut self,
2996 decoder: &mut fidl::encoding::Decoder<'_, D>,
2997 offset: usize,
2998 _depth: fidl::encoding::Depth,
2999 ) -> fidl::Result<()> {
3000 decoder.debug_check_bounds::<Self>(offset);
3001 fidl::decode!(CodecFormatInfo, D, &mut self.state, decoder, offset + 0, _depth)?;
3003 Ok(())
3004 }
3005 }
3006
3007 impl fidl::encoding::ValueTypeMarker for CompositeGetDaiFormatsRequest {
3008 type Borrowed<'a> = &'a Self;
3009 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3010 value
3011 }
3012 }
3013
3014 unsafe impl fidl::encoding::TypeMarker for CompositeGetDaiFormatsRequest {
3015 type Owned = Self;
3016
3017 #[inline(always)]
3018 fn inline_align(_context: fidl::encoding::Context) -> usize {
3019 8
3020 }
3021
3022 #[inline(always)]
3023 fn inline_size(_context: fidl::encoding::Context) -> usize {
3024 8
3025 }
3026 #[inline(always)]
3027 fn encode_is_copy() -> bool {
3028 true
3029 }
3030
3031 #[inline(always)]
3032 fn decode_is_copy() -> bool {
3033 true
3034 }
3035 }
3036
3037 unsafe impl<D: fidl::encoding::ResourceDialect>
3038 fidl::encoding::Encode<CompositeGetDaiFormatsRequest, D>
3039 for &CompositeGetDaiFormatsRequest
3040 {
3041 #[inline]
3042 unsafe fn encode(
3043 self,
3044 encoder: &mut fidl::encoding::Encoder<'_, D>,
3045 offset: usize,
3046 _depth: fidl::encoding::Depth,
3047 ) -> fidl::Result<()> {
3048 encoder.debug_check_bounds::<CompositeGetDaiFormatsRequest>(offset);
3049 unsafe {
3050 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
3052 (buf_ptr as *mut CompositeGetDaiFormatsRequest)
3053 .write_unaligned((self as *const CompositeGetDaiFormatsRequest).read());
3054 }
3057 Ok(())
3058 }
3059 }
3060 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<u64, D>>
3061 fidl::encoding::Encode<CompositeGetDaiFormatsRequest, D> for (T0,)
3062 {
3063 #[inline]
3064 unsafe fn encode(
3065 self,
3066 encoder: &mut fidl::encoding::Encoder<'_, D>,
3067 offset: usize,
3068 depth: fidl::encoding::Depth,
3069 ) -> fidl::Result<()> {
3070 encoder.debug_check_bounds::<CompositeGetDaiFormatsRequest>(offset);
3071 self.0.encode(encoder, offset + 0, depth)?;
3075 Ok(())
3076 }
3077 }
3078
3079 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
3080 for CompositeGetDaiFormatsRequest
3081 {
3082 #[inline(always)]
3083 fn new_empty() -> Self {
3084 Self { processing_element_id: fidl::new_empty!(u64, D) }
3085 }
3086
3087 #[inline]
3088 unsafe fn decode(
3089 &mut self,
3090 decoder: &mut fidl::encoding::Decoder<'_, D>,
3091 offset: usize,
3092 _depth: fidl::encoding::Depth,
3093 ) -> fidl::Result<()> {
3094 decoder.debug_check_bounds::<Self>(offset);
3095 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
3096 unsafe {
3099 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 8);
3100 }
3101 Ok(())
3102 }
3103 }
3104
3105 impl fidl::encoding::ValueTypeMarker for CompositeGetPacketStreamFormatsRequest {
3106 type Borrowed<'a> = &'a Self;
3107 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3108 value
3109 }
3110 }
3111
3112 unsafe impl fidl::encoding::TypeMarker for CompositeGetPacketStreamFormatsRequest {
3113 type Owned = Self;
3114
3115 #[inline(always)]
3116 fn inline_align(_context: fidl::encoding::Context) -> usize {
3117 8
3118 }
3119
3120 #[inline(always)]
3121 fn inline_size(_context: fidl::encoding::Context) -> usize {
3122 8
3123 }
3124 #[inline(always)]
3125 fn encode_is_copy() -> bool {
3126 true
3127 }
3128
3129 #[inline(always)]
3130 fn decode_is_copy() -> bool {
3131 true
3132 }
3133 }
3134
3135 unsafe impl<D: fidl::encoding::ResourceDialect>
3136 fidl::encoding::Encode<CompositeGetPacketStreamFormatsRequest, D>
3137 for &CompositeGetPacketStreamFormatsRequest
3138 {
3139 #[inline]
3140 unsafe fn encode(
3141 self,
3142 encoder: &mut fidl::encoding::Encoder<'_, D>,
3143 offset: usize,
3144 _depth: fidl::encoding::Depth,
3145 ) -> fidl::Result<()> {
3146 encoder.debug_check_bounds::<CompositeGetPacketStreamFormatsRequest>(offset);
3147 unsafe {
3148 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
3150 (buf_ptr as *mut CompositeGetPacketStreamFormatsRequest).write_unaligned(
3151 (self as *const CompositeGetPacketStreamFormatsRequest).read(),
3152 );
3153 }
3156 Ok(())
3157 }
3158 }
3159 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<u64, D>>
3160 fidl::encoding::Encode<CompositeGetPacketStreamFormatsRequest, D> for (T0,)
3161 {
3162 #[inline]
3163 unsafe fn encode(
3164 self,
3165 encoder: &mut fidl::encoding::Encoder<'_, D>,
3166 offset: usize,
3167 depth: fidl::encoding::Depth,
3168 ) -> fidl::Result<()> {
3169 encoder.debug_check_bounds::<CompositeGetPacketStreamFormatsRequest>(offset);
3170 self.0.encode(encoder, offset + 0, depth)?;
3174 Ok(())
3175 }
3176 }
3177
3178 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
3179 for CompositeGetPacketStreamFormatsRequest
3180 {
3181 #[inline(always)]
3182 fn new_empty() -> Self {
3183 Self { processing_element_id: fidl::new_empty!(u64, D) }
3184 }
3185
3186 #[inline]
3187 unsafe fn decode(
3188 &mut self,
3189 decoder: &mut fidl::encoding::Decoder<'_, D>,
3190 offset: usize,
3191 _depth: fidl::encoding::Depth,
3192 ) -> fidl::Result<()> {
3193 decoder.debug_check_bounds::<Self>(offset);
3194 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
3195 unsafe {
3198 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 8);
3199 }
3200 Ok(())
3201 }
3202 }
3203
3204 impl fidl::encoding::ValueTypeMarker for CompositeGetRingBufferFormatsRequest {
3205 type Borrowed<'a> = &'a Self;
3206 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3207 value
3208 }
3209 }
3210
3211 unsafe impl fidl::encoding::TypeMarker for CompositeGetRingBufferFormatsRequest {
3212 type Owned = Self;
3213
3214 #[inline(always)]
3215 fn inline_align(_context: fidl::encoding::Context) -> usize {
3216 8
3217 }
3218
3219 #[inline(always)]
3220 fn inline_size(_context: fidl::encoding::Context) -> usize {
3221 8
3222 }
3223 #[inline(always)]
3224 fn encode_is_copy() -> bool {
3225 true
3226 }
3227
3228 #[inline(always)]
3229 fn decode_is_copy() -> bool {
3230 true
3231 }
3232 }
3233
3234 unsafe impl<D: fidl::encoding::ResourceDialect>
3235 fidl::encoding::Encode<CompositeGetRingBufferFormatsRequest, D>
3236 for &CompositeGetRingBufferFormatsRequest
3237 {
3238 #[inline]
3239 unsafe fn encode(
3240 self,
3241 encoder: &mut fidl::encoding::Encoder<'_, D>,
3242 offset: usize,
3243 _depth: fidl::encoding::Depth,
3244 ) -> fidl::Result<()> {
3245 encoder.debug_check_bounds::<CompositeGetRingBufferFormatsRequest>(offset);
3246 unsafe {
3247 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
3249 (buf_ptr as *mut CompositeGetRingBufferFormatsRequest)
3250 .write_unaligned((self as *const CompositeGetRingBufferFormatsRequest).read());
3251 }
3254 Ok(())
3255 }
3256 }
3257 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<u64, D>>
3258 fidl::encoding::Encode<CompositeGetRingBufferFormatsRequest, D> for (T0,)
3259 {
3260 #[inline]
3261 unsafe fn encode(
3262 self,
3263 encoder: &mut fidl::encoding::Encoder<'_, D>,
3264 offset: usize,
3265 depth: fidl::encoding::Depth,
3266 ) -> fidl::Result<()> {
3267 encoder.debug_check_bounds::<CompositeGetRingBufferFormatsRequest>(offset);
3268 self.0.encode(encoder, offset + 0, depth)?;
3272 Ok(())
3273 }
3274 }
3275
3276 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
3277 for CompositeGetRingBufferFormatsRequest
3278 {
3279 #[inline(always)]
3280 fn new_empty() -> Self {
3281 Self { processing_element_id: fidl::new_empty!(u64, D) }
3282 }
3283
3284 #[inline]
3285 unsafe fn decode(
3286 &mut self,
3287 decoder: &mut fidl::encoding::Decoder<'_, D>,
3288 offset: usize,
3289 _depth: fidl::encoding::Depth,
3290 ) -> fidl::Result<()> {
3291 decoder.debug_check_bounds::<Self>(offset);
3292 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
3293 unsafe {
3296 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 8);
3297 }
3298 Ok(())
3299 }
3300 }
3301
3302 impl fidl::encoding::ValueTypeMarker for CompositeSetDaiFormatRequest {
3303 type Borrowed<'a> = &'a Self;
3304 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3305 value
3306 }
3307 }
3308
3309 unsafe impl fidl::encoding::TypeMarker for CompositeSetDaiFormatRequest {
3310 type Owned = Self;
3311
3312 #[inline(always)]
3313 fn inline_align(_context: fidl::encoding::Context) -> usize {
3314 8
3315 }
3316
3317 #[inline(always)]
3318 fn inline_size(_context: fidl::encoding::Context) -> usize {
3319 56
3320 }
3321 }
3322
3323 unsafe impl<D: fidl::encoding::ResourceDialect>
3324 fidl::encoding::Encode<CompositeSetDaiFormatRequest, D> for &CompositeSetDaiFormatRequest
3325 {
3326 #[inline]
3327 unsafe fn encode(
3328 self,
3329 encoder: &mut fidl::encoding::Encoder<'_, D>,
3330 offset: usize,
3331 _depth: fidl::encoding::Depth,
3332 ) -> fidl::Result<()> {
3333 encoder.debug_check_bounds::<CompositeSetDaiFormatRequest>(offset);
3334 fidl::encoding::Encode::<CompositeSetDaiFormatRequest, D>::encode(
3336 (
3337 <u64 as fidl::encoding::ValueTypeMarker>::borrow(&self.processing_element_id),
3338 <DaiFormat as fidl::encoding::ValueTypeMarker>::borrow(&self.format),
3339 ),
3340 encoder,
3341 offset,
3342 _depth,
3343 )
3344 }
3345 }
3346 unsafe impl<
3347 D: fidl::encoding::ResourceDialect,
3348 T0: fidl::encoding::Encode<u64, D>,
3349 T1: fidl::encoding::Encode<DaiFormat, D>,
3350 > fidl::encoding::Encode<CompositeSetDaiFormatRequest, D> for (T0, T1)
3351 {
3352 #[inline]
3353 unsafe fn encode(
3354 self,
3355 encoder: &mut fidl::encoding::Encoder<'_, D>,
3356 offset: usize,
3357 depth: fidl::encoding::Depth,
3358 ) -> fidl::Result<()> {
3359 encoder.debug_check_bounds::<CompositeSetDaiFormatRequest>(offset);
3360 self.0.encode(encoder, offset + 0, depth)?;
3364 self.1.encode(encoder, offset + 8, depth)?;
3365 Ok(())
3366 }
3367 }
3368
3369 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
3370 for CompositeSetDaiFormatRequest
3371 {
3372 #[inline(always)]
3373 fn new_empty() -> Self {
3374 Self {
3375 processing_element_id: fidl::new_empty!(u64, D),
3376 format: fidl::new_empty!(DaiFormat, D),
3377 }
3378 }
3379
3380 #[inline]
3381 unsafe fn decode(
3382 &mut self,
3383 decoder: &mut fidl::encoding::Decoder<'_, D>,
3384 offset: usize,
3385 _depth: fidl::encoding::Depth,
3386 ) -> fidl::Result<()> {
3387 decoder.debug_check_bounds::<Self>(offset);
3388 fidl::decode!(u64, D, &mut self.processing_element_id, decoder, offset + 0, _depth)?;
3390 fidl::decode!(DaiFormat, D, &mut self.format, decoder, offset + 8, _depth)?;
3391 Ok(())
3392 }
3393 }
3394
3395 impl fidl::encoding::ValueTypeMarker for CompositeGetDaiFormatsResponse {
3396 type Borrowed<'a> = &'a Self;
3397 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3398 value
3399 }
3400 }
3401
3402 unsafe impl fidl::encoding::TypeMarker for CompositeGetDaiFormatsResponse {
3403 type Owned = Self;
3404
3405 #[inline(always)]
3406 fn inline_align(_context: fidl::encoding::Context) -> usize {
3407 8
3408 }
3409
3410 #[inline(always)]
3411 fn inline_size(_context: fidl::encoding::Context) -> usize {
3412 16
3413 }
3414 }
3415
3416 unsafe impl<D: fidl::encoding::ResourceDialect>
3417 fidl::encoding::Encode<CompositeGetDaiFormatsResponse, D>
3418 for &CompositeGetDaiFormatsResponse
3419 {
3420 #[inline]
3421 unsafe fn encode(
3422 self,
3423 encoder: &mut fidl::encoding::Encoder<'_, D>,
3424 offset: usize,
3425 _depth: fidl::encoding::Depth,
3426 ) -> fidl::Result<()> {
3427 encoder.debug_check_bounds::<CompositeGetDaiFormatsResponse>(offset);
3428 fidl::encoding::Encode::<CompositeGetDaiFormatsResponse, D>::encode(
3430 (
3431 <fidl::encoding::Vector<DaiSupportedFormats, 64> as fidl::encoding::ValueTypeMarker>::borrow(&self.dai_formats),
3432 ),
3433 encoder, offset, _depth
3434 )
3435 }
3436 }
3437 unsafe impl<
3438 D: fidl::encoding::ResourceDialect,
3439 T0: fidl::encoding::Encode<fidl::encoding::Vector<DaiSupportedFormats, 64>, D>,
3440 > fidl::encoding::Encode<CompositeGetDaiFormatsResponse, D> for (T0,)
3441 {
3442 #[inline]
3443 unsafe fn encode(
3444 self,
3445 encoder: &mut fidl::encoding::Encoder<'_, D>,
3446 offset: usize,
3447 depth: fidl::encoding::Depth,
3448 ) -> fidl::Result<()> {
3449 encoder.debug_check_bounds::<CompositeGetDaiFormatsResponse>(offset);
3450 self.0.encode(encoder, offset + 0, depth)?;
3454 Ok(())
3455 }
3456 }
3457
3458 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
3459 for CompositeGetDaiFormatsResponse
3460 {
3461 #[inline(always)]
3462 fn new_empty() -> Self {
3463 Self {
3464 dai_formats: fidl::new_empty!(fidl::encoding::Vector<DaiSupportedFormats, 64>, D),
3465 }
3466 }
3467
3468 #[inline]
3469 unsafe fn decode(
3470 &mut self,
3471 decoder: &mut fidl::encoding::Decoder<'_, D>,
3472 offset: usize,
3473 _depth: fidl::encoding::Depth,
3474 ) -> fidl::Result<()> {
3475 decoder.debug_check_bounds::<Self>(offset);
3476 fidl::decode!(fidl::encoding::Vector<DaiSupportedFormats, 64>, D, &mut self.dai_formats, decoder, offset + 0, _depth)?;
3478 Ok(())
3479 }
3480 }
3481
3482 impl fidl::encoding::ValueTypeMarker for CompositeGetPacketStreamFormatsResponse {
3483 type Borrowed<'a> = &'a Self;
3484 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3485 value
3486 }
3487 }
3488
3489 unsafe impl fidl::encoding::TypeMarker for CompositeGetPacketStreamFormatsResponse {
3490 type Owned = Self;
3491
3492 #[inline(always)]
3493 fn inline_align(_context: fidl::encoding::Context) -> usize {
3494 8
3495 }
3496
3497 #[inline(always)]
3498 fn inline_size(_context: fidl::encoding::Context) -> usize {
3499 16
3500 }
3501 }
3502
3503 unsafe impl<D: fidl::encoding::ResourceDialect>
3504 fidl::encoding::Encode<CompositeGetPacketStreamFormatsResponse, D>
3505 for &CompositeGetPacketStreamFormatsResponse
3506 {
3507 #[inline]
3508 unsafe fn encode(
3509 self,
3510 encoder: &mut fidl::encoding::Encoder<'_, D>,
3511 offset: usize,
3512 _depth: fidl::encoding::Depth,
3513 ) -> fidl::Result<()> {
3514 encoder.debug_check_bounds::<CompositeGetPacketStreamFormatsResponse>(offset);
3515 fidl::encoding::Encode::<CompositeGetPacketStreamFormatsResponse, D>::encode(
3517 (
3518 <fidl::encoding::Vector<SupportedFormats2, 64> as fidl::encoding::ValueTypeMarker>::borrow(&self.packet_stream_formats),
3519 ),
3520 encoder, offset, _depth
3521 )
3522 }
3523 }
3524 unsafe impl<
3525 D: fidl::encoding::ResourceDialect,
3526 T0: fidl::encoding::Encode<fidl::encoding::Vector<SupportedFormats2, 64>, D>,
3527 > fidl::encoding::Encode<CompositeGetPacketStreamFormatsResponse, D> for (T0,)
3528 {
3529 #[inline]
3530 unsafe fn encode(
3531 self,
3532 encoder: &mut fidl::encoding::Encoder<'_, D>,
3533 offset: usize,
3534 depth: fidl::encoding::Depth,
3535 ) -> fidl::Result<()> {
3536 encoder.debug_check_bounds::<CompositeGetPacketStreamFormatsResponse>(offset);
3537 self.0.encode(encoder, offset + 0, depth)?;
3541 Ok(())
3542 }
3543 }
3544
3545 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
3546 for CompositeGetPacketStreamFormatsResponse
3547 {
3548 #[inline(always)]
3549 fn new_empty() -> Self {
3550 Self {
3551 packet_stream_formats: fidl::new_empty!(fidl::encoding::Vector<SupportedFormats2, 64>, D),
3552 }
3553 }
3554
3555 #[inline]
3556 unsafe fn decode(
3557 &mut self,
3558 decoder: &mut fidl::encoding::Decoder<'_, D>,
3559 offset: usize,
3560 _depth: fidl::encoding::Depth,
3561 ) -> fidl::Result<()> {
3562 decoder.debug_check_bounds::<Self>(offset);
3563 fidl::decode!(fidl::encoding::Vector<SupportedFormats2, 64>, D, &mut self.packet_stream_formats, decoder, offset + 0, _depth)?;
3565 Ok(())
3566 }
3567 }
3568
3569 impl fidl::encoding::ValueTypeMarker for CompositeGetPropertiesResponse {
3570 type Borrowed<'a> = &'a Self;
3571 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3572 value
3573 }
3574 }
3575
3576 unsafe impl fidl::encoding::TypeMarker for CompositeGetPropertiesResponse {
3577 type Owned = Self;
3578
3579 #[inline(always)]
3580 fn inline_align(_context: fidl::encoding::Context) -> usize {
3581 8
3582 }
3583
3584 #[inline(always)]
3585 fn inline_size(_context: fidl::encoding::Context) -> usize {
3586 16
3587 }
3588 }
3589
3590 unsafe impl<D: fidl::encoding::ResourceDialect>
3591 fidl::encoding::Encode<CompositeGetPropertiesResponse, D>
3592 for &CompositeGetPropertiesResponse
3593 {
3594 #[inline]
3595 unsafe fn encode(
3596 self,
3597 encoder: &mut fidl::encoding::Encoder<'_, D>,
3598 offset: usize,
3599 _depth: fidl::encoding::Depth,
3600 ) -> fidl::Result<()> {
3601 encoder.debug_check_bounds::<CompositeGetPropertiesResponse>(offset);
3602 fidl::encoding::Encode::<CompositeGetPropertiesResponse, D>::encode(
3604 (<CompositeProperties as fidl::encoding::ValueTypeMarker>::borrow(
3605 &self.properties,
3606 ),),
3607 encoder,
3608 offset,
3609 _depth,
3610 )
3611 }
3612 }
3613 unsafe impl<
3614 D: fidl::encoding::ResourceDialect,
3615 T0: fidl::encoding::Encode<CompositeProperties, D>,
3616 > fidl::encoding::Encode<CompositeGetPropertiesResponse, D> for (T0,)
3617 {
3618 #[inline]
3619 unsafe fn encode(
3620 self,
3621 encoder: &mut fidl::encoding::Encoder<'_, D>,
3622 offset: usize,
3623 depth: fidl::encoding::Depth,
3624 ) -> fidl::Result<()> {
3625 encoder.debug_check_bounds::<CompositeGetPropertiesResponse>(offset);
3626 self.0.encode(encoder, offset + 0, depth)?;
3630 Ok(())
3631 }
3632 }
3633
3634 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
3635 for CompositeGetPropertiesResponse
3636 {
3637 #[inline(always)]
3638 fn new_empty() -> Self {
3639 Self { properties: fidl::new_empty!(CompositeProperties, D) }
3640 }
3641
3642 #[inline]
3643 unsafe fn decode(
3644 &mut self,
3645 decoder: &mut fidl::encoding::Decoder<'_, D>,
3646 offset: usize,
3647 _depth: fidl::encoding::Depth,
3648 ) -> fidl::Result<()> {
3649 decoder.debug_check_bounds::<Self>(offset);
3650 fidl::decode!(
3652 CompositeProperties,
3653 D,
3654 &mut self.properties,
3655 decoder,
3656 offset + 0,
3657 _depth
3658 )?;
3659 Ok(())
3660 }
3661 }
3662
3663 impl fidl::encoding::ValueTypeMarker for CompositeGetRingBufferFormatsResponse {
3664 type Borrowed<'a> = &'a Self;
3665 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3666 value
3667 }
3668 }
3669
3670 unsafe impl fidl::encoding::TypeMarker for CompositeGetRingBufferFormatsResponse {
3671 type Owned = Self;
3672
3673 #[inline(always)]
3674 fn inline_align(_context: fidl::encoding::Context) -> usize {
3675 8
3676 }
3677
3678 #[inline(always)]
3679 fn inline_size(_context: fidl::encoding::Context) -> usize {
3680 16
3681 }
3682 }
3683
3684 unsafe impl<D: fidl::encoding::ResourceDialect>
3685 fidl::encoding::Encode<CompositeGetRingBufferFormatsResponse, D>
3686 for &CompositeGetRingBufferFormatsResponse
3687 {
3688 #[inline]
3689 unsafe fn encode(
3690 self,
3691 encoder: &mut fidl::encoding::Encoder<'_, D>,
3692 offset: usize,
3693 _depth: fidl::encoding::Depth,
3694 ) -> fidl::Result<()> {
3695 encoder.debug_check_bounds::<CompositeGetRingBufferFormatsResponse>(offset);
3696 fidl::encoding::Encode::<CompositeGetRingBufferFormatsResponse, D>::encode(
3698 (
3699 <fidl::encoding::Vector<SupportedFormats2, 64> as fidl::encoding::ValueTypeMarker>::borrow(&self.ring_buffer_formats),
3700 ),
3701 encoder, offset, _depth
3702 )
3703 }
3704 }
3705 unsafe impl<
3706 D: fidl::encoding::ResourceDialect,
3707 T0: fidl::encoding::Encode<fidl::encoding::Vector<SupportedFormats2, 64>, D>,
3708 > fidl::encoding::Encode<CompositeGetRingBufferFormatsResponse, D> for (T0,)
3709 {
3710 #[inline]
3711 unsafe fn encode(
3712 self,
3713 encoder: &mut fidl::encoding::Encoder<'_, D>,
3714 offset: usize,
3715 depth: fidl::encoding::Depth,
3716 ) -> fidl::Result<()> {
3717 encoder.debug_check_bounds::<CompositeGetRingBufferFormatsResponse>(offset);
3718 self.0.encode(encoder, offset + 0, depth)?;
3722 Ok(())
3723 }
3724 }
3725
3726 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
3727 for CompositeGetRingBufferFormatsResponse
3728 {
3729 #[inline(always)]
3730 fn new_empty() -> Self {
3731 Self {
3732 ring_buffer_formats: fidl::new_empty!(fidl::encoding::Vector<SupportedFormats2, 64>, D),
3733 }
3734 }
3735
3736 #[inline]
3737 unsafe fn decode(
3738 &mut self,
3739 decoder: &mut fidl::encoding::Decoder<'_, D>,
3740 offset: usize,
3741 _depth: fidl::encoding::Depth,
3742 ) -> fidl::Result<()> {
3743 decoder.debug_check_bounds::<Self>(offset);
3744 fidl::decode!(fidl::encoding::Vector<SupportedFormats2, 64>, D, &mut self.ring_buffer_formats, decoder, offset + 0, _depth)?;
3746 Ok(())
3747 }
3748 }
3749
3750 impl fidl::encoding::ValueTypeMarker for DaiFormat {
3751 type Borrowed<'a> = &'a Self;
3752 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3753 value
3754 }
3755 }
3756
3757 unsafe impl fidl::encoding::TypeMarker for DaiFormat {
3758 type Owned = Self;
3759
3760 #[inline(always)]
3761 fn inline_align(_context: fidl::encoding::Context) -> usize {
3762 8
3763 }
3764
3765 #[inline(always)]
3766 fn inline_size(_context: fidl::encoding::Context) -> usize {
3767 48
3768 }
3769 }
3770
3771 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<DaiFormat, D>
3772 for &DaiFormat
3773 {
3774 #[inline]
3775 unsafe fn encode(
3776 self,
3777 encoder: &mut fidl::encoding::Encoder<'_, D>,
3778 offset: usize,
3779 _depth: fidl::encoding::Depth,
3780 ) -> fidl::Result<()> {
3781 encoder.debug_check_bounds::<DaiFormat>(offset);
3782 fidl::encoding::Encode::<DaiFormat, D>::encode(
3784 (
3785 <u32 as fidl::encoding::ValueTypeMarker>::borrow(&self.number_of_channels),
3786 <u64 as fidl::encoding::ValueTypeMarker>::borrow(&self.channels_to_use_bitmask),
3787 <DaiSampleFormat as fidl::encoding::ValueTypeMarker>::borrow(
3788 &self.sample_format,
3789 ),
3790 <DaiFrameFormat as fidl::encoding::ValueTypeMarker>::borrow(&self.frame_format),
3791 <u32 as fidl::encoding::ValueTypeMarker>::borrow(&self.frame_rate),
3792 <u8 as fidl::encoding::ValueTypeMarker>::borrow(&self.bits_per_slot),
3793 <u8 as fidl::encoding::ValueTypeMarker>::borrow(&self.bits_per_sample),
3794 ),
3795 encoder,
3796 offset,
3797 _depth,
3798 )
3799 }
3800 }
3801 unsafe impl<
3802 D: fidl::encoding::ResourceDialect,
3803 T0: fidl::encoding::Encode<u32, D>,
3804 T1: fidl::encoding::Encode<u64, D>,
3805 T2: fidl::encoding::Encode<DaiSampleFormat, D>,
3806 T3: fidl::encoding::Encode<DaiFrameFormat, D>,
3807 T4: fidl::encoding::Encode<u32, D>,
3808 T5: fidl::encoding::Encode<u8, D>,
3809 T6: fidl::encoding::Encode<u8, D>,
3810 > fidl::encoding::Encode<DaiFormat, D> for (T0, T1, T2, T3, T4, T5, T6)
3811 {
3812 #[inline]
3813 unsafe fn encode(
3814 self,
3815 encoder: &mut fidl::encoding::Encoder<'_, D>,
3816 offset: usize,
3817 depth: fidl::encoding::Depth,
3818 ) -> fidl::Result<()> {
3819 encoder.debug_check_bounds::<DaiFormat>(offset);
3820 unsafe {
3823 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(0);
3824 (ptr as *mut u64).write_unaligned(0);
3825 }
3826 unsafe {
3827 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(16);
3828 (ptr as *mut u64).write_unaligned(0);
3829 }
3830 unsafe {
3831 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(40);
3832 (ptr as *mut u64).write_unaligned(0);
3833 }
3834 self.0.encode(encoder, offset + 0, depth)?;
3836 self.1.encode(encoder, offset + 8, depth)?;
3837 self.2.encode(encoder, offset + 16, depth)?;
3838 self.3.encode(encoder, offset + 24, depth)?;
3839 self.4.encode(encoder, offset + 40, depth)?;
3840 self.5.encode(encoder, offset + 44, depth)?;
3841 self.6.encode(encoder, offset + 45, depth)?;
3842 Ok(())
3843 }
3844 }
3845
3846 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for DaiFormat {
3847 #[inline(always)]
3848 fn new_empty() -> Self {
3849 Self {
3850 number_of_channels: fidl::new_empty!(u32, D),
3851 channels_to_use_bitmask: fidl::new_empty!(u64, D),
3852 sample_format: fidl::new_empty!(DaiSampleFormat, D),
3853 frame_format: fidl::new_empty!(DaiFrameFormat, D),
3854 frame_rate: fidl::new_empty!(u32, D),
3855 bits_per_slot: fidl::new_empty!(u8, D),
3856 bits_per_sample: fidl::new_empty!(u8, D),
3857 }
3858 }
3859
3860 #[inline]
3861 unsafe fn decode(
3862 &mut self,
3863 decoder: &mut fidl::encoding::Decoder<'_, D>,
3864 offset: usize,
3865 _depth: fidl::encoding::Depth,
3866 ) -> fidl::Result<()> {
3867 decoder.debug_check_bounds::<Self>(offset);
3868 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(0) };
3870 let padval = unsafe { (ptr as *const u64).read_unaligned() };
3871 let mask = 0xffffffff00000000u64;
3872 let maskedval = padval & mask;
3873 if maskedval != 0 {
3874 return Err(fidl::Error::NonZeroPadding {
3875 padding_start: offset + 0 + ((mask as u64).trailing_zeros() / 8) as usize,
3876 });
3877 }
3878 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(16) };
3879 let padval = unsafe { (ptr as *const u64).read_unaligned() };
3880 let mask = 0xffffffffffffff00u64;
3881 let maskedval = padval & mask;
3882 if maskedval != 0 {
3883 return Err(fidl::Error::NonZeroPadding {
3884 padding_start: offset + 16 + ((mask as u64).trailing_zeros() / 8) as usize,
3885 });
3886 }
3887 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(40) };
3888 let padval = unsafe { (ptr as *const u64).read_unaligned() };
3889 let mask = 0xffff000000000000u64;
3890 let maskedval = padval & mask;
3891 if maskedval != 0 {
3892 return Err(fidl::Error::NonZeroPadding {
3893 padding_start: offset + 40 + ((mask as u64).trailing_zeros() / 8) as usize,
3894 });
3895 }
3896 fidl::decode!(u32, D, &mut self.number_of_channels, decoder, offset + 0, _depth)?;
3897 fidl::decode!(u64, D, &mut self.channels_to_use_bitmask, decoder, offset + 8, _depth)?;
3898 fidl::decode!(
3899 DaiSampleFormat,
3900 D,
3901 &mut self.sample_format,
3902 decoder,
3903 offset + 16,
3904 _depth
3905 )?;
3906 fidl::decode!(DaiFrameFormat, D, &mut self.frame_format, decoder, offset + 24, _depth)?;
3907 fidl::decode!(u32, D, &mut self.frame_rate, decoder, offset + 40, _depth)?;
3908 fidl::decode!(u8, D, &mut self.bits_per_slot, decoder, offset + 44, _depth)?;
3909 fidl::decode!(u8, D, &mut self.bits_per_sample, decoder, offset + 45, _depth)?;
3910 Ok(())
3911 }
3912 }
3913
3914 impl fidl::encoding::ValueTypeMarker for DaiFrameFormatCustom {
3915 type Borrowed<'a> = &'a Self;
3916 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3917 value
3918 }
3919 }
3920
3921 unsafe impl fidl::encoding::TypeMarker for DaiFrameFormatCustom {
3922 type Owned = Self;
3923
3924 #[inline(always)]
3925 fn inline_align(_context: fidl::encoding::Context) -> usize {
3926 1
3927 }
3928
3929 #[inline(always)]
3930 fn inline_size(_context: fidl::encoding::Context) -> usize {
3931 4
3932 }
3933 }
3934
3935 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<DaiFrameFormatCustom, D>
3936 for &DaiFrameFormatCustom
3937 {
3938 #[inline]
3939 unsafe fn encode(
3940 self,
3941 encoder: &mut fidl::encoding::Encoder<'_, D>,
3942 offset: usize,
3943 _depth: fidl::encoding::Depth,
3944 ) -> fidl::Result<()> {
3945 encoder.debug_check_bounds::<DaiFrameFormatCustom>(offset);
3946 fidl::encoding::Encode::<DaiFrameFormatCustom, D>::encode(
3948 (
3949 <bool as fidl::encoding::ValueTypeMarker>::borrow(&self.left_justified),
3950 <bool as fidl::encoding::ValueTypeMarker>::borrow(&self.sclk_on_raising),
3951 <i8 as fidl::encoding::ValueTypeMarker>::borrow(&self.frame_sync_sclks_offset),
3952 <u8 as fidl::encoding::ValueTypeMarker>::borrow(&self.frame_sync_size),
3953 ),
3954 encoder,
3955 offset,
3956 _depth,
3957 )
3958 }
3959 }
3960 unsafe impl<
3961 D: fidl::encoding::ResourceDialect,
3962 T0: fidl::encoding::Encode<bool, D>,
3963 T1: fidl::encoding::Encode<bool, D>,
3964 T2: fidl::encoding::Encode<i8, D>,
3965 T3: fidl::encoding::Encode<u8, D>,
3966 > fidl::encoding::Encode<DaiFrameFormatCustom, D> for (T0, T1, T2, T3)
3967 {
3968 #[inline]
3969 unsafe fn encode(
3970 self,
3971 encoder: &mut fidl::encoding::Encoder<'_, D>,
3972 offset: usize,
3973 depth: fidl::encoding::Depth,
3974 ) -> fidl::Result<()> {
3975 encoder.debug_check_bounds::<DaiFrameFormatCustom>(offset);
3976 self.0.encode(encoder, offset + 0, depth)?;
3980 self.1.encode(encoder, offset + 1, depth)?;
3981 self.2.encode(encoder, offset + 2, depth)?;
3982 self.3.encode(encoder, offset + 3, depth)?;
3983 Ok(())
3984 }
3985 }
3986
3987 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for DaiFrameFormatCustom {
3988 #[inline(always)]
3989 fn new_empty() -> Self {
3990 Self {
3991 left_justified: fidl::new_empty!(bool, D),
3992 sclk_on_raising: fidl::new_empty!(bool, D),
3993 frame_sync_sclks_offset: fidl::new_empty!(i8, D),
3994 frame_sync_size: fidl::new_empty!(u8, D),
3995 }
3996 }
3997
3998 #[inline]
3999 unsafe fn decode(
4000 &mut self,
4001 decoder: &mut fidl::encoding::Decoder<'_, D>,
4002 offset: usize,
4003 _depth: fidl::encoding::Depth,
4004 ) -> fidl::Result<()> {
4005 decoder.debug_check_bounds::<Self>(offset);
4006 fidl::decode!(bool, D, &mut self.left_justified, decoder, offset + 0, _depth)?;
4008 fidl::decode!(bool, D, &mut self.sclk_on_raising, decoder, offset + 1, _depth)?;
4009 fidl::decode!(i8, D, &mut self.frame_sync_sclks_offset, decoder, offset + 2, _depth)?;
4010 fidl::decode!(u8, D, &mut self.frame_sync_size, decoder, offset + 3, _depth)?;
4011 Ok(())
4012 }
4013 }
4014
4015 impl fidl::encoding::ValueTypeMarker for DaiGetPropertiesResponse {
4016 type Borrowed<'a> = &'a Self;
4017 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4018 value
4019 }
4020 }
4021
4022 unsafe impl fidl::encoding::TypeMarker for DaiGetPropertiesResponse {
4023 type Owned = Self;
4024
4025 #[inline(always)]
4026 fn inline_align(_context: fidl::encoding::Context) -> usize {
4027 8
4028 }
4029
4030 #[inline(always)]
4031 fn inline_size(_context: fidl::encoding::Context) -> usize {
4032 16
4033 }
4034 }
4035
4036 unsafe impl<D: fidl::encoding::ResourceDialect>
4037 fidl::encoding::Encode<DaiGetPropertiesResponse, D> for &DaiGetPropertiesResponse
4038 {
4039 #[inline]
4040 unsafe fn encode(
4041 self,
4042 encoder: &mut fidl::encoding::Encoder<'_, D>,
4043 offset: usize,
4044 _depth: fidl::encoding::Depth,
4045 ) -> fidl::Result<()> {
4046 encoder.debug_check_bounds::<DaiGetPropertiesResponse>(offset);
4047 fidl::encoding::Encode::<DaiGetPropertiesResponse, D>::encode(
4049 (<DaiProperties as fidl::encoding::ValueTypeMarker>::borrow(&self.properties),),
4050 encoder,
4051 offset,
4052 _depth,
4053 )
4054 }
4055 }
4056 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<DaiProperties, D>>
4057 fidl::encoding::Encode<DaiGetPropertiesResponse, D> for (T0,)
4058 {
4059 #[inline]
4060 unsafe fn encode(
4061 self,
4062 encoder: &mut fidl::encoding::Encoder<'_, D>,
4063 offset: usize,
4064 depth: fidl::encoding::Depth,
4065 ) -> fidl::Result<()> {
4066 encoder.debug_check_bounds::<DaiGetPropertiesResponse>(offset);
4067 self.0.encode(encoder, offset + 0, depth)?;
4071 Ok(())
4072 }
4073 }
4074
4075 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
4076 for DaiGetPropertiesResponse
4077 {
4078 #[inline(always)]
4079 fn new_empty() -> Self {
4080 Self { properties: fidl::new_empty!(DaiProperties, D) }
4081 }
4082
4083 #[inline]
4084 unsafe fn decode(
4085 &mut self,
4086 decoder: &mut fidl::encoding::Decoder<'_, D>,
4087 offset: usize,
4088 _depth: fidl::encoding::Depth,
4089 ) -> fidl::Result<()> {
4090 decoder.debug_check_bounds::<Self>(offset);
4091 fidl::decode!(DaiProperties, D, &mut self.properties, decoder, offset + 0, _depth)?;
4093 Ok(())
4094 }
4095 }
4096
4097 impl fidl::encoding::ValueTypeMarker for DaiSupportedFormats {
4098 type Borrowed<'a> = &'a Self;
4099 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4100 value
4101 }
4102 }
4103
4104 unsafe impl fidl::encoding::TypeMarker for DaiSupportedFormats {
4105 type Owned = Self;
4106
4107 #[inline(always)]
4108 fn inline_align(_context: fidl::encoding::Context) -> usize {
4109 8
4110 }
4111
4112 #[inline(always)]
4113 fn inline_size(_context: fidl::encoding::Context) -> usize {
4114 96
4115 }
4116 }
4117
4118 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<DaiSupportedFormats, D>
4119 for &DaiSupportedFormats
4120 {
4121 #[inline]
4122 unsafe fn encode(
4123 self,
4124 encoder: &mut fidl::encoding::Encoder<'_, D>,
4125 offset: usize,
4126 _depth: fidl::encoding::Depth,
4127 ) -> fidl::Result<()> {
4128 encoder.debug_check_bounds::<DaiSupportedFormats>(offset);
4129 fidl::encoding::Encode::<DaiSupportedFormats, D>::encode(
4131 (
4132 <fidl::encoding::Vector<u32, 64> as fidl::encoding::ValueTypeMarker>::borrow(&self.number_of_channels),
4133 <fidl::encoding::Vector<DaiSampleFormat, 4> as fidl::encoding::ValueTypeMarker>::borrow(&self.sample_formats),
4134 <fidl::encoding::Vector<DaiFrameFormat, 64> as fidl::encoding::ValueTypeMarker>::borrow(&self.frame_formats),
4135 <fidl::encoding::Vector<u32, 64> as fidl::encoding::ValueTypeMarker>::borrow(&self.frame_rates),
4136 <fidl::encoding::Vector<u8, 8> as fidl::encoding::ValueTypeMarker>::borrow(&self.bits_per_slot),
4137 <fidl::encoding::Vector<u8, 8> as fidl::encoding::ValueTypeMarker>::borrow(&self.bits_per_sample),
4138 ),
4139 encoder, offset, _depth
4140 )
4141 }
4142 }
4143 unsafe impl<
4144 D: fidl::encoding::ResourceDialect,
4145 T0: fidl::encoding::Encode<fidl::encoding::Vector<u32, 64>, D>,
4146 T1: fidl::encoding::Encode<fidl::encoding::Vector<DaiSampleFormat, 4>, D>,
4147 T2: fidl::encoding::Encode<fidl::encoding::Vector<DaiFrameFormat, 64>, D>,
4148 T3: fidl::encoding::Encode<fidl::encoding::Vector<u32, 64>, D>,
4149 T4: fidl::encoding::Encode<fidl::encoding::Vector<u8, 8>, D>,
4150 T5: fidl::encoding::Encode<fidl::encoding::Vector<u8, 8>, D>,
4151 > fidl::encoding::Encode<DaiSupportedFormats, D> for (T0, T1, T2, T3, T4, T5)
4152 {
4153 #[inline]
4154 unsafe fn encode(
4155 self,
4156 encoder: &mut fidl::encoding::Encoder<'_, D>,
4157 offset: usize,
4158 depth: fidl::encoding::Depth,
4159 ) -> fidl::Result<()> {
4160 encoder.debug_check_bounds::<DaiSupportedFormats>(offset);
4161 self.0.encode(encoder, offset + 0, depth)?;
4165 self.1.encode(encoder, offset + 16, depth)?;
4166 self.2.encode(encoder, offset + 32, depth)?;
4167 self.3.encode(encoder, offset + 48, depth)?;
4168 self.4.encode(encoder, offset + 64, depth)?;
4169 self.5.encode(encoder, offset + 80, depth)?;
4170 Ok(())
4171 }
4172 }
4173
4174 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for DaiSupportedFormats {
4175 #[inline(always)]
4176 fn new_empty() -> Self {
4177 Self {
4178 number_of_channels: fidl::new_empty!(fidl::encoding::Vector<u32, 64>, D),
4179 sample_formats: fidl::new_empty!(fidl::encoding::Vector<DaiSampleFormat, 4>, D),
4180 frame_formats: fidl::new_empty!(fidl::encoding::Vector<DaiFrameFormat, 64>, D),
4181 frame_rates: fidl::new_empty!(fidl::encoding::Vector<u32, 64>, D),
4182 bits_per_slot: fidl::new_empty!(fidl::encoding::Vector<u8, 8>, D),
4183 bits_per_sample: fidl::new_empty!(fidl::encoding::Vector<u8, 8>, D),
4184 }
4185 }
4186
4187 #[inline]
4188 unsafe fn decode(
4189 &mut self,
4190 decoder: &mut fidl::encoding::Decoder<'_, D>,
4191 offset: usize,
4192 _depth: fidl::encoding::Depth,
4193 ) -> fidl::Result<()> {
4194 decoder.debug_check_bounds::<Self>(offset);
4195 fidl::decode!(fidl::encoding::Vector<u32, 64>, D, &mut self.number_of_channels, decoder, offset + 0, _depth)?;
4197 fidl::decode!(fidl::encoding::Vector<DaiSampleFormat, 4>, D, &mut self.sample_formats, decoder, offset + 16, _depth)?;
4198 fidl::decode!(fidl::encoding::Vector<DaiFrameFormat, 64>, D, &mut self.frame_formats, decoder, offset + 32, _depth)?;
4199 fidl::decode!(fidl::encoding::Vector<u32, 64>, D, &mut self.frame_rates, decoder, offset + 48, _depth)?;
4200 fidl::decode!(fidl::encoding::Vector<u8, 8>, D, &mut self.bits_per_slot, decoder, offset + 64, _depth)?;
4201 fidl::decode!(fidl::encoding::Vector<u8, 8>, D, &mut self.bits_per_sample, decoder, offset + 80, _depth)?;
4202 Ok(())
4203 }
4204 }
4205
4206 impl fidl::encoding::ValueTypeMarker for DaiGetDaiFormatsResponse {
4207 type Borrowed<'a> = &'a Self;
4208 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4209 value
4210 }
4211 }
4212
4213 unsafe impl fidl::encoding::TypeMarker for DaiGetDaiFormatsResponse {
4214 type Owned = Self;
4215
4216 #[inline(always)]
4217 fn inline_align(_context: fidl::encoding::Context) -> usize {
4218 8
4219 }
4220
4221 #[inline(always)]
4222 fn inline_size(_context: fidl::encoding::Context) -> usize {
4223 16
4224 }
4225 }
4226
4227 unsafe impl<D: fidl::encoding::ResourceDialect>
4228 fidl::encoding::Encode<DaiGetDaiFormatsResponse, D> for &DaiGetDaiFormatsResponse
4229 {
4230 #[inline]
4231 unsafe fn encode(
4232 self,
4233 encoder: &mut fidl::encoding::Encoder<'_, D>,
4234 offset: usize,
4235 _depth: fidl::encoding::Depth,
4236 ) -> fidl::Result<()> {
4237 encoder.debug_check_bounds::<DaiGetDaiFormatsResponse>(offset);
4238 fidl::encoding::Encode::<DaiGetDaiFormatsResponse, D>::encode(
4240 (
4241 <fidl::encoding::Vector<DaiSupportedFormats, 64> as fidl::encoding::ValueTypeMarker>::borrow(&self.dai_formats),
4242 ),
4243 encoder, offset, _depth
4244 )
4245 }
4246 }
4247 unsafe impl<
4248 D: fidl::encoding::ResourceDialect,
4249 T0: fidl::encoding::Encode<fidl::encoding::Vector<DaiSupportedFormats, 64>, D>,
4250 > fidl::encoding::Encode<DaiGetDaiFormatsResponse, D> for (T0,)
4251 {
4252 #[inline]
4253 unsafe fn encode(
4254 self,
4255 encoder: &mut fidl::encoding::Encoder<'_, D>,
4256 offset: usize,
4257 depth: fidl::encoding::Depth,
4258 ) -> fidl::Result<()> {
4259 encoder.debug_check_bounds::<DaiGetDaiFormatsResponse>(offset);
4260 self.0.encode(encoder, offset + 0, depth)?;
4264 Ok(())
4265 }
4266 }
4267
4268 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
4269 for DaiGetDaiFormatsResponse
4270 {
4271 #[inline(always)]
4272 fn new_empty() -> Self {
4273 Self {
4274 dai_formats: fidl::new_empty!(fidl::encoding::Vector<DaiSupportedFormats, 64>, D),
4275 }
4276 }
4277
4278 #[inline]
4279 unsafe fn decode(
4280 &mut self,
4281 decoder: &mut fidl::encoding::Decoder<'_, D>,
4282 offset: usize,
4283 _depth: fidl::encoding::Depth,
4284 ) -> fidl::Result<()> {
4285 decoder.debug_check_bounds::<Self>(offset);
4286 fidl::decode!(fidl::encoding::Vector<DaiSupportedFormats, 64>, D, &mut self.dai_formats, decoder, offset + 0, _depth)?;
4288 Ok(())
4289 }
4290 }
4291
4292 impl fidl::encoding::ValueTypeMarker for DaiGetRingBufferFormatsResponse {
4293 type Borrowed<'a> = &'a Self;
4294 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4295 value
4296 }
4297 }
4298
4299 unsafe impl fidl::encoding::TypeMarker for DaiGetRingBufferFormatsResponse {
4300 type Owned = Self;
4301
4302 #[inline(always)]
4303 fn inline_align(_context: fidl::encoding::Context) -> usize {
4304 8
4305 }
4306
4307 #[inline(always)]
4308 fn inline_size(_context: fidl::encoding::Context) -> usize {
4309 16
4310 }
4311 }
4312
4313 unsafe impl<D: fidl::encoding::ResourceDialect>
4314 fidl::encoding::Encode<DaiGetRingBufferFormatsResponse, D>
4315 for &DaiGetRingBufferFormatsResponse
4316 {
4317 #[inline]
4318 unsafe fn encode(
4319 self,
4320 encoder: &mut fidl::encoding::Encoder<'_, D>,
4321 offset: usize,
4322 _depth: fidl::encoding::Depth,
4323 ) -> fidl::Result<()> {
4324 encoder.debug_check_bounds::<DaiGetRingBufferFormatsResponse>(offset);
4325 fidl::encoding::Encode::<DaiGetRingBufferFormatsResponse, D>::encode(
4327 (
4328 <fidl::encoding::Vector<SupportedFormats, 64> as fidl::encoding::ValueTypeMarker>::borrow(&self.ring_buffer_formats),
4329 ),
4330 encoder, offset, _depth
4331 )
4332 }
4333 }
4334 unsafe impl<
4335 D: fidl::encoding::ResourceDialect,
4336 T0: fidl::encoding::Encode<fidl::encoding::Vector<SupportedFormats, 64>, D>,
4337 > fidl::encoding::Encode<DaiGetRingBufferFormatsResponse, D> for (T0,)
4338 {
4339 #[inline]
4340 unsafe fn encode(
4341 self,
4342 encoder: &mut fidl::encoding::Encoder<'_, D>,
4343 offset: usize,
4344 depth: fidl::encoding::Depth,
4345 ) -> fidl::Result<()> {
4346 encoder.debug_check_bounds::<DaiGetRingBufferFormatsResponse>(offset);
4347 self.0.encode(encoder, offset + 0, depth)?;
4351 Ok(())
4352 }
4353 }
4354
4355 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
4356 for DaiGetRingBufferFormatsResponse
4357 {
4358 #[inline(always)]
4359 fn new_empty() -> Self {
4360 Self {
4361 ring_buffer_formats: fidl::new_empty!(fidl::encoding::Vector<SupportedFormats, 64>, D),
4362 }
4363 }
4364
4365 #[inline]
4366 unsafe fn decode(
4367 &mut self,
4368 decoder: &mut fidl::encoding::Decoder<'_, D>,
4369 offset: usize,
4370 _depth: fidl::encoding::Depth,
4371 ) -> fidl::Result<()> {
4372 decoder.debug_check_bounds::<Self>(offset);
4373 fidl::decode!(fidl::encoding::Vector<SupportedFormats, 64>, D, &mut self.ring_buffer_formats, decoder, offset + 0, _depth)?;
4375 Ok(())
4376 }
4377 }
4378
4379 impl fidl::encoding::ValueTypeMarker for HealthGetHealthStateResponse {
4380 type Borrowed<'a> = &'a Self;
4381 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4382 value
4383 }
4384 }
4385
4386 unsafe impl fidl::encoding::TypeMarker for HealthGetHealthStateResponse {
4387 type Owned = Self;
4388
4389 #[inline(always)]
4390 fn inline_align(_context: fidl::encoding::Context) -> usize {
4391 8
4392 }
4393
4394 #[inline(always)]
4395 fn inline_size(_context: fidl::encoding::Context) -> usize {
4396 16
4397 }
4398 }
4399
4400 unsafe impl<D: fidl::encoding::ResourceDialect>
4401 fidl::encoding::Encode<HealthGetHealthStateResponse, D> for &HealthGetHealthStateResponse
4402 {
4403 #[inline]
4404 unsafe fn encode(
4405 self,
4406 encoder: &mut fidl::encoding::Encoder<'_, D>,
4407 offset: usize,
4408 _depth: fidl::encoding::Depth,
4409 ) -> fidl::Result<()> {
4410 encoder.debug_check_bounds::<HealthGetHealthStateResponse>(offset);
4411 fidl::encoding::Encode::<HealthGetHealthStateResponse, D>::encode(
4413 (<HealthState as fidl::encoding::ValueTypeMarker>::borrow(&self.state),),
4414 encoder,
4415 offset,
4416 _depth,
4417 )
4418 }
4419 }
4420 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<HealthState, D>>
4421 fidl::encoding::Encode<HealthGetHealthStateResponse, D> for (T0,)
4422 {
4423 #[inline]
4424 unsafe fn encode(
4425 self,
4426 encoder: &mut fidl::encoding::Encoder<'_, D>,
4427 offset: usize,
4428 depth: fidl::encoding::Depth,
4429 ) -> fidl::Result<()> {
4430 encoder.debug_check_bounds::<HealthGetHealthStateResponse>(offset);
4431 self.0.encode(encoder, offset + 0, depth)?;
4435 Ok(())
4436 }
4437 }
4438
4439 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
4440 for HealthGetHealthStateResponse
4441 {
4442 #[inline(always)]
4443 fn new_empty() -> Self {
4444 Self { state: fidl::new_empty!(HealthState, D) }
4445 }
4446
4447 #[inline]
4448 unsafe fn decode(
4449 &mut self,
4450 decoder: &mut fidl::encoding::Decoder<'_, D>,
4451 offset: usize,
4452 _depth: fidl::encoding::Depth,
4453 ) -> fidl::Result<()> {
4454 decoder.debug_check_bounds::<Self>(offset);
4455 fidl::decode!(HealthState, D, &mut self.state, decoder, offset + 0, _depth)?;
4457 Ok(())
4458 }
4459 }
4460
4461 impl fidl::encoding::ValueTypeMarker for PacketStreamControlGetPropertiesResponse {
4462 type Borrowed<'a> = &'a Self;
4463 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4464 value
4465 }
4466 }
4467
4468 unsafe impl fidl::encoding::TypeMarker for PacketStreamControlGetPropertiesResponse {
4469 type Owned = Self;
4470
4471 #[inline(always)]
4472 fn inline_align(_context: fidl::encoding::Context) -> usize {
4473 8
4474 }
4475
4476 #[inline(always)]
4477 fn inline_size(_context: fidl::encoding::Context) -> usize {
4478 16
4479 }
4480 }
4481
4482 unsafe impl<D: fidl::encoding::ResourceDialect>
4483 fidl::encoding::Encode<PacketStreamControlGetPropertiesResponse, D>
4484 for &PacketStreamControlGetPropertiesResponse
4485 {
4486 #[inline]
4487 unsafe fn encode(
4488 self,
4489 encoder: &mut fidl::encoding::Encoder<'_, D>,
4490 offset: usize,
4491 _depth: fidl::encoding::Depth,
4492 ) -> fidl::Result<()> {
4493 encoder.debug_check_bounds::<PacketStreamControlGetPropertiesResponse>(offset);
4494 fidl::encoding::Encode::<PacketStreamControlGetPropertiesResponse, D>::encode(
4496 (<PacketStreamProperties as fidl::encoding::ValueTypeMarker>::borrow(
4497 &self.properties,
4498 ),),
4499 encoder,
4500 offset,
4501 _depth,
4502 )
4503 }
4504 }
4505 unsafe impl<
4506 D: fidl::encoding::ResourceDialect,
4507 T0: fidl::encoding::Encode<PacketStreamProperties, D>,
4508 > fidl::encoding::Encode<PacketStreamControlGetPropertiesResponse, D> for (T0,)
4509 {
4510 #[inline]
4511 unsafe fn encode(
4512 self,
4513 encoder: &mut fidl::encoding::Encoder<'_, D>,
4514 offset: usize,
4515 depth: fidl::encoding::Depth,
4516 ) -> fidl::Result<()> {
4517 encoder.debug_check_bounds::<PacketStreamControlGetPropertiesResponse>(offset);
4518 self.0.encode(encoder, offset + 0, depth)?;
4522 Ok(())
4523 }
4524 }
4525
4526 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
4527 for PacketStreamControlGetPropertiesResponse
4528 {
4529 #[inline(always)]
4530 fn new_empty() -> Self {
4531 Self { properties: fidl::new_empty!(PacketStreamProperties, D) }
4532 }
4533
4534 #[inline]
4535 unsafe fn decode(
4536 &mut self,
4537 decoder: &mut fidl::encoding::Decoder<'_, D>,
4538 offset: usize,
4539 _depth: fidl::encoding::Depth,
4540 ) -> fidl::Result<()> {
4541 decoder.debug_check_bounds::<Self>(offset);
4542 fidl::decode!(
4544 PacketStreamProperties,
4545 D,
4546 &mut self.properties,
4547 decoder,
4548 offset + 0,
4549 _depth
4550 )?;
4551 Ok(())
4552 }
4553 }
4554
4555 impl fidl::encoding::ValueTypeMarker for PcmFormat {
4556 type Borrowed<'a> = &'a Self;
4557 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4558 value
4559 }
4560 }
4561
4562 unsafe impl fidl::encoding::TypeMarker for PcmFormat {
4563 type Owned = Self;
4564
4565 #[inline(always)]
4566 fn inline_align(_context: fidl::encoding::Context) -> usize {
4567 4
4568 }
4569
4570 #[inline(always)]
4571 fn inline_size(_context: fidl::encoding::Context) -> usize {
4572 8
4573 }
4574 }
4575
4576 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<PcmFormat, D>
4577 for &PcmFormat
4578 {
4579 #[inline]
4580 unsafe fn encode(
4581 self,
4582 encoder: &mut fidl::encoding::Encoder<'_, D>,
4583 offset: usize,
4584 _depth: fidl::encoding::Depth,
4585 ) -> fidl::Result<()> {
4586 encoder.debug_check_bounds::<PcmFormat>(offset);
4587 fidl::encoding::Encode::<PcmFormat, D>::encode(
4589 (
4590 <u8 as fidl::encoding::ValueTypeMarker>::borrow(&self.number_of_channels),
4591 <SampleFormat as fidl::encoding::ValueTypeMarker>::borrow(&self.sample_format),
4592 <u8 as fidl::encoding::ValueTypeMarker>::borrow(&self.bytes_per_sample),
4593 <u8 as fidl::encoding::ValueTypeMarker>::borrow(&self.valid_bits_per_sample),
4594 <u32 as fidl::encoding::ValueTypeMarker>::borrow(&self.frame_rate),
4595 ),
4596 encoder,
4597 offset,
4598 _depth,
4599 )
4600 }
4601 }
4602 unsafe impl<
4603 D: fidl::encoding::ResourceDialect,
4604 T0: fidl::encoding::Encode<u8, D>,
4605 T1: fidl::encoding::Encode<SampleFormat, D>,
4606 T2: fidl::encoding::Encode<u8, D>,
4607 T3: fidl::encoding::Encode<u8, D>,
4608 T4: fidl::encoding::Encode<u32, D>,
4609 > fidl::encoding::Encode<PcmFormat, D> for (T0, T1, T2, T3, T4)
4610 {
4611 #[inline]
4612 unsafe fn encode(
4613 self,
4614 encoder: &mut fidl::encoding::Encoder<'_, D>,
4615 offset: usize,
4616 depth: fidl::encoding::Depth,
4617 ) -> fidl::Result<()> {
4618 encoder.debug_check_bounds::<PcmFormat>(offset);
4619 self.0.encode(encoder, offset + 0, depth)?;
4623 self.1.encode(encoder, offset + 1, depth)?;
4624 self.2.encode(encoder, offset + 2, depth)?;
4625 self.3.encode(encoder, offset + 3, depth)?;
4626 self.4.encode(encoder, offset + 4, depth)?;
4627 Ok(())
4628 }
4629 }
4630
4631 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for PcmFormat {
4632 #[inline(always)]
4633 fn new_empty() -> Self {
4634 Self {
4635 number_of_channels: fidl::new_empty!(u8, D),
4636 sample_format: fidl::new_empty!(SampleFormat, D),
4637 bytes_per_sample: fidl::new_empty!(u8, D),
4638 valid_bits_per_sample: fidl::new_empty!(u8, D),
4639 frame_rate: fidl::new_empty!(u32, D),
4640 }
4641 }
4642
4643 #[inline]
4644 unsafe fn decode(
4645 &mut self,
4646 decoder: &mut fidl::encoding::Decoder<'_, D>,
4647 offset: usize,
4648 _depth: fidl::encoding::Depth,
4649 ) -> fidl::Result<()> {
4650 decoder.debug_check_bounds::<Self>(offset);
4651 fidl::decode!(u8, D, &mut self.number_of_channels, decoder, offset + 0, _depth)?;
4653 fidl::decode!(SampleFormat, D, &mut self.sample_format, decoder, offset + 1, _depth)?;
4654 fidl::decode!(u8, D, &mut self.bytes_per_sample, decoder, offset + 2, _depth)?;
4655 fidl::decode!(u8, D, &mut self.valid_bits_per_sample, decoder, offset + 3, _depth)?;
4656 fidl::decode!(u32, D, &mut self.frame_rate, decoder, offset + 4, _depth)?;
4657 Ok(())
4658 }
4659 }
4660
4661 impl fidl::encoding::ValueTypeMarker for RingBufferGetPropertiesResponse {
4662 type Borrowed<'a> = &'a Self;
4663 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4664 value
4665 }
4666 }
4667
4668 unsafe impl fidl::encoding::TypeMarker for RingBufferGetPropertiesResponse {
4669 type Owned = Self;
4670
4671 #[inline(always)]
4672 fn inline_align(_context: fidl::encoding::Context) -> usize {
4673 8
4674 }
4675
4676 #[inline(always)]
4677 fn inline_size(_context: fidl::encoding::Context) -> usize {
4678 16
4679 }
4680 }
4681
4682 unsafe impl<D: fidl::encoding::ResourceDialect>
4683 fidl::encoding::Encode<RingBufferGetPropertiesResponse, D>
4684 for &RingBufferGetPropertiesResponse
4685 {
4686 #[inline]
4687 unsafe fn encode(
4688 self,
4689 encoder: &mut fidl::encoding::Encoder<'_, D>,
4690 offset: usize,
4691 _depth: fidl::encoding::Depth,
4692 ) -> fidl::Result<()> {
4693 encoder.debug_check_bounds::<RingBufferGetPropertiesResponse>(offset);
4694 fidl::encoding::Encode::<RingBufferGetPropertiesResponse, D>::encode(
4696 (<RingBufferProperties as fidl::encoding::ValueTypeMarker>::borrow(
4697 &self.properties,
4698 ),),
4699 encoder,
4700 offset,
4701 _depth,
4702 )
4703 }
4704 }
4705 unsafe impl<
4706 D: fidl::encoding::ResourceDialect,
4707 T0: fidl::encoding::Encode<RingBufferProperties, D>,
4708 > fidl::encoding::Encode<RingBufferGetPropertiesResponse, D> for (T0,)
4709 {
4710 #[inline]
4711 unsafe fn encode(
4712 self,
4713 encoder: &mut fidl::encoding::Encoder<'_, D>,
4714 offset: usize,
4715 depth: fidl::encoding::Depth,
4716 ) -> fidl::Result<()> {
4717 encoder.debug_check_bounds::<RingBufferGetPropertiesResponse>(offset);
4718 self.0.encode(encoder, offset + 0, depth)?;
4722 Ok(())
4723 }
4724 }
4725
4726 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
4727 for RingBufferGetPropertiesResponse
4728 {
4729 #[inline(always)]
4730 fn new_empty() -> Self {
4731 Self { properties: fidl::new_empty!(RingBufferProperties, D) }
4732 }
4733
4734 #[inline]
4735 unsafe fn decode(
4736 &mut self,
4737 decoder: &mut fidl::encoding::Decoder<'_, D>,
4738 offset: usize,
4739 _depth: fidl::encoding::Depth,
4740 ) -> fidl::Result<()> {
4741 decoder.debug_check_bounds::<Self>(offset);
4742 fidl::decode!(
4744 RingBufferProperties,
4745 D,
4746 &mut self.properties,
4747 decoder,
4748 offset + 0,
4749 _depth
4750 )?;
4751 Ok(())
4752 }
4753 }
4754
4755 impl fidl::encoding::ValueTypeMarker for RingBufferGetVmoRequest {
4756 type Borrowed<'a> = &'a Self;
4757 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4758 value
4759 }
4760 }
4761
4762 unsafe impl fidl::encoding::TypeMarker for RingBufferGetVmoRequest {
4763 type Owned = Self;
4764
4765 #[inline(always)]
4766 fn inline_align(_context: fidl::encoding::Context) -> usize {
4767 4
4768 }
4769
4770 #[inline(always)]
4771 fn inline_size(_context: fidl::encoding::Context) -> usize {
4772 8
4773 }
4774 #[inline(always)]
4775 fn encode_is_copy() -> bool {
4776 true
4777 }
4778
4779 #[inline(always)]
4780 fn decode_is_copy() -> bool {
4781 true
4782 }
4783 }
4784
4785 unsafe impl<D: fidl::encoding::ResourceDialect>
4786 fidl::encoding::Encode<RingBufferGetVmoRequest, D> for &RingBufferGetVmoRequest
4787 {
4788 #[inline]
4789 unsafe fn encode(
4790 self,
4791 encoder: &mut fidl::encoding::Encoder<'_, D>,
4792 offset: usize,
4793 _depth: fidl::encoding::Depth,
4794 ) -> fidl::Result<()> {
4795 encoder.debug_check_bounds::<RingBufferGetVmoRequest>(offset);
4796 unsafe {
4797 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
4799 (buf_ptr as *mut RingBufferGetVmoRequest)
4800 .write_unaligned((self as *const RingBufferGetVmoRequest).read());
4801 }
4804 Ok(())
4805 }
4806 }
4807 unsafe impl<
4808 D: fidl::encoding::ResourceDialect,
4809 T0: fidl::encoding::Encode<u32, D>,
4810 T1: fidl::encoding::Encode<u32, D>,
4811 > fidl::encoding::Encode<RingBufferGetVmoRequest, D> for (T0, T1)
4812 {
4813 #[inline]
4814 unsafe fn encode(
4815 self,
4816 encoder: &mut fidl::encoding::Encoder<'_, D>,
4817 offset: usize,
4818 depth: fidl::encoding::Depth,
4819 ) -> fidl::Result<()> {
4820 encoder.debug_check_bounds::<RingBufferGetVmoRequest>(offset);
4821 self.0.encode(encoder, offset + 0, depth)?;
4825 self.1.encode(encoder, offset + 4, depth)?;
4826 Ok(())
4827 }
4828 }
4829
4830 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
4831 for RingBufferGetVmoRequest
4832 {
4833 #[inline(always)]
4834 fn new_empty() -> Self {
4835 Self {
4836 min_frames: fidl::new_empty!(u32, D),
4837 clock_recovery_notifications_per_ring: fidl::new_empty!(u32, D),
4838 }
4839 }
4840
4841 #[inline]
4842 unsafe fn decode(
4843 &mut self,
4844 decoder: &mut fidl::encoding::Decoder<'_, D>,
4845 offset: usize,
4846 _depth: fidl::encoding::Depth,
4847 ) -> fidl::Result<()> {
4848 decoder.debug_check_bounds::<Self>(offset);
4849 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
4850 unsafe {
4853 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 8);
4854 }
4855 Ok(())
4856 }
4857 }
4858
4859 impl fidl::encoding::ValueTypeMarker for RingBufferPositionInfo {
4860 type Borrowed<'a> = &'a Self;
4861 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4862 value
4863 }
4864 }
4865
4866 unsafe impl fidl::encoding::TypeMarker for RingBufferPositionInfo {
4867 type Owned = Self;
4868
4869 #[inline(always)]
4870 fn inline_align(_context: fidl::encoding::Context) -> usize {
4871 8
4872 }
4873
4874 #[inline(always)]
4875 fn inline_size(_context: fidl::encoding::Context) -> usize {
4876 16
4877 }
4878 }
4879
4880 unsafe impl<D: fidl::encoding::ResourceDialect>
4881 fidl::encoding::Encode<RingBufferPositionInfo, D> for &RingBufferPositionInfo
4882 {
4883 #[inline]
4884 unsafe fn encode(
4885 self,
4886 encoder: &mut fidl::encoding::Encoder<'_, D>,
4887 offset: usize,
4888 _depth: fidl::encoding::Depth,
4889 ) -> fidl::Result<()> {
4890 encoder.debug_check_bounds::<RingBufferPositionInfo>(offset);
4891 unsafe {
4892 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
4894 (buf_ptr as *mut RingBufferPositionInfo)
4895 .write_unaligned((self as *const RingBufferPositionInfo).read());
4896 let padding_ptr = buf_ptr.offset(8) as *mut u64;
4899 let padding_mask = 0xffffffff00000000u64;
4900 padding_ptr.write_unaligned(padding_ptr.read_unaligned() & !padding_mask);
4901 }
4902 Ok(())
4903 }
4904 }
4905 unsafe impl<
4906 D: fidl::encoding::ResourceDialect,
4907 T0: fidl::encoding::Encode<i64, D>,
4908 T1: fidl::encoding::Encode<u32, D>,
4909 > fidl::encoding::Encode<RingBufferPositionInfo, D> for (T0, T1)
4910 {
4911 #[inline]
4912 unsafe fn encode(
4913 self,
4914 encoder: &mut fidl::encoding::Encoder<'_, D>,
4915 offset: usize,
4916 depth: fidl::encoding::Depth,
4917 ) -> fidl::Result<()> {
4918 encoder.debug_check_bounds::<RingBufferPositionInfo>(offset);
4919 unsafe {
4922 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(8);
4923 (ptr as *mut u64).write_unaligned(0);
4924 }
4925 self.0.encode(encoder, offset + 0, depth)?;
4927 self.1.encode(encoder, offset + 8, depth)?;
4928 Ok(())
4929 }
4930 }
4931
4932 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
4933 for RingBufferPositionInfo
4934 {
4935 #[inline(always)]
4936 fn new_empty() -> Self {
4937 Self { timestamp: fidl::new_empty!(i64, D), position: fidl::new_empty!(u32, D) }
4938 }
4939
4940 #[inline]
4941 unsafe fn decode(
4942 &mut self,
4943 decoder: &mut fidl::encoding::Decoder<'_, D>,
4944 offset: usize,
4945 _depth: fidl::encoding::Depth,
4946 ) -> fidl::Result<()> {
4947 decoder.debug_check_bounds::<Self>(offset);
4948 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
4949 let ptr = unsafe { buf_ptr.offset(8) };
4951 let padval = unsafe { (ptr as *const u64).read_unaligned() };
4952 let mask = 0xffffffff00000000u64;
4953 let maskedval = padval & mask;
4954 if maskedval != 0 {
4955 return Err(fidl::Error::NonZeroPadding {
4956 padding_start: offset + 8 + ((mask as u64).trailing_zeros() / 8) as usize,
4957 });
4958 }
4959 unsafe {
4961 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 16);
4962 }
4963 Ok(())
4964 }
4965 }
4966
4967 impl fidl::encoding::ValueTypeMarker for RingBufferSetActiveChannelsRequest {
4968 type Borrowed<'a> = &'a Self;
4969 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4970 value
4971 }
4972 }
4973
4974 unsafe impl fidl::encoding::TypeMarker for RingBufferSetActiveChannelsRequest {
4975 type Owned = Self;
4976
4977 #[inline(always)]
4978 fn inline_align(_context: fidl::encoding::Context) -> usize {
4979 8
4980 }
4981
4982 #[inline(always)]
4983 fn inline_size(_context: fidl::encoding::Context) -> usize {
4984 8
4985 }
4986 #[inline(always)]
4987 fn encode_is_copy() -> bool {
4988 true
4989 }
4990
4991 #[inline(always)]
4992 fn decode_is_copy() -> bool {
4993 true
4994 }
4995 }
4996
4997 unsafe impl<D: fidl::encoding::ResourceDialect>
4998 fidl::encoding::Encode<RingBufferSetActiveChannelsRequest, D>
4999 for &RingBufferSetActiveChannelsRequest
5000 {
5001 #[inline]
5002 unsafe fn encode(
5003 self,
5004 encoder: &mut fidl::encoding::Encoder<'_, D>,
5005 offset: usize,
5006 _depth: fidl::encoding::Depth,
5007 ) -> fidl::Result<()> {
5008 encoder.debug_check_bounds::<RingBufferSetActiveChannelsRequest>(offset);
5009 unsafe {
5010 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
5012 (buf_ptr as *mut RingBufferSetActiveChannelsRequest)
5013 .write_unaligned((self as *const RingBufferSetActiveChannelsRequest).read());
5014 }
5017 Ok(())
5018 }
5019 }
5020 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<u64, D>>
5021 fidl::encoding::Encode<RingBufferSetActiveChannelsRequest, D> for (T0,)
5022 {
5023 #[inline]
5024 unsafe fn encode(
5025 self,
5026 encoder: &mut fidl::encoding::Encoder<'_, D>,
5027 offset: usize,
5028 depth: fidl::encoding::Depth,
5029 ) -> fidl::Result<()> {
5030 encoder.debug_check_bounds::<RingBufferSetActiveChannelsRequest>(offset);
5031 self.0.encode(encoder, offset + 0, depth)?;
5035 Ok(())
5036 }
5037 }
5038
5039 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
5040 for RingBufferSetActiveChannelsRequest
5041 {
5042 #[inline(always)]
5043 fn new_empty() -> Self {
5044 Self { active_channels_bitmask: fidl::new_empty!(u64, D) }
5045 }
5046
5047 #[inline]
5048 unsafe fn decode(
5049 &mut self,
5050 decoder: &mut fidl::encoding::Decoder<'_, D>,
5051 offset: usize,
5052 _depth: fidl::encoding::Depth,
5053 ) -> fidl::Result<()> {
5054 decoder.debug_check_bounds::<Self>(offset);
5055 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
5056 unsafe {
5059 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 8);
5060 }
5061 Ok(())
5062 }
5063 }
5064
5065 impl fidl::encoding::ValueTypeMarker for RingBufferStartResponse {
5066 type Borrowed<'a> = &'a Self;
5067 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
5068 value
5069 }
5070 }
5071
5072 unsafe impl fidl::encoding::TypeMarker for RingBufferStartResponse {
5073 type Owned = Self;
5074
5075 #[inline(always)]
5076 fn inline_align(_context: fidl::encoding::Context) -> usize {
5077 8
5078 }
5079
5080 #[inline(always)]
5081 fn inline_size(_context: fidl::encoding::Context) -> usize {
5082 8
5083 }
5084 #[inline(always)]
5085 fn encode_is_copy() -> bool {
5086 true
5087 }
5088
5089 #[inline(always)]
5090 fn decode_is_copy() -> bool {
5091 true
5092 }
5093 }
5094
5095 unsafe impl<D: fidl::encoding::ResourceDialect>
5096 fidl::encoding::Encode<RingBufferStartResponse, D> for &RingBufferStartResponse
5097 {
5098 #[inline]
5099 unsafe fn encode(
5100 self,
5101 encoder: &mut fidl::encoding::Encoder<'_, D>,
5102 offset: usize,
5103 _depth: fidl::encoding::Depth,
5104 ) -> fidl::Result<()> {
5105 encoder.debug_check_bounds::<RingBufferStartResponse>(offset);
5106 unsafe {
5107 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
5109 (buf_ptr as *mut RingBufferStartResponse)
5110 .write_unaligned((self as *const RingBufferStartResponse).read());
5111 }
5114 Ok(())
5115 }
5116 }
5117 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<i64, D>>
5118 fidl::encoding::Encode<RingBufferStartResponse, D> for (T0,)
5119 {
5120 #[inline]
5121 unsafe fn encode(
5122 self,
5123 encoder: &mut fidl::encoding::Encoder<'_, D>,
5124 offset: usize,
5125 depth: fidl::encoding::Depth,
5126 ) -> fidl::Result<()> {
5127 encoder.debug_check_bounds::<RingBufferStartResponse>(offset);
5128 self.0.encode(encoder, offset + 0, depth)?;
5132 Ok(())
5133 }
5134 }
5135
5136 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
5137 for RingBufferStartResponse
5138 {
5139 #[inline(always)]
5140 fn new_empty() -> Self {
5141 Self { start_time: fidl::new_empty!(i64, D) }
5142 }
5143
5144 #[inline]
5145 unsafe fn decode(
5146 &mut self,
5147 decoder: &mut fidl::encoding::Decoder<'_, D>,
5148 offset: usize,
5149 _depth: fidl::encoding::Depth,
5150 ) -> fidl::Result<()> {
5151 decoder.debug_check_bounds::<Self>(offset);
5152 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
5153 unsafe {
5156 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 8);
5157 }
5158 Ok(())
5159 }
5160 }
5161
5162 impl fidl::encoding::ValueTypeMarker for RingBufferWatchClockRecoveryPositionInfoResponse {
5163 type Borrowed<'a> = &'a Self;
5164 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
5165 value
5166 }
5167 }
5168
5169 unsafe impl fidl::encoding::TypeMarker for RingBufferWatchClockRecoveryPositionInfoResponse {
5170 type Owned = Self;
5171
5172 #[inline(always)]
5173 fn inline_align(_context: fidl::encoding::Context) -> usize {
5174 8
5175 }
5176
5177 #[inline(always)]
5178 fn inline_size(_context: fidl::encoding::Context) -> usize {
5179 16
5180 }
5181 }
5182
5183 unsafe impl<D: fidl::encoding::ResourceDialect>
5184 fidl::encoding::Encode<RingBufferWatchClockRecoveryPositionInfoResponse, D>
5185 for &RingBufferWatchClockRecoveryPositionInfoResponse
5186 {
5187 #[inline]
5188 unsafe fn encode(
5189 self,
5190 encoder: &mut fidl::encoding::Encoder<'_, D>,
5191 offset: usize,
5192 _depth: fidl::encoding::Depth,
5193 ) -> fidl::Result<()> {
5194 encoder.debug_check_bounds::<RingBufferWatchClockRecoveryPositionInfoResponse>(offset);
5195 unsafe {
5196 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
5198 (buf_ptr as *mut RingBufferWatchClockRecoveryPositionInfoResponse).write_unaligned(
5199 (self as *const RingBufferWatchClockRecoveryPositionInfoResponse).read(),
5200 );
5201 let padding_ptr = buf_ptr.offset(8) as *mut u64;
5204 let padding_mask = 0xffffffff00000000u64;
5205 padding_ptr.write_unaligned(padding_ptr.read_unaligned() & !padding_mask);
5206 }
5207 Ok(())
5208 }
5209 }
5210 unsafe impl<
5211 D: fidl::encoding::ResourceDialect,
5212 T0: fidl::encoding::Encode<RingBufferPositionInfo, D>,
5213 > fidl::encoding::Encode<RingBufferWatchClockRecoveryPositionInfoResponse, D> for (T0,)
5214 {
5215 #[inline]
5216 unsafe fn encode(
5217 self,
5218 encoder: &mut fidl::encoding::Encoder<'_, D>,
5219 offset: usize,
5220 depth: fidl::encoding::Depth,
5221 ) -> fidl::Result<()> {
5222 encoder.debug_check_bounds::<RingBufferWatchClockRecoveryPositionInfoResponse>(offset);
5223 self.0.encode(encoder, offset + 0, depth)?;
5227 Ok(())
5228 }
5229 }
5230
5231 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
5232 for RingBufferWatchClockRecoveryPositionInfoResponse
5233 {
5234 #[inline(always)]
5235 fn new_empty() -> Self {
5236 Self { position_info: fidl::new_empty!(RingBufferPositionInfo, D) }
5237 }
5238
5239 #[inline]
5240 unsafe fn decode(
5241 &mut self,
5242 decoder: &mut fidl::encoding::Decoder<'_, D>,
5243 offset: usize,
5244 _depth: fidl::encoding::Depth,
5245 ) -> fidl::Result<()> {
5246 decoder.debug_check_bounds::<Self>(offset);
5247 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
5248 let ptr = unsafe { buf_ptr.offset(8) };
5250 let padval = unsafe { (ptr as *const u64).read_unaligned() };
5251 let mask = 0xffffffff00000000u64;
5252 let maskedval = padval & mask;
5253 if maskedval != 0 {
5254 return Err(fidl::Error::NonZeroPadding {
5255 padding_start: offset + 8 + ((mask as u64).trailing_zeros() / 8) as usize,
5256 });
5257 }
5258 unsafe {
5260 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 16);
5261 }
5262 Ok(())
5263 }
5264 }
5265
5266 impl fidl::encoding::ValueTypeMarker for RingBufferSetActiveChannelsResponse {
5267 type Borrowed<'a> = &'a Self;
5268 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
5269 value
5270 }
5271 }
5272
5273 unsafe impl fidl::encoding::TypeMarker for RingBufferSetActiveChannelsResponse {
5274 type Owned = Self;
5275
5276 #[inline(always)]
5277 fn inline_align(_context: fidl::encoding::Context) -> usize {
5278 8
5279 }
5280
5281 #[inline(always)]
5282 fn inline_size(_context: fidl::encoding::Context) -> usize {
5283 8
5284 }
5285 #[inline(always)]
5286 fn encode_is_copy() -> bool {
5287 true
5288 }
5289
5290 #[inline(always)]
5291 fn decode_is_copy() -> bool {
5292 true
5293 }
5294 }
5295
5296 unsafe impl<D: fidl::encoding::ResourceDialect>
5297 fidl::encoding::Encode<RingBufferSetActiveChannelsResponse, D>
5298 for &RingBufferSetActiveChannelsResponse
5299 {
5300 #[inline]
5301 unsafe fn encode(
5302 self,
5303 encoder: &mut fidl::encoding::Encoder<'_, D>,
5304 offset: usize,
5305 _depth: fidl::encoding::Depth,
5306 ) -> fidl::Result<()> {
5307 encoder.debug_check_bounds::<RingBufferSetActiveChannelsResponse>(offset);
5308 unsafe {
5309 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
5311 (buf_ptr as *mut RingBufferSetActiveChannelsResponse)
5312 .write_unaligned((self as *const RingBufferSetActiveChannelsResponse).read());
5313 }
5316 Ok(())
5317 }
5318 }
5319 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<i64, D>>
5320 fidl::encoding::Encode<RingBufferSetActiveChannelsResponse, D> for (T0,)
5321 {
5322 #[inline]
5323 unsafe fn encode(
5324 self,
5325 encoder: &mut fidl::encoding::Encoder<'_, D>,
5326 offset: usize,
5327 depth: fidl::encoding::Depth,
5328 ) -> fidl::Result<()> {
5329 encoder.debug_check_bounds::<RingBufferSetActiveChannelsResponse>(offset);
5330 self.0.encode(encoder, offset + 0, depth)?;
5334 Ok(())
5335 }
5336 }
5337
5338 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
5339 for RingBufferSetActiveChannelsResponse
5340 {
5341 #[inline(always)]
5342 fn new_empty() -> Self {
5343 Self { set_time: fidl::new_empty!(i64, D) }
5344 }
5345
5346 #[inline]
5347 unsafe fn decode(
5348 &mut self,
5349 decoder: &mut fidl::encoding::Decoder<'_, D>,
5350 offset: usize,
5351 _depth: fidl::encoding::Depth,
5352 ) -> fidl::Result<()> {
5353 decoder.debug_check_bounds::<Self>(offset);
5354 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
5355 unsafe {
5358 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 8);
5359 }
5360 Ok(())
5361 }
5362 }
5363
5364 impl fidl::encoding::ValueTypeMarker for RingBufferWatchDelayInfoResponse {
5365 type Borrowed<'a> = &'a Self;
5366 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
5367 value
5368 }
5369 }
5370
5371 unsafe impl fidl::encoding::TypeMarker for RingBufferWatchDelayInfoResponse {
5372 type Owned = Self;
5373
5374 #[inline(always)]
5375 fn inline_align(_context: fidl::encoding::Context) -> usize {
5376 8
5377 }
5378
5379 #[inline(always)]
5380 fn inline_size(_context: fidl::encoding::Context) -> usize {
5381 16
5382 }
5383 }
5384
5385 unsafe impl<D: fidl::encoding::ResourceDialect>
5386 fidl::encoding::Encode<RingBufferWatchDelayInfoResponse, D>
5387 for &RingBufferWatchDelayInfoResponse
5388 {
5389 #[inline]
5390 unsafe fn encode(
5391 self,
5392 encoder: &mut fidl::encoding::Encoder<'_, D>,
5393 offset: usize,
5394 _depth: fidl::encoding::Depth,
5395 ) -> fidl::Result<()> {
5396 encoder.debug_check_bounds::<RingBufferWatchDelayInfoResponse>(offset);
5397 fidl::encoding::Encode::<RingBufferWatchDelayInfoResponse, D>::encode(
5399 (<DelayInfo as fidl::encoding::ValueTypeMarker>::borrow(&self.delay_info),),
5400 encoder,
5401 offset,
5402 _depth,
5403 )
5404 }
5405 }
5406 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<DelayInfo, D>>
5407 fidl::encoding::Encode<RingBufferWatchDelayInfoResponse, D> for (T0,)
5408 {
5409 #[inline]
5410 unsafe fn encode(
5411 self,
5412 encoder: &mut fidl::encoding::Encoder<'_, D>,
5413 offset: usize,
5414 depth: fidl::encoding::Depth,
5415 ) -> fidl::Result<()> {
5416 encoder.debug_check_bounds::<RingBufferWatchDelayInfoResponse>(offset);
5417 self.0.encode(encoder, offset + 0, depth)?;
5421 Ok(())
5422 }
5423 }
5424
5425 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
5426 for RingBufferWatchDelayInfoResponse
5427 {
5428 #[inline(always)]
5429 fn new_empty() -> Self {
5430 Self { delay_info: fidl::new_empty!(DelayInfo, D) }
5431 }
5432
5433 #[inline]
5434 unsafe fn decode(
5435 &mut self,
5436 decoder: &mut fidl::encoding::Decoder<'_, D>,
5437 offset: usize,
5438 _depth: fidl::encoding::Depth,
5439 ) -> fidl::Result<()> {
5440 decoder.debug_check_bounds::<Self>(offset);
5441 fidl::decode!(DelayInfo, D, &mut self.delay_info, decoder, offset + 0, _depth)?;
5443 Ok(())
5444 }
5445 }
5446
5447 impl fidl::encoding::ValueTypeMarker for StreamConfigGetPropertiesResponse {
5448 type Borrowed<'a> = &'a Self;
5449 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
5450 value
5451 }
5452 }
5453
5454 unsafe impl fidl::encoding::TypeMarker for StreamConfigGetPropertiesResponse {
5455 type Owned = Self;
5456
5457 #[inline(always)]
5458 fn inline_align(_context: fidl::encoding::Context) -> usize {
5459 8
5460 }
5461
5462 #[inline(always)]
5463 fn inline_size(_context: fidl::encoding::Context) -> usize {
5464 16
5465 }
5466 }
5467
5468 unsafe impl<D: fidl::encoding::ResourceDialect>
5469 fidl::encoding::Encode<StreamConfigGetPropertiesResponse, D>
5470 for &StreamConfigGetPropertiesResponse
5471 {
5472 #[inline]
5473 unsafe fn encode(
5474 self,
5475 encoder: &mut fidl::encoding::Encoder<'_, D>,
5476 offset: usize,
5477 _depth: fidl::encoding::Depth,
5478 ) -> fidl::Result<()> {
5479 encoder.debug_check_bounds::<StreamConfigGetPropertiesResponse>(offset);
5480 fidl::encoding::Encode::<StreamConfigGetPropertiesResponse, D>::encode(
5482 (<StreamProperties as fidl::encoding::ValueTypeMarker>::borrow(&self.properties),),
5483 encoder,
5484 offset,
5485 _depth,
5486 )
5487 }
5488 }
5489 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<StreamProperties, D>>
5490 fidl::encoding::Encode<StreamConfigGetPropertiesResponse, D> for (T0,)
5491 {
5492 #[inline]
5493 unsafe fn encode(
5494 self,
5495 encoder: &mut fidl::encoding::Encoder<'_, D>,
5496 offset: usize,
5497 depth: fidl::encoding::Depth,
5498 ) -> fidl::Result<()> {
5499 encoder.debug_check_bounds::<StreamConfigGetPropertiesResponse>(offset);
5500 self.0.encode(encoder, offset + 0, depth)?;
5504 Ok(())
5505 }
5506 }
5507
5508 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
5509 for StreamConfigGetPropertiesResponse
5510 {
5511 #[inline(always)]
5512 fn new_empty() -> Self {
5513 Self { properties: fidl::new_empty!(StreamProperties, D) }
5514 }
5515
5516 #[inline]
5517 unsafe fn decode(
5518 &mut self,
5519 decoder: &mut fidl::encoding::Decoder<'_, D>,
5520 offset: usize,
5521 _depth: fidl::encoding::Depth,
5522 ) -> fidl::Result<()> {
5523 decoder.debug_check_bounds::<Self>(offset);
5524 fidl::decode!(StreamProperties, D, &mut self.properties, decoder, offset + 0, _depth)?;
5526 Ok(())
5527 }
5528 }
5529
5530 impl fidl::encoding::ValueTypeMarker for StreamConfigGetSupportedFormatsResponse {
5531 type Borrowed<'a> = &'a Self;
5532 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
5533 value
5534 }
5535 }
5536
5537 unsafe impl fidl::encoding::TypeMarker for StreamConfigGetSupportedFormatsResponse {
5538 type Owned = Self;
5539
5540 #[inline(always)]
5541 fn inline_align(_context: fidl::encoding::Context) -> usize {
5542 8
5543 }
5544
5545 #[inline(always)]
5546 fn inline_size(_context: fidl::encoding::Context) -> usize {
5547 16
5548 }
5549 }
5550
5551 unsafe impl<D: fidl::encoding::ResourceDialect>
5552 fidl::encoding::Encode<StreamConfigGetSupportedFormatsResponse, D>
5553 for &StreamConfigGetSupportedFormatsResponse
5554 {
5555 #[inline]
5556 unsafe fn encode(
5557 self,
5558 encoder: &mut fidl::encoding::Encoder<'_, D>,
5559 offset: usize,
5560 _depth: fidl::encoding::Depth,
5561 ) -> fidl::Result<()> {
5562 encoder.debug_check_bounds::<StreamConfigGetSupportedFormatsResponse>(offset);
5563 fidl::encoding::Encode::<StreamConfigGetSupportedFormatsResponse, D>::encode(
5565 (
5566 <fidl::encoding::Vector<SupportedFormats, 64> as fidl::encoding::ValueTypeMarker>::borrow(&self.supported_formats),
5567 ),
5568 encoder, offset, _depth
5569 )
5570 }
5571 }
5572 unsafe impl<
5573 D: fidl::encoding::ResourceDialect,
5574 T0: fidl::encoding::Encode<fidl::encoding::Vector<SupportedFormats, 64>, D>,
5575 > fidl::encoding::Encode<StreamConfigGetSupportedFormatsResponse, D> for (T0,)
5576 {
5577 #[inline]
5578 unsafe fn encode(
5579 self,
5580 encoder: &mut fidl::encoding::Encoder<'_, D>,
5581 offset: usize,
5582 depth: fidl::encoding::Depth,
5583 ) -> fidl::Result<()> {
5584 encoder.debug_check_bounds::<StreamConfigGetSupportedFormatsResponse>(offset);
5585 self.0.encode(encoder, offset + 0, depth)?;
5589 Ok(())
5590 }
5591 }
5592
5593 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
5594 for StreamConfigGetSupportedFormatsResponse
5595 {
5596 #[inline(always)]
5597 fn new_empty() -> Self {
5598 Self {
5599 supported_formats: fidl::new_empty!(fidl::encoding::Vector<SupportedFormats, 64>, D),
5600 }
5601 }
5602
5603 #[inline]
5604 unsafe fn decode(
5605 &mut self,
5606 decoder: &mut fidl::encoding::Decoder<'_, D>,
5607 offset: usize,
5608 _depth: fidl::encoding::Depth,
5609 ) -> fidl::Result<()> {
5610 decoder.debug_check_bounds::<Self>(offset);
5611 fidl::decode!(fidl::encoding::Vector<SupportedFormats, 64>, D, &mut self.supported_formats, decoder, offset + 0, _depth)?;
5613 Ok(())
5614 }
5615 }
5616
5617 impl fidl::encoding::ValueTypeMarker for StreamConfigSetGainRequest {
5618 type Borrowed<'a> = &'a Self;
5619 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
5620 value
5621 }
5622 }
5623
5624 unsafe impl fidl::encoding::TypeMarker for StreamConfigSetGainRequest {
5625 type Owned = Self;
5626
5627 #[inline(always)]
5628 fn inline_align(_context: fidl::encoding::Context) -> usize {
5629 8
5630 }
5631
5632 #[inline(always)]
5633 fn inline_size(_context: fidl::encoding::Context) -> usize {
5634 16
5635 }
5636 }
5637
5638 unsafe impl<D: fidl::encoding::ResourceDialect>
5639 fidl::encoding::Encode<StreamConfigSetGainRequest, D> for &StreamConfigSetGainRequest
5640 {
5641 #[inline]
5642 unsafe fn encode(
5643 self,
5644 encoder: &mut fidl::encoding::Encoder<'_, D>,
5645 offset: usize,
5646 _depth: fidl::encoding::Depth,
5647 ) -> fidl::Result<()> {
5648 encoder.debug_check_bounds::<StreamConfigSetGainRequest>(offset);
5649 fidl::encoding::Encode::<StreamConfigSetGainRequest, D>::encode(
5651 (<GainState as fidl::encoding::ValueTypeMarker>::borrow(&self.target_state),),
5652 encoder,
5653 offset,
5654 _depth,
5655 )
5656 }
5657 }
5658 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<GainState, D>>
5659 fidl::encoding::Encode<StreamConfigSetGainRequest, D> for (T0,)
5660 {
5661 #[inline]
5662 unsafe fn encode(
5663 self,
5664 encoder: &mut fidl::encoding::Encoder<'_, D>,
5665 offset: usize,
5666 depth: fidl::encoding::Depth,
5667 ) -> fidl::Result<()> {
5668 encoder.debug_check_bounds::<StreamConfigSetGainRequest>(offset);
5669 self.0.encode(encoder, offset + 0, depth)?;
5673 Ok(())
5674 }
5675 }
5676
5677 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
5678 for StreamConfigSetGainRequest
5679 {
5680 #[inline(always)]
5681 fn new_empty() -> Self {
5682 Self { target_state: fidl::new_empty!(GainState, D) }
5683 }
5684
5685 #[inline]
5686 unsafe fn decode(
5687 &mut self,
5688 decoder: &mut fidl::encoding::Decoder<'_, D>,
5689 offset: usize,
5690 _depth: fidl::encoding::Depth,
5691 ) -> fidl::Result<()> {
5692 decoder.debug_check_bounds::<Self>(offset);
5693 fidl::decode!(GainState, D, &mut self.target_state, decoder, offset + 0, _depth)?;
5695 Ok(())
5696 }
5697 }
5698
5699 impl fidl::encoding::ValueTypeMarker for StreamConfigWatchGainStateResponse {
5700 type Borrowed<'a> = &'a Self;
5701 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
5702 value
5703 }
5704 }
5705
5706 unsafe impl fidl::encoding::TypeMarker for StreamConfigWatchGainStateResponse {
5707 type Owned = Self;
5708
5709 #[inline(always)]
5710 fn inline_align(_context: fidl::encoding::Context) -> usize {
5711 8
5712 }
5713
5714 #[inline(always)]
5715 fn inline_size(_context: fidl::encoding::Context) -> usize {
5716 16
5717 }
5718 }
5719
5720 unsafe impl<D: fidl::encoding::ResourceDialect>
5721 fidl::encoding::Encode<StreamConfigWatchGainStateResponse, D>
5722 for &StreamConfigWatchGainStateResponse
5723 {
5724 #[inline]
5725 unsafe fn encode(
5726 self,
5727 encoder: &mut fidl::encoding::Encoder<'_, D>,
5728 offset: usize,
5729 _depth: fidl::encoding::Depth,
5730 ) -> fidl::Result<()> {
5731 encoder.debug_check_bounds::<StreamConfigWatchGainStateResponse>(offset);
5732 fidl::encoding::Encode::<StreamConfigWatchGainStateResponse, D>::encode(
5734 (<GainState as fidl::encoding::ValueTypeMarker>::borrow(&self.gain_state),),
5735 encoder,
5736 offset,
5737 _depth,
5738 )
5739 }
5740 }
5741 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<GainState, D>>
5742 fidl::encoding::Encode<StreamConfigWatchGainStateResponse, D> for (T0,)
5743 {
5744 #[inline]
5745 unsafe fn encode(
5746 self,
5747 encoder: &mut fidl::encoding::Encoder<'_, D>,
5748 offset: usize,
5749 depth: fidl::encoding::Depth,
5750 ) -> fidl::Result<()> {
5751 encoder.debug_check_bounds::<StreamConfigWatchGainStateResponse>(offset);
5752 self.0.encode(encoder, offset + 0, depth)?;
5756 Ok(())
5757 }
5758 }
5759
5760 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
5761 for StreamConfigWatchGainStateResponse
5762 {
5763 #[inline(always)]
5764 fn new_empty() -> Self {
5765 Self { gain_state: fidl::new_empty!(GainState, D) }
5766 }
5767
5768 #[inline]
5769 unsafe fn decode(
5770 &mut self,
5771 decoder: &mut fidl::encoding::Decoder<'_, D>,
5772 offset: usize,
5773 _depth: fidl::encoding::Depth,
5774 ) -> fidl::Result<()> {
5775 decoder.debug_check_bounds::<Self>(offset);
5776 fidl::decode!(GainState, D, &mut self.gain_state, decoder, offset + 0, _depth)?;
5778 Ok(())
5779 }
5780 }
5781
5782 impl fidl::encoding::ValueTypeMarker for StreamConfigWatchPlugStateResponse {
5783 type Borrowed<'a> = &'a Self;
5784 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
5785 value
5786 }
5787 }
5788
5789 unsafe impl fidl::encoding::TypeMarker for StreamConfigWatchPlugStateResponse {
5790 type Owned = Self;
5791
5792 #[inline(always)]
5793 fn inline_align(_context: fidl::encoding::Context) -> usize {
5794 8
5795 }
5796
5797 #[inline(always)]
5798 fn inline_size(_context: fidl::encoding::Context) -> usize {
5799 16
5800 }
5801 }
5802
5803 unsafe impl<D: fidl::encoding::ResourceDialect>
5804 fidl::encoding::Encode<StreamConfigWatchPlugStateResponse, D>
5805 for &StreamConfigWatchPlugStateResponse
5806 {
5807 #[inline]
5808 unsafe fn encode(
5809 self,
5810 encoder: &mut fidl::encoding::Encoder<'_, D>,
5811 offset: usize,
5812 _depth: fidl::encoding::Depth,
5813 ) -> fidl::Result<()> {
5814 encoder.debug_check_bounds::<StreamConfigWatchPlugStateResponse>(offset);
5815 fidl::encoding::Encode::<StreamConfigWatchPlugStateResponse, D>::encode(
5817 (<PlugState as fidl::encoding::ValueTypeMarker>::borrow(&self.plug_state),),
5818 encoder,
5819 offset,
5820 _depth,
5821 )
5822 }
5823 }
5824 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<PlugState, D>>
5825 fidl::encoding::Encode<StreamConfigWatchPlugStateResponse, D> for (T0,)
5826 {
5827 #[inline]
5828 unsafe fn encode(
5829 self,
5830 encoder: &mut fidl::encoding::Encoder<'_, D>,
5831 offset: usize,
5832 depth: fidl::encoding::Depth,
5833 ) -> fidl::Result<()> {
5834 encoder.debug_check_bounds::<StreamConfigWatchPlugStateResponse>(offset);
5835 self.0.encode(encoder, offset + 0, depth)?;
5839 Ok(())
5840 }
5841 }
5842
5843 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
5844 for StreamConfigWatchPlugStateResponse
5845 {
5846 #[inline(always)]
5847 fn new_empty() -> Self {
5848 Self { plug_state: fidl::new_empty!(PlugState, D) }
5849 }
5850
5851 #[inline]
5852 unsafe fn decode(
5853 &mut self,
5854 decoder: &mut fidl::encoding::Decoder<'_, D>,
5855 offset: usize,
5856 _depth: fidl::encoding::Depth,
5857 ) -> fidl::Result<()> {
5858 decoder.debug_check_bounds::<Self>(offset);
5859 fidl::decode!(PlugState, D, &mut self.plug_state, decoder, offset + 0, _depth)?;
5861 Ok(())
5862 }
5863 }
5864
5865 impl AllocateVmosConfig {
5866 #[inline(always)]
5867 fn max_ordinal_present(&self) -> u64 {
5868 if let Some(_) = self.vmo_count {
5869 return 2;
5870 }
5871 if let Some(_) = self.min_vmo_size {
5872 return 1;
5873 }
5874 0
5875 }
5876 }
5877
5878 impl fidl::encoding::ValueTypeMarker for AllocateVmosConfig {
5879 type Borrowed<'a> = &'a Self;
5880 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
5881 value
5882 }
5883 }
5884
5885 unsafe impl fidl::encoding::TypeMarker for AllocateVmosConfig {
5886 type Owned = Self;
5887
5888 #[inline(always)]
5889 fn inline_align(_context: fidl::encoding::Context) -> usize {
5890 8
5891 }
5892
5893 #[inline(always)]
5894 fn inline_size(_context: fidl::encoding::Context) -> usize {
5895 16
5896 }
5897 }
5898
5899 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<AllocateVmosConfig, D>
5900 for &AllocateVmosConfig
5901 {
5902 unsafe fn encode(
5903 self,
5904 encoder: &mut fidl::encoding::Encoder<'_, D>,
5905 offset: usize,
5906 mut depth: fidl::encoding::Depth,
5907 ) -> fidl::Result<()> {
5908 encoder.debug_check_bounds::<AllocateVmosConfig>(offset);
5909 let max_ordinal: u64 = self.max_ordinal_present();
5911 encoder.write_num(max_ordinal, offset);
5912 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
5913 if max_ordinal == 0 {
5915 return Ok(());
5916 }
5917 depth.increment()?;
5918 let envelope_size = 8;
5919 let bytes_len = max_ordinal as usize * envelope_size;
5920 #[allow(unused_variables)]
5921 let offset = encoder.out_of_line_offset(bytes_len);
5922 let mut _prev_end_offset: usize = 0;
5923 if 1 > max_ordinal {
5924 return Ok(());
5925 }
5926
5927 let cur_offset: usize = (1 - 1) * envelope_size;
5930
5931 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5933
5934 fidl::encoding::encode_in_envelope_optional::<u64, D>(
5939 self.min_vmo_size.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
5940 encoder,
5941 offset + cur_offset,
5942 depth,
5943 )?;
5944
5945 _prev_end_offset = cur_offset + envelope_size;
5946 if 2 > max_ordinal {
5947 return Ok(());
5948 }
5949
5950 let cur_offset: usize = (2 - 1) * envelope_size;
5953
5954 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5956
5957 fidl::encoding::encode_in_envelope_optional::<u32, D>(
5962 self.vmo_count.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
5963 encoder,
5964 offset + cur_offset,
5965 depth,
5966 )?;
5967
5968 _prev_end_offset = cur_offset + envelope_size;
5969
5970 Ok(())
5971 }
5972 }
5973
5974 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for AllocateVmosConfig {
5975 #[inline(always)]
5976 fn new_empty() -> Self {
5977 Self::default()
5978 }
5979
5980 unsafe fn decode(
5981 &mut self,
5982 decoder: &mut fidl::encoding::Decoder<'_, D>,
5983 offset: usize,
5984 mut depth: fidl::encoding::Depth,
5985 ) -> fidl::Result<()> {
5986 decoder.debug_check_bounds::<Self>(offset);
5987 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
5988 None => return Err(fidl::Error::NotNullable),
5989 Some(len) => len,
5990 };
5991 if len == 0 {
5993 return Ok(());
5994 };
5995 depth.increment()?;
5996 let envelope_size = 8;
5997 let bytes_len = len * envelope_size;
5998 let offset = decoder.out_of_line_offset(bytes_len)?;
5999 let mut _next_ordinal_to_read = 0;
6001 let mut next_offset = offset;
6002 let end_offset = offset + bytes_len;
6003 _next_ordinal_to_read += 1;
6004 if next_offset >= end_offset {
6005 return Ok(());
6006 }
6007
6008 while _next_ordinal_to_read < 1 {
6010 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6011 _next_ordinal_to_read += 1;
6012 next_offset += envelope_size;
6013 }
6014
6015 let next_out_of_line = decoder.next_out_of_line();
6016 let handles_before = decoder.remaining_handles();
6017 if let Some((inlined, num_bytes, num_handles)) =
6018 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6019 {
6020 let member_inline_size =
6021 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6022 if inlined != (member_inline_size <= 4) {
6023 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6024 }
6025 let inner_offset;
6026 let mut inner_depth = depth.clone();
6027 if inlined {
6028 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6029 inner_offset = next_offset;
6030 } else {
6031 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6032 inner_depth.increment()?;
6033 }
6034 let val_ref = self.min_vmo_size.get_or_insert_with(|| fidl::new_empty!(u64, D));
6035 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
6036 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6037 {
6038 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6039 }
6040 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6041 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6042 }
6043 }
6044
6045 next_offset += envelope_size;
6046 _next_ordinal_to_read += 1;
6047 if next_offset >= end_offset {
6048 return Ok(());
6049 }
6050
6051 while _next_ordinal_to_read < 2 {
6053 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6054 _next_ordinal_to_read += 1;
6055 next_offset += envelope_size;
6056 }
6057
6058 let next_out_of_line = decoder.next_out_of_line();
6059 let handles_before = decoder.remaining_handles();
6060 if let Some((inlined, num_bytes, num_handles)) =
6061 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6062 {
6063 let member_inline_size =
6064 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6065 if inlined != (member_inline_size <= 4) {
6066 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6067 }
6068 let inner_offset;
6069 let mut inner_depth = depth.clone();
6070 if inlined {
6071 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6072 inner_offset = next_offset;
6073 } else {
6074 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6075 inner_depth.increment()?;
6076 }
6077 let val_ref = self.vmo_count.get_or_insert_with(|| fidl::new_empty!(u32, D));
6078 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
6079 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6080 {
6081 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6082 }
6083 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6084 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6085 }
6086 }
6087
6088 next_offset += envelope_size;
6089
6090 while next_offset < end_offset {
6092 _next_ordinal_to_read += 1;
6093 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6094 next_offset += envelope_size;
6095 }
6096
6097 Ok(())
6098 }
6099 }
6100
6101 impl ChannelAttributes {
6102 #[inline(always)]
6103 fn max_ordinal_present(&self) -> u64 {
6104 if let Some(_) = self.max_frequency {
6105 return 2;
6106 }
6107 if let Some(_) = self.min_frequency {
6108 return 1;
6109 }
6110 0
6111 }
6112 }
6113
6114 impl fidl::encoding::ValueTypeMarker for ChannelAttributes {
6115 type Borrowed<'a> = &'a Self;
6116 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
6117 value
6118 }
6119 }
6120
6121 unsafe impl fidl::encoding::TypeMarker for ChannelAttributes {
6122 type Owned = Self;
6123
6124 #[inline(always)]
6125 fn inline_align(_context: fidl::encoding::Context) -> usize {
6126 8
6127 }
6128
6129 #[inline(always)]
6130 fn inline_size(_context: fidl::encoding::Context) -> usize {
6131 16
6132 }
6133 }
6134
6135 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<ChannelAttributes, D>
6136 for &ChannelAttributes
6137 {
6138 unsafe fn encode(
6139 self,
6140 encoder: &mut fidl::encoding::Encoder<'_, D>,
6141 offset: usize,
6142 mut depth: fidl::encoding::Depth,
6143 ) -> fidl::Result<()> {
6144 encoder.debug_check_bounds::<ChannelAttributes>(offset);
6145 let max_ordinal: u64 = self.max_ordinal_present();
6147 encoder.write_num(max_ordinal, offset);
6148 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
6149 if max_ordinal == 0 {
6151 return Ok(());
6152 }
6153 depth.increment()?;
6154 let envelope_size = 8;
6155 let bytes_len = max_ordinal as usize * envelope_size;
6156 #[allow(unused_variables)]
6157 let offset = encoder.out_of_line_offset(bytes_len);
6158 let mut _prev_end_offset: usize = 0;
6159 if 1 > max_ordinal {
6160 return Ok(());
6161 }
6162
6163 let cur_offset: usize = (1 - 1) * envelope_size;
6166
6167 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6169
6170 fidl::encoding::encode_in_envelope_optional::<u32, D>(
6175 self.min_frequency.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
6176 encoder,
6177 offset + cur_offset,
6178 depth,
6179 )?;
6180
6181 _prev_end_offset = cur_offset + envelope_size;
6182 if 2 > max_ordinal {
6183 return Ok(());
6184 }
6185
6186 let cur_offset: usize = (2 - 1) * envelope_size;
6189
6190 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6192
6193 fidl::encoding::encode_in_envelope_optional::<u32, D>(
6198 self.max_frequency.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
6199 encoder,
6200 offset + cur_offset,
6201 depth,
6202 )?;
6203
6204 _prev_end_offset = cur_offset + envelope_size;
6205
6206 Ok(())
6207 }
6208 }
6209
6210 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ChannelAttributes {
6211 #[inline(always)]
6212 fn new_empty() -> Self {
6213 Self::default()
6214 }
6215
6216 unsafe fn decode(
6217 &mut self,
6218 decoder: &mut fidl::encoding::Decoder<'_, D>,
6219 offset: usize,
6220 mut depth: fidl::encoding::Depth,
6221 ) -> fidl::Result<()> {
6222 decoder.debug_check_bounds::<Self>(offset);
6223 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
6224 None => return Err(fidl::Error::NotNullable),
6225 Some(len) => len,
6226 };
6227 if len == 0 {
6229 return Ok(());
6230 };
6231 depth.increment()?;
6232 let envelope_size = 8;
6233 let bytes_len = len * envelope_size;
6234 let offset = decoder.out_of_line_offset(bytes_len)?;
6235 let mut _next_ordinal_to_read = 0;
6237 let mut next_offset = offset;
6238 let end_offset = offset + bytes_len;
6239 _next_ordinal_to_read += 1;
6240 if next_offset >= end_offset {
6241 return Ok(());
6242 }
6243
6244 while _next_ordinal_to_read < 1 {
6246 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6247 _next_ordinal_to_read += 1;
6248 next_offset += envelope_size;
6249 }
6250
6251 let next_out_of_line = decoder.next_out_of_line();
6252 let handles_before = decoder.remaining_handles();
6253 if let Some((inlined, num_bytes, num_handles)) =
6254 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6255 {
6256 let member_inline_size =
6257 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6258 if inlined != (member_inline_size <= 4) {
6259 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6260 }
6261 let inner_offset;
6262 let mut inner_depth = depth.clone();
6263 if inlined {
6264 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6265 inner_offset = next_offset;
6266 } else {
6267 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6268 inner_depth.increment()?;
6269 }
6270 let val_ref = self.min_frequency.get_or_insert_with(|| fidl::new_empty!(u32, D));
6271 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
6272 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6273 {
6274 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6275 }
6276 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6277 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6278 }
6279 }
6280
6281 next_offset += envelope_size;
6282 _next_ordinal_to_read += 1;
6283 if next_offset >= end_offset {
6284 return Ok(());
6285 }
6286
6287 while _next_ordinal_to_read < 2 {
6289 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6290 _next_ordinal_to_read += 1;
6291 next_offset += envelope_size;
6292 }
6293
6294 let next_out_of_line = decoder.next_out_of_line();
6295 let handles_before = decoder.remaining_handles();
6296 if let Some((inlined, num_bytes, num_handles)) =
6297 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6298 {
6299 let member_inline_size =
6300 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6301 if inlined != (member_inline_size <= 4) {
6302 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6303 }
6304 let inner_offset;
6305 let mut inner_depth = depth.clone();
6306 if inlined {
6307 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6308 inner_offset = next_offset;
6309 } else {
6310 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6311 inner_depth.increment()?;
6312 }
6313 let val_ref = self.max_frequency.get_or_insert_with(|| fidl::new_empty!(u32, D));
6314 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
6315 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6316 {
6317 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6318 }
6319 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6320 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6321 }
6322 }
6323
6324 next_offset += envelope_size;
6325
6326 while next_offset < end_offset {
6328 _next_ordinal_to_read += 1;
6329 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6330 next_offset += envelope_size;
6331 }
6332
6333 Ok(())
6334 }
6335 }
6336
6337 impl ChannelSet {
6338 #[inline(always)]
6339 fn max_ordinal_present(&self) -> u64 {
6340 if let Some(_) = self.attributes {
6341 return 1;
6342 }
6343 0
6344 }
6345 }
6346
6347 impl fidl::encoding::ValueTypeMarker for ChannelSet {
6348 type Borrowed<'a> = &'a Self;
6349 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
6350 value
6351 }
6352 }
6353
6354 unsafe impl fidl::encoding::TypeMarker for ChannelSet {
6355 type Owned = Self;
6356
6357 #[inline(always)]
6358 fn inline_align(_context: fidl::encoding::Context) -> usize {
6359 8
6360 }
6361
6362 #[inline(always)]
6363 fn inline_size(_context: fidl::encoding::Context) -> usize {
6364 16
6365 }
6366 }
6367
6368 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<ChannelSet, D>
6369 for &ChannelSet
6370 {
6371 unsafe fn encode(
6372 self,
6373 encoder: &mut fidl::encoding::Encoder<'_, D>,
6374 offset: usize,
6375 mut depth: fidl::encoding::Depth,
6376 ) -> fidl::Result<()> {
6377 encoder.debug_check_bounds::<ChannelSet>(offset);
6378 let max_ordinal: u64 = self.max_ordinal_present();
6380 encoder.write_num(max_ordinal, offset);
6381 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
6382 if max_ordinal == 0 {
6384 return Ok(());
6385 }
6386 depth.increment()?;
6387 let envelope_size = 8;
6388 let bytes_len = max_ordinal as usize * envelope_size;
6389 #[allow(unused_variables)]
6390 let offset = encoder.out_of_line_offset(bytes_len);
6391 let mut _prev_end_offset: usize = 0;
6392 if 1 > max_ordinal {
6393 return Ok(());
6394 }
6395
6396 let cur_offset: usize = (1 - 1) * envelope_size;
6399
6400 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6402
6403 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<ChannelAttributes, 64>, D>(
6408 self.attributes.as_ref().map(<fidl::encoding::Vector<ChannelAttributes, 64> as fidl::encoding::ValueTypeMarker>::borrow),
6409 encoder, offset + cur_offset, depth
6410 )?;
6411
6412 _prev_end_offset = cur_offset + envelope_size;
6413
6414 Ok(())
6415 }
6416 }
6417
6418 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ChannelSet {
6419 #[inline(always)]
6420 fn new_empty() -> Self {
6421 Self::default()
6422 }
6423
6424 unsafe fn decode(
6425 &mut self,
6426 decoder: &mut fidl::encoding::Decoder<'_, D>,
6427 offset: usize,
6428 mut depth: fidl::encoding::Depth,
6429 ) -> fidl::Result<()> {
6430 decoder.debug_check_bounds::<Self>(offset);
6431 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
6432 None => return Err(fidl::Error::NotNullable),
6433 Some(len) => len,
6434 };
6435 if len == 0 {
6437 return Ok(());
6438 };
6439 depth.increment()?;
6440 let envelope_size = 8;
6441 let bytes_len = len * envelope_size;
6442 let offset = decoder.out_of_line_offset(bytes_len)?;
6443 let mut _next_ordinal_to_read = 0;
6445 let mut next_offset = offset;
6446 let end_offset = offset + bytes_len;
6447 _next_ordinal_to_read += 1;
6448 if next_offset >= end_offset {
6449 return Ok(());
6450 }
6451
6452 while _next_ordinal_to_read < 1 {
6454 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6455 _next_ordinal_to_read += 1;
6456 next_offset += envelope_size;
6457 }
6458
6459 let next_out_of_line = decoder.next_out_of_line();
6460 let handles_before = decoder.remaining_handles();
6461 if let Some((inlined, num_bytes, num_handles)) =
6462 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6463 {
6464 let member_inline_size = <fidl::encoding::Vector<ChannelAttributes, 64> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6465 if inlined != (member_inline_size <= 4) {
6466 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6467 }
6468 let inner_offset;
6469 let mut inner_depth = depth.clone();
6470 if inlined {
6471 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6472 inner_offset = next_offset;
6473 } else {
6474 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6475 inner_depth.increment()?;
6476 }
6477 let val_ref = self.attributes.get_or_insert_with(
6478 || fidl::new_empty!(fidl::encoding::Vector<ChannelAttributes, 64>, D),
6479 );
6480 fidl::decode!(fidl::encoding::Vector<ChannelAttributes, 64>, D, val_ref, decoder, inner_offset, inner_depth)?;
6481 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6482 {
6483 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6484 }
6485 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6486 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6487 }
6488 }
6489
6490 next_offset += envelope_size;
6491
6492 while next_offset < end_offset {
6494 _next_ordinal_to_read += 1;
6495 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6496 next_offset += envelope_size;
6497 }
6498
6499 Ok(())
6500 }
6501 }
6502
6503 impl CodecFormatInfo {
6504 #[inline(always)]
6505 fn max_ordinal_present(&self) -> u64 {
6506 if let Some(_) = self.turn_off_delay {
6507 return 3;
6508 }
6509 if let Some(_) = self.turn_on_delay {
6510 return 2;
6511 }
6512 if let Some(_) = self.external_delay {
6513 return 1;
6514 }
6515 0
6516 }
6517 }
6518
6519 impl fidl::encoding::ValueTypeMarker for CodecFormatInfo {
6520 type Borrowed<'a> = &'a Self;
6521 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
6522 value
6523 }
6524 }
6525
6526 unsafe impl fidl::encoding::TypeMarker for CodecFormatInfo {
6527 type Owned = Self;
6528
6529 #[inline(always)]
6530 fn inline_align(_context: fidl::encoding::Context) -> usize {
6531 8
6532 }
6533
6534 #[inline(always)]
6535 fn inline_size(_context: fidl::encoding::Context) -> usize {
6536 16
6537 }
6538 }
6539
6540 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<CodecFormatInfo, D>
6541 for &CodecFormatInfo
6542 {
6543 unsafe fn encode(
6544 self,
6545 encoder: &mut fidl::encoding::Encoder<'_, D>,
6546 offset: usize,
6547 mut depth: fidl::encoding::Depth,
6548 ) -> fidl::Result<()> {
6549 encoder.debug_check_bounds::<CodecFormatInfo>(offset);
6550 let max_ordinal: u64 = self.max_ordinal_present();
6552 encoder.write_num(max_ordinal, offset);
6553 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
6554 if max_ordinal == 0 {
6556 return Ok(());
6557 }
6558 depth.increment()?;
6559 let envelope_size = 8;
6560 let bytes_len = max_ordinal as usize * envelope_size;
6561 #[allow(unused_variables)]
6562 let offset = encoder.out_of_line_offset(bytes_len);
6563 let mut _prev_end_offset: usize = 0;
6564 if 1 > max_ordinal {
6565 return Ok(());
6566 }
6567
6568 let cur_offset: usize = (1 - 1) * envelope_size;
6571
6572 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6574
6575 fidl::encoding::encode_in_envelope_optional::<i64, D>(
6580 self.external_delay.as_ref().map(<i64 as fidl::encoding::ValueTypeMarker>::borrow),
6581 encoder,
6582 offset + cur_offset,
6583 depth,
6584 )?;
6585
6586 _prev_end_offset = cur_offset + envelope_size;
6587 if 2 > max_ordinal {
6588 return Ok(());
6589 }
6590
6591 let cur_offset: usize = (2 - 1) * envelope_size;
6594
6595 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6597
6598 fidl::encoding::encode_in_envelope_optional::<i64, D>(
6603 self.turn_on_delay.as_ref().map(<i64 as fidl::encoding::ValueTypeMarker>::borrow),
6604 encoder,
6605 offset + cur_offset,
6606 depth,
6607 )?;
6608
6609 _prev_end_offset = cur_offset + envelope_size;
6610 if 3 > max_ordinal {
6611 return Ok(());
6612 }
6613
6614 let cur_offset: usize = (3 - 1) * envelope_size;
6617
6618 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6620
6621 fidl::encoding::encode_in_envelope_optional::<i64, D>(
6626 self.turn_off_delay.as_ref().map(<i64 as fidl::encoding::ValueTypeMarker>::borrow),
6627 encoder,
6628 offset + cur_offset,
6629 depth,
6630 )?;
6631
6632 _prev_end_offset = cur_offset + envelope_size;
6633
6634 Ok(())
6635 }
6636 }
6637
6638 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for CodecFormatInfo {
6639 #[inline(always)]
6640 fn new_empty() -> Self {
6641 Self::default()
6642 }
6643
6644 unsafe fn decode(
6645 &mut self,
6646 decoder: &mut fidl::encoding::Decoder<'_, D>,
6647 offset: usize,
6648 mut depth: fidl::encoding::Depth,
6649 ) -> fidl::Result<()> {
6650 decoder.debug_check_bounds::<Self>(offset);
6651 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
6652 None => return Err(fidl::Error::NotNullable),
6653 Some(len) => len,
6654 };
6655 if len == 0 {
6657 return Ok(());
6658 };
6659 depth.increment()?;
6660 let envelope_size = 8;
6661 let bytes_len = len * envelope_size;
6662 let offset = decoder.out_of_line_offset(bytes_len)?;
6663 let mut _next_ordinal_to_read = 0;
6665 let mut next_offset = offset;
6666 let end_offset = offset + bytes_len;
6667 _next_ordinal_to_read += 1;
6668 if next_offset >= end_offset {
6669 return Ok(());
6670 }
6671
6672 while _next_ordinal_to_read < 1 {
6674 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6675 _next_ordinal_to_read += 1;
6676 next_offset += envelope_size;
6677 }
6678
6679 let next_out_of_line = decoder.next_out_of_line();
6680 let handles_before = decoder.remaining_handles();
6681 if let Some((inlined, num_bytes, num_handles)) =
6682 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6683 {
6684 let member_inline_size =
6685 <i64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6686 if inlined != (member_inline_size <= 4) {
6687 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6688 }
6689 let inner_offset;
6690 let mut inner_depth = depth.clone();
6691 if inlined {
6692 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6693 inner_offset = next_offset;
6694 } else {
6695 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6696 inner_depth.increment()?;
6697 }
6698 let val_ref = self.external_delay.get_or_insert_with(|| fidl::new_empty!(i64, D));
6699 fidl::decode!(i64, D, val_ref, decoder, inner_offset, inner_depth)?;
6700 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6701 {
6702 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6703 }
6704 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6705 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6706 }
6707 }
6708
6709 next_offset += envelope_size;
6710 _next_ordinal_to_read += 1;
6711 if next_offset >= end_offset {
6712 return Ok(());
6713 }
6714
6715 while _next_ordinal_to_read < 2 {
6717 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6718 _next_ordinal_to_read += 1;
6719 next_offset += envelope_size;
6720 }
6721
6722 let next_out_of_line = decoder.next_out_of_line();
6723 let handles_before = decoder.remaining_handles();
6724 if let Some((inlined, num_bytes, num_handles)) =
6725 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6726 {
6727 let member_inline_size =
6728 <i64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6729 if inlined != (member_inline_size <= 4) {
6730 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6731 }
6732 let inner_offset;
6733 let mut inner_depth = depth.clone();
6734 if inlined {
6735 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6736 inner_offset = next_offset;
6737 } else {
6738 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6739 inner_depth.increment()?;
6740 }
6741 let val_ref = self.turn_on_delay.get_or_insert_with(|| fidl::new_empty!(i64, D));
6742 fidl::decode!(i64, D, val_ref, decoder, inner_offset, inner_depth)?;
6743 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6744 {
6745 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6746 }
6747 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6748 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6749 }
6750 }
6751
6752 next_offset += envelope_size;
6753 _next_ordinal_to_read += 1;
6754 if next_offset >= end_offset {
6755 return Ok(());
6756 }
6757
6758 while _next_ordinal_to_read < 3 {
6760 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6761 _next_ordinal_to_read += 1;
6762 next_offset += envelope_size;
6763 }
6764
6765 let next_out_of_line = decoder.next_out_of_line();
6766 let handles_before = decoder.remaining_handles();
6767 if let Some((inlined, num_bytes, num_handles)) =
6768 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6769 {
6770 let member_inline_size =
6771 <i64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6772 if inlined != (member_inline_size <= 4) {
6773 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6774 }
6775 let inner_offset;
6776 let mut inner_depth = depth.clone();
6777 if inlined {
6778 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6779 inner_offset = next_offset;
6780 } else {
6781 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6782 inner_depth.increment()?;
6783 }
6784 let val_ref = self.turn_off_delay.get_or_insert_with(|| fidl::new_empty!(i64, D));
6785 fidl::decode!(i64, D, val_ref, decoder, inner_offset, inner_depth)?;
6786 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6787 {
6788 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6789 }
6790 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6791 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6792 }
6793 }
6794
6795 next_offset += envelope_size;
6796
6797 while next_offset < end_offset {
6799 _next_ordinal_to_read += 1;
6800 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6801 next_offset += envelope_size;
6802 }
6803
6804 Ok(())
6805 }
6806 }
6807
6808 impl CodecProperties {
6809 #[inline(always)]
6810 fn max_ordinal_present(&self) -> u64 {
6811 if let Some(_) = self.plug_detect_capabilities {
6812 return 5;
6813 }
6814 if let Some(_) = self.unique_id {
6815 return 4;
6816 }
6817 if let Some(_) = self.product {
6818 return 3;
6819 }
6820 if let Some(_) = self.manufacturer {
6821 return 2;
6822 }
6823 if let Some(_) = self.is_input {
6824 return 1;
6825 }
6826 0
6827 }
6828 }
6829
6830 impl fidl::encoding::ValueTypeMarker for CodecProperties {
6831 type Borrowed<'a> = &'a Self;
6832 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
6833 value
6834 }
6835 }
6836
6837 unsafe impl fidl::encoding::TypeMarker for CodecProperties {
6838 type Owned = Self;
6839
6840 #[inline(always)]
6841 fn inline_align(_context: fidl::encoding::Context) -> usize {
6842 8
6843 }
6844
6845 #[inline(always)]
6846 fn inline_size(_context: fidl::encoding::Context) -> usize {
6847 16
6848 }
6849 }
6850
6851 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<CodecProperties, D>
6852 for &CodecProperties
6853 {
6854 unsafe fn encode(
6855 self,
6856 encoder: &mut fidl::encoding::Encoder<'_, D>,
6857 offset: usize,
6858 mut depth: fidl::encoding::Depth,
6859 ) -> fidl::Result<()> {
6860 encoder.debug_check_bounds::<CodecProperties>(offset);
6861 let max_ordinal: u64 = self.max_ordinal_present();
6863 encoder.write_num(max_ordinal, offset);
6864 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
6865 if max_ordinal == 0 {
6867 return Ok(());
6868 }
6869 depth.increment()?;
6870 let envelope_size = 8;
6871 let bytes_len = max_ordinal as usize * envelope_size;
6872 #[allow(unused_variables)]
6873 let offset = encoder.out_of_line_offset(bytes_len);
6874 let mut _prev_end_offset: usize = 0;
6875 if 1 > max_ordinal {
6876 return Ok(());
6877 }
6878
6879 let cur_offset: usize = (1 - 1) * envelope_size;
6882
6883 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6885
6886 fidl::encoding::encode_in_envelope_optional::<bool, D>(
6891 self.is_input.as_ref().map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
6892 encoder,
6893 offset + cur_offset,
6894 depth,
6895 )?;
6896
6897 _prev_end_offset = cur_offset + envelope_size;
6898 if 2 > max_ordinal {
6899 return Ok(());
6900 }
6901
6902 let cur_offset: usize = (2 - 1) * envelope_size;
6905
6906 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6908
6909 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<256>, D>(
6914 self.manufacturer.as_ref().map(
6915 <fidl::encoding::BoundedString<256> as fidl::encoding::ValueTypeMarker>::borrow,
6916 ),
6917 encoder,
6918 offset + cur_offset,
6919 depth,
6920 )?;
6921
6922 _prev_end_offset = cur_offset + envelope_size;
6923 if 3 > max_ordinal {
6924 return Ok(());
6925 }
6926
6927 let cur_offset: usize = (3 - 1) * envelope_size;
6930
6931 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6933
6934 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<256>, D>(
6939 self.product.as_ref().map(
6940 <fidl::encoding::BoundedString<256> as fidl::encoding::ValueTypeMarker>::borrow,
6941 ),
6942 encoder,
6943 offset + cur_offset,
6944 depth,
6945 )?;
6946
6947 _prev_end_offset = cur_offset + envelope_size;
6948 if 4 > max_ordinal {
6949 return Ok(());
6950 }
6951
6952 let cur_offset: usize = (4 - 1) * envelope_size;
6955
6956 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6958
6959 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 16>, D>(
6964 self.unique_id.as_ref().map(
6965 <fidl::encoding::Array<u8, 16> as fidl::encoding::ValueTypeMarker>::borrow,
6966 ),
6967 encoder,
6968 offset + cur_offset,
6969 depth,
6970 )?;
6971
6972 _prev_end_offset = cur_offset + envelope_size;
6973 if 5 > max_ordinal {
6974 return Ok(());
6975 }
6976
6977 let cur_offset: usize = (5 - 1) * envelope_size;
6980
6981 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6983
6984 fidl::encoding::encode_in_envelope_optional::<PlugDetectCapabilities, D>(
6989 self.plug_detect_capabilities
6990 .as_ref()
6991 .map(<PlugDetectCapabilities as fidl::encoding::ValueTypeMarker>::borrow),
6992 encoder,
6993 offset + cur_offset,
6994 depth,
6995 )?;
6996
6997 _prev_end_offset = cur_offset + envelope_size;
6998
6999 Ok(())
7000 }
7001 }
7002
7003 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for CodecProperties {
7004 #[inline(always)]
7005 fn new_empty() -> Self {
7006 Self::default()
7007 }
7008
7009 unsafe fn decode(
7010 &mut self,
7011 decoder: &mut fidl::encoding::Decoder<'_, D>,
7012 offset: usize,
7013 mut depth: fidl::encoding::Depth,
7014 ) -> fidl::Result<()> {
7015 decoder.debug_check_bounds::<Self>(offset);
7016 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
7017 None => return Err(fidl::Error::NotNullable),
7018 Some(len) => len,
7019 };
7020 if len == 0 {
7022 return Ok(());
7023 };
7024 depth.increment()?;
7025 let envelope_size = 8;
7026 let bytes_len = len * envelope_size;
7027 let offset = decoder.out_of_line_offset(bytes_len)?;
7028 let mut _next_ordinal_to_read = 0;
7030 let mut next_offset = offset;
7031 let end_offset = offset + bytes_len;
7032 _next_ordinal_to_read += 1;
7033 if next_offset >= end_offset {
7034 return Ok(());
7035 }
7036
7037 while _next_ordinal_to_read < 1 {
7039 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7040 _next_ordinal_to_read += 1;
7041 next_offset += envelope_size;
7042 }
7043
7044 let next_out_of_line = decoder.next_out_of_line();
7045 let handles_before = decoder.remaining_handles();
7046 if let Some((inlined, num_bytes, num_handles)) =
7047 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7048 {
7049 let member_inline_size =
7050 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7051 if inlined != (member_inline_size <= 4) {
7052 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7053 }
7054 let inner_offset;
7055 let mut inner_depth = depth.clone();
7056 if inlined {
7057 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7058 inner_offset = next_offset;
7059 } else {
7060 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7061 inner_depth.increment()?;
7062 }
7063 let val_ref = self.is_input.get_or_insert_with(|| fidl::new_empty!(bool, D));
7064 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
7065 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7066 {
7067 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7068 }
7069 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7070 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7071 }
7072 }
7073
7074 next_offset += envelope_size;
7075 _next_ordinal_to_read += 1;
7076 if next_offset >= end_offset {
7077 return Ok(());
7078 }
7079
7080 while _next_ordinal_to_read < 2 {
7082 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7083 _next_ordinal_to_read += 1;
7084 next_offset += envelope_size;
7085 }
7086
7087 let next_out_of_line = decoder.next_out_of_line();
7088 let handles_before = decoder.remaining_handles();
7089 if let Some((inlined, num_bytes, num_handles)) =
7090 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7091 {
7092 let member_inline_size =
7093 <fidl::encoding::BoundedString<256> as fidl::encoding::TypeMarker>::inline_size(
7094 decoder.context,
7095 );
7096 if inlined != (member_inline_size <= 4) {
7097 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7098 }
7099 let inner_offset;
7100 let mut inner_depth = depth.clone();
7101 if inlined {
7102 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7103 inner_offset = next_offset;
7104 } else {
7105 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7106 inner_depth.increment()?;
7107 }
7108 let val_ref = self
7109 .manufacturer
7110 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<256>, D));
7111 fidl::decode!(
7112 fidl::encoding::BoundedString<256>,
7113 D,
7114 val_ref,
7115 decoder,
7116 inner_offset,
7117 inner_depth
7118 )?;
7119 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7120 {
7121 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7122 }
7123 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7124 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7125 }
7126 }
7127
7128 next_offset += envelope_size;
7129 _next_ordinal_to_read += 1;
7130 if next_offset >= end_offset {
7131 return Ok(());
7132 }
7133
7134 while _next_ordinal_to_read < 3 {
7136 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7137 _next_ordinal_to_read += 1;
7138 next_offset += envelope_size;
7139 }
7140
7141 let next_out_of_line = decoder.next_out_of_line();
7142 let handles_before = decoder.remaining_handles();
7143 if let Some((inlined, num_bytes, num_handles)) =
7144 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7145 {
7146 let member_inline_size =
7147 <fidl::encoding::BoundedString<256> as fidl::encoding::TypeMarker>::inline_size(
7148 decoder.context,
7149 );
7150 if inlined != (member_inline_size <= 4) {
7151 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7152 }
7153 let inner_offset;
7154 let mut inner_depth = depth.clone();
7155 if inlined {
7156 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7157 inner_offset = next_offset;
7158 } else {
7159 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7160 inner_depth.increment()?;
7161 }
7162 let val_ref = self
7163 .product
7164 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<256>, D));
7165 fidl::decode!(
7166 fidl::encoding::BoundedString<256>,
7167 D,
7168 val_ref,
7169 decoder,
7170 inner_offset,
7171 inner_depth
7172 )?;
7173 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7174 {
7175 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7176 }
7177 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7178 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7179 }
7180 }
7181
7182 next_offset += envelope_size;
7183 _next_ordinal_to_read += 1;
7184 if next_offset >= end_offset {
7185 return Ok(());
7186 }
7187
7188 while _next_ordinal_to_read < 4 {
7190 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7191 _next_ordinal_to_read += 1;
7192 next_offset += envelope_size;
7193 }
7194
7195 let next_out_of_line = decoder.next_out_of_line();
7196 let handles_before = decoder.remaining_handles();
7197 if let Some((inlined, num_bytes, num_handles)) =
7198 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7199 {
7200 let member_inline_size =
7201 <fidl::encoding::Array<u8, 16> as fidl::encoding::TypeMarker>::inline_size(
7202 decoder.context,
7203 );
7204 if inlined != (member_inline_size <= 4) {
7205 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7206 }
7207 let inner_offset;
7208 let mut inner_depth = depth.clone();
7209 if inlined {
7210 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7211 inner_offset = next_offset;
7212 } else {
7213 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7214 inner_depth.increment()?;
7215 }
7216 let val_ref = self
7217 .unique_id
7218 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 16>, D));
7219 fidl::decode!(fidl::encoding::Array<u8, 16>, D, val_ref, decoder, inner_offset, inner_depth)?;
7220 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7221 {
7222 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7223 }
7224 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7225 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7226 }
7227 }
7228
7229 next_offset += envelope_size;
7230 _next_ordinal_to_read += 1;
7231 if next_offset >= end_offset {
7232 return Ok(());
7233 }
7234
7235 while _next_ordinal_to_read < 5 {
7237 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7238 _next_ordinal_to_read += 1;
7239 next_offset += envelope_size;
7240 }
7241
7242 let next_out_of_line = decoder.next_out_of_line();
7243 let handles_before = decoder.remaining_handles();
7244 if let Some((inlined, num_bytes, num_handles)) =
7245 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7246 {
7247 let member_inline_size =
7248 <PlugDetectCapabilities as fidl::encoding::TypeMarker>::inline_size(
7249 decoder.context,
7250 );
7251 if inlined != (member_inline_size <= 4) {
7252 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7253 }
7254 let inner_offset;
7255 let mut inner_depth = depth.clone();
7256 if inlined {
7257 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7258 inner_offset = next_offset;
7259 } else {
7260 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7261 inner_depth.increment()?;
7262 }
7263 let val_ref = self
7264 .plug_detect_capabilities
7265 .get_or_insert_with(|| fidl::new_empty!(PlugDetectCapabilities, D));
7266 fidl::decode!(
7267 PlugDetectCapabilities,
7268 D,
7269 val_ref,
7270 decoder,
7271 inner_offset,
7272 inner_depth
7273 )?;
7274 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7275 {
7276 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7277 }
7278 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7279 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7280 }
7281 }
7282
7283 next_offset += envelope_size;
7284
7285 while next_offset < end_offset {
7287 _next_ordinal_to_read += 1;
7288 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7289 next_offset += envelope_size;
7290 }
7291
7292 Ok(())
7293 }
7294 }
7295
7296 impl CompositeProperties {
7297 #[inline(always)]
7298 fn max_ordinal_present(&self) -> u64 {
7299 if let Some(_) = self.clock_domain {
7300 return 5;
7301 }
7302 if let Some(_) = self.unique_id {
7303 return 4;
7304 }
7305 if let Some(_) = self.product {
7306 return 3;
7307 }
7308 if let Some(_) = self.manufacturer {
7309 return 2;
7310 }
7311 0
7312 }
7313 }
7314
7315 impl fidl::encoding::ValueTypeMarker for CompositeProperties {
7316 type Borrowed<'a> = &'a Self;
7317 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
7318 value
7319 }
7320 }
7321
7322 unsafe impl fidl::encoding::TypeMarker for CompositeProperties {
7323 type Owned = Self;
7324
7325 #[inline(always)]
7326 fn inline_align(_context: fidl::encoding::Context) -> usize {
7327 8
7328 }
7329
7330 #[inline(always)]
7331 fn inline_size(_context: fidl::encoding::Context) -> usize {
7332 16
7333 }
7334 }
7335
7336 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<CompositeProperties, D>
7337 for &CompositeProperties
7338 {
7339 unsafe fn encode(
7340 self,
7341 encoder: &mut fidl::encoding::Encoder<'_, D>,
7342 offset: usize,
7343 mut depth: fidl::encoding::Depth,
7344 ) -> fidl::Result<()> {
7345 encoder.debug_check_bounds::<CompositeProperties>(offset);
7346 let max_ordinal: u64 = self.max_ordinal_present();
7348 encoder.write_num(max_ordinal, offset);
7349 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
7350 if max_ordinal == 0 {
7352 return Ok(());
7353 }
7354 depth.increment()?;
7355 let envelope_size = 8;
7356 let bytes_len = max_ordinal as usize * envelope_size;
7357 #[allow(unused_variables)]
7358 let offset = encoder.out_of_line_offset(bytes_len);
7359 let mut _prev_end_offset: usize = 0;
7360 if 2 > max_ordinal {
7361 return Ok(());
7362 }
7363
7364 let cur_offset: usize = (2 - 1) * envelope_size;
7367
7368 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7370
7371 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<256>, D>(
7376 self.manufacturer.as_ref().map(
7377 <fidl::encoding::BoundedString<256> as fidl::encoding::ValueTypeMarker>::borrow,
7378 ),
7379 encoder,
7380 offset + cur_offset,
7381 depth,
7382 )?;
7383
7384 _prev_end_offset = cur_offset + envelope_size;
7385 if 3 > max_ordinal {
7386 return Ok(());
7387 }
7388
7389 let cur_offset: usize = (3 - 1) * envelope_size;
7392
7393 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7395
7396 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<256>, D>(
7401 self.product.as_ref().map(
7402 <fidl::encoding::BoundedString<256> as fidl::encoding::ValueTypeMarker>::borrow,
7403 ),
7404 encoder,
7405 offset + cur_offset,
7406 depth,
7407 )?;
7408
7409 _prev_end_offset = cur_offset + envelope_size;
7410 if 4 > max_ordinal {
7411 return Ok(());
7412 }
7413
7414 let cur_offset: usize = (4 - 1) * envelope_size;
7417
7418 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7420
7421 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 16>, D>(
7426 self.unique_id.as_ref().map(
7427 <fidl::encoding::Array<u8, 16> as fidl::encoding::ValueTypeMarker>::borrow,
7428 ),
7429 encoder,
7430 offset + cur_offset,
7431 depth,
7432 )?;
7433
7434 _prev_end_offset = cur_offset + envelope_size;
7435 if 5 > max_ordinal {
7436 return Ok(());
7437 }
7438
7439 let cur_offset: usize = (5 - 1) * envelope_size;
7442
7443 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7445
7446 fidl::encoding::encode_in_envelope_optional::<u32, D>(
7451 self.clock_domain.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
7452 encoder,
7453 offset + cur_offset,
7454 depth,
7455 )?;
7456
7457 _prev_end_offset = cur_offset + envelope_size;
7458
7459 Ok(())
7460 }
7461 }
7462
7463 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for CompositeProperties {
7464 #[inline(always)]
7465 fn new_empty() -> Self {
7466 Self::default()
7467 }
7468
7469 unsafe fn decode(
7470 &mut self,
7471 decoder: &mut fidl::encoding::Decoder<'_, D>,
7472 offset: usize,
7473 mut depth: fidl::encoding::Depth,
7474 ) -> fidl::Result<()> {
7475 decoder.debug_check_bounds::<Self>(offset);
7476 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
7477 None => return Err(fidl::Error::NotNullable),
7478 Some(len) => len,
7479 };
7480 if len == 0 {
7482 return Ok(());
7483 };
7484 depth.increment()?;
7485 let envelope_size = 8;
7486 let bytes_len = len * envelope_size;
7487 let offset = decoder.out_of_line_offset(bytes_len)?;
7488 let mut _next_ordinal_to_read = 0;
7490 let mut next_offset = offset;
7491 let end_offset = offset + bytes_len;
7492 _next_ordinal_to_read += 1;
7493 if next_offset >= end_offset {
7494 return Ok(());
7495 }
7496
7497 while _next_ordinal_to_read < 2 {
7499 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7500 _next_ordinal_to_read += 1;
7501 next_offset += envelope_size;
7502 }
7503
7504 let next_out_of_line = decoder.next_out_of_line();
7505 let handles_before = decoder.remaining_handles();
7506 if let Some((inlined, num_bytes, num_handles)) =
7507 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7508 {
7509 let member_inline_size =
7510 <fidl::encoding::BoundedString<256> as fidl::encoding::TypeMarker>::inline_size(
7511 decoder.context,
7512 );
7513 if inlined != (member_inline_size <= 4) {
7514 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7515 }
7516 let inner_offset;
7517 let mut inner_depth = depth.clone();
7518 if inlined {
7519 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7520 inner_offset = next_offset;
7521 } else {
7522 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7523 inner_depth.increment()?;
7524 }
7525 let val_ref = self
7526 .manufacturer
7527 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<256>, D));
7528 fidl::decode!(
7529 fidl::encoding::BoundedString<256>,
7530 D,
7531 val_ref,
7532 decoder,
7533 inner_offset,
7534 inner_depth
7535 )?;
7536 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7537 {
7538 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7539 }
7540 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7541 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7542 }
7543 }
7544
7545 next_offset += envelope_size;
7546 _next_ordinal_to_read += 1;
7547 if next_offset >= end_offset {
7548 return Ok(());
7549 }
7550
7551 while _next_ordinal_to_read < 3 {
7553 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7554 _next_ordinal_to_read += 1;
7555 next_offset += envelope_size;
7556 }
7557
7558 let next_out_of_line = decoder.next_out_of_line();
7559 let handles_before = decoder.remaining_handles();
7560 if let Some((inlined, num_bytes, num_handles)) =
7561 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7562 {
7563 let member_inline_size =
7564 <fidl::encoding::BoundedString<256> as fidl::encoding::TypeMarker>::inline_size(
7565 decoder.context,
7566 );
7567 if inlined != (member_inline_size <= 4) {
7568 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7569 }
7570 let inner_offset;
7571 let mut inner_depth = depth.clone();
7572 if inlined {
7573 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7574 inner_offset = next_offset;
7575 } else {
7576 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7577 inner_depth.increment()?;
7578 }
7579 let val_ref = self
7580 .product
7581 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<256>, D));
7582 fidl::decode!(
7583 fidl::encoding::BoundedString<256>,
7584 D,
7585 val_ref,
7586 decoder,
7587 inner_offset,
7588 inner_depth
7589 )?;
7590 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7591 {
7592 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7593 }
7594 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7595 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7596 }
7597 }
7598
7599 next_offset += envelope_size;
7600 _next_ordinal_to_read += 1;
7601 if next_offset >= end_offset {
7602 return Ok(());
7603 }
7604
7605 while _next_ordinal_to_read < 4 {
7607 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7608 _next_ordinal_to_read += 1;
7609 next_offset += envelope_size;
7610 }
7611
7612 let next_out_of_line = decoder.next_out_of_line();
7613 let handles_before = decoder.remaining_handles();
7614 if let Some((inlined, num_bytes, num_handles)) =
7615 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7616 {
7617 let member_inline_size =
7618 <fidl::encoding::Array<u8, 16> as fidl::encoding::TypeMarker>::inline_size(
7619 decoder.context,
7620 );
7621 if inlined != (member_inline_size <= 4) {
7622 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7623 }
7624 let inner_offset;
7625 let mut inner_depth = depth.clone();
7626 if inlined {
7627 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7628 inner_offset = next_offset;
7629 } else {
7630 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7631 inner_depth.increment()?;
7632 }
7633 let val_ref = self
7634 .unique_id
7635 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 16>, D));
7636 fidl::decode!(fidl::encoding::Array<u8, 16>, D, val_ref, decoder, inner_offset, inner_depth)?;
7637 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7638 {
7639 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7640 }
7641 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7642 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7643 }
7644 }
7645
7646 next_offset += envelope_size;
7647 _next_ordinal_to_read += 1;
7648 if next_offset >= end_offset {
7649 return Ok(());
7650 }
7651
7652 while _next_ordinal_to_read < 5 {
7654 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7655 _next_ordinal_to_read += 1;
7656 next_offset += envelope_size;
7657 }
7658
7659 let next_out_of_line = decoder.next_out_of_line();
7660 let handles_before = decoder.remaining_handles();
7661 if let Some((inlined, num_bytes, num_handles)) =
7662 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7663 {
7664 let member_inline_size =
7665 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7666 if inlined != (member_inline_size <= 4) {
7667 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7668 }
7669 let inner_offset;
7670 let mut inner_depth = depth.clone();
7671 if inlined {
7672 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7673 inner_offset = next_offset;
7674 } else {
7675 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7676 inner_depth.increment()?;
7677 }
7678 let val_ref = self.clock_domain.get_or_insert_with(|| fidl::new_empty!(u32, D));
7679 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
7680 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7681 {
7682 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7683 }
7684 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7685 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7686 }
7687 }
7688
7689 next_offset += envelope_size;
7690
7691 while next_offset < end_offset {
7693 _next_ordinal_to_read += 1;
7694 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7695 next_offset += envelope_size;
7696 }
7697
7698 Ok(())
7699 }
7700 }
7701
7702 impl DaiProperties {
7703 #[inline(always)]
7704 fn max_ordinal_present(&self) -> u64 {
7705 if let Some(_) = self.clock_domain {
7706 return 5;
7707 }
7708 if let Some(_) = self.unique_id {
7709 return 4;
7710 }
7711 if let Some(_) = self.product_name {
7712 return 3;
7713 }
7714 if let Some(_) = self.manufacturer {
7715 return 2;
7716 }
7717 if let Some(_) = self.is_input {
7718 return 1;
7719 }
7720 0
7721 }
7722 }
7723
7724 impl fidl::encoding::ValueTypeMarker for DaiProperties {
7725 type Borrowed<'a> = &'a Self;
7726 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
7727 value
7728 }
7729 }
7730
7731 unsafe impl fidl::encoding::TypeMarker for DaiProperties {
7732 type Owned = Self;
7733
7734 #[inline(always)]
7735 fn inline_align(_context: fidl::encoding::Context) -> usize {
7736 8
7737 }
7738
7739 #[inline(always)]
7740 fn inline_size(_context: fidl::encoding::Context) -> usize {
7741 16
7742 }
7743 }
7744
7745 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<DaiProperties, D>
7746 for &DaiProperties
7747 {
7748 unsafe fn encode(
7749 self,
7750 encoder: &mut fidl::encoding::Encoder<'_, D>,
7751 offset: usize,
7752 mut depth: fidl::encoding::Depth,
7753 ) -> fidl::Result<()> {
7754 encoder.debug_check_bounds::<DaiProperties>(offset);
7755 let max_ordinal: u64 = self.max_ordinal_present();
7757 encoder.write_num(max_ordinal, offset);
7758 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
7759 if max_ordinal == 0 {
7761 return Ok(());
7762 }
7763 depth.increment()?;
7764 let envelope_size = 8;
7765 let bytes_len = max_ordinal as usize * envelope_size;
7766 #[allow(unused_variables)]
7767 let offset = encoder.out_of_line_offset(bytes_len);
7768 let mut _prev_end_offset: usize = 0;
7769 if 1 > max_ordinal {
7770 return Ok(());
7771 }
7772
7773 let cur_offset: usize = (1 - 1) * envelope_size;
7776
7777 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7779
7780 fidl::encoding::encode_in_envelope_optional::<bool, D>(
7785 self.is_input.as_ref().map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
7786 encoder,
7787 offset + cur_offset,
7788 depth,
7789 )?;
7790
7791 _prev_end_offset = cur_offset + envelope_size;
7792 if 2 > max_ordinal {
7793 return Ok(());
7794 }
7795
7796 let cur_offset: usize = (2 - 1) * envelope_size;
7799
7800 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7802
7803 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<256>, D>(
7808 self.manufacturer.as_ref().map(
7809 <fidl::encoding::BoundedString<256> as fidl::encoding::ValueTypeMarker>::borrow,
7810 ),
7811 encoder,
7812 offset + cur_offset,
7813 depth,
7814 )?;
7815
7816 _prev_end_offset = cur_offset + envelope_size;
7817 if 3 > max_ordinal {
7818 return Ok(());
7819 }
7820
7821 let cur_offset: usize = (3 - 1) * envelope_size;
7824
7825 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7827
7828 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<256>, D>(
7833 self.product_name.as_ref().map(
7834 <fidl::encoding::BoundedString<256> as fidl::encoding::ValueTypeMarker>::borrow,
7835 ),
7836 encoder,
7837 offset + cur_offset,
7838 depth,
7839 )?;
7840
7841 _prev_end_offset = cur_offset + envelope_size;
7842 if 4 > max_ordinal {
7843 return Ok(());
7844 }
7845
7846 let cur_offset: usize = (4 - 1) * envelope_size;
7849
7850 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7852
7853 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 16>, D>(
7858 self.unique_id.as_ref().map(
7859 <fidl::encoding::Array<u8, 16> as fidl::encoding::ValueTypeMarker>::borrow,
7860 ),
7861 encoder,
7862 offset + cur_offset,
7863 depth,
7864 )?;
7865
7866 _prev_end_offset = cur_offset + envelope_size;
7867 if 5 > max_ordinal {
7868 return Ok(());
7869 }
7870
7871 let cur_offset: usize = (5 - 1) * envelope_size;
7874
7875 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7877
7878 fidl::encoding::encode_in_envelope_optional::<u32, D>(
7883 self.clock_domain.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
7884 encoder,
7885 offset + cur_offset,
7886 depth,
7887 )?;
7888
7889 _prev_end_offset = cur_offset + envelope_size;
7890
7891 Ok(())
7892 }
7893 }
7894
7895 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for DaiProperties {
7896 #[inline(always)]
7897 fn new_empty() -> Self {
7898 Self::default()
7899 }
7900
7901 unsafe fn decode(
7902 &mut self,
7903 decoder: &mut fidl::encoding::Decoder<'_, D>,
7904 offset: usize,
7905 mut depth: fidl::encoding::Depth,
7906 ) -> fidl::Result<()> {
7907 decoder.debug_check_bounds::<Self>(offset);
7908 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
7909 None => return Err(fidl::Error::NotNullable),
7910 Some(len) => len,
7911 };
7912 if len == 0 {
7914 return Ok(());
7915 };
7916 depth.increment()?;
7917 let envelope_size = 8;
7918 let bytes_len = len * envelope_size;
7919 let offset = decoder.out_of_line_offset(bytes_len)?;
7920 let mut _next_ordinal_to_read = 0;
7922 let mut next_offset = offset;
7923 let end_offset = offset + bytes_len;
7924 _next_ordinal_to_read += 1;
7925 if next_offset >= end_offset {
7926 return Ok(());
7927 }
7928
7929 while _next_ordinal_to_read < 1 {
7931 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7932 _next_ordinal_to_read += 1;
7933 next_offset += envelope_size;
7934 }
7935
7936 let next_out_of_line = decoder.next_out_of_line();
7937 let handles_before = decoder.remaining_handles();
7938 if let Some((inlined, num_bytes, num_handles)) =
7939 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7940 {
7941 let member_inline_size =
7942 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7943 if inlined != (member_inline_size <= 4) {
7944 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7945 }
7946 let inner_offset;
7947 let mut inner_depth = depth.clone();
7948 if inlined {
7949 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7950 inner_offset = next_offset;
7951 } else {
7952 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7953 inner_depth.increment()?;
7954 }
7955 let val_ref = self.is_input.get_or_insert_with(|| fidl::new_empty!(bool, D));
7956 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
7957 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7958 {
7959 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7960 }
7961 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7962 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7963 }
7964 }
7965
7966 next_offset += envelope_size;
7967 _next_ordinal_to_read += 1;
7968 if next_offset >= end_offset {
7969 return Ok(());
7970 }
7971
7972 while _next_ordinal_to_read < 2 {
7974 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7975 _next_ordinal_to_read += 1;
7976 next_offset += envelope_size;
7977 }
7978
7979 let next_out_of_line = decoder.next_out_of_line();
7980 let handles_before = decoder.remaining_handles();
7981 if let Some((inlined, num_bytes, num_handles)) =
7982 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7983 {
7984 let member_inline_size =
7985 <fidl::encoding::BoundedString<256> as fidl::encoding::TypeMarker>::inline_size(
7986 decoder.context,
7987 );
7988 if inlined != (member_inline_size <= 4) {
7989 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7990 }
7991 let inner_offset;
7992 let mut inner_depth = depth.clone();
7993 if inlined {
7994 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7995 inner_offset = next_offset;
7996 } else {
7997 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7998 inner_depth.increment()?;
7999 }
8000 let val_ref = self
8001 .manufacturer
8002 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<256>, D));
8003 fidl::decode!(
8004 fidl::encoding::BoundedString<256>,
8005 D,
8006 val_ref,
8007 decoder,
8008 inner_offset,
8009 inner_depth
8010 )?;
8011 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8012 {
8013 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8014 }
8015 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8016 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8017 }
8018 }
8019
8020 next_offset += envelope_size;
8021 _next_ordinal_to_read += 1;
8022 if next_offset >= end_offset {
8023 return Ok(());
8024 }
8025
8026 while _next_ordinal_to_read < 3 {
8028 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8029 _next_ordinal_to_read += 1;
8030 next_offset += envelope_size;
8031 }
8032
8033 let next_out_of_line = decoder.next_out_of_line();
8034 let handles_before = decoder.remaining_handles();
8035 if let Some((inlined, num_bytes, num_handles)) =
8036 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8037 {
8038 let member_inline_size =
8039 <fidl::encoding::BoundedString<256> as fidl::encoding::TypeMarker>::inline_size(
8040 decoder.context,
8041 );
8042 if inlined != (member_inline_size <= 4) {
8043 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8044 }
8045 let inner_offset;
8046 let mut inner_depth = depth.clone();
8047 if inlined {
8048 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8049 inner_offset = next_offset;
8050 } else {
8051 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8052 inner_depth.increment()?;
8053 }
8054 let val_ref = self
8055 .product_name
8056 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<256>, D));
8057 fidl::decode!(
8058 fidl::encoding::BoundedString<256>,
8059 D,
8060 val_ref,
8061 decoder,
8062 inner_offset,
8063 inner_depth
8064 )?;
8065 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8066 {
8067 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8068 }
8069 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8070 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8071 }
8072 }
8073
8074 next_offset += envelope_size;
8075 _next_ordinal_to_read += 1;
8076 if next_offset >= end_offset {
8077 return Ok(());
8078 }
8079
8080 while _next_ordinal_to_read < 4 {
8082 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8083 _next_ordinal_to_read += 1;
8084 next_offset += envelope_size;
8085 }
8086
8087 let next_out_of_line = decoder.next_out_of_line();
8088 let handles_before = decoder.remaining_handles();
8089 if let Some((inlined, num_bytes, num_handles)) =
8090 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8091 {
8092 let member_inline_size =
8093 <fidl::encoding::Array<u8, 16> as fidl::encoding::TypeMarker>::inline_size(
8094 decoder.context,
8095 );
8096 if inlined != (member_inline_size <= 4) {
8097 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8098 }
8099 let inner_offset;
8100 let mut inner_depth = depth.clone();
8101 if inlined {
8102 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8103 inner_offset = next_offset;
8104 } else {
8105 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8106 inner_depth.increment()?;
8107 }
8108 let val_ref = self
8109 .unique_id
8110 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 16>, D));
8111 fidl::decode!(fidl::encoding::Array<u8, 16>, D, val_ref, decoder, inner_offset, inner_depth)?;
8112 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8113 {
8114 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8115 }
8116 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8117 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8118 }
8119 }
8120
8121 next_offset += envelope_size;
8122 _next_ordinal_to_read += 1;
8123 if next_offset >= end_offset {
8124 return Ok(());
8125 }
8126
8127 while _next_ordinal_to_read < 5 {
8129 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8130 _next_ordinal_to_read += 1;
8131 next_offset += envelope_size;
8132 }
8133
8134 let next_out_of_line = decoder.next_out_of_line();
8135 let handles_before = decoder.remaining_handles();
8136 if let Some((inlined, num_bytes, num_handles)) =
8137 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8138 {
8139 let member_inline_size =
8140 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8141 if inlined != (member_inline_size <= 4) {
8142 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8143 }
8144 let inner_offset;
8145 let mut inner_depth = depth.clone();
8146 if inlined {
8147 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8148 inner_offset = next_offset;
8149 } else {
8150 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8151 inner_depth.increment()?;
8152 }
8153 let val_ref = self.clock_domain.get_or_insert_with(|| fidl::new_empty!(u32, D));
8154 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
8155 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8156 {
8157 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8158 }
8159 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8160 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8161 }
8162 }
8163
8164 next_offset += envelope_size;
8165
8166 while next_offset < end_offset {
8168 _next_ordinal_to_read += 1;
8169 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8170 next_offset += envelope_size;
8171 }
8172
8173 Ok(())
8174 }
8175 }
8176
8177 impl DelayInfo {
8178 #[inline(always)]
8179 fn max_ordinal_present(&self) -> u64 {
8180 if let Some(_) = self.external_delay {
8181 return 2;
8182 }
8183 if let Some(_) = self.internal_delay {
8184 return 1;
8185 }
8186 0
8187 }
8188 }
8189
8190 impl fidl::encoding::ValueTypeMarker for DelayInfo {
8191 type Borrowed<'a> = &'a Self;
8192 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
8193 value
8194 }
8195 }
8196
8197 unsafe impl fidl::encoding::TypeMarker for DelayInfo {
8198 type Owned = Self;
8199
8200 #[inline(always)]
8201 fn inline_align(_context: fidl::encoding::Context) -> usize {
8202 8
8203 }
8204
8205 #[inline(always)]
8206 fn inline_size(_context: fidl::encoding::Context) -> usize {
8207 16
8208 }
8209 }
8210
8211 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<DelayInfo, D>
8212 for &DelayInfo
8213 {
8214 unsafe fn encode(
8215 self,
8216 encoder: &mut fidl::encoding::Encoder<'_, D>,
8217 offset: usize,
8218 mut depth: fidl::encoding::Depth,
8219 ) -> fidl::Result<()> {
8220 encoder.debug_check_bounds::<DelayInfo>(offset);
8221 let max_ordinal: u64 = self.max_ordinal_present();
8223 encoder.write_num(max_ordinal, offset);
8224 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
8225 if max_ordinal == 0 {
8227 return Ok(());
8228 }
8229 depth.increment()?;
8230 let envelope_size = 8;
8231 let bytes_len = max_ordinal as usize * envelope_size;
8232 #[allow(unused_variables)]
8233 let offset = encoder.out_of_line_offset(bytes_len);
8234 let mut _prev_end_offset: usize = 0;
8235 if 1 > max_ordinal {
8236 return Ok(());
8237 }
8238
8239 let cur_offset: usize = (1 - 1) * envelope_size;
8242
8243 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8245
8246 fidl::encoding::encode_in_envelope_optional::<i64, D>(
8251 self.internal_delay.as_ref().map(<i64 as fidl::encoding::ValueTypeMarker>::borrow),
8252 encoder,
8253 offset + cur_offset,
8254 depth,
8255 )?;
8256
8257 _prev_end_offset = cur_offset + envelope_size;
8258 if 2 > max_ordinal {
8259 return Ok(());
8260 }
8261
8262 let cur_offset: usize = (2 - 1) * envelope_size;
8265
8266 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8268
8269 fidl::encoding::encode_in_envelope_optional::<i64, D>(
8274 self.external_delay.as_ref().map(<i64 as fidl::encoding::ValueTypeMarker>::borrow),
8275 encoder,
8276 offset + cur_offset,
8277 depth,
8278 )?;
8279
8280 _prev_end_offset = cur_offset + envelope_size;
8281
8282 Ok(())
8283 }
8284 }
8285
8286 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for DelayInfo {
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 _next_ordinal_to_read += 1;
8316 if next_offset >= end_offset {
8317 return Ok(());
8318 }
8319
8320 while _next_ordinal_to_read < 1 {
8322 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8323 _next_ordinal_to_read += 1;
8324 next_offset += envelope_size;
8325 }
8326
8327 let next_out_of_line = decoder.next_out_of_line();
8328 let handles_before = decoder.remaining_handles();
8329 if let Some((inlined, num_bytes, num_handles)) =
8330 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8331 {
8332 let member_inline_size =
8333 <i64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8334 if inlined != (member_inline_size <= 4) {
8335 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8336 }
8337 let inner_offset;
8338 let mut inner_depth = depth.clone();
8339 if inlined {
8340 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8341 inner_offset = next_offset;
8342 } else {
8343 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8344 inner_depth.increment()?;
8345 }
8346 let val_ref = self.internal_delay.get_or_insert_with(|| fidl::new_empty!(i64, D));
8347 fidl::decode!(i64, D, val_ref, decoder, inner_offset, inner_depth)?;
8348 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8349 {
8350 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8351 }
8352 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8353 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8354 }
8355 }
8356
8357 next_offset += envelope_size;
8358 _next_ordinal_to_read += 1;
8359 if next_offset >= end_offset {
8360 return Ok(());
8361 }
8362
8363 while _next_ordinal_to_read < 2 {
8365 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8366 _next_ordinal_to_read += 1;
8367 next_offset += envelope_size;
8368 }
8369
8370 let next_out_of_line = decoder.next_out_of_line();
8371 let handles_before = decoder.remaining_handles();
8372 if let Some((inlined, num_bytes, num_handles)) =
8373 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8374 {
8375 let member_inline_size =
8376 <i64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8377 if inlined != (member_inline_size <= 4) {
8378 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8379 }
8380 let inner_offset;
8381 let mut inner_depth = depth.clone();
8382 if inlined {
8383 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8384 inner_offset = next_offset;
8385 } else {
8386 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8387 inner_depth.increment()?;
8388 }
8389 let val_ref = self.external_delay.get_or_insert_with(|| fidl::new_empty!(i64, D));
8390 fidl::decode!(i64, D, val_ref, decoder, inner_offset, inner_depth)?;
8391 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8392 {
8393 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8394 }
8395 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8396 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8397 }
8398 }
8399
8400 next_offset += envelope_size;
8401
8402 while next_offset < end_offset {
8404 _next_ordinal_to_read += 1;
8405 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8406 next_offset += envelope_size;
8407 }
8408
8409 Ok(())
8410 }
8411 }
8412
8413 impl Encoding {
8414 #[inline(always)]
8415 fn max_ordinal_present(&self) -> u64 {
8416 if let Some(_) = self.encoding_type {
8417 return 4;
8418 }
8419 if let Some(_) = self.average_encoding_bitrate {
8420 return 3;
8421 }
8422 if let Some(_) = self.decoded_frame_rate {
8423 return 2;
8424 }
8425 if let Some(_) = self.decoded_channel_count {
8426 return 1;
8427 }
8428 0
8429 }
8430 }
8431
8432 impl fidl::encoding::ValueTypeMarker for Encoding {
8433 type Borrowed<'a> = &'a Self;
8434 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
8435 value
8436 }
8437 }
8438
8439 unsafe impl fidl::encoding::TypeMarker for Encoding {
8440 type Owned = Self;
8441
8442 #[inline(always)]
8443 fn inline_align(_context: fidl::encoding::Context) -> usize {
8444 8
8445 }
8446
8447 #[inline(always)]
8448 fn inline_size(_context: fidl::encoding::Context) -> usize {
8449 16
8450 }
8451 }
8452
8453 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Encoding, D> for &Encoding {
8454 unsafe fn encode(
8455 self,
8456 encoder: &mut fidl::encoding::Encoder<'_, D>,
8457 offset: usize,
8458 mut depth: fidl::encoding::Depth,
8459 ) -> fidl::Result<()> {
8460 encoder.debug_check_bounds::<Encoding>(offset);
8461 let max_ordinal: u64 = self.max_ordinal_present();
8463 encoder.write_num(max_ordinal, offset);
8464 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
8465 if max_ordinal == 0 {
8467 return Ok(());
8468 }
8469 depth.increment()?;
8470 let envelope_size = 8;
8471 let bytes_len = max_ordinal as usize * envelope_size;
8472 #[allow(unused_variables)]
8473 let offset = encoder.out_of_line_offset(bytes_len);
8474 let mut _prev_end_offset: usize = 0;
8475 if 1 > max_ordinal {
8476 return Ok(());
8477 }
8478
8479 let cur_offset: usize = (1 - 1) * envelope_size;
8482
8483 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8485
8486 fidl::encoding::encode_in_envelope_optional::<u32, D>(
8491 self.decoded_channel_count
8492 .as_ref()
8493 .map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
8494 encoder,
8495 offset + cur_offset,
8496 depth,
8497 )?;
8498
8499 _prev_end_offset = cur_offset + envelope_size;
8500 if 2 > max_ordinal {
8501 return Ok(());
8502 }
8503
8504 let cur_offset: usize = (2 - 1) * envelope_size;
8507
8508 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8510
8511 fidl::encoding::encode_in_envelope_optional::<u32, D>(
8516 self.decoded_frame_rate
8517 .as_ref()
8518 .map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
8519 encoder,
8520 offset + cur_offset,
8521 depth,
8522 )?;
8523
8524 _prev_end_offset = cur_offset + envelope_size;
8525 if 3 > max_ordinal {
8526 return Ok(());
8527 }
8528
8529 let cur_offset: usize = (3 - 1) * envelope_size;
8532
8533 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8535
8536 fidl::encoding::encode_in_envelope_optional::<u32, D>(
8541 self.average_encoding_bitrate
8542 .as_ref()
8543 .map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
8544 encoder,
8545 offset + cur_offset,
8546 depth,
8547 )?;
8548
8549 _prev_end_offset = cur_offset + envelope_size;
8550 if 4 > max_ordinal {
8551 return Ok(());
8552 }
8553
8554 let cur_offset: usize = (4 - 1) * envelope_size;
8557
8558 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8560
8561 fidl::encoding::encode_in_envelope_optional::<EncodingType, D>(
8566 self.encoding_type
8567 .as_ref()
8568 .map(<EncodingType 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> for Encoding {
8581 #[inline(always)]
8582 fn new_empty() -> Self {
8583 Self::default()
8584 }
8585
8586 unsafe fn decode(
8587 &mut self,
8588 decoder: &mut fidl::encoding::Decoder<'_, D>,
8589 offset: usize,
8590 mut depth: fidl::encoding::Depth,
8591 ) -> fidl::Result<()> {
8592 decoder.debug_check_bounds::<Self>(offset);
8593 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
8594 None => return Err(fidl::Error::NotNullable),
8595 Some(len) => len,
8596 };
8597 if len == 0 {
8599 return Ok(());
8600 };
8601 depth.increment()?;
8602 let envelope_size = 8;
8603 let bytes_len = len * envelope_size;
8604 let offset = decoder.out_of_line_offset(bytes_len)?;
8605 let mut _next_ordinal_to_read = 0;
8607 let mut next_offset = offset;
8608 let end_offset = offset + bytes_len;
8609 _next_ordinal_to_read += 1;
8610 if next_offset >= end_offset {
8611 return Ok(());
8612 }
8613
8614 while _next_ordinal_to_read < 1 {
8616 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8617 _next_ordinal_to_read += 1;
8618 next_offset += envelope_size;
8619 }
8620
8621 let next_out_of_line = decoder.next_out_of_line();
8622 let handles_before = decoder.remaining_handles();
8623 if let Some((inlined, num_bytes, num_handles)) =
8624 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8625 {
8626 let member_inline_size =
8627 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8628 if inlined != (member_inline_size <= 4) {
8629 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8630 }
8631 let inner_offset;
8632 let mut inner_depth = depth.clone();
8633 if inlined {
8634 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8635 inner_offset = next_offset;
8636 } else {
8637 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8638 inner_depth.increment()?;
8639 }
8640 let val_ref =
8641 self.decoded_channel_count.get_or_insert_with(|| fidl::new_empty!(u32, D));
8642 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
8643 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8644 {
8645 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8646 }
8647 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8648 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8649 }
8650 }
8651
8652 next_offset += envelope_size;
8653 _next_ordinal_to_read += 1;
8654 if next_offset >= end_offset {
8655 return Ok(());
8656 }
8657
8658 while _next_ordinal_to_read < 2 {
8660 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8661 _next_ordinal_to_read += 1;
8662 next_offset += envelope_size;
8663 }
8664
8665 let next_out_of_line = decoder.next_out_of_line();
8666 let handles_before = decoder.remaining_handles();
8667 if let Some((inlined, num_bytes, num_handles)) =
8668 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8669 {
8670 let member_inline_size =
8671 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8672 if inlined != (member_inline_size <= 4) {
8673 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8674 }
8675 let inner_offset;
8676 let mut inner_depth = depth.clone();
8677 if inlined {
8678 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8679 inner_offset = next_offset;
8680 } else {
8681 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8682 inner_depth.increment()?;
8683 }
8684 let val_ref =
8685 self.decoded_frame_rate.get_or_insert_with(|| fidl::new_empty!(u32, D));
8686 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
8687 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8688 {
8689 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8690 }
8691 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8692 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8693 }
8694 }
8695
8696 next_offset += envelope_size;
8697 _next_ordinal_to_read += 1;
8698 if next_offset >= end_offset {
8699 return Ok(());
8700 }
8701
8702 while _next_ordinal_to_read < 3 {
8704 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8705 _next_ordinal_to_read += 1;
8706 next_offset += envelope_size;
8707 }
8708
8709 let next_out_of_line = decoder.next_out_of_line();
8710 let handles_before = decoder.remaining_handles();
8711 if let Some((inlined, num_bytes, num_handles)) =
8712 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8713 {
8714 let member_inline_size =
8715 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8716 if inlined != (member_inline_size <= 4) {
8717 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8718 }
8719 let inner_offset;
8720 let mut inner_depth = depth.clone();
8721 if inlined {
8722 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8723 inner_offset = next_offset;
8724 } else {
8725 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8726 inner_depth.increment()?;
8727 }
8728 let val_ref =
8729 self.average_encoding_bitrate.get_or_insert_with(|| fidl::new_empty!(u32, D));
8730 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
8731 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8732 {
8733 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8734 }
8735 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8736 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8737 }
8738 }
8739
8740 next_offset += envelope_size;
8741 _next_ordinal_to_read += 1;
8742 if next_offset >= end_offset {
8743 return Ok(());
8744 }
8745
8746 while _next_ordinal_to_read < 4 {
8748 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8749 _next_ordinal_to_read += 1;
8750 next_offset += envelope_size;
8751 }
8752
8753 let next_out_of_line = decoder.next_out_of_line();
8754 let handles_before = decoder.remaining_handles();
8755 if let Some((inlined, num_bytes, num_handles)) =
8756 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8757 {
8758 let member_inline_size =
8759 <EncodingType as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8760 if inlined != (member_inline_size <= 4) {
8761 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8762 }
8763 let inner_offset;
8764 let mut inner_depth = depth.clone();
8765 if inlined {
8766 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8767 inner_offset = next_offset;
8768 } else {
8769 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8770 inner_depth.increment()?;
8771 }
8772 let val_ref =
8773 self.encoding_type.get_or_insert_with(|| fidl::new_empty!(EncodingType, D));
8774 fidl::decode!(EncodingType, D, val_ref, decoder, inner_offset, inner_depth)?;
8775 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8776 {
8777 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8778 }
8779 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8780 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8781 }
8782 }
8783
8784 next_offset += envelope_size;
8785
8786 while next_offset < end_offset {
8788 _next_ordinal_to_read += 1;
8789 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8790 next_offset += envelope_size;
8791 }
8792
8793 Ok(())
8794 }
8795 }
8796
8797 impl Format {
8798 #[inline(always)]
8799 fn max_ordinal_present(&self) -> u64 {
8800 if let Some(_) = self.pcm_format {
8801 return 1;
8802 }
8803 0
8804 }
8805 }
8806
8807 impl fidl::encoding::ValueTypeMarker for Format {
8808 type Borrowed<'a> = &'a Self;
8809 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
8810 value
8811 }
8812 }
8813
8814 unsafe impl fidl::encoding::TypeMarker for Format {
8815 type Owned = Self;
8816
8817 #[inline(always)]
8818 fn inline_align(_context: fidl::encoding::Context) -> usize {
8819 8
8820 }
8821
8822 #[inline(always)]
8823 fn inline_size(_context: fidl::encoding::Context) -> usize {
8824 16
8825 }
8826 }
8827
8828 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Format, D> for &Format {
8829 unsafe fn encode(
8830 self,
8831 encoder: &mut fidl::encoding::Encoder<'_, D>,
8832 offset: usize,
8833 mut depth: fidl::encoding::Depth,
8834 ) -> fidl::Result<()> {
8835 encoder.debug_check_bounds::<Format>(offset);
8836 let max_ordinal: u64 = self.max_ordinal_present();
8838 encoder.write_num(max_ordinal, offset);
8839 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
8840 if max_ordinal == 0 {
8842 return Ok(());
8843 }
8844 depth.increment()?;
8845 let envelope_size = 8;
8846 let bytes_len = max_ordinal as usize * envelope_size;
8847 #[allow(unused_variables)]
8848 let offset = encoder.out_of_line_offset(bytes_len);
8849 let mut _prev_end_offset: usize = 0;
8850 if 1 > max_ordinal {
8851 return Ok(());
8852 }
8853
8854 let cur_offset: usize = (1 - 1) * envelope_size;
8857
8858 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8860
8861 fidl::encoding::encode_in_envelope_optional::<PcmFormat, D>(
8866 self.pcm_format
8867 .as_ref()
8868 .map(<PcmFormat as fidl::encoding::ValueTypeMarker>::borrow),
8869 encoder,
8870 offset + cur_offset,
8871 depth,
8872 )?;
8873
8874 _prev_end_offset = cur_offset + envelope_size;
8875
8876 Ok(())
8877 }
8878 }
8879
8880 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Format {
8881 #[inline(always)]
8882 fn new_empty() -> Self {
8883 Self::default()
8884 }
8885
8886 unsafe fn decode(
8887 &mut self,
8888 decoder: &mut fidl::encoding::Decoder<'_, D>,
8889 offset: usize,
8890 mut depth: fidl::encoding::Depth,
8891 ) -> fidl::Result<()> {
8892 decoder.debug_check_bounds::<Self>(offset);
8893 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
8894 None => return Err(fidl::Error::NotNullable),
8895 Some(len) => len,
8896 };
8897 if len == 0 {
8899 return Ok(());
8900 };
8901 depth.increment()?;
8902 let envelope_size = 8;
8903 let bytes_len = len * envelope_size;
8904 let offset = decoder.out_of_line_offset(bytes_len)?;
8905 let mut _next_ordinal_to_read = 0;
8907 let mut next_offset = offset;
8908 let end_offset = offset + bytes_len;
8909 _next_ordinal_to_read += 1;
8910 if next_offset >= end_offset {
8911 return Ok(());
8912 }
8913
8914 while _next_ordinal_to_read < 1 {
8916 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8917 _next_ordinal_to_read += 1;
8918 next_offset += envelope_size;
8919 }
8920
8921 let next_out_of_line = decoder.next_out_of_line();
8922 let handles_before = decoder.remaining_handles();
8923 if let Some((inlined, num_bytes, num_handles)) =
8924 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8925 {
8926 let member_inline_size =
8927 <PcmFormat as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8928 if inlined != (member_inline_size <= 4) {
8929 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8930 }
8931 let inner_offset;
8932 let mut inner_depth = depth.clone();
8933 if inlined {
8934 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8935 inner_offset = next_offset;
8936 } else {
8937 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8938 inner_depth.increment()?;
8939 }
8940 let val_ref = self.pcm_format.get_or_insert_with(|| fidl::new_empty!(PcmFormat, D));
8941 fidl::decode!(PcmFormat, D, val_ref, decoder, inner_offset, inner_depth)?;
8942 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8943 {
8944 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8945 }
8946 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8947 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8948 }
8949 }
8950
8951 next_offset += envelope_size;
8952
8953 while next_offset < end_offset {
8955 _next_ordinal_to_read += 1;
8956 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8957 next_offset += envelope_size;
8958 }
8959
8960 Ok(())
8961 }
8962 }
8963
8964 impl GainState {
8965 #[inline(always)]
8966 fn max_ordinal_present(&self) -> u64 {
8967 if let Some(_) = self.gain_db {
8968 return 3;
8969 }
8970 if let Some(_) = self.agc_enabled {
8971 return 2;
8972 }
8973 if let Some(_) = self.muted {
8974 return 1;
8975 }
8976 0
8977 }
8978 }
8979
8980 impl fidl::encoding::ValueTypeMarker for GainState {
8981 type Borrowed<'a> = &'a Self;
8982 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
8983 value
8984 }
8985 }
8986
8987 unsafe impl fidl::encoding::TypeMarker for GainState {
8988 type Owned = Self;
8989
8990 #[inline(always)]
8991 fn inline_align(_context: fidl::encoding::Context) -> usize {
8992 8
8993 }
8994
8995 #[inline(always)]
8996 fn inline_size(_context: fidl::encoding::Context) -> usize {
8997 16
8998 }
8999 }
9000
9001 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<GainState, D>
9002 for &GainState
9003 {
9004 unsafe fn encode(
9005 self,
9006 encoder: &mut fidl::encoding::Encoder<'_, D>,
9007 offset: usize,
9008 mut depth: fidl::encoding::Depth,
9009 ) -> fidl::Result<()> {
9010 encoder.debug_check_bounds::<GainState>(offset);
9011 let max_ordinal: u64 = self.max_ordinal_present();
9013 encoder.write_num(max_ordinal, offset);
9014 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
9015 if max_ordinal == 0 {
9017 return Ok(());
9018 }
9019 depth.increment()?;
9020 let envelope_size = 8;
9021 let bytes_len = max_ordinal as usize * envelope_size;
9022 #[allow(unused_variables)]
9023 let offset = encoder.out_of_line_offset(bytes_len);
9024 let mut _prev_end_offset: usize = 0;
9025 if 1 > max_ordinal {
9026 return Ok(());
9027 }
9028
9029 let cur_offset: usize = (1 - 1) * envelope_size;
9032
9033 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9035
9036 fidl::encoding::encode_in_envelope_optional::<bool, D>(
9041 self.muted.as_ref().map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
9042 encoder,
9043 offset + cur_offset,
9044 depth,
9045 )?;
9046
9047 _prev_end_offset = cur_offset + envelope_size;
9048 if 2 > max_ordinal {
9049 return Ok(());
9050 }
9051
9052 let cur_offset: usize = (2 - 1) * envelope_size;
9055
9056 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9058
9059 fidl::encoding::encode_in_envelope_optional::<bool, D>(
9064 self.agc_enabled.as_ref().map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
9065 encoder,
9066 offset + cur_offset,
9067 depth,
9068 )?;
9069
9070 _prev_end_offset = cur_offset + envelope_size;
9071 if 3 > max_ordinal {
9072 return Ok(());
9073 }
9074
9075 let cur_offset: usize = (3 - 1) * envelope_size;
9078
9079 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9081
9082 fidl::encoding::encode_in_envelope_optional::<f32, D>(
9087 self.gain_db.as_ref().map(<f32 as fidl::encoding::ValueTypeMarker>::borrow),
9088 encoder,
9089 offset + cur_offset,
9090 depth,
9091 )?;
9092
9093 _prev_end_offset = cur_offset + envelope_size;
9094
9095 Ok(())
9096 }
9097 }
9098
9099 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for GainState {
9100 #[inline(always)]
9101 fn new_empty() -> Self {
9102 Self::default()
9103 }
9104
9105 unsafe fn decode(
9106 &mut self,
9107 decoder: &mut fidl::encoding::Decoder<'_, D>,
9108 offset: usize,
9109 mut depth: fidl::encoding::Depth,
9110 ) -> fidl::Result<()> {
9111 decoder.debug_check_bounds::<Self>(offset);
9112 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
9113 None => return Err(fidl::Error::NotNullable),
9114 Some(len) => len,
9115 };
9116 if len == 0 {
9118 return Ok(());
9119 };
9120 depth.increment()?;
9121 let envelope_size = 8;
9122 let bytes_len = len * envelope_size;
9123 let offset = decoder.out_of_line_offset(bytes_len)?;
9124 let mut _next_ordinal_to_read = 0;
9126 let mut next_offset = offset;
9127 let end_offset = offset + bytes_len;
9128 _next_ordinal_to_read += 1;
9129 if next_offset >= end_offset {
9130 return Ok(());
9131 }
9132
9133 while _next_ordinal_to_read < 1 {
9135 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9136 _next_ordinal_to_read += 1;
9137 next_offset += envelope_size;
9138 }
9139
9140 let next_out_of_line = decoder.next_out_of_line();
9141 let handles_before = decoder.remaining_handles();
9142 if let Some((inlined, num_bytes, num_handles)) =
9143 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9144 {
9145 let member_inline_size =
9146 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
9147 if inlined != (member_inline_size <= 4) {
9148 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9149 }
9150 let inner_offset;
9151 let mut inner_depth = depth.clone();
9152 if inlined {
9153 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9154 inner_offset = next_offset;
9155 } else {
9156 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9157 inner_depth.increment()?;
9158 }
9159 let val_ref = self.muted.get_or_insert_with(|| fidl::new_empty!(bool, D));
9160 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
9161 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9162 {
9163 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9164 }
9165 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9166 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9167 }
9168 }
9169
9170 next_offset += envelope_size;
9171 _next_ordinal_to_read += 1;
9172 if next_offset >= end_offset {
9173 return Ok(());
9174 }
9175
9176 while _next_ordinal_to_read < 2 {
9178 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9179 _next_ordinal_to_read += 1;
9180 next_offset += envelope_size;
9181 }
9182
9183 let next_out_of_line = decoder.next_out_of_line();
9184 let handles_before = decoder.remaining_handles();
9185 if let Some((inlined, num_bytes, num_handles)) =
9186 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9187 {
9188 let member_inline_size =
9189 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
9190 if inlined != (member_inline_size <= 4) {
9191 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9192 }
9193 let inner_offset;
9194 let mut inner_depth = depth.clone();
9195 if inlined {
9196 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9197 inner_offset = next_offset;
9198 } else {
9199 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9200 inner_depth.increment()?;
9201 }
9202 let val_ref = self.agc_enabled.get_or_insert_with(|| fidl::new_empty!(bool, D));
9203 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
9204 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9205 {
9206 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9207 }
9208 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9209 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9210 }
9211 }
9212
9213 next_offset += envelope_size;
9214 _next_ordinal_to_read += 1;
9215 if next_offset >= end_offset {
9216 return Ok(());
9217 }
9218
9219 while _next_ordinal_to_read < 3 {
9221 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9222 _next_ordinal_to_read += 1;
9223 next_offset += envelope_size;
9224 }
9225
9226 let next_out_of_line = decoder.next_out_of_line();
9227 let handles_before = decoder.remaining_handles();
9228 if let Some((inlined, num_bytes, num_handles)) =
9229 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9230 {
9231 let member_inline_size =
9232 <f32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
9233 if inlined != (member_inline_size <= 4) {
9234 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9235 }
9236 let inner_offset;
9237 let mut inner_depth = depth.clone();
9238 if inlined {
9239 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9240 inner_offset = next_offset;
9241 } else {
9242 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9243 inner_depth.increment()?;
9244 }
9245 let val_ref = self.gain_db.get_or_insert_with(|| fidl::new_empty!(f32, D));
9246 fidl::decode!(f32, D, val_ref, decoder, inner_offset, inner_depth)?;
9247 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9248 {
9249 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9250 }
9251 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9252 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9253 }
9254 }
9255
9256 next_offset += envelope_size;
9257
9258 while next_offset < end_offset {
9260 _next_ordinal_to_read += 1;
9261 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9262 next_offset += envelope_size;
9263 }
9264
9265 Ok(())
9266 }
9267 }
9268
9269 impl HealthState {
9270 #[inline(always)]
9271 fn max_ordinal_present(&self) -> u64 {
9272 if let Some(_) = self.healthy {
9273 return 1;
9274 }
9275 0
9276 }
9277 }
9278
9279 impl fidl::encoding::ValueTypeMarker for HealthState {
9280 type Borrowed<'a> = &'a Self;
9281 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
9282 value
9283 }
9284 }
9285
9286 unsafe impl fidl::encoding::TypeMarker for HealthState {
9287 type Owned = Self;
9288
9289 #[inline(always)]
9290 fn inline_align(_context: fidl::encoding::Context) -> usize {
9291 8
9292 }
9293
9294 #[inline(always)]
9295 fn inline_size(_context: fidl::encoding::Context) -> usize {
9296 16
9297 }
9298 }
9299
9300 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<HealthState, D>
9301 for &HealthState
9302 {
9303 unsafe fn encode(
9304 self,
9305 encoder: &mut fidl::encoding::Encoder<'_, D>,
9306 offset: usize,
9307 mut depth: fidl::encoding::Depth,
9308 ) -> fidl::Result<()> {
9309 encoder.debug_check_bounds::<HealthState>(offset);
9310 let max_ordinal: u64 = self.max_ordinal_present();
9312 encoder.write_num(max_ordinal, offset);
9313 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
9314 if max_ordinal == 0 {
9316 return Ok(());
9317 }
9318 depth.increment()?;
9319 let envelope_size = 8;
9320 let bytes_len = max_ordinal as usize * envelope_size;
9321 #[allow(unused_variables)]
9322 let offset = encoder.out_of_line_offset(bytes_len);
9323 let mut _prev_end_offset: usize = 0;
9324 if 1 > max_ordinal {
9325 return Ok(());
9326 }
9327
9328 let cur_offset: usize = (1 - 1) * envelope_size;
9331
9332 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9334
9335 fidl::encoding::encode_in_envelope_optional::<bool, D>(
9340 self.healthy.as_ref().map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
9341 encoder,
9342 offset + cur_offset,
9343 depth,
9344 )?;
9345
9346 _prev_end_offset = cur_offset + envelope_size;
9347
9348 Ok(())
9349 }
9350 }
9351
9352 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for HealthState {
9353 #[inline(always)]
9354 fn new_empty() -> Self {
9355 Self::default()
9356 }
9357
9358 unsafe fn decode(
9359 &mut self,
9360 decoder: &mut fidl::encoding::Decoder<'_, D>,
9361 offset: usize,
9362 mut depth: fidl::encoding::Depth,
9363 ) -> fidl::Result<()> {
9364 decoder.debug_check_bounds::<Self>(offset);
9365 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
9366 None => return Err(fidl::Error::NotNullable),
9367 Some(len) => len,
9368 };
9369 if len == 0 {
9371 return Ok(());
9372 };
9373 depth.increment()?;
9374 let envelope_size = 8;
9375 let bytes_len = len * envelope_size;
9376 let offset = decoder.out_of_line_offset(bytes_len)?;
9377 let mut _next_ordinal_to_read = 0;
9379 let mut next_offset = offset;
9380 let end_offset = offset + bytes_len;
9381 _next_ordinal_to_read += 1;
9382 if next_offset >= end_offset {
9383 return Ok(());
9384 }
9385
9386 while _next_ordinal_to_read < 1 {
9388 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9389 _next_ordinal_to_read += 1;
9390 next_offset += envelope_size;
9391 }
9392
9393 let next_out_of_line = decoder.next_out_of_line();
9394 let handles_before = decoder.remaining_handles();
9395 if let Some((inlined, num_bytes, num_handles)) =
9396 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9397 {
9398 let member_inline_size =
9399 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
9400 if inlined != (member_inline_size <= 4) {
9401 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9402 }
9403 let inner_offset;
9404 let mut inner_depth = depth.clone();
9405 if inlined {
9406 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9407 inner_offset = next_offset;
9408 } else {
9409 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9410 inner_depth.increment()?;
9411 }
9412 let val_ref = self.healthy.get_or_insert_with(|| fidl::new_empty!(bool, D));
9413 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
9414 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9415 {
9416 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9417 }
9418 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9419 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9420 }
9421 }
9422
9423 next_offset += envelope_size;
9424
9425 while next_offset < end_offset {
9427 _next_ordinal_to_read += 1;
9428 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9429 next_offset += envelope_size;
9430 }
9431
9432 Ok(())
9433 }
9434 }
9435
9436 impl PacketStreamProperties {
9437 #[inline(always)]
9438 fn max_ordinal_present(&self) -> u64 {
9439 if let Some(_) = self.supported_buffer_types {
9440 return 2;
9441 }
9442 if let Some(_) = self.needs_cache_flush_or_invalidate {
9443 return 1;
9444 }
9445 0
9446 }
9447 }
9448
9449 impl fidl::encoding::ValueTypeMarker for PacketStreamProperties {
9450 type Borrowed<'a> = &'a Self;
9451 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
9452 value
9453 }
9454 }
9455
9456 unsafe impl fidl::encoding::TypeMarker for PacketStreamProperties {
9457 type Owned = Self;
9458
9459 #[inline(always)]
9460 fn inline_align(_context: fidl::encoding::Context) -> usize {
9461 8
9462 }
9463
9464 #[inline(always)]
9465 fn inline_size(_context: fidl::encoding::Context) -> usize {
9466 16
9467 }
9468 }
9469
9470 unsafe impl<D: fidl::encoding::ResourceDialect>
9471 fidl::encoding::Encode<PacketStreamProperties, D> for &PacketStreamProperties
9472 {
9473 unsafe fn encode(
9474 self,
9475 encoder: &mut fidl::encoding::Encoder<'_, D>,
9476 offset: usize,
9477 mut depth: fidl::encoding::Depth,
9478 ) -> fidl::Result<()> {
9479 encoder.debug_check_bounds::<PacketStreamProperties>(offset);
9480 let max_ordinal: u64 = self.max_ordinal_present();
9482 encoder.write_num(max_ordinal, offset);
9483 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
9484 if max_ordinal == 0 {
9486 return Ok(());
9487 }
9488 depth.increment()?;
9489 let envelope_size = 8;
9490 let bytes_len = max_ordinal as usize * envelope_size;
9491 #[allow(unused_variables)]
9492 let offset = encoder.out_of_line_offset(bytes_len);
9493 let mut _prev_end_offset: usize = 0;
9494 if 1 > max_ordinal {
9495 return Ok(());
9496 }
9497
9498 let cur_offset: usize = (1 - 1) * envelope_size;
9501
9502 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9504
9505 fidl::encoding::encode_in_envelope_optional::<bool, D>(
9510 self.needs_cache_flush_or_invalidate
9511 .as_ref()
9512 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
9513 encoder,
9514 offset + cur_offset,
9515 depth,
9516 )?;
9517
9518 _prev_end_offset = cur_offset + envelope_size;
9519 if 2 > max_ordinal {
9520 return Ok(());
9521 }
9522
9523 let cur_offset: usize = (2 - 1) * envelope_size;
9526
9527 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9529
9530 fidl::encoding::encode_in_envelope_optional::<BufferType, D>(
9535 self.supported_buffer_types
9536 .as_ref()
9537 .map(<BufferType as fidl::encoding::ValueTypeMarker>::borrow),
9538 encoder,
9539 offset + cur_offset,
9540 depth,
9541 )?;
9542
9543 _prev_end_offset = cur_offset + envelope_size;
9544
9545 Ok(())
9546 }
9547 }
9548
9549 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
9550 for PacketStreamProperties
9551 {
9552 #[inline(always)]
9553 fn new_empty() -> Self {
9554 Self::default()
9555 }
9556
9557 unsafe fn decode(
9558 &mut self,
9559 decoder: &mut fidl::encoding::Decoder<'_, D>,
9560 offset: usize,
9561 mut depth: fidl::encoding::Depth,
9562 ) -> fidl::Result<()> {
9563 decoder.debug_check_bounds::<Self>(offset);
9564 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
9565 None => return Err(fidl::Error::NotNullable),
9566 Some(len) => len,
9567 };
9568 if len == 0 {
9570 return Ok(());
9571 };
9572 depth.increment()?;
9573 let envelope_size = 8;
9574 let bytes_len = len * envelope_size;
9575 let offset = decoder.out_of_line_offset(bytes_len)?;
9576 let mut _next_ordinal_to_read = 0;
9578 let mut next_offset = offset;
9579 let end_offset = offset + bytes_len;
9580 _next_ordinal_to_read += 1;
9581 if next_offset >= end_offset {
9582 return Ok(());
9583 }
9584
9585 while _next_ordinal_to_read < 1 {
9587 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9588 _next_ordinal_to_read += 1;
9589 next_offset += envelope_size;
9590 }
9591
9592 let next_out_of_line = decoder.next_out_of_line();
9593 let handles_before = decoder.remaining_handles();
9594 if let Some((inlined, num_bytes, num_handles)) =
9595 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9596 {
9597 let member_inline_size =
9598 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
9599 if inlined != (member_inline_size <= 4) {
9600 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9601 }
9602 let inner_offset;
9603 let mut inner_depth = depth.clone();
9604 if inlined {
9605 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9606 inner_offset = next_offset;
9607 } else {
9608 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9609 inner_depth.increment()?;
9610 }
9611 let val_ref = self
9612 .needs_cache_flush_or_invalidate
9613 .get_or_insert_with(|| fidl::new_empty!(bool, D));
9614 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
9615 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9616 {
9617 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9618 }
9619 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9620 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9621 }
9622 }
9623
9624 next_offset += envelope_size;
9625 _next_ordinal_to_read += 1;
9626 if next_offset >= end_offset {
9627 return Ok(());
9628 }
9629
9630 while _next_ordinal_to_read < 2 {
9632 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9633 _next_ordinal_to_read += 1;
9634 next_offset += envelope_size;
9635 }
9636
9637 let next_out_of_line = decoder.next_out_of_line();
9638 let handles_before = decoder.remaining_handles();
9639 if let Some((inlined, num_bytes, num_handles)) =
9640 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9641 {
9642 let member_inline_size =
9643 <BufferType as fidl::encoding::TypeMarker>::inline_size(decoder.context);
9644 if inlined != (member_inline_size <= 4) {
9645 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9646 }
9647 let inner_offset;
9648 let mut inner_depth = depth.clone();
9649 if inlined {
9650 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9651 inner_offset = next_offset;
9652 } else {
9653 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9654 inner_depth.increment()?;
9655 }
9656 let val_ref = self
9657 .supported_buffer_types
9658 .get_or_insert_with(|| fidl::new_empty!(BufferType, D));
9659 fidl::decode!(BufferType, D, val_ref, decoder, inner_offset, inner_depth)?;
9660 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9661 {
9662 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9663 }
9664 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9665 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9666 }
9667 }
9668
9669 next_offset += envelope_size;
9670
9671 while next_offset < end_offset {
9673 _next_ordinal_to_read += 1;
9674 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9675 next_offset += envelope_size;
9676 }
9677
9678 Ok(())
9679 }
9680 }
9681
9682 impl PacketStreamSinkPutPacketResponse {
9683 #[inline(always)]
9684 fn max_ordinal_present(&self) -> u64 {
9685 0
9686 }
9687 }
9688
9689 impl fidl::encoding::ValueTypeMarker for PacketStreamSinkPutPacketResponse {
9690 type Borrowed<'a> = &'a Self;
9691 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
9692 value
9693 }
9694 }
9695
9696 unsafe impl fidl::encoding::TypeMarker for PacketStreamSinkPutPacketResponse {
9697 type Owned = Self;
9698
9699 #[inline(always)]
9700 fn inline_align(_context: fidl::encoding::Context) -> usize {
9701 8
9702 }
9703
9704 #[inline(always)]
9705 fn inline_size(_context: fidl::encoding::Context) -> usize {
9706 16
9707 }
9708 }
9709
9710 unsafe impl<D: fidl::encoding::ResourceDialect>
9711 fidl::encoding::Encode<PacketStreamSinkPutPacketResponse, D>
9712 for &PacketStreamSinkPutPacketResponse
9713 {
9714 unsafe fn encode(
9715 self,
9716 encoder: &mut fidl::encoding::Encoder<'_, D>,
9717 offset: usize,
9718 mut depth: fidl::encoding::Depth,
9719 ) -> fidl::Result<()> {
9720 encoder.debug_check_bounds::<PacketStreamSinkPutPacketResponse>(offset);
9721 let max_ordinal: u64 = self.max_ordinal_present();
9723 encoder.write_num(max_ordinal, offset);
9724 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
9725 if max_ordinal == 0 {
9727 return Ok(());
9728 }
9729 depth.increment()?;
9730 let envelope_size = 8;
9731 let bytes_len = max_ordinal as usize * envelope_size;
9732 #[allow(unused_variables)]
9733 let offset = encoder.out_of_line_offset(bytes_len);
9734 let mut _prev_end_offset: usize = 0;
9735
9736 Ok(())
9737 }
9738 }
9739
9740 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
9741 for PacketStreamSinkPutPacketResponse
9742 {
9743 #[inline(always)]
9744 fn new_empty() -> Self {
9745 Self::default()
9746 }
9747
9748 unsafe fn decode(
9749 &mut self,
9750 decoder: &mut fidl::encoding::Decoder<'_, D>,
9751 offset: usize,
9752 mut depth: fidl::encoding::Depth,
9753 ) -> fidl::Result<()> {
9754 decoder.debug_check_bounds::<Self>(offset);
9755 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
9756 None => return Err(fidl::Error::NotNullable),
9757 Some(len) => len,
9758 };
9759 if len == 0 {
9761 return Ok(());
9762 };
9763 depth.increment()?;
9764 let envelope_size = 8;
9765 let bytes_len = len * envelope_size;
9766 let offset = decoder.out_of_line_offset(bytes_len)?;
9767 let mut _next_ordinal_to_read = 0;
9769 let mut next_offset = offset;
9770 let end_offset = offset + bytes_len;
9771
9772 while next_offset < end_offset {
9774 _next_ordinal_to_read += 1;
9775 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9776 next_offset += envelope_size;
9777 }
9778
9779 Ok(())
9780 }
9781 }
9782
9783 impl PcmSupportedFormats {
9784 #[inline(always)]
9785 fn max_ordinal_present(&self) -> u64 {
9786 if let Some(_) = self.frame_rates {
9787 return 5;
9788 }
9789 if let Some(_) = self.valid_bits_per_sample {
9790 return 4;
9791 }
9792 if let Some(_) = self.bytes_per_sample {
9793 return 3;
9794 }
9795 if let Some(_) = self.sample_formats {
9796 return 2;
9797 }
9798 if let Some(_) = self.channel_sets {
9799 return 1;
9800 }
9801 0
9802 }
9803 }
9804
9805 impl fidl::encoding::ValueTypeMarker for PcmSupportedFormats {
9806 type Borrowed<'a> = &'a Self;
9807 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
9808 value
9809 }
9810 }
9811
9812 unsafe impl fidl::encoding::TypeMarker for PcmSupportedFormats {
9813 type Owned = Self;
9814
9815 #[inline(always)]
9816 fn inline_align(_context: fidl::encoding::Context) -> usize {
9817 8
9818 }
9819
9820 #[inline(always)]
9821 fn inline_size(_context: fidl::encoding::Context) -> usize {
9822 16
9823 }
9824 }
9825
9826 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<PcmSupportedFormats, D>
9827 for &PcmSupportedFormats
9828 {
9829 unsafe fn encode(
9830 self,
9831 encoder: &mut fidl::encoding::Encoder<'_, D>,
9832 offset: usize,
9833 mut depth: fidl::encoding::Depth,
9834 ) -> fidl::Result<()> {
9835 encoder.debug_check_bounds::<PcmSupportedFormats>(offset);
9836 let max_ordinal: u64 = self.max_ordinal_present();
9838 encoder.write_num(max_ordinal, offset);
9839 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
9840 if max_ordinal == 0 {
9842 return Ok(());
9843 }
9844 depth.increment()?;
9845 let envelope_size = 8;
9846 let bytes_len = max_ordinal as usize * envelope_size;
9847 #[allow(unused_variables)]
9848 let offset = encoder.out_of_line_offset(bytes_len);
9849 let mut _prev_end_offset: usize = 0;
9850 if 1 > max_ordinal {
9851 return Ok(());
9852 }
9853
9854 let cur_offset: usize = (1 - 1) * envelope_size;
9857
9858 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9860
9861 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<ChannelSet, 64>, D>(
9866 self.channel_sets.as_ref().map(<fidl::encoding::Vector<ChannelSet, 64> as fidl::encoding::ValueTypeMarker>::borrow),
9867 encoder, offset + cur_offset, depth
9868 )?;
9869
9870 _prev_end_offset = cur_offset + envelope_size;
9871 if 2 > max_ordinal {
9872 return Ok(());
9873 }
9874
9875 let cur_offset: usize = (2 - 1) * envelope_size;
9878
9879 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9881
9882 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<SampleFormat, 3>, D>(
9887 self.sample_formats.as_ref().map(<fidl::encoding::Vector<SampleFormat, 3> as fidl::encoding::ValueTypeMarker>::borrow),
9888 encoder, offset + cur_offset, depth
9889 )?;
9890
9891 _prev_end_offset = cur_offset + envelope_size;
9892 if 3 > max_ordinal {
9893 return Ok(());
9894 }
9895
9896 let cur_offset: usize = (3 - 1) * envelope_size;
9899
9900 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9902
9903 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<u8, 8>, D>(
9908 self.bytes_per_sample.as_ref().map(
9909 <fidl::encoding::Vector<u8, 8> as fidl::encoding::ValueTypeMarker>::borrow,
9910 ),
9911 encoder,
9912 offset + cur_offset,
9913 depth,
9914 )?;
9915
9916 _prev_end_offset = cur_offset + envelope_size;
9917 if 4 > max_ordinal {
9918 return Ok(());
9919 }
9920
9921 let cur_offset: usize = (4 - 1) * envelope_size;
9924
9925 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9927
9928 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<u8, 8>, D>(
9933 self.valid_bits_per_sample.as_ref().map(
9934 <fidl::encoding::Vector<u8, 8> as fidl::encoding::ValueTypeMarker>::borrow,
9935 ),
9936 encoder,
9937 offset + cur_offset,
9938 depth,
9939 )?;
9940
9941 _prev_end_offset = cur_offset + envelope_size;
9942 if 5 > max_ordinal {
9943 return Ok(());
9944 }
9945
9946 let cur_offset: usize = (5 - 1) * envelope_size;
9949
9950 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9952
9953 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<u32, 64>, D>(
9958 self.frame_rates.as_ref().map(
9959 <fidl::encoding::Vector<u32, 64> as fidl::encoding::ValueTypeMarker>::borrow,
9960 ),
9961 encoder,
9962 offset + cur_offset,
9963 depth,
9964 )?;
9965
9966 _prev_end_offset = cur_offset + envelope_size;
9967
9968 Ok(())
9969 }
9970 }
9971
9972 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for PcmSupportedFormats {
9973 #[inline(always)]
9974 fn new_empty() -> Self {
9975 Self::default()
9976 }
9977
9978 unsafe fn decode(
9979 &mut self,
9980 decoder: &mut fidl::encoding::Decoder<'_, D>,
9981 offset: usize,
9982 mut depth: fidl::encoding::Depth,
9983 ) -> fidl::Result<()> {
9984 decoder.debug_check_bounds::<Self>(offset);
9985 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
9986 None => return Err(fidl::Error::NotNullable),
9987 Some(len) => len,
9988 };
9989 if len == 0 {
9991 return Ok(());
9992 };
9993 depth.increment()?;
9994 let envelope_size = 8;
9995 let bytes_len = len * envelope_size;
9996 let offset = decoder.out_of_line_offset(bytes_len)?;
9997 let mut _next_ordinal_to_read = 0;
9999 let mut next_offset = offset;
10000 let end_offset = offset + bytes_len;
10001 _next_ordinal_to_read += 1;
10002 if next_offset >= end_offset {
10003 return Ok(());
10004 }
10005
10006 while _next_ordinal_to_read < 1 {
10008 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10009 _next_ordinal_to_read += 1;
10010 next_offset += envelope_size;
10011 }
10012
10013 let next_out_of_line = decoder.next_out_of_line();
10014 let handles_before = decoder.remaining_handles();
10015 if let Some((inlined, num_bytes, num_handles)) =
10016 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10017 {
10018 let member_inline_size = <fidl::encoding::Vector<ChannelSet, 64> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
10019 if inlined != (member_inline_size <= 4) {
10020 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10021 }
10022 let inner_offset;
10023 let mut inner_depth = depth.clone();
10024 if inlined {
10025 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10026 inner_offset = next_offset;
10027 } else {
10028 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10029 inner_depth.increment()?;
10030 }
10031 let val_ref = self.channel_sets.get_or_insert_with(
10032 || fidl::new_empty!(fidl::encoding::Vector<ChannelSet, 64>, D),
10033 );
10034 fidl::decode!(fidl::encoding::Vector<ChannelSet, 64>, D, val_ref, decoder, inner_offset, inner_depth)?;
10035 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10036 {
10037 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10038 }
10039 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10040 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10041 }
10042 }
10043
10044 next_offset += envelope_size;
10045 _next_ordinal_to_read += 1;
10046 if next_offset >= end_offset {
10047 return Ok(());
10048 }
10049
10050 while _next_ordinal_to_read < 2 {
10052 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10053 _next_ordinal_to_read += 1;
10054 next_offset += envelope_size;
10055 }
10056
10057 let next_out_of_line = decoder.next_out_of_line();
10058 let handles_before = decoder.remaining_handles();
10059 if let Some((inlined, num_bytes, num_handles)) =
10060 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10061 {
10062 let member_inline_size = <fidl::encoding::Vector<SampleFormat, 3> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
10063 if inlined != (member_inline_size <= 4) {
10064 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10065 }
10066 let inner_offset;
10067 let mut inner_depth = depth.clone();
10068 if inlined {
10069 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10070 inner_offset = next_offset;
10071 } else {
10072 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10073 inner_depth.increment()?;
10074 }
10075 let val_ref = self.sample_formats.get_or_insert_with(
10076 || fidl::new_empty!(fidl::encoding::Vector<SampleFormat, 3>, D),
10077 );
10078 fidl::decode!(fidl::encoding::Vector<SampleFormat, 3>, D, val_ref, decoder, inner_offset, inner_depth)?;
10079 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10080 {
10081 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10082 }
10083 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10084 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10085 }
10086 }
10087
10088 next_offset += envelope_size;
10089 _next_ordinal_to_read += 1;
10090 if next_offset >= end_offset {
10091 return Ok(());
10092 }
10093
10094 while _next_ordinal_to_read < 3 {
10096 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10097 _next_ordinal_to_read += 1;
10098 next_offset += envelope_size;
10099 }
10100
10101 let next_out_of_line = decoder.next_out_of_line();
10102 let handles_before = decoder.remaining_handles();
10103 if let Some((inlined, num_bytes, num_handles)) =
10104 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10105 {
10106 let member_inline_size =
10107 <fidl::encoding::Vector<u8, 8> as fidl::encoding::TypeMarker>::inline_size(
10108 decoder.context,
10109 );
10110 if inlined != (member_inline_size <= 4) {
10111 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10112 }
10113 let inner_offset;
10114 let mut inner_depth = depth.clone();
10115 if inlined {
10116 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10117 inner_offset = next_offset;
10118 } else {
10119 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10120 inner_depth.increment()?;
10121 }
10122 let val_ref = self
10123 .bytes_per_sample
10124 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<u8, 8>, D));
10125 fidl::decode!(fidl::encoding::Vector<u8, 8>, D, val_ref, decoder, inner_offset, inner_depth)?;
10126 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10127 {
10128 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10129 }
10130 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10131 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10132 }
10133 }
10134
10135 next_offset += envelope_size;
10136 _next_ordinal_to_read += 1;
10137 if next_offset >= end_offset {
10138 return Ok(());
10139 }
10140
10141 while _next_ordinal_to_read < 4 {
10143 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10144 _next_ordinal_to_read += 1;
10145 next_offset += envelope_size;
10146 }
10147
10148 let next_out_of_line = decoder.next_out_of_line();
10149 let handles_before = decoder.remaining_handles();
10150 if let Some((inlined, num_bytes, num_handles)) =
10151 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10152 {
10153 let member_inline_size =
10154 <fidl::encoding::Vector<u8, 8> as fidl::encoding::TypeMarker>::inline_size(
10155 decoder.context,
10156 );
10157 if inlined != (member_inline_size <= 4) {
10158 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10159 }
10160 let inner_offset;
10161 let mut inner_depth = depth.clone();
10162 if inlined {
10163 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10164 inner_offset = next_offset;
10165 } else {
10166 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10167 inner_depth.increment()?;
10168 }
10169 let val_ref = self
10170 .valid_bits_per_sample
10171 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<u8, 8>, D));
10172 fidl::decode!(fidl::encoding::Vector<u8, 8>, D, val_ref, decoder, inner_offset, inner_depth)?;
10173 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10174 {
10175 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10176 }
10177 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10178 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10179 }
10180 }
10181
10182 next_offset += envelope_size;
10183 _next_ordinal_to_read += 1;
10184 if next_offset >= end_offset {
10185 return Ok(());
10186 }
10187
10188 while _next_ordinal_to_read < 5 {
10190 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10191 _next_ordinal_to_read += 1;
10192 next_offset += envelope_size;
10193 }
10194
10195 let next_out_of_line = decoder.next_out_of_line();
10196 let handles_before = decoder.remaining_handles();
10197 if let Some((inlined, num_bytes, num_handles)) =
10198 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10199 {
10200 let member_inline_size =
10201 <fidl::encoding::Vector<u32, 64> as fidl::encoding::TypeMarker>::inline_size(
10202 decoder.context,
10203 );
10204 if inlined != (member_inline_size <= 4) {
10205 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10206 }
10207 let inner_offset;
10208 let mut inner_depth = depth.clone();
10209 if inlined {
10210 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10211 inner_offset = next_offset;
10212 } else {
10213 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10214 inner_depth.increment()?;
10215 }
10216 let val_ref = self
10217 .frame_rates
10218 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<u32, 64>, D));
10219 fidl::decode!(fidl::encoding::Vector<u32, 64>, D, val_ref, decoder, inner_offset, inner_depth)?;
10220 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10221 {
10222 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10223 }
10224 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10225 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10226 }
10227 }
10228
10229 next_offset += envelope_size;
10230
10231 while next_offset < end_offset {
10233 _next_ordinal_to_read += 1;
10234 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10235 next_offset += envelope_size;
10236 }
10237
10238 Ok(())
10239 }
10240 }
10241
10242 impl PlugState {
10243 #[inline(always)]
10244 fn max_ordinal_present(&self) -> u64 {
10245 if let Some(_) = self.plug_state_time {
10246 return 2;
10247 }
10248 if let Some(_) = self.plugged {
10249 return 1;
10250 }
10251 0
10252 }
10253 }
10254
10255 impl fidl::encoding::ValueTypeMarker for PlugState {
10256 type Borrowed<'a> = &'a Self;
10257 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
10258 value
10259 }
10260 }
10261
10262 unsafe impl fidl::encoding::TypeMarker for PlugState {
10263 type Owned = Self;
10264
10265 #[inline(always)]
10266 fn inline_align(_context: fidl::encoding::Context) -> usize {
10267 8
10268 }
10269
10270 #[inline(always)]
10271 fn inline_size(_context: fidl::encoding::Context) -> usize {
10272 16
10273 }
10274 }
10275
10276 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<PlugState, D>
10277 for &PlugState
10278 {
10279 unsafe fn encode(
10280 self,
10281 encoder: &mut fidl::encoding::Encoder<'_, D>,
10282 offset: usize,
10283 mut depth: fidl::encoding::Depth,
10284 ) -> fidl::Result<()> {
10285 encoder.debug_check_bounds::<PlugState>(offset);
10286 let max_ordinal: u64 = self.max_ordinal_present();
10288 encoder.write_num(max_ordinal, offset);
10289 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
10290 if max_ordinal == 0 {
10292 return Ok(());
10293 }
10294 depth.increment()?;
10295 let envelope_size = 8;
10296 let bytes_len = max_ordinal as usize * envelope_size;
10297 #[allow(unused_variables)]
10298 let offset = encoder.out_of_line_offset(bytes_len);
10299 let mut _prev_end_offset: usize = 0;
10300 if 1 > max_ordinal {
10301 return Ok(());
10302 }
10303
10304 let cur_offset: usize = (1 - 1) * envelope_size;
10307
10308 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10310
10311 fidl::encoding::encode_in_envelope_optional::<bool, D>(
10316 self.plugged.as_ref().map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
10317 encoder,
10318 offset + cur_offset,
10319 depth,
10320 )?;
10321
10322 _prev_end_offset = cur_offset + envelope_size;
10323 if 2 > max_ordinal {
10324 return Ok(());
10325 }
10326
10327 let cur_offset: usize = (2 - 1) * envelope_size;
10330
10331 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10333
10334 fidl::encoding::encode_in_envelope_optional::<i64, D>(
10339 self.plug_state_time.as_ref().map(<i64 as fidl::encoding::ValueTypeMarker>::borrow),
10340 encoder,
10341 offset + cur_offset,
10342 depth,
10343 )?;
10344
10345 _prev_end_offset = cur_offset + envelope_size;
10346
10347 Ok(())
10348 }
10349 }
10350
10351 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for PlugState {
10352 #[inline(always)]
10353 fn new_empty() -> Self {
10354 Self::default()
10355 }
10356
10357 unsafe fn decode(
10358 &mut self,
10359 decoder: &mut fidl::encoding::Decoder<'_, D>,
10360 offset: usize,
10361 mut depth: fidl::encoding::Depth,
10362 ) -> fidl::Result<()> {
10363 decoder.debug_check_bounds::<Self>(offset);
10364 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
10365 None => return Err(fidl::Error::NotNullable),
10366 Some(len) => len,
10367 };
10368 if len == 0 {
10370 return Ok(());
10371 };
10372 depth.increment()?;
10373 let envelope_size = 8;
10374 let bytes_len = len * envelope_size;
10375 let offset = decoder.out_of_line_offset(bytes_len)?;
10376 let mut _next_ordinal_to_read = 0;
10378 let mut next_offset = offset;
10379 let end_offset = offset + bytes_len;
10380 _next_ordinal_to_read += 1;
10381 if next_offset >= end_offset {
10382 return Ok(());
10383 }
10384
10385 while _next_ordinal_to_read < 1 {
10387 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10388 _next_ordinal_to_read += 1;
10389 next_offset += envelope_size;
10390 }
10391
10392 let next_out_of_line = decoder.next_out_of_line();
10393 let handles_before = decoder.remaining_handles();
10394 if let Some((inlined, num_bytes, num_handles)) =
10395 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10396 {
10397 let member_inline_size =
10398 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
10399 if inlined != (member_inline_size <= 4) {
10400 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10401 }
10402 let inner_offset;
10403 let mut inner_depth = depth.clone();
10404 if inlined {
10405 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10406 inner_offset = next_offset;
10407 } else {
10408 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10409 inner_depth.increment()?;
10410 }
10411 let val_ref = self.plugged.get_or_insert_with(|| fidl::new_empty!(bool, D));
10412 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
10413 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10414 {
10415 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10416 }
10417 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10418 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10419 }
10420 }
10421
10422 next_offset += envelope_size;
10423 _next_ordinal_to_read += 1;
10424 if next_offset >= end_offset {
10425 return Ok(());
10426 }
10427
10428 while _next_ordinal_to_read < 2 {
10430 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10431 _next_ordinal_to_read += 1;
10432 next_offset += envelope_size;
10433 }
10434
10435 let next_out_of_line = decoder.next_out_of_line();
10436 let handles_before = decoder.remaining_handles();
10437 if let Some((inlined, num_bytes, num_handles)) =
10438 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10439 {
10440 let member_inline_size =
10441 <i64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
10442 if inlined != (member_inline_size <= 4) {
10443 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10444 }
10445 let inner_offset;
10446 let mut inner_depth = depth.clone();
10447 if inlined {
10448 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10449 inner_offset = next_offset;
10450 } else {
10451 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10452 inner_depth.increment()?;
10453 }
10454 let val_ref = self.plug_state_time.get_or_insert_with(|| fidl::new_empty!(i64, D));
10455 fidl::decode!(i64, D, val_ref, decoder, inner_offset, inner_depth)?;
10456 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10457 {
10458 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10459 }
10460 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10461 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10462 }
10463 }
10464
10465 next_offset += envelope_size;
10466
10467 while next_offset < end_offset {
10469 _next_ordinal_to_read += 1;
10470 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10471 next_offset += envelope_size;
10472 }
10473
10474 Ok(())
10475 }
10476 }
10477
10478 impl RingBufferProperties {
10479 #[inline(always)]
10480 fn max_ordinal_present(&self) -> u64 {
10481 if let Some(_) = self.driver_transfer_bytes {
10482 return 5;
10483 }
10484 if let Some(_) = self.turn_on_delay {
10485 return 4;
10486 }
10487 if let Some(_) = self.needs_cache_flush_or_invalidate {
10488 return 3;
10489 }
10490 0
10491 }
10492 }
10493
10494 impl fidl::encoding::ValueTypeMarker for RingBufferProperties {
10495 type Borrowed<'a> = &'a Self;
10496 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
10497 value
10498 }
10499 }
10500
10501 unsafe impl fidl::encoding::TypeMarker for RingBufferProperties {
10502 type Owned = Self;
10503
10504 #[inline(always)]
10505 fn inline_align(_context: fidl::encoding::Context) -> usize {
10506 8
10507 }
10508
10509 #[inline(always)]
10510 fn inline_size(_context: fidl::encoding::Context) -> usize {
10511 16
10512 }
10513 }
10514
10515 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<RingBufferProperties, D>
10516 for &RingBufferProperties
10517 {
10518 unsafe fn encode(
10519 self,
10520 encoder: &mut fidl::encoding::Encoder<'_, D>,
10521 offset: usize,
10522 mut depth: fidl::encoding::Depth,
10523 ) -> fidl::Result<()> {
10524 encoder.debug_check_bounds::<RingBufferProperties>(offset);
10525 let max_ordinal: u64 = self.max_ordinal_present();
10527 encoder.write_num(max_ordinal, offset);
10528 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
10529 if max_ordinal == 0 {
10531 return Ok(());
10532 }
10533 depth.increment()?;
10534 let envelope_size = 8;
10535 let bytes_len = max_ordinal as usize * envelope_size;
10536 #[allow(unused_variables)]
10537 let offset = encoder.out_of_line_offset(bytes_len);
10538 let mut _prev_end_offset: usize = 0;
10539 if 3 > max_ordinal {
10540 return Ok(());
10541 }
10542
10543 let cur_offset: usize = (3 - 1) * envelope_size;
10546
10547 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10549
10550 fidl::encoding::encode_in_envelope_optional::<bool, D>(
10555 self.needs_cache_flush_or_invalidate
10556 .as_ref()
10557 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
10558 encoder,
10559 offset + cur_offset,
10560 depth,
10561 )?;
10562
10563 _prev_end_offset = cur_offset + envelope_size;
10564 if 4 > max_ordinal {
10565 return Ok(());
10566 }
10567
10568 let cur_offset: usize = (4 - 1) * envelope_size;
10571
10572 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10574
10575 fidl::encoding::encode_in_envelope_optional::<i64, D>(
10580 self.turn_on_delay.as_ref().map(<i64 as fidl::encoding::ValueTypeMarker>::borrow),
10581 encoder,
10582 offset + cur_offset,
10583 depth,
10584 )?;
10585
10586 _prev_end_offset = cur_offset + envelope_size;
10587 if 5 > max_ordinal {
10588 return Ok(());
10589 }
10590
10591 let cur_offset: usize = (5 - 1) * envelope_size;
10594
10595 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10597
10598 fidl::encoding::encode_in_envelope_optional::<u32, D>(
10603 self.driver_transfer_bytes
10604 .as_ref()
10605 .map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
10606 encoder,
10607 offset + cur_offset,
10608 depth,
10609 )?;
10610
10611 _prev_end_offset = cur_offset + envelope_size;
10612
10613 Ok(())
10614 }
10615 }
10616
10617 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for RingBufferProperties {
10618 #[inline(always)]
10619 fn new_empty() -> Self {
10620 Self::default()
10621 }
10622
10623 unsafe fn decode(
10624 &mut self,
10625 decoder: &mut fidl::encoding::Decoder<'_, D>,
10626 offset: usize,
10627 mut depth: fidl::encoding::Depth,
10628 ) -> fidl::Result<()> {
10629 decoder.debug_check_bounds::<Self>(offset);
10630 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
10631 None => return Err(fidl::Error::NotNullable),
10632 Some(len) => len,
10633 };
10634 if len == 0 {
10636 return Ok(());
10637 };
10638 depth.increment()?;
10639 let envelope_size = 8;
10640 let bytes_len = len * envelope_size;
10641 let offset = decoder.out_of_line_offset(bytes_len)?;
10642 let mut _next_ordinal_to_read = 0;
10644 let mut next_offset = offset;
10645 let end_offset = offset + bytes_len;
10646 _next_ordinal_to_read += 1;
10647 if next_offset >= end_offset {
10648 return Ok(());
10649 }
10650
10651 while _next_ordinal_to_read < 3 {
10653 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10654 _next_ordinal_to_read += 1;
10655 next_offset += envelope_size;
10656 }
10657
10658 let next_out_of_line = decoder.next_out_of_line();
10659 let handles_before = decoder.remaining_handles();
10660 if let Some((inlined, num_bytes, num_handles)) =
10661 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10662 {
10663 let member_inline_size =
10664 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
10665 if inlined != (member_inline_size <= 4) {
10666 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10667 }
10668 let inner_offset;
10669 let mut inner_depth = depth.clone();
10670 if inlined {
10671 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10672 inner_offset = next_offset;
10673 } else {
10674 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10675 inner_depth.increment()?;
10676 }
10677 let val_ref = self
10678 .needs_cache_flush_or_invalidate
10679 .get_or_insert_with(|| fidl::new_empty!(bool, D));
10680 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
10681 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10682 {
10683 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10684 }
10685 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10686 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10687 }
10688 }
10689
10690 next_offset += envelope_size;
10691 _next_ordinal_to_read += 1;
10692 if next_offset >= end_offset {
10693 return Ok(());
10694 }
10695
10696 while _next_ordinal_to_read < 4 {
10698 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10699 _next_ordinal_to_read += 1;
10700 next_offset += envelope_size;
10701 }
10702
10703 let next_out_of_line = decoder.next_out_of_line();
10704 let handles_before = decoder.remaining_handles();
10705 if let Some((inlined, num_bytes, num_handles)) =
10706 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10707 {
10708 let member_inline_size =
10709 <i64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
10710 if inlined != (member_inline_size <= 4) {
10711 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10712 }
10713 let inner_offset;
10714 let mut inner_depth = depth.clone();
10715 if inlined {
10716 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10717 inner_offset = next_offset;
10718 } else {
10719 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10720 inner_depth.increment()?;
10721 }
10722 let val_ref = self.turn_on_delay.get_or_insert_with(|| fidl::new_empty!(i64, D));
10723 fidl::decode!(i64, D, val_ref, decoder, inner_offset, inner_depth)?;
10724 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10725 {
10726 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10727 }
10728 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10729 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10730 }
10731 }
10732
10733 next_offset += envelope_size;
10734 _next_ordinal_to_read += 1;
10735 if next_offset >= end_offset {
10736 return Ok(());
10737 }
10738
10739 while _next_ordinal_to_read < 5 {
10741 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10742 _next_ordinal_to_read += 1;
10743 next_offset += envelope_size;
10744 }
10745
10746 let next_out_of_line = decoder.next_out_of_line();
10747 let handles_before = decoder.remaining_handles();
10748 if let Some((inlined, num_bytes, num_handles)) =
10749 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10750 {
10751 let member_inline_size =
10752 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
10753 if inlined != (member_inline_size <= 4) {
10754 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10755 }
10756 let inner_offset;
10757 let mut inner_depth = depth.clone();
10758 if inlined {
10759 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10760 inner_offset = next_offset;
10761 } else {
10762 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10763 inner_depth.increment()?;
10764 }
10765 let val_ref =
10766 self.driver_transfer_bytes.get_or_insert_with(|| fidl::new_empty!(u32, D));
10767 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
10768 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10769 {
10770 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10771 }
10772 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10773 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10774 }
10775 }
10776
10777 next_offset += envelope_size;
10778
10779 while next_offset < end_offset {
10781 _next_ordinal_to_read += 1;
10782 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10783 next_offset += envelope_size;
10784 }
10785
10786 Ok(())
10787 }
10788 }
10789
10790 impl StreamProperties {
10791 #[inline(always)]
10792 fn max_ordinal_present(&self) -> u64 {
10793 if let Some(_) = self.clock_domain {
10794 return 11;
10795 }
10796 if let Some(_) = self.product {
10797 return 10;
10798 }
10799 if let Some(_) = self.manufacturer {
10800 return 9;
10801 }
10802 if let Some(_) = self.plug_detect_capabilities {
10803 return 8;
10804 }
10805 if let Some(_) = self.gain_step_db {
10806 return 7;
10807 }
10808 if let Some(_) = self.max_gain_db {
10809 return 6;
10810 }
10811 if let Some(_) = self.min_gain_db {
10812 return 5;
10813 }
10814 if let Some(_) = self.can_agc {
10815 return 4;
10816 }
10817 if let Some(_) = self.can_mute {
10818 return 3;
10819 }
10820 if let Some(_) = self.is_input {
10821 return 2;
10822 }
10823 if let Some(_) = self.unique_id {
10824 return 1;
10825 }
10826 0
10827 }
10828 }
10829
10830 impl fidl::encoding::ValueTypeMarker for StreamProperties {
10831 type Borrowed<'a> = &'a Self;
10832 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
10833 value
10834 }
10835 }
10836
10837 unsafe impl fidl::encoding::TypeMarker for StreamProperties {
10838 type Owned = Self;
10839
10840 #[inline(always)]
10841 fn inline_align(_context: fidl::encoding::Context) -> usize {
10842 8
10843 }
10844
10845 #[inline(always)]
10846 fn inline_size(_context: fidl::encoding::Context) -> usize {
10847 16
10848 }
10849 }
10850
10851 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<StreamProperties, D>
10852 for &StreamProperties
10853 {
10854 unsafe fn encode(
10855 self,
10856 encoder: &mut fidl::encoding::Encoder<'_, D>,
10857 offset: usize,
10858 mut depth: fidl::encoding::Depth,
10859 ) -> fidl::Result<()> {
10860 encoder.debug_check_bounds::<StreamProperties>(offset);
10861 let max_ordinal: u64 = self.max_ordinal_present();
10863 encoder.write_num(max_ordinal, offset);
10864 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
10865 if max_ordinal == 0 {
10867 return Ok(());
10868 }
10869 depth.increment()?;
10870 let envelope_size = 8;
10871 let bytes_len = max_ordinal as usize * envelope_size;
10872 #[allow(unused_variables)]
10873 let offset = encoder.out_of_line_offset(bytes_len);
10874 let mut _prev_end_offset: usize = 0;
10875 if 1 > max_ordinal {
10876 return Ok(());
10877 }
10878
10879 let cur_offset: usize = (1 - 1) * envelope_size;
10882
10883 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10885
10886 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 16>, D>(
10891 self.unique_id.as_ref().map(
10892 <fidl::encoding::Array<u8, 16> as fidl::encoding::ValueTypeMarker>::borrow,
10893 ),
10894 encoder,
10895 offset + cur_offset,
10896 depth,
10897 )?;
10898
10899 _prev_end_offset = cur_offset + envelope_size;
10900 if 2 > max_ordinal {
10901 return Ok(());
10902 }
10903
10904 let cur_offset: usize = (2 - 1) * envelope_size;
10907
10908 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10910
10911 fidl::encoding::encode_in_envelope_optional::<bool, D>(
10916 self.is_input.as_ref().map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
10917 encoder,
10918 offset + cur_offset,
10919 depth,
10920 )?;
10921
10922 _prev_end_offset = cur_offset + envelope_size;
10923 if 3 > max_ordinal {
10924 return Ok(());
10925 }
10926
10927 let cur_offset: usize = (3 - 1) * envelope_size;
10930
10931 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10933
10934 fidl::encoding::encode_in_envelope_optional::<bool, D>(
10939 self.can_mute.as_ref().map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
10940 encoder,
10941 offset + cur_offset,
10942 depth,
10943 )?;
10944
10945 _prev_end_offset = cur_offset + envelope_size;
10946 if 4 > max_ordinal {
10947 return Ok(());
10948 }
10949
10950 let cur_offset: usize = (4 - 1) * envelope_size;
10953
10954 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10956
10957 fidl::encoding::encode_in_envelope_optional::<bool, D>(
10962 self.can_agc.as_ref().map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
10963 encoder,
10964 offset + cur_offset,
10965 depth,
10966 )?;
10967
10968 _prev_end_offset = cur_offset + envelope_size;
10969 if 5 > max_ordinal {
10970 return Ok(());
10971 }
10972
10973 let cur_offset: usize = (5 - 1) * envelope_size;
10976
10977 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10979
10980 fidl::encoding::encode_in_envelope_optional::<f32, D>(
10985 self.min_gain_db.as_ref().map(<f32 as fidl::encoding::ValueTypeMarker>::borrow),
10986 encoder,
10987 offset + cur_offset,
10988 depth,
10989 )?;
10990
10991 _prev_end_offset = cur_offset + envelope_size;
10992 if 6 > max_ordinal {
10993 return Ok(());
10994 }
10995
10996 let cur_offset: usize = (6 - 1) * envelope_size;
10999
11000 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
11002
11003 fidl::encoding::encode_in_envelope_optional::<f32, D>(
11008 self.max_gain_db.as_ref().map(<f32 as fidl::encoding::ValueTypeMarker>::borrow),
11009 encoder,
11010 offset + cur_offset,
11011 depth,
11012 )?;
11013
11014 _prev_end_offset = cur_offset + envelope_size;
11015 if 7 > max_ordinal {
11016 return Ok(());
11017 }
11018
11019 let cur_offset: usize = (7 - 1) * envelope_size;
11022
11023 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
11025
11026 fidl::encoding::encode_in_envelope_optional::<f32, D>(
11031 self.gain_step_db.as_ref().map(<f32 as fidl::encoding::ValueTypeMarker>::borrow),
11032 encoder,
11033 offset + cur_offset,
11034 depth,
11035 )?;
11036
11037 _prev_end_offset = cur_offset + envelope_size;
11038 if 8 > max_ordinal {
11039 return Ok(());
11040 }
11041
11042 let cur_offset: usize = (8 - 1) * envelope_size;
11045
11046 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
11048
11049 fidl::encoding::encode_in_envelope_optional::<PlugDetectCapabilities, D>(
11054 self.plug_detect_capabilities
11055 .as_ref()
11056 .map(<PlugDetectCapabilities as fidl::encoding::ValueTypeMarker>::borrow),
11057 encoder,
11058 offset + cur_offset,
11059 depth,
11060 )?;
11061
11062 _prev_end_offset = cur_offset + envelope_size;
11063 if 9 > max_ordinal {
11064 return Ok(());
11065 }
11066
11067 let cur_offset: usize = (9 - 1) * envelope_size;
11070
11071 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
11073
11074 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<256>, D>(
11079 self.manufacturer.as_ref().map(
11080 <fidl::encoding::BoundedString<256> as fidl::encoding::ValueTypeMarker>::borrow,
11081 ),
11082 encoder,
11083 offset + cur_offset,
11084 depth,
11085 )?;
11086
11087 _prev_end_offset = cur_offset + envelope_size;
11088 if 10 > max_ordinal {
11089 return Ok(());
11090 }
11091
11092 let cur_offset: usize = (10 - 1) * envelope_size;
11095
11096 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
11098
11099 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<256>, D>(
11104 self.product.as_ref().map(
11105 <fidl::encoding::BoundedString<256> as fidl::encoding::ValueTypeMarker>::borrow,
11106 ),
11107 encoder,
11108 offset + cur_offset,
11109 depth,
11110 )?;
11111
11112 _prev_end_offset = cur_offset + envelope_size;
11113 if 11 > max_ordinal {
11114 return Ok(());
11115 }
11116
11117 let cur_offset: usize = (11 - 1) * envelope_size;
11120
11121 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
11123
11124 fidl::encoding::encode_in_envelope_optional::<u32, D>(
11129 self.clock_domain.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
11130 encoder,
11131 offset + cur_offset,
11132 depth,
11133 )?;
11134
11135 _prev_end_offset = cur_offset + envelope_size;
11136
11137 Ok(())
11138 }
11139 }
11140
11141 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for StreamProperties {
11142 #[inline(always)]
11143 fn new_empty() -> Self {
11144 Self::default()
11145 }
11146
11147 unsafe fn decode(
11148 &mut self,
11149 decoder: &mut fidl::encoding::Decoder<'_, D>,
11150 offset: usize,
11151 mut depth: fidl::encoding::Depth,
11152 ) -> fidl::Result<()> {
11153 decoder.debug_check_bounds::<Self>(offset);
11154 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
11155 None => return Err(fidl::Error::NotNullable),
11156 Some(len) => len,
11157 };
11158 if len == 0 {
11160 return Ok(());
11161 };
11162 depth.increment()?;
11163 let envelope_size = 8;
11164 let bytes_len = len * envelope_size;
11165 let offset = decoder.out_of_line_offset(bytes_len)?;
11166 let mut _next_ordinal_to_read = 0;
11168 let mut next_offset = offset;
11169 let end_offset = offset + bytes_len;
11170 _next_ordinal_to_read += 1;
11171 if next_offset >= end_offset {
11172 return Ok(());
11173 }
11174
11175 while _next_ordinal_to_read < 1 {
11177 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11178 _next_ordinal_to_read += 1;
11179 next_offset += envelope_size;
11180 }
11181
11182 let next_out_of_line = decoder.next_out_of_line();
11183 let handles_before = decoder.remaining_handles();
11184 if let Some((inlined, num_bytes, num_handles)) =
11185 fidl::encoding::decode_envelope_header(decoder, next_offset)?
11186 {
11187 let member_inline_size =
11188 <fidl::encoding::Array<u8, 16> as fidl::encoding::TypeMarker>::inline_size(
11189 decoder.context,
11190 );
11191 if inlined != (member_inline_size <= 4) {
11192 return Err(fidl::Error::InvalidInlineBitInEnvelope);
11193 }
11194 let inner_offset;
11195 let mut inner_depth = depth.clone();
11196 if inlined {
11197 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
11198 inner_offset = next_offset;
11199 } else {
11200 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
11201 inner_depth.increment()?;
11202 }
11203 let val_ref = self
11204 .unique_id
11205 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 16>, D));
11206 fidl::decode!(fidl::encoding::Array<u8, 16>, D, val_ref, decoder, inner_offset, inner_depth)?;
11207 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
11208 {
11209 return Err(fidl::Error::InvalidNumBytesInEnvelope);
11210 }
11211 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
11212 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
11213 }
11214 }
11215
11216 next_offset += envelope_size;
11217 _next_ordinal_to_read += 1;
11218 if next_offset >= end_offset {
11219 return Ok(());
11220 }
11221
11222 while _next_ordinal_to_read < 2 {
11224 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11225 _next_ordinal_to_read += 1;
11226 next_offset += envelope_size;
11227 }
11228
11229 let next_out_of_line = decoder.next_out_of_line();
11230 let handles_before = decoder.remaining_handles();
11231 if let Some((inlined, num_bytes, num_handles)) =
11232 fidl::encoding::decode_envelope_header(decoder, next_offset)?
11233 {
11234 let member_inline_size =
11235 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
11236 if inlined != (member_inline_size <= 4) {
11237 return Err(fidl::Error::InvalidInlineBitInEnvelope);
11238 }
11239 let inner_offset;
11240 let mut inner_depth = depth.clone();
11241 if inlined {
11242 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
11243 inner_offset = next_offset;
11244 } else {
11245 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
11246 inner_depth.increment()?;
11247 }
11248 let val_ref = self.is_input.get_or_insert_with(|| fidl::new_empty!(bool, D));
11249 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
11250 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
11251 {
11252 return Err(fidl::Error::InvalidNumBytesInEnvelope);
11253 }
11254 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
11255 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
11256 }
11257 }
11258
11259 next_offset += envelope_size;
11260 _next_ordinal_to_read += 1;
11261 if next_offset >= end_offset {
11262 return Ok(());
11263 }
11264
11265 while _next_ordinal_to_read < 3 {
11267 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11268 _next_ordinal_to_read += 1;
11269 next_offset += envelope_size;
11270 }
11271
11272 let next_out_of_line = decoder.next_out_of_line();
11273 let handles_before = decoder.remaining_handles();
11274 if let Some((inlined, num_bytes, num_handles)) =
11275 fidl::encoding::decode_envelope_header(decoder, next_offset)?
11276 {
11277 let member_inline_size =
11278 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
11279 if inlined != (member_inline_size <= 4) {
11280 return Err(fidl::Error::InvalidInlineBitInEnvelope);
11281 }
11282 let inner_offset;
11283 let mut inner_depth = depth.clone();
11284 if inlined {
11285 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
11286 inner_offset = next_offset;
11287 } else {
11288 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
11289 inner_depth.increment()?;
11290 }
11291 let val_ref = self.can_mute.get_or_insert_with(|| fidl::new_empty!(bool, D));
11292 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
11293 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
11294 {
11295 return Err(fidl::Error::InvalidNumBytesInEnvelope);
11296 }
11297 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
11298 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
11299 }
11300 }
11301
11302 next_offset += envelope_size;
11303 _next_ordinal_to_read += 1;
11304 if next_offset >= end_offset {
11305 return Ok(());
11306 }
11307
11308 while _next_ordinal_to_read < 4 {
11310 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11311 _next_ordinal_to_read += 1;
11312 next_offset += envelope_size;
11313 }
11314
11315 let next_out_of_line = decoder.next_out_of_line();
11316 let handles_before = decoder.remaining_handles();
11317 if let Some((inlined, num_bytes, num_handles)) =
11318 fidl::encoding::decode_envelope_header(decoder, next_offset)?
11319 {
11320 let member_inline_size =
11321 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
11322 if inlined != (member_inline_size <= 4) {
11323 return Err(fidl::Error::InvalidInlineBitInEnvelope);
11324 }
11325 let inner_offset;
11326 let mut inner_depth = depth.clone();
11327 if inlined {
11328 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
11329 inner_offset = next_offset;
11330 } else {
11331 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
11332 inner_depth.increment()?;
11333 }
11334 let val_ref = self.can_agc.get_or_insert_with(|| fidl::new_empty!(bool, D));
11335 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
11336 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
11337 {
11338 return Err(fidl::Error::InvalidNumBytesInEnvelope);
11339 }
11340 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
11341 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
11342 }
11343 }
11344
11345 next_offset += envelope_size;
11346 _next_ordinal_to_read += 1;
11347 if next_offset >= end_offset {
11348 return Ok(());
11349 }
11350
11351 while _next_ordinal_to_read < 5 {
11353 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11354 _next_ordinal_to_read += 1;
11355 next_offset += envelope_size;
11356 }
11357
11358 let next_out_of_line = decoder.next_out_of_line();
11359 let handles_before = decoder.remaining_handles();
11360 if let Some((inlined, num_bytes, num_handles)) =
11361 fidl::encoding::decode_envelope_header(decoder, next_offset)?
11362 {
11363 let member_inline_size =
11364 <f32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
11365 if inlined != (member_inline_size <= 4) {
11366 return Err(fidl::Error::InvalidInlineBitInEnvelope);
11367 }
11368 let inner_offset;
11369 let mut inner_depth = depth.clone();
11370 if inlined {
11371 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
11372 inner_offset = next_offset;
11373 } else {
11374 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
11375 inner_depth.increment()?;
11376 }
11377 let val_ref = self.min_gain_db.get_or_insert_with(|| fidl::new_empty!(f32, D));
11378 fidl::decode!(f32, D, val_ref, decoder, inner_offset, inner_depth)?;
11379 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
11380 {
11381 return Err(fidl::Error::InvalidNumBytesInEnvelope);
11382 }
11383 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
11384 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
11385 }
11386 }
11387
11388 next_offset += envelope_size;
11389 _next_ordinal_to_read += 1;
11390 if next_offset >= end_offset {
11391 return Ok(());
11392 }
11393
11394 while _next_ordinal_to_read < 6 {
11396 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11397 _next_ordinal_to_read += 1;
11398 next_offset += envelope_size;
11399 }
11400
11401 let next_out_of_line = decoder.next_out_of_line();
11402 let handles_before = decoder.remaining_handles();
11403 if let Some((inlined, num_bytes, num_handles)) =
11404 fidl::encoding::decode_envelope_header(decoder, next_offset)?
11405 {
11406 let member_inline_size =
11407 <f32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
11408 if inlined != (member_inline_size <= 4) {
11409 return Err(fidl::Error::InvalidInlineBitInEnvelope);
11410 }
11411 let inner_offset;
11412 let mut inner_depth = depth.clone();
11413 if inlined {
11414 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
11415 inner_offset = next_offset;
11416 } else {
11417 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
11418 inner_depth.increment()?;
11419 }
11420 let val_ref = self.max_gain_db.get_or_insert_with(|| fidl::new_empty!(f32, D));
11421 fidl::decode!(f32, D, val_ref, decoder, inner_offset, inner_depth)?;
11422 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
11423 {
11424 return Err(fidl::Error::InvalidNumBytesInEnvelope);
11425 }
11426 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
11427 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
11428 }
11429 }
11430
11431 next_offset += envelope_size;
11432 _next_ordinal_to_read += 1;
11433 if next_offset >= end_offset {
11434 return Ok(());
11435 }
11436
11437 while _next_ordinal_to_read < 7 {
11439 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11440 _next_ordinal_to_read += 1;
11441 next_offset += envelope_size;
11442 }
11443
11444 let next_out_of_line = decoder.next_out_of_line();
11445 let handles_before = decoder.remaining_handles();
11446 if let Some((inlined, num_bytes, num_handles)) =
11447 fidl::encoding::decode_envelope_header(decoder, next_offset)?
11448 {
11449 let member_inline_size =
11450 <f32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
11451 if inlined != (member_inline_size <= 4) {
11452 return Err(fidl::Error::InvalidInlineBitInEnvelope);
11453 }
11454 let inner_offset;
11455 let mut inner_depth = depth.clone();
11456 if inlined {
11457 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
11458 inner_offset = next_offset;
11459 } else {
11460 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
11461 inner_depth.increment()?;
11462 }
11463 let val_ref = self.gain_step_db.get_or_insert_with(|| fidl::new_empty!(f32, D));
11464 fidl::decode!(f32, D, val_ref, decoder, inner_offset, inner_depth)?;
11465 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
11466 {
11467 return Err(fidl::Error::InvalidNumBytesInEnvelope);
11468 }
11469 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
11470 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
11471 }
11472 }
11473
11474 next_offset += envelope_size;
11475 _next_ordinal_to_read += 1;
11476 if next_offset >= end_offset {
11477 return Ok(());
11478 }
11479
11480 while _next_ordinal_to_read < 8 {
11482 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11483 _next_ordinal_to_read += 1;
11484 next_offset += envelope_size;
11485 }
11486
11487 let next_out_of_line = decoder.next_out_of_line();
11488 let handles_before = decoder.remaining_handles();
11489 if let Some((inlined, num_bytes, num_handles)) =
11490 fidl::encoding::decode_envelope_header(decoder, next_offset)?
11491 {
11492 let member_inline_size =
11493 <PlugDetectCapabilities as fidl::encoding::TypeMarker>::inline_size(
11494 decoder.context,
11495 );
11496 if inlined != (member_inline_size <= 4) {
11497 return Err(fidl::Error::InvalidInlineBitInEnvelope);
11498 }
11499 let inner_offset;
11500 let mut inner_depth = depth.clone();
11501 if inlined {
11502 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
11503 inner_offset = next_offset;
11504 } else {
11505 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
11506 inner_depth.increment()?;
11507 }
11508 let val_ref = self
11509 .plug_detect_capabilities
11510 .get_or_insert_with(|| fidl::new_empty!(PlugDetectCapabilities, D));
11511 fidl::decode!(
11512 PlugDetectCapabilities,
11513 D,
11514 val_ref,
11515 decoder,
11516 inner_offset,
11517 inner_depth
11518 )?;
11519 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
11520 {
11521 return Err(fidl::Error::InvalidNumBytesInEnvelope);
11522 }
11523 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
11524 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
11525 }
11526 }
11527
11528 next_offset += envelope_size;
11529 _next_ordinal_to_read += 1;
11530 if next_offset >= end_offset {
11531 return Ok(());
11532 }
11533
11534 while _next_ordinal_to_read < 9 {
11536 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11537 _next_ordinal_to_read += 1;
11538 next_offset += envelope_size;
11539 }
11540
11541 let next_out_of_line = decoder.next_out_of_line();
11542 let handles_before = decoder.remaining_handles();
11543 if let Some((inlined, num_bytes, num_handles)) =
11544 fidl::encoding::decode_envelope_header(decoder, next_offset)?
11545 {
11546 let member_inline_size =
11547 <fidl::encoding::BoundedString<256> as fidl::encoding::TypeMarker>::inline_size(
11548 decoder.context,
11549 );
11550 if inlined != (member_inline_size <= 4) {
11551 return Err(fidl::Error::InvalidInlineBitInEnvelope);
11552 }
11553 let inner_offset;
11554 let mut inner_depth = depth.clone();
11555 if inlined {
11556 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
11557 inner_offset = next_offset;
11558 } else {
11559 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
11560 inner_depth.increment()?;
11561 }
11562 let val_ref = self
11563 .manufacturer
11564 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<256>, D));
11565 fidl::decode!(
11566 fidl::encoding::BoundedString<256>,
11567 D,
11568 val_ref,
11569 decoder,
11570 inner_offset,
11571 inner_depth
11572 )?;
11573 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
11574 {
11575 return Err(fidl::Error::InvalidNumBytesInEnvelope);
11576 }
11577 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
11578 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
11579 }
11580 }
11581
11582 next_offset += envelope_size;
11583 _next_ordinal_to_read += 1;
11584 if next_offset >= end_offset {
11585 return Ok(());
11586 }
11587
11588 while _next_ordinal_to_read < 10 {
11590 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11591 _next_ordinal_to_read += 1;
11592 next_offset += envelope_size;
11593 }
11594
11595 let next_out_of_line = decoder.next_out_of_line();
11596 let handles_before = decoder.remaining_handles();
11597 if let Some((inlined, num_bytes, num_handles)) =
11598 fidl::encoding::decode_envelope_header(decoder, next_offset)?
11599 {
11600 let member_inline_size =
11601 <fidl::encoding::BoundedString<256> as fidl::encoding::TypeMarker>::inline_size(
11602 decoder.context,
11603 );
11604 if inlined != (member_inline_size <= 4) {
11605 return Err(fidl::Error::InvalidInlineBitInEnvelope);
11606 }
11607 let inner_offset;
11608 let mut inner_depth = depth.clone();
11609 if inlined {
11610 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
11611 inner_offset = next_offset;
11612 } else {
11613 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
11614 inner_depth.increment()?;
11615 }
11616 let val_ref = self
11617 .product
11618 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<256>, D));
11619 fidl::decode!(
11620 fidl::encoding::BoundedString<256>,
11621 D,
11622 val_ref,
11623 decoder,
11624 inner_offset,
11625 inner_depth
11626 )?;
11627 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
11628 {
11629 return Err(fidl::Error::InvalidNumBytesInEnvelope);
11630 }
11631 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
11632 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
11633 }
11634 }
11635
11636 next_offset += envelope_size;
11637 _next_ordinal_to_read += 1;
11638 if next_offset >= end_offset {
11639 return Ok(());
11640 }
11641
11642 while _next_ordinal_to_read < 11 {
11644 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11645 _next_ordinal_to_read += 1;
11646 next_offset += envelope_size;
11647 }
11648
11649 let next_out_of_line = decoder.next_out_of_line();
11650 let handles_before = decoder.remaining_handles();
11651 if let Some((inlined, num_bytes, num_handles)) =
11652 fidl::encoding::decode_envelope_header(decoder, next_offset)?
11653 {
11654 let member_inline_size =
11655 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
11656 if inlined != (member_inline_size <= 4) {
11657 return Err(fidl::Error::InvalidInlineBitInEnvelope);
11658 }
11659 let inner_offset;
11660 let mut inner_depth = depth.clone();
11661 if inlined {
11662 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
11663 inner_offset = next_offset;
11664 } else {
11665 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
11666 inner_depth.increment()?;
11667 }
11668 let val_ref = self.clock_domain.get_or_insert_with(|| fidl::new_empty!(u32, D));
11669 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
11670 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
11671 {
11672 return Err(fidl::Error::InvalidNumBytesInEnvelope);
11673 }
11674 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
11675 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
11676 }
11677 }
11678
11679 next_offset += envelope_size;
11680
11681 while next_offset < end_offset {
11683 _next_ordinal_to_read += 1;
11684 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11685 next_offset += envelope_size;
11686 }
11687
11688 Ok(())
11689 }
11690 }
11691
11692 impl SupportedEncodings {
11693 #[inline(always)]
11694 fn max_ordinal_present(&self) -> u64 {
11695 if let Some(_) = self.encoding_types {
11696 return 5;
11697 }
11698 if let Some(_) = self.max_encoding_bitrate {
11699 return 4;
11700 }
11701 if let Some(_) = self.min_encoding_bitrate {
11702 return 3;
11703 }
11704 if let Some(_) = self.decoded_frame_rates {
11705 return 2;
11706 }
11707 if let Some(_) = self.decoded_channel_sets {
11708 return 1;
11709 }
11710 0
11711 }
11712 }
11713
11714 impl fidl::encoding::ValueTypeMarker for SupportedEncodings {
11715 type Borrowed<'a> = &'a Self;
11716 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
11717 value
11718 }
11719 }
11720
11721 unsafe impl fidl::encoding::TypeMarker for SupportedEncodings {
11722 type Owned = Self;
11723
11724 #[inline(always)]
11725 fn inline_align(_context: fidl::encoding::Context) -> usize {
11726 8
11727 }
11728
11729 #[inline(always)]
11730 fn inline_size(_context: fidl::encoding::Context) -> usize {
11731 16
11732 }
11733 }
11734
11735 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<SupportedEncodings, D>
11736 for &SupportedEncodings
11737 {
11738 unsafe fn encode(
11739 self,
11740 encoder: &mut fidl::encoding::Encoder<'_, D>,
11741 offset: usize,
11742 mut depth: fidl::encoding::Depth,
11743 ) -> fidl::Result<()> {
11744 encoder.debug_check_bounds::<SupportedEncodings>(offset);
11745 let max_ordinal: u64 = self.max_ordinal_present();
11747 encoder.write_num(max_ordinal, offset);
11748 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
11749 if max_ordinal == 0 {
11751 return Ok(());
11752 }
11753 depth.increment()?;
11754 let envelope_size = 8;
11755 let bytes_len = max_ordinal as usize * envelope_size;
11756 #[allow(unused_variables)]
11757 let offset = encoder.out_of_line_offset(bytes_len);
11758 let mut _prev_end_offset: usize = 0;
11759 if 1 > max_ordinal {
11760 return Ok(());
11761 }
11762
11763 let cur_offset: usize = (1 - 1) * envelope_size;
11766
11767 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
11769
11770 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<ChannelSet, 64>, D>(
11775 self.decoded_channel_sets.as_ref().map(<fidl::encoding::Vector<ChannelSet, 64> as fidl::encoding::ValueTypeMarker>::borrow),
11776 encoder, offset + cur_offset, depth
11777 )?;
11778
11779 _prev_end_offset = cur_offset + envelope_size;
11780 if 2 > max_ordinal {
11781 return Ok(());
11782 }
11783
11784 let cur_offset: usize = (2 - 1) * envelope_size;
11787
11788 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
11790
11791 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<u32, 64>, D>(
11796 self.decoded_frame_rates.as_ref().map(
11797 <fidl::encoding::Vector<u32, 64> as fidl::encoding::ValueTypeMarker>::borrow,
11798 ),
11799 encoder,
11800 offset + cur_offset,
11801 depth,
11802 )?;
11803
11804 _prev_end_offset = cur_offset + envelope_size;
11805 if 3 > max_ordinal {
11806 return Ok(());
11807 }
11808
11809 let cur_offset: usize = (3 - 1) * envelope_size;
11812
11813 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
11815
11816 fidl::encoding::encode_in_envelope_optional::<u32, D>(
11821 self.min_encoding_bitrate
11822 .as_ref()
11823 .map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
11824 encoder,
11825 offset + cur_offset,
11826 depth,
11827 )?;
11828
11829 _prev_end_offset = cur_offset + envelope_size;
11830 if 4 > max_ordinal {
11831 return Ok(());
11832 }
11833
11834 let cur_offset: usize = (4 - 1) * envelope_size;
11837
11838 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
11840
11841 fidl::encoding::encode_in_envelope_optional::<u32, D>(
11846 self.max_encoding_bitrate
11847 .as_ref()
11848 .map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
11849 encoder,
11850 offset + cur_offset,
11851 depth,
11852 )?;
11853
11854 _prev_end_offset = cur_offset + envelope_size;
11855 if 5 > max_ordinal {
11856 return Ok(());
11857 }
11858
11859 let cur_offset: usize = (5 - 1) * envelope_size;
11862
11863 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
11865
11866 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<EncodingType, 64>, D>(
11871 self.encoding_types.as_ref().map(<fidl::encoding::Vector<EncodingType, 64> as fidl::encoding::ValueTypeMarker>::borrow),
11872 encoder, offset + cur_offset, depth
11873 )?;
11874
11875 _prev_end_offset = cur_offset + envelope_size;
11876
11877 Ok(())
11878 }
11879 }
11880
11881 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for SupportedEncodings {
11882 #[inline(always)]
11883 fn new_empty() -> Self {
11884 Self::default()
11885 }
11886
11887 unsafe fn decode(
11888 &mut self,
11889 decoder: &mut fidl::encoding::Decoder<'_, D>,
11890 offset: usize,
11891 mut depth: fidl::encoding::Depth,
11892 ) -> fidl::Result<()> {
11893 decoder.debug_check_bounds::<Self>(offset);
11894 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
11895 None => return Err(fidl::Error::NotNullable),
11896 Some(len) => len,
11897 };
11898 if len == 0 {
11900 return Ok(());
11901 };
11902 depth.increment()?;
11903 let envelope_size = 8;
11904 let bytes_len = len * envelope_size;
11905 let offset = decoder.out_of_line_offset(bytes_len)?;
11906 let mut _next_ordinal_to_read = 0;
11908 let mut next_offset = offset;
11909 let end_offset = offset + bytes_len;
11910 _next_ordinal_to_read += 1;
11911 if next_offset >= end_offset {
11912 return Ok(());
11913 }
11914
11915 while _next_ordinal_to_read < 1 {
11917 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11918 _next_ordinal_to_read += 1;
11919 next_offset += envelope_size;
11920 }
11921
11922 let next_out_of_line = decoder.next_out_of_line();
11923 let handles_before = decoder.remaining_handles();
11924 if let Some((inlined, num_bytes, num_handles)) =
11925 fidl::encoding::decode_envelope_header(decoder, next_offset)?
11926 {
11927 let member_inline_size = <fidl::encoding::Vector<ChannelSet, 64> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
11928 if inlined != (member_inline_size <= 4) {
11929 return Err(fidl::Error::InvalidInlineBitInEnvelope);
11930 }
11931 let inner_offset;
11932 let mut inner_depth = depth.clone();
11933 if inlined {
11934 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
11935 inner_offset = next_offset;
11936 } else {
11937 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
11938 inner_depth.increment()?;
11939 }
11940 let val_ref = self.decoded_channel_sets.get_or_insert_with(
11941 || fidl::new_empty!(fidl::encoding::Vector<ChannelSet, 64>, D),
11942 );
11943 fidl::decode!(fidl::encoding::Vector<ChannelSet, 64>, D, val_ref, decoder, inner_offset, inner_depth)?;
11944 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
11945 {
11946 return Err(fidl::Error::InvalidNumBytesInEnvelope);
11947 }
11948 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
11949 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
11950 }
11951 }
11952
11953 next_offset += envelope_size;
11954 _next_ordinal_to_read += 1;
11955 if next_offset >= end_offset {
11956 return Ok(());
11957 }
11958
11959 while _next_ordinal_to_read < 2 {
11961 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11962 _next_ordinal_to_read += 1;
11963 next_offset += envelope_size;
11964 }
11965
11966 let next_out_of_line = decoder.next_out_of_line();
11967 let handles_before = decoder.remaining_handles();
11968 if let Some((inlined, num_bytes, num_handles)) =
11969 fidl::encoding::decode_envelope_header(decoder, next_offset)?
11970 {
11971 let member_inline_size =
11972 <fidl::encoding::Vector<u32, 64> as fidl::encoding::TypeMarker>::inline_size(
11973 decoder.context,
11974 );
11975 if inlined != (member_inline_size <= 4) {
11976 return Err(fidl::Error::InvalidInlineBitInEnvelope);
11977 }
11978 let inner_offset;
11979 let mut inner_depth = depth.clone();
11980 if inlined {
11981 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
11982 inner_offset = next_offset;
11983 } else {
11984 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
11985 inner_depth.increment()?;
11986 }
11987 let val_ref = self
11988 .decoded_frame_rates
11989 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<u32, 64>, D));
11990 fidl::decode!(fidl::encoding::Vector<u32, 64>, D, val_ref, decoder, inner_offset, inner_depth)?;
11991 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
11992 {
11993 return Err(fidl::Error::InvalidNumBytesInEnvelope);
11994 }
11995 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
11996 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
11997 }
11998 }
11999
12000 next_offset += envelope_size;
12001 _next_ordinal_to_read += 1;
12002 if next_offset >= end_offset {
12003 return Ok(());
12004 }
12005
12006 while _next_ordinal_to_read < 3 {
12008 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12009 _next_ordinal_to_read += 1;
12010 next_offset += envelope_size;
12011 }
12012
12013 let next_out_of_line = decoder.next_out_of_line();
12014 let handles_before = decoder.remaining_handles();
12015 if let Some((inlined, num_bytes, num_handles)) =
12016 fidl::encoding::decode_envelope_header(decoder, next_offset)?
12017 {
12018 let member_inline_size =
12019 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
12020 if inlined != (member_inline_size <= 4) {
12021 return Err(fidl::Error::InvalidInlineBitInEnvelope);
12022 }
12023 let inner_offset;
12024 let mut inner_depth = depth.clone();
12025 if inlined {
12026 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
12027 inner_offset = next_offset;
12028 } else {
12029 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
12030 inner_depth.increment()?;
12031 }
12032 let val_ref =
12033 self.min_encoding_bitrate.get_or_insert_with(|| fidl::new_empty!(u32, D));
12034 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
12035 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
12036 {
12037 return Err(fidl::Error::InvalidNumBytesInEnvelope);
12038 }
12039 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
12040 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
12041 }
12042 }
12043
12044 next_offset += envelope_size;
12045 _next_ordinal_to_read += 1;
12046 if next_offset >= end_offset {
12047 return Ok(());
12048 }
12049
12050 while _next_ordinal_to_read < 4 {
12052 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12053 _next_ordinal_to_read += 1;
12054 next_offset += envelope_size;
12055 }
12056
12057 let next_out_of_line = decoder.next_out_of_line();
12058 let handles_before = decoder.remaining_handles();
12059 if let Some((inlined, num_bytes, num_handles)) =
12060 fidl::encoding::decode_envelope_header(decoder, next_offset)?
12061 {
12062 let member_inline_size =
12063 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
12064 if inlined != (member_inline_size <= 4) {
12065 return Err(fidl::Error::InvalidInlineBitInEnvelope);
12066 }
12067 let inner_offset;
12068 let mut inner_depth = depth.clone();
12069 if inlined {
12070 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
12071 inner_offset = next_offset;
12072 } else {
12073 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
12074 inner_depth.increment()?;
12075 }
12076 let val_ref =
12077 self.max_encoding_bitrate.get_or_insert_with(|| fidl::new_empty!(u32, D));
12078 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
12079 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
12080 {
12081 return Err(fidl::Error::InvalidNumBytesInEnvelope);
12082 }
12083 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
12084 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
12085 }
12086 }
12087
12088 next_offset += envelope_size;
12089 _next_ordinal_to_read += 1;
12090 if next_offset >= end_offset {
12091 return Ok(());
12092 }
12093
12094 while _next_ordinal_to_read < 5 {
12096 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12097 _next_ordinal_to_read += 1;
12098 next_offset += envelope_size;
12099 }
12100
12101 let next_out_of_line = decoder.next_out_of_line();
12102 let handles_before = decoder.remaining_handles();
12103 if let Some((inlined, num_bytes, num_handles)) =
12104 fidl::encoding::decode_envelope_header(decoder, next_offset)?
12105 {
12106 let member_inline_size = <fidl::encoding::Vector<EncodingType, 64> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
12107 if inlined != (member_inline_size <= 4) {
12108 return Err(fidl::Error::InvalidInlineBitInEnvelope);
12109 }
12110 let inner_offset;
12111 let mut inner_depth = depth.clone();
12112 if inlined {
12113 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
12114 inner_offset = next_offset;
12115 } else {
12116 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
12117 inner_depth.increment()?;
12118 }
12119 let val_ref = self.encoding_types.get_or_insert_with(
12120 || fidl::new_empty!(fidl::encoding::Vector<EncodingType, 64>, D),
12121 );
12122 fidl::decode!(fidl::encoding::Vector<EncodingType, 64>, D, val_ref, decoder, inner_offset, inner_depth)?;
12123 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
12124 {
12125 return Err(fidl::Error::InvalidNumBytesInEnvelope);
12126 }
12127 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
12128 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
12129 }
12130 }
12131
12132 next_offset += envelope_size;
12133
12134 while next_offset < end_offset {
12136 _next_ordinal_to_read += 1;
12137 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12138 next_offset += envelope_size;
12139 }
12140
12141 Ok(())
12142 }
12143 }
12144
12145 impl SupportedFormats {
12146 #[inline(always)]
12147 fn max_ordinal_present(&self) -> u64 {
12148 if let Some(_) = self.pcm_supported_formats {
12149 return 1;
12150 }
12151 0
12152 }
12153 }
12154
12155 impl fidl::encoding::ValueTypeMarker for SupportedFormats {
12156 type Borrowed<'a> = &'a Self;
12157 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
12158 value
12159 }
12160 }
12161
12162 unsafe impl fidl::encoding::TypeMarker for SupportedFormats {
12163 type Owned = Self;
12164
12165 #[inline(always)]
12166 fn inline_align(_context: fidl::encoding::Context) -> usize {
12167 8
12168 }
12169
12170 #[inline(always)]
12171 fn inline_size(_context: fidl::encoding::Context) -> usize {
12172 16
12173 }
12174 }
12175
12176 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<SupportedFormats, D>
12177 for &SupportedFormats
12178 {
12179 unsafe fn encode(
12180 self,
12181 encoder: &mut fidl::encoding::Encoder<'_, D>,
12182 offset: usize,
12183 mut depth: fidl::encoding::Depth,
12184 ) -> fidl::Result<()> {
12185 encoder.debug_check_bounds::<SupportedFormats>(offset);
12186 let max_ordinal: u64 = self.max_ordinal_present();
12188 encoder.write_num(max_ordinal, offset);
12189 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
12190 if max_ordinal == 0 {
12192 return Ok(());
12193 }
12194 depth.increment()?;
12195 let envelope_size = 8;
12196 let bytes_len = max_ordinal as usize * envelope_size;
12197 #[allow(unused_variables)]
12198 let offset = encoder.out_of_line_offset(bytes_len);
12199 let mut _prev_end_offset: usize = 0;
12200 if 1 > max_ordinal {
12201 return Ok(());
12202 }
12203
12204 let cur_offset: usize = (1 - 1) * envelope_size;
12207
12208 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12210
12211 fidl::encoding::encode_in_envelope_optional::<PcmSupportedFormats, D>(
12216 self.pcm_supported_formats
12217 .as_ref()
12218 .map(<PcmSupportedFormats as fidl::encoding::ValueTypeMarker>::borrow),
12219 encoder,
12220 offset + cur_offset,
12221 depth,
12222 )?;
12223
12224 _prev_end_offset = cur_offset + envelope_size;
12225
12226 Ok(())
12227 }
12228 }
12229
12230 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for SupportedFormats {
12231 #[inline(always)]
12232 fn new_empty() -> Self {
12233 Self::default()
12234 }
12235
12236 unsafe fn decode(
12237 &mut self,
12238 decoder: &mut fidl::encoding::Decoder<'_, D>,
12239 offset: usize,
12240 mut depth: fidl::encoding::Depth,
12241 ) -> fidl::Result<()> {
12242 decoder.debug_check_bounds::<Self>(offset);
12243 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
12244 None => return Err(fidl::Error::NotNullable),
12245 Some(len) => len,
12246 };
12247 if len == 0 {
12249 return Ok(());
12250 };
12251 depth.increment()?;
12252 let envelope_size = 8;
12253 let bytes_len = len * envelope_size;
12254 let offset = decoder.out_of_line_offset(bytes_len)?;
12255 let mut _next_ordinal_to_read = 0;
12257 let mut next_offset = offset;
12258 let end_offset = offset + bytes_len;
12259 _next_ordinal_to_read += 1;
12260 if next_offset >= end_offset {
12261 return Ok(());
12262 }
12263
12264 while _next_ordinal_to_read < 1 {
12266 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12267 _next_ordinal_to_read += 1;
12268 next_offset += envelope_size;
12269 }
12270
12271 let next_out_of_line = decoder.next_out_of_line();
12272 let handles_before = decoder.remaining_handles();
12273 if let Some((inlined, num_bytes, num_handles)) =
12274 fidl::encoding::decode_envelope_header(decoder, next_offset)?
12275 {
12276 let member_inline_size =
12277 <PcmSupportedFormats as fidl::encoding::TypeMarker>::inline_size(
12278 decoder.context,
12279 );
12280 if inlined != (member_inline_size <= 4) {
12281 return Err(fidl::Error::InvalidInlineBitInEnvelope);
12282 }
12283 let inner_offset;
12284 let mut inner_depth = depth.clone();
12285 if inlined {
12286 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
12287 inner_offset = next_offset;
12288 } else {
12289 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
12290 inner_depth.increment()?;
12291 }
12292 let val_ref = self
12293 .pcm_supported_formats
12294 .get_or_insert_with(|| fidl::new_empty!(PcmSupportedFormats, D));
12295 fidl::decode!(PcmSupportedFormats, D, val_ref, decoder, inner_offset, inner_depth)?;
12296 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
12297 {
12298 return Err(fidl::Error::InvalidNumBytesInEnvelope);
12299 }
12300 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
12301 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
12302 }
12303 }
12304
12305 next_offset += envelope_size;
12306
12307 while next_offset < end_offset {
12309 _next_ordinal_to_read += 1;
12310 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12311 next_offset += envelope_size;
12312 }
12313
12314 Ok(())
12315 }
12316 }
12317
12318 impl fidl::encoding::ValueTypeMarker for DaiFrameFormat {
12319 type Borrowed<'a> = &'a Self;
12320 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
12321 value
12322 }
12323 }
12324
12325 unsafe impl fidl::encoding::TypeMarker for DaiFrameFormat {
12326 type Owned = Self;
12327
12328 #[inline(always)]
12329 fn inline_align(_context: fidl::encoding::Context) -> usize {
12330 8
12331 }
12332
12333 #[inline(always)]
12334 fn inline_size(_context: fidl::encoding::Context) -> usize {
12335 16
12336 }
12337 }
12338
12339 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<DaiFrameFormat, D>
12340 for &DaiFrameFormat
12341 {
12342 #[inline]
12343 unsafe fn encode(
12344 self,
12345 encoder: &mut fidl::encoding::Encoder<'_, D>,
12346 offset: usize,
12347 _depth: fidl::encoding::Depth,
12348 ) -> fidl::Result<()> {
12349 encoder.debug_check_bounds::<DaiFrameFormat>(offset);
12350 encoder.write_num::<u64>(self.ordinal(), offset);
12351 match self {
12352 DaiFrameFormat::FrameFormatStandard(ref val) => {
12353 fidl::encoding::encode_in_envelope::<DaiFrameFormatStandard, D>(
12354 <DaiFrameFormatStandard as fidl::encoding::ValueTypeMarker>::borrow(val),
12355 encoder,
12356 offset + 8,
12357 _depth,
12358 )
12359 }
12360 DaiFrameFormat::FrameFormatCustom(ref val) => {
12361 fidl::encoding::encode_in_envelope::<DaiFrameFormatCustom, D>(
12362 <DaiFrameFormatCustom as fidl::encoding::ValueTypeMarker>::borrow(val),
12363 encoder,
12364 offset + 8,
12365 _depth,
12366 )
12367 }
12368 }
12369 }
12370 }
12371
12372 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for DaiFrameFormat {
12373 #[inline(always)]
12374 fn new_empty() -> Self {
12375 Self::FrameFormatStandard(fidl::new_empty!(DaiFrameFormatStandard, D))
12376 }
12377
12378 #[inline]
12379 unsafe fn decode(
12380 &mut self,
12381 decoder: &mut fidl::encoding::Decoder<'_, D>,
12382 offset: usize,
12383 mut depth: fidl::encoding::Depth,
12384 ) -> fidl::Result<()> {
12385 decoder.debug_check_bounds::<Self>(offset);
12386 #[allow(unused_variables)]
12387 let next_out_of_line = decoder.next_out_of_line();
12388 let handles_before = decoder.remaining_handles();
12389 let (ordinal, inlined, num_bytes, num_handles) =
12390 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
12391
12392 let member_inline_size = match ordinal {
12393 1 => <DaiFrameFormatStandard as fidl::encoding::TypeMarker>::inline_size(
12394 decoder.context,
12395 ),
12396 2 => <DaiFrameFormatCustom as fidl::encoding::TypeMarker>::inline_size(
12397 decoder.context,
12398 ),
12399 _ => return Err(fidl::Error::UnknownUnionTag),
12400 };
12401
12402 if inlined != (member_inline_size <= 4) {
12403 return Err(fidl::Error::InvalidInlineBitInEnvelope);
12404 }
12405 let _inner_offset;
12406 if inlined {
12407 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
12408 _inner_offset = offset + 8;
12409 } else {
12410 depth.increment()?;
12411 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
12412 }
12413 match ordinal {
12414 1 => {
12415 #[allow(irrefutable_let_patterns)]
12416 if let DaiFrameFormat::FrameFormatStandard(_) = self {
12417 } else {
12419 *self = DaiFrameFormat::FrameFormatStandard(fidl::new_empty!(
12421 DaiFrameFormatStandard,
12422 D
12423 ));
12424 }
12425 #[allow(irrefutable_let_patterns)]
12426 if let DaiFrameFormat::FrameFormatStandard(ref mut val) = self {
12427 fidl::decode!(
12428 DaiFrameFormatStandard,
12429 D,
12430 val,
12431 decoder,
12432 _inner_offset,
12433 depth
12434 )?;
12435 } else {
12436 unreachable!()
12437 }
12438 }
12439 2 => {
12440 #[allow(irrefutable_let_patterns)]
12441 if let DaiFrameFormat::FrameFormatCustom(_) = self {
12442 } else {
12444 *self = DaiFrameFormat::FrameFormatCustom(fidl::new_empty!(
12446 DaiFrameFormatCustom,
12447 D
12448 ));
12449 }
12450 #[allow(irrefutable_let_patterns)]
12451 if let DaiFrameFormat::FrameFormatCustom(ref mut val) = self {
12452 fidl::decode!(DaiFrameFormatCustom, D, val, decoder, _inner_offset, depth)?;
12453 } else {
12454 unreachable!()
12455 }
12456 }
12457 ordinal => panic!("unexpected ordinal {:?}", ordinal),
12458 }
12459 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
12460 return Err(fidl::Error::InvalidNumBytesInEnvelope);
12461 }
12462 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
12463 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
12464 }
12465 Ok(())
12466 }
12467 }
12468
12469 impl fidl::encoding::ValueTypeMarker for Format2 {
12470 type Borrowed<'a> = &'a Self;
12471 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
12472 value
12473 }
12474 }
12475
12476 unsafe impl fidl::encoding::TypeMarker for Format2 {
12477 type Owned = Self;
12478
12479 #[inline(always)]
12480 fn inline_align(_context: fidl::encoding::Context) -> usize {
12481 8
12482 }
12483
12484 #[inline(always)]
12485 fn inline_size(_context: fidl::encoding::Context) -> usize {
12486 16
12487 }
12488 }
12489
12490 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Format2, D> for &Format2 {
12491 #[inline]
12492 unsafe fn encode(
12493 self,
12494 encoder: &mut fidl::encoding::Encoder<'_, D>,
12495 offset: usize,
12496 _depth: fidl::encoding::Depth,
12497 ) -> fidl::Result<()> {
12498 encoder.debug_check_bounds::<Format2>(offset);
12499 encoder.write_num::<u64>(self.ordinal(), offset);
12500 match self {
12501 Format2::PcmFormat(ref val) => fidl::encoding::encode_in_envelope::<PcmFormat, D>(
12502 <PcmFormat as fidl::encoding::ValueTypeMarker>::borrow(val),
12503 encoder,
12504 offset + 8,
12505 _depth,
12506 ),
12507 Format2::Encoding(ref val) => fidl::encoding::encode_in_envelope::<Encoding, D>(
12508 <Encoding as fidl::encoding::ValueTypeMarker>::borrow(val),
12509 encoder,
12510 offset + 8,
12511 _depth,
12512 ),
12513 Format2::__SourceBreaking { .. } => Err(fidl::Error::UnknownUnionTag),
12514 }
12515 }
12516 }
12517
12518 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Format2 {
12519 #[inline(always)]
12520 fn new_empty() -> Self {
12521 Self::__SourceBreaking { unknown_ordinal: 0 }
12522 }
12523
12524 #[inline]
12525 unsafe fn decode(
12526 &mut self,
12527 decoder: &mut fidl::encoding::Decoder<'_, D>,
12528 offset: usize,
12529 mut depth: fidl::encoding::Depth,
12530 ) -> fidl::Result<()> {
12531 decoder.debug_check_bounds::<Self>(offset);
12532 #[allow(unused_variables)]
12533 let next_out_of_line = decoder.next_out_of_line();
12534 let handles_before = decoder.remaining_handles();
12535 let (ordinal, inlined, num_bytes, num_handles) =
12536 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
12537
12538 let member_inline_size = match ordinal {
12539 1 => <PcmFormat as fidl::encoding::TypeMarker>::inline_size(decoder.context),
12540 2 => <Encoding as fidl::encoding::TypeMarker>::inline_size(decoder.context),
12541 0 => return Err(fidl::Error::UnknownUnionTag),
12542 _ => num_bytes as usize,
12543 };
12544
12545 if inlined != (member_inline_size <= 4) {
12546 return Err(fidl::Error::InvalidInlineBitInEnvelope);
12547 }
12548 let _inner_offset;
12549 if inlined {
12550 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
12551 _inner_offset = offset + 8;
12552 } else {
12553 depth.increment()?;
12554 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
12555 }
12556 match ordinal {
12557 1 => {
12558 #[allow(irrefutable_let_patterns)]
12559 if let Format2::PcmFormat(_) = self {
12560 } else {
12562 *self = Format2::PcmFormat(fidl::new_empty!(PcmFormat, D));
12564 }
12565 #[allow(irrefutable_let_patterns)]
12566 if let Format2::PcmFormat(ref mut val) = self {
12567 fidl::decode!(PcmFormat, D, val, decoder, _inner_offset, depth)?;
12568 } else {
12569 unreachable!()
12570 }
12571 }
12572 2 => {
12573 #[allow(irrefutable_let_patterns)]
12574 if let Format2::Encoding(_) = self {
12575 } else {
12577 *self = Format2::Encoding(fidl::new_empty!(Encoding, D));
12579 }
12580 #[allow(irrefutable_let_patterns)]
12581 if let Format2::Encoding(ref mut val) = self {
12582 fidl::decode!(Encoding, D, val, decoder, _inner_offset, depth)?;
12583 } else {
12584 unreachable!()
12585 }
12586 }
12587 #[allow(deprecated)]
12588 ordinal => {
12589 for _ in 0..num_handles {
12590 decoder.drop_next_handle()?;
12591 }
12592 *self = Format2::__SourceBreaking { unknown_ordinal: ordinal };
12593 }
12594 }
12595 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
12596 return Err(fidl::Error::InvalidNumBytesInEnvelope);
12597 }
12598 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
12599 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
12600 }
12601 Ok(())
12602 }
12603 }
12604
12605 impl fidl::encoding::ValueTypeMarker for SupportedFormats2 {
12606 type Borrowed<'a> = &'a Self;
12607 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
12608 value
12609 }
12610 }
12611
12612 unsafe impl fidl::encoding::TypeMarker for SupportedFormats2 {
12613 type Owned = Self;
12614
12615 #[inline(always)]
12616 fn inline_align(_context: fidl::encoding::Context) -> usize {
12617 8
12618 }
12619
12620 #[inline(always)]
12621 fn inline_size(_context: fidl::encoding::Context) -> usize {
12622 16
12623 }
12624 }
12625
12626 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<SupportedFormats2, D>
12627 for &SupportedFormats2
12628 {
12629 #[inline]
12630 unsafe fn encode(
12631 self,
12632 encoder: &mut fidl::encoding::Encoder<'_, D>,
12633 offset: usize,
12634 _depth: fidl::encoding::Depth,
12635 ) -> fidl::Result<()> {
12636 encoder.debug_check_bounds::<SupportedFormats2>(offset);
12637 encoder.write_num::<u64>(self.ordinal(), offset);
12638 match self {
12639 SupportedFormats2::PcmSupportedFormats(ref val) => {
12640 fidl::encoding::encode_in_envelope::<PcmSupportedFormats, D>(
12641 <PcmSupportedFormats as fidl::encoding::ValueTypeMarker>::borrow(val),
12642 encoder,
12643 offset + 8,
12644 _depth,
12645 )
12646 }
12647 SupportedFormats2::SupportedEncodings(ref val) => {
12648 fidl::encoding::encode_in_envelope::<SupportedEncodings, D>(
12649 <SupportedEncodings as fidl::encoding::ValueTypeMarker>::borrow(val),
12650 encoder,
12651 offset + 8,
12652 _depth,
12653 )
12654 }
12655 SupportedFormats2::__SourceBreaking { .. } => Err(fidl::Error::UnknownUnionTag),
12656 }
12657 }
12658 }
12659
12660 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for SupportedFormats2 {
12661 #[inline(always)]
12662 fn new_empty() -> Self {
12663 Self::__SourceBreaking { unknown_ordinal: 0 }
12664 }
12665
12666 #[inline]
12667 unsafe fn decode(
12668 &mut self,
12669 decoder: &mut fidl::encoding::Decoder<'_, D>,
12670 offset: usize,
12671 mut depth: fidl::encoding::Depth,
12672 ) -> fidl::Result<()> {
12673 decoder.debug_check_bounds::<Self>(offset);
12674 #[allow(unused_variables)]
12675 let next_out_of_line = decoder.next_out_of_line();
12676 let handles_before = decoder.remaining_handles();
12677 let (ordinal, inlined, num_bytes, num_handles) =
12678 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
12679
12680 let member_inline_size = match ordinal {
12681 1 => <PcmSupportedFormats as fidl::encoding::TypeMarker>::inline_size(
12682 decoder.context,
12683 ),
12684 2 => {
12685 <SupportedEncodings as fidl::encoding::TypeMarker>::inline_size(decoder.context)
12686 }
12687 0 => return Err(fidl::Error::UnknownUnionTag),
12688 _ => num_bytes as usize,
12689 };
12690
12691 if inlined != (member_inline_size <= 4) {
12692 return Err(fidl::Error::InvalidInlineBitInEnvelope);
12693 }
12694 let _inner_offset;
12695 if inlined {
12696 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
12697 _inner_offset = offset + 8;
12698 } else {
12699 depth.increment()?;
12700 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
12701 }
12702 match ordinal {
12703 1 => {
12704 #[allow(irrefutable_let_patterns)]
12705 if let SupportedFormats2::PcmSupportedFormats(_) = self {
12706 } else {
12708 *self = SupportedFormats2::PcmSupportedFormats(fidl::new_empty!(
12710 PcmSupportedFormats,
12711 D
12712 ));
12713 }
12714 #[allow(irrefutable_let_patterns)]
12715 if let SupportedFormats2::PcmSupportedFormats(ref mut val) = self {
12716 fidl::decode!(PcmSupportedFormats, D, val, decoder, _inner_offset, depth)?;
12717 } else {
12718 unreachable!()
12719 }
12720 }
12721 2 => {
12722 #[allow(irrefutable_let_patterns)]
12723 if let SupportedFormats2::SupportedEncodings(_) = self {
12724 } else {
12726 *self = SupportedFormats2::SupportedEncodings(fidl::new_empty!(
12728 SupportedEncodings,
12729 D
12730 ));
12731 }
12732 #[allow(irrefutable_let_patterns)]
12733 if let SupportedFormats2::SupportedEncodings(ref mut val) = self {
12734 fidl::decode!(SupportedEncodings, D, val, decoder, _inner_offset, depth)?;
12735 } else {
12736 unreachable!()
12737 }
12738 }
12739 #[allow(deprecated)]
12740 ordinal => {
12741 for _ in 0..num_handles {
12742 decoder.drop_next_handle()?;
12743 }
12744 *self = SupportedFormats2::__SourceBreaking { unknown_ordinal: ordinal };
12745 }
12746 }
12747 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
12748 return Err(fidl::Error::InvalidNumBytesInEnvelope);
12749 }
12750 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
12751 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
12752 }
12753 Ok(())
12754 }
12755 }
12756}