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