1#![warn(clippy::all)]
4#![allow(unused_parens, unused_mut, unused_imports, nonstandard_style)]
5
6use bitflags::bitflags;
7use fidl::encoding::{MessageBufFor, ProxyChannelBox, ResourceDialect};
8use futures::future::{self, MaybeDone, TryFutureExt};
9use zx_status;
10
11pub type ElementId = u64;
12
13pub type TopologyId = u64;
14
15pub const MAX_BYTES_ELEMENT_VENDOR_SPECIFIC: u32 = 4096;
16
17pub const MAX_COUNT_DYNAMICS_BANDS: u32 = 64;
18
19pub const MAX_COUNT_EQUALIZER_BANDS: u32 = 64;
20
21pub const MAX_COUNT_PROCESSING_ELEMENTS: u32 = 64;
22
23pub const MAX_COUNT_PROCESSING_ELEMENTS_EDGE_PAIRS: u32 = 64;
24
25pub const MAX_COUNT_TOPOLOGIES: u32 = 64;
26
27pub const MAX_STRING_SIZE: u32 = 256;
28
29bitflags! {
30 #[derive(Clone, Copy, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Hash)]
34 pub struct DynamicsSupportedControls: u64 {
35 const KNEE_WIDTH = 1;
37 const ATTACK = 2;
39 const RELEASE = 4;
41 const OUTPUT_GAIN = 8;
43 const INPUT_GAIN = 16;
45 const LOOKAHEAD = 32;
47 const LEVEL_TYPE = 64;
49 const LINKED_CHANNELS = 128;
51 const THRESHOLD_TYPE = 256;
53 }
54}
55
56impl DynamicsSupportedControls {
57 #[inline(always)]
58 pub fn from_bits_allow_unknown(bits: u64) -> Self {
59 Self::from_bits_retain(bits)
60 }
61
62 #[inline(always)]
63 pub fn has_unknown_bits(&self) -> bool {
64 self.get_unknown_bits() != 0
65 }
66
67 #[inline(always)]
68 pub fn get_unknown_bits(&self) -> u64 {
69 self.bits() & !Self::all().bits()
70 }
71}
72
73bitflags! {
74 #[derive(Clone, Copy, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Hash)]
76 pub struct EqualizerSupportedControls: u64 {
77 const CAN_CONTROL_FREQUENCY = 1;
79 const CAN_CONTROL_Q = 2;
81 const SUPPORTS_TYPE_PEAK = 4;
83 const SUPPORTS_TYPE_NOTCH = 8;
85 const SUPPORTS_TYPE_LOW_CUT = 16;
87 const SUPPORTS_TYPE_HIGH_CUT = 32;
89 const SUPPORTS_TYPE_LOW_SHELF = 64;
91 const SUPPORTS_TYPE_HIGH_SHELF = 128;
93 }
94}
95
96impl EqualizerSupportedControls {
97 #[inline(always)]
98 pub fn from_bits_allow_unknown(bits: u64) -> Self {
99 Self::from_bits_retain(bits)
100 }
101
102 #[inline(always)]
103 pub fn has_unknown_bits(&self) -> bool {
104 self.get_unknown_bits() != 0
105 }
106
107 #[inline(always)]
108 pub fn get_unknown_bits(&self) -> u64 {
109 self.bits() & !Self::all().bits()
110 }
111}
112
113#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
114pub enum ElementType {
115 VendorSpecific,
117 ConnectionPoint,
119 Gain,
121 AutomaticGainControl,
124 AutomaticGainLimiter,
128 Dynamics,
130 Mute,
132 Delay,
134 Equalizer,
136 SampleRateConversion,
138 RingBuffer,
143 DaiInterconnect,
148 PacketStream,
153 #[doc(hidden)]
154 __SourceBreaking { unknown_ordinal: u32 },
155}
156
157#[macro_export]
159macro_rules! ElementTypeUnknown {
160 () => {
161 _
162 };
163}
164
165impl ElementType {
166 #[inline]
167 pub fn from_primitive(prim: u32) -> Option<Self> {
168 match prim {
169 1 => Some(Self::VendorSpecific),
170 3 => Some(Self::ConnectionPoint),
171 4 => Some(Self::Gain),
172 5 => Some(Self::AutomaticGainControl),
173 6 => Some(Self::AutomaticGainLimiter),
174 7 => Some(Self::Dynamics),
175 8 => Some(Self::Mute),
176 9 => Some(Self::Delay),
177 10 => Some(Self::Equalizer),
178 11 => Some(Self::SampleRateConversion),
179 13 => Some(Self::RingBuffer),
180 14 => Some(Self::DaiInterconnect),
181 15 => Some(Self::PacketStream),
182 _ => None,
183 }
184 }
185
186 #[inline]
187 pub fn from_primitive_allow_unknown(prim: u32) -> Self {
188 match prim {
189 1 => Self::VendorSpecific,
190 3 => Self::ConnectionPoint,
191 4 => Self::Gain,
192 5 => Self::AutomaticGainControl,
193 6 => Self::AutomaticGainLimiter,
194 7 => Self::Dynamics,
195 8 => Self::Mute,
196 9 => Self::Delay,
197 10 => Self::Equalizer,
198 11 => Self::SampleRateConversion,
199 13 => Self::RingBuffer,
200 14 => Self::DaiInterconnect,
201 15 => Self::PacketStream,
202 unknown_ordinal => Self::__SourceBreaking { unknown_ordinal },
203 }
204 }
205
206 #[inline]
207 pub fn unknown() -> Self {
208 Self::__SourceBreaking { unknown_ordinal: 0xffffffff }
209 }
210
211 #[inline]
212 pub const fn into_primitive(self) -> u32 {
213 match self {
214 Self::VendorSpecific => 1,
215 Self::ConnectionPoint => 3,
216 Self::Gain => 4,
217 Self::AutomaticGainControl => 5,
218 Self::AutomaticGainLimiter => 6,
219 Self::Dynamics => 7,
220 Self::Mute => 8,
221 Self::Delay => 9,
222 Self::Equalizer => 10,
223 Self::SampleRateConversion => 11,
224 Self::RingBuffer => 13,
225 Self::DaiInterconnect => 14,
226 Self::PacketStream => 15,
227 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
228 }
229 }
230
231 #[inline]
232 pub fn is_unknown(&self) -> bool {
233 match self {
234 Self::__SourceBreaking { unknown_ordinal: _ } => true,
235 _ => false,
236 }
237 }
238}
239
240#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
242pub enum EqualizerBandType {
243 Peak,
245 Notch,
247 LowCut,
249 HighCut,
251 LowShelf,
253 HighShelf,
255 #[doc(hidden)]
256 __SourceBreaking { unknown_ordinal: u64 },
257}
258
259#[macro_export]
261macro_rules! EqualizerBandTypeUnknown {
262 () => {
263 _
264 };
265}
266
267impl EqualizerBandType {
268 #[inline]
269 pub fn from_primitive(prim: u64) -> Option<Self> {
270 match prim {
271 1 => Some(Self::Peak),
272 2 => Some(Self::Notch),
273 3 => Some(Self::LowCut),
274 4 => Some(Self::HighCut),
275 5 => Some(Self::LowShelf),
276 6 => Some(Self::HighShelf),
277 _ => None,
278 }
279 }
280
281 #[inline]
282 pub fn from_primitive_allow_unknown(prim: u64) -> Self {
283 match prim {
284 1 => Self::Peak,
285 2 => Self::Notch,
286 3 => Self::LowCut,
287 4 => Self::HighCut,
288 5 => Self::LowShelf,
289 6 => Self::HighShelf,
290 unknown_ordinal => Self::__SourceBreaking { unknown_ordinal },
291 }
292 }
293
294 #[inline]
295 pub fn unknown() -> Self {
296 Self::__SourceBreaking { unknown_ordinal: 0xffffffffffffffff }
297 }
298
299 #[inline]
300 pub const fn into_primitive(self) -> u64 {
301 match self {
302 Self::Peak => 1,
303 Self::Notch => 2,
304 Self::LowCut => 3,
305 Self::HighCut => 4,
306 Self::LowShelf => 5,
307 Self::HighShelf => 6,
308 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
309 }
310 }
311
312 #[inline]
313 pub fn is_unknown(&self) -> bool {
314 match self {
315 Self::__SourceBreaking { unknown_ordinal: _ } => true,
316 _ => false,
317 }
318 }
319}
320
321#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
323pub enum GainDomain {
324 Digital,
326 Analog,
328 Mixed,
330 #[doc(hidden)]
331 __SourceBreaking { unknown_ordinal: u8 },
332}
333
334#[macro_export]
336macro_rules! GainDomainUnknown {
337 () => {
338 _
339 };
340}
341
342impl GainDomain {
343 #[inline]
344 pub fn from_primitive(prim: u8) -> Option<Self> {
345 match prim {
346 1 => Some(Self::Digital),
347 2 => Some(Self::Analog),
348 3 => Some(Self::Mixed),
349 _ => None,
350 }
351 }
352
353 #[inline]
354 pub fn from_primitive_allow_unknown(prim: u8) -> Self {
355 match prim {
356 1 => Self::Digital,
357 2 => Self::Analog,
358 3 => Self::Mixed,
359 unknown_ordinal => Self::__SourceBreaking { unknown_ordinal },
360 }
361 }
362
363 #[inline]
364 pub fn unknown() -> Self {
365 Self::__SourceBreaking { unknown_ordinal: 0xff }
366 }
367
368 #[inline]
369 pub const fn into_primitive(self) -> u8 {
370 match self {
371 Self::Digital => 1,
372 Self::Analog => 2,
373 Self::Mixed => 3,
374 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
375 }
376 }
377
378 #[inline]
379 pub fn is_unknown(&self) -> bool {
380 match self {
381 Self::__SourceBreaking { unknown_ordinal: _ } => true,
382 _ => false,
383 }
384 }
385}
386
387#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
389#[repr(u8)]
390pub enum GainType {
391 Decibels = 1,
393 Percent = 2,
395}
396
397impl GainType {
398 #[inline]
399 pub fn from_primitive(prim: u8) -> Option<Self> {
400 match prim {
401 1 => Some(Self::Decibels),
402 2 => Some(Self::Percent),
403 _ => None,
404 }
405 }
406
407 #[inline]
408 pub const fn into_primitive(self) -> u8 {
409 self as u8
410 }
411}
412
413#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
415#[repr(u8)]
416pub enum LevelType {
417 Peak = 1,
419 Rms = 2,
421}
422
423impl LevelType {
424 #[inline]
425 pub fn from_primitive(prim: u8) -> Option<Self> {
426 match prim {
427 1 => Some(Self::Peak),
428 2 => Some(Self::Rms),
429 _ => None,
430 }
431 }
432
433 #[inline]
434 pub const fn into_primitive(self) -> u8 {
435 self as u8
436 }
437}
438
439#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
441pub enum PlugDetectCapabilities {
442 Hardwired,
444 CanAsyncNotify,
446 #[doc(hidden)]
447 __SourceBreaking { unknown_ordinal: u32 },
448}
449
450#[macro_export]
452macro_rules! PlugDetectCapabilitiesUnknown {
453 () => {
454 _
455 };
456}
457
458impl PlugDetectCapabilities {
459 #[inline]
460 pub fn from_primitive(prim: u32) -> Option<Self> {
461 match prim {
462 0 => Some(Self::Hardwired),
463 1 => Some(Self::CanAsyncNotify),
464 _ => None,
465 }
466 }
467
468 #[inline]
469 pub fn from_primitive_allow_unknown(prim: u32) -> Self {
470 match prim {
471 0 => Self::Hardwired,
472 1 => Self::CanAsyncNotify,
473 unknown_ordinal => Self::__SourceBreaking { unknown_ordinal },
474 }
475 }
476
477 #[inline]
478 pub fn unknown() -> Self {
479 Self::__SourceBreaking { unknown_ordinal: 0xffffffff }
480 }
481
482 #[inline]
483 pub const fn into_primitive(self) -> u32 {
484 match self {
485 Self::Hardwired => 0,
486 Self::CanAsyncNotify => 1,
487 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
488 }
489 }
490
491 #[inline]
492 pub fn is_unknown(&self) -> bool {
493 match self {
494 Self::__SourceBreaking { unknown_ordinal: _ } => true,
495 _ => false,
496 }
497 }
498}
499
500#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
502#[repr(u8)]
503pub enum ThresholdType {
504 Above = 1,
506 Below = 2,
508}
509
510impl ThresholdType {
511 #[inline]
512 pub fn from_primitive(prim: u8) -> Option<Self> {
513 match prim {
514 1 => Some(Self::Above),
515 2 => Some(Self::Below),
516 _ => None,
517 }
518 }
519
520 #[inline]
521 pub const fn into_primitive(self) -> u8 {
522 self as u8
523 }
524}
525
526#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
529#[repr(C)]
530pub struct EdgePair {
531 pub processing_element_id_from: u64,
532 pub processing_element_id_to: u64,
533}
534
535impl fidl::Persistable for EdgePair {}
536
537#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
538#[repr(C)]
539pub struct ReaderWatchElementStateRequest {
540 pub processing_element_id: u64,
541}
542
543impl fidl::Persistable for ReaderWatchElementStateRequest {}
544
545#[derive(Clone, Debug, PartialEq)]
546pub struct ReaderWatchElementStateResponse {
547 pub state: ElementState,
548}
549
550impl fidl::Persistable for ReaderWatchElementStateResponse {}
551
552#[derive(Clone, Debug, PartialEq)]
553pub struct ReaderGetElementsResponse {
554 pub processing_elements: Vec<Element>,
555}
556
557impl fidl::Persistable for ReaderGetElementsResponse {}
558
559#[derive(Clone, Debug, PartialEq)]
560pub struct ReaderGetTopologiesResponse {
561 pub topologies: Vec<Topology>,
562}
563
564impl fidl::Persistable for ReaderGetTopologiesResponse {}
565
566#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
567#[repr(C)]
568pub struct ReaderWatchTopologyResponse {
569 pub topology_id: u64,
570}
571
572impl fidl::Persistable for ReaderWatchTopologyResponse {}
573
574#[derive(Clone, Debug, PartialEq)]
575pub struct SignalProcessingSetElementStateRequest {
576 pub processing_element_id: u64,
577 pub state: SettableElementState,
578}
579
580impl fidl::Persistable for SignalProcessingSetElementStateRequest {}
581
582#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
583#[repr(C)]
584pub struct SignalProcessingSetTopologyRequest {
585 pub topology_id: u64,
586}
587
588impl fidl::Persistable for SignalProcessingSetTopologyRequest {}
589
590#[derive(Clone, Debug, Default, PartialEq)]
592pub struct DaiInterconnect {
593 pub plug_detect_capabilities: Option<PlugDetectCapabilities>,
597 #[doc(hidden)]
598 pub __source_breaking: fidl::marker::SourceBreaking,
599}
600
601impl fidl::Persistable for DaiInterconnect {}
602
603#[derive(Clone, Debug, Default, PartialEq)]
605pub struct DaiInterconnectElementState {
606 pub plug_state: Option<PlugState>,
610 pub external_delay: Option<i64>,
621 #[doc(hidden)]
622 pub __source_breaking: fidl::marker::SourceBreaking,
623}
624
625impl fidl::Persistable for DaiInterconnectElementState {}
626
627#[derive(Clone, Debug, Default, PartialEq)]
629pub struct Dynamics {
630 pub bands: Option<Vec<DynamicsBand>>,
637 pub supported_controls: Option<DynamicsSupportedControls>,
642 #[doc(hidden)]
643 pub __source_breaking: fidl::marker::SourceBreaking,
644}
645
646impl fidl::Persistable for Dynamics {}
647
648#[derive(Clone, Debug, Default, PartialEq)]
650pub struct DynamicsBand {
651 pub id: Option<u64>,
657 #[doc(hidden)]
658 pub __source_breaking: fidl::marker::SourceBreaking,
659}
660
661impl fidl::Persistable for DynamicsBand {}
662
663#[derive(Clone, Debug, Default, PartialEq)]
667pub struct DynamicsBandState {
668 pub id: Option<u64>,
671 pub min_frequency: Option<u32>,
675 pub max_frequency: Option<u32>,
681 pub threshold_db: Option<f32>,
687 pub threshold_type: Option<ThresholdType>,
693 pub ratio: Option<f32>,
697 pub knee_width_db: Option<f32>,
706 pub attack: Option<i64>,
713 pub release: Option<i64>,
720 pub output_gain_db: Option<f32>,
727 pub input_gain_db: Option<f32>,
734 pub level_type: Option<LevelType>,
741 pub lookahead: Option<i64>,
748 pub linked_channels: Option<bool>,
757 #[doc(hidden)]
758 pub __source_breaking: fidl::marker::SourceBreaking,
759}
760
761impl fidl::Persistable for DynamicsBandState {}
762
763#[derive(Clone, Debug, Default, PartialEq)]
765pub struct DynamicsElementState {
766 pub band_states: Option<Vec<DynamicsBandState>>,
772 #[doc(hidden)]
773 pub __source_breaking: fidl::marker::SourceBreaking,
774}
775
776impl fidl::Persistable for DynamicsElementState {}
777
778#[derive(Clone, Debug, Default, PartialEq)]
779pub struct Element {
780 pub id: Option<u64>,
785 pub type_: Option<ElementType>,
789 pub type_specific: Option<TypeSpecificElement>,
796 pub description: Option<String>,
800 pub can_stop: Option<bool>,
805 pub can_bypass: Option<bool>,
812 #[doc(hidden)]
813 pub __source_breaking: fidl::marker::SourceBreaking,
814}
815
816impl fidl::Persistable for Element {}
817
818#[derive(Clone, Debug, Default, PartialEq)]
821pub struct ElementState {
822 pub type_specific: Option<TypeSpecificElementState>,
833 pub vendor_specific_data: Option<Vec<u8>>,
838 pub started: Option<bool>,
849 pub bypassed: Option<bool>,
862 pub turn_on_delay: Option<i64>,
873 pub turn_off_delay: Option<i64>,
884 pub processing_delay: Option<i64>,
896 #[doc(hidden)]
897 pub __source_breaking: fidl::marker::SourceBreaking,
898}
899
900impl fidl::Persistable for ElementState {}
901
902#[derive(Clone, Debug, Default, PartialEq)]
904pub struct Equalizer {
905 pub bands: Option<Vec<EqualizerBand>>,
912 pub supported_controls: Option<EqualizerSupportedControls>,
916 pub can_disable_bands: Option<bool>,
923 pub min_frequency: Option<u32>,
927 pub max_frequency: Option<u32>,
931 pub max_q: Option<f32>,
937 pub min_gain_db: Option<f32>,
943 pub max_gain_db: Option<f32>,
949 #[doc(hidden)]
950 pub __source_breaking: fidl::marker::SourceBreaking,
951}
952
953impl fidl::Persistable for Equalizer {}
954
955#[derive(Clone, Debug, Default, PartialEq)]
957pub struct EqualizerBand {
958 pub id: Option<u64>,
963 #[doc(hidden)]
964 pub __source_breaking: fidl::marker::SourceBreaking,
965}
966
967impl fidl::Persistable for EqualizerBand {}
968
969#[derive(Clone, Debug, Default, PartialEq)]
971pub struct EqualizerBandState {
972 pub id: Option<u64>,
976 pub type_: Option<EqualizerBandType>,
982 pub frequency: Option<u32>,
988 pub q: Option<f32>,
996 pub gain_db: Option<f32>,
1001 pub enabled: Option<bool>,
1013 #[doc(hidden)]
1014 pub __source_breaking: fidl::marker::SourceBreaking,
1015}
1016
1017impl fidl::Persistable for EqualizerBandState {}
1018
1019#[derive(Clone, Debug, Default, PartialEq)]
1021pub struct EqualizerElementState {
1022 pub band_states: Option<Vec<EqualizerBandState>>,
1031 #[doc(hidden)]
1032 pub __source_breaking: fidl::marker::SourceBreaking,
1033}
1034
1035impl fidl::Persistable for EqualizerElementState {}
1036
1037#[derive(Clone, Debug, Default, PartialEq)]
1039pub struct Gain {
1040 pub type_: Option<GainType>,
1044 pub domain: Option<GainDomain>,
1049 pub min_gain: Option<f32>,
1053 pub max_gain: Option<f32>,
1057 pub min_gain_step: Option<f32>,
1063 #[doc(hidden)]
1064 pub __source_breaking: fidl::marker::SourceBreaking,
1065}
1066
1067impl fidl::Persistable for Gain {}
1068
1069#[derive(Clone, Debug, Default, PartialEq)]
1071pub struct GainElementState {
1072 pub gain: Option<f32>,
1076 #[doc(hidden)]
1077 pub __source_breaking: fidl::marker::SourceBreaking,
1078}
1079
1080impl fidl::Persistable for GainElementState {}
1081
1082#[derive(Clone, Debug, Default, PartialEq)]
1087pub struct PlugState {
1088 pub plugged: Option<bool>,
1092 pub plug_state_time: Option<i64>,
1097 #[doc(hidden)]
1098 pub __source_breaking: fidl::marker::SourceBreaking,
1099}
1100
1101impl fidl::Persistable for PlugState {}
1102
1103#[derive(Clone, Debug, Default, PartialEq)]
1105pub struct SettableElementState {
1106 pub type_specific: Option<SettableTypeSpecificElementState>,
1118 pub vendor_specific_data: Option<Vec<u8>>,
1124 pub started: Option<bool>,
1134 pub bypassed: Option<bool>,
1145 #[doc(hidden)]
1146 pub __source_breaking: fidl::marker::SourceBreaking,
1147}
1148
1149impl fidl::Persistable for SettableElementState {}
1150
1151#[derive(Clone, Debug, Default, PartialEq)]
1153pub struct Topology {
1154 pub id: Option<u64>,
1159 pub processing_elements_edge_pairs: Option<Vec<EdgePair>>,
1188 #[doc(hidden)]
1189 pub __source_breaking: fidl::marker::SourceBreaking,
1190}
1191
1192impl fidl::Persistable for Topology {}
1193
1194#[derive(Clone, Debug, Default, PartialEq)]
1196pub struct VendorSpecific {
1197 #[doc(hidden)]
1198 pub __source_breaking: fidl::marker::SourceBreaking,
1199}
1200
1201impl fidl::Persistable for VendorSpecific {}
1202
1203#[derive(Clone, Debug, Default, PartialEq)]
1205pub struct VendorSpecificState {
1206 #[doc(hidden)]
1207 pub __source_breaking: fidl::marker::SourceBreaking,
1208}
1209
1210impl fidl::Persistable for VendorSpecificState {}
1211
1212#[derive(Clone, Debug)]
1217pub enum SettableTypeSpecificElementState {
1218 VendorSpecific(VendorSpecificState),
1219 Gain(GainElementState),
1220 Equalizer(EqualizerElementState),
1221 Dynamics(DynamicsElementState),
1222 #[doc(hidden)]
1223 __SourceBreaking {
1224 unknown_ordinal: u64,
1225 },
1226}
1227
1228#[macro_export]
1230macro_rules! SettableTypeSpecificElementStateUnknown {
1231 () => {
1232 _
1233 };
1234}
1235
1236impl PartialEq for SettableTypeSpecificElementState {
1238 fn eq(&self, other: &Self) -> bool {
1239 match (self, other) {
1240 (Self::VendorSpecific(x), Self::VendorSpecific(y)) => *x == *y,
1241 (Self::Gain(x), Self::Gain(y)) => *x == *y,
1242 (Self::Equalizer(x), Self::Equalizer(y)) => *x == *y,
1243 (Self::Dynamics(x), Self::Dynamics(y)) => *x == *y,
1244 _ => false,
1245 }
1246 }
1247}
1248
1249impl SettableTypeSpecificElementState {
1250 #[inline]
1251 pub fn ordinal(&self) -> u64 {
1252 match *self {
1253 Self::VendorSpecific(_) => 1,
1254 Self::Gain(_) => 2,
1255 Self::Equalizer(_) => 3,
1256 Self::Dynamics(_) => 4,
1257 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
1258 }
1259 }
1260
1261 #[inline]
1262 pub fn unknown_variant_for_testing() -> Self {
1263 Self::__SourceBreaking { unknown_ordinal: 0 }
1264 }
1265
1266 #[inline]
1267 pub fn is_unknown(&self) -> bool {
1268 match self {
1269 Self::__SourceBreaking { .. } => true,
1270 _ => false,
1271 }
1272 }
1273}
1274
1275impl fidl::Persistable for SettableTypeSpecificElementState {}
1276
1277#[derive(Clone, Debug)]
1279pub enum TypeSpecificElement {
1280 VendorSpecific(VendorSpecific),
1281 Gain(Gain),
1282 Equalizer(Equalizer),
1283 Dynamics(Dynamics),
1284 DaiInterconnect(DaiInterconnect),
1285 #[doc(hidden)]
1286 __SourceBreaking {
1287 unknown_ordinal: u64,
1288 },
1289}
1290
1291#[macro_export]
1293macro_rules! TypeSpecificElementUnknown {
1294 () => {
1295 _
1296 };
1297}
1298
1299impl PartialEq for TypeSpecificElement {
1301 fn eq(&self, other: &Self) -> bool {
1302 match (self, other) {
1303 (Self::VendorSpecific(x), Self::VendorSpecific(y)) => *x == *y,
1304 (Self::Gain(x), Self::Gain(y)) => *x == *y,
1305 (Self::Equalizer(x), Self::Equalizer(y)) => *x == *y,
1306 (Self::Dynamics(x), Self::Dynamics(y)) => *x == *y,
1307 (Self::DaiInterconnect(x), Self::DaiInterconnect(y)) => *x == *y,
1308 _ => false,
1309 }
1310 }
1311}
1312
1313impl TypeSpecificElement {
1314 #[inline]
1315 pub fn ordinal(&self) -> u64 {
1316 match *self {
1317 Self::VendorSpecific(_) => 1,
1318 Self::Gain(_) => 2,
1319 Self::Equalizer(_) => 3,
1320 Self::Dynamics(_) => 4,
1321 Self::DaiInterconnect(_) => 6,
1322 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
1323 }
1324 }
1325
1326 #[inline]
1327 pub fn unknown_variant_for_testing() -> Self {
1328 Self::__SourceBreaking { unknown_ordinal: 0 }
1329 }
1330
1331 #[inline]
1332 pub fn is_unknown(&self) -> bool {
1333 match self {
1334 Self::__SourceBreaking { .. } => true,
1335 _ => false,
1336 }
1337 }
1338}
1339
1340impl fidl::Persistable for TypeSpecificElement {}
1341
1342#[derive(Clone, Debug)]
1347pub enum TypeSpecificElementState {
1348 VendorSpecific(VendorSpecificState),
1349 Gain(GainElementState),
1350 Equalizer(EqualizerElementState),
1351 Dynamics(DynamicsElementState),
1352 DaiInterconnect(DaiInterconnectElementState),
1353 #[doc(hidden)]
1354 __SourceBreaking {
1355 unknown_ordinal: u64,
1356 },
1357}
1358
1359#[macro_export]
1361macro_rules! TypeSpecificElementStateUnknown {
1362 () => {
1363 _
1364 };
1365}
1366
1367impl PartialEq for TypeSpecificElementState {
1369 fn eq(&self, other: &Self) -> bool {
1370 match (self, other) {
1371 (Self::VendorSpecific(x), Self::VendorSpecific(y)) => *x == *y,
1372 (Self::Gain(x), Self::Gain(y)) => *x == *y,
1373 (Self::Equalizer(x), Self::Equalizer(y)) => *x == *y,
1374 (Self::Dynamics(x), Self::Dynamics(y)) => *x == *y,
1375 (Self::DaiInterconnect(x), Self::DaiInterconnect(y)) => *x == *y,
1376 _ => false,
1377 }
1378 }
1379}
1380
1381impl TypeSpecificElementState {
1382 #[inline]
1383 pub fn ordinal(&self) -> u64 {
1384 match *self {
1385 Self::VendorSpecific(_) => 1,
1386 Self::Gain(_) => 2,
1387 Self::Equalizer(_) => 3,
1388 Self::Dynamics(_) => 4,
1389 Self::DaiInterconnect(_) => 6,
1390 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
1391 }
1392 }
1393
1394 #[inline]
1395 pub fn unknown_variant_for_testing() -> Self {
1396 Self::__SourceBreaking { unknown_ordinal: 0 }
1397 }
1398
1399 #[inline]
1400 pub fn is_unknown(&self) -> bool {
1401 match self {
1402 Self::__SourceBreaking { .. } => true,
1403 _ => false,
1404 }
1405 }
1406}
1407
1408impl fidl::Persistable for TypeSpecificElementState {}
1409
1410pub mod connector_ordinals {
1411 pub const SIGNAL_PROCESSING_CONNECT: u64 = 0xa81907ce6066295;
1412}
1413
1414pub mod reader_ordinals {
1415 pub const GET_ELEMENTS: u64 = 0x1b14ff4adf5dc6f8;
1416 pub const WATCH_ELEMENT_STATE: u64 = 0x524da8772a69056f;
1417 pub const GET_TOPOLOGIES: u64 = 0x73ffb73af24d30b6;
1418 pub const WATCH_TOPOLOGY: u64 = 0x66d172acdb36a729;
1419}
1420
1421pub mod signal_processing_ordinals {
1422 pub const GET_ELEMENTS: u64 = 0x1b14ff4adf5dc6f8;
1423 pub const WATCH_ELEMENT_STATE: u64 = 0x524da8772a69056f;
1424 pub const GET_TOPOLOGIES: u64 = 0x73ffb73af24d30b6;
1425 pub const WATCH_TOPOLOGY: u64 = 0x66d172acdb36a729;
1426 pub const SET_TOPOLOGY: u64 = 0x1d9a7f9b8fee790c;
1427 pub const SET_ELEMENT_STATE: u64 = 0x38c3b2d4bae698f4;
1428}
1429
1430mod internal {
1431 use super::*;
1432 unsafe impl fidl::encoding::TypeMarker for DynamicsSupportedControls {
1433 type Owned = Self;
1434
1435 #[inline(always)]
1436 fn inline_align(_context: fidl::encoding::Context) -> usize {
1437 8
1438 }
1439
1440 #[inline(always)]
1441 fn inline_size(_context: fidl::encoding::Context) -> usize {
1442 8
1443 }
1444 }
1445
1446 impl fidl::encoding::ValueTypeMarker for DynamicsSupportedControls {
1447 type Borrowed<'a> = Self;
1448 #[inline(always)]
1449 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1450 *value
1451 }
1452 }
1453
1454 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
1455 for DynamicsSupportedControls
1456 {
1457 #[inline]
1458 unsafe fn encode(
1459 self,
1460 encoder: &mut fidl::encoding::Encoder<'_, D>,
1461 offset: usize,
1462 _depth: fidl::encoding::Depth,
1463 ) -> fidl::Result<()> {
1464 encoder.debug_check_bounds::<Self>(offset);
1465 encoder.write_num(self.bits(), offset);
1466 Ok(())
1467 }
1468 }
1469
1470 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1471 for DynamicsSupportedControls
1472 {
1473 #[inline(always)]
1474 fn new_empty() -> Self {
1475 Self::empty()
1476 }
1477
1478 #[inline]
1479 unsafe fn decode(
1480 &mut self,
1481 decoder: &mut fidl::encoding::Decoder<'_, D>,
1482 offset: usize,
1483 _depth: fidl::encoding::Depth,
1484 ) -> fidl::Result<()> {
1485 decoder.debug_check_bounds::<Self>(offset);
1486 let prim = decoder.read_num::<u64>(offset);
1487 *self = Self::from_bits_allow_unknown(prim);
1488 Ok(())
1489 }
1490 }
1491 unsafe impl fidl::encoding::TypeMarker for EqualizerSupportedControls {
1492 type Owned = Self;
1493
1494 #[inline(always)]
1495 fn inline_align(_context: fidl::encoding::Context) -> usize {
1496 8
1497 }
1498
1499 #[inline(always)]
1500 fn inline_size(_context: fidl::encoding::Context) -> usize {
1501 8
1502 }
1503 }
1504
1505 impl fidl::encoding::ValueTypeMarker for EqualizerSupportedControls {
1506 type Borrowed<'a> = Self;
1507 #[inline(always)]
1508 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1509 *value
1510 }
1511 }
1512
1513 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
1514 for EqualizerSupportedControls
1515 {
1516 #[inline]
1517 unsafe fn encode(
1518 self,
1519 encoder: &mut fidl::encoding::Encoder<'_, D>,
1520 offset: usize,
1521 _depth: fidl::encoding::Depth,
1522 ) -> fidl::Result<()> {
1523 encoder.debug_check_bounds::<Self>(offset);
1524 encoder.write_num(self.bits(), offset);
1525 Ok(())
1526 }
1527 }
1528
1529 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1530 for EqualizerSupportedControls
1531 {
1532 #[inline(always)]
1533 fn new_empty() -> Self {
1534 Self::empty()
1535 }
1536
1537 #[inline]
1538 unsafe fn decode(
1539 &mut self,
1540 decoder: &mut fidl::encoding::Decoder<'_, D>,
1541 offset: usize,
1542 _depth: fidl::encoding::Depth,
1543 ) -> fidl::Result<()> {
1544 decoder.debug_check_bounds::<Self>(offset);
1545 let prim = decoder.read_num::<u64>(offset);
1546 *self = Self::from_bits_allow_unknown(prim);
1547 Ok(())
1548 }
1549 }
1550 unsafe impl fidl::encoding::TypeMarker for ElementType {
1551 type Owned = Self;
1552
1553 #[inline(always)]
1554 fn inline_align(_context: fidl::encoding::Context) -> usize {
1555 std::mem::align_of::<u32>()
1556 }
1557
1558 #[inline(always)]
1559 fn inline_size(_context: fidl::encoding::Context) -> usize {
1560 std::mem::size_of::<u32>()
1561 }
1562
1563 #[inline(always)]
1564 fn encode_is_copy() -> bool {
1565 false
1566 }
1567
1568 #[inline(always)]
1569 fn decode_is_copy() -> bool {
1570 false
1571 }
1572 }
1573
1574 impl fidl::encoding::ValueTypeMarker for ElementType {
1575 type Borrowed<'a> = Self;
1576 #[inline(always)]
1577 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1578 *value
1579 }
1580 }
1581
1582 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for ElementType {
1583 #[inline]
1584 unsafe fn encode(
1585 self,
1586 encoder: &mut fidl::encoding::Encoder<'_, D>,
1587 offset: usize,
1588 _depth: fidl::encoding::Depth,
1589 ) -> fidl::Result<()> {
1590 encoder.debug_check_bounds::<Self>(offset);
1591 encoder.write_num(self.into_primitive(), offset);
1592 Ok(())
1593 }
1594 }
1595
1596 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ElementType {
1597 #[inline(always)]
1598 fn new_empty() -> Self {
1599 Self::unknown()
1600 }
1601
1602 #[inline]
1603 unsafe fn decode(
1604 &mut self,
1605 decoder: &mut fidl::encoding::Decoder<'_, D>,
1606 offset: usize,
1607 _depth: fidl::encoding::Depth,
1608 ) -> fidl::Result<()> {
1609 decoder.debug_check_bounds::<Self>(offset);
1610 let prim = decoder.read_num::<u32>(offset);
1611
1612 *self = Self::from_primitive_allow_unknown(prim);
1613 Ok(())
1614 }
1615 }
1616 unsafe impl fidl::encoding::TypeMarker for EqualizerBandType {
1617 type Owned = Self;
1618
1619 #[inline(always)]
1620 fn inline_align(_context: fidl::encoding::Context) -> usize {
1621 std::mem::align_of::<u64>()
1622 }
1623
1624 #[inline(always)]
1625 fn inline_size(_context: fidl::encoding::Context) -> usize {
1626 std::mem::size_of::<u64>()
1627 }
1628
1629 #[inline(always)]
1630 fn encode_is_copy() -> bool {
1631 false
1632 }
1633
1634 #[inline(always)]
1635 fn decode_is_copy() -> bool {
1636 false
1637 }
1638 }
1639
1640 impl fidl::encoding::ValueTypeMarker for EqualizerBandType {
1641 type Borrowed<'a> = Self;
1642 #[inline(always)]
1643 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1644 *value
1645 }
1646 }
1647
1648 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
1649 for EqualizerBandType
1650 {
1651 #[inline]
1652 unsafe fn encode(
1653 self,
1654 encoder: &mut fidl::encoding::Encoder<'_, D>,
1655 offset: usize,
1656 _depth: fidl::encoding::Depth,
1657 ) -> fidl::Result<()> {
1658 encoder.debug_check_bounds::<Self>(offset);
1659 encoder.write_num(self.into_primitive(), offset);
1660 Ok(())
1661 }
1662 }
1663
1664 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for EqualizerBandType {
1665 #[inline(always)]
1666 fn new_empty() -> Self {
1667 Self::unknown()
1668 }
1669
1670 #[inline]
1671 unsafe fn decode(
1672 &mut self,
1673 decoder: &mut fidl::encoding::Decoder<'_, D>,
1674 offset: usize,
1675 _depth: fidl::encoding::Depth,
1676 ) -> fidl::Result<()> {
1677 decoder.debug_check_bounds::<Self>(offset);
1678 let prim = decoder.read_num::<u64>(offset);
1679
1680 *self = Self::from_primitive_allow_unknown(prim);
1681 Ok(())
1682 }
1683 }
1684 unsafe impl fidl::encoding::TypeMarker for GainDomain {
1685 type Owned = Self;
1686
1687 #[inline(always)]
1688 fn inline_align(_context: fidl::encoding::Context) -> usize {
1689 std::mem::align_of::<u8>()
1690 }
1691
1692 #[inline(always)]
1693 fn inline_size(_context: fidl::encoding::Context) -> usize {
1694 std::mem::size_of::<u8>()
1695 }
1696
1697 #[inline(always)]
1698 fn encode_is_copy() -> bool {
1699 false
1700 }
1701
1702 #[inline(always)]
1703 fn decode_is_copy() -> bool {
1704 false
1705 }
1706 }
1707
1708 impl fidl::encoding::ValueTypeMarker for GainDomain {
1709 type Borrowed<'a> = Self;
1710 #[inline(always)]
1711 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1712 *value
1713 }
1714 }
1715
1716 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for GainDomain {
1717 #[inline]
1718 unsafe fn encode(
1719 self,
1720 encoder: &mut fidl::encoding::Encoder<'_, D>,
1721 offset: usize,
1722 _depth: fidl::encoding::Depth,
1723 ) -> fidl::Result<()> {
1724 encoder.debug_check_bounds::<Self>(offset);
1725 encoder.write_num(self.into_primitive(), offset);
1726 Ok(())
1727 }
1728 }
1729
1730 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for GainDomain {
1731 #[inline(always)]
1732 fn new_empty() -> Self {
1733 Self::unknown()
1734 }
1735
1736 #[inline]
1737 unsafe fn decode(
1738 &mut self,
1739 decoder: &mut fidl::encoding::Decoder<'_, D>,
1740 offset: usize,
1741 _depth: fidl::encoding::Depth,
1742 ) -> fidl::Result<()> {
1743 decoder.debug_check_bounds::<Self>(offset);
1744 let prim = decoder.read_num::<u8>(offset);
1745
1746 *self = Self::from_primitive_allow_unknown(prim);
1747 Ok(())
1748 }
1749 }
1750 unsafe impl fidl::encoding::TypeMarker for GainType {
1751 type Owned = Self;
1752
1753 #[inline(always)]
1754 fn inline_align(_context: fidl::encoding::Context) -> usize {
1755 std::mem::align_of::<u8>()
1756 }
1757
1758 #[inline(always)]
1759 fn inline_size(_context: fidl::encoding::Context) -> usize {
1760 std::mem::size_of::<u8>()
1761 }
1762
1763 #[inline(always)]
1764 fn encode_is_copy() -> bool {
1765 true
1766 }
1767
1768 #[inline(always)]
1769 fn decode_is_copy() -> bool {
1770 false
1771 }
1772 }
1773
1774 impl fidl::encoding::ValueTypeMarker for GainType {
1775 type Borrowed<'a> = Self;
1776 #[inline(always)]
1777 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1778 *value
1779 }
1780 }
1781
1782 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for GainType {
1783 #[inline]
1784 unsafe fn encode(
1785 self,
1786 encoder: &mut fidl::encoding::Encoder<'_, D>,
1787 offset: usize,
1788 _depth: fidl::encoding::Depth,
1789 ) -> fidl::Result<()> {
1790 encoder.debug_check_bounds::<Self>(offset);
1791 encoder.write_num(self.into_primitive(), offset);
1792 Ok(())
1793 }
1794 }
1795
1796 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for GainType {
1797 #[inline(always)]
1798 fn new_empty() -> Self {
1799 Self::Decibels
1800 }
1801
1802 #[inline]
1803 unsafe fn decode(
1804 &mut self,
1805 decoder: &mut fidl::encoding::Decoder<'_, D>,
1806 offset: usize,
1807 _depth: fidl::encoding::Depth,
1808 ) -> fidl::Result<()> {
1809 decoder.debug_check_bounds::<Self>(offset);
1810 let prim = decoder.read_num::<u8>(offset);
1811
1812 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
1813 Ok(())
1814 }
1815 }
1816 unsafe impl fidl::encoding::TypeMarker for LevelType {
1817 type Owned = Self;
1818
1819 #[inline(always)]
1820 fn inline_align(_context: fidl::encoding::Context) -> usize {
1821 std::mem::align_of::<u8>()
1822 }
1823
1824 #[inline(always)]
1825 fn inline_size(_context: fidl::encoding::Context) -> usize {
1826 std::mem::size_of::<u8>()
1827 }
1828
1829 #[inline(always)]
1830 fn encode_is_copy() -> bool {
1831 true
1832 }
1833
1834 #[inline(always)]
1835 fn decode_is_copy() -> bool {
1836 false
1837 }
1838 }
1839
1840 impl fidl::encoding::ValueTypeMarker for LevelType {
1841 type Borrowed<'a> = Self;
1842 #[inline(always)]
1843 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1844 *value
1845 }
1846 }
1847
1848 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for LevelType {
1849 #[inline]
1850 unsafe fn encode(
1851 self,
1852 encoder: &mut fidl::encoding::Encoder<'_, D>,
1853 offset: usize,
1854 _depth: fidl::encoding::Depth,
1855 ) -> fidl::Result<()> {
1856 encoder.debug_check_bounds::<Self>(offset);
1857 encoder.write_num(self.into_primitive(), offset);
1858 Ok(())
1859 }
1860 }
1861
1862 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for LevelType {
1863 #[inline(always)]
1864 fn new_empty() -> Self {
1865 Self::Peak
1866 }
1867
1868 #[inline]
1869 unsafe fn decode(
1870 &mut self,
1871 decoder: &mut fidl::encoding::Decoder<'_, D>,
1872 offset: usize,
1873 _depth: fidl::encoding::Depth,
1874 ) -> fidl::Result<()> {
1875 decoder.debug_check_bounds::<Self>(offset);
1876 let prim = decoder.read_num::<u8>(offset);
1877
1878 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
1879 Ok(())
1880 }
1881 }
1882 unsafe impl fidl::encoding::TypeMarker for PlugDetectCapabilities {
1883 type Owned = Self;
1884
1885 #[inline(always)]
1886 fn inline_align(_context: fidl::encoding::Context) -> usize {
1887 std::mem::align_of::<u32>()
1888 }
1889
1890 #[inline(always)]
1891 fn inline_size(_context: fidl::encoding::Context) -> usize {
1892 std::mem::size_of::<u32>()
1893 }
1894
1895 #[inline(always)]
1896 fn encode_is_copy() -> bool {
1897 false
1898 }
1899
1900 #[inline(always)]
1901 fn decode_is_copy() -> bool {
1902 false
1903 }
1904 }
1905
1906 impl fidl::encoding::ValueTypeMarker for PlugDetectCapabilities {
1907 type Borrowed<'a> = Self;
1908 #[inline(always)]
1909 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1910 *value
1911 }
1912 }
1913
1914 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
1915 for PlugDetectCapabilities
1916 {
1917 #[inline]
1918 unsafe fn encode(
1919 self,
1920 encoder: &mut fidl::encoding::Encoder<'_, D>,
1921 offset: usize,
1922 _depth: fidl::encoding::Depth,
1923 ) -> fidl::Result<()> {
1924 encoder.debug_check_bounds::<Self>(offset);
1925 encoder.write_num(self.into_primitive(), offset);
1926 Ok(())
1927 }
1928 }
1929
1930 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1931 for PlugDetectCapabilities
1932 {
1933 #[inline(always)]
1934 fn new_empty() -> Self {
1935 Self::unknown()
1936 }
1937
1938 #[inline]
1939 unsafe fn decode(
1940 &mut self,
1941 decoder: &mut fidl::encoding::Decoder<'_, D>,
1942 offset: usize,
1943 _depth: fidl::encoding::Depth,
1944 ) -> fidl::Result<()> {
1945 decoder.debug_check_bounds::<Self>(offset);
1946 let prim = decoder.read_num::<u32>(offset);
1947
1948 *self = Self::from_primitive_allow_unknown(prim);
1949 Ok(())
1950 }
1951 }
1952 unsafe impl fidl::encoding::TypeMarker for ThresholdType {
1953 type Owned = Self;
1954
1955 #[inline(always)]
1956 fn inline_align(_context: fidl::encoding::Context) -> usize {
1957 std::mem::align_of::<u8>()
1958 }
1959
1960 #[inline(always)]
1961 fn inline_size(_context: fidl::encoding::Context) -> usize {
1962 std::mem::size_of::<u8>()
1963 }
1964
1965 #[inline(always)]
1966 fn encode_is_copy() -> bool {
1967 true
1968 }
1969
1970 #[inline(always)]
1971 fn decode_is_copy() -> bool {
1972 false
1973 }
1974 }
1975
1976 impl fidl::encoding::ValueTypeMarker for ThresholdType {
1977 type Borrowed<'a> = Self;
1978 #[inline(always)]
1979 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1980 *value
1981 }
1982 }
1983
1984 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for ThresholdType {
1985 #[inline]
1986 unsafe fn encode(
1987 self,
1988 encoder: &mut fidl::encoding::Encoder<'_, D>,
1989 offset: usize,
1990 _depth: fidl::encoding::Depth,
1991 ) -> fidl::Result<()> {
1992 encoder.debug_check_bounds::<Self>(offset);
1993 encoder.write_num(self.into_primitive(), offset);
1994 Ok(())
1995 }
1996 }
1997
1998 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ThresholdType {
1999 #[inline(always)]
2000 fn new_empty() -> Self {
2001 Self::Above
2002 }
2003
2004 #[inline]
2005 unsafe fn decode(
2006 &mut self,
2007 decoder: &mut fidl::encoding::Decoder<'_, D>,
2008 offset: usize,
2009 _depth: fidl::encoding::Depth,
2010 ) -> fidl::Result<()> {
2011 decoder.debug_check_bounds::<Self>(offset);
2012 let prim = decoder.read_num::<u8>(offset);
2013
2014 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
2015 Ok(())
2016 }
2017 }
2018
2019 impl fidl::encoding::ValueTypeMarker for EdgePair {
2020 type Borrowed<'a> = &'a Self;
2021 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2022 value
2023 }
2024 }
2025
2026 unsafe impl fidl::encoding::TypeMarker for EdgePair {
2027 type Owned = Self;
2028
2029 #[inline(always)]
2030 fn inline_align(_context: fidl::encoding::Context) -> usize {
2031 8
2032 }
2033
2034 #[inline(always)]
2035 fn inline_size(_context: fidl::encoding::Context) -> usize {
2036 16
2037 }
2038 #[inline(always)]
2039 fn encode_is_copy() -> bool {
2040 true
2041 }
2042
2043 #[inline(always)]
2044 fn decode_is_copy() -> bool {
2045 true
2046 }
2047 }
2048
2049 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<EdgePair, D> for &EdgePair {
2050 #[inline]
2051 unsafe fn encode(
2052 self,
2053 encoder: &mut fidl::encoding::Encoder<'_, D>,
2054 offset: usize,
2055 _depth: fidl::encoding::Depth,
2056 ) -> fidl::Result<()> {
2057 encoder.debug_check_bounds::<EdgePair>(offset);
2058 unsafe {
2059 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
2061 (buf_ptr as *mut EdgePair).write_unaligned((self as *const EdgePair).read());
2062 }
2065 Ok(())
2066 }
2067 }
2068 unsafe impl<
2069 D: fidl::encoding::ResourceDialect,
2070 T0: fidl::encoding::Encode<u64, D>,
2071 T1: fidl::encoding::Encode<u64, D>,
2072 > fidl::encoding::Encode<EdgePair, D> for (T0, T1)
2073 {
2074 #[inline]
2075 unsafe fn encode(
2076 self,
2077 encoder: &mut fidl::encoding::Encoder<'_, D>,
2078 offset: usize,
2079 depth: fidl::encoding::Depth,
2080 ) -> fidl::Result<()> {
2081 encoder.debug_check_bounds::<EdgePair>(offset);
2082 self.0.encode(encoder, offset + 0, depth)?;
2086 self.1.encode(encoder, offset + 8, depth)?;
2087 Ok(())
2088 }
2089 }
2090
2091 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for EdgePair {
2092 #[inline(always)]
2093 fn new_empty() -> Self {
2094 Self {
2095 processing_element_id_from: fidl::new_empty!(u64, D),
2096 processing_element_id_to: fidl::new_empty!(u64, D),
2097 }
2098 }
2099
2100 #[inline]
2101 unsafe fn decode(
2102 &mut self,
2103 decoder: &mut fidl::encoding::Decoder<'_, D>,
2104 offset: usize,
2105 _depth: fidl::encoding::Depth,
2106 ) -> fidl::Result<()> {
2107 decoder.debug_check_bounds::<Self>(offset);
2108 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
2109 unsafe {
2112 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 16);
2113 }
2114 Ok(())
2115 }
2116 }
2117
2118 impl fidl::encoding::ValueTypeMarker for ReaderWatchElementStateRequest {
2119 type Borrowed<'a> = &'a Self;
2120 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2121 value
2122 }
2123 }
2124
2125 unsafe impl fidl::encoding::TypeMarker for ReaderWatchElementStateRequest {
2126 type Owned = Self;
2127
2128 #[inline(always)]
2129 fn inline_align(_context: fidl::encoding::Context) -> usize {
2130 8
2131 }
2132
2133 #[inline(always)]
2134 fn inline_size(_context: fidl::encoding::Context) -> usize {
2135 8
2136 }
2137 #[inline(always)]
2138 fn encode_is_copy() -> bool {
2139 true
2140 }
2141
2142 #[inline(always)]
2143 fn decode_is_copy() -> bool {
2144 true
2145 }
2146 }
2147
2148 unsafe impl<D: fidl::encoding::ResourceDialect>
2149 fidl::encoding::Encode<ReaderWatchElementStateRequest, D>
2150 for &ReaderWatchElementStateRequest
2151 {
2152 #[inline]
2153 unsafe fn encode(
2154 self,
2155 encoder: &mut fidl::encoding::Encoder<'_, D>,
2156 offset: usize,
2157 _depth: fidl::encoding::Depth,
2158 ) -> fidl::Result<()> {
2159 encoder.debug_check_bounds::<ReaderWatchElementStateRequest>(offset);
2160 unsafe {
2161 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
2163 (buf_ptr as *mut ReaderWatchElementStateRequest)
2164 .write_unaligned((self as *const ReaderWatchElementStateRequest).read());
2165 }
2168 Ok(())
2169 }
2170 }
2171 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<u64, D>>
2172 fidl::encoding::Encode<ReaderWatchElementStateRequest, D> for (T0,)
2173 {
2174 #[inline]
2175 unsafe fn encode(
2176 self,
2177 encoder: &mut fidl::encoding::Encoder<'_, D>,
2178 offset: usize,
2179 depth: fidl::encoding::Depth,
2180 ) -> fidl::Result<()> {
2181 encoder.debug_check_bounds::<ReaderWatchElementStateRequest>(offset);
2182 self.0.encode(encoder, offset + 0, depth)?;
2186 Ok(())
2187 }
2188 }
2189
2190 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2191 for ReaderWatchElementStateRequest
2192 {
2193 #[inline(always)]
2194 fn new_empty() -> Self {
2195 Self { processing_element_id: fidl::new_empty!(u64, D) }
2196 }
2197
2198 #[inline]
2199 unsafe fn decode(
2200 &mut self,
2201 decoder: &mut fidl::encoding::Decoder<'_, D>,
2202 offset: usize,
2203 _depth: fidl::encoding::Depth,
2204 ) -> fidl::Result<()> {
2205 decoder.debug_check_bounds::<Self>(offset);
2206 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
2207 unsafe {
2210 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 8);
2211 }
2212 Ok(())
2213 }
2214 }
2215
2216 impl fidl::encoding::ValueTypeMarker for ReaderWatchElementStateResponse {
2217 type Borrowed<'a> = &'a Self;
2218 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2219 value
2220 }
2221 }
2222
2223 unsafe impl fidl::encoding::TypeMarker for ReaderWatchElementStateResponse {
2224 type Owned = Self;
2225
2226 #[inline(always)]
2227 fn inline_align(_context: fidl::encoding::Context) -> usize {
2228 8
2229 }
2230
2231 #[inline(always)]
2232 fn inline_size(_context: fidl::encoding::Context) -> usize {
2233 16
2234 }
2235 }
2236
2237 unsafe impl<D: fidl::encoding::ResourceDialect>
2238 fidl::encoding::Encode<ReaderWatchElementStateResponse, D>
2239 for &ReaderWatchElementStateResponse
2240 {
2241 #[inline]
2242 unsafe fn encode(
2243 self,
2244 encoder: &mut fidl::encoding::Encoder<'_, D>,
2245 offset: usize,
2246 _depth: fidl::encoding::Depth,
2247 ) -> fidl::Result<()> {
2248 encoder.debug_check_bounds::<ReaderWatchElementStateResponse>(offset);
2249 fidl::encoding::Encode::<ReaderWatchElementStateResponse, D>::encode(
2251 (<ElementState as fidl::encoding::ValueTypeMarker>::borrow(&self.state),),
2252 encoder,
2253 offset,
2254 _depth,
2255 )
2256 }
2257 }
2258 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<ElementState, D>>
2259 fidl::encoding::Encode<ReaderWatchElementStateResponse, D> for (T0,)
2260 {
2261 #[inline]
2262 unsafe fn encode(
2263 self,
2264 encoder: &mut fidl::encoding::Encoder<'_, D>,
2265 offset: usize,
2266 depth: fidl::encoding::Depth,
2267 ) -> fidl::Result<()> {
2268 encoder.debug_check_bounds::<ReaderWatchElementStateResponse>(offset);
2269 self.0.encode(encoder, offset + 0, depth)?;
2273 Ok(())
2274 }
2275 }
2276
2277 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2278 for ReaderWatchElementStateResponse
2279 {
2280 #[inline(always)]
2281 fn new_empty() -> Self {
2282 Self { state: fidl::new_empty!(ElementState, D) }
2283 }
2284
2285 #[inline]
2286 unsafe fn decode(
2287 &mut self,
2288 decoder: &mut fidl::encoding::Decoder<'_, D>,
2289 offset: usize,
2290 _depth: fidl::encoding::Depth,
2291 ) -> fidl::Result<()> {
2292 decoder.debug_check_bounds::<Self>(offset);
2293 fidl::decode!(ElementState, D, &mut self.state, decoder, offset + 0, _depth)?;
2295 Ok(())
2296 }
2297 }
2298
2299 impl fidl::encoding::ValueTypeMarker for ReaderGetElementsResponse {
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 ReaderGetElementsResponse {
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 16
2317 }
2318 }
2319
2320 unsafe impl<D: fidl::encoding::ResourceDialect>
2321 fidl::encoding::Encode<ReaderGetElementsResponse, D> for &ReaderGetElementsResponse
2322 {
2323 #[inline]
2324 unsafe fn encode(
2325 self,
2326 encoder: &mut fidl::encoding::Encoder<'_, D>,
2327 offset: usize,
2328 _depth: fidl::encoding::Depth,
2329 ) -> fidl::Result<()> {
2330 encoder.debug_check_bounds::<ReaderGetElementsResponse>(offset);
2331 fidl::encoding::Encode::<ReaderGetElementsResponse, D>::encode(
2333 (<fidl::encoding::Vector<Element, 64> as fidl::encoding::ValueTypeMarker>::borrow(
2334 &self.processing_elements,
2335 ),),
2336 encoder,
2337 offset,
2338 _depth,
2339 )
2340 }
2341 }
2342 unsafe impl<
2343 D: fidl::encoding::ResourceDialect,
2344 T0: fidl::encoding::Encode<fidl::encoding::Vector<Element, 64>, D>,
2345 > fidl::encoding::Encode<ReaderGetElementsResponse, D> for (T0,)
2346 {
2347 #[inline]
2348 unsafe fn encode(
2349 self,
2350 encoder: &mut fidl::encoding::Encoder<'_, D>,
2351 offset: usize,
2352 depth: fidl::encoding::Depth,
2353 ) -> fidl::Result<()> {
2354 encoder.debug_check_bounds::<ReaderGetElementsResponse>(offset);
2355 self.0.encode(encoder, offset + 0, depth)?;
2359 Ok(())
2360 }
2361 }
2362
2363 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2364 for ReaderGetElementsResponse
2365 {
2366 #[inline(always)]
2367 fn new_empty() -> Self {
2368 Self { processing_elements: fidl::new_empty!(fidl::encoding::Vector<Element, 64>, D) }
2369 }
2370
2371 #[inline]
2372 unsafe fn decode(
2373 &mut self,
2374 decoder: &mut fidl::encoding::Decoder<'_, D>,
2375 offset: usize,
2376 _depth: fidl::encoding::Depth,
2377 ) -> fidl::Result<()> {
2378 decoder.debug_check_bounds::<Self>(offset);
2379 fidl::decode!(fidl::encoding::Vector<Element, 64>, D, &mut self.processing_elements, decoder, offset + 0, _depth)?;
2381 Ok(())
2382 }
2383 }
2384
2385 impl fidl::encoding::ValueTypeMarker for ReaderGetTopologiesResponse {
2386 type Borrowed<'a> = &'a Self;
2387 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2388 value
2389 }
2390 }
2391
2392 unsafe impl fidl::encoding::TypeMarker for ReaderGetTopologiesResponse {
2393 type Owned = Self;
2394
2395 #[inline(always)]
2396 fn inline_align(_context: fidl::encoding::Context) -> usize {
2397 8
2398 }
2399
2400 #[inline(always)]
2401 fn inline_size(_context: fidl::encoding::Context) -> usize {
2402 16
2403 }
2404 }
2405
2406 unsafe impl<D: fidl::encoding::ResourceDialect>
2407 fidl::encoding::Encode<ReaderGetTopologiesResponse, D> for &ReaderGetTopologiesResponse
2408 {
2409 #[inline]
2410 unsafe fn encode(
2411 self,
2412 encoder: &mut fidl::encoding::Encoder<'_, D>,
2413 offset: usize,
2414 _depth: fidl::encoding::Depth,
2415 ) -> fidl::Result<()> {
2416 encoder.debug_check_bounds::<ReaderGetTopologiesResponse>(offset);
2417 fidl::encoding::Encode::<ReaderGetTopologiesResponse, D>::encode(
2419 (
2420 <fidl::encoding::Vector<Topology, 64> as fidl::encoding::ValueTypeMarker>::borrow(&self.topologies),
2421 ),
2422 encoder, offset, _depth
2423 )
2424 }
2425 }
2426 unsafe impl<
2427 D: fidl::encoding::ResourceDialect,
2428 T0: fidl::encoding::Encode<fidl::encoding::Vector<Topology, 64>, D>,
2429 > fidl::encoding::Encode<ReaderGetTopologiesResponse, D> for (T0,)
2430 {
2431 #[inline]
2432 unsafe fn encode(
2433 self,
2434 encoder: &mut fidl::encoding::Encoder<'_, D>,
2435 offset: usize,
2436 depth: fidl::encoding::Depth,
2437 ) -> fidl::Result<()> {
2438 encoder.debug_check_bounds::<ReaderGetTopologiesResponse>(offset);
2439 self.0.encode(encoder, offset + 0, depth)?;
2443 Ok(())
2444 }
2445 }
2446
2447 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2448 for ReaderGetTopologiesResponse
2449 {
2450 #[inline(always)]
2451 fn new_empty() -> Self {
2452 Self { topologies: fidl::new_empty!(fidl::encoding::Vector<Topology, 64>, D) }
2453 }
2454
2455 #[inline]
2456 unsafe fn decode(
2457 &mut self,
2458 decoder: &mut fidl::encoding::Decoder<'_, D>,
2459 offset: usize,
2460 _depth: fidl::encoding::Depth,
2461 ) -> fidl::Result<()> {
2462 decoder.debug_check_bounds::<Self>(offset);
2463 fidl::decode!(fidl::encoding::Vector<Topology, 64>, D, &mut self.topologies, decoder, offset + 0, _depth)?;
2465 Ok(())
2466 }
2467 }
2468
2469 impl fidl::encoding::ValueTypeMarker for ReaderWatchTopologyResponse {
2470 type Borrowed<'a> = &'a Self;
2471 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2472 value
2473 }
2474 }
2475
2476 unsafe impl fidl::encoding::TypeMarker for ReaderWatchTopologyResponse {
2477 type Owned = Self;
2478
2479 #[inline(always)]
2480 fn inline_align(_context: fidl::encoding::Context) -> usize {
2481 8
2482 }
2483
2484 #[inline(always)]
2485 fn inline_size(_context: fidl::encoding::Context) -> usize {
2486 8
2487 }
2488 #[inline(always)]
2489 fn encode_is_copy() -> bool {
2490 true
2491 }
2492
2493 #[inline(always)]
2494 fn decode_is_copy() -> bool {
2495 true
2496 }
2497 }
2498
2499 unsafe impl<D: fidl::encoding::ResourceDialect>
2500 fidl::encoding::Encode<ReaderWatchTopologyResponse, D> for &ReaderWatchTopologyResponse
2501 {
2502 #[inline]
2503 unsafe fn encode(
2504 self,
2505 encoder: &mut fidl::encoding::Encoder<'_, D>,
2506 offset: usize,
2507 _depth: fidl::encoding::Depth,
2508 ) -> fidl::Result<()> {
2509 encoder.debug_check_bounds::<ReaderWatchTopologyResponse>(offset);
2510 unsafe {
2511 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
2513 (buf_ptr as *mut ReaderWatchTopologyResponse)
2514 .write_unaligned((self as *const ReaderWatchTopologyResponse).read());
2515 }
2518 Ok(())
2519 }
2520 }
2521 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<u64, D>>
2522 fidl::encoding::Encode<ReaderWatchTopologyResponse, D> for (T0,)
2523 {
2524 #[inline]
2525 unsafe fn encode(
2526 self,
2527 encoder: &mut fidl::encoding::Encoder<'_, D>,
2528 offset: usize,
2529 depth: fidl::encoding::Depth,
2530 ) -> fidl::Result<()> {
2531 encoder.debug_check_bounds::<ReaderWatchTopologyResponse>(offset);
2532 self.0.encode(encoder, offset + 0, depth)?;
2536 Ok(())
2537 }
2538 }
2539
2540 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2541 for ReaderWatchTopologyResponse
2542 {
2543 #[inline(always)]
2544 fn new_empty() -> Self {
2545 Self { topology_id: fidl::new_empty!(u64, D) }
2546 }
2547
2548 #[inline]
2549 unsafe fn decode(
2550 &mut self,
2551 decoder: &mut fidl::encoding::Decoder<'_, D>,
2552 offset: usize,
2553 _depth: fidl::encoding::Depth,
2554 ) -> fidl::Result<()> {
2555 decoder.debug_check_bounds::<Self>(offset);
2556 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
2557 unsafe {
2560 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 8);
2561 }
2562 Ok(())
2563 }
2564 }
2565
2566 impl fidl::encoding::ValueTypeMarker for SignalProcessingSetElementStateRequest {
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 SignalProcessingSetElementStateRequest {
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 24
2584 }
2585 }
2586
2587 unsafe impl<D: fidl::encoding::ResourceDialect>
2588 fidl::encoding::Encode<SignalProcessingSetElementStateRequest, D>
2589 for &SignalProcessingSetElementStateRequest
2590 {
2591 #[inline]
2592 unsafe fn encode(
2593 self,
2594 encoder: &mut fidl::encoding::Encoder<'_, D>,
2595 offset: usize,
2596 _depth: fidl::encoding::Depth,
2597 ) -> fidl::Result<()> {
2598 encoder.debug_check_bounds::<SignalProcessingSetElementStateRequest>(offset);
2599 fidl::encoding::Encode::<SignalProcessingSetElementStateRequest, D>::encode(
2601 (
2602 <u64 as fidl::encoding::ValueTypeMarker>::borrow(&self.processing_element_id),
2603 <SettableElementState as fidl::encoding::ValueTypeMarker>::borrow(&self.state),
2604 ),
2605 encoder,
2606 offset,
2607 _depth,
2608 )
2609 }
2610 }
2611 unsafe impl<
2612 D: fidl::encoding::ResourceDialect,
2613 T0: fidl::encoding::Encode<u64, D>,
2614 T1: fidl::encoding::Encode<SettableElementState, D>,
2615 > fidl::encoding::Encode<SignalProcessingSetElementStateRequest, D> for (T0, T1)
2616 {
2617 #[inline]
2618 unsafe fn encode(
2619 self,
2620 encoder: &mut fidl::encoding::Encoder<'_, D>,
2621 offset: usize,
2622 depth: fidl::encoding::Depth,
2623 ) -> fidl::Result<()> {
2624 encoder.debug_check_bounds::<SignalProcessingSetElementStateRequest>(offset);
2625 self.0.encode(encoder, offset + 0, depth)?;
2629 self.1.encode(encoder, offset + 8, depth)?;
2630 Ok(())
2631 }
2632 }
2633
2634 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2635 for SignalProcessingSetElementStateRequest
2636 {
2637 #[inline(always)]
2638 fn new_empty() -> Self {
2639 Self {
2640 processing_element_id: fidl::new_empty!(u64, D),
2641 state: fidl::new_empty!(SettableElementState, D),
2642 }
2643 }
2644
2645 #[inline]
2646 unsafe fn decode(
2647 &mut self,
2648 decoder: &mut fidl::encoding::Decoder<'_, D>,
2649 offset: usize,
2650 _depth: fidl::encoding::Depth,
2651 ) -> fidl::Result<()> {
2652 decoder.debug_check_bounds::<Self>(offset);
2653 fidl::decode!(u64, D, &mut self.processing_element_id, decoder, offset + 0, _depth)?;
2655 fidl::decode!(SettableElementState, D, &mut self.state, decoder, offset + 8, _depth)?;
2656 Ok(())
2657 }
2658 }
2659
2660 impl fidl::encoding::ValueTypeMarker for SignalProcessingSetTopologyRequest {
2661 type Borrowed<'a> = &'a Self;
2662 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2663 value
2664 }
2665 }
2666
2667 unsafe impl fidl::encoding::TypeMarker for SignalProcessingSetTopologyRequest {
2668 type Owned = Self;
2669
2670 #[inline(always)]
2671 fn inline_align(_context: fidl::encoding::Context) -> usize {
2672 8
2673 }
2674
2675 #[inline(always)]
2676 fn inline_size(_context: fidl::encoding::Context) -> usize {
2677 8
2678 }
2679 #[inline(always)]
2680 fn encode_is_copy() -> bool {
2681 true
2682 }
2683
2684 #[inline(always)]
2685 fn decode_is_copy() -> bool {
2686 true
2687 }
2688 }
2689
2690 unsafe impl<D: fidl::encoding::ResourceDialect>
2691 fidl::encoding::Encode<SignalProcessingSetTopologyRequest, D>
2692 for &SignalProcessingSetTopologyRequest
2693 {
2694 #[inline]
2695 unsafe fn encode(
2696 self,
2697 encoder: &mut fidl::encoding::Encoder<'_, D>,
2698 offset: usize,
2699 _depth: fidl::encoding::Depth,
2700 ) -> fidl::Result<()> {
2701 encoder.debug_check_bounds::<SignalProcessingSetTopologyRequest>(offset);
2702 unsafe {
2703 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
2705 (buf_ptr as *mut SignalProcessingSetTopologyRequest)
2706 .write_unaligned((self as *const SignalProcessingSetTopologyRequest).read());
2707 }
2710 Ok(())
2711 }
2712 }
2713 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<u64, D>>
2714 fidl::encoding::Encode<SignalProcessingSetTopologyRequest, D> for (T0,)
2715 {
2716 #[inline]
2717 unsafe fn encode(
2718 self,
2719 encoder: &mut fidl::encoding::Encoder<'_, D>,
2720 offset: usize,
2721 depth: fidl::encoding::Depth,
2722 ) -> fidl::Result<()> {
2723 encoder.debug_check_bounds::<SignalProcessingSetTopologyRequest>(offset);
2724 self.0.encode(encoder, offset + 0, depth)?;
2728 Ok(())
2729 }
2730 }
2731
2732 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2733 for SignalProcessingSetTopologyRequest
2734 {
2735 #[inline(always)]
2736 fn new_empty() -> Self {
2737 Self { topology_id: fidl::new_empty!(u64, D) }
2738 }
2739
2740 #[inline]
2741 unsafe fn decode(
2742 &mut self,
2743 decoder: &mut fidl::encoding::Decoder<'_, D>,
2744 offset: usize,
2745 _depth: fidl::encoding::Depth,
2746 ) -> fidl::Result<()> {
2747 decoder.debug_check_bounds::<Self>(offset);
2748 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
2749 unsafe {
2752 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 8);
2753 }
2754 Ok(())
2755 }
2756 }
2757
2758 impl DaiInterconnect {
2759 #[inline(always)]
2760 fn max_ordinal_present(&self) -> u64 {
2761 if let Some(_) = self.plug_detect_capabilities {
2762 return 1;
2763 }
2764 0
2765 }
2766 }
2767
2768 impl fidl::encoding::ValueTypeMarker for DaiInterconnect {
2769 type Borrowed<'a> = &'a Self;
2770 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2771 value
2772 }
2773 }
2774
2775 unsafe impl fidl::encoding::TypeMarker for DaiInterconnect {
2776 type Owned = Self;
2777
2778 #[inline(always)]
2779 fn inline_align(_context: fidl::encoding::Context) -> usize {
2780 8
2781 }
2782
2783 #[inline(always)]
2784 fn inline_size(_context: fidl::encoding::Context) -> usize {
2785 16
2786 }
2787 }
2788
2789 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<DaiInterconnect, D>
2790 for &DaiInterconnect
2791 {
2792 unsafe fn encode(
2793 self,
2794 encoder: &mut fidl::encoding::Encoder<'_, D>,
2795 offset: usize,
2796 mut depth: fidl::encoding::Depth,
2797 ) -> fidl::Result<()> {
2798 encoder.debug_check_bounds::<DaiInterconnect>(offset);
2799 let max_ordinal: u64 = self.max_ordinal_present();
2801 encoder.write_num(max_ordinal, offset);
2802 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
2803 if max_ordinal == 0 {
2805 return Ok(());
2806 }
2807 depth.increment()?;
2808 let envelope_size = 8;
2809 let bytes_len = max_ordinal as usize * envelope_size;
2810 #[allow(unused_variables)]
2811 let offset = encoder.out_of_line_offset(bytes_len);
2812 let mut _prev_end_offset: usize = 0;
2813 if 1 > max_ordinal {
2814 return Ok(());
2815 }
2816
2817 let cur_offset: usize = (1 - 1) * envelope_size;
2820
2821 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2823
2824 fidl::encoding::encode_in_envelope_optional::<PlugDetectCapabilities, D>(
2829 self.plug_detect_capabilities
2830 .as_ref()
2831 .map(<PlugDetectCapabilities as fidl::encoding::ValueTypeMarker>::borrow),
2832 encoder,
2833 offset + cur_offset,
2834 depth,
2835 )?;
2836
2837 _prev_end_offset = cur_offset + envelope_size;
2838
2839 Ok(())
2840 }
2841 }
2842
2843 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for DaiInterconnect {
2844 #[inline(always)]
2845 fn new_empty() -> Self {
2846 Self::default()
2847 }
2848
2849 unsafe fn decode(
2850 &mut self,
2851 decoder: &mut fidl::encoding::Decoder<'_, D>,
2852 offset: usize,
2853 mut depth: fidl::encoding::Depth,
2854 ) -> fidl::Result<()> {
2855 decoder.debug_check_bounds::<Self>(offset);
2856 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
2857 None => return Err(fidl::Error::NotNullable),
2858 Some(len) => len,
2859 };
2860 if len == 0 {
2862 return Ok(());
2863 };
2864 depth.increment()?;
2865 let envelope_size = 8;
2866 let bytes_len = len * envelope_size;
2867 let offset = decoder.out_of_line_offset(bytes_len)?;
2868 let mut _next_ordinal_to_read = 0;
2870 let mut next_offset = offset;
2871 let end_offset = offset + bytes_len;
2872 _next_ordinal_to_read += 1;
2873 if next_offset >= end_offset {
2874 return Ok(());
2875 }
2876
2877 while _next_ordinal_to_read < 1 {
2879 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2880 _next_ordinal_to_read += 1;
2881 next_offset += envelope_size;
2882 }
2883
2884 let next_out_of_line = decoder.next_out_of_line();
2885 let handles_before = decoder.remaining_handles();
2886 if let Some((inlined, num_bytes, num_handles)) =
2887 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2888 {
2889 let member_inline_size =
2890 <PlugDetectCapabilities as fidl::encoding::TypeMarker>::inline_size(
2891 decoder.context,
2892 );
2893 if inlined != (member_inline_size <= 4) {
2894 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2895 }
2896 let inner_offset;
2897 let mut inner_depth = depth.clone();
2898 if inlined {
2899 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2900 inner_offset = next_offset;
2901 } else {
2902 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2903 inner_depth.increment()?;
2904 }
2905 let val_ref = self
2906 .plug_detect_capabilities
2907 .get_or_insert_with(|| fidl::new_empty!(PlugDetectCapabilities, D));
2908 fidl::decode!(
2909 PlugDetectCapabilities,
2910 D,
2911 val_ref,
2912 decoder,
2913 inner_offset,
2914 inner_depth
2915 )?;
2916 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2917 {
2918 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2919 }
2920 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2921 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2922 }
2923 }
2924
2925 next_offset += envelope_size;
2926
2927 while next_offset < end_offset {
2929 _next_ordinal_to_read += 1;
2930 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2931 next_offset += envelope_size;
2932 }
2933
2934 Ok(())
2935 }
2936 }
2937
2938 impl DaiInterconnectElementState {
2939 #[inline(always)]
2940 fn max_ordinal_present(&self) -> u64 {
2941 if let Some(_) = self.external_delay {
2942 return 2;
2943 }
2944 if let Some(_) = self.plug_state {
2945 return 1;
2946 }
2947 0
2948 }
2949 }
2950
2951 impl fidl::encoding::ValueTypeMarker for DaiInterconnectElementState {
2952 type Borrowed<'a> = &'a Self;
2953 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2954 value
2955 }
2956 }
2957
2958 unsafe impl fidl::encoding::TypeMarker for DaiInterconnectElementState {
2959 type Owned = Self;
2960
2961 #[inline(always)]
2962 fn inline_align(_context: fidl::encoding::Context) -> usize {
2963 8
2964 }
2965
2966 #[inline(always)]
2967 fn inline_size(_context: fidl::encoding::Context) -> usize {
2968 16
2969 }
2970 }
2971
2972 unsafe impl<D: fidl::encoding::ResourceDialect>
2973 fidl::encoding::Encode<DaiInterconnectElementState, D> for &DaiInterconnectElementState
2974 {
2975 unsafe fn encode(
2976 self,
2977 encoder: &mut fidl::encoding::Encoder<'_, D>,
2978 offset: usize,
2979 mut depth: fidl::encoding::Depth,
2980 ) -> fidl::Result<()> {
2981 encoder.debug_check_bounds::<DaiInterconnectElementState>(offset);
2982 let max_ordinal: u64 = self.max_ordinal_present();
2984 encoder.write_num(max_ordinal, offset);
2985 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
2986 if max_ordinal == 0 {
2988 return Ok(());
2989 }
2990 depth.increment()?;
2991 let envelope_size = 8;
2992 let bytes_len = max_ordinal as usize * envelope_size;
2993 #[allow(unused_variables)]
2994 let offset = encoder.out_of_line_offset(bytes_len);
2995 let mut _prev_end_offset: usize = 0;
2996 if 1 > max_ordinal {
2997 return Ok(());
2998 }
2999
3000 let cur_offset: usize = (1 - 1) * envelope_size;
3003
3004 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3006
3007 fidl::encoding::encode_in_envelope_optional::<PlugState, D>(
3012 self.plug_state
3013 .as_ref()
3014 .map(<PlugState as fidl::encoding::ValueTypeMarker>::borrow),
3015 encoder,
3016 offset + cur_offset,
3017 depth,
3018 )?;
3019
3020 _prev_end_offset = cur_offset + envelope_size;
3021 if 2 > max_ordinal {
3022 return Ok(());
3023 }
3024
3025 let cur_offset: usize = (2 - 1) * envelope_size;
3028
3029 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3031
3032 fidl::encoding::encode_in_envelope_optional::<i64, D>(
3037 self.external_delay.as_ref().map(<i64 as fidl::encoding::ValueTypeMarker>::borrow),
3038 encoder,
3039 offset + cur_offset,
3040 depth,
3041 )?;
3042
3043 _prev_end_offset = cur_offset + envelope_size;
3044
3045 Ok(())
3046 }
3047 }
3048
3049 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
3050 for DaiInterconnectElementState
3051 {
3052 #[inline(always)]
3053 fn new_empty() -> Self {
3054 Self::default()
3055 }
3056
3057 unsafe fn decode(
3058 &mut self,
3059 decoder: &mut fidl::encoding::Decoder<'_, D>,
3060 offset: usize,
3061 mut depth: fidl::encoding::Depth,
3062 ) -> fidl::Result<()> {
3063 decoder.debug_check_bounds::<Self>(offset);
3064 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
3065 None => return Err(fidl::Error::NotNullable),
3066 Some(len) => len,
3067 };
3068 if len == 0 {
3070 return Ok(());
3071 };
3072 depth.increment()?;
3073 let envelope_size = 8;
3074 let bytes_len = len * envelope_size;
3075 let offset = decoder.out_of_line_offset(bytes_len)?;
3076 let mut _next_ordinal_to_read = 0;
3078 let mut next_offset = offset;
3079 let end_offset = offset + bytes_len;
3080 _next_ordinal_to_read += 1;
3081 if next_offset >= end_offset {
3082 return Ok(());
3083 }
3084
3085 while _next_ordinal_to_read < 1 {
3087 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3088 _next_ordinal_to_read += 1;
3089 next_offset += envelope_size;
3090 }
3091
3092 let next_out_of_line = decoder.next_out_of_line();
3093 let handles_before = decoder.remaining_handles();
3094 if let Some((inlined, num_bytes, num_handles)) =
3095 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3096 {
3097 let member_inline_size =
3098 <PlugState as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3099 if inlined != (member_inline_size <= 4) {
3100 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3101 }
3102 let inner_offset;
3103 let mut inner_depth = depth.clone();
3104 if inlined {
3105 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3106 inner_offset = next_offset;
3107 } else {
3108 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3109 inner_depth.increment()?;
3110 }
3111 let val_ref = self.plug_state.get_or_insert_with(|| fidl::new_empty!(PlugState, D));
3112 fidl::decode!(PlugState, D, val_ref, decoder, inner_offset, inner_depth)?;
3113 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3114 {
3115 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3116 }
3117 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3118 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3119 }
3120 }
3121
3122 next_offset += envelope_size;
3123 _next_ordinal_to_read += 1;
3124 if next_offset >= end_offset {
3125 return Ok(());
3126 }
3127
3128 while _next_ordinal_to_read < 2 {
3130 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3131 _next_ordinal_to_read += 1;
3132 next_offset += envelope_size;
3133 }
3134
3135 let next_out_of_line = decoder.next_out_of_line();
3136 let handles_before = decoder.remaining_handles();
3137 if let Some((inlined, num_bytes, num_handles)) =
3138 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3139 {
3140 let member_inline_size =
3141 <i64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3142 if inlined != (member_inline_size <= 4) {
3143 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3144 }
3145 let inner_offset;
3146 let mut inner_depth = depth.clone();
3147 if inlined {
3148 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3149 inner_offset = next_offset;
3150 } else {
3151 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3152 inner_depth.increment()?;
3153 }
3154 let val_ref = self.external_delay.get_or_insert_with(|| fidl::new_empty!(i64, D));
3155 fidl::decode!(i64, D, val_ref, decoder, inner_offset, inner_depth)?;
3156 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3157 {
3158 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3159 }
3160 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3161 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3162 }
3163 }
3164
3165 next_offset += envelope_size;
3166
3167 while next_offset < end_offset {
3169 _next_ordinal_to_read += 1;
3170 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3171 next_offset += envelope_size;
3172 }
3173
3174 Ok(())
3175 }
3176 }
3177
3178 impl Dynamics {
3179 #[inline(always)]
3180 fn max_ordinal_present(&self) -> u64 {
3181 if let Some(_) = self.supported_controls {
3182 return 2;
3183 }
3184 if let Some(_) = self.bands {
3185 return 1;
3186 }
3187 0
3188 }
3189 }
3190
3191 impl fidl::encoding::ValueTypeMarker for Dynamics {
3192 type Borrowed<'a> = &'a Self;
3193 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3194 value
3195 }
3196 }
3197
3198 unsafe impl fidl::encoding::TypeMarker for Dynamics {
3199 type Owned = Self;
3200
3201 #[inline(always)]
3202 fn inline_align(_context: fidl::encoding::Context) -> usize {
3203 8
3204 }
3205
3206 #[inline(always)]
3207 fn inline_size(_context: fidl::encoding::Context) -> usize {
3208 16
3209 }
3210 }
3211
3212 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Dynamics, D> for &Dynamics {
3213 unsafe fn encode(
3214 self,
3215 encoder: &mut fidl::encoding::Encoder<'_, D>,
3216 offset: usize,
3217 mut depth: fidl::encoding::Depth,
3218 ) -> fidl::Result<()> {
3219 encoder.debug_check_bounds::<Dynamics>(offset);
3220 let max_ordinal: u64 = self.max_ordinal_present();
3222 encoder.write_num(max_ordinal, offset);
3223 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
3224 if max_ordinal == 0 {
3226 return Ok(());
3227 }
3228 depth.increment()?;
3229 let envelope_size = 8;
3230 let bytes_len = max_ordinal as usize * envelope_size;
3231 #[allow(unused_variables)]
3232 let offset = encoder.out_of_line_offset(bytes_len);
3233 let mut _prev_end_offset: usize = 0;
3234 if 1 > max_ordinal {
3235 return Ok(());
3236 }
3237
3238 let cur_offset: usize = (1 - 1) * envelope_size;
3241
3242 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3244
3245 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<DynamicsBand, 64>, D>(
3250 self.bands.as_ref().map(<fidl::encoding::Vector<DynamicsBand, 64> as fidl::encoding::ValueTypeMarker>::borrow),
3251 encoder, offset + cur_offset, depth
3252 )?;
3253
3254 _prev_end_offset = cur_offset + envelope_size;
3255 if 2 > max_ordinal {
3256 return Ok(());
3257 }
3258
3259 let cur_offset: usize = (2 - 1) * envelope_size;
3262
3263 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3265
3266 fidl::encoding::encode_in_envelope_optional::<DynamicsSupportedControls, D>(
3271 self.supported_controls
3272 .as_ref()
3273 .map(<DynamicsSupportedControls as fidl::encoding::ValueTypeMarker>::borrow),
3274 encoder,
3275 offset + cur_offset,
3276 depth,
3277 )?;
3278
3279 _prev_end_offset = cur_offset + envelope_size;
3280
3281 Ok(())
3282 }
3283 }
3284
3285 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Dynamics {
3286 #[inline(always)]
3287 fn new_empty() -> Self {
3288 Self::default()
3289 }
3290
3291 unsafe fn decode(
3292 &mut self,
3293 decoder: &mut fidl::encoding::Decoder<'_, D>,
3294 offset: usize,
3295 mut depth: fidl::encoding::Depth,
3296 ) -> fidl::Result<()> {
3297 decoder.debug_check_bounds::<Self>(offset);
3298 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
3299 None => return Err(fidl::Error::NotNullable),
3300 Some(len) => len,
3301 };
3302 if len == 0 {
3304 return Ok(());
3305 };
3306 depth.increment()?;
3307 let envelope_size = 8;
3308 let bytes_len = len * envelope_size;
3309 let offset = decoder.out_of_line_offset(bytes_len)?;
3310 let mut _next_ordinal_to_read = 0;
3312 let mut next_offset = offset;
3313 let end_offset = offset + bytes_len;
3314 _next_ordinal_to_read += 1;
3315 if next_offset >= end_offset {
3316 return Ok(());
3317 }
3318
3319 while _next_ordinal_to_read < 1 {
3321 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3322 _next_ordinal_to_read += 1;
3323 next_offset += envelope_size;
3324 }
3325
3326 let next_out_of_line = decoder.next_out_of_line();
3327 let handles_before = decoder.remaining_handles();
3328 if let Some((inlined, num_bytes, num_handles)) =
3329 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3330 {
3331 let member_inline_size = <fidl::encoding::Vector<DynamicsBand, 64> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3332 if inlined != (member_inline_size <= 4) {
3333 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3334 }
3335 let inner_offset;
3336 let mut inner_depth = depth.clone();
3337 if inlined {
3338 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3339 inner_offset = next_offset;
3340 } else {
3341 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3342 inner_depth.increment()?;
3343 }
3344 let val_ref = self.bands.get_or_insert_with(
3345 || fidl::new_empty!(fidl::encoding::Vector<DynamicsBand, 64>, D),
3346 );
3347 fidl::decode!(fidl::encoding::Vector<DynamicsBand, 64>, D, val_ref, decoder, inner_offset, inner_depth)?;
3348 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3349 {
3350 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3351 }
3352 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3353 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3354 }
3355 }
3356
3357 next_offset += envelope_size;
3358 _next_ordinal_to_read += 1;
3359 if next_offset >= end_offset {
3360 return Ok(());
3361 }
3362
3363 while _next_ordinal_to_read < 2 {
3365 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3366 _next_ordinal_to_read += 1;
3367 next_offset += envelope_size;
3368 }
3369
3370 let next_out_of_line = decoder.next_out_of_line();
3371 let handles_before = decoder.remaining_handles();
3372 if let Some((inlined, num_bytes, num_handles)) =
3373 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3374 {
3375 let member_inline_size =
3376 <DynamicsSupportedControls as fidl::encoding::TypeMarker>::inline_size(
3377 decoder.context,
3378 );
3379 if inlined != (member_inline_size <= 4) {
3380 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3381 }
3382 let inner_offset;
3383 let mut inner_depth = depth.clone();
3384 if inlined {
3385 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3386 inner_offset = next_offset;
3387 } else {
3388 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3389 inner_depth.increment()?;
3390 }
3391 let val_ref = self
3392 .supported_controls
3393 .get_or_insert_with(|| fidl::new_empty!(DynamicsSupportedControls, D));
3394 fidl::decode!(
3395 DynamicsSupportedControls,
3396 D,
3397 val_ref,
3398 decoder,
3399 inner_offset,
3400 inner_depth
3401 )?;
3402 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3403 {
3404 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3405 }
3406 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3407 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3408 }
3409 }
3410
3411 next_offset += envelope_size;
3412
3413 while next_offset < end_offset {
3415 _next_ordinal_to_read += 1;
3416 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3417 next_offset += envelope_size;
3418 }
3419
3420 Ok(())
3421 }
3422 }
3423
3424 impl DynamicsBand {
3425 #[inline(always)]
3426 fn max_ordinal_present(&self) -> u64 {
3427 if let Some(_) = self.id {
3428 return 1;
3429 }
3430 0
3431 }
3432 }
3433
3434 impl fidl::encoding::ValueTypeMarker for DynamicsBand {
3435 type Borrowed<'a> = &'a Self;
3436 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3437 value
3438 }
3439 }
3440
3441 unsafe impl fidl::encoding::TypeMarker for DynamicsBand {
3442 type Owned = Self;
3443
3444 #[inline(always)]
3445 fn inline_align(_context: fidl::encoding::Context) -> usize {
3446 8
3447 }
3448
3449 #[inline(always)]
3450 fn inline_size(_context: fidl::encoding::Context) -> usize {
3451 16
3452 }
3453 }
3454
3455 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<DynamicsBand, D>
3456 for &DynamicsBand
3457 {
3458 unsafe fn encode(
3459 self,
3460 encoder: &mut fidl::encoding::Encoder<'_, D>,
3461 offset: usize,
3462 mut depth: fidl::encoding::Depth,
3463 ) -> fidl::Result<()> {
3464 encoder.debug_check_bounds::<DynamicsBand>(offset);
3465 let max_ordinal: u64 = self.max_ordinal_present();
3467 encoder.write_num(max_ordinal, offset);
3468 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
3469 if max_ordinal == 0 {
3471 return Ok(());
3472 }
3473 depth.increment()?;
3474 let envelope_size = 8;
3475 let bytes_len = max_ordinal as usize * envelope_size;
3476 #[allow(unused_variables)]
3477 let offset = encoder.out_of_line_offset(bytes_len);
3478 let mut _prev_end_offset: usize = 0;
3479 if 1 > max_ordinal {
3480 return Ok(());
3481 }
3482
3483 let cur_offset: usize = (1 - 1) * envelope_size;
3486
3487 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3489
3490 fidl::encoding::encode_in_envelope_optional::<u64, D>(
3495 self.id.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
3496 encoder,
3497 offset + cur_offset,
3498 depth,
3499 )?;
3500
3501 _prev_end_offset = cur_offset + envelope_size;
3502
3503 Ok(())
3504 }
3505 }
3506
3507 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for DynamicsBand {
3508 #[inline(always)]
3509 fn new_empty() -> Self {
3510 Self::default()
3511 }
3512
3513 unsafe fn decode(
3514 &mut self,
3515 decoder: &mut fidl::encoding::Decoder<'_, D>,
3516 offset: usize,
3517 mut depth: fidl::encoding::Depth,
3518 ) -> fidl::Result<()> {
3519 decoder.debug_check_bounds::<Self>(offset);
3520 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
3521 None => return Err(fidl::Error::NotNullable),
3522 Some(len) => len,
3523 };
3524 if len == 0 {
3526 return Ok(());
3527 };
3528 depth.increment()?;
3529 let envelope_size = 8;
3530 let bytes_len = len * envelope_size;
3531 let offset = decoder.out_of_line_offset(bytes_len)?;
3532 let mut _next_ordinal_to_read = 0;
3534 let mut next_offset = offset;
3535 let end_offset = offset + bytes_len;
3536 _next_ordinal_to_read += 1;
3537 if next_offset >= end_offset {
3538 return Ok(());
3539 }
3540
3541 while _next_ordinal_to_read < 1 {
3543 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3544 _next_ordinal_to_read += 1;
3545 next_offset += envelope_size;
3546 }
3547
3548 let next_out_of_line = decoder.next_out_of_line();
3549 let handles_before = decoder.remaining_handles();
3550 if let Some((inlined, num_bytes, num_handles)) =
3551 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3552 {
3553 let member_inline_size =
3554 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3555 if inlined != (member_inline_size <= 4) {
3556 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3557 }
3558 let inner_offset;
3559 let mut inner_depth = depth.clone();
3560 if inlined {
3561 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3562 inner_offset = next_offset;
3563 } else {
3564 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3565 inner_depth.increment()?;
3566 }
3567 let val_ref = self.id.get_or_insert_with(|| fidl::new_empty!(u64, D));
3568 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
3569 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3570 {
3571 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3572 }
3573 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3574 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3575 }
3576 }
3577
3578 next_offset += envelope_size;
3579
3580 while next_offset < end_offset {
3582 _next_ordinal_to_read += 1;
3583 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3584 next_offset += envelope_size;
3585 }
3586
3587 Ok(())
3588 }
3589 }
3590
3591 impl DynamicsBandState {
3592 #[inline(always)]
3593 fn max_ordinal_present(&self) -> u64 {
3594 if let Some(_) = self.linked_channels {
3595 return 14;
3596 }
3597 if let Some(_) = self.lookahead {
3598 return 13;
3599 }
3600 if let Some(_) = self.level_type {
3601 return 12;
3602 }
3603 if let Some(_) = self.input_gain_db {
3604 return 11;
3605 }
3606 if let Some(_) = self.output_gain_db {
3607 return 10;
3608 }
3609 if let Some(_) = self.release {
3610 return 9;
3611 }
3612 if let Some(_) = self.attack {
3613 return 8;
3614 }
3615 if let Some(_) = self.knee_width_db {
3616 return 7;
3617 }
3618 if let Some(_) = self.ratio {
3619 return 6;
3620 }
3621 if let Some(_) = self.threshold_type {
3622 return 5;
3623 }
3624 if let Some(_) = self.threshold_db {
3625 return 4;
3626 }
3627 if let Some(_) = self.max_frequency {
3628 return 3;
3629 }
3630 if let Some(_) = self.min_frequency {
3631 return 2;
3632 }
3633 if let Some(_) = self.id {
3634 return 1;
3635 }
3636 0
3637 }
3638 }
3639
3640 impl fidl::encoding::ValueTypeMarker for DynamicsBandState {
3641 type Borrowed<'a> = &'a Self;
3642 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3643 value
3644 }
3645 }
3646
3647 unsafe impl fidl::encoding::TypeMarker for DynamicsBandState {
3648 type Owned = Self;
3649
3650 #[inline(always)]
3651 fn inline_align(_context: fidl::encoding::Context) -> usize {
3652 8
3653 }
3654
3655 #[inline(always)]
3656 fn inline_size(_context: fidl::encoding::Context) -> usize {
3657 16
3658 }
3659 }
3660
3661 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<DynamicsBandState, D>
3662 for &DynamicsBandState
3663 {
3664 unsafe fn encode(
3665 self,
3666 encoder: &mut fidl::encoding::Encoder<'_, D>,
3667 offset: usize,
3668 mut depth: fidl::encoding::Depth,
3669 ) -> fidl::Result<()> {
3670 encoder.debug_check_bounds::<DynamicsBandState>(offset);
3671 let max_ordinal: u64 = self.max_ordinal_present();
3673 encoder.write_num(max_ordinal, offset);
3674 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
3675 if max_ordinal == 0 {
3677 return Ok(());
3678 }
3679 depth.increment()?;
3680 let envelope_size = 8;
3681 let bytes_len = max_ordinal as usize * envelope_size;
3682 #[allow(unused_variables)]
3683 let offset = encoder.out_of_line_offset(bytes_len);
3684 let mut _prev_end_offset: usize = 0;
3685 if 1 > max_ordinal {
3686 return Ok(());
3687 }
3688
3689 let cur_offset: usize = (1 - 1) * envelope_size;
3692
3693 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3695
3696 fidl::encoding::encode_in_envelope_optional::<u64, D>(
3701 self.id.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
3702 encoder,
3703 offset + cur_offset,
3704 depth,
3705 )?;
3706
3707 _prev_end_offset = cur_offset + envelope_size;
3708 if 2 > max_ordinal {
3709 return Ok(());
3710 }
3711
3712 let cur_offset: usize = (2 - 1) * envelope_size;
3715
3716 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3718
3719 fidl::encoding::encode_in_envelope_optional::<u32, D>(
3724 self.min_frequency.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
3725 encoder,
3726 offset + cur_offset,
3727 depth,
3728 )?;
3729
3730 _prev_end_offset = cur_offset + envelope_size;
3731 if 3 > max_ordinal {
3732 return Ok(());
3733 }
3734
3735 let cur_offset: usize = (3 - 1) * envelope_size;
3738
3739 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3741
3742 fidl::encoding::encode_in_envelope_optional::<u32, D>(
3747 self.max_frequency.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
3748 encoder,
3749 offset + cur_offset,
3750 depth,
3751 )?;
3752
3753 _prev_end_offset = cur_offset + envelope_size;
3754 if 4 > max_ordinal {
3755 return Ok(());
3756 }
3757
3758 let cur_offset: usize = (4 - 1) * envelope_size;
3761
3762 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3764
3765 fidl::encoding::encode_in_envelope_optional::<f32, D>(
3770 self.threshold_db.as_ref().map(<f32 as fidl::encoding::ValueTypeMarker>::borrow),
3771 encoder,
3772 offset + cur_offset,
3773 depth,
3774 )?;
3775
3776 _prev_end_offset = cur_offset + envelope_size;
3777 if 5 > max_ordinal {
3778 return Ok(());
3779 }
3780
3781 let cur_offset: usize = (5 - 1) * envelope_size;
3784
3785 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3787
3788 fidl::encoding::encode_in_envelope_optional::<ThresholdType, D>(
3793 self.threshold_type
3794 .as_ref()
3795 .map(<ThresholdType as fidl::encoding::ValueTypeMarker>::borrow),
3796 encoder,
3797 offset + cur_offset,
3798 depth,
3799 )?;
3800
3801 _prev_end_offset = cur_offset + envelope_size;
3802 if 6 > max_ordinal {
3803 return Ok(());
3804 }
3805
3806 let cur_offset: usize = (6 - 1) * envelope_size;
3809
3810 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3812
3813 fidl::encoding::encode_in_envelope_optional::<f32, D>(
3818 self.ratio.as_ref().map(<f32 as fidl::encoding::ValueTypeMarker>::borrow),
3819 encoder,
3820 offset + cur_offset,
3821 depth,
3822 )?;
3823
3824 _prev_end_offset = cur_offset + envelope_size;
3825 if 7 > max_ordinal {
3826 return Ok(());
3827 }
3828
3829 let cur_offset: usize = (7 - 1) * envelope_size;
3832
3833 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3835
3836 fidl::encoding::encode_in_envelope_optional::<f32, D>(
3841 self.knee_width_db.as_ref().map(<f32 as fidl::encoding::ValueTypeMarker>::borrow),
3842 encoder,
3843 offset + cur_offset,
3844 depth,
3845 )?;
3846
3847 _prev_end_offset = cur_offset + envelope_size;
3848 if 8 > max_ordinal {
3849 return Ok(());
3850 }
3851
3852 let cur_offset: usize = (8 - 1) * envelope_size;
3855
3856 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3858
3859 fidl::encoding::encode_in_envelope_optional::<i64, D>(
3864 self.attack.as_ref().map(<i64 as fidl::encoding::ValueTypeMarker>::borrow),
3865 encoder,
3866 offset + cur_offset,
3867 depth,
3868 )?;
3869
3870 _prev_end_offset = cur_offset + envelope_size;
3871 if 9 > max_ordinal {
3872 return Ok(());
3873 }
3874
3875 let cur_offset: usize = (9 - 1) * envelope_size;
3878
3879 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3881
3882 fidl::encoding::encode_in_envelope_optional::<i64, D>(
3887 self.release.as_ref().map(<i64 as fidl::encoding::ValueTypeMarker>::borrow),
3888 encoder,
3889 offset + cur_offset,
3890 depth,
3891 )?;
3892
3893 _prev_end_offset = cur_offset + envelope_size;
3894 if 10 > max_ordinal {
3895 return Ok(());
3896 }
3897
3898 let cur_offset: usize = (10 - 1) * envelope_size;
3901
3902 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3904
3905 fidl::encoding::encode_in_envelope_optional::<f32, D>(
3910 self.output_gain_db.as_ref().map(<f32 as fidl::encoding::ValueTypeMarker>::borrow),
3911 encoder,
3912 offset + cur_offset,
3913 depth,
3914 )?;
3915
3916 _prev_end_offset = cur_offset + envelope_size;
3917 if 11 > max_ordinal {
3918 return Ok(());
3919 }
3920
3921 let cur_offset: usize = (11 - 1) * envelope_size;
3924
3925 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3927
3928 fidl::encoding::encode_in_envelope_optional::<f32, D>(
3933 self.input_gain_db.as_ref().map(<f32 as fidl::encoding::ValueTypeMarker>::borrow),
3934 encoder,
3935 offset + cur_offset,
3936 depth,
3937 )?;
3938
3939 _prev_end_offset = cur_offset + envelope_size;
3940 if 12 > max_ordinal {
3941 return Ok(());
3942 }
3943
3944 let cur_offset: usize = (12 - 1) * envelope_size;
3947
3948 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3950
3951 fidl::encoding::encode_in_envelope_optional::<LevelType, D>(
3956 self.level_type
3957 .as_ref()
3958 .map(<LevelType as fidl::encoding::ValueTypeMarker>::borrow),
3959 encoder,
3960 offset + cur_offset,
3961 depth,
3962 )?;
3963
3964 _prev_end_offset = cur_offset + envelope_size;
3965 if 13 > max_ordinal {
3966 return Ok(());
3967 }
3968
3969 let cur_offset: usize = (13 - 1) * envelope_size;
3972
3973 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3975
3976 fidl::encoding::encode_in_envelope_optional::<i64, D>(
3981 self.lookahead.as_ref().map(<i64 as fidl::encoding::ValueTypeMarker>::borrow),
3982 encoder,
3983 offset + cur_offset,
3984 depth,
3985 )?;
3986
3987 _prev_end_offset = cur_offset + envelope_size;
3988 if 14 > max_ordinal {
3989 return Ok(());
3990 }
3991
3992 let cur_offset: usize = (14 - 1) * envelope_size;
3995
3996 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3998
3999 fidl::encoding::encode_in_envelope_optional::<bool, D>(
4004 self.linked_channels
4005 .as_ref()
4006 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
4007 encoder,
4008 offset + cur_offset,
4009 depth,
4010 )?;
4011
4012 _prev_end_offset = cur_offset + envelope_size;
4013
4014 Ok(())
4015 }
4016 }
4017
4018 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for DynamicsBandState {
4019 #[inline(always)]
4020 fn new_empty() -> Self {
4021 Self::default()
4022 }
4023
4024 unsafe fn decode(
4025 &mut self,
4026 decoder: &mut fidl::encoding::Decoder<'_, D>,
4027 offset: usize,
4028 mut depth: fidl::encoding::Depth,
4029 ) -> fidl::Result<()> {
4030 decoder.debug_check_bounds::<Self>(offset);
4031 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
4032 None => return Err(fidl::Error::NotNullable),
4033 Some(len) => len,
4034 };
4035 if len == 0 {
4037 return Ok(());
4038 };
4039 depth.increment()?;
4040 let envelope_size = 8;
4041 let bytes_len = len * envelope_size;
4042 let offset = decoder.out_of_line_offset(bytes_len)?;
4043 let mut _next_ordinal_to_read = 0;
4045 let mut next_offset = offset;
4046 let end_offset = offset + bytes_len;
4047 _next_ordinal_to_read += 1;
4048 if next_offset >= end_offset {
4049 return Ok(());
4050 }
4051
4052 while _next_ordinal_to_read < 1 {
4054 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4055 _next_ordinal_to_read += 1;
4056 next_offset += envelope_size;
4057 }
4058
4059 let next_out_of_line = decoder.next_out_of_line();
4060 let handles_before = decoder.remaining_handles();
4061 if let Some((inlined, num_bytes, num_handles)) =
4062 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4063 {
4064 let member_inline_size =
4065 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4066 if inlined != (member_inline_size <= 4) {
4067 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4068 }
4069 let inner_offset;
4070 let mut inner_depth = depth.clone();
4071 if inlined {
4072 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4073 inner_offset = next_offset;
4074 } else {
4075 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4076 inner_depth.increment()?;
4077 }
4078 let val_ref = self.id.get_or_insert_with(|| fidl::new_empty!(u64, D));
4079 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
4080 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4081 {
4082 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4083 }
4084 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4085 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4086 }
4087 }
4088
4089 next_offset += envelope_size;
4090 _next_ordinal_to_read += 1;
4091 if next_offset >= end_offset {
4092 return Ok(());
4093 }
4094
4095 while _next_ordinal_to_read < 2 {
4097 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4098 _next_ordinal_to_read += 1;
4099 next_offset += envelope_size;
4100 }
4101
4102 let next_out_of_line = decoder.next_out_of_line();
4103 let handles_before = decoder.remaining_handles();
4104 if let Some((inlined, num_bytes, num_handles)) =
4105 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4106 {
4107 let member_inline_size =
4108 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4109 if inlined != (member_inline_size <= 4) {
4110 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4111 }
4112 let inner_offset;
4113 let mut inner_depth = depth.clone();
4114 if inlined {
4115 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4116 inner_offset = next_offset;
4117 } else {
4118 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4119 inner_depth.increment()?;
4120 }
4121 let val_ref = self.min_frequency.get_or_insert_with(|| fidl::new_empty!(u32, D));
4122 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
4123 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4124 {
4125 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4126 }
4127 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4128 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4129 }
4130 }
4131
4132 next_offset += envelope_size;
4133 _next_ordinal_to_read += 1;
4134 if next_offset >= end_offset {
4135 return Ok(());
4136 }
4137
4138 while _next_ordinal_to_read < 3 {
4140 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4141 _next_ordinal_to_read += 1;
4142 next_offset += envelope_size;
4143 }
4144
4145 let next_out_of_line = decoder.next_out_of_line();
4146 let handles_before = decoder.remaining_handles();
4147 if let Some((inlined, num_bytes, num_handles)) =
4148 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4149 {
4150 let member_inline_size =
4151 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4152 if inlined != (member_inline_size <= 4) {
4153 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4154 }
4155 let inner_offset;
4156 let mut inner_depth = depth.clone();
4157 if inlined {
4158 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4159 inner_offset = next_offset;
4160 } else {
4161 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4162 inner_depth.increment()?;
4163 }
4164 let val_ref = self.max_frequency.get_or_insert_with(|| fidl::new_empty!(u32, D));
4165 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
4166 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4167 {
4168 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4169 }
4170 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4171 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4172 }
4173 }
4174
4175 next_offset += envelope_size;
4176 _next_ordinal_to_read += 1;
4177 if next_offset >= end_offset {
4178 return Ok(());
4179 }
4180
4181 while _next_ordinal_to_read < 4 {
4183 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4184 _next_ordinal_to_read += 1;
4185 next_offset += envelope_size;
4186 }
4187
4188 let next_out_of_line = decoder.next_out_of_line();
4189 let handles_before = decoder.remaining_handles();
4190 if let Some((inlined, num_bytes, num_handles)) =
4191 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4192 {
4193 let member_inline_size =
4194 <f32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4195 if inlined != (member_inline_size <= 4) {
4196 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4197 }
4198 let inner_offset;
4199 let mut inner_depth = depth.clone();
4200 if inlined {
4201 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4202 inner_offset = next_offset;
4203 } else {
4204 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4205 inner_depth.increment()?;
4206 }
4207 let val_ref = self.threshold_db.get_or_insert_with(|| fidl::new_empty!(f32, D));
4208 fidl::decode!(f32, D, val_ref, decoder, inner_offset, inner_depth)?;
4209 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4210 {
4211 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4212 }
4213 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4214 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4215 }
4216 }
4217
4218 next_offset += envelope_size;
4219 _next_ordinal_to_read += 1;
4220 if next_offset >= end_offset {
4221 return Ok(());
4222 }
4223
4224 while _next_ordinal_to_read < 5 {
4226 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4227 _next_ordinal_to_read += 1;
4228 next_offset += envelope_size;
4229 }
4230
4231 let next_out_of_line = decoder.next_out_of_line();
4232 let handles_before = decoder.remaining_handles();
4233 if let Some((inlined, num_bytes, num_handles)) =
4234 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4235 {
4236 let member_inline_size =
4237 <ThresholdType as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4238 if inlined != (member_inline_size <= 4) {
4239 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4240 }
4241 let inner_offset;
4242 let mut inner_depth = depth.clone();
4243 if inlined {
4244 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4245 inner_offset = next_offset;
4246 } else {
4247 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4248 inner_depth.increment()?;
4249 }
4250 let val_ref =
4251 self.threshold_type.get_or_insert_with(|| fidl::new_empty!(ThresholdType, D));
4252 fidl::decode!(ThresholdType, D, val_ref, decoder, inner_offset, inner_depth)?;
4253 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4254 {
4255 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4256 }
4257 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4258 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4259 }
4260 }
4261
4262 next_offset += envelope_size;
4263 _next_ordinal_to_read += 1;
4264 if next_offset >= end_offset {
4265 return Ok(());
4266 }
4267
4268 while _next_ordinal_to_read < 6 {
4270 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4271 _next_ordinal_to_read += 1;
4272 next_offset += envelope_size;
4273 }
4274
4275 let next_out_of_line = decoder.next_out_of_line();
4276 let handles_before = decoder.remaining_handles();
4277 if let Some((inlined, num_bytes, num_handles)) =
4278 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4279 {
4280 let member_inline_size =
4281 <f32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4282 if inlined != (member_inline_size <= 4) {
4283 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4284 }
4285 let inner_offset;
4286 let mut inner_depth = depth.clone();
4287 if inlined {
4288 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4289 inner_offset = next_offset;
4290 } else {
4291 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4292 inner_depth.increment()?;
4293 }
4294 let val_ref = self.ratio.get_or_insert_with(|| fidl::new_empty!(f32, D));
4295 fidl::decode!(f32, D, val_ref, decoder, inner_offset, inner_depth)?;
4296 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4297 {
4298 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4299 }
4300 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4301 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4302 }
4303 }
4304
4305 next_offset += envelope_size;
4306 _next_ordinal_to_read += 1;
4307 if next_offset >= end_offset {
4308 return Ok(());
4309 }
4310
4311 while _next_ordinal_to_read < 7 {
4313 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4314 _next_ordinal_to_read += 1;
4315 next_offset += envelope_size;
4316 }
4317
4318 let next_out_of_line = decoder.next_out_of_line();
4319 let handles_before = decoder.remaining_handles();
4320 if let Some((inlined, num_bytes, num_handles)) =
4321 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4322 {
4323 let member_inline_size =
4324 <f32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4325 if inlined != (member_inline_size <= 4) {
4326 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4327 }
4328 let inner_offset;
4329 let mut inner_depth = depth.clone();
4330 if inlined {
4331 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4332 inner_offset = next_offset;
4333 } else {
4334 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4335 inner_depth.increment()?;
4336 }
4337 let val_ref = self.knee_width_db.get_or_insert_with(|| fidl::new_empty!(f32, D));
4338 fidl::decode!(f32, D, val_ref, decoder, inner_offset, inner_depth)?;
4339 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4340 {
4341 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4342 }
4343 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4344 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4345 }
4346 }
4347
4348 next_offset += envelope_size;
4349 _next_ordinal_to_read += 1;
4350 if next_offset >= end_offset {
4351 return Ok(());
4352 }
4353
4354 while _next_ordinal_to_read < 8 {
4356 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4357 _next_ordinal_to_read += 1;
4358 next_offset += envelope_size;
4359 }
4360
4361 let next_out_of_line = decoder.next_out_of_line();
4362 let handles_before = decoder.remaining_handles();
4363 if let Some((inlined, num_bytes, num_handles)) =
4364 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4365 {
4366 let member_inline_size =
4367 <i64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4368 if inlined != (member_inline_size <= 4) {
4369 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4370 }
4371 let inner_offset;
4372 let mut inner_depth = depth.clone();
4373 if inlined {
4374 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4375 inner_offset = next_offset;
4376 } else {
4377 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4378 inner_depth.increment()?;
4379 }
4380 let val_ref = self.attack.get_or_insert_with(|| fidl::new_empty!(i64, D));
4381 fidl::decode!(i64, D, val_ref, decoder, inner_offset, inner_depth)?;
4382 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4383 {
4384 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4385 }
4386 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4387 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4388 }
4389 }
4390
4391 next_offset += envelope_size;
4392 _next_ordinal_to_read += 1;
4393 if next_offset >= end_offset {
4394 return Ok(());
4395 }
4396
4397 while _next_ordinal_to_read < 9 {
4399 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4400 _next_ordinal_to_read += 1;
4401 next_offset += envelope_size;
4402 }
4403
4404 let next_out_of_line = decoder.next_out_of_line();
4405 let handles_before = decoder.remaining_handles();
4406 if let Some((inlined, num_bytes, num_handles)) =
4407 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4408 {
4409 let member_inline_size =
4410 <i64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4411 if inlined != (member_inline_size <= 4) {
4412 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4413 }
4414 let inner_offset;
4415 let mut inner_depth = depth.clone();
4416 if inlined {
4417 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4418 inner_offset = next_offset;
4419 } else {
4420 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4421 inner_depth.increment()?;
4422 }
4423 let val_ref = self.release.get_or_insert_with(|| fidl::new_empty!(i64, D));
4424 fidl::decode!(i64, D, val_ref, decoder, inner_offset, inner_depth)?;
4425 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4426 {
4427 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4428 }
4429 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4430 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4431 }
4432 }
4433
4434 next_offset += envelope_size;
4435 _next_ordinal_to_read += 1;
4436 if next_offset >= end_offset {
4437 return Ok(());
4438 }
4439
4440 while _next_ordinal_to_read < 10 {
4442 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4443 _next_ordinal_to_read += 1;
4444 next_offset += envelope_size;
4445 }
4446
4447 let next_out_of_line = decoder.next_out_of_line();
4448 let handles_before = decoder.remaining_handles();
4449 if let Some((inlined, num_bytes, num_handles)) =
4450 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4451 {
4452 let member_inline_size =
4453 <f32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4454 if inlined != (member_inline_size <= 4) {
4455 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4456 }
4457 let inner_offset;
4458 let mut inner_depth = depth.clone();
4459 if inlined {
4460 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4461 inner_offset = next_offset;
4462 } else {
4463 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4464 inner_depth.increment()?;
4465 }
4466 let val_ref = self.output_gain_db.get_or_insert_with(|| fidl::new_empty!(f32, D));
4467 fidl::decode!(f32, D, val_ref, decoder, inner_offset, inner_depth)?;
4468 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4469 {
4470 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4471 }
4472 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4473 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4474 }
4475 }
4476
4477 next_offset += envelope_size;
4478 _next_ordinal_to_read += 1;
4479 if next_offset >= end_offset {
4480 return Ok(());
4481 }
4482
4483 while _next_ordinal_to_read < 11 {
4485 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4486 _next_ordinal_to_read += 1;
4487 next_offset += envelope_size;
4488 }
4489
4490 let next_out_of_line = decoder.next_out_of_line();
4491 let handles_before = decoder.remaining_handles();
4492 if let Some((inlined, num_bytes, num_handles)) =
4493 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4494 {
4495 let member_inline_size =
4496 <f32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4497 if inlined != (member_inline_size <= 4) {
4498 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4499 }
4500 let inner_offset;
4501 let mut inner_depth = depth.clone();
4502 if inlined {
4503 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4504 inner_offset = next_offset;
4505 } else {
4506 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4507 inner_depth.increment()?;
4508 }
4509 let val_ref = self.input_gain_db.get_or_insert_with(|| fidl::new_empty!(f32, D));
4510 fidl::decode!(f32, D, val_ref, decoder, inner_offset, inner_depth)?;
4511 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4512 {
4513 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4514 }
4515 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4516 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4517 }
4518 }
4519
4520 next_offset += envelope_size;
4521 _next_ordinal_to_read += 1;
4522 if next_offset >= end_offset {
4523 return Ok(());
4524 }
4525
4526 while _next_ordinal_to_read < 12 {
4528 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4529 _next_ordinal_to_read += 1;
4530 next_offset += envelope_size;
4531 }
4532
4533 let next_out_of_line = decoder.next_out_of_line();
4534 let handles_before = decoder.remaining_handles();
4535 if let Some((inlined, num_bytes, num_handles)) =
4536 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4537 {
4538 let member_inline_size =
4539 <LevelType as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4540 if inlined != (member_inline_size <= 4) {
4541 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4542 }
4543 let inner_offset;
4544 let mut inner_depth = depth.clone();
4545 if inlined {
4546 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4547 inner_offset = next_offset;
4548 } else {
4549 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4550 inner_depth.increment()?;
4551 }
4552 let val_ref = self.level_type.get_or_insert_with(|| fidl::new_empty!(LevelType, D));
4553 fidl::decode!(LevelType, D, val_ref, decoder, inner_offset, inner_depth)?;
4554 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4555 {
4556 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4557 }
4558 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4559 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4560 }
4561 }
4562
4563 next_offset += envelope_size;
4564 _next_ordinal_to_read += 1;
4565 if next_offset >= end_offset {
4566 return Ok(());
4567 }
4568
4569 while _next_ordinal_to_read < 13 {
4571 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4572 _next_ordinal_to_read += 1;
4573 next_offset += envelope_size;
4574 }
4575
4576 let next_out_of_line = decoder.next_out_of_line();
4577 let handles_before = decoder.remaining_handles();
4578 if let Some((inlined, num_bytes, num_handles)) =
4579 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4580 {
4581 let member_inline_size =
4582 <i64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4583 if inlined != (member_inline_size <= 4) {
4584 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4585 }
4586 let inner_offset;
4587 let mut inner_depth = depth.clone();
4588 if inlined {
4589 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4590 inner_offset = next_offset;
4591 } else {
4592 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4593 inner_depth.increment()?;
4594 }
4595 let val_ref = self.lookahead.get_or_insert_with(|| fidl::new_empty!(i64, D));
4596 fidl::decode!(i64, D, val_ref, decoder, inner_offset, inner_depth)?;
4597 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4598 {
4599 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4600 }
4601 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4602 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4603 }
4604 }
4605
4606 next_offset += envelope_size;
4607 _next_ordinal_to_read += 1;
4608 if next_offset >= end_offset {
4609 return Ok(());
4610 }
4611
4612 while _next_ordinal_to_read < 14 {
4614 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4615 _next_ordinal_to_read += 1;
4616 next_offset += envelope_size;
4617 }
4618
4619 let next_out_of_line = decoder.next_out_of_line();
4620 let handles_before = decoder.remaining_handles();
4621 if let Some((inlined, num_bytes, num_handles)) =
4622 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4623 {
4624 let member_inline_size =
4625 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4626 if inlined != (member_inline_size <= 4) {
4627 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4628 }
4629 let inner_offset;
4630 let mut inner_depth = depth.clone();
4631 if inlined {
4632 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4633 inner_offset = next_offset;
4634 } else {
4635 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4636 inner_depth.increment()?;
4637 }
4638 let val_ref = self.linked_channels.get_or_insert_with(|| fidl::new_empty!(bool, D));
4639 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
4640 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4641 {
4642 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4643 }
4644 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4645 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4646 }
4647 }
4648
4649 next_offset += envelope_size;
4650
4651 while next_offset < end_offset {
4653 _next_ordinal_to_read += 1;
4654 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4655 next_offset += envelope_size;
4656 }
4657
4658 Ok(())
4659 }
4660 }
4661
4662 impl DynamicsElementState {
4663 #[inline(always)]
4664 fn max_ordinal_present(&self) -> u64 {
4665 if let Some(_) = self.band_states {
4666 return 1;
4667 }
4668 0
4669 }
4670 }
4671
4672 impl fidl::encoding::ValueTypeMarker for DynamicsElementState {
4673 type Borrowed<'a> = &'a Self;
4674 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4675 value
4676 }
4677 }
4678
4679 unsafe impl fidl::encoding::TypeMarker for DynamicsElementState {
4680 type Owned = Self;
4681
4682 #[inline(always)]
4683 fn inline_align(_context: fidl::encoding::Context) -> usize {
4684 8
4685 }
4686
4687 #[inline(always)]
4688 fn inline_size(_context: fidl::encoding::Context) -> usize {
4689 16
4690 }
4691 }
4692
4693 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<DynamicsElementState, D>
4694 for &DynamicsElementState
4695 {
4696 unsafe fn encode(
4697 self,
4698 encoder: &mut fidl::encoding::Encoder<'_, D>,
4699 offset: usize,
4700 mut depth: fidl::encoding::Depth,
4701 ) -> fidl::Result<()> {
4702 encoder.debug_check_bounds::<DynamicsElementState>(offset);
4703 let max_ordinal: u64 = self.max_ordinal_present();
4705 encoder.write_num(max_ordinal, offset);
4706 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
4707 if max_ordinal == 0 {
4709 return Ok(());
4710 }
4711 depth.increment()?;
4712 let envelope_size = 8;
4713 let bytes_len = max_ordinal as usize * envelope_size;
4714 #[allow(unused_variables)]
4715 let offset = encoder.out_of_line_offset(bytes_len);
4716 let mut _prev_end_offset: usize = 0;
4717 if 1 > max_ordinal {
4718 return Ok(());
4719 }
4720
4721 let cur_offset: usize = (1 - 1) * envelope_size;
4724
4725 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4727
4728 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<DynamicsBandState, 64>, D>(
4733 self.band_states.as_ref().map(<fidl::encoding::Vector<DynamicsBandState, 64> as fidl::encoding::ValueTypeMarker>::borrow),
4734 encoder, offset + cur_offset, depth
4735 )?;
4736
4737 _prev_end_offset = cur_offset + envelope_size;
4738
4739 Ok(())
4740 }
4741 }
4742
4743 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for DynamicsElementState {
4744 #[inline(always)]
4745 fn new_empty() -> Self {
4746 Self::default()
4747 }
4748
4749 unsafe fn decode(
4750 &mut self,
4751 decoder: &mut fidl::encoding::Decoder<'_, D>,
4752 offset: usize,
4753 mut depth: fidl::encoding::Depth,
4754 ) -> fidl::Result<()> {
4755 decoder.debug_check_bounds::<Self>(offset);
4756 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
4757 None => return Err(fidl::Error::NotNullable),
4758 Some(len) => len,
4759 };
4760 if len == 0 {
4762 return Ok(());
4763 };
4764 depth.increment()?;
4765 let envelope_size = 8;
4766 let bytes_len = len * envelope_size;
4767 let offset = decoder.out_of_line_offset(bytes_len)?;
4768 let mut _next_ordinal_to_read = 0;
4770 let mut next_offset = offset;
4771 let end_offset = offset + bytes_len;
4772 _next_ordinal_to_read += 1;
4773 if next_offset >= end_offset {
4774 return Ok(());
4775 }
4776
4777 while _next_ordinal_to_read < 1 {
4779 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4780 _next_ordinal_to_read += 1;
4781 next_offset += envelope_size;
4782 }
4783
4784 let next_out_of_line = decoder.next_out_of_line();
4785 let handles_before = decoder.remaining_handles();
4786 if let Some((inlined, num_bytes, num_handles)) =
4787 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4788 {
4789 let member_inline_size = <fidl::encoding::Vector<DynamicsBandState, 64> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4790 if inlined != (member_inline_size <= 4) {
4791 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4792 }
4793 let inner_offset;
4794 let mut inner_depth = depth.clone();
4795 if inlined {
4796 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4797 inner_offset = next_offset;
4798 } else {
4799 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4800 inner_depth.increment()?;
4801 }
4802 let val_ref = self.band_states.get_or_insert_with(
4803 || fidl::new_empty!(fidl::encoding::Vector<DynamicsBandState, 64>, D),
4804 );
4805 fidl::decode!(fidl::encoding::Vector<DynamicsBandState, 64>, D, val_ref, decoder, inner_offset, inner_depth)?;
4806 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4807 {
4808 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4809 }
4810 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4811 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4812 }
4813 }
4814
4815 next_offset += envelope_size;
4816
4817 while next_offset < end_offset {
4819 _next_ordinal_to_read += 1;
4820 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4821 next_offset += envelope_size;
4822 }
4823
4824 Ok(())
4825 }
4826 }
4827
4828 impl Element {
4829 #[inline(always)]
4830 fn max_ordinal_present(&self) -> u64 {
4831 if let Some(_) = self.can_bypass {
4832 return 7;
4833 }
4834 if let Some(_) = self.can_stop {
4835 return 6;
4836 }
4837 if let Some(_) = self.description {
4838 return 5;
4839 }
4840 if let Some(_) = self.type_specific {
4841 return 3;
4842 }
4843 if let Some(_) = self.type_ {
4844 return 2;
4845 }
4846 if let Some(_) = self.id {
4847 return 1;
4848 }
4849 0
4850 }
4851 }
4852
4853 impl fidl::encoding::ValueTypeMarker for Element {
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 Element {
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<Element, D> for &Element {
4875 unsafe fn encode(
4876 self,
4877 encoder: &mut fidl::encoding::Encoder<'_, D>,
4878 offset: usize,
4879 mut depth: fidl::encoding::Depth,
4880 ) -> fidl::Result<()> {
4881 encoder.debug_check_bounds::<Element>(offset);
4882 let max_ordinal: u64 = self.max_ordinal_present();
4884 encoder.write_num(max_ordinal, offset);
4885 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
4886 if max_ordinal == 0 {
4888 return Ok(());
4889 }
4890 depth.increment()?;
4891 let envelope_size = 8;
4892 let bytes_len = max_ordinal as usize * envelope_size;
4893 #[allow(unused_variables)]
4894 let offset = encoder.out_of_line_offset(bytes_len);
4895 let mut _prev_end_offset: usize = 0;
4896 if 1 > max_ordinal {
4897 return Ok(());
4898 }
4899
4900 let cur_offset: usize = (1 - 1) * envelope_size;
4903
4904 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4906
4907 fidl::encoding::encode_in_envelope_optional::<u64, D>(
4912 self.id.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
4913 encoder,
4914 offset + cur_offset,
4915 depth,
4916 )?;
4917
4918 _prev_end_offset = cur_offset + envelope_size;
4919 if 2 > max_ordinal {
4920 return Ok(());
4921 }
4922
4923 let cur_offset: usize = (2 - 1) * envelope_size;
4926
4927 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4929
4930 fidl::encoding::encode_in_envelope_optional::<ElementType, D>(
4935 self.type_.as_ref().map(<ElementType as fidl::encoding::ValueTypeMarker>::borrow),
4936 encoder,
4937 offset + cur_offset,
4938 depth,
4939 )?;
4940
4941 _prev_end_offset = cur_offset + envelope_size;
4942 if 3 > max_ordinal {
4943 return Ok(());
4944 }
4945
4946 let cur_offset: usize = (3 - 1) * envelope_size;
4949
4950 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4952
4953 fidl::encoding::encode_in_envelope_optional::<TypeSpecificElement, D>(
4958 self.type_specific
4959 .as_ref()
4960 .map(<TypeSpecificElement as fidl::encoding::ValueTypeMarker>::borrow),
4961 encoder,
4962 offset + cur_offset,
4963 depth,
4964 )?;
4965
4966 _prev_end_offset = cur_offset + envelope_size;
4967 if 5 > max_ordinal {
4968 return Ok(());
4969 }
4970
4971 let cur_offset: usize = (5 - 1) * envelope_size;
4974
4975 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4977
4978 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<256>, D>(
4983 self.description.as_ref().map(
4984 <fidl::encoding::BoundedString<256> as fidl::encoding::ValueTypeMarker>::borrow,
4985 ),
4986 encoder,
4987 offset + cur_offset,
4988 depth,
4989 )?;
4990
4991 _prev_end_offset = cur_offset + envelope_size;
4992 if 6 > max_ordinal {
4993 return Ok(());
4994 }
4995
4996 let cur_offset: usize = (6 - 1) * envelope_size;
4999
5000 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5002
5003 fidl::encoding::encode_in_envelope_optional::<bool, D>(
5008 self.can_stop.as_ref().map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
5009 encoder,
5010 offset + cur_offset,
5011 depth,
5012 )?;
5013
5014 _prev_end_offset = cur_offset + envelope_size;
5015 if 7 > max_ordinal {
5016 return Ok(());
5017 }
5018
5019 let cur_offset: usize = (7 - 1) * envelope_size;
5022
5023 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5025
5026 fidl::encoding::encode_in_envelope_optional::<bool, D>(
5031 self.can_bypass.as_ref().map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
5032 encoder,
5033 offset + cur_offset,
5034 depth,
5035 )?;
5036
5037 _prev_end_offset = cur_offset + envelope_size;
5038
5039 Ok(())
5040 }
5041 }
5042
5043 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Element {
5044 #[inline(always)]
5045 fn new_empty() -> Self {
5046 Self::default()
5047 }
5048
5049 unsafe fn decode(
5050 &mut self,
5051 decoder: &mut fidl::encoding::Decoder<'_, D>,
5052 offset: usize,
5053 mut depth: fidl::encoding::Depth,
5054 ) -> fidl::Result<()> {
5055 decoder.debug_check_bounds::<Self>(offset);
5056 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
5057 None => return Err(fidl::Error::NotNullable),
5058 Some(len) => len,
5059 };
5060 if len == 0 {
5062 return Ok(());
5063 };
5064 depth.increment()?;
5065 let envelope_size = 8;
5066 let bytes_len = len * envelope_size;
5067 let offset = decoder.out_of_line_offset(bytes_len)?;
5068 let mut _next_ordinal_to_read = 0;
5070 let mut next_offset = offset;
5071 let end_offset = offset + bytes_len;
5072 _next_ordinal_to_read += 1;
5073 if next_offset >= end_offset {
5074 return Ok(());
5075 }
5076
5077 while _next_ordinal_to_read < 1 {
5079 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5080 _next_ordinal_to_read += 1;
5081 next_offset += envelope_size;
5082 }
5083
5084 let next_out_of_line = decoder.next_out_of_line();
5085 let handles_before = decoder.remaining_handles();
5086 if let Some((inlined, num_bytes, num_handles)) =
5087 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5088 {
5089 let member_inline_size =
5090 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5091 if inlined != (member_inline_size <= 4) {
5092 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5093 }
5094 let inner_offset;
5095 let mut inner_depth = depth.clone();
5096 if inlined {
5097 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5098 inner_offset = next_offset;
5099 } else {
5100 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5101 inner_depth.increment()?;
5102 }
5103 let val_ref = self.id.get_or_insert_with(|| fidl::new_empty!(u64, D));
5104 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
5105 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5106 {
5107 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5108 }
5109 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5110 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5111 }
5112 }
5113
5114 next_offset += envelope_size;
5115 _next_ordinal_to_read += 1;
5116 if next_offset >= end_offset {
5117 return Ok(());
5118 }
5119
5120 while _next_ordinal_to_read < 2 {
5122 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5123 _next_ordinal_to_read += 1;
5124 next_offset += envelope_size;
5125 }
5126
5127 let next_out_of_line = decoder.next_out_of_line();
5128 let handles_before = decoder.remaining_handles();
5129 if let Some((inlined, num_bytes, num_handles)) =
5130 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5131 {
5132 let member_inline_size =
5133 <ElementType as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5134 if inlined != (member_inline_size <= 4) {
5135 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5136 }
5137 let inner_offset;
5138 let mut inner_depth = depth.clone();
5139 if inlined {
5140 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5141 inner_offset = next_offset;
5142 } else {
5143 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5144 inner_depth.increment()?;
5145 }
5146 let val_ref = self.type_.get_or_insert_with(|| fidl::new_empty!(ElementType, D));
5147 fidl::decode!(ElementType, D, val_ref, decoder, inner_offset, inner_depth)?;
5148 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5149 {
5150 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5151 }
5152 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5153 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5154 }
5155 }
5156
5157 next_offset += envelope_size;
5158 _next_ordinal_to_read += 1;
5159 if next_offset >= end_offset {
5160 return Ok(());
5161 }
5162
5163 while _next_ordinal_to_read < 3 {
5165 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5166 _next_ordinal_to_read += 1;
5167 next_offset += envelope_size;
5168 }
5169
5170 let next_out_of_line = decoder.next_out_of_line();
5171 let handles_before = decoder.remaining_handles();
5172 if let Some((inlined, num_bytes, num_handles)) =
5173 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5174 {
5175 let member_inline_size =
5176 <TypeSpecificElement as fidl::encoding::TypeMarker>::inline_size(
5177 decoder.context,
5178 );
5179 if inlined != (member_inline_size <= 4) {
5180 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5181 }
5182 let inner_offset;
5183 let mut inner_depth = depth.clone();
5184 if inlined {
5185 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5186 inner_offset = next_offset;
5187 } else {
5188 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5189 inner_depth.increment()?;
5190 }
5191 let val_ref = self
5192 .type_specific
5193 .get_or_insert_with(|| fidl::new_empty!(TypeSpecificElement, D));
5194 fidl::decode!(TypeSpecificElement, D, val_ref, decoder, inner_offset, inner_depth)?;
5195 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5196 {
5197 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5198 }
5199 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5200 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5201 }
5202 }
5203
5204 next_offset += envelope_size;
5205 _next_ordinal_to_read += 1;
5206 if next_offset >= end_offset {
5207 return Ok(());
5208 }
5209
5210 while _next_ordinal_to_read < 5 {
5212 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5213 _next_ordinal_to_read += 1;
5214 next_offset += envelope_size;
5215 }
5216
5217 let next_out_of_line = decoder.next_out_of_line();
5218 let handles_before = decoder.remaining_handles();
5219 if let Some((inlined, num_bytes, num_handles)) =
5220 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5221 {
5222 let member_inline_size =
5223 <fidl::encoding::BoundedString<256> as fidl::encoding::TypeMarker>::inline_size(
5224 decoder.context,
5225 );
5226 if inlined != (member_inline_size <= 4) {
5227 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5228 }
5229 let inner_offset;
5230 let mut inner_depth = depth.clone();
5231 if inlined {
5232 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5233 inner_offset = next_offset;
5234 } else {
5235 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5236 inner_depth.increment()?;
5237 }
5238 let val_ref = self
5239 .description
5240 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<256>, D));
5241 fidl::decode!(
5242 fidl::encoding::BoundedString<256>,
5243 D,
5244 val_ref,
5245 decoder,
5246 inner_offset,
5247 inner_depth
5248 )?;
5249 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5250 {
5251 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5252 }
5253 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5254 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5255 }
5256 }
5257
5258 next_offset += envelope_size;
5259 _next_ordinal_to_read += 1;
5260 if next_offset >= end_offset {
5261 return Ok(());
5262 }
5263
5264 while _next_ordinal_to_read < 6 {
5266 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5267 _next_ordinal_to_read += 1;
5268 next_offset += envelope_size;
5269 }
5270
5271 let next_out_of_line = decoder.next_out_of_line();
5272 let handles_before = decoder.remaining_handles();
5273 if let Some((inlined, num_bytes, num_handles)) =
5274 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5275 {
5276 let member_inline_size =
5277 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5278 if inlined != (member_inline_size <= 4) {
5279 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5280 }
5281 let inner_offset;
5282 let mut inner_depth = depth.clone();
5283 if inlined {
5284 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5285 inner_offset = next_offset;
5286 } else {
5287 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5288 inner_depth.increment()?;
5289 }
5290 let val_ref = self.can_stop.get_or_insert_with(|| fidl::new_empty!(bool, D));
5291 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
5292 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5293 {
5294 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5295 }
5296 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5297 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5298 }
5299 }
5300
5301 next_offset += envelope_size;
5302 _next_ordinal_to_read += 1;
5303 if next_offset >= end_offset {
5304 return Ok(());
5305 }
5306
5307 while _next_ordinal_to_read < 7 {
5309 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5310 _next_ordinal_to_read += 1;
5311 next_offset += envelope_size;
5312 }
5313
5314 let next_out_of_line = decoder.next_out_of_line();
5315 let handles_before = decoder.remaining_handles();
5316 if let Some((inlined, num_bytes, num_handles)) =
5317 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5318 {
5319 let member_inline_size =
5320 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5321 if inlined != (member_inline_size <= 4) {
5322 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5323 }
5324 let inner_offset;
5325 let mut inner_depth = depth.clone();
5326 if inlined {
5327 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5328 inner_offset = next_offset;
5329 } else {
5330 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5331 inner_depth.increment()?;
5332 }
5333 let val_ref = self.can_bypass.get_or_insert_with(|| fidl::new_empty!(bool, D));
5334 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
5335 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5336 {
5337 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5338 }
5339 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5340 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5341 }
5342 }
5343
5344 next_offset += envelope_size;
5345
5346 while next_offset < end_offset {
5348 _next_ordinal_to_read += 1;
5349 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5350 next_offset += envelope_size;
5351 }
5352
5353 Ok(())
5354 }
5355 }
5356
5357 impl ElementState {
5358 #[inline(always)]
5359 fn max_ordinal_present(&self) -> u64 {
5360 if let Some(_) = self.processing_delay {
5361 return 9;
5362 }
5363 if let Some(_) = self.turn_off_delay {
5364 return 8;
5365 }
5366 if let Some(_) = self.turn_on_delay {
5367 return 7;
5368 }
5369 if let Some(_) = self.bypassed {
5370 return 6;
5371 }
5372 if let Some(_) = self.started {
5373 return 5;
5374 }
5375 if let Some(_) = self.vendor_specific_data {
5376 return 4;
5377 }
5378 if let Some(_) = self.type_specific {
5379 return 1;
5380 }
5381 0
5382 }
5383 }
5384
5385 impl fidl::encoding::ValueTypeMarker for ElementState {
5386 type Borrowed<'a> = &'a Self;
5387 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
5388 value
5389 }
5390 }
5391
5392 unsafe impl fidl::encoding::TypeMarker for ElementState {
5393 type Owned = Self;
5394
5395 #[inline(always)]
5396 fn inline_align(_context: fidl::encoding::Context) -> usize {
5397 8
5398 }
5399
5400 #[inline(always)]
5401 fn inline_size(_context: fidl::encoding::Context) -> usize {
5402 16
5403 }
5404 }
5405
5406 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<ElementState, D>
5407 for &ElementState
5408 {
5409 unsafe fn encode(
5410 self,
5411 encoder: &mut fidl::encoding::Encoder<'_, D>,
5412 offset: usize,
5413 mut depth: fidl::encoding::Depth,
5414 ) -> fidl::Result<()> {
5415 encoder.debug_check_bounds::<ElementState>(offset);
5416 let max_ordinal: u64 = self.max_ordinal_present();
5418 encoder.write_num(max_ordinal, offset);
5419 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
5420 if max_ordinal == 0 {
5422 return Ok(());
5423 }
5424 depth.increment()?;
5425 let envelope_size = 8;
5426 let bytes_len = max_ordinal as usize * envelope_size;
5427 #[allow(unused_variables)]
5428 let offset = encoder.out_of_line_offset(bytes_len);
5429 let mut _prev_end_offset: usize = 0;
5430 if 1 > max_ordinal {
5431 return Ok(());
5432 }
5433
5434 let cur_offset: usize = (1 - 1) * envelope_size;
5437
5438 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5440
5441 fidl::encoding::encode_in_envelope_optional::<TypeSpecificElementState, D>(
5446 self.type_specific
5447 .as_ref()
5448 .map(<TypeSpecificElementState as fidl::encoding::ValueTypeMarker>::borrow),
5449 encoder,
5450 offset + cur_offset,
5451 depth,
5452 )?;
5453
5454 _prev_end_offset = cur_offset + envelope_size;
5455 if 4 > max_ordinal {
5456 return Ok(());
5457 }
5458
5459 let cur_offset: usize = (4 - 1) * envelope_size;
5462
5463 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5465
5466 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<u8, 4096>, D>(
5471 self.vendor_specific_data.as_ref().map(
5472 <fidl::encoding::Vector<u8, 4096> as fidl::encoding::ValueTypeMarker>::borrow,
5473 ),
5474 encoder,
5475 offset + cur_offset,
5476 depth,
5477 )?;
5478
5479 _prev_end_offset = cur_offset + envelope_size;
5480 if 5 > max_ordinal {
5481 return Ok(());
5482 }
5483
5484 let cur_offset: usize = (5 - 1) * envelope_size;
5487
5488 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5490
5491 fidl::encoding::encode_in_envelope_optional::<bool, D>(
5496 self.started.as_ref().map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
5497 encoder,
5498 offset + cur_offset,
5499 depth,
5500 )?;
5501
5502 _prev_end_offset = cur_offset + envelope_size;
5503 if 6 > max_ordinal {
5504 return Ok(());
5505 }
5506
5507 let cur_offset: usize = (6 - 1) * envelope_size;
5510
5511 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5513
5514 fidl::encoding::encode_in_envelope_optional::<bool, D>(
5519 self.bypassed.as_ref().map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
5520 encoder,
5521 offset + cur_offset,
5522 depth,
5523 )?;
5524
5525 _prev_end_offset = cur_offset + envelope_size;
5526 if 7 > max_ordinal {
5527 return Ok(());
5528 }
5529
5530 let cur_offset: usize = (7 - 1) * envelope_size;
5533
5534 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5536
5537 fidl::encoding::encode_in_envelope_optional::<i64, D>(
5542 self.turn_on_delay.as_ref().map(<i64 as fidl::encoding::ValueTypeMarker>::borrow),
5543 encoder,
5544 offset + cur_offset,
5545 depth,
5546 )?;
5547
5548 _prev_end_offset = cur_offset + envelope_size;
5549 if 8 > max_ordinal {
5550 return Ok(());
5551 }
5552
5553 let cur_offset: usize = (8 - 1) * envelope_size;
5556
5557 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5559
5560 fidl::encoding::encode_in_envelope_optional::<i64, D>(
5565 self.turn_off_delay.as_ref().map(<i64 as fidl::encoding::ValueTypeMarker>::borrow),
5566 encoder,
5567 offset + cur_offset,
5568 depth,
5569 )?;
5570
5571 _prev_end_offset = cur_offset + envelope_size;
5572 if 9 > max_ordinal {
5573 return Ok(());
5574 }
5575
5576 let cur_offset: usize = (9 - 1) * envelope_size;
5579
5580 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5582
5583 fidl::encoding::encode_in_envelope_optional::<i64, D>(
5588 self.processing_delay
5589 .as_ref()
5590 .map(<i64 as fidl::encoding::ValueTypeMarker>::borrow),
5591 encoder,
5592 offset + cur_offset,
5593 depth,
5594 )?;
5595
5596 _prev_end_offset = cur_offset + envelope_size;
5597
5598 Ok(())
5599 }
5600 }
5601
5602 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ElementState {
5603 #[inline(always)]
5604 fn new_empty() -> Self {
5605 Self::default()
5606 }
5607
5608 unsafe fn decode(
5609 &mut self,
5610 decoder: &mut fidl::encoding::Decoder<'_, D>,
5611 offset: usize,
5612 mut depth: fidl::encoding::Depth,
5613 ) -> fidl::Result<()> {
5614 decoder.debug_check_bounds::<Self>(offset);
5615 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
5616 None => return Err(fidl::Error::NotNullable),
5617 Some(len) => len,
5618 };
5619 if len == 0 {
5621 return Ok(());
5622 };
5623 depth.increment()?;
5624 let envelope_size = 8;
5625 let bytes_len = len * envelope_size;
5626 let offset = decoder.out_of_line_offset(bytes_len)?;
5627 let mut _next_ordinal_to_read = 0;
5629 let mut next_offset = offset;
5630 let end_offset = offset + bytes_len;
5631 _next_ordinal_to_read += 1;
5632 if next_offset >= end_offset {
5633 return Ok(());
5634 }
5635
5636 while _next_ordinal_to_read < 1 {
5638 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5639 _next_ordinal_to_read += 1;
5640 next_offset += envelope_size;
5641 }
5642
5643 let next_out_of_line = decoder.next_out_of_line();
5644 let handles_before = decoder.remaining_handles();
5645 if let Some((inlined, num_bytes, num_handles)) =
5646 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5647 {
5648 let member_inline_size =
5649 <TypeSpecificElementState as fidl::encoding::TypeMarker>::inline_size(
5650 decoder.context,
5651 );
5652 if inlined != (member_inline_size <= 4) {
5653 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5654 }
5655 let inner_offset;
5656 let mut inner_depth = depth.clone();
5657 if inlined {
5658 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5659 inner_offset = next_offset;
5660 } else {
5661 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5662 inner_depth.increment()?;
5663 }
5664 let val_ref = self
5665 .type_specific
5666 .get_or_insert_with(|| fidl::new_empty!(TypeSpecificElementState, D));
5667 fidl::decode!(
5668 TypeSpecificElementState,
5669 D,
5670 val_ref,
5671 decoder,
5672 inner_offset,
5673 inner_depth
5674 )?;
5675 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5676 {
5677 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5678 }
5679 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5680 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5681 }
5682 }
5683
5684 next_offset += envelope_size;
5685 _next_ordinal_to_read += 1;
5686 if next_offset >= end_offset {
5687 return Ok(());
5688 }
5689
5690 while _next_ordinal_to_read < 4 {
5692 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5693 _next_ordinal_to_read += 1;
5694 next_offset += envelope_size;
5695 }
5696
5697 let next_out_of_line = decoder.next_out_of_line();
5698 let handles_before = decoder.remaining_handles();
5699 if let Some((inlined, num_bytes, num_handles)) =
5700 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5701 {
5702 let member_inline_size =
5703 <fidl::encoding::Vector<u8, 4096> as fidl::encoding::TypeMarker>::inline_size(
5704 decoder.context,
5705 );
5706 if inlined != (member_inline_size <= 4) {
5707 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5708 }
5709 let inner_offset;
5710 let mut inner_depth = depth.clone();
5711 if inlined {
5712 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5713 inner_offset = next_offset;
5714 } else {
5715 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5716 inner_depth.increment()?;
5717 }
5718 let val_ref = self
5719 .vendor_specific_data
5720 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<u8, 4096>, D));
5721 fidl::decode!(fidl::encoding::Vector<u8, 4096>, D, val_ref, decoder, inner_offset, inner_depth)?;
5722 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5723 {
5724 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5725 }
5726 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5727 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5728 }
5729 }
5730
5731 next_offset += envelope_size;
5732 _next_ordinal_to_read += 1;
5733 if next_offset >= end_offset {
5734 return Ok(());
5735 }
5736
5737 while _next_ordinal_to_read < 5 {
5739 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5740 _next_ordinal_to_read += 1;
5741 next_offset += envelope_size;
5742 }
5743
5744 let next_out_of_line = decoder.next_out_of_line();
5745 let handles_before = decoder.remaining_handles();
5746 if let Some((inlined, num_bytes, num_handles)) =
5747 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5748 {
5749 let member_inline_size =
5750 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5751 if inlined != (member_inline_size <= 4) {
5752 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5753 }
5754 let inner_offset;
5755 let mut inner_depth = depth.clone();
5756 if inlined {
5757 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5758 inner_offset = next_offset;
5759 } else {
5760 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5761 inner_depth.increment()?;
5762 }
5763 let val_ref = self.started.get_or_insert_with(|| fidl::new_empty!(bool, D));
5764 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
5765 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5766 {
5767 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5768 }
5769 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5770 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5771 }
5772 }
5773
5774 next_offset += envelope_size;
5775 _next_ordinal_to_read += 1;
5776 if next_offset >= end_offset {
5777 return Ok(());
5778 }
5779
5780 while _next_ordinal_to_read < 6 {
5782 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5783 _next_ordinal_to_read += 1;
5784 next_offset += envelope_size;
5785 }
5786
5787 let next_out_of_line = decoder.next_out_of_line();
5788 let handles_before = decoder.remaining_handles();
5789 if let Some((inlined, num_bytes, num_handles)) =
5790 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5791 {
5792 let member_inline_size =
5793 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5794 if inlined != (member_inline_size <= 4) {
5795 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5796 }
5797 let inner_offset;
5798 let mut inner_depth = depth.clone();
5799 if inlined {
5800 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5801 inner_offset = next_offset;
5802 } else {
5803 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5804 inner_depth.increment()?;
5805 }
5806 let val_ref = self.bypassed.get_or_insert_with(|| fidl::new_empty!(bool, D));
5807 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
5808 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5809 {
5810 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5811 }
5812 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5813 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5814 }
5815 }
5816
5817 next_offset += envelope_size;
5818 _next_ordinal_to_read += 1;
5819 if next_offset >= end_offset {
5820 return Ok(());
5821 }
5822
5823 while _next_ordinal_to_read < 7 {
5825 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5826 _next_ordinal_to_read += 1;
5827 next_offset += envelope_size;
5828 }
5829
5830 let next_out_of_line = decoder.next_out_of_line();
5831 let handles_before = decoder.remaining_handles();
5832 if let Some((inlined, num_bytes, num_handles)) =
5833 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5834 {
5835 let member_inline_size =
5836 <i64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5837 if inlined != (member_inline_size <= 4) {
5838 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5839 }
5840 let inner_offset;
5841 let mut inner_depth = depth.clone();
5842 if inlined {
5843 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5844 inner_offset = next_offset;
5845 } else {
5846 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5847 inner_depth.increment()?;
5848 }
5849 let val_ref = self.turn_on_delay.get_or_insert_with(|| fidl::new_empty!(i64, D));
5850 fidl::decode!(i64, D, val_ref, decoder, inner_offset, inner_depth)?;
5851 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5852 {
5853 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5854 }
5855 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5856 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5857 }
5858 }
5859
5860 next_offset += envelope_size;
5861 _next_ordinal_to_read += 1;
5862 if next_offset >= end_offset {
5863 return Ok(());
5864 }
5865
5866 while _next_ordinal_to_read < 8 {
5868 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5869 _next_ordinal_to_read += 1;
5870 next_offset += envelope_size;
5871 }
5872
5873 let next_out_of_line = decoder.next_out_of_line();
5874 let handles_before = decoder.remaining_handles();
5875 if let Some((inlined, num_bytes, num_handles)) =
5876 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5877 {
5878 let member_inline_size =
5879 <i64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5880 if inlined != (member_inline_size <= 4) {
5881 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5882 }
5883 let inner_offset;
5884 let mut inner_depth = depth.clone();
5885 if inlined {
5886 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5887 inner_offset = next_offset;
5888 } else {
5889 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5890 inner_depth.increment()?;
5891 }
5892 let val_ref = self.turn_off_delay.get_or_insert_with(|| fidl::new_empty!(i64, D));
5893 fidl::decode!(i64, D, val_ref, decoder, inner_offset, inner_depth)?;
5894 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5895 {
5896 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5897 }
5898 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5899 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5900 }
5901 }
5902
5903 next_offset += envelope_size;
5904 _next_ordinal_to_read += 1;
5905 if next_offset >= end_offset {
5906 return Ok(());
5907 }
5908
5909 while _next_ordinal_to_read < 9 {
5911 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5912 _next_ordinal_to_read += 1;
5913 next_offset += envelope_size;
5914 }
5915
5916 let next_out_of_line = decoder.next_out_of_line();
5917 let handles_before = decoder.remaining_handles();
5918 if let Some((inlined, num_bytes, num_handles)) =
5919 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5920 {
5921 let member_inline_size =
5922 <i64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5923 if inlined != (member_inline_size <= 4) {
5924 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5925 }
5926 let inner_offset;
5927 let mut inner_depth = depth.clone();
5928 if inlined {
5929 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5930 inner_offset = next_offset;
5931 } else {
5932 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5933 inner_depth.increment()?;
5934 }
5935 let val_ref = self.processing_delay.get_or_insert_with(|| fidl::new_empty!(i64, D));
5936 fidl::decode!(i64, D, val_ref, decoder, inner_offset, inner_depth)?;
5937 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5938 {
5939 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5940 }
5941 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5942 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5943 }
5944 }
5945
5946 next_offset += envelope_size;
5947
5948 while next_offset < end_offset {
5950 _next_ordinal_to_read += 1;
5951 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5952 next_offset += envelope_size;
5953 }
5954
5955 Ok(())
5956 }
5957 }
5958
5959 impl Equalizer {
5960 #[inline(always)]
5961 fn max_ordinal_present(&self) -> u64 {
5962 if let Some(_) = self.max_gain_db {
5963 return 8;
5964 }
5965 if let Some(_) = self.min_gain_db {
5966 return 7;
5967 }
5968 if let Some(_) = self.max_q {
5969 return 6;
5970 }
5971 if let Some(_) = self.max_frequency {
5972 return 5;
5973 }
5974 if let Some(_) = self.min_frequency {
5975 return 4;
5976 }
5977 if let Some(_) = self.can_disable_bands {
5978 return 3;
5979 }
5980 if let Some(_) = self.supported_controls {
5981 return 2;
5982 }
5983 if let Some(_) = self.bands {
5984 return 1;
5985 }
5986 0
5987 }
5988 }
5989
5990 impl fidl::encoding::ValueTypeMarker for Equalizer {
5991 type Borrowed<'a> = &'a Self;
5992 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
5993 value
5994 }
5995 }
5996
5997 unsafe impl fidl::encoding::TypeMarker for Equalizer {
5998 type Owned = Self;
5999
6000 #[inline(always)]
6001 fn inline_align(_context: fidl::encoding::Context) -> usize {
6002 8
6003 }
6004
6005 #[inline(always)]
6006 fn inline_size(_context: fidl::encoding::Context) -> usize {
6007 16
6008 }
6009 }
6010
6011 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Equalizer, D>
6012 for &Equalizer
6013 {
6014 unsafe fn encode(
6015 self,
6016 encoder: &mut fidl::encoding::Encoder<'_, D>,
6017 offset: usize,
6018 mut depth: fidl::encoding::Depth,
6019 ) -> fidl::Result<()> {
6020 encoder.debug_check_bounds::<Equalizer>(offset);
6021 let max_ordinal: u64 = self.max_ordinal_present();
6023 encoder.write_num(max_ordinal, offset);
6024 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
6025 if max_ordinal == 0 {
6027 return Ok(());
6028 }
6029 depth.increment()?;
6030 let envelope_size = 8;
6031 let bytes_len = max_ordinal as usize * envelope_size;
6032 #[allow(unused_variables)]
6033 let offset = encoder.out_of_line_offset(bytes_len);
6034 let mut _prev_end_offset: usize = 0;
6035 if 1 > max_ordinal {
6036 return Ok(());
6037 }
6038
6039 let cur_offset: usize = (1 - 1) * envelope_size;
6042
6043 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6045
6046 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<EqualizerBand, 64>, D>(
6051 self.bands.as_ref().map(<fidl::encoding::Vector<EqualizerBand, 64> as fidl::encoding::ValueTypeMarker>::borrow),
6052 encoder, offset + cur_offset, depth
6053 )?;
6054
6055 _prev_end_offset = cur_offset + envelope_size;
6056 if 2 > max_ordinal {
6057 return Ok(());
6058 }
6059
6060 let cur_offset: usize = (2 - 1) * envelope_size;
6063
6064 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6066
6067 fidl::encoding::encode_in_envelope_optional::<EqualizerSupportedControls, D>(
6072 self.supported_controls
6073 .as_ref()
6074 .map(<EqualizerSupportedControls as fidl::encoding::ValueTypeMarker>::borrow),
6075 encoder,
6076 offset + cur_offset,
6077 depth,
6078 )?;
6079
6080 _prev_end_offset = cur_offset + envelope_size;
6081 if 3 > max_ordinal {
6082 return Ok(());
6083 }
6084
6085 let cur_offset: usize = (3 - 1) * envelope_size;
6088
6089 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6091
6092 fidl::encoding::encode_in_envelope_optional::<bool, D>(
6097 self.can_disable_bands
6098 .as_ref()
6099 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
6100 encoder,
6101 offset + cur_offset,
6102 depth,
6103 )?;
6104
6105 _prev_end_offset = cur_offset + envelope_size;
6106 if 4 > max_ordinal {
6107 return Ok(());
6108 }
6109
6110 let cur_offset: usize = (4 - 1) * envelope_size;
6113
6114 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6116
6117 fidl::encoding::encode_in_envelope_optional::<u32, D>(
6122 self.min_frequency.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
6123 encoder,
6124 offset + cur_offset,
6125 depth,
6126 )?;
6127
6128 _prev_end_offset = cur_offset + envelope_size;
6129 if 5 > max_ordinal {
6130 return Ok(());
6131 }
6132
6133 let cur_offset: usize = (5 - 1) * envelope_size;
6136
6137 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6139
6140 fidl::encoding::encode_in_envelope_optional::<u32, D>(
6145 self.max_frequency.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
6146 encoder,
6147 offset + cur_offset,
6148 depth,
6149 )?;
6150
6151 _prev_end_offset = cur_offset + envelope_size;
6152 if 6 > max_ordinal {
6153 return Ok(());
6154 }
6155
6156 let cur_offset: usize = (6 - 1) * envelope_size;
6159
6160 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6162
6163 fidl::encoding::encode_in_envelope_optional::<f32, D>(
6168 self.max_q.as_ref().map(<f32 as fidl::encoding::ValueTypeMarker>::borrow),
6169 encoder,
6170 offset + cur_offset,
6171 depth,
6172 )?;
6173
6174 _prev_end_offset = cur_offset + envelope_size;
6175 if 7 > max_ordinal {
6176 return Ok(());
6177 }
6178
6179 let cur_offset: usize = (7 - 1) * envelope_size;
6182
6183 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6185
6186 fidl::encoding::encode_in_envelope_optional::<f32, D>(
6191 self.min_gain_db.as_ref().map(<f32 as fidl::encoding::ValueTypeMarker>::borrow),
6192 encoder,
6193 offset + cur_offset,
6194 depth,
6195 )?;
6196
6197 _prev_end_offset = cur_offset + envelope_size;
6198 if 8 > max_ordinal {
6199 return Ok(());
6200 }
6201
6202 let cur_offset: usize = (8 - 1) * envelope_size;
6205
6206 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6208
6209 fidl::encoding::encode_in_envelope_optional::<f32, D>(
6214 self.max_gain_db.as_ref().map(<f32 as fidl::encoding::ValueTypeMarker>::borrow),
6215 encoder,
6216 offset + cur_offset,
6217 depth,
6218 )?;
6219
6220 _prev_end_offset = cur_offset + envelope_size;
6221
6222 Ok(())
6223 }
6224 }
6225
6226 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Equalizer {
6227 #[inline(always)]
6228 fn new_empty() -> Self {
6229 Self::default()
6230 }
6231
6232 unsafe fn decode(
6233 &mut self,
6234 decoder: &mut fidl::encoding::Decoder<'_, D>,
6235 offset: usize,
6236 mut depth: fidl::encoding::Depth,
6237 ) -> fidl::Result<()> {
6238 decoder.debug_check_bounds::<Self>(offset);
6239 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
6240 None => return Err(fidl::Error::NotNullable),
6241 Some(len) => len,
6242 };
6243 if len == 0 {
6245 return Ok(());
6246 };
6247 depth.increment()?;
6248 let envelope_size = 8;
6249 let bytes_len = len * envelope_size;
6250 let offset = decoder.out_of_line_offset(bytes_len)?;
6251 let mut _next_ordinal_to_read = 0;
6253 let mut next_offset = offset;
6254 let end_offset = offset + bytes_len;
6255 _next_ordinal_to_read += 1;
6256 if next_offset >= end_offset {
6257 return Ok(());
6258 }
6259
6260 while _next_ordinal_to_read < 1 {
6262 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6263 _next_ordinal_to_read += 1;
6264 next_offset += envelope_size;
6265 }
6266
6267 let next_out_of_line = decoder.next_out_of_line();
6268 let handles_before = decoder.remaining_handles();
6269 if let Some((inlined, num_bytes, num_handles)) =
6270 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6271 {
6272 let member_inline_size = <fidl::encoding::Vector<EqualizerBand, 64> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6273 if inlined != (member_inline_size <= 4) {
6274 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6275 }
6276 let inner_offset;
6277 let mut inner_depth = depth.clone();
6278 if inlined {
6279 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6280 inner_offset = next_offset;
6281 } else {
6282 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6283 inner_depth.increment()?;
6284 }
6285 let val_ref = self.bands.get_or_insert_with(
6286 || fidl::new_empty!(fidl::encoding::Vector<EqualizerBand, 64>, D),
6287 );
6288 fidl::decode!(fidl::encoding::Vector<EqualizerBand, 64>, D, val_ref, decoder, inner_offset, inner_depth)?;
6289 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6290 {
6291 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6292 }
6293 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6294 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6295 }
6296 }
6297
6298 next_offset += envelope_size;
6299 _next_ordinal_to_read += 1;
6300 if next_offset >= end_offset {
6301 return Ok(());
6302 }
6303
6304 while _next_ordinal_to_read < 2 {
6306 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6307 _next_ordinal_to_read += 1;
6308 next_offset += envelope_size;
6309 }
6310
6311 let next_out_of_line = decoder.next_out_of_line();
6312 let handles_before = decoder.remaining_handles();
6313 if let Some((inlined, num_bytes, num_handles)) =
6314 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6315 {
6316 let member_inline_size =
6317 <EqualizerSupportedControls as fidl::encoding::TypeMarker>::inline_size(
6318 decoder.context,
6319 );
6320 if inlined != (member_inline_size <= 4) {
6321 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6322 }
6323 let inner_offset;
6324 let mut inner_depth = depth.clone();
6325 if inlined {
6326 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6327 inner_offset = next_offset;
6328 } else {
6329 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6330 inner_depth.increment()?;
6331 }
6332 let val_ref = self
6333 .supported_controls
6334 .get_or_insert_with(|| fidl::new_empty!(EqualizerSupportedControls, D));
6335 fidl::decode!(
6336 EqualizerSupportedControls,
6337 D,
6338 val_ref,
6339 decoder,
6340 inner_offset,
6341 inner_depth
6342 )?;
6343 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6344 {
6345 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6346 }
6347 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6348 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6349 }
6350 }
6351
6352 next_offset += envelope_size;
6353 _next_ordinal_to_read += 1;
6354 if next_offset >= end_offset {
6355 return Ok(());
6356 }
6357
6358 while _next_ordinal_to_read < 3 {
6360 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6361 _next_ordinal_to_read += 1;
6362 next_offset += envelope_size;
6363 }
6364
6365 let next_out_of_line = decoder.next_out_of_line();
6366 let handles_before = decoder.remaining_handles();
6367 if let Some((inlined, num_bytes, num_handles)) =
6368 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6369 {
6370 let member_inline_size =
6371 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6372 if inlined != (member_inline_size <= 4) {
6373 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6374 }
6375 let inner_offset;
6376 let mut inner_depth = depth.clone();
6377 if inlined {
6378 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6379 inner_offset = next_offset;
6380 } else {
6381 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6382 inner_depth.increment()?;
6383 }
6384 let val_ref =
6385 self.can_disable_bands.get_or_insert_with(|| fidl::new_empty!(bool, D));
6386 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
6387 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6388 {
6389 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6390 }
6391 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6392 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6393 }
6394 }
6395
6396 next_offset += envelope_size;
6397 _next_ordinal_to_read += 1;
6398 if next_offset >= end_offset {
6399 return Ok(());
6400 }
6401
6402 while _next_ordinal_to_read < 4 {
6404 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6405 _next_ordinal_to_read += 1;
6406 next_offset += envelope_size;
6407 }
6408
6409 let next_out_of_line = decoder.next_out_of_line();
6410 let handles_before = decoder.remaining_handles();
6411 if let Some((inlined, num_bytes, num_handles)) =
6412 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6413 {
6414 let member_inline_size =
6415 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6416 if inlined != (member_inline_size <= 4) {
6417 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6418 }
6419 let inner_offset;
6420 let mut inner_depth = depth.clone();
6421 if inlined {
6422 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6423 inner_offset = next_offset;
6424 } else {
6425 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6426 inner_depth.increment()?;
6427 }
6428 let val_ref = self.min_frequency.get_or_insert_with(|| fidl::new_empty!(u32, D));
6429 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
6430 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6431 {
6432 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6433 }
6434 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6435 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6436 }
6437 }
6438
6439 next_offset += envelope_size;
6440 _next_ordinal_to_read += 1;
6441 if next_offset >= end_offset {
6442 return Ok(());
6443 }
6444
6445 while _next_ordinal_to_read < 5 {
6447 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6448 _next_ordinal_to_read += 1;
6449 next_offset += envelope_size;
6450 }
6451
6452 let next_out_of_line = decoder.next_out_of_line();
6453 let handles_before = decoder.remaining_handles();
6454 if let Some((inlined, num_bytes, num_handles)) =
6455 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6456 {
6457 let member_inline_size =
6458 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6459 if inlined != (member_inline_size <= 4) {
6460 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6461 }
6462 let inner_offset;
6463 let mut inner_depth = depth.clone();
6464 if inlined {
6465 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6466 inner_offset = next_offset;
6467 } else {
6468 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6469 inner_depth.increment()?;
6470 }
6471 let val_ref = self.max_frequency.get_or_insert_with(|| fidl::new_empty!(u32, D));
6472 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
6473 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6474 {
6475 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6476 }
6477 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6478 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6479 }
6480 }
6481
6482 next_offset += envelope_size;
6483 _next_ordinal_to_read += 1;
6484 if next_offset >= end_offset {
6485 return Ok(());
6486 }
6487
6488 while _next_ordinal_to_read < 6 {
6490 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6491 _next_ordinal_to_read += 1;
6492 next_offset += envelope_size;
6493 }
6494
6495 let next_out_of_line = decoder.next_out_of_line();
6496 let handles_before = decoder.remaining_handles();
6497 if let Some((inlined, num_bytes, num_handles)) =
6498 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6499 {
6500 let member_inline_size =
6501 <f32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6502 if inlined != (member_inline_size <= 4) {
6503 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6504 }
6505 let inner_offset;
6506 let mut inner_depth = depth.clone();
6507 if inlined {
6508 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6509 inner_offset = next_offset;
6510 } else {
6511 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6512 inner_depth.increment()?;
6513 }
6514 let val_ref = self.max_q.get_or_insert_with(|| fidl::new_empty!(f32, D));
6515 fidl::decode!(f32, D, val_ref, decoder, inner_offset, inner_depth)?;
6516 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6517 {
6518 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6519 }
6520 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6521 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6522 }
6523 }
6524
6525 next_offset += envelope_size;
6526 _next_ordinal_to_read += 1;
6527 if next_offset >= end_offset {
6528 return Ok(());
6529 }
6530
6531 while _next_ordinal_to_read < 7 {
6533 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6534 _next_ordinal_to_read += 1;
6535 next_offset += envelope_size;
6536 }
6537
6538 let next_out_of_line = decoder.next_out_of_line();
6539 let handles_before = decoder.remaining_handles();
6540 if let Some((inlined, num_bytes, num_handles)) =
6541 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6542 {
6543 let member_inline_size =
6544 <f32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6545 if inlined != (member_inline_size <= 4) {
6546 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6547 }
6548 let inner_offset;
6549 let mut inner_depth = depth.clone();
6550 if inlined {
6551 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6552 inner_offset = next_offset;
6553 } else {
6554 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6555 inner_depth.increment()?;
6556 }
6557 let val_ref = self.min_gain_db.get_or_insert_with(|| fidl::new_empty!(f32, D));
6558 fidl::decode!(f32, D, val_ref, decoder, inner_offset, inner_depth)?;
6559 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6560 {
6561 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6562 }
6563 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6564 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6565 }
6566 }
6567
6568 next_offset += envelope_size;
6569 _next_ordinal_to_read += 1;
6570 if next_offset >= end_offset {
6571 return Ok(());
6572 }
6573
6574 while _next_ordinal_to_read < 8 {
6576 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6577 _next_ordinal_to_read += 1;
6578 next_offset += envelope_size;
6579 }
6580
6581 let next_out_of_line = decoder.next_out_of_line();
6582 let handles_before = decoder.remaining_handles();
6583 if let Some((inlined, num_bytes, num_handles)) =
6584 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6585 {
6586 let member_inline_size =
6587 <f32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6588 if inlined != (member_inline_size <= 4) {
6589 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6590 }
6591 let inner_offset;
6592 let mut inner_depth = depth.clone();
6593 if inlined {
6594 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6595 inner_offset = next_offset;
6596 } else {
6597 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6598 inner_depth.increment()?;
6599 }
6600 let val_ref = self.max_gain_db.get_or_insert_with(|| fidl::new_empty!(f32, D));
6601 fidl::decode!(f32, D, val_ref, decoder, inner_offset, inner_depth)?;
6602 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6603 {
6604 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6605 }
6606 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6607 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6608 }
6609 }
6610
6611 next_offset += envelope_size;
6612
6613 while next_offset < end_offset {
6615 _next_ordinal_to_read += 1;
6616 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6617 next_offset += envelope_size;
6618 }
6619
6620 Ok(())
6621 }
6622 }
6623
6624 impl EqualizerBand {
6625 #[inline(always)]
6626 fn max_ordinal_present(&self) -> u64 {
6627 if let Some(_) = self.id {
6628 return 1;
6629 }
6630 0
6631 }
6632 }
6633
6634 impl fidl::encoding::ValueTypeMarker for EqualizerBand {
6635 type Borrowed<'a> = &'a Self;
6636 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
6637 value
6638 }
6639 }
6640
6641 unsafe impl fidl::encoding::TypeMarker for EqualizerBand {
6642 type Owned = Self;
6643
6644 #[inline(always)]
6645 fn inline_align(_context: fidl::encoding::Context) -> usize {
6646 8
6647 }
6648
6649 #[inline(always)]
6650 fn inline_size(_context: fidl::encoding::Context) -> usize {
6651 16
6652 }
6653 }
6654
6655 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<EqualizerBand, D>
6656 for &EqualizerBand
6657 {
6658 unsafe fn encode(
6659 self,
6660 encoder: &mut fidl::encoding::Encoder<'_, D>,
6661 offset: usize,
6662 mut depth: fidl::encoding::Depth,
6663 ) -> fidl::Result<()> {
6664 encoder.debug_check_bounds::<EqualizerBand>(offset);
6665 let max_ordinal: u64 = self.max_ordinal_present();
6667 encoder.write_num(max_ordinal, offset);
6668 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
6669 if max_ordinal == 0 {
6671 return Ok(());
6672 }
6673 depth.increment()?;
6674 let envelope_size = 8;
6675 let bytes_len = max_ordinal as usize * envelope_size;
6676 #[allow(unused_variables)]
6677 let offset = encoder.out_of_line_offset(bytes_len);
6678 let mut _prev_end_offset: usize = 0;
6679 if 1 > max_ordinal {
6680 return Ok(());
6681 }
6682
6683 let cur_offset: usize = (1 - 1) * envelope_size;
6686
6687 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6689
6690 fidl::encoding::encode_in_envelope_optional::<u64, D>(
6695 self.id.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
6696 encoder,
6697 offset + cur_offset,
6698 depth,
6699 )?;
6700
6701 _prev_end_offset = cur_offset + envelope_size;
6702
6703 Ok(())
6704 }
6705 }
6706
6707 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for EqualizerBand {
6708 #[inline(always)]
6709 fn new_empty() -> Self {
6710 Self::default()
6711 }
6712
6713 unsafe fn decode(
6714 &mut self,
6715 decoder: &mut fidl::encoding::Decoder<'_, D>,
6716 offset: usize,
6717 mut depth: fidl::encoding::Depth,
6718 ) -> fidl::Result<()> {
6719 decoder.debug_check_bounds::<Self>(offset);
6720 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
6721 None => return Err(fidl::Error::NotNullable),
6722 Some(len) => len,
6723 };
6724 if len == 0 {
6726 return Ok(());
6727 };
6728 depth.increment()?;
6729 let envelope_size = 8;
6730 let bytes_len = len * envelope_size;
6731 let offset = decoder.out_of_line_offset(bytes_len)?;
6732 let mut _next_ordinal_to_read = 0;
6734 let mut next_offset = offset;
6735 let end_offset = offset + bytes_len;
6736 _next_ordinal_to_read += 1;
6737 if next_offset >= end_offset {
6738 return Ok(());
6739 }
6740
6741 while _next_ordinal_to_read < 1 {
6743 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6744 _next_ordinal_to_read += 1;
6745 next_offset += envelope_size;
6746 }
6747
6748 let next_out_of_line = decoder.next_out_of_line();
6749 let handles_before = decoder.remaining_handles();
6750 if let Some((inlined, num_bytes, num_handles)) =
6751 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6752 {
6753 let member_inline_size =
6754 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6755 if inlined != (member_inline_size <= 4) {
6756 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6757 }
6758 let inner_offset;
6759 let mut inner_depth = depth.clone();
6760 if inlined {
6761 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6762 inner_offset = next_offset;
6763 } else {
6764 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6765 inner_depth.increment()?;
6766 }
6767 let val_ref = self.id.get_or_insert_with(|| fidl::new_empty!(u64, D));
6768 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
6769 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6770 {
6771 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6772 }
6773 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6774 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6775 }
6776 }
6777
6778 next_offset += envelope_size;
6779
6780 while next_offset < end_offset {
6782 _next_ordinal_to_read += 1;
6783 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6784 next_offset += envelope_size;
6785 }
6786
6787 Ok(())
6788 }
6789 }
6790
6791 impl EqualizerBandState {
6792 #[inline(always)]
6793 fn max_ordinal_present(&self) -> u64 {
6794 if let Some(_) = self.enabled {
6795 return 6;
6796 }
6797 if let Some(_) = self.gain_db {
6798 return 5;
6799 }
6800 if let Some(_) = self.q {
6801 return 4;
6802 }
6803 if let Some(_) = self.frequency {
6804 return 3;
6805 }
6806 if let Some(_) = self.type_ {
6807 return 2;
6808 }
6809 if let Some(_) = self.id {
6810 return 1;
6811 }
6812 0
6813 }
6814 }
6815
6816 impl fidl::encoding::ValueTypeMarker for EqualizerBandState {
6817 type Borrowed<'a> = &'a Self;
6818 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
6819 value
6820 }
6821 }
6822
6823 unsafe impl fidl::encoding::TypeMarker for EqualizerBandState {
6824 type Owned = Self;
6825
6826 #[inline(always)]
6827 fn inline_align(_context: fidl::encoding::Context) -> usize {
6828 8
6829 }
6830
6831 #[inline(always)]
6832 fn inline_size(_context: fidl::encoding::Context) -> usize {
6833 16
6834 }
6835 }
6836
6837 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<EqualizerBandState, D>
6838 for &EqualizerBandState
6839 {
6840 unsafe fn encode(
6841 self,
6842 encoder: &mut fidl::encoding::Encoder<'_, D>,
6843 offset: usize,
6844 mut depth: fidl::encoding::Depth,
6845 ) -> fidl::Result<()> {
6846 encoder.debug_check_bounds::<EqualizerBandState>(offset);
6847 let max_ordinal: u64 = self.max_ordinal_present();
6849 encoder.write_num(max_ordinal, offset);
6850 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
6851 if max_ordinal == 0 {
6853 return Ok(());
6854 }
6855 depth.increment()?;
6856 let envelope_size = 8;
6857 let bytes_len = max_ordinal as usize * envelope_size;
6858 #[allow(unused_variables)]
6859 let offset = encoder.out_of_line_offset(bytes_len);
6860 let mut _prev_end_offset: usize = 0;
6861 if 1 > max_ordinal {
6862 return Ok(());
6863 }
6864
6865 let cur_offset: usize = (1 - 1) * envelope_size;
6868
6869 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6871
6872 fidl::encoding::encode_in_envelope_optional::<u64, D>(
6877 self.id.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
6878 encoder,
6879 offset + cur_offset,
6880 depth,
6881 )?;
6882
6883 _prev_end_offset = cur_offset + envelope_size;
6884 if 2 > max_ordinal {
6885 return Ok(());
6886 }
6887
6888 let cur_offset: usize = (2 - 1) * envelope_size;
6891
6892 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6894
6895 fidl::encoding::encode_in_envelope_optional::<EqualizerBandType, D>(
6900 self.type_
6901 .as_ref()
6902 .map(<EqualizerBandType as fidl::encoding::ValueTypeMarker>::borrow),
6903 encoder,
6904 offset + cur_offset,
6905 depth,
6906 )?;
6907
6908 _prev_end_offset = cur_offset + envelope_size;
6909 if 3 > max_ordinal {
6910 return Ok(());
6911 }
6912
6913 let cur_offset: usize = (3 - 1) * envelope_size;
6916
6917 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6919
6920 fidl::encoding::encode_in_envelope_optional::<u32, D>(
6925 self.frequency.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
6926 encoder,
6927 offset + cur_offset,
6928 depth,
6929 )?;
6930
6931 _prev_end_offset = cur_offset + envelope_size;
6932 if 4 > max_ordinal {
6933 return Ok(());
6934 }
6935
6936 let cur_offset: usize = (4 - 1) * envelope_size;
6939
6940 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6942
6943 fidl::encoding::encode_in_envelope_optional::<f32, D>(
6948 self.q.as_ref().map(<f32 as fidl::encoding::ValueTypeMarker>::borrow),
6949 encoder,
6950 offset + cur_offset,
6951 depth,
6952 )?;
6953
6954 _prev_end_offset = cur_offset + envelope_size;
6955 if 5 > max_ordinal {
6956 return Ok(());
6957 }
6958
6959 let cur_offset: usize = (5 - 1) * envelope_size;
6962
6963 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6965
6966 fidl::encoding::encode_in_envelope_optional::<f32, D>(
6971 self.gain_db.as_ref().map(<f32 as fidl::encoding::ValueTypeMarker>::borrow),
6972 encoder,
6973 offset + cur_offset,
6974 depth,
6975 )?;
6976
6977 _prev_end_offset = cur_offset + envelope_size;
6978 if 6 > max_ordinal {
6979 return Ok(());
6980 }
6981
6982 let cur_offset: usize = (6 - 1) * envelope_size;
6985
6986 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6988
6989 fidl::encoding::encode_in_envelope_optional::<bool, D>(
6994 self.enabled.as_ref().map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
6995 encoder,
6996 offset + cur_offset,
6997 depth,
6998 )?;
6999
7000 _prev_end_offset = cur_offset + envelope_size;
7001
7002 Ok(())
7003 }
7004 }
7005
7006 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for EqualizerBandState {
7007 #[inline(always)]
7008 fn new_empty() -> Self {
7009 Self::default()
7010 }
7011
7012 unsafe fn decode(
7013 &mut self,
7014 decoder: &mut fidl::encoding::Decoder<'_, D>,
7015 offset: usize,
7016 mut depth: fidl::encoding::Depth,
7017 ) -> fidl::Result<()> {
7018 decoder.debug_check_bounds::<Self>(offset);
7019 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
7020 None => return Err(fidl::Error::NotNullable),
7021 Some(len) => len,
7022 };
7023 if len == 0 {
7025 return Ok(());
7026 };
7027 depth.increment()?;
7028 let envelope_size = 8;
7029 let bytes_len = len * envelope_size;
7030 let offset = decoder.out_of_line_offset(bytes_len)?;
7031 let mut _next_ordinal_to_read = 0;
7033 let mut next_offset = offset;
7034 let end_offset = offset + bytes_len;
7035 _next_ordinal_to_read += 1;
7036 if next_offset >= end_offset {
7037 return Ok(());
7038 }
7039
7040 while _next_ordinal_to_read < 1 {
7042 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7043 _next_ordinal_to_read += 1;
7044 next_offset += envelope_size;
7045 }
7046
7047 let next_out_of_line = decoder.next_out_of_line();
7048 let handles_before = decoder.remaining_handles();
7049 if let Some((inlined, num_bytes, num_handles)) =
7050 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7051 {
7052 let member_inline_size =
7053 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7054 if inlined != (member_inline_size <= 4) {
7055 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7056 }
7057 let inner_offset;
7058 let mut inner_depth = depth.clone();
7059 if inlined {
7060 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7061 inner_offset = next_offset;
7062 } else {
7063 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7064 inner_depth.increment()?;
7065 }
7066 let val_ref = self.id.get_or_insert_with(|| fidl::new_empty!(u64, D));
7067 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
7068 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7069 {
7070 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7071 }
7072 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7073 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7074 }
7075 }
7076
7077 next_offset += envelope_size;
7078 _next_ordinal_to_read += 1;
7079 if next_offset >= end_offset {
7080 return Ok(());
7081 }
7082
7083 while _next_ordinal_to_read < 2 {
7085 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7086 _next_ordinal_to_read += 1;
7087 next_offset += envelope_size;
7088 }
7089
7090 let next_out_of_line = decoder.next_out_of_line();
7091 let handles_before = decoder.remaining_handles();
7092 if let Some((inlined, num_bytes, num_handles)) =
7093 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7094 {
7095 let member_inline_size =
7096 <EqualizerBandType as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7097 if inlined != (member_inline_size <= 4) {
7098 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7099 }
7100 let inner_offset;
7101 let mut inner_depth = depth.clone();
7102 if inlined {
7103 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7104 inner_offset = next_offset;
7105 } else {
7106 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7107 inner_depth.increment()?;
7108 }
7109 let val_ref =
7110 self.type_.get_or_insert_with(|| fidl::new_empty!(EqualizerBandType, D));
7111 fidl::decode!(EqualizerBandType, D, val_ref, decoder, inner_offset, inner_depth)?;
7112 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7113 {
7114 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7115 }
7116 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7117 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7118 }
7119 }
7120
7121 next_offset += envelope_size;
7122 _next_ordinal_to_read += 1;
7123 if next_offset >= end_offset {
7124 return Ok(());
7125 }
7126
7127 while _next_ordinal_to_read < 3 {
7129 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7130 _next_ordinal_to_read += 1;
7131 next_offset += envelope_size;
7132 }
7133
7134 let next_out_of_line = decoder.next_out_of_line();
7135 let handles_before = decoder.remaining_handles();
7136 if let Some((inlined, num_bytes, num_handles)) =
7137 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7138 {
7139 let member_inline_size =
7140 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7141 if inlined != (member_inline_size <= 4) {
7142 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7143 }
7144 let inner_offset;
7145 let mut inner_depth = depth.clone();
7146 if inlined {
7147 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7148 inner_offset = next_offset;
7149 } else {
7150 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7151 inner_depth.increment()?;
7152 }
7153 let val_ref = self.frequency.get_or_insert_with(|| fidl::new_empty!(u32, D));
7154 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
7155 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7156 {
7157 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7158 }
7159 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7160 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7161 }
7162 }
7163
7164 next_offset += envelope_size;
7165 _next_ordinal_to_read += 1;
7166 if next_offset >= end_offset {
7167 return Ok(());
7168 }
7169
7170 while _next_ordinal_to_read < 4 {
7172 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7173 _next_ordinal_to_read += 1;
7174 next_offset += envelope_size;
7175 }
7176
7177 let next_out_of_line = decoder.next_out_of_line();
7178 let handles_before = decoder.remaining_handles();
7179 if let Some((inlined, num_bytes, num_handles)) =
7180 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7181 {
7182 let member_inline_size =
7183 <f32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7184 if inlined != (member_inline_size <= 4) {
7185 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7186 }
7187 let inner_offset;
7188 let mut inner_depth = depth.clone();
7189 if inlined {
7190 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7191 inner_offset = next_offset;
7192 } else {
7193 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7194 inner_depth.increment()?;
7195 }
7196 let val_ref = self.q.get_or_insert_with(|| fidl::new_empty!(f32, D));
7197 fidl::decode!(f32, D, val_ref, decoder, inner_offset, inner_depth)?;
7198 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7199 {
7200 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7201 }
7202 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7203 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7204 }
7205 }
7206
7207 next_offset += envelope_size;
7208 _next_ordinal_to_read += 1;
7209 if next_offset >= end_offset {
7210 return Ok(());
7211 }
7212
7213 while _next_ordinal_to_read < 5 {
7215 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7216 _next_ordinal_to_read += 1;
7217 next_offset += envelope_size;
7218 }
7219
7220 let next_out_of_line = decoder.next_out_of_line();
7221 let handles_before = decoder.remaining_handles();
7222 if let Some((inlined, num_bytes, num_handles)) =
7223 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7224 {
7225 let member_inline_size =
7226 <f32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7227 if inlined != (member_inline_size <= 4) {
7228 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7229 }
7230 let inner_offset;
7231 let mut inner_depth = depth.clone();
7232 if inlined {
7233 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7234 inner_offset = next_offset;
7235 } else {
7236 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7237 inner_depth.increment()?;
7238 }
7239 let val_ref = self.gain_db.get_or_insert_with(|| fidl::new_empty!(f32, D));
7240 fidl::decode!(f32, D, val_ref, decoder, inner_offset, inner_depth)?;
7241 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7242 {
7243 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7244 }
7245 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7246 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7247 }
7248 }
7249
7250 next_offset += envelope_size;
7251 _next_ordinal_to_read += 1;
7252 if next_offset >= end_offset {
7253 return Ok(());
7254 }
7255
7256 while _next_ordinal_to_read < 6 {
7258 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7259 _next_ordinal_to_read += 1;
7260 next_offset += envelope_size;
7261 }
7262
7263 let next_out_of_line = decoder.next_out_of_line();
7264 let handles_before = decoder.remaining_handles();
7265 if let Some((inlined, num_bytes, num_handles)) =
7266 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7267 {
7268 let member_inline_size =
7269 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7270 if inlined != (member_inline_size <= 4) {
7271 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7272 }
7273 let inner_offset;
7274 let mut inner_depth = depth.clone();
7275 if inlined {
7276 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7277 inner_offset = next_offset;
7278 } else {
7279 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7280 inner_depth.increment()?;
7281 }
7282 let val_ref = self.enabled.get_or_insert_with(|| fidl::new_empty!(bool, D));
7283 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
7284 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7285 {
7286 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7287 }
7288 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7289 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7290 }
7291 }
7292
7293 next_offset += envelope_size;
7294
7295 while next_offset < end_offset {
7297 _next_ordinal_to_read += 1;
7298 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7299 next_offset += envelope_size;
7300 }
7301
7302 Ok(())
7303 }
7304 }
7305
7306 impl EqualizerElementState {
7307 #[inline(always)]
7308 fn max_ordinal_present(&self) -> u64 {
7309 if let Some(_) = self.band_states {
7310 return 2;
7311 }
7312 0
7313 }
7314 }
7315
7316 impl fidl::encoding::ValueTypeMarker for EqualizerElementState {
7317 type Borrowed<'a> = &'a Self;
7318 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
7319 value
7320 }
7321 }
7322
7323 unsafe impl fidl::encoding::TypeMarker for EqualizerElementState {
7324 type Owned = Self;
7325
7326 #[inline(always)]
7327 fn inline_align(_context: fidl::encoding::Context) -> usize {
7328 8
7329 }
7330
7331 #[inline(always)]
7332 fn inline_size(_context: fidl::encoding::Context) -> usize {
7333 16
7334 }
7335 }
7336
7337 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<EqualizerElementState, D>
7338 for &EqualizerElementState
7339 {
7340 unsafe fn encode(
7341 self,
7342 encoder: &mut fidl::encoding::Encoder<'_, D>,
7343 offset: usize,
7344 mut depth: fidl::encoding::Depth,
7345 ) -> fidl::Result<()> {
7346 encoder.debug_check_bounds::<EqualizerElementState>(offset);
7347 let max_ordinal: u64 = self.max_ordinal_present();
7349 encoder.write_num(max_ordinal, offset);
7350 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
7351 if max_ordinal == 0 {
7353 return Ok(());
7354 }
7355 depth.increment()?;
7356 let envelope_size = 8;
7357 let bytes_len = max_ordinal as usize * envelope_size;
7358 #[allow(unused_variables)]
7359 let offset = encoder.out_of_line_offset(bytes_len);
7360 let mut _prev_end_offset: usize = 0;
7361 if 2 > max_ordinal {
7362 return Ok(());
7363 }
7364
7365 let cur_offset: usize = (2 - 1) * envelope_size;
7368
7369 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7371
7372 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<EqualizerBandState, 64>, D>(
7377 self.band_states.as_ref().map(<fidl::encoding::Vector<EqualizerBandState, 64> as fidl::encoding::ValueTypeMarker>::borrow),
7378 encoder, offset + cur_offset, depth
7379 )?;
7380
7381 _prev_end_offset = cur_offset + envelope_size;
7382
7383 Ok(())
7384 }
7385 }
7386
7387 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for EqualizerElementState {
7388 #[inline(always)]
7389 fn new_empty() -> Self {
7390 Self::default()
7391 }
7392
7393 unsafe fn decode(
7394 &mut self,
7395 decoder: &mut fidl::encoding::Decoder<'_, D>,
7396 offset: usize,
7397 mut depth: fidl::encoding::Depth,
7398 ) -> fidl::Result<()> {
7399 decoder.debug_check_bounds::<Self>(offset);
7400 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
7401 None => return Err(fidl::Error::NotNullable),
7402 Some(len) => len,
7403 };
7404 if len == 0 {
7406 return Ok(());
7407 };
7408 depth.increment()?;
7409 let envelope_size = 8;
7410 let bytes_len = len * envelope_size;
7411 let offset = decoder.out_of_line_offset(bytes_len)?;
7412 let mut _next_ordinal_to_read = 0;
7414 let mut next_offset = offset;
7415 let end_offset = offset + bytes_len;
7416 _next_ordinal_to_read += 1;
7417 if next_offset >= end_offset {
7418 return Ok(());
7419 }
7420
7421 while _next_ordinal_to_read < 2 {
7423 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7424 _next_ordinal_to_read += 1;
7425 next_offset += envelope_size;
7426 }
7427
7428 let next_out_of_line = decoder.next_out_of_line();
7429 let handles_before = decoder.remaining_handles();
7430 if let Some((inlined, num_bytes, num_handles)) =
7431 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7432 {
7433 let member_inline_size = <fidl::encoding::Vector<EqualizerBandState, 64> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7434 if inlined != (member_inline_size <= 4) {
7435 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7436 }
7437 let inner_offset;
7438 let mut inner_depth = depth.clone();
7439 if inlined {
7440 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7441 inner_offset = next_offset;
7442 } else {
7443 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7444 inner_depth.increment()?;
7445 }
7446 let val_ref = self.band_states.get_or_insert_with(
7447 || fidl::new_empty!(fidl::encoding::Vector<EqualizerBandState, 64>, D),
7448 );
7449 fidl::decode!(fidl::encoding::Vector<EqualizerBandState, 64>, D, val_ref, decoder, inner_offset, inner_depth)?;
7450 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7451 {
7452 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7453 }
7454 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7455 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7456 }
7457 }
7458
7459 next_offset += envelope_size;
7460
7461 while next_offset < end_offset {
7463 _next_ordinal_to_read += 1;
7464 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7465 next_offset += envelope_size;
7466 }
7467
7468 Ok(())
7469 }
7470 }
7471
7472 impl Gain {
7473 #[inline(always)]
7474 fn max_ordinal_present(&self) -> u64 {
7475 if let Some(_) = self.min_gain_step {
7476 return 5;
7477 }
7478 if let Some(_) = self.max_gain {
7479 return 4;
7480 }
7481 if let Some(_) = self.min_gain {
7482 return 3;
7483 }
7484 if let Some(_) = self.domain {
7485 return 2;
7486 }
7487 if let Some(_) = self.type_ {
7488 return 1;
7489 }
7490 0
7491 }
7492 }
7493
7494 impl fidl::encoding::ValueTypeMarker for Gain {
7495 type Borrowed<'a> = &'a Self;
7496 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
7497 value
7498 }
7499 }
7500
7501 unsafe impl fidl::encoding::TypeMarker for Gain {
7502 type Owned = Self;
7503
7504 #[inline(always)]
7505 fn inline_align(_context: fidl::encoding::Context) -> usize {
7506 8
7507 }
7508
7509 #[inline(always)]
7510 fn inline_size(_context: fidl::encoding::Context) -> usize {
7511 16
7512 }
7513 }
7514
7515 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Gain, D> for &Gain {
7516 unsafe fn encode(
7517 self,
7518 encoder: &mut fidl::encoding::Encoder<'_, D>,
7519 offset: usize,
7520 mut depth: fidl::encoding::Depth,
7521 ) -> fidl::Result<()> {
7522 encoder.debug_check_bounds::<Gain>(offset);
7523 let max_ordinal: u64 = self.max_ordinal_present();
7525 encoder.write_num(max_ordinal, offset);
7526 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
7527 if max_ordinal == 0 {
7529 return Ok(());
7530 }
7531 depth.increment()?;
7532 let envelope_size = 8;
7533 let bytes_len = max_ordinal as usize * envelope_size;
7534 #[allow(unused_variables)]
7535 let offset = encoder.out_of_line_offset(bytes_len);
7536 let mut _prev_end_offset: usize = 0;
7537 if 1 > max_ordinal {
7538 return Ok(());
7539 }
7540
7541 let cur_offset: usize = (1 - 1) * envelope_size;
7544
7545 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7547
7548 fidl::encoding::encode_in_envelope_optional::<GainType, D>(
7553 self.type_.as_ref().map(<GainType as fidl::encoding::ValueTypeMarker>::borrow),
7554 encoder,
7555 offset + cur_offset,
7556 depth,
7557 )?;
7558
7559 _prev_end_offset = cur_offset + envelope_size;
7560 if 2 > max_ordinal {
7561 return Ok(());
7562 }
7563
7564 let cur_offset: usize = (2 - 1) * envelope_size;
7567
7568 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7570
7571 fidl::encoding::encode_in_envelope_optional::<GainDomain, D>(
7576 self.domain.as_ref().map(<GainDomain as fidl::encoding::ValueTypeMarker>::borrow),
7577 encoder,
7578 offset + cur_offset,
7579 depth,
7580 )?;
7581
7582 _prev_end_offset = cur_offset + envelope_size;
7583 if 3 > max_ordinal {
7584 return Ok(());
7585 }
7586
7587 let cur_offset: usize = (3 - 1) * envelope_size;
7590
7591 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7593
7594 fidl::encoding::encode_in_envelope_optional::<f32, D>(
7599 self.min_gain.as_ref().map(<f32 as fidl::encoding::ValueTypeMarker>::borrow),
7600 encoder,
7601 offset + cur_offset,
7602 depth,
7603 )?;
7604
7605 _prev_end_offset = cur_offset + envelope_size;
7606 if 4 > max_ordinal {
7607 return Ok(());
7608 }
7609
7610 let cur_offset: usize = (4 - 1) * envelope_size;
7613
7614 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7616
7617 fidl::encoding::encode_in_envelope_optional::<f32, D>(
7622 self.max_gain.as_ref().map(<f32 as fidl::encoding::ValueTypeMarker>::borrow),
7623 encoder,
7624 offset + cur_offset,
7625 depth,
7626 )?;
7627
7628 _prev_end_offset = cur_offset + envelope_size;
7629 if 5 > max_ordinal {
7630 return Ok(());
7631 }
7632
7633 let cur_offset: usize = (5 - 1) * envelope_size;
7636
7637 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7639
7640 fidl::encoding::encode_in_envelope_optional::<f32, D>(
7645 self.min_gain_step.as_ref().map(<f32 as fidl::encoding::ValueTypeMarker>::borrow),
7646 encoder,
7647 offset + cur_offset,
7648 depth,
7649 )?;
7650
7651 _prev_end_offset = cur_offset + envelope_size;
7652
7653 Ok(())
7654 }
7655 }
7656
7657 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Gain {
7658 #[inline(always)]
7659 fn new_empty() -> Self {
7660 Self::default()
7661 }
7662
7663 unsafe fn decode(
7664 &mut self,
7665 decoder: &mut fidl::encoding::Decoder<'_, D>,
7666 offset: usize,
7667 mut depth: fidl::encoding::Depth,
7668 ) -> fidl::Result<()> {
7669 decoder.debug_check_bounds::<Self>(offset);
7670 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
7671 None => return Err(fidl::Error::NotNullable),
7672 Some(len) => len,
7673 };
7674 if len == 0 {
7676 return Ok(());
7677 };
7678 depth.increment()?;
7679 let envelope_size = 8;
7680 let bytes_len = len * envelope_size;
7681 let offset = decoder.out_of_line_offset(bytes_len)?;
7682 let mut _next_ordinal_to_read = 0;
7684 let mut next_offset = offset;
7685 let end_offset = offset + bytes_len;
7686 _next_ordinal_to_read += 1;
7687 if next_offset >= end_offset {
7688 return Ok(());
7689 }
7690
7691 while _next_ordinal_to_read < 1 {
7693 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7694 _next_ordinal_to_read += 1;
7695 next_offset += envelope_size;
7696 }
7697
7698 let next_out_of_line = decoder.next_out_of_line();
7699 let handles_before = decoder.remaining_handles();
7700 if let Some((inlined, num_bytes, num_handles)) =
7701 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7702 {
7703 let member_inline_size =
7704 <GainType as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7705 if inlined != (member_inline_size <= 4) {
7706 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7707 }
7708 let inner_offset;
7709 let mut inner_depth = depth.clone();
7710 if inlined {
7711 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7712 inner_offset = next_offset;
7713 } else {
7714 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7715 inner_depth.increment()?;
7716 }
7717 let val_ref = self.type_.get_or_insert_with(|| fidl::new_empty!(GainType, D));
7718 fidl::decode!(GainType, D, val_ref, decoder, inner_offset, inner_depth)?;
7719 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7720 {
7721 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7722 }
7723 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7724 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7725 }
7726 }
7727
7728 next_offset += envelope_size;
7729 _next_ordinal_to_read += 1;
7730 if next_offset >= end_offset {
7731 return Ok(());
7732 }
7733
7734 while _next_ordinal_to_read < 2 {
7736 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7737 _next_ordinal_to_read += 1;
7738 next_offset += envelope_size;
7739 }
7740
7741 let next_out_of_line = decoder.next_out_of_line();
7742 let handles_before = decoder.remaining_handles();
7743 if let Some((inlined, num_bytes, num_handles)) =
7744 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7745 {
7746 let member_inline_size =
7747 <GainDomain as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7748 if inlined != (member_inline_size <= 4) {
7749 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7750 }
7751 let inner_offset;
7752 let mut inner_depth = depth.clone();
7753 if inlined {
7754 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7755 inner_offset = next_offset;
7756 } else {
7757 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7758 inner_depth.increment()?;
7759 }
7760 let val_ref = self.domain.get_or_insert_with(|| fidl::new_empty!(GainDomain, D));
7761 fidl::decode!(GainDomain, D, val_ref, decoder, inner_offset, inner_depth)?;
7762 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7763 {
7764 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7765 }
7766 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7767 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7768 }
7769 }
7770
7771 next_offset += envelope_size;
7772 _next_ordinal_to_read += 1;
7773 if next_offset >= end_offset {
7774 return Ok(());
7775 }
7776
7777 while _next_ordinal_to_read < 3 {
7779 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7780 _next_ordinal_to_read += 1;
7781 next_offset += envelope_size;
7782 }
7783
7784 let next_out_of_line = decoder.next_out_of_line();
7785 let handles_before = decoder.remaining_handles();
7786 if let Some((inlined, num_bytes, num_handles)) =
7787 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7788 {
7789 let member_inline_size =
7790 <f32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7791 if inlined != (member_inline_size <= 4) {
7792 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7793 }
7794 let inner_offset;
7795 let mut inner_depth = depth.clone();
7796 if inlined {
7797 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7798 inner_offset = next_offset;
7799 } else {
7800 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7801 inner_depth.increment()?;
7802 }
7803 let val_ref = self.min_gain.get_or_insert_with(|| fidl::new_empty!(f32, D));
7804 fidl::decode!(f32, D, val_ref, decoder, inner_offset, inner_depth)?;
7805 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7806 {
7807 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7808 }
7809 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7810 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7811 }
7812 }
7813
7814 next_offset += envelope_size;
7815 _next_ordinal_to_read += 1;
7816 if next_offset >= end_offset {
7817 return Ok(());
7818 }
7819
7820 while _next_ordinal_to_read < 4 {
7822 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7823 _next_ordinal_to_read += 1;
7824 next_offset += envelope_size;
7825 }
7826
7827 let next_out_of_line = decoder.next_out_of_line();
7828 let handles_before = decoder.remaining_handles();
7829 if let Some((inlined, num_bytes, num_handles)) =
7830 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7831 {
7832 let member_inline_size =
7833 <f32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7834 if inlined != (member_inline_size <= 4) {
7835 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7836 }
7837 let inner_offset;
7838 let mut inner_depth = depth.clone();
7839 if inlined {
7840 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7841 inner_offset = next_offset;
7842 } else {
7843 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7844 inner_depth.increment()?;
7845 }
7846 let val_ref = self.max_gain.get_or_insert_with(|| fidl::new_empty!(f32, D));
7847 fidl::decode!(f32, D, val_ref, decoder, inner_offset, inner_depth)?;
7848 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7849 {
7850 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7851 }
7852 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7853 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7854 }
7855 }
7856
7857 next_offset += envelope_size;
7858 _next_ordinal_to_read += 1;
7859 if next_offset >= end_offset {
7860 return Ok(());
7861 }
7862
7863 while _next_ordinal_to_read < 5 {
7865 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7866 _next_ordinal_to_read += 1;
7867 next_offset += envelope_size;
7868 }
7869
7870 let next_out_of_line = decoder.next_out_of_line();
7871 let handles_before = decoder.remaining_handles();
7872 if let Some((inlined, num_bytes, num_handles)) =
7873 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7874 {
7875 let member_inline_size =
7876 <f32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7877 if inlined != (member_inline_size <= 4) {
7878 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7879 }
7880 let inner_offset;
7881 let mut inner_depth = depth.clone();
7882 if inlined {
7883 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7884 inner_offset = next_offset;
7885 } else {
7886 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7887 inner_depth.increment()?;
7888 }
7889 let val_ref = self.min_gain_step.get_or_insert_with(|| fidl::new_empty!(f32, D));
7890 fidl::decode!(f32, D, val_ref, decoder, inner_offset, inner_depth)?;
7891 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7892 {
7893 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7894 }
7895 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7896 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7897 }
7898 }
7899
7900 next_offset += envelope_size;
7901
7902 while next_offset < end_offset {
7904 _next_ordinal_to_read += 1;
7905 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7906 next_offset += envelope_size;
7907 }
7908
7909 Ok(())
7910 }
7911 }
7912
7913 impl GainElementState {
7914 #[inline(always)]
7915 fn max_ordinal_present(&self) -> u64 {
7916 if let Some(_) = self.gain {
7917 return 1;
7918 }
7919 0
7920 }
7921 }
7922
7923 impl fidl::encoding::ValueTypeMarker for GainElementState {
7924 type Borrowed<'a> = &'a Self;
7925 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
7926 value
7927 }
7928 }
7929
7930 unsafe impl fidl::encoding::TypeMarker for GainElementState {
7931 type Owned = Self;
7932
7933 #[inline(always)]
7934 fn inline_align(_context: fidl::encoding::Context) -> usize {
7935 8
7936 }
7937
7938 #[inline(always)]
7939 fn inline_size(_context: fidl::encoding::Context) -> usize {
7940 16
7941 }
7942 }
7943
7944 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<GainElementState, D>
7945 for &GainElementState
7946 {
7947 unsafe fn encode(
7948 self,
7949 encoder: &mut fidl::encoding::Encoder<'_, D>,
7950 offset: usize,
7951 mut depth: fidl::encoding::Depth,
7952 ) -> fidl::Result<()> {
7953 encoder.debug_check_bounds::<GainElementState>(offset);
7954 let max_ordinal: u64 = self.max_ordinal_present();
7956 encoder.write_num(max_ordinal, offset);
7957 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
7958 if max_ordinal == 0 {
7960 return Ok(());
7961 }
7962 depth.increment()?;
7963 let envelope_size = 8;
7964 let bytes_len = max_ordinal as usize * envelope_size;
7965 #[allow(unused_variables)]
7966 let offset = encoder.out_of_line_offset(bytes_len);
7967 let mut _prev_end_offset: usize = 0;
7968 if 1 > max_ordinal {
7969 return Ok(());
7970 }
7971
7972 let cur_offset: usize = (1 - 1) * envelope_size;
7975
7976 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7978
7979 fidl::encoding::encode_in_envelope_optional::<f32, D>(
7984 self.gain.as_ref().map(<f32 as fidl::encoding::ValueTypeMarker>::borrow),
7985 encoder,
7986 offset + cur_offset,
7987 depth,
7988 )?;
7989
7990 _prev_end_offset = cur_offset + envelope_size;
7991
7992 Ok(())
7993 }
7994 }
7995
7996 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for GainElementState {
7997 #[inline(always)]
7998 fn new_empty() -> Self {
7999 Self::default()
8000 }
8001
8002 unsafe fn decode(
8003 &mut self,
8004 decoder: &mut fidl::encoding::Decoder<'_, D>,
8005 offset: usize,
8006 mut depth: fidl::encoding::Depth,
8007 ) -> fidl::Result<()> {
8008 decoder.debug_check_bounds::<Self>(offset);
8009 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
8010 None => return Err(fidl::Error::NotNullable),
8011 Some(len) => len,
8012 };
8013 if len == 0 {
8015 return Ok(());
8016 };
8017 depth.increment()?;
8018 let envelope_size = 8;
8019 let bytes_len = len * envelope_size;
8020 let offset = decoder.out_of_line_offset(bytes_len)?;
8021 let mut _next_ordinal_to_read = 0;
8023 let mut next_offset = offset;
8024 let end_offset = offset + bytes_len;
8025 _next_ordinal_to_read += 1;
8026 if next_offset >= end_offset {
8027 return Ok(());
8028 }
8029
8030 while _next_ordinal_to_read < 1 {
8032 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8033 _next_ordinal_to_read += 1;
8034 next_offset += envelope_size;
8035 }
8036
8037 let next_out_of_line = decoder.next_out_of_line();
8038 let handles_before = decoder.remaining_handles();
8039 if let Some((inlined, num_bytes, num_handles)) =
8040 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8041 {
8042 let member_inline_size =
8043 <f32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8044 if inlined != (member_inline_size <= 4) {
8045 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8046 }
8047 let inner_offset;
8048 let mut inner_depth = depth.clone();
8049 if inlined {
8050 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8051 inner_offset = next_offset;
8052 } else {
8053 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8054 inner_depth.increment()?;
8055 }
8056 let val_ref = self.gain.get_or_insert_with(|| fidl::new_empty!(f32, D));
8057 fidl::decode!(f32, D, val_ref, decoder, inner_offset, inner_depth)?;
8058 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8059 {
8060 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8061 }
8062 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8063 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8064 }
8065 }
8066
8067 next_offset += envelope_size;
8068
8069 while next_offset < end_offset {
8071 _next_ordinal_to_read += 1;
8072 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8073 next_offset += envelope_size;
8074 }
8075
8076 Ok(())
8077 }
8078 }
8079
8080 impl PlugState {
8081 #[inline(always)]
8082 fn max_ordinal_present(&self) -> u64 {
8083 if let Some(_) = self.plug_state_time {
8084 return 2;
8085 }
8086 if let Some(_) = self.plugged {
8087 return 1;
8088 }
8089 0
8090 }
8091 }
8092
8093 impl fidl::encoding::ValueTypeMarker for PlugState {
8094 type Borrowed<'a> = &'a Self;
8095 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
8096 value
8097 }
8098 }
8099
8100 unsafe impl fidl::encoding::TypeMarker for PlugState {
8101 type Owned = Self;
8102
8103 #[inline(always)]
8104 fn inline_align(_context: fidl::encoding::Context) -> usize {
8105 8
8106 }
8107
8108 #[inline(always)]
8109 fn inline_size(_context: fidl::encoding::Context) -> usize {
8110 16
8111 }
8112 }
8113
8114 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<PlugState, D>
8115 for &PlugState
8116 {
8117 unsafe fn encode(
8118 self,
8119 encoder: &mut fidl::encoding::Encoder<'_, D>,
8120 offset: usize,
8121 mut depth: fidl::encoding::Depth,
8122 ) -> fidl::Result<()> {
8123 encoder.debug_check_bounds::<PlugState>(offset);
8124 let max_ordinal: u64 = self.max_ordinal_present();
8126 encoder.write_num(max_ordinal, offset);
8127 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
8128 if max_ordinal == 0 {
8130 return Ok(());
8131 }
8132 depth.increment()?;
8133 let envelope_size = 8;
8134 let bytes_len = max_ordinal as usize * envelope_size;
8135 #[allow(unused_variables)]
8136 let offset = encoder.out_of_line_offset(bytes_len);
8137 let mut _prev_end_offset: usize = 0;
8138 if 1 > max_ordinal {
8139 return Ok(());
8140 }
8141
8142 let cur_offset: usize = (1 - 1) * envelope_size;
8145
8146 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8148
8149 fidl::encoding::encode_in_envelope_optional::<bool, D>(
8154 self.plugged.as_ref().map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
8155 encoder,
8156 offset + cur_offset,
8157 depth,
8158 )?;
8159
8160 _prev_end_offset = cur_offset + envelope_size;
8161 if 2 > max_ordinal {
8162 return Ok(());
8163 }
8164
8165 let cur_offset: usize = (2 - 1) * envelope_size;
8168
8169 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8171
8172 fidl::encoding::encode_in_envelope_optional::<i64, D>(
8177 self.plug_state_time.as_ref().map(<i64 as fidl::encoding::ValueTypeMarker>::borrow),
8178 encoder,
8179 offset + cur_offset,
8180 depth,
8181 )?;
8182
8183 _prev_end_offset = cur_offset + envelope_size;
8184
8185 Ok(())
8186 }
8187 }
8188
8189 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for PlugState {
8190 #[inline(always)]
8191 fn new_empty() -> Self {
8192 Self::default()
8193 }
8194
8195 unsafe fn decode(
8196 &mut self,
8197 decoder: &mut fidl::encoding::Decoder<'_, D>,
8198 offset: usize,
8199 mut depth: fidl::encoding::Depth,
8200 ) -> fidl::Result<()> {
8201 decoder.debug_check_bounds::<Self>(offset);
8202 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
8203 None => return Err(fidl::Error::NotNullable),
8204 Some(len) => len,
8205 };
8206 if len == 0 {
8208 return Ok(());
8209 };
8210 depth.increment()?;
8211 let envelope_size = 8;
8212 let bytes_len = len * envelope_size;
8213 let offset = decoder.out_of_line_offset(bytes_len)?;
8214 let mut _next_ordinal_to_read = 0;
8216 let mut next_offset = offset;
8217 let end_offset = offset + bytes_len;
8218 _next_ordinal_to_read += 1;
8219 if next_offset >= end_offset {
8220 return Ok(());
8221 }
8222
8223 while _next_ordinal_to_read < 1 {
8225 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8226 _next_ordinal_to_read += 1;
8227 next_offset += envelope_size;
8228 }
8229
8230 let next_out_of_line = decoder.next_out_of_line();
8231 let handles_before = decoder.remaining_handles();
8232 if let Some((inlined, num_bytes, num_handles)) =
8233 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8234 {
8235 let member_inline_size =
8236 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8237 if inlined != (member_inline_size <= 4) {
8238 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8239 }
8240 let inner_offset;
8241 let mut inner_depth = depth.clone();
8242 if inlined {
8243 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8244 inner_offset = next_offset;
8245 } else {
8246 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8247 inner_depth.increment()?;
8248 }
8249 let val_ref = self.plugged.get_or_insert_with(|| fidl::new_empty!(bool, D));
8250 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
8251 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8252 {
8253 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8254 }
8255 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8256 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8257 }
8258 }
8259
8260 next_offset += envelope_size;
8261 _next_ordinal_to_read += 1;
8262 if next_offset >= end_offset {
8263 return Ok(());
8264 }
8265
8266 while _next_ordinal_to_read < 2 {
8268 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8269 _next_ordinal_to_read += 1;
8270 next_offset += envelope_size;
8271 }
8272
8273 let next_out_of_line = decoder.next_out_of_line();
8274 let handles_before = decoder.remaining_handles();
8275 if let Some((inlined, num_bytes, num_handles)) =
8276 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8277 {
8278 let member_inline_size =
8279 <i64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8280 if inlined != (member_inline_size <= 4) {
8281 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8282 }
8283 let inner_offset;
8284 let mut inner_depth = depth.clone();
8285 if inlined {
8286 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8287 inner_offset = next_offset;
8288 } else {
8289 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8290 inner_depth.increment()?;
8291 }
8292 let val_ref = self.plug_state_time.get_or_insert_with(|| fidl::new_empty!(i64, D));
8293 fidl::decode!(i64, D, val_ref, decoder, inner_offset, inner_depth)?;
8294 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8295 {
8296 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8297 }
8298 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8299 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8300 }
8301 }
8302
8303 next_offset += envelope_size;
8304
8305 while next_offset < end_offset {
8307 _next_ordinal_to_read += 1;
8308 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8309 next_offset += envelope_size;
8310 }
8311
8312 Ok(())
8313 }
8314 }
8315
8316 impl SettableElementState {
8317 #[inline(always)]
8318 fn max_ordinal_present(&self) -> u64 {
8319 if let Some(_) = self.bypassed {
8320 return 4;
8321 }
8322 if let Some(_) = self.started {
8323 return 3;
8324 }
8325 if let Some(_) = self.vendor_specific_data {
8326 return 2;
8327 }
8328 if let Some(_) = self.type_specific {
8329 return 1;
8330 }
8331 0
8332 }
8333 }
8334
8335 impl fidl::encoding::ValueTypeMarker for SettableElementState {
8336 type Borrowed<'a> = &'a Self;
8337 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
8338 value
8339 }
8340 }
8341
8342 unsafe impl fidl::encoding::TypeMarker for SettableElementState {
8343 type Owned = Self;
8344
8345 #[inline(always)]
8346 fn inline_align(_context: fidl::encoding::Context) -> usize {
8347 8
8348 }
8349
8350 #[inline(always)]
8351 fn inline_size(_context: fidl::encoding::Context) -> usize {
8352 16
8353 }
8354 }
8355
8356 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<SettableElementState, D>
8357 for &SettableElementState
8358 {
8359 unsafe fn encode(
8360 self,
8361 encoder: &mut fidl::encoding::Encoder<'_, D>,
8362 offset: usize,
8363 mut depth: fidl::encoding::Depth,
8364 ) -> fidl::Result<()> {
8365 encoder.debug_check_bounds::<SettableElementState>(offset);
8366 let max_ordinal: u64 = self.max_ordinal_present();
8368 encoder.write_num(max_ordinal, offset);
8369 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
8370 if max_ordinal == 0 {
8372 return Ok(());
8373 }
8374 depth.increment()?;
8375 let envelope_size = 8;
8376 let bytes_len = max_ordinal as usize * envelope_size;
8377 #[allow(unused_variables)]
8378 let offset = encoder.out_of_line_offset(bytes_len);
8379 let mut _prev_end_offset: usize = 0;
8380 if 1 > max_ordinal {
8381 return Ok(());
8382 }
8383
8384 let cur_offset: usize = (1 - 1) * envelope_size;
8387
8388 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8390
8391 fidl::encoding::encode_in_envelope_optional::<SettableTypeSpecificElementState, D>(
8396 self.type_specific.as_ref().map(
8397 <SettableTypeSpecificElementState as fidl::encoding::ValueTypeMarker>::borrow,
8398 ),
8399 encoder,
8400 offset + cur_offset,
8401 depth,
8402 )?;
8403
8404 _prev_end_offset = cur_offset + envelope_size;
8405 if 2 > max_ordinal {
8406 return Ok(());
8407 }
8408
8409 let cur_offset: usize = (2 - 1) * envelope_size;
8412
8413 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8415
8416 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<u8, 4096>, D>(
8421 self.vendor_specific_data.as_ref().map(
8422 <fidl::encoding::Vector<u8, 4096> as fidl::encoding::ValueTypeMarker>::borrow,
8423 ),
8424 encoder,
8425 offset + cur_offset,
8426 depth,
8427 )?;
8428
8429 _prev_end_offset = cur_offset + envelope_size;
8430 if 3 > max_ordinal {
8431 return Ok(());
8432 }
8433
8434 let cur_offset: usize = (3 - 1) * envelope_size;
8437
8438 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8440
8441 fidl::encoding::encode_in_envelope_optional::<bool, D>(
8446 self.started.as_ref().map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
8447 encoder,
8448 offset + cur_offset,
8449 depth,
8450 )?;
8451
8452 _prev_end_offset = cur_offset + envelope_size;
8453 if 4 > max_ordinal {
8454 return Ok(());
8455 }
8456
8457 let cur_offset: usize = (4 - 1) * envelope_size;
8460
8461 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8463
8464 fidl::encoding::encode_in_envelope_optional::<bool, D>(
8469 self.bypassed.as_ref().map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
8470 encoder,
8471 offset + cur_offset,
8472 depth,
8473 )?;
8474
8475 _prev_end_offset = cur_offset + envelope_size;
8476
8477 Ok(())
8478 }
8479 }
8480
8481 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for SettableElementState {
8482 #[inline(always)]
8483 fn new_empty() -> Self {
8484 Self::default()
8485 }
8486
8487 unsafe fn decode(
8488 &mut self,
8489 decoder: &mut fidl::encoding::Decoder<'_, D>,
8490 offset: usize,
8491 mut depth: fidl::encoding::Depth,
8492 ) -> fidl::Result<()> {
8493 decoder.debug_check_bounds::<Self>(offset);
8494 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
8495 None => return Err(fidl::Error::NotNullable),
8496 Some(len) => len,
8497 };
8498 if len == 0 {
8500 return Ok(());
8501 };
8502 depth.increment()?;
8503 let envelope_size = 8;
8504 let bytes_len = len * envelope_size;
8505 let offset = decoder.out_of_line_offset(bytes_len)?;
8506 let mut _next_ordinal_to_read = 0;
8508 let mut next_offset = offset;
8509 let end_offset = offset + bytes_len;
8510 _next_ordinal_to_read += 1;
8511 if next_offset >= end_offset {
8512 return Ok(());
8513 }
8514
8515 while _next_ordinal_to_read < 1 {
8517 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8518 _next_ordinal_to_read += 1;
8519 next_offset += envelope_size;
8520 }
8521
8522 let next_out_of_line = decoder.next_out_of_line();
8523 let handles_before = decoder.remaining_handles();
8524 if let Some((inlined, num_bytes, num_handles)) =
8525 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8526 {
8527 let member_inline_size =
8528 <SettableTypeSpecificElementState as fidl::encoding::TypeMarker>::inline_size(
8529 decoder.context,
8530 );
8531 if inlined != (member_inline_size <= 4) {
8532 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8533 }
8534 let inner_offset;
8535 let mut inner_depth = depth.clone();
8536 if inlined {
8537 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8538 inner_offset = next_offset;
8539 } else {
8540 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8541 inner_depth.increment()?;
8542 }
8543 let val_ref = self
8544 .type_specific
8545 .get_or_insert_with(|| fidl::new_empty!(SettableTypeSpecificElementState, D));
8546 fidl::decode!(
8547 SettableTypeSpecificElementState,
8548 D,
8549 val_ref,
8550 decoder,
8551 inner_offset,
8552 inner_depth
8553 )?;
8554 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8555 {
8556 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8557 }
8558 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8559 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8560 }
8561 }
8562
8563 next_offset += envelope_size;
8564 _next_ordinal_to_read += 1;
8565 if next_offset >= end_offset {
8566 return Ok(());
8567 }
8568
8569 while _next_ordinal_to_read < 2 {
8571 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8572 _next_ordinal_to_read += 1;
8573 next_offset += envelope_size;
8574 }
8575
8576 let next_out_of_line = decoder.next_out_of_line();
8577 let handles_before = decoder.remaining_handles();
8578 if let Some((inlined, num_bytes, num_handles)) =
8579 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8580 {
8581 let member_inline_size =
8582 <fidl::encoding::Vector<u8, 4096> as fidl::encoding::TypeMarker>::inline_size(
8583 decoder.context,
8584 );
8585 if inlined != (member_inline_size <= 4) {
8586 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8587 }
8588 let inner_offset;
8589 let mut inner_depth = depth.clone();
8590 if inlined {
8591 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8592 inner_offset = next_offset;
8593 } else {
8594 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8595 inner_depth.increment()?;
8596 }
8597 let val_ref = self
8598 .vendor_specific_data
8599 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<u8, 4096>, D));
8600 fidl::decode!(fidl::encoding::Vector<u8, 4096>, D, val_ref, decoder, inner_offset, inner_depth)?;
8601 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8602 {
8603 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8604 }
8605 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8606 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8607 }
8608 }
8609
8610 next_offset += envelope_size;
8611 _next_ordinal_to_read += 1;
8612 if next_offset >= end_offset {
8613 return Ok(());
8614 }
8615
8616 while _next_ordinal_to_read < 3 {
8618 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8619 _next_ordinal_to_read += 1;
8620 next_offset += envelope_size;
8621 }
8622
8623 let next_out_of_line = decoder.next_out_of_line();
8624 let handles_before = decoder.remaining_handles();
8625 if let Some((inlined, num_bytes, num_handles)) =
8626 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8627 {
8628 let member_inline_size =
8629 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8630 if inlined != (member_inline_size <= 4) {
8631 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8632 }
8633 let inner_offset;
8634 let mut inner_depth = depth.clone();
8635 if inlined {
8636 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8637 inner_offset = next_offset;
8638 } else {
8639 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8640 inner_depth.increment()?;
8641 }
8642 let val_ref = self.started.get_or_insert_with(|| fidl::new_empty!(bool, D));
8643 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
8644 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8645 {
8646 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8647 }
8648 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8649 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8650 }
8651 }
8652
8653 next_offset += envelope_size;
8654 _next_ordinal_to_read += 1;
8655 if next_offset >= end_offset {
8656 return Ok(());
8657 }
8658
8659 while _next_ordinal_to_read < 4 {
8661 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8662 _next_ordinal_to_read += 1;
8663 next_offset += envelope_size;
8664 }
8665
8666 let next_out_of_line = decoder.next_out_of_line();
8667 let handles_before = decoder.remaining_handles();
8668 if let Some((inlined, num_bytes, num_handles)) =
8669 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8670 {
8671 let member_inline_size =
8672 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8673 if inlined != (member_inline_size <= 4) {
8674 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8675 }
8676 let inner_offset;
8677 let mut inner_depth = depth.clone();
8678 if inlined {
8679 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8680 inner_offset = next_offset;
8681 } else {
8682 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8683 inner_depth.increment()?;
8684 }
8685 let val_ref = self.bypassed.get_or_insert_with(|| fidl::new_empty!(bool, D));
8686 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
8687 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8688 {
8689 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8690 }
8691 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8692 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8693 }
8694 }
8695
8696 next_offset += envelope_size;
8697
8698 while next_offset < end_offset {
8700 _next_ordinal_to_read += 1;
8701 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8702 next_offset += envelope_size;
8703 }
8704
8705 Ok(())
8706 }
8707 }
8708
8709 impl Topology {
8710 #[inline(always)]
8711 fn max_ordinal_present(&self) -> u64 {
8712 if let Some(_) = self.processing_elements_edge_pairs {
8713 return 2;
8714 }
8715 if let Some(_) = self.id {
8716 return 1;
8717 }
8718 0
8719 }
8720 }
8721
8722 impl fidl::encoding::ValueTypeMarker for Topology {
8723 type Borrowed<'a> = &'a Self;
8724 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
8725 value
8726 }
8727 }
8728
8729 unsafe impl fidl::encoding::TypeMarker for Topology {
8730 type Owned = Self;
8731
8732 #[inline(always)]
8733 fn inline_align(_context: fidl::encoding::Context) -> usize {
8734 8
8735 }
8736
8737 #[inline(always)]
8738 fn inline_size(_context: fidl::encoding::Context) -> usize {
8739 16
8740 }
8741 }
8742
8743 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Topology, D> for &Topology {
8744 unsafe fn encode(
8745 self,
8746 encoder: &mut fidl::encoding::Encoder<'_, D>,
8747 offset: usize,
8748 mut depth: fidl::encoding::Depth,
8749 ) -> fidl::Result<()> {
8750 encoder.debug_check_bounds::<Topology>(offset);
8751 let max_ordinal: u64 = self.max_ordinal_present();
8753 encoder.write_num(max_ordinal, offset);
8754 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
8755 if max_ordinal == 0 {
8757 return Ok(());
8758 }
8759 depth.increment()?;
8760 let envelope_size = 8;
8761 let bytes_len = max_ordinal as usize * envelope_size;
8762 #[allow(unused_variables)]
8763 let offset = encoder.out_of_line_offset(bytes_len);
8764 let mut _prev_end_offset: usize = 0;
8765 if 1 > max_ordinal {
8766 return Ok(());
8767 }
8768
8769 let cur_offset: usize = (1 - 1) * envelope_size;
8772
8773 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8775
8776 fidl::encoding::encode_in_envelope_optional::<u64, D>(
8781 self.id.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
8782 encoder,
8783 offset + cur_offset,
8784 depth,
8785 )?;
8786
8787 _prev_end_offset = cur_offset + envelope_size;
8788 if 2 > max_ordinal {
8789 return Ok(());
8790 }
8791
8792 let cur_offset: usize = (2 - 1) * envelope_size;
8795
8796 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8798
8799 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<EdgePair, 64>, D>(
8804 self.processing_elements_edge_pairs.as_ref().map(<fidl::encoding::Vector<EdgePair, 64> as fidl::encoding::ValueTypeMarker>::borrow),
8805 encoder, offset + cur_offset, depth
8806 )?;
8807
8808 _prev_end_offset = cur_offset + envelope_size;
8809
8810 Ok(())
8811 }
8812 }
8813
8814 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Topology {
8815 #[inline(always)]
8816 fn new_empty() -> Self {
8817 Self::default()
8818 }
8819
8820 unsafe fn decode(
8821 &mut self,
8822 decoder: &mut fidl::encoding::Decoder<'_, D>,
8823 offset: usize,
8824 mut depth: fidl::encoding::Depth,
8825 ) -> fidl::Result<()> {
8826 decoder.debug_check_bounds::<Self>(offset);
8827 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
8828 None => return Err(fidl::Error::NotNullable),
8829 Some(len) => len,
8830 };
8831 if len == 0 {
8833 return Ok(());
8834 };
8835 depth.increment()?;
8836 let envelope_size = 8;
8837 let bytes_len = len * envelope_size;
8838 let offset = decoder.out_of_line_offset(bytes_len)?;
8839 let mut _next_ordinal_to_read = 0;
8841 let mut next_offset = offset;
8842 let end_offset = offset + bytes_len;
8843 _next_ordinal_to_read += 1;
8844 if next_offset >= end_offset {
8845 return Ok(());
8846 }
8847
8848 while _next_ordinal_to_read < 1 {
8850 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8851 _next_ordinal_to_read += 1;
8852 next_offset += envelope_size;
8853 }
8854
8855 let next_out_of_line = decoder.next_out_of_line();
8856 let handles_before = decoder.remaining_handles();
8857 if let Some((inlined, num_bytes, num_handles)) =
8858 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8859 {
8860 let member_inline_size =
8861 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8862 if inlined != (member_inline_size <= 4) {
8863 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8864 }
8865 let inner_offset;
8866 let mut inner_depth = depth.clone();
8867 if inlined {
8868 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8869 inner_offset = next_offset;
8870 } else {
8871 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8872 inner_depth.increment()?;
8873 }
8874 let val_ref = self.id.get_or_insert_with(|| fidl::new_empty!(u64, D));
8875 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
8876 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8877 {
8878 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8879 }
8880 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8881 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8882 }
8883 }
8884
8885 next_offset += envelope_size;
8886 _next_ordinal_to_read += 1;
8887 if next_offset >= end_offset {
8888 return Ok(());
8889 }
8890
8891 while _next_ordinal_to_read < 2 {
8893 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8894 _next_ordinal_to_read += 1;
8895 next_offset += envelope_size;
8896 }
8897
8898 let next_out_of_line = decoder.next_out_of_line();
8899 let handles_before = decoder.remaining_handles();
8900 if let Some((inlined, num_bytes, num_handles)) =
8901 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8902 {
8903 let member_inline_size = <fidl::encoding::Vector<EdgePair, 64> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8904 if inlined != (member_inline_size <= 4) {
8905 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8906 }
8907 let inner_offset;
8908 let mut inner_depth = depth.clone();
8909 if inlined {
8910 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8911 inner_offset = next_offset;
8912 } else {
8913 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8914 inner_depth.increment()?;
8915 }
8916 let val_ref = self.processing_elements_edge_pairs.get_or_insert_with(
8917 || fidl::new_empty!(fidl::encoding::Vector<EdgePair, 64>, D),
8918 );
8919 fidl::decode!(fidl::encoding::Vector<EdgePair, 64>, D, val_ref, decoder, inner_offset, inner_depth)?;
8920 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8921 {
8922 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8923 }
8924 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8925 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8926 }
8927 }
8928
8929 next_offset += envelope_size;
8930
8931 while next_offset < end_offset {
8933 _next_ordinal_to_read += 1;
8934 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8935 next_offset += envelope_size;
8936 }
8937
8938 Ok(())
8939 }
8940 }
8941
8942 impl VendorSpecific {
8943 #[inline(always)]
8944 fn max_ordinal_present(&self) -> u64 {
8945 0
8946 }
8947 }
8948
8949 impl fidl::encoding::ValueTypeMarker for VendorSpecific {
8950 type Borrowed<'a> = &'a Self;
8951 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
8952 value
8953 }
8954 }
8955
8956 unsafe impl fidl::encoding::TypeMarker for VendorSpecific {
8957 type Owned = Self;
8958
8959 #[inline(always)]
8960 fn inline_align(_context: fidl::encoding::Context) -> usize {
8961 8
8962 }
8963
8964 #[inline(always)]
8965 fn inline_size(_context: fidl::encoding::Context) -> usize {
8966 16
8967 }
8968 }
8969
8970 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<VendorSpecific, D>
8971 for &VendorSpecific
8972 {
8973 unsafe fn encode(
8974 self,
8975 encoder: &mut fidl::encoding::Encoder<'_, D>,
8976 offset: usize,
8977 mut depth: fidl::encoding::Depth,
8978 ) -> fidl::Result<()> {
8979 encoder.debug_check_bounds::<VendorSpecific>(offset);
8980 let max_ordinal: u64 = self.max_ordinal_present();
8982 encoder.write_num(max_ordinal, offset);
8983 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
8984 if max_ordinal == 0 {
8986 return Ok(());
8987 }
8988 depth.increment()?;
8989 let envelope_size = 8;
8990 let bytes_len = max_ordinal as usize * envelope_size;
8991 #[allow(unused_variables)]
8992 let offset = encoder.out_of_line_offset(bytes_len);
8993 let mut _prev_end_offset: usize = 0;
8994
8995 Ok(())
8996 }
8997 }
8998
8999 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for VendorSpecific {
9000 #[inline(always)]
9001 fn new_empty() -> Self {
9002 Self::default()
9003 }
9004
9005 unsafe fn decode(
9006 &mut self,
9007 decoder: &mut fidl::encoding::Decoder<'_, D>,
9008 offset: usize,
9009 mut depth: fidl::encoding::Depth,
9010 ) -> fidl::Result<()> {
9011 decoder.debug_check_bounds::<Self>(offset);
9012 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
9013 None => return Err(fidl::Error::NotNullable),
9014 Some(len) => len,
9015 };
9016 if len == 0 {
9018 return Ok(());
9019 };
9020 depth.increment()?;
9021 let envelope_size = 8;
9022 let bytes_len = len * envelope_size;
9023 let offset = decoder.out_of_line_offset(bytes_len)?;
9024 let mut _next_ordinal_to_read = 0;
9026 let mut next_offset = offset;
9027 let end_offset = offset + bytes_len;
9028
9029 while next_offset < end_offset {
9031 _next_ordinal_to_read += 1;
9032 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9033 next_offset += envelope_size;
9034 }
9035
9036 Ok(())
9037 }
9038 }
9039
9040 impl VendorSpecificState {
9041 #[inline(always)]
9042 fn max_ordinal_present(&self) -> u64 {
9043 0
9044 }
9045 }
9046
9047 impl fidl::encoding::ValueTypeMarker for VendorSpecificState {
9048 type Borrowed<'a> = &'a Self;
9049 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
9050 value
9051 }
9052 }
9053
9054 unsafe impl fidl::encoding::TypeMarker for VendorSpecificState {
9055 type Owned = Self;
9056
9057 #[inline(always)]
9058 fn inline_align(_context: fidl::encoding::Context) -> usize {
9059 8
9060 }
9061
9062 #[inline(always)]
9063 fn inline_size(_context: fidl::encoding::Context) -> usize {
9064 16
9065 }
9066 }
9067
9068 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<VendorSpecificState, D>
9069 for &VendorSpecificState
9070 {
9071 unsafe fn encode(
9072 self,
9073 encoder: &mut fidl::encoding::Encoder<'_, D>,
9074 offset: usize,
9075 mut depth: fidl::encoding::Depth,
9076 ) -> fidl::Result<()> {
9077 encoder.debug_check_bounds::<VendorSpecificState>(offset);
9078 let max_ordinal: u64 = self.max_ordinal_present();
9080 encoder.write_num(max_ordinal, offset);
9081 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
9082 if max_ordinal == 0 {
9084 return Ok(());
9085 }
9086 depth.increment()?;
9087 let envelope_size = 8;
9088 let bytes_len = max_ordinal as usize * envelope_size;
9089 #[allow(unused_variables)]
9090 let offset = encoder.out_of_line_offset(bytes_len);
9091 let mut _prev_end_offset: usize = 0;
9092
9093 Ok(())
9094 }
9095 }
9096
9097 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for VendorSpecificState {
9098 #[inline(always)]
9099 fn new_empty() -> Self {
9100 Self::default()
9101 }
9102
9103 unsafe fn decode(
9104 &mut self,
9105 decoder: &mut fidl::encoding::Decoder<'_, D>,
9106 offset: usize,
9107 mut depth: fidl::encoding::Depth,
9108 ) -> fidl::Result<()> {
9109 decoder.debug_check_bounds::<Self>(offset);
9110 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
9111 None => return Err(fidl::Error::NotNullable),
9112 Some(len) => len,
9113 };
9114 if len == 0 {
9116 return Ok(());
9117 };
9118 depth.increment()?;
9119 let envelope_size = 8;
9120 let bytes_len = len * envelope_size;
9121 let offset = decoder.out_of_line_offset(bytes_len)?;
9122 let mut _next_ordinal_to_read = 0;
9124 let mut next_offset = offset;
9125 let end_offset = offset + bytes_len;
9126
9127 while next_offset < end_offset {
9129 _next_ordinal_to_read += 1;
9130 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9131 next_offset += envelope_size;
9132 }
9133
9134 Ok(())
9135 }
9136 }
9137
9138 impl fidl::encoding::ValueTypeMarker for SettableTypeSpecificElementState {
9139 type Borrowed<'a> = &'a Self;
9140 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
9141 value
9142 }
9143 }
9144
9145 unsafe impl fidl::encoding::TypeMarker for SettableTypeSpecificElementState {
9146 type Owned = Self;
9147
9148 #[inline(always)]
9149 fn inline_align(_context: fidl::encoding::Context) -> usize {
9150 8
9151 }
9152
9153 #[inline(always)]
9154 fn inline_size(_context: fidl::encoding::Context) -> usize {
9155 16
9156 }
9157 }
9158
9159 unsafe impl<D: fidl::encoding::ResourceDialect>
9160 fidl::encoding::Encode<SettableTypeSpecificElementState, D>
9161 for &SettableTypeSpecificElementState
9162 {
9163 #[inline]
9164 unsafe fn encode(
9165 self,
9166 encoder: &mut fidl::encoding::Encoder<'_, D>,
9167 offset: usize,
9168 _depth: fidl::encoding::Depth,
9169 ) -> fidl::Result<()> {
9170 encoder.debug_check_bounds::<SettableTypeSpecificElementState>(offset);
9171 encoder.write_num::<u64>(self.ordinal(), offset);
9172 match self {
9173 SettableTypeSpecificElementState::VendorSpecific(ref val) => {
9174 fidl::encoding::encode_in_envelope::<VendorSpecificState, D>(
9175 <VendorSpecificState as fidl::encoding::ValueTypeMarker>::borrow(val),
9176 encoder,
9177 offset + 8,
9178 _depth,
9179 )
9180 }
9181 SettableTypeSpecificElementState::Gain(ref val) => {
9182 fidl::encoding::encode_in_envelope::<GainElementState, D>(
9183 <GainElementState as fidl::encoding::ValueTypeMarker>::borrow(val),
9184 encoder,
9185 offset + 8,
9186 _depth,
9187 )
9188 }
9189 SettableTypeSpecificElementState::Equalizer(ref val) => {
9190 fidl::encoding::encode_in_envelope::<EqualizerElementState, D>(
9191 <EqualizerElementState as fidl::encoding::ValueTypeMarker>::borrow(val),
9192 encoder,
9193 offset + 8,
9194 _depth,
9195 )
9196 }
9197 SettableTypeSpecificElementState::Dynamics(ref val) => {
9198 fidl::encoding::encode_in_envelope::<DynamicsElementState, D>(
9199 <DynamicsElementState as fidl::encoding::ValueTypeMarker>::borrow(val),
9200 encoder,
9201 offset + 8,
9202 _depth,
9203 )
9204 }
9205 SettableTypeSpecificElementState::__SourceBreaking { .. } => {
9206 Err(fidl::Error::UnknownUnionTag)
9207 }
9208 }
9209 }
9210 }
9211
9212 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
9213 for SettableTypeSpecificElementState
9214 {
9215 #[inline(always)]
9216 fn new_empty() -> Self {
9217 Self::__SourceBreaking { unknown_ordinal: 0 }
9218 }
9219
9220 #[inline]
9221 unsafe fn decode(
9222 &mut self,
9223 decoder: &mut fidl::encoding::Decoder<'_, D>,
9224 offset: usize,
9225 mut depth: fidl::encoding::Depth,
9226 ) -> fidl::Result<()> {
9227 decoder.debug_check_bounds::<Self>(offset);
9228 #[allow(unused_variables)]
9229 let next_out_of_line = decoder.next_out_of_line();
9230 let handles_before = decoder.remaining_handles();
9231 let (ordinal, inlined, num_bytes, num_handles) =
9232 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
9233
9234 let member_inline_size = match ordinal {
9235 1 => <VendorSpecificState as fidl::encoding::TypeMarker>::inline_size(
9236 decoder.context,
9237 ),
9238 2 => <GainElementState as fidl::encoding::TypeMarker>::inline_size(decoder.context),
9239 3 => <EqualizerElementState as fidl::encoding::TypeMarker>::inline_size(
9240 decoder.context,
9241 ),
9242 4 => <DynamicsElementState as fidl::encoding::TypeMarker>::inline_size(
9243 decoder.context,
9244 ),
9245 0 => return Err(fidl::Error::UnknownUnionTag),
9246 _ => num_bytes as usize,
9247 };
9248
9249 if inlined != (member_inline_size <= 4) {
9250 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9251 }
9252 let _inner_offset;
9253 if inlined {
9254 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
9255 _inner_offset = offset + 8;
9256 } else {
9257 depth.increment()?;
9258 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9259 }
9260 match ordinal {
9261 1 => {
9262 #[allow(irrefutable_let_patterns)]
9263 if let SettableTypeSpecificElementState::VendorSpecific(_) = self {
9264 } else {
9266 *self = SettableTypeSpecificElementState::VendorSpecific(fidl::new_empty!(
9268 VendorSpecificState,
9269 D
9270 ));
9271 }
9272 #[allow(irrefutable_let_patterns)]
9273 if let SettableTypeSpecificElementState::VendorSpecific(ref mut val) = self {
9274 fidl::decode!(VendorSpecificState, D, val, decoder, _inner_offset, depth)?;
9275 } else {
9276 unreachable!()
9277 }
9278 }
9279 2 => {
9280 #[allow(irrefutable_let_patterns)]
9281 if let SettableTypeSpecificElementState::Gain(_) = self {
9282 } else {
9284 *self = SettableTypeSpecificElementState::Gain(fidl::new_empty!(
9286 GainElementState,
9287 D
9288 ));
9289 }
9290 #[allow(irrefutable_let_patterns)]
9291 if let SettableTypeSpecificElementState::Gain(ref mut val) = self {
9292 fidl::decode!(GainElementState, D, val, decoder, _inner_offset, depth)?;
9293 } else {
9294 unreachable!()
9295 }
9296 }
9297 3 => {
9298 #[allow(irrefutable_let_patterns)]
9299 if let SettableTypeSpecificElementState::Equalizer(_) = self {
9300 } else {
9302 *self = SettableTypeSpecificElementState::Equalizer(fidl::new_empty!(
9304 EqualizerElementState,
9305 D
9306 ));
9307 }
9308 #[allow(irrefutable_let_patterns)]
9309 if let SettableTypeSpecificElementState::Equalizer(ref mut val) = self {
9310 fidl::decode!(
9311 EqualizerElementState,
9312 D,
9313 val,
9314 decoder,
9315 _inner_offset,
9316 depth
9317 )?;
9318 } else {
9319 unreachable!()
9320 }
9321 }
9322 4 => {
9323 #[allow(irrefutable_let_patterns)]
9324 if let SettableTypeSpecificElementState::Dynamics(_) = self {
9325 } else {
9327 *self = SettableTypeSpecificElementState::Dynamics(fidl::new_empty!(
9329 DynamicsElementState,
9330 D
9331 ));
9332 }
9333 #[allow(irrefutable_let_patterns)]
9334 if let SettableTypeSpecificElementState::Dynamics(ref mut val) = self {
9335 fidl::decode!(DynamicsElementState, D, val, decoder, _inner_offset, depth)?;
9336 } else {
9337 unreachable!()
9338 }
9339 }
9340 #[allow(deprecated)]
9341 ordinal => {
9342 for _ in 0..num_handles {
9343 decoder.drop_next_handle()?;
9344 }
9345 *self = SettableTypeSpecificElementState::__SourceBreaking {
9346 unknown_ordinal: ordinal,
9347 };
9348 }
9349 }
9350 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
9351 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9352 }
9353 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9354 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9355 }
9356 Ok(())
9357 }
9358 }
9359
9360 impl fidl::encoding::ValueTypeMarker for TypeSpecificElement {
9361 type Borrowed<'a> = &'a Self;
9362 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
9363 value
9364 }
9365 }
9366
9367 unsafe impl fidl::encoding::TypeMarker for TypeSpecificElement {
9368 type Owned = Self;
9369
9370 #[inline(always)]
9371 fn inline_align(_context: fidl::encoding::Context) -> usize {
9372 8
9373 }
9374
9375 #[inline(always)]
9376 fn inline_size(_context: fidl::encoding::Context) -> usize {
9377 16
9378 }
9379 }
9380
9381 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<TypeSpecificElement, D>
9382 for &TypeSpecificElement
9383 {
9384 #[inline]
9385 unsafe fn encode(
9386 self,
9387 encoder: &mut fidl::encoding::Encoder<'_, D>,
9388 offset: usize,
9389 _depth: fidl::encoding::Depth,
9390 ) -> fidl::Result<()> {
9391 encoder.debug_check_bounds::<TypeSpecificElement>(offset);
9392 encoder.write_num::<u64>(self.ordinal(), offset);
9393 match self {
9394 TypeSpecificElement::VendorSpecific(ref val) => {
9395 fidl::encoding::encode_in_envelope::<VendorSpecific, D>(
9396 <VendorSpecific as fidl::encoding::ValueTypeMarker>::borrow(val),
9397 encoder,
9398 offset + 8,
9399 _depth,
9400 )
9401 }
9402 TypeSpecificElement::Gain(ref val) => {
9403 fidl::encoding::encode_in_envelope::<Gain, D>(
9404 <Gain as fidl::encoding::ValueTypeMarker>::borrow(val),
9405 encoder,
9406 offset + 8,
9407 _depth,
9408 )
9409 }
9410 TypeSpecificElement::Equalizer(ref val) => {
9411 fidl::encoding::encode_in_envelope::<Equalizer, D>(
9412 <Equalizer as fidl::encoding::ValueTypeMarker>::borrow(val),
9413 encoder,
9414 offset + 8,
9415 _depth,
9416 )
9417 }
9418 TypeSpecificElement::Dynamics(ref val) => {
9419 fidl::encoding::encode_in_envelope::<Dynamics, D>(
9420 <Dynamics as fidl::encoding::ValueTypeMarker>::borrow(val),
9421 encoder,
9422 offset + 8,
9423 _depth,
9424 )
9425 }
9426 TypeSpecificElement::DaiInterconnect(ref val) => {
9427 fidl::encoding::encode_in_envelope::<DaiInterconnect, D>(
9428 <DaiInterconnect as fidl::encoding::ValueTypeMarker>::borrow(val),
9429 encoder,
9430 offset + 8,
9431 _depth,
9432 )
9433 }
9434 TypeSpecificElement::__SourceBreaking { .. } => Err(fidl::Error::UnknownUnionTag),
9435 }
9436 }
9437 }
9438
9439 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for TypeSpecificElement {
9440 #[inline(always)]
9441 fn new_empty() -> Self {
9442 Self::__SourceBreaking { unknown_ordinal: 0 }
9443 }
9444
9445 #[inline]
9446 unsafe fn decode(
9447 &mut self,
9448 decoder: &mut fidl::encoding::Decoder<'_, D>,
9449 offset: usize,
9450 mut depth: fidl::encoding::Depth,
9451 ) -> fidl::Result<()> {
9452 decoder.debug_check_bounds::<Self>(offset);
9453 #[allow(unused_variables)]
9454 let next_out_of_line = decoder.next_out_of_line();
9455 let handles_before = decoder.remaining_handles();
9456 let (ordinal, inlined, num_bytes, num_handles) =
9457 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
9458
9459 let member_inline_size = match ordinal {
9460 1 => <VendorSpecific as fidl::encoding::TypeMarker>::inline_size(decoder.context),
9461 2 => <Gain as fidl::encoding::TypeMarker>::inline_size(decoder.context),
9462 3 => <Equalizer as fidl::encoding::TypeMarker>::inline_size(decoder.context),
9463 4 => <Dynamics as fidl::encoding::TypeMarker>::inline_size(decoder.context),
9464 6 => <DaiInterconnect as fidl::encoding::TypeMarker>::inline_size(decoder.context),
9465 0 => return Err(fidl::Error::UnknownUnionTag),
9466 _ => num_bytes as usize,
9467 };
9468
9469 if inlined != (member_inline_size <= 4) {
9470 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9471 }
9472 let _inner_offset;
9473 if inlined {
9474 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
9475 _inner_offset = offset + 8;
9476 } else {
9477 depth.increment()?;
9478 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9479 }
9480 match ordinal {
9481 1 => {
9482 #[allow(irrefutable_let_patterns)]
9483 if let TypeSpecificElement::VendorSpecific(_) = self {
9484 } else {
9486 *self = TypeSpecificElement::VendorSpecific(fidl::new_empty!(
9488 VendorSpecific,
9489 D
9490 ));
9491 }
9492 #[allow(irrefutable_let_patterns)]
9493 if let TypeSpecificElement::VendorSpecific(ref mut val) = self {
9494 fidl::decode!(VendorSpecific, D, val, decoder, _inner_offset, depth)?;
9495 } else {
9496 unreachable!()
9497 }
9498 }
9499 2 => {
9500 #[allow(irrefutable_let_patterns)]
9501 if let TypeSpecificElement::Gain(_) = self {
9502 } else {
9504 *self = TypeSpecificElement::Gain(fidl::new_empty!(Gain, D));
9506 }
9507 #[allow(irrefutable_let_patterns)]
9508 if let TypeSpecificElement::Gain(ref mut val) = self {
9509 fidl::decode!(Gain, D, val, decoder, _inner_offset, depth)?;
9510 } else {
9511 unreachable!()
9512 }
9513 }
9514 3 => {
9515 #[allow(irrefutable_let_patterns)]
9516 if let TypeSpecificElement::Equalizer(_) = self {
9517 } else {
9519 *self = TypeSpecificElement::Equalizer(fidl::new_empty!(Equalizer, D));
9521 }
9522 #[allow(irrefutable_let_patterns)]
9523 if let TypeSpecificElement::Equalizer(ref mut val) = self {
9524 fidl::decode!(Equalizer, D, val, decoder, _inner_offset, depth)?;
9525 } else {
9526 unreachable!()
9527 }
9528 }
9529 4 => {
9530 #[allow(irrefutable_let_patterns)]
9531 if let TypeSpecificElement::Dynamics(_) = self {
9532 } else {
9534 *self = TypeSpecificElement::Dynamics(fidl::new_empty!(Dynamics, D));
9536 }
9537 #[allow(irrefutable_let_patterns)]
9538 if let TypeSpecificElement::Dynamics(ref mut val) = self {
9539 fidl::decode!(Dynamics, D, val, decoder, _inner_offset, depth)?;
9540 } else {
9541 unreachable!()
9542 }
9543 }
9544 6 => {
9545 #[allow(irrefutable_let_patterns)]
9546 if let TypeSpecificElement::DaiInterconnect(_) = self {
9547 } else {
9549 *self = TypeSpecificElement::DaiInterconnect(fidl::new_empty!(
9551 DaiInterconnect,
9552 D
9553 ));
9554 }
9555 #[allow(irrefutable_let_patterns)]
9556 if let TypeSpecificElement::DaiInterconnect(ref mut val) = self {
9557 fidl::decode!(DaiInterconnect, D, val, decoder, _inner_offset, depth)?;
9558 } else {
9559 unreachable!()
9560 }
9561 }
9562 #[allow(deprecated)]
9563 ordinal => {
9564 for _ in 0..num_handles {
9565 decoder.drop_next_handle()?;
9566 }
9567 *self = TypeSpecificElement::__SourceBreaking { unknown_ordinal: ordinal };
9568 }
9569 }
9570 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
9571 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9572 }
9573 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9574 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9575 }
9576 Ok(())
9577 }
9578 }
9579
9580 impl fidl::encoding::ValueTypeMarker for TypeSpecificElementState {
9581 type Borrowed<'a> = &'a Self;
9582 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
9583 value
9584 }
9585 }
9586
9587 unsafe impl fidl::encoding::TypeMarker for TypeSpecificElementState {
9588 type Owned = Self;
9589
9590 #[inline(always)]
9591 fn inline_align(_context: fidl::encoding::Context) -> usize {
9592 8
9593 }
9594
9595 #[inline(always)]
9596 fn inline_size(_context: fidl::encoding::Context) -> usize {
9597 16
9598 }
9599 }
9600
9601 unsafe impl<D: fidl::encoding::ResourceDialect>
9602 fidl::encoding::Encode<TypeSpecificElementState, D> for &TypeSpecificElementState
9603 {
9604 #[inline]
9605 unsafe fn encode(
9606 self,
9607 encoder: &mut fidl::encoding::Encoder<'_, D>,
9608 offset: usize,
9609 _depth: fidl::encoding::Depth,
9610 ) -> fidl::Result<()> {
9611 encoder.debug_check_bounds::<TypeSpecificElementState>(offset);
9612 encoder.write_num::<u64>(self.ordinal(), offset);
9613 match self {
9614 TypeSpecificElementState::VendorSpecific(ref val) => {
9615 fidl::encoding::encode_in_envelope::<VendorSpecificState, D>(
9616 <VendorSpecificState as fidl::encoding::ValueTypeMarker>::borrow(val),
9617 encoder,
9618 offset + 8,
9619 _depth,
9620 )
9621 }
9622 TypeSpecificElementState::Gain(ref val) => {
9623 fidl::encoding::encode_in_envelope::<GainElementState, D>(
9624 <GainElementState as fidl::encoding::ValueTypeMarker>::borrow(val),
9625 encoder,
9626 offset + 8,
9627 _depth,
9628 )
9629 }
9630 TypeSpecificElementState::Equalizer(ref val) => {
9631 fidl::encoding::encode_in_envelope::<EqualizerElementState, D>(
9632 <EqualizerElementState as fidl::encoding::ValueTypeMarker>::borrow(val),
9633 encoder,
9634 offset + 8,
9635 _depth,
9636 )
9637 }
9638 TypeSpecificElementState::Dynamics(ref val) => {
9639 fidl::encoding::encode_in_envelope::<DynamicsElementState, D>(
9640 <DynamicsElementState as fidl::encoding::ValueTypeMarker>::borrow(val),
9641 encoder,
9642 offset + 8,
9643 _depth,
9644 )
9645 }
9646 TypeSpecificElementState::DaiInterconnect(ref val) => {
9647 fidl::encoding::encode_in_envelope::<DaiInterconnectElementState, D>(
9648 <DaiInterconnectElementState as fidl::encoding::ValueTypeMarker>::borrow(
9649 val,
9650 ),
9651 encoder,
9652 offset + 8,
9653 _depth,
9654 )
9655 }
9656 TypeSpecificElementState::__SourceBreaking { .. } => {
9657 Err(fidl::Error::UnknownUnionTag)
9658 }
9659 }
9660 }
9661 }
9662
9663 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
9664 for TypeSpecificElementState
9665 {
9666 #[inline(always)]
9667 fn new_empty() -> Self {
9668 Self::__SourceBreaking { unknown_ordinal: 0 }
9669 }
9670
9671 #[inline]
9672 unsafe fn decode(
9673 &mut self,
9674 decoder: &mut fidl::encoding::Decoder<'_, D>,
9675 offset: usize,
9676 mut depth: fidl::encoding::Depth,
9677 ) -> fidl::Result<()> {
9678 decoder.debug_check_bounds::<Self>(offset);
9679 #[allow(unused_variables)]
9680 let next_out_of_line = decoder.next_out_of_line();
9681 let handles_before = decoder.remaining_handles();
9682 let (ordinal, inlined, num_bytes, num_handles) =
9683 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
9684
9685 let member_inline_size = match ordinal {
9686 1 => <VendorSpecificState as fidl::encoding::TypeMarker>::inline_size(
9687 decoder.context,
9688 ),
9689 2 => <GainElementState as fidl::encoding::TypeMarker>::inline_size(decoder.context),
9690 3 => <EqualizerElementState as fidl::encoding::TypeMarker>::inline_size(
9691 decoder.context,
9692 ),
9693 4 => <DynamicsElementState as fidl::encoding::TypeMarker>::inline_size(
9694 decoder.context,
9695 ),
9696 6 => <DaiInterconnectElementState as fidl::encoding::TypeMarker>::inline_size(
9697 decoder.context,
9698 ),
9699 0 => return Err(fidl::Error::UnknownUnionTag),
9700 _ => num_bytes as usize,
9701 };
9702
9703 if inlined != (member_inline_size <= 4) {
9704 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9705 }
9706 let _inner_offset;
9707 if inlined {
9708 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
9709 _inner_offset = offset + 8;
9710 } else {
9711 depth.increment()?;
9712 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9713 }
9714 match ordinal {
9715 1 => {
9716 #[allow(irrefutable_let_patterns)]
9717 if let TypeSpecificElementState::VendorSpecific(_) = self {
9718 } else {
9720 *self = TypeSpecificElementState::VendorSpecific(fidl::new_empty!(
9722 VendorSpecificState,
9723 D
9724 ));
9725 }
9726 #[allow(irrefutable_let_patterns)]
9727 if let TypeSpecificElementState::VendorSpecific(ref mut val) = self {
9728 fidl::decode!(VendorSpecificState, D, val, decoder, _inner_offset, depth)?;
9729 } else {
9730 unreachable!()
9731 }
9732 }
9733 2 => {
9734 #[allow(irrefutable_let_patterns)]
9735 if let TypeSpecificElementState::Gain(_) = self {
9736 } else {
9738 *self =
9740 TypeSpecificElementState::Gain(fidl::new_empty!(GainElementState, D));
9741 }
9742 #[allow(irrefutable_let_patterns)]
9743 if let TypeSpecificElementState::Gain(ref mut val) = self {
9744 fidl::decode!(GainElementState, D, val, decoder, _inner_offset, depth)?;
9745 } else {
9746 unreachable!()
9747 }
9748 }
9749 3 => {
9750 #[allow(irrefutable_let_patterns)]
9751 if let TypeSpecificElementState::Equalizer(_) = self {
9752 } else {
9754 *self = TypeSpecificElementState::Equalizer(fidl::new_empty!(
9756 EqualizerElementState,
9757 D
9758 ));
9759 }
9760 #[allow(irrefutable_let_patterns)]
9761 if let TypeSpecificElementState::Equalizer(ref mut val) = self {
9762 fidl::decode!(
9763 EqualizerElementState,
9764 D,
9765 val,
9766 decoder,
9767 _inner_offset,
9768 depth
9769 )?;
9770 } else {
9771 unreachable!()
9772 }
9773 }
9774 4 => {
9775 #[allow(irrefutable_let_patterns)]
9776 if let TypeSpecificElementState::Dynamics(_) = self {
9777 } else {
9779 *self = TypeSpecificElementState::Dynamics(fidl::new_empty!(
9781 DynamicsElementState,
9782 D
9783 ));
9784 }
9785 #[allow(irrefutable_let_patterns)]
9786 if let TypeSpecificElementState::Dynamics(ref mut val) = self {
9787 fidl::decode!(DynamicsElementState, D, val, decoder, _inner_offset, depth)?;
9788 } else {
9789 unreachable!()
9790 }
9791 }
9792 6 => {
9793 #[allow(irrefutable_let_patterns)]
9794 if let TypeSpecificElementState::DaiInterconnect(_) = self {
9795 } else {
9797 *self = TypeSpecificElementState::DaiInterconnect(fidl::new_empty!(
9799 DaiInterconnectElementState,
9800 D
9801 ));
9802 }
9803 #[allow(irrefutable_let_patterns)]
9804 if let TypeSpecificElementState::DaiInterconnect(ref mut val) = self {
9805 fidl::decode!(
9806 DaiInterconnectElementState,
9807 D,
9808 val,
9809 decoder,
9810 _inner_offset,
9811 depth
9812 )?;
9813 } else {
9814 unreachable!()
9815 }
9816 }
9817 #[allow(deprecated)]
9818 ordinal => {
9819 for _ in 0..num_handles {
9820 decoder.drop_next_handle()?;
9821 }
9822 *self = TypeSpecificElementState::__SourceBreaking { unknown_ordinal: ordinal };
9823 }
9824 }
9825 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
9826 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9827 }
9828 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9829 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9830 }
9831 Ok(())
9832 }
9833 }
9834}