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