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