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