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