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 const CLOCK_DOMAIN_EXTERNAL: u32 = 4294967295;
18
19pub const CLOCK_DOMAIN_MONOTONIC: u32 = 0;
20
21pub const MAX_COUNT_CHANNELS_IN_RING_BUFFER: u32 = 64;
22
23pub const MAX_COUNT_CHANNEL_SETS: u32 = 64;
24
25pub const MAX_COUNT_DAI_FORMATS: u32 = MAX_COUNT_FORMATS as u32;
26
27pub const MAX_COUNT_DAI_SUPPORTED_BITS_PER_SAMPLE: u32 = 8;
28
29pub const MAX_COUNT_DAI_SUPPORTED_BITS_PER_SLOT: u32 = 8;
30
31pub const MAX_COUNT_DAI_SUPPORTED_FRAME_FORMATS: u32 = 64;
32
33pub const MAX_COUNT_DAI_SUPPORTED_NUMBER_OF_CHANNELS: u32 = 64;
34
35pub const MAX_COUNT_DAI_SUPPORTED_RATES: u32 = 64;
36
37pub const MAX_COUNT_DAI_SUPPORTED_SAMPLE_FORMATS: u32 = 4;
38
39pub const MAX_COUNT_FORMATS: u32 = 64;
40
41pub const MAX_COUNT_SUPPORTED_BYTES_PER_SAMPLE: u32 = 8;
42
43pub const MAX_COUNT_SUPPORTED_NUMBER_OF_CHANNELS: u32 = 64;
44
45pub const MAX_COUNT_SUPPORTED_RATES: u32 = 64;
46
47pub const MAX_COUNT_SUPPORTED_SAMPLE_FORMATS: u32 = 3;
48
49pub const MAX_COUNT_SUPPORTED_VALID_BITS_PER_SAMPLE: u32 = 8;
50
51pub const MAX_DAI_UI_STRING_SIZE: u32 = 256;
52
53pub const MAX_UI_STRING_SIZE: u32 = 256;
54
55pub const UNIQUE_ID_SIZE: u32 = 16;
56
57#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
59#[repr(u8)]
60pub enum DaiFrameFormatStandard {
61 None = 1,
63 I2S = 2,
67 StereoLeft = 3,
71 StereoRight = 4,
74 Tdm1 = 5,
78 Tdm2 = 6,
82 Tdm3 = 7,
86}
87
88impl DaiFrameFormatStandard {
89 #[inline]
90 pub fn from_primitive(prim: u8) -> Option<Self> {
91 match prim {
92 1 => Some(Self::None),
93 2 => Some(Self::I2S),
94 3 => Some(Self::StereoLeft),
95 4 => Some(Self::StereoRight),
96 5 => Some(Self::Tdm1),
97 6 => Some(Self::Tdm2),
98 7 => Some(Self::Tdm3),
99 _ => None,
100 }
101 }
102
103 #[inline]
104 pub const fn into_primitive(self) -> u8 {
105 self as u8
106 }
107}
108
109#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
110#[repr(u8)]
111pub enum DaiSampleFormat {
112 Pdm = 1,
114 PcmSigned = 2,
116 PcmUnsigned = 3,
118 PcmFloat = 4,
120}
121
122impl DaiSampleFormat {
123 #[inline]
124 pub fn from_primitive(prim: u8) -> Option<Self> {
125 match prim {
126 1 => Some(Self::Pdm),
127 2 => Some(Self::PcmSigned),
128 3 => Some(Self::PcmUnsigned),
129 4 => Some(Self::PcmFloat),
130 _ => None,
131 }
132 }
133
134 #[inline]
135 pub const fn into_primitive(self) -> u8 {
136 self as u8
137 }
138}
139
140#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
141pub enum DeviceType {
142 StreamConfig,
144 Dai,
146 Codec,
148 Composite,
150 #[doc(hidden)]
151 __SourceBreaking { unknown_ordinal: u32 },
152}
153
154#[macro_export]
156macro_rules! DeviceTypeUnknown {
157 () => {
158 _
159 };
160}
161
162impl DeviceType {
163 #[inline]
164 pub fn from_primitive(prim: u32) -> Option<Self> {
165 match prim {
166 1 => Some(Self::StreamConfig),
167 2 => Some(Self::Dai),
168 3 => Some(Self::Codec),
169 4 => Some(Self::Composite),
170 _ => None,
171 }
172 }
173
174 #[inline]
175 pub fn from_primitive_allow_unknown(prim: u32) -> Self {
176 match prim {
177 1 => Self::StreamConfig,
178 2 => Self::Dai,
179 3 => Self::Codec,
180 4 => Self::Composite,
181 unknown_ordinal => Self::__SourceBreaking { unknown_ordinal },
182 }
183 }
184
185 #[inline]
186 pub fn unknown() -> Self {
187 Self::__SourceBreaking { unknown_ordinal: 0xffffffff }
188 }
189
190 #[inline]
191 pub const fn into_primitive(self) -> u32 {
192 match self {
193 Self::StreamConfig => 1,
194 Self::Dai => 2,
195 Self::Codec => 3,
196 Self::Composite => 4,
197 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
198 }
199 }
200
201 #[inline]
202 pub fn is_unknown(&self) -> bool {
203 match self {
204 Self::__SourceBreaking { unknown_ordinal: _ } => true,
205 _ => false,
206 }
207 }
208}
209
210#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
211pub enum DriverError {
212 InternalError,
214 NotSupported,
216 InvalidArgs,
218 WrongType,
220 ShouldWait,
223 FatalError,
226 #[doc(hidden)]
227 __SourceBreaking { unknown_ordinal: u32 },
228}
229
230#[macro_export]
232macro_rules! DriverErrorUnknown {
233 () => {
234 _
235 };
236}
237
238impl DriverError {
239 #[inline]
240 pub fn from_primitive(prim: u32) -> Option<Self> {
241 match prim {
242 1 => Some(Self::InternalError),
243 2 => Some(Self::NotSupported),
244 3 => Some(Self::InvalidArgs),
245 4 => Some(Self::WrongType),
246 5 => Some(Self::ShouldWait),
247 6 => Some(Self::FatalError),
248 _ => None,
249 }
250 }
251
252 #[inline]
253 pub fn from_primitive_allow_unknown(prim: u32) -> Self {
254 match prim {
255 1 => Self::InternalError,
256 2 => Self::NotSupported,
257 3 => Self::InvalidArgs,
258 4 => Self::WrongType,
259 5 => Self::ShouldWait,
260 6 => Self::FatalError,
261 unknown_ordinal => Self::__SourceBreaking { unknown_ordinal },
262 }
263 }
264
265 #[inline]
266 pub fn unknown() -> Self {
267 Self::__SourceBreaking { unknown_ordinal: 0xffffffff }
268 }
269
270 #[inline]
271 pub const fn into_primitive(self) -> u32 {
272 match self {
273 Self::InternalError => 1,
274 Self::NotSupported => 2,
275 Self::InvalidArgs => 3,
276 Self::WrongType => 4,
277 Self::ShouldWait => 5,
278 Self::FatalError => 6,
279 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
280 }
281 }
282
283 #[inline]
284 pub fn is_unknown(&self) -> bool {
285 match self {
286 Self::__SourceBreaking { unknown_ordinal: _ } => true,
287 _ => false,
288 }
289 }
290}
291
292#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
293#[repr(u32)]
294pub enum GetVmoError {
295 InvalidArgs = 1,
297 InternalError = 2,
299}
300
301impl GetVmoError {
302 #[inline]
303 pub fn from_primitive(prim: u32) -> Option<Self> {
304 match prim {
305 1 => Some(Self::InvalidArgs),
306 2 => Some(Self::InternalError),
307 _ => None,
308 }
309 }
310
311 #[inline]
312 pub const fn into_primitive(self) -> u32 {
313 self as u32
314 }
315}
316
317#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
318#[repr(u32)]
319pub enum PlugDetectCapabilities {
320 Hardwired = 0,
322 CanAsyncNotify = 1,
324}
325
326impl PlugDetectCapabilities {
327 #[inline]
328 pub fn from_primitive(prim: u32) -> Option<Self> {
329 match prim {
330 0 => Some(Self::Hardwired),
331 1 => Some(Self::CanAsyncNotify),
332 _ => None,
333 }
334 }
335
336 #[inline]
337 pub const fn into_primitive(self) -> u32 {
338 self as u32
339 }
340}
341
342#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
343#[repr(u8)]
344pub enum SampleFormat {
345 PcmSigned = 1,
347 PcmUnsigned = 2,
349 PcmFloat = 3,
351}
352
353impl SampleFormat {
354 #[inline]
355 pub fn from_primitive(prim: u8) -> Option<Self> {
356 match prim {
357 1 => Some(Self::PcmSigned),
358 2 => Some(Self::PcmUnsigned),
359 3 => Some(Self::PcmFloat),
360 _ => None,
361 }
362 }
363
364 #[inline]
365 pub const fn into_primitive(self) -> u8 {
366 self as u8
367 }
368}
369
370#[derive(Clone, Debug, PartialEq)]
371pub struct CodecGetPropertiesResponse {
372 pub properties: CodecProperties,
373}
374
375impl fidl::Persistable for CodecGetPropertiesResponse {}
376
377#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
378pub struct CodecSetDaiFormatRequest {
379 pub format: DaiFormat,
380}
381
382impl fidl::Persistable for CodecSetDaiFormatRequest {}
383
384#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
385#[repr(C)]
386pub struct CodecStartResponse {
387 pub start_time: i64,
388}
389
390impl fidl::Persistable for CodecStartResponse {}
391
392#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
393#[repr(C)]
394pub struct CodecStopResponse {
395 pub stop_time: i64,
396}
397
398impl fidl::Persistable for CodecStopResponse {}
399
400#[derive(Clone, Debug, PartialEq)]
401pub struct CodecWatchPlugStateResponse {
402 pub plug_state: PlugState,
403}
404
405impl fidl::Persistable for CodecWatchPlugStateResponse {}
406
407#[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
408pub struct CodecGetDaiFormatsResponse {
409 pub formats: Vec<DaiSupportedFormats>,
410}
411
412impl fidl::Persistable for CodecGetDaiFormatsResponse {}
413
414#[derive(Clone, Debug, PartialEq)]
415pub struct CodecSetDaiFormatResponse {
416 pub state: CodecFormatInfo,
417}
418
419impl fidl::Persistable for CodecSetDaiFormatResponse {}
420
421#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
422#[repr(C)]
423pub struct CompositeGetDaiFormatsRequest {
424 pub processing_element_id: u64,
425}
426
427impl fidl::Persistable for CompositeGetDaiFormatsRequest {}
428
429#[derive(Clone, Debug, PartialEq)]
430pub struct CompositeGetPropertiesResponse {
431 pub properties: CompositeProperties,
432}
433
434impl fidl::Persistable for CompositeGetPropertiesResponse {}
435
436#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
437#[repr(C)]
438pub struct CompositeGetRingBufferFormatsRequest {
439 pub processing_element_id: u64,
440}
441
442impl fidl::Persistable for CompositeGetRingBufferFormatsRequest {}
443
444#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
445pub struct CompositeSetDaiFormatRequest {
446 pub processing_element_id: u64,
447 pub format: DaiFormat,
448}
449
450impl fidl::Persistable for CompositeSetDaiFormatRequest {}
451
452#[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
453pub struct CompositeGetDaiFormatsResponse {
454 pub dai_formats: Vec<DaiSupportedFormats>,
455}
456
457impl fidl::Persistable for CompositeGetDaiFormatsResponse {}
458
459#[derive(Clone, Debug, PartialEq)]
460pub struct CompositeGetRingBufferFormatsResponse {
461 pub ring_buffer_formats: Vec<SupportedFormats>,
462}
463
464impl fidl::Persistable for CompositeGetRingBufferFormatsResponse {}
465
466#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
470pub struct DaiFormat {
471 pub number_of_channels: u32,
474 pub channels_to_use_bitmask: u64,
478 pub sample_format: DaiSampleFormat,
480 pub frame_format: DaiFrameFormat,
482 pub frame_rate: u32,
484 pub bits_per_slot: u8,
486 pub bits_per_sample: u8,
489}
490
491impl fidl::Persistable for DaiFormat {}
492
493#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
495pub struct DaiFrameFormatCustom {
496 pub left_justified: bool,
498 pub sclk_on_raising: bool,
503 pub frame_sync_sclks_offset: i8,
506 pub frame_sync_size: u8,
509}
510
511impl fidl::Persistable for DaiFrameFormatCustom {}
512
513#[derive(Clone, Debug, PartialEq)]
514pub struct DaiGetPropertiesResponse {
515 pub properties: DaiProperties,
516}
517
518impl fidl::Persistable for DaiGetPropertiesResponse {}
519
520#[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
528pub struct DaiSupportedFormats {
529 pub number_of_channels: Vec<u32>,
531 pub sample_formats: Vec<DaiSampleFormat>,
533 pub frame_formats: Vec<DaiFrameFormat>,
535 pub frame_rates: Vec<u32>,
537 pub bits_per_slot: Vec<u8>,
539 pub bits_per_sample: Vec<u8>,
541}
542
543impl fidl::Persistable for DaiSupportedFormats {}
544
545#[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
546pub struct DaiGetDaiFormatsResponse {
547 pub dai_formats: Vec<DaiSupportedFormats>,
548}
549
550impl fidl::Persistable for DaiGetDaiFormatsResponse {}
551
552#[derive(Clone, Debug, PartialEq)]
553pub struct DaiGetRingBufferFormatsResponse {
554 pub ring_buffer_formats: Vec<SupportedFormats>,
555}
556
557impl fidl::Persistable for DaiGetRingBufferFormatsResponse {}
558
559#[derive(Clone, Debug, PartialEq)]
560pub struct HealthGetHealthStateResponse {
561 pub state: HealthState,
562}
563
564impl fidl::Persistable for HealthGetHealthStateResponse {}
565
566#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
571pub struct PcmFormat {
572 pub number_of_channels: u8,
574 pub sample_format: SampleFormat,
576 pub bytes_per_sample: u8,
579 pub valid_bits_per_sample: u8,
583 pub frame_rate: u32,
585}
586
587impl fidl::Persistable for PcmFormat {}
588
589#[derive(Clone, Debug, PartialEq)]
590pub struct RingBufferGetPropertiesResponse {
591 pub properties: RingBufferProperties,
592}
593
594impl fidl::Persistable for RingBufferGetPropertiesResponse {}
595
596#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
597#[repr(C)]
598pub struct RingBufferGetVmoRequest {
599 pub min_frames: u32,
600 pub clock_recovery_notifications_per_ring: u32,
601}
602
603impl fidl::Persistable for RingBufferGetVmoRequest {}
604
605#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
606#[repr(C)]
607pub struct RingBufferPositionInfo {
608 pub timestamp: i64,
614 pub position: u32,
617}
618
619impl fidl::Persistable for RingBufferPositionInfo {}
620
621#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
622#[repr(C)]
623pub struct RingBufferSetActiveChannelsRequest {
624 pub active_channels_bitmask: u64,
625}
626
627impl fidl::Persistable for RingBufferSetActiveChannelsRequest {}
628
629#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
630#[repr(C)]
631pub struct RingBufferStartResponse {
632 pub start_time: i64,
633}
634
635impl fidl::Persistable for RingBufferStartResponse {}
636
637#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
638#[repr(C)]
639pub struct RingBufferWatchClockRecoveryPositionInfoResponse {
640 pub position_info: RingBufferPositionInfo,
641}
642
643impl fidl::Persistable for RingBufferWatchClockRecoveryPositionInfoResponse {}
644
645#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
646#[repr(C)]
647pub struct RingBufferSetActiveChannelsResponse {
648 pub set_time: i64,
649}
650
651impl fidl::Persistable for RingBufferSetActiveChannelsResponse {}
652
653#[derive(Clone, Debug, PartialEq)]
654pub struct RingBufferWatchDelayInfoResponse {
655 pub delay_info: DelayInfo,
656}
657
658impl fidl::Persistable for RingBufferWatchDelayInfoResponse {}
659
660#[derive(Clone, Debug, PartialEq)]
661pub struct StreamConfigGetPropertiesResponse {
662 pub properties: StreamProperties,
663}
664
665impl fidl::Persistable for StreamConfigGetPropertiesResponse {}
666
667#[derive(Clone, Debug, PartialEq)]
668pub struct StreamConfigGetSupportedFormatsResponse {
669 pub supported_formats: Vec<SupportedFormats>,
670}
671
672impl fidl::Persistable for StreamConfigGetSupportedFormatsResponse {}
673
674#[derive(Clone, Debug, PartialEq)]
675pub struct StreamConfigSetGainRequest {
676 pub target_state: GainState,
677}
678
679impl fidl::Persistable for StreamConfigSetGainRequest {}
680
681#[derive(Clone, Debug, PartialEq)]
682pub struct StreamConfigWatchGainStateResponse {
683 pub gain_state: GainState,
684}
685
686impl fidl::Persistable for StreamConfigWatchGainStateResponse {}
687
688#[derive(Clone, Debug, PartialEq)]
689pub struct StreamConfigWatchPlugStateResponse {
690 pub plug_state: PlugState,
691}
692
693impl fidl::Persistable for StreamConfigWatchPlugStateResponse {}
694
695#[derive(Clone, Debug, Default, PartialEq)]
697pub struct ChannelAttributes {
698 pub min_frequency: Option<u32>,
704 pub max_frequency: Option<u32>,
710 #[doc(hidden)]
711 pub __source_breaking: fidl::marker::SourceBreaking,
712}
713
714impl fidl::Persistable for ChannelAttributes {}
715
716#[derive(Clone, Debug, Default, PartialEq)]
718pub struct ChannelSet {
719 pub attributes: Option<Vec<ChannelAttributes>>,
725 #[doc(hidden)]
726 pub __source_breaking: fidl::marker::SourceBreaking,
727}
728
729impl fidl::Persistable for ChannelSet {}
730
731#[derive(Clone, Debug, Default, PartialEq)]
733pub struct CodecFormatInfo {
734 pub external_delay: Option<i64>,
741 pub turn_on_delay: Option<i64>,
750 pub turn_off_delay: Option<i64>,
759 #[doc(hidden)]
760 pub __source_breaking: fidl::marker::SourceBreaking,
761}
762
763impl fidl::Persistable for CodecFormatInfo {}
764
765#[derive(Clone, Debug, Default, PartialEq)]
766pub struct CodecProperties {
767 pub is_input: Option<bool>,
772 pub manufacturer: Option<String>,
777 pub product: Option<String>,
782 pub unique_id: Option<[u8; 16]>,
787 pub plug_detect_capabilities: Option<PlugDetectCapabilities>,
791 #[doc(hidden)]
792 pub __source_breaking: fidl::marker::SourceBreaking,
793}
794
795impl fidl::Persistable for CodecProperties {}
796
797#[derive(Clone, Debug, Default, PartialEq)]
798pub struct CompositeProperties {
799 pub manufacturer: Option<String>,
804 pub product: Option<String>,
809 pub unique_id: Option<[u8; 16]>,
819 pub clock_domain: Option<u32>,
840 #[doc(hidden)]
841 pub __source_breaking: fidl::marker::SourceBreaking,
842}
843
844impl fidl::Persistable for CompositeProperties {}
845
846#[derive(Clone, Debug, Default, PartialEq)]
847pub struct DaiProperties {
848 pub is_input: Option<bool>,
852 pub manufacturer: Option<String>,
857 pub product_name: Option<String>,
862 pub unique_id: Option<[u8; 16]>,
867 pub clock_domain: Option<u32>,
888 #[doc(hidden)]
889 pub __source_breaking: fidl::marker::SourceBreaking,
890}
891
892impl fidl::Persistable for DaiProperties {}
893
894#[derive(Clone, Debug, Default, PartialEq)]
896pub struct DelayInfo {
897 pub internal_delay: Option<i64>,
918 pub external_delay: Option<i64>,
937 #[doc(hidden)]
938 pub __source_breaking: fidl::marker::SourceBreaking,
939}
940
941impl fidl::Persistable for DelayInfo {}
942
943#[derive(Clone, Debug, Default, PartialEq)]
944pub struct Format {
945 pub pcm_format: Option<PcmFormat>,
949 #[doc(hidden)]
950 pub __source_breaking: fidl::marker::SourceBreaking,
951}
952
953impl fidl::Persistable for Format {}
954
955#[derive(Clone, Debug, Default, PartialEq)]
957pub struct GainState {
958 pub muted: Option<bool>,
962 pub agc_enabled: Option<bool>,
966 pub gain_db: Option<f32>,
970 #[doc(hidden)]
971 pub __source_breaking: fidl::marker::SourceBreaking,
972}
973
974impl fidl::Persistable for GainState {}
975
976#[derive(Clone, Debug, Default, PartialEq)]
977pub struct HealthState {
978 pub healthy: Option<bool>,
986 #[doc(hidden)]
987 pub __source_breaking: fidl::marker::SourceBreaking,
988}
989
990impl fidl::Persistable for HealthState {}
991
992#[derive(Clone, Debug, Default, PartialEq)]
1001pub struct PcmSupportedFormats {
1002 pub channel_sets: Option<Vec<ChannelSet>>,
1010 pub sample_formats: Option<Vec<SampleFormat>>,
1014 pub bytes_per_sample: Option<Vec<u8>>,
1020 pub valid_bits_per_sample: Option<Vec<u8>>,
1027 pub frame_rates: Option<Vec<u32>>,
1031 #[doc(hidden)]
1032 pub __source_breaking: fidl::marker::SourceBreaking,
1033}
1034
1035impl fidl::Persistable for PcmSupportedFormats {}
1036
1037#[derive(Clone, Debug, Default, PartialEq)]
1042pub struct PlugState {
1043 pub plugged: Option<bool>,
1045 pub plug_state_time: Option<i64>,
1047 #[doc(hidden)]
1048 pub __source_breaking: fidl::marker::SourceBreaking,
1049}
1050
1051impl fidl::Persistable for PlugState {}
1052
1053#[derive(Clone, Debug, Default, PartialEq)]
1055pub struct RingBufferProperties {
1056 pub needs_cache_flush_or_invalidate: Option<bool>,
1071 pub turn_on_delay: Option<i64>,
1084 pub driver_transfer_bytes: Option<u32>,
1096 #[doc(hidden)]
1097 pub __source_breaking: fidl::marker::SourceBreaking,
1098}
1099
1100impl fidl::Persistable for RingBufferProperties {}
1101
1102#[derive(Clone, Debug, Default, PartialEq)]
1103pub struct StreamProperties {
1104 pub unique_id: Option<[u8; 16]>,
1114 pub is_input: Option<bool>,
1118 pub can_mute: Option<bool>,
1122 pub can_agc: Option<bool>,
1126 pub min_gain_db: Option<f32>,
1130 pub max_gain_db: Option<f32>,
1134 pub gain_step_db: Option<f32>,
1139 pub plug_detect_capabilities: Option<PlugDetectCapabilities>,
1143 pub manufacturer: Option<String>,
1148 pub product: Option<String>,
1153 pub clock_domain: Option<u32>,
1174 #[doc(hidden)]
1175 pub __source_breaking: fidl::marker::SourceBreaking,
1176}
1177
1178impl fidl::Persistable for StreamProperties {}
1179
1180#[derive(Clone, Debug, Default, PartialEq)]
1182pub struct SupportedFormats {
1183 pub pcm_supported_formats: Option<PcmSupportedFormats>,
1187 #[doc(hidden)]
1188 pub __source_breaking: fidl::marker::SourceBreaking,
1189}
1190
1191impl fidl::Persistable for SupportedFormats {}
1192
1193#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
1195pub enum DaiFrameFormat {
1196 FrameFormatStandard(DaiFrameFormatStandard),
1198 FrameFormatCustom(DaiFrameFormatCustom),
1200}
1201
1202impl DaiFrameFormat {
1203 #[inline]
1204 pub fn ordinal(&self) -> u64 {
1205 match *self {
1206 Self::FrameFormatStandard(_) => 1,
1207 Self::FrameFormatCustom(_) => 2,
1208 }
1209 }
1210}
1211
1212impl fidl::Persistable for DaiFrameFormat {}
1213
1214pub mod codec_ordinals {
1215 pub const GET_HEALTH_STATE: u64 = 0x4e146d6bca733a84;
1216 pub const SIGNAL_PROCESSING_CONNECT: u64 = 0xa81907ce6066295;
1217 pub const RESET: u64 = 0x50757ae579a7bd6b;
1218 pub const GET_PROPERTIES: u64 = 0x7a0d138a6a1d9d90;
1219 pub const STOP: u64 = 0x5c2e380df1332dbd;
1220 pub const START: u64 = 0x329cdacb286ab00;
1221 pub const GET_DAI_FORMATS: u64 = 0xf8bbc46b4ba6a52;
1222 pub const SET_DAI_FORMAT: u64 = 0x2f829df9e5a7a1ea;
1223 pub const WATCH_PLUG_STATE: u64 = 0x182b87f935ca7326;
1224}
1225
1226pub mod codec_connector_ordinals {
1227 pub const CONNECT: u64 = 0x1413f551544026c9;
1228}
1229
1230pub mod composite_ordinals {
1231 pub const GET_HEALTH_STATE: u64 = 0x4e146d6bca733a84;
1232 pub const SIGNAL_PROCESSING_CONNECT: u64 = 0xa81907ce6066295;
1233 pub const RESET: u64 = 0xac355fb98341996;
1234 pub const GET_PROPERTIES: u64 = 0x31846fa0a459942b;
1235 pub const GET_RING_BUFFER_FORMATS: u64 = 0x1d89b701b6816ac4;
1236 pub const CREATE_RING_BUFFER: u64 = 0x28c5685f85262033;
1237 pub const GET_DAI_FORMATS: u64 = 0x3cbeaed59c8f69b;
1238 pub const SET_DAI_FORMAT: u64 = 0x155acf5cc0dc8a84;
1239}
1240
1241pub mod composite_connector_ordinals {
1242 pub const CONNECT: u64 = 0x7ee557529079e466;
1243}
1244
1245pub mod dai_ordinals {
1246 pub const GET_HEALTH_STATE: u64 = 0x4e146d6bca733a84;
1247 pub const SIGNAL_PROCESSING_CONNECT: u64 = 0xa81907ce6066295;
1248 pub const RESET: u64 = 0x69e5fa9fa2f78c14;
1249 pub const GET_PROPERTIES: u64 = 0x2c25a1a66149510b;
1250 pub const GET_DAI_FORMATS: u64 = 0x1eb37b0cddf79d69;
1251 pub const GET_RING_BUFFER_FORMATS: u64 = 0x760371081d8c92e4;
1252 pub const CREATE_RING_BUFFER: u64 = 0x5af9760589a75257;
1253}
1254
1255pub mod dai_connector_ordinals {
1256 pub const CONNECT: u64 = 0x4e4db05c2eca1450;
1257}
1258
1259pub mod health_ordinals {
1260 pub const GET_HEALTH_STATE: u64 = 0x4e146d6bca733a84;
1261}
1262
1263pub mod ring_buffer_ordinals {
1264 pub const GET_PROPERTIES: u64 = 0x12947f061a8fe1;
1265 pub const WATCH_CLOCK_RECOVERY_POSITION_INFO: u64 = 0x694d5b898a4167e5;
1266 pub const GET_VMO: u64 = 0x44c8f4f5680e853a;
1267 pub const START: u64 = 0x5dd780a769a8892d;
1268 pub const STOP: u64 = 0x49a73d9cf1d4e110;
1269 pub const SET_ACTIVE_CHANNELS: u64 = 0x605464c1d384f309;
1270 pub const WATCH_DELAY_INFO: u64 = 0x6c1248db213fcf9f;
1271}
1272
1273pub mod stream_config_ordinals {
1274 pub const GET_HEALTH_STATE: u64 = 0x4e146d6bca733a84;
1275 pub const SIGNAL_PROCESSING_CONNECT: u64 = 0xa81907ce6066295;
1276 pub const GET_PROPERTIES: u64 = 0x7d89c02f3e2d3c01;
1277 pub const GET_SUPPORTED_FORMATS: u64 = 0x448efa7850cafe7e;
1278 pub const CREATE_RING_BUFFER: u64 = 0x2afb19dd13faa1ba;
1279 pub const WATCH_GAIN_STATE: u64 = 0x4772506136ab65c1;
1280 pub const SET_GAIN: u64 = 0x3943b41498c6a384;
1281 pub const WATCH_PLUG_STATE: u64 = 0x497345a6f048b2a6;
1282}
1283
1284pub mod stream_config_connector_ordinals {
1285 pub const CONNECT: u64 = 0x22051ff3021eafec;
1286}
1287
1288mod internal {
1289 use super::*;
1290 unsafe impl fidl::encoding::TypeMarker for DaiFrameFormatStandard {
1291 type Owned = Self;
1292
1293 #[inline(always)]
1294 fn inline_align(_context: fidl::encoding::Context) -> usize {
1295 std::mem::align_of::<u8>()
1296 }
1297
1298 #[inline(always)]
1299 fn inline_size(_context: fidl::encoding::Context) -> usize {
1300 std::mem::size_of::<u8>()
1301 }
1302
1303 #[inline(always)]
1304 fn encode_is_copy() -> bool {
1305 true
1306 }
1307
1308 #[inline(always)]
1309 fn decode_is_copy() -> bool {
1310 false
1311 }
1312 }
1313
1314 impl fidl::encoding::ValueTypeMarker for DaiFrameFormatStandard {
1315 type Borrowed<'a> = Self;
1316 #[inline(always)]
1317 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1318 *value
1319 }
1320 }
1321
1322 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
1323 for DaiFrameFormatStandard
1324 {
1325 #[inline]
1326 unsafe fn encode(
1327 self,
1328 encoder: &mut fidl::encoding::Encoder<'_, D>,
1329 offset: usize,
1330 _depth: fidl::encoding::Depth,
1331 ) -> fidl::Result<()> {
1332 encoder.debug_check_bounds::<Self>(offset);
1333 encoder.write_num(self.into_primitive(), offset);
1334 Ok(())
1335 }
1336 }
1337
1338 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1339 for DaiFrameFormatStandard
1340 {
1341 #[inline(always)]
1342 fn new_empty() -> Self {
1343 Self::None
1344 }
1345
1346 #[inline]
1347 unsafe fn decode(
1348 &mut self,
1349 decoder: &mut fidl::encoding::Decoder<'_, D>,
1350 offset: usize,
1351 _depth: fidl::encoding::Depth,
1352 ) -> fidl::Result<()> {
1353 decoder.debug_check_bounds::<Self>(offset);
1354 let prim = decoder.read_num::<u8>(offset);
1355
1356 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
1357 Ok(())
1358 }
1359 }
1360 unsafe impl fidl::encoding::TypeMarker for DaiSampleFormat {
1361 type Owned = Self;
1362
1363 #[inline(always)]
1364 fn inline_align(_context: fidl::encoding::Context) -> usize {
1365 std::mem::align_of::<u8>()
1366 }
1367
1368 #[inline(always)]
1369 fn inline_size(_context: fidl::encoding::Context) -> usize {
1370 std::mem::size_of::<u8>()
1371 }
1372
1373 #[inline(always)]
1374 fn encode_is_copy() -> bool {
1375 true
1376 }
1377
1378 #[inline(always)]
1379 fn decode_is_copy() -> bool {
1380 false
1381 }
1382 }
1383
1384 impl fidl::encoding::ValueTypeMarker for DaiSampleFormat {
1385 type Borrowed<'a> = Self;
1386 #[inline(always)]
1387 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1388 *value
1389 }
1390 }
1391
1392 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
1393 for DaiSampleFormat
1394 {
1395 #[inline]
1396 unsafe fn encode(
1397 self,
1398 encoder: &mut fidl::encoding::Encoder<'_, D>,
1399 offset: usize,
1400 _depth: fidl::encoding::Depth,
1401 ) -> fidl::Result<()> {
1402 encoder.debug_check_bounds::<Self>(offset);
1403 encoder.write_num(self.into_primitive(), offset);
1404 Ok(())
1405 }
1406 }
1407
1408 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for DaiSampleFormat {
1409 #[inline(always)]
1410 fn new_empty() -> Self {
1411 Self::Pdm
1412 }
1413
1414 #[inline]
1415 unsafe fn decode(
1416 &mut self,
1417 decoder: &mut fidl::encoding::Decoder<'_, D>,
1418 offset: usize,
1419 _depth: fidl::encoding::Depth,
1420 ) -> fidl::Result<()> {
1421 decoder.debug_check_bounds::<Self>(offset);
1422 let prim = decoder.read_num::<u8>(offset);
1423
1424 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
1425 Ok(())
1426 }
1427 }
1428 unsafe impl fidl::encoding::TypeMarker for DeviceType {
1429 type Owned = Self;
1430
1431 #[inline(always)]
1432 fn inline_align(_context: fidl::encoding::Context) -> usize {
1433 std::mem::align_of::<u32>()
1434 }
1435
1436 #[inline(always)]
1437 fn inline_size(_context: fidl::encoding::Context) -> usize {
1438 std::mem::size_of::<u32>()
1439 }
1440
1441 #[inline(always)]
1442 fn encode_is_copy() -> bool {
1443 false
1444 }
1445
1446 #[inline(always)]
1447 fn decode_is_copy() -> bool {
1448 false
1449 }
1450 }
1451
1452 impl fidl::encoding::ValueTypeMarker for DeviceType {
1453 type Borrowed<'a> = Self;
1454 #[inline(always)]
1455 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1456 *value
1457 }
1458 }
1459
1460 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for DeviceType {
1461 #[inline]
1462 unsafe fn encode(
1463 self,
1464 encoder: &mut fidl::encoding::Encoder<'_, D>,
1465 offset: usize,
1466 _depth: fidl::encoding::Depth,
1467 ) -> fidl::Result<()> {
1468 encoder.debug_check_bounds::<Self>(offset);
1469 encoder.write_num(self.into_primitive(), offset);
1470 Ok(())
1471 }
1472 }
1473
1474 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for DeviceType {
1475 #[inline(always)]
1476 fn new_empty() -> Self {
1477 Self::unknown()
1478 }
1479
1480 #[inline]
1481 unsafe fn decode(
1482 &mut self,
1483 decoder: &mut fidl::encoding::Decoder<'_, D>,
1484 offset: usize,
1485 _depth: fidl::encoding::Depth,
1486 ) -> fidl::Result<()> {
1487 decoder.debug_check_bounds::<Self>(offset);
1488 let prim = decoder.read_num::<u32>(offset);
1489
1490 *self = Self::from_primitive_allow_unknown(prim);
1491 Ok(())
1492 }
1493 }
1494 unsafe impl fidl::encoding::TypeMarker for DriverError {
1495 type Owned = Self;
1496
1497 #[inline(always)]
1498 fn inline_align(_context: fidl::encoding::Context) -> usize {
1499 std::mem::align_of::<u32>()
1500 }
1501
1502 #[inline(always)]
1503 fn inline_size(_context: fidl::encoding::Context) -> usize {
1504 std::mem::size_of::<u32>()
1505 }
1506
1507 #[inline(always)]
1508 fn encode_is_copy() -> bool {
1509 false
1510 }
1511
1512 #[inline(always)]
1513 fn decode_is_copy() -> bool {
1514 false
1515 }
1516 }
1517
1518 impl fidl::encoding::ValueTypeMarker for DriverError {
1519 type Borrowed<'a> = Self;
1520 #[inline(always)]
1521 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1522 *value
1523 }
1524 }
1525
1526 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for DriverError {
1527 #[inline]
1528 unsafe fn encode(
1529 self,
1530 encoder: &mut fidl::encoding::Encoder<'_, D>,
1531 offset: usize,
1532 _depth: fidl::encoding::Depth,
1533 ) -> fidl::Result<()> {
1534 encoder.debug_check_bounds::<Self>(offset);
1535 encoder.write_num(self.into_primitive(), offset);
1536 Ok(())
1537 }
1538 }
1539
1540 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for DriverError {
1541 #[inline(always)]
1542 fn new_empty() -> Self {
1543 Self::unknown()
1544 }
1545
1546 #[inline]
1547 unsafe fn decode(
1548 &mut self,
1549 decoder: &mut fidl::encoding::Decoder<'_, D>,
1550 offset: usize,
1551 _depth: fidl::encoding::Depth,
1552 ) -> fidl::Result<()> {
1553 decoder.debug_check_bounds::<Self>(offset);
1554 let prim = decoder.read_num::<u32>(offset);
1555
1556 *self = Self::from_primitive_allow_unknown(prim);
1557 Ok(())
1558 }
1559 }
1560 unsafe impl fidl::encoding::TypeMarker for GetVmoError {
1561 type Owned = Self;
1562
1563 #[inline(always)]
1564 fn inline_align(_context: fidl::encoding::Context) -> usize {
1565 std::mem::align_of::<u32>()
1566 }
1567
1568 #[inline(always)]
1569 fn inline_size(_context: fidl::encoding::Context) -> usize {
1570 std::mem::size_of::<u32>()
1571 }
1572
1573 #[inline(always)]
1574 fn encode_is_copy() -> bool {
1575 true
1576 }
1577
1578 #[inline(always)]
1579 fn decode_is_copy() -> bool {
1580 false
1581 }
1582 }
1583
1584 impl fidl::encoding::ValueTypeMarker for GetVmoError {
1585 type Borrowed<'a> = Self;
1586 #[inline(always)]
1587 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1588 *value
1589 }
1590 }
1591
1592 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for GetVmoError {
1593 #[inline]
1594 unsafe fn encode(
1595 self,
1596 encoder: &mut fidl::encoding::Encoder<'_, D>,
1597 offset: usize,
1598 _depth: fidl::encoding::Depth,
1599 ) -> fidl::Result<()> {
1600 encoder.debug_check_bounds::<Self>(offset);
1601 encoder.write_num(self.into_primitive(), offset);
1602 Ok(())
1603 }
1604 }
1605
1606 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for GetVmoError {
1607 #[inline(always)]
1608 fn new_empty() -> Self {
1609 Self::InvalidArgs
1610 }
1611
1612 #[inline]
1613 unsafe fn decode(
1614 &mut self,
1615 decoder: &mut fidl::encoding::Decoder<'_, D>,
1616 offset: usize,
1617 _depth: fidl::encoding::Depth,
1618 ) -> fidl::Result<()> {
1619 decoder.debug_check_bounds::<Self>(offset);
1620 let prim = decoder.read_num::<u32>(offset);
1621
1622 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
1623 Ok(())
1624 }
1625 }
1626 unsafe impl fidl::encoding::TypeMarker for PlugDetectCapabilities {
1627 type Owned = Self;
1628
1629 #[inline(always)]
1630 fn inline_align(_context: fidl::encoding::Context) -> usize {
1631 std::mem::align_of::<u32>()
1632 }
1633
1634 #[inline(always)]
1635 fn inline_size(_context: fidl::encoding::Context) -> usize {
1636 std::mem::size_of::<u32>()
1637 }
1638
1639 #[inline(always)]
1640 fn encode_is_copy() -> bool {
1641 true
1642 }
1643
1644 #[inline(always)]
1645 fn decode_is_copy() -> bool {
1646 false
1647 }
1648 }
1649
1650 impl fidl::encoding::ValueTypeMarker for PlugDetectCapabilities {
1651 type Borrowed<'a> = Self;
1652 #[inline(always)]
1653 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1654 *value
1655 }
1656 }
1657
1658 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
1659 for PlugDetectCapabilities
1660 {
1661 #[inline]
1662 unsafe fn encode(
1663 self,
1664 encoder: &mut fidl::encoding::Encoder<'_, D>,
1665 offset: usize,
1666 _depth: fidl::encoding::Depth,
1667 ) -> fidl::Result<()> {
1668 encoder.debug_check_bounds::<Self>(offset);
1669 encoder.write_num(self.into_primitive(), offset);
1670 Ok(())
1671 }
1672 }
1673
1674 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1675 for PlugDetectCapabilities
1676 {
1677 #[inline(always)]
1678 fn new_empty() -> Self {
1679 Self::Hardwired
1680 }
1681
1682 #[inline]
1683 unsafe fn decode(
1684 &mut self,
1685 decoder: &mut fidl::encoding::Decoder<'_, D>,
1686 offset: usize,
1687 _depth: fidl::encoding::Depth,
1688 ) -> fidl::Result<()> {
1689 decoder.debug_check_bounds::<Self>(offset);
1690 let prim = decoder.read_num::<u32>(offset);
1691
1692 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
1693 Ok(())
1694 }
1695 }
1696 unsafe impl fidl::encoding::TypeMarker for SampleFormat {
1697 type Owned = Self;
1698
1699 #[inline(always)]
1700 fn inline_align(_context: fidl::encoding::Context) -> usize {
1701 std::mem::align_of::<u8>()
1702 }
1703
1704 #[inline(always)]
1705 fn inline_size(_context: fidl::encoding::Context) -> usize {
1706 std::mem::size_of::<u8>()
1707 }
1708
1709 #[inline(always)]
1710 fn encode_is_copy() -> bool {
1711 true
1712 }
1713
1714 #[inline(always)]
1715 fn decode_is_copy() -> bool {
1716 false
1717 }
1718 }
1719
1720 impl fidl::encoding::ValueTypeMarker for SampleFormat {
1721 type Borrowed<'a> = Self;
1722 #[inline(always)]
1723 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1724 *value
1725 }
1726 }
1727
1728 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for SampleFormat {
1729 #[inline]
1730 unsafe fn encode(
1731 self,
1732 encoder: &mut fidl::encoding::Encoder<'_, D>,
1733 offset: usize,
1734 _depth: fidl::encoding::Depth,
1735 ) -> fidl::Result<()> {
1736 encoder.debug_check_bounds::<Self>(offset);
1737 encoder.write_num(self.into_primitive(), offset);
1738 Ok(())
1739 }
1740 }
1741
1742 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for SampleFormat {
1743 #[inline(always)]
1744 fn new_empty() -> Self {
1745 Self::PcmSigned
1746 }
1747
1748 #[inline]
1749 unsafe fn decode(
1750 &mut self,
1751 decoder: &mut fidl::encoding::Decoder<'_, D>,
1752 offset: usize,
1753 _depth: fidl::encoding::Depth,
1754 ) -> fidl::Result<()> {
1755 decoder.debug_check_bounds::<Self>(offset);
1756 let prim = decoder.read_num::<u8>(offset);
1757
1758 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
1759 Ok(())
1760 }
1761 }
1762
1763 impl fidl::encoding::ValueTypeMarker for CodecGetPropertiesResponse {
1764 type Borrowed<'a> = &'a Self;
1765 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1766 value
1767 }
1768 }
1769
1770 unsafe impl fidl::encoding::TypeMarker for CodecGetPropertiesResponse {
1771 type Owned = Self;
1772
1773 #[inline(always)]
1774 fn inline_align(_context: fidl::encoding::Context) -> usize {
1775 8
1776 }
1777
1778 #[inline(always)]
1779 fn inline_size(_context: fidl::encoding::Context) -> usize {
1780 16
1781 }
1782 }
1783
1784 unsafe impl<D: fidl::encoding::ResourceDialect>
1785 fidl::encoding::Encode<CodecGetPropertiesResponse, D> for &CodecGetPropertiesResponse
1786 {
1787 #[inline]
1788 unsafe fn encode(
1789 self,
1790 encoder: &mut fidl::encoding::Encoder<'_, D>,
1791 offset: usize,
1792 _depth: fidl::encoding::Depth,
1793 ) -> fidl::Result<()> {
1794 encoder.debug_check_bounds::<CodecGetPropertiesResponse>(offset);
1795 fidl::encoding::Encode::<CodecGetPropertiesResponse, D>::encode(
1797 (<CodecProperties as fidl::encoding::ValueTypeMarker>::borrow(&self.properties),),
1798 encoder,
1799 offset,
1800 _depth,
1801 )
1802 }
1803 }
1804 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<CodecProperties, D>>
1805 fidl::encoding::Encode<CodecGetPropertiesResponse, D> for (T0,)
1806 {
1807 #[inline]
1808 unsafe fn encode(
1809 self,
1810 encoder: &mut fidl::encoding::Encoder<'_, D>,
1811 offset: usize,
1812 depth: fidl::encoding::Depth,
1813 ) -> fidl::Result<()> {
1814 encoder.debug_check_bounds::<CodecGetPropertiesResponse>(offset);
1815 self.0.encode(encoder, offset + 0, depth)?;
1819 Ok(())
1820 }
1821 }
1822
1823 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1824 for CodecGetPropertiesResponse
1825 {
1826 #[inline(always)]
1827 fn new_empty() -> Self {
1828 Self { properties: fidl::new_empty!(CodecProperties, D) }
1829 }
1830
1831 #[inline]
1832 unsafe fn decode(
1833 &mut self,
1834 decoder: &mut fidl::encoding::Decoder<'_, D>,
1835 offset: usize,
1836 _depth: fidl::encoding::Depth,
1837 ) -> fidl::Result<()> {
1838 decoder.debug_check_bounds::<Self>(offset);
1839 fidl::decode!(CodecProperties, D, &mut self.properties, decoder, offset + 0, _depth)?;
1841 Ok(())
1842 }
1843 }
1844
1845 impl fidl::encoding::ValueTypeMarker for CodecSetDaiFormatRequest {
1846 type Borrowed<'a> = &'a Self;
1847 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1848 value
1849 }
1850 }
1851
1852 unsafe impl fidl::encoding::TypeMarker for CodecSetDaiFormatRequest {
1853 type Owned = Self;
1854
1855 #[inline(always)]
1856 fn inline_align(_context: fidl::encoding::Context) -> usize {
1857 8
1858 }
1859
1860 #[inline(always)]
1861 fn inline_size(_context: fidl::encoding::Context) -> usize {
1862 48
1863 }
1864 }
1865
1866 unsafe impl<D: fidl::encoding::ResourceDialect>
1867 fidl::encoding::Encode<CodecSetDaiFormatRequest, D> for &CodecSetDaiFormatRequest
1868 {
1869 #[inline]
1870 unsafe fn encode(
1871 self,
1872 encoder: &mut fidl::encoding::Encoder<'_, D>,
1873 offset: usize,
1874 _depth: fidl::encoding::Depth,
1875 ) -> fidl::Result<()> {
1876 encoder.debug_check_bounds::<CodecSetDaiFormatRequest>(offset);
1877 fidl::encoding::Encode::<CodecSetDaiFormatRequest, D>::encode(
1879 (<DaiFormat as fidl::encoding::ValueTypeMarker>::borrow(&self.format),),
1880 encoder,
1881 offset,
1882 _depth,
1883 )
1884 }
1885 }
1886 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<DaiFormat, D>>
1887 fidl::encoding::Encode<CodecSetDaiFormatRequest, D> for (T0,)
1888 {
1889 #[inline]
1890 unsafe fn encode(
1891 self,
1892 encoder: &mut fidl::encoding::Encoder<'_, D>,
1893 offset: usize,
1894 depth: fidl::encoding::Depth,
1895 ) -> fidl::Result<()> {
1896 encoder.debug_check_bounds::<CodecSetDaiFormatRequest>(offset);
1897 self.0.encode(encoder, offset + 0, depth)?;
1901 Ok(())
1902 }
1903 }
1904
1905 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1906 for CodecSetDaiFormatRequest
1907 {
1908 #[inline(always)]
1909 fn new_empty() -> Self {
1910 Self { format: fidl::new_empty!(DaiFormat, D) }
1911 }
1912
1913 #[inline]
1914 unsafe fn decode(
1915 &mut self,
1916 decoder: &mut fidl::encoding::Decoder<'_, D>,
1917 offset: usize,
1918 _depth: fidl::encoding::Depth,
1919 ) -> fidl::Result<()> {
1920 decoder.debug_check_bounds::<Self>(offset);
1921 fidl::decode!(DaiFormat, D, &mut self.format, decoder, offset + 0, _depth)?;
1923 Ok(())
1924 }
1925 }
1926
1927 impl fidl::encoding::ValueTypeMarker for CodecStartResponse {
1928 type Borrowed<'a> = &'a Self;
1929 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1930 value
1931 }
1932 }
1933
1934 unsafe impl fidl::encoding::TypeMarker for CodecStartResponse {
1935 type Owned = Self;
1936
1937 #[inline(always)]
1938 fn inline_align(_context: fidl::encoding::Context) -> usize {
1939 8
1940 }
1941
1942 #[inline(always)]
1943 fn inline_size(_context: fidl::encoding::Context) -> usize {
1944 8
1945 }
1946 #[inline(always)]
1947 fn encode_is_copy() -> bool {
1948 true
1949 }
1950
1951 #[inline(always)]
1952 fn decode_is_copy() -> bool {
1953 true
1954 }
1955 }
1956
1957 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<CodecStartResponse, D>
1958 for &CodecStartResponse
1959 {
1960 #[inline]
1961 unsafe fn encode(
1962 self,
1963 encoder: &mut fidl::encoding::Encoder<'_, D>,
1964 offset: usize,
1965 _depth: fidl::encoding::Depth,
1966 ) -> fidl::Result<()> {
1967 encoder.debug_check_bounds::<CodecStartResponse>(offset);
1968 unsafe {
1969 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
1971 (buf_ptr as *mut CodecStartResponse)
1972 .write_unaligned((self as *const CodecStartResponse).read());
1973 }
1976 Ok(())
1977 }
1978 }
1979 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<i64, D>>
1980 fidl::encoding::Encode<CodecStartResponse, D> for (T0,)
1981 {
1982 #[inline]
1983 unsafe fn encode(
1984 self,
1985 encoder: &mut fidl::encoding::Encoder<'_, D>,
1986 offset: usize,
1987 depth: fidl::encoding::Depth,
1988 ) -> fidl::Result<()> {
1989 encoder.debug_check_bounds::<CodecStartResponse>(offset);
1990 self.0.encode(encoder, offset + 0, depth)?;
1994 Ok(())
1995 }
1996 }
1997
1998 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for CodecStartResponse {
1999 #[inline(always)]
2000 fn new_empty() -> Self {
2001 Self { start_time: fidl::new_empty!(i64, D) }
2002 }
2003
2004 #[inline]
2005 unsafe fn decode(
2006 &mut self,
2007 decoder: &mut fidl::encoding::Decoder<'_, D>,
2008 offset: usize,
2009 _depth: fidl::encoding::Depth,
2010 ) -> fidl::Result<()> {
2011 decoder.debug_check_bounds::<Self>(offset);
2012 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
2013 unsafe {
2016 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 8);
2017 }
2018 Ok(())
2019 }
2020 }
2021
2022 impl fidl::encoding::ValueTypeMarker for CodecStopResponse {
2023 type Borrowed<'a> = &'a Self;
2024 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2025 value
2026 }
2027 }
2028
2029 unsafe impl fidl::encoding::TypeMarker for CodecStopResponse {
2030 type Owned = Self;
2031
2032 #[inline(always)]
2033 fn inline_align(_context: fidl::encoding::Context) -> usize {
2034 8
2035 }
2036
2037 #[inline(always)]
2038 fn inline_size(_context: fidl::encoding::Context) -> usize {
2039 8
2040 }
2041 #[inline(always)]
2042 fn encode_is_copy() -> bool {
2043 true
2044 }
2045
2046 #[inline(always)]
2047 fn decode_is_copy() -> bool {
2048 true
2049 }
2050 }
2051
2052 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<CodecStopResponse, D>
2053 for &CodecStopResponse
2054 {
2055 #[inline]
2056 unsafe fn encode(
2057 self,
2058 encoder: &mut fidl::encoding::Encoder<'_, D>,
2059 offset: usize,
2060 _depth: fidl::encoding::Depth,
2061 ) -> fidl::Result<()> {
2062 encoder.debug_check_bounds::<CodecStopResponse>(offset);
2063 unsafe {
2064 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
2066 (buf_ptr as *mut CodecStopResponse)
2067 .write_unaligned((self as *const CodecStopResponse).read());
2068 }
2071 Ok(())
2072 }
2073 }
2074 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<i64, D>>
2075 fidl::encoding::Encode<CodecStopResponse, D> for (T0,)
2076 {
2077 #[inline]
2078 unsafe fn encode(
2079 self,
2080 encoder: &mut fidl::encoding::Encoder<'_, D>,
2081 offset: usize,
2082 depth: fidl::encoding::Depth,
2083 ) -> fidl::Result<()> {
2084 encoder.debug_check_bounds::<CodecStopResponse>(offset);
2085 self.0.encode(encoder, offset + 0, depth)?;
2089 Ok(())
2090 }
2091 }
2092
2093 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for CodecStopResponse {
2094 #[inline(always)]
2095 fn new_empty() -> Self {
2096 Self { stop_time: fidl::new_empty!(i64, D) }
2097 }
2098
2099 #[inline]
2100 unsafe fn decode(
2101 &mut self,
2102 decoder: &mut fidl::encoding::Decoder<'_, D>,
2103 offset: usize,
2104 _depth: fidl::encoding::Depth,
2105 ) -> fidl::Result<()> {
2106 decoder.debug_check_bounds::<Self>(offset);
2107 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
2108 unsafe {
2111 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 8);
2112 }
2113 Ok(())
2114 }
2115 }
2116
2117 impl fidl::encoding::ValueTypeMarker for CodecWatchPlugStateResponse {
2118 type Borrowed<'a> = &'a Self;
2119 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2120 value
2121 }
2122 }
2123
2124 unsafe impl fidl::encoding::TypeMarker for CodecWatchPlugStateResponse {
2125 type Owned = Self;
2126
2127 #[inline(always)]
2128 fn inline_align(_context: fidl::encoding::Context) -> usize {
2129 8
2130 }
2131
2132 #[inline(always)]
2133 fn inline_size(_context: fidl::encoding::Context) -> usize {
2134 16
2135 }
2136 }
2137
2138 unsafe impl<D: fidl::encoding::ResourceDialect>
2139 fidl::encoding::Encode<CodecWatchPlugStateResponse, D> for &CodecWatchPlugStateResponse
2140 {
2141 #[inline]
2142 unsafe fn encode(
2143 self,
2144 encoder: &mut fidl::encoding::Encoder<'_, D>,
2145 offset: usize,
2146 _depth: fidl::encoding::Depth,
2147 ) -> fidl::Result<()> {
2148 encoder.debug_check_bounds::<CodecWatchPlugStateResponse>(offset);
2149 fidl::encoding::Encode::<CodecWatchPlugStateResponse, D>::encode(
2151 (<PlugState as fidl::encoding::ValueTypeMarker>::borrow(&self.plug_state),),
2152 encoder,
2153 offset,
2154 _depth,
2155 )
2156 }
2157 }
2158 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<PlugState, D>>
2159 fidl::encoding::Encode<CodecWatchPlugStateResponse, D> for (T0,)
2160 {
2161 #[inline]
2162 unsafe fn encode(
2163 self,
2164 encoder: &mut fidl::encoding::Encoder<'_, D>,
2165 offset: usize,
2166 depth: fidl::encoding::Depth,
2167 ) -> fidl::Result<()> {
2168 encoder.debug_check_bounds::<CodecWatchPlugStateResponse>(offset);
2169 self.0.encode(encoder, offset + 0, depth)?;
2173 Ok(())
2174 }
2175 }
2176
2177 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2178 for CodecWatchPlugStateResponse
2179 {
2180 #[inline(always)]
2181 fn new_empty() -> Self {
2182 Self { plug_state: fidl::new_empty!(PlugState, D) }
2183 }
2184
2185 #[inline]
2186 unsafe fn decode(
2187 &mut self,
2188 decoder: &mut fidl::encoding::Decoder<'_, D>,
2189 offset: usize,
2190 _depth: fidl::encoding::Depth,
2191 ) -> fidl::Result<()> {
2192 decoder.debug_check_bounds::<Self>(offset);
2193 fidl::decode!(PlugState, D, &mut self.plug_state, decoder, offset + 0, _depth)?;
2195 Ok(())
2196 }
2197 }
2198
2199 impl fidl::encoding::ValueTypeMarker for CodecGetDaiFormatsResponse {
2200 type Borrowed<'a> = &'a Self;
2201 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2202 value
2203 }
2204 }
2205
2206 unsafe impl fidl::encoding::TypeMarker for CodecGetDaiFormatsResponse {
2207 type Owned = Self;
2208
2209 #[inline(always)]
2210 fn inline_align(_context: fidl::encoding::Context) -> usize {
2211 8
2212 }
2213
2214 #[inline(always)]
2215 fn inline_size(_context: fidl::encoding::Context) -> usize {
2216 16
2217 }
2218 }
2219
2220 unsafe impl<D: fidl::encoding::ResourceDialect>
2221 fidl::encoding::Encode<CodecGetDaiFormatsResponse, D> for &CodecGetDaiFormatsResponse
2222 {
2223 #[inline]
2224 unsafe fn encode(
2225 self,
2226 encoder: &mut fidl::encoding::Encoder<'_, D>,
2227 offset: usize,
2228 _depth: fidl::encoding::Depth,
2229 ) -> fidl::Result<()> {
2230 encoder.debug_check_bounds::<CodecGetDaiFormatsResponse>(offset);
2231 fidl::encoding::Encode::<CodecGetDaiFormatsResponse, D>::encode(
2233 (
2234 <fidl::encoding::Vector<DaiSupportedFormats, 64> as fidl::encoding::ValueTypeMarker>::borrow(&self.formats),
2235 ),
2236 encoder, offset, _depth
2237 )
2238 }
2239 }
2240 unsafe impl<
2241 D: fidl::encoding::ResourceDialect,
2242 T0: fidl::encoding::Encode<fidl::encoding::Vector<DaiSupportedFormats, 64>, D>,
2243 > fidl::encoding::Encode<CodecGetDaiFormatsResponse, D> for (T0,)
2244 {
2245 #[inline]
2246 unsafe fn encode(
2247 self,
2248 encoder: &mut fidl::encoding::Encoder<'_, D>,
2249 offset: usize,
2250 depth: fidl::encoding::Depth,
2251 ) -> fidl::Result<()> {
2252 encoder.debug_check_bounds::<CodecGetDaiFormatsResponse>(offset);
2253 self.0.encode(encoder, offset + 0, depth)?;
2257 Ok(())
2258 }
2259 }
2260
2261 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2262 for CodecGetDaiFormatsResponse
2263 {
2264 #[inline(always)]
2265 fn new_empty() -> Self {
2266 Self { formats: fidl::new_empty!(fidl::encoding::Vector<DaiSupportedFormats, 64>, D) }
2267 }
2268
2269 #[inline]
2270 unsafe fn decode(
2271 &mut self,
2272 decoder: &mut fidl::encoding::Decoder<'_, D>,
2273 offset: usize,
2274 _depth: fidl::encoding::Depth,
2275 ) -> fidl::Result<()> {
2276 decoder.debug_check_bounds::<Self>(offset);
2277 fidl::decode!(fidl::encoding::Vector<DaiSupportedFormats, 64>, D, &mut self.formats, decoder, offset + 0, _depth)?;
2279 Ok(())
2280 }
2281 }
2282
2283 impl fidl::encoding::ValueTypeMarker for CodecSetDaiFormatResponse {
2284 type Borrowed<'a> = &'a Self;
2285 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2286 value
2287 }
2288 }
2289
2290 unsafe impl fidl::encoding::TypeMarker for CodecSetDaiFormatResponse {
2291 type Owned = Self;
2292
2293 #[inline(always)]
2294 fn inline_align(_context: fidl::encoding::Context) -> usize {
2295 8
2296 }
2297
2298 #[inline(always)]
2299 fn inline_size(_context: fidl::encoding::Context) -> usize {
2300 16
2301 }
2302 }
2303
2304 unsafe impl<D: fidl::encoding::ResourceDialect>
2305 fidl::encoding::Encode<CodecSetDaiFormatResponse, D> for &CodecSetDaiFormatResponse
2306 {
2307 #[inline]
2308 unsafe fn encode(
2309 self,
2310 encoder: &mut fidl::encoding::Encoder<'_, D>,
2311 offset: usize,
2312 _depth: fidl::encoding::Depth,
2313 ) -> fidl::Result<()> {
2314 encoder.debug_check_bounds::<CodecSetDaiFormatResponse>(offset);
2315 fidl::encoding::Encode::<CodecSetDaiFormatResponse, D>::encode(
2317 (<CodecFormatInfo as fidl::encoding::ValueTypeMarker>::borrow(&self.state),),
2318 encoder,
2319 offset,
2320 _depth,
2321 )
2322 }
2323 }
2324 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<CodecFormatInfo, D>>
2325 fidl::encoding::Encode<CodecSetDaiFormatResponse, D> for (T0,)
2326 {
2327 #[inline]
2328 unsafe fn encode(
2329 self,
2330 encoder: &mut fidl::encoding::Encoder<'_, D>,
2331 offset: usize,
2332 depth: fidl::encoding::Depth,
2333 ) -> fidl::Result<()> {
2334 encoder.debug_check_bounds::<CodecSetDaiFormatResponse>(offset);
2335 self.0.encode(encoder, offset + 0, depth)?;
2339 Ok(())
2340 }
2341 }
2342
2343 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2344 for CodecSetDaiFormatResponse
2345 {
2346 #[inline(always)]
2347 fn new_empty() -> Self {
2348 Self { state: fidl::new_empty!(CodecFormatInfo, D) }
2349 }
2350
2351 #[inline]
2352 unsafe fn decode(
2353 &mut self,
2354 decoder: &mut fidl::encoding::Decoder<'_, D>,
2355 offset: usize,
2356 _depth: fidl::encoding::Depth,
2357 ) -> fidl::Result<()> {
2358 decoder.debug_check_bounds::<Self>(offset);
2359 fidl::decode!(CodecFormatInfo, D, &mut self.state, decoder, offset + 0, _depth)?;
2361 Ok(())
2362 }
2363 }
2364
2365 impl fidl::encoding::ValueTypeMarker for CompositeGetDaiFormatsRequest {
2366 type Borrowed<'a> = &'a Self;
2367 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2368 value
2369 }
2370 }
2371
2372 unsafe impl fidl::encoding::TypeMarker for CompositeGetDaiFormatsRequest {
2373 type Owned = Self;
2374
2375 #[inline(always)]
2376 fn inline_align(_context: fidl::encoding::Context) -> usize {
2377 8
2378 }
2379
2380 #[inline(always)]
2381 fn inline_size(_context: fidl::encoding::Context) -> usize {
2382 8
2383 }
2384 #[inline(always)]
2385 fn encode_is_copy() -> bool {
2386 true
2387 }
2388
2389 #[inline(always)]
2390 fn decode_is_copy() -> bool {
2391 true
2392 }
2393 }
2394
2395 unsafe impl<D: fidl::encoding::ResourceDialect>
2396 fidl::encoding::Encode<CompositeGetDaiFormatsRequest, D>
2397 for &CompositeGetDaiFormatsRequest
2398 {
2399 #[inline]
2400 unsafe fn encode(
2401 self,
2402 encoder: &mut fidl::encoding::Encoder<'_, D>,
2403 offset: usize,
2404 _depth: fidl::encoding::Depth,
2405 ) -> fidl::Result<()> {
2406 encoder.debug_check_bounds::<CompositeGetDaiFormatsRequest>(offset);
2407 unsafe {
2408 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
2410 (buf_ptr as *mut CompositeGetDaiFormatsRequest)
2411 .write_unaligned((self as *const CompositeGetDaiFormatsRequest).read());
2412 }
2415 Ok(())
2416 }
2417 }
2418 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<u64, D>>
2419 fidl::encoding::Encode<CompositeGetDaiFormatsRequest, D> for (T0,)
2420 {
2421 #[inline]
2422 unsafe fn encode(
2423 self,
2424 encoder: &mut fidl::encoding::Encoder<'_, D>,
2425 offset: usize,
2426 depth: fidl::encoding::Depth,
2427 ) -> fidl::Result<()> {
2428 encoder.debug_check_bounds::<CompositeGetDaiFormatsRequest>(offset);
2429 self.0.encode(encoder, offset + 0, depth)?;
2433 Ok(())
2434 }
2435 }
2436
2437 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2438 for CompositeGetDaiFormatsRequest
2439 {
2440 #[inline(always)]
2441 fn new_empty() -> Self {
2442 Self { processing_element_id: fidl::new_empty!(u64, D) }
2443 }
2444
2445 #[inline]
2446 unsafe fn decode(
2447 &mut self,
2448 decoder: &mut fidl::encoding::Decoder<'_, D>,
2449 offset: usize,
2450 _depth: fidl::encoding::Depth,
2451 ) -> fidl::Result<()> {
2452 decoder.debug_check_bounds::<Self>(offset);
2453 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
2454 unsafe {
2457 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 8);
2458 }
2459 Ok(())
2460 }
2461 }
2462
2463 impl fidl::encoding::ValueTypeMarker for CompositeGetPropertiesResponse {
2464 type Borrowed<'a> = &'a Self;
2465 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2466 value
2467 }
2468 }
2469
2470 unsafe impl fidl::encoding::TypeMarker for CompositeGetPropertiesResponse {
2471 type Owned = Self;
2472
2473 #[inline(always)]
2474 fn inline_align(_context: fidl::encoding::Context) -> usize {
2475 8
2476 }
2477
2478 #[inline(always)]
2479 fn inline_size(_context: fidl::encoding::Context) -> usize {
2480 16
2481 }
2482 }
2483
2484 unsafe impl<D: fidl::encoding::ResourceDialect>
2485 fidl::encoding::Encode<CompositeGetPropertiesResponse, D>
2486 for &CompositeGetPropertiesResponse
2487 {
2488 #[inline]
2489 unsafe fn encode(
2490 self,
2491 encoder: &mut fidl::encoding::Encoder<'_, D>,
2492 offset: usize,
2493 _depth: fidl::encoding::Depth,
2494 ) -> fidl::Result<()> {
2495 encoder.debug_check_bounds::<CompositeGetPropertiesResponse>(offset);
2496 fidl::encoding::Encode::<CompositeGetPropertiesResponse, D>::encode(
2498 (<CompositeProperties as fidl::encoding::ValueTypeMarker>::borrow(
2499 &self.properties,
2500 ),),
2501 encoder,
2502 offset,
2503 _depth,
2504 )
2505 }
2506 }
2507 unsafe impl<
2508 D: fidl::encoding::ResourceDialect,
2509 T0: fidl::encoding::Encode<CompositeProperties, D>,
2510 > fidl::encoding::Encode<CompositeGetPropertiesResponse, D> for (T0,)
2511 {
2512 #[inline]
2513 unsafe fn encode(
2514 self,
2515 encoder: &mut fidl::encoding::Encoder<'_, D>,
2516 offset: usize,
2517 depth: fidl::encoding::Depth,
2518 ) -> fidl::Result<()> {
2519 encoder.debug_check_bounds::<CompositeGetPropertiesResponse>(offset);
2520 self.0.encode(encoder, offset + 0, depth)?;
2524 Ok(())
2525 }
2526 }
2527
2528 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2529 for CompositeGetPropertiesResponse
2530 {
2531 #[inline(always)]
2532 fn new_empty() -> Self {
2533 Self { properties: fidl::new_empty!(CompositeProperties, D) }
2534 }
2535
2536 #[inline]
2537 unsafe fn decode(
2538 &mut self,
2539 decoder: &mut fidl::encoding::Decoder<'_, D>,
2540 offset: usize,
2541 _depth: fidl::encoding::Depth,
2542 ) -> fidl::Result<()> {
2543 decoder.debug_check_bounds::<Self>(offset);
2544 fidl::decode!(
2546 CompositeProperties,
2547 D,
2548 &mut self.properties,
2549 decoder,
2550 offset + 0,
2551 _depth
2552 )?;
2553 Ok(())
2554 }
2555 }
2556
2557 impl fidl::encoding::ValueTypeMarker for CompositeGetRingBufferFormatsRequest {
2558 type Borrowed<'a> = &'a Self;
2559 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2560 value
2561 }
2562 }
2563
2564 unsafe impl fidl::encoding::TypeMarker for CompositeGetRingBufferFormatsRequest {
2565 type Owned = Self;
2566
2567 #[inline(always)]
2568 fn inline_align(_context: fidl::encoding::Context) -> usize {
2569 8
2570 }
2571
2572 #[inline(always)]
2573 fn inline_size(_context: fidl::encoding::Context) -> usize {
2574 8
2575 }
2576 #[inline(always)]
2577 fn encode_is_copy() -> bool {
2578 true
2579 }
2580
2581 #[inline(always)]
2582 fn decode_is_copy() -> bool {
2583 true
2584 }
2585 }
2586
2587 unsafe impl<D: fidl::encoding::ResourceDialect>
2588 fidl::encoding::Encode<CompositeGetRingBufferFormatsRequest, D>
2589 for &CompositeGetRingBufferFormatsRequest
2590 {
2591 #[inline]
2592 unsafe fn encode(
2593 self,
2594 encoder: &mut fidl::encoding::Encoder<'_, D>,
2595 offset: usize,
2596 _depth: fidl::encoding::Depth,
2597 ) -> fidl::Result<()> {
2598 encoder.debug_check_bounds::<CompositeGetRingBufferFormatsRequest>(offset);
2599 unsafe {
2600 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
2602 (buf_ptr as *mut CompositeGetRingBufferFormatsRequest)
2603 .write_unaligned((self as *const CompositeGetRingBufferFormatsRequest).read());
2604 }
2607 Ok(())
2608 }
2609 }
2610 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<u64, D>>
2611 fidl::encoding::Encode<CompositeGetRingBufferFormatsRequest, D> for (T0,)
2612 {
2613 #[inline]
2614 unsafe fn encode(
2615 self,
2616 encoder: &mut fidl::encoding::Encoder<'_, D>,
2617 offset: usize,
2618 depth: fidl::encoding::Depth,
2619 ) -> fidl::Result<()> {
2620 encoder.debug_check_bounds::<CompositeGetRingBufferFormatsRequest>(offset);
2621 self.0.encode(encoder, offset + 0, depth)?;
2625 Ok(())
2626 }
2627 }
2628
2629 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2630 for CompositeGetRingBufferFormatsRequest
2631 {
2632 #[inline(always)]
2633 fn new_empty() -> Self {
2634 Self { processing_element_id: fidl::new_empty!(u64, D) }
2635 }
2636
2637 #[inline]
2638 unsafe fn decode(
2639 &mut self,
2640 decoder: &mut fidl::encoding::Decoder<'_, D>,
2641 offset: usize,
2642 _depth: fidl::encoding::Depth,
2643 ) -> fidl::Result<()> {
2644 decoder.debug_check_bounds::<Self>(offset);
2645 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
2646 unsafe {
2649 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 8);
2650 }
2651 Ok(())
2652 }
2653 }
2654
2655 impl fidl::encoding::ValueTypeMarker for CompositeSetDaiFormatRequest {
2656 type Borrowed<'a> = &'a Self;
2657 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2658 value
2659 }
2660 }
2661
2662 unsafe impl fidl::encoding::TypeMarker for CompositeSetDaiFormatRequest {
2663 type Owned = Self;
2664
2665 #[inline(always)]
2666 fn inline_align(_context: fidl::encoding::Context) -> usize {
2667 8
2668 }
2669
2670 #[inline(always)]
2671 fn inline_size(_context: fidl::encoding::Context) -> usize {
2672 56
2673 }
2674 }
2675
2676 unsafe impl<D: fidl::encoding::ResourceDialect>
2677 fidl::encoding::Encode<CompositeSetDaiFormatRequest, D> for &CompositeSetDaiFormatRequest
2678 {
2679 #[inline]
2680 unsafe fn encode(
2681 self,
2682 encoder: &mut fidl::encoding::Encoder<'_, D>,
2683 offset: usize,
2684 _depth: fidl::encoding::Depth,
2685 ) -> fidl::Result<()> {
2686 encoder.debug_check_bounds::<CompositeSetDaiFormatRequest>(offset);
2687 fidl::encoding::Encode::<CompositeSetDaiFormatRequest, D>::encode(
2689 (
2690 <u64 as fidl::encoding::ValueTypeMarker>::borrow(&self.processing_element_id),
2691 <DaiFormat as fidl::encoding::ValueTypeMarker>::borrow(&self.format),
2692 ),
2693 encoder,
2694 offset,
2695 _depth,
2696 )
2697 }
2698 }
2699 unsafe impl<
2700 D: fidl::encoding::ResourceDialect,
2701 T0: fidl::encoding::Encode<u64, D>,
2702 T1: fidl::encoding::Encode<DaiFormat, D>,
2703 > fidl::encoding::Encode<CompositeSetDaiFormatRequest, D> for (T0, T1)
2704 {
2705 #[inline]
2706 unsafe fn encode(
2707 self,
2708 encoder: &mut fidl::encoding::Encoder<'_, D>,
2709 offset: usize,
2710 depth: fidl::encoding::Depth,
2711 ) -> fidl::Result<()> {
2712 encoder.debug_check_bounds::<CompositeSetDaiFormatRequest>(offset);
2713 self.0.encode(encoder, offset + 0, depth)?;
2717 self.1.encode(encoder, offset + 8, depth)?;
2718 Ok(())
2719 }
2720 }
2721
2722 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2723 for CompositeSetDaiFormatRequest
2724 {
2725 #[inline(always)]
2726 fn new_empty() -> Self {
2727 Self {
2728 processing_element_id: fidl::new_empty!(u64, D),
2729 format: fidl::new_empty!(DaiFormat, D),
2730 }
2731 }
2732
2733 #[inline]
2734 unsafe fn decode(
2735 &mut self,
2736 decoder: &mut fidl::encoding::Decoder<'_, D>,
2737 offset: usize,
2738 _depth: fidl::encoding::Depth,
2739 ) -> fidl::Result<()> {
2740 decoder.debug_check_bounds::<Self>(offset);
2741 fidl::decode!(u64, D, &mut self.processing_element_id, decoder, offset + 0, _depth)?;
2743 fidl::decode!(DaiFormat, D, &mut self.format, decoder, offset + 8, _depth)?;
2744 Ok(())
2745 }
2746 }
2747
2748 impl fidl::encoding::ValueTypeMarker for CompositeGetDaiFormatsResponse {
2749 type Borrowed<'a> = &'a Self;
2750 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2751 value
2752 }
2753 }
2754
2755 unsafe impl fidl::encoding::TypeMarker for CompositeGetDaiFormatsResponse {
2756 type Owned = Self;
2757
2758 #[inline(always)]
2759 fn inline_align(_context: fidl::encoding::Context) -> usize {
2760 8
2761 }
2762
2763 #[inline(always)]
2764 fn inline_size(_context: fidl::encoding::Context) -> usize {
2765 16
2766 }
2767 }
2768
2769 unsafe impl<D: fidl::encoding::ResourceDialect>
2770 fidl::encoding::Encode<CompositeGetDaiFormatsResponse, D>
2771 for &CompositeGetDaiFormatsResponse
2772 {
2773 #[inline]
2774 unsafe fn encode(
2775 self,
2776 encoder: &mut fidl::encoding::Encoder<'_, D>,
2777 offset: usize,
2778 _depth: fidl::encoding::Depth,
2779 ) -> fidl::Result<()> {
2780 encoder.debug_check_bounds::<CompositeGetDaiFormatsResponse>(offset);
2781 fidl::encoding::Encode::<CompositeGetDaiFormatsResponse, D>::encode(
2783 (
2784 <fidl::encoding::Vector<DaiSupportedFormats, 64> as fidl::encoding::ValueTypeMarker>::borrow(&self.dai_formats),
2785 ),
2786 encoder, offset, _depth
2787 )
2788 }
2789 }
2790 unsafe impl<
2791 D: fidl::encoding::ResourceDialect,
2792 T0: fidl::encoding::Encode<fidl::encoding::Vector<DaiSupportedFormats, 64>, D>,
2793 > fidl::encoding::Encode<CompositeGetDaiFormatsResponse, D> for (T0,)
2794 {
2795 #[inline]
2796 unsafe fn encode(
2797 self,
2798 encoder: &mut fidl::encoding::Encoder<'_, D>,
2799 offset: usize,
2800 depth: fidl::encoding::Depth,
2801 ) -> fidl::Result<()> {
2802 encoder.debug_check_bounds::<CompositeGetDaiFormatsResponse>(offset);
2803 self.0.encode(encoder, offset + 0, depth)?;
2807 Ok(())
2808 }
2809 }
2810
2811 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2812 for CompositeGetDaiFormatsResponse
2813 {
2814 #[inline(always)]
2815 fn new_empty() -> Self {
2816 Self {
2817 dai_formats: fidl::new_empty!(fidl::encoding::Vector<DaiSupportedFormats, 64>, D),
2818 }
2819 }
2820
2821 #[inline]
2822 unsafe fn decode(
2823 &mut self,
2824 decoder: &mut fidl::encoding::Decoder<'_, D>,
2825 offset: usize,
2826 _depth: fidl::encoding::Depth,
2827 ) -> fidl::Result<()> {
2828 decoder.debug_check_bounds::<Self>(offset);
2829 fidl::decode!(fidl::encoding::Vector<DaiSupportedFormats, 64>, D, &mut self.dai_formats, decoder, offset + 0, _depth)?;
2831 Ok(())
2832 }
2833 }
2834
2835 impl fidl::encoding::ValueTypeMarker for CompositeGetRingBufferFormatsResponse {
2836 type Borrowed<'a> = &'a Self;
2837 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2838 value
2839 }
2840 }
2841
2842 unsafe impl fidl::encoding::TypeMarker for CompositeGetRingBufferFormatsResponse {
2843 type Owned = Self;
2844
2845 #[inline(always)]
2846 fn inline_align(_context: fidl::encoding::Context) -> usize {
2847 8
2848 }
2849
2850 #[inline(always)]
2851 fn inline_size(_context: fidl::encoding::Context) -> usize {
2852 16
2853 }
2854 }
2855
2856 unsafe impl<D: fidl::encoding::ResourceDialect>
2857 fidl::encoding::Encode<CompositeGetRingBufferFormatsResponse, D>
2858 for &CompositeGetRingBufferFormatsResponse
2859 {
2860 #[inline]
2861 unsafe fn encode(
2862 self,
2863 encoder: &mut fidl::encoding::Encoder<'_, D>,
2864 offset: usize,
2865 _depth: fidl::encoding::Depth,
2866 ) -> fidl::Result<()> {
2867 encoder.debug_check_bounds::<CompositeGetRingBufferFormatsResponse>(offset);
2868 fidl::encoding::Encode::<CompositeGetRingBufferFormatsResponse, D>::encode(
2870 (
2871 <fidl::encoding::Vector<SupportedFormats, 64> as fidl::encoding::ValueTypeMarker>::borrow(&self.ring_buffer_formats),
2872 ),
2873 encoder, offset, _depth
2874 )
2875 }
2876 }
2877 unsafe impl<
2878 D: fidl::encoding::ResourceDialect,
2879 T0: fidl::encoding::Encode<fidl::encoding::Vector<SupportedFormats, 64>, D>,
2880 > fidl::encoding::Encode<CompositeGetRingBufferFormatsResponse, D> for (T0,)
2881 {
2882 #[inline]
2883 unsafe fn encode(
2884 self,
2885 encoder: &mut fidl::encoding::Encoder<'_, D>,
2886 offset: usize,
2887 depth: fidl::encoding::Depth,
2888 ) -> fidl::Result<()> {
2889 encoder.debug_check_bounds::<CompositeGetRingBufferFormatsResponse>(offset);
2890 self.0.encode(encoder, offset + 0, depth)?;
2894 Ok(())
2895 }
2896 }
2897
2898 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2899 for CompositeGetRingBufferFormatsResponse
2900 {
2901 #[inline(always)]
2902 fn new_empty() -> Self {
2903 Self {
2904 ring_buffer_formats: fidl::new_empty!(fidl::encoding::Vector<SupportedFormats, 64>, D),
2905 }
2906 }
2907
2908 #[inline]
2909 unsafe fn decode(
2910 &mut self,
2911 decoder: &mut fidl::encoding::Decoder<'_, D>,
2912 offset: usize,
2913 _depth: fidl::encoding::Depth,
2914 ) -> fidl::Result<()> {
2915 decoder.debug_check_bounds::<Self>(offset);
2916 fidl::decode!(fidl::encoding::Vector<SupportedFormats, 64>, D, &mut self.ring_buffer_formats, decoder, offset + 0, _depth)?;
2918 Ok(())
2919 }
2920 }
2921
2922 impl fidl::encoding::ValueTypeMarker for DaiFormat {
2923 type Borrowed<'a> = &'a Self;
2924 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2925 value
2926 }
2927 }
2928
2929 unsafe impl fidl::encoding::TypeMarker for DaiFormat {
2930 type Owned = Self;
2931
2932 #[inline(always)]
2933 fn inline_align(_context: fidl::encoding::Context) -> usize {
2934 8
2935 }
2936
2937 #[inline(always)]
2938 fn inline_size(_context: fidl::encoding::Context) -> usize {
2939 48
2940 }
2941 }
2942
2943 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<DaiFormat, D>
2944 for &DaiFormat
2945 {
2946 #[inline]
2947 unsafe fn encode(
2948 self,
2949 encoder: &mut fidl::encoding::Encoder<'_, D>,
2950 offset: usize,
2951 _depth: fidl::encoding::Depth,
2952 ) -> fidl::Result<()> {
2953 encoder.debug_check_bounds::<DaiFormat>(offset);
2954 fidl::encoding::Encode::<DaiFormat, D>::encode(
2956 (
2957 <u32 as fidl::encoding::ValueTypeMarker>::borrow(&self.number_of_channels),
2958 <u64 as fidl::encoding::ValueTypeMarker>::borrow(&self.channels_to_use_bitmask),
2959 <DaiSampleFormat as fidl::encoding::ValueTypeMarker>::borrow(
2960 &self.sample_format,
2961 ),
2962 <DaiFrameFormat as fidl::encoding::ValueTypeMarker>::borrow(&self.frame_format),
2963 <u32 as fidl::encoding::ValueTypeMarker>::borrow(&self.frame_rate),
2964 <u8 as fidl::encoding::ValueTypeMarker>::borrow(&self.bits_per_slot),
2965 <u8 as fidl::encoding::ValueTypeMarker>::borrow(&self.bits_per_sample),
2966 ),
2967 encoder,
2968 offset,
2969 _depth,
2970 )
2971 }
2972 }
2973 unsafe impl<
2974 D: fidl::encoding::ResourceDialect,
2975 T0: fidl::encoding::Encode<u32, D>,
2976 T1: fidl::encoding::Encode<u64, D>,
2977 T2: fidl::encoding::Encode<DaiSampleFormat, D>,
2978 T3: fidl::encoding::Encode<DaiFrameFormat, D>,
2979 T4: fidl::encoding::Encode<u32, D>,
2980 T5: fidl::encoding::Encode<u8, D>,
2981 T6: fidl::encoding::Encode<u8, D>,
2982 > fidl::encoding::Encode<DaiFormat, D> for (T0, T1, T2, T3, T4, T5, T6)
2983 {
2984 #[inline]
2985 unsafe fn encode(
2986 self,
2987 encoder: &mut fidl::encoding::Encoder<'_, D>,
2988 offset: usize,
2989 depth: fidl::encoding::Depth,
2990 ) -> fidl::Result<()> {
2991 encoder.debug_check_bounds::<DaiFormat>(offset);
2992 unsafe {
2995 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(0);
2996 (ptr as *mut u64).write_unaligned(0);
2997 }
2998 unsafe {
2999 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(16);
3000 (ptr as *mut u64).write_unaligned(0);
3001 }
3002 unsafe {
3003 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(40);
3004 (ptr as *mut u64).write_unaligned(0);
3005 }
3006 self.0.encode(encoder, offset + 0, depth)?;
3008 self.1.encode(encoder, offset + 8, depth)?;
3009 self.2.encode(encoder, offset + 16, depth)?;
3010 self.3.encode(encoder, offset + 24, depth)?;
3011 self.4.encode(encoder, offset + 40, depth)?;
3012 self.5.encode(encoder, offset + 44, depth)?;
3013 self.6.encode(encoder, offset + 45, depth)?;
3014 Ok(())
3015 }
3016 }
3017
3018 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for DaiFormat {
3019 #[inline(always)]
3020 fn new_empty() -> Self {
3021 Self {
3022 number_of_channels: fidl::new_empty!(u32, D),
3023 channels_to_use_bitmask: fidl::new_empty!(u64, D),
3024 sample_format: fidl::new_empty!(DaiSampleFormat, D),
3025 frame_format: fidl::new_empty!(DaiFrameFormat, D),
3026 frame_rate: fidl::new_empty!(u32, D),
3027 bits_per_slot: fidl::new_empty!(u8, D),
3028 bits_per_sample: fidl::new_empty!(u8, D),
3029 }
3030 }
3031
3032 #[inline]
3033 unsafe fn decode(
3034 &mut self,
3035 decoder: &mut fidl::encoding::Decoder<'_, D>,
3036 offset: usize,
3037 _depth: fidl::encoding::Depth,
3038 ) -> fidl::Result<()> {
3039 decoder.debug_check_bounds::<Self>(offset);
3040 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(0) };
3042 let padval = unsafe { (ptr as *const u64).read_unaligned() };
3043 let mask = 0xffffffff00000000u64;
3044 let maskedval = padval & mask;
3045 if maskedval != 0 {
3046 return Err(fidl::Error::NonZeroPadding {
3047 padding_start: offset + 0 + ((mask as u64).trailing_zeros() / 8) as usize,
3048 });
3049 }
3050 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(16) };
3051 let padval = unsafe { (ptr as *const u64).read_unaligned() };
3052 let mask = 0xffffffffffffff00u64;
3053 let maskedval = padval & mask;
3054 if maskedval != 0 {
3055 return Err(fidl::Error::NonZeroPadding {
3056 padding_start: offset + 16 + ((mask as u64).trailing_zeros() / 8) as usize,
3057 });
3058 }
3059 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(40) };
3060 let padval = unsafe { (ptr as *const u64).read_unaligned() };
3061 let mask = 0xffff000000000000u64;
3062 let maskedval = padval & mask;
3063 if maskedval != 0 {
3064 return Err(fidl::Error::NonZeroPadding {
3065 padding_start: offset + 40 + ((mask as u64).trailing_zeros() / 8) as usize,
3066 });
3067 }
3068 fidl::decode!(u32, D, &mut self.number_of_channels, decoder, offset + 0, _depth)?;
3069 fidl::decode!(u64, D, &mut self.channels_to_use_bitmask, decoder, offset + 8, _depth)?;
3070 fidl::decode!(
3071 DaiSampleFormat,
3072 D,
3073 &mut self.sample_format,
3074 decoder,
3075 offset + 16,
3076 _depth
3077 )?;
3078 fidl::decode!(DaiFrameFormat, D, &mut self.frame_format, decoder, offset + 24, _depth)?;
3079 fidl::decode!(u32, D, &mut self.frame_rate, decoder, offset + 40, _depth)?;
3080 fidl::decode!(u8, D, &mut self.bits_per_slot, decoder, offset + 44, _depth)?;
3081 fidl::decode!(u8, D, &mut self.bits_per_sample, decoder, offset + 45, _depth)?;
3082 Ok(())
3083 }
3084 }
3085
3086 impl fidl::encoding::ValueTypeMarker for DaiFrameFormatCustom {
3087 type Borrowed<'a> = &'a Self;
3088 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3089 value
3090 }
3091 }
3092
3093 unsafe impl fidl::encoding::TypeMarker for DaiFrameFormatCustom {
3094 type Owned = Self;
3095
3096 #[inline(always)]
3097 fn inline_align(_context: fidl::encoding::Context) -> usize {
3098 1
3099 }
3100
3101 #[inline(always)]
3102 fn inline_size(_context: fidl::encoding::Context) -> usize {
3103 4
3104 }
3105 }
3106
3107 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<DaiFrameFormatCustom, D>
3108 for &DaiFrameFormatCustom
3109 {
3110 #[inline]
3111 unsafe fn encode(
3112 self,
3113 encoder: &mut fidl::encoding::Encoder<'_, D>,
3114 offset: usize,
3115 _depth: fidl::encoding::Depth,
3116 ) -> fidl::Result<()> {
3117 encoder.debug_check_bounds::<DaiFrameFormatCustom>(offset);
3118 fidl::encoding::Encode::<DaiFrameFormatCustom, D>::encode(
3120 (
3121 <bool as fidl::encoding::ValueTypeMarker>::borrow(&self.left_justified),
3122 <bool as fidl::encoding::ValueTypeMarker>::borrow(&self.sclk_on_raising),
3123 <i8 as fidl::encoding::ValueTypeMarker>::borrow(&self.frame_sync_sclks_offset),
3124 <u8 as fidl::encoding::ValueTypeMarker>::borrow(&self.frame_sync_size),
3125 ),
3126 encoder,
3127 offset,
3128 _depth,
3129 )
3130 }
3131 }
3132 unsafe impl<
3133 D: fidl::encoding::ResourceDialect,
3134 T0: fidl::encoding::Encode<bool, D>,
3135 T1: fidl::encoding::Encode<bool, D>,
3136 T2: fidl::encoding::Encode<i8, D>,
3137 T3: fidl::encoding::Encode<u8, D>,
3138 > fidl::encoding::Encode<DaiFrameFormatCustom, D> for (T0, T1, T2, T3)
3139 {
3140 #[inline]
3141 unsafe fn encode(
3142 self,
3143 encoder: &mut fidl::encoding::Encoder<'_, D>,
3144 offset: usize,
3145 depth: fidl::encoding::Depth,
3146 ) -> fidl::Result<()> {
3147 encoder.debug_check_bounds::<DaiFrameFormatCustom>(offset);
3148 self.0.encode(encoder, offset + 0, depth)?;
3152 self.1.encode(encoder, offset + 1, depth)?;
3153 self.2.encode(encoder, offset + 2, depth)?;
3154 self.3.encode(encoder, offset + 3, depth)?;
3155 Ok(())
3156 }
3157 }
3158
3159 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for DaiFrameFormatCustom {
3160 #[inline(always)]
3161 fn new_empty() -> Self {
3162 Self {
3163 left_justified: fidl::new_empty!(bool, D),
3164 sclk_on_raising: fidl::new_empty!(bool, D),
3165 frame_sync_sclks_offset: fidl::new_empty!(i8, D),
3166 frame_sync_size: fidl::new_empty!(u8, D),
3167 }
3168 }
3169
3170 #[inline]
3171 unsafe fn decode(
3172 &mut self,
3173 decoder: &mut fidl::encoding::Decoder<'_, D>,
3174 offset: usize,
3175 _depth: fidl::encoding::Depth,
3176 ) -> fidl::Result<()> {
3177 decoder.debug_check_bounds::<Self>(offset);
3178 fidl::decode!(bool, D, &mut self.left_justified, decoder, offset + 0, _depth)?;
3180 fidl::decode!(bool, D, &mut self.sclk_on_raising, decoder, offset + 1, _depth)?;
3181 fidl::decode!(i8, D, &mut self.frame_sync_sclks_offset, decoder, offset + 2, _depth)?;
3182 fidl::decode!(u8, D, &mut self.frame_sync_size, decoder, offset + 3, _depth)?;
3183 Ok(())
3184 }
3185 }
3186
3187 impl fidl::encoding::ValueTypeMarker for DaiGetPropertiesResponse {
3188 type Borrowed<'a> = &'a Self;
3189 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3190 value
3191 }
3192 }
3193
3194 unsafe impl fidl::encoding::TypeMarker for DaiGetPropertiesResponse {
3195 type Owned = Self;
3196
3197 #[inline(always)]
3198 fn inline_align(_context: fidl::encoding::Context) -> usize {
3199 8
3200 }
3201
3202 #[inline(always)]
3203 fn inline_size(_context: fidl::encoding::Context) -> usize {
3204 16
3205 }
3206 }
3207
3208 unsafe impl<D: fidl::encoding::ResourceDialect>
3209 fidl::encoding::Encode<DaiGetPropertiesResponse, D> for &DaiGetPropertiesResponse
3210 {
3211 #[inline]
3212 unsafe fn encode(
3213 self,
3214 encoder: &mut fidl::encoding::Encoder<'_, D>,
3215 offset: usize,
3216 _depth: fidl::encoding::Depth,
3217 ) -> fidl::Result<()> {
3218 encoder.debug_check_bounds::<DaiGetPropertiesResponse>(offset);
3219 fidl::encoding::Encode::<DaiGetPropertiesResponse, D>::encode(
3221 (<DaiProperties as fidl::encoding::ValueTypeMarker>::borrow(&self.properties),),
3222 encoder,
3223 offset,
3224 _depth,
3225 )
3226 }
3227 }
3228 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<DaiProperties, D>>
3229 fidl::encoding::Encode<DaiGetPropertiesResponse, D> for (T0,)
3230 {
3231 #[inline]
3232 unsafe fn encode(
3233 self,
3234 encoder: &mut fidl::encoding::Encoder<'_, D>,
3235 offset: usize,
3236 depth: fidl::encoding::Depth,
3237 ) -> fidl::Result<()> {
3238 encoder.debug_check_bounds::<DaiGetPropertiesResponse>(offset);
3239 self.0.encode(encoder, offset + 0, depth)?;
3243 Ok(())
3244 }
3245 }
3246
3247 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
3248 for DaiGetPropertiesResponse
3249 {
3250 #[inline(always)]
3251 fn new_empty() -> Self {
3252 Self { properties: fidl::new_empty!(DaiProperties, D) }
3253 }
3254
3255 #[inline]
3256 unsafe fn decode(
3257 &mut self,
3258 decoder: &mut fidl::encoding::Decoder<'_, D>,
3259 offset: usize,
3260 _depth: fidl::encoding::Depth,
3261 ) -> fidl::Result<()> {
3262 decoder.debug_check_bounds::<Self>(offset);
3263 fidl::decode!(DaiProperties, D, &mut self.properties, decoder, offset + 0, _depth)?;
3265 Ok(())
3266 }
3267 }
3268
3269 impl fidl::encoding::ValueTypeMarker for DaiSupportedFormats {
3270 type Borrowed<'a> = &'a Self;
3271 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3272 value
3273 }
3274 }
3275
3276 unsafe impl fidl::encoding::TypeMarker for DaiSupportedFormats {
3277 type Owned = Self;
3278
3279 #[inline(always)]
3280 fn inline_align(_context: fidl::encoding::Context) -> usize {
3281 8
3282 }
3283
3284 #[inline(always)]
3285 fn inline_size(_context: fidl::encoding::Context) -> usize {
3286 96
3287 }
3288 }
3289
3290 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<DaiSupportedFormats, D>
3291 for &DaiSupportedFormats
3292 {
3293 #[inline]
3294 unsafe fn encode(
3295 self,
3296 encoder: &mut fidl::encoding::Encoder<'_, D>,
3297 offset: usize,
3298 _depth: fidl::encoding::Depth,
3299 ) -> fidl::Result<()> {
3300 encoder.debug_check_bounds::<DaiSupportedFormats>(offset);
3301 fidl::encoding::Encode::<DaiSupportedFormats, D>::encode(
3303 (
3304 <fidl::encoding::Vector<u32, 64> as fidl::encoding::ValueTypeMarker>::borrow(&self.number_of_channels),
3305 <fidl::encoding::Vector<DaiSampleFormat, 4> as fidl::encoding::ValueTypeMarker>::borrow(&self.sample_formats),
3306 <fidl::encoding::Vector<DaiFrameFormat, 64> as fidl::encoding::ValueTypeMarker>::borrow(&self.frame_formats),
3307 <fidl::encoding::Vector<u32, 64> as fidl::encoding::ValueTypeMarker>::borrow(&self.frame_rates),
3308 <fidl::encoding::Vector<u8, 8> as fidl::encoding::ValueTypeMarker>::borrow(&self.bits_per_slot),
3309 <fidl::encoding::Vector<u8, 8> as fidl::encoding::ValueTypeMarker>::borrow(&self.bits_per_sample),
3310 ),
3311 encoder, offset, _depth
3312 )
3313 }
3314 }
3315 unsafe impl<
3316 D: fidl::encoding::ResourceDialect,
3317 T0: fidl::encoding::Encode<fidl::encoding::Vector<u32, 64>, D>,
3318 T1: fidl::encoding::Encode<fidl::encoding::Vector<DaiSampleFormat, 4>, D>,
3319 T2: fidl::encoding::Encode<fidl::encoding::Vector<DaiFrameFormat, 64>, D>,
3320 T3: fidl::encoding::Encode<fidl::encoding::Vector<u32, 64>, D>,
3321 T4: fidl::encoding::Encode<fidl::encoding::Vector<u8, 8>, D>,
3322 T5: fidl::encoding::Encode<fidl::encoding::Vector<u8, 8>, D>,
3323 > fidl::encoding::Encode<DaiSupportedFormats, D> for (T0, T1, T2, T3, T4, T5)
3324 {
3325 #[inline]
3326 unsafe fn encode(
3327 self,
3328 encoder: &mut fidl::encoding::Encoder<'_, D>,
3329 offset: usize,
3330 depth: fidl::encoding::Depth,
3331 ) -> fidl::Result<()> {
3332 encoder.debug_check_bounds::<DaiSupportedFormats>(offset);
3333 self.0.encode(encoder, offset + 0, depth)?;
3337 self.1.encode(encoder, offset + 16, depth)?;
3338 self.2.encode(encoder, offset + 32, depth)?;
3339 self.3.encode(encoder, offset + 48, depth)?;
3340 self.4.encode(encoder, offset + 64, depth)?;
3341 self.5.encode(encoder, offset + 80, depth)?;
3342 Ok(())
3343 }
3344 }
3345
3346 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for DaiSupportedFormats {
3347 #[inline(always)]
3348 fn new_empty() -> Self {
3349 Self {
3350 number_of_channels: fidl::new_empty!(fidl::encoding::Vector<u32, 64>, D),
3351 sample_formats: fidl::new_empty!(fidl::encoding::Vector<DaiSampleFormat, 4>, D),
3352 frame_formats: fidl::new_empty!(fidl::encoding::Vector<DaiFrameFormat, 64>, D),
3353 frame_rates: fidl::new_empty!(fidl::encoding::Vector<u32, 64>, D),
3354 bits_per_slot: fidl::new_empty!(fidl::encoding::Vector<u8, 8>, D),
3355 bits_per_sample: fidl::new_empty!(fidl::encoding::Vector<u8, 8>, D),
3356 }
3357 }
3358
3359 #[inline]
3360 unsafe fn decode(
3361 &mut self,
3362 decoder: &mut fidl::encoding::Decoder<'_, D>,
3363 offset: usize,
3364 _depth: fidl::encoding::Depth,
3365 ) -> fidl::Result<()> {
3366 decoder.debug_check_bounds::<Self>(offset);
3367 fidl::decode!(fidl::encoding::Vector<u32, 64>, D, &mut self.number_of_channels, decoder, offset + 0, _depth)?;
3369 fidl::decode!(fidl::encoding::Vector<DaiSampleFormat, 4>, D, &mut self.sample_formats, decoder, offset + 16, _depth)?;
3370 fidl::decode!(fidl::encoding::Vector<DaiFrameFormat, 64>, D, &mut self.frame_formats, decoder, offset + 32, _depth)?;
3371 fidl::decode!(fidl::encoding::Vector<u32, 64>, D, &mut self.frame_rates, decoder, offset + 48, _depth)?;
3372 fidl::decode!(fidl::encoding::Vector<u8, 8>, D, &mut self.bits_per_slot, decoder, offset + 64, _depth)?;
3373 fidl::decode!(fidl::encoding::Vector<u8, 8>, D, &mut self.bits_per_sample, decoder, offset + 80, _depth)?;
3374 Ok(())
3375 }
3376 }
3377
3378 impl fidl::encoding::ValueTypeMarker for DaiGetDaiFormatsResponse {
3379 type Borrowed<'a> = &'a Self;
3380 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3381 value
3382 }
3383 }
3384
3385 unsafe impl fidl::encoding::TypeMarker for DaiGetDaiFormatsResponse {
3386 type Owned = Self;
3387
3388 #[inline(always)]
3389 fn inline_align(_context: fidl::encoding::Context) -> usize {
3390 8
3391 }
3392
3393 #[inline(always)]
3394 fn inline_size(_context: fidl::encoding::Context) -> usize {
3395 16
3396 }
3397 }
3398
3399 unsafe impl<D: fidl::encoding::ResourceDialect>
3400 fidl::encoding::Encode<DaiGetDaiFormatsResponse, D> for &DaiGetDaiFormatsResponse
3401 {
3402 #[inline]
3403 unsafe fn encode(
3404 self,
3405 encoder: &mut fidl::encoding::Encoder<'_, D>,
3406 offset: usize,
3407 _depth: fidl::encoding::Depth,
3408 ) -> fidl::Result<()> {
3409 encoder.debug_check_bounds::<DaiGetDaiFormatsResponse>(offset);
3410 fidl::encoding::Encode::<DaiGetDaiFormatsResponse, D>::encode(
3412 (
3413 <fidl::encoding::Vector<DaiSupportedFormats, 64> as fidl::encoding::ValueTypeMarker>::borrow(&self.dai_formats),
3414 ),
3415 encoder, offset, _depth
3416 )
3417 }
3418 }
3419 unsafe impl<
3420 D: fidl::encoding::ResourceDialect,
3421 T0: fidl::encoding::Encode<fidl::encoding::Vector<DaiSupportedFormats, 64>, D>,
3422 > fidl::encoding::Encode<DaiGetDaiFormatsResponse, D> for (T0,)
3423 {
3424 #[inline]
3425 unsafe fn encode(
3426 self,
3427 encoder: &mut fidl::encoding::Encoder<'_, D>,
3428 offset: usize,
3429 depth: fidl::encoding::Depth,
3430 ) -> fidl::Result<()> {
3431 encoder.debug_check_bounds::<DaiGetDaiFormatsResponse>(offset);
3432 self.0.encode(encoder, offset + 0, depth)?;
3436 Ok(())
3437 }
3438 }
3439
3440 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
3441 for DaiGetDaiFormatsResponse
3442 {
3443 #[inline(always)]
3444 fn new_empty() -> Self {
3445 Self {
3446 dai_formats: fidl::new_empty!(fidl::encoding::Vector<DaiSupportedFormats, 64>, D),
3447 }
3448 }
3449
3450 #[inline]
3451 unsafe fn decode(
3452 &mut self,
3453 decoder: &mut fidl::encoding::Decoder<'_, D>,
3454 offset: usize,
3455 _depth: fidl::encoding::Depth,
3456 ) -> fidl::Result<()> {
3457 decoder.debug_check_bounds::<Self>(offset);
3458 fidl::decode!(fidl::encoding::Vector<DaiSupportedFormats, 64>, D, &mut self.dai_formats, decoder, offset + 0, _depth)?;
3460 Ok(())
3461 }
3462 }
3463
3464 impl fidl::encoding::ValueTypeMarker for DaiGetRingBufferFormatsResponse {
3465 type Borrowed<'a> = &'a Self;
3466 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3467 value
3468 }
3469 }
3470
3471 unsafe impl fidl::encoding::TypeMarker for DaiGetRingBufferFormatsResponse {
3472 type Owned = Self;
3473
3474 #[inline(always)]
3475 fn inline_align(_context: fidl::encoding::Context) -> usize {
3476 8
3477 }
3478
3479 #[inline(always)]
3480 fn inline_size(_context: fidl::encoding::Context) -> usize {
3481 16
3482 }
3483 }
3484
3485 unsafe impl<D: fidl::encoding::ResourceDialect>
3486 fidl::encoding::Encode<DaiGetRingBufferFormatsResponse, D>
3487 for &DaiGetRingBufferFormatsResponse
3488 {
3489 #[inline]
3490 unsafe fn encode(
3491 self,
3492 encoder: &mut fidl::encoding::Encoder<'_, D>,
3493 offset: usize,
3494 _depth: fidl::encoding::Depth,
3495 ) -> fidl::Result<()> {
3496 encoder.debug_check_bounds::<DaiGetRingBufferFormatsResponse>(offset);
3497 fidl::encoding::Encode::<DaiGetRingBufferFormatsResponse, D>::encode(
3499 (
3500 <fidl::encoding::Vector<SupportedFormats, 64> as fidl::encoding::ValueTypeMarker>::borrow(&self.ring_buffer_formats),
3501 ),
3502 encoder, offset, _depth
3503 )
3504 }
3505 }
3506 unsafe impl<
3507 D: fidl::encoding::ResourceDialect,
3508 T0: fidl::encoding::Encode<fidl::encoding::Vector<SupportedFormats, 64>, D>,
3509 > fidl::encoding::Encode<DaiGetRingBufferFormatsResponse, D> for (T0,)
3510 {
3511 #[inline]
3512 unsafe fn encode(
3513 self,
3514 encoder: &mut fidl::encoding::Encoder<'_, D>,
3515 offset: usize,
3516 depth: fidl::encoding::Depth,
3517 ) -> fidl::Result<()> {
3518 encoder.debug_check_bounds::<DaiGetRingBufferFormatsResponse>(offset);
3519 self.0.encode(encoder, offset + 0, depth)?;
3523 Ok(())
3524 }
3525 }
3526
3527 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
3528 for DaiGetRingBufferFormatsResponse
3529 {
3530 #[inline(always)]
3531 fn new_empty() -> Self {
3532 Self {
3533 ring_buffer_formats: fidl::new_empty!(fidl::encoding::Vector<SupportedFormats, 64>, D),
3534 }
3535 }
3536
3537 #[inline]
3538 unsafe fn decode(
3539 &mut self,
3540 decoder: &mut fidl::encoding::Decoder<'_, D>,
3541 offset: usize,
3542 _depth: fidl::encoding::Depth,
3543 ) -> fidl::Result<()> {
3544 decoder.debug_check_bounds::<Self>(offset);
3545 fidl::decode!(fidl::encoding::Vector<SupportedFormats, 64>, D, &mut self.ring_buffer_formats, decoder, offset + 0, _depth)?;
3547 Ok(())
3548 }
3549 }
3550
3551 impl fidl::encoding::ValueTypeMarker for HealthGetHealthStateResponse {
3552 type Borrowed<'a> = &'a Self;
3553 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3554 value
3555 }
3556 }
3557
3558 unsafe impl fidl::encoding::TypeMarker for HealthGetHealthStateResponse {
3559 type Owned = Self;
3560
3561 #[inline(always)]
3562 fn inline_align(_context: fidl::encoding::Context) -> usize {
3563 8
3564 }
3565
3566 #[inline(always)]
3567 fn inline_size(_context: fidl::encoding::Context) -> usize {
3568 16
3569 }
3570 }
3571
3572 unsafe impl<D: fidl::encoding::ResourceDialect>
3573 fidl::encoding::Encode<HealthGetHealthStateResponse, D> for &HealthGetHealthStateResponse
3574 {
3575 #[inline]
3576 unsafe fn encode(
3577 self,
3578 encoder: &mut fidl::encoding::Encoder<'_, D>,
3579 offset: usize,
3580 _depth: fidl::encoding::Depth,
3581 ) -> fidl::Result<()> {
3582 encoder.debug_check_bounds::<HealthGetHealthStateResponse>(offset);
3583 fidl::encoding::Encode::<HealthGetHealthStateResponse, D>::encode(
3585 (<HealthState as fidl::encoding::ValueTypeMarker>::borrow(&self.state),),
3586 encoder,
3587 offset,
3588 _depth,
3589 )
3590 }
3591 }
3592 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<HealthState, D>>
3593 fidl::encoding::Encode<HealthGetHealthStateResponse, D> for (T0,)
3594 {
3595 #[inline]
3596 unsafe fn encode(
3597 self,
3598 encoder: &mut fidl::encoding::Encoder<'_, D>,
3599 offset: usize,
3600 depth: fidl::encoding::Depth,
3601 ) -> fidl::Result<()> {
3602 encoder.debug_check_bounds::<HealthGetHealthStateResponse>(offset);
3603 self.0.encode(encoder, offset + 0, depth)?;
3607 Ok(())
3608 }
3609 }
3610
3611 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
3612 for HealthGetHealthStateResponse
3613 {
3614 #[inline(always)]
3615 fn new_empty() -> Self {
3616 Self { state: fidl::new_empty!(HealthState, D) }
3617 }
3618
3619 #[inline]
3620 unsafe fn decode(
3621 &mut self,
3622 decoder: &mut fidl::encoding::Decoder<'_, D>,
3623 offset: usize,
3624 _depth: fidl::encoding::Depth,
3625 ) -> fidl::Result<()> {
3626 decoder.debug_check_bounds::<Self>(offset);
3627 fidl::decode!(HealthState, D, &mut self.state, decoder, offset + 0, _depth)?;
3629 Ok(())
3630 }
3631 }
3632
3633 impl fidl::encoding::ValueTypeMarker for PcmFormat {
3634 type Borrowed<'a> = &'a Self;
3635 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3636 value
3637 }
3638 }
3639
3640 unsafe impl fidl::encoding::TypeMarker for PcmFormat {
3641 type Owned = Self;
3642
3643 #[inline(always)]
3644 fn inline_align(_context: fidl::encoding::Context) -> usize {
3645 4
3646 }
3647
3648 #[inline(always)]
3649 fn inline_size(_context: fidl::encoding::Context) -> usize {
3650 8
3651 }
3652 }
3653
3654 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<PcmFormat, D>
3655 for &PcmFormat
3656 {
3657 #[inline]
3658 unsafe fn encode(
3659 self,
3660 encoder: &mut fidl::encoding::Encoder<'_, D>,
3661 offset: usize,
3662 _depth: fidl::encoding::Depth,
3663 ) -> fidl::Result<()> {
3664 encoder.debug_check_bounds::<PcmFormat>(offset);
3665 fidl::encoding::Encode::<PcmFormat, D>::encode(
3667 (
3668 <u8 as fidl::encoding::ValueTypeMarker>::borrow(&self.number_of_channels),
3669 <SampleFormat as fidl::encoding::ValueTypeMarker>::borrow(&self.sample_format),
3670 <u8 as fidl::encoding::ValueTypeMarker>::borrow(&self.bytes_per_sample),
3671 <u8 as fidl::encoding::ValueTypeMarker>::borrow(&self.valid_bits_per_sample),
3672 <u32 as fidl::encoding::ValueTypeMarker>::borrow(&self.frame_rate),
3673 ),
3674 encoder,
3675 offset,
3676 _depth,
3677 )
3678 }
3679 }
3680 unsafe impl<
3681 D: fidl::encoding::ResourceDialect,
3682 T0: fidl::encoding::Encode<u8, D>,
3683 T1: fidl::encoding::Encode<SampleFormat, D>,
3684 T2: fidl::encoding::Encode<u8, D>,
3685 T3: fidl::encoding::Encode<u8, D>,
3686 T4: fidl::encoding::Encode<u32, D>,
3687 > fidl::encoding::Encode<PcmFormat, D> for (T0, T1, T2, T3, T4)
3688 {
3689 #[inline]
3690 unsafe fn encode(
3691 self,
3692 encoder: &mut fidl::encoding::Encoder<'_, D>,
3693 offset: usize,
3694 depth: fidl::encoding::Depth,
3695 ) -> fidl::Result<()> {
3696 encoder.debug_check_bounds::<PcmFormat>(offset);
3697 self.0.encode(encoder, offset + 0, depth)?;
3701 self.1.encode(encoder, offset + 1, depth)?;
3702 self.2.encode(encoder, offset + 2, depth)?;
3703 self.3.encode(encoder, offset + 3, depth)?;
3704 self.4.encode(encoder, offset + 4, depth)?;
3705 Ok(())
3706 }
3707 }
3708
3709 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for PcmFormat {
3710 #[inline(always)]
3711 fn new_empty() -> Self {
3712 Self {
3713 number_of_channels: fidl::new_empty!(u8, D),
3714 sample_format: fidl::new_empty!(SampleFormat, D),
3715 bytes_per_sample: fidl::new_empty!(u8, D),
3716 valid_bits_per_sample: fidl::new_empty!(u8, D),
3717 frame_rate: fidl::new_empty!(u32, D),
3718 }
3719 }
3720
3721 #[inline]
3722 unsafe fn decode(
3723 &mut self,
3724 decoder: &mut fidl::encoding::Decoder<'_, D>,
3725 offset: usize,
3726 _depth: fidl::encoding::Depth,
3727 ) -> fidl::Result<()> {
3728 decoder.debug_check_bounds::<Self>(offset);
3729 fidl::decode!(u8, D, &mut self.number_of_channels, decoder, offset + 0, _depth)?;
3731 fidl::decode!(SampleFormat, D, &mut self.sample_format, decoder, offset + 1, _depth)?;
3732 fidl::decode!(u8, D, &mut self.bytes_per_sample, decoder, offset + 2, _depth)?;
3733 fidl::decode!(u8, D, &mut self.valid_bits_per_sample, decoder, offset + 3, _depth)?;
3734 fidl::decode!(u32, D, &mut self.frame_rate, decoder, offset + 4, _depth)?;
3735 Ok(())
3736 }
3737 }
3738
3739 impl fidl::encoding::ValueTypeMarker for RingBufferGetPropertiesResponse {
3740 type Borrowed<'a> = &'a Self;
3741 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3742 value
3743 }
3744 }
3745
3746 unsafe impl fidl::encoding::TypeMarker for RingBufferGetPropertiesResponse {
3747 type Owned = Self;
3748
3749 #[inline(always)]
3750 fn inline_align(_context: fidl::encoding::Context) -> usize {
3751 8
3752 }
3753
3754 #[inline(always)]
3755 fn inline_size(_context: fidl::encoding::Context) -> usize {
3756 16
3757 }
3758 }
3759
3760 unsafe impl<D: fidl::encoding::ResourceDialect>
3761 fidl::encoding::Encode<RingBufferGetPropertiesResponse, D>
3762 for &RingBufferGetPropertiesResponse
3763 {
3764 #[inline]
3765 unsafe fn encode(
3766 self,
3767 encoder: &mut fidl::encoding::Encoder<'_, D>,
3768 offset: usize,
3769 _depth: fidl::encoding::Depth,
3770 ) -> fidl::Result<()> {
3771 encoder.debug_check_bounds::<RingBufferGetPropertiesResponse>(offset);
3772 fidl::encoding::Encode::<RingBufferGetPropertiesResponse, D>::encode(
3774 (<RingBufferProperties as fidl::encoding::ValueTypeMarker>::borrow(
3775 &self.properties,
3776 ),),
3777 encoder,
3778 offset,
3779 _depth,
3780 )
3781 }
3782 }
3783 unsafe impl<
3784 D: fidl::encoding::ResourceDialect,
3785 T0: fidl::encoding::Encode<RingBufferProperties, D>,
3786 > fidl::encoding::Encode<RingBufferGetPropertiesResponse, D> for (T0,)
3787 {
3788 #[inline]
3789 unsafe fn encode(
3790 self,
3791 encoder: &mut fidl::encoding::Encoder<'_, D>,
3792 offset: usize,
3793 depth: fidl::encoding::Depth,
3794 ) -> fidl::Result<()> {
3795 encoder.debug_check_bounds::<RingBufferGetPropertiesResponse>(offset);
3796 self.0.encode(encoder, offset + 0, depth)?;
3800 Ok(())
3801 }
3802 }
3803
3804 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
3805 for RingBufferGetPropertiesResponse
3806 {
3807 #[inline(always)]
3808 fn new_empty() -> Self {
3809 Self { properties: fidl::new_empty!(RingBufferProperties, D) }
3810 }
3811
3812 #[inline]
3813 unsafe fn decode(
3814 &mut self,
3815 decoder: &mut fidl::encoding::Decoder<'_, D>,
3816 offset: usize,
3817 _depth: fidl::encoding::Depth,
3818 ) -> fidl::Result<()> {
3819 decoder.debug_check_bounds::<Self>(offset);
3820 fidl::decode!(
3822 RingBufferProperties,
3823 D,
3824 &mut self.properties,
3825 decoder,
3826 offset + 0,
3827 _depth
3828 )?;
3829 Ok(())
3830 }
3831 }
3832
3833 impl fidl::encoding::ValueTypeMarker for RingBufferGetVmoRequest {
3834 type Borrowed<'a> = &'a Self;
3835 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3836 value
3837 }
3838 }
3839
3840 unsafe impl fidl::encoding::TypeMarker for RingBufferGetVmoRequest {
3841 type Owned = Self;
3842
3843 #[inline(always)]
3844 fn inline_align(_context: fidl::encoding::Context) -> usize {
3845 4
3846 }
3847
3848 #[inline(always)]
3849 fn inline_size(_context: fidl::encoding::Context) -> usize {
3850 8
3851 }
3852 #[inline(always)]
3853 fn encode_is_copy() -> bool {
3854 true
3855 }
3856
3857 #[inline(always)]
3858 fn decode_is_copy() -> bool {
3859 true
3860 }
3861 }
3862
3863 unsafe impl<D: fidl::encoding::ResourceDialect>
3864 fidl::encoding::Encode<RingBufferGetVmoRequest, D> for &RingBufferGetVmoRequest
3865 {
3866 #[inline]
3867 unsafe fn encode(
3868 self,
3869 encoder: &mut fidl::encoding::Encoder<'_, D>,
3870 offset: usize,
3871 _depth: fidl::encoding::Depth,
3872 ) -> fidl::Result<()> {
3873 encoder.debug_check_bounds::<RingBufferGetVmoRequest>(offset);
3874 unsafe {
3875 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
3877 (buf_ptr as *mut RingBufferGetVmoRequest)
3878 .write_unaligned((self as *const RingBufferGetVmoRequest).read());
3879 }
3882 Ok(())
3883 }
3884 }
3885 unsafe impl<
3886 D: fidl::encoding::ResourceDialect,
3887 T0: fidl::encoding::Encode<u32, D>,
3888 T1: fidl::encoding::Encode<u32, D>,
3889 > fidl::encoding::Encode<RingBufferGetVmoRequest, D> for (T0, T1)
3890 {
3891 #[inline]
3892 unsafe fn encode(
3893 self,
3894 encoder: &mut fidl::encoding::Encoder<'_, D>,
3895 offset: usize,
3896 depth: fidl::encoding::Depth,
3897 ) -> fidl::Result<()> {
3898 encoder.debug_check_bounds::<RingBufferGetVmoRequest>(offset);
3899 self.0.encode(encoder, offset + 0, depth)?;
3903 self.1.encode(encoder, offset + 4, depth)?;
3904 Ok(())
3905 }
3906 }
3907
3908 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
3909 for RingBufferGetVmoRequest
3910 {
3911 #[inline(always)]
3912 fn new_empty() -> Self {
3913 Self {
3914 min_frames: fidl::new_empty!(u32, D),
3915 clock_recovery_notifications_per_ring: fidl::new_empty!(u32, D),
3916 }
3917 }
3918
3919 #[inline]
3920 unsafe fn decode(
3921 &mut self,
3922 decoder: &mut fidl::encoding::Decoder<'_, D>,
3923 offset: usize,
3924 _depth: fidl::encoding::Depth,
3925 ) -> fidl::Result<()> {
3926 decoder.debug_check_bounds::<Self>(offset);
3927 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
3928 unsafe {
3931 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 8);
3932 }
3933 Ok(())
3934 }
3935 }
3936
3937 impl fidl::encoding::ValueTypeMarker for RingBufferPositionInfo {
3938 type Borrowed<'a> = &'a Self;
3939 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3940 value
3941 }
3942 }
3943
3944 unsafe impl fidl::encoding::TypeMarker for RingBufferPositionInfo {
3945 type Owned = Self;
3946
3947 #[inline(always)]
3948 fn inline_align(_context: fidl::encoding::Context) -> usize {
3949 8
3950 }
3951
3952 #[inline(always)]
3953 fn inline_size(_context: fidl::encoding::Context) -> usize {
3954 16
3955 }
3956 }
3957
3958 unsafe impl<D: fidl::encoding::ResourceDialect>
3959 fidl::encoding::Encode<RingBufferPositionInfo, D> for &RingBufferPositionInfo
3960 {
3961 #[inline]
3962 unsafe fn encode(
3963 self,
3964 encoder: &mut fidl::encoding::Encoder<'_, D>,
3965 offset: usize,
3966 _depth: fidl::encoding::Depth,
3967 ) -> fidl::Result<()> {
3968 encoder.debug_check_bounds::<RingBufferPositionInfo>(offset);
3969 unsafe {
3970 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
3972 (buf_ptr as *mut RingBufferPositionInfo)
3973 .write_unaligned((self as *const RingBufferPositionInfo).read());
3974 let padding_ptr = buf_ptr.offset(8) as *mut u64;
3977 let padding_mask = 0xffffffff00000000u64;
3978 padding_ptr.write_unaligned(padding_ptr.read_unaligned() & !padding_mask);
3979 }
3980 Ok(())
3981 }
3982 }
3983 unsafe impl<
3984 D: fidl::encoding::ResourceDialect,
3985 T0: fidl::encoding::Encode<i64, D>,
3986 T1: fidl::encoding::Encode<u32, D>,
3987 > fidl::encoding::Encode<RingBufferPositionInfo, D> for (T0, T1)
3988 {
3989 #[inline]
3990 unsafe fn encode(
3991 self,
3992 encoder: &mut fidl::encoding::Encoder<'_, D>,
3993 offset: usize,
3994 depth: fidl::encoding::Depth,
3995 ) -> fidl::Result<()> {
3996 encoder.debug_check_bounds::<RingBufferPositionInfo>(offset);
3997 unsafe {
4000 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(8);
4001 (ptr as *mut u64).write_unaligned(0);
4002 }
4003 self.0.encode(encoder, offset + 0, depth)?;
4005 self.1.encode(encoder, offset + 8, depth)?;
4006 Ok(())
4007 }
4008 }
4009
4010 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
4011 for RingBufferPositionInfo
4012 {
4013 #[inline(always)]
4014 fn new_empty() -> Self {
4015 Self { timestamp: fidl::new_empty!(i64, D), position: fidl::new_empty!(u32, D) }
4016 }
4017
4018 #[inline]
4019 unsafe fn decode(
4020 &mut self,
4021 decoder: &mut fidl::encoding::Decoder<'_, D>,
4022 offset: usize,
4023 _depth: fidl::encoding::Depth,
4024 ) -> fidl::Result<()> {
4025 decoder.debug_check_bounds::<Self>(offset);
4026 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
4027 let ptr = unsafe { buf_ptr.offset(8) };
4029 let padval = unsafe { (ptr as *const u64).read_unaligned() };
4030 let mask = 0xffffffff00000000u64;
4031 let maskedval = padval & mask;
4032 if maskedval != 0 {
4033 return Err(fidl::Error::NonZeroPadding {
4034 padding_start: offset + 8 + ((mask as u64).trailing_zeros() / 8) as usize,
4035 });
4036 }
4037 unsafe {
4039 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 16);
4040 }
4041 Ok(())
4042 }
4043 }
4044
4045 impl fidl::encoding::ValueTypeMarker for RingBufferSetActiveChannelsRequest {
4046 type Borrowed<'a> = &'a Self;
4047 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4048 value
4049 }
4050 }
4051
4052 unsafe impl fidl::encoding::TypeMarker for RingBufferSetActiveChannelsRequest {
4053 type Owned = Self;
4054
4055 #[inline(always)]
4056 fn inline_align(_context: fidl::encoding::Context) -> usize {
4057 8
4058 }
4059
4060 #[inline(always)]
4061 fn inline_size(_context: fidl::encoding::Context) -> usize {
4062 8
4063 }
4064 #[inline(always)]
4065 fn encode_is_copy() -> bool {
4066 true
4067 }
4068
4069 #[inline(always)]
4070 fn decode_is_copy() -> bool {
4071 true
4072 }
4073 }
4074
4075 unsafe impl<D: fidl::encoding::ResourceDialect>
4076 fidl::encoding::Encode<RingBufferSetActiveChannelsRequest, D>
4077 for &RingBufferSetActiveChannelsRequest
4078 {
4079 #[inline]
4080 unsafe fn encode(
4081 self,
4082 encoder: &mut fidl::encoding::Encoder<'_, D>,
4083 offset: usize,
4084 _depth: fidl::encoding::Depth,
4085 ) -> fidl::Result<()> {
4086 encoder.debug_check_bounds::<RingBufferSetActiveChannelsRequest>(offset);
4087 unsafe {
4088 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
4090 (buf_ptr as *mut RingBufferSetActiveChannelsRequest)
4091 .write_unaligned((self as *const RingBufferSetActiveChannelsRequest).read());
4092 }
4095 Ok(())
4096 }
4097 }
4098 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<u64, D>>
4099 fidl::encoding::Encode<RingBufferSetActiveChannelsRequest, D> for (T0,)
4100 {
4101 #[inline]
4102 unsafe fn encode(
4103 self,
4104 encoder: &mut fidl::encoding::Encoder<'_, D>,
4105 offset: usize,
4106 depth: fidl::encoding::Depth,
4107 ) -> fidl::Result<()> {
4108 encoder.debug_check_bounds::<RingBufferSetActiveChannelsRequest>(offset);
4109 self.0.encode(encoder, offset + 0, depth)?;
4113 Ok(())
4114 }
4115 }
4116
4117 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
4118 for RingBufferSetActiveChannelsRequest
4119 {
4120 #[inline(always)]
4121 fn new_empty() -> Self {
4122 Self { active_channels_bitmask: fidl::new_empty!(u64, D) }
4123 }
4124
4125 #[inline]
4126 unsafe fn decode(
4127 &mut self,
4128 decoder: &mut fidl::encoding::Decoder<'_, D>,
4129 offset: usize,
4130 _depth: fidl::encoding::Depth,
4131 ) -> fidl::Result<()> {
4132 decoder.debug_check_bounds::<Self>(offset);
4133 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
4134 unsafe {
4137 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 8);
4138 }
4139 Ok(())
4140 }
4141 }
4142
4143 impl fidl::encoding::ValueTypeMarker for RingBufferStartResponse {
4144 type Borrowed<'a> = &'a Self;
4145 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4146 value
4147 }
4148 }
4149
4150 unsafe impl fidl::encoding::TypeMarker for RingBufferStartResponse {
4151 type Owned = Self;
4152
4153 #[inline(always)]
4154 fn inline_align(_context: fidl::encoding::Context) -> usize {
4155 8
4156 }
4157
4158 #[inline(always)]
4159 fn inline_size(_context: fidl::encoding::Context) -> usize {
4160 8
4161 }
4162 #[inline(always)]
4163 fn encode_is_copy() -> bool {
4164 true
4165 }
4166
4167 #[inline(always)]
4168 fn decode_is_copy() -> bool {
4169 true
4170 }
4171 }
4172
4173 unsafe impl<D: fidl::encoding::ResourceDialect>
4174 fidl::encoding::Encode<RingBufferStartResponse, D> for &RingBufferStartResponse
4175 {
4176 #[inline]
4177 unsafe fn encode(
4178 self,
4179 encoder: &mut fidl::encoding::Encoder<'_, D>,
4180 offset: usize,
4181 _depth: fidl::encoding::Depth,
4182 ) -> fidl::Result<()> {
4183 encoder.debug_check_bounds::<RingBufferStartResponse>(offset);
4184 unsafe {
4185 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
4187 (buf_ptr as *mut RingBufferStartResponse)
4188 .write_unaligned((self as *const RingBufferStartResponse).read());
4189 }
4192 Ok(())
4193 }
4194 }
4195 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<i64, D>>
4196 fidl::encoding::Encode<RingBufferStartResponse, D> for (T0,)
4197 {
4198 #[inline]
4199 unsafe fn encode(
4200 self,
4201 encoder: &mut fidl::encoding::Encoder<'_, D>,
4202 offset: usize,
4203 depth: fidl::encoding::Depth,
4204 ) -> fidl::Result<()> {
4205 encoder.debug_check_bounds::<RingBufferStartResponse>(offset);
4206 self.0.encode(encoder, offset + 0, depth)?;
4210 Ok(())
4211 }
4212 }
4213
4214 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
4215 for RingBufferStartResponse
4216 {
4217 #[inline(always)]
4218 fn new_empty() -> Self {
4219 Self { start_time: fidl::new_empty!(i64, D) }
4220 }
4221
4222 #[inline]
4223 unsafe fn decode(
4224 &mut self,
4225 decoder: &mut fidl::encoding::Decoder<'_, D>,
4226 offset: usize,
4227 _depth: fidl::encoding::Depth,
4228 ) -> fidl::Result<()> {
4229 decoder.debug_check_bounds::<Self>(offset);
4230 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
4231 unsafe {
4234 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 8);
4235 }
4236 Ok(())
4237 }
4238 }
4239
4240 impl fidl::encoding::ValueTypeMarker for RingBufferWatchClockRecoveryPositionInfoResponse {
4241 type Borrowed<'a> = &'a Self;
4242 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4243 value
4244 }
4245 }
4246
4247 unsafe impl fidl::encoding::TypeMarker for RingBufferWatchClockRecoveryPositionInfoResponse {
4248 type Owned = Self;
4249
4250 #[inline(always)]
4251 fn inline_align(_context: fidl::encoding::Context) -> usize {
4252 8
4253 }
4254
4255 #[inline(always)]
4256 fn inline_size(_context: fidl::encoding::Context) -> usize {
4257 16
4258 }
4259 }
4260
4261 unsafe impl<D: fidl::encoding::ResourceDialect>
4262 fidl::encoding::Encode<RingBufferWatchClockRecoveryPositionInfoResponse, D>
4263 for &RingBufferWatchClockRecoveryPositionInfoResponse
4264 {
4265 #[inline]
4266 unsafe fn encode(
4267 self,
4268 encoder: &mut fidl::encoding::Encoder<'_, D>,
4269 offset: usize,
4270 _depth: fidl::encoding::Depth,
4271 ) -> fidl::Result<()> {
4272 encoder.debug_check_bounds::<RingBufferWatchClockRecoveryPositionInfoResponse>(offset);
4273 unsafe {
4274 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
4276 (buf_ptr as *mut RingBufferWatchClockRecoveryPositionInfoResponse).write_unaligned(
4277 (self as *const RingBufferWatchClockRecoveryPositionInfoResponse).read(),
4278 );
4279 let padding_ptr = buf_ptr.offset(8) as *mut u64;
4282 let padding_mask = 0xffffffff00000000u64;
4283 padding_ptr.write_unaligned(padding_ptr.read_unaligned() & !padding_mask);
4284 }
4285 Ok(())
4286 }
4287 }
4288 unsafe impl<
4289 D: fidl::encoding::ResourceDialect,
4290 T0: fidl::encoding::Encode<RingBufferPositionInfo, D>,
4291 > fidl::encoding::Encode<RingBufferWatchClockRecoveryPositionInfoResponse, D> for (T0,)
4292 {
4293 #[inline]
4294 unsafe fn encode(
4295 self,
4296 encoder: &mut fidl::encoding::Encoder<'_, D>,
4297 offset: usize,
4298 depth: fidl::encoding::Depth,
4299 ) -> fidl::Result<()> {
4300 encoder.debug_check_bounds::<RingBufferWatchClockRecoveryPositionInfoResponse>(offset);
4301 self.0.encode(encoder, offset + 0, depth)?;
4305 Ok(())
4306 }
4307 }
4308
4309 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
4310 for RingBufferWatchClockRecoveryPositionInfoResponse
4311 {
4312 #[inline(always)]
4313 fn new_empty() -> Self {
4314 Self { position_info: fidl::new_empty!(RingBufferPositionInfo, D) }
4315 }
4316
4317 #[inline]
4318 unsafe fn decode(
4319 &mut self,
4320 decoder: &mut fidl::encoding::Decoder<'_, D>,
4321 offset: usize,
4322 _depth: fidl::encoding::Depth,
4323 ) -> fidl::Result<()> {
4324 decoder.debug_check_bounds::<Self>(offset);
4325 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
4326 let ptr = unsafe { buf_ptr.offset(8) };
4328 let padval = unsafe { (ptr as *const u64).read_unaligned() };
4329 let mask = 0xffffffff00000000u64;
4330 let maskedval = padval & mask;
4331 if maskedval != 0 {
4332 return Err(fidl::Error::NonZeroPadding {
4333 padding_start: offset + 8 + ((mask as u64).trailing_zeros() / 8) as usize,
4334 });
4335 }
4336 unsafe {
4338 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 16);
4339 }
4340 Ok(())
4341 }
4342 }
4343
4344 impl fidl::encoding::ValueTypeMarker for RingBufferSetActiveChannelsResponse {
4345 type Borrowed<'a> = &'a Self;
4346 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4347 value
4348 }
4349 }
4350
4351 unsafe impl fidl::encoding::TypeMarker for RingBufferSetActiveChannelsResponse {
4352 type Owned = Self;
4353
4354 #[inline(always)]
4355 fn inline_align(_context: fidl::encoding::Context) -> usize {
4356 8
4357 }
4358
4359 #[inline(always)]
4360 fn inline_size(_context: fidl::encoding::Context) -> usize {
4361 8
4362 }
4363 #[inline(always)]
4364 fn encode_is_copy() -> bool {
4365 true
4366 }
4367
4368 #[inline(always)]
4369 fn decode_is_copy() -> bool {
4370 true
4371 }
4372 }
4373
4374 unsafe impl<D: fidl::encoding::ResourceDialect>
4375 fidl::encoding::Encode<RingBufferSetActiveChannelsResponse, D>
4376 for &RingBufferSetActiveChannelsResponse
4377 {
4378 #[inline]
4379 unsafe fn encode(
4380 self,
4381 encoder: &mut fidl::encoding::Encoder<'_, D>,
4382 offset: usize,
4383 _depth: fidl::encoding::Depth,
4384 ) -> fidl::Result<()> {
4385 encoder.debug_check_bounds::<RingBufferSetActiveChannelsResponse>(offset);
4386 unsafe {
4387 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
4389 (buf_ptr as *mut RingBufferSetActiveChannelsResponse)
4390 .write_unaligned((self as *const RingBufferSetActiveChannelsResponse).read());
4391 }
4394 Ok(())
4395 }
4396 }
4397 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<i64, D>>
4398 fidl::encoding::Encode<RingBufferSetActiveChannelsResponse, D> for (T0,)
4399 {
4400 #[inline]
4401 unsafe fn encode(
4402 self,
4403 encoder: &mut fidl::encoding::Encoder<'_, D>,
4404 offset: usize,
4405 depth: fidl::encoding::Depth,
4406 ) -> fidl::Result<()> {
4407 encoder.debug_check_bounds::<RingBufferSetActiveChannelsResponse>(offset);
4408 self.0.encode(encoder, offset + 0, depth)?;
4412 Ok(())
4413 }
4414 }
4415
4416 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
4417 for RingBufferSetActiveChannelsResponse
4418 {
4419 #[inline(always)]
4420 fn new_empty() -> Self {
4421 Self { set_time: fidl::new_empty!(i64, D) }
4422 }
4423
4424 #[inline]
4425 unsafe fn decode(
4426 &mut self,
4427 decoder: &mut fidl::encoding::Decoder<'_, D>,
4428 offset: usize,
4429 _depth: fidl::encoding::Depth,
4430 ) -> fidl::Result<()> {
4431 decoder.debug_check_bounds::<Self>(offset);
4432 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
4433 unsafe {
4436 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 8);
4437 }
4438 Ok(())
4439 }
4440 }
4441
4442 impl fidl::encoding::ValueTypeMarker for RingBufferWatchDelayInfoResponse {
4443 type Borrowed<'a> = &'a Self;
4444 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4445 value
4446 }
4447 }
4448
4449 unsafe impl fidl::encoding::TypeMarker for RingBufferWatchDelayInfoResponse {
4450 type Owned = Self;
4451
4452 #[inline(always)]
4453 fn inline_align(_context: fidl::encoding::Context) -> usize {
4454 8
4455 }
4456
4457 #[inline(always)]
4458 fn inline_size(_context: fidl::encoding::Context) -> usize {
4459 16
4460 }
4461 }
4462
4463 unsafe impl<D: fidl::encoding::ResourceDialect>
4464 fidl::encoding::Encode<RingBufferWatchDelayInfoResponse, D>
4465 for &RingBufferWatchDelayInfoResponse
4466 {
4467 #[inline]
4468 unsafe fn encode(
4469 self,
4470 encoder: &mut fidl::encoding::Encoder<'_, D>,
4471 offset: usize,
4472 _depth: fidl::encoding::Depth,
4473 ) -> fidl::Result<()> {
4474 encoder.debug_check_bounds::<RingBufferWatchDelayInfoResponse>(offset);
4475 fidl::encoding::Encode::<RingBufferWatchDelayInfoResponse, D>::encode(
4477 (<DelayInfo as fidl::encoding::ValueTypeMarker>::borrow(&self.delay_info),),
4478 encoder,
4479 offset,
4480 _depth,
4481 )
4482 }
4483 }
4484 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<DelayInfo, D>>
4485 fidl::encoding::Encode<RingBufferWatchDelayInfoResponse, D> for (T0,)
4486 {
4487 #[inline]
4488 unsafe fn encode(
4489 self,
4490 encoder: &mut fidl::encoding::Encoder<'_, D>,
4491 offset: usize,
4492 depth: fidl::encoding::Depth,
4493 ) -> fidl::Result<()> {
4494 encoder.debug_check_bounds::<RingBufferWatchDelayInfoResponse>(offset);
4495 self.0.encode(encoder, offset + 0, depth)?;
4499 Ok(())
4500 }
4501 }
4502
4503 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
4504 for RingBufferWatchDelayInfoResponse
4505 {
4506 #[inline(always)]
4507 fn new_empty() -> Self {
4508 Self { delay_info: fidl::new_empty!(DelayInfo, D) }
4509 }
4510
4511 #[inline]
4512 unsafe fn decode(
4513 &mut self,
4514 decoder: &mut fidl::encoding::Decoder<'_, D>,
4515 offset: usize,
4516 _depth: fidl::encoding::Depth,
4517 ) -> fidl::Result<()> {
4518 decoder.debug_check_bounds::<Self>(offset);
4519 fidl::decode!(DelayInfo, D, &mut self.delay_info, decoder, offset + 0, _depth)?;
4521 Ok(())
4522 }
4523 }
4524
4525 impl fidl::encoding::ValueTypeMarker for StreamConfigGetPropertiesResponse {
4526 type Borrowed<'a> = &'a Self;
4527 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4528 value
4529 }
4530 }
4531
4532 unsafe impl fidl::encoding::TypeMarker for StreamConfigGetPropertiesResponse {
4533 type Owned = Self;
4534
4535 #[inline(always)]
4536 fn inline_align(_context: fidl::encoding::Context) -> usize {
4537 8
4538 }
4539
4540 #[inline(always)]
4541 fn inline_size(_context: fidl::encoding::Context) -> usize {
4542 16
4543 }
4544 }
4545
4546 unsafe impl<D: fidl::encoding::ResourceDialect>
4547 fidl::encoding::Encode<StreamConfigGetPropertiesResponse, D>
4548 for &StreamConfigGetPropertiesResponse
4549 {
4550 #[inline]
4551 unsafe fn encode(
4552 self,
4553 encoder: &mut fidl::encoding::Encoder<'_, D>,
4554 offset: usize,
4555 _depth: fidl::encoding::Depth,
4556 ) -> fidl::Result<()> {
4557 encoder.debug_check_bounds::<StreamConfigGetPropertiesResponse>(offset);
4558 fidl::encoding::Encode::<StreamConfigGetPropertiesResponse, D>::encode(
4560 (<StreamProperties as fidl::encoding::ValueTypeMarker>::borrow(&self.properties),),
4561 encoder,
4562 offset,
4563 _depth,
4564 )
4565 }
4566 }
4567 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<StreamProperties, D>>
4568 fidl::encoding::Encode<StreamConfigGetPropertiesResponse, D> for (T0,)
4569 {
4570 #[inline]
4571 unsafe fn encode(
4572 self,
4573 encoder: &mut fidl::encoding::Encoder<'_, D>,
4574 offset: usize,
4575 depth: fidl::encoding::Depth,
4576 ) -> fidl::Result<()> {
4577 encoder.debug_check_bounds::<StreamConfigGetPropertiesResponse>(offset);
4578 self.0.encode(encoder, offset + 0, depth)?;
4582 Ok(())
4583 }
4584 }
4585
4586 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
4587 for StreamConfigGetPropertiesResponse
4588 {
4589 #[inline(always)]
4590 fn new_empty() -> Self {
4591 Self { properties: fidl::new_empty!(StreamProperties, D) }
4592 }
4593
4594 #[inline]
4595 unsafe fn decode(
4596 &mut self,
4597 decoder: &mut fidl::encoding::Decoder<'_, D>,
4598 offset: usize,
4599 _depth: fidl::encoding::Depth,
4600 ) -> fidl::Result<()> {
4601 decoder.debug_check_bounds::<Self>(offset);
4602 fidl::decode!(StreamProperties, D, &mut self.properties, decoder, offset + 0, _depth)?;
4604 Ok(())
4605 }
4606 }
4607
4608 impl fidl::encoding::ValueTypeMarker for StreamConfigGetSupportedFormatsResponse {
4609 type Borrowed<'a> = &'a Self;
4610 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4611 value
4612 }
4613 }
4614
4615 unsafe impl fidl::encoding::TypeMarker for StreamConfigGetSupportedFormatsResponse {
4616 type Owned = Self;
4617
4618 #[inline(always)]
4619 fn inline_align(_context: fidl::encoding::Context) -> usize {
4620 8
4621 }
4622
4623 #[inline(always)]
4624 fn inline_size(_context: fidl::encoding::Context) -> usize {
4625 16
4626 }
4627 }
4628
4629 unsafe impl<D: fidl::encoding::ResourceDialect>
4630 fidl::encoding::Encode<StreamConfigGetSupportedFormatsResponse, D>
4631 for &StreamConfigGetSupportedFormatsResponse
4632 {
4633 #[inline]
4634 unsafe fn encode(
4635 self,
4636 encoder: &mut fidl::encoding::Encoder<'_, D>,
4637 offset: usize,
4638 _depth: fidl::encoding::Depth,
4639 ) -> fidl::Result<()> {
4640 encoder.debug_check_bounds::<StreamConfigGetSupportedFormatsResponse>(offset);
4641 fidl::encoding::Encode::<StreamConfigGetSupportedFormatsResponse, D>::encode(
4643 (
4644 <fidl::encoding::Vector<SupportedFormats, 64> as fidl::encoding::ValueTypeMarker>::borrow(&self.supported_formats),
4645 ),
4646 encoder, offset, _depth
4647 )
4648 }
4649 }
4650 unsafe impl<
4651 D: fidl::encoding::ResourceDialect,
4652 T0: fidl::encoding::Encode<fidl::encoding::Vector<SupportedFormats, 64>, D>,
4653 > fidl::encoding::Encode<StreamConfigGetSupportedFormatsResponse, D> for (T0,)
4654 {
4655 #[inline]
4656 unsafe fn encode(
4657 self,
4658 encoder: &mut fidl::encoding::Encoder<'_, D>,
4659 offset: usize,
4660 depth: fidl::encoding::Depth,
4661 ) -> fidl::Result<()> {
4662 encoder.debug_check_bounds::<StreamConfigGetSupportedFormatsResponse>(offset);
4663 self.0.encode(encoder, offset + 0, depth)?;
4667 Ok(())
4668 }
4669 }
4670
4671 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
4672 for StreamConfigGetSupportedFormatsResponse
4673 {
4674 #[inline(always)]
4675 fn new_empty() -> Self {
4676 Self {
4677 supported_formats: fidl::new_empty!(fidl::encoding::Vector<SupportedFormats, 64>, D),
4678 }
4679 }
4680
4681 #[inline]
4682 unsafe fn decode(
4683 &mut self,
4684 decoder: &mut fidl::encoding::Decoder<'_, D>,
4685 offset: usize,
4686 _depth: fidl::encoding::Depth,
4687 ) -> fidl::Result<()> {
4688 decoder.debug_check_bounds::<Self>(offset);
4689 fidl::decode!(fidl::encoding::Vector<SupportedFormats, 64>, D, &mut self.supported_formats, decoder, offset + 0, _depth)?;
4691 Ok(())
4692 }
4693 }
4694
4695 impl fidl::encoding::ValueTypeMarker for StreamConfigSetGainRequest {
4696 type Borrowed<'a> = &'a Self;
4697 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4698 value
4699 }
4700 }
4701
4702 unsafe impl fidl::encoding::TypeMarker for StreamConfigSetGainRequest {
4703 type Owned = Self;
4704
4705 #[inline(always)]
4706 fn inline_align(_context: fidl::encoding::Context) -> usize {
4707 8
4708 }
4709
4710 #[inline(always)]
4711 fn inline_size(_context: fidl::encoding::Context) -> usize {
4712 16
4713 }
4714 }
4715
4716 unsafe impl<D: fidl::encoding::ResourceDialect>
4717 fidl::encoding::Encode<StreamConfigSetGainRequest, D> for &StreamConfigSetGainRequest
4718 {
4719 #[inline]
4720 unsafe fn encode(
4721 self,
4722 encoder: &mut fidl::encoding::Encoder<'_, D>,
4723 offset: usize,
4724 _depth: fidl::encoding::Depth,
4725 ) -> fidl::Result<()> {
4726 encoder.debug_check_bounds::<StreamConfigSetGainRequest>(offset);
4727 fidl::encoding::Encode::<StreamConfigSetGainRequest, D>::encode(
4729 (<GainState as fidl::encoding::ValueTypeMarker>::borrow(&self.target_state),),
4730 encoder,
4731 offset,
4732 _depth,
4733 )
4734 }
4735 }
4736 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<GainState, D>>
4737 fidl::encoding::Encode<StreamConfigSetGainRequest, D> for (T0,)
4738 {
4739 #[inline]
4740 unsafe fn encode(
4741 self,
4742 encoder: &mut fidl::encoding::Encoder<'_, D>,
4743 offset: usize,
4744 depth: fidl::encoding::Depth,
4745 ) -> fidl::Result<()> {
4746 encoder.debug_check_bounds::<StreamConfigSetGainRequest>(offset);
4747 self.0.encode(encoder, offset + 0, depth)?;
4751 Ok(())
4752 }
4753 }
4754
4755 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
4756 for StreamConfigSetGainRequest
4757 {
4758 #[inline(always)]
4759 fn new_empty() -> Self {
4760 Self { target_state: fidl::new_empty!(GainState, D) }
4761 }
4762
4763 #[inline]
4764 unsafe fn decode(
4765 &mut self,
4766 decoder: &mut fidl::encoding::Decoder<'_, D>,
4767 offset: usize,
4768 _depth: fidl::encoding::Depth,
4769 ) -> fidl::Result<()> {
4770 decoder.debug_check_bounds::<Self>(offset);
4771 fidl::decode!(GainState, D, &mut self.target_state, decoder, offset + 0, _depth)?;
4773 Ok(())
4774 }
4775 }
4776
4777 impl fidl::encoding::ValueTypeMarker for StreamConfigWatchGainStateResponse {
4778 type Borrowed<'a> = &'a Self;
4779 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4780 value
4781 }
4782 }
4783
4784 unsafe impl fidl::encoding::TypeMarker for StreamConfigWatchGainStateResponse {
4785 type Owned = Self;
4786
4787 #[inline(always)]
4788 fn inline_align(_context: fidl::encoding::Context) -> usize {
4789 8
4790 }
4791
4792 #[inline(always)]
4793 fn inline_size(_context: fidl::encoding::Context) -> usize {
4794 16
4795 }
4796 }
4797
4798 unsafe impl<D: fidl::encoding::ResourceDialect>
4799 fidl::encoding::Encode<StreamConfigWatchGainStateResponse, D>
4800 for &StreamConfigWatchGainStateResponse
4801 {
4802 #[inline]
4803 unsafe fn encode(
4804 self,
4805 encoder: &mut fidl::encoding::Encoder<'_, D>,
4806 offset: usize,
4807 _depth: fidl::encoding::Depth,
4808 ) -> fidl::Result<()> {
4809 encoder.debug_check_bounds::<StreamConfigWatchGainStateResponse>(offset);
4810 fidl::encoding::Encode::<StreamConfigWatchGainStateResponse, D>::encode(
4812 (<GainState as fidl::encoding::ValueTypeMarker>::borrow(&self.gain_state),),
4813 encoder,
4814 offset,
4815 _depth,
4816 )
4817 }
4818 }
4819 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<GainState, D>>
4820 fidl::encoding::Encode<StreamConfigWatchGainStateResponse, D> for (T0,)
4821 {
4822 #[inline]
4823 unsafe fn encode(
4824 self,
4825 encoder: &mut fidl::encoding::Encoder<'_, D>,
4826 offset: usize,
4827 depth: fidl::encoding::Depth,
4828 ) -> fidl::Result<()> {
4829 encoder.debug_check_bounds::<StreamConfigWatchGainStateResponse>(offset);
4830 self.0.encode(encoder, offset + 0, depth)?;
4834 Ok(())
4835 }
4836 }
4837
4838 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
4839 for StreamConfigWatchGainStateResponse
4840 {
4841 #[inline(always)]
4842 fn new_empty() -> Self {
4843 Self { gain_state: fidl::new_empty!(GainState, D) }
4844 }
4845
4846 #[inline]
4847 unsafe fn decode(
4848 &mut self,
4849 decoder: &mut fidl::encoding::Decoder<'_, D>,
4850 offset: usize,
4851 _depth: fidl::encoding::Depth,
4852 ) -> fidl::Result<()> {
4853 decoder.debug_check_bounds::<Self>(offset);
4854 fidl::decode!(GainState, D, &mut self.gain_state, decoder, offset + 0, _depth)?;
4856 Ok(())
4857 }
4858 }
4859
4860 impl fidl::encoding::ValueTypeMarker for StreamConfigWatchPlugStateResponse {
4861 type Borrowed<'a> = &'a Self;
4862 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4863 value
4864 }
4865 }
4866
4867 unsafe impl fidl::encoding::TypeMarker for StreamConfigWatchPlugStateResponse {
4868 type Owned = Self;
4869
4870 #[inline(always)]
4871 fn inline_align(_context: fidl::encoding::Context) -> usize {
4872 8
4873 }
4874
4875 #[inline(always)]
4876 fn inline_size(_context: fidl::encoding::Context) -> usize {
4877 16
4878 }
4879 }
4880
4881 unsafe impl<D: fidl::encoding::ResourceDialect>
4882 fidl::encoding::Encode<StreamConfigWatchPlugStateResponse, D>
4883 for &StreamConfigWatchPlugStateResponse
4884 {
4885 #[inline]
4886 unsafe fn encode(
4887 self,
4888 encoder: &mut fidl::encoding::Encoder<'_, D>,
4889 offset: usize,
4890 _depth: fidl::encoding::Depth,
4891 ) -> fidl::Result<()> {
4892 encoder.debug_check_bounds::<StreamConfigWatchPlugStateResponse>(offset);
4893 fidl::encoding::Encode::<StreamConfigWatchPlugStateResponse, D>::encode(
4895 (<PlugState as fidl::encoding::ValueTypeMarker>::borrow(&self.plug_state),),
4896 encoder,
4897 offset,
4898 _depth,
4899 )
4900 }
4901 }
4902 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<PlugState, D>>
4903 fidl::encoding::Encode<StreamConfigWatchPlugStateResponse, D> for (T0,)
4904 {
4905 #[inline]
4906 unsafe fn encode(
4907 self,
4908 encoder: &mut fidl::encoding::Encoder<'_, D>,
4909 offset: usize,
4910 depth: fidl::encoding::Depth,
4911 ) -> fidl::Result<()> {
4912 encoder.debug_check_bounds::<StreamConfigWatchPlugStateResponse>(offset);
4913 self.0.encode(encoder, offset + 0, depth)?;
4917 Ok(())
4918 }
4919 }
4920
4921 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
4922 for StreamConfigWatchPlugStateResponse
4923 {
4924 #[inline(always)]
4925 fn new_empty() -> Self {
4926 Self { plug_state: fidl::new_empty!(PlugState, D) }
4927 }
4928
4929 #[inline]
4930 unsafe fn decode(
4931 &mut self,
4932 decoder: &mut fidl::encoding::Decoder<'_, D>,
4933 offset: usize,
4934 _depth: fidl::encoding::Depth,
4935 ) -> fidl::Result<()> {
4936 decoder.debug_check_bounds::<Self>(offset);
4937 fidl::decode!(PlugState, D, &mut self.plug_state, decoder, offset + 0, _depth)?;
4939 Ok(())
4940 }
4941 }
4942
4943 impl ChannelAttributes {
4944 #[inline(always)]
4945 fn max_ordinal_present(&self) -> u64 {
4946 if let Some(_) = self.max_frequency {
4947 return 2;
4948 }
4949 if let Some(_) = self.min_frequency {
4950 return 1;
4951 }
4952 0
4953 }
4954 }
4955
4956 impl fidl::encoding::ValueTypeMarker for ChannelAttributes {
4957 type Borrowed<'a> = &'a Self;
4958 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4959 value
4960 }
4961 }
4962
4963 unsafe impl fidl::encoding::TypeMarker for ChannelAttributes {
4964 type Owned = Self;
4965
4966 #[inline(always)]
4967 fn inline_align(_context: fidl::encoding::Context) -> usize {
4968 8
4969 }
4970
4971 #[inline(always)]
4972 fn inline_size(_context: fidl::encoding::Context) -> usize {
4973 16
4974 }
4975 }
4976
4977 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<ChannelAttributes, D>
4978 for &ChannelAttributes
4979 {
4980 unsafe fn encode(
4981 self,
4982 encoder: &mut fidl::encoding::Encoder<'_, D>,
4983 offset: usize,
4984 mut depth: fidl::encoding::Depth,
4985 ) -> fidl::Result<()> {
4986 encoder.debug_check_bounds::<ChannelAttributes>(offset);
4987 let max_ordinal: u64 = self.max_ordinal_present();
4989 encoder.write_num(max_ordinal, offset);
4990 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
4991 if max_ordinal == 0 {
4993 return Ok(());
4994 }
4995 depth.increment()?;
4996 let envelope_size = 8;
4997 let bytes_len = max_ordinal as usize * envelope_size;
4998 #[allow(unused_variables)]
4999 let offset = encoder.out_of_line_offset(bytes_len);
5000 let mut _prev_end_offset: usize = 0;
5001 if 1 > max_ordinal {
5002 return Ok(());
5003 }
5004
5005 let cur_offset: usize = (1 - 1) * envelope_size;
5008
5009 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5011
5012 fidl::encoding::encode_in_envelope_optional::<u32, D>(
5017 self.min_frequency.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
5018 encoder,
5019 offset + cur_offset,
5020 depth,
5021 )?;
5022
5023 _prev_end_offset = cur_offset + envelope_size;
5024 if 2 > max_ordinal {
5025 return Ok(());
5026 }
5027
5028 let cur_offset: usize = (2 - 1) * envelope_size;
5031
5032 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5034
5035 fidl::encoding::encode_in_envelope_optional::<u32, D>(
5040 self.max_frequency.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
5041 encoder,
5042 offset + cur_offset,
5043 depth,
5044 )?;
5045
5046 _prev_end_offset = cur_offset + envelope_size;
5047
5048 Ok(())
5049 }
5050 }
5051
5052 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ChannelAttributes {
5053 #[inline(always)]
5054 fn new_empty() -> Self {
5055 Self::default()
5056 }
5057
5058 unsafe fn decode(
5059 &mut self,
5060 decoder: &mut fidl::encoding::Decoder<'_, D>,
5061 offset: usize,
5062 mut depth: fidl::encoding::Depth,
5063 ) -> fidl::Result<()> {
5064 decoder.debug_check_bounds::<Self>(offset);
5065 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
5066 None => return Err(fidl::Error::NotNullable),
5067 Some(len) => len,
5068 };
5069 if len == 0 {
5071 return Ok(());
5072 };
5073 depth.increment()?;
5074 let envelope_size = 8;
5075 let bytes_len = len * envelope_size;
5076 let offset = decoder.out_of_line_offset(bytes_len)?;
5077 let mut _next_ordinal_to_read = 0;
5079 let mut next_offset = offset;
5080 let end_offset = offset + bytes_len;
5081 _next_ordinal_to_read += 1;
5082 if next_offset >= end_offset {
5083 return Ok(());
5084 }
5085
5086 while _next_ordinal_to_read < 1 {
5088 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5089 _next_ordinal_to_read += 1;
5090 next_offset += envelope_size;
5091 }
5092
5093 let next_out_of_line = decoder.next_out_of_line();
5094 let handles_before = decoder.remaining_handles();
5095 if let Some((inlined, num_bytes, num_handles)) =
5096 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5097 {
5098 let member_inline_size =
5099 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5100 if inlined != (member_inline_size <= 4) {
5101 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5102 }
5103 let inner_offset;
5104 let mut inner_depth = depth.clone();
5105 if inlined {
5106 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5107 inner_offset = next_offset;
5108 } else {
5109 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5110 inner_depth.increment()?;
5111 }
5112 let val_ref = self.min_frequency.get_or_insert_with(|| fidl::new_empty!(u32, D));
5113 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
5114 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5115 {
5116 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5117 }
5118 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5119 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5120 }
5121 }
5122
5123 next_offset += envelope_size;
5124 _next_ordinal_to_read += 1;
5125 if next_offset >= end_offset {
5126 return Ok(());
5127 }
5128
5129 while _next_ordinal_to_read < 2 {
5131 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5132 _next_ordinal_to_read += 1;
5133 next_offset += envelope_size;
5134 }
5135
5136 let next_out_of_line = decoder.next_out_of_line();
5137 let handles_before = decoder.remaining_handles();
5138 if let Some((inlined, num_bytes, num_handles)) =
5139 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5140 {
5141 let member_inline_size =
5142 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5143 if inlined != (member_inline_size <= 4) {
5144 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5145 }
5146 let inner_offset;
5147 let mut inner_depth = depth.clone();
5148 if inlined {
5149 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5150 inner_offset = next_offset;
5151 } else {
5152 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5153 inner_depth.increment()?;
5154 }
5155 let val_ref = self.max_frequency.get_or_insert_with(|| fidl::new_empty!(u32, D));
5156 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
5157 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5158 {
5159 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5160 }
5161 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5162 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5163 }
5164 }
5165
5166 next_offset += envelope_size;
5167
5168 while next_offset < end_offset {
5170 _next_ordinal_to_read += 1;
5171 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5172 next_offset += envelope_size;
5173 }
5174
5175 Ok(())
5176 }
5177 }
5178
5179 impl ChannelSet {
5180 #[inline(always)]
5181 fn max_ordinal_present(&self) -> u64 {
5182 if let Some(_) = self.attributes {
5183 return 1;
5184 }
5185 0
5186 }
5187 }
5188
5189 impl fidl::encoding::ValueTypeMarker for ChannelSet {
5190 type Borrowed<'a> = &'a Self;
5191 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
5192 value
5193 }
5194 }
5195
5196 unsafe impl fidl::encoding::TypeMarker for ChannelSet {
5197 type Owned = Self;
5198
5199 #[inline(always)]
5200 fn inline_align(_context: fidl::encoding::Context) -> usize {
5201 8
5202 }
5203
5204 #[inline(always)]
5205 fn inline_size(_context: fidl::encoding::Context) -> usize {
5206 16
5207 }
5208 }
5209
5210 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<ChannelSet, D>
5211 for &ChannelSet
5212 {
5213 unsafe fn encode(
5214 self,
5215 encoder: &mut fidl::encoding::Encoder<'_, D>,
5216 offset: usize,
5217 mut depth: fidl::encoding::Depth,
5218 ) -> fidl::Result<()> {
5219 encoder.debug_check_bounds::<ChannelSet>(offset);
5220 let max_ordinal: u64 = self.max_ordinal_present();
5222 encoder.write_num(max_ordinal, offset);
5223 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
5224 if max_ordinal == 0 {
5226 return Ok(());
5227 }
5228 depth.increment()?;
5229 let envelope_size = 8;
5230 let bytes_len = max_ordinal as usize * envelope_size;
5231 #[allow(unused_variables)]
5232 let offset = encoder.out_of_line_offset(bytes_len);
5233 let mut _prev_end_offset: usize = 0;
5234 if 1 > max_ordinal {
5235 return Ok(());
5236 }
5237
5238 let cur_offset: usize = (1 - 1) * envelope_size;
5241
5242 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5244
5245 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<ChannelAttributes, 64>, D>(
5250 self.attributes.as_ref().map(<fidl::encoding::Vector<ChannelAttributes, 64> as fidl::encoding::ValueTypeMarker>::borrow),
5251 encoder, offset + cur_offset, depth
5252 )?;
5253
5254 _prev_end_offset = cur_offset + envelope_size;
5255
5256 Ok(())
5257 }
5258 }
5259
5260 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ChannelSet {
5261 #[inline(always)]
5262 fn new_empty() -> Self {
5263 Self::default()
5264 }
5265
5266 unsafe fn decode(
5267 &mut self,
5268 decoder: &mut fidl::encoding::Decoder<'_, D>,
5269 offset: usize,
5270 mut depth: fidl::encoding::Depth,
5271 ) -> fidl::Result<()> {
5272 decoder.debug_check_bounds::<Self>(offset);
5273 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
5274 None => return Err(fidl::Error::NotNullable),
5275 Some(len) => len,
5276 };
5277 if len == 0 {
5279 return Ok(());
5280 };
5281 depth.increment()?;
5282 let envelope_size = 8;
5283 let bytes_len = len * envelope_size;
5284 let offset = decoder.out_of_line_offset(bytes_len)?;
5285 let mut _next_ordinal_to_read = 0;
5287 let mut next_offset = offset;
5288 let end_offset = offset + bytes_len;
5289 _next_ordinal_to_read += 1;
5290 if next_offset >= end_offset {
5291 return Ok(());
5292 }
5293
5294 while _next_ordinal_to_read < 1 {
5296 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5297 _next_ordinal_to_read += 1;
5298 next_offset += envelope_size;
5299 }
5300
5301 let next_out_of_line = decoder.next_out_of_line();
5302 let handles_before = decoder.remaining_handles();
5303 if let Some((inlined, num_bytes, num_handles)) =
5304 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5305 {
5306 let member_inline_size = <fidl::encoding::Vector<ChannelAttributes, 64> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5307 if inlined != (member_inline_size <= 4) {
5308 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5309 }
5310 let inner_offset;
5311 let mut inner_depth = depth.clone();
5312 if inlined {
5313 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5314 inner_offset = next_offset;
5315 } else {
5316 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5317 inner_depth.increment()?;
5318 }
5319 let val_ref = self.attributes.get_or_insert_with(
5320 || fidl::new_empty!(fidl::encoding::Vector<ChannelAttributes, 64>, D),
5321 );
5322 fidl::decode!(fidl::encoding::Vector<ChannelAttributes, 64>, D, val_ref, decoder, inner_offset, inner_depth)?;
5323 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5324 {
5325 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5326 }
5327 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5328 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5329 }
5330 }
5331
5332 next_offset += envelope_size;
5333
5334 while next_offset < end_offset {
5336 _next_ordinal_to_read += 1;
5337 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5338 next_offset += envelope_size;
5339 }
5340
5341 Ok(())
5342 }
5343 }
5344
5345 impl CodecFormatInfo {
5346 #[inline(always)]
5347 fn max_ordinal_present(&self) -> u64 {
5348 if let Some(_) = self.turn_off_delay {
5349 return 3;
5350 }
5351 if let Some(_) = self.turn_on_delay {
5352 return 2;
5353 }
5354 if let Some(_) = self.external_delay {
5355 return 1;
5356 }
5357 0
5358 }
5359 }
5360
5361 impl fidl::encoding::ValueTypeMarker for CodecFormatInfo {
5362 type Borrowed<'a> = &'a Self;
5363 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
5364 value
5365 }
5366 }
5367
5368 unsafe impl fidl::encoding::TypeMarker for CodecFormatInfo {
5369 type Owned = Self;
5370
5371 #[inline(always)]
5372 fn inline_align(_context: fidl::encoding::Context) -> usize {
5373 8
5374 }
5375
5376 #[inline(always)]
5377 fn inline_size(_context: fidl::encoding::Context) -> usize {
5378 16
5379 }
5380 }
5381
5382 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<CodecFormatInfo, D>
5383 for &CodecFormatInfo
5384 {
5385 unsafe fn encode(
5386 self,
5387 encoder: &mut fidl::encoding::Encoder<'_, D>,
5388 offset: usize,
5389 mut depth: fidl::encoding::Depth,
5390 ) -> fidl::Result<()> {
5391 encoder.debug_check_bounds::<CodecFormatInfo>(offset);
5392 let max_ordinal: u64 = self.max_ordinal_present();
5394 encoder.write_num(max_ordinal, offset);
5395 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
5396 if max_ordinal == 0 {
5398 return Ok(());
5399 }
5400 depth.increment()?;
5401 let envelope_size = 8;
5402 let bytes_len = max_ordinal as usize * envelope_size;
5403 #[allow(unused_variables)]
5404 let offset = encoder.out_of_line_offset(bytes_len);
5405 let mut _prev_end_offset: usize = 0;
5406 if 1 > max_ordinal {
5407 return Ok(());
5408 }
5409
5410 let cur_offset: usize = (1 - 1) * envelope_size;
5413
5414 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5416
5417 fidl::encoding::encode_in_envelope_optional::<i64, D>(
5422 self.external_delay.as_ref().map(<i64 as fidl::encoding::ValueTypeMarker>::borrow),
5423 encoder,
5424 offset + cur_offset,
5425 depth,
5426 )?;
5427
5428 _prev_end_offset = cur_offset + envelope_size;
5429 if 2 > max_ordinal {
5430 return Ok(());
5431 }
5432
5433 let cur_offset: usize = (2 - 1) * envelope_size;
5436
5437 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5439
5440 fidl::encoding::encode_in_envelope_optional::<i64, D>(
5445 self.turn_on_delay.as_ref().map(<i64 as fidl::encoding::ValueTypeMarker>::borrow),
5446 encoder,
5447 offset + cur_offset,
5448 depth,
5449 )?;
5450
5451 _prev_end_offset = cur_offset + envelope_size;
5452 if 3 > max_ordinal {
5453 return Ok(());
5454 }
5455
5456 let cur_offset: usize = (3 - 1) * envelope_size;
5459
5460 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5462
5463 fidl::encoding::encode_in_envelope_optional::<i64, D>(
5468 self.turn_off_delay.as_ref().map(<i64 as fidl::encoding::ValueTypeMarker>::borrow),
5469 encoder,
5470 offset + cur_offset,
5471 depth,
5472 )?;
5473
5474 _prev_end_offset = cur_offset + envelope_size;
5475
5476 Ok(())
5477 }
5478 }
5479
5480 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for CodecFormatInfo {
5481 #[inline(always)]
5482 fn new_empty() -> Self {
5483 Self::default()
5484 }
5485
5486 unsafe fn decode(
5487 &mut self,
5488 decoder: &mut fidl::encoding::Decoder<'_, D>,
5489 offset: usize,
5490 mut depth: fidl::encoding::Depth,
5491 ) -> fidl::Result<()> {
5492 decoder.debug_check_bounds::<Self>(offset);
5493 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
5494 None => return Err(fidl::Error::NotNullable),
5495 Some(len) => len,
5496 };
5497 if len == 0 {
5499 return Ok(());
5500 };
5501 depth.increment()?;
5502 let envelope_size = 8;
5503 let bytes_len = len * envelope_size;
5504 let offset = decoder.out_of_line_offset(bytes_len)?;
5505 let mut _next_ordinal_to_read = 0;
5507 let mut next_offset = offset;
5508 let end_offset = offset + bytes_len;
5509 _next_ordinal_to_read += 1;
5510 if next_offset >= end_offset {
5511 return Ok(());
5512 }
5513
5514 while _next_ordinal_to_read < 1 {
5516 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5517 _next_ordinal_to_read += 1;
5518 next_offset += envelope_size;
5519 }
5520
5521 let next_out_of_line = decoder.next_out_of_line();
5522 let handles_before = decoder.remaining_handles();
5523 if let Some((inlined, num_bytes, num_handles)) =
5524 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5525 {
5526 let member_inline_size =
5527 <i64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5528 if inlined != (member_inline_size <= 4) {
5529 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5530 }
5531 let inner_offset;
5532 let mut inner_depth = depth.clone();
5533 if inlined {
5534 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5535 inner_offset = next_offset;
5536 } else {
5537 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5538 inner_depth.increment()?;
5539 }
5540 let val_ref = self.external_delay.get_or_insert_with(|| fidl::new_empty!(i64, D));
5541 fidl::decode!(i64, D, val_ref, decoder, inner_offset, inner_depth)?;
5542 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5543 {
5544 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5545 }
5546 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5547 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5548 }
5549 }
5550
5551 next_offset += envelope_size;
5552 _next_ordinal_to_read += 1;
5553 if next_offset >= end_offset {
5554 return Ok(());
5555 }
5556
5557 while _next_ordinal_to_read < 2 {
5559 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5560 _next_ordinal_to_read += 1;
5561 next_offset += envelope_size;
5562 }
5563
5564 let next_out_of_line = decoder.next_out_of_line();
5565 let handles_before = decoder.remaining_handles();
5566 if let Some((inlined, num_bytes, num_handles)) =
5567 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5568 {
5569 let member_inline_size =
5570 <i64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5571 if inlined != (member_inline_size <= 4) {
5572 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5573 }
5574 let inner_offset;
5575 let mut inner_depth = depth.clone();
5576 if inlined {
5577 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5578 inner_offset = next_offset;
5579 } else {
5580 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5581 inner_depth.increment()?;
5582 }
5583 let val_ref = self.turn_on_delay.get_or_insert_with(|| fidl::new_empty!(i64, D));
5584 fidl::decode!(i64, D, val_ref, decoder, inner_offset, inner_depth)?;
5585 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5586 {
5587 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5588 }
5589 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5590 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5591 }
5592 }
5593
5594 next_offset += envelope_size;
5595 _next_ordinal_to_read += 1;
5596 if next_offset >= end_offset {
5597 return Ok(());
5598 }
5599
5600 while _next_ordinal_to_read < 3 {
5602 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5603 _next_ordinal_to_read += 1;
5604 next_offset += envelope_size;
5605 }
5606
5607 let next_out_of_line = decoder.next_out_of_line();
5608 let handles_before = decoder.remaining_handles();
5609 if let Some((inlined, num_bytes, num_handles)) =
5610 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5611 {
5612 let member_inline_size =
5613 <i64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5614 if inlined != (member_inline_size <= 4) {
5615 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5616 }
5617 let inner_offset;
5618 let mut inner_depth = depth.clone();
5619 if inlined {
5620 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5621 inner_offset = next_offset;
5622 } else {
5623 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5624 inner_depth.increment()?;
5625 }
5626 let val_ref = self.turn_off_delay.get_or_insert_with(|| fidl::new_empty!(i64, D));
5627 fidl::decode!(i64, D, val_ref, decoder, inner_offset, inner_depth)?;
5628 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5629 {
5630 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5631 }
5632 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5633 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5634 }
5635 }
5636
5637 next_offset += envelope_size;
5638
5639 while next_offset < end_offset {
5641 _next_ordinal_to_read += 1;
5642 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5643 next_offset += envelope_size;
5644 }
5645
5646 Ok(())
5647 }
5648 }
5649
5650 impl CodecProperties {
5651 #[inline(always)]
5652 fn max_ordinal_present(&self) -> u64 {
5653 if let Some(_) = self.plug_detect_capabilities {
5654 return 5;
5655 }
5656 if let Some(_) = self.unique_id {
5657 return 4;
5658 }
5659 if let Some(_) = self.product {
5660 return 3;
5661 }
5662 if let Some(_) = self.manufacturer {
5663 return 2;
5664 }
5665 if let Some(_) = self.is_input {
5666 return 1;
5667 }
5668 0
5669 }
5670 }
5671
5672 impl fidl::encoding::ValueTypeMarker for CodecProperties {
5673 type Borrowed<'a> = &'a Self;
5674 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
5675 value
5676 }
5677 }
5678
5679 unsafe impl fidl::encoding::TypeMarker for CodecProperties {
5680 type Owned = Self;
5681
5682 #[inline(always)]
5683 fn inline_align(_context: fidl::encoding::Context) -> usize {
5684 8
5685 }
5686
5687 #[inline(always)]
5688 fn inline_size(_context: fidl::encoding::Context) -> usize {
5689 16
5690 }
5691 }
5692
5693 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<CodecProperties, D>
5694 for &CodecProperties
5695 {
5696 unsafe fn encode(
5697 self,
5698 encoder: &mut fidl::encoding::Encoder<'_, D>,
5699 offset: usize,
5700 mut depth: fidl::encoding::Depth,
5701 ) -> fidl::Result<()> {
5702 encoder.debug_check_bounds::<CodecProperties>(offset);
5703 let max_ordinal: u64 = self.max_ordinal_present();
5705 encoder.write_num(max_ordinal, offset);
5706 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
5707 if max_ordinal == 0 {
5709 return Ok(());
5710 }
5711 depth.increment()?;
5712 let envelope_size = 8;
5713 let bytes_len = max_ordinal as usize * envelope_size;
5714 #[allow(unused_variables)]
5715 let offset = encoder.out_of_line_offset(bytes_len);
5716 let mut _prev_end_offset: usize = 0;
5717 if 1 > max_ordinal {
5718 return Ok(());
5719 }
5720
5721 let cur_offset: usize = (1 - 1) * envelope_size;
5724
5725 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5727
5728 fidl::encoding::encode_in_envelope_optional::<bool, D>(
5733 self.is_input.as_ref().map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
5734 encoder,
5735 offset + cur_offset,
5736 depth,
5737 )?;
5738
5739 _prev_end_offset = cur_offset + envelope_size;
5740 if 2 > max_ordinal {
5741 return Ok(());
5742 }
5743
5744 let cur_offset: usize = (2 - 1) * envelope_size;
5747
5748 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5750
5751 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<256>, D>(
5756 self.manufacturer.as_ref().map(
5757 <fidl::encoding::BoundedString<256> as fidl::encoding::ValueTypeMarker>::borrow,
5758 ),
5759 encoder,
5760 offset + cur_offset,
5761 depth,
5762 )?;
5763
5764 _prev_end_offset = cur_offset + envelope_size;
5765 if 3 > max_ordinal {
5766 return Ok(());
5767 }
5768
5769 let cur_offset: usize = (3 - 1) * envelope_size;
5772
5773 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5775
5776 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<256>, D>(
5781 self.product.as_ref().map(
5782 <fidl::encoding::BoundedString<256> as fidl::encoding::ValueTypeMarker>::borrow,
5783 ),
5784 encoder,
5785 offset + cur_offset,
5786 depth,
5787 )?;
5788
5789 _prev_end_offset = cur_offset + envelope_size;
5790 if 4 > max_ordinal {
5791 return Ok(());
5792 }
5793
5794 let cur_offset: usize = (4 - 1) * envelope_size;
5797
5798 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5800
5801 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 16>, D>(
5806 self.unique_id.as_ref().map(
5807 <fidl::encoding::Array<u8, 16> as fidl::encoding::ValueTypeMarker>::borrow,
5808 ),
5809 encoder,
5810 offset + cur_offset,
5811 depth,
5812 )?;
5813
5814 _prev_end_offset = cur_offset + envelope_size;
5815 if 5 > max_ordinal {
5816 return Ok(());
5817 }
5818
5819 let cur_offset: usize = (5 - 1) * envelope_size;
5822
5823 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5825
5826 fidl::encoding::encode_in_envelope_optional::<PlugDetectCapabilities, D>(
5831 self.plug_detect_capabilities
5832 .as_ref()
5833 .map(<PlugDetectCapabilities as fidl::encoding::ValueTypeMarker>::borrow),
5834 encoder,
5835 offset + cur_offset,
5836 depth,
5837 )?;
5838
5839 _prev_end_offset = cur_offset + envelope_size;
5840
5841 Ok(())
5842 }
5843 }
5844
5845 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for CodecProperties {
5846 #[inline(always)]
5847 fn new_empty() -> Self {
5848 Self::default()
5849 }
5850
5851 unsafe fn decode(
5852 &mut self,
5853 decoder: &mut fidl::encoding::Decoder<'_, D>,
5854 offset: usize,
5855 mut depth: fidl::encoding::Depth,
5856 ) -> fidl::Result<()> {
5857 decoder.debug_check_bounds::<Self>(offset);
5858 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
5859 None => return Err(fidl::Error::NotNullable),
5860 Some(len) => len,
5861 };
5862 if len == 0 {
5864 return Ok(());
5865 };
5866 depth.increment()?;
5867 let envelope_size = 8;
5868 let bytes_len = len * envelope_size;
5869 let offset = decoder.out_of_line_offset(bytes_len)?;
5870 let mut _next_ordinal_to_read = 0;
5872 let mut next_offset = offset;
5873 let end_offset = offset + bytes_len;
5874 _next_ordinal_to_read += 1;
5875 if next_offset >= end_offset {
5876 return Ok(());
5877 }
5878
5879 while _next_ordinal_to_read < 1 {
5881 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5882 _next_ordinal_to_read += 1;
5883 next_offset += envelope_size;
5884 }
5885
5886 let next_out_of_line = decoder.next_out_of_line();
5887 let handles_before = decoder.remaining_handles();
5888 if let Some((inlined, num_bytes, num_handles)) =
5889 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5890 {
5891 let member_inline_size =
5892 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5893 if inlined != (member_inline_size <= 4) {
5894 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5895 }
5896 let inner_offset;
5897 let mut inner_depth = depth.clone();
5898 if inlined {
5899 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5900 inner_offset = next_offset;
5901 } else {
5902 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5903 inner_depth.increment()?;
5904 }
5905 let val_ref = self.is_input.get_or_insert_with(|| fidl::new_empty!(bool, D));
5906 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
5907 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5908 {
5909 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5910 }
5911 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5912 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5913 }
5914 }
5915
5916 next_offset += envelope_size;
5917 _next_ordinal_to_read += 1;
5918 if next_offset >= end_offset {
5919 return Ok(());
5920 }
5921
5922 while _next_ordinal_to_read < 2 {
5924 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5925 _next_ordinal_to_read += 1;
5926 next_offset += envelope_size;
5927 }
5928
5929 let next_out_of_line = decoder.next_out_of_line();
5930 let handles_before = decoder.remaining_handles();
5931 if let Some((inlined, num_bytes, num_handles)) =
5932 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5933 {
5934 let member_inline_size =
5935 <fidl::encoding::BoundedString<256> as fidl::encoding::TypeMarker>::inline_size(
5936 decoder.context,
5937 );
5938 if inlined != (member_inline_size <= 4) {
5939 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5940 }
5941 let inner_offset;
5942 let mut inner_depth = depth.clone();
5943 if inlined {
5944 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5945 inner_offset = next_offset;
5946 } else {
5947 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5948 inner_depth.increment()?;
5949 }
5950 let val_ref = self
5951 .manufacturer
5952 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<256>, D));
5953 fidl::decode!(
5954 fidl::encoding::BoundedString<256>,
5955 D,
5956 val_ref,
5957 decoder,
5958 inner_offset,
5959 inner_depth
5960 )?;
5961 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5962 {
5963 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5964 }
5965 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5966 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5967 }
5968 }
5969
5970 next_offset += envelope_size;
5971 _next_ordinal_to_read += 1;
5972 if next_offset >= end_offset {
5973 return Ok(());
5974 }
5975
5976 while _next_ordinal_to_read < 3 {
5978 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5979 _next_ordinal_to_read += 1;
5980 next_offset += envelope_size;
5981 }
5982
5983 let next_out_of_line = decoder.next_out_of_line();
5984 let handles_before = decoder.remaining_handles();
5985 if let Some((inlined, num_bytes, num_handles)) =
5986 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5987 {
5988 let member_inline_size =
5989 <fidl::encoding::BoundedString<256> as fidl::encoding::TypeMarker>::inline_size(
5990 decoder.context,
5991 );
5992 if inlined != (member_inline_size <= 4) {
5993 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5994 }
5995 let inner_offset;
5996 let mut inner_depth = depth.clone();
5997 if inlined {
5998 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5999 inner_offset = next_offset;
6000 } else {
6001 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6002 inner_depth.increment()?;
6003 }
6004 let val_ref = self
6005 .product
6006 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<256>, D));
6007 fidl::decode!(
6008 fidl::encoding::BoundedString<256>,
6009 D,
6010 val_ref,
6011 decoder,
6012 inner_offset,
6013 inner_depth
6014 )?;
6015 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6016 {
6017 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6018 }
6019 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6020 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6021 }
6022 }
6023
6024 next_offset += envelope_size;
6025 _next_ordinal_to_read += 1;
6026 if next_offset >= end_offset {
6027 return Ok(());
6028 }
6029
6030 while _next_ordinal_to_read < 4 {
6032 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6033 _next_ordinal_to_read += 1;
6034 next_offset += envelope_size;
6035 }
6036
6037 let next_out_of_line = decoder.next_out_of_line();
6038 let handles_before = decoder.remaining_handles();
6039 if let Some((inlined, num_bytes, num_handles)) =
6040 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6041 {
6042 let member_inline_size =
6043 <fidl::encoding::Array<u8, 16> as fidl::encoding::TypeMarker>::inline_size(
6044 decoder.context,
6045 );
6046 if inlined != (member_inline_size <= 4) {
6047 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6048 }
6049 let inner_offset;
6050 let mut inner_depth = depth.clone();
6051 if inlined {
6052 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6053 inner_offset = next_offset;
6054 } else {
6055 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6056 inner_depth.increment()?;
6057 }
6058 let val_ref = self
6059 .unique_id
6060 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 16>, D));
6061 fidl::decode!(fidl::encoding::Array<u8, 16>, D, val_ref, decoder, inner_offset, inner_depth)?;
6062 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6063 {
6064 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6065 }
6066 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6067 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6068 }
6069 }
6070
6071 next_offset += envelope_size;
6072 _next_ordinal_to_read += 1;
6073 if next_offset >= end_offset {
6074 return Ok(());
6075 }
6076
6077 while _next_ordinal_to_read < 5 {
6079 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6080 _next_ordinal_to_read += 1;
6081 next_offset += envelope_size;
6082 }
6083
6084 let next_out_of_line = decoder.next_out_of_line();
6085 let handles_before = decoder.remaining_handles();
6086 if let Some((inlined, num_bytes, num_handles)) =
6087 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6088 {
6089 let member_inline_size =
6090 <PlugDetectCapabilities as fidl::encoding::TypeMarker>::inline_size(
6091 decoder.context,
6092 );
6093 if inlined != (member_inline_size <= 4) {
6094 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6095 }
6096 let inner_offset;
6097 let mut inner_depth = depth.clone();
6098 if inlined {
6099 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6100 inner_offset = next_offset;
6101 } else {
6102 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6103 inner_depth.increment()?;
6104 }
6105 let val_ref = self
6106 .plug_detect_capabilities
6107 .get_or_insert_with(|| fidl::new_empty!(PlugDetectCapabilities, D));
6108 fidl::decode!(
6109 PlugDetectCapabilities,
6110 D,
6111 val_ref,
6112 decoder,
6113 inner_offset,
6114 inner_depth
6115 )?;
6116 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6117 {
6118 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6119 }
6120 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6121 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6122 }
6123 }
6124
6125 next_offset += envelope_size;
6126
6127 while next_offset < end_offset {
6129 _next_ordinal_to_read += 1;
6130 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6131 next_offset += envelope_size;
6132 }
6133
6134 Ok(())
6135 }
6136 }
6137
6138 impl CompositeProperties {
6139 #[inline(always)]
6140 fn max_ordinal_present(&self) -> u64 {
6141 if let Some(_) = self.clock_domain {
6142 return 5;
6143 }
6144 if let Some(_) = self.unique_id {
6145 return 4;
6146 }
6147 if let Some(_) = self.product {
6148 return 3;
6149 }
6150 if let Some(_) = self.manufacturer {
6151 return 2;
6152 }
6153 0
6154 }
6155 }
6156
6157 impl fidl::encoding::ValueTypeMarker for CompositeProperties {
6158 type Borrowed<'a> = &'a Self;
6159 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
6160 value
6161 }
6162 }
6163
6164 unsafe impl fidl::encoding::TypeMarker for CompositeProperties {
6165 type Owned = Self;
6166
6167 #[inline(always)]
6168 fn inline_align(_context: fidl::encoding::Context) -> usize {
6169 8
6170 }
6171
6172 #[inline(always)]
6173 fn inline_size(_context: fidl::encoding::Context) -> usize {
6174 16
6175 }
6176 }
6177
6178 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<CompositeProperties, D>
6179 for &CompositeProperties
6180 {
6181 unsafe fn encode(
6182 self,
6183 encoder: &mut fidl::encoding::Encoder<'_, D>,
6184 offset: usize,
6185 mut depth: fidl::encoding::Depth,
6186 ) -> fidl::Result<()> {
6187 encoder.debug_check_bounds::<CompositeProperties>(offset);
6188 let max_ordinal: u64 = self.max_ordinal_present();
6190 encoder.write_num(max_ordinal, offset);
6191 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
6192 if max_ordinal == 0 {
6194 return Ok(());
6195 }
6196 depth.increment()?;
6197 let envelope_size = 8;
6198 let bytes_len = max_ordinal as usize * envelope_size;
6199 #[allow(unused_variables)]
6200 let offset = encoder.out_of_line_offset(bytes_len);
6201 let mut _prev_end_offset: usize = 0;
6202 if 2 > max_ordinal {
6203 return Ok(());
6204 }
6205
6206 let cur_offset: usize = (2 - 1) * envelope_size;
6209
6210 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6212
6213 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<256>, D>(
6218 self.manufacturer.as_ref().map(
6219 <fidl::encoding::BoundedString<256> as fidl::encoding::ValueTypeMarker>::borrow,
6220 ),
6221 encoder,
6222 offset + cur_offset,
6223 depth,
6224 )?;
6225
6226 _prev_end_offset = cur_offset + envelope_size;
6227 if 3 > max_ordinal {
6228 return Ok(());
6229 }
6230
6231 let cur_offset: usize = (3 - 1) * envelope_size;
6234
6235 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6237
6238 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<256>, D>(
6243 self.product.as_ref().map(
6244 <fidl::encoding::BoundedString<256> as fidl::encoding::ValueTypeMarker>::borrow,
6245 ),
6246 encoder,
6247 offset + cur_offset,
6248 depth,
6249 )?;
6250
6251 _prev_end_offset = cur_offset + envelope_size;
6252 if 4 > max_ordinal {
6253 return Ok(());
6254 }
6255
6256 let cur_offset: usize = (4 - 1) * envelope_size;
6259
6260 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6262
6263 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 16>, D>(
6268 self.unique_id.as_ref().map(
6269 <fidl::encoding::Array<u8, 16> as fidl::encoding::ValueTypeMarker>::borrow,
6270 ),
6271 encoder,
6272 offset + cur_offset,
6273 depth,
6274 )?;
6275
6276 _prev_end_offset = cur_offset + envelope_size;
6277 if 5 > max_ordinal {
6278 return Ok(());
6279 }
6280
6281 let cur_offset: usize = (5 - 1) * envelope_size;
6284
6285 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6287
6288 fidl::encoding::encode_in_envelope_optional::<u32, D>(
6293 self.clock_domain.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
6294 encoder,
6295 offset + cur_offset,
6296 depth,
6297 )?;
6298
6299 _prev_end_offset = cur_offset + envelope_size;
6300
6301 Ok(())
6302 }
6303 }
6304
6305 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for CompositeProperties {
6306 #[inline(always)]
6307 fn new_empty() -> Self {
6308 Self::default()
6309 }
6310
6311 unsafe fn decode(
6312 &mut self,
6313 decoder: &mut fidl::encoding::Decoder<'_, D>,
6314 offset: usize,
6315 mut depth: fidl::encoding::Depth,
6316 ) -> fidl::Result<()> {
6317 decoder.debug_check_bounds::<Self>(offset);
6318 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
6319 None => return Err(fidl::Error::NotNullable),
6320 Some(len) => len,
6321 };
6322 if len == 0 {
6324 return Ok(());
6325 };
6326 depth.increment()?;
6327 let envelope_size = 8;
6328 let bytes_len = len * envelope_size;
6329 let offset = decoder.out_of_line_offset(bytes_len)?;
6330 let mut _next_ordinal_to_read = 0;
6332 let mut next_offset = offset;
6333 let end_offset = offset + bytes_len;
6334 _next_ordinal_to_read += 1;
6335 if next_offset >= end_offset {
6336 return Ok(());
6337 }
6338
6339 while _next_ordinal_to_read < 2 {
6341 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6342 _next_ordinal_to_read += 1;
6343 next_offset += envelope_size;
6344 }
6345
6346 let next_out_of_line = decoder.next_out_of_line();
6347 let handles_before = decoder.remaining_handles();
6348 if let Some((inlined, num_bytes, num_handles)) =
6349 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6350 {
6351 let member_inline_size =
6352 <fidl::encoding::BoundedString<256> as fidl::encoding::TypeMarker>::inline_size(
6353 decoder.context,
6354 );
6355 if inlined != (member_inline_size <= 4) {
6356 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6357 }
6358 let inner_offset;
6359 let mut inner_depth = depth.clone();
6360 if inlined {
6361 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6362 inner_offset = next_offset;
6363 } else {
6364 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6365 inner_depth.increment()?;
6366 }
6367 let val_ref = self
6368 .manufacturer
6369 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<256>, D));
6370 fidl::decode!(
6371 fidl::encoding::BoundedString<256>,
6372 D,
6373 val_ref,
6374 decoder,
6375 inner_offset,
6376 inner_depth
6377 )?;
6378 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6379 {
6380 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6381 }
6382 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6383 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6384 }
6385 }
6386
6387 next_offset += envelope_size;
6388 _next_ordinal_to_read += 1;
6389 if next_offset >= end_offset {
6390 return Ok(());
6391 }
6392
6393 while _next_ordinal_to_read < 3 {
6395 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6396 _next_ordinal_to_read += 1;
6397 next_offset += envelope_size;
6398 }
6399
6400 let next_out_of_line = decoder.next_out_of_line();
6401 let handles_before = decoder.remaining_handles();
6402 if let Some((inlined, num_bytes, num_handles)) =
6403 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6404 {
6405 let member_inline_size =
6406 <fidl::encoding::BoundedString<256> as fidl::encoding::TypeMarker>::inline_size(
6407 decoder.context,
6408 );
6409 if inlined != (member_inline_size <= 4) {
6410 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6411 }
6412 let inner_offset;
6413 let mut inner_depth = depth.clone();
6414 if inlined {
6415 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6416 inner_offset = next_offset;
6417 } else {
6418 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6419 inner_depth.increment()?;
6420 }
6421 let val_ref = self
6422 .product
6423 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<256>, D));
6424 fidl::decode!(
6425 fidl::encoding::BoundedString<256>,
6426 D,
6427 val_ref,
6428 decoder,
6429 inner_offset,
6430 inner_depth
6431 )?;
6432 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6433 {
6434 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6435 }
6436 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6437 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6438 }
6439 }
6440
6441 next_offset += envelope_size;
6442 _next_ordinal_to_read += 1;
6443 if next_offset >= end_offset {
6444 return Ok(());
6445 }
6446
6447 while _next_ordinal_to_read < 4 {
6449 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6450 _next_ordinal_to_read += 1;
6451 next_offset += envelope_size;
6452 }
6453
6454 let next_out_of_line = decoder.next_out_of_line();
6455 let handles_before = decoder.remaining_handles();
6456 if let Some((inlined, num_bytes, num_handles)) =
6457 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6458 {
6459 let member_inline_size =
6460 <fidl::encoding::Array<u8, 16> as fidl::encoding::TypeMarker>::inline_size(
6461 decoder.context,
6462 );
6463 if inlined != (member_inline_size <= 4) {
6464 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6465 }
6466 let inner_offset;
6467 let mut inner_depth = depth.clone();
6468 if inlined {
6469 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6470 inner_offset = next_offset;
6471 } else {
6472 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6473 inner_depth.increment()?;
6474 }
6475 let val_ref = self
6476 .unique_id
6477 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 16>, D));
6478 fidl::decode!(fidl::encoding::Array<u8, 16>, D, val_ref, decoder, inner_offset, inner_depth)?;
6479 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6480 {
6481 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6482 }
6483 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6484 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6485 }
6486 }
6487
6488 next_offset += envelope_size;
6489 _next_ordinal_to_read += 1;
6490 if next_offset >= end_offset {
6491 return Ok(());
6492 }
6493
6494 while _next_ordinal_to_read < 5 {
6496 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6497 _next_ordinal_to_read += 1;
6498 next_offset += envelope_size;
6499 }
6500
6501 let next_out_of_line = decoder.next_out_of_line();
6502 let handles_before = decoder.remaining_handles();
6503 if let Some((inlined, num_bytes, num_handles)) =
6504 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6505 {
6506 let member_inline_size =
6507 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6508 if inlined != (member_inline_size <= 4) {
6509 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6510 }
6511 let inner_offset;
6512 let mut inner_depth = depth.clone();
6513 if inlined {
6514 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6515 inner_offset = next_offset;
6516 } else {
6517 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6518 inner_depth.increment()?;
6519 }
6520 let val_ref = self.clock_domain.get_or_insert_with(|| fidl::new_empty!(u32, D));
6521 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
6522 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6523 {
6524 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6525 }
6526 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6527 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6528 }
6529 }
6530
6531 next_offset += envelope_size;
6532
6533 while next_offset < end_offset {
6535 _next_ordinal_to_read += 1;
6536 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6537 next_offset += envelope_size;
6538 }
6539
6540 Ok(())
6541 }
6542 }
6543
6544 impl DaiProperties {
6545 #[inline(always)]
6546 fn max_ordinal_present(&self) -> u64 {
6547 if let Some(_) = self.clock_domain {
6548 return 5;
6549 }
6550 if let Some(_) = self.unique_id {
6551 return 4;
6552 }
6553 if let Some(_) = self.product_name {
6554 return 3;
6555 }
6556 if let Some(_) = self.manufacturer {
6557 return 2;
6558 }
6559 if let Some(_) = self.is_input {
6560 return 1;
6561 }
6562 0
6563 }
6564 }
6565
6566 impl fidl::encoding::ValueTypeMarker for DaiProperties {
6567 type Borrowed<'a> = &'a Self;
6568 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
6569 value
6570 }
6571 }
6572
6573 unsafe impl fidl::encoding::TypeMarker for DaiProperties {
6574 type Owned = Self;
6575
6576 #[inline(always)]
6577 fn inline_align(_context: fidl::encoding::Context) -> usize {
6578 8
6579 }
6580
6581 #[inline(always)]
6582 fn inline_size(_context: fidl::encoding::Context) -> usize {
6583 16
6584 }
6585 }
6586
6587 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<DaiProperties, D>
6588 for &DaiProperties
6589 {
6590 unsafe fn encode(
6591 self,
6592 encoder: &mut fidl::encoding::Encoder<'_, D>,
6593 offset: usize,
6594 mut depth: fidl::encoding::Depth,
6595 ) -> fidl::Result<()> {
6596 encoder.debug_check_bounds::<DaiProperties>(offset);
6597 let max_ordinal: u64 = self.max_ordinal_present();
6599 encoder.write_num(max_ordinal, offset);
6600 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
6601 if max_ordinal == 0 {
6603 return Ok(());
6604 }
6605 depth.increment()?;
6606 let envelope_size = 8;
6607 let bytes_len = max_ordinal as usize * envelope_size;
6608 #[allow(unused_variables)]
6609 let offset = encoder.out_of_line_offset(bytes_len);
6610 let mut _prev_end_offset: usize = 0;
6611 if 1 > max_ordinal {
6612 return Ok(());
6613 }
6614
6615 let cur_offset: usize = (1 - 1) * envelope_size;
6618
6619 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6621
6622 fidl::encoding::encode_in_envelope_optional::<bool, D>(
6627 self.is_input.as_ref().map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
6628 encoder,
6629 offset + cur_offset,
6630 depth,
6631 )?;
6632
6633 _prev_end_offset = cur_offset + envelope_size;
6634 if 2 > max_ordinal {
6635 return Ok(());
6636 }
6637
6638 let cur_offset: usize = (2 - 1) * envelope_size;
6641
6642 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6644
6645 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<256>, D>(
6650 self.manufacturer.as_ref().map(
6651 <fidl::encoding::BoundedString<256> as fidl::encoding::ValueTypeMarker>::borrow,
6652 ),
6653 encoder,
6654 offset + cur_offset,
6655 depth,
6656 )?;
6657
6658 _prev_end_offset = cur_offset + envelope_size;
6659 if 3 > max_ordinal {
6660 return Ok(());
6661 }
6662
6663 let cur_offset: usize = (3 - 1) * envelope_size;
6666
6667 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6669
6670 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<256>, D>(
6675 self.product_name.as_ref().map(
6676 <fidl::encoding::BoundedString<256> as fidl::encoding::ValueTypeMarker>::borrow,
6677 ),
6678 encoder,
6679 offset + cur_offset,
6680 depth,
6681 )?;
6682
6683 _prev_end_offset = cur_offset + envelope_size;
6684 if 4 > max_ordinal {
6685 return Ok(());
6686 }
6687
6688 let cur_offset: usize = (4 - 1) * envelope_size;
6691
6692 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6694
6695 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 16>, D>(
6700 self.unique_id.as_ref().map(
6701 <fidl::encoding::Array<u8, 16> as fidl::encoding::ValueTypeMarker>::borrow,
6702 ),
6703 encoder,
6704 offset + cur_offset,
6705 depth,
6706 )?;
6707
6708 _prev_end_offset = cur_offset + envelope_size;
6709 if 5 > max_ordinal {
6710 return Ok(());
6711 }
6712
6713 let cur_offset: usize = (5 - 1) * envelope_size;
6716
6717 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6719
6720 fidl::encoding::encode_in_envelope_optional::<u32, D>(
6725 self.clock_domain.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
6726 encoder,
6727 offset + cur_offset,
6728 depth,
6729 )?;
6730
6731 _prev_end_offset = cur_offset + envelope_size;
6732
6733 Ok(())
6734 }
6735 }
6736
6737 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for DaiProperties {
6738 #[inline(always)]
6739 fn new_empty() -> Self {
6740 Self::default()
6741 }
6742
6743 unsafe fn decode(
6744 &mut self,
6745 decoder: &mut fidl::encoding::Decoder<'_, D>,
6746 offset: usize,
6747 mut depth: fidl::encoding::Depth,
6748 ) -> fidl::Result<()> {
6749 decoder.debug_check_bounds::<Self>(offset);
6750 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
6751 None => return Err(fidl::Error::NotNullable),
6752 Some(len) => len,
6753 };
6754 if len == 0 {
6756 return Ok(());
6757 };
6758 depth.increment()?;
6759 let envelope_size = 8;
6760 let bytes_len = len * envelope_size;
6761 let offset = decoder.out_of_line_offset(bytes_len)?;
6762 let mut _next_ordinal_to_read = 0;
6764 let mut next_offset = offset;
6765 let end_offset = offset + bytes_len;
6766 _next_ordinal_to_read += 1;
6767 if next_offset >= end_offset {
6768 return Ok(());
6769 }
6770
6771 while _next_ordinal_to_read < 1 {
6773 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6774 _next_ordinal_to_read += 1;
6775 next_offset += envelope_size;
6776 }
6777
6778 let next_out_of_line = decoder.next_out_of_line();
6779 let handles_before = decoder.remaining_handles();
6780 if let Some((inlined, num_bytes, num_handles)) =
6781 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6782 {
6783 let member_inline_size =
6784 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6785 if inlined != (member_inline_size <= 4) {
6786 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6787 }
6788 let inner_offset;
6789 let mut inner_depth = depth.clone();
6790 if inlined {
6791 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6792 inner_offset = next_offset;
6793 } else {
6794 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6795 inner_depth.increment()?;
6796 }
6797 let val_ref = self.is_input.get_or_insert_with(|| fidl::new_empty!(bool, D));
6798 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
6799 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6800 {
6801 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6802 }
6803 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6804 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6805 }
6806 }
6807
6808 next_offset += envelope_size;
6809 _next_ordinal_to_read += 1;
6810 if next_offset >= end_offset {
6811 return Ok(());
6812 }
6813
6814 while _next_ordinal_to_read < 2 {
6816 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6817 _next_ordinal_to_read += 1;
6818 next_offset += envelope_size;
6819 }
6820
6821 let next_out_of_line = decoder.next_out_of_line();
6822 let handles_before = decoder.remaining_handles();
6823 if let Some((inlined, num_bytes, num_handles)) =
6824 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6825 {
6826 let member_inline_size =
6827 <fidl::encoding::BoundedString<256> as fidl::encoding::TypeMarker>::inline_size(
6828 decoder.context,
6829 );
6830 if inlined != (member_inline_size <= 4) {
6831 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6832 }
6833 let inner_offset;
6834 let mut inner_depth = depth.clone();
6835 if inlined {
6836 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6837 inner_offset = next_offset;
6838 } else {
6839 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6840 inner_depth.increment()?;
6841 }
6842 let val_ref = self
6843 .manufacturer
6844 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<256>, D));
6845 fidl::decode!(
6846 fidl::encoding::BoundedString<256>,
6847 D,
6848 val_ref,
6849 decoder,
6850 inner_offset,
6851 inner_depth
6852 )?;
6853 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6854 {
6855 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6856 }
6857 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6858 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6859 }
6860 }
6861
6862 next_offset += envelope_size;
6863 _next_ordinal_to_read += 1;
6864 if next_offset >= end_offset {
6865 return Ok(());
6866 }
6867
6868 while _next_ordinal_to_read < 3 {
6870 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6871 _next_ordinal_to_read += 1;
6872 next_offset += envelope_size;
6873 }
6874
6875 let next_out_of_line = decoder.next_out_of_line();
6876 let handles_before = decoder.remaining_handles();
6877 if let Some((inlined, num_bytes, num_handles)) =
6878 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6879 {
6880 let member_inline_size =
6881 <fidl::encoding::BoundedString<256> as fidl::encoding::TypeMarker>::inline_size(
6882 decoder.context,
6883 );
6884 if inlined != (member_inline_size <= 4) {
6885 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6886 }
6887 let inner_offset;
6888 let mut inner_depth = depth.clone();
6889 if inlined {
6890 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6891 inner_offset = next_offset;
6892 } else {
6893 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6894 inner_depth.increment()?;
6895 }
6896 let val_ref = self
6897 .product_name
6898 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<256>, D));
6899 fidl::decode!(
6900 fidl::encoding::BoundedString<256>,
6901 D,
6902 val_ref,
6903 decoder,
6904 inner_offset,
6905 inner_depth
6906 )?;
6907 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6908 {
6909 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6910 }
6911 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6912 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6913 }
6914 }
6915
6916 next_offset += envelope_size;
6917 _next_ordinal_to_read += 1;
6918 if next_offset >= end_offset {
6919 return Ok(());
6920 }
6921
6922 while _next_ordinal_to_read < 4 {
6924 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6925 _next_ordinal_to_read += 1;
6926 next_offset += envelope_size;
6927 }
6928
6929 let next_out_of_line = decoder.next_out_of_line();
6930 let handles_before = decoder.remaining_handles();
6931 if let Some((inlined, num_bytes, num_handles)) =
6932 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6933 {
6934 let member_inline_size =
6935 <fidl::encoding::Array<u8, 16> as fidl::encoding::TypeMarker>::inline_size(
6936 decoder.context,
6937 );
6938 if inlined != (member_inline_size <= 4) {
6939 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6940 }
6941 let inner_offset;
6942 let mut inner_depth = depth.clone();
6943 if inlined {
6944 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6945 inner_offset = next_offset;
6946 } else {
6947 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6948 inner_depth.increment()?;
6949 }
6950 let val_ref = self
6951 .unique_id
6952 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 16>, D));
6953 fidl::decode!(fidl::encoding::Array<u8, 16>, D, val_ref, decoder, inner_offset, inner_depth)?;
6954 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6955 {
6956 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6957 }
6958 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6959 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6960 }
6961 }
6962
6963 next_offset += envelope_size;
6964 _next_ordinal_to_read += 1;
6965 if next_offset >= end_offset {
6966 return Ok(());
6967 }
6968
6969 while _next_ordinal_to_read < 5 {
6971 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6972 _next_ordinal_to_read += 1;
6973 next_offset += envelope_size;
6974 }
6975
6976 let next_out_of_line = decoder.next_out_of_line();
6977 let handles_before = decoder.remaining_handles();
6978 if let Some((inlined, num_bytes, num_handles)) =
6979 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6980 {
6981 let member_inline_size =
6982 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6983 if inlined != (member_inline_size <= 4) {
6984 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6985 }
6986 let inner_offset;
6987 let mut inner_depth = depth.clone();
6988 if inlined {
6989 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6990 inner_offset = next_offset;
6991 } else {
6992 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6993 inner_depth.increment()?;
6994 }
6995 let val_ref = self.clock_domain.get_or_insert_with(|| fidl::new_empty!(u32, D));
6996 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
6997 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6998 {
6999 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7000 }
7001 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7002 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7003 }
7004 }
7005
7006 next_offset += envelope_size;
7007
7008 while next_offset < end_offset {
7010 _next_ordinal_to_read += 1;
7011 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7012 next_offset += envelope_size;
7013 }
7014
7015 Ok(())
7016 }
7017 }
7018
7019 impl DelayInfo {
7020 #[inline(always)]
7021 fn max_ordinal_present(&self) -> u64 {
7022 if let Some(_) = self.external_delay {
7023 return 2;
7024 }
7025 if let Some(_) = self.internal_delay {
7026 return 1;
7027 }
7028 0
7029 }
7030 }
7031
7032 impl fidl::encoding::ValueTypeMarker for DelayInfo {
7033 type Borrowed<'a> = &'a Self;
7034 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
7035 value
7036 }
7037 }
7038
7039 unsafe impl fidl::encoding::TypeMarker for DelayInfo {
7040 type Owned = Self;
7041
7042 #[inline(always)]
7043 fn inline_align(_context: fidl::encoding::Context) -> usize {
7044 8
7045 }
7046
7047 #[inline(always)]
7048 fn inline_size(_context: fidl::encoding::Context) -> usize {
7049 16
7050 }
7051 }
7052
7053 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<DelayInfo, D>
7054 for &DelayInfo
7055 {
7056 unsafe fn encode(
7057 self,
7058 encoder: &mut fidl::encoding::Encoder<'_, D>,
7059 offset: usize,
7060 mut depth: fidl::encoding::Depth,
7061 ) -> fidl::Result<()> {
7062 encoder.debug_check_bounds::<DelayInfo>(offset);
7063 let max_ordinal: u64 = self.max_ordinal_present();
7065 encoder.write_num(max_ordinal, offset);
7066 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
7067 if max_ordinal == 0 {
7069 return Ok(());
7070 }
7071 depth.increment()?;
7072 let envelope_size = 8;
7073 let bytes_len = max_ordinal as usize * envelope_size;
7074 #[allow(unused_variables)]
7075 let offset = encoder.out_of_line_offset(bytes_len);
7076 let mut _prev_end_offset: usize = 0;
7077 if 1 > max_ordinal {
7078 return Ok(());
7079 }
7080
7081 let cur_offset: usize = (1 - 1) * envelope_size;
7084
7085 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7087
7088 fidl::encoding::encode_in_envelope_optional::<i64, D>(
7093 self.internal_delay.as_ref().map(<i64 as fidl::encoding::ValueTypeMarker>::borrow),
7094 encoder,
7095 offset + cur_offset,
7096 depth,
7097 )?;
7098
7099 _prev_end_offset = cur_offset + envelope_size;
7100 if 2 > max_ordinal {
7101 return Ok(());
7102 }
7103
7104 let cur_offset: usize = (2 - 1) * envelope_size;
7107
7108 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7110
7111 fidl::encoding::encode_in_envelope_optional::<i64, D>(
7116 self.external_delay.as_ref().map(<i64 as fidl::encoding::ValueTypeMarker>::borrow),
7117 encoder,
7118 offset + cur_offset,
7119 depth,
7120 )?;
7121
7122 _prev_end_offset = cur_offset + envelope_size;
7123
7124 Ok(())
7125 }
7126 }
7127
7128 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for DelayInfo {
7129 #[inline(always)]
7130 fn new_empty() -> Self {
7131 Self::default()
7132 }
7133
7134 unsafe fn decode(
7135 &mut self,
7136 decoder: &mut fidl::encoding::Decoder<'_, D>,
7137 offset: usize,
7138 mut depth: fidl::encoding::Depth,
7139 ) -> fidl::Result<()> {
7140 decoder.debug_check_bounds::<Self>(offset);
7141 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
7142 None => return Err(fidl::Error::NotNullable),
7143 Some(len) => len,
7144 };
7145 if len == 0 {
7147 return Ok(());
7148 };
7149 depth.increment()?;
7150 let envelope_size = 8;
7151 let bytes_len = len * envelope_size;
7152 let offset = decoder.out_of_line_offset(bytes_len)?;
7153 let mut _next_ordinal_to_read = 0;
7155 let mut next_offset = offset;
7156 let end_offset = offset + bytes_len;
7157 _next_ordinal_to_read += 1;
7158 if next_offset >= end_offset {
7159 return Ok(());
7160 }
7161
7162 while _next_ordinal_to_read < 1 {
7164 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7165 _next_ordinal_to_read += 1;
7166 next_offset += envelope_size;
7167 }
7168
7169 let next_out_of_line = decoder.next_out_of_line();
7170 let handles_before = decoder.remaining_handles();
7171 if let Some((inlined, num_bytes, num_handles)) =
7172 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7173 {
7174 let member_inline_size =
7175 <i64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7176 if inlined != (member_inline_size <= 4) {
7177 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7178 }
7179 let inner_offset;
7180 let mut inner_depth = depth.clone();
7181 if inlined {
7182 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7183 inner_offset = next_offset;
7184 } else {
7185 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7186 inner_depth.increment()?;
7187 }
7188 let val_ref = self.internal_delay.get_or_insert_with(|| fidl::new_empty!(i64, D));
7189 fidl::decode!(i64, D, val_ref, decoder, inner_offset, inner_depth)?;
7190 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7191 {
7192 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7193 }
7194 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7195 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7196 }
7197 }
7198
7199 next_offset += envelope_size;
7200 _next_ordinal_to_read += 1;
7201 if next_offset >= end_offset {
7202 return Ok(());
7203 }
7204
7205 while _next_ordinal_to_read < 2 {
7207 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7208 _next_ordinal_to_read += 1;
7209 next_offset += envelope_size;
7210 }
7211
7212 let next_out_of_line = decoder.next_out_of_line();
7213 let handles_before = decoder.remaining_handles();
7214 if let Some((inlined, num_bytes, num_handles)) =
7215 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7216 {
7217 let member_inline_size =
7218 <i64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7219 if inlined != (member_inline_size <= 4) {
7220 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7221 }
7222 let inner_offset;
7223 let mut inner_depth = depth.clone();
7224 if inlined {
7225 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7226 inner_offset = next_offset;
7227 } else {
7228 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7229 inner_depth.increment()?;
7230 }
7231 let val_ref = self.external_delay.get_or_insert_with(|| fidl::new_empty!(i64, D));
7232 fidl::decode!(i64, D, val_ref, decoder, inner_offset, inner_depth)?;
7233 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7234 {
7235 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7236 }
7237 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7238 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7239 }
7240 }
7241
7242 next_offset += envelope_size;
7243
7244 while next_offset < end_offset {
7246 _next_ordinal_to_read += 1;
7247 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7248 next_offset += envelope_size;
7249 }
7250
7251 Ok(())
7252 }
7253 }
7254
7255 impl Format {
7256 #[inline(always)]
7257 fn max_ordinal_present(&self) -> u64 {
7258 if let Some(_) = self.pcm_format {
7259 return 1;
7260 }
7261 0
7262 }
7263 }
7264
7265 impl fidl::encoding::ValueTypeMarker for Format {
7266 type Borrowed<'a> = &'a Self;
7267 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
7268 value
7269 }
7270 }
7271
7272 unsafe impl fidl::encoding::TypeMarker for Format {
7273 type Owned = Self;
7274
7275 #[inline(always)]
7276 fn inline_align(_context: fidl::encoding::Context) -> usize {
7277 8
7278 }
7279
7280 #[inline(always)]
7281 fn inline_size(_context: fidl::encoding::Context) -> usize {
7282 16
7283 }
7284 }
7285
7286 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Format, D> for &Format {
7287 unsafe fn encode(
7288 self,
7289 encoder: &mut fidl::encoding::Encoder<'_, D>,
7290 offset: usize,
7291 mut depth: fidl::encoding::Depth,
7292 ) -> fidl::Result<()> {
7293 encoder.debug_check_bounds::<Format>(offset);
7294 let max_ordinal: u64 = self.max_ordinal_present();
7296 encoder.write_num(max_ordinal, offset);
7297 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
7298 if max_ordinal == 0 {
7300 return Ok(());
7301 }
7302 depth.increment()?;
7303 let envelope_size = 8;
7304 let bytes_len = max_ordinal as usize * envelope_size;
7305 #[allow(unused_variables)]
7306 let offset = encoder.out_of_line_offset(bytes_len);
7307 let mut _prev_end_offset: usize = 0;
7308 if 1 > max_ordinal {
7309 return Ok(());
7310 }
7311
7312 let cur_offset: usize = (1 - 1) * envelope_size;
7315
7316 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7318
7319 fidl::encoding::encode_in_envelope_optional::<PcmFormat, D>(
7324 self.pcm_format
7325 .as_ref()
7326 .map(<PcmFormat as fidl::encoding::ValueTypeMarker>::borrow),
7327 encoder,
7328 offset + cur_offset,
7329 depth,
7330 )?;
7331
7332 _prev_end_offset = cur_offset + envelope_size;
7333
7334 Ok(())
7335 }
7336 }
7337
7338 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Format {
7339 #[inline(always)]
7340 fn new_empty() -> Self {
7341 Self::default()
7342 }
7343
7344 unsafe fn decode(
7345 &mut self,
7346 decoder: &mut fidl::encoding::Decoder<'_, D>,
7347 offset: usize,
7348 mut depth: fidl::encoding::Depth,
7349 ) -> fidl::Result<()> {
7350 decoder.debug_check_bounds::<Self>(offset);
7351 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
7352 None => return Err(fidl::Error::NotNullable),
7353 Some(len) => len,
7354 };
7355 if len == 0 {
7357 return Ok(());
7358 };
7359 depth.increment()?;
7360 let envelope_size = 8;
7361 let bytes_len = len * envelope_size;
7362 let offset = decoder.out_of_line_offset(bytes_len)?;
7363 let mut _next_ordinal_to_read = 0;
7365 let mut next_offset = offset;
7366 let end_offset = offset + bytes_len;
7367 _next_ordinal_to_read += 1;
7368 if next_offset >= end_offset {
7369 return Ok(());
7370 }
7371
7372 while _next_ordinal_to_read < 1 {
7374 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7375 _next_ordinal_to_read += 1;
7376 next_offset += envelope_size;
7377 }
7378
7379 let next_out_of_line = decoder.next_out_of_line();
7380 let handles_before = decoder.remaining_handles();
7381 if let Some((inlined, num_bytes, num_handles)) =
7382 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7383 {
7384 let member_inline_size =
7385 <PcmFormat as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7386 if inlined != (member_inline_size <= 4) {
7387 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7388 }
7389 let inner_offset;
7390 let mut inner_depth = depth.clone();
7391 if inlined {
7392 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7393 inner_offset = next_offset;
7394 } else {
7395 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7396 inner_depth.increment()?;
7397 }
7398 let val_ref = self.pcm_format.get_or_insert_with(|| fidl::new_empty!(PcmFormat, D));
7399 fidl::decode!(PcmFormat, D, val_ref, decoder, inner_offset, inner_depth)?;
7400 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7401 {
7402 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7403 }
7404 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7405 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7406 }
7407 }
7408
7409 next_offset += envelope_size;
7410
7411 while next_offset < end_offset {
7413 _next_ordinal_to_read += 1;
7414 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7415 next_offset += envelope_size;
7416 }
7417
7418 Ok(())
7419 }
7420 }
7421
7422 impl GainState {
7423 #[inline(always)]
7424 fn max_ordinal_present(&self) -> u64 {
7425 if let Some(_) = self.gain_db {
7426 return 3;
7427 }
7428 if let Some(_) = self.agc_enabled {
7429 return 2;
7430 }
7431 if let Some(_) = self.muted {
7432 return 1;
7433 }
7434 0
7435 }
7436 }
7437
7438 impl fidl::encoding::ValueTypeMarker for GainState {
7439 type Borrowed<'a> = &'a Self;
7440 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
7441 value
7442 }
7443 }
7444
7445 unsafe impl fidl::encoding::TypeMarker for GainState {
7446 type Owned = Self;
7447
7448 #[inline(always)]
7449 fn inline_align(_context: fidl::encoding::Context) -> usize {
7450 8
7451 }
7452
7453 #[inline(always)]
7454 fn inline_size(_context: fidl::encoding::Context) -> usize {
7455 16
7456 }
7457 }
7458
7459 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<GainState, D>
7460 for &GainState
7461 {
7462 unsafe fn encode(
7463 self,
7464 encoder: &mut fidl::encoding::Encoder<'_, D>,
7465 offset: usize,
7466 mut depth: fidl::encoding::Depth,
7467 ) -> fidl::Result<()> {
7468 encoder.debug_check_bounds::<GainState>(offset);
7469 let max_ordinal: u64 = self.max_ordinal_present();
7471 encoder.write_num(max_ordinal, offset);
7472 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
7473 if max_ordinal == 0 {
7475 return Ok(());
7476 }
7477 depth.increment()?;
7478 let envelope_size = 8;
7479 let bytes_len = max_ordinal as usize * envelope_size;
7480 #[allow(unused_variables)]
7481 let offset = encoder.out_of_line_offset(bytes_len);
7482 let mut _prev_end_offset: usize = 0;
7483 if 1 > max_ordinal {
7484 return Ok(());
7485 }
7486
7487 let cur_offset: usize = (1 - 1) * envelope_size;
7490
7491 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7493
7494 fidl::encoding::encode_in_envelope_optional::<bool, D>(
7499 self.muted.as_ref().map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
7500 encoder,
7501 offset + cur_offset,
7502 depth,
7503 )?;
7504
7505 _prev_end_offset = cur_offset + envelope_size;
7506 if 2 > max_ordinal {
7507 return Ok(());
7508 }
7509
7510 let cur_offset: usize = (2 - 1) * envelope_size;
7513
7514 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7516
7517 fidl::encoding::encode_in_envelope_optional::<bool, D>(
7522 self.agc_enabled.as_ref().map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
7523 encoder,
7524 offset + cur_offset,
7525 depth,
7526 )?;
7527
7528 _prev_end_offset = cur_offset + envelope_size;
7529 if 3 > max_ordinal {
7530 return Ok(());
7531 }
7532
7533 let cur_offset: usize = (3 - 1) * envelope_size;
7536
7537 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7539
7540 fidl::encoding::encode_in_envelope_optional::<f32, D>(
7545 self.gain_db.as_ref().map(<f32 as fidl::encoding::ValueTypeMarker>::borrow),
7546 encoder,
7547 offset + cur_offset,
7548 depth,
7549 )?;
7550
7551 _prev_end_offset = cur_offset + envelope_size;
7552
7553 Ok(())
7554 }
7555 }
7556
7557 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for GainState {
7558 #[inline(always)]
7559 fn new_empty() -> Self {
7560 Self::default()
7561 }
7562
7563 unsafe fn decode(
7564 &mut self,
7565 decoder: &mut fidl::encoding::Decoder<'_, D>,
7566 offset: usize,
7567 mut depth: fidl::encoding::Depth,
7568 ) -> fidl::Result<()> {
7569 decoder.debug_check_bounds::<Self>(offset);
7570 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
7571 None => return Err(fidl::Error::NotNullable),
7572 Some(len) => len,
7573 };
7574 if len == 0 {
7576 return Ok(());
7577 };
7578 depth.increment()?;
7579 let envelope_size = 8;
7580 let bytes_len = len * envelope_size;
7581 let offset = decoder.out_of_line_offset(bytes_len)?;
7582 let mut _next_ordinal_to_read = 0;
7584 let mut next_offset = offset;
7585 let end_offset = offset + bytes_len;
7586 _next_ordinal_to_read += 1;
7587 if next_offset >= end_offset {
7588 return Ok(());
7589 }
7590
7591 while _next_ordinal_to_read < 1 {
7593 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7594 _next_ordinal_to_read += 1;
7595 next_offset += envelope_size;
7596 }
7597
7598 let next_out_of_line = decoder.next_out_of_line();
7599 let handles_before = decoder.remaining_handles();
7600 if let Some((inlined, num_bytes, num_handles)) =
7601 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7602 {
7603 let member_inline_size =
7604 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7605 if inlined != (member_inline_size <= 4) {
7606 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7607 }
7608 let inner_offset;
7609 let mut inner_depth = depth.clone();
7610 if inlined {
7611 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7612 inner_offset = next_offset;
7613 } else {
7614 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7615 inner_depth.increment()?;
7616 }
7617 let val_ref = self.muted.get_or_insert_with(|| fidl::new_empty!(bool, D));
7618 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
7619 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7620 {
7621 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7622 }
7623 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7624 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7625 }
7626 }
7627
7628 next_offset += envelope_size;
7629 _next_ordinal_to_read += 1;
7630 if next_offset >= end_offset {
7631 return Ok(());
7632 }
7633
7634 while _next_ordinal_to_read < 2 {
7636 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7637 _next_ordinal_to_read += 1;
7638 next_offset += envelope_size;
7639 }
7640
7641 let next_out_of_line = decoder.next_out_of_line();
7642 let handles_before = decoder.remaining_handles();
7643 if let Some((inlined, num_bytes, num_handles)) =
7644 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7645 {
7646 let member_inline_size =
7647 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7648 if inlined != (member_inline_size <= 4) {
7649 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7650 }
7651 let inner_offset;
7652 let mut inner_depth = depth.clone();
7653 if inlined {
7654 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7655 inner_offset = next_offset;
7656 } else {
7657 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7658 inner_depth.increment()?;
7659 }
7660 let val_ref = self.agc_enabled.get_or_insert_with(|| fidl::new_empty!(bool, D));
7661 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
7662 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7663 {
7664 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7665 }
7666 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7667 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7668 }
7669 }
7670
7671 next_offset += envelope_size;
7672 _next_ordinal_to_read += 1;
7673 if next_offset >= end_offset {
7674 return Ok(());
7675 }
7676
7677 while _next_ordinal_to_read < 3 {
7679 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7680 _next_ordinal_to_read += 1;
7681 next_offset += envelope_size;
7682 }
7683
7684 let next_out_of_line = decoder.next_out_of_line();
7685 let handles_before = decoder.remaining_handles();
7686 if let Some((inlined, num_bytes, num_handles)) =
7687 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7688 {
7689 let member_inline_size =
7690 <f32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7691 if inlined != (member_inline_size <= 4) {
7692 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7693 }
7694 let inner_offset;
7695 let mut inner_depth = depth.clone();
7696 if inlined {
7697 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7698 inner_offset = next_offset;
7699 } else {
7700 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7701 inner_depth.increment()?;
7702 }
7703 let val_ref = self.gain_db.get_or_insert_with(|| fidl::new_empty!(f32, D));
7704 fidl::decode!(f32, D, val_ref, decoder, inner_offset, inner_depth)?;
7705 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7706 {
7707 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7708 }
7709 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7710 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7711 }
7712 }
7713
7714 next_offset += envelope_size;
7715
7716 while next_offset < end_offset {
7718 _next_ordinal_to_read += 1;
7719 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7720 next_offset += envelope_size;
7721 }
7722
7723 Ok(())
7724 }
7725 }
7726
7727 impl HealthState {
7728 #[inline(always)]
7729 fn max_ordinal_present(&self) -> u64 {
7730 if let Some(_) = self.healthy {
7731 return 1;
7732 }
7733 0
7734 }
7735 }
7736
7737 impl fidl::encoding::ValueTypeMarker for HealthState {
7738 type Borrowed<'a> = &'a Self;
7739 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
7740 value
7741 }
7742 }
7743
7744 unsafe impl fidl::encoding::TypeMarker for HealthState {
7745 type Owned = Self;
7746
7747 #[inline(always)]
7748 fn inline_align(_context: fidl::encoding::Context) -> usize {
7749 8
7750 }
7751
7752 #[inline(always)]
7753 fn inline_size(_context: fidl::encoding::Context) -> usize {
7754 16
7755 }
7756 }
7757
7758 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<HealthState, D>
7759 for &HealthState
7760 {
7761 unsafe fn encode(
7762 self,
7763 encoder: &mut fidl::encoding::Encoder<'_, D>,
7764 offset: usize,
7765 mut depth: fidl::encoding::Depth,
7766 ) -> fidl::Result<()> {
7767 encoder.debug_check_bounds::<HealthState>(offset);
7768 let max_ordinal: u64 = self.max_ordinal_present();
7770 encoder.write_num(max_ordinal, offset);
7771 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
7772 if max_ordinal == 0 {
7774 return Ok(());
7775 }
7776 depth.increment()?;
7777 let envelope_size = 8;
7778 let bytes_len = max_ordinal as usize * envelope_size;
7779 #[allow(unused_variables)]
7780 let offset = encoder.out_of_line_offset(bytes_len);
7781 let mut _prev_end_offset: usize = 0;
7782 if 1 > max_ordinal {
7783 return Ok(());
7784 }
7785
7786 let cur_offset: usize = (1 - 1) * envelope_size;
7789
7790 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7792
7793 fidl::encoding::encode_in_envelope_optional::<bool, D>(
7798 self.healthy.as_ref().map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
7799 encoder,
7800 offset + cur_offset,
7801 depth,
7802 )?;
7803
7804 _prev_end_offset = cur_offset + envelope_size;
7805
7806 Ok(())
7807 }
7808 }
7809
7810 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for HealthState {
7811 #[inline(always)]
7812 fn new_empty() -> Self {
7813 Self::default()
7814 }
7815
7816 unsafe fn decode(
7817 &mut self,
7818 decoder: &mut fidl::encoding::Decoder<'_, D>,
7819 offset: usize,
7820 mut depth: fidl::encoding::Depth,
7821 ) -> fidl::Result<()> {
7822 decoder.debug_check_bounds::<Self>(offset);
7823 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
7824 None => return Err(fidl::Error::NotNullable),
7825 Some(len) => len,
7826 };
7827 if len == 0 {
7829 return Ok(());
7830 };
7831 depth.increment()?;
7832 let envelope_size = 8;
7833 let bytes_len = len * envelope_size;
7834 let offset = decoder.out_of_line_offset(bytes_len)?;
7835 let mut _next_ordinal_to_read = 0;
7837 let mut next_offset = offset;
7838 let end_offset = offset + bytes_len;
7839 _next_ordinal_to_read += 1;
7840 if next_offset >= end_offset {
7841 return Ok(());
7842 }
7843
7844 while _next_ordinal_to_read < 1 {
7846 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7847 _next_ordinal_to_read += 1;
7848 next_offset += envelope_size;
7849 }
7850
7851 let next_out_of_line = decoder.next_out_of_line();
7852 let handles_before = decoder.remaining_handles();
7853 if let Some((inlined, num_bytes, num_handles)) =
7854 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7855 {
7856 let member_inline_size =
7857 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7858 if inlined != (member_inline_size <= 4) {
7859 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7860 }
7861 let inner_offset;
7862 let mut inner_depth = depth.clone();
7863 if inlined {
7864 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7865 inner_offset = next_offset;
7866 } else {
7867 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7868 inner_depth.increment()?;
7869 }
7870 let val_ref = self.healthy.get_or_insert_with(|| fidl::new_empty!(bool, D));
7871 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
7872 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7873 {
7874 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7875 }
7876 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7877 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7878 }
7879 }
7880
7881 next_offset += envelope_size;
7882
7883 while next_offset < end_offset {
7885 _next_ordinal_to_read += 1;
7886 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7887 next_offset += envelope_size;
7888 }
7889
7890 Ok(())
7891 }
7892 }
7893
7894 impl PcmSupportedFormats {
7895 #[inline(always)]
7896 fn max_ordinal_present(&self) -> u64 {
7897 if let Some(_) = self.frame_rates {
7898 return 5;
7899 }
7900 if let Some(_) = self.valid_bits_per_sample {
7901 return 4;
7902 }
7903 if let Some(_) = self.bytes_per_sample {
7904 return 3;
7905 }
7906 if let Some(_) = self.sample_formats {
7907 return 2;
7908 }
7909 if let Some(_) = self.channel_sets {
7910 return 1;
7911 }
7912 0
7913 }
7914 }
7915
7916 impl fidl::encoding::ValueTypeMarker for PcmSupportedFormats {
7917 type Borrowed<'a> = &'a Self;
7918 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
7919 value
7920 }
7921 }
7922
7923 unsafe impl fidl::encoding::TypeMarker for PcmSupportedFormats {
7924 type Owned = Self;
7925
7926 #[inline(always)]
7927 fn inline_align(_context: fidl::encoding::Context) -> usize {
7928 8
7929 }
7930
7931 #[inline(always)]
7932 fn inline_size(_context: fidl::encoding::Context) -> usize {
7933 16
7934 }
7935 }
7936
7937 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<PcmSupportedFormats, D>
7938 for &PcmSupportedFormats
7939 {
7940 unsafe fn encode(
7941 self,
7942 encoder: &mut fidl::encoding::Encoder<'_, D>,
7943 offset: usize,
7944 mut depth: fidl::encoding::Depth,
7945 ) -> fidl::Result<()> {
7946 encoder.debug_check_bounds::<PcmSupportedFormats>(offset);
7947 let max_ordinal: u64 = self.max_ordinal_present();
7949 encoder.write_num(max_ordinal, offset);
7950 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
7951 if max_ordinal == 0 {
7953 return Ok(());
7954 }
7955 depth.increment()?;
7956 let envelope_size = 8;
7957 let bytes_len = max_ordinal as usize * envelope_size;
7958 #[allow(unused_variables)]
7959 let offset = encoder.out_of_line_offset(bytes_len);
7960 let mut _prev_end_offset: usize = 0;
7961 if 1 > max_ordinal {
7962 return Ok(());
7963 }
7964
7965 let cur_offset: usize = (1 - 1) * envelope_size;
7968
7969 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7971
7972 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<ChannelSet, 64>, D>(
7977 self.channel_sets.as_ref().map(<fidl::encoding::Vector<ChannelSet, 64> as fidl::encoding::ValueTypeMarker>::borrow),
7978 encoder, offset + cur_offset, depth
7979 )?;
7980
7981 _prev_end_offset = cur_offset + envelope_size;
7982 if 2 > max_ordinal {
7983 return Ok(());
7984 }
7985
7986 let cur_offset: usize = (2 - 1) * envelope_size;
7989
7990 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7992
7993 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<SampleFormat, 3>, D>(
7998 self.sample_formats.as_ref().map(<fidl::encoding::Vector<SampleFormat, 3> as fidl::encoding::ValueTypeMarker>::borrow),
7999 encoder, offset + cur_offset, depth
8000 )?;
8001
8002 _prev_end_offset = cur_offset + envelope_size;
8003 if 3 > max_ordinal {
8004 return Ok(());
8005 }
8006
8007 let cur_offset: usize = (3 - 1) * envelope_size;
8010
8011 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8013
8014 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<u8, 8>, D>(
8019 self.bytes_per_sample.as_ref().map(
8020 <fidl::encoding::Vector<u8, 8> as fidl::encoding::ValueTypeMarker>::borrow,
8021 ),
8022 encoder,
8023 offset + cur_offset,
8024 depth,
8025 )?;
8026
8027 _prev_end_offset = cur_offset + envelope_size;
8028 if 4 > max_ordinal {
8029 return Ok(());
8030 }
8031
8032 let cur_offset: usize = (4 - 1) * envelope_size;
8035
8036 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8038
8039 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<u8, 8>, D>(
8044 self.valid_bits_per_sample.as_ref().map(
8045 <fidl::encoding::Vector<u8, 8> as fidl::encoding::ValueTypeMarker>::borrow,
8046 ),
8047 encoder,
8048 offset + cur_offset,
8049 depth,
8050 )?;
8051
8052 _prev_end_offset = cur_offset + envelope_size;
8053 if 5 > max_ordinal {
8054 return Ok(());
8055 }
8056
8057 let cur_offset: usize = (5 - 1) * envelope_size;
8060
8061 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8063
8064 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<u32, 64>, D>(
8069 self.frame_rates.as_ref().map(
8070 <fidl::encoding::Vector<u32, 64> as fidl::encoding::ValueTypeMarker>::borrow,
8071 ),
8072 encoder,
8073 offset + cur_offset,
8074 depth,
8075 )?;
8076
8077 _prev_end_offset = cur_offset + envelope_size;
8078
8079 Ok(())
8080 }
8081 }
8082
8083 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for PcmSupportedFormats {
8084 #[inline(always)]
8085 fn new_empty() -> Self {
8086 Self::default()
8087 }
8088
8089 unsafe fn decode(
8090 &mut self,
8091 decoder: &mut fidl::encoding::Decoder<'_, D>,
8092 offset: usize,
8093 mut depth: fidl::encoding::Depth,
8094 ) -> fidl::Result<()> {
8095 decoder.debug_check_bounds::<Self>(offset);
8096 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
8097 None => return Err(fidl::Error::NotNullable),
8098 Some(len) => len,
8099 };
8100 if len == 0 {
8102 return Ok(());
8103 };
8104 depth.increment()?;
8105 let envelope_size = 8;
8106 let bytes_len = len * envelope_size;
8107 let offset = decoder.out_of_line_offset(bytes_len)?;
8108 let mut _next_ordinal_to_read = 0;
8110 let mut next_offset = offset;
8111 let end_offset = offset + bytes_len;
8112 _next_ordinal_to_read += 1;
8113 if next_offset >= end_offset {
8114 return Ok(());
8115 }
8116
8117 while _next_ordinal_to_read < 1 {
8119 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8120 _next_ordinal_to_read += 1;
8121 next_offset += envelope_size;
8122 }
8123
8124 let next_out_of_line = decoder.next_out_of_line();
8125 let handles_before = decoder.remaining_handles();
8126 if let Some((inlined, num_bytes, num_handles)) =
8127 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8128 {
8129 let member_inline_size = <fidl::encoding::Vector<ChannelSet, 64> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8130 if inlined != (member_inline_size <= 4) {
8131 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8132 }
8133 let inner_offset;
8134 let mut inner_depth = depth.clone();
8135 if inlined {
8136 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8137 inner_offset = next_offset;
8138 } else {
8139 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8140 inner_depth.increment()?;
8141 }
8142 let val_ref = self.channel_sets.get_or_insert_with(
8143 || fidl::new_empty!(fidl::encoding::Vector<ChannelSet, 64>, D),
8144 );
8145 fidl::decode!(fidl::encoding::Vector<ChannelSet, 64>, D, val_ref, decoder, inner_offset, inner_depth)?;
8146 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8147 {
8148 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8149 }
8150 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8151 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8152 }
8153 }
8154
8155 next_offset += envelope_size;
8156 _next_ordinal_to_read += 1;
8157 if next_offset >= end_offset {
8158 return Ok(());
8159 }
8160
8161 while _next_ordinal_to_read < 2 {
8163 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8164 _next_ordinal_to_read += 1;
8165 next_offset += envelope_size;
8166 }
8167
8168 let next_out_of_line = decoder.next_out_of_line();
8169 let handles_before = decoder.remaining_handles();
8170 if let Some((inlined, num_bytes, num_handles)) =
8171 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8172 {
8173 let member_inline_size = <fidl::encoding::Vector<SampleFormat, 3> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8174 if inlined != (member_inline_size <= 4) {
8175 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8176 }
8177 let inner_offset;
8178 let mut inner_depth = depth.clone();
8179 if inlined {
8180 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8181 inner_offset = next_offset;
8182 } else {
8183 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8184 inner_depth.increment()?;
8185 }
8186 let val_ref = self.sample_formats.get_or_insert_with(
8187 || fidl::new_empty!(fidl::encoding::Vector<SampleFormat, 3>, D),
8188 );
8189 fidl::decode!(fidl::encoding::Vector<SampleFormat, 3>, D, val_ref, decoder, inner_offset, inner_depth)?;
8190 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8191 {
8192 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8193 }
8194 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8195 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8196 }
8197 }
8198
8199 next_offset += envelope_size;
8200 _next_ordinal_to_read += 1;
8201 if next_offset >= end_offset {
8202 return Ok(());
8203 }
8204
8205 while _next_ordinal_to_read < 3 {
8207 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8208 _next_ordinal_to_read += 1;
8209 next_offset += envelope_size;
8210 }
8211
8212 let next_out_of_line = decoder.next_out_of_line();
8213 let handles_before = decoder.remaining_handles();
8214 if let Some((inlined, num_bytes, num_handles)) =
8215 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8216 {
8217 let member_inline_size =
8218 <fidl::encoding::Vector<u8, 8> as fidl::encoding::TypeMarker>::inline_size(
8219 decoder.context,
8220 );
8221 if inlined != (member_inline_size <= 4) {
8222 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8223 }
8224 let inner_offset;
8225 let mut inner_depth = depth.clone();
8226 if inlined {
8227 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8228 inner_offset = next_offset;
8229 } else {
8230 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8231 inner_depth.increment()?;
8232 }
8233 let val_ref = self
8234 .bytes_per_sample
8235 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<u8, 8>, D));
8236 fidl::decode!(fidl::encoding::Vector<u8, 8>, D, val_ref, decoder, inner_offset, inner_depth)?;
8237 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8238 {
8239 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8240 }
8241 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8242 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8243 }
8244 }
8245
8246 next_offset += envelope_size;
8247 _next_ordinal_to_read += 1;
8248 if next_offset >= end_offset {
8249 return Ok(());
8250 }
8251
8252 while _next_ordinal_to_read < 4 {
8254 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8255 _next_ordinal_to_read += 1;
8256 next_offset += envelope_size;
8257 }
8258
8259 let next_out_of_line = decoder.next_out_of_line();
8260 let handles_before = decoder.remaining_handles();
8261 if let Some((inlined, num_bytes, num_handles)) =
8262 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8263 {
8264 let member_inline_size =
8265 <fidl::encoding::Vector<u8, 8> as fidl::encoding::TypeMarker>::inline_size(
8266 decoder.context,
8267 );
8268 if inlined != (member_inline_size <= 4) {
8269 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8270 }
8271 let inner_offset;
8272 let mut inner_depth = depth.clone();
8273 if inlined {
8274 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8275 inner_offset = next_offset;
8276 } else {
8277 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8278 inner_depth.increment()?;
8279 }
8280 let val_ref = self
8281 .valid_bits_per_sample
8282 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<u8, 8>, D));
8283 fidl::decode!(fidl::encoding::Vector<u8, 8>, D, val_ref, decoder, inner_offset, inner_depth)?;
8284 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8285 {
8286 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8287 }
8288 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8289 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8290 }
8291 }
8292
8293 next_offset += envelope_size;
8294 _next_ordinal_to_read += 1;
8295 if next_offset >= end_offset {
8296 return Ok(());
8297 }
8298
8299 while _next_ordinal_to_read < 5 {
8301 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8302 _next_ordinal_to_read += 1;
8303 next_offset += envelope_size;
8304 }
8305
8306 let next_out_of_line = decoder.next_out_of_line();
8307 let handles_before = decoder.remaining_handles();
8308 if let Some((inlined, num_bytes, num_handles)) =
8309 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8310 {
8311 let member_inline_size =
8312 <fidl::encoding::Vector<u32, 64> as fidl::encoding::TypeMarker>::inline_size(
8313 decoder.context,
8314 );
8315 if inlined != (member_inline_size <= 4) {
8316 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8317 }
8318 let inner_offset;
8319 let mut inner_depth = depth.clone();
8320 if inlined {
8321 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8322 inner_offset = next_offset;
8323 } else {
8324 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8325 inner_depth.increment()?;
8326 }
8327 let val_ref = self
8328 .frame_rates
8329 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<u32, 64>, D));
8330 fidl::decode!(fidl::encoding::Vector<u32, 64>, D, val_ref, decoder, inner_offset, inner_depth)?;
8331 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8332 {
8333 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8334 }
8335 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8336 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8337 }
8338 }
8339
8340 next_offset += envelope_size;
8341
8342 while next_offset < end_offset {
8344 _next_ordinal_to_read += 1;
8345 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8346 next_offset += envelope_size;
8347 }
8348
8349 Ok(())
8350 }
8351 }
8352
8353 impl PlugState {
8354 #[inline(always)]
8355 fn max_ordinal_present(&self) -> u64 {
8356 if let Some(_) = self.plug_state_time {
8357 return 2;
8358 }
8359 if let Some(_) = self.plugged {
8360 return 1;
8361 }
8362 0
8363 }
8364 }
8365
8366 impl fidl::encoding::ValueTypeMarker for PlugState {
8367 type Borrowed<'a> = &'a Self;
8368 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
8369 value
8370 }
8371 }
8372
8373 unsafe impl fidl::encoding::TypeMarker for PlugState {
8374 type Owned = Self;
8375
8376 #[inline(always)]
8377 fn inline_align(_context: fidl::encoding::Context) -> usize {
8378 8
8379 }
8380
8381 #[inline(always)]
8382 fn inline_size(_context: fidl::encoding::Context) -> usize {
8383 16
8384 }
8385 }
8386
8387 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<PlugState, D>
8388 for &PlugState
8389 {
8390 unsafe fn encode(
8391 self,
8392 encoder: &mut fidl::encoding::Encoder<'_, D>,
8393 offset: usize,
8394 mut depth: fidl::encoding::Depth,
8395 ) -> fidl::Result<()> {
8396 encoder.debug_check_bounds::<PlugState>(offset);
8397 let max_ordinal: u64 = self.max_ordinal_present();
8399 encoder.write_num(max_ordinal, offset);
8400 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
8401 if max_ordinal == 0 {
8403 return Ok(());
8404 }
8405 depth.increment()?;
8406 let envelope_size = 8;
8407 let bytes_len = max_ordinal as usize * envelope_size;
8408 #[allow(unused_variables)]
8409 let offset = encoder.out_of_line_offset(bytes_len);
8410 let mut _prev_end_offset: usize = 0;
8411 if 1 > max_ordinal {
8412 return Ok(());
8413 }
8414
8415 let cur_offset: usize = (1 - 1) * envelope_size;
8418
8419 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8421
8422 fidl::encoding::encode_in_envelope_optional::<bool, D>(
8427 self.plugged.as_ref().map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
8428 encoder,
8429 offset + cur_offset,
8430 depth,
8431 )?;
8432
8433 _prev_end_offset = cur_offset + envelope_size;
8434 if 2 > max_ordinal {
8435 return Ok(());
8436 }
8437
8438 let cur_offset: usize = (2 - 1) * envelope_size;
8441
8442 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8444
8445 fidl::encoding::encode_in_envelope_optional::<i64, D>(
8450 self.plug_state_time.as_ref().map(<i64 as fidl::encoding::ValueTypeMarker>::borrow),
8451 encoder,
8452 offset + cur_offset,
8453 depth,
8454 )?;
8455
8456 _prev_end_offset = cur_offset + envelope_size;
8457
8458 Ok(())
8459 }
8460 }
8461
8462 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for PlugState {
8463 #[inline(always)]
8464 fn new_empty() -> Self {
8465 Self::default()
8466 }
8467
8468 unsafe fn decode(
8469 &mut self,
8470 decoder: &mut fidl::encoding::Decoder<'_, D>,
8471 offset: usize,
8472 mut depth: fidl::encoding::Depth,
8473 ) -> fidl::Result<()> {
8474 decoder.debug_check_bounds::<Self>(offset);
8475 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
8476 None => return Err(fidl::Error::NotNullable),
8477 Some(len) => len,
8478 };
8479 if len == 0 {
8481 return Ok(());
8482 };
8483 depth.increment()?;
8484 let envelope_size = 8;
8485 let bytes_len = len * envelope_size;
8486 let offset = decoder.out_of_line_offset(bytes_len)?;
8487 let mut _next_ordinal_to_read = 0;
8489 let mut next_offset = offset;
8490 let end_offset = offset + bytes_len;
8491 _next_ordinal_to_read += 1;
8492 if next_offset >= end_offset {
8493 return Ok(());
8494 }
8495
8496 while _next_ordinal_to_read < 1 {
8498 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8499 _next_ordinal_to_read += 1;
8500 next_offset += envelope_size;
8501 }
8502
8503 let next_out_of_line = decoder.next_out_of_line();
8504 let handles_before = decoder.remaining_handles();
8505 if let Some((inlined, num_bytes, num_handles)) =
8506 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8507 {
8508 let member_inline_size =
8509 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8510 if inlined != (member_inline_size <= 4) {
8511 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8512 }
8513 let inner_offset;
8514 let mut inner_depth = depth.clone();
8515 if inlined {
8516 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8517 inner_offset = next_offset;
8518 } else {
8519 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8520 inner_depth.increment()?;
8521 }
8522 let val_ref = self.plugged.get_or_insert_with(|| fidl::new_empty!(bool, D));
8523 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
8524 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8525 {
8526 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8527 }
8528 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8529 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8530 }
8531 }
8532
8533 next_offset += envelope_size;
8534 _next_ordinal_to_read += 1;
8535 if next_offset >= end_offset {
8536 return Ok(());
8537 }
8538
8539 while _next_ordinal_to_read < 2 {
8541 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8542 _next_ordinal_to_read += 1;
8543 next_offset += envelope_size;
8544 }
8545
8546 let next_out_of_line = decoder.next_out_of_line();
8547 let handles_before = decoder.remaining_handles();
8548 if let Some((inlined, num_bytes, num_handles)) =
8549 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8550 {
8551 let member_inline_size =
8552 <i64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8553 if inlined != (member_inline_size <= 4) {
8554 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8555 }
8556 let inner_offset;
8557 let mut inner_depth = depth.clone();
8558 if inlined {
8559 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8560 inner_offset = next_offset;
8561 } else {
8562 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8563 inner_depth.increment()?;
8564 }
8565 let val_ref = self.plug_state_time.get_or_insert_with(|| fidl::new_empty!(i64, D));
8566 fidl::decode!(i64, D, val_ref, decoder, inner_offset, inner_depth)?;
8567 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8568 {
8569 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8570 }
8571 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8572 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8573 }
8574 }
8575
8576 next_offset += envelope_size;
8577
8578 while next_offset < end_offset {
8580 _next_ordinal_to_read += 1;
8581 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8582 next_offset += envelope_size;
8583 }
8584
8585 Ok(())
8586 }
8587 }
8588
8589 impl RingBufferProperties {
8590 #[inline(always)]
8591 fn max_ordinal_present(&self) -> u64 {
8592 if let Some(_) = self.driver_transfer_bytes {
8593 return 5;
8594 }
8595 if let Some(_) = self.turn_on_delay {
8596 return 4;
8597 }
8598 if let Some(_) = self.needs_cache_flush_or_invalidate {
8599 return 3;
8600 }
8601 0
8602 }
8603 }
8604
8605 impl fidl::encoding::ValueTypeMarker for RingBufferProperties {
8606 type Borrowed<'a> = &'a Self;
8607 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
8608 value
8609 }
8610 }
8611
8612 unsafe impl fidl::encoding::TypeMarker for RingBufferProperties {
8613 type Owned = Self;
8614
8615 #[inline(always)]
8616 fn inline_align(_context: fidl::encoding::Context) -> usize {
8617 8
8618 }
8619
8620 #[inline(always)]
8621 fn inline_size(_context: fidl::encoding::Context) -> usize {
8622 16
8623 }
8624 }
8625
8626 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<RingBufferProperties, D>
8627 for &RingBufferProperties
8628 {
8629 unsafe fn encode(
8630 self,
8631 encoder: &mut fidl::encoding::Encoder<'_, D>,
8632 offset: usize,
8633 mut depth: fidl::encoding::Depth,
8634 ) -> fidl::Result<()> {
8635 encoder.debug_check_bounds::<RingBufferProperties>(offset);
8636 let max_ordinal: u64 = self.max_ordinal_present();
8638 encoder.write_num(max_ordinal, offset);
8639 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
8640 if max_ordinal == 0 {
8642 return Ok(());
8643 }
8644 depth.increment()?;
8645 let envelope_size = 8;
8646 let bytes_len = max_ordinal as usize * envelope_size;
8647 #[allow(unused_variables)]
8648 let offset = encoder.out_of_line_offset(bytes_len);
8649 let mut _prev_end_offset: usize = 0;
8650 if 3 > max_ordinal {
8651 return Ok(());
8652 }
8653
8654 let cur_offset: usize = (3 - 1) * envelope_size;
8657
8658 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8660
8661 fidl::encoding::encode_in_envelope_optional::<bool, D>(
8666 self.needs_cache_flush_or_invalidate
8667 .as_ref()
8668 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
8669 encoder,
8670 offset + cur_offset,
8671 depth,
8672 )?;
8673
8674 _prev_end_offset = cur_offset + envelope_size;
8675 if 4 > max_ordinal {
8676 return Ok(());
8677 }
8678
8679 let cur_offset: usize = (4 - 1) * envelope_size;
8682
8683 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8685
8686 fidl::encoding::encode_in_envelope_optional::<i64, D>(
8691 self.turn_on_delay.as_ref().map(<i64 as fidl::encoding::ValueTypeMarker>::borrow),
8692 encoder,
8693 offset + cur_offset,
8694 depth,
8695 )?;
8696
8697 _prev_end_offset = cur_offset + envelope_size;
8698 if 5 > max_ordinal {
8699 return Ok(());
8700 }
8701
8702 let cur_offset: usize = (5 - 1) * envelope_size;
8705
8706 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8708
8709 fidl::encoding::encode_in_envelope_optional::<u32, D>(
8714 self.driver_transfer_bytes
8715 .as_ref()
8716 .map(<u32 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 RingBufferProperties {
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 < 3 {
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 <bool 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
8789 .needs_cache_flush_or_invalidate
8790 .get_or_insert_with(|| fidl::new_empty!(bool, D));
8791 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
8792 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8793 {
8794 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8795 }
8796 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8797 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8798 }
8799 }
8800
8801 next_offset += envelope_size;
8802 _next_ordinal_to_read += 1;
8803 if next_offset >= end_offset {
8804 return Ok(());
8805 }
8806
8807 while _next_ordinal_to_read < 4 {
8809 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8810 _next_ordinal_to_read += 1;
8811 next_offset += envelope_size;
8812 }
8813
8814 let next_out_of_line = decoder.next_out_of_line();
8815 let handles_before = decoder.remaining_handles();
8816 if let Some((inlined, num_bytes, num_handles)) =
8817 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8818 {
8819 let member_inline_size =
8820 <i64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8821 if inlined != (member_inline_size <= 4) {
8822 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8823 }
8824 let inner_offset;
8825 let mut inner_depth = depth.clone();
8826 if inlined {
8827 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8828 inner_offset = next_offset;
8829 } else {
8830 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8831 inner_depth.increment()?;
8832 }
8833 let val_ref = self.turn_on_delay.get_or_insert_with(|| fidl::new_empty!(i64, D));
8834 fidl::decode!(i64, D, val_ref, decoder, inner_offset, inner_depth)?;
8835 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8836 {
8837 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8838 }
8839 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8840 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8841 }
8842 }
8843
8844 next_offset += envelope_size;
8845 _next_ordinal_to_read += 1;
8846 if next_offset >= end_offset {
8847 return Ok(());
8848 }
8849
8850 while _next_ordinal_to_read < 5 {
8852 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8853 _next_ordinal_to_read += 1;
8854 next_offset += envelope_size;
8855 }
8856
8857 let next_out_of_line = decoder.next_out_of_line();
8858 let handles_before = decoder.remaining_handles();
8859 if let Some((inlined, num_bytes, num_handles)) =
8860 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8861 {
8862 let member_inline_size =
8863 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8864 if inlined != (member_inline_size <= 4) {
8865 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8866 }
8867 let inner_offset;
8868 let mut inner_depth = depth.clone();
8869 if inlined {
8870 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8871 inner_offset = next_offset;
8872 } else {
8873 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8874 inner_depth.increment()?;
8875 }
8876 let val_ref =
8877 self.driver_transfer_bytes.get_or_insert_with(|| fidl::new_empty!(u32, D));
8878 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
8879 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8880 {
8881 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8882 }
8883 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8884 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8885 }
8886 }
8887
8888 next_offset += envelope_size;
8889
8890 while next_offset < end_offset {
8892 _next_ordinal_to_read += 1;
8893 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8894 next_offset += envelope_size;
8895 }
8896
8897 Ok(())
8898 }
8899 }
8900
8901 impl StreamProperties {
8902 #[inline(always)]
8903 fn max_ordinal_present(&self) -> u64 {
8904 if let Some(_) = self.clock_domain {
8905 return 11;
8906 }
8907 if let Some(_) = self.product {
8908 return 10;
8909 }
8910 if let Some(_) = self.manufacturer {
8911 return 9;
8912 }
8913 if let Some(_) = self.plug_detect_capabilities {
8914 return 8;
8915 }
8916 if let Some(_) = self.gain_step_db {
8917 return 7;
8918 }
8919 if let Some(_) = self.max_gain_db {
8920 return 6;
8921 }
8922 if let Some(_) = self.min_gain_db {
8923 return 5;
8924 }
8925 if let Some(_) = self.can_agc {
8926 return 4;
8927 }
8928 if let Some(_) = self.can_mute {
8929 return 3;
8930 }
8931 if let Some(_) = self.is_input {
8932 return 2;
8933 }
8934 if let Some(_) = self.unique_id {
8935 return 1;
8936 }
8937 0
8938 }
8939 }
8940
8941 impl fidl::encoding::ValueTypeMarker for StreamProperties {
8942 type Borrowed<'a> = &'a Self;
8943 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
8944 value
8945 }
8946 }
8947
8948 unsafe impl fidl::encoding::TypeMarker for StreamProperties {
8949 type Owned = Self;
8950
8951 #[inline(always)]
8952 fn inline_align(_context: fidl::encoding::Context) -> usize {
8953 8
8954 }
8955
8956 #[inline(always)]
8957 fn inline_size(_context: fidl::encoding::Context) -> usize {
8958 16
8959 }
8960 }
8961
8962 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<StreamProperties, D>
8963 for &StreamProperties
8964 {
8965 unsafe fn encode(
8966 self,
8967 encoder: &mut fidl::encoding::Encoder<'_, D>,
8968 offset: usize,
8969 mut depth: fidl::encoding::Depth,
8970 ) -> fidl::Result<()> {
8971 encoder.debug_check_bounds::<StreamProperties>(offset);
8972 let max_ordinal: u64 = self.max_ordinal_present();
8974 encoder.write_num(max_ordinal, offset);
8975 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
8976 if max_ordinal == 0 {
8978 return Ok(());
8979 }
8980 depth.increment()?;
8981 let envelope_size = 8;
8982 let bytes_len = max_ordinal as usize * envelope_size;
8983 #[allow(unused_variables)]
8984 let offset = encoder.out_of_line_offset(bytes_len);
8985 let mut _prev_end_offset: usize = 0;
8986 if 1 > max_ordinal {
8987 return Ok(());
8988 }
8989
8990 let cur_offset: usize = (1 - 1) * envelope_size;
8993
8994 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8996
8997 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 16>, D>(
9002 self.unique_id.as_ref().map(
9003 <fidl::encoding::Array<u8, 16> as fidl::encoding::ValueTypeMarker>::borrow,
9004 ),
9005 encoder,
9006 offset + cur_offset,
9007 depth,
9008 )?;
9009
9010 _prev_end_offset = cur_offset + envelope_size;
9011 if 2 > max_ordinal {
9012 return Ok(());
9013 }
9014
9015 let cur_offset: usize = (2 - 1) * envelope_size;
9018
9019 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9021
9022 fidl::encoding::encode_in_envelope_optional::<bool, D>(
9027 self.is_input.as_ref().map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
9028 encoder,
9029 offset + cur_offset,
9030 depth,
9031 )?;
9032
9033 _prev_end_offset = cur_offset + envelope_size;
9034 if 3 > max_ordinal {
9035 return Ok(());
9036 }
9037
9038 let cur_offset: usize = (3 - 1) * envelope_size;
9041
9042 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9044
9045 fidl::encoding::encode_in_envelope_optional::<bool, D>(
9050 self.can_mute.as_ref().map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
9051 encoder,
9052 offset + cur_offset,
9053 depth,
9054 )?;
9055
9056 _prev_end_offset = cur_offset + envelope_size;
9057 if 4 > max_ordinal {
9058 return Ok(());
9059 }
9060
9061 let cur_offset: usize = (4 - 1) * envelope_size;
9064
9065 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9067
9068 fidl::encoding::encode_in_envelope_optional::<bool, D>(
9073 self.can_agc.as_ref().map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
9074 encoder,
9075 offset + cur_offset,
9076 depth,
9077 )?;
9078
9079 _prev_end_offset = cur_offset + envelope_size;
9080 if 5 > max_ordinal {
9081 return Ok(());
9082 }
9083
9084 let cur_offset: usize = (5 - 1) * envelope_size;
9087
9088 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9090
9091 fidl::encoding::encode_in_envelope_optional::<f32, D>(
9096 self.min_gain_db.as_ref().map(<f32 as fidl::encoding::ValueTypeMarker>::borrow),
9097 encoder,
9098 offset + cur_offset,
9099 depth,
9100 )?;
9101
9102 _prev_end_offset = cur_offset + envelope_size;
9103 if 6 > max_ordinal {
9104 return Ok(());
9105 }
9106
9107 let cur_offset: usize = (6 - 1) * envelope_size;
9110
9111 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9113
9114 fidl::encoding::encode_in_envelope_optional::<f32, D>(
9119 self.max_gain_db.as_ref().map(<f32 as fidl::encoding::ValueTypeMarker>::borrow),
9120 encoder,
9121 offset + cur_offset,
9122 depth,
9123 )?;
9124
9125 _prev_end_offset = cur_offset + envelope_size;
9126 if 7 > max_ordinal {
9127 return Ok(());
9128 }
9129
9130 let cur_offset: usize = (7 - 1) * envelope_size;
9133
9134 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9136
9137 fidl::encoding::encode_in_envelope_optional::<f32, D>(
9142 self.gain_step_db.as_ref().map(<f32 as fidl::encoding::ValueTypeMarker>::borrow),
9143 encoder,
9144 offset + cur_offset,
9145 depth,
9146 )?;
9147
9148 _prev_end_offset = cur_offset + envelope_size;
9149 if 8 > max_ordinal {
9150 return Ok(());
9151 }
9152
9153 let cur_offset: usize = (8 - 1) * envelope_size;
9156
9157 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9159
9160 fidl::encoding::encode_in_envelope_optional::<PlugDetectCapabilities, D>(
9165 self.plug_detect_capabilities
9166 .as_ref()
9167 .map(<PlugDetectCapabilities as fidl::encoding::ValueTypeMarker>::borrow),
9168 encoder,
9169 offset + cur_offset,
9170 depth,
9171 )?;
9172
9173 _prev_end_offset = cur_offset + envelope_size;
9174 if 9 > max_ordinal {
9175 return Ok(());
9176 }
9177
9178 let cur_offset: usize = (9 - 1) * envelope_size;
9181
9182 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9184
9185 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<256>, D>(
9190 self.manufacturer.as_ref().map(
9191 <fidl::encoding::BoundedString<256> as fidl::encoding::ValueTypeMarker>::borrow,
9192 ),
9193 encoder,
9194 offset + cur_offset,
9195 depth,
9196 )?;
9197
9198 _prev_end_offset = cur_offset + envelope_size;
9199 if 10 > max_ordinal {
9200 return Ok(());
9201 }
9202
9203 let cur_offset: usize = (10 - 1) * envelope_size;
9206
9207 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9209
9210 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<256>, D>(
9215 self.product.as_ref().map(
9216 <fidl::encoding::BoundedString<256> as fidl::encoding::ValueTypeMarker>::borrow,
9217 ),
9218 encoder,
9219 offset + cur_offset,
9220 depth,
9221 )?;
9222
9223 _prev_end_offset = cur_offset + envelope_size;
9224 if 11 > max_ordinal {
9225 return Ok(());
9226 }
9227
9228 let cur_offset: usize = (11 - 1) * envelope_size;
9231
9232 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9234
9235 fidl::encoding::encode_in_envelope_optional::<u32, D>(
9240 self.clock_domain.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
9241 encoder,
9242 offset + cur_offset,
9243 depth,
9244 )?;
9245
9246 _prev_end_offset = cur_offset + envelope_size;
9247
9248 Ok(())
9249 }
9250 }
9251
9252 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for StreamProperties {
9253 #[inline(always)]
9254 fn new_empty() -> Self {
9255 Self::default()
9256 }
9257
9258 unsafe fn decode(
9259 &mut self,
9260 decoder: &mut fidl::encoding::Decoder<'_, D>,
9261 offset: usize,
9262 mut depth: fidl::encoding::Depth,
9263 ) -> fidl::Result<()> {
9264 decoder.debug_check_bounds::<Self>(offset);
9265 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
9266 None => return Err(fidl::Error::NotNullable),
9267 Some(len) => len,
9268 };
9269 if len == 0 {
9271 return Ok(());
9272 };
9273 depth.increment()?;
9274 let envelope_size = 8;
9275 let bytes_len = len * envelope_size;
9276 let offset = decoder.out_of_line_offset(bytes_len)?;
9277 let mut _next_ordinal_to_read = 0;
9279 let mut next_offset = offset;
9280 let end_offset = offset + bytes_len;
9281 _next_ordinal_to_read += 1;
9282 if next_offset >= end_offset {
9283 return Ok(());
9284 }
9285
9286 while _next_ordinal_to_read < 1 {
9288 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9289 _next_ordinal_to_read += 1;
9290 next_offset += envelope_size;
9291 }
9292
9293 let next_out_of_line = decoder.next_out_of_line();
9294 let handles_before = decoder.remaining_handles();
9295 if let Some((inlined, num_bytes, num_handles)) =
9296 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9297 {
9298 let member_inline_size =
9299 <fidl::encoding::Array<u8, 16> as fidl::encoding::TypeMarker>::inline_size(
9300 decoder.context,
9301 );
9302 if inlined != (member_inline_size <= 4) {
9303 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9304 }
9305 let inner_offset;
9306 let mut inner_depth = depth.clone();
9307 if inlined {
9308 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9309 inner_offset = next_offset;
9310 } else {
9311 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9312 inner_depth.increment()?;
9313 }
9314 let val_ref = self
9315 .unique_id
9316 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 16>, D));
9317 fidl::decode!(fidl::encoding::Array<u8, 16>, D, val_ref, decoder, inner_offset, inner_depth)?;
9318 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9319 {
9320 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9321 }
9322 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9323 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9324 }
9325 }
9326
9327 next_offset += envelope_size;
9328 _next_ordinal_to_read += 1;
9329 if next_offset >= end_offset {
9330 return Ok(());
9331 }
9332
9333 while _next_ordinal_to_read < 2 {
9335 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9336 _next_ordinal_to_read += 1;
9337 next_offset += envelope_size;
9338 }
9339
9340 let next_out_of_line = decoder.next_out_of_line();
9341 let handles_before = decoder.remaining_handles();
9342 if let Some((inlined, num_bytes, num_handles)) =
9343 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9344 {
9345 let member_inline_size =
9346 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
9347 if inlined != (member_inline_size <= 4) {
9348 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9349 }
9350 let inner_offset;
9351 let mut inner_depth = depth.clone();
9352 if inlined {
9353 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9354 inner_offset = next_offset;
9355 } else {
9356 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9357 inner_depth.increment()?;
9358 }
9359 let val_ref = self.is_input.get_or_insert_with(|| fidl::new_empty!(bool, D));
9360 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
9361 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9362 {
9363 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9364 }
9365 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9366 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9367 }
9368 }
9369
9370 next_offset += envelope_size;
9371 _next_ordinal_to_read += 1;
9372 if next_offset >= end_offset {
9373 return Ok(());
9374 }
9375
9376 while _next_ordinal_to_read < 3 {
9378 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9379 _next_ordinal_to_read += 1;
9380 next_offset += envelope_size;
9381 }
9382
9383 let next_out_of_line = decoder.next_out_of_line();
9384 let handles_before = decoder.remaining_handles();
9385 if let Some((inlined, num_bytes, num_handles)) =
9386 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9387 {
9388 let member_inline_size =
9389 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
9390 if inlined != (member_inline_size <= 4) {
9391 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9392 }
9393 let inner_offset;
9394 let mut inner_depth = depth.clone();
9395 if inlined {
9396 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9397 inner_offset = next_offset;
9398 } else {
9399 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9400 inner_depth.increment()?;
9401 }
9402 let val_ref = self.can_mute.get_or_insert_with(|| fidl::new_empty!(bool, D));
9403 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
9404 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9405 {
9406 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9407 }
9408 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9409 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9410 }
9411 }
9412
9413 next_offset += envelope_size;
9414 _next_ordinal_to_read += 1;
9415 if next_offset >= end_offset {
9416 return Ok(());
9417 }
9418
9419 while _next_ordinal_to_read < 4 {
9421 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9422 _next_ordinal_to_read += 1;
9423 next_offset += envelope_size;
9424 }
9425
9426 let next_out_of_line = decoder.next_out_of_line();
9427 let handles_before = decoder.remaining_handles();
9428 if let Some((inlined, num_bytes, num_handles)) =
9429 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9430 {
9431 let member_inline_size =
9432 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
9433 if inlined != (member_inline_size <= 4) {
9434 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9435 }
9436 let inner_offset;
9437 let mut inner_depth = depth.clone();
9438 if inlined {
9439 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9440 inner_offset = next_offset;
9441 } else {
9442 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9443 inner_depth.increment()?;
9444 }
9445 let val_ref = self.can_agc.get_or_insert_with(|| fidl::new_empty!(bool, D));
9446 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
9447 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9448 {
9449 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9450 }
9451 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9452 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9453 }
9454 }
9455
9456 next_offset += envelope_size;
9457 _next_ordinal_to_read += 1;
9458 if next_offset >= end_offset {
9459 return Ok(());
9460 }
9461
9462 while _next_ordinal_to_read < 5 {
9464 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9465 _next_ordinal_to_read += 1;
9466 next_offset += envelope_size;
9467 }
9468
9469 let next_out_of_line = decoder.next_out_of_line();
9470 let handles_before = decoder.remaining_handles();
9471 if let Some((inlined, num_bytes, num_handles)) =
9472 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9473 {
9474 let member_inline_size =
9475 <f32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
9476 if inlined != (member_inline_size <= 4) {
9477 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9478 }
9479 let inner_offset;
9480 let mut inner_depth = depth.clone();
9481 if inlined {
9482 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9483 inner_offset = next_offset;
9484 } else {
9485 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9486 inner_depth.increment()?;
9487 }
9488 let val_ref = self.min_gain_db.get_or_insert_with(|| fidl::new_empty!(f32, D));
9489 fidl::decode!(f32, D, val_ref, decoder, inner_offset, inner_depth)?;
9490 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9491 {
9492 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9493 }
9494 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9495 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9496 }
9497 }
9498
9499 next_offset += envelope_size;
9500 _next_ordinal_to_read += 1;
9501 if next_offset >= end_offset {
9502 return Ok(());
9503 }
9504
9505 while _next_ordinal_to_read < 6 {
9507 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9508 _next_ordinal_to_read += 1;
9509 next_offset += envelope_size;
9510 }
9511
9512 let next_out_of_line = decoder.next_out_of_line();
9513 let handles_before = decoder.remaining_handles();
9514 if let Some((inlined, num_bytes, num_handles)) =
9515 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9516 {
9517 let member_inline_size =
9518 <f32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
9519 if inlined != (member_inline_size <= 4) {
9520 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9521 }
9522 let inner_offset;
9523 let mut inner_depth = depth.clone();
9524 if inlined {
9525 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9526 inner_offset = next_offset;
9527 } else {
9528 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9529 inner_depth.increment()?;
9530 }
9531 let val_ref = self.max_gain_db.get_or_insert_with(|| fidl::new_empty!(f32, D));
9532 fidl::decode!(f32, D, val_ref, decoder, inner_offset, inner_depth)?;
9533 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9534 {
9535 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9536 }
9537 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9538 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9539 }
9540 }
9541
9542 next_offset += envelope_size;
9543 _next_ordinal_to_read += 1;
9544 if next_offset >= end_offset {
9545 return Ok(());
9546 }
9547
9548 while _next_ordinal_to_read < 7 {
9550 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9551 _next_ordinal_to_read += 1;
9552 next_offset += envelope_size;
9553 }
9554
9555 let next_out_of_line = decoder.next_out_of_line();
9556 let handles_before = decoder.remaining_handles();
9557 if let Some((inlined, num_bytes, num_handles)) =
9558 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9559 {
9560 let member_inline_size =
9561 <f32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
9562 if inlined != (member_inline_size <= 4) {
9563 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9564 }
9565 let inner_offset;
9566 let mut inner_depth = depth.clone();
9567 if inlined {
9568 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9569 inner_offset = next_offset;
9570 } else {
9571 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9572 inner_depth.increment()?;
9573 }
9574 let val_ref = self.gain_step_db.get_or_insert_with(|| fidl::new_empty!(f32, D));
9575 fidl::decode!(f32, D, val_ref, decoder, inner_offset, inner_depth)?;
9576 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9577 {
9578 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9579 }
9580 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9581 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9582 }
9583 }
9584
9585 next_offset += envelope_size;
9586 _next_ordinal_to_read += 1;
9587 if next_offset >= end_offset {
9588 return Ok(());
9589 }
9590
9591 while _next_ordinal_to_read < 8 {
9593 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9594 _next_ordinal_to_read += 1;
9595 next_offset += envelope_size;
9596 }
9597
9598 let next_out_of_line = decoder.next_out_of_line();
9599 let handles_before = decoder.remaining_handles();
9600 if let Some((inlined, num_bytes, num_handles)) =
9601 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9602 {
9603 let member_inline_size =
9604 <PlugDetectCapabilities as fidl::encoding::TypeMarker>::inline_size(
9605 decoder.context,
9606 );
9607 if inlined != (member_inline_size <= 4) {
9608 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9609 }
9610 let inner_offset;
9611 let mut inner_depth = depth.clone();
9612 if inlined {
9613 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9614 inner_offset = next_offset;
9615 } else {
9616 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9617 inner_depth.increment()?;
9618 }
9619 let val_ref = self
9620 .plug_detect_capabilities
9621 .get_or_insert_with(|| fidl::new_empty!(PlugDetectCapabilities, D));
9622 fidl::decode!(
9623 PlugDetectCapabilities,
9624 D,
9625 val_ref,
9626 decoder,
9627 inner_offset,
9628 inner_depth
9629 )?;
9630 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9631 {
9632 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9633 }
9634 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9635 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9636 }
9637 }
9638
9639 next_offset += envelope_size;
9640 _next_ordinal_to_read += 1;
9641 if next_offset >= end_offset {
9642 return Ok(());
9643 }
9644
9645 while _next_ordinal_to_read < 9 {
9647 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9648 _next_ordinal_to_read += 1;
9649 next_offset += envelope_size;
9650 }
9651
9652 let next_out_of_line = decoder.next_out_of_line();
9653 let handles_before = decoder.remaining_handles();
9654 if let Some((inlined, num_bytes, num_handles)) =
9655 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9656 {
9657 let member_inline_size =
9658 <fidl::encoding::BoundedString<256> as fidl::encoding::TypeMarker>::inline_size(
9659 decoder.context,
9660 );
9661 if inlined != (member_inline_size <= 4) {
9662 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9663 }
9664 let inner_offset;
9665 let mut inner_depth = depth.clone();
9666 if inlined {
9667 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9668 inner_offset = next_offset;
9669 } else {
9670 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9671 inner_depth.increment()?;
9672 }
9673 let val_ref = self
9674 .manufacturer
9675 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<256>, D));
9676 fidl::decode!(
9677 fidl::encoding::BoundedString<256>,
9678 D,
9679 val_ref,
9680 decoder,
9681 inner_offset,
9682 inner_depth
9683 )?;
9684 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9685 {
9686 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9687 }
9688 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9689 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9690 }
9691 }
9692
9693 next_offset += envelope_size;
9694 _next_ordinal_to_read += 1;
9695 if next_offset >= end_offset {
9696 return Ok(());
9697 }
9698
9699 while _next_ordinal_to_read < 10 {
9701 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9702 _next_ordinal_to_read += 1;
9703 next_offset += envelope_size;
9704 }
9705
9706 let next_out_of_line = decoder.next_out_of_line();
9707 let handles_before = decoder.remaining_handles();
9708 if let Some((inlined, num_bytes, num_handles)) =
9709 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9710 {
9711 let member_inline_size =
9712 <fidl::encoding::BoundedString<256> as fidl::encoding::TypeMarker>::inline_size(
9713 decoder.context,
9714 );
9715 if inlined != (member_inline_size <= 4) {
9716 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9717 }
9718 let inner_offset;
9719 let mut inner_depth = depth.clone();
9720 if inlined {
9721 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9722 inner_offset = next_offset;
9723 } else {
9724 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9725 inner_depth.increment()?;
9726 }
9727 let val_ref = self
9728 .product
9729 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<256>, D));
9730 fidl::decode!(
9731 fidl::encoding::BoundedString<256>,
9732 D,
9733 val_ref,
9734 decoder,
9735 inner_offset,
9736 inner_depth
9737 )?;
9738 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9739 {
9740 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9741 }
9742 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9743 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9744 }
9745 }
9746
9747 next_offset += envelope_size;
9748 _next_ordinal_to_read += 1;
9749 if next_offset >= end_offset {
9750 return Ok(());
9751 }
9752
9753 while _next_ordinal_to_read < 11 {
9755 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9756 _next_ordinal_to_read += 1;
9757 next_offset += envelope_size;
9758 }
9759
9760 let next_out_of_line = decoder.next_out_of_line();
9761 let handles_before = decoder.remaining_handles();
9762 if let Some((inlined, num_bytes, num_handles)) =
9763 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9764 {
9765 let member_inline_size =
9766 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
9767 if inlined != (member_inline_size <= 4) {
9768 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9769 }
9770 let inner_offset;
9771 let mut inner_depth = depth.clone();
9772 if inlined {
9773 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9774 inner_offset = next_offset;
9775 } else {
9776 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9777 inner_depth.increment()?;
9778 }
9779 let val_ref = self.clock_domain.get_or_insert_with(|| fidl::new_empty!(u32, D));
9780 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
9781 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9782 {
9783 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9784 }
9785 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9786 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9787 }
9788 }
9789
9790 next_offset += envelope_size;
9791
9792 while next_offset < end_offset {
9794 _next_ordinal_to_read += 1;
9795 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9796 next_offset += envelope_size;
9797 }
9798
9799 Ok(())
9800 }
9801 }
9802
9803 impl SupportedFormats {
9804 #[inline(always)]
9805 fn max_ordinal_present(&self) -> u64 {
9806 if let Some(_) = self.pcm_supported_formats {
9807 return 1;
9808 }
9809 0
9810 }
9811 }
9812
9813 impl fidl::encoding::ValueTypeMarker for SupportedFormats {
9814 type Borrowed<'a> = &'a Self;
9815 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
9816 value
9817 }
9818 }
9819
9820 unsafe impl fidl::encoding::TypeMarker for SupportedFormats {
9821 type Owned = Self;
9822
9823 #[inline(always)]
9824 fn inline_align(_context: fidl::encoding::Context) -> usize {
9825 8
9826 }
9827
9828 #[inline(always)]
9829 fn inline_size(_context: fidl::encoding::Context) -> usize {
9830 16
9831 }
9832 }
9833
9834 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<SupportedFormats, D>
9835 for &SupportedFormats
9836 {
9837 unsafe fn encode(
9838 self,
9839 encoder: &mut fidl::encoding::Encoder<'_, D>,
9840 offset: usize,
9841 mut depth: fidl::encoding::Depth,
9842 ) -> fidl::Result<()> {
9843 encoder.debug_check_bounds::<SupportedFormats>(offset);
9844 let max_ordinal: u64 = self.max_ordinal_present();
9846 encoder.write_num(max_ordinal, offset);
9847 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
9848 if max_ordinal == 0 {
9850 return Ok(());
9851 }
9852 depth.increment()?;
9853 let envelope_size = 8;
9854 let bytes_len = max_ordinal as usize * envelope_size;
9855 #[allow(unused_variables)]
9856 let offset = encoder.out_of_line_offset(bytes_len);
9857 let mut _prev_end_offset: usize = 0;
9858 if 1 > max_ordinal {
9859 return Ok(());
9860 }
9861
9862 let cur_offset: usize = (1 - 1) * envelope_size;
9865
9866 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9868
9869 fidl::encoding::encode_in_envelope_optional::<PcmSupportedFormats, D>(
9874 self.pcm_supported_formats
9875 .as_ref()
9876 .map(<PcmSupportedFormats as fidl::encoding::ValueTypeMarker>::borrow),
9877 encoder,
9878 offset + cur_offset,
9879 depth,
9880 )?;
9881
9882 _prev_end_offset = cur_offset + envelope_size;
9883
9884 Ok(())
9885 }
9886 }
9887
9888 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for SupportedFormats {
9889 #[inline(always)]
9890 fn new_empty() -> Self {
9891 Self::default()
9892 }
9893
9894 unsafe fn decode(
9895 &mut self,
9896 decoder: &mut fidl::encoding::Decoder<'_, D>,
9897 offset: usize,
9898 mut depth: fidl::encoding::Depth,
9899 ) -> fidl::Result<()> {
9900 decoder.debug_check_bounds::<Self>(offset);
9901 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
9902 None => return Err(fidl::Error::NotNullable),
9903 Some(len) => len,
9904 };
9905 if len == 0 {
9907 return Ok(());
9908 };
9909 depth.increment()?;
9910 let envelope_size = 8;
9911 let bytes_len = len * envelope_size;
9912 let offset = decoder.out_of_line_offset(bytes_len)?;
9913 let mut _next_ordinal_to_read = 0;
9915 let mut next_offset = offset;
9916 let end_offset = offset + bytes_len;
9917 _next_ordinal_to_read += 1;
9918 if next_offset >= end_offset {
9919 return Ok(());
9920 }
9921
9922 while _next_ordinal_to_read < 1 {
9924 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9925 _next_ordinal_to_read += 1;
9926 next_offset += envelope_size;
9927 }
9928
9929 let next_out_of_line = decoder.next_out_of_line();
9930 let handles_before = decoder.remaining_handles();
9931 if let Some((inlined, num_bytes, num_handles)) =
9932 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9933 {
9934 let member_inline_size =
9935 <PcmSupportedFormats as fidl::encoding::TypeMarker>::inline_size(
9936 decoder.context,
9937 );
9938 if inlined != (member_inline_size <= 4) {
9939 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9940 }
9941 let inner_offset;
9942 let mut inner_depth = depth.clone();
9943 if inlined {
9944 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9945 inner_offset = next_offset;
9946 } else {
9947 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9948 inner_depth.increment()?;
9949 }
9950 let val_ref = self
9951 .pcm_supported_formats
9952 .get_or_insert_with(|| fidl::new_empty!(PcmSupportedFormats, D));
9953 fidl::decode!(PcmSupportedFormats, D, val_ref, decoder, inner_offset, inner_depth)?;
9954 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9955 {
9956 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9957 }
9958 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9959 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9960 }
9961 }
9962
9963 next_offset += envelope_size;
9964
9965 while next_offset < end_offset {
9967 _next_ordinal_to_read += 1;
9968 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9969 next_offset += envelope_size;
9970 }
9971
9972 Ok(())
9973 }
9974 }
9975
9976 impl fidl::encoding::ValueTypeMarker for DaiFrameFormat {
9977 type Borrowed<'a> = &'a Self;
9978 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
9979 value
9980 }
9981 }
9982
9983 unsafe impl fidl::encoding::TypeMarker for DaiFrameFormat {
9984 type Owned = Self;
9985
9986 #[inline(always)]
9987 fn inline_align(_context: fidl::encoding::Context) -> usize {
9988 8
9989 }
9990
9991 #[inline(always)]
9992 fn inline_size(_context: fidl::encoding::Context) -> usize {
9993 16
9994 }
9995 }
9996
9997 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<DaiFrameFormat, D>
9998 for &DaiFrameFormat
9999 {
10000 #[inline]
10001 unsafe fn encode(
10002 self,
10003 encoder: &mut fidl::encoding::Encoder<'_, D>,
10004 offset: usize,
10005 _depth: fidl::encoding::Depth,
10006 ) -> fidl::Result<()> {
10007 encoder.debug_check_bounds::<DaiFrameFormat>(offset);
10008 encoder.write_num::<u64>(self.ordinal(), offset);
10009 match self {
10010 DaiFrameFormat::FrameFormatStandard(ref val) => {
10011 fidl::encoding::encode_in_envelope::<DaiFrameFormatStandard, D>(
10012 <DaiFrameFormatStandard as fidl::encoding::ValueTypeMarker>::borrow(val),
10013 encoder,
10014 offset + 8,
10015 _depth,
10016 )
10017 }
10018 DaiFrameFormat::FrameFormatCustom(ref val) => {
10019 fidl::encoding::encode_in_envelope::<DaiFrameFormatCustom, D>(
10020 <DaiFrameFormatCustom as fidl::encoding::ValueTypeMarker>::borrow(val),
10021 encoder,
10022 offset + 8,
10023 _depth,
10024 )
10025 }
10026 }
10027 }
10028 }
10029
10030 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for DaiFrameFormat {
10031 #[inline(always)]
10032 fn new_empty() -> Self {
10033 Self::FrameFormatStandard(fidl::new_empty!(DaiFrameFormatStandard, D))
10034 }
10035
10036 #[inline]
10037 unsafe fn decode(
10038 &mut self,
10039 decoder: &mut fidl::encoding::Decoder<'_, D>,
10040 offset: usize,
10041 mut depth: fidl::encoding::Depth,
10042 ) -> fidl::Result<()> {
10043 decoder.debug_check_bounds::<Self>(offset);
10044 #[allow(unused_variables)]
10045 let next_out_of_line = decoder.next_out_of_line();
10046 let handles_before = decoder.remaining_handles();
10047 let (ordinal, inlined, num_bytes, num_handles) =
10048 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
10049
10050 let member_inline_size = match ordinal {
10051 1 => <DaiFrameFormatStandard as fidl::encoding::TypeMarker>::inline_size(
10052 decoder.context,
10053 ),
10054 2 => <DaiFrameFormatCustom as fidl::encoding::TypeMarker>::inline_size(
10055 decoder.context,
10056 ),
10057 _ => return Err(fidl::Error::UnknownUnionTag),
10058 };
10059
10060 if inlined != (member_inline_size <= 4) {
10061 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10062 }
10063 let _inner_offset;
10064 if inlined {
10065 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
10066 _inner_offset = offset + 8;
10067 } else {
10068 depth.increment()?;
10069 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10070 }
10071 match ordinal {
10072 1 => {
10073 #[allow(irrefutable_let_patterns)]
10074 if let DaiFrameFormat::FrameFormatStandard(_) = self {
10075 } else {
10077 *self = DaiFrameFormat::FrameFormatStandard(fidl::new_empty!(
10079 DaiFrameFormatStandard,
10080 D
10081 ));
10082 }
10083 #[allow(irrefutable_let_patterns)]
10084 if let DaiFrameFormat::FrameFormatStandard(ref mut val) = self {
10085 fidl::decode!(
10086 DaiFrameFormatStandard,
10087 D,
10088 val,
10089 decoder,
10090 _inner_offset,
10091 depth
10092 )?;
10093 } else {
10094 unreachable!()
10095 }
10096 }
10097 2 => {
10098 #[allow(irrefutable_let_patterns)]
10099 if let DaiFrameFormat::FrameFormatCustom(_) = self {
10100 } else {
10102 *self = DaiFrameFormat::FrameFormatCustom(fidl::new_empty!(
10104 DaiFrameFormatCustom,
10105 D
10106 ));
10107 }
10108 #[allow(irrefutable_let_patterns)]
10109 if let DaiFrameFormat::FrameFormatCustom(ref mut val) = self {
10110 fidl::decode!(DaiFrameFormatCustom, D, val, decoder, _inner_offset, depth)?;
10111 } else {
10112 unreachable!()
10113 }
10114 }
10115 ordinal => panic!("unexpected ordinal {:?}", ordinal),
10116 }
10117 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
10118 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10119 }
10120 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10121 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10122 }
10123 Ok(())
10124 }
10125 }
10126}