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