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
11bitflags! {
12 #[derive(Clone, Copy, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Hash)]
13 pub struct KeyMgmtMask: u32 {
14 const WPA_EAP = 1;
15 const WPA_PSK = 2;
16 const NONE = 4;
17 const IEEE8021_X = 8;
18 const FT_EAP = 32;
19 const FT_PSK = 64;
20 const OSEN = 32768;
21 const WPA_EAP_SHA256 = 128;
22 const WPA_PSK_SHA256 = 256;
23 const SAE = 1024;
24 const SUITE_B_192 = 131072;
25 const OWE = 4194304;
26 const DPP = 8388608;
27 const WAPI_PSK = 4096;
28 const WAPI_CERT = 8192;
29 const FILS_SHA256 = 262144;
30 const FILS_SHA384 = 524288;
31 const PASN = 33554432;
32 }
33}
34
35impl KeyMgmtMask {
36 #[inline(always)]
37 pub fn from_bits_allow_unknown(bits: u32) -> Self {
38 Self::from_bits_retain(bits)
39 }
40
41 #[inline(always)]
42 pub fn has_unknown_bits(&self) -> bool {
43 self.get_unknown_bits() != 0
44 }
45
46 #[inline(always)]
47 pub fn get_unknown_bits(&self) -> u32 {
48 self.bits() & !Self::all().bits()
49 }
50}
51
52#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
53pub enum BtCoexistenceMode {
54 Enabled,
55 Disabled,
56 Sense,
57 #[doc(hidden)]
58 __SourceBreaking {
59 unknown_ordinal: u32,
60 },
61}
62
63#[macro_export]
65macro_rules! BtCoexistenceModeUnknown {
66 () => {
67 _
68 };
69}
70
71impl BtCoexistenceMode {
72 #[inline]
73 pub fn from_primitive(prim: u32) -> Option<Self> {
74 match prim {
75 1 => Some(Self::Enabled),
76 2 => Some(Self::Disabled),
77 3 => Some(Self::Sense),
78 _ => None,
79 }
80 }
81
82 #[inline]
83 pub fn from_primitive_allow_unknown(prim: u32) -> Self {
84 match prim {
85 1 => Self::Enabled,
86 2 => Self::Disabled,
87 3 => Self::Sense,
88 unknown_ordinal => Self::__SourceBreaking { unknown_ordinal },
89 }
90 }
91
92 #[inline]
93 pub fn unknown() -> Self {
94 Self::__SourceBreaking { unknown_ordinal: 0xffffffff }
95 }
96
97 #[inline]
98 pub const fn into_primitive(self) -> u32 {
99 match self {
100 Self::Enabled => 1,
101 Self::Disabled => 2,
102 Self::Sense => 3,
103 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
104 }
105 }
106
107 #[inline]
108 pub fn is_unknown(&self) -> bool {
109 match self {
110 Self::__SourceBreaking { unknown_ordinal: _ } => true,
111 _ => false,
112 }
113 }
114}
115
116#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
117pub enum IfaceConcurrencyType {
118 Sta,
119 Ap,
120 ApBridged,
121 P2P,
122 NanIface,
123 #[doc(hidden)]
124 __SourceBreaking {
125 unknown_ordinal: u32,
126 },
127}
128
129#[macro_export]
131macro_rules! IfaceConcurrencyTypeUnknown {
132 () => {
133 _
134 };
135}
136
137impl IfaceConcurrencyType {
138 #[inline]
139 pub fn from_primitive(prim: u32) -> Option<Self> {
140 match prim {
141 1 => Some(Self::Sta),
142 2 => Some(Self::Ap),
143 3 => Some(Self::ApBridged),
144 4 => Some(Self::P2P),
145 5 => Some(Self::NanIface),
146 _ => None,
147 }
148 }
149
150 #[inline]
151 pub fn from_primitive_allow_unknown(prim: u32) -> Self {
152 match prim {
153 1 => Self::Sta,
154 2 => Self::Ap,
155 3 => Self::ApBridged,
156 4 => Self::P2P,
157 5 => Self::NanIface,
158 unknown_ordinal => Self::__SourceBreaking { unknown_ordinal },
159 }
160 }
161
162 #[inline]
163 pub fn unknown() -> Self {
164 Self::__SourceBreaking { unknown_ordinal: 0xffffffff }
165 }
166
167 #[inline]
168 pub const fn into_primitive(self) -> u32 {
169 match self {
170 Self::Sta => 1,
171 Self::Ap => 2,
172 Self::ApBridged => 3,
173 Self::P2P => 4,
174 Self::NanIface => 5,
175 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
176 }
177 }
178
179 #[inline]
180 pub fn is_unknown(&self) -> bool {
181 match self {
182 Self::__SourceBreaking { unknown_ordinal: _ } => true,
183 _ => false,
184 }
185 }
186}
187
188#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
189pub enum StaIfaceCallbackState {
190 Disconnected,
191 IfaceDisabled,
192 Inactive,
193 Scanning,
194 Authenticating,
195 Associating,
196 Associated,
197 FourwayHandshake,
198 GroupHandshake,
199 Completed,
200 #[doc(hidden)]
201 __SourceBreaking {
202 unknown_ordinal: u32,
203 },
204}
205
206#[macro_export]
208macro_rules! StaIfaceCallbackStateUnknown {
209 () => {
210 _
211 };
212}
213
214impl StaIfaceCallbackState {
215 #[inline]
216 pub fn from_primitive(prim: u32) -> Option<Self> {
217 match prim {
218 0 => Some(Self::Disconnected),
219 1 => Some(Self::IfaceDisabled),
220 2 => Some(Self::Inactive),
221 3 => Some(Self::Scanning),
222 4 => Some(Self::Authenticating),
223 5 => Some(Self::Associating),
224 6 => Some(Self::Associated),
225 7 => Some(Self::FourwayHandshake),
226 8 => Some(Self::GroupHandshake),
227 9 => Some(Self::Completed),
228 _ => None,
229 }
230 }
231
232 #[inline]
233 pub fn from_primitive_allow_unknown(prim: u32) -> Self {
234 match prim {
235 0 => Self::Disconnected,
236 1 => Self::IfaceDisabled,
237 2 => Self::Inactive,
238 3 => Self::Scanning,
239 4 => Self::Authenticating,
240 5 => Self::Associating,
241 6 => Self::Associated,
242 7 => Self::FourwayHandshake,
243 8 => Self::GroupHandshake,
244 9 => Self::Completed,
245 unknown_ordinal => Self::__SourceBreaking { unknown_ordinal },
246 }
247 }
248
249 #[inline]
250 pub fn unknown() -> Self {
251 Self::__SourceBreaking { unknown_ordinal: 0xffffffff }
252 }
253
254 #[inline]
255 pub const fn into_primitive(self) -> u32 {
256 match self {
257 Self::Disconnected => 0,
258 Self::IfaceDisabled => 1,
259 Self::Inactive => 2,
260 Self::Scanning => 3,
261 Self::Authenticating => 4,
262 Self::Associating => 5,
263 Self::Associated => 6,
264 Self::FourwayHandshake => 7,
265 Self::GroupHandshake => 8,
266 Self::Completed => 9,
267 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
268 }
269 }
270
271 #[inline]
272 pub fn is_unknown(&self) -> bool {
273 match self {
274 Self::__SourceBreaking { unknown_ordinal: _ } => true,
275 _ => false,
276 }
277 }
278}
279
280#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
281pub enum WifiChipTxPowerScenario {
282 VoiceCall,
283 OnHeadCellOff,
284 OnHeadCellOn,
285 OnBodyCellOff,
286 OnBodyCellOn,
287 #[doc(hidden)]
288 __SourceBreaking {
289 unknown_ordinal: u32,
290 },
291}
292
293#[macro_export]
295macro_rules! WifiChipTxPowerScenarioUnknown {
296 () => {
297 _
298 };
299}
300
301impl WifiChipTxPowerScenario {
302 #[inline]
303 pub fn from_primitive(prim: u32) -> Option<Self> {
304 match prim {
305 0 => Some(Self::VoiceCall),
306 1 => Some(Self::OnHeadCellOff),
307 2 => Some(Self::OnHeadCellOn),
308 3 => Some(Self::OnBodyCellOff),
309 4 => Some(Self::OnBodyCellOn),
310 _ => None,
311 }
312 }
313
314 #[inline]
315 pub fn from_primitive_allow_unknown(prim: u32) -> Self {
316 match prim {
317 0 => Self::VoiceCall,
318 1 => Self::OnHeadCellOff,
319 2 => Self::OnHeadCellOn,
320 3 => Self::OnBodyCellOff,
321 4 => Self::OnBodyCellOn,
322 unknown_ordinal => Self::__SourceBreaking { unknown_ordinal },
323 }
324 }
325
326 #[inline]
327 pub fn unknown() -> Self {
328 Self::__SourceBreaking { unknown_ordinal: 0xffffffff }
329 }
330
331 #[inline]
332 pub const fn into_primitive(self) -> u32 {
333 match self {
334 Self::VoiceCall => 0,
335 Self::OnHeadCellOff => 1,
336 Self::OnHeadCellOn => 2,
337 Self::OnBodyCellOff => 3,
338 Self::OnBodyCellOn => 4,
339 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
340 }
341 }
342
343 #[inline]
344 pub fn is_unknown(&self) -> bool {
345 match self {
346 Self::__SourceBreaking { unknown_ordinal: _ } => true,
347 _ => false,
348 }
349 }
350}
351
352#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
353pub enum WifiLegacyHalStatus {
354 NotSupported,
355 Internal,
356 InvalidArgument,
357 #[doc(hidden)]
358 __SourceBreaking {
359 unknown_ordinal: u32,
360 },
361}
362
363#[macro_export]
365macro_rules! WifiLegacyHalStatusUnknown {
366 () => {
367 _
368 };
369}
370
371impl WifiLegacyHalStatus {
372 #[inline]
373 pub fn from_primitive(prim: u32) -> Option<Self> {
374 match prim {
375 1 => Some(Self::NotSupported),
376 2 => Some(Self::Internal),
377 3 => Some(Self::InvalidArgument),
378 _ => None,
379 }
380 }
381
382 #[inline]
383 pub fn from_primitive_allow_unknown(prim: u32) -> Self {
384 match prim {
385 1 => Self::NotSupported,
386 2 => Self::Internal,
387 3 => Self::InvalidArgument,
388 unknown_ordinal => Self::__SourceBreaking { unknown_ordinal },
389 }
390 }
391
392 #[inline]
393 pub fn unknown() -> Self {
394 Self::__SourceBreaking { unknown_ordinal: 0xffffffff }
395 }
396
397 #[inline]
398 pub const fn into_primitive(self) -> u32 {
399 match self {
400 Self::NotSupported => 1,
401 Self::Internal => 2,
402 Self::InvalidArgument => 3,
403 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
404 }
405 }
406
407 #[inline]
408 pub fn is_unknown(&self) -> bool {
409 match self {
410 Self::__SourceBreaking { unknown_ordinal: _ } => true,
411 _ => false,
412 }
413 }
414}
415
416#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
417pub enum WifiLegacyHalTxPowerScenario {
418 Invalid,
419 Default,
420 VoiceCallLegacy,
421 OnHeadCellOff,
422 OnHeadCellOn,
423 OnBodyCellOff,
424 OnBodyCellOn,
425 OnBodyBt,
426 OnHeadHotspot,
427 OnHeadHotspotMmw,
428 OnBodyCellOnBt,
429 OnBodyHotspot,
430 OnBodyHotspotBt,
431 OnBodyHotspotMmw,
432 OnBodyHotspotBtMmw,
433 OnHeadCellOffUnfolded,
434 OnHeadCellOnUnfolded,
435 OnHeadHotspotUnfolded,
436 OnHeadHotspotMmwUnfolded,
437 OnBodyCellOffUnfolded,
438 OnBodyBtUnfolded,
439 OnBodyCellOnUnfolded,
440 OnBodyCellOnBtUnfolded,
441 OnBodyHotspotUnfolded,
442 OnBodyHotspotBtUnfolded,
443 OnBodyHotspotMmwUnfolded,
444 OnBodyHotspotBtMmwUnfolded,
445 OnBodyRearCamera,
446 OnBodyCellOffUnfoldedCap,
447 OnBodyBtUnfoldedCap,
448 OnBodyCellOnUnfoldedCap,
449 OnBodyCellOnBtUnfoldedCap,
450 OnBodyVideoRecording,
451 #[doc(hidden)]
452 __SourceBreaking {
453 unknown_ordinal: i32,
454 },
455}
456
457#[macro_export]
459macro_rules! WifiLegacyHalTxPowerScenarioUnknown {
460 () => {
461 _
462 };
463}
464
465impl WifiLegacyHalTxPowerScenario {
466 #[inline]
467 pub fn from_primitive(prim: i32) -> Option<Self> {
468 match prim {
469 -2 => Some(Self::Invalid),
470 -1 => Some(Self::Default),
471 0 => Some(Self::VoiceCallLegacy),
472 1 => Some(Self::OnHeadCellOff),
473 2 => Some(Self::OnHeadCellOn),
474 3 => Some(Self::OnBodyCellOff),
475 4 => Some(Self::OnBodyCellOn),
476 5 => Some(Self::OnBodyBt),
477 6 => Some(Self::OnHeadHotspot),
478 7 => Some(Self::OnHeadHotspotMmw),
479 8 => Some(Self::OnBodyCellOnBt),
480 9 => Some(Self::OnBodyHotspot),
481 10 => Some(Self::OnBodyHotspotBt),
482 11 => Some(Self::OnBodyHotspotMmw),
483 12 => Some(Self::OnBodyHotspotBtMmw),
484 13 => Some(Self::OnHeadCellOffUnfolded),
485 14 => Some(Self::OnHeadCellOnUnfolded),
486 15 => Some(Self::OnHeadHotspotUnfolded),
487 16 => Some(Self::OnHeadHotspotMmwUnfolded),
488 17 => Some(Self::OnBodyCellOffUnfolded),
489 18 => Some(Self::OnBodyBtUnfolded),
490 19 => Some(Self::OnBodyCellOnUnfolded),
491 20 => Some(Self::OnBodyCellOnBtUnfolded),
492 21 => Some(Self::OnBodyHotspotUnfolded),
493 22 => Some(Self::OnBodyHotspotBtUnfolded),
494 23 => Some(Self::OnBodyHotspotMmwUnfolded),
495 24 => Some(Self::OnBodyHotspotBtMmwUnfolded),
496 25 => Some(Self::OnBodyRearCamera),
497 26 => Some(Self::OnBodyCellOffUnfoldedCap),
498 27 => Some(Self::OnBodyBtUnfoldedCap),
499 28 => Some(Self::OnBodyCellOnUnfoldedCap),
500 29 => Some(Self::OnBodyCellOnBtUnfoldedCap),
501 30 => Some(Self::OnBodyVideoRecording),
502 _ => None,
503 }
504 }
505
506 #[inline]
507 pub fn from_primitive_allow_unknown(prim: i32) -> Self {
508 match prim {
509 -2 => Self::Invalid,
510 -1 => Self::Default,
511 0 => Self::VoiceCallLegacy,
512 1 => Self::OnHeadCellOff,
513 2 => Self::OnHeadCellOn,
514 3 => Self::OnBodyCellOff,
515 4 => Self::OnBodyCellOn,
516 5 => Self::OnBodyBt,
517 6 => Self::OnHeadHotspot,
518 7 => Self::OnHeadHotspotMmw,
519 8 => Self::OnBodyCellOnBt,
520 9 => Self::OnBodyHotspot,
521 10 => Self::OnBodyHotspotBt,
522 11 => Self::OnBodyHotspotMmw,
523 12 => Self::OnBodyHotspotBtMmw,
524 13 => Self::OnHeadCellOffUnfolded,
525 14 => Self::OnHeadCellOnUnfolded,
526 15 => Self::OnHeadHotspotUnfolded,
527 16 => Self::OnHeadHotspotMmwUnfolded,
528 17 => Self::OnBodyCellOffUnfolded,
529 18 => Self::OnBodyBtUnfolded,
530 19 => Self::OnBodyCellOnUnfolded,
531 20 => Self::OnBodyCellOnBtUnfolded,
532 21 => Self::OnBodyHotspotUnfolded,
533 22 => Self::OnBodyHotspotBtUnfolded,
534 23 => Self::OnBodyHotspotMmwUnfolded,
535 24 => Self::OnBodyHotspotBtMmwUnfolded,
536 25 => Self::OnBodyRearCamera,
537 26 => Self::OnBodyCellOffUnfoldedCap,
538 27 => Self::OnBodyBtUnfoldedCap,
539 28 => Self::OnBodyCellOnUnfoldedCap,
540 29 => Self::OnBodyCellOnBtUnfoldedCap,
541 30 => Self::OnBodyVideoRecording,
542 unknown_ordinal => Self::__SourceBreaking { unknown_ordinal },
543 }
544 }
545
546 #[inline]
547 pub fn unknown() -> Self {
548 Self::__SourceBreaking { unknown_ordinal: 0x7fffffff }
549 }
550
551 #[inline]
552 pub const fn into_primitive(self) -> i32 {
553 match self {
554 Self::Invalid => -2,
555 Self::Default => -1,
556 Self::VoiceCallLegacy => 0,
557 Self::OnHeadCellOff => 1,
558 Self::OnHeadCellOn => 2,
559 Self::OnBodyCellOff => 3,
560 Self::OnBodyCellOn => 4,
561 Self::OnBodyBt => 5,
562 Self::OnHeadHotspot => 6,
563 Self::OnHeadHotspotMmw => 7,
564 Self::OnBodyCellOnBt => 8,
565 Self::OnBodyHotspot => 9,
566 Self::OnBodyHotspotBt => 10,
567 Self::OnBodyHotspotMmw => 11,
568 Self::OnBodyHotspotBtMmw => 12,
569 Self::OnHeadCellOffUnfolded => 13,
570 Self::OnHeadCellOnUnfolded => 14,
571 Self::OnHeadHotspotUnfolded => 15,
572 Self::OnHeadHotspotMmwUnfolded => 16,
573 Self::OnBodyCellOffUnfolded => 17,
574 Self::OnBodyBtUnfolded => 18,
575 Self::OnBodyCellOnUnfolded => 19,
576 Self::OnBodyCellOnBtUnfolded => 20,
577 Self::OnBodyHotspotUnfolded => 21,
578 Self::OnBodyHotspotBtUnfolded => 22,
579 Self::OnBodyHotspotMmwUnfolded => 23,
580 Self::OnBodyHotspotBtMmwUnfolded => 24,
581 Self::OnBodyRearCamera => 25,
582 Self::OnBodyCellOffUnfoldedCap => 26,
583 Self::OnBodyBtUnfoldedCap => 27,
584 Self::OnBodyCellOnUnfoldedCap => 28,
585 Self::OnBodyCellOnBtUnfoldedCap => 29,
586 Self::OnBodyVideoRecording => 30,
587 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
588 }
589 }
590
591 #[inline]
592 pub fn is_unknown(&self) -> bool {
593 match self {
594 Self::__SourceBreaking { unknown_ordinal: _ } => true,
595 _ => false,
596 }
597 }
598}
599
600#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
601pub enum WlanixError {
602 InternalError,
603 InvalidArgs,
604 #[doc(hidden)]
605 __SourceBreaking {
606 unknown_ordinal: u32,
607 },
608}
609
610#[macro_export]
612macro_rules! WlanixErrorUnknown {
613 () => {
614 _
615 };
616}
617
618impl WlanixError {
619 #[inline]
620 pub fn from_primitive(prim: u32) -> Option<Self> {
621 match prim {
622 1 => Some(Self::InternalError),
623 2 => Some(Self::InvalidArgs),
624 _ => None,
625 }
626 }
627
628 #[inline]
629 pub fn from_primitive_allow_unknown(prim: u32) -> Self {
630 match prim {
631 1 => Self::InternalError,
632 2 => Self::InvalidArgs,
633 unknown_ordinal => Self::__SourceBreaking { unknown_ordinal },
634 }
635 }
636
637 #[inline]
638 pub fn unknown() -> Self {
639 Self::__SourceBreaking { unknown_ordinal: 0xffffffff }
640 }
641
642 #[inline]
643 pub const fn into_primitive(self) -> u32 {
644 match self {
645 Self::InternalError => 1,
646 Self::InvalidArgs => 2,
647 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
648 }
649 }
650
651 #[inline]
652 pub fn is_unknown(&self) -> bool {
653 match self {
654 Self::__SourceBreaking { unknown_ordinal: _ } => true,
655 _ => false,
656 }
657 }
658}
659
660#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
661pub struct Ack;
662
663impl fidl::Persistable for Ack {}
664
665#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
666pub struct Done;
667
668impl fidl::Persistable for Done {}
669
670#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
671#[repr(C)]
672pub struct Error {
673 pub error_code: i32,
674}
675
676impl fidl::Persistable for Error {}
677
678#[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
679pub struct Message {
680 pub payload: Vec<u8>,
681}
682
683impl fidl::Persistable for Message {}
684
685#[derive(Clone, Debug, PartialEq)]
686pub struct Nl80211MessageArray {
687 pub messages: Vec<Nl80211Message>,
688}
689
690impl fidl::Persistable for Nl80211MessageArray {}
691
692#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
694#[repr(C)]
695pub struct SchedScanPlan {
696 pub interval_ms: u32,
697 pub iterations: u32,
698}
699
700impl fidl::Persistable for SchedScanPlan {}
701
702#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
703#[repr(C)]
704pub struct SupplicantStaIfaceGetFactoryMacAddressResponse {
705 pub mac_addr: [u8; 6],
706}
707
708impl fidl::Persistable for SupplicantStaIfaceGetFactoryMacAddressResponse {}
709
710#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
711pub struct WifiChipSelectTxPowerScenarioRequest {
712 pub scenario: WifiChipTxPowerScenario,
713}
714
715impl fidl::Persistable for WifiChipSelectTxPowerScenarioRequest {}
716
717#[derive(Clone, Debug, Default, PartialEq)]
718pub struct ChipConcurrencyCombination {
719 pub limits: Option<Vec<ChipConcurrencyCombinationLimit>>,
720 #[doc(hidden)]
721 pub __source_breaking: fidl::marker::SourceBreaking,
722}
723
724impl fidl::Persistable for ChipConcurrencyCombination {}
725
726#[derive(Clone, Debug, Default, PartialEq)]
727pub struct ChipConcurrencyCombinationLimit {
728 pub types: Option<Vec<IfaceConcurrencyType>>,
729 pub max_ifaces: Option<u32>,
730 #[doc(hidden)]
731 pub __source_breaking: fidl::marker::SourceBreaking,
732}
733
734impl fidl::Persistable for ChipConcurrencyCombinationLimit {}
735
736#[derive(Clone, Debug, Default, PartialEq)]
737pub struct ChipMode {
738 pub id: Option<u32>,
739 pub available_combinations: Option<Vec<ChipConcurrencyCombination>>,
740 #[doc(hidden)]
741 pub __source_breaking: fidl::marker::SourceBreaking,
742}
743
744impl fidl::Persistable for ChipMode {}
745
746#[derive(Clone, Debug, Default, PartialEq)]
748pub struct SchedScanMatchSet {
749 pub ssid: Option<Vec<u8>>,
750 pub bssid: Option<[u8; 6]>,
751 pub rssi_threshold: Option<i8>,
752 pub relative_rssi: Option<i8>,
753 pub rssi_adjust: Option<i8>,
754 #[doc(hidden)]
755 pub __source_breaking: fidl::marker::SourceBreaking,
756}
757
758impl fidl::Persistable for SchedScanMatchSet {}
759
760#[derive(Clone, Debug, Default, PartialEq)]
761pub struct SchedScanRequest {
762 pub ssids: Option<Vec<Vec<u8>>>,
763 pub match_sets: Option<Vec<SchedScanMatchSet>>,
764 pub frequencies: Option<Vec<u32>>,
765 pub scan_plans: Option<Vec<SchedScanPlan>>,
766 pub sched_scan_multi: Option<bool>,
767 pub sched_scan_delay: Option<u32>,
768 pub ie: Option<Vec<u8>>,
769 pub relative_rssi: Option<i8>,
770 pub rssi_adjust: Option<i8>,
771 #[doc(hidden)]
772 pub __source_breaking: fidl::marker::SourceBreaking,
773}
774
775impl fidl::Persistable for SchedScanRequest {}
776
777#[derive(Clone, Debug, Default, PartialEq)]
778pub struct SupplicantStaIfaceCallbackOnAssociationRejectedRequest {
779 pub ssid: Option<Vec<u8>>,
780 pub bssid: Option<[u8; 6]>,
781 pub status_code: Option<fidl_fuchsia_wlan_ieee80211__common::StatusCode>,
782 pub timed_out: Option<bool>,
783 #[doc(hidden)]
784 pub __source_breaking: fidl::marker::SourceBreaking,
785}
786
787impl fidl::Persistable for SupplicantStaIfaceCallbackOnAssociationRejectedRequest {}
788
789#[derive(Clone, Debug, Default, PartialEq)]
790pub struct SupplicantStaIfaceCallbackOnDisconnectedRequest {
791 pub bssid: Option<[u8; 6]>,
792 pub locally_generated: Option<bool>,
793 pub reason_code: Option<fidl_fuchsia_wlan_ieee80211__common::ReasonCode>,
794 #[doc(hidden)]
795 pub __source_breaking: fidl::marker::SourceBreaking,
796}
797
798impl fidl::Persistable for SupplicantStaIfaceCallbackOnDisconnectedRequest {}
799
800#[derive(Clone, Debug, Default, PartialEq)]
801pub struct SupplicantStaIfaceCallbackOnStateChangedRequest {
802 pub new_state: Option<StaIfaceCallbackState>,
803 pub bssid: Option<[u8; 6]>,
804 pub id: Option<u32>,
805 pub ssid: Option<Vec<u8>>,
806 #[doc(hidden)]
807 pub __source_breaking: fidl::marker::SourceBreaking,
808}
809
810impl fidl::Persistable for SupplicantStaIfaceCallbackOnStateChangedRequest {}
811
812#[derive(Clone, Debug, Default, PartialEq)]
813pub struct SupplicantStaIfaceSetBtCoexistenceModeRequest {
814 pub mode: Option<BtCoexistenceMode>,
815 #[doc(hidden)]
816 pub __source_breaking: fidl::marker::SourceBreaking,
817}
818
819impl fidl::Persistable for SupplicantStaIfaceSetBtCoexistenceModeRequest {}
820
821#[derive(Clone, Debug, Default, PartialEq)]
822pub struct SupplicantStaIfaceGetMacAddressResponse {
823 pub mac_addr: Option<[u8; 6]>,
824 #[doc(hidden)]
825 pub __source_breaking: fidl::marker::SourceBreaking,
826}
827
828impl fidl::Persistable for SupplicantStaIfaceGetMacAddressResponse {}
829
830#[derive(Clone, Debug, Default, PartialEq)]
831pub struct SupplicantStaNetworkSetBssidRequest {
832 pub bssid: Option<[u8; 6]>,
833 #[doc(hidden)]
834 pub __source_breaking: fidl::marker::SourceBreaking,
835}
836
837impl fidl::Persistable for SupplicantStaNetworkSetBssidRequest {}
838
839#[derive(Clone, Debug, Default, PartialEq)]
840pub struct SupplicantStaNetworkSetKeyMgmtRequest {
841 pub key_mgmt_mask: Option<KeyMgmtMask>,
842 #[doc(hidden)]
843 pub __source_breaking: fidl::marker::SourceBreaking,
844}
845
846impl fidl::Persistable for SupplicantStaNetworkSetKeyMgmtRequest {}
847
848#[derive(Clone, Debug, Default, PartialEq)]
849pub struct SupplicantStaNetworkSetPskPassphraseRequest {
850 pub passphrase: Option<Vec<u8>>,
851 #[doc(hidden)]
852 pub __source_breaking: fidl::marker::SourceBreaking,
853}
854
855impl fidl::Persistable for SupplicantStaNetworkSetPskPassphraseRequest {}
856
857#[derive(Clone, Debug, Default, PartialEq)]
858pub struct SupplicantStaNetworkSetSaePasswordRequest {
859 pub password: Option<Vec<u8>>,
860 #[doc(hidden)]
861 pub __source_breaking: fidl::marker::SourceBreaking,
862}
863
864impl fidl::Persistable for SupplicantStaNetworkSetSaePasswordRequest {}
865
866#[derive(Clone, Debug, Default, PartialEq)]
867pub struct SupplicantStaNetworkSetSsidRequest {
868 pub ssid: Option<Vec<u8>>,
869 #[doc(hidden)]
870 pub __source_breaking: fidl::marker::SourceBreaking,
871}
872
873impl fidl::Persistable for SupplicantStaNetworkSetSsidRequest {}
874
875#[derive(Clone, Debug, Default, PartialEq)]
876pub struct SupplicantStaNetworkSetWepKeyRequest {
877 pub key: Option<Vec<u8>>,
878 pub key_idx: Option<i32>,
879 #[doc(hidden)]
880 pub __source_breaking: fidl::marker::SourceBreaking,
881}
882
883impl fidl::Persistable for SupplicantStaNetworkSetWepKeyRequest {}
884
885#[derive(Clone, Debug, Default, PartialEq)]
886pub struct SupplicantStaNetworkSetWepTxKeyIdxRequest {
887 pub key_idx: Option<i32>,
888 #[doc(hidden)]
889 pub __source_breaking: fidl::marker::SourceBreaking,
890}
891
892impl fidl::Persistable for SupplicantStaNetworkSetWepTxKeyIdxRequest {}
893
894#[derive(Clone, Debug, Default, PartialEq)]
895pub struct WifiChipGetAvailableModesResponse {
896 pub chip_modes: Option<Vec<ChipMode>>,
897 #[doc(hidden)]
898 pub __source_breaking: fidl::marker::SourceBreaking,
899}
900
901impl fidl::Persistable for WifiChipGetAvailableModesResponse {}
902
903#[derive(Clone, Debug, Default, PartialEq)]
904pub struct WifiChipGetCapabilitiesResponse {
905 pub capabilities_mask: Option<u32>,
906 #[doc(hidden)]
907 pub __source_breaking: fidl::marker::SourceBreaking,
908}
909
910impl fidl::Persistable for WifiChipGetCapabilitiesResponse {}
911
912#[derive(Clone, Debug, Default, PartialEq)]
913pub struct WifiChipGetIdResponse {
914 pub id: Option<u32>,
915 #[doc(hidden)]
916 pub __source_breaking: fidl::marker::SourceBreaking,
917}
918
919impl fidl::Persistable for WifiChipGetIdResponse {}
920
921#[derive(Clone, Debug, Default, PartialEq)]
922pub struct WifiChipGetModeResponse {
923 pub mode: Option<u32>,
924 #[doc(hidden)]
925 pub __source_breaking: fidl::marker::SourceBreaking,
926}
927
928impl fidl::Persistable for WifiChipGetModeResponse {}
929
930#[derive(Clone, Debug, Default, PartialEq)]
931pub struct WifiChipGetStaIfaceNamesResponse {
932 pub iface_names: Option<Vec<String>>,
933 #[doc(hidden)]
934 pub __source_breaking: fidl::marker::SourceBreaking,
935}
936
937impl fidl::Persistable for WifiChipGetStaIfaceNamesResponse {}
938
939#[derive(Clone, Debug, Default, PartialEq)]
940pub struct WifiStaIfaceInstallApfPacketFilterRequest {
941 pub program: Option<Vec<u8>>,
942 #[doc(hidden)]
943 pub __source_breaking: fidl::marker::SourceBreaking,
944}
945
946impl fidl::Persistable for WifiStaIfaceInstallApfPacketFilterRequest {}
947
948#[derive(Clone, Debug, Default, PartialEq)]
949pub struct WifiStaIfaceGetApfPacketFilterSupportResponse {
950 pub version: Option<i32>,
951 pub max_filter_length: Option<i32>,
952 #[doc(hidden)]
953 pub __source_breaking: fidl::marker::SourceBreaking,
954}
955
956impl fidl::Persistable for WifiStaIfaceGetApfPacketFilterSupportResponse {}
957
958#[derive(Clone, Debug, Default, PartialEq)]
959pub struct WifiStaIfaceGetNameResponse {
960 pub iface_name: Option<String>,
961 #[doc(hidden)]
962 pub __source_breaking: fidl::marker::SourceBreaking,
963}
964
965impl fidl::Persistable for WifiStaIfaceGetNameResponse {}
966
967#[derive(Clone, Debug, Default, PartialEq)]
968pub struct WifiStaIfaceReadApfPacketFilterDataResponse {
969 pub memory: Option<Vec<u8>>,
970 #[doc(hidden)]
971 pub __source_breaking: fidl::marker::SourceBreaking,
972}
973
974impl fidl::Persistable for WifiStaIfaceReadApfPacketFilterDataResponse {}
975
976#[derive(Clone, Debug, Default, PartialEq)]
977pub struct WifiGetChipIdsResponse {
978 pub chip_ids: Option<Vec<u32>>,
979 #[doc(hidden)]
980 pub __source_breaking: fidl::marker::SourceBreaking,
981}
982
983impl fidl::Persistable for WifiGetChipIdsResponse {}
984
985#[derive(Clone, Debug, Default, PartialEq)]
986pub struct WifiGetStateResponse {
987 pub is_started: Option<bool>,
988 #[doc(hidden)]
989 pub __source_breaking: fidl::marker::SourceBreaking,
990}
991
992impl fidl::Persistable for WifiGetStateResponse {}
993
994#[derive(Clone, Debug)]
995pub enum Nl80211Message {
996 Done(Done),
997 Error(Error),
998 Ack(Ack),
999 Message(Message),
1000 #[doc(hidden)]
1001 __SourceBreaking {
1002 unknown_ordinal: u64,
1003 },
1004}
1005
1006#[macro_export]
1008macro_rules! Nl80211MessageUnknown {
1009 () => {
1010 _
1011 };
1012}
1013
1014impl PartialEq for Nl80211Message {
1016 fn eq(&self, other: &Self) -> bool {
1017 match (self, other) {
1018 (Self::Done(x), Self::Done(y)) => *x == *y,
1019 (Self::Error(x), Self::Error(y)) => *x == *y,
1020 (Self::Ack(x), Self::Ack(y)) => *x == *y,
1021 (Self::Message(x), Self::Message(y)) => *x == *y,
1022 _ => false,
1023 }
1024 }
1025}
1026
1027impl Nl80211Message {
1028 #[inline]
1029 pub fn ordinal(&self) -> u64 {
1030 match *self {
1031 Self::Done(_) => 1,
1032 Self::Error(_) => 2,
1033 Self::Ack(_) => 3,
1034 Self::Message(_) => 4,
1035 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
1036 }
1037 }
1038
1039 #[inline]
1040 pub fn unknown_variant_for_testing() -> Self {
1041 Self::__SourceBreaking { unknown_ordinal: 0 }
1042 }
1043
1044 #[inline]
1045 pub fn is_unknown(&self) -> bool {
1046 match self {
1047 Self::__SourceBreaking { .. } => true,
1048 _ => false,
1049 }
1050 }
1051}
1052
1053impl fidl::Persistable for Nl80211Message {}
1054
1055pub mod nl80211_ordinals {
1056 pub const GET_MULTICAST: u64 = 0x58b73dd089681dc2;
1057 pub const MESSAGE: u64 = 0x6336259e15bb3795;
1058 pub const MESSAGE_V2: u64 = 0x4626796aba1e2987;
1059}
1060
1061pub mod nl80211_multicast_ordinals {
1062 pub const MESSAGE: u64 = 0x4cc9241f302f16c0;
1063}
1064
1065pub mod supplicant_ordinals {
1066 pub const ADD_STA_INTERFACE: u64 = 0x73194b2afe9b367e;
1067 pub const REMOVE_INTERFACE: u64 = 0x7f83e5b75b27d242;
1068}
1069
1070pub mod supplicant_sta_iface_ordinals {
1071 pub const REGISTER_CALLBACK: u64 = 0x1be680e863a8e71;
1072 pub const ADD_NETWORK: u64 = 0xa77cf60628766dc;
1073 pub const DISCONNECT: u64 = 0x52a1d38e0b4871fa;
1074 pub const GET_MAC_ADDRESS: u64 = 0x60591d204a3f537f;
1075 pub const GET_FACTORY_MAC_ADDRESS: u64 = 0x58857179ad71e624;
1076 pub const SET_BT_COEXISTENCE_MODE: u64 = 0x14567ff593a9b154;
1077 pub const SET_POWER_SAVE: u64 = 0x5a04c29320085298;
1078 pub const SET_SUSPEND_MODE_ENABLED: u64 = 0xaf10de85bb7023a;
1079 pub const SET_STA_COUNTRY_CODE: u64 = 0x977e22f9b79b26e;
1080}
1081
1082pub mod supplicant_sta_iface_callback_ordinals {
1083 pub const ON_STATE_CHANGED: u64 = 0x27e086d26c49eb6c;
1084 pub const ON_DISCONNECTED: u64 = 0x69546475f4dee0cc;
1085 pub const ON_ASSOCIATION_REJECTED: u64 = 0x7ef3961518bed988;
1086}
1087
1088pub mod supplicant_sta_network_ordinals {
1089 pub const SET_BSSID: u64 = 0x10a91d044ee6374d;
1090 pub const CLEAR_BSSID: u64 = 0xbc7ad82f541b267;
1091 pub const SET_SSID: u64 = 0x6b598a7a802e3083;
1092 pub const SET_KEY_MGMT: u64 = 0xc67082685b75a5c;
1093 pub const SET_PSK_PASSPHRASE: u64 = 0xf6d438225979307;
1094 pub const SET_SAE_PASSWORD: u64 = 0x2982737e196747b8;
1095 pub const SET_WEP_KEY: u64 = 0x22a7e25ec81f2dee;
1096 pub const SET_WEP_TX_KEY_IDX: u64 = 0x4f25576c21fcb8cb;
1097 pub const SELECT: u64 = 0x354bc361a0c77b45;
1098}
1099
1100pub mod wifi_ordinals {
1101 pub const REGISTER_EVENT_CALLBACK: u64 = 0x12abbdea948dd67b;
1102 pub const START: u64 = 0x427030e4dc6ec07a;
1103 pub const STOP: u64 = 0x67c9bdf61b2888d;
1104 pub const GET_STATE: u64 = 0x4616114a937d1fb0;
1105 pub const GET_CHIP_IDS: u64 = 0x2fb4f92351d802b5;
1106 pub const GET_CHIP: u64 = 0xef95d8246612540;
1107}
1108
1109pub mod wifi_chip_ordinals {
1110 pub const CREATE_STA_IFACE: u64 = 0x6fb2d5892face7af;
1111 pub const GET_STA_IFACE_NAMES: u64 = 0x349257482df6a000;
1112 pub const GET_STA_IFACE: u64 = 0x6d9704eeb36f28a2;
1113 pub const REMOVE_STA_IFACE: u64 = 0x4cd8eee466f8b04c;
1114 pub const SET_COUNTRY_CODE: u64 = 0x1dfe372d1d61a490;
1115 pub const GET_AVAILABLE_MODES: u64 = 0x1701095b452a3acd;
1116 pub const GET_ID: u64 = 0x37d5197325bb3370;
1117 pub const GET_MODE: u64 = 0x4d209e0f3ac84d6f;
1118 pub const GET_CAPABILITIES: u64 = 0x1b253f396dcaa2e0;
1119 pub const TRIGGER_SUBSYSTEM_RESTART: u64 = 0x42ffcae5aad196f9;
1120 pub const SELECT_TX_POWER_SCENARIO: u64 = 0x19287ab52ea72281;
1121 pub const RESET_TX_POWER_SCENARIO: u64 = 0x46408a2fb1eb9d09;
1122}
1123
1124pub mod wifi_event_callback_ordinals {
1125 pub const ON_START: u64 = 0x61189ff44f9d35f3;
1126 pub const ON_STOP: u64 = 0x58b697bcd475e0f9;
1127 pub const ON_SUBSYSTEM_RESTART: u64 = 0x69dfee4d3475db21;
1128}
1129
1130pub mod wifi_legacy_hal_ordinals {
1131 pub const SELECT_TX_POWER_SCENARIO: u64 = 0x49f42620e0a3caf9;
1132 pub const RESET_TX_POWER_SCENARIO: u64 = 0x6c0f8e9203167d8e;
1133}
1134
1135pub mod wifi_sta_iface_ordinals {
1136 pub const GET_NAME: u64 = 0x5c150b91c80c5789;
1137 pub const SET_SCAN_ONLY_MODE: u64 = 0x22550328583bf0e3;
1138 pub const SET_MAC_ADDRESS: u64 = 0x39c4f355079421b9;
1139 pub const GET_APF_PACKET_FILTER_SUPPORT: u64 = 0x205c538d31d76c8c;
1140 pub const INSTALL_APF_PACKET_FILTER: u64 = 0x6306fbfdb65631ba;
1141 pub const READ_APF_PACKET_FILTER_DATA: u64 = 0x4f39e558ddbca39;
1142}
1143
1144pub mod wlanix_ordinals {
1145 pub const GET_WIFI: u64 = 0x142511f44b2c338c;
1146 pub const GET_SUPPLICANT: u64 = 0x55554b37c4021d3d;
1147 pub const GET_NL80211: u64 = 0x48028a25bd855ef9;
1148 pub const GET_WIFI_LEGACY_HAL: u64 = 0x7302d9bb3b8d1edc;
1149}
1150
1151mod internal {
1152 use super::*;
1153 unsafe impl fidl::encoding::TypeMarker for KeyMgmtMask {
1154 type Owned = Self;
1155
1156 #[inline(always)]
1157 fn inline_align(_context: fidl::encoding::Context) -> usize {
1158 4
1159 }
1160
1161 #[inline(always)]
1162 fn inline_size(_context: fidl::encoding::Context) -> usize {
1163 4
1164 }
1165 }
1166
1167 impl fidl::encoding::ValueTypeMarker for KeyMgmtMask {
1168 type Borrowed<'a> = Self;
1169 #[inline(always)]
1170 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1171 *value
1172 }
1173 }
1174
1175 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for KeyMgmtMask {
1176 #[inline]
1177 unsafe fn encode(
1178 self,
1179 encoder: &mut fidl::encoding::Encoder<'_, D>,
1180 offset: usize,
1181 _depth: fidl::encoding::Depth,
1182 ) -> fidl::Result<()> {
1183 encoder.debug_check_bounds::<Self>(offset);
1184 encoder.write_num(self.bits(), offset);
1185 Ok(())
1186 }
1187 }
1188
1189 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for KeyMgmtMask {
1190 #[inline(always)]
1191 fn new_empty() -> Self {
1192 Self::empty()
1193 }
1194
1195 #[inline]
1196 unsafe fn decode(
1197 &mut self,
1198 decoder: &mut fidl::encoding::Decoder<'_, D>,
1199 offset: usize,
1200 _depth: fidl::encoding::Depth,
1201 ) -> fidl::Result<()> {
1202 decoder.debug_check_bounds::<Self>(offset);
1203 let prim = decoder.read_num::<u32>(offset);
1204 *self = Self::from_bits_allow_unknown(prim);
1205 Ok(())
1206 }
1207 }
1208 unsafe impl fidl::encoding::TypeMarker for BtCoexistenceMode {
1209 type Owned = Self;
1210
1211 #[inline(always)]
1212 fn inline_align(_context: fidl::encoding::Context) -> usize {
1213 std::mem::align_of::<u32>()
1214 }
1215
1216 #[inline(always)]
1217 fn inline_size(_context: fidl::encoding::Context) -> usize {
1218 std::mem::size_of::<u32>()
1219 }
1220
1221 #[inline(always)]
1222 fn encode_is_copy() -> bool {
1223 false
1224 }
1225
1226 #[inline(always)]
1227 fn decode_is_copy() -> bool {
1228 false
1229 }
1230 }
1231
1232 impl fidl::encoding::ValueTypeMarker for BtCoexistenceMode {
1233 type Borrowed<'a> = Self;
1234 #[inline(always)]
1235 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1236 *value
1237 }
1238 }
1239
1240 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
1241 for BtCoexistenceMode
1242 {
1243 #[inline]
1244 unsafe fn encode(
1245 self,
1246 encoder: &mut fidl::encoding::Encoder<'_, D>,
1247 offset: usize,
1248 _depth: fidl::encoding::Depth,
1249 ) -> fidl::Result<()> {
1250 encoder.debug_check_bounds::<Self>(offset);
1251 encoder.write_num(self.into_primitive(), offset);
1252 Ok(())
1253 }
1254 }
1255
1256 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for BtCoexistenceMode {
1257 #[inline(always)]
1258 fn new_empty() -> Self {
1259 Self::unknown()
1260 }
1261
1262 #[inline]
1263 unsafe fn decode(
1264 &mut self,
1265 decoder: &mut fidl::encoding::Decoder<'_, D>,
1266 offset: usize,
1267 _depth: fidl::encoding::Depth,
1268 ) -> fidl::Result<()> {
1269 decoder.debug_check_bounds::<Self>(offset);
1270 let prim = decoder.read_num::<u32>(offset);
1271
1272 *self = Self::from_primitive_allow_unknown(prim);
1273 Ok(())
1274 }
1275 }
1276 unsafe impl fidl::encoding::TypeMarker for IfaceConcurrencyType {
1277 type Owned = Self;
1278
1279 #[inline(always)]
1280 fn inline_align(_context: fidl::encoding::Context) -> usize {
1281 std::mem::align_of::<u32>()
1282 }
1283
1284 #[inline(always)]
1285 fn inline_size(_context: fidl::encoding::Context) -> usize {
1286 std::mem::size_of::<u32>()
1287 }
1288
1289 #[inline(always)]
1290 fn encode_is_copy() -> bool {
1291 false
1292 }
1293
1294 #[inline(always)]
1295 fn decode_is_copy() -> bool {
1296 false
1297 }
1298 }
1299
1300 impl fidl::encoding::ValueTypeMarker for IfaceConcurrencyType {
1301 type Borrowed<'a> = Self;
1302 #[inline(always)]
1303 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1304 *value
1305 }
1306 }
1307
1308 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
1309 for IfaceConcurrencyType
1310 {
1311 #[inline]
1312 unsafe fn encode(
1313 self,
1314 encoder: &mut fidl::encoding::Encoder<'_, D>,
1315 offset: usize,
1316 _depth: fidl::encoding::Depth,
1317 ) -> fidl::Result<()> {
1318 encoder.debug_check_bounds::<Self>(offset);
1319 encoder.write_num(self.into_primitive(), offset);
1320 Ok(())
1321 }
1322 }
1323
1324 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for IfaceConcurrencyType {
1325 #[inline(always)]
1326 fn new_empty() -> Self {
1327 Self::unknown()
1328 }
1329
1330 #[inline]
1331 unsafe fn decode(
1332 &mut self,
1333 decoder: &mut fidl::encoding::Decoder<'_, D>,
1334 offset: usize,
1335 _depth: fidl::encoding::Depth,
1336 ) -> fidl::Result<()> {
1337 decoder.debug_check_bounds::<Self>(offset);
1338 let prim = decoder.read_num::<u32>(offset);
1339
1340 *self = Self::from_primitive_allow_unknown(prim);
1341 Ok(())
1342 }
1343 }
1344 unsafe impl fidl::encoding::TypeMarker for StaIfaceCallbackState {
1345 type Owned = Self;
1346
1347 #[inline(always)]
1348 fn inline_align(_context: fidl::encoding::Context) -> usize {
1349 std::mem::align_of::<u32>()
1350 }
1351
1352 #[inline(always)]
1353 fn inline_size(_context: fidl::encoding::Context) -> usize {
1354 std::mem::size_of::<u32>()
1355 }
1356
1357 #[inline(always)]
1358 fn encode_is_copy() -> bool {
1359 false
1360 }
1361
1362 #[inline(always)]
1363 fn decode_is_copy() -> bool {
1364 false
1365 }
1366 }
1367
1368 impl fidl::encoding::ValueTypeMarker for StaIfaceCallbackState {
1369 type Borrowed<'a> = Self;
1370 #[inline(always)]
1371 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1372 *value
1373 }
1374 }
1375
1376 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
1377 for StaIfaceCallbackState
1378 {
1379 #[inline]
1380 unsafe fn encode(
1381 self,
1382 encoder: &mut fidl::encoding::Encoder<'_, D>,
1383 offset: usize,
1384 _depth: fidl::encoding::Depth,
1385 ) -> fidl::Result<()> {
1386 encoder.debug_check_bounds::<Self>(offset);
1387 encoder.write_num(self.into_primitive(), offset);
1388 Ok(())
1389 }
1390 }
1391
1392 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for StaIfaceCallbackState {
1393 #[inline(always)]
1394 fn new_empty() -> Self {
1395 Self::unknown()
1396 }
1397
1398 #[inline]
1399 unsafe fn decode(
1400 &mut self,
1401 decoder: &mut fidl::encoding::Decoder<'_, D>,
1402 offset: usize,
1403 _depth: fidl::encoding::Depth,
1404 ) -> fidl::Result<()> {
1405 decoder.debug_check_bounds::<Self>(offset);
1406 let prim = decoder.read_num::<u32>(offset);
1407
1408 *self = Self::from_primitive_allow_unknown(prim);
1409 Ok(())
1410 }
1411 }
1412 unsafe impl fidl::encoding::TypeMarker for WifiChipTxPowerScenario {
1413 type Owned = Self;
1414
1415 #[inline(always)]
1416 fn inline_align(_context: fidl::encoding::Context) -> usize {
1417 std::mem::align_of::<u32>()
1418 }
1419
1420 #[inline(always)]
1421 fn inline_size(_context: fidl::encoding::Context) -> usize {
1422 std::mem::size_of::<u32>()
1423 }
1424
1425 #[inline(always)]
1426 fn encode_is_copy() -> bool {
1427 false
1428 }
1429
1430 #[inline(always)]
1431 fn decode_is_copy() -> bool {
1432 false
1433 }
1434 }
1435
1436 impl fidl::encoding::ValueTypeMarker for WifiChipTxPowerScenario {
1437 type Borrowed<'a> = Self;
1438 #[inline(always)]
1439 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1440 *value
1441 }
1442 }
1443
1444 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
1445 for WifiChipTxPowerScenario
1446 {
1447 #[inline]
1448 unsafe fn encode(
1449 self,
1450 encoder: &mut fidl::encoding::Encoder<'_, D>,
1451 offset: usize,
1452 _depth: fidl::encoding::Depth,
1453 ) -> fidl::Result<()> {
1454 encoder.debug_check_bounds::<Self>(offset);
1455 encoder.write_num(self.into_primitive(), offset);
1456 Ok(())
1457 }
1458 }
1459
1460 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1461 for WifiChipTxPowerScenario
1462 {
1463 #[inline(always)]
1464 fn new_empty() -> Self {
1465 Self::unknown()
1466 }
1467
1468 #[inline]
1469 unsafe fn decode(
1470 &mut self,
1471 decoder: &mut fidl::encoding::Decoder<'_, D>,
1472 offset: usize,
1473 _depth: fidl::encoding::Depth,
1474 ) -> fidl::Result<()> {
1475 decoder.debug_check_bounds::<Self>(offset);
1476 let prim = decoder.read_num::<u32>(offset);
1477
1478 *self = Self::from_primitive_allow_unknown(prim);
1479 Ok(())
1480 }
1481 }
1482 unsafe impl fidl::encoding::TypeMarker for WifiLegacyHalStatus {
1483 type Owned = Self;
1484
1485 #[inline(always)]
1486 fn inline_align(_context: fidl::encoding::Context) -> usize {
1487 std::mem::align_of::<u32>()
1488 }
1489
1490 #[inline(always)]
1491 fn inline_size(_context: fidl::encoding::Context) -> usize {
1492 std::mem::size_of::<u32>()
1493 }
1494
1495 #[inline(always)]
1496 fn encode_is_copy() -> bool {
1497 false
1498 }
1499
1500 #[inline(always)]
1501 fn decode_is_copy() -> bool {
1502 false
1503 }
1504 }
1505
1506 impl fidl::encoding::ValueTypeMarker for WifiLegacyHalStatus {
1507 type Borrowed<'a> = Self;
1508 #[inline(always)]
1509 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1510 *value
1511 }
1512 }
1513
1514 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
1515 for WifiLegacyHalStatus
1516 {
1517 #[inline]
1518 unsafe fn encode(
1519 self,
1520 encoder: &mut fidl::encoding::Encoder<'_, D>,
1521 offset: usize,
1522 _depth: fidl::encoding::Depth,
1523 ) -> fidl::Result<()> {
1524 encoder.debug_check_bounds::<Self>(offset);
1525 encoder.write_num(self.into_primitive(), offset);
1526 Ok(())
1527 }
1528 }
1529
1530 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for WifiLegacyHalStatus {
1531 #[inline(always)]
1532 fn new_empty() -> Self {
1533 Self::unknown()
1534 }
1535
1536 #[inline]
1537 unsafe fn decode(
1538 &mut self,
1539 decoder: &mut fidl::encoding::Decoder<'_, D>,
1540 offset: usize,
1541 _depth: fidl::encoding::Depth,
1542 ) -> fidl::Result<()> {
1543 decoder.debug_check_bounds::<Self>(offset);
1544 let prim = decoder.read_num::<u32>(offset);
1545
1546 *self = Self::from_primitive_allow_unknown(prim);
1547 Ok(())
1548 }
1549 }
1550 unsafe impl fidl::encoding::TypeMarker for WifiLegacyHalTxPowerScenario {
1551 type Owned = Self;
1552
1553 #[inline(always)]
1554 fn inline_align(_context: fidl::encoding::Context) -> usize {
1555 std::mem::align_of::<i32>()
1556 }
1557
1558 #[inline(always)]
1559 fn inline_size(_context: fidl::encoding::Context) -> usize {
1560 std::mem::size_of::<i32>()
1561 }
1562
1563 #[inline(always)]
1564 fn encode_is_copy() -> bool {
1565 false
1566 }
1567
1568 #[inline(always)]
1569 fn decode_is_copy() -> bool {
1570 false
1571 }
1572 }
1573
1574 impl fidl::encoding::ValueTypeMarker for WifiLegacyHalTxPowerScenario {
1575 type Borrowed<'a> = Self;
1576 #[inline(always)]
1577 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1578 *value
1579 }
1580 }
1581
1582 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
1583 for WifiLegacyHalTxPowerScenario
1584 {
1585 #[inline]
1586 unsafe fn encode(
1587 self,
1588 encoder: &mut fidl::encoding::Encoder<'_, D>,
1589 offset: usize,
1590 _depth: fidl::encoding::Depth,
1591 ) -> fidl::Result<()> {
1592 encoder.debug_check_bounds::<Self>(offset);
1593 encoder.write_num(self.into_primitive(), offset);
1594 Ok(())
1595 }
1596 }
1597
1598 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1599 for WifiLegacyHalTxPowerScenario
1600 {
1601 #[inline(always)]
1602 fn new_empty() -> Self {
1603 Self::unknown()
1604 }
1605
1606 #[inline]
1607 unsafe fn decode(
1608 &mut self,
1609 decoder: &mut fidl::encoding::Decoder<'_, D>,
1610 offset: usize,
1611 _depth: fidl::encoding::Depth,
1612 ) -> fidl::Result<()> {
1613 decoder.debug_check_bounds::<Self>(offset);
1614 let prim = decoder.read_num::<i32>(offset);
1615
1616 *self = Self::from_primitive_allow_unknown(prim);
1617 Ok(())
1618 }
1619 }
1620 unsafe impl fidl::encoding::TypeMarker for WlanixError {
1621 type Owned = Self;
1622
1623 #[inline(always)]
1624 fn inline_align(_context: fidl::encoding::Context) -> usize {
1625 std::mem::align_of::<u32>()
1626 }
1627
1628 #[inline(always)]
1629 fn inline_size(_context: fidl::encoding::Context) -> usize {
1630 std::mem::size_of::<u32>()
1631 }
1632
1633 #[inline(always)]
1634 fn encode_is_copy() -> bool {
1635 false
1636 }
1637
1638 #[inline(always)]
1639 fn decode_is_copy() -> bool {
1640 false
1641 }
1642 }
1643
1644 impl fidl::encoding::ValueTypeMarker for WlanixError {
1645 type Borrowed<'a> = Self;
1646 #[inline(always)]
1647 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1648 *value
1649 }
1650 }
1651
1652 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for WlanixError {
1653 #[inline]
1654 unsafe fn encode(
1655 self,
1656 encoder: &mut fidl::encoding::Encoder<'_, D>,
1657 offset: usize,
1658 _depth: fidl::encoding::Depth,
1659 ) -> fidl::Result<()> {
1660 encoder.debug_check_bounds::<Self>(offset);
1661 encoder.write_num(self.into_primitive(), offset);
1662 Ok(())
1663 }
1664 }
1665
1666 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for WlanixError {
1667 #[inline(always)]
1668 fn new_empty() -> Self {
1669 Self::unknown()
1670 }
1671
1672 #[inline]
1673 unsafe fn decode(
1674 &mut self,
1675 decoder: &mut fidl::encoding::Decoder<'_, D>,
1676 offset: usize,
1677 _depth: fidl::encoding::Depth,
1678 ) -> fidl::Result<()> {
1679 decoder.debug_check_bounds::<Self>(offset);
1680 let prim = decoder.read_num::<u32>(offset);
1681
1682 *self = Self::from_primitive_allow_unknown(prim);
1683 Ok(())
1684 }
1685 }
1686
1687 impl fidl::encoding::ValueTypeMarker for Ack {
1688 type Borrowed<'a> = &'a Self;
1689 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1690 value
1691 }
1692 }
1693
1694 unsafe impl fidl::encoding::TypeMarker for Ack {
1695 type Owned = Self;
1696
1697 #[inline(always)]
1698 fn inline_align(_context: fidl::encoding::Context) -> usize {
1699 1
1700 }
1701
1702 #[inline(always)]
1703 fn inline_size(_context: fidl::encoding::Context) -> usize {
1704 1
1705 }
1706 }
1707
1708 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Ack, D> for &Ack {
1709 #[inline]
1710 unsafe fn encode(
1711 self,
1712 encoder: &mut fidl::encoding::Encoder<'_, D>,
1713 offset: usize,
1714 _depth: fidl::encoding::Depth,
1715 ) -> fidl::Result<()> {
1716 encoder.debug_check_bounds::<Ack>(offset);
1717 encoder.write_num(0u8, offset);
1718 Ok(())
1719 }
1720 }
1721
1722 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Ack {
1723 #[inline(always)]
1724 fn new_empty() -> Self {
1725 Self
1726 }
1727
1728 #[inline]
1729 unsafe fn decode(
1730 &mut self,
1731 decoder: &mut fidl::encoding::Decoder<'_, D>,
1732 offset: usize,
1733 _depth: fidl::encoding::Depth,
1734 ) -> fidl::Result<()> {
1735 decoder.debug_check_bounds::<Self>(offset);
1736 match decoder.read_num::<u8>(offset) {
1737 0 => Ok(()),
1738 _ => Err(fidl::Error::Invalid),
1739 }
1740 }
1741 }
1742
1743 impl fidl::encoding::ValueTypeMarker for Done {
1744 type Borrowed<'a> = &'a Self;
1745 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1746 value
1747 }
1748 }
1749
1750 unsafe impl fidl::encoding::TypeMarker for Done {
1751 type Owned = Self;
1752
1753 #[inline(always)]
1754 fn inline_align(_context: fidl::encoding::Context) -> usize {
1755 1
1756 }
1757
1758 #[inline(always)]
1759 fn inline_size(_context: fidl::encoding::Context) -> usize {
1760 1
1761 }
1762 }
1763
1764 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Done, D> for &Done {
1765 #[inline]
1766 unsafe fn encode(
1767 self,
1768 encoder: &mut fidl::encoding::Encoder<'_, D>,
1769 offset: usize,
1770 _depth: fidl::encoding::Depth,
1771 ) -> fidl::Result<()> {
1772 encoder.debug_check_bounds::<Done>(offset);
1773 encoder.write_num(0u8, offset);
1774 Ok(())
1775 }
1776 }
1777
1778 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Done {
1779 #[inline(always)]
1780 fn new_empty() -> Self {
1781 Self
1782 }
1783
1784 #[inline]
1785 unsafe fn decode(
1786 &mut self,
1787 decoder: &mut fidl::encoding::Decoder<'_, D>,
1788 offset: usize,
1789 _depth: fidl::encoding::Depth,
1790 ) -> fidl::Result<()> {
1791 decoder.debug_check_bounds::<Self>(offset);
1792 match decoder.read_num::<u8>(offset) {
1793 0 => Ok(()),
1794 _ => Err(fidl::Error::Invalid),
1795 }
1796 }
1797 }
1798
1799 impl fidl::encoding::ValueTypeMarker for Error {
1800 type Borrowed<'a> = &'a Self;
1801 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1802 value
1803 }
1804 }
1805
1806 unsafe impl fidl::encoding::TypeMarker for Error {
1807 type Owned = Self;
1808
1809 #[inline(always)]
1810 fn inline_align(_context: fidl::encoding::Context) -> usize {
1811 4
1812 }
1813
1814 #[inline(always)]
1815 fn inline_size(_context: fidl::encoding::Context) -> usize {
1816 4
1817 }
1818 #[inline(always)]
1819 fn encode_is_copy() -> bool {
1820 true
1821 }
1822
1823 #[inline(always)]
1824 fn decode_is_copy() -> bool {
1825 true
1826 }
1827 }
1828
1829 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Error, D> for &Error {
1830 #[inline]
1831 unsafe fn encode(
1832 self,
1833 encoder: &mut fidl::encoding::Encoder<'_, D>,
1834 offset: usize,
1835 _depth: fidl::encoding::Depth,
1836 ) -> fidl::Result<()> {
1837 encoder.debug_check_bounds::<Error>(offset);
1838 unsafe {
1839 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
1841 (buf_ptr as *mut Error).write_unaligned((self as *const Error).read());
1842 }
1845 Ok(())
1846 }
1847 }
1848 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<i32, D>>
1849 fidl::encoding::Encode<Error, D> for (T0,)
1850 {
1851 #[inline]
1852 unsafe fn encode(
1853 self,
1854 encoder: &mut fidl::encoding::Encoder<'_, D>,
1855 offset: usize,
1856 depth: fidl::encoding::Depth,
1857 ) -> fidl::Result<()> {
1858 encoder.debug_check_bounds::<Error>(offset);
1859 self.0.encode(encoder, offset + 0, depth)?;
1863 Ok(())
1864 }
1865 }
1866
1867 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Error {
1868 #[inline(always)]
1869 fn new_empty() -> Self {
1870 Self { error_code: fidl::new_empty!(i32, D) }
1871 }
1872
1873 #[inline]
1874 unsafe fn decode(
1875 &mut self,
1876 decoder: &mut fidl::encoding::Decoder<'_, D>,
1877 offset: usize,
1878 _depth: fidl::encoding::Depth,
1879 ) -> fidl::Result<()> {
1880 decoder.debug_check_bounds::<Self>(offset);
1881 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
1882 unsafe {
1885 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 4);
1886 }
1887 Ok(())
1888 }
1889 }
1890
1891 impl fidl::encoding::ValueTypeMarker for Message {
1892 type Borrowed<'a> = &'a Self;
1893 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1894 value
1895 }
1896 }
1897
1898 unsafe impl fidl::encoding::TypeMarker for Message {
1899 type Owned = Self;
1900
1901 #[inline(always)]
1902 fn inline_align(_context: fidl::encoding::Context) -> usize {
1903 8
1904 }
1905
1906 #[inline(always)]
1907 fn inline_size(_context: fidl::encoding::Context) -> usize {
1908 16
1909 }
1910 }
1911
1912 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Message, D> for &Message {
1913 #[inline]
1914 unsafe fn encode(
1915 self,
1916 encoder: &mut fidl::encoding::Encoder<'_, D>,
1917 offset: usize,
1918 _depth: fidl::encoding::Depth,
1919 ) -> fidl::Result<()> {
1920 encoder.debug_check_bounds::<Message>(offset);
1921 fidl::encoding::Encode::<Message, D>::encode(
1923 (<fidl::encoding::UnboundedVector<u8> as fidl::encoding::ValueTypeMarker>::borrow(
1924 &self.payload,
1925 ),),
1926 encoder,
1927 offset,
1928 _depth,
1929 )
1930 }
1931 }
1932 unsafe impl<
1933 D: fidl::encoding::ResourceDialect,
1934 T0: fidl::encoding::Encode<fidl::encoding::UnboundedVector<u8>, D>,
1935 > fidl::encoding::Encode<Message, D> for (T0,)
1936 {
1937 #[inline]
1938 unsafe fn encode(
1939 self,
1940 encoder: &mut fidl::encoding::Encoder<'_, D>,
1941 offset: usize,
1942 depth: fidl::encoding::Depth,
1943 ) -> fidl::Result<()> {
1944 encoder.debug_check_bounds::<Message>(offset);
1945 self.0.encode(encoder, offset + 0, depth)?;
1949 Ok(())
1950 }
1951 }
1952
1953 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Message {
1954 #[inline(always)]
1955 fn new_empty() -> Self {
1956 Self { payload: fidl::new_empty!(fidl::encoding::UnboundedVector<u8>, D) }
1957 }
1958
1959 #[inline]
1960 unsafe fn decode(
1961 &mut self,
1962 decoder: &mut fidl::encoding::Decoder<'_, D>,
1963 offset: usize,
1964 _depth: fidl::encoding::Depth,
1965 ) -> fidl::Result<()> {
1966 decoder.debug_check_bounds::<Self>(offset);
1967 fidl::decode!(
1969 fidl::encoding::UnboundedVector<u8>,
1970 D,
1971 &mut self.payload,
1972 decoder,
1973 offset + 0,
1974 _depth
1975 )?;
1976 Ok(())
1977 }
1978 }
1979
1980 impl fidl::encoding::ValueTypeMarker for Nl80211MessageArray {
1981 type Borrowed<'a> = &'a Self;
1982 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1983 value
1984 }
1985 }
1986
1987 unsafe impl fidl::encoding::TypeMarker for Nl80211MessageArray {
1988 type Owned = Self;
1989
1990 #[inline(always)]
1991 fn inline_align(_context: fidl::encoding::Context) -> usize {
1992 8
1993 }
1994
1995 #[inline(always)]
1996 fn inline_size(_context: fidl::encoding::Context) -> usize {
1997 16
1998 }
1999 }
2000
2001 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Nl80211MessageArray, D>
2002 for &Nl80211MessageArray
2003 {
2004 #[inline]
2005 unsafe fn encode(
2006 self,
2007 encoder: &mut fidl::encoding::Encoder<'_, D>,
2008 offset: usize,
2009 _depth: fidl::encoding::Depth,
2010 ) -> fidl::Result<()> {
2011 encoder.debug_check_bounds::<Nl80211MessageArray>(offset);
2012 fidl::encoding::Encode::<Nl80211MessageArray, D>::encode(
2014 (
2015 <fidl::encoding::UnboundedVector<Nl80211Message> as fidl::encoding::ValueTypeMarker>::borrow(&self.messages),
2016 ),
2017 encoder, offset, _depth
2018 )
2019 }
2020 }
2021 unsafe impl<
2022 D: fidl::encoding::ResourceDialect,
2023 T0: fidl::encoding::Encode<fidl::encoding::UnboundedVector<Nl80211Message>, D>,
2024 > fidl::encoding::Encode<Nl80211MessageArray, D> for (T0,)
2025 {
2026 #[inline]
2027 unsafe fn encode(
2028 self,
2029 encoder: &mut fidl::encoding::Encoder<'_, D>,
2030 offset: usize,
2031 depth: fidl::encoding::Depth,
2032 ) -> fidl::Result<()> {
2033 encoder.debug_check_bounds::<Nl80211MessageArray>(offset);
2034 self.0.encode(encoder, offset + 0, depth)?;
2038 Ok(())
2039 }
2040 }
2041
2042 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Nl80211MessageArray {
2043 #[inline(always)]
2044 fn new_empty() -> Self {
2045 Self { messages: fidl::new_empty!(fidl::encoding::UnboundedVector<Nl80211Message>, D) }
2046 }
2047
2048 #[inline]
2049 unsafe fn decode(
2050 &mut self,
2051 decoder: &mut fidl::encoding::Decoder<'_, D>,
2052 offset: usize,
2053 _depth: fidl::encoding::Depth,
2054 ) -> fidl::Result<()> {
2055 decoder.debug_check_bounds::<Self>(offset);
2056 fidl::decode!(
2058 fidl::encoding::UnboundedVector<Nl80211Message>,
2059 D,
2060 &mut self.messages,
2061 decoder,
2062 offset + 0,
2063 _depth
2064 )?;
2065 Ok(())
2066 }
2067 }
2068
2069 impl fidl::encoding::ValueTypeMarker for SchedScanPlan {
2070 type Borrowed<'a> = &'a Self;
2071 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2072 value
2073 }
2074 }
2075
2076 unsafe impl fidl::encoding::TypeMarker for SchedScanPlan {
2077 type Owned = Self;
2078
2079 #[inline(always)]
2080 fn inline_align(_context: fidl::encoding::Context) -> usize {
2081 4
2082 }
2083
2084 #[inline(always)]
2085 fn inline_size(_context: fidl::encoding::Context) -> usize {
2086 8
2087 }
2088 #[inline(always)]
2089 fn encode_is_copy() -> bool {
2090 true
2091 }
2092
2093 #[inline(always)]
2094 fn decode_is_copy() -> bool {
2095 true
2096 }
2097 }
2098
2099 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<SchedScanPlan, D>
2100 for &SchedScanPlan
2101 {
2102 #[inline]
2103 unsafe fn encode(
2104 self,
2105 encoder: &mut fidl::encoding::Encoder<'_, D>,
2106 offset: usize,
2107 _depth: fidl::encoding::Depth,
2108 ) -> fidl::Result<()> {
2109 encoder.debug_check_bounds::<SchedScanPlan>(offset);
2110 unsafe {
2111 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
2113 (buf_ptr as *mut SchedScanPlan)
2114 .write_unaligned((self as *const SchedScanPlan).read());
2115 }
2118 Ok(())
2119 }
2120 }
2121 unsafe impl<
2122 D: fidl::encoding::ResourceDialect,
2123 T0: fidl::encoding::Encode<u32, D>,
2124 T1: fidl::encoding::Encode<u32, D>,
2125 > fidl::encoding::Encode<SchedScanPlan, D> for (T0, T1)
2126 {
2127 #[inline]
2128 unsafe fn encode(
2129 self,
2130 encoder: &mut fidl::encoding::Encoder<'_, D>,
2131 offset: usize,
2132 depth: fidl::encoding::Depth,
2133 ) -> fidl::Result<()> {
2134 encoder.debug_check_bounds::<SchedScanPlan>(offset);
2135 self.0.encode(encoder, offset + 0, depth)?;
2139 self.1.encode(encoder, offset + 4, depth)?;
2140 Ok(())
2141 }
2142 }
2143
2144 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for SchedScanPlan {
2145 #[inline(always)]
2146 fn new_empty() -> Self {
2147 Self { interval_ms: fidl::new_empty!(u32, D), iterations: fidl::new_empty!(u32, D) }
2148 }
2149
2150 #[inline]
2151 unsafe fn decode(
2152 &mut self,
2153 decoder: &mut fidl::encoding::Decoder<'_, D>,
2154 offset: usize,
2155 _depth: fidl::encoding::Depth,
2156 ) -> fidl::Result<()> {
2157 decoder.debug_check_bounds::<Self>(offset);
2158 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
2159 unsafe {
2162 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 8);
2163 }
2164 Ok(())
2165 }
2166 }
2167
2168 impl fidl::encoding::ValueTypeMarker for SupplicantStaIfaceGetFactoryMacAddressResponse {
2169 type Borrowed<'a> = &'a Self;
2170 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2171 value
2172 }
2173 }
2174
2175 unsafe impl fidl::encoding::TypeMarker for SupplicantStaIfaceGetFactoryMacAddressResponse {
2176 type Owned = Self;
2177
2178 #[inline(always)]
2179 fn inline_align(_context: fidl::encoding::Context) -> usize {
2180 1
2181 }
2182
2183 #[inline(always)]
2184 fn inline_size(_context: fidl::encoding::Context) -> usize {
2185 6
2186 }
2187 #[inline(always)]
2188 fn encode_is_copy() -> bool {
2189 true
2190 }
2191
2192 #[inline(always)]
2193 fn decode_is_copy() -> bool {
2194 true
2195 }
2196 }
2197
2198 unsafe impl<D: fidl::encoding::ResourceDialect>
2199 fidl::encoding::Encode<SupplicantStaIfaceGetFactoryMacAddressResponse, D>
2200 for &SupplicantStaIfaceGetFactoryMacAddressResponse
2201 {
2202 #[inline]
2203 unsafe fn encode(
2204 self,
2205 encoder: &mut fidl::encoding::Encoder<'_, D>,
2206 offset: usize,
2207 _depth: fidl::encoding::Depth,
2208 ) -> fidl::Result<()> {
2209 encoder.debug_check_bounds::<SupplicantStaIfaceGetFactoryMacAddressResponse>(offset);
2210 unsafe {
2211 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
2213 (buf_ptr as *mut SupplicantStaIfaceGetFactoryMacAddressResponse).write_unaligned(
2214 (self as *const SupplicantStaIfaceGetFactoryMacAddressResponse).read(),
2215 );
2216 }
2219 Ok(())
2220 }
2221 }
2222 unsafe impl<
2223 D: fidl::encoding::ResourceDialect,
2224 T0: fidl::encoding::Encode<fidl::encoding::Array<u8, 6>, D>,
2225 > fidl::encoding::Encode<SupplicantStaIfaceGetFactoryMacAddressResponse, D> for (T0,)
2226 {
2227 #[inline]
2228 unsafe fn encode(
2229 self,
2230 encoder: &mut fidl::encoding::Encoder<'_, D>,
2231 offset: usize,
2232 depth: fidl::encoding::Depth,
2233 ) -> fidl::Result<()> {
2234 encoder.debug_check_bounds::<SupplicantStaIfaceGetFactoryMacAddressResponse>(offset);
2235 self.0.encode(encoder, offset + 0, depth)?;
2239 Ok(())
2240 }
2241 }
2242
2243 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2244 for SupplicantStaIfaceGetFactoryMacAddressResponse
2245 {
2246 #[inline(always)]
2247 fn new_empty() -> Self {
2248 Self { mac_addr: fidl::new_empty!(fidl::encoding::Array<u8, 6>, D) }
2249 }
2250
2251 #[inline]
2252 unsafe fn decode(
2253 &mut self,
2254 decoder: &mut fidl::encoding::Decoder<'_, D>,
2255 offset: usize,
2256 _depth: fidl::encoding::Depth,
2257 ) -> fidl::Result<()> {
2258 decoder.debug_check_bounds::<Self>(offset);
2259 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
2260 unsafe {
2263 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 6);
2264 }
2265 Ok(())
2266 }
2267 }
2268
2269 impl fidl::encoding::ValueTypeMarker for WifiChipSelectTxPowerScenarioRequest {
2270 type Borrowed<'a> = &'a Self;
2271 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2272 value
2273 }
2274 }
2275
2276 unsafe impl fidl::encoding::TypeMarker for WifiChipSelectTxPowerScenarioRequest {
2277 type Owned = Self;
2278
2279 #[inline(always)]
2280 fn inline_align(_context: fidl::encoding::Context) -> usize {
2281 4
2282 }
2283
2284 #[inline(always)]
2285 fn inline_size(_context: fidl::encoding::Context) -> usize {
2286 4
2287 }
2288 }
2289
2290 unsafe impl<D: fidl::encoding::ResourceDialect>
2291 fidl::encoding::Encode<WifiChipSelectTxPowerScenarioRequest, D>
2292 for &WifiChipSelectTxPowerScenarioRequest
2293 {
2294 #[inline]
2295 unsafe fn encode(
2296 self,
2297 encoder: &mut fidl::encoding::Encoder<'_, D>,
2298 offset: usize,
2299 _depth: fidl::encoding::Depth,
2300 ) -> fidl::Result<()> {
2301 encoder.debug_check_bounds::<WifiChipSelectTxPowerScenarioRequest>(offset);
2302 fidl::encoding::Encode::<WifiChipSelectTxPowerScenarioRequest, D>::encode(
2304 (<WifiChipTxPowerScenario as fidl::encoding::ValueTypeMarker>::borrow(
2305 &self.scenario,
2306 ),),
2307 encoder,
2308 offset,
2309 _depth,
2310 )
2311 }
2312 }
2313 unsafe impl<
2314 D: fidl::encoding::ResourceDialect,
2315 T0: fidl::encoding::Encode<WifiChipTxPowerScenario, D>,
2316 > fidl::encoding::Encode<WifiChipSelectTxPowerScenarioRequest, D> for (T0,)
2317 {
2318 #[inline]
2319 unsafe fn encode(
2320 self,
2321 encoder: &mut fidl::encoding::Encoder<'_, D>,
2322 offset: usize,
2323 depth: fidl::encoding::Depth,
2324 ) -> fidl::Result<()> {
2325 encoder.debug_check_bounds::<WifiChipSelectTxPowerScenarioRequest>(offset);
2326 self.0.encode(encoder, offset + 0, depth)?;
2330 Ok(())
2331 }
2332 }
2333
2334 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2335 for WifiChipSelectTxPowerScenarioRequest
2336 {
2337 #[inline(always)]
2338 fn new_empty() -> Self {
2339 Self { scenario: fidl::new_empty!(WifiChipTxPowerScenario, D) }
2340 }
2341
2342 #[inline]
2343 unsafe fn decode(
2344 &mut self,
2345 decoder: &mut fidl::encoding::Decoder<'_, D>,
2346 offset: usize,
2347 _depth: fidl::encoding::Depth,
2348 ) -> fidl::Result<()> {
2349 decoder.debug_check_bounds::<Self>(offset);
2350 fidl::decode!(
2352 WifiChipTxPowerScenario,
2353 D,
2354 &mut self.scenario,
2355 decoder,
2356 offset + 0,
2357 _depth
2358 )?;
2359 Ok(())
2360 }
2361 }
2362
2363 impl ChipConcurrencyCombination {
2364 #[inline(always)]
2365 fn max_ordinal_present(&self) -> u64 {
2366 if let Some(_) = self.limits {
2367 return 1;
2368 }
2369 0
2370 }
2371 }
2372
2373 impl fidl::encoding::ValueTypeMarker for ChipConcurrencyCombination {
2374 type Borrowed<'a> = &'a Self;
2375 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2376 value
2377 }
2378 }
2379
2380 unsafe impl fidl::encoding::TypeMarker for ChipConcurrencyCombination {
2381 type Owned = Self;
2382
2383 #[inline(always)]
2384 fn inline_align(_context: fidl::encoding::Context) -> usize {
2385 8
2386 }
2387
2388 #[inline(always)]
2389 fn inline_size(_context: fidl::encoding::Context) -> usize {
2390 16
2391 }
2392 }
2393
2394 unsafe impl<D: fidl::encoding::ResourceDialect>
2395 fidl::encoding::Encode<ChipConcurrencyCombination, D> for &ChipConcurrencyCombination
2396 {
2397 unsafe fn encode(
2398 self,
2399 encoder: &mut fidl::encoding::Encoder<'_, D>,
2400 offset: usize,
2401 mut depth: fidl::encoding::Depth,
2402 ) -> fidl::Result<()> {
2403 encoder.debug_check_bounds::<ChipConcurrencyCombination>(offset);
2404 let max_ordinal: u64 = self.max_ordinal_present();
2406 encoder.write_num(max_ordinal, offset);
2407 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
2408 if max_ordinal == 0 {
2410 return Ok(());
2411 }
2412 depth.increment()?;
2413 let envelope_size = 8;
2414 let bytes_len = max_ordinal as usize * envelope_size;
2415 #[allow(unused_variables)]
2416 let offset = encoder.out_of_line_offset(bytes_len);
2417 let mut _prev_end_offset: usize = 0;
2418 if 1 > max_ordinal {
2419 return Ok(());
2420 }
2421
2422 let cur_offset: usize = (1 - 1) * envelope_size;
2425
2426 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2428
2429 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<ChipConcurrencyCombinationLimit>, D>(
2434 self.limits.as_ref().map(<fidl::encoding::UnboundedVector<ChipConcurrencyCombinationLimit> as fidl::encoding::ValueTypeMarker>::borrow),
2435 encoder, offset + cur_offset, depth
2436 )?;
2437
2438 _prev_end_offset = cur_offset + envelope_size;
2439
2440 Ok(())
2441 }
2442 }
2443
2444 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2445 for ChipConcurrencyCombination
2446 {
2447 #[inline(always)]
2448 fn new_empty() -> Self {
2449 Self::default()
2450 }
2451
2452 unsafe fn decode(
2453 &mut self,
2454 decoder: &mut fidl::encoding::Decoder<'_, D>,
2455 offset: usize,
2456 mut depth: fidl::encoding::Depth,
2457 ) -> fidl::Result<()> {
2458 decoder.debug_check_bounds::<Self>(offset);
2459 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
2460 None => return Err(fidl::Error::NotNullable),
2461 Some(len) => len,
2462 };
2463 if len == 0 {
2465 return Ok(());
2466 };
2467 depth.increment()?;
2468 let envelope_size = 8;
2469 let bytes_len = len * envelope_size;
2470 let offset = decoder.out_of_line_offset(bytes_len)?;
2471 let mut _next_ordinal_to_read = 0;
2473 let mut next_offset = offset;
2474 let end_offset = offset + bytes_len;
2475 _next_ordinal_to_read += 1;
2476 if next_offset >= end_offset {
2477 return Ok(());
2478 }
2479
2480 while _next_ordinal_to_read < 1 {
2482 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2483 _next_ordinal_to_read += 1;
2484 next_offset += envelope_size;
2485 }
2486
2487 let next_out_of_line = decoder.next_out_of_line();
2488 let handles_before = decoder.remaining_handles();
2489 if let Some((inlined, num_bytes, num_handles)) =
2490 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2491 {
2492 let member_inline_size = <fidl::encoding::UnboundedVector<
2493 ChipConcurrencyCombinationLimit,
2494 > as fidl::encoding::TypeMarker>::inline_size(
2495 decoder.context
2496 );
2497 if inlined != (member_inline_size <= 4) {
2498 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2499 }
2500 let inner_offset;
2501 let mut inner_depth = depth.clone();
2502 if inlined {
2503 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2504 inner_offset = next_offset;
2505 } else {
2506 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2507 inner_depth.increment()?;
2508 }
2509 let val_ref = self.limits.get_or_insert_with(|| {
2510 fidl::new_empty!(
2511 fidl::encoding::UnboundedVector<ChipConcurrencyCombinationLimit>,
2512 D
2513 )
2514 });
2515 fidl::decode!(
2516 fidl::encoding::UnboundedVector<ChipConcurrencyCombinationLimit>,
2517 D,
2518 val_ref,
2519 decoder,
2520 inner_offset,
2521 inner_depth
2522 )?;
2523 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2524 {
2525 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2526 }
2527 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2528 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2529 }
2530 }
2531
2532 next_offset += envelope_size;
2533
2534 while next_offset < end_offset {
2536 _next_ordinal_to_read += 1;
2537 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2538 next_offset += envelope_size;
2539 }
2540
2541 Ok(())
2542 }
2543 }
2544
2545 impl ChipConcurrencyCombinationLimit {
2546 #[inline(always)]
2547 fn max_ordinal_present(&self) -> u64 {
2548 if let Some(_) = self.max_ifaces {
2549 return 2;
2550 }
2551 if let Some(_) = self.types {
2552 return 1;
2553 }
2554 0
2555 }
2556 }
2557
2558 impl fidl::encoding::ValueTypeMarker for ChipConcurrencyCombinationLimit {
2559 type Borrowed<'a> = &'a Self;
2560 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2561 value
2562 }
2563 }
2564
2565 unsafe impl fidl::encoding::TypeMarker for ChipConcurrencyCombinationLimit {
2566 type Owned = Self;
2567
2568 #[inline(always)]
2569 fn inline_align(_context: fidl::encoding::Context) -> usize {
2570 8
2571 }
2572
2573 #[inline(always)]
2574 fn inline_size(_context: fidl::encoding::Context) -> usize {
2575 16
2576 }
2577 }
2578
2579 unsafe impl<D: fidl::encoding::ResourceDialect>
2580 fidl::encoding::Encode<ChipConcurrencyCombinationLimit, D>
2581 for &ChipConcurrencyCombinationLimit
2582 {
2583 unsafe fn encode(
2584 self,
2585 encoder: &mut fidl::encoding::Encoder<'_, D>,
2586 offset: usize,
2587 mut depth: fidl::encoding::Depth,
2588 ) -> fidl::Result<()> {
2589 encoder.debug_check_bounds::<ChipConcurrencyCombinationLimit>(offset);
2590 let max_ordinal: u64 = self.max_ordinal_present();
2592 encoder.write_num(max_ordinal, offset);
2593 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
2594 if max_ordinal == 0 {
2596 return Ok(());
2597 }
2598 depth.increment()?;
2599 let envelope_size = 8;
2600 let bytes_len = max_ordinal as usize * envelope_size;
2601 #[allow(unused_variables)]
2602 let offset = encoder.out_of_line_offset(bytes_len);
2603 let mut _prev_end_offset: usize = 0;
2604 if 1 > max_ordinal {
2605 return Ok(());
2606 }
2607
2608 let cur_offset: usize = (1 - 1) * envelope_size;
2611
2612 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2614
2615 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<IfaceConcurrencyType>, D>(
2620 self.types.as_ref().map(<fidl::encoding::UnboundedVector<IfaceConcurrencyType> as fidl::encoding::ValueTypeMarker>::borrow),
2621 encoder, offset + cur_offset, depth
2622 )?;
2623
2624 _prev_end_offset = cur_offset + envelope_size;
2625 if 2 > max_ordinal {
2626 return Ok(());
2627 }
2628
2629 let cur_offset: usize = (2 - 1) * envelope_size;
2632
2633 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2635
2636 fidl::encoding::encode_in_envelope_optional::<u32, D>(
2641 self.max_ifaces.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
2642 encoder,
2643 offset + cur_offset,
2644 depth,
2645 )?;
2646
2647 _prev_end_offset = cur_offset + envelope_size;
2648
2649 Ok(())
2650 }
2651 }
2652
2653 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2654 for ChipConcurrencyCombinationLimit
2655 {
2656 #[inline(always)]
2657 fn new_empty() -> Self {
2658 Self::default()
2659 }
2660
2661 unsafe fn decode(
2662 &mut self,
2663 decoder: &mut fidl::encoding::Decoder<'_, D>,
2664 offset: usize,
2665 mut depth: fidl::encoding::Depth,
2666 ) -> fidl::Result<()> {
2667 decoder.debug_check_bounds::<Self>(offset);
2668 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
2669 None => return Err(fidl::Error::NotNullable),
2670 Some(len) => len,
2671 };
2672 if len == 0 {
2674 return Ok(());
2675 };
2676 depth.increment()?;
2677 let envelope_size = 8;
2678 let bytes_len = len * envelope_size;
2679 let offset = decoder.out_of_line_offset(bytes_len)?;
2680 let mut _next_ordinal_to_read = 0;
2682 let mut next_offset = offset;
2683 let end_offset = offset + bytes_len;
2684 _next_ordinal_to_read += 1;
2685 if next_offset >= end_offset {
2686 return Ok(());
2687 }
2688
2689 while _next_ordinal_to_read < 1 {
2691 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2692 _next_ordinal_to_read += 1;
2693 next_offset += envelope_size;
2694 }
2695
2696 let next_out_of_line = decoder.next_out_of_line();
2697 let handles_before = decoder.remaining_handles();
2698 if let Some((inlined, num_bytes, num_handles)) =
2699 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2700 {
2701 let member_inline_size = <fidl::encoding::UnboundedVector<IfaceConcurrencyType> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2702 if inlined != (member_inline_size <= 4) {
2703 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2704 }
2705 let inner_offset;
2706 let mut inner_depth = depth.clone();
2707 if inlined {
2708 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2709 inner_offset = next_offset;
2710 } else {
2711 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2712 inner_depth.increment()?;
2713 }
2714 let val_ref = self.types.get_or_insert_with(|| {
2715 fidl::new_empty!(fidl::encoding::UnboundedVector<IfaceConcurrencyType>, D)
2716 });
2717 fidl::decode!(
2718 fidl::encoding::UnboundedVector<IfaceConcurrencyType>,
2719 D,
2720 val_ref,
2721 decoder,
2722 inner_offset,
2723 inner_depth
2724 )?;
2725 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2726 {
2727 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2728 }
2729 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2730 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2731 }
2732 }
2733
2734 next_offset += envelope_size;
2735 _next_ordinal_to_read += 1;
2736 if next_offset >= end_offset {
2737 return Ok(());
2738 }
2739
2740 while _next_ordinal_to_read < 2 {
2742 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2743 _next_ordinal_to_read += 1;
2744 next_offset += envelope_size;
2745 }
2746
2747 let next_out_of_line = decoder.next_out_of_line();
2748 let handles_before = decoder.remaining_handles();
2749 if let Some((inlined, num_bytes, num_handles)) =
2750 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2751 {
2752 let member_inline_size =
2753 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2754 if inlined != (member_inline_size <= 4) {
2755 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2756 }
2757 let inner_offset;
2758 let mut inner_depth = depth.clone();
2759 if inlined {
2760 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2761 inner_offset = next_offset;
2762 } else {
2763 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2764 inner_depth.increment()?;
2765 }
2766 let val_ref = self.max_ifaces.get_or_insert_with(|| fidl::new_empty!(u32, D));
2767 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
2768 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2769 {
2770 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2771 }
2772 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2773 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2774 }
2775 }
2776
2777 next_offset += envelope_size;
2778
2779 while next_offset < end_offset {
2781 _next_ordinal_to_read += 1;
2782 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2783 next_offset += envelope_size;
2784 }
2785
2786 Ok(())
2787 }
2788 }
2789
2790 impl ChipMode {
2791 #[inline(always)]
2792 fn max_ordinal_present(&self) -> u64 {
2793 if let Some(_) = self.available_combinations {
2794 return 2;
2795 }
2796 if let Some(_) = self.id {
2797 return 1;
2798 }
2799 0
2800 }
2801 }
2802
2803 impl fidl::encoding::ValueTypeMarker for ChipMode {
2804 type Borrowed<'a> = &'a Self;
2805 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2806 value
2807 }
2808 }
2809
2810 unsafe impl fidl::encoding::TypeMarker for ChipMode {
2811 type Owned = Self;
2812
2813 #[inline(always)]
2814 fn inline_align(_context: fidl::encoding::Context) -> usize {
2815 8
2816 }
2817
2818 #[inline(always)]
2819 fn inline_size(_context: fidl::encoding::Context) -> usize {
2820 16
2821 }
2822 }
2823
2824 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<ChipMode, D> for &ChipMode {
2825 unsafe fn encode(
2826 self,
2827 encoder: &mut fidl::encoding::Encoder<'_, D>,
2828 offset: usize,
2829 mut depth: fidl::encoding::Depth,
2830 ) -> fidl::Result<()> {
2831 encoder.debug_check_bounds::<ChipMode>(offset);
2832 let max_ordinal: u64 = self.max_ordinal_present();
2834 encoder.write_num(max_ordinal, offset);
2835 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
2836 if max_ordinal == 0 {
2838 return Ok(());
2839 }
2840 depth.increment()?;
2841 let envelope_size = 8;
2842 let bytes_len = max_ordinal as usize * envelope_size;
2843 #[allow(unused_variables)]
2844 let offset = encoder.out_of_line_offset(bytes_len);
2845 let mut _prev_end_offset: usize = 0;
2846 if 1 > max_ordinal {
2847 return Ok(());
2848 }
2849
2850 let cur_offset: usize = (1 - 1) * envelope_size;
2853
2854 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2856
2857 fidl::encoding::encode_in_envelope_optional::<u32, D>(
2862 self.id.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
2863 encoder,
2864 offset + cur_offset,
2865 depth,
2866 )?;
2867
2868 _prev_end_offset = cur_offset + envelope_size;
2869 if 2 > max_ordinal {
2870 return Ok(());
2871 }
2872
2873 let cur_offset: usize = (2 - 1) * envelope_size;
2876
2877 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2879
2880 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<ChipConcurrencyCombination>, D>(
2885 self.available_combinations.as_ref().map(<fidl::encoding::UnboundedVector<ChipConcurrencyCombination> as fidl::encoding::ValueTypeMarker>::borrow),
2886 encoder, offset + cur_offset, depth
2887 )?;
2888
2889 _prev_end_offset = cur_offset + envelope_size;
2890
2891 Ok(())
2892 }
2893 }
2894
2895 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ChipMode {
2896 #[inline(always)]
2897 fn new_empty() -> Self {
2898 Self::default()
2899 }
2900
2901 unsafe fn decode(
2902 &mut self,
2903 decoder: &mut fidl::encoding::Decoder<'_, D>,
2904 offset: usize,
2905 mut depth: fidl::encoding::Depth,
2906 ) -> fidl::Result<()> {
2907 decoder.debug_check_bounds::<Self>(offset);
2908 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
2909 None => return Err(fidl::Error::NotNullable),
2910 Some(len) => len,
2911 };
2912 if len == 0 {
2914 return Ok(());
2915 };
2916 depth.increment()?;
2917 let envelope_size = 8;
2918 let bytes_len = len * envelope_size;
2919 let offset = decoder.out_of_line_offset(bytes_len)?;
2920 let mut _next_ordinal_to_read = 0;
2922 let mut next_offset = offset;
2923 let end_offset = offset + bytes_len;
2924 _next_ordinal_to_read += 1;
2925 if next_offset >= end_offset {
2926 return Ok(());
2927 }
2928
2929 while _next_ordinal_to_read < 1 {
2931 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2932 _next_ordinal_to_read += 1;
2933 next_offset += envelope_size;
2934 }
2935
2936 let next_out_of_line = decoder.next_out_of_line();
2937 let handles_before = decoder.remaining_handles();
2938 if let Some((inlined, num_bytes, num_handles)) =
2939 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2940 {
2941 let member_inline_size =
2942 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2943 if inlined != (member_inline_size <= 4) {
2944 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2945 }
2946 let inner_offset;
2947 let mut inner_depth = depth.clone();
2948 if inlined {
2949 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2950 inner_offset = next_offset;
2951 } else {
2952 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2953 inner_depth.increment()?;
2954 }
2955 let val_ref = self.id.get_or_insert_with(|| fidl::new_empty!(u32, D));
2956 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
2957 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2958 {
2959 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2960 }
2961 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2962 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2963 }
2964 }
2965
2966 next_offset += envelope_size;
2967 _next_ordinal_to_read += 1;
2968 if next_offset >= end_offset {
2969 return Ok(());
2970 }
2971
2972 while _next_ordinal_to_read < 2 {
2974 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2975 _next_ordinal_to_read += 1;
2976 next_offset += envelope_size;
2977 }
2978
2979 let next_out_of_line = decoder.next_out_of_line();
2980 let handles_before = decoder.remaining_handles();
2981 if let Some((inlined, num_bytes, num_handles)) =
2982 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2983 {
2984 let member_inline_size = <fidl::encoding::UnboundedVector<
2985 ChipConcurrencyCombination,
2986 > as fidl::encoding::TypeMarker>::inline_size(
2987 decoder.context
2988 );
2989 if inlined != (member_inline_size <= 4) {
2990 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2991 }
2992 let inner_offset;
2993 let mut inner_depth = depth.clone();
2994 if inlined {
2995 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2996 inner_offset = next_offset;
2997 } else {
2998 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2999 inner_depth.increment()?;
3000 }
3001 let val_ref = self.available_combinations.get_or_insert_with(|| {
3002 fidl::new_empty!(fidl::encoding::UnboundedVector<ChipConcurrencyCombination>, D)
3003 });
3004 fidl::decode!(
3005 fidl::encoding::UnboundedVector<ChipConcurrencyCombination>,
3006 D,
3007 val_ref,
3008 decoder,
3009 inner_offset,
3010 inner_depth
3011 )?;
3012 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3013 {
3014 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3015 }
3016 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3017 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3018 }
3019 }
3020
3021 next_offset += envelope_size;
3022
3023 while next_offset < end_offset {
3025 _next_ordinal_to_read += 1;
3026 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3027 next_offset += envelope_size;
3028 }
3029
3030 Ok(())
3031 }
3032 }
3033
3034 impl SchedScanMatchSet {
3035 #[inline(always)]
3036 fn max_ordinal_present(&self) -> u64 {
3037 if let Some(_) = self.rssi_adjust {
3038 return 5;
3039 }
3040 if let Some(_) = self.relative_rssi {
3041 return 4;
3042 }
3043 if let Some(_) = self.rssi_threshold {
3044 return 3;
3045 }
3046 if let Some(_) = self.bssid {
3047 return 2;
3048 }
3049 if let Some(_) = self.ssid {
3050 return 1;
3051 }
3052 0
3053 }
3054 }
3055
3056 impl fidl::encoding::ValueTypeMarker for SchedScanMatchSet {
3057 type Borrowed<'a> = &'a Self;
3058 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3059 value
3060 }
3061 }
3062
3063 unsafe impl fidl::encoding::TypeMarker for SchedScanMatchSet {
3064 type Owned = Self;
3065
3066 #[inline(always)]
3067 fn inline_align(_context: fidl::encoding::Context) -> usize {
3068 8
3069 }
3070
3071 #[inline(always)]
3072 fn inline_size(_context: fidl::encoding::Context) -> usize {
3073 16
3074 }
3075 }
3076
3077 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<SchedScanMatchSet, D>
3078 for &SchedScanMatchSet
3079 {
3080 unsafe fn encode(
3081 self,
3082 encoder: &mut fidl::encoding::Encoder<'_, D>,
3083 offset: usize,
3084 mut depth: fidl::encoding::Depth,
3085 ) -> fidl::Result<()> {
3086 encoder.debug_check_bounds::<SchedScanMatchSet>(offset);
3087 let max_ordinal: u64 = self.max_ordinal_present();
3089 encoder.write_num(max_ordinal, offset);
3090 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
3091 if max_ordinal == 0 {
3093 return Ok(());
3094 }
3095 depth.increment()?;
3096 let envelope_size = 8;
3097 let bytes_len = max_ordinal as usize * envelope_size;
3098 #[allow(unused_variables)]
3099 let offset = encoder.out_of_line_offset(bytes_len);
3100 let mut _prev_end_offset: usize = 0;
3101 if 1 > max_ordinal {
3102 return Ok(());
3103 }
3104
3105 let cur_offset: usize = (1 - 1) * envelope_size;
3108
3109 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3111
3112 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<u8, 32>, D>(
3117 self.ssid.as_ref().map(
3118 <fidl::encoding::Vector<u8, 32> as fidl::encoding::ValueTypeMarker>::borrow,
3119 ),
3120 encoder,
3121 offset + cur_offset,
3122 depth,
3123 )?;
3124
3125 _prev_end_offset = cur_offset + envelope_size;
3126 if 2 > max_ordinal {
3127 return Ok(());
3128 }
3129
3130 let cur_offset: usize = (2 - 1) * envelope_size;
3133
3134 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3136
3137 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
3142 self.bssid
3143 .as_ref()
3144 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
3145 encoder,
3146 offset + cur_offset,
3147 depth,
3148 )?;
3149
3150 _prev_end_offset = cur_offset + envelope_size;
3151 if 3 > max_ordinal {
3152 return Ok(());
3153 }
3154
3155 let cur_offset: usize = (3 - 1) * envelope_size;
3158
3159 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3161
3162 fidl::encoding::encode_in_envelope_optional::<i8, D>(
3167 self.rssi_threshold.as_ref().map(<i8 as fidl::encoding::ValueTypeMarker>::borrow),
3168 encoder,
3169 offset + cur_offset,
3170 depth,
3171 )?;
3172
3173 _prev_end_offset = cur_offset + envelope_size;
3174 if 4 > max_ordinal {
3175 return Ok(());
3176 }
3177
3178 let cur_offset: usize = (4 - 1) * envelope_size;
3181
3182 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3184
3185 fidl::encoding::encode_in_envelope_optional::<i8, D>(
3190 self.relative_rssi.as_ref().map(<i8 as fidl::encoding::ValueTypeMarker>::borrow),
3191 encoder,
3192 offset + cur_offset,
3193 depth,
3194 )?;
3195
3196 _prev_end_offset = cur_offset + envelope_size;
3197 if 5 > max_ordinal {
3198 return Ok(());
3199 }
3200
3201 let cur_offset: usize = (5 - 1) * envelope_size;
3204
3205 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3207
3208 fidl::encoding::encode_in_envelope_optional::<i8, D>(
3213 self.rssi_adjust.as_ref().map(<i8 as fidl::encoding::ValueTypeMarker>::borrow),
3214 encoder,
3215 offset + cur_offset,
3216 depth,
3217 )?;
3218
3219 _prev_end_offset = cur_offset + envelope_size;
3220
3221 Ok(())
3222 }
3223 }
3224
3225 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for SchedScanMatchSet {
3226 #[inline(always)]
3227 fn new_empty() -> Self {
3228 Self::default()
3229 }
3230
3231 unsafe fn decode(
3232 &mut self,
3233 decoder: &mut fidl::encoding::Decoder<'_, D>,
3234 offset: usize,
3235 mut depth: fidl::encoding::Depth,
3236 ) -> fidl::Result<()> {
3237 decoder.debug_check_bounds::<Self>(offset);
3238 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
3239 None => return Err(fidl::Error::NotNullable),
3240 Some(len) => len,
3241 };
3242 if len == 0 {
3244 return Ok(());
3245 };
3246 depth.increment()?;
3247 let envelope_size = 8;
3248 let bytes_len = len * envelope_size;
3249 let offset = decoder.out_of_line_offset(bytes_len)?;
3250 let mut _next_ordinal_to_read = 0;
3252 let mut next_offset = offset;
3253 let end_offset = offset + bytes_len;
3254 _next_ordinal_to_read += 1;
3255 if next_offset >= end_offset {
3256 return Ok(());
3257 }
3258
3259 while _next_ordinal_to_read < 1 {
3261 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3262 _next_ordinal_to_read += 1;
3263 next_offset += envelope_size;
3264 }
3265
3266 let next_out_of_line = decoder.next_out_of_line();
3267 let handles_before = decoder.remaining_handles();
3268 if let Some((inlined, num_bytes, num_handles)) =
3269 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3270 {
3271 let member_inline_size =
3272 <fidl::encoding::Vector<u8, 32> as fidl::encoding::TypeMarker>::inline_size(
3273 decoder.context,
3274 );
3275 if inlined != (member_inline_size <= 4) {
3276 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3277 }
3278 let inner_offset;
3279 let mut inner_depth = depth.clone();
3280 if inlined {
3281 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3282 inner_offset = next_offset;
3283 } else {
3284 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3285 inner_depth.increment()?;
3286 }
3287 let val_ref = self
3288 .ssid
3289 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<u8, 32>, D));
3290 fidl::decode!(fidl::encoding::Vector<u8, 32>, D, val_ref, decoder, inner_offset, inner_depth)?;
3291 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3292 {
3293 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3294 }
3295 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3296 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3297 }
3298 }
3299
3300 next_offset += envelope_size;
3301 _next_ordinal_to_read += 1;
3302 if next_offset >= end_offset {
3303 return Ok(());
3304 }
3305
3306 while _next_ordinal_to_read < 2 {
3308 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3309 _next_ordinal_to_read += 1;
3310 next_offset += envelope_size;
3311 }
3312
3313 let next_out_of_line = decoder.next_out_of_line();
3314 let handles_before = decoder.remaining_handles();
3315 if let Some((inlined, num_bytes, num_handles)) =
3316 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3317 {
3318 let member_inline_size =
3319 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
3320 decoder.context,
3321 );
3322 if inlined != (member_inline_size <= 4) {
3323 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3324 }
3325 let inner_offset;
3326 let mut inner_depth = depth.clone();
3327 if inlined {
3328 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3329 inner_offset = next_offset;
3330 } else {
3331 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3332 inner_depth.increment()?;
3333 }
3334 let val_ref = self
3335 .bssid
3336 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
3337 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
3338 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3339 {
3340 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3341 }
3342 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3343 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3344 }
3345 }
3346
3347 next_offset += envelope_size;
3348 _next_ordinal_to_read += 1;
3349 if next_offset >= end_offset {
3350 return Ok(());
3351 }
3352
3353 while _next_ordinal_to_read < 3 {
3355 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3356 _next_ordinal_to_read += 1;
3357 next_offset += envelope_size;
3358 }
3359
3360 let next_out_of_line = decoder.next_out_of_line();
3361 let handles_before = decoder.remaining_handles();
3362 if let Some((inlined, num_bytes, num_handles)) =
3363 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3364 {
3365 let member_inline_size =
3366 <i8 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3367 if inlined != (member_inline_size <= 4) {
3368 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3369 }
3370 let inner_offset;
3371 let mut inner_depth = depth.clone();
3372 if inlined {
3373 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3374 inner_offset = next_offset;
3375 } else {
3376 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3377 inner_depth.increment()?;
3378 }
3379 let val_ref = self.rssi_threshold.get_or_insert_with(|| fidl::new_empty!(i8, D));
3380 fidl::decode!(i8, D, val_ref, decoder, inner_offset, inner_depth)?;
3381 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3382 {
3383 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3384 }
3385 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3386 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3387 }
3388 }
3389
3390 next_offset += envelope_size;
3391 _next_ordinal_to_read += 1;
3392 if next_offset >= end_offset {
3393 return Ok(());
3394 }
3395
3396 while _next_ordinal_to_read < 4 {
3398 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3399 _next_ordinal_to_read += 1;
3400 next_offset += envelope_size;
3401 }
3402
3403 let next_out_of_line = decoder.next_out_of_line();
3404 let handles_before = decoder.remaining_handles();
3405 if let Some((inlined, num_bytes, num_handles)) =
3406 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3407 {
3408 let member_inline_size =
3409 <i8 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3410 if inlined != (member_inline_size <= 4) {
3411 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3412 }
3413 let inner_offset;
3414 let mut inner_depth = depth.clone();
3415 if inlined {
3416 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3417 inner_offset = next_offset;
3418 } else {
3419 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3420 inner_depth.increment()?;
3421 }
3422 let val_ref = self.relative_rssi.get_or_insert_with(|| fidl::new_empty!(i8, D));
3423 fidl::decode!(i8, D, val_ref, decoder, inner_offset, inner_depth)?;
3424 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3425 {
3426 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3427 }
3428 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3429 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3430 }
3431 }
3432
3433 next_offset += envelope_size;
3434 _next_ordinal_to_read += 1;
3435 if next_offset >= end_offset {
3436 return Ok(());
3437 }
3438
3439 while _next_ordinal_to_read < 5 {
3441 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3442 _next_ordinal_to_read += 1;
3443 next_offset += envelope_size;
3444 }
3445
3446 let next_out_of_line = decoder.next_out_of_line();
3447 let handles_before = decoder.remaining_handles();
3448 if let Some((inlined, num_bytes, num_handles)) =
3449 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3450 {
3451 let member_inline_size =
3452 <i8 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3453 if inlined != (member_inline_size <= 4) {
3454 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3455 }
3456 let inner_offset;
3457 let mut inner_depth = depth.clone();
3458 if inlined {
3459 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3460 inner_offset = next_offset;
3461 } else {
3462 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3463 inner_depth.increment()?;
3464 }
3465 let val_ref = self.rssi_adjust.get_or_insert_with(|| fidl::new_empty!(i8, D));
3466 fidl::decode!(i8, D, val_ref, decoder, inner_offset, inner_depth)?;
3467 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3468 {
3469 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3470 }
3471 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3472 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3473 }
3474 }
3475
3476 next_offset += envelope_size;
3477
3478 while next_offset < end_offset {
3480 _next_ordinal_to_read += 1;
3481 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3482 next_offset += envelope_size;
3483 }
3484
3485 Ok(())
3486 }
3487 }
3488
3489 impl SchedScanRequest {
3490 #[inline(always)]
3491 fn max_ordinal_present(&self) -> u64 {
3492 if let Some(_) = self.rssi_adjust {
3493 return 9;
3494 }
3495 if let Some(_) = self.relative_rssi {
3496 return 8;
3497 }
3498 if let Some(_) = self.ie {
3499 return 7;
3500 }
3501 if let Some(_) = self.sched_scan_delay {
3502 return 6;
3503 }
3504 if let Some(_) = self.sched_scan_multi {
3505 return 5;
3506 }
3507 if let Some(_) = self.scan_plans {
3508 return 4;
3509 }
3510 if let Some(_) = self.frequencies {
3511 return 3;
3512 }
3513 if let Some(_) = self.match_sets {
3514 return 2;
3515 }
3516 if let Some(_) = self.ssids {
3517 return 1;
3518 }
3519 0
3520 }
3521 }
3522
3523 impl fidl::encoding::ValueTypeMarker for SchedScanRequest {
3524 type Borrowed<'a> = &'a Self;
3525 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3526 value
3527 }
3528 }
3529
3530 unsafe impl fidl::encoding::TypeMarker for SchedScanRequest {
3531 type Owned = Self;
3532
3533 #[inline(always)]
3534 fn inline_align(_context: fidl::encoding::Context) -> usize {
3535 8
3536 }
3537
3538 #[inline(always)]
3539 fn inline_size(_context: fidl::encoding::Context) -> usize {
3540 16
3541 }
3542 }
3543
3544 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<SchedScanRequest, D>
3545 for &SchedScanRequest
3546 {
3547 unsafe fn encode(
3548 self,
3549 encoder: &mut fidl::encoding::Encoder<'_, D>,
3550 offset: usize,
3551 mut depth: fidl::encoding::Depth,
3552 ) -> fidl::Result<()> {
3553 encoder.debug_check_bounds::<SchedScanRequest>(offset);
3554 let max_ordinal: u64 = self.max_ordinal_present();
3556 encoder.write_num(max_ordinal, offset);
3557 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
3558 if max_ordinal == 0 {
3560 return Ok(());
3561 }
3562 depth.increment()?;
3563 let envelope_size = 8;
3564 let bytes_len = max_ordinal as usize * envelope_size;
3565 #[allow(unused_variables)]
3566 let offset = encoder.out_of_line_offset(bytes_len);
3567 let mut _prev_end_offset: usize = 0;
3568 if 1 > max_ordinal {
3569 return Ok(());
3570 }
3571
3572 let cur_offset: usize = (1 - 1) * envelope_size;
3575
3576 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3578
3579 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<fidl::encoding::Vector<u8, 32>>, D>(
3584 self.ssids.as_ref().map(<fidl::encoding::UnboundedVector<fidl::encoding::Vector<u8, 32>> as fidl::encoding::ValueTypeMarker>::borrow),
3585 encoder, offset + cur_offset, depth
3586 )?;
3587
3588 _prev_end_offset = cur_offset + envelope_size;
3589 if 2 > max_ordinal {
3590 return Ok(());
3591 }
3592
3593 let cur_offset: usize = (2 - 1) * envelope_size;
3596
3597 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3599
3600 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<SchedScanMatchSet>, D>(
3605 self.match_sets.as_ref().map(<fidl::encoding::UnboundedVector<SchedScanMatchSet> as fidl::encoding::ValueTypeMarker>::borrow),
3606 encoder, offset + cur_offset, depth
3607 )?;
3608
3609 _prev_end_offset = cur_offset + envelope_size;
3610 if 3 > max_ordinal {
3611 return Ok(());
3612 }
3613
3614 let cur_offset: usize = (3 - 1) * envelope_size;
3617
3618 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3620
3621 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<u32>, D>(
3626 self.frequencies.as_ref().map(<fidl::encoding::UnboundedVector<u32> as fidl::encoding::ValueTypeMarker>::borrow),
3627 encoder, offset + cur_offset, depth
3628 )?;
3629
3630 _prev_end_offset = cur_offset + envelope_size;
3631 if 4 > max_ordinal {
3632 return Ok(());
3633 }
3634
3635 let cur_offset: usize = (4 - 1) * envelope_size;
3638
3639 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3641
3642 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<SchedScanPlan>, D>(
3647 self.scan_plans.as_ref().map(<fidl::encoding::UnboundedVector<SchedScanPlan> as fidl::encoding::ValueTypeMarker>::borrow),
3648 encoder, offset + cur_offset, depth
3649 )?;
3650
3651 _prev_end_offset = cur_offset + envelope_size;
3652 if 5 > max_ordinal {
3653 return Ok(());
3654 }
3655
3656 let cur_offset: usize = (5 - 1) * envelope_size;
3659
3660 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3662
3663 fidl::encoding::encode_in_envelope_optional::<bool, D>(
3668 self.sched_scan_multi
3669 .as_ref()
3670 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
3671 encoder,
3672 offset + cur_offset,
3673 depth,
3674 )?;
3675
3676 _prev_end_offset = cur_offset + envelope_size;
3677 if 6 > max_ordinal {
3678 return Ok(());
3679 }
3680
3681 let cur_offset: usize = (6 - 1) * envelope_size;
3684
3685 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3687
3688 fidl::encoding::encode_in_envelope_optional::<u32, D>(
3693 self.sched_scan_delay
3694 .as_ref()
3695 .map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
3696 encoder,
3697 offset + cur_offset,
3698 depth,
3699 )?;
3700
3701 _prev_end_offset = cur_offset + envelope_size;
3702 if 7 > max_ordinal {
3703 return Ok(());
3704 }
3705
3706 let cur_offset: usize = (7 - 1) * envelope_size;
3709
3710 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3712
3713 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<u8>, D>(
3718 self.ie.as_ref().map(<fidl::encoding::UnboundedVector<u8> as fidl::encoding::ValueTypeMarker>::borrow),
3719 encoder, offset + cur_offset, depth
3720 )?;
3721
3722 _prev_end_offset = cur_offset + envelope_size;
3723 if 8 > max_ordinal {
3724 return Ok(());
3725 }
3726
3727 let cur_offset: usize = (8 - 1) * envelope_size;
3730
3731 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3733
3734 fidl::encoding::encode_in_envelope_optional::<i8, D>(
3739 self.relative_rssi.as_ref().map(<i8 as fidl::encoding::ValueTypeMarker>::borrow),
3740 encoder,
3741 offset + cur_offset,
3742 depth,
3743 )?;
3744
3745 _prev_end_offset = cur_offset + envelope_size;
3746 if 9 > max_ordinal {
3747 return Ok(());
3748 }
3749
3750 let cur_offset: usize = (9 - 1) * envelope_size;
3753
3754 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3756
3757 fidl::encoding::encode_in_envelope_optional::<i8, D>(
3762 self.rssi_adjust.as_ref().map(<i8 as fidl::encoding::ValueTypeMarker>::borrow),
3763 encoder,
3764 offset + cur_offset,
3765 depth,
3766 )?;
3767
3768 _prev_end_offset = cur_offset + envelope_size;
3769
3770 Ok(())
3771 }
3772 }
3773
3774 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for SchedScanRequest {
3775 #[inline(always)]
3776 fn new_empty() -> Self {
3777 Self::default()
3778 }
3779
3780 unsafe fn decode(
3781 &mut self,
3782 decoder: &mut fidl::encoding::Decoder<'_, D>,
3783 offset: usize,
3784 mut depth: fidl::encoding::Depth,
3785 ) -> fidl::Result<()> {
3786 decoder.debug_check_bounds::<Self>(offset);
3787 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
3788 None => return Err(fidl::Error::NotNullable),
3789 Some(len) => len,
3790 };
3791 if len == 0 {
3793 return Ok(());
3794 };
3795 depth.increment()?;
3796 let envelope_size = 8;
3797 let bytes_len = len * envelope_size;
3798 let offset = decoder.out_of_line_offset(bytes_len)?;
3799 let mut _next_ordinal_to_read = 0;
3801 let mut next_offset = offset;
3802 let end_offset = offset + bytes_len;
3803 _next_ordinal_to_read += 1;
3804 if next_offset >= end_offset {
3805 return Ok(());
3806 }
3807
3808 while _next_ordinal_to_read < 1 {
3810 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3811 _next_ordinal_to_read += 1;
3812 next_offset += envelope_size;
3813 }
3814
3815 let next_out_of_line = decoder.next_out_of_line();
3816 let handles_before = decoder.remaining_handles();
3817 if let Some((inlined, num_bytes, num_handles)) =
3818 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3819 {
3820 let member_inline_size = <fidl::encoding::UnboundedVector<
3821 fidl::encoding::Vector<u8, 32>,
3822 > as fidl::encoding::TypeMarker>::inline_size(
3823 decoder.context
3824 );
3825 if inlined != (member_inline_size <= 4) {
3826 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3827 }
3828 let inner_offset;
3829 let mut inner_depth = depth.clone();
3830 if inlined {
3831 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3832 inner_offset = next_offset;
3833 } else {
3834 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3835 inner_depth.increment()?;
3836 }
3837 let val_ref = self.ssids.get_or_insert_with(|| {
3838 fidl::new_empty!(
3839 fidl::encoding::UnboundedVector<fidl::encoding::Vector<u8, 32>>,
3840 D
3841 )
3842 });
3843 fidl::decode!(
3844 fidl::encoding::UnboundedVector<fidl::encoding::Vector<u8, 32>>,
3845 D,
3846 val_ref,
3847 decoder,
3848 inner_offset,
3849 inner_depth
3850 )?;
3851 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3852 {
3853 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3854 }
3855 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3856 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3857 }
3858 }
3859
3860 next_offset += envelope_size;
3861 _next_ordinal_to_read += 1;
3862 if next_offset >= end_offset {
3863 return Ok(());
3864 }
3865
3866 while _next_ordinal_to_read < 2 {
3868 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3869 _next_ordinal_to_read += 1;
3870 next_offset += envelope_size;
3871 }
3872
3873 let next_out_of_line = decoder.next_out_of_line();
3874 let handles_before = decoder.remaining_handles();
3875 if let Some((inlined, num_bytes, num_handles)) =
3876 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3877 {
3878 let member_inline_size = <fidl::encoding::UnboundedVector<SchedScanMatchSet> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3879 if inlined != (member_inline_size <= 4) {
3880 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3881 }
3882 let inner_offset;
3883 let mut inner_depth = depth.clone();
3884 if inlined {
3885 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3886 inner_offset = next_offset;
3887 } else {
3888 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3889 inner_depth.increment()?;
3890 }
3891 let val_ref = self.match_sets.get_or_insert_with(|| {
3892 fidl::new_empty!(fidl::encoding::UnboundedVector<SchedScanMatchSet>, D)
3893 });
3894 fidl::decode!(
3895 fidl::encoding::UnboundedVector<SchedScanMatchSet>,
3896 D,
3897 val_ref,
3898 decoder,
3899 inner_offset,
3900 inner_depth
3901 )?;
3902 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3903 {
3904 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3905 }
3906 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3907 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3908 }
3909 }
3910
3911 next_offset += envelope_size;
3912 _next_ordinal_to_read += 1;
3913 if next_offset >= end_offset {
3914 return Ok(());
3915 }
3916
3917 while _next_ordinal_to_read < 3 {
3919 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3920 _next_ordinal_to_read += 1;
3921 next_offset += envelope_size;
3922 }
3923
3924 let next_out_of_line = decoder.next_out_of_line();
3925 let handles_before = decoder.remaining_handles();
3926 if let Some((inlined, num_bytes, num_handles)) =
3927 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3928 {
3929 let member_inline_size = <fidl::encoding::UnboundedVector<u32> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3930 if inlined != (member_inline_size <= 4) {
3931 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3932 }
3933 let inner_offset;
3934 let mut inner_depth = depth.clone();
3935 if inlined {
3936 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3937 inner_offset = next_offset;
3938 } else {
3939 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3940 inner_depth.increment()?;
3941 }
3942 let val_ref = self.frequencies.get_or_insert_with(|| {
3943 fidl::new_empty!(fidl::encoding::UnboundedVector<u32>, D)
3944 });
3945 fidl::decode!(
3946 fidl::encoding::UnboundedVector<u32>,
3947 D,
3948 val_ref,
3949 decoder,
3950 inner_offset,
3951 inner_depth
3952 )?;
3953 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3954 {
3955 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3956 }
3957 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3958 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3959 }
3960 }
3961
3962 next_offset += envelope_size;
3963 _next_ordinal_to_read += 1;
3964 if next_offset >= end_offset {
3965 return Ok(());
3966 }
3967
3968 while _next_ordinal_to_read < 4 {
3970 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3971 _next_ordinal_to_read += 1;
3972 next_offset += envelope_size;
3973 }
3974
3975 let next_out_of_line = decoder.next_out_of_line();
3976 let handles_before = decoder.remaining_handles();
3977 if let Some((inlined, num_bytes, num_handles)) =
3978 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3979 {
3980 let member_inline_size = <fidl::encoding::UnboundedVector<SchedScanPlan> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3981 if inlined != (member_inline_size <= 4) {
3982 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3983 }
3984 let inner_offset;
3985 let mut inner_depth = depth.clone();
3986 if inlined {
3987 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3988 inner_offset = next_offset;
3989 } else {
3990 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3991 inner_depth.increment()?;
3992 }
3993 let val_ref = self.scan_plans.get_or_insert_with(|| {
3994 fidl::new_empty!(fidl::encoding::UnboundedVector<SchedScanPlan>, D)
3995 });
3996 fidl::decode!(
3997 fidl::encoding::UnboundedVector<SchedScanPlan>,
3998 D,
3999 val_ref,
4000 decoder,
4001 inner_offset,
4002 inner_depth
4003 )?;
4004 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4005 {
4006 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4007 }
4008 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4009 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4010 }
4011 }
4012
4013 next_offset += envelope_size;
4014 _next_ordinal_to_read += 1;
4015 if next_offset >= end_offset {
4016 return Ok(());
4017 }
4018
4019 while _next_ordinal_to_read < 5 {
4021 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4022 _next_ordinal_to_read += 1;
4023 next_offset += envelope_size;
4024 }
4025
4026 let next_out_of_line = decoder.next_out_of_line();
4027 let handles_before = decoder.remaining_handles();
4028 if let Some((inlined, num_bytes, num_handles)) =
4029 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4030 {
4031 let member_inline_size =
4032 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4033 if inlined != (member_inline_size <= 4) {
4034 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4035 }
4036 let inner_offset;
4037 let mut inner_depth = depth.clone();
4038 if inlined {
4039 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4040 inner_offset = next_offset;
4041 } else {
4042 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4043 inner_depth.increment()?;
4044 }
4045 let val_ref =
4046 self.sched_scan_multi.get_or_insert_with(|| fidl::new_empty!(bool, D));
4047 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
4048 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4049 {
4050 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4051 }
4052 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4053 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4054 }
4055 }
4056
4057 next_offset += envelope_size;
4058 _next_ordinal_to_read += 1;
4059 if next_offset >= end_offset {
4060 return Ok(());
4061 }
4062
4063 while _next_ordinal_to_read < 6 {
4065 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4066 _next_ordinal_to_read += 1;
4067 next_offset += envelope_size;
4068 }
4069
4070 let next_out_of_line = decoder.next_out_of_line();
4071 let handles_before = decoder.remaining_handles();
4072 if let Some((inlined, num_bytes, num_handles)) =
4073 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4074 {
4075 let member_inline_size =
4076 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4077 if inlined != (member_inline_size <= 4) {
4078 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4079 }
4080 let inner_offset;
4081 let mut inner_depth = depth.clone();
4082 if inlined {
4083 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4084 inner_offset = next_offset;
4085 } else {
4086 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4087 inner_depth.increment()?;
4088 }
4089 let val_ref = self.sched_scan_delay.get_or_insert_with(|| fidl::new_empty!(u32, D));
4090 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
4091 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4092 {
4093 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4094 }
4095 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4096 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4097 }
4098 }
4099
4100 next_offset += envelope_size;
4101 _next_ordinal_to_read += 1;
4102 if next_offset >= end_offset {
4103 return Ok(());
4104 }
4105
4106 while _next_ordinal_to_read < 7 {
4108 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4109 _next_ordinal_to_read += 1;
4110 next_offset += envelope_size;
4111 }
4112
4113 let next_out_of_line = decoder.next_out_of_line();
4114 let handles_before = decoder.remaining_handles();
4115 if let Some((inlined, num_bytes, num_handles)) =
4116 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4117 {
4118 let member_inline_size = <fidl::encoding::UnboundedVector<u8> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4119 if inlined != (member_inline_size <= 4) {
4120 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4121 }
4122 let inner_offset;
4123 let mut inner_depth = depth.clone();
4124 if inlined {
4125 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4126 inner_offset = next_offset;
4127 } else {
4128 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4129 inner_depth.increment()?;
4130 }
4131 let val_ref = self.ie.get_or_insert_with(|| {
4132 fidl::new_empty!(fidl::encoding::UnboundedVector<u8>, D)
4133 });
4134 fidl::decode!(
4135 fidl::encoding::UnboundedVector<u8>,
4136 D,
4137 val_ref,
4138 decoder,
4139 inner_offset,
4140 inner_depth
4141 )?;
4142 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4143 {
4144 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4145 }
4146 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4147 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4148 }
4149 }
4150
4151 next_offset += envelope_size;
4152 _next_ordinal_to_read += 1;
4153 if next_offset >= end_offset {
4154 return Ok(());
4155 }
4156
4157 while _next_ordinal_to_read < 8 {
4159 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4160 _next_ordinal_to_read += 1;
4161 next_offset += envelope_size;
4162 }
4163
4164 let next_out_of_line = decoder.next_out_of_line();
4165 let handles_before = decoder.remaining_handles();
4166 if let Some((inlined, num_bytes, num_handles)) =
4167 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4168 {
4169 let member_inline_size =
4170 <i8 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4171 if inlined != (member_inline_size <= 4) {
4172 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4173 }
4174 let inner_offset;
4175 let mut inner_depth = depth.clone();
4176 if inlined {
4177 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4178 inner_offset = next_offset;
4179 } else {
4180 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4181 inner_depth.increment()?;
4182 }
4183 let val_ref = self.relative_rssi.get_or_insert_with(|| fidl::new_empty!(i8, D));
4184 fidl::decode!(i8, D, val_ref, decoder, inner_offset, inner_depth)?;
4185 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4186 {
4187 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4188 }
4189 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4190 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4191 }
4192 }
4193
4194 next_offset += envelope_size;
4195 _next_ordinal_to_read += 1;
4196 if next_offset >= end_offset {
4197 return Ok(());
4198 }
4199
4200 while _next_ordinal_to_read < 9 {
4202 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4203 _next_ordinal_to_read += 1;
4204 next_offset += envelope_size;
4205 }
4206
4207 let next_out_of_line = decoder.next_out_of_line();
4208 let handles_before = decoder.remaining_handles();
4209 if let Some((inlined, num_bytes, num_handles)) =
4210 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4211 {
4212 let member_inline_size =
4213 <i8 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4214 if inlined != (member_inline_size <= 4) {
4215 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4216 }
4217 let inner_offset;
4218 let mut inner_depth = depth.clone();
4219 if inlined {
4220 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4221 inner_offset = next_offset;
4222 } else {
4223 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4224 inner_depth.increment()?;
4225 }
4226 let val_ref = self.rssi_adjust.get_or_insert_with(|| fidl::new_empty!(i8, D));
4227 fidl::decode!(i8, D, val_ref, decoder, inner_offset, inner_depth)?;
4228 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4229 {
4230 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4231 }
4232 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4233 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4234 }
4235 }
4236
4237 next_offset += envelope_size;
4238
4239 while next_offset < end_offset {
4241 _next_ordinal_to_read += 1;
4242 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4243 next_offset += envelope_size;
4244 }
4245
4246 Ok(())
4247 }
4248 }
4249
4250 impl SupplicantStaIfaceCallbackOnAssociationRejectedRequest {
4251 #[inline(always)]
4252 fn max_ordinal_present(&self) -> u64 {
4253 if let Some(_) = self.timed_out {
4254 return 4;
4255 }
4256 if let Some(_) = self.status_code {
4257 return 3;
4258 }
4259 if let Some(_) = self.bssid {
4260 return 2;
4261 }
4262 if let Some(_) = self.ssid {
4263 return 1;
4264 }
4265 0
4266 }
4267 }
4268
4269 impl fidl::encoding::ValueTypeMarker for SupplicantStaIfaceCallbackOnAssociationRejectedRequest {
4270 type Borrowed<'a> = &'a Self;
4271 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4272 value
4273 }
4274 }
4275
4276 unsafe impl fidl::encoding::TypeMarker for SupplicantStaIfaceCallbackOnAssociationRejectedRequest {
4277 type Owned = Self;
4278
4279 #[inline(always)]
4280 fn inline_align(_context: fidl::encoding::Context) -> usize {
4281 8
4282 }
4283
4284 #[inline(always)]
4285 fn inline_size(_context: fidl::encoding::Context) -> usize {
4286 16
4287 }
4288 }
4289
4290 unsafe impl<D: fidl::encoding::ResourceDialect>
4291 fidl::encoding::Encode<SupplicantStaIfaceCallbackOnAssociationRejectedRequest, D>
4292 for &SupplicantStaIfaceCallbackOnAssociationRejectedRequest
4293 {
4294 unsafe fn encode(
4295 self,
4296 encoder: &mut fidl::encoding::Encoder<'_, D>,
4297 offset: usize,
4298 mut depth: fidl::encoding::Depth,
4299 ) -> fidl::Result<()> {
4300 encoder.debug_check_bounds::<SupplicantStaIfaceCallbackOnAssociationRejectedRequest>(
4301 offset,
4302 );
4303 let max_ordinal: u64 = self.max_ordinal_present();
4305 encoder.write_num(max_ordinal, offset);
4306 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
4307 if max_ordinal == 0 {
4309 return Ok(());
4310 }
4311 depth.increment()?;
4312 let envelope_size = 8;
4313 let bytes_len = max_ordinal as usize * envelope_size;
4314 #[allow(unused_variables)]
4315 let offset = encoder.out_of_line_offset(bytes_len);
4316 let mut _prev_end_offset: usize = 0;
4317 if 1 > max_ordinal {
4318 return Ok(());
4319 }
4320
4321 let cur_offset: usize = (1 - 1) * envelope_size;
4324
4325 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4327
4328 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<u8, 32>, D>(
4333 self.ssid.as_ref().map(
4334 <fidl::encoding::Vector<u8, 32> as fidl::encoding::ValueTypeMarker>::borrow,
4335 ),
4336 encoder,
4337 offset + cur_offset,
4338 depth,
4339 )?;
4340
4341 _prev_end_offset = cur_offset + envelope_size;
4342 if 2 > max_ordinal {
4343 return Ok(());
4344 }
4345
4346 let cur_offset: usize = (2 - 1) * envelope_size;
4349
4350 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4352
4353 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
4358 self.bssid
4359 .as_ref()
4360 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
4361 encoder,
4362 offset + cur_offset,
4363 depth,
4364 )?;
4365
4366 _prev_end_offset = cur_offset + envelope_size;
4367 if 3 > max_ordinal {
4368 return Ok(());
4369 }
4370
4371 let cur_offset: usize = (3 - 1) * envelope_size;
4374
4375 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4377
4378 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_ieee80211__common::StatusCode, D>(
4383 self.status_code.as_ref().map(<fidl_fuchsia_wlan_ieee80211__common::StatusCode as fidl::encoding::ValueTypeMarker>::borrow),
4384 encoder, offset + cur_offset, depth
4385 )?;
4386
4387 _prev_end_offset = cur_offset + envelope_size;
4388 if 4 > max_ordinal {
4389 return Ok(());
4390 }
4391
4392 let cur_offset: usize = (4 - 1) * envelope_size;
4395
4396 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4398
4399 fidl::encoding::encode_in_envelope_optional::<bool, D>(
4404 self.timed_out.as_ref().map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
4405 encoder,
4406 offset + cur_offset,
4407 depth,
4408 )?;
4409
4410 _prev_end_offset = cur_offset + envelope_size;
4411
4412 Ok(())
4413 }
4414 }
4415
4416 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
4417 for SupplicantStaIfaceCallbackOnAssociationRejectedRequest
4418 {
4419 #[inline(always)]
4420 fn new_empty() -> Self {
4421 Self::default()
4422 }
4423
4424 unsafe fn decode(
4425 &mut self,
4426 decoder: &mut fidl::encoding::Decoder<'_, D>,
4427 offset: usize,
4428 mut depth: fidl::encoding::Depth,
4429 ) -> fidl::Result<()> {
4430 decoder.debug_check_bounds::<Self>(offset);
4431 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
4432 None => return Err(fidl::Error::NotNullable),
4433 Some(len) => len,
4434 };
4435 if len == 0 {
4437 return Ok(());
4438 };
4439 depth.increment()?;
4440 let envelope_size = 8;
4441 let bytes_len = len * envelope_size;
4442 let offset = decoder.out_of_line_offset(bytes_len)?;
4443 let mut _next_ordinal_to_read = 0;
4445 let mut next_offset = offset;
4446 let end_offset = offset + bytes_len;
4447 _next_ordinal_to_read += 1;
4448 if next_offset >= end_offset {
4449 return Ok(());
4450 }
4451
4452 while _next_ordinal_to_read < 1 {
4454 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4455 _next_ordinal_to_read += 1;
4456 next_offset += envelope_size;
4457 }
4458
4459 let next_out_of_line = decoder.next_out_of_line();
4460 let handles_before = decoder.remaining_handles();
4461 if let Some((inlined, num_bytes, num_handles)) =
4462 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4463 {
4464 let member_inline_size =
4465 <fidl::encoding::Vector<u8, 32> as fidl::encoding::TypeMarker>::inline_size(
4466 decoder.context,
4467 );
4468 if inlined != (member_inline_size <= 4) {
4469 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4470 }
4471 let inner_offset;
4472 let mut inner_depth = depth.clone();
4473 if inlined {
4474 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4475 inner_offset = next_offset;
4476 } else {
4477 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4478 inner_depth.increment()?;
4479 }
4480 let val_ref = self
4481 .ssid
4482 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<u8, 32>, D));
4483 fidl::decode!(fidl::encoding::Vector<u8, 32>, D, val_ref, decoder, inner_offset, inner_depth)?;
4484 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4485 {
4486 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4487 }
4488 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4489 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4490 }
4491 }
4492
4493 next_offset += envelope_size;
4494 _next_ordinal_to_read += 1;
4495 if next_offset >= end_offset {
4496 return Ok(());
4497 }
4498
4499 while _next_ordinal_to_read < 2 {
4501 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4502 _next_ordinal_to_read += 1;
4503 next_offset += envelope_size;
4504 }
4505
4506 let next_out_of_line = decoder.next_out_of_line();
4507 let handles_before = decoder.remaining_handles();
4508 if let Some((inlined, num_bytes, num_handles)) =
4509 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4510 {
4511 let member_inline_size =
4512 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
4513 decoder.context,
4514 );
4515 if inlined != (member_inline_size <= 4) {
4516 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4517 }
4518 let inner_offset;
4519 let mut inner_depth = depth.clone();
4520 if inlined {
4521 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4522 inner_offset = next_offset;
4523 } else {
4524 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4525 inner_depth.increment()?;
4526 }
4527 let val_ref = self
4528 .bssid
4529 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
4530 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
4531 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4532 {
4533 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4534 }
4535 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4536 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4537 }
4538 }
4539
4540 next_offset += envelope_size;
4541 _next_ordinal_to_read += 1;
4542 if next_offset >= end_offset {
4543 return Ok(());
4544 }
4545
4546 while _next_ordinal_to_read < 3 {
4548 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4549 _next_ordinal_to_read += 1;
4550 next_offset += envelope_size;
4551 }
4552
4553 let next_out_of_line = decoder.next_out_of_line();
4554 let handles_before = decoder.remaining_handles();
4555 if let Some((inlined, num_bytes, num_handles)) =
4556 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4557 {
4558 let member_inline_size = <fidl_fuchsia_wlan_ieee80211__common::StatusCode as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4559 if inlined != (member_inline_size <= 4) {
4560 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4561 }
4562 let inner_offset;
4563 let mut inner_depth = depth.clone();
4564 if inlined {
4565 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4566 inner_offset = next_offset;
4567 } else {
4568 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4569 inner_depth.increment()?;
4570 }
4571 let val_ref = self.status_code.get_or_insert_with(|| {
4572 fidl::new_empty!(fidl_fuchsia_wlan_ieee80211__common::StatusCode, D)
4573 });
4574 fidl::decode!(
4575 fidl_fuchsia_wlan_ieee80211__common::StatusCode,
4576 D,
4577 val_ref,
4578 decoder,
4579 inner_offset,
4580 inner_depth
4581 )?;
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 < 4 {
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.timed_out.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 SupplicantStaIfaceCallbackOnDisconnectedRequest {
4648 #[inline(always)]
4649 fn max_ordinal_present(&self) -> u64 {
4650 if let Some(_) = self.reason_code {
4651 return 3;
4652 }
4653 if let Some(_) = self.locally_generated {
4654 return 2;
4655 }
4656 if let Some(_) = self.bssid {
4657 return 1;
4658 }
4659 0
4660 }
4661 }
4662
4663 impl fidl::encoding::ValueTypeMarker for SupplicantStaIfaceCallbackOnDisconnectedRequest {
4664 type Borrowed<'a> = &'a Self;
4665 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4666 value
4667 }
4668 }
4669
4670 unsafe impl fidl::encoding::TypeMarker for SupplicantStaIfaceCallbackOnDisconnectedRequest {
4671 type Owned = Self;
4672
4673 #[inline(always)]
4674 fn inline_align(_context: fidl::encoding::Context) -> usize {
4675 8
4676 }
4677
4678 #[inline(always)]
4679 fn inline_size(_context: fidl::encoding::Context) -> usize {
4680 16
4681 }
4682 }
4683
4684 unsafe impl<D: fidl::encoding::ResourceDialect>
4685 fidl::encoding::Encode<SupplicantStaIfaceCallbackOnDisconnectedRequest, D>
4686 for &SupplicantStaIfaceCallbackOnDisconnectedRequest
4687 {
4688 unsafe fn encode(
4689 self,
4690 encoder: &mut fidl::encoding::Encoder<'_, D>,
4691 offset: usize,
4692 mut depth: fidl::encoding::Depth,
4693 ) -> fidl::Result<()> {
4694 encoder.debug_check_bounds::<SupplicantStaIfaceCallbackOnDisconnectedRequest>(offset);
4695 let max_ordinal: u64 = self.max_ordinal_present();
4697 encoder.write_num(max_ordinal, offset);
4698 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
4699 if max_ordinal == 0 {
4701 return Ok(());
4702 }
4703 depth.increment()?;
4704 let envelope_size = 8;
4705 let bytes_len = max_ordinal as usize * envelope_size;
4706 #[allow(unused_variables)]
4707 let offset = encoder.out_of_line_offset(bytes_len);
4708 let mut _prev_end_offset: usize = 0;
4709 if 1 > max_ordinal {
4710 return Ok(());
4711 }
4712
4713 let cur_offset: usize = (1 - 1) * envelope_size;
4716
4717 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4719
4720 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
4725 self.bssid
4726 .as_ref()
4727 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
4728 encoder,
4729 offset + cur_offset,
4730 depth,
4731 )?;
4732
4733 _prev_end_offset = cur_offset + envelope_size;
4734 if 2 > max_ordinal {
4735 return Ok(());
4736 }
4737
4738 let cur_offset: usize = (2 - 1) * envelope_size;
4741
4742 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4744
4745 fidl::encoding::encode_in_envelope_optional::<bool, D>(
4750 self.locally_generated
4751 .as_ref()
4752 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
4753 encoder,
4754 offset + cur_offset,
4755 depth,
4756 )?;
4757
4758 _prev_end_offset = cur_offset + envelope_size;
4759 if 3 > max_ordinal {
4760 return Ok(());
4761 }
4762
4763 let cur_offset: usize = (3 - 1) * envelope_size;
4766
4767 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4769
4770 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_ieee80211__common::ReasonCode, D>(
4775 self.reason_code.as_ref().map(<fidl_fuchsia_wlan_ieee80211__common::ReasonCode as fidl::encoding::ValueTypeMarker>::borrow),
4776 encoder, offset + cur_offset, depth
4777 )?;
4778
4779 _prev_end_offset = cur_offset + envelope_size;
4780
4781 Ok(())
4782 }
4783 }
4784
4785 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
4786 for SupplicantStaIfaceCallbackOnDisconnectedRequest
4787 {
4788 #[inline(always)]
4789 fn new_empty() -> Self {
4790 Self::default()
4791 }
4792
4793 unsafe fn decode(
4794 &mut self,
4795 decoder: &mut fidl::encoding::Decoder<'_, D>,
4796 offset: usize,
4797 mut depth: fidl::encoding::Depth,
4798 ) -> fidl::Result<()> {
4799 decoder.debug_check_bounds::<Self>(offset);
4800 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
4801 None => return Err(fidl::Error::NotNullable),
4802 Some(len) => len,
4803 };
4804 if len == 0 {
4806 return Ok(());
4807 };
4808 depth.increment()?;
4809 let envelope_size = 8;
4810 let bytes_len = len * envelope_size;
4811 let offset = decoder.out_of_line_offset(bytes_len)?;
4812 let mut _next_ordinal_to_read = 0;
4814 let mut next_offset = offset;
4815 let end_offset = offset + bytes_len;
4816 _next_ordinal_to_read += 1;
4817 if next_offset >= end_offset {
4818 return Ok(());
4819 }
4820
4821 while _next_ordinal_to_read < 1 {
4823 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4824 _next_ordinal_to_read += 1;
4825 next_offset += envelope_size;
4826 }
4827
4828 let next_out_of_line = decoder.next_out_of_line();
4829 let handles_before = decoder.remaining_handles();
4830 if let Some((inlined, num_bytes, num_handles)) =
4831 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4832 {
4833 let member_inline_size =
4834 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
4835 decoder.context,
4836 );
4837 if inlined != (member_inline_size <= 4) {
4838 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4839 }
4840 let inner_offset;
4841 let mut inner_depth = depth.clone();
4842 if inlined {
4843 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4844 inner_offset = next_offset;
4845 } else {
4846 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4847 inner_depth.increment()?;
4848 }
4849 let val_ref = self
4850 .bssid
4851 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
4852 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
4853 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4854 {
4855 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4856 }
4857 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4858 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4859 }
4860 }
4861
4862 next_offset += envelope_size;
4863 _next_ordinal_to_read += 1;
4864 if next_offset >= end_offset {
4865 return Ok(());
4866 }
4867
4868 while _next_ordinal_to_read < 2 {
4870 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4871 _next_ordinal_to_read += 1;
4872 next_offset += envelope_size;
4873 }
4874
4875 let next_out_of_line = decoder.next_out_of_line();
4876 let handles_before = decoder.remaining_handles();
4877 if let Some((inlined, num_bytes, num_handles)) =
4878 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4879 {
4880 let member_inline_size =
4881 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4882 if inlined != (member_inline_size <= 4) {
4883 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4884 }
4885 let inner_offset;
4886 let mut inner_depth = depth.clone();
4887 if inlined {
4888 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4889 inner_offset = next_offset;
4890 } else {
4891 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4892 inner_depth.increment()?;
4893 }
4894 let val_ref =
4895 self.locally_generated.get_or_insert_with(|| fidl::new_empty!(bool, D));
4896 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
4897 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4898 {
4899 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4900 }
4901 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4902 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4903 }
4904 }
4905
4906 next_offset += envelope_size;
4907 _next_ordinal_to_read += 1;
4908 if next_offset >= end_offset {
4909 return Ok(());
4910 }
4911
4912 while _next_ordinal_to_read < 3 {
4914 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4915 _next_ordinal_to_read += 1;
4916 next_offset += envelope_size;
4917 }
4918
4919 let next_out_of_line = decoder.next_out_of_line();
4920 let handles_before = decoder.remaining_handles();
4921 if let Some((inlined, num_bytes, num_handles)) =
4922 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4923 {
4924 let member_inline_size = <fidl_fuchsia_wlan_ieee80211__common::ReasonCode as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4925 if inlined != (member_inline_size <= 4) {
4926 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4927 }
4928 let inner_offset;
4929 let mut inner_depth = depth.clone();
4930 if inlined {
4931 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4932 inner_offset = next_offset;
4933 } else {
4934 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4935 inner_depth.increment()?;
4936 }
4937 let val_ref = self.reason_code.get_or_insert_with(|| {
4938 fidl::new_empty!(fidl_fuchsia_wlan_ieee80211__common::ReasonCode, D)
4939 });
4940 fidl::decode!(
4941 fidl_fuchsia_wlan_ieee80211__common::ReasonCode,
4942 D,
4943 val_ref,
4944 decoder,
4945 inner_offset,
4946 inner_depth
4947 )?;
4948 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4949 {
4950 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4951 }
4952 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4953 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4954 }
4955 }
4956
4957 next_offset += envelope_size;
4958
4959 while next_offset < end_offset {
4961 _next_ordinal_to_read += 1;
4962 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4963 next_offset += envelope_size;
4964 }
4965
4966 Ok(())
4967 }
4968 }
4969
4970 impl SupplicantStaIfaceCallbackOnStateChangedRequest {
4971 #[inline(always)]
4972 fn max_ordinal_present(&self) -> u64 {
4973 if let Some(_) = self.ssid {
4974 return 4;
4975 }
4976 if let Some(_) = self.id {
4977 return 3;
4978 }
4979 if let Some(_) = self.bssid {
4980 return 2;
4981 }
4982 if let Some(_) = self.new_state {
4983 return 1;
4984 }
4985 0
4986 }
4987 }
4988
4989 impl fidl::encoding::ValueTypeMarker for SupplicantStaIfaceCallbackOnStateChangedRequest {
4990 type Borrowed<'a> = &'a Self;
4991 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4992 value
4993 }
4994 }
4995
4996 unsafe impl fidl::encoding::TypeMarker for SupplicantStaIfaceCallbackOnStateChangedRequest {
4997 type Owned = Self;
4998
4999 #[inline(always)]
5000 fn inline_align(_context: fidl::encoding::Context) -> usize {
5001 8
5002 }
5003
5004 #[inline(always)]
5005 fn inline_size(_context: fidl::encoding::Context) -> usize {
5006 16
5007 }
5008 }
5009
5010 unsafe impl<D: fidl::encoding::ResourceDialect>
5011 fidl::encoding::Encode<SupplicantStaIfaceCallbackOnStateChangedRequest, D>
5012 for &SupplicantStaIfaceCallbackOnStateChangedRequest
5013 {
5014 unsafe fn encode(
5015 self,
5016 encoder: &mut fidl::encoding::Encoder<'_, D>,
5017 offset: usize,
5018 mut depth: fidl::encoding::Depth,
5019 ) -> fidl::Result<()> {
5020 encoder.debug_check_bounds::<SupplicantStaIfaceCallbackOnStateChangedRequest>(offset);
5021 let max_ordinal: u64 = self.max_ordinal_present();
5023 encoder.write_num(max_ordinal, offset);
5024 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
5025 if max_ordinal == 0 {
5027 return Ok(());
5028 }
5029 depth.increment()?;
5030 let envelope_size = 8;
5031 let bytes_len = max_ordinal as usize * envelope_size;
5032 #[allow(unused_variables)]
5033 let offset = encoder.out_of_line_offset(bytes_len);
5034 let mut _prev_end_offset: usize = 0;
5035 if 1 > max_ordinal {
5036 return Ok(());
5037 }
5038
5039 let cur_offset: usize = (1 - 1) * envelope_size;
5042
5043 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5045
5046 fidl::encoding::encode_in_envelope_optional::<StaIfaceCallbackState, D>(
5051 self.new_state
5052 .as_ref()
5053 .map(<StaIfaceCallbackState as fidl::encoding::ValueTypeMarker>::borrow),
5054 encoder,
5055 offset + cur_offset,
5056 depth,
5057 )?;
5058
5059 _prev_end_offset = cur_offset + envelope_size;
5060 if 2 > max_ordinal {
5061 return Ok(());
5062 }
5063
5064 let cur_offset: usize = (2 - 1) * envelope_size;
5067
5068 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5070
5071 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
5076 self.bssid
5077 .as_ref()
5078 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
5079 encoder,
5080 offset + cur_offset,
5081 depth,
5082 )?;
5083
5084 _prev_end_offset = cur_offset + envelope_size;
5085 if 3 > max_ordinal {
5086 return Ok(());
5087 }
5088
5089 let cur_offset: usize = (3 - 1) * envelope_size;
5092
5093 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5095
5096 fidl::encoding::encode_in_envelope_optional::<u32, D>(
5101 self.id.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
5102 encoder,
5103 offset + cur_offset,
5104 depth,
5105 )?;
5106
5107 _prev_end_offset = cur_offset + envelope_size;
5108 if 4 > max_ordinal {
5109 return Ok(());
5110 }
5111
5112 let cur_offset: usize = (4 - 1) * envelope_size;
5115
5116 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5118
5119 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<u8, 32>, D>(
5124 self.ssid.as_ref().map(
5125 <fidl::encoding::Vector<u8, 32> as fidl::encoding::ValueTypeMarker>::borrow,
5126 ),
5127 encoder,
5128 offset + cur_offset,
5129 depth,
5130 )?;
5131
5132 _prev_end_offset = cur_offset + envelope_size;
5133
5134 Ok(())
5135 }
5136 }
5137
5138 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
5139 for SupplicantStaIfaceCallbackOnStateChangedRequest
5140 {
5141 #[inline(always)]
5142 fn new_empty() -> Self {
5143 Self::default()
5144 }
5145
5146 unsafe fn decode(
5147 &mut self,
5148 decoder: &mut fidl::encoding::Decoder<'_, D>,
5149 offset: usize,
5150 mut depth: fidl::encoding::Depth,
5151 ) -> fidl::Result<()> {
5152 decoder.debug_check_bounds::<Self>(offset);
5153 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
5154 None => return Err(fidl::Error::NotNullable),
5155 Some(len) => len,
5156 };
5157 if len == 0 {
5159 return Ok(());
5160 };
5161 depth.increment()?;
5162 let envelope_size = 8;
5163 let bytes_len = len * envelope_size;
5164 let offset = decoder.out_of_line_offset(bytes_len)?;
5165 let mut _next_ordinal_to_read = 0;
5167 let mut next_offset = offset;
5168 let end_offset = offset + bytes_len;
5169 _next_ordinal_to_read += 1;
5170 if next_offset >= end_offset {
5171 return Ok(());
5172 }
5173
5174 while _next_ordinal_to_read < 1 {
5176 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5177 _next_ordinal_to_read += 1;
5178 next_offset += envelope_size;
5179 }
5180
5181 let next_out_of_line = decoder.next_out_of_line();
5182 let handles_before = decoder.remaining_handles();
5183 if let Some((inlined, num_bytes, num_handles)) =
5184 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5185 {
5186 let member_inline_size =
5187 <StaIfaceCallbackState as fidl::encoding::TypeMarker>::inline_size(
5188 decoder.context,
5189 );
5190 if inlined != (member_inline_size <= 4) {
5191 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5192 }
5193 let inner_offset;
5194 let mut inner_depth = depth.clone();
5195 if inlined {
5196 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5197 inner_offset = next_offset;
5198 } else {
5199 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5200 inner_depth.increment()?;
5201 }
5202 let val_ref = self
5203 .new_state
5204 .get_or_insert_with(|| fidl::new_empty!(StaIfaceCallbackState, D));
5205 fidl::decode!(
5206 StaIfaceCallbackState,
5207 D,
5208 val_ref,
5209 decoder,
5210 inner_offset,
5211 inner_depth
5212 )?;
5213 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5214 {
5215 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5216 }
5217 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5218 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5219 }
5220 }
5221
5222 next_offset += envelope_size;
5223 _next_ordinal_to_read += 1;
5224 if next_offset >= end_offset {
5225 return Ok(());
5226 }
5227
5228 while _next_ordinal_to_read < 2 {
5230 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5231 _next_ordinal_to_read += 1;
5232 next_offset += envelope_size;
5233 }
5234
5235 let next_out_of_line = decoder.next_out_of_line();
5236 let handles_before = decoder.remaining_handles();
5237 if let Some((inlined, num_bytes, num_handles)) =
5238 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5239 {
5240 let member_inline_size =
5241 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
5242 decoder.context,
5243 );
5244 if inlined != (member_inline_size <= 4) {
5245 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5246 }
5247 let inner_offset;
5248 let mut inner_depth = depth.clone();
5249 if inlined {
5250 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5251 inner_offset = next_offset;
5252 } else {
5253 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5254 inner_depth.increment()?;
5255 }
5256 let val_ref = self
5257 .bssid
5258 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
5259 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
5260 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5261 {
5262 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5263 }
5264 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5265 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5266 }
5267 }
5268
5269 next_offset += envelope_size;
5270 _next_ordinal_to_read += 1;
5271 if next_offset >= end_offset {
5272 return Ok(());
5273 }
5274
5275 while _next_ordinal_to_read < 3 {
5277 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5278 _next_ordinal_to_read += 1;
5279 next_offset += envelope_size;
5280 }
5281
5282 let next_out_of_line = decoder.next_out_of_line();
5283 let handles_before = decoder.remaining_handles();
5284 if let Some((inlined, num_bytes, num_handles)) =
5285 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5286 {
5287 let member_inline_size =
5288 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5289 if inlined != (member_inline_size <= 4) {
5290 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5291 }
5292 let inner_offset;
5293 let mut inner_depth = depth.clone();
5294 if inlined {
5295 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5296 inner_offset = next_offset;
5297 } else {
5298 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5299 inner_depth.increment()?;
5300 }
5301 let val_ref = self.id.get_or_insert_with(|| fidl::new_empty!(u32, D));
5302 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
5303 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5304 {
5305 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5306 }
5307 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5308 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5309 }
5310 }
5311
5312 next_offset += envelope_size;
5313 _next_ordinal_to_read += 1;
5314 if next_offset >= end_offset {
5315 return Ok(());
5316 }
5317
5318 while _next_ordinal_to_read < 4 {
5320 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5321 _next_ordinal_to_read += 1;
5322 next_offset += envelope_size;
5323 }
5324
5325 let next_out_of_line = decoder.next_out_of_line();
5326 let handles_before = decoder.remaining_handles();
5327 if let Some((inlined, num_bytes, num_handles)) =
5328 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5329 {
5330 let member_inline_size =
5331 <fidl::encoding::Vector<u8, 32> as fidl::encoding::TypeMarker>::inline_size(
5332 decoder.context,
5333 );
5334 if inlined != (member_inline_size <= 4) {
5335 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5336 }
5337 let inner_offset;
5338 let mut inner_depth = depth.clone();
5339 if inlined {
5340 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5341 inner_offset = next_offset;
5342 } else {
5343 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5344 inner_depth.increment()?;
5345 }
5346 let val_ref = self
5347 .ssid
5348 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<u8, 32>, D));
5349 fidl::decode!(fidl::encoding::Vector<u8, 32>, D, val_ref, decoder, inner_offset, inner_depth)?;
5350 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5351 {
5352 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5353 }
5354 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5355 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5356 }
5357 }
5358
5359 next_offset += envelope_size;
5360
5361 while next_offset < end_offset {
5363 _next_ordinal_to_read += 1;
5364 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5365 next_offset += envelope_size;
5366 }
5367
5368 Ok(())
5369 }
5370 }
5371
5372 impl SupplicantStaIfaceSetBtCoexistenceModeRequest {
5373 #[inline(always)]
5374 fn max_ordinal_present(&self) -> u64 {
5375 if let Some(_) = self.mode {
5376 return 1;
5377 }
5378 0
5379 }
5380 }
5381
5382 impl fidl::encoding::ValueTypeMarker for SupplicantStaIfaceSetBtCoexistenceModeRequest {
5383 type Borrowed<'a> = &'a Self;
5384 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
5385 value
5386 }
5387 }
5388
5389 unsafe impl fidl::encoding::TypeMarker for SupplicantStaIfaceSetBtCoexistenceModeRequest {
5390 type Owned = Self;
5391
5392 #[inline(always)]
5393 fn inline_align(_context: fidl::encoding::Context) -> usize {
5394 8
5395 }
5396
5397 #[inline(always)]
5398 fn inline_size(_context: fidl::encoding::Context) -> usize {
5399 16
5400 }
5401 }
5402
5403 unsafe impl<D: fidl::encoding::ResourceDialect>
5404 fidl::encoding::Encode<SupplicantStaIfaceSetBtCoexistenceModeRequest, D>
5405 for &SupplicantStaIfaceSetBtCoexistenceModeRequest
5406 {
5407 unsafe fn encode(
5408 self,
5409 encoder: &mut fidl::encoding::Encoder<'_, D>,
5410 offset: usize,
5411 mut depth: fidl::encoding::Depth,
5412 ) -> fidl::Result<()> {
5413 encoder.debug_check_bounds::<SupplicantStaIfaceSetBtCoexistenceModeRequest>(offset);
5414 let max_ordinal: u64 = self.max_ordinal_present();
5416 encoder.write_num(max_ordinal, offset);
5417 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
5418 if max_ordinal == 0 {
5420 return Ok(());
5421 }
5422 depth.increment()?;
5423 let envelope_size = 8;
5424 let bytes_len = max_ordinal as usize * envelope_size;
5425 #[allow(unused_variables)]
5426 let offset = encoder.out_of_line_offset(bytes_len);
5427 let mut _prev_end_offset: usize = 0;
5428 if 1 > max_ordinal {
5429 return Ok(());
5430 }
5431
5432 let cur_offset: usize = (1 - 1) * envelope_size;
5435
5436 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5438
5439 fidl::encoding::encode_in_envelope_optional::<BtCoexistenceMode, D>(
5444 self.mode
5445 .as_ref()
5446 .map(<BtCoexistenceMode as fidl::encoding::ValueTypeMarker>::borrow),
5447 encoder,
5448 offset + cur_offset,
5449 depth,
5450 )?;
5451
5452 _prev_end_offset = cur_offset + envelope_size;
5453
5454 Ok(())
5455 }
5456 }
5457
5458 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
5459 for SupplicantStaIfaceSetBtCoexistenceModeRequest
5460 {
5461 #[inline(always)]
5462 fn new_empty() -> Self {
5463 Self::default()
5464 }
5465
5466 unsafe fn decode(
5467 &mut self,
5468 decoder: &mut fidl::encoding::Decoder<'_, D>,
5469 offset: usize,
5470 mut depth: fidl::encoding::Depth,
5471 ) -> fidl::Result<()> {
5472 decoder.debug_check_bounds::<Self>(offset);
5473 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
5474 None => return Err(fidl::Error::NotNullable),
5475 Some(len) => len,
5476 };
5477 if len == 0 {
5479 return Ok(());
5480 };
5481 depth.increment()?;
5482 let envelope_size = 8;
5483 let bytes_len = len * envelope_size;
5484 let offset = decoder.out_of_line_offset(bytes_len)?;
5485 let mut _next_ordinal_to_read = 0;
5487 let mut next_offset = offset;
5488 let end_offset = offset + bytes_len;
5489 _next_ordinal_to_read += 1;
5490 if next_offset >= end_offset {
5491 return Ok(());
5492 }
5493
5494 while _next_ordinal_to_read < 1 {
5496 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5497 _next_ordinal_to_read += 1;
5498 next_offset += envelope_size;
5499 }
5500
5501 let next_out_of_line = decoder.next_out_of_line();
5502 let handles_before = decoder.remaining_handles();
5503 if let Some((inlined, num_bytes, num_handles)) =
5504 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5505 {
5506 let member_inline_size =
5507 <BtCoexistenceMode as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5508 if inlined != (member_inline_size <= 4) {
5509 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5510 }
5511 let inner_offset;
5512 let mut inner_depth = depth.clone();
5513 if inlined {
5514 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5515 inner_offset = next_offset;
5516 } else {
5517 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5518 inner_depth.increment()?;
5519 }
5520 let val_ref =
5521 self.mode.get_or_insert_with(|| fidl::new_empty!(BtCoexistenceMode, D));
5522 fidl::decode!(BtCoexistenceMode, D, val_ref, decoder, inner_offset, inner_depth)?;
5523 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5524 {
5525 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5526 }
5527 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5528 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5529 }
5530 }
5531
5532 next_offset += envelope_size;
5533
5534 while next_offset < end_offset {
5536 _next_ordinal_to_read += 1;
5537 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5538 next_offset += envelope_size;
5539 }
5540
5541 Ok(())
5542 }
5543 }
5544
5545 impl SupplicantStaIfaceGetMacAddressResponse {
5546 #[inline(always)]
5547 fn max_ordinal_present(&self) -> u64 {
5548 if let Some(_) = self.mac_addr {
5549 return 1;
5550 }
5551 0
5552 }
5553 }
5554
5555 impl fidl::encoding::ValueTypeMarker for SupplicantStaIfaceGetMacAddressResponse {
5556 type Borrowed<'a> = &'a Self;
5557 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
5558 value
5559 }
5560 }
5561
5562 unsafe impl fidl::encoding::TypeMarker for SupplicantStaIfaceGetMacAddressResponse {
5563 type Owned = Self;
5564
5565 #[inline(always)]
5566 fn inline_align(_context: fidl::encoding::Context) -> usize {
5567 8
5568 }
5569
5570 #[inline(always)]
5571 fn inline_size(_context: fidl::encoding::Context) -> usize {
5572 16
5573 }
5574 }
5575
5576 unsafe impl<D: fidl::encoding::ResourceDialect>
5577 fidl::encoding::Encode<SupplicantStaIfaceGetMacAddressResponse, D>
5578 for &SupplicantStaIfaceGetMacAddressResponse
5579 {
5580 unsafe fn encode(
5581 self,
5582 encoder: &mut fidl::encoding::Encoder<'_, D>,
5583 offset: usize,
5584 mut depth: fidl::encoding::Depth,
5585 ) -> fidl::Result<()> {
5586 encoder.debug_check_bounds::<SupplicantStaIfaceGetMacAddressResponse>(offset);
5587 let max_ordinal: u64 = self.max_ordinal_present();
5589 encoder.write_num(max_ordinal, offset);
5590 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
5591 if max_ordinal == 0 {
5593 return Ok(());
5594 }
5595 depth.increment()?;
5596 let envelope_size = 8;
5597 let bytes_len = max_ordinal as usize * envelope_size;
5598 #[allow(unused_variables)]
5599 let offset = encoder.out_of_line_offset(bytes_len);
5600 let mut _prev_end_offset: usize = 0;
5601 if 1 > max_ordinal {
5602 return Ok(());
5603 }
5604
5605 let cur_offset: usize = (1 - 1) * envelope_size;
5608
5609 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5611
5612 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
5617 self.mac_addr
5618 .as_ref()
5619 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
5620 encoder,
5621 offset + cur_offset,
5622 depth,
5623 )?;
5624
5625 _prev_end_offset = cur_offset + envelope_size;
5626
5627 Ok(())
5628 }
5629 }
5630
5631 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
5632 for SupplicantStaIfaceGetMacAddressResponse
5633 {
5634 #[inline(always)]
5635 fn new_empty() -> Self {
5636 Self::default()
5637 }
5638
5639 unsafe fn decode(
5640 &mut self,
5641 decoder: &mut fidl::encoding::Decoder<'_, D>,
5642 offset: usize,
5643 mut depth: fidl::encoding::Depth,
5644 ) -> fidl::Result<()> {
5645 decoder.debug_check_bounds::<Self>(offset);
5646 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
5647 None => return Err(fidl::Error::NotNullable),
5648 Some(len) => len,
5649 };
5650 if len == 0 {
5652 return Ok(());
5653 };
5654 depth.increment()?;
5655 let envelope_size = 8;
5656 let bytes_len = len * envelope_size;
5657 let offset = decoder.out_of_line_offset(bytes_len)?;
5658 let mut _next_ordinal_to_read = 0;
5660 let mut next_offset = offset;
5661 let end_offset = offset + bytes_len;
5662 _next_ordinal_to_read += 1;
5663 if next_offset >= end_offset {
5664 return Ok(());
5665 }
5666
5667 while _next_ordinal_to_read < 1 {
5669 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5670 _next_ordinal_to_read += 1;
5671 next_offset += envelope_size;
5672 }
5673
5674 let next_out_of_line = decoder.next_out_of_line();
5675 let handles_before = decoder.remaining_handles();
5676 if let Some((inlined, num_bytes, num_handles)) =
5677 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5678 {
5679 let member_inline_size =
5680 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
5681 decoder.context,
5682 );
5683 if inlined != (member_inline_size <= 4) {
5684 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5685 }
5686 let inner_offset;
5687 let mut inner_depth = depth.clone();
5688 if inlined {
5689 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5690 inner_offset = next_offset;
5691 } else {
5692 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5693 inner_depth.increment()?;
5694 }
5695 let val_ref = self
5696 .mac_addr
5697 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
5698 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
5699 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5700 {
5701 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5702 }
5703 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5704 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5705 }
5706 }
5707
5708 next_offset += envelope_size;
5709
5710 while next_offset < end_offset {
5712 _next_ordinal_to_read += 1;
5713 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5714 next_offset += envelope_size;
5715 }
5716
5717 Ok(())
5718 }
5719 }
5720
5721 impl SupplicantStaNetworkSetBssidRequest {
5722 #[inline(always)]
5723 fn max_ordinal_present(&self) -> u64 {
5724 if let Some(_) = self.bssid {
5725 return 1;
5726 }
5727 0
5728 }
5729 }
5730
5731 impl fidl::encoding::ValueTypeMarker for SupplicantStaNetworkSetBssidRequest {
5732 type Borrowed<'a> = &'a Self;
5733 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
5734 value
5735 }
5736 }
5737
5738 unsafe impl fidl::encoding::TypeMarker for SupplicantStaNetworkSetBssidRequest {
5739 type Owned = Self;
5740
5741 #[inline(always)]
5742 fn inline_align(_context: fidl::encoding::Context) -> usize {
5743 8
5744 }
5745
5746 #[inline(always)]
5747 fn inline_size(_context: fidl::encoding::Context) -> usize {
5748 16
5749 }
5750 }
5751
5752 unsafe impl<D: fidl::encoding::ResourceDialect>
5753 fidl::encoding::Encode<SupplicantStaNetworkSetBssidRequest, D>
5754 for &SupplicantStaNetworkSetBssidRequest
5755 {
5756 unsafe fn encode(
5757 self,
5758 encoder: &mut fidl::encoding::Encoder<'_, D>,
5759 offset: usize,
5760 mut depth: fidl::encoding::Depth,
5761 ) -> fidl::Result<()> {
5762 encoder.debug_check_bounds::<SupplicantStaNetworkSetBssidRequest>(offset);
5763 let max_ordinal: u64 = self.max_ordinal_present();
5765 encoder.write_num(max_ordinal, offset);
5766 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
5767 if max_ordinal == 0 {
5769 return Ok(());
5770 }
5771 depth.increment()?;
5772 let envelope_size = 8;
5773 let bytes_len = max_ordinal as usize * envelope_size;
5774 #[allow(unused_variables)]
5775 let offset = encoder.out_of_line_offset(bytes_len);
5776 let mut _prev_end_offset: usize = 0;
5777 if 1 > max_ordinal {
5778 return Ok(());
5779 }
5780
5781 let cur_offset: usize = (1 - 1) * envelope_size;
5784
5785 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5787
5788 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
5793 self.bssid
5794 .as_ref()
5795 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
5796 encoder,
5797 offset + cur_offset,
5798 depth,
5799 )?;
5800
5801 _prev_end_offset = cur_offset + envelope_size;
5802
5803 Ok(())
5804 }
5805 }
5806
5807 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
5808 for SupplicantStaNetworkSetBssidRequest
5809 {
5810 #[inline(always)]
5811 fn new_empty() -> Self {
5812 Self::default()
5813 }
5814
5815 unsafe fn decode(
5816 &mut self,
5817 decoder: &mut fidl::encoding::Decoder<'_, D>,
5818 offset: usize,
5819 mut depth: fidl::encoding::Depth,
5820 ) -> fidl::Result<()> {
5821 decoder.debug_check_bounds::<Self>(offset);
5822 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
5823 None => return Err(fidl::Error::NotNullable),
5824 Some(len) => len,
5825 };
5826 if len == 0 {
5828 return Ok(());
5829 };
5830 depth.increment()?;
5831 let envelope_size = 8;
5832 let bytes_len = len * envelope_size;
5833 let offset = decoder.out_of_line_offset(bytes_len)?;
5834 let mut _next_ordinal_to_read = 0;
5836 let mut next_offset = offset;
5837 let end_offset = offset + bytes_len;
5838 _next_ordinal_to_read += 1;
5839 if next_offset >= end_offset {
5840 return Ok(());
5841 }
5842
5843 while _next_ordinal_to_read < 1 {
5845 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5846 _next_ordinal_to_read += 1;
5847 next_offset += envelope_size;
5848 }
5849
5850 let next_out_of_line = decoder.next_out_of_line();
5851 let handles_before = decoder.remaining_handles();
5852 if let Some((inlined, num_bytes, num_handles)) =
5853 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5854 {
5855 let member_inline_size =
5856 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
5857 decoder.context,
5858 );
5859 if inlined != (member_inline_size <= 4) {
5860 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5861 }
5862 let inner_offset;
5863 let mut inner_depth = depth.clone();
5864 if inlined {
5865 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5866 inner_offset = next_offset;
5867 } else {
5868 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5869 inner_depth.increment()?;
5870 }
5871 let val_ref = self
5872 .bssid
5873 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
5874 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
5875 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5876 {
5877 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5878 }
5879 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5880 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5881 }
5882 }
5883
5884 next_offset += envelope_size;
5885
5886 while next_offset < end_offset {
5888 _next_ordinal_to_read += 1;
5889 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5890 next_offset += envelope_size;
5891 }
5892
5893 Ok(())
5894 }
5895 }
5896
5897 impl SupplicantStaNetworkSetKeyMgmtRequest {
5898 #[inline(always)]
5899 fn max_ordinal_present(&self) -> u64 {
5900 if let Some(_) = self.key_mgmt_mask {
5901 return 1;
5902 }
5903 0
5904 }
5905 }
5906
5907 impl fidl::encoding::ValueTypeMarker for SupplicantStaNetworkSetKeyMgmtRequest {
5908 type Borrowed<'a> = &'a Self;
5909 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
5910 value
5911 }
5912 }
5913
5914 unsafe impl fidl::encoding::TypeMarker for SupplicantStaNetworkSetKeyMgmtRequest {
5915 type Owned = Self;
5916
5917 #[inline(always)]
5918 fn inline_align(_context: fidl::encoding::Context) -> usize {
5919 8
5920 }
5921
5922 #[inline(always)]
5923 fn inline_size(_context: fidl::encoding::Context) -> usize {
5924 16
5925 }
5926 }
5927
5928 unsafe impl<D: fidl::encoding::ResourceDialect>
5929 fidl::encoding::Encode<SupplicantStaNetworkSetKeyMgmtRequest, D>
5930 for &SupplicantStaNetworkSetKeyMgmtRequest
5931 {
5932 unsafe fn encode(
5933 self,
5934 encoder: &mut fidl::encoding::Encoder<'_, D>,
5935 offset: usize,
5936 mut depth: fidl::encoding::Depth,
5937 ) -> fidl::Result<()> {
5938 encoder.debug_check_bounds::<SupplicantStaNetworkSetKeyMgmtRequest>(offset);
5939 let max_ordinal: u64 = self.max_ordinal_present();
5941 encoder.write_num(max_ordinal, offset);
5942 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
5943 if max_ordinal == 0 {
5945 return Ok(());
5946 }
5947 depth.increment()?;
5948 let envelope_size = 8;
5949 let bytes_len = max_ordinal as usize * envelope_size;
5950 #[allow(unused_variables)]
5951 let offset = encoder.out_of_line_offset(bytes_len);
5952 let mut _prev_end_offset: usize = 0;
5953 if 1 > max_ordinal {
5954 return Ok(());
5955 }
5956
5957 let cur_offset: usize = (1 - 1) * envelope_size;
5960
5961 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5963
5964 fidl::encoding::encode_in_envelope_optional::<KeyMgmtMask, D>(
5969 self.key_mgmt_mask
5970 .as_ref()
5971 .map(<KeyMgmtMask as fidl::encoding::ValueTypeMarker>::borrow),
5972 encoder,
5973 offset + cur_offset,
5974 depth,
5975 )?;
5976
5977 _prev_end_offset = cur_offset + envelope_size;
5978
5979 Ok(())
5980 }
5981 }
5982
5983 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
5984 for SupplicantStaNetworkSetKeyMgmtRequest
5985 {
5986 #[inline(always)]
5987 fn new_empty() -> Self {
5988 Self::default()
5989 }
5990
5991 unsafe fn decode(
5992 &mut self,
5993 decoder: &mut fidl::encoding::Decoder<'_, D>,
5994 offset: usize,
5995 mut depth: fidl::encoding::Depth,
5996 ) -> fidl::Result<()> {
5997 decoder.debug_check_bounds::<Self>(offset);
5998 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
5999 None => return Err(fidl::Error::NotNullable),
6000 Some(len) => len,
6001 };
6002 if len == 0 {
6004 return Ok(());
6005 };
6006 depth.increment()?;
6007 let envelope_size = 8;
6008 let bytes_len = len * envelope_size;
6009 let offset = decoder.out_of_line_offset(bytes_len)?;
6010 let mut _next_ordinal_to_read = 0;
6012 let mut next_offset = offset;
6013 let end_offset = offset + bytes_len;
6014 _next_ordinal_to_read += 1;
6015 if next_offset >= end_offset {
6016 return Ok(());
6017 }
6018
6019 while _next_ordinal_to_read < 1 {
6021 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6022 _next_ordinal_to_read += 1;
6023 next_offset += envelope_size;
6024 }
6025
6026 let next_out_of_line = decoder.next_out_of_line();
6027 let handles_before = decoder.remaining_handles();
6028 if let Some((inlined, num_bytes, num_handles)) =
6029 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6030 {
6031 let member_inline_size =
6032 <KeyMgmtMask as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6033 if inlined != (member_inline_size <= 4) {
6034 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6035 }
6036 let inner_offset;
6037 let mut inner_depth = depth.clone();
6038 if inlined {
6039 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6040 inner_offset = next_offset;
6041 } else {
6042 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6043 inner_depth.increment()?;
6044 }
6045 let val_ref =
6046 self.key_mgmt_mask.get_or_insert_with(|| fidl::new_empty!(KeyMgmtMask, D));
6047 fidl::decode!(KeyMgmtMask, D, val_ref, decoder, inner_offset, inner_depth)?;
6048 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6049 {
6050 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6051 }
6052 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6053 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6054 }
6055 }
6056
6057 next_offset += envelope_size;
6058
6059 while next_offset < end_offset {
6061 _next_ordinal_to_read += 1;
6062 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6063 next_offset += envelope_size;
6064 }
6065
6066 Ok(())
6067 }
6068 }
6069
6070 impl SupplicantStaNetworkSetPskPassphraseRequest {
6071 #[inline(always)]
6072 fn max_ordinal_present(&self) -> u64 {
6073 if let Some(_) = self.passphrase {
6074 return 1;
6075 }
6076 0
6077 }
6078 }
6079
6080 impl fidl::encoding::ValueTypeMarker for SupplicantStaNetworkSetPskPassphraseRequest {
6081 type Borrowed<'a> = &'a Self;
6082 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
6083 value
6084 }
6085 }
6086
6087 unsafe impl fidl::encoding::TypeMarker for SupplicantStaNetworkSetPskPassphraseRequest {
6088 type Owned = Self;
6089
6090 #[inline(always)]
6091 fn inline_align(_context: fidl::encoding::Context) -> usize {
6092 8
6093 }
6094
6095 #[inline(always)]
6096 fn inline_size(_context: fidl::encoding::Context) -> usize {
6097 16
6098 }
6099 }
6100
6101 unsafe impl<D: fidl::encoding::ResourceDialect>
6102 fidl::encoding::Encode<SupplicantStaNetworkSetPskPassphraseRequest, D>
6103 for &SupplicantStaNetworkSetPskPassphraseRequest
6104 {
6105 unsafe fn encode(
6106 self,
6107 encoder: &mut fidl::encoding::Encoder<'_, D>,
6108 offset: usize,
6109 mut depth: fidl::encoding::Depth,
6110 ) -> fidl::Result<()> {
6111 encoder.debug_check_bounds::<SupplicantStaNetworkSetPskPassphraseRequest>(offset);
6112 let max_ordinal: u64 = self.max_ordinal_present();
6114 encoder.write_num(max_ordinal, offset);
6115 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
6116 if max_ordinal == 0 {
6118 return Ok(());
6119 }
6120 depth.increment()?;
6121 let envelope_size = 8;
6122 let bytes_len = max_ordinal as usize * envelope_size;
6123 #[allow(unused_variables)]
6124 let offset = encoder.out_of_line_offset(bytes_len);
6125 let mut _prev_end_offset: usize = 0;
6126 if 1 > max_ordinal {
6127 return Ok(());
6128 }
6129
6130 let cur_offset: usize = (1 - 1) * envelope_size;
6133
6134 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6136
6137 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<u8>, D>(
6142 self.passphrase.as_ref().map(<fidl::encoding::UnboundedVector<u8> as fidl::encoding::ValueTypeMarker>::borrow),
6143 encoder, offset + cur_offset, depth
6144 )?;
6145
6146 _prev_end_offset = cur_offset + envelope_size;
6147
6148 Ok(())
6149 }
6150 }
6151
6152 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
6153 for SupplicantStaNetworkSetPskPassphraseRequest
6154 {
6155 #[inline(always)]
6156 fn new_empty() -> Self {
6157 Self::default()
6158 }
6159
6160 unsafe fn decode(
6161 &mut self,
6162 decoder: &mut fidl::encoding::Decoder<'_, D>,
6163 offset: usize,
6164 mut depth: fidl::encoding::Depth,
6165 ) -> fidl::Result<()> {
6166 decoder.debug_check_bounds::<Self>(offset);
6167 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
6168 None => return Err(fidl::Error::NotNullable),
6169 Some(len) => len,
6170 };
6171 if len == 0 {
6173 return Ok(());
6174 };
6175 depth.increment()?;
6176 let envelope_size = 8;
6177 let bytes_len = len * envelope_size;
6178 let offset = decoder.out_of_line_offset(bytes_len)?;
6179 let mut _next_ordinal_to_read = 0;
6181 let mut next_offset = offset;
6182 let end_offset = offset + bytes_len;
6183 _next_ordinal_to_read += 1;
6184 if next_offset >= end_offset {
6185 return Ok(());
6186 }
6187
6188 while _next_ordinal_to_read < 1 {
6190 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6191 _next_ordinal_to_read += 1;
6192 next_offset += envelope_size;
6193 }
6194
6195 let next_out_of_line = decoder.next_out_of_line();
6196 let handles_before = decoder.remaining_handles();
6197 if let Some((inlined, num_bytes, num_handles)) =
6198 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6199 {
6200 let member_inline_size = <fidl::encoding::UnboundedVector<u8> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6201 if inlined != (member_inline_size <= 4) {
6202 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6203 }
6204 let inner_offset;
6205 let mut inner_depth = depth.clone();
6206 if inlined {
6207 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6208 inner_offset = next_offset;
6209 } else {
6210 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6211 inner_depth.increment()?;
6212 }
6213 let val_ref = self.passphrase.get_or_insert_with(|| {
6214 fidl::new_empty!(fidl::encoding::UnboundedVector<u8>, D)
6215 });
6216 fidl::decode!(
6217 fidl::encoding::UnboundedVector<u8>,
6218 D,
6219 val_ref,
6220 decoder,
6221 inner_offset,
6222 inner_depth
6223 )?;
6224 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6225 {
6226 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6227 }
6228 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6229 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6230 }
6231 }
6232
6233 next_offset += envelope_size;
6234
6235 while next_offset < end_offset {
6237 _next_ordinal_to_read += 1;
6238 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6239 next_offset += envelope_size;
6240 }
6241
6242 Ok(())
6243 }
6244 }
6245
6246 impl SupplicantStaNetworkSetSaePasswordRequest {
6247 #[inline(always)]
6248 fn max_ordinal_present(&self) -> u64 {
6249 if let Some(_) = self.password {
6250 return 1;
6251 }
6252 0
6253 }
6254 }
6255
6256 impl fidl::encoding::ValueTypeMarker for SupplicantStaNetworkSetSaePasswordRequest {
6257 type Borrowed<'a> = &'a Self;
6258 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
6259 value
6260 }
6261 }
6262
6263 unsafe impl fidl::encoding::TypeMarker for SupplicantStaNetworkSetSaePasswordRequest {
6264 type Owned = Self;
6265
6266 #[inline(always)]
6267 fn inline_align(_context: fidl::encoding::Context) -> usize {
6268 8
6269 }
6270
6271 #[inline(always)]
6272 fn inline_size(_context: fidl::encoding::Context) -> usize {
6273 16
6274 }
6275 }
6276
6277 unsafe impl<D: fidl::encoding::ResourceDialect>
6278 fidl::encoding::Encode<SupplicantStaNetworkSetSaePasswordRequest, D>
6279 for &SupplicantStaNetworkSetSaePasswordRequest
6280 {
6281 unsafe fn encode(
6282 self,
6283 encoder: &mut fidl::encoding::Encoder<'_, D>,
6284 offset: usize,
6285 mut depth: fidl::encoding::Depth,
6286 ) -> fidl::Result<()> {
6287 encoder.debug_check_bounds::<SupplicantStaNetworkSetSaePasswordRequest>(offset);
6288 let max_ordinal: u64 = self.max_ordinal_present();
6290 encoder.write_num(max_ordinal, offset);
6291 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
6292 if max_ordinal == 0 {
6294 return Ok(());
6295 }
6296 depth.increment()?;
6297 let envelope_size = 8;
6298 let bytes_len = max_ordinal as usize * envelope_size;
6299 #[allow(unused_variables)]
6300 let offset = encoder.out_of_line_offset(bytes_len);
6301 let mut _prev_end_offset: usize = 0;
6302 if 1 > max_ordinal {
6303 return Ok(());
6304 }
6305
6306 let cur_offset: usize = (1 - 1) * envelope_size;
6309
6310 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6312
6313 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<u8>, D>(
6318 self.password.as_ref().map(<fidl::encoding::UnboundedVector<u8> as fidl::encoding::ValueTypeMarker>::borrow),
6319 encoder, offset + cur_offset, depth
6320 )?;
6321
6322 _prev_end_offset = cur_offset + envelope_size;
6323
6324 Ok(())
6325 }
6326 }
6327
6328 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
6329 for SupplicantStaNetworkSetSaePasswordRequest
6330 {
6331 #[inline(always)]
6332 fn new_empty() -> Self {
6333 Self::default()
6334 }
6335
6336 unsafe fn decode(
6337 &mut self,
6338 decoder: &mut fidl::encoding::Decoder<'_, D>,
6339 offset: usize,
6340 mut depth: fidl::encoding::Depth,
6341 ) -> fidl::Result<()> {
6342 decoder.debug_check_bounds::<Self>(offset);
6343 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
6344 None => return Err(fidl::Error::NotNullable),
6345 Some(len) => len,
6346 };
6347 if len == 0 {
6349 return Ok(());
6350 };
6351 depth.increment()?;
6352 let envelope_size = 8;
6353 let bytes_len = len * envelope_size;
6354 let offset = decoder.out_of_line_offset(bytes_len)?;
6355 let mut _next_ordinal_to_read = 0;
6357 let mut next_offset = offset;
6358 let end_offset = offset + bytes_len;
6359 _next_ordinal_to_read += 1;
6360 if next_offset >= end_offset {
6361 return Ok(());
6362 }
6363
6364 while _next_ordinal_to_read < 1 {
6366 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6367 _next_ordinal_to_read += 1;
6368 next_offset += envelope_size;
6369 }
6370
6371 let next_out_of_line = decoder.next_out_of_line();
6372 let handles_before = decoder.remaining_handles();
6373 if let Some((inlined, num_bytes, num_handles)) =
6374 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6375 {
6376 let member_inline_size = <fidl::encoding::UnboundedVector<u8> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6377 if inlined != (member_inline_size <= 4) {
6378 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6379 }
6380 let inner_offset;
6381 let mut inner_depth = depth.clone();
6382 if inlined {
6383 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6384 inner_offset = next_offset;
6385 } else {
6386 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6387 inner_depth.increment()?;
6388 }
6389 let val_ref = self.password.get_or_insert_with(|| {
6390 fidl::new_empty!(fidl::encoding::UnboundedVector<u8>, D)
6391 });
6392 fidl::decode!(
6393 fidl::encoding::UnboundedVector<u8>,
6394 D,
6395 val_ref,
6396 decoder,
6397 inner_offset,
6398 inner_depth
6399 )?;
6400 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6401 {
6402 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6403 }
6404 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6405 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6406 }
6407 }
6408
6409 next_offset += envelope_size;
6410
6411 while next_offset < end_offset {
6413 _next_ordinal_to_read += 1;
6414 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6415 next_offset += envelope_size;
6416 }
6417
6418 Ok(())
6419 }
6420 }
6421
6422 impl SupplicantStaNetworkSetSsidRequest {
6423 #[inline(always)]
6424 fn max_ordinal_present(&self) -> u64 {
6425 if let Some(_) = self.ssid {
6426 return 1;
6427 }
6428 0
6429 }
6430 }
6431
6432 impl fidl::encoding::ValueTypeMarker for SupplicantStaNetworkSetSsidRequest {
6433 type Borrowed<'a> = &'a Self;
6434 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
6435 value
6436 }
6437 }
6438
6439 unsafe impl fidl::encoding::TypeMarker for SupplicantStaNetworkSetSsidRequest {
6440 type Owned = Self;
6441
6442 #[inline(always)]
6443 fn inline_align(_context: fidl::encoding::Context) -> usize {
6444 8
6445 }
6446
6447 #[inline(always)]
6448 fn inline_size(_context: fidl::encoding::Context) -> usize {
6449 16
6450 }
6451 }
6452
6453 unsafe impl<D: fidl::encoding::ResourceDialect>
6454 fidl::encoding::Encode<SupplicantStaNetworkSetSsidRequest, D>
6455 for &SupplicantStaNetworkSetSsidRequest
6456 {
6457 unsafe fn encode(
6458 self,
6459 encoder: &mut fidl::encoding::Encoder<'_, D>,
6460 offset: usize,
6461 mut depth: fidl::encoding::Depth,
6462 ) -> fidl::Result<()> {
6463 encoder.debug_check_bounds::<SupplicantStaNetworkSetSsidRequest>(offset);
6464 let max_ordinal: u64 = self.max_ordinal_present();
6466 encoder.write_num(max_ordinal, offset);
6467 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
6468 if max_ordinal == 0 {
6470 return Ok(());
6471 }
6472 depth.increment()?;
6473 let envelope_size = 8;
6474 let bytes_len = max_ordinal as usize * envelope_size;
6475 #[allow(unused_variables)]
6476 let offset = encoder.out_of_line_offset(bytes_len);
6477 let mut _prev_end_offset: usize = 0;
6478 if 1 > max_ordinal {
6479 return Ok(());
6480 }
6481
6482 let cur_offset: usize = (1 - 1) * envelope_size;
6485
6486 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6488
6489 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<u8, 32>, D>(
6494 self.ssid.as_ref().map(
6495 <fidl::encoding::Vector<u8, 32> as fidl::encoding::ValueTypeMarker>::borrow,
6496 ),
6497 encoder,
6498 offset + cur_offset,
6499 depth,
6500 )?;
6501
6502 _prev_end_offset = cur_offset + envelope_size;
6503
6504 Ok(())
6505 }
6506 }
6507
6508 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
6509 for SupplicantStaNetworkSetSsidRequest
6510 {
6511 #[inline(always)]
6512 fn new_empty() -> Self {
6513 Self::default()
6514 }
6515
6516 unsafe fn decode(
6517 &mut self,
6518 decoder: &mut fidl::encoding::Decoder<'_, D>,
6519 offset: usize,
6520 mut depth: fidl::encoding::Depth,
6521 ) -> fidl::Result<()> {
6522 decoder.debug_check_bounds::<Self>(offset);
6523 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
6524 None => return Err(fidl::Error::NotNullable),
6525 Some(len) => len,
6526 };
6527 if len == 0 {
6529 return Ok(());
6530 };
6531 depth.increment()?;
6532 let envelope_size = 8;
6533 let bytes_len = len * envelope_size;
6534 let offset = decoder.out_of_line_offset(bytes_len)?;
6535 let mut _next_ordinal_to_read = 0;
6537 let mut next_offset = offset;
6538 let end_offset = offset + bytes_len;
6539 _next_ordinal_to_read += 1;
6540 if next_offset >= end_offset {
6541 return Ok(());
6542 }
6543
6544 while _next_ordinal_to_read < 1 {
6546 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6547 _next_ordinal_to_read += 1;
6548 next_offset += envelope_size;
6549 }
6550
6551 let next_out_of_line = decoder.next_out_of_line();
6552 let handles_before = decoder.remaining_handles();
6553 if let Some((inlined, num_bytes, num_handles)) =
6554 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6555 {
6556 let member_inline_size =
6557 <fidl::encoding::Vector<u8, 32> as fidl::encoding::TypeMarker>::inline_size(
6558 decoder.context,
6559 );
6560 if inlined != (member_inline_size <= 4) {
6561 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6562 }
6563 let inner_offset;
6564 let mut inner_depth = depth.clone();
6565 if inlined {
6566 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6567 inner_offset = next_offset;
6568 } else {
6569 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6570 inner_depth.increment()?;
6571 }
6572 let val_ref = self
6573 .ssid
6574 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<u8, 32>, D));
6575 fidl::decode!(fidl::encoding::Vector<u8, 32>, D, val_ref, decoder, inner_offset, inner_depth)?;
6576 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6577 {
6578 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6579 }
6580 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6581 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6582 }
6583 }
6584
6585 next_offset += envelope_size;
6586
6587 while next_offset < end_offset {
6589 _next_ordinal_to_read += 1;
6590 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6591 next_offset += envelope_size;
6592 }
6593
6594 Ok(())
6595 }
6596 }
6597
6598 impl SupplicantStaNetworkSetWepKeyRequest {
6599 #[inline(always)]
6600 fn max_ordinal_present(&self) -> u64 {
6601 if let Some(_) = self.key_idx {
6602 return 2;
6603 }
6604 if let Some(_) = self.key {
6605 return 1;
6606 }
6607 0
6608 }
6609 }
6610
6611 impl fidl::encoding::ValueTypeMarker for SupplicantStaNetworkSetWepKeyRequest {
6612 type Borrowed<'a> = &'a Self;
6613 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
6614 value
6615 }
6616 }
6617
6618 unsafe impl fidl::encoding::TypeMarker for SupplicantStaNetworkSetWepKeyRequest {
6619 type Owned = Self;
6620
6621 #[inline(always)]
6622 fn inline_align(_context: fidl::encoding::Context) -> usize {
6623 8
6624 }
6625
6626 #[inline(always)]
6627 fn inline_size(_context: fidl::encoding::Context) -> usize {
6628 16
6629 }
6630 }
6631
6632 unsafe impl<D: fidl::encoding::ResourceDialect>
6633 fidl::encoding::Encode<SupplicantStaNetworkSetWepKeyRequest, D>
6634 for &SupplicantStaNetworkSetWepKeyRequest
6635 {
6636 unsafe fn encode(
6637 self,
6638 encoder: &mut fidl::encoding::Encoder<'_, D>,
6639 offset: usize,
6640 mut depth: fidl::encoding::Depth,
6641 ) -> fidl::Result<()> {
6642 encoder.debug_check_bounds::<SupplicantStaNetworkSetWepKeyRequest>(offset);
6643 let max_ordinal: u64 = self.max_ordinal_present();
6645 encoder.write_num(max_ordinal, offset);
6646 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
6647 if max_ordinal == 0 {
6649 return Ok(());
6650 }
6651 depth.increment()?;
6652 let envelope_size = 8;
6653 let bytes_len = max_ordinal as usize * envelope_size;
6654 #[allow(unused_variables)]
6655 let offset = encoder.out_of_line_offset(bytes_len);
6656 let mut _prev_end_offset: usize = 0;
6657 if 1 > max_ordinal {
6658 return Ok(());
6659 }
6660
6661 let cur_offset: usize = (1 - 1) * envelope_size;
6664
6665 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6667
6668 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<u8>, D>(
6673 self.key.as_ref().map(<fidl::encoding::UnboundedVector<u8> as fidl::encoding::ValueTypeMarker>::borrow),
6674 encoder, offset + cur_offset, depth
6675 )?;
6676
6677 _prev_end_offset = cur_offset + envelope_size;
6678 if 2 > max_ordinal {
6679 return Ok(());
6680 }
6681
6682 let cur_offset: usize = (2 - 1) * envelope_size;
6685
6686 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6688
6689 fidl::encoding::encode_in_envelope_optional::<i32, D>(
6694 self.key_idx.as_ref().map(<i32 as fidl::encoding::ValueTypeMarker>::borrow),
6695 encoder,
6696 offset + cur_offset,
6697 depth,
6698 )?;
6699
6700 _prev_end_offset = cur_offset + envelope_size;
6701
6702 Ok(())
6703 }
6704 }
6705
6706 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
6707 for SupplicantStaNetworkSetWepKeyRequest
6708 {
6709 #[inline(always)]
6710 fn new_empty() -> Self {
6711 Self::default()
6712 }
6713
6714 unsafe fn decode(
6715 &mut self,
6716 decoder: &mut fidl::encoding::Decoder<'_, D>,
6717 offset: usize,
6718 mut depth: fidl::encoding::Depth,
6719 ) -> fidl::Result<()> {
6720 decoder.debug_check_bounds::<Self>(offset);
6721 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
6722 None => return Err(fidl::Error::NotNullable),
6723 Some(len) => len,
6724 };
6725 if len == 0 {
6727 return Ok(());
6728 };
6729 depth.increment()?;
6730 let envelope_size = 8;
6731 let bytes_len = len * envelope_size;
6732 let offset = decoder.out_of_line_offset(bytes_len)?;
6733 let mut _next_ordinal_to_read = 0;
6735 let mut next_offset = offset;
6736 let end_offset = offset + bytes_len;
6737 _next_ordinal_to_read += 1;
6738 if next_offset >= end_offset {
6739 return Ok(());
6740 }
6741
6742 while _next_ordinal_to_read < 1 {
6744 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6745 _next_ordinal_to_read += 1;
6746 next_offset += envelope_size;
6747 }
6748
6749 let next_out_of_line = decoder.next_out_of_line();
6750 let handles_before = decoder.remaining_handles();
6751 if let Some((inlined, num_bytes, num_handles)) =
6752 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6753 {
6754 let member_inline_size = <fidl::encoding::UnboundedVector<u8> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6755 if inlined != (member_inline_size <= 4) {
6756 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6757 }
6758 let inner_offset;
6759 let mut inner_depth = depth.clone();
6760 if inlined {
6761 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6762 inner_offset = next_offset;
6763 } else {
6764 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6765 inner_depth.increment()?;
6766 }
6767 let val_ref = self.key.get_or_insert_with(|| {
6768 fidl::new_empty!(fidl::encoding::UnboundedVector<u8>, D)
6769 });
6770 fidl::decode!(
6771 fidl::encoding::UnboundedVector<u8>,
6772 D,
6773 val_ref,
6774 decoder,
6775 inner_offset,
6776 inner_depth
6777 )?;
6778 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6779 {
6780 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6781 }
6782 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6783 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6784 }
6785 }
6786
6787 next_offset += envelope_size;
6788 _next_ordinal_to_read += 1;
6789 if next_offset >= end_offset {
6790 return Ok(());
6791 }
6792
6793 while _next_ordinal_to_read < 2 {
6795 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6796 _next_ordinal_to_read += 1;
6797 next_offset += envelope_size;
6798 }
6799
6800 let next_out_of_line = decoder.next_out_of_line();
6801 let handles_before = decoder.remaining_handles();
6802 if let Some((inlined, num_bytes, num_handles)) =
6803 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6804 {
6805 let member_inline_size =
6806 <i32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6807 if inlined != (member_inline_size <= 4) {
6808 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6809 }
6810 let inner_offset;
6811 let mut inner_depth = depth.clone();
6812 if inlined {
6813 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6814 inner_offset = next_offset;
6815 } else {
6816 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6817 inner_depth.increment()?;
6818 }
6819 let val_ref = self.key_idx.get_or_insert_with(|| fidl::new_empty!(i32, D));
6820 fidl::decode!(i32, D, val_ref, decoder, inner_offset, inner_depth)?;
6821 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6822 {
6823 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6824 }
6825 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6826 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6827 }
6828 }
6829
6830 next_offset += envelope_size;
6831
6832 while next_offset < end_offset {
6834 _next_ordinal_to_read += 1;
6835 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6836 next_offset += envelope_size;
6837 }
6838
6839 Ok(())
6840 }
6841 }
6842
6843 impl SupplicantStaNetworkSetWepTxKeyIdxRequest {
6844 #[inline(always)]
6845 fn max_ordinal_present(&self) -> u64 {
6846 if let Some(_) = self.key_idx {
6847 return 1;
6848 }
6849 0
6850 }
6851 }
6852
6853 impl fidl::encoding::ValueTypeMarker for SupplicantStaNetworkSetWepTxKeyIdxRequest {
6854 type Borrowed<'a> = &'a Self;
6855 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
6856 value
6857 }
6858 }
6859
6860 unsafe impl fidl::encoding::TypeMarker for SupplicantStaNetworkSetWepTxKeyIdxRequest {
6861 type Owned = Self;
6862
6863 #[inline(always)]
6864 fn inline_align(_context: fidl::encoding::Context) -> usize {
6865 8
6866 }
6867
6868 #[inline(always)]
6869 fn inline_size(_context: fidl::encoding::Context) -> usize {
6870 16
6871 }
6872 }
6873
6874 unsafe impl<D: fidl::encoding::ResourceDialect>
6875 fidl::encoding::Encode<SupplicantStaNetworkSetWepTxKeyIdxRequest, D>
6876 for &SupplicantStaNetworkSetWepTxKeyIdxRequest
6877 {
6878 unsafe fn encode(
6879 self,
6880 encoder: &mut fidl::encoding::Encoder<'_, D>,
6881 offset: usize,
6882 mut depth: fidl::encoding::Depth,
6883 ) -> fidl::Result<()> {
6884 encoder.debug_check_bounds::<SupplicantStaNetworkSetWepTxKeyIdxRequest>(offset);
6885 let max_ordinal: u64 = self.max_ordinal_present();
6887 encoder.write_num(max_ordinal, offset);
6888 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
6889 if max_ordinal == 0 {
6891 return Ok(());
6892 }
6893 depth.increment()?;
6894 let envelope_size = 8;
6895 let bytes_len = max_ordinal as usize * envelope_size;
6896 #[allow(unused_variables)]
6897 let offset = encoder.out_of_line_offset(bytes_len);
6898 let mut _prev_end_offset: usize = 0;
6899 if 1 > max_ordinal {
6900 return Ok(());
6901 }
6902
6903 let cur_offset: usize = (1 - 1) * envelope_size;
6906
6907 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6909
6910 fidl::encoding::encode_in_envelope_optional::<i32, D>(
6915 self.key_idx.as_ref().map(<i32 as fidl::encoding::ValueTypeMarker>::borrow),
6916 encoder,
6917 offset + cur_offset,
6918 depth,
6919 )?;
6920
6921 _prev_end_offset = cur_offset + envelope_size;
6922
6923 Ok(())
6924 }
6925 }
6926
6927 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
6928 for SupplicantStaNetworkSetWepTxKeyIdxRequest
6929 {
6930 #[inline(always)]
6931 fn new_empty() -> Self {
6932 Self::default()
6933 }
6934
6935 unsafe fn decode(
6936 &mut self,
6937 decoder: &mut fidl::encoding::Decoder<'_, D>,
6938 offset: usize,
6939 mut depth: fidl::encoding::Depth,
6940 ) -> fidl::Result<()> {
6941 decoder.debug_check_bounds::<Self>(offset);
6942 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
6943 None => return Err(fidl::Error::NotNullable),
6944 Some(len) => len,
6945 };
6946 if len == 0 {
6948 return Ok(());
6949 };
6950 depth.increment()?;
6951 let envelope_size = 8;
6952 let bytes_len = len * envelope_size;
6953 let offset = decoder.out_of_line_offset(bytes_len)?;
6954 let mut _next_ordinal_to_read = 0;
6956 let mut next_offset = offset;
6957 let end_offset = offset + bytes_len;
6958 _next_ordinal_to_read += 1;
6959 if next_offset >= end_offset {
6960 return Ok(());
6961 }
6962
6963 while _next_ordinal_to_read < 1 {
6965 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6966 _next_ordinal_to_read += 1;
6967 next_offset += envelope_size;
6968 }
6969
6970 let next_out_of_line = decoder.next_out_of_line();
6971 let handles_before = decoder.remaining_handles();
6972 if let Some((inlined, num_bytes, num_handles)) =
6973 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6974 {
6975 let member_inline_size =
6976 <i32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6977 if inlined != (member_inline_size <= 4) {
6978 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6979 }
6980 let inner_offset;
6981 let mut inner_depth = depth.clone();
6982 if inlined {
6983 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6984 inner_offset = next_offset;
6985 } else {
6986 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6987 inner_depth.increment()?;
6988 }
6989 let val_ref = self.key_idx.get_or_insert_with(|| fidl::new_empty!(i32, D));
6990 fidl::decode!(i32, D, val_ref, decoder, inner_offset, inner_depth)?;
6991 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6992 {
6993 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6994 }
6995 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6996 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6997 }
6998 }
6999
7000 next_offset += envelope_size;
7001
7002 while next_offset < end_offset {
7004 _next_ordinal_to_read += 1;
7005 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7006 next_offset += envelope_size;
7007 }
7008
7009 Ok(())
7010 }
7011 }
7012
7013 impl WifiChipGetAvailableModesResponse {
7014 #[inline(always)]
7015 fn max_ordinal_present(&self) -> u64 {
7016 if let Some(_) = self.chip_modes {
7017 return 1;
7018 }
7019 0
7020 }
7021 }
7022
7023 impl fidl::encoding::ValueTypeMarker for WifiChipGetAvailableModesResponse {
7024 type Borrowed<'a> = &'a Self;
7025 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
7026 value
7027 }
7028 }
7029
7030 unsafe impl fidl::encoding::TypeMarker for WifiChipGetAvailableModesResponse {
7031 type Owned = Self;
7032
7033 #[inline(always)]
7034 fn inline_align(_context: fidl::encoding::Context) -> usize {
7035 8
7036 }
7037
7038 #[inline(always)]
7039 fn inline_size(_context: fidl::encoding::Context) -> usize {
7040 16
7041 }
7042 }
7043
7044 unsafe impl<D: fidl::encoding::ResourceDialect>
7045 fidl::encoding::Encode<WifiChipGetAvailableModesResponse, D>
7046 for &WifiChipGetAvailableModesResponse
7047 {
7048 unsafe fn encode(
7049 self,
7050 encoder: &mut fidl::encoding::Encoder<'_, D>,
7051 offset: usize,
7052 mut depth: fidl::encoding::Depth,
7053 ) -> fidl::Result<()> {
7054 encoder.debug_check_bounds::<WifiChipGetAvailableModesResponse>(offset);
7055 let max_ordinal: u64 = self.max_ordinal_present();
7057 encoder.write_num(max_ordinal, offset);
7058 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
7059 if max_ordinal == 0 {
7061 return Ok(());
7062 }
7063 depth.increment()?;
7064 let envelope_size = 8;
7065 let bytes_len = max_ordinal as usize * envelope_size;
7066 #[allow(unused_variables)]
7067 let offset = encoder.out_of_line_offset(bytes_len);
7068 let mut _prev_end_offset: usize = 0;
7069 if 1 > max_ordinal {
7070 return Ok(());
7071 }
7072
7073 let cur_offset: usize = (1 - 1) * envelope_size;
7076
7077 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7079
7080 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<ChipMode>, D>(
7085 self.chip_modes.as_ref().map(<fidl::encoding::UnboundedVector<ChipMode> as fidl::encoding::ValueTypeMarker>::borrow),
7086 encoder, offset + cur_offset, depth
7087 )?;
7088
7089 _prev_end_offset = cur_offset + envelope_size;
7090
7091 Ok(())
7092 }
7093 }
7094
7095 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
7096 for WifiChipGetAvailableModesResponse
7097 {
7098 #[inline(always)]
7099 fn new_empty() -> Self {
7100 Self::default()
7101 }
7102
7103 unsafe fn decode(
7104 &mut self,
7105 decoder: &mut fidl::encoding::Decoder<'_, D>,
7106 offset: usize,
7107 mut depth: fidl::encoding::Depth,
7108 ) -> fidl::Result<()> {
7109 decoder.debug_check_bounds::<Self>(offset);
7110 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
7111 None => return Err(fidl::Error::NotNullable),
7112 Some(len) => len,
7113 };
7114 if len == 0 {
7116 return Ok(());
7117 };
7118 depth.increment()?;
7119 let envelope_size = 8;
7120 let bytes_len = len * envelope_size;
7121 let offset = decoder.out_of_line_offset(bytes_len)?;
7122 let mut _next_ordinal_to_read = 0;
7124 let mut next_offset = offset;
7125 let end_offset = offset + bytes_len;
7126 _next_ordinal_to_read += 1;
7127 if next_offset >= end_offset {
7128 return Ok(());
7129 }
7130
7131 while _next_ordinal_to_read < 1 {
7133 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7134 _next_ordinal_to_read += 1;
7135 next_offset += envelope_size;
7136 }
7137
7138 let next_out_of_line = decoder.next_out_of_line();
7139 let handles_before = decoder.remaining_handles();
7140 if let Some((inlined, num_bytes, num_handles)) =
7141 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7142 {
7143 let member_inline_size = <fidl::encoding::UnboundedVector<ChipMode> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7144 if inlined != (member_inline_size <= 4) {
7145 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7146 }
7147 let inner_offset;
7148 let mut inner_depth = depth.clone();
7149 if inlined {
7150 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7151 inner_offset = next_offset;
7152 } else {
7153 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7154 inner_depth.increment()?;
7155 }
7156 let val_ref = self.chip_modes.get_or_insert_with(|| {
7157 fidl::new_empty!(fidl::encoding::UnboundedVector<ChipMode>, D)
7158 });
7159 fidl::decode!(
7160 fidl::encoding::UnboundedVector<ChipMode>,
7161 D,
7162 val_ref,
7163 decoder,
7164 inner_offset,
7165 inner_depth
7166 )?;
7167 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7168 {
7169 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7170 }
7171 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7172 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7173 }
7174 }
7175
7176 next_offset += envelope_size;
7177
7178 while next_offset < end_offset {
7180 _next_ordinal_to_read += 1;
7181 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7182 next_offset += envelope_size;
7183 }
7184
7185 Ok(())
7186 }
7187 }
7188
7189 impl WifiChipGetCapabilitiesResponse {
7190 #[inline(always)]
7191 fn max_ordinal_present(&self) -> u64 {
7192 if let Some(_) = self.capabilities_mask {
7193 return 1;
7194 }
7195 0
7196 }
7197 }
7198
7199 impl fidl::encoding::ValueTypeMarker for WifiChipGetCapabilitiesResponse {
7200 type Borrowed<'a> = &'a Self;
7201 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
7202 value
7203 }
7204 }
7205
7206 unsafe impl fidl::encoding::TypeMarker for WifiChipGetCapabilitiesResponse {
7207 type Owned = Self;
7208
7209 #[inline(always)]
7210 fn inline_align(_context: fidl::encoding::Context) -> usize {
7211 8
7212 }
7213
7214 #[inline(always)]
7215 fn inline_size(_context: fidl::encoding::Context) -> usize {
7216 16
7217 }
7218 }
7219
7220 unsafe impl<D: fidl::encoding::ResourceDialect>
7221 fidl::encoding::Encode<WifiChipGetCapabilitiesResponse, D>
7222 for &WifiChipGetCapabilitiesResponse
7223 {
7224 unsafe fn encode(
7225 self,
7226 encoder: &mut fidl::encoding::Encoder<'_, D>,
7227 offset: usize,
7228 mut depth: fidl::encoding::Depth,
7229 ) -> fidl::Result<()> {
7230 encoder.debug_check_bounds::<WifiChipGetCapabilitiesResponse>(offset);
7231 let max_ordinal: u64 = self.max_ordinal_present();
7233 encoder.write_num(max_ordinal, offset);
7234 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
7235 if max_ordinal == 0 {
7237 return Ok(());
7238 }
7239 depth.increment()?;
7240 let envelope_size = 8;
7241 let bytes_len = max_ordinal as usize * envelope_size;
7242 #[allow(unused_variables)]
7243 let offset = encoder.out_of_line_offset(bytes_len);
7244 let mut _prev_end_offset: usize = 0;
7245 if 1 > max_ordinal {
7246 return Ok(());
7247 }
7248
7249 let cur_offset: usize = (1 - 1) * envelope_size;
7252
7253 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7255
7256 fidl::encoding::encode_in_envelope_optional::<u32, D>(
7261 self.capabilities_mask
7262 .as_ref()
7263 .map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
7264 encoder,
7265 offset + cur_offset,
7266 depth,
7267 )?;
7268
7269 _prev_end_offset = cur_offset + envelope_size;
7270
7271 Ok(())
7272 }
7273 }
7274
7275 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
7276 for WifiChipGetCapabilitiesResponse
7277 {
7278 #[inline(always)]
7279 fn new_empty() -> Self {
7280 Self::default()
7281 }
7282
7283 unsafe fn decode(
7284 &mut self,
7285 decoder: &mut fidl::encoding::Decoder<'_, D>,
7286 offset: usize,
7287 mut depth: fidl::encoding::Depth,
7288 ) -> fidl::Result<()> {
7289 decoder.debug_check_bounds::<Self>(offset);
7290 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
7291 None => return Err(fidl::Error::NotNullable),
7292 Some(len) => len,
7293 };
7294 if len == 0 {
7296 return Ok(());
7297 };
7298 depth.increment()?;
7299 let envelope_size = 8;
7300 let bytes_len = len * envelope_size;
7301 let offset = decoder.out_of_line_offset(bytes_len)?;
7302 let mut _next_ordinal_to_read = 0;
7304 let mut next_offset = offset;
7305 let end_offset = offset + bytes_len;
7306 _next_ordinal_to_read += 1;
7307 if next_offset >= end_offset {
7308 return Ok(());
7309 }
7310
7311 while _next_ordinal_to_read < 1 {
7313 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7314 _next_ordinal_to_read += 1;
7315 next_offset += envelope_size;
7316 }
7317
7318 let next_out_of_line = decoder.next_out_of_line();
7319 let handles_before = decoder.remaining_handles();
7320 if let Some((inlined, num_bytes, num_handles)) =
7321 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7322 {
7323 let member_inline_size =
7324 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7325 if inlined != (member_inline_size <= 4) {
7326 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7327 }
7328 let inner_offset;
7329 let mut inner_depth = depth.clone();
7330 if inlined {
7331 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7332 inner_offset = next_offset;
7333 } else {
7334 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7335 inner_depth.increment()?;
7336 }
7337 let val_ref =
7338 self.capabilities_mask.get_or_insert_with(|| fidl::new_empty!(u32, D));
7339 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
7340 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7341 {
7342 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7343 }
7344 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7345 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7346 }
7347 }
7348
7349 next_offset += envelope_size;
7350
7351 while next_offset < end_offset {
7353 _next_ordinal_to_read += 1;
7354 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7355 next_offset += envelope_size;
7356 }
7357
7358 Ok(())
7359 }
7360 }
7361
7362 impl WifiChipGetIdResponse {
7363 #[inline(always)]
7364 fn max_ordinal_present(&self) -> u64 {
7365 if let Some(_) = self.id {
7366 return 1;
7367 }
7368 0
7369 }
7370 }
7371
7372 impl fidl::encoding::ValueTypeMarker for WifiChipGetIdResponse {
7373 type Borrowed<'a> = &'a Self;
7374 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
7375 value
7376 }
7377 }
7378
7379 unsafe impl fidl::encoding::TypeMarker for WifiChipGetIdResponse {
7380 type Owned = Self;
7381
7382 #[inline(always)]
7383 fn inline_align(_context: fidl::encoding::Context) -> usize {
7384 8
7385 }
7386
7387 #[inline(always)]
7388 fn inline_size(_context: fidl::encoding::Context) -> usize {
7389 16
7390 }
7391 }
7392
7393 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<WifiChipGetIdResponse, D>
7394 for &WifiChipGetIdResponse
7395 {
7396 unsafe fn encode(
7397 self,
7398 encoder: &mut fidl::encoding::Encoder<'_, D>,
7399 offset: usize,
7400 mut depth: fidl::encoding::Depth,
7401 ) -> fidl::Result<()> {
7402 encoder.debug_check_bounds::<WifiChipGetIdResponse>(offset);
7403 let max_ordinal: u64 = self.max_ordinal_present();
7405 encoder.write_num(max_ordinal, offset);
7406 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
7407 if max_ordinal == 0 {
7409 return Ok(());
7410 }
7411 depth.increment()?;
7412 let envelope_size = 8;
7413 let bytes_len = max_ordinal as usize * envelope_size;
7414 #[allow(unused_variables)]
7415 let offset = encoder.out_of_line_offset(bytes_len);
7416 let mut _prev_end_offset: usize = 0;
7417 if 1 > max_ordinal {
7418 return Ok(());
7419 }
7420
7421 let cur_offset: usize = (1 - 1) * envelope_size;
7424
7425 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7427
7428 fidl::encoding::encode_in_envelope_optional::<u32, D>(
7433 self.id.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
7434 encoder,
7435 offset + cur_offset,
7436 depth,
7437 )?;
7438
7439 _prev_end_offset = cur_offset + envelope_size;
7440
7441 Ok(())
7442 }
7443 }
7444
7445 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for WifiChipGetIdResponse {
7446 #[inline(always)]
7447 fn new_empty() -> Self {
7448 Self::default()
7449 }
7450
7451 unsafe fn decode(
7452 &mut self,
7453 decoder: &mut fidl::encoding::Decoder<'_, D>,
7454 offset: usize,
7455 mut depth: fidl::encoding::Depth,
7456 ) -> fidl::Result<()> {
7457 decoder.debug_check_bounds::<Self>(offset);
7458 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
7459 None => return Err(fidl::Error::NotNullable),
7460 Some(len) => len,
7461 };
7462 if len == 0 {
7464 return Ok(());
7465 };
7466 depth.increment()?;
7467 let envelope_size = 8;
7468 let bytes_len = len * envelope_size;
7469 let offset = decoder.out_of_line_offset(bytes_len)?;
7470 let mut _next_ordinal_to_read = 0;
7472 let mut next_offset = offset;
7473 let end_offset = offset + bytes_len;
7474 _next_ordinal_to_read += 1;
7475 if next_offset >= end_offset {
7476 return Ok(());
7477 }
7478
7479 while _next_ordinal_to_read < 1 {
7481 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7482 _next_ordinal_to_read += 1;
7483 next_offset += envelope_size;
7484 }
7485
7486 let next_out_of_line = decoder.next_out_of_line();
7487 let handles_before = decoder.remaining_handles();
7488 if let Some((inlined, num_bytes, num_handles)) =
7489 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7490 {
7491 let member_inline_size =
7492 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7493 if inlined != (member_inline_size <= 4) {
7494 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7495 }
7496 let inner_offset;
7497 let mut inner_depth = depth.clone();
7498 if inlined {
7499 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7500 inner_offset = next_offset;
7501 } else {
7502 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7503 inner_depth.increment()?;
7504 }
7505 let val_ref = self.id.get_or_insert_with(|| fidl::new_empty!(u32, D));
7506 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
7507 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7508 {
7509 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7510 }
7511 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7512 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7513 }
7514 }
7515
7516 next_offset += envelope_size;
7517
7518 while next_offset < end_offset {
7520 _next_ordinal_to_read += 1;
7521 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7522 next_offset += envelope_size;
7523 }
7524
7525 Ok(())
7526 }
7527 }
7528
7529 impl WifiChipGetModeResponse {
7530 #[inline(always)]
7531 fn max_ordinal_present(&self) -> u64 {
7532 if let Some(_) = self.mode {
7533 return 1;
7534 }
7535 0
7536 }
7537 }
7538
7539 impl fidl::encoding::ValueTypeMarker for WifiChipGetModeResponse {
7540 type Borrowed<'a> = &'a Self;
7541 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
7542 value
7543 }
7544 }
7545
7546 unsafe impl fidl::encoding::TypeMarker for WifiChipGetModeResponse {
7547 type Owned = Self;
7548
7549 #[inline(always)]
7550 fn inline_align(_context: fidl::encoding::Context) -> usize {
7551 8
7552 }
7553
7554 #[inline(always)]
7555 fn inline_size(_context: fidl::encoding::Context) -> usize {
7556 16
7557 }
7558 }
7559
7560 unsafe impl<D: fidl::encoding::ResourceDialect>
7561 fidl::encoding::Encode<WifiChipGetModeResponse, D> for &WifiChipGetModeResponse
7562 {
7563 unsafe fn encode(
7564 self,
7565 encoder: &mut fidl::encoding::Encoder<'_, D>,
7566 offset: usize,
7567 mut depth: fidl::encoding::Depth,
7568 ) -> fidl::Result<()> {
7569 encoder.debug_check_bounds::<WifiChipGetModeResponse>(offset);
7570 let max_ordinal: u64 = self.max_ordinal_present();
7572 encoder.write_num(max_ordinal, offset);
7573 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
7574 if max_ordinal == 0 {
7576 return Ok(());
7577 }
7578 depth.increment()?;
7579 let envelope_size = 8;
7580 let bytes_len = max_ordinal as usize * envelope_size;
7581 #[allow(unused_variables)]
7582 let offset = encoder.out_of_line_offset(bytes_len);
7583 let mut _prev_end_offset: usize = 0;
7584 if 1 > max_ordinal {
7585 return Ok(());
7586 }
7587
7588 let cur_offset: usize = (1 - 1) * envelope_size;
7591
7592 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7594
7595 fidl::encoding::encode_in_envelope_optional::<u32, D>(
7600 self.mode.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
7601 encoder,
7602 offset + cur_offset,
7603 depth,
7604 )?;
7605
7606 _prev_end_offset = cur_offset + envelope_size;
7607
7608 Ok(())
7609 }
7610 }
7611
7612 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
7613 for WifiChipGetModeResponse
7614 {
7615 #[inline(always)]
7616 fn new_empty() -> Self {
7617 Self::default()
7618 }
7619
7620 unsafe fn decode(
7621 &mut self,
7622 decoder: &mut fidl::encoding::Decoder<'_, D>,
7623 offset: usize,
7624 mut depth: fidl::encoding::Depth,
7625 ) -> fidl::Result<()> {
7626 decoder.debug_check_bounds::<Self>(offset);
7627 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
7628 None => return Err(fidl::Error::NotNullable),
7629 Some(len) => len,
7630 };
7631 if len == 0 {
7633 return Ok(());
7634 };
7635 depth.increment()?;
7636 let envelope_size = 8;
7637 let bytes_len = len * envelope_size;
7638 let offset = decoder.out_of_line_offset(bytes_len)?;
7639 let mut _next_ordinal_to_read = 0;
7641 let mut next_offset = offset;
7642 let end_offset = offset + bytes_len;
7643 _next_ordinal_to_read += 1;
7644 if next_offset >= end_offset {
7645 return Ok(());
7646 }
7647
7648 while _next_ordinal_to_read < 1 {
7650 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7651 _next_ordinal_to_read += 1;
7652 next_offset += envelope_size;
7653 }
7654
7655 let next_out_of_line = decoder.next_out_of_line();
7656 let handles_before = decoder.remaining_handles();
7657 if let Some((inlined, num_bytes, num_handles)) =
7658 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7659 {
7660 let member_inline_size =
7661 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7662 if inlined != (member_inline_size <= 4) {
7663 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7664 }
7665 let inner_offset;
7666 let mut inner_depth = depth.clone();
7667 if inlined {
7668 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7669 inner_offset = next_offset;
7670 } else {
7671 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7672 inner_depth.increment()?;
7673 }
7674 let val_ref = self.mode.get_or_insert_with(|| fidl::new_empty!(u32, D));
7675 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
7676 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7677 {
7678 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7679 }
7680 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7681 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7682 }
7683 }
7684
7685 next_offset += envelope_size;
7686
7687 while next_offset < end_offset {
7689 _next_ordinal_to_read += 1;
7690 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7691 next_offset += envelope_size;
7692 }
7693
7694 Ok(())
7695 }
7696 }
7697
7698 impl WifiChipGetStaIfaceNamesResponse {
7699 #[inline(always)]
7700 fn max_ordinal_present(&self) -> u64 {
7701 if let Some(_) = self.iface_names {
7702 return 1;
7703 }
7704 0
7705 }
7706 }
7707
7708 impl fidl::encoding::ValueTypeMarker for WifiChipGetStaIfaceNamesResponse {
7709 type Borrowed<'a> = &'a Self;
7710 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
7711 value
7712 }
7713 }
7714
7715 unsafe impl fidl::encoding::TypeMarker for WifiChipGetStaIfaceNamesResponse {
7716 type Owned = Self;
7717
7718 #[inline(always)]
7719 fn inline_align(_context: fidl::encoding::Context) -> usize {
7720 8
7721 }
7722
7723 #[inline(always)]
7724 fn inline_size(_context: fidl::encoding::Context) -> usize {
7725 16
7726 }
7727 }
7728
7729 unsafe impl<D: fidl::encoding::ResourceDialect>
7730 fidl::encoding::Encode<WifiChipGetStaIfaceNamesResponse, D>
7731 for &WifiChipGetStaIfaceNamesResponse
7732 {
7733 unsafe fn encode(
7734 self,
7735 encoder: &mut fidl::encoding::Encoder<'_, D>,
7736 offset: usize,
7737 mut depth: fidl::encoding::Depth,
7738 ) -> fidl::Result<()> {
7739 encoder.debug_check_bounds::<WifiChipGetStaIfaceNamesResponse>(offset);
7740 let max_ordinal: u64 = self.max_ordinal_present();
7742 encoder.write_num(max_ordinal, offset);
7743 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
7744 if max_ordinal == 0 {
7746 return Ok(());
7747 }
7748 depth.increment()?;
7749 let envelope_size = 8;
7750 let bytes_len = max_ordinal as usize * envelope_size;
7751 #[allow(unused_variables)]
7752 let offset = encoder.out_of_line_offset(bytes_len);
7753 let mut _prev_end_offset: usize = 0;
7754 if 1 > max_ordinal {
7755 return Ok(());
7756 }
7757
7758 let cur_offset: usize = (1 - 1) * envelope_size;
7761
7762 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7764
7765 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<16>>, D>(
7770 self.iface_names.as_ref().map(<fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<16>> as fidl::encoding::ValueTypeMarker>::borrow),
7771 encoder, offset + cur_offset, depth
7772 )?;
7773
7774 _prev_end_offset = cur_offset + envelope_size;
7775
7776 Ok(())
7777 }
7778 }
7779
7780 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
7781 for WifiChipGetStaIfaceNamesResponse
7782 {
7783 #[inline(always)]
7784 fn new_empty() -> Self {
7785 Self::default()
7786 }
7787
7788 unsafe fn decode(
7789 &mut self,
7790 decoder: &mut fidl::encoding::Decoder<'_, D>,
7791 offset: usize,
7792 mut depth: fidl::encoding::Depth,
7793 ) -> fidl::Result<()> {
7794 decoder.debug_check_bounds::<Self>(offset);
7795 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
7796 None => return Err(fidl::Error::NotNullable),
7797 Some(len) => len,
7798 };
7799 if len == 0 {
7801 return Ok(());
7802 };
7803 depth.increment()?;
7804 let envelope_size = 8;
7805 let bytes_len = len * envelope_size;
7806 let offset = decoder.out_of_line_offset(bytes_len)?;
7807 let mut _next_ordinal_to_read = 0;
7809 let mut next_offset = offset;
7810 let end_offset = offset + bytes_len;
7811 _next_ordinal_to_read += 1;
7812 if next_offset >= end_offset {
7813 return Ok(());
7814 }
7815
7816 while _next_ordinal_to_read < 1 {
7818 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7819 _next_ordinal_to_read += 1;
7820 next_offset += envelope_size;
7821 }
7822
7823 let next_out_of_line = decoder.next_out_of_line();
7824 let handles_before = decoder.remaining_handles();
7825 if let Some((inlined, num_bytes, num_handles)) =
7826 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7827 {
7828 let member_inline_size = <fidl::encoding::UnboundedVector<
7829 fidl::encoding::BoundedString<16>,
7830 > as fidl::encoding::TypeMarker>::inline_size(
7831 decoder.context
7832 );
7833 if inlined != (member_inline_size <= 4) {
7834 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7835 }
7836 let inner_offset;
7837 let mut inner_depth = depth.clone();
7838 if inlined {
7839 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7840 inner_offset = next_offset;
7841 } else {
7842 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7843 inner_depth.increment()?;
7844 }
7845 let val_ref = self.iface_names.get_or_insert_with(|| {
7846 fidl::new_empty!(
7847 fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<16>>,
7848 D
7849 )
7850 });
7851 fidl::decode!(
7852 fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<16>>,
7853 D,
7854 val_ref,
7855 decoder,
7856 inner_offset,
7857 inner_depth
7858 )?;
7859 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7860 {
7861 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7862 }
7863 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7864 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7865 }
7866 }
7867
7868 next_offset += envelope_size;
7869
7870 while next_offset < end_offset {
7872 _next_ordinal_to_read += 1;
7873 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7874 next_offset += envelope_size;
7875 }
7876
7877 Ok(())
7878 }
7879 }
7880
7881 impl WifiStaIfaceInstallApfPacketFilterRequest {
7882 #[inline(always)]
7883 fn max_ordinal_present(&self) -> u64 {
7884 if let Some(_) = self.program {
7885 return 1;
7886 }
7887 0
7888 }
7889 }
7890
7891 impl fidl::encoding::ValueTypeMarker for WifiStaIfaceInstallApfPacketFilterRequest {
7892 type Borrowed<'a> = &'a Self;
7893 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
7894 value
7895 }
7896 }
7897
7898 unsafe impl fidl::encoding::TypeMarker for WifiStaIfaceInstallApfPacketFilterRequest {
7899 type Owned = Self;
7900
7901 #[inline(always)]
7902 fn inline_align(_context: fidl::encoding::Context) -> usize {
7903 8
7904 }
7905
7906 #[inline(always)]
7907 fn inline_size(_context: fidl::encoding::Context) -> usize {
7908 16
7909 }
7910 }
7911
7912 unsafe impl<D: fidl::encoding::ResourceDialect>
7913 fidl::encoding::Encode<WifiStaIfaceInstallApfPacketFilterRequest, D>
7914 for &WifiStaIfaceInstallApfPacketFilterRequest
7915 {
7916 unsafe fn encode(
7917 self,
7918 encoder: &mut fidl::encoding::Encoder<'_, D>,
7919 offset: usize,
7920 mut depth: fidl::encoding::Depth,
7921 ) -> fidl::Result<()> {
7922 encoder.debug_check_bounds::<WifiStaIfaceInstallApfPacketFilterRequest>(offset);
7923 let max_ordinal: u64 = self.max_ordinal_present();
7925 encoder.write_num(max_ordinal, offset);
7926 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
7927 if max_ordinal == 0 {
7929 return Ok(());
7930 }
7931 depth.increment()?;
7932 let envelope_size = 8;
7933 let bytes_len = max_ordinal as usize * envelope_size;
7934 #[allow(unused_variables)]
7935 let offset = encoder.out_of_line_offset(bytes_len);
7936 let mut _prev_end_offset: usize = 0;
7937 if 1 > max_ordinal {
7938 return Ok(());
7939 }
7940
7941 let cur_offset: usize = (1 - 1) * envelope_size;
7944
7945 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7947
7948 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<u8>, D>(
7953 self.program.as_ref().map(<fidl::encoding::UnboundedVector<u8> as fidl::encoding::ValueTypeMarker>::borrow),
7954 encoder, offset + cur_offset, depth
7955 )?;
7956
7957 _prev_end_offset = cur_offset + envelope_size;
7958
7959 Ok(())
7960 }
7961 }
7962
7963 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
7964 for WifiStaIfaceInstallApfPacketFilterRequest
7965 {
7966 #[inline(always)]
7967 fn new_empty() -> Self {
7968 Self::default()
7969 }
7970
7971 unsafe fn decode(
7972 &mut self,
7973 decoder: &mut fidl::encoding::Decoder<'_, D>,
7974 offset: usize,
7975 mut depth: fidl::encoding::Depth,
7976 ) -> fidl::Result<()> {
7977 decoder.debug_check_bounds::<Self>(offset);
7978 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
7979 None => return Err(fidl::Error::NotNullable),
7980 Some(len) => len,
7981 };
7982 if len == 0 {
7984 return Ok(());
7985 };
7986 depth.increment()?;
7987 let envelope_size = 8;
7988 let bytes_len = len * envelope_size;
7989 let offset = decoder.out_of_line_offset(bytes_len)?;
7990 let mut _next_ordinal_to_read = 0;
7992 let mut next_offset = offset;
7993 let end_offset = offset + bytes_len;
7994 _next_ordinal_to_read += 1;
7995 if next_offset >= end_offset {
7996 return Ok(());
7997 }
7998
7999 while _next_ordinal_to_read < 1 {
8001 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8002 _next_ordinal_to_read += 1;
8003 next_offset += envelope_size;
8004 }
8005
8006 let next_out_of_line = decoder.next_out_of_line();
8007 let handles_before = decoder.remaining_handles();
8008 if let Some((inlined, num_bytes, num_handles)) =
8009 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8010 {
8011 let member_inline_size = <fidl::encoding::UnboundedVector<u8> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8012 if inlined != (member_inline_size <= 4) {
8013 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8014 }
8015 let inner_offset;
8016 let mut inner_depth = depth.clone();
8017 if inlined {
8018 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8019 inner_offset = next_offset;
8020 } else {
8021 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8022 inner_depth.increment()?;
8023 }
8024 let val_ref = self.program.get_or_insert_with(|| {
8025 fidl::new_empty!(fidl::encoding::UnboundedVector<u8>, D)
8026 });
8027 fidl::decode!(
8028 fidl::encoding::UnboundedVector<u8>,
8029 D,
8030 val_ref,
8031 decoder,
8032 inner_offset,
8033 inner_depth
8034 )?;
8035 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8036 {
8037 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8038 }
8039 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8040 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8041 }
8042 }
8043
8044 next_offset += envelope_size;
8045
8046 while next_offset < end_offset {
8048 _next_ordinal_to_read += 1;
8049 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8050 next_offset += envelope_size;
8051 }
8052
8053 Ok(())
8054 }
8055 }
8056
8057 impl WifiStaIfaceGetApfPacketFilterSupportResponse {
8058 #[inline(always)]
8059 fn max_ordinal_present(&self) -> u64 {
8060 if let Some(_) = self.max_filter_length {
8061 return 2;
8062 }
8063 if let Some(_) = self.version {
8064 return 1;
8065 }
8066 0
8067 }
8068 }
8069
8070 impl fidl::encoding::ValueTypeMarker for WifiStaIfaceGetApfPacketFilterSupportResponse {
8071 type Borrowed<'a> = &'a Self;
8072 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
8073 value
8074 }
8075 }
8076
8077 unsafe impl fidl::encoding::TypeMarker for WifiStaIfaceGetApfPacketFilterSupportResponse {
8078 type Owned = Self;
8079
8080 #[inline(always)]
8081 fn inline_align(_context: fidl::encoding::Context) -> usize {
8082 8
8083 }
8084
8085 #[inline(always)]
8086 fn inline_size(_context: fidl::encoding::Context) -> usize {
8087 16
8088 }
8089 }
8090
8091 unsafe impl<D: fidl::encoding::ResourceDialect>
8092 fidl::encoding::Encode<WifiStaIfaceGetApfPacketFilterSupportResponse, D>
8093 for &WifiStaIfaceGetApfPacketFilterSupportResponse
8094 {
8095 unsafe fn encode(
8096 self,
8097 encoder: &mut fidl::encoding::Encoder<'_, D>,
8098 offset: usize,
8099 mut depth: fidl::encoding::Depth,
8100 ) -> fidl::Result<()> {
8101 encoder.debug_check_bounds::<WifiStaIfaceGetApfPacketFilterSupportResponse>(offset);
8102 let max_ordinal: u64 = self.max_ordinal_present();
8104 encoder.write_num(max_ordinal, offset);
8105 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
8106 if max_ordinal == 0 {
8108 return Ok(());
8109 }
8110 depth.increment()?;
8111 let envelope_size = 8;
8112 let bytes_len = max_ordinal as usize * envelope_size;
8113 #[allow(unused_variables)]
8114 let offset = encoder.out_of_line_offset(bytes_len);
8115 let mut _prev_end_offset: usize = 0;
8116 if 1 > max_ordinal {
8117 return Ok(());
8118 }
8119
8120 let cur_offset: usize = (1 - 1) * envelope_size;
8123
8124 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8126
8127 fidl::encoding::encode_in_envelope_optional::<i32, D>(
8132 self.version.as_ref().map(<i32 as fidl::encoding::ValueTypeMarker>::borrow),
8133 encoder,
8134 offset + cur_offset,
8135 depth,
8136 )?;
8137
8138 _prev_end_offset = cur_offset + envelope_size;
8139 if 2 > max_ordinal {
8140 return Ok(());
8141 }
8142
8143 let cur_offset: usize = (2 - 1) * envelope_size;
8146
8147 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8149
8150 fidl::encoding::encode_in_envelope_optional::<i32, D>(
8155 self.max_filter_length
8156 .as_ref()
8157 .map(<i32 as fidl::encoding::ValueTypeMarker>::borrow),
8158 encoder,
8159 offset + cur_offset,
8160 depth,
8161 )?;
8162
8163 _prev_end_offset = cur_offset + envelope_size;
8164
8165 Ok(())
8166 }
8167 }
8168
8169 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
8170 for WifiStaIfaceGetApfPacketFilterSupportResponse
8171 {
8172 #[inline(always)]
8173 fn new_empty() -> Self {
8174 Self::default()
8175 }
8176
8177 unsafe fn decode(
8178 &mut self,
8179 decoder: &mut fidl::encoding::Decoder<'_, D>,
8180 offset: usize,
8181 mut depth: fidl::encoding::Depth,
8182 ) -> fidl::Result<()> {
8183 decoder.debug_check_bounds::<Self>(offset);
8184 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
8185 None => return Err(fidl::Error::NotNullable),
8186 Some(len) => len,
8187 };
8188 if len == 0 {
8190 return Ok(());
8191 };
8192 depth.increment()?;
8193 let envelope_size = 8;
8194 let bytes_len = len * envelope_size;
8195 let offset = decoder.out_of_line_offset(bytes_len)?;
8196 let mut _next_ordinal_to_read = 0;
8198 let mut next_offset = offset;
8199 let end_offset = offset + bytes_len;
8200 _next_ordinal_to_read += 1;
8201 if next_offset >= end_offset {
8202 return Ok(());
8203 }
8204
8205 while _next_ordinal_to_read < 1 {
8207 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8208 _next_ordinal_to_read += 1;
8209 next_offset += envelope_size;
8210 }
8211
8212 let next_out_of_line = decoder.next_out_of_line();
8213 let handles_before = decoder.remaining_handles();
8214 if let Some((inlined, num_bytes, num_handles)) =
8215 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8216 {
8217 let member_inline_size =
8218 <i32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8219 if inlined != (member_inline_size <= 4) {
8220 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8221 }
8222 let inner_offset;
8223 let mut inner_depth = depth.clone();
8224 if inlined {
8225 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8226 inner_offset = next_offset;
8227 } else {
8228 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8229 inner_depth.increment()?;
8230 }
8231 let val_ref = self.version.get_or_insert_with(|| fidl::new_empty!(i32, D));
8232 fidl::decode!(i32, D, val_ref, decoder, inner_offset, inner_depth)?;
8233 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8234 {
8235 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8236 }
8237 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8238 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8239 }
8240 }
8241
8242 next_offset += envelope_size;
8243 _next_ordinal_to_read += 1;
8244 if next_offset >= end_offset {
8245 return Ok(());
8246 }
8247
8248 while _next_ordinal_to_read < 2 {
8250 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8251 _next_ordinal_to_read += 1;
8252 next_offset += envelope_size;
8253 }
8254
8255 let next_out_of_line = decoder.next_out_of_line();
8256 let handles_before = decoder.remaining_handles();
8257 if let Some((inlined, num_bytes, num_handles)) =
8258 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8259 {
8260 let member_inline_size =
8261 <i32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8262 if inlined != (member_inline_size <= 4) {
8263 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8264 }
8265 let inner_offset;
8266 let mut inner_depth = depth.clone();
8267 if inlined {
8268 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8269 inner_offset = next_offset;
8270 } else {
8271 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8272 inner_depth.increment()?;
8273 }
8274 let val_ref =
8275 self.max_filter_length.get_or_insert_with(|| fidl::new_empty!(i32, D));
8276 fidl::decode!(i32, D, val_ref, decoder, inner_offset, inner_depth)?;
8277 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8278 {
8279 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8280 }
8281 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8282 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8283 }
8284 }
8285
8286 next_offset += envelope_size;
8287
8288 while next_offset < end_offset {
8290 _next_ordinal_to_read += 1;
8291 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8292 next_offset += envelope_size;
8293 }
8294
8295 Ok(())
8296 }
8297 }
8298
8299 impl WifiStaIfaceGetNameResponse {
8300 #[inline(always)]
8301 fn max_ordinal_present(&self) -> u64 {
8302 if let Some(_) = self.iface_name {
8303 return 1;
8304 }
8305 0
8306 }
8307 }
8308
8309 impl fidl::encoding::ValueTypeMarker for WifiStaIfaceGetNameResponse {
8310 type Borrowed<'a> = &'a Self;
8311 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
8312 value
8313 }
8314 }
8315
8316 unsafe impl fidl::encoding::TypeMarker for WifiStaIfaceGetNameResponse {
8317 type Owned = Self;
8318
8319 #[inline(always)]
8320 fn inline_align(_context: fidl::encoding::Context) -> usize {
8321 8
8322 }
8323
8324 #[inline(always)]
8325 fn inline_size(_context: fidl::encoding::Context) -> usize {
8326 16
8327 }
8328 }
8329
8330 unsafe impl<D: fidl::encoding::ResourceDialect>
8331 fidl::encoding::Encode<WifiStaIfaceGetNameResponse, D> for &WifiStaIfaceGetNameResponse
8332 {
8333 unsafe fn encode(
8334 self,
8335 encoder: &mut fidl::encoding::Encoder<'_, D>,
8336 offset: usize,
8337 mut depth: fidl::encoding::Depth,
8338 ) -> fidl::Result<()> {
8339 encoder.debug_check_bounds::<WifiStaIfaceGetNameResponse>(offset);
8340 let max_ordinal: u64 = self.max_ordinal_present();
8342 encoder.write_num(max_ordinal, offset);
8343 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
8344 if max_ordinal == 0 {
8346 return Ok(());
8347 }
8348 depth.increment()?;
8349 let envelope_size = 8;
8350 let bytes_len = max_ordinal as usize * envelope_size;
8351 #[allow(unused_variables)]
8352 let offset = encoder.out_of_line_offset(bytes_len);
8353 let mut _prev_end_offset: usize = 0;
8354 if 1 > max_ordinal {
8355 return Ok(());
8356 }
8357
8358 let cur_offset: usize = (1 - 1) * envelope_size;
8361
8362 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8364
8365 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<16>, D>(
8370 self.iface_name.as_ref().map(
8371 <fidl::encoding::BoundedString<16> as fidl::encoding::ValueTypeMarker>::borrow,
8372 ),
8373 encoder,
8374 offset + cur_offset,
8375 depth,
8376 )?;
8377
8378 _prev_end_offset = cur_offset + envelope_size;
8379
8380 Ok(())
8381 }
8382 }
8383
8384 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
8385 for WifiStaIfaceGetNameResponse
8386 {
8387 #[inline(always)]
8388 fn new_empty() -> Self {
8389 Self::default()
8390 }
8391
8392 unsafe fn decode(
8393 &mut self,
8394 decoder: &mut fidl::encoding::Decoder<'_, D>,
8395 offset: usize,
8396 mut depth: fidl::encoding::Depth,
8397 ) -> fidl::Result<()> {
8398 decoder.debug_check_bounds::<Self>(offset);
8399 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
8400 None => return Err(fidl::Error::NotNullable),
8401 Some(len) => len,
8402 };
8403 if len == 0 {
8405 return Ok(());
8406 };
8407 depth.increment()?;
8408 let envelope_size = 8;
8409 let bytes_len = len * envelope_size;
8410 let offset = decoder.out_of_line_offset(bytes_len)?;
8411 let mut _next_ordinal_to_read = 0;
8413 let mut next_offset = offset;
8414 let end_offset = offset + bytes_len;
8415 _next_ordinal_to_read += 1;
8416 if next_offset >= end_offset {
8417 return Ok(());
8418 }
8419
8420 while _next_ordinal_to_read < 1 {
8422 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8423 _next_ordinal_to_read += 1;
8424 next_offset += envelope_size;
8425 }
8426
8427 let next_out_of_line = decoder.next_out_of_line();
8428 let handles_before = decoder.remaining_handles();
8429 if let Some((inlined, num_bytes, num_handles)) =
8430 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8431 {
8432 let member_inline_size =
8433 <fidl::encoding::BoundedString<16> as fidl::encoding::TypeMarker>::inline_size(
8434 decoder.context,
8435 );
8436 if inlined != (member_inline_size <= 4) {
8437 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8438 }
8439 let inner_offset;
8440 let mut inner_depth = depth.clone();
8441 if inlined {
8442 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8443 inner_offset = next_offset;
8444 } else {
8445 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8446 inner_depth.increment()?;
8447 }
8448 let val_ref = self
8449 .iface_name
8450 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<16>, D));
8451 fidl::decode!(
8452 fidl::encoding::BoundedString<16>,
8453 D,
8454 val_ref,
8455 decoder,
8456 inner_offset,
8457 inner_depth
8458 )?;
8459 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8460 {
8461 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8462 }
8463 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8464 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8465 }
8466 }
8467
8468 next_offset += envelope_size;
8469
8470 while next_offset < end_offset {
8472 _next_ordinal_to_read += 1;
8473 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8474 next_offset += envelope_size;
8475 }
8476
8477 Ok(())
8478 }
8479 }
8480
8481 impl WifiStaIfaceReadApfPacketFilterDataResponse {
8482 #[inline(always)]
8483 fn max_ordinal_present(&self) -> u64 {
8484 if let Some(_) = self.memory {
8485 return 1;
8486 }
8487 0
8488 }
8489 }
8490
8491 impl fidl::encoding::ValueTypeMarker for WifiStaIfaceReadApfPacketFilterDataResponse {
8492 type Borrowed<'a> = &'a Self;
8493 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
8494 value
8495 }
8496 }
8497
8498 unsafe impl fidl::encoding::TypeMarker for WifiStaIfaceReadApfPacketFilterDataResponse {
8499 type Owned = Self;
8500
8501 #[inline(always)]
8502 fn inline_align(_context: fidl::encoding::Context) -> usize {
8503 8
8504 }
8505
8506 #[inline(always)]
8507 fn inline_size(_context: fidl::encoding::Context) -> usize {
8508 16
8509 }
8510 }
8511
8512 unsafe impl<D: fidl::encoding::ResourceDialect>
8513 fidl::encoding::Encode<WifiStaIfaceReadApfPacketFilterDataResponse, D>
8514 for &WifiStaIfaceReadApfPacketFilterDataResponse
8515 {
8516 unsafe fn encode(
8517 self,
8518 encoder: &mut fidl::encoding::Encoder<'_, D>,
8519 offset: usize,
8520 mut depth: fidl::encoding::Depth,
8521 ) -> fidl::Result<()> {
8522 encoder.debug_check_bounds::<WifiStaIfaceReadApfPacketFilterDataResponse>(offset);
8523 let max_ordinal: u64 = self.max_ordinal_present();
8525 encoder.write_num(max_ordinal, offset);
8526 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
8527 if max_ordinal == 0 {
8529 return Ok(());
8530 }
8531 depth.increment()?;
8532 let envelope_size = 8;
8533 let bytes_len = max_ordinal as usize * envelope_size;
8534 #[allow(unused_variables)]
8535 let offset = encoder.out_of_line_offset(bytes_len);
8536 let mut _prev_end_offset: usize = 0;
8537 if 1 > max_ordinal {
8538 return Ok(());
8539 }
8540
8541 let cur_offset: usize = (1 - 1) * envelope_size;
8544
8545 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8547
8548 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<u8>, D>(
8553 self.memory.as_ref().map(<fidl::encoding::UnboundedVector<u8> as fidl::encoding::ValueTypeMarker>::borrow),
8554 encoder, offset + cur_offset, depth
8555 )?;
8556
8557 _prev_end_offset = cur_offset + envelope_size;
8558
8559 Ok(())
8560 }
8561 }
8562
8563 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
8564 for WifiStaIfaceReadApfPacketFilterDataResponse
8565 {
8566 #[inline(always)]
8567 fn new_empty() -> Self {
8568 Self::default()
8569 }
8570
8571 unsafe fn decode(
8572 &mut self,
8573 decoder: &mut fidl::encoding::Decoder<'_, D>,
8574 offset: usize,
8575 mut depth: fidl::encoding::Depth,
8576 ) -> fidl::Result<()> {
8577 decoder.debug_check_bounds::<Self>(offset);
8578 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
8579 None => return Err(fidl::Error::NotNullable),
8580 Some(len) => len,
8581 };
8582 if len == 0 {
8584 return Ok(());
8585 };
8586 depth.increment()?;
8587 let envelope_size = 8;
8588 let bytes_len = len * envelope_size;
8589 let offset = decoder.out_of_line_offset(bytes_len)?;
8590 let mut _next_ordinal_to_read = 0;
8592 let mut next_offset = offset;
8593 let end_offset = offset + bytes_len;
8594 _next_ordinal_to_read += 1;
8595 if next_offset >= end_offset {
8596 return Ok(());
8597 }
8598
8599 while _next_ordinal_to_read < 1 {
8601 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8602 _next_ordinal_to_read += 1;
8603 next_offset += envelope_size;
8604 }
8605
8606 let next_out_of_line = decoder.next_out_of_line();
8607 let handles_before = decoder.remaining_handles();
8608 if let Some((inlined, num_bytes, num_handles)) =
8609 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8610 {
8611 let member_inline_size = <fidl::encoding::UnboundedVector<u8> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8612 if inlined != (member_inline_size <= 4) {
8613 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8614 }
8615 let inner_offset;
8616 let mut inner_depth = depth.clone();
8617 if inlined {
8618 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8619 inner_offset = next_offset;
8620 } else {
8621 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8622 inner_depth.increment()?;
8623 }
8624 let val_ref = self.memory.get_or_insert_with(|| {
8625 fidl::new_empty!(fidl::encoding::UnboundedVector<u8>, D)
8626 });
8627 fidl::decode!(
8628 fidl::encoding::UnboundedVector<u8>,
8629 D,
8630 val_ref,
8631 decoder,
8632 inner_offset,
8633 inner_depth
8634 )?;
8635 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8636 {
8637 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8638 }
8639 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8640 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8641 }
8642 }
8643
8644 next_offset += envelope_size;
8645
8646 while next_offset < end_offset {
8648 _next_ordinal_to_read += 1;
8649 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8650 next_offset += envelope_size;
8651 }
8652
8653 Ok(())
8654 }
8655 }
8656
8657 impl WifiGetChipIdsResponse {
8658 #[inline(always)]
8659 fn max_ordinal_present(&self) -> u64 {
8660 if let Some(_) = self.chip_ids {
8661 return 1;
8662 }
8663 0
8664 }
8665 }
8666
8667 impl fidl::encoding::ValueTypeMarker for WifiGetChipIdsResponse {
8668 type Borrowed<'a> = &'a Self;
8669 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
8670 value
8671 }
8672 }
8673
8674 unsafe impl fidl::encoding::TypeMarker for WifiGetChipIdsResponse {
8675 type Owned = Self;
8676
8677 #[inline(always)]
8678 fn inline_align(_context: fidl::encoding::Context) -> usize {
8679 8
8680 }
8681
8682 #[inline(always)]
8683 fn inline_size(_context: fidl::encoding::Context) -> usize {
8684 16
8685 }
8686 }
8687
8688 unsafe impl<D: fidl::encoding::ResourceDialect>
8689 fidl::encoding::Encode<WifiGetChipIdsResponse, D> for &WifiGetChipIdsResponse
8690 {
8691 unsafe fn encode(
8692 self,
8693 encoder: &mut fidl::encoding::Encoder<'_, D>,
8694 offset: usize,
8695 mut depth: fidl::encoding::Depth,
8696 ) -> fidl::Result<()> {
8697 encoder.debug_check_bounds::<WifiGetChipIdsResponse>(offset);
8698 let max_ordinal: u64 = self.max_ordinal_present();
8700 encoder.write_num(max_ordinal, offset);
8701 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
8702 if max_ordinal == 0 {
8704 return Ok(());
8705 }
8706 depth.increment()?;
8707 let envelope_size = 8;
8708 let bytes_len = max_ordinal as usize * envelope_size;
8709 #[allow(unused_variables)]
8710 let offset = encoder.out_of_line_offset(bytes_len);
8711 let mut _prev_end_offset: usize = 0;
8712 if 1 > max_ordinal {
8713 return Ok(());
8714 }
8715
8716 let cur_offset: usize = (1 - 1) * envelope_size;
8719
8720 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8722
8723 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<u32>, D>(
8728 self.chip_ids.as_ref().map(<fidl::encoding::UnboundedVector<u32> as fidl::encoding::ValueTypeMarker>::borrow),
8729 encoder, offset + cur_offset, depth
8730 )?;
8731
8732 _prev_end_offset = cur_offset + envelope_size;
8733
8734 Ok(())
8735 }
8736 }
8737
8738 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
8739 for WifiGetChipIdsResponse
8740 {
8741 #[inline(always)]
8742 fn new_empty() -> Self {
8743 Self::default()
8744 }
8745
8746 unsafe fn decode(
8747 &mut self,
8748 decoder: &mut fidl::encoding::Decoder<'_, D>,
8749 offset: usize,
8750 mut depth: fidl::encoding::Depth,
8751 ) -> fidl::Result<()> {
8752 decoder.debug_check_bounds::<Self>(offset);
8753 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
8754 None => return Err(fidl::Error::NotNullable),
8755 Some(len) => len,
8756 };
8757 if len == 0 {
8759 return Ok(());
8760 };
8761 depth.increment()?;
8762 let envelope_size = 8;
8763 let bytes_len = len * envelope_size;
8764 let offset = decoder.out_of_line_offset(bytes_len)?;
8765 let mut _next_ordinal_to_read = 0;
8767 let mut next_offset = offset;
8768 let end_offset = offset + bytes_len;
8769 _next_ordinal_to_read += 1;
8770 if next_offset >= end_offset {
8771 return Ok(());
8772 }
8773
8774 while _next_ordinal_to_read < 1 {
8776 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8777 _next_ordinal_to_read += 1;
8778 next_offset += envelope_size;
8779 }
8780
8781 let next_out_of_line = decoder.next_out_of_line();
8782 let handles_before = decoder.remaining_handles();
8783 if let Some((inlined, num_bytes, num_handles)) =
8784 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8785 {
8786 let member_inline_size = <fidl::encoding::UnboundedVector<u32> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8787 if inlined != (member_inline_size <= 4) {
8788 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8789 }
8790 let inner_offset;
8791 let mut inner_depth = depth.clone();
8792 if inlined {
8793 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8794 inner_offset = next_offset;
8795 } else {
8796 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8797 inner_depth.increment()?;
8798 }
8799 let val_ref = self.chip_ids.get_or_insert_with(|| {
8800 fidl::new_empty!(fidl::encoding::UnboundedVector<u32>, D)
8801 });
8802 fidl::decode!(
8803 fidl::encoding::UnboundedVector<u32>,
8804 D,
8805 val_ref,
8806 decoder,
8807 inner_offset,
8808 inner_depth
8809 )?;
8810 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8811 {
8812 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8813 }
8814 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8815 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8816 }
8817 }
8818
8819 next_offset += envelope_size;
8820
8821 while next_offset < end_offset {
8823 _next_ordinal_to_read += 1;
8824 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8825 next_offset += envelope_size;
8826 }
8827
8828 Ok(())
8829 }
8830 }
8831
8832 impl WifiGetStateResponse {
8833 #[inline(always)]
8834 fn max_ordinal_present(&self) -> u64 {
8835 if let Some(_) = self.is_started {
8836 return 1;
8837 }
8838 0
8839 }
8840 }
8841
8842 impl fidl::encoding::ValueTypeMarker for WifiGetStateResponse {
8843 type Borrowed<'a> = &'a Self;
8844 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
8845 value
8846 }
8847 }
8848
8849 unsafe impl fidl::encoding::TypeMarker for WifiGetStateResponse {
8850 type Owned = Self;
8851
8852 #[inline(always)]
8853 fn inline_align(_context: fidl::encoding::Context) -> usize {
8854 8
8855 }
8856
8857 #[inline(always)]
8858 fn inline_size(_context: fidl::encoding::Context) -> usize {
8859 16
8860 }
8861 }
8862
8863 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<WifiGetStateResponse, D>
8864 for &WifiGetStateResponse
8865 {
8866 unsafe fn encode(
8867 self,
8868 encoder: &mut fidl::encoding::Encoder<'_, D>,
8869 offset: usize,
8870 mut depth: fidl::encoding::Depth,
8871 ) -> fidl::Result<()> {
8872 encoder.debug_check_bounds::<WifiGetStateResponse>(offset);
8873 let max_ordinal: u64 = self.max_ordinal_present();
8875 encoder.write_num(max_ordinal, offset);
8876 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
8877 if max_ordinal == 0 {
8879 return Ok(());
8880 }
8881 depth.increment()?;
8882 let envelope_size = 8;
8883 let bytes_len = max_ordinal as usize * envelope_size;
8884 #[allow(unused_variables)]
8885 let offset = encoder.out_of_line_offset(bytes_len);
8886 let mut _prev_end_offset: usize = 0;
8887 if 1 > max_ordinal {
8888 return Ok(());
8889 }
8890
8891 let cur_offset: usize = (1 - 1) * envelope_size;
8894
8895 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8897
8898 fidl::encoding::encode_in_envelope_optional::<bool, D>(
8903 self.is_started.as_ref().map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
8904 encoder,
8905 offset + cur_offset,
8906 depth,
8907 )?;
8908
8909 _prev_end_offset = cur_offset + envelope_size;
8910
8911 Ok(())
8912 }
8913 }
8914
8915 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for WifiGetStateResponse {
8916 #[inline(always)]
8917 fn new_empty() -> Self {
8918 Self::default()
8919 }
8920
8921 unsafe fn decode(
8922 &mut self,
8923 decoder: &mut fidl::encoding::Decoder<'_, D>,
8924 offset: usize,
8925 mut depth: fidl::encoding::Depth,
8926 ) -> fidl::Result<()> {
8927 decoder.debug_check_bounds::<Self>(offset);
8928 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
8929 None => return Err(fidl::Error::NotNullable),
8930 Some(len) => len,
8931 };
8932 if len == 0 {
8934 return Ok(());
8935 };
8936 depth.increment()?;
8937 let envelope_size = 8;
8938 let bytes_len = len * envelope_size;
8939 let offset = decoder.out_of_line_offset(bytes_len)?;
8940 let mut _next_ordinal_to_read = 0;
8942 let mut next_offset = offset;
8943 let end_offset = offset + bytes_len;
8944 _next_ordinal_to_read += 1;
8945 if next_offset >= end_offset {
8946 return Ok(());
8947 }
8948
8949 while _next_ordinal_to_read < 1 {
8951 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8952 _next_ordinal_to_read += 1;
8953 next_offset += envelope_size;
8954 }
8955
8956 let next_out_of_line = decoder.next_out_of_line();
8957 let handles_before = decoder.remaining_handles();
8958 if let Some((inlined, num_bytes, num_handles)) =
8959 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8960 {
8961 let member_inline_size =
8962 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8963 if inlined != (member_inline_size <= 4) {
8964 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8965 }
8966 let inner_offset;
8967 let mut inner_depth = depth.clone();
8968 if inlined {
8969 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8970 inner_offset = next_offset;
8971 } else {
8972 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8973 inner_depth.increment()?;
8974 }
8975 let val_ref = self.is_started.get_or_insert_with(|| fidl::new_empty!(bool, D));
8976 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
8977 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8978 {
8979 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8980 }
8981 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8982 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8983 }
8984 }
8985
8986 next_offset += envelope_size;
8987
8988 while next_offset < end_offset {
8990 _next_ordinal_to_read += 1;
8991 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8992 next_offset += envelope_size;
8993 }
8994
8995 Ok(())
8996 }
8997 }
8998
8999 impl fidl::encoding::ValueTypeMarker for Nl80211Message {
9000 type Borrowed<'a> = &'a Self;
9001 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
9002 value
9003 }
9004 }
9005
9006 unsafe impl fidl::encoding::TypeMarker for Nl80211Message {
9007 type Owned = Self;
9008
9009 #[inline(always)]
9010 fn inline_align(_context: fidl::encoding::Context) -> usize {
9011 8
9012 }
9013
9014 #[inline(always)]
9015 fn inline_size(_context: fidl::encoding::Context) -> usize {
9016 16
9017 }
9018 }
9019
9020 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Nl80211Message, D>
9021 for &Nl80211Message
9022 {
9023 #[inline]
9024 unsafe fn encode(
9025 self,
9026 encoder: &mut fidl::encoding::Encoder<'_, D>,
9027 offset: usize,
9028 _depth: fidl::encoding::Depth,
9029 ) -> fidl::Result<()> {
9030 encoder.debug_check_bounds::<Nl80211Message>(offset);
9031 encoder.write_num::<u64>(self.ordinal(), offset);
9032 match self {
9033 Nl80211Message::Done(ref val) => fidl::encoding::encode_in_envelope::<Done, D>(
9034 <Done as fidl::encoding::ValueTypeMarker>::borrow(val),
9035 encoder,
9036 offset + 8,
9037 _depth,
9038 ),
9039 Nl80211Message::Error(ref val) => fidl::encoding::encode_in_envelope::<Error, D>(
9040 <Error as fidl::encoding::ValueTypeMarker>::borrow(val),
9041 encoder,
9042 offset + 8,
9043 _depth,
9044 ),
9045 Nl80211Message::Ack(ref val) => fidl::encoding::encode_in_envelope::<Ack, D>(
9046 <Ack as fidl::encoding::ValueTypeMarker>::borrow(val),
9047 encoder,
9048 offset + 8,
9049 _depth,
9050 ),
9051 Nl80211Message::Message(ref val) => {
9052 fidl::encoding::encode_in_envelope::<Message, D>(
9053 <Message as fidl::encoding::ValueTypeMarker>::borrow(val),
9054 encoder,
9055 offset + 8,
9056 _depth,
9057 )
9058 }
9059 Nl80211Message::__SourceBreaking { .. } => Err(fidl::Error::UnknownUnionTag),
9060 }
9061 }
9062 }
9063
9064 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Nl80211Message {
9065 #[inline(always)]
9066 fn new_empty() -> Self {
9067 Self::__SourceBreaking { unknown_ordinal: 0 }
9068 }
9069
9070 #[inline]
9071 unsafe fn decode(
9072 &mut self,
9073 decoder: &mut fidl::encoding::Decoder<'_, D>,
9074 offset: usize,
9075 mut depth: fidl::encoding::Depth,
9076 ) -> fidl::Result<()> {
9077 decoder.debug_check_bounds::<Self>(offset);
9078 #[allow(unused_variables)]
9079 let next_out_of_line = decoder.next_out_of_line();
9080 let handles_before = decoder.remaining_handles();
9081 let (ordinal, inlined, num_bytes, num_handles) =
9082 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
9083
9084 let member_inline_size = match ordinal {
9085 1 => <Done as fidl::encoding::TypeMarker>::inline_size(decoder.context),
9086 2 => <Error as fidl::encoding::TypeMarker>::inline_size(decoder.context),
9087 3 => <Ack as fidl::encoding::TypeMarker>::inline_size(decoder.context),
9088 4 => <Message as fidl::encoding::TypeMarker>::inline_size(decoder.context),
9089 0 => return Err(fidl::Error::UnknownUnionTag),
9090 _ => num_bytes as usize,
9091 };
9092
9093 if inlined != (member_inline_size <= 4) {
9094 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9095 }
9096 let _inner_offset;
9097 if inlined {
9098 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
9099 _inner_offset = offset + 8;
9100 } else {
9101 depth.increment()?;
9102 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9103 }
9104 match ordinal {
9105 1 => {
9106 #[allow(irrefutable_let_patterns)]
9107 if let Nl80211Message::Done(_) = self {
9108 } else {
9110 *self = Nl80211Message::Done(fidl::new_empty!(Done, D));
9112 }
9113 #[allow(irrefutable_let_patterns)]
9114 if let Nl80211Message::Done(ref mut val) = self {
9115 fidl::decode!(Done, D, val, decoder, _inner_offset, depth)?;
9116 } else {
9117 unreachable!()
9118 }
9119 }
9120 2 => {
9121 #[allow(irrefutable_let_patterns)]
9122 if let Nl80211Message::Error(_) = self {
9123 } else {
9125 *self = Nl80211Message::Error(fidl::new_empty!(Error, D));
9127 }
9128 #[allow(irrefutable_let_patterns)]
9129 if let Nl80211Message::Error(ref mut val) = self {
9130 fidl::decode!(Error, D, val, decoder, _inner_offset, depth)?;
9131 } else {
9132 unreachable!()
9133 }
9134 }
9135 3 => {
9136 #[allow(irrefutable_let_patterns)]
9137 if let Nl80211Message::Ack(_) = self {
9138 } else {
9140 *self = Nl80211Message::Ack(fidl::new_empty!(Ack, D));
9142 }
9143 #[allow(irrefutable_let_patterns)]
9144 if let Nl80211Message::Ack(ref mut val) = self {
9145 fidl::decode!(Ack, D, val, decoder, _inner_offset, depth)?;
9146 } else {
9147 unreachable!()
9148 }
9149 }
9150 4 => {
9151 #[allow(irrefutable_let_patterns)]
9152 if let Nl80211Message::Message(_) = self {
9153 } else {
9155 *self = Nl80211Message::Message(fidl::new_empty!(Message, D));
9157 }
9158 #[allow(irrefutable_let_patterns)]
9159 if let Nl80211Message::Message(ref mut val) = self {
9160 fidl::decode!(Message, D, val, decoder, _inner_offset, depth)?;
9161 } else {
9162 unreachable!()
9163 }
9164 }
9165 #[allow(deprecated)]
9166 ordinal => {
9167 for _ in 0..num_handles {
9168 decoder.drop_next_handle()?;
9169 }
9170 *self = Nl80211Message::__SourceBreaking { unknown_ordinal: ordinal };
9171 }
9172 }
9173 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
9174 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9175 }
9176 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9177 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9178 }
9179 Ok(())
9180 }
9181 }
9182}