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 ElementId = u64;
12
13pub type TopologyId = u64;
14
15pub const MAX_BYTES_ELEMENT_VENDOR_SPECIFIC: u32 = 4096;
16
17pub const MAX_COUNT_DYNAMICS_BANDS: u32 = 64;
18
19pub const MAX_COUNT_EQUALIZER_BANDS: u32 = 64;
20
21pub const MAX_COUNT_PROCESSING_ELEMENTS: u32 = 64;
22
23pub const MAX_COUNT_PROCESSING_ELEMENTS_EDGE_PAIRS: u32 = 64;
24
25pub const MAX_COUNT_TOPOLOGIES: u32 = 64;
26
27pub const MAX_STRING_SIZE: u32 = 256;
28
29bitflags! {
30 #[derive(Clone, Copy, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Hash)]
34 pub struct DynamicsSupportedControls: u64 {
35 const KNEE_WIDTH = 1;
37 const ATTACK = 2;
39 const RELEASE = 4;
41 const OUTPUT_GAIN = 8;
43 const INPUT_GAIN = 16;
45 const LOOKAHEAD = 32;
47 const LEVEL_TYPE = 64;
49 const LINKED_CHANNELS = 128;
51 const THRESHOLD_TYPE = 256;
53 }
54}
55
56impl DynamicsSupportedControls {
57 #[inline(always)]
58 pub fn from_bits_allow_unknown(bits: u64) -> Self {
59 Self::from_bits_retain(bits)
60 }
61
62 #[inline(always)]
63 pub fn has_unknown_bits(&self) -> bool {
64 self.get_unknown_bits() != 0
65 }
66
67 #[inline(always)]
68 pub fn get_unknown_bits(&self) -> u64 {
69 self.bits() & !Self::all().bits()
70 }
71}
72
73bitflags! {
74 #[derive(Clone, Copy, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Hash)]
76 pub struct EqualizerSupportedControls: u64 {
77 const CAN_CONTROL_FREQUENCY = 1;
79 const CAN_CONTROL_Q = 2;
81 const SUPPORTS_TYPE_PEAK = 4;
83 const SUPPORTS_TYPE_NOTCH = 8;
85 const SUPPORTS_TYPE_LOW_CUT = 16;
87 const SUPPORTS_TYPE_HIGH_CUT = 32;
89 const SUPPORTS_TYPE_LOW_SHELF = 64;
91 const SUPPORTS_TYPE_HIGH_SHELF = 128;
93 }
94}
95
96impl EqualizerSupportedControls {
97 #[inline(always)]
98 pub fn from_bits_allow_unknown(bits: u64) -> Self {
99 Self::from_bits_retain(bits)
100 }
101
102 #[inline(always)]
103 pub fn has_unknown_bits(&self) -> bool {
104 self.get_unknown_bits() != 0
105 }
106
107 #[inline(always)]
108 pub fn get_unknown_bits(&self) -> u64 {
109 self.bits() & !Self::all().bits()
110 }
111}
112
113#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
114pub enum ElementType {
115 VendorSpecific,
117 ConnectionPoint,
119 Gain,
121 AutomaticGainControl,
124 AutomaticGainLimiter,
128 Dynamics,
130 Mute,
132 Delay,
134 Equalizer,
136 SampleRateConversion,
138 Endpoint,
144 RingBuffer,
147 DaiInterconnect,
150 #[doc(hidden)]
151 __SourceBreaking { unknown_ordinal: u32 },
152}
153
154#[macro_export]
156macro_rules! ElementTypeUnknown {
157 () => {
158 _
159 };
160}
161
162impl ElementType {
163 #[inline]
164 pub fn from_primitive(prim: u32) -> Option<Self> {
165 match prim {
166 1 => Some(Self::VendorSpecific),
167 3 => Some(Self::ConnectionPoint),
168 4 => Some(Self::Gain),
169 5 => Some(Self::AutomaticGainControl),
170 6 => Some(Self::AutomaticGainLimiter),
171 7 => Some(Self::Dynamics),
172 8 => Some(Self::Mute),
173 9 => Some(Self::Delay),
174 10 => Some(Self::Equalizer),
175 11 => Some(Self::SampleRateConversion),
176 12 => Some(Self::Endpoint),
177 13 => Some(Self::RingBuffer),
178 14 => Some(Self::DaiInterconnect),
179 _ => None,
180 }
181 }
182
183 #[inline]
184 pub fn from_primitive_allow_unknown(prim: u32) -> Self {
185 match prim {
186 1 => Self::VendorSpecific,
187 3 => Self::ConnectionPoint,
188 4 => Self::Gain,
189 5 => Self::AutomaticGainControl,
190 6 => Self::AutomaticGainLimiter,
191 7 => Self::Dynamics,
192 8 => Self::Mute,
193 9 => Self::Delay,
194 10 => Self::Equalizer,
195 11 => Self::SampleRateConversion,
196 12 => Self::Endpoint,
197 13 => Self::RingBuffer,
198 14 => Self::DaiInterconnect,
199 unknown_ordinal => Self::__SourceBreaking { unknown_ordinal },
200 }
201 }
202
203 #[inline]
204 pub fn unknown() -> Self {
205 Self::__SourceBreaking { unknown_ordinal: 0xffffffff }
206 }
207
208 #[inline]
209 pub const fn into_primitive(self) -> u32 {
210 match self {
211 Self::VendorSpecific => 1,
212 Self::ConnectionPoint => 3,
213 Self::Gain => 4,
214 Self::AutomaticGainControl => 5,
215 Self::AutomaticGainLimiter => 6,
216 Self::Dynamics => 7,
217 Self::Mute => 8,
218 Self::Delay => 9,
219 Self::Equalizer => 10,
220 Self::SampleRateConversion => 11,
221 Self::Endpoint => 12,
222 Self::RingBuffer => 13,
223 Self::DaiInterconnect => 14,
224 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
225 }
226 }
227
228 #[inline]
229 pub fn is_unknown(&self) -> bool {
230 match self {
231 Self::__SourceBreaking { unknown_ordinal: _ } => true,
232 _ => false,
233 }
234 }
235}
236
237#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
243pub enum EndpointType {
244 RingBuffer,
248 DaiInterconnect,
251 #[doc(hidden)]
252 __SourceBreaking { unknown_ordinal: u8 },
253}
254
255#[macro_export]
257macro_rules! EndpointTypeUnknown {
258 () => {
259 _
260 };
261}
262
263impl EndpointType {
264 #[inline]
265 pub fn from_primitive(prim: u8) -> Option<Self> {
266 match prim {
267 1 => Some(Self::RingBuffer),
268 2 => Some(Self::DaiInterconnect),
269 _ => None,
270 }
271 }
272
273 #[inline]
274 pub fn from_primitive_allow_unknown(prim: u8) -> Self {
275 match prim {
276 1 => Self::RingBuffer,
277 2 => Self::DaiInterconnect,
278 unknown_ordinal => Self::__SourceBreaking { unknown_ordinal },
279 }
280 }
281
282 #[inline]
283 pub fn unknown() -> Self {
284 Self::__SourceBreaking { unknown_ordinal: 0xff }
285 }
286
287 #[inline]
288 pub const fn into_primitive(self) -> u8 {
289 match self {
290 Self::RingBuffer => 1,
291 Self::DaiInterconnect => 2,
292 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
293 }
294 }
295
296 #[inline]
297 pub fn is_unknown(&self) -> bool {
298 match self {
299 Self::__SourceBreaking { unknown_ordinal: _ } => true,
300 _ => false,
301 }
302 }
303}
304
305#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
307pub enum EqualizerBandType {
308 Peak,
310 Notch,
312 LowCut,
314 HighCut,
316 LowShelf,
318 HighShelf,
320 #[doc(hidden)]
321 __SourceBreaking { unknown_ordinal: u64 },
322}
323
324#[macro_export]
326macro_rules! EqualizerBandTypeUnknown {
327 () => {
328 _
329 };
330}
331
332impl EqualizerBandType {
333 #[inline]
334 pub fn from_primitive(prim: u64) -> Option<Self> {
335 match prim {
336 1 => Some(Self::Peak),
337 2 => Some(Self::Notch),
338 3 => Some(Self::LowCut),
339 4 => Some(Self::HighCut),
340 5 => Some(Self::LowShelf),
341 6 => Some(Self::HighShelf),
342 _ => None,
343 }
344 }
345
346 #[inline]
347 pub fn from_primitive_allow_unknown(prim: u64) -> Self {
348 match prim {
349 1 => Self::Peak,
350 2 => Self::Notch,
351 3 => Self::LowCut,
352 4 => Self::HighCut,
353 5 => Self::LowShelf,
354 6 => Self::HighShelf,
355 unknown_ordinal => Self::__SourceBreaking { unknown_ordinal },
356 }
357 }
358
359 #[inline]
360 pub fn unknown() -> Self {
361 Self::__SourceBreaking { unknown_ordinal: 0xffffffffffffffff }
362 }
363
364 #[inline]
365 pub const fn into_primitive(self) -> u64 {
366 match self {
367 Self::Peak => 1,
368 Self::Notch => 2,
369 Self::LowCut => 3,
370 Self::HighCut => 4,
371 Self::LowShelf => 5,
372 Self::HighShelf => 6,
373 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
374 }
375 }
376
377 #[inline]
378 pub fn is_unknown(&self) -> bool {
379 match self {
380 Self::__SourceBreaking { unknown_ordinal: _ } => true,
381 _ => false,
382 }
383 }
384}
385
386#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
388pub enum GainDomain {
389 Digital,
391 Analog,
393 Mixed,
395 #[doc(hidden)]
396 __SourceBreaking { unknown_ordinal: u8 },
397}
398
399#[macro_export]
401macro_rules! GainDomainUnknown {
402 () => {
403 _
404 };
405}
406
407impl GainDomain {
408 #[inline]
409 pub fn from_primitive(prim: u8) -> Option<Self> {
410 match prim {
411 1 => Some(Self::Digital),
412 2 => Some(Self::Analog),
413 3 => Some(Self::Mixed),
414 _ => None,
415 }
416 }
417
418 #[inline]
419 pub fn from_primitive_allow_unknown(prim: u8) -> Self {
420 match prim {
421 1 => Self::Digital,
422 2 => Self::Analog,
423 3 => Self::Mixed,
424 unknown_ordinal => Self::__SourceBreaking { unknown_ordinal },
425 }
426 }
427
428 #[inline]
429 pub fn unknown() -> Self {
430 Self::__SourceBreaking { unknown_ordinal: 0xff }
431 }
432
433 #[inline]
434 pub const fn into_primitive(self) -> u8 {
435 match self {
436 Self::Digital => 1,
437 Self::Analog => 2,
438 Self::Mixed => 3,
439 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
440 }
441 }
442
443 #[inline]
444 pub fn is_unknown(&self) -> bool {
445 match self {
446 Self::__SourceBreaking { unknown_ordinal: _ } => true,
447 _ => false,
448 }
449 }
450}
451
452#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
454#[repr(u8)]
455pub enum GainType {
456 Decibels = 1,
458 Percent = 2,
460}
461
462impl GainType {
463 #[inline]
464 pub fn from_primitive(prim: u8) -> Option<Self> {
465 match prim {
466 1 => Some(Self::Decibels),
467 2 => Some(Self::Percent),
468 _ => None,
469 }
470 }
471
472 #[inline]
473 pub const fn into_primitive(self) -> u8 {
474 self as u8
475 }
476}
477
478#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
480#[repr(u8)]
481pub enum LevelType {
482 Peak = 1,
484 Rms = 2,
486}
487
488impl LevelType {
489 #[inline]
490 pub fn from_primitive(prim: u8) -> Option<Self> {
491 match prim {
492 1 => Some(Self::Peak),
493 2 => Some(Self::Rms),
494 _ => None,
495 }
496 }
497
498 #[inline]
499 pub const fn into_primitive(self) -> u8 {
500 self as u8
501 }
502}
503
504#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
506pub enum PlugDetectCapabilities {
507 Hardwired,
509 CanAsyncNotify,
511 #[doc(hidden)]
512 __SourceBreaking { unknown_ordinal: u32 },
513}
514
515#[macro_export]
517macro_rules! PlugDetectCapabilitiesUnknown {
518 () => {
519 _
520 };
521}
522
523impl PlugDetectCapabilities {
524 #[inline]
525 pub fn from_primitive(prim: u32) -> Option<Self> {
526 match prim {
527 0 => Some(Self::Hardwired),
528 1 => Some(Self::CanAsyncNotify),
529 _ => None,
530 }
531 }
532
533 #[inline]
534 pub fn from_primitive_allow_unknown(prim: u32) -> Self {
535 match prim {
536 0 => Self::Hardwired,
537 1 => Self::CanAsyncNotify,
538 unknown_ordinal => Self::__SourceBreaking { unknown_ordinal },
539 }
540 }
541
542 #[inline]
543 pub fn unknown() -> Self {
544 Self::__SourceBreaking { unknown_ordinal: 0xffffffff }
545 }
546
547 #[inline]
548 pub const fn into_primitive(self) -> u32 {
549 match self {
550 Self::Hardwired => 0,
551 Self::CanAsyncNotify => 1,
552 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
553 }
554 }
555
556 #[inline]
557 pub fn is_unknown(&self) -> bool {
558 match self {
559 Self::__SourceBreaking { unknown_ordinal: _ } => true,
560 _ => false,
561 }
562 }
563}
564
565#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
567#[repr(u8)]
568pub enum ThresholdType {
569 Above = 1,
571 Below = 2,
573}
574
575impl ThresholdType {
576 #[inline]
577 pub fn from_primitive(prim: u8) -> Option<Self> {
578 match prim {
579 1 => Some(Self::Above),
580 2 => Some(Self::Below),
581 _ => None,
582 }
583 }
584
585 #[inline]
586 pub const fn into_primitive(self) -> u8 {
587 self as u8
588 }
589}
590
591#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
595#[repr(C)]
596pub struct EdgePair {
597 pub processing_element_id_from: u64,
598 pub processing_element_id_to: u64,
599}
600
601impl fidl::Persistable for EdgePair {}
602
603#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
604#[repr(C)]
605pub struct ReaderWatchElementStateRequest {
606 pub processing_element_id: u64,
607}
608
609impl fidl::Persistable for ReaderWatchElementStateRequest {}
610
611#[derive(Clone, Debug, PartialEq)]
612pub struct ReaderWatchElementStateResponse {
613 pub state: ElementState,
614}
615
616impl fidl::Persistable for ReaderWatchElementStateResponse {}
617
618#[derive(Clone, Debug, PartialEq)]
619pub struct ReaderGetElementsResponse {
620 pub processing_elements: Vec<Element>,
621}
622
623impl fidl::Persistable for ReaderGetElementsResponse {}
624
625#[derive(Clone, Debug, PartialEq)]
626pub struct ReaderGetTopologiesResponse {
627 pub topologies: Vec<Topology>,
628}
629
630impl fidl::Persistable for ReaderGetTopologiesResponse {}
631
632#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
633#[repr(C)]
634pub struct ReaderWatchTopologyResponse {
635 pub topology_id: u64,
636}
637
638impl fidl::Persistable for ReaderWatchTopologyResponse {}
639
640#[derive(Clone, Debug, PartialEq)]
641pub struct SignalProcessingSetElementStateRequest {
642 pub processing_element_id: u64,
643 pub state: SettableElementState,
644}
645
646impl fidl::Persistable for SignalProcessingSetElementStateRequest {}
647
648#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
649#[repr(C)]
650pub struct SignalProcessingSetTopologyRequest {
651 pub topology_id: u64,
652}
653
654impl fidl::Persistable for SignalProcessingSetTopologyRequest {}
655
656#[derive(Clone, Debug, Default, PartialEq)]
658pub struct DaiInterconnect {
659 pub plug_detect_capabilities: Option<PlugDetectCapabilities>,
663 #[doc(hidden)]
664 pub __source_breaking: fidl::marker::SourceBreaking,
665}
666
667impl fidl::Persistable for DaiInterconnect {}
668
669#[derive(Clone, Debug, Default, PartialEq)]
671pub struct DaiInterconnectElementState {
672 pub plug_state: Option<PlugState>,
676 pub external_delay: Option<i64>,
687 #[doc(hidden)]
688 pub __source_breaking: fidl::marker::SourceBreaking,
689}
690
691impl fidl::Persistable for DaiInterconnectElementState {}
692
693#[derive(Clone, Debug, Default, PartialEq)]
695pub struct Dynamics {
696 pub bands: Option<Vec<DynamicsBand>>,
703 pub supported_controls: Option<DynamicsSupportedControls>,
708 #[doc(hidden)]
709 pub __source_breaking: fidl::marker::SourceBreaking,
710}
711
712impl fidl::Persistable for Dynamics {}
713
714#[derive(Clone, Debug, Default, PartialEq)]
716pub struct DynamicsBand {
717 pub id: Option<u64>,
723 #[doc(hidden)]
724 pub __source_breaking: fidl::marker::SourceBreaking,
725}
726
727impl fidl::Persistable for DynamicsBand {}
728
729#[derive(Clone, Debug, Default, PartialEq)]
733pub struct DynamicsBandState {
734 pub id: Option<u64>,
737 pub min_frequency: Option<u32>,
741 pub max_frequency: Option<u32>,
747 pub threshold_db: Option<f32>,
753 pub threshold_type: Option<ThresholdType>,
759 pub ratio: Option<f32>,
763 pub knee_width_db: Option<f32>,
772 pub attack: Option<i64>,
779 pub release: Option<i64>,
786 pub output_gain_db: Option<f32>,
793 pub input_gain_db: Option<f32>,
800 pub level_type: Option<LevelType>,
807 pub lookahead: Option<i64>,
814 pub linked_channels: Option<bool>,
823 #[doc(hidden)]
824 pub __source_breaking: fidl::marker::SourceBreaking,
825}
826
827impl fidl::Persistable for DynamicsBandState {}
828
829#[derive(Clone, Debug, Default, PartialEq)]
831pub struct DynamicsElementState {
832 pub band_states: Option<Vec<DynamicsBandState>>,
838 #[doc(hidden)]
839 pub __source_breaking: fidl::marker::SourceBreaking,
840}
841
842impl fidl::Persistable for DynamicsElementState {}
843
844#[derive(Clone, Debug, Default, PartialEq)]
845pub struct Element {
846 pub id: Option<u64>,
851 pub type_: Option<ElementType>,
855 pub type_specific: Option<TypeSpecificElement>,
861 pub can_disable: Option<bool>,
867 pub description: Option<String>,
871 pub can_stop: Option<bool>,
876 pub can_bypass: Option<bool>,
883 #[doc(hidden)]
884 pub __source_breaking: fidl::marker::SourceBreaking,
885}
886
887impl fidl::Persistable for Element {}
888
889#[derive(Clone, Debug, Default, PartialEq)]
892pub struct ElementState {
893 pub type_specific: Option<TypeSpecificElementState>,
903 pub enabled: Option<bool>,
909 pub latency: Option<Latency>,
915 pub vendor_specific_data: Option<Vec<u8>>,
920 pub started: Option<bool>,
931 pub bypassed: Option<bool>,
944 pub turn_on_delay: Option<i64>,
955 pub turn_off_delay: Option<i64>,
966 pub processing_delay: Option<i64>,
978 #[doc(hidden)]
979 pub __source_breaking: fidl::marker::SourceBreaking,
980}
981
982impl fidl::Persistable for ElementState {}
983
984#[derive(Clone, Debug, Default, PartialEq)]
990pub struct Endpoint {
991 pub type_: Option<EndpointType>,
995 pub plug_detect_capabilities: Option<PlugDetectCapabilities>,
998 #[doc(hidden)]
999 pub __source_breaking: fidl::marker::SourceBreaking,
1000}
1001
1002impl fidl::Persistable for Endpoint {}
1003
1004#[derive(Clone, Debug, Default, PartialEq)]
1010pub struct EndpointElementState {
1011 pub plug_state: Option<PlugState>,
1015 #[doc(hidden)]
1016 pub __source_breaking: fidl::marker::SourceBreaking,
1017}
1018
1019impl fidl::Persistable for EndpointElementState {}
1020
1021#[derive(Clone, Debug, Default, PartialEq)]
1023pub struct Equalizer {
1024 pub bands: Option<Vec<EqualizerBand>>,
1031 pub supported_controls: Option<EqualizerSupportedControls>,
1035 pub can_disable_bands: Option<bool>,
1042 pub min_frequency: Option<u32>,
1046 pub max_frequency: Option<u32>,
1050 pub max_q: Option<f32>,
1056 pub min_gain_db: Option<f32>,
1062 pub max_gain_db: Option<f32>,
1068 #[doc(hidden)]
1069 pub __source_breaking: fidl::marker::SourceBreaking,
1070}
1071
1072impl fidl::Persistable for Equalizer {}
1073
1074#[derive(Clone, Debug, Default, PartialEq)]
1076pub struct EqualizerBand {
1077 pub id: Option<u64>,
1082 #[doc(hidden)]
1083 pub __source_breaking: fidl::marker::SourceBreaking,
1084}
1085
1086impl fidl::Persistable for EqualizerBand {}
1087
1088#[derive(Clone, Debug, Default, PartialEq)]
1090pub struct EqualizerBandState {
1091 pub id: Option<u64>,
1095 pub type_: Option<EqualizerBandType>,
1101 pub frequency: Option<u32>,
1107 pub q: Option<f32>,
1115 pub gain_db: Option<f32>,
1120 pub enabled: Option<bool>,
1132 #[doc(hidden)]
1133 pub __source_breaking: fidl::marker::SourceBreaking,
1134}
1135
1136impl fidl::Persistable for EqualizerBandState {}
1137
1138#[derive(Clone, Debug, Default, PartialEq)]
1140pub struct EqualizerElementState {
1141 pub bands_state: Option<Vec<EqualizerBandState>>,
1147 pub band_states: Option<Vec<EqualizerBandState>>,
1156 #[doc(hidden)]
1157 pub __source_breaking: fidl::marker::SourceBreaking,
1158}
1159
1160impl fidl::Persistable for EqualizerElementState {}
1161
1162#[derive(Clone, Debug, Default, PartialEq)]
1164pub struct Gain {
1165 pub type_: Option<GainType>,
1169 pub domain: Option<GainDomain>,
1174 pub min_gain: Option<f32>,
1178 pub max_gain: Option<f32>,
1182 pub min_gain_step: Option<f32>,
1188 #[doc(hidden)]
1189 pub __source_breaking: fidl::marker::SourceBreaking,
1190}
1191
1192impl fidl::Persistable for Gain {}
1193
1194#[derive(Clone, Debug, Default, PartialEq)]
1196pub struct GainElementState {
1197 pub gain: Option<f32>,
1201 #[doc(hidden)]
1202 pub __source_breaking: fidl::marker::SourceBreaking,
1203}
1204
1205impl fidl::Persistable for GainElementState {}
1206
1207#[derive(Clone, Debug, Default, PartialEq)]
1212pub struct PlugState {
1213 pub plugged: Option<bool>,
1217 pub plug_state_time: Option<i64>,
1222 #[doc(hidden)]
1223 pub __source_breaking: fidl::marker::SourceBreaking,
1224}
1225
1226impl fidl::Persistable for PlugState {}
1227
1228#[derive(Clone, Debug, Default, PartialEq)]
1230pub struct SettableElementState {
1231 pub type_specific: Option<SettableTypeSpecificElementState>,
1242 pub vendor_specific_data: Option<Vec<u8>>,
1248 pub started: Option<bool>,
1258 pub bypassed: Option<bool>,
1269 #[doc(hidden)]
1270 pub __source_breaking: fidl::marker::SourceBreaking,
1271}
1272
1273impl fidl::Persistable for SettableElementState {}
1274
1275#[derive(Clone, Debug, Default, PartialEq)]
1277pub struct Topology {
1278 pub id: Option<u64>,
1283 pub processing_elements_edge_pairs: Option<Vec<EdgePair>>,
1306 #[doc(hidden)]
1307 pub __source_breaking: fidl::marker::SourceBreaking,
1308}
1309
1310impl fidl::Persistable for Topology {}
1311
1312#[derive(Clone, Debug, Default, PartialEq)]
1314pub struct VendorSpecific {
1315 #[doc(hidden)]
1316 pub __source_breaking: fidl::marker::SourceBreaking,
1317}
1318
1319impl fidl::Persistable for VendorSpecific {}
1320
1321#[derive(Clone, Debug, Default, PartialEq)]
1323pub struct VendorSpecificState {
1324 #[doc(hidden)]
1325 pub __source_breaking: fidl::marker::SourceBreaking,
1326}
1327
1328impl fidl::Persistable for VendorSpecificState {}
1329
1330#[derive(Clone, Debug)]
1335pub enum Latency {
1336 LatencyTime(i64),
1338 LatencyFrames(u32),
1340 #[doc(hidden)]
1341 __SourceBreaking { unknown_ordinal: u64 },
1342}
1343
1344#[macro_export]
1346macro_rules! LatencyUnknown {
1347 () => {
1348 _
1349 };
1350}
1351
1352impl PartialEq for Latency {
1354 fn eq(&self, other: &Self) -> bool {
1355 match (self, other) {
1356 (Self::LatencyTime(x), Self::LatencyTime(y)) => *x == *y,
1357 (Self::LatencyFrames(x), Self::LatencyFrames(y)) => *x == *y,
1358 _ => false,
1359 }
1360 }
1361}
1362
1363impl Latency {
1364 #[inline]
1365 pub fn ordinal(&self) -> u64 {
1366 match *self {
1367 Self::LatencyTime(_) => 1,
1368 Self::LatencyFrames(_) => 2,
1369 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
1370 }
1371 }
1372
1373 #[inline]
1374 pub fn unknown_variant_for_testing() -> Self {
1375 Self::__SourceBreaking { unknown_ordinal: 0 }
1376 }
1377
1378 #[inline]
1379 pub fn is_unknown(&self) -> bool {
1380 match self {
1381 Self::__SourceBreaking { .. } => true,
1382 _ => false,
1383 }
1384 }
1385}
1386
1387impl fidl::Persistable for Latency {}
1388
1389#[derive(Clone, Debug)]
1394pub enum SettableTypeSpecificElementState {
1395 VendorSpecific(VendorSpecificState),
1396 Gain(GainElementState),
1397 Equalizer(EqualizerElementState),
1398 Dynamics(DynamicsElementState),
1399 #[doc(hidden)]
1400 __SourceBreaking {
1401 unknown_ordinal: u64,
1402 },
1403}
1404
1405#[macro_export]
1407macro_rules! SettableTypeSpecificElementStateUnknown {
1408 () => {
1409 _
1410 };
1411}
1412
1413impl PartialEq for SettableTypeSpecificElementState {
1415 fn eq(&self, other: &Self) -> bool {
1416 match (self, other) {
1417 (Self::VendorSpecific(x), Self::VendorSpecific(y)) => *x == *y,
1418 (Self::Gain(x), Self::Gain(y)) => *x == *y,
1419 (Self::Equalizer(x), Self::Equalizer(y)) => *x == *y,
1420 (Self::Dynamics(x), Self::Dynamics(y)) => *x == *y,
1421 _ => false,
1422 }
1423 }
1424}
1425
1426impl SettableTypeSpecificElementState {
1427 #[inline]
1428 pub fn ordinal(&self) -> u64 {
1429 match *self {
1430 Self::VendorSpecific(_) => 1,
1431 Self::Gain(_) => 2,
1432 Self::Equalizer(_) => 3,
1433 Self::Dynamics(_) => 4,
1434 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
1435 }
1436 }
1437
1438 #[inline]
1439 pub fn unknown_variant_for_testing() -> Self {
1440 Self::__SourceBreaking { unknown_ordinal: 0 }
1441 }
1442
1443 #[inline]
1444 pub fn is_unknown(&self) -> bool {
1445 match self {
1446 Self::__SourceBreaking { .. } => true,
1447 _ => false,
1448 }
1449 }
1450}
1451
1452impl fidl::Persistable for SettableTypeSpecificElementState {}
1453
1454#[derive(Clone, Debug)]
1456pub enum TypeSpecificElement {
1457 VendorSpecific(VendorSpecific),
1458 Gain(Gain),
1459 Equalizer(Equalizer),
1460 Dynamics(Dynamics),
1461 Endpoint(Endpoint),
1462 DaiInterconnect(DaiInterconnect),
1463 #[doc(hidden)]
1464 __SourceBreaking {
1465 unknown_ordinal: u64,
1466 },
1467}
1468
1469#[macro_export]
1471macro_rules! TypeSpecificElementUnknown {
1472 () => {
1473 _
1474 };
1475}
1476
1477impl PartialEq for TypeSpecificElement {
1479 fn eq(&self, other: &Self) -> bool {
1480 match (self, other) {
1481 (Self::VendorSpecific(x), Self::VendorSpecific(y)) => *x == *y,
1482 (Self::Gain(x), Self::Gain(y)) => *x == *y,
1483 (Self::Equalizer(x), Self::Equalizer(y)) => *x == *y,
1484 (Self::Dynamics(x), Self::Dynamics(y)) => *x == *y,
1485 (Self::Endpoint(x), Self::Endpoint(y)) => *x == *y,
1486 (Self::DaiInterconnect(x), Self::DaiInterconnect(y)) => *x == *y,
1487 _ => false,
1488 }
1489 }
1490}
1491
1492impl TypeSpecificElement {
1493 #[inline]
1494 pub fn ordinal(&self) -> u64 {
1495 match *self {
1496 Self::VendorSpecific(_) => 1,
1497 Self::Gain(_) => 2,
1498 Self::Equalizer(_) => 3,
1499 Self::Dynamics(_) => 4,
1500 Self::Endpoint(_) => 5,
1501 Self::DaiInterconnect(_) => 6,
1502 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
1503 }
1504 }
1505
1506 #[inline]
1507 pub fn unknown_variant_for_testing() -> Self {
1508 Self::__SourceBreaking { unknown_ordinal: 0 }
1509 }
1510
1511 #[inline]
1512 pub fn is_unknown(&self) -> bool {
1513 match self {
1514 Self::__SourceBreaking { .. } => true,
1515 _ => false,
1516 }
1517 }
1518}
1519
1520impl fidl::Persistable for TypeSpecificElement {}
1521
1522#[derive(Clone, Debug)]
1527pub enum TypeSpecificElementState {
1528 VendorSpecific(VendorSpecificState),
1529 Gain(GainElementState),
1530 Equalizer(EqualizerElementState),
1531 Dynamics(DynamicsElementState),
1532 Endpoint(EndpointElementState),
1533 DaiInterconnect(DaiInterconnectElementState),
1534 #[doc(hidden)]
1535 __SourceBreaking {
1536 unknown_ordinal: u64,
1537 },
1538}
1539
1540#[macro_export]
1542macro_rules! TypeSpecificElementStateUnknown {
1543 () => {
1544 _
1545 };
1546}
1547
1548impl PartialEq for TypeSpecificElementState {
1550 fn eq(&self, other: &Self) -> bool {
1551 match (self, other) {
1552 (Self::VendorSpecific(x), Self::VendorSpecific(y)) => *x == *y,
1553 (Self::Gain(x), Self::Gain(y)) => *x == *y,
1554 (Self::Equalizer(x), Self::Equalizer(y)) => *x == *y,
1555 (Self::Dynamics(x), Self::Dynamics(y)) => *x == *y,
1556 (Self::Endpoint(x), Self::Endpoint(y)) => *x == *y,
1557 (Self::DaiInterconnect(x), Self::DaiInterconnect(y)) => *x == *y,
1558 _ => false,
1559 }
1560 }
1561}
1562
1563impl TypeSpecificElementState {
1564 #[inline]
1565 pub fn ordinal(&self) -> u64 {
1566 match *self {
1567 Self::VendorSpecific(_) => 1,
1568 Self::Gain(_) => 2,
1569 Self::Equalizer(_) => 3,
1570 Self::Dynamics(_) => 4,
1571 Self::Endpoint(_) => 5,
1572 Self::DaiInterconnect(_) => 6,
1573 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
1574 }
1575 }
1576
1577 #[inline]
1578 pub fn unknown_variant_for_testing() -> Self {
1579 Self::__SourceBreaking { unknown_ordinal: 0 }
1580 }
1581
1582 #[inline]
1583 pub fn is_unknown(&self) -> bool {
1584 match self {
1585 Self::__SourceBreaking { .. } => true,
1586 _ => false,
1587 }
1588 }
1589}
1590
1591impl fidl::Persistable for TypeSpecificElementState {}
1592
1593pub mod connector_ordinals {
1594 pub const SIGNAL_PROCESSING_CONNECT: u64 = 0xa81907ce6066295;
1595}
1596
1597pub mod reader_ordinals {
1598 pub const GET_ELEMENTS: u64 = 0x1b14ff4adf5dc6f8;
1599 pub const WATCH_ELEMENT_STATE: u64 = 0x524da8772a69056f;
1600 pub const GET_TOPOLOGIES: u64 = 0x73ffb73af24d30b6;
1601 pub const WATCH_TOPOLOGY: u64 = 0x66d172acdb36a729;
1602}
1603
1604pub mod signal_processing_ordinals {
1605 pub const GET_ELEMENTS: u64 = 0x1b14ff4adf5dc6f8;
1606 pub const WATCH_ELEMENT_STATE: u64 = 0x524da8772a69056f;
1607 pub const GET_TOPOLOGIES: u64 = 0x73ffb73af24d30b6;
1608 pub const WATCH_TOPOLOGY: u64 = 0x66d172acdb36a729;
1609 pub const SET_TOPOLOGY: u64 = 0x1d9a7f9b8fee790c;
1610 pub const SET_ELEMENT_STATE: u64 = 0x38c3b2d4bae698f4;
1611}
1612
1613mod internal {
1614 use super::*;
1615 unsafe impl fidl::encoding::TypeMarker for DynamicsSupportedControls {
1616 type Owned = Self;
1617
1618 #[inline(always)]
1619 fn inline_align(_context: fidl::encoding::Context) -> usize {
1620 8
1621 }
1622
1623 #[inline(always)]
1624 fn inline_size(_context: fidl::encoding::Context) -> usize {
1625 8
1626 }
1627 }
1628
1629 impl fidl::encoding::ValueTypeMarker for DynamicsSupportedControls {
1630 type Borrowed<'a> = Self;
1631 #[inline(always)]
1632 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1633 *value
1634 }
1635 }
1636
1637 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
1638 for DynamicsSupportedControls
1639 {
1640 #[inline]
1641 unsafe fn encode(
1642 self,
1643 encoder: &mut fidl::encoding::Encoder<'_, D>,
1644 offset: usize,
1645 _depth: fidl::encoding::Depth,
1646 ) -> fidl::Result<()> {
1647 encoder.debug_check_bounds::<Self>(offset);
1648 encoder.write_num(self.bits(), offset);
1649 Ok(())
1650 }
1651 }
1652
1653 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1654 for DynamicsSupportedControls
1655 {
1656 #[inline(always)]
1657 fn new_empty() -> Self {
1658 Self::empty()
1659 }
1660
1661 #[inline]
1662 unsafe fn decode(
1663 &mut self,
1664 decoder: &mut fidl::encoding::Decoder<'_, D>,
1665 offset: usize,
1666 _depth: fidl::encoding::Depth,
1667 ) -> fidl::Result<()> {
1668 decoder.debug_check_bounds::<Self>(offset);
1669 let prim = decoder.read_num::<u64>(offset);
1670 *self = Self::from_bits_allow_unknown(prim);
1671 Ok(())
1672 }
1673 }
1674 unsafe impl fidl::encoding::TypeMarker for EqualizerSupportedControls {
1675 type Owned = Self;
1676
1677 #[inline(always)]
1678 fn inline_align(_context: fidl::encoding::Context) -> usize {
1679 8
1680 }
1681
1682 #[inline(always)]
1683 fn inline_size(_context: fidl::encoding::Context) -> usize {
1684 8
1685 }
1686 }
1687
1688 impl fidl::encoding::ValueTypeMarker for EqualizerSupportedControls {
1689 type Borrowed<'a> = Self;
1690 #[inline(always)]
1691 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1692 *value
1693 }
1694 }
1695
1696 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
1697 for EqualizerSupportedControls
1698 {
1699 #[inline]
1700 unsafe fn encode(
1701 self,
1702 encoder: &mut fidl::encoding::Encoder<'_, D>,
1703 offset: usize,
1704 _depth: fidl::encoding::Depth,
1705 ) -> fidl::Result<()> {
1706 encoder.debug_check_bounds::<Self>(offset);
1707 encoder.write_num(self.bits(), offset);
1708 Ok(())
1709 }
1710 }
1711
1712 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1713 for EqualizerSupportedControls
1714 {
1715 #[inline(always)]
1716 fn new_empty() -> Self {
1717 Self::empty()
1718 }
1719
1720 #[inline]
1721 unsafe fn decode(
1722 &mut self,
1723 decoder: &mut fidl::encoding::Decoder<'_, D>,
1724 offset: usize,
1725 _depth: fidl::encoding::Depth,
1726 ) -> fidl::Result<()> {
1727 decoder.debug_check_bounds::<Self>(offset);
1728 let prim = decoder.read_num::<u64>(offset);
1729 *self = Self::from_bits_allow_unknown(prim);
1730 Ok(())
1731 }
1732 }
1733 unsafe impl fidl::encoding::TypeMarker for ElementType {
1734 type Owned = Self;
1735
1736 #[inline(always)]
1737 fn inline_align(_context: fidl::encoding::Context) -> usize {
1738 std::mem::align_of::<u32>()
1739 }
1740
1741 #[inline(always)]
1742 fn inline_size(_context: fidl::encoding::Context) -> usize {
1743 std::mem::size_of::<u32>()
1744 }
1745
1746 #[inline(always)]
1747 fn encode_is_copy() -> bool {
1748 false
1749 }
1750
1751 #[inline(always)]
1752 fn decode_is_copy() -> bool {
1753 false
1754 }
1755 }
1756
1757 impl fidl::encoding::ValueTypeMarker for ElementType {
1758 type Borrowed<'a> = Self;
1759 #[inline(always)]
1760 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1761 *value
1762 }
1763 }
1764
1765 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for ElementType {
1766 #[inline]
1767 unsafe fn encode(
1768 self,
1769 encoder: &mut fidl::encoding::Encoder<'_, D>,
1770 offset: usize,
1771 _depth: fidl::encoding::Depth,
1772 ) -> fidl::Result<()> {
1773 encoder.debug_check_bounds::<Self>(offset);
1774 encoder.write_num(self.into_primitive(), offset);
1775 Ok(())
1776 }
1777 }
1778
1779 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ElementType {
1780 #[inline(always)]
1781 fn new_empty() -> Self {
1782 Self::unknown()
1783 }
1784
1785 #[inline]
1786 unsafe fn decode(
1787 &mut self,
1788 decoder: &mut fidl::encoding::Decoder<'_, D>,
1789 offset: usize,
1790 _depth: fidl::encoding::Depth,
1791 ) -> fidl::Result<()> {
1792 decoder.debug_check_bounds::<Self>(offset);
1793 let prim = decoder.read_num::<u32>(offset);
1794
1795 *self = Self::from_primitive_allow_unknown(prim);
1796 Ok(())
1797 }
1798 }
1799 unsafe impl fidl::encoding::TypeMarker for EndpointType {
1800 type Owned = Self;
1801
1802 #[inline(always)]
1803 fn inline_align(_context: fidl::encoding::Context) -> usize {
1804 std::mem::align_of::<u8>()
1805 }
1806
1807 #[inline(always)]
1808 fn inline_size(_context: fidl::encoding::Context) -> usize {
1809 std::mem::size_of::<u8>()
1810 }
1811
1812 #[inline(always)]
1813 fn encode_is_copy() -> bool {
1814 false
1815 }
1816
1817 #[inline(always)]
1818 fn decode_is_copy() -> bool {
1819 false
1820 }
1821 }
1822
1823 impl fidl::encoding::ValueTypeMarker for EndpointType {
1824 type Borrowed<'a> = Self;
1825 #[inline(always)]
1826 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1827 *value
1828 }
1829 }
1830
1831 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for EndpointType {
1832 #[inline]
1833 unsafe fn encode(
1834 self,
1835 encoder: &mut fidl::encoding::Encoder<'_, D>,
1836 offset: usize,
1837 _depth: fidl::encoding::Depth,
1838 ) -> fidl::Result<()> {
1839 encoder.debug_check_bounds::<Self>(offset);
1840 encoder.write_num(self.into_primitive(), offset);
1841 Ok(())
1842 }
1843 }
1844
1845 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for EndpointType {
1846 #[inline(always)]
1847 fn new_empty() -> Self {
1848 Self::unknown()
1849 }
1850
1851 #[inline]
1852 unsafe fn decode(
1853 &mut self,
1854 decoder: &mut fidl::encoding::Decoder<'_, D>,
1855 offset: usize,
1856 _depth: fidl::encoding::Depth,
1857 ) -> fidl::Result<()> {
1858 decoder.debug_check_bounds::<Self>(offset);
1859 let prim = decoder.read_num::<u8>(offset);
1860
1861 *self = Self::from_primitive_allow_unknown(prim);
1862 Ok(())
1863 }
1864 }
1865 unsafe impl fidl::encoding::TypeMarker for EqualizerBandType {
1866 type Owned = Self;
1867
1868 #[inline(always)]
1869 fn inline_align(_context: fidl::encoding::Context) -> usize {
1870 std::mem::align_of::<u64>()
1871 }
1872
1873 #[inline(always)]
1874 fn inline_size(_context: fidl::encoding::Context) -> usize {
1875 std::mem::size_of::<u64>()
1876 }
1877
1878 #[inline(always)]
1879 fn encode_is_copy() -> bool {
1880 false
1881 }
1882
1883 #[inline(always)]
1884 fn decode_is_copy() -> bool {
1885 false
1886 }
1887 }
1888
1889 impl fidl::encoding::ValueTypeMarker for EqualizerBandType {
1890 type Borrowed<'a> = Self;
1891 #[inline(always)]
1892 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1893 *value
1894 }
1895 }
1896
1897 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
1898 for EqualizerBandType
1899 {
1900 #[inline]
1901 unsafe fn encode(
1902 self,
1903 encoder: &mut fidl::encoding::Encoder<'_, D>,
1904 offset: usize,
1905 _depth: fidl::encoding::Depth,
1906 ) -> fidl::Result<()> {
1907 encoder.debug_check_bounds::<Self>(offset);
1908 encoder.write_num(self.into_primitive(), offset);
1909 Ok(())
1910 }
1911 }
1912
1913 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for EqualizerBandType {
1914 #[inline(always)]
1915 fn new_empty() -> Self {
1916 Self::unknown()
1917 }
1918
1919 #[inline]
1920 unsafe fn decode(
1921 &mut self,
1922 decoder: &mut fidl::encoding::Decoder<'_, D>,
1923 offset: usize,
1924 _depth: fidl::encoding::Depth,
1925 ) -> fidl::Result<()> {
1926 decoder.debug_check_bounds::<Self>(offset);
1927 let prim = decoder.read_num::<u64>(offset);
1928
1929 *self = Self::from_primitive_allow_unknown(prim);
1930 Ok(())
1931 }
1932 }
1933 unsafe impl fidl::encoding::TypeMarker for GainDomain {
1934 type Owned = Self;
1935
1936 #[inline(always)]
1937 fn inline_align(_context: fidl::encoding::Context) -> usize {
1938 std::mem::align_of::<u8>()
1939 }
1940
1941 #[inline(always)]
1942 fn inline_size(_context: fidl::encoding::Context) -> usize {
1943 std::mem::size_of::<u8>()
1944 }
1945
1946 #[inline(always)]
1947 fn encode_is_copy() -> bool {
1948 false
1949 }
1950
1951 #[inline(always)]
1952 fn decode_is_copy() -> bool {
1953 false
1954 }
1955 }
1956
1957 impl fidl::encoding::ValueTypeMarker for GainDomain {
1958 type Borrowed<'a> = Self;
1959 #[inline(always)]
1960 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1961 *value
1962 }
1963 }
1964
1965 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for GainDomain {
1966 #[inline]
1967 unsafe fn encode(
1968 self,
1969 encoder: &mut fidl::encoding::Encoder<'_, D>,
1970 offset: usize,
1971 _depth: fidl::encoding::Depth,
1972 ) -> fidl::Result<()> {
1973 encoder.debug_check_bounds::<Self>(offset);
1974 encoder.write_num(self.into_primitive(), offset);
1975 Ok(())
1976 }
1977 }
1978
1979 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for GainDomain {
1980 #[inline(always)]
1981 fn new_empty() -> Self {
1982 Self::unknown()
1983 }
1984
1985 #[inline]
1986 unsafe fn decode(
1987 &mut self,
1988 decoder: &mut fidl::encoding::Decoder<'_, D>,
1989 offset: usize,
1990 _depth: fidl::encoding::Depth,
1991 ) -> fidl::Result<()> {
1992 decoder.debug_check_bounds::<Self>(offset);
1993 let prim = decoder.read_num::<u8>(offset);
1994
1995 *self = Self::from_primitive_allow_unknown(prim);
1996 Ok(())
1997 }
1998 }
1999 unsafe impl fidl::encoding::TypeMarker for GainType {
2000 type Owned = Self;
2001
2002 #[inline(always)]
2003 fn inline_align(_context: fidl::encoding::Context) -> usize {
2004 std::mem::align_of::<u8>()
2005 }
2006
2007 #[inline(always)]
2008 fn inline_size(_context: fidl::encoding::Context) -> usize {
2009 std::mem::size_of::<u8>()
2010 }
2011
2012 #[inline(always)]
2013 fn encode_is_copy() -> bool {
2014 true
2015 }
2016
2017 #[inline(always)]
2018 fn decode_is_copy() -> bool {
2019 false
2020 }
2021 }
2022
2023 impl fidl::encoding::ValueTypeMarker for GainType {
2024 type Borrowed<'a> = Self;
2025 #[inline(always)]
2026 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2027 *value
2028 }
2029 }
2030
2031 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for GainType {
2032 #[inline]
2033 unsafe fn encode(
2034 self,
2035 encoder: &mut fidl::encoding::Encoder<'_, D>,
2036 offset: usize,
2037 _depth: fidl::encoding::Depth,
2038 ) -> fidl::Result<()> {
2039 encoder.debug_check_bounds::<Self>(offset);
2040 encoder.write_num(self.into_primitive(), offset);
2041 Ok(())
2042 }
2043 }
2044
2045 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for GainType {
2046 #[inline(always)]
2047 fn new_empty() -> Self {
2048 Self::Decibels
2049 }
2050
2051 #[inline]
2052 unsafe fn decode(
2053 &mut self,
2054 decoder: &mut fidl::encoding::Decoder<'_, D>,
2055 offset: usize,
2056 _depth: fidl::encoding::Depth,
2057 ) -> fidl::Result<()> {
2058 decoder.debug_check_bounds::<Self>(offset);
2059 let prim = decoder.read_num::<u8>(offset);
2060
2061 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
2062 Ok(())
2063 }
2064 }
2065 unsafe impl fidl::encoding::TypeMarker for LevelType {
2066 type Owned = Self;
2067
2068 #[inline(always)]
2069 fn inline_align(_context: fidl::encoding::Context) -> usize {
2070 std::mem::align_of::<u8>()
2071 }
2072
2073 #[inline(always)]
2074 fn inline_size(_context: fidl::encoding::Context) -> usize {
2075 std::mem::size_of::<u8>()
2076 }
2077
2078 #[inline(always)]
2079 fn encode_is_copy() -> bool {
2080 true
2081 }
2082
2083 #[inline(always)]
2084 fn decode_is_copy() -> bool {
2085 false
2086 }
2087 }
2088
2089 impl fidl::encoding::ValueTypeMarker for LevelType {
2090 type Borrowed<'a> = Self;
2091 #[inline(always)]
2092 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2093 *value
2094 }
2095 }
2096
2097 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for LevelType {
2098 #[inline]
2099 unsafe fn encode(
2100 self,
2101 encoder: &mut fidl::encoding::Encoder<'_, D>,
2102 offset: usize,
2103 _depth: fidl::encoding::Depth,
2104 ) -> fidl::Result<()> {
2105 encoder.debug_check_bounds::<Self>(offset);
2106 encoder.write_num(self.into_primitive(), offset);
2107 Ok(())
2108 }
2109 }
2110
2111 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for LevelType {
2112 #[inline(always)]
2113 fn new_empty() -> Self {
2114 Self::Peak
2115 }
2116
2117 #[inline]
2118 unsafe fn decode(
2119 &mut self,
2120 decoder: &mut fidl::encoding::Decoder<'_, D>,
2121 offset: usize,
2122 _depth: fidl::encoding::Depth,
2123 ) -> fidl::Result<()> {
2124 decoder.debug_check_bounds::<Self>(offset);
2125 let prim = decoder.read_num::<u8>(offset);
2126
2127 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
2128 Ok(())
2129 }
2130 }
2131 unsafe impl fidl::encoding::TypeMarker for PlugDetectCapabilities {
2132 type Owned = Self;
2133
2134 #[inline(always)]
2135 fn inline_align(_context: fidl::encoding::Context) -> usize {
2136 std::mem::align_of::<u32>()
2137 }
2138
2139 #[inline(always)]
2140 fn inline_size(_context: fidl::encoding::Context) -> usize {
2141 std::mem::size_of::<u32>()
2142 }
2143
2144 #[inline(always)]
2145 fn encode_is_copy() -> bool {
2146 false
2147 }
2148
2149 #[inline(always)]
2150 fn decode_is_copy() -> bool {
2151 false
2152 }
2153 }
2154
2155 impl fidl::encoding::ValueTypeMarker for PlugDetectCapabilities {
2156 type Borrowed<'a> = Self;
2157 #[inline(always)]
2158 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2159 *value
2160 }
2161 }
2162
2163 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
2164 for PlugDetectCapabilities
2165 {
2166 #[inline]
2167 unsafe fn encode(
2168 self,
2169 encoder: &mut fidl::encoding::Encoder<'_, D>,
2170 offset: usize,
2171 _depth: fidl::encoding::Depth,
2172 ) -> fidl::Result<()> {
2173 encoder.debug_check_bounds::<Self>(offset);
2174 encoder.write_num(self.into_primitive(), offset);
2175 Ok(())
2176 }
2177 }
2178
2179 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2180 for PlugDetectCapabilities
2181 {
2182 #[inline(always)]
2183 fn new_empty() -> Self {
2184 Self::unknown()
2185 }
2186
2187 #[inline]
2188 unsafe fn decode(
2189 &mut self,
2190 decoder: &mut fidl::encoding::Decoder<'_, D>,
2191 offset: usize,
2192 _depth: fidl::encoding::Depth,
2193 ) -> fidl::Result<()> {
2194 decoder.debug_check_bounds::<Self>(offset);
2195 let prim = decoder.read_num::<u32>(offset);
2196
2197 *self = Self::from_primitive_allow_unknown(prim);
2198 Ok(())
2199 }
2200 }
2201 unsafe impl fidl::encoding::TypeMarker for ThresholdType {
2202 type Owned = Self;
2203
2204 #[inline(always)]
2205 fn inline_align(_context: fidl::encoding::Context) -> usize {
2206 std::mem::align_of::<u8>()
2207 }
2208
2209 #[inline(always)]
2210 fn inline_size(_context: fidl::encoding::Context) -> usize {
2211 std::mem::size_of::<u8>()
2212 }
2213
2214 #[inline(always)]
2215 fn encode_is_copy() -> bool {
2216 true
2217 }
2218
2219 #[inline(always)]
2220 fn decode_is_copy() -> bool {
2221 false
2222 }
2223 }
2224
2225 impl fidl::encoding::ValueTypeMarker for ThresholdType {
2226 type Borrowed<'a> = Self;
2227 #[inline(always)]
2228 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2229 *value
2230 }
2231 }
2232
2233 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for ThresholdType {
2234 #[inline]
2235 unsafe fn encode(
2236 self,
2237 encoder: &mut fidl::encoding::Encoder<'_, D>,
2238 offset: usize,
2239 _depth: fidl::encoding::Depth,
2240 ) -> fidl::Result<()> {
2241 encoder.debug_check_bounds::<Self>(offset);
2242 encoder.write_num(self.into_primitive(), offset);
2243 Ok(())
2244 }
2245 }
2246
2247 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ThresholdType {
2248 #[inline(always)]
2249 fn new_empty() -> Self {
2250 Self::Above
2251 }
2252
2253 #[inline]
2254 unsafe fn decode(
2255 &mut self,
2256 decoder: &mut fidl::encoding::Decoder<'_, D>,
2257 offset: usize,
2258 _depth: fidl::encoding::Depth,
2259 ) -> fidl::Result<()> {
2260 decoder.debug_check_bounds::<Self>(offset);
2261 let prim = decoder.read_num::<u8>(offset);
2262
2263 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
2264 Ok(())
2265 }
2266 }
2267
2268 impl fidl::encoding::ValueTypeMarker for EdgePair {
2269 type Borrowed<'a> = &'a Self;
2270 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2271 value
2272 }
2273 }
2274
2275 unsafe impl fidl::encoding::TypeMarker for EdgePair {
2276 type Owned = Self;
2277
2278 #[inline(always)]
2279 fn inline_align(_context: fidl::encoding::Context) -> usize {
2280 8
2281 }
2282
2283 #[inline(always)]
2284 fn inline_size(_context: fidl::encoding::Context) -> usize {
2285 16
2286 }
2287 #[inline(always)]
2288 fn encode_is_copy() -> bool {
2289 true
2290 }
2291
2292 #[inline(always)]
2293 fn decode_is_copy() -> bool {
2294 true
2295 }
2296 }
2297
2298 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<EdgePair, D> for &EdgePair {
2299 #[inline]
2300 unsafe fn encode(
2301 self,
2302 encoder: &mut fidl::encoding::Encoder<'_, D>,
2303 offset: usize,
2304 _depth: fidl::encoding::Depth,
2305 ) -> fidl::Result<()> {
2306 encoder.debug_check_bounds::<EdgePair>(offset);
2307 unsafe {
2308 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
2310 (buf_ptr as *mut EdgePair).write_unaligned((self as *const EdgePair).read());
2311 }
2314 Ok(())
2315 }
2316 }
2317 unsafe impl<
2318 D: fidl::encoding::ResourceDialect,
2319 T0: fidl::encoding::Encode<u64, D>,
2320 T1: fidl::encoding::Encode<u64, D>,
2321 > fidl::encoding::Encode<EdgePair, D> for (T0, T1)
2322 {
2323 #[inline]
2324 unsafe fn encode(
2325 self,
2326 encoder: &mut fidl::encoding::Encoder<'_, D>,
2327 offset: usize,
2328 depth: fidl::encoding::Depth,
2329 ) -> fidl::Result<()> {
2330 encoder.debug_check_bounds::<EdgePair>(offset);
2331 self.0.encode(encoder, offset + 0, depth)?;
2335 self.1.encode(encoder, offset + 8, depth)?;
2336 Ok(())
2337 }
2338 }
2339
2340 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for EdgePair {
2341 #[inline(always)]
2342 fn new_empty() -> Self {
2343 Self {
2344 processing_element_id_from: fidl::new_empty!(u64, D),
2345 processing_element_id_to: fidl::new_empty!(u64, D),
2346 }
2347 }
2348
2349 #[inline]
2350 unsafe fn decode(
2351 &mut self,
2352 decoder: &mut fidl::encoding::Decoder<'_, D>,
2353 offset: usize,
2354 _depth: fidl::encoding::Depth,
2355 ) -> fidl::Result<()> {
2356 decoder.debug_check_bounds::<Self>(offset);
2357 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
2358 unsafe {
2361 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 16);
2362 }
2363 Ok(())
2364 }
2365 }
2366
2367 impl fidl::encoding::ValueTypeMarker for ReaderWatchElementStateRequest {
2368 type Borrowed<'a> = &'a Self;
2369 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2370 value
2371 }
2372 }
2373
2374 unsafe impl fidl::encoding::TypeMarker for ReaderWatchElementStateRequest {
2375 type Owned = Self;
2376
2377 #[inline(always)]
2378 fn inline_align(_context: fidl::encoding::Context) -> usize {
2379 8
2380 }
2381
2382 #[inline(always)]
2383 fn inline_size(_context: fidl::encoding::Context) -> usize {
2384 8
2385 }
2386 #[inline(always)]
2387 fn encode_is_copy() -> bool {
2388 true
2389 }
2390
2391 #[inline(always)]
2392 fn decode_is_copy() -> bool {
2393 true
2394 }
2395 }
2396
2397 unsafe impl<D: fidl::encoding::ResourceDialect>
2398 fidl::encoding::Encode<ReaderWatchElementStateRequest, D>
2399 for &ReaderWatchElementStateRequest
2400 {
2401 #[inline]
2402 unsafe fn encode(
2403 self,
2404 encoder: &mut fidl::encoding::Encoder<'_, D>,
2405 offset: usize,
2406 _depth: fidl::encoding::Depth,
2407 ) -> fidl::Result<()> {
2408 encoder.debug_check_bounds::<ReaderWatchElementStateRequest>(offset);
2409 unsafe {
2410 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
2412 (buf_ptr as *mut ReaderWatchElementStateRequest)
2413 .write_unaligned((self as *const ReaderWatchElementStateRequest).read());
2414 }
2417 Ok(())
2418 }
2419 }
2420 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<u64, D>>
2421 fidl::encoding::Encode<ReaderWatchElementStateRequest, D> for (T0,)
2422 {
2423 #[inline]
2424 unsafe fn encode(
2425 self,
2426 encoder: &mut fidl::encoding::Encoder<'_, D>,
2427 offset: usize,
2428 depth: fidl::encoding::Depth,
2429 ) -> fidl::Result<()> {
2430 encoder.debug_check_bounds::<ReaderWatchElementStateRequest>(offset);
2431 self.0.encode(encoder, offset + 0, depth)?;
2435 Ok(())
2436 }
2437 }
2438
2439 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2440 for ReaderWatchElementStateRequest
2441 {
2442 #[inline(always)]
2443 fn new_empty() -> Self {
2444 Self { processing_element_id: fidl::new_empty!(u64, D) }
2445 }
2446
2447 #[inline]
2448 unsafe fn decode(
2449 &mut self,
2450 decoder: &mut fidl::encoding::Decoder<'_, D>,
2451 offset: usize,
2452 _depth: fidl::encoding::Depth,
2453 ) -> fidl::Result<()> {
2454 decoder.debug_check_bounds::<Self>(offset);
2455 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
2456 unsafe {
2459 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 8);
2460 }
2461 Ok(())
2462 }
2463 }
2464
2465 impl fidl::encoding::ValueTypeMarker for ReaderWatchElementStateResponse {
2466 type Borrowed<'a> = &'a Self;
2467 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2468 value
2469 }
2470 }
2471
2472 unsafe impl fidl::encoding::TypeMarker for ReaderWatchElementStateResponse {
2473 type Owned = Self;
2474
2475 #[inline(always)]
2476 fn inline_align(_context: fidl::encoding::Context) -> usize {
2477 8
2478 }
2479
2480 #[inline(always)]
2481 fn inline_size(_context: fidl::encoding::Context) -> usize {
2482 16
2483 }
2484 }
2485
2486 unsafe impl<D: fidl::encoding::ResourceDialect>
2487 fidl::encoding::Encode<ReaderWatchElementStateResponse, D>
2488 for &ReaderWatchElementStateResponse
2489 {
2490 #[inline]
2491 unsafe fn encode(
2492 self,
2493 encoder: &mut fidl::encoding::Encoder<'_, D>,
2494 offset: usize,
2495 _depth: fidl::encoding::Depth,
2496 ) -> fidl::Result<()> {
2497 encoder.debug_check_bounds::<ReaderWatchElementStateResponse>(offset);
2498 fidl::encoding::Encode::<ReaderWatchElementStateResponse, D>::encode(
2500 (<ElementState as fidl::encoding::ValueTypeMarker>::borrow(&self.state),),
2501 encoder,
2502 offset,
2503 _depth,
2504 )
2505 }
2506 }
2507 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<ElementState, D>>
2508 fidl::encoding::Encode<ReaderWatchElementStateResponse, D> for (T0,)
2509 {
2510 #[inline]
2511 unsafe fn encode(
2512 self,
2513 encoder: &mut fidl::encoding::Encoder<'_, D>,
2514 offset: usize,
2515 depth: fidl::encoding::Depth,
2516 ) -> fidl::Result<()> {
2517 encoder.debug_check_bounds::<ReaderWatchElementStateResponse>(offset);
2518 self.0.encode(encoder, offset + 0, depth)?;
2522 Ok(())
2523 }
2524 }
2525
2526 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2527 for ReaderWatchElementStateResponse
2528 {
2529 #[inline(always)]
2530 fn new_empty() -> Self {
2531 Self { state: fidl::new_empty!(ElementState, D) }
2532 }
2533
2534 #[inline]
2535 unsafe fn decode(
2536 &mut self,
2537 decoder: &mut fidl::encoding::Decoder<'_, D>,
2538 offset: usize,
2539 _depth: fidl::encoding::Depth,
2540 ) -> fidl::Result<()> {
2541 decoder.debug_check_bounds::<Self>(offset);
2542 fidl::decode!(ElementState, D, &mut self.state, decoder, offset + 0, _depth)?;
2544 Ok(())
2545 }
2546 }
2547
2548 impl fidl::encoding::ValueTypeMarker for ReaderGetElementsResponse {
2549 type Borrowed<'a> = &'a Self;
2550 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2551 value
2552 }
2553 }
2554
2555 unsafe impl fidl::encoding::TypeMarker for ReaderGetElementsResponse {
2556 type Owned = Self;
2557
2558 #[inline(always)]
2559 fn inline_align(_context: fidl::encoding::Context) -> usize {
2560 8
2561 }
2562
2563 #[inline(always)]
2564 fn inline_size(_context: fidl::encoding::Context) -> usize {
2565 16
2566 }
2567 }
2568
2569 unsafe impl<D: fidl::encoding::ResourceDialect>
2570 fidl::encoding::Encode<ReaderGetElementsResponse, D> for &ReaderGetElementsResponse
2571 {
2572 #[inline]
2573 unsafe fn encode(
2574 self,
2575 encoder: &mut fidl::encoding::Encoder<'_, D>,
2576 offset: usize,
2577 _depth: fidl::encoding::Depth,
2578 ) -> fidl::Result<()> {
2579 encoder.debug_check_bounds::<ReaderGetElementsResponse>(offset);
2580 fidl::encoding::Encode::<ReaderGetElementsResponse, D>::encode(
2582 (<fidl::encoding::Vector<Element, 64> as fidl::encoding::ValueTypeMarker>::borrow(
2583 &self.processing_elements,
2584 ),),
2585 encoder,
2586 offset,
2587 _depth,
2588 )
2589 }
2590 }
2591 unsafe impl<
2592 D: fidl::encoding::ResourceDialect,
2593 T0: fidl::encoding::Encode<fidl::encoding::Vector<Element, 64>, D>,
2594 > fidl::encoding::Encode<ReaderGetElementsResponse, D> for (T0,)
2595 {
2596 #[inline]
2597 unsafe fn encode(
2598 self,
2599 encoder: &mut fidl::encoding::Encoder<'_, D>,
2600 offset: usize,
2601 depth: fidl::encoding::Depth,
2602 ) -> fidl::Result<()> {
2603 encoder.debug_check_bounds::<ReaderGetElementsResponse>(offset);
2604 self.0.encode(encoder, offset + 0, depth)?;
2608 Ok(())
2609 }
2610 }
2611
2612 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2613 for ReaderGetElementsResponse
2614 {
2615 #[inline(always)]
2616 fn new_empty() -> Self {
2617 Self { processing_elements: fidl::new_empty!(fidl::encoding::Vector<Element, 64>, D) }
2618 }
2619
2620 #[inline]
2621 unsafe fn decode(
2622 &mut self,
2623 decoder: &mut fidl::encoding::Decoder<'_, D>,
2624 offset: usize,
2625 _depth: fidl::encoding::Depth,
2626 ) -> fidl::Result<()> {
2627 decoder.debug_check_bounds::<Self>(offset);
2628 fidl::decode!(fidl::encoding::Vector<Element, 64>, D, &mut self.processing_elements, decoder, offset + 0, _depth)?;
2630 Ok(())
2631 }
2632 }
2633
2634 impl fidl::encoding::ValueTypeMarker for ReaderGetTopologiesResponse {
2635 type Borrowed<'a> = &'a Self;
2636 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2637 value
2638 }
2639 }
2640
2641 unsafe impl fidl::encoding::TypeMarker for ReaderGetTopologiesResponse {
2642 type Owned = Self;
2643
2644 #[inline(always)]
2645 fn inline_align(_context: fidl::encoding::Context) -> usize {
2646 8
2647 }
2648
2649 #[inline(always)]
2650 fn inline_size(_context: fidl::encoding::Context) -> usize {
2651 16
2652 }
2653 }
2654
2655 unsafe impl<D: fidl::encoding::ResourceDialect>
2656 fidl::encoding::Encode<ReaderGetTopologiesResponse, D> for &ReaderGetTopologiesResponse
2657 {
2658 #[inline]
2659 unsafe fn encode(
2660 self,
2661 encoder: &mut fidl::encoding::Encoder<'_, D>,
2662 offset: usize,
2663 _depth: fidl::encoding::Depth,
2664 ) -> fidl::Result<()> {
2665 encoder.debug_check_bounds::<ReaderGetTopologiesResponse>(offset);
2666 fidl::encoding::Encode::<ReaderGetTopologiesResponse, D>::encode(
2668 (
2669 <fidl::encoding::Vector<Topology, 64> as fidl::encoding::ValueTypeMarker>::borrow(&self.topologies),
2670 ),
2671 encoder, offset, _depth
2672 )
2673 }
2674 }
2675 unsafe impl<
2676 D: fidl::encoding::ResourceDialect,
2677 T0: fidl::encoding::Encode<fidl::encoding::Vector<Topology, 64>, D>,
2678 > fidl::encoding::Encode<ReaderGetTopologiesResponse, D> for (T0,)
2679 {
2680 #[inline]
2681 unsafe fn encode(
2682 self,
2683 encoder: &mut fidl::encoding::Encoder<'_, D>,
2684 offset: usize,
2685 depth: fidl::encoding::Depth,
2686 ) -> fidl::Result<()> {
2687 encoder.debug_check_bounds::<ReaderGetTopologiesResponse>(offset);
2688 self.0.encode(encoder, offset + 0, depth)?;
2692 Ok(())
2693 }
2694 }
2695
2696 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2697 for ReaderGetTopologiesResponse
2698 {
2699 #[inline(always)]
2700 fn new_empty() -> Self {
2701 Self { topologies: fidl::new_empty!(fidl::encoding::Vector<Topology, 64>, D) }
2702 }
2703
2704 #[inline]
2705 unsafe fn decode(
2706 &mut self,
2707 decoder: &mut fidl::encoding::Decoder<'_, D>,
2708 offset: usize,
2709 _depth: fidl::encoding::Depth,
2710 ) -> fidl::Result<()> {
2711 decoder.debug_check_bounds::<Self>(offset);
2712 fidl::decode!(fidl::encoding::Vector<Topology, 64>, D, &mut self.topologies, decoder, offset + 0, _depth)?;
2714 Ok(())
2715 }
2716 }
2717
2718 impl fidl::encoding::ValueTypeMarker for ReaderWatchTopologyResponse {
2719 type Borrowed<'a> = &'a Self;
2720 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2721 value
2722 }
2723 }
2724
2725 unsafe impl fidl::encoding::TypeMarker for ReaderWatchTopologyResponse {
2726 type Owned = Self;
2727
2728 #[inline(always)]
2729 fn inline_align(_context: fidl::encoding::Context) -> usize {
2730 8
2731 }
2732
2733 #[inline(always)]
2734 fn inline_size(_context: fidl::encoding::Context) -> usize {
2735 8
2736 }
2737 #[inline(always)]
2738 fn encode_is_copy() -> bool {
2739 true
2740 }
2741
2742 #[inline(always)]
2743 fn decode_is_copy() -> bool {
2744 true
2745 }
2746 }
2747
2748 unsafe impl<D: fidl::encoding::ResourceDialect>
2749 fidl::encoding::Encode<ReaderWatchTopologyResponse, D> for &ReaderWatchTopologyResponse
2750 {
2751 #[inline]
2752 unsafe fn encode(
2753 self,
2754 encoder: &mut fidl::encoding::Encoder<'_, D>,
2755 offset: usize,
2756 _depth: fidl::encoding::Depth,
2757 ) -> fidl::Result<()> {
2758 encoder.debug_check_bounds::<ReaderWatchTopologyResponse>(offset);
2759 unsafe {
2760 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
2762 (buf_ptr as *mut ReaderWatchTopologyResponse)
2763 .write_unaligned((self as *const ReaderWatchTopologyResponse).read());
2764 }
2767 Ok(())
2768 }
2769 }
2770 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<u64, D>>
2771 fidl::encoding::Encode<ReaderWatchTopologyResponse, D> for (T0,)
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::<ReaderWatchTopologyResponse>(offset);
2781 self.0.encode(encoder, offset + 0, depth)?;
2785 Ok(())
2786 }
2787 }
2788
2789 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2790 for ReaderWatchTopologyResponse
2791 {
2792 #[inline(always)]
2793 fn new_empty() -> Self {
2794 Self { topology_id: fidl::new_empty!(u64, D) }
2795 }
2796
2797 #[inline]
2798 unsafe fn decode(
2799 &mut self,
2800 decoder: &mut fidl::encoding::Decoder<'_, D>,
2801 offset: usize,
2802 _depth: fidl::encoding::Depth,
2803 ) -> fidl::Result<()> {
2804 decoder.debug_check_bounds::<Self>(offset);
2805 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
2806 unsafe {
2809 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 8);
2810 }
2811 Ok(())
2812 }
2813 }
2814
2815 impl fidl::encoding::ValueTypeMarker for SignalProcessingSetElementStateRequest {
2816 type Borrowed<'a> = &'a Self;
2817 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2818 value
2819 }
2820 }
2821
2822 unsafe impl fidl::encoding::TypeMarker for SignalProcessingSetElementStateRequest {
2823 type Owned = Self;
2824
2825 #[inline(always)]
2826 fn inline_align(_context: fidl::encoding::Context) -> usize {
2827 8
2828 }
2829
2830 #[inline(always)]
2831 fn inline_size(_context: fidl::encoding::Context) -> usize {
2832 24
2833 }
2834 }
2835
2836 unsafe impl<D: fidl::encoding::ResourceDialect>
2837 fidl::encoding::Encode<SignalProcessingSetElementStateRequest, D>
2838 for &SignalProcessingSetElementStateRequest
2839 {
2840 #[inline]
2841 unsafe fn encode(
2842 self,
2843 encoder: &mut fidl::encoding::Encoder<'_, D>,
2844 offset: usize,
2845 _depth: fidl::encoding::Depth,
2846 ) -> fidl::Result<()> {
2847 encoder.debug_check_bounds::<SignalProcessingSetElementStateRequest>(offset);
2848 fidl::encoding::Encode::<SignalProcessingSetElementStateRequest, D>::encode(
2850 (
2851 <u64 as fidl::encoding::ValueTypeMarker>::borrow(&self.processing_element_id),
2852 <SettableElementState as fidl::encoding::ValueTypeMarker>::borrow(&self.state),
2853 ),
2854 encoder,
2855 offset,
2856 _depth,
2857 )
2858 }
2859 }
2860 unsafe impl<
2861 D: fidl::encoding::ResourceDialect,
2862 T0: fidl::encoding::Encode<u64, D>,
2863 T1: fidl::encoding::Encode<SettableElementState, D>,
2864 > fidl::encoding::Encode<SignalProcessingSetElementStateRequest, D> for (T0, T1)
2865 {
2866 #[inline]
2867 unsafe fn encode(
2868 self,
2869 encoder: &mut fidl::encoding::Encoder<'_, D>,
2870 offset: usize,
2871 depth: fidl::encoding::Depth,
2872 ) -> fidl::Result<()> {
2873 encoder.debug_check_bounds::<SignalProcessingSetElementStateRequest>(offset);
2874 self.0.encode(encoder, offset + 0, depth)?;
2878 self.1.encode(encoder, offset + 8, depth)?;
2879 Ok(())
2880 }
2881 }
2882
2883 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2884 for SignalProcessingSetElementStateRequest
2885 {
2886 #[inline(always)]
2887 fn new_empty() -> Self {
2888 Self {
2889 processing_element_id: fidl::new_empty!(u64, D),
2890 state: fidl::new_empty!(SettableElementState, D),
2891 }
2892 }
2893
2894 #[inline]
2895 unsafe fn decode(
2896 &mut self,
2897 decoder: &mut fidl::encoding::Decoder<'_, D>,
2898 offset: usize,
2899 _depth: fidl::encoding::Depth,
2900 ) -> fidl::Result<()> {
2901 decoder.debug_check_bounds::<Self>(offset);
2902 fidl::decode!(u64, D, &mut self.processing_element_id, decoder, offset + 0, _depth)?;
2904 fidl::decode!(SettableElementState, D, &mut self.state, decoder, offset + 8, _depth)?;
2905 Ok(())
2906 }
2907 }
2908
2909 impl fidl::encoding::ValueTypeMarker for SignalProcessingSetTopologyRequest {
2910 type Borrowed<'a> = &'a Self;
2911 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2912 value
2913 }
2914 }
2915
2916 unsafe impl fidl::encoding::TypeMarker for SignalProcessingSetTopologyRequest {
2917 type Owned = Self;
2918
2919 #[inline(always)]
2920 fn inline_align(_context: fidl::encoding::Context) -> usize {
2921 8
2922 }
2923
2924 #[inline(always)]
2925 fn inline_size(_context: fidl::encoding::Context) -> usize {
2926 8
2927 }
2928 #[inline(always)]
2929 fn encode_is_copy() -> bool {
2930 true
2931 }
2932
2933 #[inline(always)]
2934 fn decode_is_copy() -> bool {
2935 true
2936 }
2937 }
2938
2939 unsafe impl<D: fidl::encoding::ResourceDialect>
2940 fidl::encoding::Encode<SignalProcessingSetTopologyRequest, D>
2941 for &SignalProcessingSetTopologyRequest
2942 {
2943 #[inline]
2944 unsafe fn encode(
2945 self,
2946 encoder: &mut fidl::encoding::Encoder<'_, D>,
2947 offset: usize,
2948 _depth: fidl::encoding::Depth,
2949 ) -> fidl::Result<()> {
2950 encoder.debug_check_bounds::<SignalProcessingSetTopologyRequest>(offset);
2951 unsafe {
2952 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
2954 (buf_ptr as *mut SignalProcessingSetTopologyRequest)
2955 .write_unaligned((self as *const SignalProcessingSetTopologyRequest).read());
2956 }
2959 Ok(())
2960 }
2961 }
2962 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<u64, D>>
2963 fidl::encoding::Encode<SignalProcessingSetTopologyRequest, D> for (T0,)
2964 {
2965 #[inline]
2966 unsafe fn encode(
2967 self,
2968 encoder: &mut fidl::encoding::Encoder<'_, D>,
2969 offset: usize,
2970 depth: fidl::encoding::Depth,
2971 ) -> fidl::Result<()> {
2972 encoder.debug_check_bounds::<SignalProcessingSetTopologyRequest>(offset);
2973 self.0.encode(encoder, offset + 0, depth)?;
2977 Ok(())
2978 }
2979 }
2980
2981 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2982 for SignalProcessingSetTopologyRequest
2983 {
2984 #[inline(always)]
2985 fn new_empty() -> Self {
2986 Self { topology_id: fidl::new_empty!(u64, D) }
2987 }
2988
2989 #[inline]
2990 unsafe fn decode(
2991 &mut self,
2992 decoder: &mut fidl::encoding::Decoder<'_, D>,
2993 offset: usize,
2994 _depth: fidl::encoding::Depth,
2995 ) -> fidl::Result<()> {
2996 decoder.debug_check_bounds::<Self>(offset);
2997 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
2998 unsafe {
3001 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 8);
3002 }
3003 Ok(())
3004 }
3005 }
3006
3007 impl DaiInterconnect {
3008 #[inline(always)]
3009 fn max_ordinal_present(&self) -> u64 {
3010 if let Some(_) = self.plug_detect_capabilities {
3011 return 1;
3012 }
3013 0
3014 }
3015 }
3016
3017 impl fidl::encoding::ValueTypeMarker for DaiInterconnect {
3018 type Borrowed<'a> = &'a Self;
3019 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3020 value
3021 }
3022 }
3023
3024 unsafe impl fidl::encoding::TypeMarker for DaiInterconnect {
3025 type Owned = Self;
3026
3027 #[inline(always)]
3028 fn inline_align(_context: fidl::encoding::Context) -> usize {
3029 8
3030 }
3031
3032 #[inline(always)]
3033 fn inline_size(_context: fidl::encoding::Context) -> usize {
3034 16
3035 }
3036 }
3037
3038 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<DaiInterconnect, D>
3039 for &DaiInterconnect
3040 {
3041 unsafe fn encode(
3042 self,
3043 encoder: &mut fidl::encoding::Encoder<'_, D>,
3044 offset: usize,
3045 mut depth: fidl::encoding::Depth,
3046 ) -> fidl::Result<()> {
3047 encoder.debug_check_bounds::<DaiInterconnect>(offset);
3048 let max_ordinal: u64 = self.max_ordinal_present();
3050 encoder.write_num(max_ordinal, offset);
3051 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
3052 if max_ordinal == 0 {
3054 return Ok(());
3055 }
3056 depth.increment()?;
3057 let envelope_size = 8;
3058 let bytes_len = max_ordinal as usize * envelope_size;
3059 #[allow(unused_variables)]
3060 let offset = encoder.out_of_line_offset(bytes_len);
3061 let mut _prev_end_offset: usize = 0;
3062 if 1 > max_ordinal {
3063 return Ok(());
3064 }
3065
3066 let cur_offset: usize = (1 - 1) * envelope_size;
3069
3070 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3072
3073 fidl::encoding::encode_in_envelope_optional::<PlugDetectCapabilities, D>(
3078 self.plug_detect_capabilities
3079 .as_ref()
3080 .map(<PlugDetectCapabilities as fidl::encoding::ValueTypeMarker>::borrow),
3081 encoder,
3082 offset + cur_offset,
3083 depth,
3084 )?;
3085
3086 _prev_end_offset = cur_offset + envelope_size;
3087
3088 Ok(())
3089 }
3090 }
3091
3092 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for DaiInterconnect {
3093 #[inline(always)]
3094 fn new_empty() -> Self {
3095 Self::default()
3096 }
3097
3098 unsafe fn decode(
3099 &mut self,
3100 decoder: &mut fidl::encoding::Decoder<'_, D>,
3101 offset: usize,
3102 mut depth: fidl::encoding::Depth,
3103 ) -> fidl::Result<()> {
3104 decoder.debug_check_bounds::<Self>(offset);
3105 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
3106 None => return Err(fidl::Error::NotNullable),
3107 Some(len) => len,
3108 };
3109 if len == 0 {
3111 return Ok(());
3112 };
3113 depth.increment()?;
3114 let envelope_size = 8;
3115 let bytes_len = len * envelope_size;
3116 let offset = decoder.out_of_line_offset(bytes_len)?;
3117 let mut _next_ordinal_to_read = 0;
3119 let mut next_offset = offset;
3120 let end_offset = offset + bytes_len;
3121 _next_ordinal_to_read += 1;
3122 if next_offset >= end_offset {
3123 return Ok(());
3124 }
3125
3126 while _next_ordinal_to_read < 1 {
3128 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3129 _next_ordinal_to_read += 1;
3130 next_offset += envelope_size;
3131 }
3132
3133 let next_out_of_line = decoder.next_out_of_line();
3134 let handles_before = decoder.remaining_handles();
3135 if let Some((inlined, num_bytes, num_handles)) =
3136 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3137 {
3138 let member_inline_size =
3139 <PlugDetectCapabilities as fidl::encoding::TypeMarker>::inline_size(
3140 decoder.context,
3141 );
3142 if inlined != (member_inline_size <= 4) {
3143 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3144 }
3145 let inner_offset;
3146 let mut inner_depth = depth.clone();
3147 if inlined {
3148 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3149 inner_offset = next_offset;
3150 } else {
3151 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3152 inner_depth.increment()?;
3153 }
3154 let val_ref = self
3155 .plug_detect_capabilities
3156 .get_or_insert_with(|| fidl::new_empty!(PlugDetectCapabilities, D));
3157 fidl::decode!(
3158 PlugDetectCapabilities,
3159 D,
3160 val_ref,
3161 decoder,
3162 inner_offset,
3163 inner_depth
3164 )?;
3165 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3166 {
3167 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3168 }
3169 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3170 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3171 }
3172 }
3173
3174 next_offset += envelope_size;
3175
3176 while next_offset < end_offset {
3178 _next_ordinal_to_read += 1;
3179 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3180 next_offset += envelope_size;
3181 }
3182
3183 Ok(())
3184 }
3185 }
3186
3187 impl DaiInterconnectElementState {
3188 #[inline(always)]
3189 fn max_ordinal_present(&self) -> u64 {
3190 if let Some(_) = self.external_delay {
3191 return 2;
3192 }
3193 if let Some(_) = self.plug_state {
3194 return 1;
3195 }
3196 0
3197 }
3198 }
3199
3200 impl fidl::encoding::ValueTypeMarker for DaiInterconnectElementState {
3201 type Borrowed<'a> = &'a Self;
3202 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3203 value
3204 }
3205 }
3206
3207 unsafe impl fidl::encoding::TypeMarker for DaiInterconnectElementState {
3208 type Owned = Self;
3209
3210 #[inline(always)]
3211 fn inline_align(_context: fidl::encoding::Context) -> usize {
3212 8
3213 }
3214
3215 #[inline(always)]
3216 fn inline_size(_context: fidl::encoding::Context) -> usize {
3217 16
3218 }
3219 }
3220
3221 unsafe impl<D: fidl::encoding::ResourceDialect>
3222 fidl::encoding::Encode<DaiInterconnectElementState, D> for &DaiInterconnectElementState
3223 {
3224 unsafe fn encode(
3225 self,
3226 encoder: &mut fidl::encoding::Encoder<'_, D>,
3227 offset: usize,
3228 mut depth: fidl::encoding::Depth,
3229 ) -> fidl::Result<()> {
3230 encoder.debug_check_bounds::<DaiInterconnectElementState>(offset);
3231 let max_ordinal: u64 = self.max_ordinal_present();
3233 encoder.write_num(max_ordinal, offset);
3234 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
3235 if max_ordinal == 0 {
3237 return Ok(());
3238 }
3239 depth.increment()?;
3240 let envelope_size = 8;
3241 let bytes_len = max_ordinal as usize * envelope_size;
3242 #[allow(unused_variables)]
3243 let offset = encoder.out_of_line_offset(bytes_len);
3244 let mut _prev_end_offset: usize = 0;
3245 if 1 > max_ordinal {
3246 return Ok(());
3247 }
3248
3249 let cur_offset: usize = (1 - 1) * envelope_size;
3252
3253 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3255
3256 fidl::encoding::encode_in_envelope_optional::<PlugState, D>(
3261 self.plug_state
3262 .as_ref()
3263 .map(<PlugState as fidl::encoding::ValueTypeMarker>::borrow),
3264 encoder,
3265 offset + cur_offset,
3266 depth,
3267 )?;
3268
3269 _prev_end_offset = cur_offset + envelope_size;
3270 if 2 > max_ordinal {
3271 return Ok(());
3272 }
3273
3274 let cur_offset: usize = (2 - 1) * envelope_size;
3277
3278 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3280
3281 fidl::encoding::encode_in_envelope_optional::<i64, D>(
3286 self.external_delay.as_ref().map(<i64 as fidl::encoding::ValueTypeMarker>::borrow),
3287 encoder,
3288 offset + cur_offset,
3289 depth,
3290 )?;
3291
3292 _prev_end_offset = cur_offset + envelope_size;
3293
3294 Ok(())
3295 }
3296 }
3297
3298 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
3299 for DaiInterconnectElementState
3300 {
3301 #[inline(always)]
3302 fn new_empty() -> Self {
3303 Self::default()
3304 }
3305
3306 unsafe fn decode(
3307 &mut self,
3308 decoder: &mut fidl::encoding::Decoder<'_, D>,
3309 offset: usize,
3310 mut depth: fidl::encoding::Depth,
3311 ) -> fidl::Result<()> {
3312 decoder.debug_check_bounds::<Self>(offset);
3313 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
3314 None => return Err(fidl::Error::NotNullable),
3315 Some(len) => len,
3316 };
3317 if len == 0 {
3319 return Ok(());
3320 };
3321 depth.increment()?;
3322 let envelope_size = 8;
3323 let bytes_len = len * envelope_size;
3324 let offset = decoder.out_of_line_offset(bytes_len)?;
3325 let mut _next_ordinal_to_read = 0;
3327 let mut next_offset = offset;
3328 let end_offset = offset + bytes_len;
3329 _next_ordinal_to_read += 1;
3330 if next_offset >= end_offset {
3331 return Ok(());
3332 }
3333
3334 while _next_ordinal_to_read < 1 {
3336 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3337 _next_ordinal_to_read += 1;
3338 next_offset += envelope_size;
3339 }
3340
3341 let next_out_of_line = decoder.next_out_of_line();
3342 let handles_before = decoder.remaining_handles();
3343 if let Some((inlined, num_bytes, num_handles)) =
3344 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3345 {
3346 let member_inline_size =
3347 <PlugState as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3348 if inlined != (member_inline_size <= 4) {
3349 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3350 }
3351 let inner_offset;
3352 let mut inner_depth = depth.clone();
3353 if inlined {
3354 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3355 inner_offset = next_offset;
3356 } else {
3357 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3358 inner_depth.increment()?;
3359 }
3360 let val_ref = self.plug_state.get_or_insert_with(|| fidl::new_empty!(PlugState, D));
3361 fidl::decode!(PlugState, D, val_ref, decoder, inner_offset, inner_depth)?;
3362 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3363 {
3364 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3365 }
3366 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3367 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3368 }
3369 }
3370
3371 next_offset += envelope_size;
3372 _next_ordinal_to_read += 1;
3373 if next_offset >= end_offset {
3374 return Ok(());
3375 }
3376
3377 while _next_ordinal_to_read < 2 {
3379 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3380 _next_ordinal_to_read += 1;
3381 next_offset += envelope_size;
3382 }
3383
3384 let next_out_of_line = decoder.next_out_of_line();
3385 let handles_before = decoder.remaining_handles();
3386 if let Some((inlined, num_bytes, num_handles)) =
3387 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3388 {
3389 let member_inline_size =
3390 <i64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3391 if inlined != (member_inline_size <= 4) {
3392 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3393 }
3394 let inner_offset;
3395 let mut inner_depth = depth.clone();
3396 if inlined {
3397 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3398 inner_offset = next_offset;
3399 } else {
3400 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3401 inner_depth.increment()?;
3402 }
3403 let val_ref = self.external_delay.get_or_insert_with(|| fidl::new_empty!(i64, D));
3404 fidl::decode!(i64, D, val_ref, decoder, inner_offset, inner_depth)?;
3405 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3406 {
3407 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3408 }
3409 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3410 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3411 }
3412 }
3413
3414 next_offset += envelope_size;
3415
3416 while next_offset < end_offset {
3418 _next_ordinal_to_read += 1;
3419 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3420 next_offset += envelope_size;
3421 }
3422
3423 Ok(())
3424 }
3425 }
3426
3427 impl Dynamics {
3428 #[inline(always)]
3429 fn max_ordinal_present(&self) -> u64 {
3430 if let Some(_) = self.supported_controls {
3431 return 2;
3432 }
3433 if let Some(_) = self.bands {
3434 return 1;
3435 }
3436 0
3437 }
3438 }
3439
3440 impl fidl::encoding::ValueTypeMarker for Dynamics {
3441 type Borrowed<'a> = &'a Self;
3442 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3443 value
3444 }
3445 }
3446
3447 unsafe impl fidl::encoding::TypeMarker for Dynamics {
3448 type Owned = Self;
3449
3450 #[inline(always)]
3451 fn inline_align(_context: fidl::encoding::Context) -> usize {
3452 8
3453 }
3454
3455 #[inline(always)]
3456 fn inline_size(_context: fidl::encoding::Context) -> usize {
3457 16
3458 }
3459 }
3460
3461 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Dynamics, D> for &Dynamics {
3462 unsafe fn encode(
3463 self,
3464 encoder: &mut fidl::encoding::Encoder<'_, D>,
3465 offset: usize,
3466 mut depth: fidl::encoding::Depth,
3467 ) -> fidl::Result<()> {
3468 encoder.debug_check_bounds::<Dynamics>(offset);
3469 let max_ordinal: u64 = self.max_ordinal_present();
3471 encoder.write_num(max_ordinal, offset);
3472 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
3473 if max_ordinal == 0 {
3475 return Ok(());
3476 }
3477 depth.increment()?;
3478 let envelope_size = 8;
3479 let bytes_len = max_ordinal as usize * envelope_size;
3480 #[allow(unused_variables)]
3481 let offset = encoder.out_of_line_offset(bytes_len);
3482 let mut _prev_end_offset: usize = 0;
3483 if 1 > max_ordinal {
3484 return Ok(());
3485 }
3486
3487 let cur_offset: usize = (1 - 1) * envelope_size;
3490
3491 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3493
3494 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<DynamicsBand, 64>, D>(
3499 self.bands.as_ref().map(<fidl::encoding::Vector<DynamicsBand, 64> as fidl::encoding::ValueTypeMarker>::borrow),
3500 encoder, offset + cur_offset, depth
3501 )?;
3502
3503 _prev_end_offset = cur_offset + envelope_size;
3504 if 2 > max_ordinal {
3505 return Ok(());
3506 }
3507
3508 let cur_offset: usize = (2 - 1) * envelope_size;
3511
3512 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3514
3515 fidl::encoding::encode_in_envelope_optional::<DynamicsSupportedControls, D>(
3520 self.supported_controls
3521 .as_ref()
3522 .map(<DynamicsSupportedControls as fidl::encoding::ValueTypeMarker>::borrow),
3523 encoder,
3524 offset + cur_offset,
3525 depth,
3526 )?;
3527
3528 _prev_end_offset = cur_offset + envelope_size;
3529
3530 Ok(())
3531 }
3532 }
3533
3534 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Dynamics {
3535 #[inline(always)]
3536 fn new_empty() -> Self {
3537 Self::default()
3538 }
3539
3540 unsafe fn decode(
3541 &mut self,
3542 decoder: &mut fidl::encoding::Decoder<'_, D>,
3543 offset: usize,
3544 mut depth: fidl::encoding::Depth,
3545 ) -> fidl::Result<()> {
3546 decoder.debug_check_bounds::<Self>(offset);
3547 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
3548 None => return Err(fidl::Error::NotNullable),
3549 Some(len) => len,
3550 };
3551 if len == 0 {
3553 return Ok(());
3554 };
3555 depth.increment()?;
3556 let envelope_size = 8;
3557 let bytes_len = len * envelope_size;
3558 let offset = decoder.out_of_line_offset(bytes_len)?;
3559 let mut _next_ordinal_to_read = 0;
3561 let mut next_offset = offset;
3562 let end_offset = offset + bytes_len;
3563 _next_ordinal_to_read += 1;
3564 if next_offset >= end_offset {
3565 return Ok(());
3566 }
3567
3568 while _next_ordinal_to_read < 1 {
3570 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3571 _next_ordinal_to_read += 1;
3572 next_offset += envelope_size;
3573 }
3574
3575 let next_out_of_line = decoder.next_out_of_line();
3576 let handles_before = decoder.remaining_handles();
3577 if let Some((inlined, num_bytes, num_handles)) =
3578 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3579 {
3580 let member_inline_size = <fidl::encoding::Vector<DynamicsBand, 64> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3581 if inlined != (member_inline_size <= 4) {
3582 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3583 }
3584 let inner_offset;
3585 let mut inner_depth = depth.clone();
3586 if inlined {
3587 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3588 inner_offset = next_offset;
3589 } else {
3590 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3591 inner_depth.increment()?;
3592 }
3593 let val_ref = self.bands.get_or_insert_with(
3594 || fidl::new_empty!(fidl::encoding::Vector<DynamicsBand, 64>, D),
3595 );
3596 fidl::decode!(fidl::encoding::Vector<DynamicsBand, 64>, D, val_ref, decoder, inner_offset, inner_depth)?;
3597 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3598 {
3599 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3600 }
3601 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3602 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3603 }
3604 }
3605
3606 next_offset += envelope_size;
3607 _next_ordinal_to_read += 1;
3608 if next_offset >= end_offset {
3609 return Ok(());
3610 }
3611
3612 while _next_ordinal_to_read < 2 {
3614 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3615 _next_ordinal_to_read += 1;
3616 next_offset += envelope_size;
3617 }
3618
3619 let next_out_of_line = decoder.next_out_of_line();
3620 let handles_before = decoder.remaining_handles();
3621 if let Some((inlined, num_bytes, num_handles)) =
3622 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3623 {
3624 let member_inline_size =
3625 <DynamicsSupportedControls as fidl::encoding::TypeMarker>::inline_size(
3626 decoder.context,
3627 );
3628 if inlined != (member_inline_size <= 4) {
3629 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3630 }
3631 let inner_offset;
3632 let mut inner_depth = depth.clone();
3633 if inlined {
3634 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3635 inner_offset = next_offset;
3636 } else {
3637 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3638 inner_depth.increment()?;
3639 }
3640 let val_ref = self
3641 .supported_controls
3642 .get_or_insert_with(|| fidl::new_empty!(DynamicsSupportedControls, D));
3643 fidl::decode!(
3644 DynamicsSupportedControls,
3645 D,
3646 val_ref,
3647 decoder,
3648 inner_offset,
3649 inner_depth
3650 )?;
3651 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3652 {
3653 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3654 }
3655 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3656 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3657 }
3658 }
3659
3660 next_offset += envelope_size;
3661
3662 while next_offset < end_offset {
3664 _next_ordinal_to_read += 1;
3665 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3666 next_offset += envelope_size;
3667 }
3668
3669 Ok(())
3670 }
3671 }
3672
3673 impl DynamicsBand {
3674 #[inline(always)]
3675 fn max_ordinal_present(&self) -> u64 {
3676 if let Some(_) = self.id {
3677 return 1;
3678 }
3679 0
3680 }
3681 }
3682
3683 impl fidl::encoding::ValueTypeMarker for DynamicsBand {
3684 type Borrowed<'a> = &'a Self;
3685 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3686 value
3687 }
3688 }
3689
3690 unsafe impl fidl::encoding::TypeMarker for DynamicsBand {
3691 type Owned = Self;
3692
3693 #[inline(always)]
3694 fn inline_align(_context: fidl::encoding::Context) -> usize {
3695 8
3696 }
3697
3698 #[inline(always)]
3699 fn inline_size(_context: fidl::encoding::Context) -> usize {
3700 16
3701 }
3702 }
3703
3704 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<DynamicsBand, D>
3705 for &DynamicsBand
3706 {
3707 unsafe fn encode(
3708 self,
3709 encoder: &mut fidl::encoding::Encoder<'_, D>,
3710 offset: usize,
3711 mut depth: fidl::encoding::Depth,
3712 ) -> fidl::Result<()> {
3713 encoder.debug_check_bounds::<DynamicsBand>(offset);
3714 let max_ordinal: u64 = self.max_ordinal_present();
3716 encoder.write_num(max_ordinal, offset);
3717 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
3718 if max_ordinal == 0 {
3720 return Ok(());
3721 }
3722 depth.increment()?;
3723 let envelope_size = 8;
3724 let bytes_len = max_ordinal as usize * envelope_size;
3725 #[allow(unused_variables)]
3726 let offset = encoder.out_of_line_offset(bytes_len);
3727 let mut _prev_end_offset: usize = 0;
3728 if 1 > max_ordinal {
3729 return Ok(());
3730 }
3731
3732 let cur_offset: usize = (1 - 1) * envelope_size;
3735
3736 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3738
3739 fidl::encoding::encode_in_envelope_optional::<u64, D>(
3744 self.id.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
3745 encoder,
3746 offset + cur_offset,
3747 depth,
3748 )?;
3749
3750 _prev_end_offset = cur_offset + envelope_size;
3751
3752 Ok(())
3753 }
3754 }
3755
3756 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for DynamicsBand {
3757 #[inline(always)]
3758 fn new_empty() -> Self {
3759 Self::default()
3760 }
3761
3762 unsafe fn decode(
3763 &mut self,
3764 decoder: &mut fidl::encoding::Decoder<'_, D>,
3765 offset: usize,
3766 mut depth: fidl::encoding::Depth,
3767 ) -> fidl::Result<()> {
3768 decoder.debug_check_bounds::<Self>(offset);
3769 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
3770 None => return Err(fidl::Error::NotNullable),
3771 Some(len) => len,
3772 };
3773 if len == 0 {
3775 return Ok(());
3776 };
3777 depth.increment()?;
3778 let envelope_size = 8;
3779 let bytes_len = len * envelope_size;
3780 let offset = decoder.out_of_line_offset(bytes_len)?;
3781 let mut _next_ordinal_to_read = 0;
3783 let mut next_offset = offset;
3784 let end_offset = offset + bytes_len;
3785 _next_ordinal_to_read += 1;
3786 if next_offset >= end_offset {
3787 return Ok(());
3788 }
3789
3790 while _next_ordinal_to_read < 1 {
3792 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3793 _next_ordinal_to_read += 1;
3794 next_offset += envelope_size;
3795 }
3796
3797 let next_out_of_line = decoder.next_out_of_line();
3798 let handles_before = decoder.remaining_handles();
3799 if let Some((inlined, num_bytes, num_handles)) =
3800 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3801 {
3802 let member_inline_size =
3803 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3804 if inlined != (member_inline_size <= 4) {
3805 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3806 }
3807 let inner_offset;
3808 let mut inner_depth = depth.clone();
3809 if inlined {
3810 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3811 inner_offset = next_offset;
3812 } else {
3813 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3814 inner_depth.increment()?;
3815 }
3816 let val_ref = self.id.get_or_insert_with(|| fidl::new_empty!(u64, D));
3817 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
3818 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3819 {
3820 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3821 }
3822 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3823 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3824 }
3825 }
3826
3827 next_offset += envelope_size;
3828
3829 while next_offset < end_offset {
3831 _next_ordinal_to_read += 1;
3832 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3833 next_offset += envelope_size;
3834 }
3835
3836 Ok(())
3837 }
3838 }
3839
3840 impl DynamicsBandState {
3841 #[inline(always)]
3842 fn max_ordinal_present(&self) -> u64 {
3843 if let Some(_) = self.linked_channels {
3844 return 14;
3845 }
3846 if let Some(_) = self.lookahead {
3847 return 13;
3848 }
3849 if let Some(_) = self.level_type {
3850 return 12;
3851 }
3852 if let Some(_) = self.input_gain_db {
3853 return 11;
3854 }
3855 if let Some(_) = self.output_gain_db {
3856 return 10;
3857 }
3858 if let Some(_) = self.release {
3859 return 9;
3860 }
3861 if let Some(_) = self.attack {
3862 return 8;
3863 }
3864 if let Some(_) = self.knee_width_db {
3865 return 7;
3866 }
3867 if let Some(_) = self.ratio {
3868 return 6;
3869 }
3870 if let Some(_) = self.threshold_type {
3871 return 5;
3872 }
3873 if let Some(_) = self.threshold_db {
3874 return 4;
3875 }
3876 if let Some(_) = self.max_frequency {
3877 return 3;
3878 }
3879 if let Some(_) = self.min_frequency {
3880 return 2;
3881 }
3882 if let Some(_) = self.id {
3883 return 1;
3884 }
3885 0
3886 }
3887 }
3888
3889 impl fidl::encoding::ValueTypeMarker for DynamicsBandState {
3890 type Borrowed<'a> = &'a Self;
3891 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3892 value
3893 }
3894 }
3895
3896 unsafe impl fidl::encoding::TypeMarker for DynamicsBandState {
3897 type Owned = Self;
3898
3899 #[inline(always)]
3900 fn inline_align(_context: fidl::encoding::Context) -> usize {
3901 8
3902 }
3903
3904 #[inline(always)]
3905 fn inline_size(_context: fidl::encoding::Context) -> usize {
3906 16
3907 }
3908 }
3909
3910 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<DynamicsBandState, D>
3911 for &DynamicsBandState
3912 {
3913 unsafe fn encode(
3914 self,
3915 encoder: &mut fidl::encoding::Encoder<'_, D>,
3916 offset: usize,
3917 mut depth: fidl::encoding::Depth,
3918 ) -> fidl::Result<()> {
3919 encoder.debug_check_bounds::<DynamicsBandState>(offset);
3920 let max_ordinal: u64 = self.max_ordinal_present();
3922 encoder.write_num(max_ordinal, offset);
3923 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
3924 if max_ordinal == 0 {
3926 return Ok(());
3927 }
3928 depth.increment()?;
3929 let envelope_size = 8;
3930 let bytes_len = max_ordinal as usize * envelope_size;
3931 #[allow(unused_variables)]
3932 let offset = encoder.out_of_line_offset(bytes_len);
3933 let mut _prev_end_offset: usize = 0;
3934 if 1 > max_ordinal {
3935 return Ok(());
3936 }
3937
3938 let cur_offset: usize = (1 - 1) * envelope_size;
3941
3942 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3944
3945 fidl::encoding::encode_in_envelope_optional::<u64, D>(
3950 self.id.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
3951 encoder,
3952 offset + cur_offset,
3953 depth,
3954 )?;
3955
3956 _prev_end_offset = cur_offset + envelope_size;
3957 if 2 > max_ordinal {
3958 return Ok(());
3959 }
3960
3961 let cur_offset: usize = (2 - 1) * envelope_size;
3964
3965 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3967
3968 fidl::encoding::encode_in_envelope_optional::<u32, D>(
3973 self.min_frequency.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
3974 encoder,
3975 offset + cur_offset,
3976 depth,
3977 )?;
3978
3979 _prev_end_offset = cur_offset + envelope_size;
3980 if 3 > max_ordinal {
3981 return Ok(());
3982 }
3983
3984 let cur_offset: usize = (3 - 1) * envelope_size;
3987
3988 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3990
3991 fidl::encoding::encode_in_envelope_optional::<u32, D>(
3996 self.max_frequency.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
3997 encoder,
3998 offset + cur_offset,
3999 depth,
4000 )?;
4001
4002 _prev_end_offset = cur_offset + envelope_size;
4003 if 4 > max_ordinal {
4004 return Ok(());
4005 }
4006
4007 let cur_offset: usize = (4 - 1) * envelope_size;
4010
4011 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4013
4014 fidl::encoding::encode_in_envelope_optional::<f32, D>(
4019 self.threshold_db.as_ref().map(<f32 as fidl::encoding::ValueTypeMarker>::borrow),
4020 encoder,
4021 offset + cur_offset,
4022 depth,
4023 )?;
4024
4025 _prev_end_offset = cur_offset + envelope_size;
4026 if 5 > max_ordinal {
4027 return Ok(());
4028 }
4029
4030 let cur_offset: usize = (5 - 1) * envelope_size;
4033
4034 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4036
4037 fidl::encoding::encode_in_envelope_optional::<ThresholdType, D>(
4042 self.threshold_type
4043 .as_ref()
4044 .map(<ThresholdType as fidl::encoding::ValueTypeMarker>::borrow),
4045 encoder,
4046 offset + cur_offset,
4047 depth,
4048 )?;
4049
4050 _prev_end_offset = cur_offset + envelope_size;
4051 if 6 > max_ordinal {
4052 return Ok(());
4053 }
4054
4055 let cur_offset: usize = (6 - 1) * envelope_size;
4058
4059 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4061
4062 fidl::encoding::encode_in_envelope_optional::<f32, D>(
4067 self.ratio.as_ref().map(<f32 as fidl::encoding::ValueTypeMarker>::borrow),
4068 encoder,
4069 offset + cur_offset,
4070 depth,
4071 )?;
4072
4073 _prev_end_offset = cur_offset + envelope_size;
4074 if 7 > max_ordinal {
4075 return Ok(());
4076 }
4077
4078 let cur_offset: usize = (7 - 1) * envelope_size;
4081
4082 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4084
4085 fidl::encoding::encode_in_envelope_optional::<f32, D>(
4090 self.knee_width_db.as_ref().map(<f32 as fidl::encoding::ValueTypeMarker>::borrow),
4091 encoder,
4092 offset + cur_offset,
4093 depth,
4094 )?;
4095
4096 _prev_end_offset = cur_offset + envelope_size;
4097 if 8 > max_ordinal {
4098 return Ok(());
4099 }
4100
4101 let cur_offset: usize = (8 - 1) * envelope_size;
4104
4105 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4107
4108 fidl::encoding::encode_in_envelope_optional::<i64, D>(
4113 self.attack.as_ref().map(<i64 as fidl::encoding::ValueTypeMarker>::borrow),
4114 encoder,
4115 offset + cur_offset,
4116 depth,
4117 )?;
4118
4119 _prev_end_offset = cur_offset + envelope_size;
4120 if 9 > max_ordinal {
4121 return Ok(());
4122 }
4123
4124 let cur_offset: usize = (9 - 1) * envelope_size;
4127
4128 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4130
4131 fidl::encoding::encode_in_envelope_optional::<i64, D>(
4136 self.release.as_ref().map(<i64 as fidl::encoding::ValueTypeMarker>::borrow),
4137 encoder,
4138 offset + cur_offset,
4139 depth,
4140 )?;
4141
4142 _prev_end_offset = cur_offset + envelope_size;
4143 if 10 > max_ordinal {
4144 return Ok(());
4145 }
4146
4147 let cur_offset: usize = (10 - 1) * envelope_size;
4150
4151 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4153
4154 fidl::encoding::encode_in_envelope_optional::<f32, D>(
4159 self.output_gain_db.as_ref().map(<f32 as fidl::encoding::ValueTypeMarker>::borrow),
4160 encoder,
4161 offset + cur_offset,
4162 depth,
4163 )?;
4164
4165 _prev_end_offset = cur_offset + envelope_size;
4166 if 11 > max_ordinal {
4167 return Ok(());
4168 }
4169
4170 let cur_offset: usize = (11 - 1) * envelope_size;
4173
4174 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4176
4177 fidl::encoding::encode_in_envelope_optional::<f32, D>(
4182 self.input_gain_db.as_ref().map(<f32 as fidl::encoding::ValueTypeMarker>::borrow),
4183 encoder,
4184 offset + cur_offset,
4185 depth,
4186 )?;
4187
4188 _prev_end_offset = cur_offset + envelope_size;
4189 if 12 > max_ordinal {
4190 return Ok(());
4191 }
4192
4193 let cur_offset: usize = (12 - 1) * envelope_size;
4196
4197 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4199
4200 fidl::encoding::encode_in_envelope_optional::<LevelType, D>(
4205 self.level_type
4206 .as_ref()
4207 .map(<LevelType as fidl::encoding::ValueTypeMarker>::borrow),
4208 encoder,
4209 offset + cur_offset,
4210 depth,
4211 )?;
4212
4213 _prev_end_offset = cur_offset + envelope_size;
4214 if 13 > max_ordinal {
4215 return Ok(());
4216 }
4217
4218 let cur_offset: usize = (13 - 1) * envelope_size;
4221
4222 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4224
4225 fidl::encoding::encode_in_envelope_optional::<i64, D>(
4230 self.lookahead.as_ref().map(<i64 as fidl::encoding::ValueTypeMarker>::borrow),
4231 encoder,
4232 offset + cur_offset,
4233 depth,
4234 )?;
4235
4236 _prev_end_offset = cur_offset + envelope_size;
4237 if 14 > max_ordinal {
4238 return Ok(());
4239 }
4240
4241 let cur_offset: usize = (14 - 1) * envelope_size;
4244
4245 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4247
4248 fidl::encoding::encode_in_envelope_optional::<bool, D>(
4253 self.linked_channels
4254 .as_ref()
4255 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
4256 encoder,
4257 offset + cur_offset,
4258 depth,
4259 )?;
4260
4261 _prev_end_offset = cur_offset + envelope_size;
4262
4263 Ok(())
4264 }
4265 }
4266
4267 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for DynamicsBandState {
4268 #[inline(always)]
4269 fn new_empty() -> Self {
4270 Self::default()
4271 }
4272
4273 unsafe fn decode(
4274 &mut self,
4275 decoder: &mut fidl::encoding::Decoder<'_, D>,
4276 offset: usize,
4277 mut depth: fidl::encoding::Depth,
4278 ) -> fidl::Result<()> {
4279 decoder.debug_check_bounds::<Self>(offset);
4280 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
4281 None => return Err(fidl::Error::NotNullable),
4282 Some(len) => len,
4283 };
4284 if len == 0 {
4286 return Ok(());
4287 };
4288 depth.increment()?;
4289 let envelope_size = 8;
4290 let bytes_len = len * envelope_size;
4291 let offset = decoder.out_of_line_offset(bytes_len)?;
4292 let mut _next_ordinal_to_read = 0;
4294 let mut next_offset = offset;
4295 let end_offset = offset + bytes_len;
4296 _next_ordinal_to_read += 1;
4297 if next_offset >= end_offset {
4298 return Ok(());
4299 }
4300
4301 while _next_ordinal_to_read < 1 {
4303 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4304 _next_ordinal_to_read += 1;
4305 next_offset += envelope_size;
4306 }
4307
4308 let next_out_of_line = decoder.next_out_of_line();
4309 let handles_before = decoder.remaining_handles();
4310 if let Some((inlined, num_bytes, num_handles)) =
4311 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4312 {
4313 let member_inline_size =
4314 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4315 if inlined != (member_inline_size <= 4) {
4316 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4317 }
4318 let inner_offset;
4319 let mut inner_depth = depth.clone();
4320 if inlined {
4321 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4322 inner_offset = next_offset;
4323 } else {
4324 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4325 inner_depth.increment()?;
4326 }
4327 let val_ref = self.id.get_or_insert_with(|| fidl::new_empty!(u64, D));
4328 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
4329 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4330 {
4331 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4332 }
4333 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4334 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4335 }
4336 }
4337
4338 next_offset += envelope_size;
4339 _next_ordinal_to_read += 1;
4340 if next_offset >= end_offset {
4341 return Ok(());
4342 }
4343
4344 while _next_ordinal_to_read < 2 {
4346 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4347 _next_ordinal_to_read += 1;
4348 next_offset += envelope_size;
4349 }
4350
4351 let next_out_of_line = decoder.next_out_of_line();
4352 let handles_before = decoder.remaining_handles();
4353 if let Some((inlined, num_bytes, num_handles)) =
4354 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4355 {
4356 let member_inline_size =
4357 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4358 if inlined != (member_inline_size <= 4) {
4359 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4360 }
4361 let inner_offset;
4362 let mut inner_depth = depth.clone();
4363 if inlined {
4364 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4365 inner_offset = next_offset;
4366 } else {
4367 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4368 inner_depth.increment()?;
4369 }
4370 let val_ref = self.min_frequency.get_or_insert_with(|| fidl::new_empty!(u32, D));
4371 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
4372 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4373 {
4374 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4375 }
4376 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4377 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4378 }
4379 }
4380
4381 next_offset += envelope_size;
4382 _next_ordinal_to_read += 1;
4383 if next_offset >= end_offset {
4384 return Ok(());
4385 }
4386
4387 while _next_ordinal_to_read < 3 {
4389 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4390 _next_ordinal_to_read += 1;
4391 next_offset += envelope_size;
4392 }
4393
4394 let next_out_of_line = decoder.next_out_of_line();
4395 let handles_before = decoder.remaining_handles();
4396 if let Some((inlined, num_bytes, num_handles)) =
4397 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4398 {
4399 let member_inline_size =
4400 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4401 if inlined != (member_inline_size <= 4) {
4402 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4403 }
4404 let inner_offset;
4405 let mut inner_depth = depth.clone();
4406 if inlined {
4407 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4408 inner_offset = next_offset;
4409 } else {
4410 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4411 inner_depth.increment()?;
4412 }
4413 let val_ref = self.max_frequency.get_or_insert_with(|| fidl::new_empty!(u32, D));
4414 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
4415 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4416 {
4417 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4418 }
4419 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4420 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4421 }
4422 }
4423
4424 next_offset += envelope_size;
4425 _next_ordinal_to_read += 1;
4426 if next_offset >= end_offset {
4427 return Ok(());
4428 }
4429
4430 while _next_ordinal_to_read < 4 {
4432 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4433 _next_ordinal_to_read += 1;
4434 next_offset += envelope_size;
4435 }
4436
4437 let next_out_of_line = decoder.next_out_of_line();
4438 let handles_before = decoder.remaining_handles();
4439 if let Some((inlined, num_bytes, num_handles)) =
4440 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4441 {
4442 let member_inline_size =
4443 <f32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4444 if inlined != (member_inline_size <= 4) {
4445 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4446 }
4447 let inner_offset;
4448 let mut inner_depth = depth.clone();
4449 if inlined {
4450 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4451 inner_offset = next_offset;
4452 } else {
4453 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4454 inner_depth.increment()?;
4455 }
4456 let val_ref = self.threshold_db.get_or_insert_with(|| fidl::new_empty!(f32, D));
4457 fidl::decode!(f32, D, val_ref, decoder, inner_offset, inner_depth)?;
4458 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4459 {
4460 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4461 }
4462 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4463 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4464 }
4465 }
4466
4467 next_offset += envelope_size;
4468 _next_ordinal_to_read += 1;
4469 if next_offset >= end_offset {
4470 return Ok(());
4471 }
4472
4473 while _next_ordinal_to_read < 5 {
4475 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4476 _next_ordinal_to_read += 1;
4477 next_offset += envelope_size;
4478 }
4479
4480 let next_out_of_line = decoder.next_out_of_line();
4481 let handles_before = decoder.remaining_handles();
4482 if let Some((inlined, num_bytes, num_handles)) =
4483 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4484 {
4485 let member_inline_size =
4486 <ThresholdType as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4487 if inlined != (member_inline_size <= 4) {
4488 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4489 }
4490 let inner_offset;
4491 let mut inner_depth = depth.clone();
4492 if inlined {
4493 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4494 inner_offset = next_offset;
4495 } else {
4496 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4497 inner_depth.increment()?;
4498 }
4499 let val_ref =
4500 self.threshold_type.get_or_insert_with(|| fidl::new_empty!(ThresholdType, D));
4501 fidl::decode!(ThresholdType, D, val_ref, decoder, inner_offset, inner_depth)?;
4502 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4503 {
4504 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4505 }
4506 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4507 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4508 }
4509 }
4510
4511 next_offset += envelope_size;
4512 _next_ordinal_to_read += 1;
4513 if next_offset >= end_offset {
4514 return Ok(());
4515 }
4516
4517 while _next_ordinal_to_read < 6 {
4519 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4520 _next_ordinal_to_read += 1;
4521 next_offset += envelope_size;
4522 }
4523
4524 let next_out_of_line = decoder.next_out_of_line();
4525 let handles_before = decoder.remaining_handles();
4526 if let Some((inlined, num_bytes, num_handles)) =
4527 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4528 {
4529 let member_inline_size =
4530 <f32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4531 if inlined != (member_inline_size <= 4) {
4532 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4533 }
4534 let inner_offset;
4535 let mut inner_depth = depth.clone();
4536 if inlined {
4537 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4538 inner_offset = next_offset;
4539 } else {
4540 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4541 inner_depth.increment()?;
4542 }
4543 let val_ref = self.ratio.get_or_insert_with(|| fidl::new_empty!(f32, D));
4544 fidl::decode!(f32, D, val_ref, decoder, inner_offset, inner_depth)?;
4545 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4546 {
4547 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4548 }
4549 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4550 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4551 }
4552 }
4553
4554 next_offset += envelope_size;
4555 _next_ordinal_to_read += 1;
4556 if next_offset >= end_offset {
4557 return Ok(());
4558 }
4559
4560 while _next_ordinal_to_read < 7 {
4562 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4563 _next_ordinal_to_read += 1;
4564 next_offset += envelope_size;
4565 }
4566
4567 let next_out_of_line = decoder.next_out_of_line();
4568 let handles_before = decoder.remaining_handles();
4569 if let Some((inlined, num_bytes, num_handles)) =
4570 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4571 {
4572 let member_inline_size =
4573 <f32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4574 if inlined != (member_inline_size <= 4) {
4575 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4576 }
4577 let inner_offset;
4578 let mut inner_depth = depth.clone();
4579 if inlined {
4580 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4581 inner_offset = next_offset;
4582 } else {
4583 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4584 inner_depth.increment()?;
4585 }
4586 let val_ref = self.knee_width_db.get_or_insert_with(|| fidl::new_empty!(f32, D));
4587 fidl::decode!(f32, D, val_ref, decoder, inner_offset, inner_depth)?;
4588 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4589 {
4590 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4591 }
4592 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4593 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4594 }
4595 }
4596
4597 next_offset += envelope_size;
4598 _next_ordinal_to_read += 1;
4599 if next_offset >= end_offset {
4600 return Ok(());
4601 }
4602
4603 while _next_ordinal_to_read < 8 {
4605 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4606 _next_ordinal_to_read += 1;
4607 next_offset += envelope_size;
4608 }
4609
4610 let next_out_of_line = decoder.next_out_of_line();
4611 let handles_before = decoder.remaining_handles();
4612 if let Some((inlined, num_bytes, num_handles)) =
4613 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4614 {
4615 let member_inline_size =
4616 <i64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4617 if inlined != (member_inline_size <= 4) {
4618 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4619 }
4620 let inner_offset;
4621 let mut inner_depth = depth.clone();
4622 if inlined {
4623 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4624 inner_offset = next_offset;
4625 } else {
4626 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4627 inner_depth.increment()?;
4628 }
4629 let val_ref = self.attack.get_or_insert_with(|| fidl::new_empty!(i64, D));
4630 fidl::decode!(i64, D, val_ref, decoder, inner_offset, inner_depth)?;
4631 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4632 {
4633 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4634 }
4635 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4636 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4637 }
4638 }
4639
4640 next_offset += envelope_size;
4641 _next_ordinal_to_read += 1;
4642 if next_offset >= end_offset {
4643 return Ok(());
4644 }
4645
4646 while _next_ordinal_to_read < 9 {
4648 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4649 _next_ordinal_to_read += 1;
4650 next_offset += envelope_size;
4651 }
4652
4653 let next_out_of_line = decoder.next_out_of_line();
4654 let handles_before = decoder.remaining_handles();
4655 if let Some((inlined, num_bytes, num_handles)) =
4656 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4657 {
4658 let member_inline_size =
4659 <i64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4660 if inlined != (member_inline_size <= 4) {
4661 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4662 }
4663 let inner_offset;
4664 let mut inner_depth = depth.clone();
4665 if inlined {
4666 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4667 inner_offset = next_offset;
4668 } else {
4669 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4670 inner_depth.increment()?;
4671 }
4672 let val_ref = self.release.get_or_insert_with(|| fidl::new_empty!(i64, D));
4673 fidl::decode!(i64, D, val_ref, decoder, inner_offset, inner_depth)?;
4674 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4675 {
4676 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4677 }
4678 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4679 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4680 }
4681 }
4682
4683 next_offset += envelope_size;
4684 _next_ordinal_to_read += 1;
4685 if next_offset >= end_offset {
4686 return Ok(());
4687 }
4688
4689 while _next_ordinal_to_read < 10 {
4691 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4692 _next_ordinal_to_read += 1;
4693 next_offset += envelope_size;
4694 }
4695
4696 let next_out_of_line = decoder.next_out_of_line();
4697 let handles_before = decoder.remaining_handles();
4698 if let Some((inlined, num_bytes, num_handles)) =
4699 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4700 {
4701 let member_inline_size =
4702 <f32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4703 if inlined != (member_inline_size <= 4) {
4704 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4705 }
4706 let inner_offset;
4707 let mut inner_depth = depth.clone();
4708 if inlined {
4709 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4710 inner_offset = next_offset;
4711 } else {
4712 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4713 inner_depth.increment()?;
4714 }
4715 let val_ref = self.output_gain_db.get_or_insert_with(|| fidl::new_empty!(f32, D));
4716 fidl::decode!(f32, D, val_ref, decoder, inner_offset, inner_depth)?;
4717 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4718 {
4719 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4720 }
4721 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4722 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4723 }
4724 }
4725
4726 next_offset += envelope_size;
4727 _next_ordinal_to_read += 1;
4728 if next_offset >= end_offset {
4729 return Ok(());
4730 }
4731
4732 while _next_ordinal_to_read < 11 {
4734 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4735 _next_ordinal_to_read += 1;
4736 next_offset += envelope_size;
4737 }
4738
4739 let next_out_of_line = decoder.next_out_of_line();
4740 let handles_before = decoder.remaining_handles();
4741 if let Some((inlined, num_bytes, num_handles)) =
4742 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4743 {
4744 let member_inline_size =
4745 <f32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4746 if inlined != (member_inline_size <= 4) {
4747 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4748 }
4749 let inner_offset;
4750 let mut inner_depth = depth.clone();
4751 if inlined {
4752 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4753 inner_offset = next_offset;
4754 } else {
4755 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4756 inner_depth.increment()?;
4757 }
4758 let val_ref = self.input_gain_db.get_or_insert_with(|| fidl::new_empty!(f32, D));
4759 fidl::decode!(f32, D, val_ref, decoder, inner_offset, inner_depth)?;
4760 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4761 {
4762 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4763 }
4764 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4765 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4766 }
4767 }
4768
4769 next_offset += envelope_size;
4770 _next_ordinal_to_read += 1;
4771 if next_offset >= end_offset {
4772 return Ok(());
4773 }
4774
4775 while _next_ordinal_to_read < 12 {
4777 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4778 _next_ordinal_to_read += 1;
4779 next_offset += envelope_size;
4780 }
4781
4782 let next_out_of_line = decoder.next_out_of_line();
4783 let handles_before = decoder.remaining_handles();
4784 if let Some((inlined, num_bytes, num_handles)) =
4785 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4786 {
4787 let member_inline_size =
4788 <LevelType as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4789 if inlined != (member_inline_size <= 4) {
4790 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4791 }
4792 let inner_offset;
4793 let mut inner_depth = depth.clone();
4794 if inlined {
4795 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4796 inner_offset = next_offset;
4797 } else {
4798 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4799 inner_depth.increment()?;
4800 }
4801 let val_ref = self.level_type.get_or_insert_with(|| fidl::new_empty!(LevelType, D));
4802 fidl::decode!(LevelType, D, val_ref, decoder, inner_offset, inner_depth)?;
4803 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4804 {
4805 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4806 }
4807 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4808 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4809 }
4810 }
4811
4812 next_offset += envelope_size;
4813 _next_ordinal_to_read += 1;
4814 if next_offset >= end_offset {
4815 return Ok(());
4816 }
4817
4818 while _next_ordinal_to_read < 13 {
4820 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4821 _next_ordinal_to_read += 1;
4822 next_offset += envelope_size;
4823 }
4824
4825 let next_out_of_line = decoder.next_out_of_line();
4826 let handles_before = decoder.remaining_handles();
4827 if let Some((inlined, num_bytes, num_handles)) =
4828 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4829 {
4830 let member_inline_size =
4831 <i64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4832 if inlined != (member_inline_size <= 4) {
4833 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4834 }
4835 let inner_offset;
4836 let mut inner_depth = depth.clone();
4837 if inlined {
4838 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4839 inner_offset = next_offset;
4840 } else {
4841 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4842 inner_depth.increment()?;
4843 }
4844 let val_ref = self.lookahead.get_or_insert_with(|| fidl::new_empty!(i64, D));
4845 fidl::decode!(i64, D, val_ref, decoder, inner_offset, inner_depth)?;
4846 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4847 {
4848 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4849 }
4850 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4851 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4852 }
4853 }
4854
4855 next_offset += envelope_size;
4856 _next_ordinal_to_read += 1;
4857 if next_offset >= end_offset {
4858 return Ok(());
4859 }
4860
4861 while _next_ordinal_to_read < 14 {
4863 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4864 _next_ordinal_to_read += 1;
4865 next_offset += envelope_size;
4866 }
4867
4868 let next_out_of_line = decoder.next_out_of_line();
4869 let handles_before = decoder.remaining_handles();
4870 if let Some((inlined, num_bytes, num_handles)) =
4871 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4872 {
4873 let member_inline_size =
4874 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4875 if inlined != (member_inline_size <= 4) {
4876 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4877 }
4878 let inner_offset;
4879 let mut inner_depth = depth.clone();
4880 if inlined {
4881 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4882 inner_offset = next_offset;
4883 } else {
4884 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4885 inner_depth.increment()?;
4886 }
4887 let val_ref = self.linked_channels.get_or_insert_with(|| fidl::new_empty!(bool, D));
4888 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
4889 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4890 {
4891 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4892 }
4893 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4894 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4895 }
4896 }
4897
4898 next_offset += envelope_size;
4899
4900 while next_offset < end_offset {
4902 _next_ordinal_to_read += 1;
4903 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4904 next_offset += envelope_size;
4905 }
4906
4907 Ok(())
4908 }
4909 }
4910
4911 impl DynamicsElementState {
4912 #[inline(always)]
4913 fn max_ordinal_present(&self) -> u64 {
4914 if let Some(_) = self.band_states {
4915 return 1;
4916 }
4917 0
4918 }
4919 }
4920
4921 impl fidl::encoding::ValueTypeMarker for DynamicsElementState {
4922 type Borrowed<'a> = &'a Self;
4923 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4924 value
4925 }
4926 }
4927
4928 unsafe impl fidl::encoding::TypeMarker for DynamicsElementState {
4929 type Owned = Self;
4930
4931 #[inline(always)]
4932 fn inline_align(_context: fidl::encoding::Context) -> usize {
4933 8
4934 }
4935
4936 #[inline(always)]
4937 fn inline_size(_context: fidl::encoding::Context) -> usize {
4938 16
4939 }
4940 }
4941
4942 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<DynamicsElementState, D>
4943 for &DynamicsElementState
4944 {
4945 unsafe fn encode(
4946 self,
4947 encoder: &mut fidl::encoding::Encoder<'_, D>,
4948 offset: usize,
4949 mut depth: fidl::encoding::Depth,
4950 ) -> fidl::Result<()> {
4951 encoder.debug_check_bounds::<DynamicsElementState>(offset);
4952 let max_ordinal: u64 = self.max_ordinal_present();
4954 encoder.write_num(max_ordinal, offset);
4955 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
4956 if max_ordinal == 0 {
4958 return Ok(());
4959 }
4960 depth.increment()?;
4961 let envelope_size = 8;
4962 let bytes_len = max_ordinal as usize * envelope_size;
4963 #[allow(unused_variables)]
4964 let offset = encoder.out_of_line_offset(bytes_len);
4965 let mut _prev_end_offset: usize = 0;
4966 if 1 > max_ordinal {
4967 return Ok(());
4968 }
4969
4970 let cur_offset: usize = (1 - 1) * envelope_size;
4973
4974 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4976
4977 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<DynamicsBandState, 64>, D>(
4982 self.band_states.as_ref().map(<fidl::encoding::Vector<DynamicsBandState, 64> as fidl::encoding::ValueTypeMarker>::borrow),
4983 encoder, offset + cur_offset, depth
4984 )?;
4985
4986 _prev_end_offset = cur_offset + envelope_size;
4987
4988 Ok(())
4989 }
4990 }
4991
4992 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for DynamicsElementState {
4993 #[inline(always)]
4994 fn new_empty() -> Self {
4995 Self::default()
4996 }
4997
4998 unsafe fn decode(
4999 &mut self,
5000 decoder: &mut fidl::encoding::Decoder<'_, D>,
5001 offset: usize,
5002 mut depth: fidl::encoding::Depth,
5003 ) -> fidl::Result<()> {
5004 decoder.debug_check_bounds::<Self>(offset);
5005 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
5006 None => return Err(fidl::Error::NotNullable),
5007 Some(len) => len,
5008 };
5009 if len == 0 {
5011 return Ok(());
5012 };
5013 depth.increment()?;
5014 let envelope_size = 8;
5015 let bytes_len = len * envelope_size;
5016 let offset = decoder.out_of_line_offset(bytes_len)?;
5017 let mut _next_ordinal_to_read = 0;
5019 let mut next_offset = offset;
5020 let end_offset = offset + bytes_len;
5021 _next_ordinal_to_read += 1;
5022 if next_offset >= end_offset {
5023 return Ok(());
5024 }
5025
5026 while _next_ordinal_to_read < 1 {
5028 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5029 _next_ordinal_to_read += 1;
5030 next_offset += envelope_size;
5031 }
5032
5033 let next_out_of_line = decoder.next_out_of_line();
5034 let handles_before = decoder.remaining_handles();
5035 if let Some((inlined, num_bytes, num_handles)) =
5036 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5037 {
5038 let member_inline_size = <fidl::encoding::Vector<DynamicsBandState, 64> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5039 if inlined != (member_inline_size <= 4) {
5040 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5041 }
5042 let inner_offset;
5043 let mut inner_depth = depth.clone();
5044 if inlined {
5045 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5046 inner_offset = next_offset;
5047 } else {
5048 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5049 inner_depth.increment()?;
5050 }
5051 let val_ref = self.band_states.get_or_insert_with(
5052 || fidl::new_empty!(fidl::encoding::Vector<DynamicsBandState, 64>, D),
5053 );
5054 fidl::decode!(fidl::encoding::Vector<DynamicsBandState, 64>, D, val_ref, decoder, inner_offset, inner_depth)?;
5055 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5056 {
5057 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5058 }
5059 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5060 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5061 }
5062 }
5063
5064 next_offset += envelope_size;
5065
5066 while next_offset < end_offset {
5068 _next_ordinal_to_read += 1;
5069 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5070 next_offset += envelope_size;
5071 }
5072
5073 Ok(())
5074 }
5075 }
5076
5077 impl Element {
5078 #[inline(always)]
5079 fn max_ordinal_present(&self) -> u64 {
5080 if let Some(_) = self.can_bypass {
5081 return 7;
5082 }
5083 if let Some(_) = self.can_stop {
5084 return 6;
5085 }
5086 if let Some(_) = self.description {
5087 return 5;
5088 }
5089 if let Some(_) = self.can_disable {
5090 return 4;
5091 }
5092 if let Some(_) = self.type_specific {
5093 return 3;
5094 }
5095 if let Some(_) = self.type_ {
5096 return 2;
5097 }
5098 if let Some(_) = self.id {
5099 return 1;
5100 }
5101 0
5102 }
5103 }
5104
5105 impl fidl::encoding::ValueTypeMarker for Element {
5106 type Borrowed<'a> = &'a Self;
5107 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
5108 value
5109 }
5110 }
5111
5112 unsafe impl fidl::encoding::TypeMarker for Element {
5113 type Owned = Self;
5114
5115 #[inline(always)]
5116 fn inline_align(_context: fidl::encoding::Context) -> usize {
5117 8
5118 }
5119
5120 #[inline(always)]
5121 fn inline_size(_context: fidl::encoding::Context) -> usize {
5122 16
5123 }
5124 }
5125
5126 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Element, D> for &Element {
5127 unsafe fn encode(
5128 self,
5129 encoder: &mut fidl::encoding::Encoder<'_, D>,
5130 offset: usize,
5131 mut depth: fidl::encoding::Depth,
5132 ) -> fidl::Result<()> {
5133 encoder.debug_check_bounds::<Element>(offset);
5134 let max_ordinal: u64 = self.max_ordinal_present();
5136 encoder.write_num(max_ordinal, offset);
5137 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
5138 if max_ordinal == 0 {
5140 return Ok(());
5141 }
5142 depth.increment()?;
5143 let envelope_size = 8;
5144 let bytes_len = max_ordinal as usize * envelope_size;
5145 #[allow(unused_variables)]
5146 let offset = encoder.out_of_line_offset(bytes_len);
5147 let mut _prev_end_offset: usize = 0;
5148 if 1 > max_ordinal {
5149 return Ok(());
5150 }
5151
5152 let cur_offset: usize = (1 - 1) * envelope_size;
5155
5156 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5158
5159 fidl::encoding::encode_in_envelope_optional::<u64, D>(
5164 self.id.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
5165 encoder,
5166 offset + cur_offset,
5167 depth,
5168 )?;
5169
5170 _prev_end_offset = cur_offset + envelope_size;
5171 if 2 > max_ordinal {
5172 return Ok(());
5173 }
5174
5175 let cur_offset: usize = (2 - 1) * envelope_size;
5178
5179 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5181
5182 fidl::encoding::encode_in_envelope_optional::<ElementType, D>(
5187 self.type_.as_ref().map(<ElementType as fidl::encoding::ValueTypeMarker>::borrow),
5188 encoder,
5189 offset + cur_offset,
5190 depth,
5191 )?;
5192
5193 _prev_end_offset = cur_offset + envelope_size;
5194 if 3 > max_ordinal {
5195 return Ok(());
5196 }
5197
5198 let cur_offset: usize = (3 - 1) * envelope_size;
5201
5202 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5204
5205 fidl::encoding::encode_in_envelope_optional::<TypeSpecificElement, D>(
5210 self.type_specific
5211 .as_ref()
5212 .map(<TypeSpecificElement as fidl::encoding::ValueTypeMarker>::borrow),
5213 encoder,
5214 offset + cur_offset,
5215 depth,
5216 )?;
5217
5218 _prev_end_offset = cur_offset + envelope_size;
5219 if 4 > max_ordinal {
5220 return Ok(());
5221 }
5222
5223 let cur_offset: usize = (4 - 1) * envelope_size;
5226
5227 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5229
5230 fidl::encoding::encode_in_envelope_optional::<bool, D>(
5235 self.can_disable.as_ref().map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
5236 encoder,
5237 offset + cur_offset,
5238 depth,
5239 )?;
5240
5241 _prev_end_offset = cur_offset + envelope_size;
5242 if 5 > max_ordinal {
5243 return Ok(());
5244 }
5245
5246 let cur_offset: usize = (5 - 1) * envelope_size;
5249
5250 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5252
5253 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<256>, D>(
5258 self.description.as_ref().map(
5259 <fidl::encoding::BoundedString<256> as fidl::encoding::ValueTypeMarker>::borrow,
5260 ),
5261 encoder,
5262 offset + cur_offset,
5263 depth,
5264 )?;
5265
5266 _prev_end_offset = cur_offset + envelope_size;
5267 if 6 > max_ordinal {
5268 return Ok(());
5269 }
5270
5271 let cur_offset: usize = (6 - 1) * envelope_size;
5274
5275 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5277
5278 fidl::encoding::encode_in_envelope_optional::<bool, D>(
5283 self.can_stop.as_ref().map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
5284 encoder,
5285 offset + cur_offset,
5286 depth,
5287 )?;
5288
5289 _prev_end_offset = cur_offset + envelope_size;
5290 if 7 > max_ordinal {
5291 return Ok(());
5292 }
5293
5294 let cur_offset: usize = (7 - 1) * envelope_size;
5297
5298 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5300
5301 fidl::encoding::encode_in_envelope_optional::<bool, D>(
5306 self.can_bypass.as_ref().map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
5307 encoder,
5308 offset + cur_offset,
5309 depth,
5310 )?;
5311
5312 _prev_end_offset = cur_offset + envelope_size;
5313
5314 Ok(())
5315 }
5316 }
5317
5318 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Element {
5319 #[inline(always)]
5320 fn new_empty() -> Self {
5321 Self::default()
5322 }
5323
5324 unsafe fn decode(
5325 &mut self,
5326 decoder: &mut fidl::encoding::Decoder<'_, D>,
5327 offset: usize,
5328 mut depth: fidl::encoding::Depth,
5329 ) -> fidl::Result<()> {
5330 decoder.debug_check_bounds::<Self>(offset);
5331 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
5332 None => return Err(fidl::Error::NotNullable),
5333 Some(len) => len,
5334 };
5335 if len == 0 {
5337 return Ok(());
5338 };
5339 depth.increment()?;
5340 let envelope_size = 8;
5341 let bytes_len = len * envelope_size;
5342 let offset = decoder.out_of_line_offset(bytes_len)?;
5343 let mut _next_ordinal_to_read = 0;
5345 let mut next_offset = offset;
5346 let end_offset = offset + bytes_len;
5347 _next_ordinal_to_read += 1;
5348 if next_offset >= end_offset {
5349 return Ok(());
5350 }
5351
5352 while _next_ordinal_to_read < 1 {
5354 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5355 _next_ordinal_to_read += 1;
5356 next_offset += envelope_size;
5357 }
5358
5359 let next_out_of_line = decoder.next_out_of_line();
5360 let handles_before = decoder.remaining_handles();
5361 if let Some((inlined, num_bytes, num_handles)) =
5362 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5363 {
5364 let member_inline_size =
5365 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5366 if inlined != (member_inline_size <= 4) {
5367 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5368 }
5369 let inner_offset;
5370 let mut inner_depth = depth.clone();
5371 if inlined {
5372 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5373 inner_offset = next_offset;
5374 } else {
5375 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5376 inner_depth.increment()?;
5377 }
5378 let val_ref = self.id.get_or_insert_with(|| fidl::new_empty!(u64, D));
5379 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
5380 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5381 {
5382 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5383 }
5384 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5385 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5386 }
5387 }
5388
5389 next_offset += envelope_size;
5390 _next_ordinal_to_read += 1;
5391 if next_offset >= end_offset {
5392 return Ok(());
5393 }
5394
5395 while _next_ordinal_to_read < 2 {
5397 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5398 _next_ordinal_to_read += 1;
5399 next_offset += envelope_size;
5400 }
5401
5402 let next_out_of_line = decoder.next_out_of_line();
5403 let handles_before = decoder.remaining_handles();
5404 if let Some((inlined, num_bytes, num_handles)) =
5405 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5406 {
5407 let member_inline_size =
5408 <ElementType as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5409 if inlined != (member_inline_size <= 4) {
5410 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5411 }
5412 let inner_offset;
5413 let mut inner_depth = depth.clone();
5414 if inlined {
5415 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5416 inner_offset = next_offset;
5417 } else {
5418 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5419 inner_depth.increment()?;
5420 }
5421 let val_ref = self.type_.get_or_insert_with(|| fidl::new_empty!(ElementType, D));
5422 fidl::decode!(ElementType, D, val_ref, decoder, inner_offset, inner_depth)?;
5423 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5424 {
5425 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5426 }
5427 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5428 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5429 }
5430 }
5431
5432 next_offset += envelope_size;
5433 _next_ordinal_to_read += 1;
5434 if next_offset >= end_offset {
5435 return Ok(());
5436 }
5437
5438 while _next_ordinal_to_read < 3 {
5440 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5441 _next_ordinal_to_read += 1;
5442 next_offset += envelope_size;
5443 }
5444
5445 let next_out_of_line = decoder.next_out_of_line();
5446 let handles_before = decoder.remaining_handles();
5447 if let Some((inlined, num_bytes, num_handles)) =
5448 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5449 {
5450 let member_inline_size =
5451 <TypeSpecificElement as fidl::encoding::TypeMarker>::inline_size(
5452 decoder.context,
5453 );
5454 if inlined != (member_inline_size <= 4) {
5455 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5456 }
5457 let inner_offset;
5458 let mut inner_depth = depth.clone();
5459 if inlined {
5460 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5461 inner_offset = next_offset;
5462 } else {
5463 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5464 inner_depth.increment()?;
5465 }
5466 let val_ref = self
5467 .type_specific
5468 .get_or_insert_with(|| fidl::new_empty!(TypeSpecificElement, D));
5469 fidl::decode!(TypeSpecificElement, D, val_ref, decoder, inner_offset, inner_depth)?;
5470 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5471 {
5472 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5473 }
5474 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5475 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5476 }
5477 }
5478
5479 next_offset += envelope_size;
5480 _next_ordinal_to_read += 1;
5481 if next_offset >= end_offset {
5482 return Ok(());
5483 }
5484
5485 while _next_ordinal_to_read < 4 {
5487 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5488 _next_ordinal_to_read += 1;
5489 next_offset += envelope_size;
5490 }
5491
5492 let next_out_of_line = decoder.next_out_of_line();
5493 let handles_before = decoder.remaining_handles();
5494 if let Some((inlined, num_bytes, num_handles)) =
5495 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5496 {
5497 let member_inline_size =
5498 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5499 if inlined != (member_inline_size <= 4) {
5500 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5501 }
5502 let inner_offset;
5503 let mut inner_depth = depth.clone();
5504 if inlined {
5505 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5506 inner_offset = next_offset;
5507 } else {
5508 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5509 inner_depth.increment()?;
5510 }
5511 let val_ref = self.can_disable.get_or_insert_with(|| fidl::new_empty!(bool, D));
5512 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
5513 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5514 {
5515 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5516 }
5517 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5518 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5519 }
5520 }
5521
5522 next_offset += envelope_size;
5523 _next_ordinal_to_read += 1;
5524 if next_offset >= end_offset {
5525 return Ok(());
5526 }
5527
5528 while _next_ordinal_to_read < 5 {
5530 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5531 _next_ordinal_to_read += 1;
5532 next_offset += envelope_size;
5533 }
5534
5535 let next_out_of_line = decoder.next_out_of_line();
5536 let handles_before = decoder.remaining_handles();
5537 if let Some((inlined, num_bytes, num_handles)) =
5538 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5539 {
5540 let member_inline_size =
5541 <fidl::encoding::BoundedString<256> as fidl::encoding::TypeMarker>::inline_size(
5542 decoder.context,
5543 );
5544 if inlined != (member_inline_size <= 4) {
5545 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5546 }
5547 let inner_offset;
5548 let mut inner_depth = depth.clone();
5549 if inlined {
5550 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5551 inner_offset = next_offset;
5552 } else {
5553 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5554 inner_depth.increment()?;
5555 }
5556 let val_ref = self
5557 .description
5558 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<256>, D));
5559 fidl::decode!(
5560 fidl::encoding::BoundedString<256>,
5561 D,
5562 val_ref,
5563 decoder,
5564 inner_offset,
5565 inner_depth
5566 )?;
5567 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5568 {
5569 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5570 }
5571 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5572 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5573 }
5574 }
5575
5576 next_offset += envelope_size;
5577 _next_ordinal_to_read += 1;
5578 if next_offset >= end_offset {
5579 return Ok(());
5580 }
5581
5582 while _next_ordinal_to_read < 6 {
5584 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5585 _next_ordinal_to_read += 1;
5586 next_offset += envelope_size;
5587 }
5588
5589 let next_out_of_line = decoder.next_out_of_line();
5590 let handles_before = decoder.remaining_handles();
5591 if let Some((inlined, num_bytes, num_handles)) =
5592 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5593 {
5594 let member_inline_size =
5595 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5596 if inlined != (member_inline_size <= 4) {
5597 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5598 }
5599 let inner_offset;
5600 let mut inner_depth = depth.clone();
5601 if inlined {
5602 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5603 inner_offset = next_offset;
5604 } else {
5605 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5606 inner_depth.increment()?;
5607 }
5608 let val_ref = self.can_stop.get_or_insert_with(|| fidl::new_empty!(bool, D));
5609 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
5610 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5611 {
5612 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5613 }
5614 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5615 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5616 }
5617 }
5618
5619 next_offset += envelope_size;
5620 _next_ordinal_to_read += 1;
5621 if next_offset >= end_offset {
5622 return Ok(());
5623 }
5624
5625 while _next_ordinal_to_read < 7 {
5627 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5628 _next_ordinal_to_read += 1;
5629 next_offset += envelope_size;
5630 }
5631
5632 let next_out_of_line = decoder.next_out_of_line();
5633 let handles_before = decoder.remaining_handles();
5634 if let Some((inlined, num_bytes, num_handles)) =
5635 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5636 {
5637 let member_inline_size =
5638 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5639 if inlined != (member_inline_size <= 4) {
5640 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5641 }
5642 let inner_offset;
5643 let mut inner_depth = depth.clone();
5644 if inlined {
5645 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5646 inner_offset = next_offset;
5647 } else {
5648 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5649 inner_depth.increment()?;
5650 }
5651 let val_ref = self.can_bypass.get_or_insert_with(|| fidl::new_empty!(bool, D));
5652 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
5653 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5654 {
5655 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5656 }
5657 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5658 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5659 }
5660 }
5661
5662 next_offset += envelope_size;
5663
5664 while next_offset < end_offset {
5666 _next_ordinal_to_read += 1;
5667 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5668 next_offset += envelope_size;
5669 }
5670
5671 Ok(())
5672 }
5673 }
5674
5675 impl ElementState {
5676 #[inline(always)]
5677 fn max_ordinal_present(&self) -> u64 {
5678 if let Some(_) = self.processing_delay {
5679 return 9;
5680 }
5681 if let Some(_) = self.turn_off_delay {
5682 return 8;
5683 }
5684 if let Some(_) = self.turn_on_delay {
5685 return 7;
5686 }
5687 if let Some(_) = self.bypassed {
5688 return 6;
5689 }
5690 if let Some(_) = self.started {
5691 return 5;
5692 }
5693 if let Some(_) = self.vendor_specific_data {
5694 return 4;
5695 }
5696 if let Some(_) = self.latency {
5697 return 3;
5698 }
5699 if let Some(_) = self.enabled {
5700 return 2;
5701 }
5702 if let Some(_) = self.type_specific {
5703 return 1;
5704 }
5705 0
5706 }
5707 }
5708
5709 impl fidl::encoding::ValueTypeMarker for ElementState {
5710 type Borrowed<'a> = &'a Self;
5711 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
5712 value
5713 }
5714 }
5715
5716 unsafe impl fidl::encoding::TypeMarker for ElementState {
5717 type Owned = Self;
5718
5719 #[inline(always)]
5720 fn inline_align(_context: fidl::encoding::Context) -> usize {
5721 8
5722 }
5723
5724 #[inline(always)]
5725 fn inline_size(_context: fidl::encoding::Context) -> usize {
5726 16
5727 }
5728 }
5729
5730 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<ElementState, D>
5731 for &ElementState
5732 {
5733 unsafe fn encode(
5734 self,
5735 encoder: &mut fidl::encoding::Encoder<'_, D>,
5736 offset: usize,
5737 mut depth: fidl::encoding::Depth,
5738 ) -> fidl::Result<()> {
5739 encoder.debug_check_bounds::<ElementState>(offset);
5740 let max_ordinal: u64 = self.max_ordinal_present();
5742 encoder.write_num(max_ordinal, offset);
5743 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
5744 if max_ordinal == 0 {
5746 return Ok(());
5747 }
5748 depth.increment()?;
5749 let envelope_size = 8;
5750 let bytes_len = max_ordinal as usize * envelope_size;
5751 #[allow(unused_variables)]
5752 let offset = encoder.out_of_line_offset(bytes_len);
5753 let mut _prev_end_offset: usize = 0;
5754 if 1 > max_ordinal {
5755 return Ok(());
5756 }
5757
5758 let cur_offset: usize = (1 - 1) * envelope_size;
5761
5762 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5764
5765 fidl::encoding::encode_in_envelope_optional::<TypeSpecificElementState, D>(
5770 self.type_specific
5771 .as_ref()
5772 .map(<TypeSpecificElementState as fidl::encoding::ValueTypeMarker>::borrow),
5773 encoder,
5774 offset + cur_offset,
5775 depth,
5776 )?;
5777
5778 _prev_end_offset = cur_offset + envelope_size;
5779 if 2 > max_ordinal {
5780 return Ok(());
5781 }
5782
5783 let cur_offset: usize = (2 - 1) * envelope_size;
5786
5787 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5789
5790 fidl::encoding::encode_in_envelope_optional::<bool, D>(
5795 self.enabled.as_ref().map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
5796 encoder,
5797 offset + cur_offset,
5798 depth,
5799 )?;
5800
5801 _prev_end_offset = cur_offset + envelope_size;
5802 if 3 > max_ordinal {
5803 return Ok(());
5804 }
5805
5806 let cur_offset: usize = (3 - 1) * envelope_size;
5809
5810 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5812
5813 fidl::encoding::encode_in_envelope_optional::<Latency, D>(
5818 self.latency.as_ref().map(<Latency as fidl::encoding::ValueTypeMarker>::borrow),
5819 encoder,
5820 offset + cur_offset,
5821 depth,
5822 )?;
5823
5824 _prev_end_offset = cur_offset + envelope_size;
5825 if 4 > max_ordinal {
5826 return Ok(());
5827 }
5828
5829 let cur_offset: usize = (4 - 1) * envelope_size;
5832
5833 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5835
5836 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<u8, 4096>, D>(
5841 self.vendor_specific_data.as_ref().map(
5842 <fidl::encoding::Vector<u8, 4096> as fidl::encoding::ValueTypeMarker>::borrow,
5843 ),
5844 encoder,
5845 offset + cur_offset,
5846 depth,
5847 )?;
5848
5849 _prev_end_offset = cur_offset + envelope_size;
5850 if 5 > max_ordinal {
5851 return Ok(());
5852 }
5853
5854 let cur_offset: usize = (5 - 1) * envelope_size;
5857
5858 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5860
5861 fidl::encoding::encode_in_envelope_optional::<bool, D>(
5866 self.started.as_ref().map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
5867 encoder,
5868 offset + cur_offset,
5869 depth,
5870 )?;
5871
5872 _prev_end_offset = cur_offset + envelope_size;
5873 if 6 > max_ordinal {
5874 return Ok(());
5875 }
5876
5877 let cur_offset: usize = (6 - 1) * envelope_size;
5880
5881 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5883
5884 fidl::encoding::encode_in_envelope_optional::<bool, D>(
5889 self.bypassed.as_ref().map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
5890 encoder,
5891 offset + cur_offset,
5892 depth,
5893 )?;
5894
5895 _prev_end_offset = cur_offset + envelope_size;
5896 if 7 > max_ordinal {
5897 return Ok(());
5898 }
5899
5900 let cur_offset: usize = (7 - 1) * envelope_size;
5903
5904 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5906
5907 fidl::encoding::encode_in_envelope_optional::<i64, D>(
5912 self.turn_on_delay.as_ref().map(<i64 as fidl::encoding::ValueTypeMarker>::borrow),
5913 encoder,
5914 offset + cur_offset,
5915 depth,
5916 )?;
5917
5918 _prev_end_offset = cur_offset + envelope_size;
5919 if 8 > max_ordinal {
5920 return Ok(());
5921 }
5922
5923 let cur_offset: usize = (8 - 1) * envelope_size;
5926
5927 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5929
5930 fidl::encoding::encode_in_envelope_optional::<i64, D>(
5935 self.turn_off_delay.as_ref().map(<i64 as fidl::encoding::ValueTypeMarker>::borrow),
5936 encoder,
5937 offset + cur_offset,
5938 depth,
5939 )?;
5940
5941 _prev_end_offset = cur_offset + envelope_size;
5942 if 9 > max_ordinal {
5943 return Ok(());
5944 }
5945
5946 let cur_offset: usize = (9 - 1) * envelope_size;
5949
5950 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5952
5953 fidl::encoding::encode_in_envelope_optional::<i64, D>(
5958 self.processing_delay
5959 .as_ref()
5960 .map(<i64 as fidl::encoding::ValueTypeMarker>::borrow),
5961 encoder,
5962 offset + cur_offset,
5963 depth,
5964 )?;
5965
5966 _prev_end_offset = cur_offset + envelope_size;
5967
5968 Ok(())
5969 }
5970 }
5971
5972 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ElementState {
5973 #[inline(always)]
5974 fn new_empty() -> Self {
5975 Self::default()
5976 }
5977
5978 unsafe fn decode(
5979 &mut self,
5980 decoder: &mut fidl::encoding::Decoder<'_, D>,
5981 offset: usize,
5982 mut depth: fidl::encoding::Depth,
5983 ) -> fidl::Result<()> {
5984 decoder.debug_check_bounds::<Self>(offset);
5985 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
5986 None => return Err(fidl::Error::NotNullable),
5987 Some(len) => len,
5988 };
5989 if len == 0 {
5991 return Ok(());
5992 };
5993 depth.increment()?;
5994 let envelope_size = 8;
5995 let bytes_len = len * envelope_size;
5996 let offset = decoder.out_of_line_offset(bytes_len)?;
5997 let mut _next_ordinal_to_read = 0;
5999 let mut next_offset = offset;
6000 let end_offset = offset + bytes_len;
6001 _next_ordinal_to_read += 1;
6002 if next_offset >= end_offset {
6003 return Ok(());
6004 }
6005
6006 while _next_ordinal_to_read < 1 {
6008 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6009 _next_ordinal_to_read += 1;
6010 next_offset += envelope_size;
6011 }
6012
6013 let next_out_of_line = decoder.next_out_of_line();
6014 let handles_before = decoder.remaining_handles();
6015 if let Some((inlined, num_bytes, num_handles)) =
6016 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6017 {
6018 let member_inline_size =
6019 <TypeSpecificElementState as fidl::encoding::TypeMarker>::inline_size(
6020 decoder.context,
6021 );
6022 if inlined != (member_inline_size <= 4) {
6023 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6024 }
6025 let inner_offset;
6026 let mut inner_depth = depth.clone();
6027 if inlined {
6028 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6029 inner_offset = next_offset;
6030 } else {
6031 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6032 inner_depth.increment()?;
6033 }
6034 let val_ref = self
6035 .type_specific
6036 .get_or_insert_with(|| fidl::new_empty!(TypeSpecificElementState, D));
6037 fidl::decode!(
6038 TypeSpecificElementState,
6039 D,
6040 val_ref,
6041 decoder,
6042 inner_offset,
6043 inner_depth
6044 )?;
6045 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6046 {
6047 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6048 }
6049 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6050 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6051 }
6052 }
6053
6054 next_offset += envelope_size;
6055 _next_ordinal_to_read += 1;
6056 if next_offset >= end_offset {
6057 return Ok(());
6058 }
6059
6060 while _next_ordinal_to_read < 2 {
6062 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6063 _next_ordinal_to_read += 1;
6064 next_offset += envelope_size;
6065 }
6066
6067 let next_out_of_line = decoder.next_out_of_line();
6068 let handles_before = decoder.remaining_handles();
6069 if let Some((inlined, num_bytes, num_handles)) =
6070 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6071 {
6072 let member_inline_size =
6073 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6074 if inlined != (member_inline_size <= 4) {
6075 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6076 }
6077 let inner_offset;
6078 let mut inner_depth = depth.clone();
6079 if inlined {
6080 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6081 inner_offset = next_offset;
6082 } else {
6083 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6084 inner_depth.increment()?;
6085 }
6086 let val_ref = self.enabled.get_or_insert_with(|| fidl::new_empty!(bool, D));
6087 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
6088 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6089 {
6090 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6091 }
6092 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6093 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6094 }
6095 }
6096
6097 next_offset += envelope_size;
6098 _next_ordinal_to_read += 1;
6099 if next_offset >= end_offset {
6100 return Ok(());
6101 }
6102
6103 while _next_ordinal_to_read < 3 {
6105 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6106 _next_ordinal_to_read += 1;
6107 next_offset += envelope_size;
6108 }
6109
6110 let next_out_of_line = decoder.next_out_of_line();
6111 let handles_before = decoder.remaining_handles();
6112 if let Some((inlined, num_bytes, num_handles)) =
6113 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6114 {
6115 let member_inline_size =
6116 <Latency as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6117 if inlined != (member_inline_size <= 4) {
6118 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6119 }
6120 let inner_offset;
6121 let mut inner_depth = depth.clone();
6122 if inlined {
6123 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6124 inner_offset = next_offset;
6125 } else {
6126 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6127 inner_depth.increment()?;
6128 }
6129 let val_ref = self.latency.get_or_insert_with(|| fidl::new_empty!(Latency, D));
6130 fidl::decode!(Latency, D, val_ref, decoder, inner_offset, inner_depth)?;
6131 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6132 {
6133 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6134 }
6135 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6136 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6137 }
6138 }
6139
6140 next_offset += envelope_size;
6141 _next_ordinal_to_read += 1;
6142 if next_offset >= end_offset {
6143 return Ok(());
6144 }
6145
6146 while _next_ordinal_to_read < 4 {
6148 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6149 _next_ordinal_to_read += 1;
6150 next_offset += envelope_size;
6151 }
6152
6153 let next_out_of_line = decoder.next_out_of_line();
6154 let handles_before = decoder.remaining_handles();
6155 if let Some((inlined, num_bytes, num_handles)) =
6156 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6157 {
6158 let member_inline_size =
6159 <fidl::encoding::Vector<u8, 4096> as fidl::encoding::TypeMarker>::inline_size(
6160 decoder.context,
6161 );
6162 if inlined != (member_inline_size <= 4) {
6163 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6164 }
6165 let inner_offset;
6166 let mut inner_depth = depth.clone();
6167 if inlined {
6168 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6169 inner_offset = next_offset;
6170 } else {
6171 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6172 inner_depth.increment()?;
6173 }
6174 let val_ref = self
6175 .vendor_specific_data
6176 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<u8, 4096>, D));
6177 fidl::decode!(fidl::encoding::Vector<u8, 4096>, D, val_ref, decoder, inner_offset, inner_depth)?;
6178 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6179 {
6180 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6181 }
6182 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6183 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6184 }
6185 }
6186
6187 next_offset += envelope_size;
6188 _next_ordinal_to_read += 1;
6189 if next_offset >= end_offset {
6190 return Ok(());
6191 }
6192
6193 while _next_ordinal_to_read < 5 {
6195 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6196 _next_ordinal_to_read += 1;
6197 next_offset += envelope_size;
6198 }
6199
6200 let next_out_of_line = decoder.next_out_of_line();
6201 let handles_before = decoder.remaining_handles();
6202 if let Some((inlined, num_bytes, num_handles)) =
6203 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6204 {
6205 let member_inline_size =
6206 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6207 if inlined != (member_inline_size <= 4) {
6208 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6209 }
6210 let inner_offset;
6211 let mut inner_depth = depth.clone();
6212 if inlined {
6213 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6214 inner_offset = next_offset;
6215 } else {
6216 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6217 inner_depth.increment()?;
6218 }
6219 let val_ref = self.started.get_or_insert_with(|| fidl::new_empty!(bool, D));
6220 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
6221 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6222 {
6223 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6224 }
6225 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6226 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6227 }
6228 }
6229
6230 next_offset += envelope_size;
6231 _next_ordinal_to_read += 1;
6232 if next_offset >= end_offset {
6233 return Ok(());
6234 }
6235
6236 while _next_ordinal_to_read < 6 {
6238 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6239 _next_ordinal_to_read += 1;
6240 next_offset += envelope_size;
6241 }
6242
6243 let next_out_of_line = decoder.next_out_of_line();
6244 let handles_before = decoder.remaining_handles();
6245 if let Some((inlined, num_bytes, num_handles)) =
6246 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6247 {
6248 let member_inline_size =
6249 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6250 if inlined != (member_inline_size <= 4) {
6251 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6252 }
6253 let inner_offset;
6254 let mut inner_depth = depth.clone();
6255 if inlined {
6256 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6257 inner_offset = next_offset;
6258 } else {
6259 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6260 inner_depth.increment()?;
6261 }
6262 let val_ref = self.bypassed.get_or_insert_with(|| fidl::new_empty!(bool, D));
6263 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
6264 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6265 {
6266 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6267 }
6268 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6269 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6270 }
6271 }
6272
6273 next_offset += envelope_size;
6274 _next_ordinal_to_read += 1;
6275 if next_offset >= end_offset {
6276 return Ok(());
6277 }
6278
6279 while _next_ordinal_to_read < 7 {
6281 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6282 _next_ordinal_to_read += 1;
6283 next_offset += envelope_size;
6284 }
6285
6286 let next_out_of_line = decoder.next_out_of_line();
6287 let handles_before = decoder.remaining_handles();
6288 if let Some((inlined, num_bytes, num_handles)) =
6289 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6290 {
6291 let member_inline_size =
6292 <i64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6293 if inlined != (member_inline_size <= 4) {
6294 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6295 }
6296 let inner_offset;
6297 let mut inner_depth = depth.clone();
6298 if inlined {
6299 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6300 inner_offset = next_offset;
6301 } else {
6302 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6303 inner_depth.increment()?;
6304 }
6305 let val_ref = self.turn_on_delay.get_or_insert_with(|| fidl::new_empty!(i64, D));
6306 fidl::decode!(i64, D, val_ref, decoder, inner_offset, inner_depth)?;
6307 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6308 {
6309 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6310 }
6311 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6312 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6313 }
6314 }
6315
6316 next_offset += envelope_size;
6317 _next_ordinal_to_read += 1;
6318 if next_offset >= end_offset {
6319 return Ok(());
6320 }
6321
6322 while _next_ordinal_to_read < 8 {
6324 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6325 _next_ordinal_to_read += 1;
6326 next_offset += envelope_size;
6327 }
6328
6329 let next_out_of_line = decoder.next_out_of_line();
6330 let handles_before = decoder.remaining_handles();
6331 if let Some((inlined, num_bytes, num_handles)) =
6332 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6333 {
6334 let member_inline_size =
6335 <i64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6336 if inlined != (member_inline_size <= 4) {
6337 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6338 }
6339 let inner_offset;
6340 let mut inner_depth = depth.clone();
6341 if inlined {
6342 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6343 inner_offset = next_offset;
6344 } else {
6345 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6346 inner_depth.increment()?;
6347 }
6348 let val_ref = self.turn_off_delay.get_or_insert_with(|| fidl::new_empty!(i64, D));
6349 fidl::decode!(i64, D, val_ref, decoder, inner_offset, inner_depth)?;
6350 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6351 {
6352 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6353 }
6354 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6355 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6356 }
6357 }
6358
6359 next_offset += envelope_size;
6360 _next_ordinal_to_read += 1;
6361 if next_offset >= end_offset {
6362 return Ok(());
6363 }
6364
6365 while _next_ordinal_to_read < 9 {
6367 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6368 _next_ordinal_to_read += 1;
6369 next_offset += envelope_size;
6370 }
6371
6372 let next_out_of_line = decoder.next_out_of_line();
6373 let handles_before = decoder.remaining_handles();
6374 if let Some((inlined, num_bytes, num_handles)) =
6375 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6376 {
6377 let member_inline_size =
6378 <i64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6379 if inlined != (member_inline_size <= 4) {
6380 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6381 }
6382 let inner_offset;
6383 let mut inner_depth = depth.clone();
6384 if inlined {
6385 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6386 inner_offset = next_offset;
6387 } else {
6388 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6389 inner_depth.increment()?;
6390 }
6391 let val_ref = self.processing_delay.get_or_insert_with(|| fidl::new_empty!(i64, D));
6392 fidl::decode!(i64, D, val_ref, decoder, inner_offset, inner_depth)?;
6393 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6394 {
6395 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6396 }
6397 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6398 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6399 }
6400 }
6401
6402 next_offset += envelope_size;
6403
6404 while next_offset < end_offset {
6406 _next_ordinal_to_read += 1;
6407 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6408 next_offset += envelope_size;
6409 }
6410
6411 Ok(())
6412 }
6413 }
6414
6415 impl Endpoint {
6416 #[inline(always)]
6417 fn max_ordinal_present(&self) -> u64 {
6418 if let Some(_) = self.plug_detect_capabilities {
6419 return 2;
6420 }
6421 if let Some(_) = self.type_ {
6422 return 1;
6423 }
6424 0
6425 }
6426 }
6427
6428 impl fidl::encoding::ValueTypeMarker for Endpoint {
6429 type Borrowed<'a> = &'a Self;
6430 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
6431 value
6432 }
6433 }
6434
6435 unsafe impl fidl::encoding::TypeMarker for Endpoint {
6436 type Owned = Self;
6437
6438 #[inline(always)]
6439 fn inline_align(_context: fidl::encoding::Context) -> usize {
6440 8
6441 }
6442
6443 #[inline(always)]
6444 fn inline_size(_context: fidl::encoding::Context) -> usize {
6445 16
6446 }
6447 }
6448
6449 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Endpoint, D> for &Endpoint {
6450 unsafe fn encode(
6451 self,
6452 encoder: &mut fidl::encoding::Encoder<'_, D>,
6453 offset: usize,
6454 mut depth: fidl::encoding::Depth,
6455 ) -> fidl::Result<()> {
6456 encoder.debug_check_bounds::<Endpoint>(offset);
6457 let max_ordinal: u64 = self.max_ordinal_present();
6459 encoder.write_num(max_ordinal, offset);
6460 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
6461 if max_ordinal == 0 {
6463 return Ok(());
6464 }
6465 depth.increment()?;
6466 let envelope_size = 8;
6467 let bytes_len = max_ordinal as usize * envelope_size;
6468 #[allow(unused_variables)]
6469 let offset = encoder.out_of_line_offset(bytes_len);
6470 let mut _prev_end_offset: usize = 0;
6471 if 1 > max_ordinal {
6472 return Ok(());
6473 }
6474
6475 let cur_offset: usize = (1 - 1) * envelope_size;
6478
6479 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6481
6482 fidl::encoding::encode_in_envelope_optional::<EndpointType, D>(
6487 self.type_.as_ref().map(<EndpointType as fidl::encoding::ValueTypeMarker>::borrow),
6488 encoder,
6489 offset + cur_offset,
6490 depth,
6491 )?;
6492
6493 _prev_end_offset = cur_offset + envelope_size;
6494 if 2 > max_ordinal {
6495 return Ok(());
6496 }
6497
6498 let cur_offset: usize = (2 - 1) * envelope_size;
6501
6502 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6504
6505 fidl::encoding::encode_in_envelope_optional::<PlugDetectCapabilities, D>(
6510 self.plug_detect_capabilities
6511 .as_ref()
6512 .map(<PlugDetectCapabilities as fidl::encoding::ValueTypeMarker>::borrow),
6513 encoder,
6514 offset + cur_offset,
6515 depth,
6516 )?;
6517
6518 _prev_end_offset = cur_offset + envelope_size;
6519
6520 Ok(())
6521 }
6522 }
6523
6524 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Endpoint {
6525 #[inline(always)]
6526 fn new_empty() -> Self {
6527 Self::default()
6528 }
6529
6530 unsafe fn decode(
6531 &mut self,
6532 decoder: &mut fidl::encoding::Decoder<'_, D>,
6533 offset: usize,
6534 mut depth: fidl::encoding::Depth,
6535 ) -> fidl::Result<()> {
6536 decoder.debug_check_bounds::<Self>(offset);
6537 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
6538 None => return Err(fidl::Error::NotNullable),
6539 Some(len) => len,
6540 };
6541 if len == 0 {
6543 return Ok(());
6544 };
6545 depth.increment()?;
6546 let envelope_size = 8;
6547 let bytes_len = len * envelope_size;
6548 let offset = decoder.out_of_line_offset(bytes_len)?;
6549 let mut _next_ordinal_to_read = 0;
6551 let mut next_offset = offset;
6552 let end_offset = offset + bytes_len;
6553 _next_ordinal_to_read += 1;
6554 if next_offset >= end_offset {
6555 return Ok(());
6556 }
6557
6558 while _next_ordinal_to_read < 1 {
6560 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6561 _next_ordinal_to_read += 1;
6562 next_offset += envelope_size;
6563 }
6564
6565 let next_out_of_line = decoder.next_out_of_line();
6566 let handles_before = decoder.remaining_handles();
6567 if let Some((inlined, num_bytes, num_handles)) =
6568 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6569 {
6570 let member_inline_size =
6571 <EndpointType as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6572 if inlined != (member_inline_size <= 4) {
6573 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6574 }
6575 let inner_offset;
6576 let mut inner_depth = depth.clone();
6577 if inlined {
6578 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6579 inner_offset = next_offset;
6580 } else {
6581 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6582 inner_depth.increment()?;
6583 }
6584 let val_ref = self.type_.get_or_insert_with(|| fidl::new_empty!(EndpointType, D));
6585 fidl::decode!(EndpointType, D, val_ref, decoder, inner_offset, inner_depth)?;
6586 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6587 {
6588 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6589 }
6590 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6591 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6592 }
6593 }
6594
6595 next_offset += envelope_size;
6596 _next_ordinal_to_read += 1;
6597 if next_offset >= end_offset {
6598 return Ok(());
6599 }
6600
6601 while _next_ordinal_to_read < 2 {
6603 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6604 _next_ordinal_to_read += 1;
6605 next_offset += envelope_size;
6606 }
6607
6608 let next_out_of_line = decoder.next_out_of_line();
6609 let handles_before = decoder.remaining_handles();
6610 if let Some((inlined, num_bytes, num_handles)) =
6611 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6612 {
6613 let member_inline_size =
6614 <PlugDetectCapabilities as fidl::encoding::TypeMarker>::inline_size(
6615 decoder.context,
6616 );
6617 if inlined != (member_inline_size <= 4) {
6618 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6619 }
6620 let inner_offset;
6621 let mut inner_depth = depth.clone();
6622 if inlined {
6623 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6624 inner_offset = next_offset;
6625 } else {
6626 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6627 inner_depth.increment()?;
6628 }
6629 let val_ref = self
6630 .plug_detect_capabilities
6631 .get_or_insert_with(|| fidl::new_empty!(PlugDetectCapabilities, D));
6632 fidl::decode!(
6633 PlugDetectCapabilities,
6634 D,
6635 val_ref,
6636 decoder,
6637 inner_offset,
6638 inner_depth
6639 )?;
6640 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6641 {
6642 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6643 }
6644 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6645 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6646 }
6647 }
6648
6649 next_offset += envelope_size;
6650
6651 while next_offset < end_offset {
6653 _next_ordinal_to_read += 1;
6654 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6655 next_offset += envelope_size;
6656 }
6657
6658 Ok(())
6659 }
6660 }
6661
6662 impl EndpointElementState {
6663 #[inline(always)]
6664 fn max_ordinal_present(&self) -> u64 {
6665 if let Some(_) = self.plug_state {
6666 return 1;
6667 }
6668 0
6669 }
6670 }
6671
6672 impl fidl::encoding::ValueTypeMarker for EndpointElementState {
6673 type Borrowed<'a> = &'a Self;
6674 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
6675 value
6676 }
6677 }
6678
6679 unsafe impl fidl::encoding::TypeMarker for EndpointElementState {
6680 type Owned = Self;
6681
6682 #[inline(always)]
6683 fn inline_align(_context: fidl::encoding::Context) -> usize {
6684 8
6685 }
6686
6687 #[inline(always)]
6688 fn inline_size(_context: fidl::encoding::Context) -> usize {
6689 16
6690 }
6691 }
6692
6693 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<EndpointElementState, D>
6694 for &EndpointElementState
6695 {
6696 unsafe fn encode(
6697 self,
6698 encoder: &mut fidl::encoding::Encoder<'_, D>,
6699 offset: usize,
6700 mut depth: fidl::encoding::Depth,
6701 ) -> fidl::Result<()> {
6702 encoder.debug_check_bounds::<EndpointElementState>(offset);
6703 let max_ordinal: u64 = self.max_ordinal_present();
6705 encoder.write_num(max_ordinal, offset);
6706 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
6707 if max_ordinal == 0 {
6709 return Ok(());
6710 }
6711 depth.increment()?;
6712 let envelope_size = 8;
6713 let bytes_len = max_ordinal as usize * envelope_size;
6714 #[allow(unused_variables)]
6715 let offset = encoder.out_of_line_offset(bytes_len);
6716 let mut _prev_end_offset: usize = 0;
6717 if 1 > max_ordinal {
6718 return Ok(());
6719 }
6720
6721 let cur_offset: usize = (1 - 1) * envelope_size;
6724
6725 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6727
6728 fidl::encoding::encode_in_envelope_optional::<PlugState, D>(
6733 self.plug_state
6734 .as_ref()
6735 .map(<PlugState as fidl::encoding::ValueTypeMarker>::borrow),
6736 encoder,
6737 offset + cur_offset,
6738 depth,
6739 )?;
6740
6741 _prev_end_offset = cur_offset + envelope_size;
6742
6743 Ok(())
6744 }
6745 }
6746
6747 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for EndpointElementState {
6748 #[inline(always)]
6749 fn new_empty() -> Self {
6750 Self::default()
6751 }
6752
6753 unsafe fn decode(
6754 &mut self,
6755 decoder: &mut fidl::encoding::Decoder<'_, D>,
6756 offset: usize,
6757 mut depth: fidl::encoding::Depth,
6758 ) -> fidl::Result<()> {
6759 decoder.debug_check_bounds::<Self>(offset);
6760 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
6761 None => return Err(fidl::Error::NotNullable),
6762 Some(len) => len,
6763 };
6764 if len == 0 {
6766 return Ok(());
6767 };
6768 depth.increment()?;
6769 let envelope_size = 8;
6770 let bytes_len = len * envelope_size;
6771 let offset = decoder.out_of_line_offset(bytes_len)?;
6772 let mut _next_ordinal_to_read = 0;
6774 let mut next_offset = offset;
6775 let end_offset = offset + bytes_len;
6776 _next_ordinal_to_read += 1;
6777 if next_offset >= end_offset {
6778 return Ok(());
6779 }
6780
6781 while _next_ordinal_to_read < 1 {
6783 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6784 _next_ordinal_to_read += 1;
6785 next_offset += envelope_size;
6786 }
6787
6788 let next_out_of_line = decoder.next_out_of_line();
6789 let handles_before = decoder.remaining_handles();
6790 if let Some((inlined, num_bytes, num_handles)) =
6791 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6792 {
6793 let member_inline_size =
6794 <PlugState as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6795 if inlined != (member_inline_size <= 4) {
6796 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6797 }
6798 let inner_offset;
6799 let mut inner_depth = depth.clone();
6800 if inlined {
6801 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6802 inner_offset = next_offset;
6803 } else {
6804 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6805 inner_depth.increment()?;
6806 }
6807 let val_ref = self.plug_state.get_or_insert_with(|| fidl::new_empty!(PlugState, D));
6808 fidl::decode!(PlugState, D, val_ref, decoder, inner_offset, inner_depth)?;
6809 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6810 {
6811 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6812 }
6813 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6814 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6815 }
6816 }
6817
6818 next_offset += envelope_size;
6819
6820 while next_offset < end_offset {
6822 _next_ordinal_to_read += 1;
6823 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6824 next_offset += envelope_size;
6825 }
6826
6827 Ok(())
6828 }
6829 }
6830
6831 impl Equalizer {
6832 #[inline(always)]
6833 fn max_ordinal_present(&self) -> u64 {
6834 if let Some(_) = self.max_gain_db {
6835 return 8;
6836 }
6837 if let Some(_) = self.min_gain_db {
6838 return 7;
6839 }
6840 if let Some(_) = self.max_q {
6841 return 6;
6842 }
6843 if let Some(_) = self.max_frequency {
6844 return 5;
6845 }
6846 if let Some(_) = self.min_frequency {
6847 return 4;
6848 }
6849 if let Some(_) = self.can_disable_bands {
6850 return 3;
6851 }
6852 if let Some(_) = self.supported_controls {
6853 return 2;
6854 }
6855 if let Some(_) = self.bands {
6856 return 1;
6857 }
6858 0
6859 }
6860 }
6861
6862 impl fidl::encoding::ValueTypeMarker for Equalizer {
6863 type Borrowed<'a> = &'a Self;
6864 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
6865 value
6866 }
6867 }
6868
6869 unsafe impl fidl::encoding::TypeMarker for Equalizer {
6870 type Owned = Self;
6871
6872 #[inline(always)]
6873 fn inline_align(_context: fidl::encoding::Context) -> usize {
6874 8
6875 }
6876
6877 #[inline(always)]
6878 fn inline_size(_context: fidl::encoding::Context) -> usize {
6879 16
6880 }
6881 }
6882
6883 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Equalizer, D>
6884 for &Equalizer
6885 {
6886 unsafe fn encode(
6887 self,
6888 encoder: &mut fidl::encoding::Encoder<'_, D>,
6889 offset: usize,
6890 mut depth: fidl::encoding::Depth,
6891 ) -> fidl::Result<()> {
6892 encoder.debug_check_bounds::<Equalizer>(offset);
6893 let max_ordinal: u64 = self.max_ordinal_present();
6895 encoder.write_num(max_ordinal, offset);
6896 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
6897 if max_ordinal == 0 {
6899 return Ok(());
6900 }
6901 depth.increment()?;
6902 let envelope_size = 8;
6903 let bytes_len = max_ordinal as usize * envelope_size;
6904 #[allow(unused_variables)]
6905 let offset = encoder.out_of_line_offset(bytes_len);
6906 let mut _prev_end_offset: usize = 0;
6907 if 1 > max_ordinal {
6908 return Ok(());
6909 }
6910
6911 let cur_offset: usize = (1 - 1) * envelope_size;
6914
6915 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6917
6918 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<EqualizerBand, 64>, D>(
6923 self.bands.as_ref().map(<fidl::encoding::Vector<EqualizerBand, 64> as fidl::encoding::ValueTypeMarker>::borrow),
6924 encoder, offset + cur_offset, depth
6925 )?;
6926
6927 _prev_end_offset = cur_offset + envelope_size;
6928 if 2 > max_ordinal {
6929 return Ok(());
6930 }
6931
6932 let cur_offset: usize = (2 - 1) * envelope_size;
6935
6936 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6938
6939 fidl::encoding::encode_in_envelope_optional::<EqualizerSupportedControls, D>(
6944 self.supported_controls
6945 .as_ref()
6946 .map(<EqualizerSupportedControls as fidl::encoding::ValueTypeMarker>::borrow),
6947 encoder,
6948 offset + cur_offset,
6949 depth,
6950 )?;
6951
6952 _prev_end_offset = cur_offset + envelope_size;
6953 if 3 > max_ordinal {
6954 return Ok(());
6955 }
6956
6957 let cur_offset: usize = (3 - 1) * envelope_size;
6960
6961 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6963
6964 fidl::encoding::encode_in_envelope_optional::<bool, D>(
6969 self.can_disable_bands
6970 .as_ref()
6971 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
6972 encoder,
6973 offset + cur_offset,
6974 depth,
6975 )?;
6976
6977 _prev_end_offset = cur_offset + envelope_size;
6978 if 4 > max_ordinal {
6979 return Ok(());
6980 }
6981
6982 let cur_offset: usize = (4 - 1) * envelope_size;
6985
6986 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6988
6989 fidl::encoding::encode_in_envelope_optional::<u32, D>(
6994 self.min_frequency.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
6995 encoder,
6996 offset + cur_offset,
6997 depth,
6998 )?;
6999
7000 _prev_end_offset = cur_offset + envelope_size;
7001 if 5 > max_ordinal {
7002 return Ok(());
7003 }
7004
7005 let cur_offset: usize = (5 - 1) * envelope_size;
7008
7009 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7011
7012 fidl::encoding::encode_in_envelope_optional::<u32, D>(
7017 self.max_frequency.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
7018 encoder,
7019 offset + cur_offset,
7020 depth,
7021 )?;
7022
7023 _prev_end_offset = cur_offset + envelope_size;
7024 if 6 > max_ordinal {
7025 return Ok(());
7026 }
7027
7028 let cur_offset: usize = (6 - 1) * envelope_size;
7031
7032 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7034
7035 fidl::encoding::encode_in_envelope_optional::<f32, D>(
7040 self.max_q.as_ref().map(<f32 as fidl::encoding::ValueTypeMarker>::borrow),
7041 encoder,
7042 offset + cur_offset,
7043 depth,
7044 )?;
7045
7046 _prev_end_offset = cur_offset + envelope_size;
7047 if 7 > max_ordinal {
7048 return Ok(());
7049 }
7050
7051 let cur_offset: usize = (7 - 1) * envelope_size;
7054
7055 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7057
7058 fidl::encoding::encode_in_envelope_optional::<f32, D>(
7063 self.min_gain_db.as_ref().map(<f32 as fidl::encoding::ValueTypeMarker>::borrow),
7064 encoder,
7065 offset + cur_offset,
7066 depth,
7067 )?;
7068
7069 _prev_end_offset = cur_offset + envelope_size;
7070 if 8 > max_ordinal {
7071 return Ok(());
7072 }
7073
7074 let cur_offset: usize = (8 - 1) * envelope_size;
7077
7078 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7080
7081 fidl::encoding::encode_in_envelope_optional::<f32, D>(
7086 self.max_gain_db.as_ref().map(<f32 as fidl::encoding::ValueTypeMarker>::borrow),
7087 encoder,
7088 offset + cur_offset,
7089 depth,
7090 )?;
7091
7092 _prev_end_offset = cur_offset + envelope_size;
7093
7094 Ok(())
7095 }
7096 }
7097
7098 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Equalizer {
7099 #[inline(always)]
7100 fn new_empty() -> Self {
7101 Self::default()
7102 }
7103
7104 unsafe fn decode(
7105 &mut self,
7106 decoder: &mut fidl::encoding::Decoder<'_, D>,
7107 offset: usize,
7108 mut depth: fidl::encoding::Depth,
7109 ) -> fidl::Result<()> {
7110 decoder.debug_check_bounds::<Self>(offset);
7111 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
7112 None => return Err(fidl::Error::NotNullable),
7113 Some(len) => len,
7114 };
7115 if len == 0 {
7117 return Ok(());
7118 };
7119 depth.increment()?;
7120 let envelope_size = 8;
7121 let bytes_len = len * envelope_size;
7122 let offset = decoder.out_of_line_offset(bytes_len)?;
7123 let mut _next_ordinal_to_read = 0;
7125 let mut next_offset = offset;
7126 let end_offset = offset + bytes_len;
7127 _next_ordinal_to_read += 1;
7128 if next_offset >= end_offset {
7129 return Ok(());
7130 }
7131
7132 while _next_ordinal_to_read < 1 {
7134 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7135 _next_ordinal_to_read += 1;
7136 next_offset += envelope_size;
7137 }
7138
7139 let next_out_of_line = decoder.next_out_of_line();
7140 let handles_before = decoder.remaining_handles();
7141 if let Some((inlined, num_bytes, num_handles)) =
7142 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7143 {
7144 let member_inline_size = <fidl::encoding::Vector<EqualizerBand, 64> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7145 if inlined != (member_inline_size <= 4) {
7146 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7147 }
7148 let inner_offset;
7149 let mut inner_depth = depth.clone();
7150 if inlined {
7151 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7152 inner_offset = next_offset;
7153 } else {
7154 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7155 inner_depth.increment()?;
7156 }
7157 let val_ref = self.bands.get_or_insert_with(
7158 || fidl::new_empty!(fidl::encoding::Vector<EqualizerBand, 64>, D),
7159 );
7160 fidl::decode!(fidl::encoding::Vector<EqualizerBand, 64>, D, val_ref, decoder, inner_offset, inner_depth)?;
7161 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7162 {
7163 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7164 }
7165 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7166 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7167 }
7168 }
7169
7170 next_offset += envelope_size;
7171 _next_ordinal_to_read += 1;
7172 if next_offset >= end_offset {
7173 return Ok(());
7174 }
7175
7176 while _next_ordinal_to_read < 2 {
7178 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7179 _next_ordinal_to_read += 1;
7180 next_offset += envelope_size;
7181 }
7182
7183 let next_out_of_line = decoder.next_out_of_line();
7184 let handles_before = decoder.remaining_handles();
7185 if let Some((inlined, num_bytes, num_handles)) =
7186 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7187 {
7188 let member_inline_size =
7189 <EqualizerSupportedControls as fidl::encoding::TypeMarker>::inline_size(
7190 decoder.context,
7191 );
7192 if inlined != (member_inline_size <= 4) {
7193 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7194 }
7195 let inner_offset;
7196 let mut inner_depth = depth.clone();
7197 if inlined {
7198 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7199 inner_offset = next_offset;
7200 } else {
7201 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7202 inner_depth.increment()?;
7203 }
7204 let val_ref = self
7205 .supported_controls
7206 .get_or_insert_with(|| fidl::new_empty!(EqualizerSupportedControls, D));
7207 fidl::decode!(
7208 EqualizerSupportedControls,
7209 D,
7210 val_ref,
7211 decoder,
7212 inner_offset,
7213 inner_depth
7214 )?;
7215 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7216 {
7217 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7218 }
7219 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7220 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7221 }
7222 }
7223
7224 next_offset += envelope_size;
7225 _next_ordinal_to_read += 1;
7226 if next_offset >= end_offset {
7227 return Ok(());
7228 }
7229
7230 while _next_ordinal_to_read < 3 {
7232 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7233 _next_ordinal_to_read += 1;
7234 next_offset += envelope_size;
7235 }
7236
7237 let next_out_of_line = decoder.next_out_of_line();
7238 let handles_before = decoder.remaining_handles();
7239 if let Some((inlined, num_bytes, num_handles)) =
7240 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7241 {
7242 let member_inline_size =
7243 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7244 if inlined != (member_inline_size <= 4) {
7245 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7246 }
7247 let inner_offset;
7248 let mut inner_depth = depth.clone();
7249 if inlined {
7250 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7251 inner_offset = next_offset;
7252 } else {
7253 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7254 inner_depth.increment()?;
7255 }
7256 let val_ref =
7257 self.can_disable_bands.get_or_insert_with(|| fidl::new_empty!(bool, D));
7258 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
7259 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7260 {
7261 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7262 }
7263 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7264 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7265 }
7266 }
7267
7268 next_offset += envelope_size;
7269 _next_ordinal_to_read += 1;
7270 if next_offset >= end_offset {
7271 return Ok(());
7272 }
7273
7274 while _next_ordinal_to_read < 4 {
7276 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7277 _next_ordinal_to_read += 1;
7278 next_offset += envelope_size;
7279 }
7280
7281 let next_out_of_line = decoder.next_out_of_line();
7282 let handles_before = decoder.remaining_handles();
7283 if let Some((inlined, num_bytes, num_handles)) =
7284 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7285 {
7286 let member_inline_size =
7287 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7288 if inlined != (member_inline_size <= 4) {
7289 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7290 }
7291 let inner_offset;
7292 let mut inner_depth = depth.clone();
7293 if inlined {
7294 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7295 inner_offset = next_offset;
7296 } else {
7297 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7298 inner_depth.increment()?;
7299 }
7300 let val_ref = self.min_frequency.get_or_insert_with(|| fidl::new_empty!(u32, D));
7301 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
7302 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7303 {
7304 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7305 }
7306 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7307 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7308 }
7309 }
7310
7311 next_offset += envelope_size;
7312 _next_ordinal_to_read += 1;
7313 if next_offset >= end_offset {
7314 return Ok(());
7315 }
7316
7317 while _next_ordinal_to_read < 5 {
7319 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7320 _next_ordinal_to_read += 1;
7321 next_offset += envelope_size;
7322 }
7323
7324 let next_out_of_line = decoder.next_out_of_line();
7325 let handles_before = decoder.remaining_handles();
7326 if let Some((inlined, num_bytes, num_handles)) =
7327 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7328 {
7329 let member_inline_size =
7330 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7331 if inlined != (member_inline_size <= 4) {
7332 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7333 }
7334 let inner_offset;
7335 let mut inner_depth = depth.clone();
7336 if inlined {
7337 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7338 inner_offset = next_offset;
7339 } else {
7340 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7341 inner_depth.increment()?;
7342 }
7343 let val_ref = self.max_frequency.get_or_insert_with(|| fidl::new_empty!(u32, D));
7344 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
7345 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7346 {
7347 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7348 }
7349 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7350 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7351 }
7352 }
7353
7354 next_offset += envelope_size;
7355 _next_ordinal_to_read += 1;
7356 if next_offset >= end_offset {
7357 return Ok(());
7358 }
7359
7360 while _next_ordinal_to_read < 6 {
7362 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7363 _next_ordinal_to_read += 1;
7364 next_offset += envelope_size;
7365 }
7366
7367 let next_out_of_line = decoder.next_out_of_line();
7368 let handles_before = decoder.remaining_handles();
7369 if let Some((inlined, num_bytes, num_handles)) =
7370 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7371 {
7372 let member_inline_size =
7373 <f32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7374 if inlined != (member_inline_size <= 4) {
7375 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7376 }
7377 let inner_offset;
7378 let mut inner_depth = depth.clone();
7379 if inlined {
7380 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7381 inner_offset = next_offset;
7382 } else {
7383 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7384 inner_depth.increment()?;
7385 }
7386 let val_ref = self.max_q.get_or_insert_with(|| fidl::new_empty!(f32, D));
7387 fidl::decode!(f32, D, val_ref, decoder, inner_offset, inner_depth)?;
7388 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7389 {
7390 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7391 }
7392 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7393 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7394 }
7395 }
7396
7397 next_offset += envelope_size;
7398 _next_ordinal_to_read += 1;
7399 if next_offset >= end_offset {
7400 return Ok(());
7401 }
7402
7403 while _next_ordinal_to_read < 7 {
7405 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7406 _next_ordinal_to_read += 1;
7407 next_offset += envelope_size;
7408 }
7409
7410 let next_out_of_line = decoder.next_out_of_line();
7411 let handles_before = decoder.remaining_handles();
7412 if let Some((inlined, num_bytes, num_handles)) =
7413 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7414 {
7415 let member_inline_size =
7416 <f32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7417 if inlined != (member_inline_size <= 4) {
7418 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7419 }
7420 let inner_offset;
7421 let mut inner_depth = depth.clone();
7422 if inlined {
7423 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7424 inner_offset = next_offset;
7425 } else {
7426 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7427 inner_depth.increment()?;
7428 }
7429 let val_ref = self.min_gain_db.get_or_insert_with(|| fidl::new_empty!(f32, D));
7430 fidl::decode!(f32, D, val_ref, decoder, inner_offset, inner_depth)?;
7431 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7432 {
7433 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7434 }
7435 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7436 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7437 }
7438 }
7439
7440 next_offset += envelope_size;
7441 _next_ordinal_to_read += 1;
7442 if next_offset >= end_offset {
7443 return Ok(());
7444 }
7445
7446 while _next_ordinal_to_read < 8 {
7448 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7449 _next_ordinal_to_read += 1;
7450 next_offset += envelope_size;
7451 }
7452
7453 let next_out_of_line = decoder.next_out_of_line();
7454 let handles_before = decoder.remaining_handles();
7455 if let Some((inlined, num_bytes, num_handles)) =
7456 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7457 {
7458 let member_inline_size =
7459 <f32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7460 if inlined != (member_inline_size <= 4) {
7461 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7462 }
7463 let inner_offset;
7464 let mut inner_depth = depth.clone();
7465 if inlined {
7466 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7467 inner_offset = next_offset;
7468 } else {
7469 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7470 inner_depth.increment()?;
7471 }
7472 let val_ref = self.max_gain_db.get_or_insert_with(|| fidl::new_empty!(f32, D));
7473 fidl::decode!(f32, D, val_ref, decoder, inner_offset, inner_depth)?;
7474 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7475 {
7476 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7477 }
7478 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7479 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7480 }
7481 }
7482
7483 next_offset += envelope_size;
7484
7485 while next_offset < end_offset {
7487 _next_ordinal_to_read += 1;
7488 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7489 next_offset += envelope_size;
7490 }
7491
7492 Ok(())
7493 }
7494 }
7495
7496 impl EqualizerBand {
7497 #[inline(always)]
7498 fn max_ordinal_present(&self) -> u64 {
7499 if let Some(_) = self.id {
7500 return 1;
7501 }
7502 0
7503 }
7504 }
7505
7506 impl fidl::encoding::ValueTypeMarker for EqualizerBand {
7507 type Borrowed<'a> = &'a Self;
7508 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
7509 value
7510 }
7511 }
7512
7513 unsafe impl fidl::encoding::TypeMarker for EqualizerBand {
7514 type Owned = Self;
7515
7516 #[inline(always)]
7517 fn inline_align(_context: fidl::encoding::Context) -> usize {
7518 8
7519 }
7520
7521 #[inline(always)]
7522 fn inline_size(_context: fidl::encoding::Context) -> usize {
7523 16
7524 }
7525 }
7526
7527 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<EqualizerBand, D>
7528 for &EqualizerBand
7529 {
7530 unsafe fn encode(
7531 self,
7532 encoder: &mut fidl::encoding::Encoder<'_, D>,
7533 offset: usize,
7534 mut depth: fidl::encoding::Depth,
7535 ) -> fidl::Result<()> {
7536 encoder.debug_check_bounds::<EqualizerBand>(offset);
7537 let max_ordinal: u64 = self.max_ordinal_present();
7539 encoder.write_num(max_ordinal, offset);
7540 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
7541 if max_ordinal == 0 {
7543 return Ok(());
7544 }
7545 depth.increment()?;
7546 let envelope_size = 8;
7547 let bytes_len = max_ordinal as usize * envelope_size;
7548 #[allow(unused_variables)]
7549 let offset = encoder.out_of_line_offset(bytes_len);
7550 let mut _prev_end_offset: usize = 0;
7551 if 1 > max_ordinal {
7552 return Ok(());
7553 }
7554
7555 let cur_offset: usize = (1 - 1) * envelope_size;
7558
7559 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7561
7562 fidl::encoding::encode_in_envelope_optional::<u64, D>(
7567 self.id.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
7568 encoder,
7569 offset + cur_offset,
7570 depth,
7571 )?;
7572
7573 _prev_end_offset = cur_offset + envelope_size;
7574
7575 Ok(())
7576 }
7577 }
7578
7579 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for EqualizerBand {
7580 #[inline(always)]
7581 fn new_empty() -> Self {
7582 Self::default()
7583 }
7584
7585 unsafe fn decode(
7586 &mut self,
7587 decoder: &mut fidl::encoding::Decoder<'_, D>,
7588 offset: usize,
7589 mut depth: fidl::encoding::Depth,
7590 ) -> fidl::Result<()> {
7591 decoder.debug_check_bounds::<Self>(offset);
7592 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
7593 None => return Err(fidl::Error::NotNullable),
7594 Some(len) => len,
7595 };
7596 if len == 0 {
7598 return Ok(());
7599 };
7600 depth.increment()?;
7601 let envelope_size = 8;
7602 let bytes_len = len * envelope_size;
7603 let offset = decoder.out_of_line_offset(bytes_len)?;
7604 let mut _next_ordinal_to_read = 0;
7606 let mut next_offset = offset;
7607 let end_offset = offset + bytes_len;
7608 _next_ordinal_to_read += 1;
7609 if next_offset >= end_offset {
7610 return Ok(());
7611 }
7612
7613 while _next_ordinal_to_read < 1 {
7615 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7616 _next_ordinal_to_read += 1;
7617 next_offset += envelope_size;
7618 }
7619
7620 let next_out_of_line = decoder.next_out_of_line();
7621 let handles_before = decoder.remaining_handles();
7622 if let Some((inlined, num_bytes, num_handles)) =
7623 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7624 {
7625 let member_inline_size =
7626 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7627 if inlined != (member_inline_size <= 4) {
7628 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7629 }
7630 let inner_offset;
7631 let mut inner_depth = depth.clone();
7632 if inlined {
7633 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7634 inner_offset = next_offset;
7635 } else {
7636 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7637 inner_depth.increment()?;
7638 }
7639 let val_ref = self.id.get_or_insert_with(|| fidl::new_empty!(u64, D));
7640 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
7641 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7642 {
7643 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7644 }
7645 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7646 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7647 }
7648 }
7649
7650 next_offset += envelope_size;
7651
7652 while next_offset < end_offset {
7654 _next_ordinal_to_read += 1;
7655 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7656 next_offset += envelope_size;
7657 }
7658
7659 Ok(())
7660 }
7661 }
7662
7663 impl EqualizerBandState {
7664 #[inline(always)]
7665 fn max_ordinal_present(&self) -> u64 {
7666 if let Some(_) = self.enabled {
7667 return 6;
7668 }
7669 if let Some(_) = self.gain_db {
7670 return 5;
7671 }
7672 if let Some(_) = self.q {
7673 return 4;
7674 }
7675 if let Some(_) = self.frequency {
7676 return 3;
7677 }
7678 if let Some(_) = self.type_ {
7679 return 2;
7680 }
7681 if let Some(_) = self.id {
7682 return 1;
7683 }
7684 0
7685 }
7686 }
7687
7688 impl fidl::encoding::ValueTypeMarker for EqualizerBandState {
7689 type Borrowed<'a> = &'a Self;
7690 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
7691 value
7692 }
7693 }
7694
7695 unsafe impl fidl::encoding::TypeMarker for EqualizerBandState {
7696 type Owned = Self;
7697
7698 #[inline(always)]
7699 fn inline_align(_context: fidl::encoding::Context) -> usize {
7700 8
7701 }
7702
7703 #[inline(always)]
7704 fn inline_size(_context: fidl::encoding::Context) -> usize {
7705 16
7706 }
7707 }
7708
7709 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<EqualizerBandState, D>
7710 for &EqualizerBandState
7711 {
7712 unsafe fn encode(
7713 self,
7714 encoder: &mut fidl::encoding::Encoder<'_, D>,
7715 offset: usize,
7716 mut depth: fidl::encoding::Depth,
7717 ) -> fidl::Result<()> {
7718 encoder.debug_check_bounds::<EqualizerBandState>(offset);
7719 let max_ordinal: u64 = self.max_ordinal_present();
7721 encoder.write_num(max_ordinal, offset);
7722 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
7723 if max_ordinal == 0 {
7725 return Ok(());
7726 }
7727 depth.increment()?;
7728 let envelope_size = 8;
7729 let bytes_len = max_ordinal as usize * envelope_size;
7730 #[allow(unused_variables)]
7731 let offset = encoder.out_of_line_offset(bytes_len);
7732 let mut _prev_end_offset: usize = 0;
7733 if 1 > max_ordinal {
7734 return Ok(());
7735 }
7736
7737 let cur_offset: usize = (1 - 1) * envelope_size;
7740
7741 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7743
7744 fidl::encoding::encode_in_envelope_optional::<u64, D>(
7749 self.id.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
7750 encoder,
7751 offset + cur_offset,
7752 depth,
7753 )?;
7754
7755 _prev_end_offset = cur_offset + envelope_size;
7756 if 2 > max_ordinal {
7757 return Ok(());
7758 }
7759
7760 let cur_offset: usize = (2 - 1) * envelope_size;
7763
7764 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7766
7767 fidl::encoding::encode_in_envelope_optional::<EqualizerBandType, D>(
7772 self.type_
7773 .as_ref()
7774 .map(<EqualizerBandType as fidl::encoding::ValueTypeMarker>::borrow),
7775 encoder,
7776 offset + cur_offset,
7777 depth,
7778 )?;
7779
7780 _prev_end_offset = cur_offset + envelope_size;
7781 if 3 > max_ordinal {
7782 return Ok(());
7783 }
7784
7785 let cur_offset: usize = (3 - 1) * envelope_size;
7788
7789 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7791
7792 fidl::encoding::encode_in_envelope_optional::<u32, D>(
7797 self.frequency.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
7798 encoder,
7799 offset + cur_offset,
7800 depth,
7801 )?;
7802
7803 _prev_end_offset = cur_offset + envelope_size;
7804 if 4 > max_ordinal {
7805 return Ok(());
7806 }
7807
7808 let cur_offset: usize = (4 - 1) * envelope_size;
7811
7812 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7814
7815 fidl::encoding::encode_in_envelope_optional::<f32, D>(
7820 self.q.as_ref().map(<f32 as fidl::encoding::ValueTypeMarker>::borrow),
7821 encoder,
7822 offset + cur_offset,
7823 depth,
7824 )?;
7825
7826 _prev_end_offset = cur_offset + envelope_size;
7827 if 5 > max_ordinal {
7828 return Ok(());
7829 }
7830
7831 let cur_offset: usize = (5 - 1) * envelope_size;
7834
7835 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7837
7838 fidl::encoding::encode_in_envelope_optional::<f32, D>(
7843 self.gain_db.as_ref().map(<f32 as fidl::encoding::ValueTypeMarker>::borrow),
7844 encoder,
7845 offset + cur_offset,
7846 depth,
7847 )?;
7848
7849 _prev_end_offset = cur_offset + envelope_size;
7850 if 6 > max_ordinal {
7851 return Ok(());
7852 }
7853
7854 let cur_offset: usize = (6 - 1) * envelope_size;
7857
7858 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7860
7861 fidl::encoding::encode_in_envelope_optional::<bool, D>(
7866 self.enabled.as_ref().map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
7867 encoder,
7868 offset + cur_offset,
7869 depth,
7870 )?;
7871
7872 _prev_end_offset = cur_offset + envelope_size;
7873
7874 Ok(())
7875 }
7876 }
7877
7878 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for EqualizerBandState {
7879 #[inline(always)]
7880 fn new_empty() -> Self {
7881 Self::default()
7882 }
7883
7884 unsafe fn decode(
7885 &mut self,
7886 decoder: &mut fidl::encoding::Decoder<'_, D>,
7887 offset: usize,
7888 mut depth: fidl::encoding::Depth,
7889 ) -> fidl::Result<()> {
7890 decoder.debug_check_bounds::<Self>(offset);
7891 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
7892 None => return Err(fidl::Error::NotNullable),
7893 Some(len) => len,
7894 };
7895 if len == 0 {
7897 return Ok(());
7898 };
7899 depth.increment()?;
7900 let envelope_size = 8;
7901 let bytes_len = len * envelope_size;
7902 let offset = decoder.out_of_line_offset(bytes_len)?;
7903 let mut _next_ordinal_to_read = 0;
7905 let mut next_offset = offset;
7906 let end_offset = offset + bytes_len;
7907 _next_ordinal_to_read += 1;
7908 if next_offset >= end_offset {
7909 return Ok(());
7910 }
7911
7912 while _next_ordinal_to_read < 1 {
7914 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7915 _next_ordinal_to_read += 1;
7916 next_offset += envelope_size;
7917 }
7918
7919 let next_out_of_line = decoder.next_out_of_line();
7920 let handles_before = decoder.remaining_handles();
7921 if let Some((inlined, num_bytes, num_handles)) =
7922 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7923 {
7924 let member_inline_size =
7925 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7926 if inlined != (member_inline_size <= 4) {
7927 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7928 }
7929 let inner_offset;
7930 let mut inner_depth = depth.clone();
7931 if inlined {
7932 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7933 inner_offset = next_offset;
7934 } else {
7935 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7936 inner_depth.increment()?;
7937 }
7938 let val_ref = self.id.get_or_insert_with(|| fidl::new_empty!(u64, D));
7939 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
7940 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7941 {
7942 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7943 }
7944 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7945 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7946 }
7947 }
7948
7949 next_offset += envelope_size;
7950 _next_ordinal_to_read += 1;
7951 if next_offset >= end_offset {
7952 return Ok(());
7953 }
7954
7955 while _next_ordinal_to_read < 2 {
7957 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7958 _next_ordinal_to_read += 1;
7959 next_offset += envelope_size;
7960 }
7961
7962 let next_out_of_line = decoder.next_out_of_line();
7963 let handles_before = decoder.remaining_handles();
7964 if let Some((inlined, num_bytes, num_handles)) =
7965 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7966 {
7967 let member_inline_size =
7968 <EqualizerBandType as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7969 if inlined != (member_inline_size <= 4) {
7970 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7971 }
7972 let inner_offset;
7973 let mut inner_depth = depth.clone();
7974 if inlined {
7975 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7976 inner_offset = next_offset;
7977 } else {
7978 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7979 inner_depth.increment()?;
7980 }
7981 let val_ref =
7982 self.type_.get_or_insert_with(|| fidl::new_empty!(EqualizerBandType, D));
7983 fidl::decode!(EqualizerBandType, D, val_ref, decoder, inner_offset, inner_depth)?;
7984 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7985 {
7986 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7987 }
7988 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7989 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7990 }
7991 }
7992
7993 next_offset += envelope_size;
7994 _next_ordinal_to_read += 1;
7995 if next_offset >= end_offset {
7996 return Ok(());
7997 }
7998
7999 while _next_ordinal_to_read < 3 {
8001 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8002 _next_ordinal_to_read += 1;
8003 next_offset += envelope_size;
8004 }
8005
8006 let next_out_of_line = decoder.next_out_of_line();
8007 let handles_before = decoder.remaining_handles();
8008 if let Some((inlined, num_bytes, num_handles)) =
8009 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8010 {
8011 let member_inline_size =
8012 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8013 if inlined != (member_inline_size <= 4) {
8014 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8015 }
8016 let inner_offset;
8017 let mut inner_depth = depth.clone();
8018 if inlined {
8019 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8020 inner_offset = next_offset;
8021 } else {
8022 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8023 inner_depth.increment()?;
8024 }
8025 let val_ref = self.frequency.get_or_insert_with(|| fidl::new_empty!(u32, D));
8026 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
8027 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8028 {
8029 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8030 }
8031 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8032 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8033 }
8034 }
8035
8036 next_offset += envelope_size;
8037 _next_ordinal_to_read += 1;
8038 if next_offset >= end_offset {
8039 return Ok(());
8040 }
8041
8042 while _next_ordinal_to_read < 4 {
8044 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8045 _next_ordinal_to_read += 1;
8046 next_offset += envelope_size;
8047 }
8048
8049 let next_out_of_line = decoder.next_out_of_line();
8050 let handles_before = decoder.remaining_handles();
8051 if let Some((inlined, num_bytes, num_handles)) =
8052 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8053 {
8054 let member_inline_size =
8055 <f32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8056 if inlined != (member_inline_size <= 4) {
8057 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8058 }
8059 let inner_offset;
8060 let mut inner_depth = depth.clone();
8061 if inlined {
8062 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8063 inner_offset = next_offset;
8064 } else {
8065 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8066 inner_depth.increment()?;
8067 }
8068 let val_ref = self.q.get_or_insert_with(|| fidl::new_empty!(f32, D));
8069 fidl::decode!(f32, D, val_ref, decoder, inner_offset, inner_depth)?;
8070 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8071 {
8072 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8073 }
8074 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8075 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8076 }
8077 }
8078
8079 next_offset += envelope_size;
8080 _next_ordinal_to_read += 1;
8081 if next_offset >= end_offset {
8082 return Ok(());
8083 }
8084
8085 while _next_ordinal_to_read < 5 {
8087 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8088 _next_ordinal_to_read += 1;
8089 next_offset += envelope_size;
8090 }
8091
8092 let next_out_of_line = decoder.next_out_of_line();
8093 let handles_before = decoder.remaining_handles();
8094 if let Some((inlined, num_bytes, num_handles)) =
8095 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8096 {
8097 let member_inline_size =
8098 <f32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8099 if inlined != (member_inline_size <= 4) {
8100 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8101 }
8102 let inner_offset;
8103 let mut inner_depth = depth.clone();
8104 if inlined {
8105 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8106 inner_offset = next_offset;
8107 } else {
8108 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8109 inner_depth.increment()?;
8110 }
8111 let val_ref = self.gain_db.get_or_insert_with(|| fidl::new_empty!(f32, D));
8112 fidl::decode!(f32, D, val_ref, decoder, inner_offset, inner_depth)?;
8113 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8114 {
8115 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8116 }
8117 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8118 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8119 }
8120 }
8121
8122 next_offset += envelope_size;
8123 _next_ordinal_to_read += 1;
8124 if next_offset >= end_offset {
8125 return Ok(());
8126 }
8127
8128 while _next_ordinal_to_read < 6 {
8130 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8131 _next_ordinal_to_read += 1;
8132 next_offset += envelope_size;
8133 }
8134
8135 let next_out_of_line = decoder.next_out_of_line();
8136 let handles_before = decoder.remaining_handles();
8137 if let Some((inlined, num_bytes, num_handles)) =
8138 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8139 {
8140 let member_inline_size =
8141 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8142 if inlined != (member_inline_size <= 4) {
8143 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8144 }
8145 let inner_offset;
8146 let mut inner_depth = depth.clone();
8147 if inlined {
8148 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8149 inner_offset = next_offset;
8150 } else {
8151 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8152 inner_depth.increment()?;
8153 }
8154 let val_ref = self.enabled.get_or_insert_with(|| fidl::new_empty!(bool, D));
8155 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
8156 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8157 {
8158 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8159 }
8160 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8161 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8162 }
8163 }
8164
8165 next_offset += envelope_size;
8166
8167 while next_offset < end_offset {
8169 _next_ordinal_to_read += 1;
8170 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8171 next_offset += envelope_size;
8172 }
8173
8174 Ok(())
8175 }
8176 }
8177
8178 impl EqualizerElementState {
8179 #[inline(always)]
8180 fn max_ordinal_present(&self) -> u64 {
8181 if let Some(_) = self.band_states {
8182 return 2;
8183 }
8184 if let Some(_) = self.bands_state {
8185 return 1;
8186 }
8187 0
8188 }
8189 }
8190
8191 impl fidl::encoding::ValueTypeMarker for EqualizerElementState {
8192 type Borrowed<'a> = &'a Self;
8193 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
8194 value
8195 }
8196 }
8197
8198 unsafe impl fidl::encoding::TypeMarker for EqualizerElementState {
8199 type Owned = Self;
8200
8201 #[inline(always)]
8202 fn inline_align(_context: fidl::encoding::Context) -> usize {
8203 8
8204 }
8205
8206 #[inline(always)]
8207 fn inline_size(_context: fidl::encoding::Context) -> usize {
8208 16
8209 }
8210 }
8211
8212 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<EqualizerElementState, D>
8213 for &EqualizerElementState
8214 {
8215 unsafe fn encode(
8216 self,
8217 encoder: &mut fidl::encoding::Encoder<'_, D>,
8218 offset: usize,
8219 mut depth: fidl::encoding::Depth,
8220 ) -> fidl::Result<()> {
8221 encoder.debug_check_bounds::<EqualizerElementState>(offset);
8222 let max_ordinal: u64 = self.max_ordinal_present();
8224 encoder.write_num(max_ordinal, offset);
8225 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
8226 if max_ordinal == 0 {
8228 return Ok(());
8229 }
8230 depth.increment()?;
8231 let envelope_size = 8;
8232 let bytes_len = max_ordinal as usize * envelope_size;
8233 #[allow(unused_variables)]
8234 let offset = encoder.out_of_line_offset(bytes_len);
8235 let mut _prev_end_offset: usize = 0;
8236 if 1 > max_ordinal {
8237 return Ok(());
8238 }
8239
8240 let cur_offset: usize = (1 - 1) * envelope_size;
8243
8244 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8246
8247 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<EqualizerBandState, 64>, D>(
8252 self.bands_state.as_ref().map(<fidl::encoding::Vector<EqualizerBandState, 64> as fidl::encoding::ValueTypeMarker>::borrow),
8253 encoder, offset + cur_offset, depth
8254 )?;
8255
8256 _prev_end_offset = cur_offset + envelope_size;
8257 if 2 > max_ordinal {
8258 return Ok(());
8259 }
8260
8261 let cur_offset: usize = (2 - 1) * envelope_size;
8264
8265 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8267
8268 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<EqualizerBandState, 64>, D>(
8273 self.band_states.as_ref().map(<fidl::encoding::Vector<EqualizerBandState, 64> as fidl::encoding::ValueTypeMarker>::borrow),
8274 encoder, offset + cur_offset, depth
8275 )?;
8276
8277 _prev_end_offset = cur_offset + envelope_size;
8278
8279 Ok(())
8280 }
8281 }
8282
8283 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for EqualizerElementState {
8284 #[inline(always)]
8285 fn new_empty() -> Self {
8286 Self::default()
8287 }
8288
8289 unsafe fn decode(
8290 &mut self,
8291 decoder: &mut fidl::encoding::Decoder<'_, D>,
8292 offset: usize,
8293 mut depth: fidl::encoding::Depth,
8294 ) -> fidl::Result<()> {
8295 decoder.debug_check_bounds::<Self>(offset);
8296 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
8297 None => return Err(fidl::Error::NotNullable),
8298 Some(len) => len,
8299 };
8300 if len == 0 {
8302 return Ok(());
8303 };
8304 depth.increment()?;
8305 let envelope_size = 8;
8306 let bytes_len = len * envelope_size;
8307 let offset = decoder.out_of_line_offset(bytes_len)?;
8308 let mut _next_ordinal_to_read = 0;
8310 let mut next_offset = offset;
8311 let end_offset = offset + bytes_len;
8312 _next_ordinal_to_read += 1;
8313 if next_offset >= end_offset {
8314 return Ok(());
8315 }
8316
8317 while _next_ordinal_to_read < 1 {
8319 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8320 _next_ordinal_to_read += 1;
8321 next_offset += envelope_size;
8322 }
8323
8324 let next_out_of_line = decoder.next_out_of_line();
8325 let handles_before = decoder.remaining_handles();
8326 if let Some((inlined, num_bytes, num_handles)) =
8327 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8328 {
8329 let member_inline_size = <fidl::encoding::Vector<EqualizerBandState, 64> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8330 if inlined != (member_inline_size <= 4) {
8331 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8332 }
8333 let inner_offset;
8334 let mut inner_depth = depth.clone();
8335 if inlined {
8336 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8337 inner_offset = next_offset;
8338 } else {
8339 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8340 inner_depth.increment()?;
8341 }
8342 let val_ref = self.bands_state.get_or_insert_with(
8343 || fidl::new_empty!(fidl::encoding::Vector<EqualizerBandState, 64>, D),
8344 );
8345 fidl::decode!(fidl::encoding::Vector<EqualizerBandState, 64>, D, val_ref, decoder, inner_offset, inner_depth)?;
8346 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8347 {
8348 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8349 }
8350 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8351 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8352 }
8353 }
8354
8355 next_offset += envelope_size;
8356 _next_ordinal_to_read += 1;
8357 if next_offset >= end_offset {
8358 return Ok(());
8359 }
8360
8361 while _next_ordinal_to_read < 2 {
8363 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8364 _next_ordinal_to_read += 1;
8365 next_offset += envelope_size;
8366 }
8367
8368 let next_out_of_line = decoder.next_out_of_line();
8369 let handles_before = decoder.remaining_handles();
8370 if let Some((inlined, num_bytes, num_handles)) =
8371 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8372 {
8373 let member_inline_size = <fidl::encoding::Vector<EqualizerBandState, 64> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8374 if inlined != (member_inline_size <= 4) {
8375 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8376 }
8377 let inner_offset;
8378 let mut inner_depth = depth.clone();
8379 if inlined {
8380 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8381 inner_offset = next_offset;
8382 } else {
8383 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8384 inner_depth.increment()?;
8385 }
8386 let val_ref = self.band_states.get_or_insert_with(
8387 || fidl::new_empty!(fidl::encoding::Vector<EqualizerBandState, 64>, D),
8388 );
8389 fidl::decode!(fidl::encoding::Vector<EqualizerBandState, 64>, D, val_ref, decoder, inner_offset, inner_depth)?;
8390 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8391 {
8392 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8393 }
8394 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8395 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8396 }
8397 }
8398
8399 next_offset += envelope_size;
8400
8401 while next_offset < end_offset {
8403 _next_ordinal_to_read += 1;
8404 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8405 next_offset += envelope_size;
8406 }
8407
8408 Ok(())
8409 }
8410 }
8411
8412 impl Gain {
8413 #[inline(always)]
8414 fn max_ordinal_present(&self) -> u64 {
8415 if let Some(_) = self.min_gain_step {
8416 return 5;
8417 }
8418 if let Some(_) = self.max_gain {
8419 return 4;
8420 }
8421 if let Some(_) = self.min_gain {
8422 return 3;
8423 }
8424 if let Some(_) = self.domain {
8425 return 2;
8426 }
8427 if let Some(_) = self.type_ {
8428 return 1;
8429 }
8430 0
8431 }
8432 }
8433
8434 impl fidl::encoding::ValueTypeMarker for Gain {
8435 type Borrowed<'a> = &'a Self;
8436 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
8437 value
8438 }
8439 }
8440
8441 unsafe impl fidl::encoding::TypeMarker for Gain {
8442 type Owned = Self;
8443
8444 #[inline(always)]
8445 fn inline_align(_context: fidl::encoding::Context) -> usize {
8446 8
8447 }
8448
8449 #[inline(always)]
8450 fn inline_size(_context: fidl::encoding::Context) -> usize {
8451 16
8452 }
8453 }
8454
8455 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Gain, D> for &Gain {
8456 unsafe fn encode(
8457 self,
8458 encoder: &mut fidl::encoding::Encoder<'_, D>,
8459 offset: usize,
8460 mut depth: fidl::encoding::Depth,
8461 ) -> fidl::Result<()> {
8462 encoder.debug_check_bounds::<Gain>(offset);
8463 let max_ordinal: u64 = self.max_ordinal_present();
8465 encoder.write_num(max_ordinal, offset);
8466 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
8467 if max_ordinal == 0 {
8469 return Ok(());
8470 }
8471 depth.increment()?;
8472 let envelope_size = 8;
8473 let bytes_len = max_ordinal as usize * envelope_size;
8474 #[allow(unused_variables)]
8475 let offset = encoder.out_of_line_offset(bytes_len);
8476 let mut _prev_end_offset: usize = 0;
8477 if 1 > max_ordinal {
8478 return Ok(());
8479 }
8480
8481 let cur_offset: usize = (1 - 1) * envelope_size;
8484
8485 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8487
8488 fidl::encoding::encode_in_envelope_optional::<GainType, D>(
8493 self.type_.as_ref().map(<GainType as fidl::encoding::ValueTypeMarker>::borrow),
8494 encoder,
8495 offset + cur_offset,
8496 depth,
8497 )?;
8498
8499 _prev_end_offset = cur_offset + envelope_size;
8500 if 2 > max_ordinal {
8501 return Ok(());
8502 }
8503
8504 let cur_offset: usize = (2 - 1) * envelope_size;
8507
8508 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8510
8511 fidl::encoding::encode_in_envelope_optional::<GainDomain, D>(
8516 self.domain.as_ref().map(<GainDomain as fidl::encoding::ValueTypeMarker>::borrow),
8517 encoder,
8518 offset + cur_offset,
8519 depth,
8520 )?;
8521
8522 _prev_end_offset = cur_offset + envelope_size;
8523 if 3 > max_ordinal {
8524 return Ok(());
8525 }
8526
8527 let cur_offset: usize = (3 - 1) * envelope_size;
8530
8531 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8533
8534 fidl::encoding::encode_in_envelope_optional::<f32, D>(
8539 self.min_gain.as_ref().map(<f32 as fidl::encoding::ValueTypeMarker>::borrow),
8540 encoder,
8541 offset + cur_offset,
8542 depth,
8543 )?;
8544
8545 _prev_end_offset = cur_offset + envelope_size;
8546 if 4 > max_ordinal {
8547 return Ok(());
8548 }
8549
8550 let cur_offset: usize = (4 - 1) * envelope_size;
8553
8554 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8556
8557 fidl::encoding::encode_in_envelope_optional::<f32, D>(
8562 self.max_gain.as_ref().map(<f32 as fidl::encoding::ValueTypeMarker>::borrow),
8563 encoder,
8564 offset + cur_offset,
8565 depth,
8566 )?;
8567
8568 _prev_end_offset = cur_offset + envelope_size;
8569 if 5 > max_ordinal {
8570 return Ok(());
8571 }
8572
8573 let cur_offset: usize = (5 - 1) * envelope_size;
8576
8577 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8579
8580 fidl::encoding::encode_in_envelope_optional::<f32, D>(
8585 self.min_gain_step.as_ref().map(<f32 as fidl::encoding::ValueTypeMarker>::borrow),
8586 encoder,
8587 offset + cur_offset,
8588 depth,
8589 )?;
8590
8591 _prev_end_offset = cur_offset + envelope_size;
8592
8593 Ok(())
8594 }
8595 }
8596
8597 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Gain {
8598 #[inline(always)]
8599 fn new_empty() -> Self {
8600 Self::default()
8601 }
8602
8603 unsafe fn decode(
8604 &mut self,
8605 decoder: &mut fidl::encoding::Decoder<'_, D>,
8606 offset: usize,
8607 mut depth: fidl::encoding::Depth,
8608 ) -> fidl::Result<()> {
8609 decoder.debug_check_bounds::<Self>(offset);
8610 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
8611 None => return Err(fidl::Error::NotNullable),
8612 Some(len) => len,
8613 };
8614 if len == 0 {
8616 return Ok(());
8617 };
8618 depth.increment()?;
8619 let envelope_size = 8;
8620 let bytes_len = len * envelope_size;
8621 let offset = decoder.out_of_line_offset(bytes_len)?;
8622 let mut _next_ordinal_to_read = 0;
8624 let mut next_offset = offset;
8625 let end_offset = offset + bytes_len;
8626 _next_ordinal_to_read += 1;
8627 if next_offset >= end_offset {
8628 return Ok(());
8629 }
8630
8631 while _next_ordinal_to_read < 1 {
8633 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8634 _next_ordinal_to_read += 1;
8635 next_offset += envelope_size;
8636 }
8637
8638 let next_out_of_line = decoder.next_out_of_line();
8639 let handles_before = decoder.remaining_handles();
8640 if let Some((inlined, num_bytes, num_handles)) =
8641 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8642 {
8643 let member_inline_size =
8644 <GainType as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8645 if inlined != (member_inline_size <= 4) {
8646 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8647 }
8648 let inner_offset;
8649 let mut inner_depth = depth.clone();
8650 if inlined {
8651 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8652 inner_offset = next_offset;
8653 } else {
8654 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8655 inner_depth.increment()?;
8656 }
8657 let val_ref = self.type_.get_or_insert_with(|| fidl::new_empty!(GainType, D));
8658 fidl::decode!(GainType, D, val_ref, decoder, inner_offset, inner_depth)?;
8659 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8660 {
8661 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8662 }
8663 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8664 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8665 }
8666 }
8667
8668 next_offset += envelope_size;
8669 _next_ordinal_to_read += 1;
8670 if next_offset >= end_offset {
8671 return Ok(());
8672 }
8673
8674 while _next_ordinal_to_read < 2 {
8676 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8677 _next_ordinal_to_read += 1;
8678 next_offset += envelope_size;
8679 }
8680
8681 let next_out_of_line = decoder.next_out_of_line();
8682 let handles_before = decoder.remaining_handles();
8683 if let Some((inlined, num_bytes, num_handles)) =
8684 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8685 {
8686 let member_inline_size =
8687 <GainDomain as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8688 if inlined != (member_inline_size <= 4) {
8689 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8690 }
8691 let inner_offset;
8692 let mut inner_depth = depth.clone();
8693 if inlined {
8694 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8695 inner_offset = next_offset;
8696 } else {
8697 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8698 inner_depth.increment()?;
8699 }
8700 let val_ref = self.domain.get_or_insert_with(|| fidl::new_empty!(GainDomain, D));
8701 fidl::decode!(GainDomain, D, val_ref, decoder, inner_offset, inner_depth)?;
8702 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8703 {
8704 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8705 }
8706 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8707 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8708 }
8709 }
8710
8711 next_offset += envelope_size;
8712 _next_ordinal_to_read += 1;
8713 if next_offset >= end_offset {
8714 return Ok(());
8715 }
8716
8717 while _next_ordinal_to_read < 3 {
8719 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8720 _next_ordinal_to_read += 1;
8721 next_offset += envelope_size;
8722 }
8723
8724 let next_out_of_line = decoder.next_out_of_line();
8725 let handles_before = decoder.remaining_handles();
8726 if let Some((inlined, num_bytes, num_handles)) =
8727 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8728 {
8729 let member_inline_size =
8730 <f32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8731 if inlined != (member_inline_size <= 4) {
8732 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8733 }
8734 let inner_offset;
8735 let mut inner_depth = depth.clone();
8736 if inlined {
8737 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8738 inner_offset = next_offset;
8739 } else {
8740 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8741 inner_depth.increment()?;
8742 }
8743 let val_ref = self.min_gain.get_or_insert_with(|| fidl::new_empty!(f32, D));
8744 fidl::decode!(f32, D, val_ref, decoder, inner_offset, inner_depth)?;
8745 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8746 {
8747 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8748 }
8749 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8750 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8751 }
8752 }
8753
8754 next_offset += envelope_size;
8755 _next_ordinal_to_read += 1;
8756 if next_offset >= end_offset {
8757 return Ok(());
8758 }
8759
8760 while _next_ordinal_to_read < 4 {
8762 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8763 _next_ordinal_to_read += 1;
8764 next_offset += envelope_size;
8765 }
8766
8767 let next_out_of_line = decoder.next_out_of_line();
8768 let handles_before = decoder.remaining_handles();
8769 if let Some((inlined, num_bytes, num_handles)) =
8770 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8771 {
8772 let member_inline_size =
8773 <f32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8774 if inlined != (member_inline_size <= 4) {
8775 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8776 }
8777 let inner_offset;
8778 let mut inner_depth = depth.clone();
8779 if inlined {
8780 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8781 inner_offset = next_offset;
8782 } else {
8783 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8784 inner_depth.increment()?;
8785 }
8786 let val_ref = self.max_gain.get_or_insert_with(|| fidl::new_empty!(f32, D));
8787 fidl::decode!(f32, D, val_ref, decoder, inner_offset, inner_depth)?;
8788 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8789 {
8790 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8791 }
8792 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8793 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8794 }
8795 }
8796
8797 next_offset += envelope_size;
8798 _next_ordinal_to_read += 1;
8799 if next_offset >= end_offset {
8800 return Ok(());
8801 }
8802
8803 while _next_ordinal_to_read < 5 {
8805 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8806 _next_ordinal_to_read += 1;
8807 next_offset += envelope_size;
8808 }
8809
8810 let next_out_of_line = decoder.next_out_of_line();
8811 let handles_before = decoder.remaining_handles();
8812 if let Some((inlined, num_bytes, num_handles)) =
8813 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8814 {
8815 let member_inline_size =
8816 <f32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8817 if inlined != (member_inline_size <= 4) {
8818 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8819 }
8820 let inner_offset;
8821 let mut inner_depth = depth.clone();
8822 if inlined {
8823 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8824 inner_offset = next_offset;
8825 } else {
8826 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8827 inner_depth.increment()?;
8828 }
8829 let val_ref = self.min_gain_step.get_or_insert_with(|| fidl::new_empty!(f32, D));
8830 fidl::decode!(f32, D, val_ref, decoder, inner_offset, inner_depth)?;
8831 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8832 {
8833 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8834 }
8835 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8836 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8837 }
8838 }
8839
8840 next_offset += envelope_size;
8841
8842 while next_offset < end_offset {
8844 _next_ordinal_to_read += 1;
8845 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8846 next_offset += envelope_size;
8847 }
8848
8849 Ok(())
8850 }
8851 }
8852
8853 impl GainElementState {
8854 #[inline(always)]
8855 fn max_ordinal_present(&self) -> u64 {
8856 if let Some(_) = self.gain {
8857 return 1;
8858 }
8859 0
8860 }
8861 }
8862
8863 impl fidl::encoding::ValueTypeMarker for GainElementState {
8864 type Borrowed<'a> = &'a Self;
8865 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
8866 value
8867 }
8868 }
8869
8870 unsafe impl fidl::encoding::TypeMarker for GainElementState {
8871 type Owned = Self;
8872
8873 #[inline(always)]
8874 fn inline_align(_context: fidl::encoding::Context) -> usize {
8875 8
8876 }
8877
8878 #[inline(always)]
8879 fn inline_size(_context: fidl::encoding::Context) -> usize {
8880 16
8881 }
8882 }
8883
8884 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<GainElementState, D>
8885 for &GainElementState
8886 {
8887 unsafe fn encode(
8888 self,
8889 encoder: &mut fidl::encoding::Encoder<'_, D>,
8890 offset: usize,
8891 mut depth: fidl::encoding::Depth,
8892 ) -> fidl::Result<()> {
8893 encoder.debug_check_bounds::<GainElementState>(offset);
8894 let max_ordinal: u64 = self.max_ordinal_present();
8896 encoder.write_num(max_ordinal, offset);
8897 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
8898 if max_ordinal == 0 {
8900 return Ok(());
8901 }
8902 depth.increment()?;
8903 let envelope_size = 8;
8904 let bytes_len = max_ordinal as usize * envelope_size;
8905 #[allow(unused_variables)]
8906 let offset = encoder.out_of_line_offset(bytes_len);
8907 let mut _prev_end_offset: usize = 0;
8908 if 1 > max_ordinal {
8909 return Ok(());
8910 }
8911
8912 let cur_offset: usize = (1 - 1) * envelope_size;
8915
8916 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8918
8919 fidl::encoding::encode_in_envelope_optional::<f32, D>(
8924 self.gain.as_ref().map(<f32 as fidl::encoding::ValueTypeMarker>::borrow),
8925 encoder,
8926 offset + cur_offset,
8927 depth,
8928 )?;
8929
8930 _prev_end_offset = cur_offset + envelope_size;
8931
8932 Ok(())
8933 }
8934 }
8935
8936 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for GainElementState {
8937 #[inline(always)]
8938 fn new_empty() -> Self {
8939 Self::default()
8940 }
8941
8942 unsafe fn decode(
8943 &mut self,
8944 decoder: &mut fidl::encoding::Decoder<'_, D>,
8945 offset: usize,
8946 mut depth: fidl::encoding::Depth,
8947 ) -> fidl::Result<()> {
8948 decoder.debug_check_bounds::<Self>(offset);
8949 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
8950 None => return Err(fidl::Error::NotNullable),
8951 Some(len) => len,
8952 };
8953 if len == 0 {
8955 return Ok(());
8956 };
8957 depth.increment()?;
8958 let envelope_size = 8;
8959 let bytes_len = len * envelope_size;
8960 let offset = decoder.out_of_line_offset(bytes_len)?;
8961 let mut _next_ordinal_to_read = 0;
8963 let mut next_offset = offset;
8964 let end_offset = offset + bytes_len;
8965 _next_ordinal_to_read += 1;
8966 if next_offset >= end_offset {
8967 return Ok(());
8968 }
8969
8970 while _next_ordinal_to_read < 1 {
8972 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8973 _next_ordinal_to_read += 1;
8974 next_offset += envelope_size;
8975 }
8976
8977 let next_out_of_line = decoder.next_out_of_line();
8978 let handles_before = decoder.remaining_handles();
8979 if let Some((inlined, num_bytes, num_handles)) =
8980 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8981 {
8982 let member_inline_size =
8983 <f32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8984 if inlined != (member_inline_size <= 4) {
8985 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8986 }
8987 let inner_offset;
8988 let mut inner_depth = depth.clone();
8989 if inlined {
8990 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8991 inner_offset = next_offset;
8992 } else {
8993 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8994 inner_depth.increment()?;
8995 }
8996 let val_ref = self.gain.get_or_insert_with(|| fidl::new_empty!(f32, D));
8997 fidl::decode!(f32, D, val_ref, decoder, inner_offset, inner_depth)?;
8998 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8999 {
9000 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9001 }
9002 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9003 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9004 }
9005 }
9006
9007 next_offset += envelope_size;
9008
9009 while next_offset < end_offset {
9011 _next_ordinal_to_read += 1;
9012 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9013 next_offset += envelope_size;
9014 }
9015
9016 Ok(())
9017 }
9018 }
9019
9020 impl PlugState {
9021 #[inline(always)]
9022 fn max_ordinal_present(&self) -> u64 {
9023 if let Some(_) = self.plug_state_time {
9024 return 2;
9025 }
9026 if let Some(_) = self.plugged {
9027 return 1;
9028 }
9029 0
9030 }
9031 }
9032
9033 impl fidl::encoding::ValueTypeMarker for PlugState {
9034 type Borrowed<'a> = &'a Self;
9035 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
9036 value
9037 }
9038 }
9039
9040 unsafe impl fidl::encoding::TypeMarker for PlugState {
9041 type Owned = Self;
9042
9043 #[inline(always)]
9044 fn inline_align(_context: fidl::encoding::Context) -> usize {
9045 8
9046 }
9047
9048 #[inline(always)]
9049 fn inline_size(_context: fidl::encoding::Context) -> usize {
9050 16
9051 }
9052 }
9053
9054 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<PlugState, D>
9055 for &PlugState
9056 {
9057 unsafe fn encode(
9058 self,
9059 encoder: &mut fidl::encoding::Encoder<'_, D>,
9060 offset: usize,
9061 mut depth: fidl::encoding::Depth,
9062 ) -> fidl::Result<()> {
9063 encoder.debug_check_bounds::<PlugState>(offset);
9064 let max_ordinal: u64 = self.max_ordinal_present();
9066 encoder.write_num(max_ordinal, offset);
9067 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
9068 if max_ordinal == 0 {
9070 return Ok(());
9071 }
9072 depth.increment()?;
9073 let envelope_size = 8;
9074 let bytes_len = max_ordinal as usize * envelope_size;
9075 #[allow(unused_variables)]
9076 let offset = encoder.out_of_line_offset(bytes_len);
9077 let mut _prev_end_offset: usize = 0;
9078 if 1 > max_ordinal {
9079 return Ok(());
9080 }
9081
9082 let cur_offset: usize = (1 - 1) * envelope_size;
9085
9086 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9088
9089 fidl::encoding::encode_in_envelope_optional::<bool, D>(
9094 self.plugged.as_ref().map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
9095 encoder,
9096 offset + cur_offset,
9097 depth,
9098 )?;
9099
9100 _prev_end_offset = cur_offset + envelope_size;
9101 if 2 > max_ordinal {
9102 return Ok(());
9103 }
9104
9105 let cur_offset: usize = (2 - 1) * envelope_size;
9108
9109 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9111
9112 fidl::encoding::encode_in_envelope_optional::<i64, D>(
9117 self.plug_state_time.as_ref().map(<i64 as fidl::encoding::ValueTypeMarker>::borrow),
9118 encoder,
9119 offset + cur_offset,
9120 depth,
9121 )?;
9122
9123 _prev_end_offset = cur_offset + envelope_size;
9124
9125 Ok(())
9126 }
9127 }
9128
9129 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for PlugState {
9130 #[inline(always)]
9131 fn new_empty() -> Self {
9132 Self::default()
9133 }
9134
9135 unsafe fn decode(
9136 &mut self,
9137 decoder: &mut fidl::encoding::Decoder<'_, D>,
9138 offset: usize,
9139 mut depth: fidl::encoding::Depth,
9140 ) -> fidl::Result<()> {
9141 decoder.debug_check_bounds::<Self>(offset);
9142 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
9143 None => return Err(fidl::Error::NotNullable),
9144 Some(len) => len,
9145 };
9146 if len == 0 {
9148 return Ok(());
9149 };
9150 depth.increment()?;
9151 let envelope_size = 8;
9152 let bytes_len = len * envelope_size;
9153 let offset = decoder.out_of_line_offset(bytes_len)?;
9154 let mut _next_ordinal_to_read = 0;
9156 let mut next_offset = offset;
9157 let end_offset = offset + bytes_len;
9158 _next_ordinal_to_read += 1;
9159 if next_offset >= end_offset {
9160 return Ok(());
9161 }
9162
9163 while _next_ordinal_to_read < 1 {
9165 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9166 _next_ordinal_to_read += 1;
9167 next_offset += envelope_size;
9168 }
9169
9170 let next_out_of_line = decoder.next_out_of_line();
9171 let handles_before = decoder.remaining_handles();
9172 if let Some((inlined, num_bytes, num_handles)) =
9173 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9174 {
9175 let member_inline_size =
9176 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
9177 if inlined != (member_inline_size <= 4) {
9178 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9179 }
9180 let inner_offset;
9181 let mut inner_depth = depth.clone();
9182 if inlined {
9183 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9184 inner_offset = next_offset;
9185 } else {
9186 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9187 inner_depth.increment()?;
9188 }
9189 let val_ref = self.plugged.get_or_insert_with(|| fidl::new_empty!(bool, D));
9190 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
9191 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9192 {
9193 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9194 }
9195 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9196 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9197 }
9198 }
9199
9200 next_offset += envelope_size;
9201 _next_ordinal_to_read += 1;
9202 if next_offset >= end_offset {
9203 return Ok(());
9204 }
9205
9206 while _next_ordinal_to_read < 2 {
9208 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9209 _next_ordinal_to_read += 1;
9210 next_offset += envelope_size;
9211 }
9212
9213 let next_out_of_line = decoder.next_out_of_line();
9214 let handles_before = decoder.remaining_handles();
9215 if let Some((inlined, num_bytes, num_handles)) =
9216 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9217 {
9218 let member_inline_size =
9219 <i64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
9220 if inlined != (member_inline_size <= 4) {
9221 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9222 }
9223 let inner_offset;
9224 let mut inner_depth = depth.clone();
9225 if inlined {
9226 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9227 inner_offset = next_offset;
9228 } else {
9229 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9230 inner_depth.increment()?;
9231 }
9232 let val_ref = self.plug_state_time.get_or_insert_with(|| fidl::new_empty!(i64, D));
9233 fidl::decode!(i64, D, val_ref, decoder, inner_offset, inner_depth)?;
9234 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9235 {
9236 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9237 }
9238 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9239 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9240 }
9241 }
9242
9243 next_offset += envelope_size;
9244
9245 while next_offset < end_offset {
9247 _next_ordinal_to_read += 1;
9248 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9249 next_offset += envelope_size;
9250 }
9251
9252 Ok(())
9253 }
9254 }
9255
9256 impl SettableElementState {
9257 #[inline(always)]
9258 fn max_ordinal_present(&self) -> u64 {
9259 if let Some(_) = self.bypassed {
9260 return 4;
9261 }
9262 if let Some(_) = self.started {
9263 return 3;
9264 }
9265 if let Some(_) = self.vendor_specific_data {
9266 return 2;
9267 }
9268 if let Some(_) = self.type_specific {
9269 return 1;
9270 }
9271 0
9272 }
9273 }
9274
9275 impl fidl::encoding::ValueTypeMarker for SettableElementState {
9276 type Borrowed<'a> = &'a Self;
9277 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
9278 value
9279 }
9280 }
9281
9282 unsafe impl fidl::encoding::TypeMarker for SettableElementState {
9283 type Owned = Self;
9284
9285 #[inline(always)]
9286 fn inline_align(_context: fidl::encoding::Context) -> usize {
9287 8
9288 }
9289
9290 #[inline(always)]
9291 fn inline_size(_context: fidl::encoding::Context) -> usize {
9292 16
9293 }
9294 }
9295
9296 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<SettableElementState, D>
9297 for &SettableElementState
9298 {
9299 unsafe fn encode(
9300 self,
9301 encoder: &mut fidl::encoding::Encoder<'_, D>,
9302 offset: usize,
9303 mut depth: fidl::encoding::Depth,
9304 ) -> fidl::Result<()> {
9305 encoder.debug_check_bounds::<SettableElementState>(offset);
9306 let max_ordinal: u64 = self.max_ordinal_present();
9308 encoder.write_num(max_ordinal, offset);
9309 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
9310 if max_ordinal == 0 {
9312 return Ok(());
9313 }
9314 depth.increment()?;
9315 let envelope_size = 8;
9316 let bytes_len = max_ordinal as usize * envelope_size;
9317 #[allow(unused_variables)]
9318 let offset = encoder.out_of_line_offset(bytes_len);
9319 let mut _prev_end_offset: usize = 0;
9320 if 1 > max_ordinal {
9321 return Ok(());
9322 }
9323
9324 let cur_offset: usize = (1 - 1) * envelope_size;
9327
9328 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9330
9331 fidl::encoding::encode_in_envelope_optional::<SettableTypeSpecificElementState, D>(
9336 self.type_specific.as_ref().map(
9337 <SettableTypeSpecificElementState as fidl::encoding::ValueTypeMarker>::borrow,
9338 ),
9339 encoder,
9340 offset + cur_offset,
9341 depth,
9342 )?;
9343
9344 _prev_end_offset = cur_offset + envelope_size;
9345 if 2 > max_ordinal {
9346 return Ok(());
9347 }
9348
9349 let cur_offset: usize = (2 - 1) * envelope_size;
9352
9353 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9355
9356 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<u8, 4096>, D>(
9361 self.vendor_specific_data.as_ref().map(
9362 <fidl::encoding::Vector<u8, 4096> as fidl::encoding::ValueTypeMarker>::borrow,
9363 ),
9364 encoder,
9365 offset + cur_offset,
9366 depth,
9367 )?;
9368
9369 _prev_end_offset = cur_offset + envelope_size;
9370 if 3 > max_ordinal {
9371 return Ok(());
9372 }
9373
9374 let cur_offset: usize = (3 - 1) * envelope_size;
9377
9378 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9380
9381 fidl::encoding::encode_in_envelope_optional::<bool, D>(
9386 self.started.as_ref().map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
9387 encoder,
9388 offset + cur_offset,
9389 depth,
9390 )?;
9391
9392 _prev_end_offset = cur_offset + envelope_size;
9393 if 4 > max_ordinal {
9394 return Ok(());
9395 }
9396
9397 let cur_offset: usize = (4 - 1) * envelope_size;
9400
9401 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9403
9404 fidl::encoding::encode_in_envelope_optional::<bool, D>(
9409 self.bypassed.as_ref().map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
9410 encoder,
9411 offset + cur_offset,
9412 depth,
9413 )?;
9414
9415 _prev_end_offset = cur_offset + envelope_size;
9416
9417 Ok(())
9418 }
9419 }
9420
9421 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for SettableElementState {
9422 #[inline(always)]
9423 fn new_empty() -> Self {
9424 Self::default()
9425 }
9426
9427 unsafe fn decode(
9428 &mut self,
9429 decoder: &mut fidl::encoding::Decoder<'_, D>,
9430 offset: usize,
9431 mut depth: fidl::encoding::Depth,
9432 ) -> fidl::Result<()> {
9433 decoder.debug_check_bounds::<Self>(offset);
9434 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
9435 None => return Err(fidl::Error::NotNullable),
9436 Some(len) => len,
9437 };
9438 if len == 0 {
9440 return Ok(());
9441 };
9442 depth.increment()?;
9443 let envelope_size = 8;
9444 let bytes_len = len * envelope_size;
9445 let offset = decoder.out_of_line_offset(bytes_len)?;
9446 let mut _next_ordinal_to_read = 0;
9448 let mut next_offset = offset;
9449 let end_offset = offset + bytes_len;
9450 _next_ordinal_to_read += 1;
9451 if next_offset >= end_offset {
9452 return Ok(());
9453 }
9454
9455 while _next_ordinal_to_read < 1 {
9457 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9458 _next_ordinal_to_read += 1;
9459 next_offset += envelope_size;
9460 }
9461
9462 let next_out_of_line = decoder.next_out_of_line();
9463 let handles_before = decoder.remaining_handles();
9464 if let Some((inlined, num_bytes, num_handles)) =
9465 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9466 {
9467 let member_inline_size =
9468 <SettableTypeSpecificElementState as fidl::encoding::TypeMarker>::inline_size(
9469 decoder.context,
9470 );
9471 if inlined != (member_inline_size <= 4) {
9472 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9473 }
9474 let inner_offset;
9475 let mut inner_depth = depth.clone();
9476 if inlined {
9477 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9478 inner_offset = next_offset;
9479 } else {
9480 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9481 inner_depth.increment()?;
9482 }
9483 let val_ref = self
9484 .type_specific
9485 .get_or_insert_with(|| fidl::new_empty!(SettableTypeSpecificElementState, D));
9486 fidl::decode!(
9487 SettableTypeSpecificElementState,
9488 D,
9489 val_ref,
9490 decoder,
9491 inner_offset,
9492 inner_depth
9493 )?;
9494 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9495 {
9496 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9497 }
9498 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9499 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9500 }
9501 }
9502
9503 next_offset += envelope_size;
9504 _next_ordinal_to_read += 1;
9505 if next_offset >= end_offset {
9506 return Ok(());
9507 }
9508
9509 while _next_ordinal_to_read < 2 {
9511 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9512 _next_ordinal_to_read += 1;
9513 next_offset += envelope_size;
9514 }
9515
9516 let next_out_of_line = decoder.next_out_of_line();
9517 let handles_before = decoder.remaining_handles();
9518 if let Some((inlined, num_bytes, num_handles)) =
9519 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9520 {
9521 let member_inline_size =
9522 <fidl::encoding::Vector<u8, 4096> as fidl::encoding::TypeMarker>::inline_size(
9523 decoder.context,
9524 );
9525 if inlined != (member_inline_size <= 4) {
9526 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9527 }
9528 let inner_offset;
9529 let mut inner_depth = depth.clone();
9530 if inlined {
9531 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9532 inner_offset = next_offset;
9533 } else {
9534 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9535 inner_depth.increment()?;
9536 }
9537 let val_ref = self
9538 .vendor_specific_data
9539 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<u8, 4096>, D));
9540 fidl::decode!(fidl::encoding::Vector<u8, 4096>, D, val_ref, decoder, inner_offset, inner_depth)?;
9541 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9542 {
9543 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9544 }
9545 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9546 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9547 }
9548 }
9549
9550 next_offset += envelope_size;
9551 _next_ordinal_to_read += 1;
9552 if next_offset >= end_offset {
9553 return Ok(());
9554 }
9555
9556 while _next_ordinal_to_read < 3 {
9558 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9559 _next_ordinal_to_read += 1;
9560 next_offset += envelope_size;
9561 }
9562
9563 let next_out_of_line = decoder.next_out_of_line();
9564 let handles_before = decoder.remaining_handles();
9565 if let Some((inlined, num_bytes, num_handles)) =
9566 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9567 {
9568 let member_inline_size =
9569 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
9570 if inlined != (member_inline_size <= 4) {
9571 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9572 }
9573 let inner_offset;
9574 let mut inner_depth = depth.clone();
9575 if inlined {
9576 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9577 inner_offset = next_offset;
9578 } else {
9579 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9580 inner_depth.increment()?;
9581 }
9582 let val_ref = self.started.get_or_insert_with(|| fidl::new_empty!(bool, D));
9583 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
9584 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9585 {
9586 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9587 }
9588 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9589 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9590 }
9591 }
9592
9593 next_offset += envelope_size;
9594 _next_ordinal_to_read += 1;
9595 if next_offset >= end_offset {
9596 return Ok(());
9597 }
9598
9599 while _next_ordinal_to_read < 4 {
9601 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9602 _next_ordinal_to_read += 1;
9603 next_offset += envelope_size;
9604 }
9605
9606 let next_out_of_line = decoder.next_out_of_line();
9607 let handles_before = decoder.remaining_handles();
9608 if let Some((inlined, num_bytes, num_handles)) =
9609 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9610 {
9611 let member_inline_size =
9612 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
9613 if inlined != (member_inline_size <= 4) {
9614 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9615 }
9616 let inner_offset;
9617 let mut inner_depth = depth.clone();
9618 if inlined {
9619 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9620 inner_offset = next_offset;
9621 } else {
9622 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9623 inner_depth.increment()?;
9624 }
9625 let val_ref = self.bypassed.get_or_insert_with(|| fidl::new_empty!(bool, D));
9626 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
9627 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9628 {
9629 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9630 }
9631 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9632 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9633 }
9634 }
9635
9636 next_offset += envelope_size;
9637
9638 while next_offset < end_offset {
9640 _next_ordinal_to_read += 1;
9641 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9642 next_offset += envelope_size;
9643 }
9644
9645 Ok(())
9646 }
9647 }
9648
9649 impl Topology {
9650 #[inline(always)]
9651 fn max_ordinal_present(&self) -> u64 {
9652 if let Some(_) = self.processing_elements_edge_pairs {
9653 return 2;
9654 }
9655 if let Some(_) = self.id {
9656 return 1;
9657 }
9658 0
9659 }
9660 }
9661
9662 impl fidl::encoding::ValueTypeMarker for Topology {
9663 type Borrowed<'a> = &'a Self;
9664 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
9665 value
9666 }
9667 }
9668
9669 unsafe impl fidl::encoding::TypeMarker for Topology {
9670 type Owned = Self;
9671
9672 #[inline(always)]
9673 fn inline_align(_context: fidl::encoding::Context) -> usize {
9674 8
9675 }
9676
9677 #[inline(always)]
9678 fn inline_size(_context: fidl::encoding::Context) -> usize {
9679 16
9680 }
9681 }
9682
9683 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Topology, D> for &Topology {
9684 unsafe fn encode(
9685 self,
9686 encoder: &mut fidl::encoding::Encoder<'_, D>,
9687 offset: usize,
9688 mut depth: fidl::encoding::Depth,
9689 ) -> fidl::Result<()> {
9690 encoder.debug_check_bounds::<Topology>(offset);
9691 let max_ordinal: u64 = self.max_ordinal_present();
9693 encoder.write_num(max_ordinal, offset);
9694 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
9695 if max_ordinal == 0 {
9697 return Ok(());
9698 }
9699 depth.increment()?;
9700 let envelope_size = 8;
9701 let bytes_len = max_ordinal as usize * envelope_size;
9702 #[allow(unused_variables)]
9703 let offset = encoder.out_of_line_offset(bytes_len);
9704 let mut _prev_end_offset: usize = 0;
9705 if 1 > max_ordinal {
9706 return Ok(());
9707 }
9708
9709 let cur_offset: usize = (1 - 1) * envelope_size;
9712
9713 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9715
9716 fidl::encoding::encode_in_envelope_optional::<u64, D>(
9721 self.id.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
9722 encoder,
9723 offset + cur_offset,
9724 depth,
9725 )?;
9726
9727 _prev_end_offset = cur_offset + envelope_size;
9728 if 2 > max_ordinal {
9729 return Ok(());
9730 }
9731
9732 let cur_offset: usize = (2 - 1) * envelope_size;
9735
9736 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9738
9739 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<EdgePair, 64>, D>(
9744 self.processing_elements_edge_pairs.as_ref().map(<fidl::encoding::Vector<EdgePair, 64> as fidl::encoding::ValueTypeMarker>::borrow),
9745 encoder, offset + cur_offset, depth
9746 )?;
9747
9748 _prev_end_offset = cur_offset + envelope_size;
9749
9750 Ok(())
9751 }
9752 }
9753
9754 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Topology {
9755 #[inline(always)]
9756 fn new_empty() -> Self {
9757 Self::default()
9758 }
9759
9760 unsafe fn decode(
9761 &mut self,
9762 decoder: &mut fidl::encoding::Decoder<'_, D>,
9763 offset: usize,
9764 mut depth: fidl::encoding::Depth,
9765 ) -> fidl::Result<()> {
9766 decoder.debug_check_bounds::<Self>(offset);
9767 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
9768 None => return Err(fidl::Error::NotNullable),
9769 Some(len) => len,
9770 };
9771 if len == 0 {
9773 return Ok(());
9774 };
9775 depth.increment()?;
9776 let envelope_size = 8;
9777 let bytes_len = len * envelope_size;
9778 let offset = decoder.out_of_line_offset(bytes_len)?;
9779 let mut _next_ordinal_to_read = 0;
9781 let mut next_offset = offset;
9782 let end_offset = offset + bytes_len;
9783 _next_ordinal_to_read += 1;
9784 if next_offset >= end_offset {
9785 return Ok(());
9786 }
9787
9788 while _next_ordinal_to_read < 1 {
9790 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9791 _next_ordinal_to_read += 1;
9792 next_offset += envelope_size;
9793 }
9794
9795 let next_out_of_line = decoder.next_out_of_line();
9796 let handles_before = decoder.remaining_handles();
9797 if let Some((inlined, num_bytes, num_handles)) =
9798 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9799 {
9800 let member_inline_size =
9801 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
9802 if inlined != (member_inline_size <= 4) {
9803 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9804 }
9805 let inner_offset;
9806 let mut inner_depth = depth.clone();
9807 if inlined {
9808 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9809 inner_offset = next_offset;
9810 } else {
9811 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9812 inner_depth.increment()?;
9813 }
9814 let val_ref = self.id.get_or_insert_with(|| fidl::new_empty!(u64, D));
9815 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
9816 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9817 {
9818 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9819 }
9820 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9821 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9822 }
9823 }
9824
9825 next_offset += envelope_size;
9826 _next_ordinal_to_read += 1;
9827 if next_offset >= end_offset {
9828 return Ok(());
9829 }
9830
9831 while _next_ordinal_to_read < 2 {
9833 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9834 _next_ordinal_to_read += 1;
9835 next_offset += envelope_size;
9836 }
9837
9838 let next_out_of_line = decoder.next_out_of_line();
9839 let handles_before = decoder.remaining_handles();
9840 if let Some((inlined, num_bytes, num_handles)) =
9841 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9842 {
9843 let member_inline_size = <fidl::encoding::Vector<EdgePair, 64> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
9844 if inlined != (member_inline_size <= 4) {
9845 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9846 }
9847 let inner_offset;
9848 let mut inner_depth = depth.clone();
9849 if inlined {
9850 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9851 inner_offset = next_offset;
9852 } else {
9853 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9854 inner_depth.increment()?;
9855 }
9856 let val_ref = self.processing_elements_edge_pairs.get_or_insert_with(
9857 || fidl::new_empty!(fidl::encoding::Vector<EdgePair, 64>, D),
9858 );
9859 fidl::decode!(fidl::encoding::Vector<EdgePair, 64>, D, val_ref, decoder, inner_offset, inner_depth)?;
9860 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9861 {
9862 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9863 }
9864 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9865 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9866 }
9867 }
9868
9869 next_offset += envelope_size;
9870
9871 while next_offset < end_offset {
9873 _next_ordinal_to_read += 1;
9874 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9875 next_offset += envelope_size;
9876 }
9877
9878 Ok(())
9879 }
9880 }
9881
9882 impl VendorSpecific {
9883 #[inline(always)]
9884 fn max_ordinal_present(&self) -> u64 {
9885 0
9886 }
9887 }
9888
9889 impl fidl::encoding::ValueTypeMarker for VendorSpecific {
9890 type Borrowed<'a> = &'a Self;
9891 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
9892 value
9893 }
9894 }
9895
9896 unsafe impl fidl::encoding::TypeMarker for VendorSpecific {
9897 type Owned = Self;
9898
9899 #[inline(always)]
9900 fn inline_align(_context: fidl::encoding::Context) -> usize {
9901 8
9902 }
9903
9904 #[inline(always)]
9905 fn inline_size(_context: fidl::encoding::Context) -> usize {
9906 16
9907 }
9908 }
9909
9910 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<VendorSpecific, D>
9911 for &VendorSpecific
9912 {
9913 unsafe fn encode(
9914 self,
9915 encoder: &mut fidl::encoding::Encoder<'_, D>,
9916 offset: usize,
9917 mut depth: fidl::encoding::Depth,
9918 ) -> fidl::Result<()> {
9919 encoder.debug_check_bounds::<VendorSpecific>(offset);
9920 let max_ordinal: u64 = self.max_ordinal_present();
9922 encoder.write_num(max_ordinal, offset);
9923 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
9924 if max_ordinal == 0 {
9926 return Ok(());
9927 }
9928 depth.increment()?;
9929 let envelope_size = 8;
9930 let bytes_len = max_ordinal as usize * envelope_size;
9931 #[allow(unused_variables)]
9932 let offset = encoder.out_of_line_offset(bytes_len);
9933 let mut _prev_end_offset: usize = 0;
9934
9935 Ok(())
9936 }
9937 }
9938
9939 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for VendorSpecific {
9940 #[inline(always)]
9941 fn new_empty() -> Self {
9942 Self::default()
9943 }
9944
9945 unsafe fn decode(
9946 &mut self,
9947 decoder: &mut fidl::encoding::Decoder<'_, D>,
9948 offset: usize,
9949 mut depth: fidl::encoding::Depth,
9950 ) -> fidl::Result<()> {
9951 decoder.debug_check_bounds::<Self>(offset);
9952 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
9953 None => return Err(fidl::Error::NotNullable),
9954 Some(len) => len,
9955 };
9956 if len == 0 {
9958 return Ok(());
9959 };
9960 depth.increment()?;
9961 let envelope_size = 8;
9962 let bytes_len = len * envelope_size;
9963 let offset = decoder.out_of_line_offset(bytes_len)?;
9964 let mut _next_ordinal_to_read = 0;
9966 let mut next_offset = offset;
9967 let end_offset = offset + bytes_len;
9968
9969 while next_offset < end_offset {
9971 _next_ordinal_to_read += 1;
9972 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9973 next_offset += envelope_size;
9974 }
9975
9976 Ok(())
9977 }
9978 }
9979
9980 impl VendorSpecificState {
9981 #[inline(always)]
9982 fn max_ordinal_present(&self) -> u64 {
9983 0
9984 }
9985 }
9986
9987 impl fidl::encoding::ValueTypeMarker for VendorSpecificState {
9988 type Borrowed<'a> = &'a Self;
9989 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
9990 value
9991 }
9992 }
9993
9994 unsafe impl fidl::encoding::TypeMarker for VendorSpecificState {
9995 type Owned = Self;
9996
9997 #[inline(always)]
9998 fn inline_align(_context: fidl::encoding::Context) -> usize {
9999 8
10000 }
10001
10002 #[inline(always)]
10003 fn inline_size(_context: fidl::encoding::Context) -> usize {
10004 16
10005 }
10006 }
10007
10008 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<VendorSpecificState, D>
10009 for &VendorSpecificState
10010 {
10011 unsafe fn encode(
10012 self,
10013 encoder: &mut fidl::encoding::Encoder<'_, D>,
10014 offset: usize,
10015 mut depth: fidl::encoding::Depth,
10016 ) -> fidl::Result<()> {
10017 encoder.debug_check_bounds::<VendorSpecificState>(offset);
10018 let max_ordinal: u64 = self.max_ordinal_present();
10020 encoder.write_num(max_ordinal, offset);
10021 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
10022 if max_ordinal == 0 {
10024 return Ok(());
10025 }
10026 depth.increment()?;
10027 let envelope_size = 8;
10028 let bytes_len = max_ordinal as usize * envelope_size;
10029 #[allow(unused_variables)]
10030 let offset = encoder.out_of_line_offset(bytes_len);
10031 let mut _prev_end_offset: usize = 0;
10032
10033 Ok(())
10034 }
10035 }
10036
10037 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for VendorSpecificState {
10038 #[inline(always)]
10039 fn new_empty() -> Self {
10040 Self::default()
10041 }
10042
10043 unsafe fn decode(
10044 &mut self,
10045 decoder: &mut fidl::encoding::Decoder<'_, D>,
10046 offset: usize,
10047 mut depth: fidl::encoding::Depth,
10048 ) -> fidl::Result<()> {
10049 decoder.debug_check_bounds::<Self>(offset);
10050 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
10051 None => return Err(fidl::Error::NotNullable),
10052 Some(len) => len,
10053 };
10054 if len == 0 {
10056 return Ok(());
10057 };
10058 depth.increment()?;
10059 let envelope_size = 8;
10060 let bytes_len = len * envelope_size;
10061 let offset = decoder.out_of_line_offset(bytes_len)?;
10062 let mut _next_ordinal_to_read = 0;
10064 let mut next_offset = offset;
10065 let end_offset = offset + bytes_len;
10066
10067 while next_offset < end_offset {
10069 _next_ordinal_to_read += 1;
10070 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10071 next_offset += envelope_size;
10072 }
10073
10074 Ok(())
10075 }
10076 }
10077
10078 impl fidl::encoding::ValueTypeMarker for Latency {
10079 type Borrowed<'a> = &'a Self;
10080 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
10081 value
10082 }
10083 }
10084
10085 unsafe impl fidl::encoding::TypeMarker for Latency {
10086 type Owned = Self;
10087
10088 #[inline(always)]
10089 fn inline_align(_context: fidl::encoding::Context) -> usize {
10090 8
10091 }
10092
10093 #[inline(always)]
10094 fn inline_size(_context: fidl::encoding::Context) -> usize {
10095 16
10096 }
10097 }
10098
10099 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Latency, D> for &Latency {
10100 #[inline]
10101 unsafe fn encode(
10102 self,
10103 encoder: &mut fidl::encoding::Encoder<'_, D>,
10104 offset: usize,
10105 _depth: fidl::encoding::Depth,
10106 ) -> fidl::Result<()> {
10107 encoder.debug_check_bounds::<Latency>(offset);
10108 encoder.write_num::<u64>(self.ordinal(), offset);
10109 match self {
10110 Latency::LatencyTime(ref val) => fidl::encoding::encode_in_envelope::<i64, D>(
10111 <i64 as fidl::encoding::ValueTypeMarker>::borrow(val),
10112 encoder,
10113 offset + 8,
10114 _depth,
10115 ),
10116 Latency::LatencyFrames(ref val) => fidl::encoding::encode_in_envelope::<u32, D>(
10117 <u32 as fidl::encoding::ValueTypeMarker>::borrow(val),
10118 encoder,
10119 offset + 8,
10120 _depth,
10121 ),
10122 Latency::__SourceBreaking { .. } => Err(fidl::Error::UnknownUnionTag),
10123 }
10124 }
10125 }
10126
10127 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Latency {
10128 #[inline(always)]
10129 fn new_empty() -> Self {
10130 Self::__SourceBreaking { unknown_ordinal: 0 }
10131 }
10132
10133 #[inline]
10134 unsafe fn decode(
10135 &mut self,
10136 decoder: &mut fidl::encoding::Decoder<'_, D>,
10137 offset: usize,
10138 mut depth: fidl::encoding::Depth,
10139 ) -> fidl::Result<()> {
10140 decoder.debug_check_bounds::<Self>(offset);
10141 #[allow(unused_variables)]
10142 let next_out_of_line = decoder.next_out_of_line();
10143 let handles_before = decoder.remaining_handles();
10144 let (ordinal, inlined, num_bytes, num_handles) =
10145 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
10146
10147 let member_inline_size = match ordinal {
10148 1 => <i64 as fidl::encoding::TypeMarker>::inline_size(decoder.context),
10149 2 => <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context),
10150 0 => return Err(fidl::Error::UnknownUnionTag),
10151 _ => num_bytes as usize,
10152 };
10153
10154 if inlined != (member_inline_size <= 4) {
10155 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10156 }
10157 let _inner_offset;
10158 if inlined {
10159 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
10160 _inner_offset = offset + 8;
10161 } else {
10162 depth.increment()?;
10163 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10164 }
10165 match ordinal {
10166 1 => {
10167 #[allow(irrefutable_let_patterns)]
10168 if let Latency::LatencyTime(_) = self {
10169 } else {
10171 *self = Latency::LatencyTime(fidl::new_empty!(i64, D));
10173 }
10174 #[allow(irrefutable_let_patterns)]
10175 if let Latency::LatencyTime(ref mut val) = self {
10176 fidl::decode!(i64, D, val, decoder, _inner_offset, depth)?;
10177 } else {
10178 unreachable!()
10179 }
10180 }
10181 2 => {
10182 #[allow(irrefutable_let_patterns)]
10183 if let Latency::LatencyFrames(_) = self {
10184 } else {
10186 *self = Latency::LatencyFrames(fidl::new_empty!(u32, D));
10188 }
10189 #[allow(irrefutable_let_patterns)]
10190 if let Latency::LatencyFrames(ref mut val) = self {
10191 fidl::decode!(u32, D, val, decoder, _inner_offset, depth)?;
10192 } else {
10193 unreachable!()
10194 }
10195 }
10196 #[allow(deprecated)]
10197 ordinal => {
10198 for _ in 0..num_handles {
10199 decoder.drop_next_handle()?;
10200 }
10201 *self = Latency::__SourceBreaking { unknown_ordinal: ordinal };
10202 }
10203 }
10204 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
10205 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10206 }
10207 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10208 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10209 }
10210 Ok(())
10211 }
10212 }
10213
10214 impl fidl::encoding::ValueTypeMarker for SettableTypeSpecificElementState {
10215 type Borrowed<'a> = &'a Self;
10216 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
10217 value
10218 }
10219 }
10220
10221 unsafe impl fidl::encoding::TypeMarker for SettableTypeSpecificElementState {
10222 type Owned = Self;
10223
10224 #[inline(always)]
10225 fn inline_align(_context: fidl::encoding::Context) -> usize {
10226 8
10227 }
10228
10229 #[inline(always)]
10230 fn inline_size(_context: fidl::encoding::Context) -> usize {
10231 16
10232 }
10233 }
10234
10235 unsafe impl<D: fidl::encoding::ResourceDialect>
10236 fidl::encoding::Encode<SettableTypeSpecificElementState, D>
10237 for &SettableTypeSpecificElementState
10238 {
10239 #[inline]
10240 unsafe fn encode(
10241 self,
10242 encoder: &mut fidl::encoding::Encoder<'_, D>,
10243 offset: usize,
10244 _depth: fidl::encoding::Depth,
10245 ) -> fidl::Result<()> {
10246 encoder.debug_check_bounds::<SettableTypeSpecificElementState>(offset);
10247 encoder.write_num::<u64>(self.ordinal(), offset);
10248 match self {
10249 SettableTypeSpecificElementState::VendorSpecific(ref val) => {
10250 fidl::encoding::encode_in_envelope::<VendorSpecificState, D>(
10251 <VendorSpecificState as fidl::encoding::ValueTypeMarker>::borrow(val),
10252 encoder,
10253 offset + 8,
10254 _depth,
10255 )
10256 }
10257 SettableTypeSpecificElementState::Gain(ref val) => {
10258 fidl::encoding::encode_in_envelope::<GainElementState, D>(
10259 <GainElementState as fidl::encoding::ValueTypeMarker>::borrow(val),
10260 encoder,
10261 offset + 8,
10262 _depth,
10263 )
10264 }
10265 SettableTypeSpecificElementState::Equalizer(ref val) => {
10266 fidl::encoding::encode_in_envelope::<EqualizerElementState, D>(
10267 <EqualizerElementState as fidl::encoding::ValueTypeMarker>::borrow(val),
10268 encoder,
10269 offset + 8,
10270 _depth,
10271 )
10272 }
10273 SettableTypeSpecificElementState::Dynamics(ref val) => {
10274 fidl::encoding::encode_in_envelope::<DynamicsElementState, D>(
10275 <DynamicsElementState as fidl::encoding::ValueTypeMarker>::borrow(val),
10276 encoder,
10277 offset + 8,
10278 _depth,
10279 )
10280 }
10281 SettableTypeSpecificElementState::__SourceBreaking { .. } => {
10282 Err(fidl::Error::UnknownUnionTag)
10283 }
10284 }
10285 }
10286 }
10287
10288 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
10289 for SettableTypeSpecificElementState
10290 {
10291 #[inline(always)]
10292 fn new_empty() -> Self {
10293 Self::__SourceBreaking { unknown_ordinal: 0 }
10294 }
10295
10296 #[inline]
10297 unsafe fn decode(
10298 &mut self,
10299 decoder: &mut fidl::encoding::Decoder<'_, D>,
10300 offset: usize,
10301 mut depth: fidl::encoding::Depth,
10302 ) -> fidl::Result<()> {
10303 decoder.debug_check_bounds::<Self>(offset);
10304 #[allow(unused_variables)]
10305 let next_out_of_line = decoder.next_out_of_line();
10306 let handles_before = decoder.remaining_handles();
10307 let (ordinal, inlined, num_bytes, num_handles) =
10308 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
10309
10310 let member_inline_size = match ordinal {
10311 1 => <VendorSpecificState as fidl::encoding::TypeMarker>::inline_size(
10312 decoder.context,
10313 ),
10314 2 => <GainElementState as fidl::encoding::TypeMarker>::inline_size(decoder.context),
10315 3 => <EqualizerElementState as fidl::encoding::TypeMarker>::inline_size(
10316 decoder.context,
10317 ),
10318 4 => <DynamicsElementState as fidl::encoding::TypeMarker>::inline_size(
10319 decoder.context,
10320 ),
10321 0 => return Err(fidl::Error::UnknownUnionTag),
10322 _ => num_bytes as usize,
10323 };
10324
10325 if inlined != (member_inline_size <= 4) {
10326 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10327 }
10328 let _inner_offset;
10329 if inlined {
10330 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
10331 _inner_offset = offset + 8;
10332 } else {
10333 depth.increment()?;
10334 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10335 }
10336 match ordinal {
10337 1 => {
10338 #[allow(irrefutable_let_patterns)]
10339 if let SettableTypeSpecificElementState::VendorSpecific(_) = self {
10340 } else {
10342 *self = SettableTypeSpecificElementState::VendorSpecific(fidl::new_empty!(
10344 VendorSpecificState,
10345 D
10346 ));
10347 }
10348 #[allow(irrefutable_let_patterns)]
10349 if let SettableTypeSpecificElementState::VendorSpecific(ref mut val) = self {
10350 fidl::decode!(VendorSpecificState, D, val, decoder, _inner_offset, depth)?;
10351 } else {
10352 unreachable!()
10353 }
10354 }
10355 2 => {
10356 #[allow(irrefutable_let_patterns)]
10357 if let SettableTypeSpecificElementState::Gain(_) = self {
10358 } else {
10360 *self = SettableTypeSpecificElementState::Gain(fidl::new_empty!(
10362 GainElementState,
10363 D
10364 ));
10365 }
10366 #[allow(irrefutable_let_patterns)]
10367 if let SettableTypeSpecificElementState::Gain(ref mut val) = self {
10368 fidl::decode!(GainElementState, D, val, decoder, _inner_offset, depth)?;
10369 } else {
10370 unreachable!()
10371 }
10372 }
10373 3 => {
10374 #[allow(irrefutable_let_patterns)]
10375 if let SettableTypeSpecificElementState::Equalizer(_) = self {
10376 } else {
10378 *self = SettableTypeSpecificElementState::Equalizer(fidl::new_empty!(
10380 EqualizerElementState,
10381 D
10382 ));
10383 }
10384 #[allow(irrefutable_let_patterns)]
10385 if let SettableTypeSpecificElementState::Equalizer(ref mut val) = self {
10386 fidl::decode!(
10387 EqualizerElementState,
10388 D,
10389 val,
10390 decoder,
10391 _inner_offset,
10392 depth
10393 )?;
10394 } else {
10395 unreachable!()
10396 }
10397 }
10398 4 => {
10399 #[allow(irrefutable_let_patterns)]
10400 if let SettableTypeSpecificElementState::Dynamics(_) = self {
10401 } else {
10403 *self = SettableTypeSpecificElementState::Dynamics(fidl::new_empty!(
10405 DynamicsElementState,
10406 D
10407 ));
10408 }
10409 #[allow(irrefutable_let_patterns)]
10410 if let SettableTypeSpecificElementState::Dynamics(ref mut val) = self {
10411 fidl::decode!(DynamicsElementState, D, val, decoder, _inner_offset, depth)?;
10412 } else {
10413 unreachable!()
10414 }
10415 }
10416 #[allow(deprecated)]
10417 ordinal => {
10418 for _ in 0..num_handles {
10419 decoder.drop_next_handle()?;
10420 }
10421 *self = SettableTypeSpecificElementState::__SourceBreaking {
10422 unknown_ordinal: ordinal,
10423 };
10424 }
10425 }
10426 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
10427 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10428 }
10429 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10430 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10431 }
10432 Ok(())
10433 }
10434 }
10435
10436 impl fidl::encoding::ValueTypeMarker for TypeSpecificElement {
10437 type Borrowed<'a> = &'a Self;
10438 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
10439 value
10440 }
10441 }
10442
10443 unsafe impl fidl::encoding::TypeMarker for TypeSpecificElement {
10444 type Owned = Self;
10445
10446 #[inline(always)]
10447 fn inline_align(_context: fidl::encoding::Context) -> usize {
10448 8
10449 }
10450
10451 #[inline(always)]
10452 fn inline_size(_context: fidl::encoding::Context) -> usize {
10453 16
10454 }
10455 }
10456
10457 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<TypeSpecificElement, D>
10458 for &TypeSpecificElement
10459 {
10460 #[inline]
10461 unsafe fn encode(
10462 self,
10463 encoder: &mut fidl::encoding::Encoder<'_, D>,
10464 offset: usize,
10465 _depth: fidl::encoding::Depth,
10466 ) -> fidl::Result<()> {
10467 encoder.debug_check_bounds::<TypeSpecificElement>(offset);
10468 encoder.write_num::<u64>(self.ordinal(), offset);
10469 match self {
10470 TypeSpecificElement::VendorSpecific(ref val) => {
10471 fidl::encoding::encode_in_envelope::<VendorSpecific, D>(
10472 <VendorSpecific as fidl::encoding::ValueTypeMarker>::borrow(val),
10473 encoder,
10474 offset + 8,
10475 _depth,
10476 )
10477 }
10478 TypeSpecificElement::Gain(ref val) => {
10479 fidl::encoding::encode_in_envelope::<Gain, D>(
10480 <Gain as fidl::encoding::ValueTypeMarker>::borrow(val),
10481 encoder,
10482 offset + 8,
10483 _depth,
10484 )
10485 }
10486 TypeSpecificElement::Equalizer(ref val) => {
10487 fidl::encoding::encode_in_envelope::<Equalizer, D>(
10488 <Equalizer as fidl::encoding::ValueTypeMarker>::borrow(val),
10489 encoder,
10490 offset + 8,
10491 _depth,
10492 )
10493 }
10494 TypeSpecificElement::Dynamics(ref val) => {
10495 fidl::encoding::encode_in_envelope::<Dynamics, D>(
10496 <Dynamics as fidl::encoding::ValueTypeMarker>::borrow(val),
10497 encoder,
10498 offset + 8,
10499 _depth,
10500 )
10501 }
10502 TypeSpecificElement::Endpoint(ref val) => {
10503 fidl::encoding::encode_in_envelope::<Endpoint, D>(
10504 <Endpoint as fidl::encoding::ValueTypeMarker>::borrow(val),
10505 encoder,
10506 offset + 8,
10507 _depth,
10508 )
10509 }
10510 TypeSpecificElement::DaiInterconnect(ref val) => {
10511 fidl::encoding::encode_in_envelope::<DaiInterconnect, D>(
10512 <DaiInterconnect as fidl::encoding::ValueTypeMarker>::borrow(val),
10513 encoder,
10514 offset + 8,
10515 _depth,
10516 )
10517 }
10518 TypeSpecificElement::__SourceBreaking { .. } => Err(fidl::Error::UnknownUnionTag),
10519 }
10520 }
10521 }
10522
10523 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for TypeSpecificElement {
10524 #[inline(always)]
10525 fn new_empty() -> Self {
10526 Self::__SourceBreaking { unknown_ordinal: 0 }
10527 }
10528
10529 #[inline]
10530 unsafe fn decode(
10531 &mut self,
10532 decoder: &mut fidl::encoding::Decoder<'_, D>,
10533 offset: usize,
10534 mut depth: fidl::encoding::Depth,
10535 ) -> fidl::Result<()> {
10536 decoder.debug_check_bounds::<Self>(offset);
10537 #[allow(unused_variables)]
10538 let next_out_of_line = decoder.next_out_of_line();
10539 let handles_before = decoder.remaining_handles();
10540 let (ordinal, inlined, num_bytes, num_handles) =
10541 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
10542
10543 let member_inline_size = match ordinal {
10544 1 => <VendorSpecific as fidl::encoding::TypeMarker>::inline_size(decoder.context),
10545 2 => <Gain as fidl::encoding::TypeMarker>::inline_size(decoder.context),
10546 3 => <Equalizer as fidl::encoding::TypeMarker>::inline_size(decoder.context),
10547 4 => <Dynamics as fidl::encoding::TypeMarker>::inline_size(decoder.context),
10548 5 => <Endpoint as fidl::encoding::TypeMarker>::inline_size(decoder.context),
10549 6 => <DaiInterconnect as fidl::encoding::TypeMarker>::inline_size(decoder.context),
10550 0 => return Err(fidl::Error::UnknownUnionTag),
10551 _ => num_bytes as usize,
10552 };
10553
10554 if inlined != (member_inline_size <= 4) {
10555 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10556 }
10557 let _inner_offset;
10558 if inlined {
10559 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
10560 _inner_offset = offset + 8;
10561 } else {
10562 depth.increment()?;
10563 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10564 }
10565 match ordinal {
10566 1 => {
10567 #[allow(irrefutable_let_patterns)]
10568 if let TypeSpecificElement::VendorSpecific(_) = self {
10569 } else {
10571 *self = TypeSpecificElement::VendorSpecific(fidl::new_empty!(
10573 VendorSpecific,
10574 D
10575 ));
10576 }
10577 #[allow(irrefutable_let_patterns)]
10578 if let TypeSpecificElement::VendorSpecific(ref mut val) = self {
10579 fidl::decode!(VendorSpecific, D, val, decoder, _inner_offset, depth)?;
10580 } else {
10581 unreachable!()
10582 }
10583 }
10584 2 => {
10585 #[allow(irrefutable_let_patterns)]
10586 if let TypeSpecificElement::Gain(_) = self {
10587 } else {
10589 *self = TypeSpecificElement::Gain(fidl::new_empty!(Gain, D));
10591 }
10592 #[allow(irrefutable_let_patterns)]
10593 if let TypeSpecificElement::Gain(ref mut val) = self {
10594 fidl::decode!(Gain, D, val, decoder, _inner_offset, depth)?;
10595 } else {
10596 unreachable!()
10597 }
10598 }
10599 3 => {
10600 #[allow(irrefutable_let_patterns)]
10601 if let TypeSpecificElement::Equalizer(_) = self {
10602 } else {
10604 *self = TypeSpecificElement::Equalizer(fidl::new_empty!(Equalizer, D));
10606 }
10607 #[allow(irrefutable_let_patterns)]
10608 if let TypeSpecificElement::Equalizer(ref mut val) = self {
10609 fidl::decode!(Equalizer, D, val, decoder, _inner_offset, depth)?;
10610 } else {
10611 unreachable!()
10612 }
10613 }
10614 4 => {
10615 #[allow(irrefutable_let_patterns)]
10616 if let TypeSpecificElement::Dynamics(_) = self {
10617 } else {
10619 *self = TypeSpecificElement::Dynamics(fidl::new_empty!(Dynamics, D));
10621 }
10622 #[allow(irrefutable_let_patterns)]
10623 if let TypeSpecificElement::Dynamics(ref mut val) = self {
10624 fidl::decode!(Dynamics, D, val, decoder, _inner_offset, depth)?;
10625 } else {
10626 unreachable!()
10627 }
10628 }
10629 5 => {
10630 #[allow(irrefutable_let_patterns)]
10631 if let TypeSpecificElement::Endpoint(_) = self {
10632 } else {
10634 *self = TypeSpecificElement::Endpoint(fidl::new_empty!(Endpoint, D));
10636 }
10637 #[allow(irrefutable_let_patterns)]
10638 if let TypeSpecificElement::Endpoint(ref mut val) = self {
10639 fidl::decode!(Endpoint, D, val, decoder, _inner_offset, depth)?;
10640 } else {
10641 unreachable!()
10642 }
10643 }
10644 6 => {
10645 #[allow(irrefutable_let_patterns)]
10646 if let TypeSpecificElement::DaiInterconnect(_) = self {
10647 } else {
10649 *self = TypeSpecificElement::DaiInterconnect(fidl::new_empty!(
10651 DaiInterconnect,
10652 D
10653 ));
10654 }
10655 #[allow(irrefutable_let_patterns)]
10656 if let TypeSpecificElement::DaiInterconnect(ref mut val) = self {
10657 fidl::decode!(DaiInterconnect, D, val, decoder, _inner_offset, depth)?;
10658 } else {
10659 unreachable!()
10660 }
10661 }
10662 #[allow(deprecated)]
10663 ordinal => {
10664 for _ in 0..num_handles {
10665 decoder.drop_next_handle()?;
10666 }
10667 *self = TypeSpecificElement::__SourceBreaking { unknown_ordinal: ordinal };
10668 }
10669 }
10670 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
10671 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10672 }
10673 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10674 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10675 }
10676 Ok(())
10677 }
10678 }
10679
10680 impl fidl::encoding::ValueTypeMarker for TypeSpecificElementState {
10681 type Borrowed<'a> = &'a Self;
10682 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
10683 value
10684 }
10685 }
10686
10687 unsafe impl fidl::encoding::TypeMarker for TypeSpecificElementState {
10688 type Owned = Self;
10689
10690 #[inline(always)]
10691 fn inline_align(_context: fidl::encoding::Context) -> usize {
10692 8
10693 }
10694
10695 #[inline(always)]
10696 fn inline_size(_context: fidl::encoding::Context) -> usize {
10697 16
10698 }
10699 }
10700
10701 unsafe impl<D: fidl::encoding::ResourceDialect>
10702 fidl::encoding::Encode<TypeSpecificElementState, D> for &TypeSpecificElementState
10703 {
10704 #[inline]
10705 unsafe fn encode(
10706 self,
10707 encoder: &mut fidl::encoding::Encoder<'_, D>,
10708 offset: usize,
10709 _depth: fidl::encoding::Depth,
10710 ) -> fidl::Result<()> {
10711 encoder.debug_check_bounds::<TypeSpecificElementState>(offset);
10712 encoder.write_num::<u64>(self.ordinal(), offset);
10713 match self {
10714 TypeSpecificElementState::VendorSpecific(ref val) => {
10715 fidl::encoding::encode_in_envelope::<VendorSpecificState, D>(
10716 <VendorSpecificState as fidl::encoding::ValueTypeMarker>::borrow(val),
10717 encoder,
10718 offset + 8,
10719 _depth,
10720 )
10721 }
10722 TypeSpecificElementState::Gain(ref val) => {
10723 fidl::encoding::encode_in_envelope::<GainElementState, D>(
10724 <GainElementState as fidl::encoding::ValueTypeMarker>::borrow(val),
10725 encoder,
10726 offset + 8,
10727 _depth,
10728 )
10729 }
10730 TypeSpecificElementState::Equalizer(ref val) => {
10731 fidl::encoding::encode_in_envelope::<EqualizerElementState, D>(
10732 <EqualizerElementState as fidl::encoding::ValueTypeMarker>::borrow(val),
10733 encoder,
10734 offset + 8,
10735 _depth,
10736 )
10737 }
10738 TypeSpecificElementState::Dynamics(ref val) => {
10739 fidl::encoding::encode_in_envelope::<DynamicsElementState, D>(
10740 <DynamicsElementState as fidl::encoding::ValueTypeMarker>::borrow(val),
10741 encoder,
10742 offset + 8,
10743 _depth,
10744 )
10745 }
10746 TypeSpecificElementState::Endpoint(ref val) => {
10747 fidl::encoding::encode_in_envelope::<EndpointElementState, D>(
10748 <EndpointElementState as fidl::encoding::ValueTypeMarker>::borrow(val),
10749 encoder,
10750 offset + 8,
10751 _depth,
10752 )
10753 }
10754 TypeSpecificElementState::DaiInterconnect(ref val) => {
10755 fidl::encoding::encode_in_envelope::<DaiInterconnectElementState, D>(
10756 <DaiInterconnectElementState as fidl::encoding::ValueTypeMarker>::borrow(
10757 val,
10758 ),
10759 encoder,
10760 offset + 8,
10761 _depth,
10762 )
10763 }
10764 TypeSpecificElementState::__SourceBreaking { .. } => {
10765 Err(fidl::Error::UnknownUnionTag)
10766 }
10767 }
10768 }
10769 }
10770
10771 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
10772 for TypeSpecificElementState
10773 {
10774 #[inline(always)]
10775 fn new_empty() -> Self {
10776 Self::__SourceBreaking { unknown_ordinal: 0 }
10777 }
10778
10779 #[inline]
10780 unsafe fn decode(
10781 &mut self,
10782 decoder: &mut fidl::encoding::Decoder<'_, D>,
10783 offset: usize,
10784 mut depth: fidl::encoding::Depth,
10785 ) -> fidl::Result<()> {
10786 decoder.debug_check_bounds::<Self>(offset);
10787 #[allow(unused_variables)]
10788 let next_out_of_line = decoder.next_out_of_line();
10789 let handles_before = decoder.remaining_handles();
10790 let (ordinal, inlined, num_bytes, num_handles) =
10791 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
10792
10793 let member_inline_size = match ordinal {
10794 1 => <VendorSpecificState as fidl::encoding::TypeMarker>::inline_size(
10795 decoder.context,
10796 ),
10797 2 => <GainElementState as fidl::encoding::TypeMarker>::inline_size(decoder.context),
10798 3 => <EqualizerElementState as fidl::encoding::TypeMarker>::inline_size(
10799 decoder.context,
10800 ),
10801 4 => <DynamicsElementState as fidl::encoding::TypeMarker>::inline_size(
10802 decoder.context,
10803 ),
10804 5 => <EndpointElementState as fidl::encoding::TypeMarker>::inline_size(
10805 decoder.context,
10806 ),
10807 6 => <DaiInterconnectElementState as fidl::encoding::TypeMarker>::inline_size(
10808 decoder.context,
10809 ),
10810 0 => return Err(fidl::Error::UnknownUnionTag),
10811 _ => num_bytes as usize,
10812 };
10813
10814 if inlined != (member_inline_size <= 4) {
10815 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10816 }
10817 let _inner_offset;
10818 if inlined {
10819 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
10820 _inner_offset = offset + 8;
10821 } else {
10822 depth.increment()?;
10823 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10824 }
10825 match ordinal {
10826 1 => {
10827 #[allow(irrefutable_let_patterns)]
10828 if let TypeSpecificElementState::VendorSpecific(_) = self {
10829 } else {
10831 *self = TypeSpecificElementState::VendorSpecific(fidl::new_empty!(
10833 VendorSpecificState,
10834 D
10835 ));
10836 }
10837 #[allow(irrefutable_let_patterns)]
10838 if let TypeSpecificElementState::VendorSpecific(ref mut val) = self {
10839 fidl::decode!(VendorSpecificState, D, val, decoder, _inner_offset, depth)?;
10840 } else {
10841 unreachable!()
10842 }
10843 }
10844 2 => {
10845 #[allow(irrefutable_let_patterns)]
10846 if let TypeSpecificElementState::Gain(_) = self {
10847 } else {
10849 *self =
10851 TypeSpecificElementState::Gain(fidl::new_empty!(GainElementState, D));
10852 }
10853 #[allow(irrefutable_let_patterns)]
10854 if let TypeSpecificElementState::Gain(ref mut val) = self {
10855 fidl::decode!(GainElementState, D, val, decoder, _inner_offset, depth)?;
10856 } else {
10857 unreachable!()
10858 }
10859 }
10860 3 => {
10861 #[allow(irrefutable_let_patterns)]
10862 if let TypeSpecificElementState::Equalizer(_) = self {
10863 } else {
10865 *self = TypeSpecificElementState::Equalizer(fidl::new_empty!(
10867 EqualizerElementState,
10868 D
10869 ));
10870 }
10871 #[allow(irrefutable_let_patterns)]
10872 if let TypeSpecificElementState::Equalizer(ref mut val) = self {
10873 fidl::decode!(
10874 EqualizerElementState,
10875 D,
10876 val,
10877 decoder,
10878 _inner_offset,
10879 depth
10880 )?;
10881 } else {
10882 unreachable!()
10883 }
10884 }
10885 4 => {
10886 #[allow(irrefutable_let_patterns)]
10887 if let TypeSpecificElementState::Dynamics(_) = self {
10888 } else {
10890 *self = TypeSpecificElementState::Dynamics(fidl::new_empty!(
10892 DynamicsElementState,
10893 D
10894 ));
10895 }
10896 #[allow(irrefutable_let_patterns)]
10897 if let TypeSpecificElementState::Dynamics(ref mut val) = self {
10898 fidl::decode!(DynamicsElementState, D, val, decoder, _inner_offset, depth)?;
10899 } else {
10900 unreachable!()
10901 }
10902 }
10903 5 => {
10904 #[allow(irrefutable_let_patterns)]
10905 if let TypeSpecificElementState::Endpoint(_) = self {
10906 } else {
10908 *self = TypeSpecificElementState::Endpoint(fidl::new_empty!(
10910 EndpointElementState,
10911 D
10912 ));
10913 }
10914 #[allow(irrefutable_let_patterns)]
10915 if let TypeSpecificElementState::Endpoint(ref mut val) = self {
10916 fidl::decode!(EndpointElementState, D, val, decoder, _inner_offset, depth)?;
10917 } else {
10918 unreachable!()
10919 }
10920 }
10921 6 => {
10922 #[allow(irrefutable_let_patterns)]
10923 if let TypeSpecificElementState::DaiInterconnect(_) = self {
10924 } else {
10926 *self = TypeSpecificElementState::DaiInterconnect(fidl::new_empty!(
10928 DaiInterconnectElementState,
10929 D
10930 ));
10931 }
10932 #[allow(irrefutable_let_patterns)]
10933 if let TypeSpecificElementState::DaiInterconnect(ref mut val) = self {
10934 fidl::decode!(
10935 DaiInterconnectElementState,
10936 D,
10937 val,
10938 decoder,
10939 _inner_offset,
10940 depth
10941 )?;
10942 } else {
10943 unreachable!()
10944 }
10945 }
10946 #[allow(deprecated)]
10947 ordinal => {
10948 for _ in 0..num_handles {
10949 decoder.drop_next_handle()?;
10950 }
10951 *self = TypeSpecificElementState::__SourceBreaking { unknown_ordinal: ordinal };
10952 }
10953 }
10954 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
10955 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10956 }
10957 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10958 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10959 }
10960 Ok(())
10961 }
10962 }
10963}