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)]
693#[repr(C)]
694pub struct SupplicantStaIfaceGetFactoryMacAddressResponse {
695 pub mac_addr: [u8; 6],
696}
697
698impl fidl::Persistable for SupplicantStaIfaceGetFactoryMacAddressResponse {}
699
700#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
701pub struct WifiChipSelectTxPowerScenarioRequest {
702 pub scenario: WifiChipTxPowerScenario,
703}
704
705impl fidl::Persistable for WifiChipSelectTxPowerScenarioRequest {}
706
707#[derive(Clone, Debug, Default, PartialEq)]
708pub struct ChipConcurrencyCombination {
709 pub limits: Option<Vec<ChipConcurrencyCombinationLimit>>,
710 #[doc(hidden)]
711 pub __source_breaking: fidl::marker::SourceBreaking,
712}
713
714impl fidl::Persistable for ChipConcurrencyCombination {}
715
716#[derive(Clone, Debug, Default, PartialEq)]
717pub struct ChipConcurrencyCombinationLimit {
718 pub types: Option<Vec<IfaceConcurrencyType>>,
719 pub max_ifaces: Option<u32>,
720 #[doc(hidden)]
721 pub __source_breaking: fidl::marker::SourceBreaking,
722}
723
724impl fidl::Persistable for ChipConcurrencyCombinationLimit {}
725
726#[derive(Clone, Debug, Default, PartialEq)]
727pub struct ChipMode {
728 pub id: Option<u32>,
729 pub available_combinations: Option<Vec<ChipConcurrencyCombination>>,
730 #[doc(hidden)]
731 pub __source_breaking: fidl::marker::SourceBreaking,
732}
733
734impl fidl::Persistable for ChipMode {}
735
736#[derive(Clone, Debug, Default, PartialEq)]
737pub struct LinkLayerStats {
738 pub wme: Option<fidl_fuchsia_wlan_stats_common::WmePacketStats>,
739 pub rssi_dbm: Option<i32>,
740 #[doc(hidden)]
741 pub __source_breaking: fidl::marker::SourceBreaking,
742}
743
744impl fidl::Persistable for LinkLayerStats {}
745
746#[derive(Clone, Debug, Default, PartialEq)]
747pub struct SupplicantStaIfaceCallbackOnAssociationRejectedRequest {
748 pub ssid: Option<Vec<u8>>,
749 pub bssid: Option<[u8; 6]>,
750 pub status_code: Option<fidl_fuchsia_wlan_ieee80211_common::StatusCode>,
751 pub timed_out: Option<bool>,
752 #[doc(hidden)]
753 pub __source_breaking: fidl::marker::SourceBreaking,
754}
755
756impl fidl::Persistable for SupplicantStaIfaceCallbackOnAssociationRejectedRequest {}
757
758#[derive(Clone, Debug, Default, PartialEq)]
759pub struct SupplicantStaIfaceCallbackOnDisconnectedRequest {
760 pub bssid: Option<[u8; 6]>,
761 pub locally_generated: Option<bool>,
762 pub reason_code: Option<fidl_fuchsia_wlan_ieee80211_common::ReasonCode>,
763 #[doc(hidden)]
764 pub __source_breaking: fidl::marker::SourceBreaking,
765}
766
767impl fidl::Persistable for SupplicantStaIfaceCallbackOnDisconnectedRequest {}
768
769#[derive(Clone, Debug, Default, PartialEq)]
770pub struct SupplicantStaIfaceCallbackOnStateChangedRequest {
771 pub new_state: Option<StaIfaceCallbackState>,
772 pub bssid: Option<[u8; 6]>,
773 pub id: Option<u32>,
774 pub ssid: Option<Vec<u8>>,
775 #[doc(hidden)]
776 pub __source_breaking: fidl::marker::SourceBreaking,
777}
778
779impl fidl::Persistable for SupplicantStaIfaceCallbackOnStateChangedRequest {}
780
781#[derive(Clone, Debug, Default, PartialEq)]
782pub struct SupplicantStaIfaceSetBtCoexistenceModeRequest {
783 pub mode: Option<BtCoexistenceMode>,
784 #[doc(hidden)]
785 pub __source_breaking: fidl::marker::SourceBreaking,
786}
787
788impl fidl::Persistable for SupplicantStaIfaceSetBtCoexistenceModeRequest {}
789
790#[derive(Clone, Debug, Default, PartialEq)]
791pub struct SupplicantStaIfaceGetMacAddressResponse {
792 pub mac_addr: Option<[u8; 6]>,
793 #[doc(hidden)]
794 pub __source_breaking: fidl::marker::SourceBreaking,
795}
796
797impl fidl::Persistable for SupplicantStaIfaceGetMacAddressResponse {}
798
799#[derive(Clone, Debug, Default, PartialEq)]
800pub struct SupplicantStaIfaceGetSignalPollResultsResponse {
801 pub current_rssi_dbm: Option<i32>,
802 pub tx_bitrate_mbps: Option<u32>,
803 pub rx_bitrate_mbps: Option<u32>,
804 pub frequency_mhz: Option<u32>,
805 #[doc(hidden)]
806 pub __source_breaking: fidl::marker::SourceBreaking,
807}
808
809impl fidl::Persistable for SupplicantStaIfaceGetSignalPollResultsResponse {}
810
811#[derive(Clone, Debug, Default, PartialEq)]
812pub struct SupplicantStaNetworkSetBssidRequest {
813 pub bssid: Option<[u8; 6]>,
814 #[doc(hidden)]
815 pub __source_breaking: fidl::marker::SourceBreaking,
816}
817
818impl fidl::Persistable for SupplicantStaNetworkSetBssidRequest {}
819
820#[derive(Clone, Debug, Default, PartialEq)]
821pub struct SupplicantStaNetworkSetKeyMgmtRequest {
822 pub key_mgmt_mask: Option<KeyMgmtMask>,
823 #[doc(hidden)]
824 pub __source_breaking: fidl::marker::SourceBreaking,
825}
826
827impl fidl::Persistable for SupplicantStaNetworkSetKeyMgmtRequest {}
828
829#[derive(Clone, Debug, Default, PartialEq)]
830pub struct SupplicantStaNetworkSetPskPassphraseRequest {
831 pub passphrase: Option<Vec<u8>>,
832 #[doc(hidden)]
833 pub __source_breaking: fidl::marker::SourceBreaking,
834}
835
836impl fidl::Persistable for SupplicantStaNetworkSetPskPassphraseRequest {}
837
838#[derive(Clone, Debug, Default, PartialEq)]
839pub struct SupplicantStaNetworkSetSaePasswordRequest {
840 pub password: Option<Vec<u8>>,
841 #[doc(hidden)]
842 pub __source_breaking: fidl::marker::SourceBreaking,
843}
844
845impl fidl::Persistable for SupplicantStaNetworkSetSaePasswordRequest {}
846
847#[derive(Clone, Debug, Default, PartialEq)]
848pub struct SupplicantStaNetworkSetSsidRequest {
849 pub ssid: Option<Vec<u8>>,
850 #[doc(hidden)]
851 pub __source_breaking: fidl::marker::SourceBreaking,
852}
853
854impl fidl::Persistable for SupplicantStaNetworkSetSsidRequest {}
855
856#[derive(Clone, Debug, Default, PartialEq)]
857pub struct SupplicantStaNetworkSetWepKeyRequest {
858 pub key: Option<Vec<u8>>,
859 pub key_idx: Option<i32>,
860 #[doc(hidden)]
861 pub __source_breaking: fidl::marker::SourceBreaking,
862}
863
864impl fidl::Persistable for SupplicantStaNetworkSetWepKeyRequest {}
865
866#[derive(Clone, Debug, Default, PartialEq)]
867pub struct SupplicantStaNetworkSetWepTxKeyIdxRequest {
868 pub key_idx: Option<i32>,
869 #[doc(hidden)]
870 pub __source_breaking: fidl::marker::SourceBreaking,
871}
872
873impl fidl::Persistable for SupplicantStaNetworkSetWepTxKeyIdxRequest {}
874
875#[derive(Clone, Debug, Default, PartialEq)]
876pub struct WifiChipGetAvailableModesResponse {
877 pub chip_modes: Option<Vec<ChipMode>>,
878 #[doc(hidden)]
879 pub __source_breaking: fidl::marker::SourceBreaking,
880}
881
882impl fidl::Persistable for WifiChipGetAvailableModesResponse {}
883
884#[derive(Clone, Debug, Default, PartialEq)]
885pub struct WifiChipGetCapabilitiesResponse {
886 pub capabilities_mask: Option<u32>,
887 #[doc(hidden)]
888 pub __source_breaking: fidl::marker::SourceBreaking,
889}
890
891impl fidl::Persistable for WifiChipGetCapabilitiesResponse {}
892
893#[derive(Clone, Debug, Default, PartialEq)]
894pub struct WifiChipGetIdResponse {
895 pub id: Option<u32>,
896 #[doc(hidden)]
897 pub __source_breaking: fidl::marker::SourceBreaking,
898}
899
900impl fidl::Persistable for WifiChipGetIdResponse {}
901
902#[derive(Clone, Debug, Default, PartialEq)]
903pub struct WifiChipGetModeResponse {
904 pub mode: Option<u32>,
905 #[doc(hidden)]
906 pub __source_breaking: fidl::marker::SourceBreaking,
907}
908
909impl fidl::Persistable for WifiChipGetModeResponse {}
910
911#[derive(Clone, Debug, Default, PartialEq)]
912pub struct WifiChipGetStaIfaceNamesResponse {
913 pub iface_names: Option<Vec<String>>,
914 #[doc(hidden)]
915 pub __source_breaking: fidl::marker::SourceBreaking,
916}
917
918impl fidl::Persistable for WifiChipGetStaIfaceNamesResponse {}
919
920#[derive(Clone, Debug, Default, PartialEq)]
921pub struct WifiStaIfaceInstallApfPacketFilterRequest {
922 pub program: Option<Vec<u8>>,
923 #[doc(hidden)]
924 pub __source_breaking: fidl::marker::SourceBreaking,
925}
926
927impl fidl::Persistable for WifiStaIfaceInstallApfPacketFilterRequest {}
928
929#[derive(Clone, Debug, Default, PartialEq)]
930pub struct WifiStaIfaceGetApfPacketFilterSupportResponse {
931 pub version: Option<i32>,
932 pub max_filter_length: Option<i32>,
933 #[doc(hidden)]
934 pub __source_breaking: fidl::marker::SourceBreaking,
935}
936
937impl fidl::Persistable for WifiStaIfaceGetApfPacketFilterSupportResponse {}
938
939#[derive(Clone, Debug, Default, PartialEq)]
940pub struct WifiStaIfaceGetLinkLayerStatsResponse {
941 pub stats: Option<LinkLayerStats>,
942 #[doc(hidden)]
943 pub __source_breaking: fidl::marker::SourceBreaking,
944}
945
946impl fidl::Persistable for WifiStaIfaceGetLinkLayerStatsResponse {}
947
948#[derive(Clone, Debug, Default, PartialEq)]
949pub struct WifiStaIfaceGetNameResponse {
950 pub iface_name: Option<String>,
951 #[doc(hidden)]
952 pub __source_breaking: fidl::marker::SourceBreaking,
953}
954
955impl fidl::Persistable for WifiStaIfaceGetNameResponse {}
956
957#[derive(Clone, Debug, Default, PartialEq)]
958pub struct WifiStaIfaceReadApfPacketFilterDataResponse {
959 pub memory: Option<Vec<u8>>,
960 #[doc(hidden)]
961 pub __source_breaking: fidl::marker::SourceBreaking,
962}
963
964impl fidl::Persistable for WifiStaIfaceReadApfPacketFilterDataResponse {}
965
966#[derive(Clone, Debug, Default, PartialEq)]
967pub struct WifiGetChipIdsResponse {
968 pub chip_ids: Option<Vec<u32>>,
969 #[doc(hidden)]
970 pub __source_breaking: fidl::marker::SourceBreaking,
971}
972
973impl fidl::Persistable for WifiGetChipIdsResponse {}
974
975#[derive(Clone, Debug, Default, PartialEq)]
976pub struct WifiGetStateResponse {
977 pub is_started: Option<bool>,
978 #[doc(hidden)]
979 pub __source_breaking: fidl::marker::SourceBreaking,
980}
981
982impl fidl::Persistable for WifiGetStateResponse {}
983
984#[derive(Clone, Debug)]
985pub enum Nl80211Message {
986 Done(Done),
987 Error(Error),
988 Ack(Ack),
989 Message(Message),
990 #[doc(hidden)]
991 __SourceBreaking {
992 unknown_ordinal: u64,
993 },
994}
995
996#[macro_export]
998macro_rules! Nl80211MessageUnknown {
999 () => {
1000 _
1001 };
1002}
1003
1004impl PartialEq for Nl80211Message {
1006 fn eq(&self, other: &Self) -> bool {
1007 match (self, other) {
1008 (Self::Done(x), Self::Done(y)) => *x == *y,
1009 (Self::Error(x), Self::Error(y)) => *x == *y,
1010 (Self::Ack(x), Self::Ack(y)) => *x == *y,
1011 (Self::Message(x), Self::Message(y)) => *x == *y,
1012 _ => false,
1013 }
1014 }
1015}
1016
1017impl Nl80211Message {
1018 #[inline]
1019 pub fn ordinal(&self) -> u64 {
1020 match *self {
1021 Self::Done(_) => 1,
1022 Self::Error(_) => 2,
1023 Self::Ack(_) => 3,
1024 Self::Message(_) => 4,
1025 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
1026 }
1027 }
1028
1029 #[inline]
1030 pub fn unknown_variant_for_testing() -> Self {
1031 Self::__SourceBreaking { unknown_ordinal: 0 }
1032 }
1033
1034 #[inline]
1035 pub fn is_unknown(&self) -> bool {
1036 match self {
1037 Self::__SourceBreaking { .. } => true,
1038 _ => false,
1039 }
1040 }
1041}
1042
1043impl fidl::Persistable for Nl80211Message {}
1044
1045pub mod nl80211_ordinals {
1046 pub const GET_MULTICAST: u64 = 0x58b73dd089681dc2;
1047 pub const MESSAGE: u64 = 0x6336259e15bb3795;
1048 pub const MESSAGE_V2: u64 = 0x4626796aba1e2987;
1049}
1050
1051pub mod nl80211_multicast_ordinals {
1052 pub const MESSAGE: u64 = 0x4cc9241f302f16c0;
1053}
1054
1055pub mod supplicant_ordinals {
1056 pub const ADD_STA_INTERFACE: u64 = 0x73194b2afe9b367e;
1057 pub const REMOVE_INTERFACE: u64 = 0x7f83e5b75b27d242;
1058}
1059
1060pub mod supplicant_sta_iface_ordinals {
1061 pub const REGISTER_CALLBACK: u64 = 0x1be680e863a8e71;
1062 pub const ADD_NETWORK: u64 = 0xa77cf60628766dc;
1063 pub const DISCONNECT: u64 = 0x52a1d38e0b4871fa;
1064 pub const GET_MAC_ADDRESS: u64 = 0x60591d204a3f537f;
1065 pub const GET_FACTORY_MAC_ADDRESS: u64 = 0x58857179ad71e624;
1066 pub const SET_BT_COEXISTENCE_MODE: u64 = 0x14567ff593a9b154;
1067 pub const SET_POWER_SAVE: u64 = 0x5a04c29320085298;
1068 pub const SET_SUSPEND_MODE_ENABLED: u64 = 0xaf10de85bb7023a;
1069 pub const SET_STA_COUNTRY_CODE: u64 = 0x977e22f9b79b26e;
1070 pub const GET_SIGNAL_POLL_RESULTS: u64 = 0x783512ea6925df61;
1071}
1072
1073pub mod supplicant_sta_iface_callback_ordinals {
1074 pub const ON_STATE_CHANGED: u64 = 0x27e086d26c49eb6c;
1075 pub const ON_DISCONNECTED: u64 = 0x69546475f4dee0cc;
1076 pub const ON_ASSOCIATION_REJECTED: u64 = 0x7ef3961518bed988;
1077}
1078
1079pub mod supplicant_sta_network_ordinals {
1080 pub const SET_BSSID: u64 = 0x10a91d044ee6374d;
1081 pub const CLEAR_BSSID: u64 = 0xbc7ad82f541b267;
1082 pub const SET_SSID: u64 = 0x6b598a7a802e3083;
1083 pub const SET_KEY_MGMT: u64 = 0xc67082685b75a5c;
1084 pub const SET_PSK_PASSPHRASE: u64 = 0xf6d438225979307;
1085 pub const SET_SAE_PASSWORD: u64 = 0x2982737e196747b8;
1086 pub const SET_WEP_KEY: u64 = 0x22a7e25ec81f2dee;
1087 pub const SET_WEP_TX_KEY_IDX: u64 = 0x4f25576c21fcb8cb;
1088 pub const SELECT: u64 = 0x354bc361a0c77b45;
1089}
1090
1091pub mod wifi_ordinals {
1092 pub const REGISTER_EVENT_CALLBACK: u64 = 0x12abbdea948dd67b;
1093 pub const START: u64 = 0x427030e4dc6ec07a;
1094 pub const STOP: u64 = 0x67c9bdf61b2888d;
1095 pub const GET_STATE: u64 = 0x4616114a937d1fb0;
1096 pub const GET_CHIP_IDS: u64 = 0x2fb4f92351d802b5;
1097 pub const GET_CHIP: u64 = 0xef95d8246612540;
1098}
1099
1100pub mod wifi_chip_ordinals {
1101 pub const CREATE_STA_IFACE: u64 = 0x6fb2d5892face7af;
1102 pub const GET_STA_IFACE_NAMES: u64 = 0x349257482df6a000;
1103 pub const GET_STA_IFACE: u64 = 0x6d9704eeb36f28a2;
1104 pub const REMOVE_STA_IFACE: u64 = 0x4cd8eee466f8b04c;
1105 pub const SET_COUNTRY_CODE: u64 = 0x1dfe372d1d61a490;
1106 pub const GET_AVAILABLE_MODES: u64 = 0x1701095b452a3acd;
1107 pub const GET_ID: u64 = 0x37d5197325bb3370;
1108 pub const GET_MODE: u64 = 0x4d209e0f3ac84d6f;
1109 pub const GET_CAPABILITIES: u64 = 0x1b253f396dcaa2e0;
1110 pub const TRIGGER_SUBSYSTEM_RESTART: u64 = 0x42ffcae5aad196f9;
1111 pub const SELECT_TX_POWER_SCENARIO: u64 = 0x19287ab52ea72281;
1112 pub const RESET_TX_POWER_SCENARIO: u64 = 0x46408a2fb1eb9d09;
1113}
1114
1115pub mod wifi_event_callback_ordinals {
1116 pub const ON_START: u64 = 0x61189ff44f9d35f3;
1117 pub const ON_STOP: u64 = 0x58b697bcd475e0f9;
1118 pub const ON_SUBSYSTEM_RESTART: u64 = 0x69dfee4d3475db21;
1119}
1120
1121pub mod wifi_legacy_hal_ordinals {
1122 pub const SELECT_TX_POWER_SCENARIO: u64 = 0x49f42620e0a3caf9;
1123 pub const RESET_TX_POWER_SCENARIO: u64 = 0x6c0f8e9203167d8e;
1124}
1125
1126pub mod wifi_sta_iface_ordinals {
1127 pub const GET_NAME: u64 = 0x5c150b91c80c5789;
1128 pub const SET_SCAN_ONLY_MODE: u64 = 0x22550328583bf0e3;
1129 pub const SET_MAC_ADDRESS: u64 = 0x39c4f355079421b9;
1130 pub const GET_APF_PACKET_FILTER_SUPPORT: u64 = 0x205c538d31d76c8c;
1131 pub const INSTALL_APF_PACKET_FILTER: u64 = 0x6306fbfdb65631ba;
1132 pub const READ_APF_PACKET_FILTER_DATA: u64 = 0x4f39e558ddbca39;
1133 pub const GET_LINK_LAYER_STATS: u64 = 0x6c38ee946b9048cd;
1134}
1135
1136pub mod wlanix_ordinals {
1137 pub const GET_WIFI: u64 = 0x142511f44b2c338c;
1138 pub const GET_SUPPLICANT: u64 = 0x55554b37c4021d3d;
1139 pub const GET_NL80211: u64 = 0x48028a25bd855ef9;
1140 pub const GET_WIFI_LEGACY_HAL: u64 = 0x7302d9bb3b8d1edc;
1141}
1142
1143mod internal {
1144 use super::*;
1145 unsafe impl fidl::encoding::TypeMarker for KeyMgmtMask {
1146 type Owned = Self;
1147
1148 #[inline(always)]
1149 fn inline_align(_context: fidl::encoding::Context) -> usize {
1150 4
1151 }
1152
1153 #[inline(always)]
1154 fn inline_size(_context: fidl::encoding::Context) -> usize {
1155 4
1156 }
1157 }
1158
1159 impl fidl::encoding::ValueTypeMarker for KeyMgmtMask {
1160 type Borrowed<'a> = Self;
1161 #[inline(always)]
1162 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1163 *value
1164 }
1165 }
1166
1167 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for KeyMgmtMask {
1168 #[inline]
1169 unsafe fn encode(
1170 self,
1171 encoder: &mut fidl::encoding::Encoder<'_, D>,
1172 offset: usize,
1173 _depth: fidl::encoding::Depth,
1174 ) -> fidl::Result<()> {
1175 encoder.debug_check_bounds::<Self>(offset);
1176 encoder.write_num(self.bits(), offset);
1177 Ok(())
1178 }
1179 }
1180
1181 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for KeyMgmtMask {
1182 #[inline(always)]
1183 fn new_empty() -> Self {
1184 Self::empty()
1185 }
1186
1187 #[inline]
1188 unsafe fn decode(
1189 &mut self,
1190 decoder: &mut fidl::encoding::Decoder<'_, D>,
1191 offset: usize,
1192 _depth: fidl::encoding::Depth,
1193 ) -> fidl::Result<()> {
1194 decoder.debug_check_bounds::<Self>(offset);
1195 let prim = decoder.read_num::<u32>(offset);
1196 *self = Self::from_bits_allow_unknown(prim);
1197 Ok(())
1198 }
1199 }
1200 unsafe impl fidl::encoding::TypeMarker for BtCoexistenceMode {
1201 type Owned = Self;
1202
1203 #[inline(always)]
1204 fn inline_align(_context: fidl::encoding::Context) -> usize {
1205 std::mem::align_of::<u32>()
1206 }
1207
1208 #[inline(always)]
1209 fn inline_size(_context: fidl::encoding::Context) -> usize {
1210 std::mem::size_of::<u32>()
1211 }
1212
1213 #[inline(always)]
1214 fn encode_is_copy() -> bool {
1215 false
1216 }
1217
1218 #[inline(always)]
1219 fn decode_is_copy() -> bool {
1220 false
1221 }
1222 }
1223
1224 impl fidl::encoding::ValueTypeMarker for BtCoexistenceMode {
1225 type Borrowed<'a> = Self;
1226 #[inline(always)]
1227 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1228 *value
1229 }
1230 }
1231
1232 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
1233 for BtCoexistenceMode
1234 {
1235 #[inline]
1236 unsafe fn encode(
1237 self,
1238 encoder: &mut fidl::encoding::Encoder<'_, D>,
1239 offset: usize,
1240 _depth: fidl::encoding::Depth,
1241 ) -> fidl::Result<()> {
1242 encoder.debug_check_bounds::<Self>(offset);
1243 encoder.write_num(self.into_primitive(), offset);
1244 Ok(())
1245 }
1246 }
1247
1248 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for BtCoexistenceMode {
1249 #[inline(always)]
1250 fn new_empty() -> Self {
1251 Self::unknown()
1252 }
1253
1254 #[inline]
1255 unsafe fn decode(
1256 &mut self,
1257 decoder: &mut fidl::encoding::Decoder<'_, D>,
1258 offset: usize,
1259 _depth: fidl::encoding::Depth,
1260 ) -> fidl::Result<()> {
1261 decoder.debug_check_bounds::<Self>(offset);
1262 let prim = decoder.read_num::<u32>(offset);
1263
1264 *self = Self::from_primitive_allow_unknown(prim);
1265 Ok(())
1266 }
1267 }
1268 unsafe impl fidl::encoding::TypeMarker for IfaceConcurrencyType {
1269 type Owned = Self;
1270
1271 #[inline(always)]
1272 fn inline_align(_context: fidl::encoding::Context) -> usize {
1273 std::mem::align_of::<u32>()
1274 }
1275
1276 #[inline(always)]
1277 fn inline_size(_context: fidl::encoding::Context) -> usize {
1278 std::mem::size_of::<u32>()
1279 }
1280
1281 #[inline(always)]
1282 fn encode_is_copy() -> bool {
1283 false
1284 }
1285
1286 #[inline(always)]
1287 fn decode_is_copy() -> bool {
1288 false
1289 }
1290 }
1291
1292 impl fidl::encoding::ValueTypeMarker for IfaceConcurrencyType {
1293 type Borrowed<'a> = Self;
1294 #[inline(always)]
1295 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1296 *value
1297 }
1298 }
1299
1300 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
1301 for IfaceConcurrencyType
1302 {
1303 #[inline]
1304 unsafe fn encode(
1305 self,
1306 encoder: &mut fidl::encoding::Encoder<'_, D>,
1307 offset: usize,
1308 _depth: fidl::encoding::Depth,
1309 ) -> fidl::Result<()> {
1310 encoder.debug_check_bounds::<Self>(offset);
1311 encoder.write_num(self.into_primitive(), offset);
1312 Ok(())
1313 }
1314 }
1315
1316 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for IfaceConcurrencyType {
1317 #[inline(always)]
1318 fn new_empty() -> Self {
1319 Self::unknown()
1320 }
1321
1322 #[inline]
1323 unsafe fn decode(
1324 &mut self,
1325 decoder: &mut fidl::encoding::Decoder<'_, D>,
1326 offset: usize,
1327 _depth: fidl::encoding::Depth,
1328 ) -> fidl::Result<()> {
1329 decoder.debug_check_bounds::<Self>(offset);
1330 let prim = decoder.read_num::<u32>(offset);
1331
1332 *self = Self::from_primitive_allow_unknown(prim);
1333 Ok(())
1334 }
1335 }
1336 unsafe impl fidl::encoding::TypeMarker for StaIfaceCallbackState {
1337 type Owned = Self;
1338
1339 #[inline(always)]
1340 fn inline_align(_context: fidl::encoding::Context) -> usize {
1341 std::mem::align_of::<u32>()
1342 }
1343
1344 #[inline(always)]
1345 fn inline_size(_context: fidl::encoding::Context) -> usize {
1346 std::mem::size_of::<u32>()
1347 }
1348
1349 #[inline(always)]
1350 fn encode_is_copy() -> bool {
1351 false
1352 }
1353
1354 #[inline(always)]
1355 fn decode_is_copy() -> bool {
1356 false
1357 }
1358 }
1359
1360 impl fidl::encoding::ValueTypeMarker for StaIfaceCallbackState {
1361 type Borrowed<'a> = Self;
1362 #[inline(always)]
1363 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1364 *value
1365 }
1366 }
1367
1368 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
1369 for StaIfaceCallbackState
1370 {
1371 #[inline]
1372 unsafe fn encode(
1373 self,
1374 encoder: &mut fidl::encoding::Encoder<'_, D>,
1375 offset: usize,
1376 _depth: fidl::encoding::Depth,
1377 ) -> fidl::Result<()> {
1378 encoder.debug_check_bounds::<Self>(offset);
1379 encoder.write_num(self.into_primitive(), offset);
1380 Ok(())
1381 }
1382 }
1383
1384 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for StaIfaceCallbackState {
1385 #[inline(always)]
1386 fn new_empty() -> Self {
1387 Self::unknown()
1388 }
1389
1390 #[inline]
1391 unsafe fn decode(
1392 &mut self,
1393 decoder: &mut fidl::encoding::Decoder<'_, D>,
1394 offset: usize,
1395 _depth: fidl::encoding::Depth,
1396 ) -> fidl::Result<()> {
1397 decoder.debug_check_bounds::<Self>(offset);
1398 let prim = decoder.read_num::<u32>(offset);
1399
1400 *self = Self::from_primitive_allow_unknown(prim);
1401 Ok(())
1402 }
1403 }
1404 unsafe impl fidl::encoding::TypeMarker for WifiChipTxPowerScenario {
1405 type Owned = Self;
1406
1407 #[inline(always)]
1408 fn inline_align(_context: fidl::encoding::Context) -> usize {
1409 std::mem::align_of::<u32>()
1410 }
1411
1412 #[inline(always)]
1413 fn inline_size(_context: fidl::encoding::Context) -> usize {
1414 std::mem::size_of::<u32>()
1415 }
1416
1417 #[inline(always)]
1418 fn encode_is_copy() -> bool {
1419 false
1420 }
1421
1422 #[inline(always)]
1423 fn decode_is_copy() -> bool {
1424 false
1425 }
1426 }
1427
1428 impl fidl::encoding::ValueTypeMarker for WifiChipTxPowerScenario {
1429 type Borrowed<'a> = Self;
1430 #[inline(always)]
1431 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1432 *value
1433 }
1434 }
1435
1436 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
1437 for WifiChipTxPowerScenario
1438 {
1439 #[inline]
1440 unsafe fn encode(
1441 self,
1442 encoder: &mut fidl::encoding::Encoder<'_, D>,
1443 offset: usize,
1444 _depth: fidl::encoding::Depth,
1445 ) -> fidl::Result<()> {
1446 encoder.debug_check_bounds::<Self>(offset);
1447 encoder.write_num(self.into_primitive(), offset);
1448 Ok(())
1449 }
1450 }
1451
1452 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1453 for WifiChipTxPowerScenario
1454 {
1455 #[inline(always)]
1456 fn new_empty() -> Self {
1457 Self::unknown()
1458 }
1459
1460 #[inline]
1461 unsafe fn decode(
1462 &mut self,
1463 decoder: &mut fidl::encoding::Decoder<'_, D>,
1464 offset: usize,
1465 _depth: fidl::encoding::Depth,
1466 ) -> fidl::Result<()> {
1467 decoder.debug_check_bounds::<Self>(offset);
1468 let prim = decoder.read_num::<u32>(offset);
1469
1470 *self = Self::from_primitive_allow_unknown(prim);
1471 Ok(())
1472 }
1473 }
1474 unsafe impl fidl::encoding::TypeMarker for WifiLegacyHalStatus {
1475 type Owned = Self;
1476
1477 #[inline(always)]
1478 fn inline_align(_context: fidl::encoding::Context) -> usize {
1479 std::mem::align_of::<u32>()
1480 }
1481
1482 #[inline(always)]
1483 fn inline_size(_context: fidl::encoding::Context) -> usize {
1484 std::mem::size_of::<u32>()
1485 }
1486
1487 #[inline(always)]
1488 fn encode_is_copy() -> bool {
1489 false
1490 }
1491
1492 #[inline(always)]
1493 fn decode_is_copy() -> bool {
1494 false
1495 }
1496 }
1497
1498 impl fidl::encoding::ValueTypeMarker for WifiLegacyHalStatus {
1499 type Borrowed<'a> = Self;
1500 #[inline(always)]
1501 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1502 *value
1503 }
1504 }
1505
1506 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
1507 for WifiLegacyHalStatus
1508 {
1509 #[inline]
1510 unsafe fn encode(
1511 self,
1512 encoder: &mut fidl::encoding::Encoder<'_, D>,
1513 offset: usize,
1514 _depth: fidl::encoding::Depth,
1515 ) -> fidl::Result<()> {
1516 encoder.debug_check_bounds::<Self>(offset);
1517 encoder.write_num(self.into_primitive(), offset);
1518 Ok(())
1519 }
1520 }
1521
1522 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for WifiLegacyHalStatus {
1523 #[inline(always)]
1524 fn new_empty() -> Self {
1525 Self::unknown()
1526 }
1527
1528 #[inline]
1529 unsafe fn decode(
1530 &mut self,
1531 decoder: &mut fidl::encoding::Decoder<'_, D>,
1532 offset: usize,
1533 _depth: fidl::encoding::Depth,
1534 ) -> fidl::Result<()> {
1535 decoder.debug_check_bounds::<Self>(offset);
1536 let prim = decoder.read_num::<u32>(offset);
1537
1538 *self = Self::from_primitive_allow_unknown(prim);
1539 Ok(())
1540 }
1541 }
1542 unsafe impl fidl::encoding::TypeMarker for WifiLegacyHalTxPowerScenario {
1543 type Owned = Self;
1544
1545 #[inline(always)]
1546 fn inline_align(_context: fidl::encoding::Context) -> usize {
1547 std::mem::align_of::<i32>()
1548 }
1549
1550 #[inline(always)]
1551 fn inline_size(_context: fidl::encoding::Context) -> usize {
1552 std::mem::size_of::<i32>()
1553 }
1554
1555 #[inline(always)]
1556 fn encode_is_copy() -> bool {
1557 false
1558 }
1559
1560 #[inline(always)]
1561 fn decode_is_copy() -> bool {
1562 false
1563 }
1564 }
1565
1566 impl fidl::encoding::ValueTypeMarker for WifiLegacyHalTxPowerScenario {
1567 type Borrowed<'a> = Self;
1568 #[inline(always)]
1569 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1570 *value
1571 }
1572 }
1573
1574 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
1575 for WifiLegacyHalTxPowerScenario
1576 {
1577 #[inline]
1578 unsafe fn encode(
1579 self,
1580 encoder: &mut fidl::encoding::Encoder<'_, D>,
1581 offset: usize,
1582 _depth: fidl::encoding::Depth,
1583 ) -> fidl::Result<()> {
1584 encoder.debug_check_bounds::<Self>(offset);
1585 encoder.write_num(self.into_primitive(), offset);
1586 Ok(())
1587 }
1588 }
1589
1590 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1591 for WifiLegacyHalTxPowerScenario
1592 {
1593 #[inline(always)]
1594 fn new_empty() -> Self {
1595 Self::unknown()
1596 }
1597
1598 #[inline]
1599 unsafe fn decode(
1600 &mut self,
1601 decoder: &mut fidl::encoding::Decoder<'_, D>,
1602 offset: usize,
1603 _depth: fidl::encoding::Depth,
1604 ) -> fidl::Result<()> {
1605 decoder.debug_check_bounds::<Self>(offset);
1606 let prim = decoder.read_num::<i32>(offset);
1607
1608 *self = Self::from_primitive_allow_unknown(prim);
1609 Ok(())
1610 }
1611 }
1612 unsafe impl fidl::encoding::TypeMarker for WlanixError {
1613 type Owned = Self;
1614
1615 #[inline(always)]
1616 fn inline_align(_context: fidl::encoding::Context) -> usize {
1617 std::mem::align_of::<u32>()
1618 }
1619
1620 #[inline(always)]
1621 fn inline_size(_context: fidl::encoding::Context) -> usize {
1622 std::mem::size_of::<u32>()
1623 }
1624
1625 #[inline(always)]
1626 fn encode_is_copy() -> bool {
1627 false
1628 }
1629
1630 #[inline(always)]
1631 fn decode_is_copy() -> bool {
1632 false
1633 }
1634 }
1635
1636 impl fidl::encoding::ValueTypeMarker for WlanixError {
1637 type Borrowed<'a> = Self;
1638 #[inline(always)]
1639 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1640 *value
1641 }
1642 }
1643
1644 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for WlanixError {
1645 #[inline]
1646 unsafe fn encode(
1647 self,
1648 encoder: &mut fidl::encoding::Encoder<'_, D>,
1649 offset: usize,
1650 _depth: fidl::encoding::Depth,
1651 ) -> fidl::Result<()> {
1652 encoder.debug_check_bounds::<Self>(offset);
1653 encoder.write_num(self.into_primitive(), offset);
1654 Ok(())
1655 }
1656 }
1657
1658 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for WlanixError {
1659 #[inline(always)]
1660 fn new_empty() -> Self {
1661 Self::unknown()
1662 }
1663
1664 #[inline]
1665 unsafe fn decode(
1666 &mut self,
1667 decoder: &mut fidl::encoding::Decoder<'_, D>,
1668 offset: usize,
1669 _depth: fidl::encoding::Depth,
1670 ) -> fidl::Result<()> {
1671 decoder.debug_check_bounds::<Self>(offset);
1672 let prim = decoder.read_num::<u32>(offset);
1673
1674 *self = Self::from_primitive_allow_unknown(prim);
1675 Ok(())
1676 }
1677 }
1678
1679 impl fidl::encoding::ValueTypeMarker for Ack {
1680 type Borrowed<'a> = &'a Self;
1681 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1682 value
1683 }
1684 }
1685
1686 unsafe impl fidl::encoding::TypeMarker for Ack {
1687 type Owned = Self;
1688
1689 #[inline(always)]
1690 fn inline_align(_context: fidl::encoding::Context) -> usize {
1691 1
1692 }
1693
1694 #[inline(always)]
1695 fn inline_size(_context: fidl::encoding::Context) -> usize {
1696 1
1697 }
1698 }
1699
1700 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Ack, D> for &Ack {
1701 #[inline]
1702 unsafe fn encode(
1703 self,
1704 encoder: &mut fidl::encoding::Encoder<'_, D>,
1705 offset: usize,
1706 _depth: fidl::encoding::Depth,
1707 ) -> fidl::Result<()> {
1708 encoder.debug_check_bounds::<Ack>(offset);
1709 encoder.write_num(0u8, offset);
1710 Ok(())
1711 }
1712 }
1713
1714 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Ack {
1715 #[inline(always)]
1716 fn new_empty() -> Self {
1717 Self
1718 }
1719
1720 #[inline]
1721 unsafe fn decode(
1722 &mut self,
1723 decoder: &mut fidl::encoding::Decoder<'_, D>,
1724 offset: usize,
1725 _depth: fidl::encoding::Depth,
1726 ) -> fidl::Result<()> {
1727 decoder.debug_check_bounds::<Self>(offset);
1728 match decoder.read_num::<u8>(offset) {
1729 0 => Ok(()),
1730 _ => Err(fidl::Error::Invalid),
1731 }
1732 }
1733 }
1734
1735 impl fidl::encoding::ValueTypeMarker for Done {
1736 type Borrowed<'a> = &'a Self;
1737 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1738 value
1739 }
1740 }
1741
1742 unsafe impl fidl::encoding::TypeMarker for Done {
1743 type Owned = Self;
1744
1745 #[inline(always)]
1746 fn inline_align(_context: fidl::encoding::Context) -> usize {
1747 1
1748 }
1749
1750 #[inline(always)]
1751 fn inline_size(_context: fidl::encoding::Context) -> usize {
1752 1
1753 }
1754 }
1755
1756 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Done, D> for &Done {
1757 #[inline]
1758 unsafe fn encode(
1759 self,
1760 encoder: &mut fidl::encoding::Encoder<'_, D>,
1761 offset: usize,
1762 _depth: fidl::encoding::Depth,
1763 ) -> fidl::Result<()> {
1764 encoder.debug_check_bounds::<Done>(offset);
1765 encoder.write_num(0u8, offset);
1766 Ok(())
1767 }
1768 }
1769
1770 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Done {
1771 #[inline(always)]
1772 fn new_empty() -> Self {
1773 Self
1774 }
1775
1776 #[inline]
1777 unsafe fn decode(
1778 &mut self,
1779 decoder: &mut fidl::encoding::Decoder<'_, D>,
1780 offset: usize,
1781 _depth: fidl::encoding::Depth,
1782 ) -> fidl::Result<()> {
1783 decoder.debug_check_bounds::<Self>(offset);
1784 match decoder.read_num::<u8>(offset) {
1785 0 => Ok(()),
1786 _ => Err(fidl::Error::Invalid),
1787 }
1788 }
1789 }
1790
1791 impl fidl::encoding::ValueTypeMarker for Error {
1792 type Borrowed<'a> = &'a Self;
1793 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1794 value
1795 }
1796 }
1797
1798 unsafe impl fidl::encoding::TypeMarker for Error {
1799 type Owned = Self;
1800
1801 #[inline(always)]
1802 fn inline_align(_context: fidl::encoding::Context) -> usize {
1803 4
1804 }
1805
1806 #[inline(always)]
1807 fn inline_size(_context: fidl::encoding::Context) -> usize {
1808 4
1809 }
1810 #[inline(always)]
1811 fn encode_is_copy() -> bool {
1812 true
1813 }
1814
1815 #[inline(always)]
1816 fn decode_is_copy() -> bool {
1817 true
1818 }
1819 }
1820
1821 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Error, D> for &Error {
1822 #[inline]
1823 unsafe fn encode(
1824 self,
1825 encoder: &mut fidl::encoding::Encoder<'_, D>,
1826 offset: usize,
1827 _depth: fidl::encoding::Depth,
1828 ) -> fidl::Result<()> {
1829 encoder.debug_check_bounds::<Error>(offset);
1830 unsafe {
1831 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
1833 (buf_ptr as *mut Error).write_unaligned((self as *const Error).read());
1834 }
1837 Ok(())
1838 }
1839 }
1840 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<i32, D>>
1841 fidl::encoding::Encode<Error, D> for (T0,)
1842 {
1843 #[inline]
1844 unsafe fn encode(
1845 self,
1846 encoder: &mut fidl::encoding::Encoder<'_, D>,
1847 offset: usize,
1848 depth: fidl::encoding::Depth,
1849 ) -> fidl::Result<()> {
1850 encoder.debug_check_bounds::<Error>(offset);
1851 self.0.encode(encoder, offset + 0, depth)?;
1855 Ok(())
1856 }
1857 }
1858
1859 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Error {
1860 #[inline(always)]
1861 fn new_empty() -> Self {
1862 Self { error_code: fidl::new_empty!(i32, D) }
1863 }
1864
1865 #[inline]
1866 unsafe fn decode(
1867 &mut self,
1868 decoder: &mut fidl::encoding::Decoder<'_, D>,
1869 offset: usize,
1870 _depth: fidl::encoding::Depth,
1871 ) -> fidl::Result<()> {
1872 decoder.debug_check_bounds::<Self>(offset);
1873 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
1874 unsafe {
1877 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 4);
1878 }
1879 Ok(())
1880 }
1881 }
1882
1883 impl fidl::encoding::ValueTypeMarker for Message {
1884 type Borrowed<'a> = &'a Self;
1885 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1886 value
1887 }
1888 }
1889
1890 unsafe impl fidl::encoding::TypeMarker for Message {
1891 type Owned = Self;
1892
1893 #[inline(always)]
1894 fn inline_align(_context: fidl::encoding::Context) -> usize {
1895 8
1896 }
1897
1898 #[inline(always)]
1899 fn inline_size(_context: fidl::encoding::Context) -> usize {
1900 16
1901 }
1902 }
1903
1904 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Message, D> for &Message {
1905 #[inline]
1906 unsafe fn encode(
1907 self,
1908 encoder: &mut fidl::encoding::Encoder<'_, D>,
1909 offset: usize,
1910 _depth: fidl::encoding::Depth,
1911 ) -> fidl::Result<()> {
1912 encoder.debug_check_bounds::<Message>(offset);
1913 fidl::encoding::Encode::<Message, D>::encode(
1915 (<fidl::encoding::UnboundedVector<u8> as fidl::encoding::ValueTypeMarker>::borrow(
1916 &self.payload,
1917 ),),
1918 encoder,
1919 offset,
1920 _depth,
1921 )
1922 }
1923 }
1924 unsafe impl<
1925 D: fidl::encoding::ResourceDialect,
1926 T0: fidl::encoding::Encode<fidl::encoding::UnboundedVector<u8>, D>,
1927 > fidl::encoding::Encode<Message, D> for (T0,)
1928 {
1929 #[inline]
1930 unsafe fn encode(
1931 self,
1932 encoder: &mut fidl::encoding::Encoder<'_, D>,
1933 offset: usize,
1934 depth: fidl::encoding::Depth,
1935 ) -> fidl::Result<()> {
1936 encoder.debug_check_bounds::<Message>(offset);
1937 self.0.encode(encoder, offset + 0, depth)?;
1941 Ok(())
1942 }
1943 }
1944
1945 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Message {
1946 #[inline(always)]
1947 fn new_empty() -> Self {
1948 Self { payload: fidl::new_empty!(fidl::encoding::UnboundedVector<u8>, D) }
1949 }
1950
1951 #[inline]
1952 unsafe fn decode(
1953 &mut self,
1954 decoder: &mut fidl::encoding::Decoder<'_, D>,
1955 offset: usize,
1956 _depth: fidl::encoding::Depth,
1957 ) -> fidl::Result<()> {
1958 decoder.debug_check_bounds::<Self>(offset);
1959 fidl::decode!(
1961 fidl::encoding::UnboundedVector<u8>,
1962 D,
1963 &mut self.payload,
1964 decoder,
1965 offset + 0,
1966 _depth
1967 )?;
1968 Ok(())
1969 }
1970 }
1971
1972 impl fidl::encoding::ValueTypeMarker for Nl80211MessageArray {
1973 type Borrowed<'a> = &'a Self;
1974 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1975 value
1976 }
1977 }
1978
1979 unsafe impl fidl::encoding::TypeMarker for Nl80211MessageArray {
1980 type Owned = Self;
1981
1982 #[inline(always)]
1983 fn inline_align(_context: fidl::encoding::Context) -> usize {
1984 8
1985 }
1986
1987 #[inline(always)]
1988 fn inline_size(_context: fidl::encoding::Context) -> usize {
1989 16
1990 }
1991 }
1992
1993 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Nl80211MessageArray, D>
1994 for &Nl80211MessageArray
1995 {
1996 #[inline]
1997 unsafe fn encode(
1998 self,
1999 encoder: &mut fidl::encoding::Encoder<'_, D>,
2000 offset: usize,
2001 _depth: fidl::encoding::Depth,
2002 ) -> fidl::Result<()> {
2003 encoder.debug_check_bounds::<Nl80211MessageArray>(offset);
2004 fidl::encoding::Encode::<Nl80211MessageArray, D>::encode(
2006 (
2007 <fidl::encoding::UnboundedVector<Nl80211Message> as fidl::encoding::ValueTypeMarker>::borrow(&self.messages),
2008 ),
2009 encoder, offset, _depth
2010 )
2011 }
2012 }
2013 unsafe impl<
2014 D: fidl::encoding::ResourceDialect,
2015 T0: fidl::encoding::Encode<fidl::encoding::UnboundedVector<Nl80211Message>, D>,
2016 > fidl::encoding::Encode<Nl80211MessageArray, D> for (T0,)
2017 {
2018 #[inline]
2019 unsafe fn encode(
2020 self,
2021 encoder: &mut fidl::encoding::Encoder<'_, D>,
2022 offset: usize,
2023 depth: fidl::encoding::Depth,
2024 ) -> fidl::Result<()> {
2025 encoder.debug_check_bounds::<Nl80211MessageArray>(offset);
2026 self.0.encode(encoder, offset + 0, depth)?;
2030 Ok(())
2031 }
2032 }
2033
2034 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Nl80211MessageArray {
2035 #[inline(always)]
2036 fn new_empty() -> Self {
2037 Self { messages: fidl::new_empty!(fidl::encoding::UnboundedVector<Nl80211Message>, D) }
2038 }
2039
2040 #[inline]
2041 unsafe fn decode(
2042 &mut self,
2043 decoder: &mut fidl::encoding::Decoder<'_, D>,
2044 offset: usize,
2045 _depth: fidl::encoding::Depth,
2046 ) -> fidl::Result<()> {
2047 decoder.debug_check_bounds::<Self>(offset);
2048 fidl::decode!(
2050 fidl::encoding::UnboundedVector<Nl80211Message>,
2051 D,
2052 &mut self.messages,
2053 decoder,
2054 offset + 0,
2055 _depth
2056 )?;
2057 Ok(())
2058 }
2059 }
2060
2061 impl fidl::encoding::ValueTypeMarker for SupplicantStaIfaceGetFactoryMacAddressResponse {
2062 type Borrowed<'a> = &'a Self;
2063 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2064 value
2065 }
2066 }
2067
2068 unsafe impl fidl::encoding::TypeMarker for SupplicantStaIfaceGetFactoryMacAddressResponse {
2069 type Owned = Self;
2070
2071 #[inline(always)]
2072 fn inline_align(_context: fidl::encoding::Context) -> usize {
2073 1
2074 }
2075
2076 #[inline(always)]
2077 fn inline_size(_context: fidl::encoding::Context) -> usize {
2078 6
2079 }
2080 #[inline(always)]
2081 fn encode_is_copy() -> bool {
2082 true
2083 }
2084
2085 #[inline(always)]
2086 fn decode_is_copy() -> bool {
2087 true
2088 }
2089 }
2090
2091 unsafe impl<D: fidl::encoding::ResourceDialect>
2092 fidl::encoding::Encode<SupplicantStaIfaceGetFactoryMacAddressResponse, D>
2093 for &SupplicantStaIfaceGetFactoryMacAddressResponse
2094 {
2095 #[inline]
2096 unsafe fn encode(
2097 self,
2098 encoder: &mut fidl::encoding::Encoder<'_, D>,
2099 offset: usize,
2100 _depth: fidl::encoding::Depth,
2101 ) -> fidl::Result<()> {
2102 encoder.debug_check_bounds::<SupplicantStaIfaceGetFactoryMacAddressResponse>(offset);
2103 unsafe {
2104 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
2106 (buf_ptr as *mut SupplicantStaIfaceGetFactoryMacAddressResponse).write_unaligned(
2107 (self as *const SupplicantStaIfaceGetFactoryMacAddressResponse).read(),
2108 );
2109 }
2112 Ok(())
2113 }
2114 }
2115 unsafe impl<
2116 D: fidl::encoding::ResourceDialect,
2117 T0: fidl::encoding::Encode<fidl::encoding::Array<u8, 6>, D>,
2118 > fidl::encoding::Encode<SupplicantStaIfaceGetFactoryMacAddressResponse, D> for (T0,)
2119 {
2120 #[inline]
2121 unsafe fn encode(
2122 self,
2123 encoder: &mut fidl::encoding::Encoder<'_, D>,
2124 offset: usize,
2125 depth: fidl::encoding::Depth,
2126 ) -> fidl::Result<()> {
2127 encoder.debug_check_bounds::<SupplicantStaIfaceGetFactoryMacAddressResponse>(offset);
2128 self.0.encode(encoder, offset + 0, depth)?;
2132 Ok(())
2133 }
2134 }
2135
2136 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2137 for SupplicantStaIfaceGetFactoryMacAddressResponse
2138 {
2139 #[inline(always)]
2140 fn new_empty() -> Self {
2141 Self { mac_addr: fidl::new_empty!(fidl::encoding::Array<u8, 6>, D) }
2142 }
2143
2144 #[inline]
2145 unsafe fn decode(
2146 &mut self,
2147 decoder: &mut fidl::encoding::Decoder<'_, D>,
2148 offset: usize,
2149 _depth: fidl::encoding::Depth,
2150 ) -> fidl::Result<()> {
2151 decoder.debug_check_bounds::<Self>(offset);
2152 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
2153 unsafe {
2156 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 6);
2157 }
2158 Ok(())
2159 }
2160 }
2161
2162 impl fidl::encoding::ValueTypeMarker for WifiChipSelectTxPowerScenarioRequest {
2163 type Borrowed<'a> = &'a Self;
2164 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2165 value
2166 }
2167 }
2168
2169 unsafe impl fidl::encoding::TypeMarker for WifiChipSelectTxPowerScenarioRequest {
2170 type Owned = Self;
2171
2172 #[inline(always)]
2173 fn inline_align(_context: fidl::encoding::Context) -> usize {
2174 4
2175 }
2176
2177 #[inline(always)]
2178 fn inline_size(_context: fidl::encoding::Context) -> usize {
2179 4
2180 }
2181 }
2182
2183 unsafe impl<D: fidl::encoding::ResourceDialect>
2184 fidl::encoding::Encode<WifiChipSelectTxPowerScenarioRequest, D>
2185 for &WifiChipSelectTxPowerScenarioRequest
2186 {
2187 #[inline]
2188 unsafe fn encode(
2189 self,
2190 encoder: &mut fidl::encoding::Encoder<'_, D>,
2191 offset: usize,
2192 _depth: fidl::encoding::Depth,
2193 ) -> fidl::Result<()> {
2194 encoder.debug_check_bounds::<WifiChipSelectTxPowerScenarioRequest>(offset);
2195 fidl::encoding::Encode::<WifiChipSelectTxPowerScenarioRequest, D>::encode(
2197 (<WifiChipTxPowerScenario as fidl::encoding::ValueTypeMarker>::borrow(
2198 &self.scenario,
2199 ),),
2200 encoder,
2201 offset,
2202 _depth,
2203 )
2204 }
2205 }
2206 unsafe impl<
2207 D: fidl::encoding::ResourceDialect,
2208 T0: fidl::encoding::Encode<WifiChipTxPowerScenario, D>,
2209 > fidl::encoding::Encode<WifiChipSelectTxPowerScenarioRequest, D> for (T0,)
2210 {
2211 #[inline]
2212 unsafe fn encode(
2213 self,
2214 encoder: &mut fidl::encoding::Encoder<'_, D>,
2215 offset: usize,
2216 depth: fidl::encoding::Depth,
2217 ) -> fidl::Result<()> {
2218 encoder.debug_check_bounds::<WifiChipSelectTxPowerScenarioRequest>(offset);
2219 self.0.encode(encoder, offset + 0, depth)?;
2223 Ok(())
2224 }
2225 }
2226
2227 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2228 for WifiChipSelectTxPowerScenarioRequest
2229 {
2230 #[inline(always)]
2231 fn new_empty() -> Self {
2232 Self { scenario: fidl::new_empty!(WifiChipTxPowerScenario, D) }
2233 }
2234
2235 #[inline]
2236 unsafe fn decode(
2237 &mut self,
2238 decoder: &mut fidl::encoding::Decoder<'_, D>,
2239 offset: usize,
2240 _depth: fidl::encoding::Depth,
2241 ) -> fidl::Result<()> {
2242 decoder.debug_check_bounds::<Self>(offset);
2243 fidl::decode!(
2245 WifiChipTxPowerScenario,
2246 D,
2247 &mut self.scenario,
2248 decoder,
2249 offset + 0,
2250 _depth
2251 )?;
2252 Ok(())
2253 }
2254 }
2255
2256 impl ChipConcurrencyCombination {
2257 #[inline(always)]
2258 fn max_ordinal_present(&self) -> u64 {
2259 if let Some(_) = self.limits {
2260 return 1;
2261 }
2262 0
2263 }
2264 }
2265
2266 impl fidl::encoding::ValueTypeMarker for ChipConcurrencyCombination {
2267 type Borrowed<'a> = &'a Self;
2268 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2269 value
2270 }
2271 }
2272
2273 unsafe impl fidl::encoding::TypeMarker for ChipConcurrencyCombination {
2274 type Owned = Self;
2275
2276 #[inline(always)]
2277 fn inline_align(_context: fidl::encoding::Context) -> usize {
2278 8
2279 }
2280
2281 #[inline(always)]
2282 fn inline_size(_context: fidl::encoding::Context) -> usize {
2283 16
2284 }
2285 }
2286
2287 unsafe impl<D: fidl::encoding::ResourceDialect>
2288 fidl::encoding::Encode<ChipConcurrencyCombination, D> for &ChipConcurrencyCombination
2289 {
2290 unsafe fn encode(
2291 self,
2292 encoder: &mut fidl::encoding::Encoder<'_, D>,
2293 offset: usize,
2294 mut depth: fidl::encoding::Depth,
2295 ) -> fidl::Result<()> {
2296 encoder.debug_check_bounds::<ChipConcurrencyCombination>(offset);
2297 let max_ordinal: u64 = self.max_ordinal_present();
2299 encoder.write_num(max_ordinal, offset);
2300 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
2301 if max_ordinal == 0 {
2303 return Ok(());
2304 }
2305 depth.increment()?;
2306 let envelope_size = 8;
2307 let bytes_len = max_ordinal as usize * envelope_size;
2308 #[allow(unused_variables)]
2309 let offset = encoder.out_of_line_offset(bytes_len);
2310 let mut _prev_end_offset: usize = 0;
2311 if 1 > max_ordinal {
2312 return Ok(());
2313 }
2314
2315 let cur_offset: usize = (1 - 1) * envelope_size;
2318
2319 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2321
2322 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<ChipConcurrencyCombinationLimit>, D>(
2327 self.limits.as_ref().map(<fidl::encoding::UnboundedVector<ChipConcurrencyCombinationLimit> as fidl::encoding::ValueTypeMarker>::borrow),
2328 encoder, offset + cur_offset, depth
2329 )?;
2330
2331 _prev_end_offset = cur_offset + envelope_size;
2332
2333 Ok(())
2334 }
2335 }
2336
2337 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2338 for ChipConcurrencyCombination
2339 {
2340 #[inline(always)]
2341 fn new_empty() -> Self {
2342 Self::default()
2343 }
2344
2345 unsafe fn decode(
2346 &mut self,
2347 decoder: &mut fidl::encoding::Decoder<'_, D>,
2348 offset: usize,
2349 mut depth: fidl::encoding::Depth,
2350 ) -> fidl::Result<()> {
2351 decoder.debug_check_bounds::<Self>(offset);
2352 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
2353 None => return Err(fidl::Error::NotNullable),
2354 Some(len) => len,
2355 };
2356 if len == 0 {
2358 return Ok(());
2359 };
2360 depth.increment()?;
2361 let envelope_size = 8;
2362 let bytes_len = len * envelope_size;
2363 let offset = decoder.out_of_line_offset(bytes_len)?;
2364 let mut _next_ordinal_to_read = 0;
2366 let mut next_offset = offset;
2367 let end_offset = offset + bytes_len;
2368 _next_ordinal_to_read += 1;
2369 if next_offset >= end_offset {
2370 return Ok(());
2371 }
2372
2373 while _next_ordinal_to_read < 1 {
2375 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2376 _next_ordinal_to_read += 1;
2377 next_offset += envelope_size;
2378 }
2379
2380 let next_out_of_line = decoder.next_out_of_line();
2381 let handles_before = decoder.remaining_handles();
2382 if let Some((inlined, num_bytes, num_handles)) =
2383 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2384 {
2385 let member_inline_size = <fidl::encoding::UnboundedVector<
2386 ChipConcurrencyCombinationLimit,
2387 > as fidl::encoding::TypeMarker>::inline_size(
2388 decoder.context
2389 );
2390 if inlined != (member_inline_size <= 4) {
2391 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2392 }
2393 let inner_offset;
2394 let mut inner_depth = depth.clone();
2395 if inlined {
2396 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2397 inner_offset = next_offset;
2398 } else {
2399 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2400 inner_depth.increment()?;
2401 }
2402 let val_ref = self.limits.get_or_insert_with(|| {
2403 fidl::new_empty!(
2404 fidl::encoding::UnboundedVector<ChipConcurrencyCombinationLimit>,
2405 D
2406 )
2407 });
2408 fidl::decode!(
2409 fidl::encoding::UnboundedVector<ChipConcurrencyCombinationLimit>,
2410 D,
2411 val_ref,
2412 decoder,
2413 inner_offset,
2414 inner_depth
2415 )?;
2416 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2417 {
2418 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2419 }
2420 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2421 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2422 }
2423 }
2424
2425 next_offset += envelope_size;
2426
2427 while next_offset < end_offset {
2429 _next_ordinal_to_read += 1;
2430 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2431 next_offset += envelope_size;
2432 }
2433
2434 Ok(())
2435 }
2436 }
2437
2438 impl ChipConcurrencyCombinationLimit {
2439 #[inline(always)]
2440 fn max_ordinal_present(&self) -> u64 {
2441 if let Some(_) = self.max_ifaces {
2442 return 2;
2443 }
2444 if let Some(_) = self.types {
2445 return 1;
2446 }
2447 0
2448 }
2449 }
2450
2451 impl fidl::encoding::ValueTypeMarker for ChipConcurrencyCombinationLimit {
2452 type Borrowed<'a> = &'a Self;
2453 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2454 value
2455 }
2456 }
2457
2458 unsafe impl fidl::encoding::TypeMarker for ChipConcurrencyCombinationLimit {
2459 type Owned = Self;
2460
2461 #[inline(always)]
2462 fn inline_align(_context: fidl::encoding::Context) -> usize {
2463 8
2464 }
2465
2466 #[inline(always)]
2467 fn inline_size(_context: fidl::encoding::Context) -> usize {
2468 16
2469 }
2470 }
2471
2472 unsafe impl<D: fidl::encoding::ResourceDialect>
2473 fidl::encoding::Encode<ChipConcurrencyCombinationLimit, D>
2474 for &ChipConcurrencyCombinationLimit
2475 {
2476 unsafe fn encode(
2477 self,
2478 encoder: &mut fidl::encoding::Encoder<'_, D>,
2479 offset: usize,
2480 mut depth: fidl::encoding::Depth,
2481 ) -> fidl::Result<()> {
2482 encoder.debug_check_bounds::<ChipConcurrencyCombinationLimit>(offset);
2483 let max_ordinal: u64 = self.max_ordinal_present();
2485 encoder.write_num(max_ordinal, offset);
2486 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
2487 if max_ordinal == 0 {
2489 return Ok(());
2490 }
2491 depth.increment()?;
2492 let envelope_size = 8;
2493 let bytes_len = max_ordinal as usize * envelope_size;
2494 #[allow(unused_variables)]
2495 let offset = encoder.out_of_line_offset(bytes_len);
2496 let mut _prev_end_offset: usize = 0;
2497 if 1 > max_ordinal {
2498 return Ok(());
2499 }
2500
2501 let cur_offset: usize = (1 - 1) * envelope_size;
2504
2505 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2507
2508 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<IfaceConcurrencyType>, D>(
2513 self.types.as_ref().map(<fidl::encoding::UnboundedVector<IfaceConcurrencyType> as fidl::encoding::ValueTypeMarker>::borrow),
2514 encoder, offset + cur_offset, depth
2515 )?;
2516
2517 _prev_end_offset = cur_offset + envelope_size;
2518 if 2 > max_ordinal {
2519 return Ok(());
2520 }
2521
2522 let cur_offset: usize = (2 - 1) * envelope_size;
2525
2526 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2528
2529 fidl::encoding::encode_in_envelope_optional::<u32, D>(
2534 self.max_ifaces.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
2535 encoder,
2536 offset + cur_offset,
2537 depth,
2538 )?;
2539
2540 _prev_end_offset = cur_offset + envelope_size;
2541
2542 Ok(())
2543 }
2544 }
2545
2546 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2547 for ChipConcurrencyCombinationLimit
2548 {
2549 #[inline(always)]
2550 fn new_empty() -> Self {
2551 Self::default()
2552 }
2553
2554 unsafe fn decode(
2555 &mut self,
2556 decoder: &mut fidl::encoding::Decoder<'_, D>,
2557 offset: usize,
2558 mut depth: fidl::encoding::Depth,
2559 ) -> fidl::Result<()> {
2560 decoder.debug_check_bounds::<Self>(offset);
2561 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
2562 None => return Err(fidl::Error::NotNullable),
2563 Some(len) => len,
2564 };
2565 if len == 0 {
2567 return Ok(());
2568 };
2569 depth.increment()?;
2570 let envelope_size = 8;
2571 let bytes_len = len * envelope_size;
2572 let offset = decoder.out_of_line_offset(bytes_len)?;
2573 let mut _next_ordinal_to_read = 0;
2575 let mut next_offset = offset;
2576 let end_offset = offset + bytes_len;
2577 _next_ordinal_to_read += 1;
2578 if next_offset >= end_offset {
2579 return Ok(());
2580 }
2581
2582 while _next_ordinal_to_read < 1 {
2584 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2585 _next_ordinal_to_read += 1;
2586 next_offset += envelope_size;
2587 }
2588
2589 let next_out_of_line = decoder.next_out_of_line();
2590 let handles_before = decoder.remaining_handles();
2591 if let Some((inlined, num_bytes, num_handles)) =
2592 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2593 {
2594 let member_inline_size = <fidl::encoding::UnboundedVector<IfaceConcurrencyType> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2595 if inlined != (member_inline_size <= 4) {
2596 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2597 }
2598 let inner_offset;
2599 let mut inner_depth = depth.clone();
2600 if inlined {
2601 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2602 inner_offset = next_offset;
2603 } else {
2604 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2605 inner_depth.increment()?;
2606 }
2607 let val_ref = self.types.get_or_insert_with(|| {
2608 fidl::new_empty!(fidl::encoding::UnboundedVector<IfaceConcurrencyType>, D)
2609 });
2610 fidl::decode!(
2611 fidl::encoding::UnboundedVector<IfaceConcurrencyType>,
2612 D,
2613 val_ref,
2614 decoder,
2615 inner_offset,
2616 inner_depth
2617 )?;
2618 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2619 {
2620 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2621 }
2622 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2623 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2624 }
2625 }
2626
2627 next_offset += envelope_size;
2628 _next_ordinal_to_read += 1;
2629 if next_offset >= end_offset {
2630 return Ok(());
2631 }
2632
2633 while _next_ordinal_to_read < 2 {
2635 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2636 _next_ordinal_to_read += 1;
2637 next_offset += envelope_size;
2638 }
2639
2640 let next_out_of_line = decoder.next_out_of_line();
2641 let handles_before = decoder.remaining_handles();
2642 if let Some((inlined, num_bytes, num_handles)) =
2643 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2644 {
2645 let member_inline_size =
2646 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2647 if inlined != (member_inline_size <= 4) {
2648 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2649 }
2650 let inner_offset;
2651 let mut inner_depth = depth.clone();
2652 if inlined {
2653 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2654 inner_offset = next_offset;
2655 } else {
2656 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2657 inner_depth.increment()?;
2658 }
2659 let val_ref = self.max_ifaces.get_or_insert_with(|| fidl::new_empty!(u32, D));
2660 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
2661 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2662 {
2663 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2664 }
2665 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2666 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2667 }
2668 }
2669
2670 next_offset += envelope_size;
2671
2672 while next_offset < end_offset {
2674 _next_ordinal_to_read += 1;
2675 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2676 next_offset += envelope_size;
2677 }
2678
2679 Ok(())
2680 }
2681 }
2682
2683 impl ChipMode {
2684 #[inline(always)]
2685 fn max_ordinal_present(&self) -> u64 {
2686 if let Some(_) = self.available_combinations {
2687 return 2;
2688 }
2689 if let Some(_) = self.id {
2690 return 1;
2691 }
2692 0
2693 }
2694 }
2695
2696 impl fidl::encoding::ValueTypeMarker for ChipMode {
2697 type Borrowed<'a> = &'a Self;
2698 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2699 value
2700 }
2701 }
2702
2703 unsafe impl fidl::encoding::TypeMarker for ChipMode {
2704 type Owned = Self;
2705
2706 #[inline(always)]
2707 fn inline_align(_context: fidl::encoding::Context) -> usize {
2708 8
2709 }
2710
2711 #[inline(always)]
2712 fn inline_size(_context: fidl::encoding::Context) -> usize {
2713 16
2714 }
2715 }
2716
2717 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<ChipMode, D> for &ChipMode {
2718 unsafe fn encode(
2719 self,
2720 encoder: &mut fidl::encoding::Encoder<'_, D>,
2721 offset: usize,
2722 mut depth: fidl::encoding::Depth,
2723 ) -> fidl::Result<()> {
2724 encoder.debug_check_bounds::<ChipMode>(offset);
2725 let max_ordinal: u64 = self.max_ordinal_present();
2727 encoder.write_num(max_ordinal, offset);
2728 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
2729 if max_ordinal == 0 {
2731 return Ok(());
2732 }
2733 depth.increment()?;
2734 let envelope_size = 8;
2735 let bytes_len = max_ordinal as usize * envelope_size;
2736 #[allow(unused_variables)]
2737 let offset = encoder.out_of_line_offset(bytes_len);
2738 let mut _prev_end_offset: usize = 0;
2739 if 1 > max_ordinal {
2740 return Ok(());
2741 }
2742
2743 let cur_offset: usize = (1 - 1) * envelope_size;
2746
2747 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2749
2750 fidl::encoding::encode_in_envelope_optional::<u32, D>(
2755 self.id.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
2756 encoder,
2757 offset + cur_offset,
2758 depth,
2759 )?;
2760
2761 _prev_end_offset = cur_offset + envelope_size;
2762 if 2 > max_ordinal {
2763 return Ok(());
2764 }
2765
2766 let cur_offset: usize = (2 - 1) * envelope_size;
2769
2770 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2772
2773 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<ChipConcurrencyCombination>, D>(
2778 self.available_combinations.as_ref().map(<fidl::encoding::UnboundedVector<ChipConcurrencyCombination> as fidl::encoding::ValueTypeMarker>::borrow),
2779 encoder, offset + cur_offset, depth
2780 )?;
2781
2782 _prev_end_offset = cur_offset + envelope_size;
2783
2784 Ok(())
2785 }
2786 }
2787
2788 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ChipMode {
2789 #[inline(always)]
2790 fn new_empty() -> Self {
2791 Self::default()
2792 }
2793
2794 unsafe fn decode(
2795 &mut self,
2796 decoder: &mut fidl::encoding::Decoder<'_, D>,
2797 offset: usize,
2798 mut depth: fidl::encoding::Depth,
2799 ) -> fidl::Result<()> {
2800 decoder.debug_check_bounds::<Self>(offset);
2801 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
2802 None => return Err(fidl::Error::NotNullable),
2803 Some(len) => len,
2804 };
2805 if len == 0 {
2807 return Ok(());
2808 };
2809 depth.increment()?;
2810 let envelope_size = 8;
2811 let bytes_len = len * envelope_size;
2812 let offset = decoder.out_of_line_offset(bytes_len)?;
2813 let mut _next_ordinal_to_read = 0;
2815 let mut next_offset = offset;
2816 let end_offset = offset + bytes_len;
2817 _next_ordinal_to_read += 1;
2818 if next_offset >= end_offset {
2819 return Ok(());
2820 }
2821
2822 while _next_ordinal_to_read < 1 {
2824 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2825 _next_ordinal_to_read += 1;
2826 next_offset += envelope_size;
2827 }
2828
2829 let next_out_of_line = decoder.next_out_of_line();
2830 let handles_before = decoder.remaining_handles();
2831 if let Some((inlined, num_bytes, num_handles)) =
2832 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2833 {
2834 let member_inline_size =
2835 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2836 if inlined != (member_inline_size <= 4) {
2837 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2838 }
2839 let inner_offset;
2840 let mut inner_depth = depth.clone();
2841 if inlined {
2842 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2843 inner_offset = next_offset;
2844 } else {
2845 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2846 inner_depth.increment()?;
2847 }
2848 let val_ref = self.id.get_or_insert_with(|| fidl::new_empty!(u32, D));
2849 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
2850 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2851 {
2852 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2853 }
2854 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2855 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2856 }
2857 }
2858
2859 next_offset += envelope_size;
2860 _next_ordinal_to_read += 1;
2861 if next_offset >= end_offset {
2862 return Ok(());
2863 }
2864
2865 while _next_ordinal_to_read < 2 {
2867 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2868 _next_ordinal_to_read += 1;
2869 next_offset += envelope_size;
2870 }
2871
2872 let next_out_of_line = decoder.next_out_of_line();
2873 let handles_before = decoder.remaining_handles();
2874 if let Some((inlined, num_bytes, num_handles)) =
2875 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2876 {
2877 let member_inline_size = <fidl::encoding::UnboundedVector<
2878 ChipConcurrencyCombination,
2879 > as fidl::encoding::TypeMarker>::inline_size(
2880 decoder.context
2881 );
2882 if inlined != (member_inline_size <= 4) {
2883 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2884 }
2885 let inner_offset;
2886 let mut inner_depth = depth.clone();
2887 if inlined {
2888 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2889 inner_offset = next_offset;
2890 } else {
2891 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2892 inner_depth.increment()?;
2893 }
2894 let val_ref = self.available_combinations.get_or_insert_with(|| {
2895 fidl::new_empty!(fidl::encoding::UnboundedVector<ChipConcurrencyCombination>, D)
2896 });
2897 fidl::decode!(
2898 fidl::encoding::UnboundedVector<ChipConcurrencyCombination>,
2899 D,
2900 val_ref,
2901 decoder,
2902 inner_offset,
2903 inner_depth
2904 )?;
2905 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2906 {
2907 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2908 }
2909 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2910 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2911 }
2912 }
2913
2914 next_offset += envelope_size;
2915
2916 while next_offset < end_offset {
2918 _next_ordinal_to_read += 1;
2919 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2920 next_offset += envelope_size;
2921 }
2922
2923 Ok(())
2924 }
2925 }
2926
2927 impl LinkLayerStats {
2928 #[inline(always)]
2929 fn max_ordinal_present(&self) -> u64 {
2930 if let Some(_) = self.rssi_dbm {
2931 return 2;
2932 }
2933 if let Some(_) = self.wme {
2934 return 1;
2935 }
2936 0
2937 }
2938 }
2939
2940 impl fidl::encoding::ValueTypeMarker for LinkLayerStats {
2941 type Borrowed<'a> = &'a Self;
2942 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2943 value
2944 }
2945 }
2946
2947 unsafe impl fidl::encoding::TypeMarker for LinkLayerStats {
2948 type Owned = Self;
2949
2950 #[inline(always)]
2951 fn inline_align(_context: fidl::encoding::Context) -> usize {
2952 8
2953 }
2954
2955 #[inline(always)]
2956 fn inline_size(_context: fidl::encoding::Context) -> usize {
2957 16
2958 }
2959 }
2960
2961 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<LinkLayerStats, D>
2962 for &LinkLayerStats
2963 {
2964 unsafe fn encode(
2965 self,
2966 encoder: &mut fidl::encoding::Encoder<'_, D>,
2967 offset: usize,
2968 mut depth: fidl::encoding::Depth,
2969 ) -> fidl::Result<()> {
2970 encoder.debug_check_bounds::<LinkLayerStats>(offset);
2971 let max_ordinal: u64 = self.max_ordinal_present();
2973 encoder.write_num(max_ordinal, offset);
2974 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
2975 if max_ordinal == 0 {
2977 return Ok(());
2978 }
2979 depth.increment()?;
2980 let envelope_size = 8;
2981 let bytes_len = max_ordinal as usize * envelope_size;
2982 #[allow(unused_variables)]
2983 let offset = encoder.out_of_line_offset(bytes_len);
2984 let mut _prev_end_offset: usize = 0;
2985 if 1 > max_ordinal {
2986 return Ok(());
2987 }
2988
2989 let cur_offset: usize = (1 - 1) * envelope_size;
2992
2993 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2995
2996 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_stats_common::WmePacketStats, D>(
3001 self.wme.as_ref().map(<fidl_fuchsia_wlan_stats_common::WmePacketStats as fidl::encoding::ValueTypeMarker>::borrow),
3002 encoder, offset + cur_offset, depth
3003 )?;
3004
3005 _prev_end_offset = cur_offset + envelope_size;
3006 if 2 > max_ordinal {
3007 return Ok(());
3008 }
3009
3010 let cur_offset: usize = (2 - 1) * envelope_size;
3013
3014 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3016
3017 fidl::encoding::encode_in_envelope_optional::<i32, D>(
3022 self.rssi_dbm.as_ref().map(<i32 as fidl::encoding::ValueTypeMarker>::borrow),
3023 encoder,
3024 offset + cur_offset,
3025 depth,
3026 )?;
3027
3028 _prev_end_offset = cur_offset + envelope_size;
3029
3030 Ok(())
3031 }
3032 }
3033
3034 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for LinkLayerStats {
3035 #[inline(always)]
3036 fn new_empty() -> Self {
3037 Self::default()
3038 }
3039
3040 unsafe fn decode(
3041 &mut self,
3042 decoder: &mut fidl::encoding::Decoder<'_, D>,
3043 offset: usize,
3044 mut depth: fidl::encoding::Depth,
3045 ) -> fidl::Result<()> {
3046 decoder.debug_check_bounds::<Self>(offset);
3047 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
3048 None => return Err(fidl::Error::NotNullable),
3049 Some(len) => len,
3050 };
3051 if len == 0 {
3053 return Ok(());
3054 };
3055 depth.increment()?;
3056 let envelope_size = 8;
3057 let bytes_len = len * envelope_size;
3058 let offset = decoder.out_of_line_offset(bytes_len)?;
3059 let mut _next_ordinal_to_read = 0;
3061 let mut next_offset = offset;
3062 let end_offset = offset + bytes_len;
3063 _next_ordinal_to_read += 1;
3064 if next_offset >= end_offset {
3065 return Ok(());
3066 }
3067
3068 while _next_ordinal_to_read < 1 {
3070 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3071 _next_ordinal_to_read += 1;
3072 next_offset += envelope_size;
3073 }
3074
3075 let next_out_of_line = decoder.next_out_of_line();
3076 let handles_before = decoder.remaining_handles();
3077 if let Some((inlined, num_bytes, num_handles)) =
3078 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3079 {
3080 let member_inline_size = <fidl_fuchsia_wlan_stats_common::WmePacketStats as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3081 if inlined != (member_inline_size <= 4) {
3082 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3083 }
3084 let inner_offset;
3085 let mut inner_depth = depth.clone();
3086 if inlined {
3087 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3088 inner_offset = next_offset;
3089 } else {
3090 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3091 inner_depth.increment()?;
3092 }
3093 let val_ref = self.wme.get_or_insert_with(|| {
3094 fidl::new_empty!(fidl_fuchsia_wlan_stats_common::WmePacketStats, D)
3095 });
3096 fidl::decode!(
3097 fidl_fuchsia_wlan_stats_common::WmePacketStats,
3098 D,
3099 val_ref,
3100 decoder,
3101 inner_offset,
3102 inner_depth
3103 )?;
3104 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3105 {
3106 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3107 }
3108 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3109 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3110 }
3111 }
3112
3113 next_offset += envelope_size;
3114 _next_ordinal_to_read += 1;
3115 if next_offset >= end_offset {
3116 return Ok(());
3117 }
3118
3119 while _next_ordinal_to_read < 2 {
3121 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3122 _next_ordinal_to_read += 1;
3123 next_offset += envelope_size;
3124 }
3125
3126 let next_out_of_line = decoder.next_out_of_line();
3127 let handles_before = decoder.remaining_handles();
3128 if let Some((inlined, num_bytes, num_handles)) =
3129 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3130 {
3131 let member_inline_size =
3132 <i32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3133 if inlined != (member_inline_size <= 4) {
3134 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3135 }
3136 let inner_offset;
3137 let mut inner_depth = depth.clone();
3138 if inlined {
3139 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3140 inner_offset = next_offset;
3141 } else {
3142 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3143 inner_depth.increment()?;
3144 }
3145 let val_ref = self.rssi_dbm.get_or_insert_with(|| fidl::new_empty!(i32, D));
3146 fidl::decode!(i32, D, val_ref, decoder, inner_offset, inner_depth)?;
3147 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3148 {
3149 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3150 }
3151 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3152 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3153 }
3154 }
3155
3156 next_offset += envelope_size;
3157
3158 while next_offset < end_offset {
3160 _next_ordinal_to_read += 1;
3161 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3162 next_offset += envelope_size;
3163 }
3164
3165 Ok(())
3166 }
3167 }
3168
3169 impl SupplicantStaIfaceCallbackOnAssociationRejectedRequest {
3170 #[inline(always)]
3171 fn max_ordinal_present(&self) -> u64 {
3172 if let Some(_) = self.timed_out {
3173 return 4;
3174 }
3175 if let Some(_) = self.status_code {
3176 return 3;
3177 }
3178 if let Some(_) = self.bssid {
3179 return 2;
3180 }
3181 if let Some(_) = self.ssid {
3182 return 1;
3183 }
3184 0
3185 }
3186 }
3187
3188 impl fidl::encoding::ValueTypeMarker for SupplicantStaIfaceCallbackOnAssociationRejectedRequest {
3189 type Borrowed<'a> = &'a Self;
3190 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3191 value
3192 }
3193 }
3194
3195 unsafe impl fidl::encoding::TypeMarker for SupplicantStaIfaceCallbackOnAssociationRejectedRequest {
3196 type Owned = Self;
3197
3198 #[inline(always)]
3199 fn inline_align(_context: fidl::encoding::Context) -> usize {
3200 8
3201 }
3202
3203 #[inline(always)]
3204 fn inline_size(_context: fidl::encoding::Context) -> usize {
3205 16
3206 }
3207 }
3208
3209 unsafe impl<D: fidl::encoding::ResourceDialect>
3210 fidl::encoding::Encode<SupplicantStaIfaceCallbackOnAssociationRejectedRequest, D>
3211 for &SupplicantStaIfaceCallbackOnAssociationRejectedRequest
3212 {
3213 unsafe fn encode(
3214 self,
3215 encoder: &mut fidl::encoding::Encoder<'_, D>,
3216 offset: usize,
3217 mut depth: fidl::encoding::Depth,
3218 ) -> fidl::Result<()> {
3219 encoder.debug_check_bounds::<SupplicantStaIfaceCallbackOnAssociationRejectedRequest>(
3220 offset,
3221 );
3222 let max_ordinal: u64 = self.max_ordinal_present();
3224 encoder.write_num(max_ordinal, offset);
3225 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
3226 if max_ordinal == 0 {
3228 return Ok(());
3229 }
3230 depth.increment()?;
3231 let envelope_size = 8;
3232 let bytes_len = max_ordinal as usize * envelope_size;
3233 #[allow(unused_variables)]
3234 let offset = encoder.out_of_line_offset(bytes_len);
3235 let mut _prev_end_offset: usize = 0;
3236 if 1 > max_ordinal {
3237 return Ok(());
3238 }
3239
3240 let cur_offset: usize = (1 - 1) * envelope_size;
3243
3244 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3246
3247 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<u8, 32>, D>(
3252 self.ssid.as_ref().map(
3253 <fidl::encoding::Vector<u8, 32> as fidl::encoding::ValueTypeMarker>::borrow,
3254 ),
3255 encoder,
3256 offset + cur_offset,
3257 depth,
3258 )?;
3259
3260 _prev_end_offset = cur_offset + envelope_size;
3261 if 2 > max_ordinal {
3262 return Ok(());
3263 }
3264
3265 let cur_offset: usize = (2 - 1) * envelope_size;
3268
3269 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3271
3272 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
3277 self.bssid
3278 .as_ref()
3279 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
3280 encoder,
3281 offset + cur_offset,
3282 depth,
3283 )?;
3284
3285 _prev_end_offset = cur_offset + envelope_size;
3286 if 3 > max_ordinal {
3287 return Ok(());
3288 }
3289
3290 let cur_offset: usize = (3 - 1) * envelope_size;
3293
3294 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3296
3297 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_ieee80211_common::StatusCode, D>(
3302 self.status_code.as_ref().map(<fidl_fuchsia_wlan_ieee80211_common::StatusCode as fidl::encoding::ValueTypeMarker>::borrow),
3303 encoder, offset + cur_offset, depth
3304 )?;
3305
3306 _prev_end_offset = cur_offset + envelope_size;
3307 if 4 > max_ordinal {
3308 return Ok(());
3309 }
3310
3311 let cur_offset: usize = (4 - 1) * envelope_size;
3314
3315 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3317
3318 fidl::encoding::encode_in_envelope_optional::<bool, D>(
3323 self.timed_out.as_ref().map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
3324 encoder,
3325 offset + cur_offset,
3326 depth,
3327 )?;
3328
3329 _prev_end_offset = cur_offset + envelope_size;
3330
3331 Ok(())
3332 }
3333 }
3334
3335 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
3336 for SupplicantStaIfaceCallbackOnAssociationRejectedRequest
3337 {
3338 #[inline(always)]
3339 fn new_empty() -> Self {
3340 Self::default()
3341 }
3342
3343 unsafe fn decode(
3344 &mut self,
3345 decoder: &mut fidl::encoding::Decoder<'_, D>,
3346 offset: usize,
3347 mut depth: fidl::encoding::Depth,
3348 ) -> fidl::Result<()> {
3349 decoder.debug_check_bounds::<Self>(offset);
3350 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
3351 None => return Err(fidl::Error::NotNullable),
3352 Some(len) => len,
3353 };
3354 if len == 0 {
3356 return Ok(());
3357 };
3358 depth.increment()?;
3359 let envelope_size = 8;
3360 let bytes_len = len * envelope_size;
3361 let offset = decoder.out_of_line_offset(bytes_len)?;
3362 let mut _next_ordinal_to_read = 0;
3364 let mut next_offset = offset;
3365 let end_offset = offset + bytes_len;
3366 _next_ordinal_to_read += 1;
3367 if next_offset >= end_offset {
3368 return Ok(());
3369 }
3370
3371 while _next_ordinal_to_read < 1 {
3373 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3374 _next_ordinal_to_read += 1;
3375 next_offset += envelope_size;
3376 }
3377
3378 let next_out_of_line = decoder.next_out_of_line();
3379 let handles_before = decoder.remaining_handles();
3380 if let Some((inlined, num_bytes, num_handles)) =
3381 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3382 {
3383 let member_inline_size =
3384 <fidl::encoding::Vector<u8, 32> as fidl::encoding::TypeMarker>::inline_size(
3385 decoder.context,
3386 );
3387 if inlined != (member_inline_size <= 4) {
3388 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3389 }
3390 let inner_offset;
3391 let mut inner_depth = depth.clone();
3392 if inlined {
3393 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3394 inner_offset = next_offset;
3395 } else {
3396 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3397 inner_depth.increment()?;
3398 }
3399 let val_ref = self
3400 .ssid
3401 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<u8, 32>, D));
3402 fidl::decode!(fidl::encoding::Vector<u8, 32>, D, val_ref, decoder, inner_offset, inner_depth)?;
3403 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3404 {
3405 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3406 }
3407 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3408 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3409 }
3410 }
3411
3412 next_offset += envelope_size;
3413 _next_ordinal_to_read += 1;
3414 if next_offset >= end_offset {
3415 return Ok(());
3416 }
3417
3418 while _next_ordinal_to_read < 2 {
3420 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3421 _next_ordinal_to_read += 1;
3422 next_offset += envelope_size;
3423 }
3424
3425 let next_out_of_line = decoder.next_out_of_line();
3426 let handles_before = decoder.remaining_handles();
3427 if let Some((inlined, num_bytes, num_handles)) =
3428 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3429 {
3430 let member_inline_size =
3431 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
3432 decoder.context,
3433 );
3434 if inlined != (member_inline_size <= 4) {
3435 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3436 }
3437 let inner_offset;
3438 let mut inner_depth = depth.clone();
3439 if inlined {
3440 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3441 inner_offset = next_offset;
3442 } else {
3443 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3444 inner_depth.increment()?;
3445 }
3446 let val_ref = self
3447 .bssid
3448 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
3449 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
3450 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3451 {
3452 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3453 }
3454 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3455 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3456 }
3457 }
3458
3459 next_offset += envelope_size;
3460 _next_ordinal_to_read += 1;
3461 if next_offset >= end_offset {
3462 return Ok(());
3463 }
3464
3465 while _next_ordinal_to_read < 3 {
3467 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3468 _next_ordinal_to_read += 1;
3469 next_offset += envelope_size;
3470 }
3471
3472 let next_out_of_line = decoder.next_out_of_line();
3473 let handles_before = decoder.remaining_handles();
3474 if let Some((inlined, num_bytes, num_handles)) =
3475 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3476 {
3477 let member_inline_size = <fidl_fuchsia_wlan_ieee80211_common::StatusCode as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3478 if inlined != (member_inline_size <= 4) {
3479 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3480 }
3481 let inner_offset;
3482 let mut inner_depth = depth.clone();
3483 if inlined {
3484 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3485 inner_offset = next_offset;
3486 } else {
3487 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3488 inner_depth.increment()?;
3489 }
3490 let val_ref = self.status_code.get_or_insert_with(|| {
3491 fidl::new_empty!(fidl_fuchsia_wlan_ieee80211_common::StatusCode, D)
3492 });
3493 fidl::decode!(
3494 fidl_fuchsia_wlan_ieee80211_common::StatusCode,
3495 D,
3496 val_ref,
3497 decoder,
3498 inner_offset,
3499 inner_depth
3500 )?;
3501 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3502 {
3503 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3504 }
3505 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3506 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3507 }
3508 }
3509
3510 next_offset += envelope_size;
3511 _next_ordinal_to_read += 1;
3512 if next_offset >= end_offset {
3513 return Ok(());
3514 }
3515
3516 while _next_ordinal_to_read < 4 {
3518 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3519 _next_ordinal_to_read += 1;
3520 next_offset += envelope_size;
3521 }
3522
3523 let next_out_of_line = decoder.next_out_of_line();
3524 let handles_before = decoder.remaining_handles();
3525 if let Some((inlined, num_bytes, num_handles)) =
3526 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3527 {
3528 let member_inline_size =
3529 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3530 if inlined != (member_inline_size <= 4) {
3531 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3532 }
3533 let inner_offset;
3534 let mut inner_depth = depth.clone();
3535 if inlined {
3536 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3537 inner_offset = next_offset;
3538 } else {
3539 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3540 inner_depth.increment()?;
3541 }
3542 let val_ref = self.timed_out.get_or_insert_with(|| fidl::new_empty!(bool, D));
3543 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
3544 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3545 {
3546 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3547 }
3548 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3549 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3550 }
3551 }
3552
3553 next_offset += envelope_size;
3554
3555 while next_offset < end_offset {
3557 _next_ordinal_to_read += 1;
3558 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3559 next_offset += envelope_size;
3560 }
3561
3562 Ok(())
3563 }
3564 }
3565
3566 impl SupplicantStaIfaceCallbackOnDisconnectedRequest {
3567 #[inline(always)]
3568 fn max_ordinal_present(&self) -> u64 {
3569 if let Some(_) = self.reason_code {
3570 return 3;
3571 }
3572 if let Some(_) = self.locally_generated {
3573 return 2;
3574 }
3575 if let Some(_) = self.bssid {
3576 return 1;
3577 }
3578 0
3579 }
3580 }
3581
3582 impl fidl::encoding::ValueTypeMarker for SupplicantStaIfaceCallbackOnDisconnectedRequest {
3583 type Borrowed<'a> = &'a Self;
3584 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3585 value
3586 }
3587 }
3588
3589 unsafe impl fidl::encoding::TypeMarker for SupplicantStaIfaceCallbackOnDisconnectedRequest {
3590 type Owned = Self;
3591
3592 #[inline(always)]
3593 fn inline_align(_context: fidl::encoding::Context) -> usize {
3594 8
3595 }
3596
3597 #[inline(always)]
3598 fn inline_size(_context: fidl::encoding::Context) -> usize {
3599 16
3600 }
3601 }
3602
3603 unsafe impl<D: fidl::encoding::ResourceDialect>
3604 fidl::encoding::Encode<SupplicantStaIfaceCallbackOnDisconnectedRequest, D>
3605 for &SupplicantStaIfaceCallbackOnDisconnectedRequest
3606 {
3607 unsafe fn encode(
3608 self,
3609 encoder: &mut fidl::encoding::Encoder<'_, D>,
3610 offset: usize,
3611 mut depth: fidl::encoding::Depth,
3612 ) -> fidl::Result<()> {
3613 encoder.debug_check_bounds::<SupplicantStaIfaceCallbackOnDisconnectedRequest>(offset);
3614 let max_ordinal: u64 = self.max_ordinal_present();
3616 encoder.write_num(max_ordinal, offset);
3617 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
3618 if max_ordinal == 0 {
3620 return Ok(());
3621 }
3622 depth.increment()?;
3623 let envelope_size = 8;
3624 let bytes_len = max_ordinal as usize * envelope_size;
3625 #[allow(unused_variables)]
3626 let offset = encoder.out_of_line_offset(bytes_len);
3627 let mut _prev_end_offset: usize = 0;
3628 if 1 > max_ordinal {
3629 return Ok(());
3630 }
3631
3632 let cur_offset: usize = (1 - 1) * envelope_size;
3635
3636 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3638
3639 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
3644 self.bssid
3645 .as_ref()
3646 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
3647 encoder,
3648 offset + cur_offset,
3649 depth,
3650 )?;
3651
3652 _prev_end_offset = cur_offset + envelope_size;
3653 if 2 > max_ordinal {
3654 return Ok(());
3655 }
3656
3657 let cur_offset: usize = (2 - 1) * envelope_size;
3660
3661 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3663
3664 fidl::encoding::encode_in_envelope_optional::<bool, D>(
3669 self.locally_generated
3670 .as_ref()
3671 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
3672 encoder,
3673 offset + cur_offset,
3674 depth,
3675 )?;
3676
3677 _prev_end_offset = cur_offset + envelope_size;
3678 if 3 > max_ordinal {
3679 return Ok(());
3680 }
3681
3682 let cur_offset: usize = (3 - 1) * envelope_size;
3685
3686 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3688
3689 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_ieee80211_common::ReasonCode, D>(
3694 self.reason_code.as_ref().map(<fidl_fuchsia_wlan_ieee80211_common::ReasonCode as fidl::encoding::ValueTypeMarker>::borrow),
3695 encoder, offset + cur_offset, depth
3696 )?;
3697
3698 _prev_end_offset = cur_offset + envelope_size;
3699
3700 Ok(())
3701 }
3702 }
3703
3704 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
3705 for SupplicantStaIfaceCallbackOnDisconnectedRequest
3706 {
3707 #[inline(always)]
3708 fn new_empty() -> Self {
3709 Self::default()
3710 }
3711
3712 unsafe fn decode(
3713 &mut self,
3714 decoder: &mut fidl::encoding::Decoder<'_, D>,
3715 offset: usize,
3716 mut depth: fidl::encoding::Depth,
3717 ) -> fidl::Result<()> {
3718 decoder.debug_check_bounds::<Self>(offset);
3719 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
3720 None => return Err(fidl::Error::NotNullable),
3721 Some(len) => len,
3722 };
3723 if len == 0 {
3725 return Ok(());
3726 };
3727 depth.increment()?;
3728 let envelope_size = 8;
3729 let bytes_len = len * envelope_size;
3730 let offset = decoder.out_of_line_offset(bytes_len)?;
3731 let mut _next_ordinal_to_read = 0;
3733 let mut next_offset = offset;
3734 let end_offset = offset + bytes_len;
3735 _next_ordinal_to_read += 1;
3736 if next_offset >= end_offset {
3737 return Ok(());
3738 }
3739
3740 while _next_ordinal_to_read < 1 {
3742 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3743 _next_ordinal_to_read += 1;
3744 next_offset += envelope_size;
3745 }
3746
3747 let next_out_of_line = decoder.next_out_of_line();
3748 let handles_before = decoder.remaining_handles();
3749 if let Some((inlined, num_bytes, num_handles)) =
3750 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3751 {
3752 let member_inline_size =
3753 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
3754 decoder.context,
3755 );
3756 if inlined != (member_inline_size <= 4) {
3757 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3758 }
3759 let inner_offset;
3760 let mut inner_depth = depth.clone();
3761 if inlined {
3762 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3763 inner_offset = next_offset;
3764 } else {
3765 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3766 inner_depth.increment()?;
3767 }
3768 let val_ref = self
3769 .bssid
3770 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
3771 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
3772 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3773 {
3774 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3775 }
3776 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3777 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3778 }
3779 }
3780
3781 next_offset += envelope_size;
3782 _next_ordinal_to_read += 1;
3783 if next_offset >= end_offset {
3784 return Ok(());
3785 }
3786
3787 while _next_ordinal_to_read < 2 {
3789 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3790 _next_ordinal_to_read += 1;
3791 next_offset += envelope_size;
3792 }
3793
3794 let next_out_of_line = decoder.next_out_of_line();
3795 let handles_before = decoder.remaining_handles();
3796 if let Some((inlined, num_bytes, num_handles)) =
3797 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3798 {
3799 let member_inline_size =
3800 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3801 if inlined != (member_inline_size <= 4) {
3802 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3803 }
3804 let inner_offset;
3805 let mut inner_depth = depth.clone();
3806 if inlined {
3807 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3808 inner_offset = next_offset;
3809 } else {
3810 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3811 inner_depth.increment()?;
3812 }
3813 let val_ref =
3814 self.locally_generated.get_or_insert_with(|| fidl::new_empty!(bool, D));
3815 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
3816 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3817 {
3818 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3819 }
3820 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3821 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3822 }
3823 }
3824
3825 next_offset += envelope_size;
3826 _next_ordinal_to_read += 1;
3827 if next_offset >= end_offset {
3828 return Ok(());
3829 }
3830
3831 while _next_ordinal_to_read < 3 {
3833 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3834 _next_ordinal_to_read += 1;
3835 next_offset += envelope_size;
3836 }
3837
3838 let next_out_of_line = decoder.next_out_of_line();
3839 let handles_before = decoder.remaining_handles();
3840 if let Some((inlined, num_bytes, num_handles)) =
3841 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3842 {
3843 let member_inline_size = <fidl_fuchsia_wlan_ieee80211_common::ReasonCode as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3844 if inlined != (member_inline_size <= 4) {
3845 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3846 }
3847 let inner_offset;
3848 let mut inner_depth = depth.clone();
3849 if inlined {
3850 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3851 inner_offset = next_offset;
3852 } else {
3853 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3854 inner_depth.increment()?;
3855 }
3856 let val_ref = self.reason_code.get_or_insert_with(|| {
3857 fidl::new_empty!(fidl_fuchsia_wlan_ieee80211_common::ReasonCode, D)
3858 });
3859 fidl::decode!(
3860 fidl_fuchsia_wlan_ieee80211_common::ReasonCode,
3861 D,
3862 val_ref,
3863 decoder,
3864 inner_offset,
3865 inner_depth
3866 )?;
3867 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3868 {
3869 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3870 }
3871 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3872 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3873 }
3874 }
3875
3876 next_offset += envelope_size;
3877
3878 while next_offset < end_offset {
3880 _next_ordinal_to_read += 1;
3881 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3882 next_offset += envelope_size;
3883 }
3884
3885 Ok(())
3886 }
3887 }
3888
3889 impl SupplicantStaIfaceCallbackOnStateChangedRequest {
3890 #[inline(always)]
3891 fn max_ordinal_present(&self) -> u64 {
3892 if let Some(_) = self.ssid {
3893 return 4;
3894 }
3895 if let Some(_) = self.id {
3896 return 3;
3897 }
3898 if let Some(_) = self.bssid {
3899 return 2;
3900 }
3901 if let Some(_) = self.new_state {
3902 return 1;
3903 }
3904 0
3905 }
3906 }
3907
3908 impl fidl::encoding::ValueTypeMarker for SupplicantStaIfaceCallbackOnStateChangedRequest {
3909 type Borrowed<'a> = &'a Self;
3910 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3911 value
3912 }
3913 }
3914
3915 unsafe impl fidl::encoding::TypeMarker for SupplicantStaIfaceCallbackOnStateChangedRequest {
3916 type Owned = Self;
3917
3918 #[inline(always)]
3919 fn inline_align(_context: fidl::encoding::Context) -> usize {
3920 8
3921 }
3922
3923 #[inline(always)]
3924 fn inline_size(_context: fidl::encoding::Context) -> usize {
3925 16
3926 }
3927 }
3928
3929 unsafe impl<D: fidl::encoding::ResourceDialect>
3930 fidl::encoding::Encode<SupplicantStaIfaceCallbackOnStateChangedRequest, D>
3931 for &SupplicantStaIfaceCallbackOnStateChangedRequest
3932 {
3933 unsafe fn encode(
3934 self,
3935 encoder: &mut fidl::encoding::Encoder<'_, D>,
3936 offset: usize,
3937 mut depth: fidl::encoding::Depth,
3938 ) -> fidl::Result<()> {
3939 encoder.debug_check_bounds::<SupplicantStaIfaceCallbackOnStateChangedRequest>(offset);
3940 let max_ordinal: u64 = self.max_ordinal_present();
3942 encoder.write_num(max_ordinal, offset);
3943 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
3944 if max_ordinal == 0 {
3946 return Ok(());
3947 }
3948 depth.increment()?;
3949 let envelope_size = 8;
3950 let bytes_len = max_ordinal as usize * envelope_size;
3951 #[allow(unused_variables)]
3952 let offset = encoder.out_of_line_offset(bytes_len);
3953 let mut _prev_end_offset: usize = 0;
3954 if 1 > max_ordinal {
3955 return Ok(());
3956 }
3957
3958 let cur_offset: usize = (1 - 1) * envelope_size;
3961
3962 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3964
3965 fidl::encoding::encode_in_envelope_optional::<StaIfaceCallbackState, D>(
3970 self.new_state
3971 .as_ref()
3972 .map(<StaIfaceCallbackState as fidl::encoding::ValueTypeMarker>::borrow),
3973 encoder,
3974 offset + cur_offset,
3975 depth,
3976 )?;
3977
3978 _prev_end_offset = cur_offset + envelope_size;
3979 if 2 > max_ordinal {
3980 return Ok(());
3981 }
3982
3983 let cur_offset: usize = (2 - 1) * envelope_size;
3986
3987 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3989
3990 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
3995 self.bssid
3996 .as_ref()
3997 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
3998 encoder,
3999 offset + cur_offset,
4000 depth,
4001 )?;
4002
4003 _prev_end_offset = cur_offset + envelope_size;
4004 if 3 > max_ordinal {
4005 return Ok(());
4006 }
4007
4008 let cur_offset: usize = (3 - 1) * envelope_size;
4011
4012 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4014
4015 fidl::encoding::encode_in_envelope_optional::<u32, D>(
4020 self.id.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
4021 encoder,
4022 offset + cur_offset,
4023 depth,
4024 )?;
4025
4026 _prev_end_offset = cur_offset + envelope_size;
4027 if 4 > max_ordinal {
4028 return Ok(());
4029 }
4030
4031 let cur_offset: usize = (4 - 1) * envelope_size;
4034
4035 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4037
4038 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<u8, 32>, D>(
4043 self.ssid.as_ref().map(
4044 <fidl::encoding::Vector<u8, 32> as fidl::encoding::ValueTypeMarker>::borrow,
4045 ),
4046 encoder,
4047 offset + cur_offset,
4048 depth,
4049 )?;
4050
4051 _prev_end_offset = cur_offset + envelope_size;
4052
4053 Ok(())
4054 }
4055 }
4056
4057 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
4058 for SupplicantStaIfaceCallbackOnStateChangedRequest
4059 {
4060 #[inline(always)]
4061 fn new_empty() -> Self {
4062 Self::default()
4063 }
4064
4065 unsafe fn decode(
4066 &mut self,
4067 decoder: &mut fidl::encoding::Decoder<'_, D>,
4068 offset: usize,
4069 mut depth: fidl::encoding::Depth,
4070 ) -> fidl::Result<()> {
4071 decoder.debug_check_bounds::<Self>(offset);
4072 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
4073 None => return Err(fidl::Error::NotNullable),
4074 Some(len) => len,
4075 };
4076 if len == 0 {
4078 return Ok(());
4079 };
4080 depth.increment()?;
4081 let envelope_size = 8;
4082 let bytes_len = len * envelope_size;
4083 let offset = decoder.out_of_line_offset(bytes_len)?;
4084 let mut _next_ordinal_to_read = 0;
4086 let mut next_offset = offset;
4087 let end_offset = offset + bytes_len;
4088 _next_ordinal_to_read += 1;
4089 if next_offset >= end_offset {
4090 return Ok(());
4091 }
4092
4093 while _next_ordinal_to_read < 1 {
4095 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4096 _next_ordinal_to_read += 1;
4097 next_offset += envelope_size;
4098 }
4099
4100 let next_out_of_line = decoder.next_out_of_line();
4101 let handles_before = decoder.remaining_handles();
4102 if let Some((inlined, num_bytes, num_handles)) =
4103 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4104 {
4105 let member_inline_size =
4106 <StaIfaceCallbackState as fidl::encoding::TypeMarker>::inline_size(
4107 decoder.context,
4108 );
4109 if inlined != (member_inline_size <= 4) {
4110 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4111 }
4112 let inner_offset;
4113 let mut inner_depth = depth.clone();
4114 if inlined {
4115 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4116 inner_offset = next_offset;
4117 } else {
4118 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4119 inner_depth.increment()?;
4120 }
4121 let val_ref = self
4122 .new_state
4123 .get_or_insert_with(|| fidl::new_empty!(StaIfaceCallbackState, D));
4124 fidl::decode!(
4125 StaIfaceCallbackState,
4126 D,
4127 val_ref,
4128 decoder,
4129 inner_offset,
4130 inner_depth
4131 )?;
4132 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4133 {
4134 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4135 }
4136 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4137 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4138 }
4139 }
4140
4141 next_offset += envelope_size;
4142 _next_ordinal_to_read += 1;
4143 if next_offset >= end_offset {
4144 return Ok(());
4145 }
4146
4147 while _next_ordinal_to_read < 2 {
4149 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4150 _next_ordinal_to_read += 1;
4151 next_offset += envelope_size;
4152 }
4153
4154 let next_out_of_line = decoder.next_out_of_line();
4155 let handles_before = decoder.remaining_handles();
4156 if let Some((inlined, num_bytes, num_handles)) =
4157 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4158 {
4159 let member_inline_size =
4160 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
4161 decoder.context,
4162 );
4163 if inlined != (member_inline_size <= 4) {
4164 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4165 }
4166 let inner_offset;
4167 let mut inner_depth = depth.clone();
4168 if inlined {
4169 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4170 inner_offset = next_offset;
4171 } else {
4172 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4173 inner_depth.increment()?;
4174 }
4175 let val_ref = self
4176 .bssid
4177 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
4178 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
4179 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4180 {
4181 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4182 }
4183 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4184 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4185 }
4186 }
4187
4188 next_offset += envelope_size;
4189 _next_ordinal_to_read += 1;
4190 if next_offset >= end_offset {
4191 return Ok(());
4192 }
4193
4194 while _next_ordinal_to_read < 3 {
4196 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4197 _next_ordinal_to_read += 1;
4198 next_offset += envelope_size;
4199 }
4200
4201 let next_out_of_line = decoder.next_out_of_line();
4202 let handles_before = decoder.remaining_handles();
4203 if let Some((inlined, num_bytes, num_handles)) =
4204 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4205 {
4206 let member_inline_size =
4207 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4208 if inlined != (member_inline_size <= 4) {
4209 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4210 }
4211 let inner_offset;
4212 let mut inner_depth = depth.clone();
4213 if inlined {
4214 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4215 inner_offset = next_offset;
4216 } else {
4217 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4218 inner_depth.increment()?;
4219 }
4220 let val_ref = self.id.get_or_insert_with(|| fidl::new_empty!(u32, D));
4221 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
4222 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4223 {
4224 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4225 }
4226 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4227 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4228 }
4229 }
4230
4231 next_offset += envelope_size;
4232 _next_ordinal_to_read += 1;
4233 if next_offset >= end_offset {
4234 return Ok(());
4235 }
4236
4237 while _next_ordinal_to_read < 4 {
4239 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4240 _next_ordinal_to_read += 1;
4241 next_offset += envelope_size;
4242 }
4243
4244 let next_out_of_line = decoder.next_out_of_line();
4245 let handles_before = decoder.remaining_handles();
4246 if let Some((inlined, num_bytes, num_handles)) =
4247 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4248 {
4249 let member_inline_size =
4250 <fidl::encoding::Vector<u8, 32> as fidl::encoding::TypeMarker>::inline_size(
4251 decoder.context,
4252 );
4253 if inlined != (member_inline_size <= 4) {
4254 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4255 }
4256 let inner_offset;
4257 let mut inner_depth = depth.clone();
4258 if inlined {
4259 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4260 inner_offset = next_offset;
4261 } else {
4262 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4263 inner_depth.increment()?;
4264 }
4265 let val_ref = self
4266 .ssid
4267 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<u8, 32>, D));
4268 fidl::decode!(fidl::encoding::Vector<u8, 32>, D, val_ref, decoder, inner_offset, inner_depth)?;
4269 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4270 {
4271 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4272 }
4273 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4274 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4275 }
4276 }
4277
4278 next_offset += envelope_size;
4279
4280 while next_offset < end_offset {
4282 _next_ordinal_to_read += 1;
4283 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4284 next_offset += envelope_size;
4285 }
4286
4287 Ok(())
4288 }
4289 }
4290
4291 impl SupplicantStaIfaceSetBtCoexistenceModeRequest {
4292 #[inline(always)]
4293 fn max_ordinal_present(&self) -> u64 {
4294 if let Some(_) = self.mode {
4295 return 1;
4296 }
4297 0
4298 }
4299 }
4300
4301 impl fidl::encoding::ValueTypeMarker for SupplicantStaIfaceSetBtCoexistenceModeRequest {
4302 type Borrowed<'a> = &'a Self;
4303 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4304 value
4305 }
4306 }
4307
4308 unsafe impl fidl::encoding::TypeMarker for SupplicantStaIfaceSetBtCoexistenceModeRequest {
4309 type Owned = Self;
4310
4311 #[inline(always)]
4312 fn inline_align(_context: fidl::encoding::Context) -> usize {
4313 8
4314 }
4315
4316 #[inline(always)]
4317 fn inline_size(_context: fidl::encoding::Context) -> usize {
4318 16
4319 }
4320 }
4321
4322 unsafe impl<D: fidl::encoding::ResourceDialect>
4323 fidl::encoding::Encode<SupplicantStaIfaceSetBtCoexistenceModeRequest, D>
4324 for &SupplicantStaIfaceSetBtCoexistenceModeRequest
4325 {
4326 unsafe fn encode(
4327 self,
4328 encoder: &mut fidl::encoding::Encoder<'_, D>,
4329 offset: usize,
4330 mut depth: fidl::encoding::Depth,
4331 ) -> fidl::Result<()> {
4332 encoder.debug_check_bounds::<SupplicantStaIfaceSetBtCoexistenceModeRequest>(offset);
4333 let max_ordinal: u64 = self.max_ordinal_present();
4335 encoder.write_num(max_ordinal, offset);
4336 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
4337 if max_ordinal == 0 {
4339 return Ok(());
4340 }
4341 depth.increment()?;
4342 let envelope_size = 8;
4343 let bytes_len = max_ordinal as usize * envelope_size;
4344 #[allow(unused_variables)]
4345 let offset = encoder.out_of_line_offset(bytes_len);
4346 let mut _prev_end_offset: usize = 0;
4347 if 1 > max_ordinal {
4348 return Ok(());
4349 }
4350
4351 let cur_offset: usize = (1 - 1) * envelope_size;
4354
4355 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4357
4358 fidl::encoding::encode_in_envelope_optional::<BtCoexistenceMode, D>(
4363 self.mode
4364 .as_ref()
4365 .map(<BtCoexistenceMode as fidl::encoding::ValueTypeMarker>::borrow),
4366 encoder,
4367 offset + cur_offset,
4368 depth,
4369 )?;
4370
4371 _prev_end_offset = cur_offset + envelope_size;
4372
4373 Ok(())
4374 }
4375 }
4376
4377 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
4378 for SupplicantStaIfaceSetBtCoexistenceModeRequest
4379 {
4380 #[inline(always)]
4381 fn new_empty() -> Self {
4382 Self::default()
4383 }
4384
4385 unsafe fn decode(
4386 &mut self,
4387 decoder: &mut fidl::encoding::Decoder<'_, D>,
4388 offset: usize,
4389 mut depth: fidl::encoding::Depth,
4390 ) -> fidl::Result<()> {
4391 decoder.debug_check_bounds::<Self>(offset);
4392 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
4393 None => return Err(fidl::Error::NotNullable),
4394 Some(len) => len,
4395 };
4396 if len == 0 {
4398 return Ok(());
4399 };
4400 depth.increment()?;
4401 let envelope_size = 8;
4402 let bytes_len = len * envelope_size;
4403 let offset = decoder.out_of_line_offset(bytes_len)?;
4404 let mut _next_ordinal_to_read = 0;
4406 let mut next_offset = offset;
4407 let end_offset = offset + bytes_len;
4408 _next_ordinal_to_read += 1;
4409 if next_offset >= end_offset {
4410 return Ok(());
4411 }
4412
4413 while _next_ordinal_to_read < 1 {
4415 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4416 _next_ordinal_to_read += 1;
4417 next_offset += envelope_size;
4418 }
4419
4420 let next_out_of_line = decoder.next_out_of_line();
4421 let handles_before = decoder.remaining_handles();
4422 if let Some((inlined, num_bytes, num_handles)) =
4423 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4424 {
4425 let member_inline_size =
4426 <BtCoexistenceMode as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4427 if inlined != (member_inline_size <= 4) {
4428 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4429 }
4430 let inner_offset;
4431 let mut inner_depth = depth.clone();
4432 if inlined {
4433 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4434 inner_offset = next_offset;
4435 } else {
4436 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4437 inner_depth.increment()?;
4438 }
4439 let val_ref =
4440 self.mode.get_or_insert_with(|| fidl::new_empty!(BtCoexistenceMode, D));
4441 fidl::decode!(BtCoexistenceMode, D, val_ref, decoder, inner_offset, inner_depth)?;
4442 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4443 {
4444 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4445 }
4446 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4447 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4448 }
4449 }
4450
4451 next_offset += envelope_size;
4452
4453 while next_offset < end_offset {
4455 _next_ordinal_to_read += 1;
4456 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4457 next_offset += envelope_size;
4458 }
4459
4460 Ok(())
4461 }
4462 }
4463
4464 impl SupplicantStaIfaceGetMacAddressResponse {
4465 #[inline(always)]
4466 fn max_ordinal_present(&self) -> u64 {
4467 if let Some(_) = self.mac_addr {
4468 return 1;
4469 }
4470 0
4471 }
4472 }
4473
4474 impl fidl::encoding::ValueTypeMarker for SupplicantStaIfaceGetMacAddressResponse {
4475 type Borrowed<'a> = &'a Self;
4476 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4477 value
4478 }
4479 }
4480
4481 unsafe impl fidl::encoding::TypeMarker for SupplicantStaIfaceGetMacAddressResponse {
4482 type Owned = Self;
4483
4484 #[inline(always)]
4485 fn inline_align(_context: fidl::encoding::Context) -> usize {
4486 8
4487 }
4488
4489 #[inline(always)]
4490 fn inline_size(_context: fidl::encoding::Context) -> usize {
4491 16
4492 }
4493 }
4494
4495 unsafe impl<D: fidl::encoding::ResourceDialect>
4496 fidl::encoding::Encode<SupplicantStaIfaceGetMacAddressResponse, D>
4497 for &SupplicantStaIfaceGetMacAddressResponse
4498 {
4499 unsafe fn encode(
4500 self,
4501 encoder: &mut fidl::encoding::Encoder<'_, D>,
4502 offset: usize,
4503 mut depth: fidl::encoding::Depth,
4504 ) -> fidl::Result<()> {
4505 encoder.debug_check_bounds::<SupplicantStaIfaceGetMacAddressResponse>(offset);
4506 let max_ordinal: u64 = self.max_ordinal_present();
4508 encoder.write_num(max_ordinal, offset);
4509 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
4510 if max_ordinal == 0 {
4512 return Ok(());
4513 }
4514 depth.increment()?;
4515 let envelope_size = 8;
4516 let bytes_len = max_ordinal as usize * envelope_size;
4517 #[allow(unused_variables)]
4518 let offset = encoder.out_of_line_offset(bytes_len);
4519 let mut _prev_end_offset: usize = 0;
4520 if 1 > max_ordinal {
4521 return Ok(());
4522 }
4523
4524 let cur_offset: usize = (1 - 1) * envelope_size;
4527
4528 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4530
4531 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
4536 self.mac_addr
4537 .as_ref()
4538 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
4539 encoder,
4540 offset + cur_offset,
4541 depth,
4542 )?;
4543
4544 _prev_end_offset = cur_offset + envelope_size;
4545
4546 Ok(())
4547 }
4548 }
4549
4550 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
4551 for SupplicantStaIfaceGetMacAddressResponse
4552 {
4553 #[inline(always)]
4554 fn new_empty() -> Self {
4555 Self::default()
4556 }
4557
4558 unsafe fn decode(
4559 &mut self,
4560 decoder: &mut fidl::encoding::Decoder<'_, D>,
4561 offset: usize,
4562 mut depth: fidl::encoding::Depth,
4563 ) -> fidl::Result<()> {
4564 decoder.debug_check_bounds::<Self>(offset);
4565 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
4566 None => return Err(fidl::Error::NotNullable),
4567 Some(len) => len,
4568 };
4569 if len == 0 {
4571 return Ok(());
4572 };
4573 depth.increment()?;
4574 let envelope_size = 8;
4575 let bytes_len = len * envelope_size;
4576 let offset = decoder.out_of_line_offset(bytes_len)?;
4577 let mut _next_ordinal_to_read = 0;
4579 let mut next_offset = offset;
4580 let end_offset = offset + bytes_len;
4581 _next_ordinal_to_read += 1;
4582 if next_offset >= end_offset {
4583 return Ok(());
4584 }
4585
4586 while _next_ordinal_to_read < 1 {
4588 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4589 _next_ordinal_to_read += 1;
4590 next_offset += envelope_size;
4591 }
4592
4593 let next_out_of_line = decoder.next_out_of_line();
4594 let handles_before = decoder.remaining_handles();
4595 if let Some((inlined, num_bytes, num_handles)) =
4596 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4597 {
4598 let member_inline_size =
4599 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
4600 decoder.context,
4601 );
4602 if inlined != (member_inline_size <= 4) {
4603 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4604 }
4605 let inner_offset;
4606 let mut inner_depth = depth.clone();
4607 if inlined {
4608 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4609 inner_offset = next_offset;
4610 } else {
4611 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4612 inner_depth.increment()?;
4613 }
4614 let val_ref = self
4615 .mac_addr
4616 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
4617 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
4618 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4619 {
4620 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4621 }
4622 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4623 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4624 }
4625 }
4626
4627 next_offset += envelope_size;
4628
4629 while next_offset < end_offset {
4631 _next_ordinal_to_read += 1;
4632 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4633 next_offset += envelope_size;
4634 }
4635
4636 Ok(())
4637 }
4638 }
4639
4640 impl SupplicantStaIfaceGetSignalPollResultsResponse {
4641 #[inline(always)]
4642 fn max_ordinal_present(&self) -> u64 {
4643 if let Some(_) = self.frequency_mhz {
4644 return 4;
4645 }
4646 if let Some(_) = self.rx_bitrate_mbps {
4647 return 3;
4648 }
4649 if let Some(_) = self.tx_bitrate_mbps {
4650 return 2;
4651 }
4652 if let Some(_) = self.current_rssi_dbm {
4653 return 1;
4654 }
4655 0
4656 }
4657 }
4658
4659 impl fidl::encoding::ValueTypeMarker for SupplicantStaIfaceGetSignalPollResultsResponse {
4660 type Borrowed<'a> = &'a Self;
4661 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4662 value
4663 }
4664 }
4665
4666 unsafe impl fidl::encoding::TypeMarker for SupplicantStaIfaceGetSignalPollResultsResponse {
4667 type Owned = Self;
4668
4669 #[inline(always)]
4670 fn inline_align(_context: fidl::encoding::Context) -> usize {
4671 8
4672 }
4673
4674 #[inline(always)]
4675 fn inline_size(_context: fidl::encoding::Context) -> usize {
4676 16
4677 }
4678 }
4679
4680 unsafe impl<D: fidl::encoding::ResourceDialect>
4681 fidl::encoding::Encode<SupplicantStaIfaceGetSignalPollResultsResponse, D>
4682 for &SupplicantStaIfaceGetSignalPollResultsResponse
4683 {
4684 unsafe fn encode(
4685 self,
4686 encoder: &mut fidl::encoding::Encoder<'_, D>,
4687 offset: usize,
4688 mut depth: fidl::encoding::Depth,
4689 ) -> fidl::Result<()> {
4690 encoder.debug_check_bounds::<SupplicantStaIfaceGetSignalPollResultsResponse>(offset);
4691 let max_ordinal: u64 = self.max_ordinal_present();
4693 encoder.write_num(max_ordinal, offset);
4694 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
4695 if max_ordinal == 0 {
4697 return Ok(());
4698 }
4699 depth.increment()?;
4700 let envelope_size = 8;
4701 let bytes_len = max_ordinal as usize * envelope_size;
4702 #[allow(unused_variables)]
4703 let offset = encoder.out_of_line_offset(bytes_len);
4704 let mut _prev_end_offset: usize = 0;
4705 if 1 > max_ordinal {
4706 return Ok(());
4707 }
4708
4709 let cur_offset: usize = (1 - 1) * envelope_size;
4712
4713 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4715
4716 fidl::encoding::encode_in_envelope_optional::<i32, D>(
4721 self.current_rssi_dbm
4722 .as_ref()
4723 .map(<i32 as fidl::encoding::ValueTypeMarker>::borrow),
4724 encoder,
4725 offset + cur_offset,
4726 depth,
4727 )?;
4728
4729 _prev_end_offset = cur_offset + envelope_size;
4730 if 2 > max_ordinal {
4731 return Ok(());
4732 }
4733
4734 let cur_offset: usize = (2 - 1) * envelope_size;
4737
4738 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4740
4741 fidl::encoding::encode_in_envelope_optional::<u32, D>(
4746 self.tx_bitrate_mbps.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
4747 encoder,
4748 offset + cur_offset,
4749 depth,
4750 )?;
4751
4752 _prev_end_offset = cur_offset + envelope_size;
4753 if 3 > max_ordinal {
4754 return Ok(());
4755 }
4756
4757 let cur_offset: usize = (3 - 1) * envelope_size;
4760
4761 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4763
4764 fidl::encoding::encode_in_envelope_optional::<u32, D>(
4769 self.rx_bitrate_mbps.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
4770 encoder,
4771 offset + cur_offset,
4772 depth,
4773 )?;
4774
4775 _prev_end_offset = cur_offset + envelope_size;
4776 if 4 > max_ordinal {
4777 return Ok(());
4778 }
4779
4780 let cur_offset: usize = (4 - 1) * envelope_size;
4783
4784 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4786
4787 fidl::encoding::encode_in_envelope_optional::<u32, D>(
4792 self.frequency_mhz.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
4793 encoder,
4794 offset + cur_offset,
4795 depth,
4796 )?;
4797
4798 _prev_end_offset = cur_offset + envelope_size;
4799
4800 Ok(())
4801 }
4802 }
4803
4804 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
4805 for SupplicantStaIfaceGetSignalPollResultsResponse
4806 {
4807 #[inline(always)]
4808 fn new_empty() -> Self {
4809 Self::default()
4810 }
4811
4812 unsafe fn decode(
4813 &mut self,
4814 decoder: &mut fidl::encoding::Decoder<'_, D>,
4815 offset: usize,
4816 mut depth: fidl::encoding::Depth,
4817 ) -> fidl::Result<()> {
4818 decoder.debug_check_bounds::<Self>(offset);
4819 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
4820 None => return Err(fidl::Error::NotNullable),
4821 Some(len) => len,
4822 };
4823 if len == 0 {
4825 return Ok(());
4826 };
4827 depth.increment()?;
4828 let envelope_size = 8;
4829 let bytes_len = len * envelope_size;
4830 let offset = decoder.out_of_line_offset(bytes_len)?;
4831 let mut _next_ordinal_to_read = 0;
4833 let mut next_offset = offset;
4834 let end_offset = offset + bytes_len;
4835 _next_ordinal_to_read += 1;
4836 if next_offset >= end_offset {
4837 return Ok(());
4838 }
4839
4840 while _next_ordinal_to_read < 1 {
4842 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4843 _next_ordinal_to_read += 1;
4844 next_offset += envelope_size;
4845 }
4846
4847 let next_out_of_line = decoder.next_out_of_line();
4848 let handles_before = decoder.remaining_handles();
4849 if let Some((inlined, num_bytes, num_handles)) =
4850 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4851 {
4852 let member_inline_size =
4853 <i32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4854 if inlined != (member_inline_size <= 4) {
4855 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4856 }
4857 let inner_offset;
4858 let mut inner_depth = depth.clone();
4859 if inlined {
4860 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4861 inner_offset = next_offset;
4862 } else {
4863 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4864 inner_depth.increment()?;
4865 }
4866 let val_ref = self.current_rssi_dbm.get_or_insert_with(|| fidl::new_empty!(i32, D));
4867 fidl::decode!(i32, D, val_ref, decoder, inner_offset, inner_depth)?;
4868 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4869 {
4870 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4871 }
4872 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4873 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4874 }
4875 }
4876
4877 next_offset += envelope_size;
4878 _next_ordinal_to_read += 1;
4879 if next_offset >= end_offset {
4880 return Ok(());
4881 }
4882
4883 while _next_ordinal_to_read < 2 {
4885 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4886 _next_ordinal_to_read += 1;
4887 next_offset += envelope_size;
4888 }
4889
4890 let next_out_of_line = decoder.next_out_of_line();
4891 let handles_before = decoder.remaining_handles();
4892 if let Some((inlined, num_bytes, num_handles)) =
4893 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4894 {
4895 let member_inline_size =
4896 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4897 if inlined != (member_inline_size <= 4) {
4898 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4899 }
4900 let inner_offset;
4901 let mut inner_depth = depth.clone();
4902 if inlined {
4903 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4904 inner_offset = next_offset;
4905 } else {
4906 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4907 inner_depth.increment()?;
4908 }
4909 let val_ref = self.tx_bitrate_mbps.get_or_insert_with(|| fidl::new_empty!(u32, D));
4910 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
4911 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4912 {
4913 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4914 }
4915 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4916 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4917 }
4918 }
4919
4920 next_offset += envelope_size;
4921 _next_ordinal_to_read += 1;
4922 if next_offset >= end_offset {
4923 return Ok(());
4924 }
4925
4926 while _next_ordinal_to_read < 3 {
4928 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4929 _next_ordinal_to_read += 1;
4930 next_offset += envelope_size;
4931 }
4932
4933 let next_out_of_line = decoder.next_out_of_line();
4934 let handles_before = decoder.remaining_handles();
4935 if let Some((inlined, num_bytes, num_handles)) =
4936 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4937 {
4938 let member_inline_size =
4939 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4940 if inlined != (member_inline_size <= 4) {
4941 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4942 }
4943 let inner_offset;
4944 let mut inner_depth = depth.clone();
4945 if inlined {
4946 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4947 inner_offset = next_offset;
4948 } else {
4949 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4950 inner_depth.increment()?;
4951 }
4952 let val_ref = self.rx_bitrate_mbps.get_or_insert_with(|| fidl::new_empty!(u32, D));
4953 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
4954 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4955 {
4956 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4957 }
4958 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4959 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4960 }
4961 }
4962
4963 next_offset += envelope_size;
4964 _next_ordinal_to_read += 1;
4965 if next_offset >= end_offset {
4966 return Ok(());
4967 }
4968
4969 while _next_ordinal_to_read < 4 {
4971 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4972 _next_ordinal_to_read += 1;
4973 next_offset += envelope_size;
4974 }
4975
4976 let next_out_of_line = decoder.next_out_of_line();
4977 let handles_before = decoder.remaining_handles();
4978 if let Some((inlined, num_bytes, num_handles)) =
4979 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4980 {
4981 let member_inline_size =
4982 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4983 if inlined != (member_inline_size <= 4) {
4984 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4985 }
4986 let inner_offset;
4987 let mut inner_depth = depth.clone();
4988 if inlined {
4989 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4990 inner_offset = next_offset;
4991 } else {
4992 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4993 inner_depth.increment()?;
4994 }
4995 let val_ref = self.frequency_mhz.get_or_insert_with(|| fidl::new_empty!(u32, D));
4996 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
4997 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4998 {
4999 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5000 }
5001 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5002 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5003 }
5004 }
5005
5006 next_offset += envelope_size;
5007
5008 while next_offset < end_offset {
5010 _next_ordinal_to_read += 1;
5011 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5012 next_offset += envelope_size;
5013 }
5014
5015 Ok(())
5016 }
5017 }
5018
5019 impl SupplicantStaNetworkSetBssidRequest {
5020 #[inline(always)]
5021 fn max_ordinal_present(&self) -> u64 {
5022 if let Some(_) = self.bssid {
5023 return 1;
5024 }
5025 0
5026 }
5027 }
5028
5029 impl fidl::encoding::ValueTypeMarker for SupplicantStaNetworkSetBssidRequest {
5030 type Borrowed<'a> = &'a Self;
5031 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
5032 value
5033 }
5034 }
5035
5036 unsafe impl fidl::encoding::TypeMarker for SupplicantStaNetworkSetBssidRequest {
5037 type Owned = Self;
5038
5039 #[inline(always)]
5040 fn inline_align(_context: fidl::encoding::Context) -> usize {
5041 8
5042 }
5043
5044 #[inline(always)]
5045 fn inline_size(_context: fidl::encoding::Context) -> usize {
5046 16
5047 }
5048 }
5049
5050 unsafe impl<D: fidl::encoding::ResourceDialect>
5051 fidl::encoding::Encode<SupplicantStaNetworkSetBssidRequest, D>
5052 for &SupplicantStaNetworkSetBssidRequest
5053 {
5054 unsafe fn encode(
5055 self,
5056 encoder: &mut fidl::encoding::Encoder<'_, D>,
5057 offset: usize,
5058 mut depth: fidl::encoding::Depth,
5059 ) -> fidl::Result<()> {
5060 encoder.debug_check_bounds::<SupplicantStaNetworkSetBssidRequest>(offset);
5061 let max_ordinal: u64 = self.max_ordinal_present();
5063 encoder.write_num(max_ordinal, offset);
5064 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
5065 if max_ordinal == 0 {
5067 return Ok(());
5068 }
5069 depth.increment()?;
5070 let envelope_size = 8;
5071 let bytes_len = max_ordinal as usize * envelope_size;
5072 #[allow(unused_variables)]
5073 let offset = encoder.out_of_line_offset(bytes_len);
5074 let mut _prev_end_offset: usize = 0;
5075 if 1 > max_ordinal {
5076 return Ok(());
5077 }
5078
5079 let cur_offset: usize = (1 - 1) * envelope_size;
5082
5083 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5085
5086 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
5091 self.bssid
5092 .as_ref()
5093 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
5094 encoder,
5095 offset + cur_offset,
5096 depth,
5097 )?;
5098
5099 _prev_end_offset = cur_offset + envelope_size;
5100
5101 Ok(())
5102 }
5103 }
5104
5105 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
5106 for SupplicantStaNetworkSetBssidRequest
5107 {
5108 #[inline(always)]
5109 fn new_empty() -> Self {
5110 Self::default()
5111 }
5112
5113 unsafe fn decode(
5114 &mut self,
5115 decoder: &mut fidl::encoding::Decoder<'_, D>,
5116 offset: usize,
5117 mut depth: fidl::encoding::Depth,
5118 ) -> fidl::Result<()> {
5119 decoder.debug_check_bounds::<Self>(offset);
5120 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
5121 None => return Err(fidl::Error::NotNullable),
5122 Some(len) => len,
5123 };
5124 if len == 0 {
5126 return Ok(());
5127 };
5128 depth.increment()?;
5129 let envelope_size = 8;
5130 let bytes_len = len * envelope_size;
5131 let offset = decoder.out_of_line_offset(bytes_len)?;
5132 let mut _next_ordinal_to_read = 0;
5134 let mut next_offset = offset;
5135 let end_offset = offset + bytes_len;
5136 _next_ordinal_to_read += 1;
5137 if next_offset >= end_offset {
5138 return Ok(());
5139 }
5140
5141 while _next_ordinal_to_read < 1 {
5143 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5144 _next_ordinal_to_read += 1;
5145 next_offset += envelope_size;
5146 }
5147
5148 let next_out_of_line = decoder.next_out_of_line();
5149 let handles_before = decoder.remaining_handles();
5150 if let Some((inlined, num_bytes, num_handles)) =
5151 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5152 {
5153 let member_inline_size =
5154 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
5155 decoder.context,
5156 );
5157 if inlined != (member_inline_size <= 4) {
5158 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5159 }
5160 let inner_offset;
5161 let mut inner_depth = depth.clone();
5162 if inlined {
5163 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5164 inner_offset = next_offset;
5165 } else {
5166 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5167 inner_depth.increment()?;
5168 }
5169 let val_ref = self
5170 .bssid
5171 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
5172 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
5173 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5174 {
5175 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5176 }
5177 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5178 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5179 }
5180 }
5181
5182 next_offset += envelope_size;
5183
5184 while next_offset < end_offset {
5186 _next_ordinal_to_read += 1;
5187 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5188 next_offset += envelope_size;
5189 }
5190
5191 Ok(())
5192 }
5193 }
5194
5195 impl SupplicantStaNetworkSetKeyMgmtRequest {
5196 #[inline(always)]
5197 fn max_ordinal_present(&self) -> u64 {
5198 if let Some(_) = self.key_mgmt_mask {
5199 return 1;
5200 }
5201 0
5202 }
5203 }
5204
5205 impl fidl::encoding::ValueTypeMarker for SupplicantStaNetworkSetKeyMgmtRequest {
5206 type Borrowed<'a> = &'a Self;
5207 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
5208 value
5209 }
5210 }
5211
5212 unsafe impl fidl::encoding::TypeMarker for SupplicantStaNetworkSetKeyMgmtRequest {
5213 type Owned = Self;
5214
5215 #[inline(always)]
5216 fn inline_align(_context: fidl::encoding::Context) -> usize {
5217 8
5218 }
5219
5220 #[inline(always)]
5221 fn inline_size(_context: fidl::encoding::Context) -> usize {
5222 16
5223 }
5224 }
5225
5226 unsafe impl<D: fidl::encoding::ResourceDialect>
5227 fidl::encoding::Encode<SupplicantStaNetworkSetKeyMgmtRequest, D>
5228 for &SupplicantStaNetworkSetKeyMgmtRequest
5229 {
5230 unsafe fn encode(
5231 self,
5232 encoder: &mut fidl::encoding::Encoder<'_, D>,
5233 offset: usize,
5234 mut depth: fidl::encoding::Depth,
5235 ) -> fidl::Result<()> {
5236 encoder.debug_check_bounds::<SupplicantStaNetworkSetKeyMgmtRequest>(offset);
5237 let max_ordinal: u64 = self.max_ordinal_present();
5239 encoder.write_num(max_ordinal, offset);
5240 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
5241 if max_ordinal == 0 {
5243 return Ok(());
5244 }
5245 depth.increment()?;
5246 let envelope_size = 8;
5247 let bytes_len = max_ordinal as usize * envelope_size;
5248 #[allow(unused_variables)]
5249 let offset = encoder.out_of_line_offset(bytes_len);
5250 let mut _prev_end_offset: usize = 0;
5251 if 1 > max_ordinal {
5252 return Ok(());
5253 }
5254
5255 let cur_offset: usize = (1 - 1) * envelope_size;
5258
5259 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5261
5262 fidl::encoding::encode_in_envelope_optional::<KeyMgmtMask, D>(
5267 self.key_mgmt_mask
5268 .as_ref()
5269 .map(<KeyMgmtMask as fidl::encoding::ValueTypeMarker>::borrow),
5270 encoder,
5271 offset + cur_offset,
5272 depth,
5273 )?;
5274
5275 _prev_end_offset = cur_offset + envelope_size;
5276
5277 Ok(())
5278 }
5279 }
5280
5281 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
5282 for SupplicantStaNetworkSetKeyMgmtRequest
5283 {
5284 #[inline(always)]
5285 fn new_empty() -> Self {
5286 Self::default()
5287 }
5288
5289 unsafe fn decode(
5290 &mut self,
5291 decoder: &mut fidl::encoding::Decoder<'_, D>,
5292 offset: usize,
5293 mut depth: fidl::encoding::Depth,
5294 ) -> fidl::Result<()> {
5295 decoder.debug_check_bounds::<Self>(offset);
5296 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
5297 None => return Err(fidl::Error::NotNullable),
5298 Some(len) => len,
5299 };
5300 if len == 0 {
5302 return Ok(());
5303 };
5304 depth.increment()?;
5305 let envelope_size = 8;
5306 let bytes_len = len * envelope_size;
5307 let offset = decoder.out_of_line_offset(bytes_len)?;
5308 let mut _next_ordinal_to_read = 0;
5310 let mut next_offset = offset;
5311 let end_offset = offset + bytes_len;
5312 _next_ordinal_to_read += 1;
5313 if next_offset >= end_offset {
5314 return Ok(());
5315 }
5316
5317 while _next_ordinal_to_read < 1 {
5319 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5320 _next_ordinal_to_read += 1;
5321 next_offset += envelope_size;
5322 }
5323
5324 let next_out_of_line = decoder.next_out_of_line();
5325 let handles_before = decoder.remaining_handles();
5326 if let Some((inlined, num_bytes, num_handles)) =
5327 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5328 {
5329 let member_inline_size =
5330 <KeyMgmtMask as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5331 if inlined != (member_inline_size <= 4) {
5332 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5333 }
5334 let inner_offset;
5335 let mut inner_depth = depth.clone();
5336 if inlined {
5337 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5338 inner_offset = next_offset;
5339 } else {
5340 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5341 inner_depth.increment()?;
5342 }
5343 let val_ref =
5344 self.key_mgmt_mask.get_or_insert_with(|| fidl::new_empty!(KeyMgmtMask, D));
5345 fidl::decode!(KeyMgmtMask, D, val_ref, decoder, inner_offset, inner_depth)?;
5346 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5347 {
5348 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5349 }
5350 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5351 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5352 }
5353 }
5354
5355 next_offset += envelope_size;
5356
5357 while next_offset < end_offset {
5359 _next_ordinal_to_read += 1;
5360 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5361 next_offset += envelope_size;
5362 }
5363
5364 Ok(())
5365 }
5366 }
5367
5368 impl SupplicantStaNetworkSetPskPassphraseRequest {
5369 #[inline(always)]
5370 fn max_ordinal_present(&self) -> u64 {
5371 if let Some(_) = self.passphrase {
5372 return 1;
5373 }
5374 0
5375 }
5376 }
5377
5378 impl fidl::encoding::ValueTypeMarker for SupplicantStaNetworkSetPskPassphraseRequest {
5379 type Borrowed<'a> = &'a Self;
5380 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
5381 value
5382 }
5383 }
5384
5385 unsafe impl fidl::encoding::TypeMarker for SupplicantStaNetworkSetPskPassphraseRequest {
5386 type Owned = Self;
5387
5388 #[inline(always)]
5389 fn inline_align(_context: fidl::encoding::Context) -> usize {
5390 8
5391 }
5392
5393 #[inline(always)]
5394 fn inline_size(_context: fidl::encoding::Context) -> usize {
5395 16
5396 }
5397 }
5398
5399 unsafe impl<D: fidl::encoding::ResourceDialect>
5400 fidl::encoding::Encode<SupplicantStaNetworkSetPskPassphraseRequest, D>
5401 for &SupplicantStaNetworkSetPskPassphraseRequest
5402 {
5403 unsafe fn encode(
5404 self,
5405 encoder: &mut fidl::encoding::Encoder<'_, D>,
5406 offset: usize,
5407 mut depth: fidl::encoding::Depth,
5408 ) -> fidl::Result<()> {
5409 encoder.debug_check_bounds::<SupplicantStaNetworkSetPskPassphraseRequest>(offset);
5410 let max_ordinal: u64 = self.max_ordinal_present();
5412 encoder.write_num(max_ordinal, offset);
5413 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
5414 if max_ordinal == 0 {
5416 return Ok(());
5417 }
5418 depth.increment()?;
5419 let envelope_size = 8;
5420 let bytes_len = max_ordinal as usize * envelope_size;
5421 #[allow(unused_variables)]
5422 let offset = encoder.out_of_line_offset(bytes_len);
5423 let mut _prev_end_offset: usize = 0;
5424 if 1 > max_ordinal {
5425 return Ok(());
5426 }
5427
5428 let cur_offset: usize = (1 - 1) * envelope_size;
5431
5432 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5434
5435 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<u8>, D>(
5440 self.passphrase.as_ref().map(<fidl::encoding::UnboundedVector<u8> as fidl::encoding::ValueTypeMarker>::borrow),
5441 encoder, offset + cur_offset, depth
5442 )?;
5443
5444 _prev_end_offset = cur_offset + envelope_size;
5445
5446 Ok(())
5447 }
5448 }
5449
5450 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
5451 for SupplicantStaNetworkSetPskPassphraseRequest
5452 {
5453 #[inline(always)]
5454 fn new_empty() -> Self {
5455 Self::default()
5456 }
5457
5458 unsafe fn decode(
5459 &mut self,
5460 decoder: &mut fidl::encoding::Decoder<'_, D>,
5461 offset: usize,
5462 mut depth: fidl::encoding::Depth,
5463 ) -> fidl::Result<()> {
5464 decoder.debug_check_bounds::<Self>(offset);
5465 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
5466 None => return Err(fidl::Error::NotNullable),
5467 Some(len) => len,
5468 };
5469 if len == 0 {
5471 return Ok(());
5472 };
5473 depth.increment()?;
5474 let envelope_size = 8;
5475 let bytes_len = len * envelope_size;
5476 let offset = decoder.out_of_line_offset(bytes_len)?;
5477 let mut _next_ordinal_to_read = 0;
5479 let mut next_offset = offset;
5480 let end_offset = offset + bytes_len;
5481 _next_ordinal_to_read += 1;
5482 if next_offset >= end_offset {
5483 return Ok(());
5484 }
5485
5486 while _next_ordinal_to_read < 1 {
5488 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5489 _next_ordinal_to_read += 1;
5490 next_offset += envelope_size;
5491 }
5492
5493 let next_out_of_line = decoder.next_out_of_line();
5494 let handles_before = decoder.remaining_handles();
5495 if let Some((inlined, num_bytes, num_handles)) =
5496 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5497 {
5498 let member_inline_size = <fidl::encoding::UnboundedVector<u8> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5499 if inlined != (member_inline_size <= 4) {
5500 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5501 }
5502 let inner_offset;
5503 let mut inner_depth = depth.clone();
5504 if inlined {
5505 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5506 inner_offset = next_offset;
5507 } else {
5508 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5509 inner_depth.increment()?;
5510 }
5511 let val_ref = self.passphrase.get_or_insert_with(|| {
5512 fidl::new_empty!(fidl::encoding::UnboundedVector<u8>, D)
5513 });
5514 fidl::decode!(
5515 fidl::encoding::UnboundedVector<u8>,
5516 D,
5517 val_ref,
5518 decoder,
5519 inner_offset,
5520 inner_depth
5521 )?;
5522 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5523 {
5524 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5525 }
5526 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5527 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5528 }
5529 }
5530
5531 next_offset += envelope_size;
5532
5533 while next_offset < end_offset {
5535 _next_ordinal_to_read += 1;
5536 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5537 next_offset += envelope_size;
5538 }
5539
5540 Ok(())
5541 }
5542 }
5543
5544 impl SupplicantStaNetworkSetSaePasswordRequest {
5545 #[inline(always)]
5546 fn max_ordinal_present(&self) -> u64 {
5547 if let Some(_) = self.password {
5548 return 1;
5549 }
5550 0
5551 }
5552 }
5553
5554 impl fidl::encoding::ValueTypeMarker for SupplicantStaNetworkSetSaePasswordRequest {
5555 type Borrowed<'a> = &'a Self;
5556 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
5557 value
5558 }
5559 }
5560
5561 unsafe impl fidl::encoding::TypeMarker for SupplicantStaNetworkSetSaePasswordRequest {
5562 type Owned = Self;
5563
5564 #[inline(always)]
5565 fn inline_align(_context: fidl::encoding::Context) -> usize {
5566 8
5567 }
5568
5569 #[inline(always)]
5570 fn inline_size(_context: fidl::encoding::Context) -> usize {
5571 16
5572 }
5573 }
5574
5575 unsafe impl<D: fidl::encoding::ResourceDialect>
5576 fidl::encoding::Encode<SupplicantStaNetworkSetSaePasswordRequest, D>
5577 for &SupplicantStaNetworkSetSaePasswordRequest
5578 {
5579 unsafe fn encode(
5580 self,
5581 encoder: &mut fidl::encoding::Encoder<'_, D>,
5582 offset: usize,
5583 mut depth: fidl::encoding::Depth,
5584 ) -> fidl::Result<()> {
5585 encoder.debug_check_bounds::<SupplicantStaNetworkSetSaePasswordRequest>(offset);
5586 let max_ordinal: u64 = self.max_ordinal_present();
5588 encoder.write_num(max_ordinal, offset);
5589 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
5590 if max_ordinal == 0 {
5592 return Ok(());
5593 }
5594 depth.increment()?;
5595 let envelope_size = 8;
5596 let bytes_len = max_ordinal as usize * envelope_size;
5597 #[allow(unused_variables)]
5598 let offset = encoder.out_of_line_offset(bytes_len);
5599 let mut _prev_end_offset: usize = 0;
5600 if 1 > max_ordinal {
5601 return Ok(());
5602 }
5603
5604 let cur_offset: usize = (1 - 1) * envelope_size;
5607
5608 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5610
5611 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<u8>, D>(
5616 self.password.as_ref().map(<fidl::encoding::UnboundedVector<u8> as fidl::encoding::ValueTypeMarker>::borrow),
5617 encoder, offset + cur_offset, depth
5618 )?;
5619
5620 _prev_end_offset = cur_offset + envelope_size;
5621
5622 Ok(())
5623 }
5624 }
5625
5626 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
5627 for SupplicantStaNetworkSetSaePasswordRequest
5628 {
5629 #[inline(always)]
5630 fn new_empty() -> Self {
5631 Self::default()
5632 }
5633
5634 unsafe fn decode(
5635 &mut self,
5636 decoder: &mut fidl::encoding::Decoder<'_, D>,
5637 offset: usize,
5638 mut depth: fidl::encoding::Depth,
5639 ) -> fidl::Result<()> {
5640 decoder.debug_check_bounds::<Self>(offset);
5641 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
5642 None => return Err(fidl::Error::NotNullable),
5643 Some(len) => len,
5644 };
5645 if len == 0 {
5647 return Ok(());
5648 };
5649 depth.increment()?;
5650 let envelope_size = 8;
5651 let bytes_len = len * envelope_size;
5652 let offset = decoder.out_of_line_offset(bytes_len)?;
5653 let mut _next_ordinal_to_read = 0;
5655 let mut next_offset = offset;
5656 let end_offset = offset + bytes_len;
5657 _next_ordinal_to_read += 1;
5658 if next_offset >= end_offset {
5659 return Ok(());
5660 }
5661
5662 while _next_ordinal_to_read < 1 {
5664 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5665 _next_ordinal_to_read += 1;
5666 next_offset += envelope_size;
5667 }
5668
5669 let next_out_of_line = decoder.next_out_of_line();
5670 let handles_before = decoder.remaining_handles();
5671 if let Some((inlined, num_bytes, num_handles)) =
5672 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5673 {
5674 let member_inline_size = <fidl::encoding::UnboundedVector<u8> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5675 if inlined != (member_inline_size <= 4) {
5676 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5677 }
5678 let inner_offset;
5679 let mut inner_depth = depth.clone();
5680 if inlined {
5681 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5682 inner_offset = next_offset;
5683 } else {
5684 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5685 inner_depth.increment()?;
5686 }
5687 let val_ref = self.password.get_or_insert_with(|| {
5688 fidl::new_empty!(fidl::encoding::UnboundedVector<u8>, D)
5689 });
5690 fidl::decode!(
5691 fidl::encoding::UnboundedVector<u8>,
5692 D,
5693 val_ref,
5694 decoder,
5695 inner_offset,
5696 inner_depth
5697 )?;
5698 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5699 {
5700 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5701 }
5702 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5703 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5704 }
5705 }
5706
5707 next_offset += envelope_size;
5708
5709 while next_offset < end_offset {
5711 _next_ordinal_to_read += 1;
5712 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5713 next_offset += envelope_size;
5714 }
5715
5716 Ok(())
5717 }
5718 }
5719
5720 impl SupplicantStaNetworkSetSsidRequest {
5721 #[inline(always)]
5722 fn max_ordinal_present(&self) -> u64 {
5723 if let Some(_) = self.ssid {
5724 return 1;
5725 }
5726 0
5727 }
5728 }
5729
5730 impl fidl::encoding::ValueTypeMarker for SupplicantStaNetworkSetSsidRequest {
5731 type Borrowed<'a> = &'a Self;
5732 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
5733 value
5734 }
5735 }
5736
5737 unsafe impl fidl::encoding::TypeMarker for SupplicantStaNetworkSetSsidRequest {
5738 type Owned = Self;
5739
5740 #[inline(always)]
5741 fn inline_align(_context: fidl::encoding::Context) -> usize {
5742 8
5743 }
5744
5745 #[inline(always)]
5746 fn inline_size(_context: fidl::encoding::Context) -> usize {
5747 16
5748 }
5749 }
5750
5751 unsafe impl<D: fidl::encoding::ResourceDialect>
5752 fidl::encoding::Encode<SupplicantStaNetworkSetSsidRequest, D>
5753 for &SupplicantStaNetworkSetSsidRequest
5754 {
5755 unsafe fn encode(
5756 self,
5757 encoder: &mut fidl::encoding::Encoder<'_, D>,
5758 offset: usize,
5759 mut depth: fidl::encoding::Depth,
5760 ) -> fidl::Result<()> {
5761 encoder.debug_check_bounds::<SupplicantStaNetworkSetSsidRequest>(offset);
5762 let max_ordinal: u64 = self.max_ordinal_present();
5764 encoder.write_num(max_ordinal, offset);
5765 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
5766 if max_ordinal == 0 {
5768 return Ok(());
5769 }
5770 depth.increment()?;
5771 let envelope_size = 8;
5772 let bytes_len = max_ordinal as usize * envelope_size;
5773 #[allow(unused_variables)]
5774 let offset = encoder.out_of_line_offset(bytes_len);
5775 let mut _prev_end_offset: usize = 0;
5776 if 1 > max_ordinal {
5777 return Ok(());
5778 }
5779
5780 let cur_offset: usize = (1 - 1) * envelope_size;
5783
5784 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5786
5787 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<u8, 32>, D>(
5792 self.ssid.as_ref().map(
5793 <fidl::encoding::Vector<u8, 32> as fidl::encoding::ValueTypeMarker>::borrow,
5794 ),
5795 encoder,
5796 offset + cur_offset,
5797 depth,
5798 )?;
5799
5800 _prev_end_offset = cur_offset + envelope_size;
5801
5802 Ok(())
5803 }
5804 }
5805
5806 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
5807 for SupplicantStaNetworkSetSsidRequest
5808 {
5809 #[inline(always)]
5810 fn new_empty() -> Self {
5811 Self::default()
5812 }
5813
5814 unsafe fn decode(
5815 &mut self,
5816 decoder: &mut fidl::encoding::Decoder<'_, D>,
5817 offset: usize,
5818 mut depth: fidl::encoding::Depth,
5819 ) -> fidl::Result<()> {
5820 decoder.debug_check_bounds::<Self>(offset);
5821 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
5822 None => return Err(fidl::Error::NotNullable),
5823 Some(len) => len,
5824 };
5825 if len == 0 {
5827 return Ok(());
5828 };
5829 depth.increment()?;
5830 let envelope_size = 8;
5831 let bytes_len = len * envelope_size;
5832 let offset = decoder.out_of_line_offset(bytes_len)?;
5833 let mut _next_ordinal_to_read = 0;
5835 let mut next_offset = offset;
5836 let end_offset = offset + bytes_len;
5837 _next_ordinal_to_read += 1;
5838 if next_offset >= end_offset {
5839 return Ok(());
5840 }
5841
5842 while _next_ordinal_to_read < 1 {
5844 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5845 _next_ordinal_to_read += 1;
5846 next_offset += envelope_size;
5847 }
5848
5849 let next_out_of_line = decoder.next_out_of_line();
5850 let handles_before = decoder.remaining_handles();
5851 if let Some((inlined, num_bytes, num_handles)) =
5852 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5853 {
5854 let member_inline_size =
5855 <fidl::encoding::Vector<u8, 32> as fidl::encoding::TypeMarker>::inline_size(
5856 decoder.context,
5857 );
5858 if inlined != (member_inline_size <= 4) {
5859 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5860 }
5861 let inner_offset;
5862 let mut inner_depth = depth.clone();
5863 if inlined {
5864 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5865 inner_offset = next_offset;
5866 } else {
5867 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5868 inner_depth.increment()?;
5869 }
5870 let val_ref = self
5871 .ssid
5872 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<u8, 32>, D));
5873 fidl::decode!(fidl::encoding::Vector<u8, 32>, D, val_ref, decoder, inner_offset, inner_depth)?;
5874 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5875 {
5876 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5877 }
5878 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5879 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5880 }
5881 }
5882
5883 next_offset += envelope_size;
5884
5885 while next_offset < end_offset {
5887 _next_ordinal_to_read += 1;
5888 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5889 next_offset += envelope_size;
5890 }
5891
5892 Ok(())
5893 }
5894 }
5895
5896 impl SupplicantStaNetworkSetWepKeyRequest {
5897 #[inline(always)]
5898 fn max_ordinal_present(&self) -> u64 {
5899 if let Some(_) = self.key_idx {
5900 return 2;
5901 }
5902 if let Some(_) = self.key {
5903 return 1;
5904 }
5905 0
5906 }
5907 }
5908
5909 impl fidl::encoding::ValueTypeMarker for SupplicantStaNetworkSetWepKeyRequest {
5910 type Borrowed<'a> = &'a Self;
5911 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
5912 value
5913 }
5914 }
5915
5916 unsafe impl fidl::encoding::TypeMarker for SupplicantStaNetworkSetWepKeyRequest {
5917 type Owned = Self;
5918
5919 #[inline(always)]
5920 fn inline_align(_context: fidl::encoding::Context) -> usize {
5921 8
5922 }
5923
5924 #[inline(always)]
5925 fn inline_size(_context: fidl::encoding::Context) -> usize {
5926 16
5927 }
5928 }
5929
5930 unsafe impl<D: fidl::encoding::ResourceDialect>
5931 fidl::encoding::Encode<SupplicantStaNetworkSetWepKeyRequest, D>
5932 for &SupplicantStaNetworkSetWepKeyRequest
5933 {
5934 unsafe fn encode(
5935 self,
5936 encoder: &mut fidl::encoding::Encoder<'_, D>,
5937 offset: usize,
5938 mut depth: fidl::encoding::Depth,
5939 ) -> fidl::Result<()> {
5940 encoder.debug_check_bounds::<SupplicantStaNetworkSetWepKeyRequest>(offset);
5941 let max_ordinal: u64 = self.max_ordinal_present();
5943 encoder.write_num(max_ordinal, offset);
5944 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
5945 if max_ordinal == 0 {
5947 return Ok(());
5948 }
5949 depth.increment()?;
5950 let envelope_size = 8;
5951 let bytes_len = max_ordinal as usize * envelope_size;
5952 #[allow(unused_variables)]
5953 let offset = encoder.out_of_line_offset(bytes_len);
5954 let mut _prev_end_offset: usize = 0;
5955 if 1 > max_ordinal {
5956 return Ok(());
5957 }
5958
5959 let cur_offset: usize = (1 - 1) * envelope_size;
5962
5963 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5965
5966 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<u8>, D>(
5971 self.key.as_ref().map(<fidl::encoding::UnboundedVector<u8> as fidl::encoding::ValueTypeMarker>::borrow),
5972 encoder, offset + cur_offset, depth
5973 )?;
5974
5975 _prev_end_offset = cur_offset + envelope_size;
5976 if 2 > max_ordinal {
5977 return Ok(());
5978 }
5979
5980 let cur_offset: usize = (2 - 1) * envelope_size;
5983
5984 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5986
5987 fidl::encoding::encode_in_envelope_optional::<i32, D>(
5992 self.key_idx.as_ref().map(<i32 as fidl::encoding::ValueTypeMarker>::borrow),
5993 encoder,
5994 offset + cur_offset,
5995 depth,
5996 )?;
5997
5998 _prev_end_offset = cur_offset + envelope_size;
5999
6000 Ok(())
6001 }
6002 }
6003
6004 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
6005 for SupplicantStaNetworkSetWepKeyRequest
6006 {
6007 #[inline(always)]
6008 fn new_empty() -> Self {
6009 Self::default()
6010 }
6011
6012 unsafe fn decode(
6013 &mut self,
6014 decoder: &mut fidl::encoding::Decoder<'_, D>,
6015 offset: usize,
6016 mut depth: fidl::encoding::Depth,
6017 ) -> fidl::Result<()> {
6018 decoder.debug_check_bounds::<Self>(offset);
6019 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
6020 None => return Err(fidl::Error::NotNullable),
6021 Some(len) => len,
6022 };
6023 if len == 0 {
6025 return Ok(());
6026 };
6027 depth.increment()?;
6028 let envelope_size = 8;
6029 let bytes_len = len * envelope_size;
6030 let offset = decoder.out_of_line_offset(bytes_len)?;
6031 let mut _next_ordinal_to_read = 0;
6033 let mut next_offset = offset;
6034 let end_offset = offset + bytes_len;
6035 _next_ordinal_to_read += 1;
6036 if next_offset >= end_offset {
6037 return Ok(());
6038 }
6039
6040 while _next_ordinal_to_read < 1 {
6042 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6043 _next_ordinal_to_read += 1;
6044 next_offset += envelope_size;
6045 }
6046
6047 let next_out_of_line = decoder.next_out_of_line();
6048 let handles_before = decoder.remaining_handles();
6049 if let Some((inlined, num_bytes, num_handles)) =
6050 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6051 {
6052 let member_inline_size = <fidl::encoding::UnboundedVector<u8> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6053 if inlined != (member_inline_size <= 4) {
6054 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6055 }
6056 let inner_offset;
6057 let mut inner_depth = depth.clone();
6058 if inlined {
6059 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6060 inner_offset = next_offset;
6061 } else {
6062 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6063 inner_depth.increment()?;
6064 }
6065 let val_ref = self.key.get_or_insert_with(|| {
6066 fidl::new_empty!(fidl::encoding::UnboundedVector<u8>, D)
6067 });
6068 fidl::decode!(
6069 fidl::encoding::UnboundedVector<u8>,
6070 D,
6071 val_ref,
6072 decoder,
6073 inner_offset,
6074 inner_depth
6075 )?;
6076 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6077 {
6078 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6079 }
6080 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6081 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6082 }
6083 }
6084
6085 next_offset += envelope_size;
6086 _next_ordinal_to_read += 1;
6087 if next_offset >= end_offset {
6088 return Ok(());
6089 }
6090
6091 while _next_ordinal_to_read < 2 {
6093 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6094 _next_ordinal_to_read += 1;
6095 next_offset += envelope_size;
6096 }
6097
6098 let next_out_of_line = decoder.next_out_of_line();
6099 let handles_before = decoder.remaining_handles();
6100 if let Some((inlined, num_bytes, num_handles)) =
6101 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6102 {
6103 let member_inline_size =
6104 <i32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6105 if inlined != (member_inline_size <= 4) {
6106 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6107 }
6108 let inner_offset;
6109 let mut inner_depth = depth.clone();
6110 if inlined {
6111 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6112 inner_offset = next_offset;
6113 } else {
6114 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6115 inner_depth.increment()?;
6116 }
6117 let val_ref = self.key_idx.get_or_insert_with(|| fidl::new_empty!(i32, D));
6118 fidl::decode!(i32, D, val_ref, decoder, inner_offset, inner_depth)?;
6119 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6120 {
6121 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6122 }
6123 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6124 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6125 }
6126 }
6127
6128 next_offset += envelope_size;
6129
6130 while next_offset < end_offset {
6132 _next_ordinal_to_read += 1;
6133 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6134 next_offset += envelope_size;
6135 }
6136
6137 Ok(())
6138 }
6139 }
6140
6141 impl SupplicantStaNetworkSetWepTxKeyIdxRequest {
6142 #[inline(always)]
6143 fn max_ordinal_present(&self) -> u64 {
6144 if let Some(_) = self.key_idx {
6145 return 1;
6146 }
6147 0
6148 }
6149 }
6150
6151 impl fidl::encoding::ValueTypeMarker for SupplicantStaNetworkSetWepTxKeyIdxRequest {
6152 type Borrowed<'a> = &'a Self;
6153 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
6154 value
6155 }
6156 }
6157
6158 unsafe impl fidl::encoding::TypeMarker for SupplicantStaNetworkSetWepTxKeyIdxRequest {
6159 type Owned = Self;
6160
6161 #[inline(always)]
6162 fn inline_align(_context: fidl::encoding::Context) -> usize {
6163 8
6164 }
6165
6166 #[inline(always)]
6167 fn inline_size(_context: fidl::encoding::Context) -> usize {
6168 16
6169 }
6170 }
6171
6172 unsafe impl<D: fidl::encoding::ResourceDialect>
6173 fidl::encoding::Encode<SupplicantStaNetworkSetWepTxKeyIdxRequest, D>
6174 for &SupplicantStaNetworkSetWepTxKeyIdxRequest
6175 {
6176 unsafe fn encode(
6177 self,
6178 encoder: &mut fidl::encoding::Encoder<'_, D>,
6179 offset: usize,
6180 mut depth: fidl::encoding::Depth,
6181 ) -> fidl::Result<()> {
6182 encoder.debug_check_bounds::<SupplicantStaNetworkSetWepTxKeyIdxRequest>(offset);
6183 let max_ordinal: u64 = self.max_ordinal_present();
6185 encoder.write_num(max_ordinal, offset);
6186 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
6187 if max_ordinal == 0 {
6189 return Ok(());
6190 }
6191 depth.increment()?;
6192 let envelope_size = 8;
6193 let bytes_len = max_ordinal as usize * envelope_size;
6194 #[allow(unused_variables)]
6195 let offset = encoder.out_of_line_offset(bytes_len);
6196 let mut _prev_end_offset: usize = 0;
6197 if 1 > max_ordinal {
6198 return Ok(());
6199 }
6200
6201 let cur_offset: usize = (1 - 1) * envelope_size;
6204
6205 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6207
6208 fidl::encoding::encode_in_envelope_optional::<i32, D>(
6213 self.key_idx.as_ref().map(<i32 as fidl::encoding::ValueTypeMarker>::borrow),
6214 encoder,
6215 offset + cur_offset,
6216 depth,
6217 )?;
6218
6219 _prev_end_offset = cur_offset + envelope_size;
6220
6221 Ok(())
6222 }
6223 }
6224
6225 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
6226 for SupplicantStaNetworkSetWepTxKeyIdxRequest
6227 {
6228 #[inline(always)]
6229 fn new_empty() -> Self {
6230 Self::default()
6231 }
6232
6233 unsafe fn decode(
6234 &mut self,
6235 decoder: &mut fidl::encoding::Decoder<'_, D>,
6236 offset: usize,
6237 mut depth: fidl::encoding::Depth,
6238 ) -> fidl::Result<()> {
6239 decoder.debug_check_bounds::<Self>(offset);
6240 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
6241 None => return Err(fidl::Error::NotNullable),
6242 Some(len) => len,
6243 };
6244 if len == 0 {
6246 return Ok(());
6247 };
6248 depth.increment()?;
6249 let envelope_size = 8;
6250 let bytes_len = len * envelope_size;
6251 let offset = decoder.out_of_line_offset(bytes_len)?;
6252 let mut _next_ordinal_to_read = 0;
6254 let mut next_offset = offset;
6255 let end_offset = offset + bytes_len;
6256 _next_ordinal_to_read += 1;
6257 if next_offset >= end_offset {
6258 return Ok(());
6259 }
6260
6261 while _next_ordinal_to_read < 1 {
6263 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6264 _next_ordinal_to_read += 1;
6265 next_offset += envelope_size;
6266 }
6267
6268 let next_out_of_line = decoder.next_out_of_line();
6269 let handles_before = decoder.remaining_handles();
6270 if let Some((inlined, num_bytes, num_handles)) =
6271 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6272 {
6273 let member_inline_size =
6274 <i32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6275 if inlined != (member_inline_size <= 4) {
6276 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6277 }
6278 let inner_offset;
6279 let mut inner_depth = depth.clone();
6280 if inlined {
6281 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6282 inner_offset = next_offset;
6283 } else {
6284 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6285 inner_depth.increment()?;
6286 }
6287 let val_ref = self.key_idx.get_or_insert_with(|| fidl::new_empty!(i32, D));
6288 fidl::decode!(i32, D, val_ref, decoder, inner_offset, inner_depth)?;
6289 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6290 {
6291 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6292 }
6293 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6294 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6295 }
6296 }
6297
6298 next_offset += envelope_size;
6299
6300 while next_offset < end_offset {
6302 _next_ordinal_to_read += 1;
6303 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6304 next_offset += envelope_size;
6305 }
6306
6307 Ok(())
6308 }
6309 }
6310
6311 impl WifiChipGetAvailableModesResponse {
6312 #[inline(always)]
6313 fn max_ordinal_present(&self) -> u64 {
6314 if let Some(_) = self.chip_modes {
6315 return 1;
6316 }
6317 0
6318 }
6319 }
6320
6321 impl fidl::encoding::ValueTypeMarker for WifiChipGetAvailableModesResponse {
6322 type Borrowed<'a> = &'a Self;
6323 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
6324 value
6325 }
6326 }
6327
6328 unsafe impl fidl::encoding::TypeMarker for WifiChipGetAvailableModesResponse {
6329 type Owned = Self;
6330
6331 #[inline(always)]
6332 fn inline_align(_context: fidl::encoding::Context) -> usize {
6333 8
6334 }
6335
6336 #[inline(always)]
6337 fn inline_size(_context: fidl::encoding::Context) -> usize {
6338 16
6339 }
6340 }
6341
6342 unsafe impl<D: fidl::encoding::ResourceDialect>
6343 fidl::encoding::Encode<WifiChipGetAvailableModesResponse, D>
6344 for &WifiChipGetAvailableModesResponse
6345 {
6346 unsafe fn encode(
6347 self,
6348 encoder: &mut fidl::encoding::Encoder<'_, D>,
6349 offset: usize,
6350 mut depth: fidl::encoding::Depth,
6351 ) -> fidl::Result<()> {
6352 encoder.debug_check_bounds::<WifiChipGetAvailableModesResponse>(offset);
6353 let max_ordinal: u64 = self.max_ordinal_present();
6355 encoder.write_num(max_ordinal, offset);
6356 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
6357 if max_ordinal == 0 {
6359 return Ok(());
6360 }
6361 depth.increment()?;
6362 let envelope_size = 8;
6363 let bytes_len = max_ordinal as usize * envelope_size;
6364 #[allow(unused_variables)]
6365 let offset = encoder.out_of_line_offset(bytes_len);
6366 let mut _prev_end_offset: usize = 0;
6367 if 1 > max_ordinal {
6368 return Ok(());
6369 }
6370
6371 let cur_offset: usize = (1 - 1) * envelope_size;
6374
6375 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6377
6378 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<ChipMode>, D>(
6383 self.chip_modes.as_ref().map(<fidl::encoding::UnboundedVector<ChipMode> as fidl::encoding::ValueTypeMarker>::borrow),
6384 encoder, offset + cur_offset, depth
6385 )?;
6386
6387 _prev_end_offset = cur_offset + envelope_size;
6388
6389 Ok(())
6390 }
6391 }
6392
6393 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
6394 for WifiChipGetAvailableModesResponse
6395 {
6396 #[inline(always)]
6397 fn new_empty() -> Self {
6398 Self::default()
6399 }
6400
6401 unsafe fn decode(
6402 &mut self,
6403 decoder: &mut fidl::encoding::Decoder<'_, D>,
6404 offset: usize,
6405 mut depth: fidl::encoding::Depth,
6406 ) -> fidl::Result<()> {
6407 decoder.debug_check_bounds::<Self>(offset);
6408 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
6409 None => return Err(fidl::Error::NotNullable),
6410 Some(len) => len,
6411 };
6412 if len == 0 {
6414 return Ok(());
6415 };
6416 depth.increment()?;
6417 let envelope_size = 8;
6418 let bytes_len = len * envelope_size;
6419 let offset = decoder.out_of_line_offset(bytes_len)?;
6420 let mut _next_ordinal_to_read = 0;
6422 let mut next_offset = offset;
6423 let end_offset = offset + bytes_len;
6424 _next_ordinal_to_read += 1;
6425 if next_offset >= end_offset {
6426 return Ok(());
6427 }
6428
6429 while _next_ordinal_to_read < 1 {
6431 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6432 _next_ordinal_to_read += 1;
6433 next_offset += envelope_size;
6434 }
6435
6436 let next_out_of_line = decoder.next_out_of_line();
6437 let handles_before = decoder.remaining_handles();
6438 if let Some((inlined, num_bytes, num_handles)) =
6439 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6440 {
6441 let member_inline_size = <fidl::encoding::UnboundedVector<ChipMode> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6442 if inlined != (member_inline_size <= 4) {
6443 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6444 }
6445 let inner_offset;
6446 let mut inner_depth = depth.clone();
6447 if inlined {
6448 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6449 inner_offset = next_offset;
6450 } else {
6451 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6452 inner_depth.increment()?;
6453 }
6454 let val_ref = self.chip_modes.get_or_insert_with(|| {
6455 fidl::new_empty!(fidl::encoding::UnboundedVector<ChipMode>, D)
6456 });
6457 fidl::decode!(
6458 fidl::encoding::UnboundedVector<ChipMode>,
6459 D,
6460 val_ref,
6461 decoder,
6462 inner_offset,
6463 inner_depth
6464 )?;
6465 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6466 {
6467 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6468 }
6469 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6470 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6471 }
6472 }
6473
6474 next_offset += envelope_size;
6475
6476 while next_offset < end_offset {
6478 _next_ordinal_to_read += 1;
6479 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6480 next_offset += envelope_size;
6481 }
6482
6483 Ok(())
6484 }
6485 }
6486
6487 impl WifiChipGetCapabilitiesResponse {
6488 #[inline(always)]
6489 fn max_ordinal_present(&self) -> u64 {
6490 if let Some(_) = self.capabilities_mask {
6491 return 1;
6492 }
6493 0
6494 }
6495 }
6496
6497 impl fidl::encoding::ValueTypeMarker for WifiChipGetCapabilitiesResponse {
6498 type Borrowed<'a> = &'a Self;
6499 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
6500 value
6501 }
6502 }
6503
6504 unsafe impl fidl::encoding::TypeMarker for WifiChipGetCapabilitiesResponse {
6505 type Owned = Self;
6506
6507 #[inline(always)]
6508 fn inline_align(_context: fidl::encoding::Context) -> usize {
6509 8
6510 }
6511
6512 #[inline(always)]
6513 fn inline_size(_context: fidl::encoding::Context) -> usize {
6514 16
6515 }
6516 }
6517
6518 unsafe impl<D: fidl::encoding::ResourceDialect>
6519 fidl::encoding::Encode<WifiChipGetCapabilitiesResponse, D>
6520 for &WifiChipGetCapabilitiesResponse
6521 {
6522 unsafe fn encode(
6523 self,
6524 encoder: &mut fidl::encoding::Encoder<'_, D>,
6525 offset: usize,
6526 mut depth: fidl::encoding::Depth,
6527 ) -> fidl::Result<()> {
6528 encoder.debug_check_bounds::<WifiChipGetCapabilitiesResponse>(offset);
6529 let max_ordinal: u64 = self.max_ordinal_present();
6531 encoder.write_num(max_ordinal, offset);
6532 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
6533 if max_ordinal == 0 {
6535 return Ok(());
6536 }
6537 depth.increment()?;
6538 let envelope_size = 8;
6539 let bytes_len = max_ordinal as usize * envelope_size;
6540 #[allow(unused_variables)]
6541 let offset = encoder.out_of_line_offset(bytes_len);
6542 let mut _prev_end_offset: usize = 0;
6543 if 1 > max_ordinal {
6544 return Ok(());
6545 }
6546
6547 let cur_offset: usize = (1 - 1) * envelope_size;
6550
6551 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6553
6554 fidl::encoding::encode_in_envelope_optional::<u32, D>(
6559 self.capabilities_mask
6560 .as_ref()
6561 .map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
6562 encoder,
6563 offset + cur_offset,
6564 depth,
6565 )?;
6566
6567 _prev_end_offset = cur_offset + envelope_size;
6568
6569 Ok(())
6570 }
6571 }
6572
6573 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
6574 for WifiChipGetCapabilitiesResponse
6575 {
6576 #[inline(always)]
6577 fn new_empty() -> Self {
6578 Self::default()
6579 }
6580
6581 unsafe fn decode(
6582 &mut self,
6583 decoder: &mut fidl::encoding::Decoder<'_, D>,
6584 offset: usize,
6585 mut depth: fidl::encoding::Depth,
6586 ) -> fidl::Result<()> {
6587 decoder.debug_check_bounds::<Self>(offset);
6588 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
6589 None => return Err(fidl::Error::NotNullable),
6590 Some(len) => len,
6591 };
6592 if len == 0 {
6594 return Ok(());
6595 };
6596 depth.increment()?;
6597 let envelope_size = 8;
6598 let bytes_len = len * envelope_size;
6599 let offset = decoder.out_of_line_offset(bytes_len)?;
6600 let mut _next_ordinal_to_read = 0;
6602 let mut next_offset = offset;
6603 let end_offset = offset + bytes_len;
6604 _next_ordinal_to_read += 1;
6605 if next_offset >= end_offset {
6606 return Ok(());
6607 }
6608
6609 while _next_ordinal_to_read < 1 {
6611 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6612 _next_ordinal_to_read += 1;
6613 next_offset += envelope_size;
6614 }
6615
6616 let next_out_of_line = decoder.next_out_of_line();
6617 let handles_before = decoder.remaining_handles();
6618 if let Some((inlined, num_bytes, num_handles)) =
6619 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6620 {
6621 let member_inline_size =
6622 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6623 if inlined != (member_inline_size <= 4) {
6624 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6625 }
6626 let inner_offset;
6627 let mut inner_depth = depth.clone();
6628 if inlined {
6629 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6630 inner_offset = next_offset;
6631 } else {
6632 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6633 inner_depth.increment()?;
6634 }
6635 let val_ref =
6636 self.capabilities_mask.get_or_insert_with(|| fidl::new_empty!(u32, D));
6637 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
6638 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6639 {
6640 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6641 }
6642 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6643 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6644 }
6645 }
6646
6647 next_offset += envelope_size;
6648
6649 while next_offset < end_offset {
6651 _next_ordinal_to_read += 1;
6652 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6653 next_offset += envelope_size;
6654 }
6655
6656 Ok(())
6657 }
6658 }
6659
6660 impl WifiChipGetIdResponse {
6661 #[inline(always)]
6662 fn max_ordinal_present(&self) -> u64 {
6663 if let Some(_) = self.id {
6664 return 1;
6665 }
6666 0
6667 }
6668 }
6669
6670 impl fidl::encoding::ValueTypeMarker for WifiChipGetIdResponse {
6671 type Borrowed<'a> = &'a Self;
6672 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
6673 value
6674 }
6675 }
6676
6677 unsafe impl fidl::encoding::TypeMarker for WifiChipGetIdResponse {
6678 type Owned = Self;
6679
6680 #[inline(always)]
6681 fn inline_align(_context: fidl::encoding::Context) -> usize {
6682 8
6683 }
6684
6685 #[inline(always)]
6686 fn inline_size(_context: fidl::encoding::Context) -> usize {
6687 16
6688 }
6689 }
6690
6691 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<WifiChipGetIdResponse, D>
6692 for &WifiChipGetIdResponse
6693 {
6694 unsafe fn encode(
6695 self,
6696 encoder: &mut fidl::encoding::Encoder<'_, D>,
6697 offset: usize,
6698 mut depth: fidl::encoding::Depth,
6699 ) -> fidl::Result<()> {
6700 encoder.debug_check_bounds::<WifiChipGetIdResponse>(offset);
6701 let max_ordinal: u64 = self.max_ordinal_present();
6703 encoder.write_num(max_ordinal, offset);
6704 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
6705 if max_ordinal == 0 {
6707 return Ok(());
6708 }
6709 depth.increment()?;
6710 let envelope_size = 8;
6711 let bytes_len = max_ordinal as usize * envelope_size;
6712 #[allow(unused_variables)]
6713 let offset = encoder.out_of_line_offset(bytes_len);
6714 let mut _prev_end_offset: usize = 0;
6715 if 1 > max_ordinal {
6716 return Ok(());
6717 }
6718
6719 let cur_offset: usize = (1 - 1) * envelope_size;
6722
6723 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6725
6726 fidl::encoding::encode_in_envelope_optional::<u32, D>(
6731 self.id.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
6732 encoder,
6733 offset + cur_offset,
6734 depth,
6735 )?;
6736
6737 _prev_end_offset = cur_offset + envelope_size;
6738
6739 Ok(())
6740 }
6741 }
6742
6743 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for WifiChipGetIdResponse {
6744 #[inline(always)]
6745 fn new_empty() -> Self {
6746 Self::default()
6747 }
6748
6749 unsafe fn decode(
6750 &mut self,
6751 decoder: &mut fidl::encoding::Decoder<'_, D>,
6752 offset: usize,
6753 mut depth: fidl::encoding::Depth,
6754 ) -> fidl::Result<()> {
6755 decoder.debug_check_bounds::<Self>(offset);
6756 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
6757 None => return Err(fidl::Error::NotNullable),
6758 Some(len) => len,
6759 };
6760 if len == 0 {
6762 return Ok(());
6763 };
6764 depth.increment()?;
6765 let envelope_size = 8;
6766 let bytes_len = len * envelope_size;
6767 let offset = decoder.out_of_line_offset(bytes_len)?;
6768 let mut _next_ordinal_to_read = 0;
6770 let mut next_offset = offset;
6771 let end_offset = offset + bytes_len;
6772 _next_ordinal_to_read += 1;
6773 if next_offset >= end_offset {
6774 return Ok(());
6775 }
6776
6777 while _next_ordinal_to_read < 1 {
6779 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6780 _next_ordinal_to_read += 1;
6781 next_offset += envelope_size;
6782 }
6783
6784 let next_out_of_line = decoder.next_out_of_line();
6785 let handles_before = decoder.remaining_handles();
6786 if let Some((inlined, num_bytes, num_handles)) =
6787 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6788 {
6789 let member_inline_size =
6790 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6791 if inlined != (member_inline_size <= 4) {
6792 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6793 }
6794 let inner_offset;
6795 let mut inner_depth = depth.clone();
6796 if inlined {
6797 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6798 inner_offset = next_offset;
6799 } else {
6800 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6801 inner_depth.increment()?;
6802 }
6803 let val_ref = self.id.get_or_insert_with(|| fidl::new_empty!(u32, D));
6804 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
6805 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6806 {
6807 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6808 }
6809 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6810 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6811 }
6812 }
6813
6814 next_offset += envelope_size;
6815
6816 while next_offset < end_offset {
6818 _next_ordinal_to_read += 1;
6819 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6820 next_offset += envelope_size;
6821 }
6822
6823 Ok(())
6824 }
6825 }
6826
6827 impl WifiChipGetModeResponse {
6828 #[inline(always)]
6829 fn max_ordinal_present(&self) -> u64 {
6830 if let Some(_) = self.mode {
6831 return 1;
6832 }
6833 0
6834 }
6835 }
6836
6837 impl fidl::encoding::ValueTypeMarker for WifiChipGetModeResponse {
6838 type Borrowed<'a> = &'a Self;
6839 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
6840 value
6841 }
6842 }
6843
6844 unsafe impl fidl::encoding::TypeMarker for WifiChipGetModeResponse {
6845 type Owned = Self;
6846
6847 #[inline(always)]
6848 fn inline_align(_context: fidl::encoding::Context) -> usize {
6849 8
6850 }
6851
6852 #[inline(always)]
6853 fn inline_size(_context: fidl::encoding::Context) -> usize {
6854 16
6855 }
6856 }
6857
6858 unsafe impl<D: fidl::encoding::ResourceDialect>
6859 fidl::encoding::Encode<WifiChipGetModeResponse, D> for &WifiChipGetModeResponse
6860 {
6861 unsafe fn encode(
6862 self,
6863 encoder: &mut fidl::encoding::Encoder<'_, D>,
6864 offset: usize,
6865 mut depth: fidl::encoding::Depth,
6866 ) -> fidl::Result<()> {
6867 encoder.debug_check_bounds::<WifiChipGetModeResponse>(offset);
6868 let max_ordinal: u64 = self.max_ordinal_present();
6870 encoder.write_num(max_ordinal, offset);
6871 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
6872 if max_ordinal == 0 {
6874 return Ok(());
6875 }
6876 depth.increment()?;
6877 let envelope_size = 8;
6878 let bytes_len = max_ordinal as usize * envelope_size;
6879 #[allow(unused_variables)]
6880 let offset = encoder.out_of_line_offset(bytes_len);
6881 let mut _prev_end_offset: usize = 0;
6882 if 1 > max_ordinal {
6883 return Ok(());
6884 }
6885
6886 let cur_offset: usize = (1 - 1) * envelope_size;
6889
6890 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6892
6893 fidl::encoding::encode_in_envelope_optional::<u32, D>(
6898 self.mode.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
6899 encoder,
6900 offset + cur_offset,
6901 depth,
6902 )?;
6903
6904 _prev_end_offset = cur_offset + envelope_size;
6905
6906 Ok(())
6907 }
6908 }
6909
6910 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
6911 for WifiChipGetModeResponse
6912 {
6913 #[inline(always)]
6914 fn new_empty() -> Self {
6915 Self::default()
6916 }
6917
6918 unsafe fn decode(
6919 &mut self,
6920 decoder: &mut fidl::encoding::Decoder<'_, D>,
6921 offset: usize,
6922 mut depth: fidl::encoding::Depth,
6923 ) -> fidl::Result<()> {
6924 decoder.debug_check_bounds::<Self>(offset);
6925 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
6926 None => return Err(fidl::Error::NotNullable),
6927 Some(len) => len,
6928 };
6929 if len == 0 {
6931 return Ok(());
6932 };
6933 depth.increment()?;
6934 let envelope_size = 8;
6935 let bytes_len = len * envelope_size;
6936 let offset = decoder.out_of_line_offset(bytes_len)?;
6937 let mut _next_ordinal_to_read = 0;
6939 let mut next_offset = offset;
6940 let end_offset = offset + bytes_len;
6941 _next_ordinal_to_read += 1;
6942 if next_offset >= end_offset {
6943 return Ok(());
6944 }
6945
6946 while _next_ordinal_to_read < 1 {
6948 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6949 _next_ordinal_to_read += 1;
6950 next_offset += envelope_size;
6951 }
6952
6953 let next_out_of_line = decoder.next_out_of_line();
6954 let handles_before = decoder.remaining_handles();
6955 if let Some((inlined, num_bytes, num_handles)) =
6956 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6957 {
6958 let member_inline_size =
6959 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6960 if inlined != (member_inline_size <= 4) {
6961 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6962 }
6963 let inner_offset;
6964 let mut inner_depth = depth.clone();
6965 if inlined {
6966 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6967 inner_offset = next_offset;
6968 } else {
6969 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6970 inner_depth.increment()?;
6971 }
6972 let val_ref = self.mode.get_or_insert_with(|| fidl::new_empty!(u32, D));
6973 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
6974 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6975 {
6976 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6977 }
6978 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6979 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6980 }
6981 }
6982
6983 next_offset += envelope_size;
6984
6985 while next_offset < end_offset {
6987 _next_ordinal_to_read += 1;
6988 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6989 next_offset += envelope_size;
6990 }
6991
6992 Ok(())
6993 }
6994 }
6995
6996 impl WifiChipGetStaIfaceNamesResponse {
6997 #[inline(always)]
6998 fn max_ordinal_present(&self) -> u64 {
6999 if let Some(_) = self.iface_names {
7000 return 1;
7001 }
7002 0
7003 }
7004 }
7005
7006 impl fidl::encoding::ValueTypeMarker for WifiChipGetStaIfaceNamesResponse {
7007 type Borrowed<'a> = &'a Self;
7008 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
7009 value
7010 }
7011 }
7012
7013 unsafe impl fidl::encoding::TypeMarker for WifiChipGetStaIfaceNamesResponse {
7014 type Owned = Self;
7015
7016 #[inline(always)]
7017 fn inline_align(_context: fidl::encoding::Context) -> usize {
7018 8
7019 }
7020
7021 #[inline(always)]
7022 fn inline_size(_context: fidl::encoding::Context) -> usize {
7023 16
7024 }
7025 }
7026
7027 unsafe impl<D: fidl::encoding::ResourceDialect>
7028 fidl::encoding::Encode<WifiChipGetStaIfaceNamesResponse, D>
7029 for &WifiChipGetStaIfaceNamesResponse
7030 {
7031 unsafe fn encode(
7032 self,
7033 encoder: &mut fidl::encoding::Encoder<'_, D>,
7034 offset: usize,
7035 mut depth: fidl::encoding::Depth,
7036 ) -> fidl::Result<()> {
7037 encoder.debug_check_bounds::<WifiChipGetStaIfaceNamesResponse>(offset);
7038 let max_ordinal: u64 = self.max_ordinal_present();
7040 encoder.write_num(max_ordinal, offset);
7041 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
7042 if max_ordinal == 0 {
7044 return Ok(());
7045 }
7046 depth.increment()?;
7047 let envelope_size = 8;
7048 let bytes_len = max_ordinal as usize * envelope_size;
7049 #[allow(unused_variables)]
7050 let offset = encoder.out_of_line_offset(bytes_len);
7051 let mut _prev_end_offset: usize = 0;
7052 if 1 > max_ordinal {
7053 return Ok(());
7054 }
7055
7056 let cur_offset: usize = (1 - 1) * envelope_size;
7059
7060 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7062
7063 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<16>>, D>(
7068 self.iface_names.as_ref().map(<fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<16>> as fidl::encoding::ValueTypeMarker>::borrow),
7069 encoder, offset + cur_offset, depth
7070 )?;
7071
7072 _prev_end_offset = cur_offset + envelope_size;
7073
7074 Ok(())
7075 }
7076 }
7077
7078 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
7079 for WifiChipGetStaIfaceNamesResponse
7080 {
7081 #[inline(always)]
7082 fn new_empty() -> Self {
7083 Self::default()
7084 }
7085
7086 unsafe fn decode(
7087 &mut self,
7088 decoder: &mut fidl::encoding::Decoder<'_, D>,
7089 offset: usize,
7090 mut depth: fidl::encoding::Depth,
7091 ) -> fidl::Result<()> {
7092 decoder.debug_check_bounds::<Self>(offset);
7093 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
7094 None => return Err(fidl::Error::NotNullable),
7095 Some(len) => len,
7096 };
7097 if len == 0 {
7099 return Ok(());
7100 };
7101 depth.increment()?;
7102 let envelope_size = 8;
7103 let bytes_len = len * envelope_size;
7104 let offset = decoder.out_of_line_offset(bytes_len)?;
7105 let mut _next_ordinal_to_read = 0;
7107 let mut next_offset = offset;
7108 let end_offset = offset + bytes_len;
7109 _next_ordinal_to_read += 1;
7110 if next_offset >= end_offset {
7111 return Ok(());
7112 }
7113
7114 while _next_ordinal_to_read < 1 {
7116 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7117 _next_ordinal_to_read += 1;
7118 next_offset += envelope_size;
7119 }
7120
7121 let next_out_of_line = decoder.next_out_of_line();
7122 let handles_before = decoder.remaining_handles();
7123 if let Some((inlined, num_bytes, num_handles)) =
7124 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7125 {
7126 let member_inline_size = <fidl::encoding::UnboundedVector<
7127 fidl::encoding::BoundedString<16>,
7128 > as fidl::encoding::TypeMarker>::inline_size(
7129 decoder.context
7130 );
7131 if inlined != (member_inline_size <= 4) {
7132 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7133 }
7134 let inner_offset;
7135 let mut inner_depth = depth.clone();
7136 if inlined {
7137 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7138 inner_offset = next_offset;
7139 } else {
7140 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7141 inner_depth.increment()?;
7142 }
7143 let val_ref = self.iface_names.get_or_insert_with(|| {
7144 fidl::new_empty!(
7145 fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<16>>,
7146 D
7147 )
7148 });
7149 fidl::decode!(
7150 fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<16>>,
7151 D,
7152 val_ref,
7153 decoder,
7154 inner_offset,
7155 inner_depth
7156 )?;
7157 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7158 {
7159 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7160 }
7161 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7162 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7163 }
7164 }
7165
7166 next_offset += envelope_size;
7167
7168 while next_offset < end_offset {
7170 _next_ordinal_to_read += 1;
7171 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7172 next_offset += envelope_size;
7173 }
7174
7175 Ok(())
7176 }
7177 }
7178
7179 impl WifiStaIfaceInstallApfPacketFilterRequest {
7180 #[inline(always)]
7181 fn max_ordinal_present(&self) -> u64 {
7182 if let Some(_) = self.program {
7183 return 1;
7184 }
7185 0
7186 }
7187 }
7188
7189 impl fidl::encoding::ValueTypeMarker for WifiStaIfaceInstallApfPacketFilterRequest {
7190 type Borrowed<'a> = &'a Self;
7191 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
7192 value
7193 }
7194 }
7195
7196 unsafe impl fidl::encoding::TypeMarker for WifiStaIfaceInstallApfPacketFilterRequest {
7197 type Owned = Self;
7198
7199 #[inline(always)]
7200 fn inline_align(_context: fidl::encoding::Context) -> usize {
7201 8
7202 }
7203
7204 #[inline(always)]
7205 fn inline_size(_context: fidl::encoding::Context) -> usize {
7206 16
7207 }
7208 }
7209
7210 unsafe impl<D: fidl::encoding::ResourceDialect>
7211 fidl::encoding::Encode<WifiStaIfaceInstallApfPacketFilterRequest, D>
7212 for &WifiStaIfaceInstallApfPacketFilterRequest
7213 {
7214 unsafe fn encode(
7215 self,
7216 encoder: &mut fidl::encoding::Encoder<'_, D>,
7217 offset: usize,
7218 mut depth: fidl::encoding::Depth,
7219 ) -> fidl::Result<()> {
7220 encoder.debug_check_bounds::<WifiStaIfaceInstallApfPacketFilterRequest>(offset);
7221 let max_ordinal: u64 = self.max_ordinal_present();
7223 encoder.write_num(max_ordinal, offset);
7224 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
7225 if max_ordinal == 0 {
7227 return Ok(());
7228 }
7229 depth.increment()?;
7230 let envelope_size = 8;
7231 let bytes_len = max_ordinal as usize * envelope_size;
7232 #[allow(unused_variables)]
7233 let offset = encoder.out_of_line_offset(bytes_len);
7234 let mut _prev_end_offset: usize = 0;
7235 if 1 > max_ordinal {
7236 return Ok(());
7237 }
7238
7239 let cur_offset: usize = (1 - 1) * envelope_size;
7242
7243 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7245
7246 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<u8>, D>(
7251 self.program.as_ref().map(<fidl::encoding::UnboundedVector<u8> as fidl::encoding::ValueTypeMarker>::borrow),
7252 encoder, offset + cur_offset, depth
7253 )?;
7254
7255 _prev_end_offset = cur_offset + envelope_size;
7256
7257 Ok(())
7258 }
7259 }
7260
7261 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
7262 for WifiStaIfaceInstallApfPacketFilterRequest
7263 {
7264 #[inline(always)]
7265 fn new_empty() -> Self {
7266 Self::default()
7267 }
7268
7269 unsafe fn decode(
7270 &mut self,
7271 decoder: &mut fidl::encoding::Decoder<'_, D>,
7272 offset: usize,
7273 mut depth: fidl::encoding::Depth,
7274 ) -> fidl::Result<()> {
7275 decoder.debug_check_bounds::<Self>(offset);
7276 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
7277 None => return Err(fidl::Error::NotNullable),
7278 Some(len) => len,
7279 };
7280 if len == 0 {
7282 return Ok(());
7283 };
7284 depth.increment()?;
7285 let envelope_size = 8;
7286 let bytes_len = len * envelope_size;
7287 let offset = decoder.out_of_line_offset(bytes_len)?;
7288 let mut _next_ordinal_to_read = 0;
7290 let mut next_offset = offset;
7291 let end_offset = offset + bytes_len;
7292 _next_ordinal_to_read += 1;
7293 if next_offset >= end_offset {
7294 return Ok(());
7295 }
7296
7297 while _next_ordinal_to_read < 1 {
7299 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7300 _next_ordinal_to_read += 1;
7301 next_offset += envelope_size;
7302 }
7303
7304 let next_out_of_line = decoder.next_out_of_line();
7305 let handles_before = decoder.remaining_handles();
7306 if let Some((inlined, num_bytes, num_handles)) =
7307 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7308 {
7309 let member_inline_size = <fidl::encoding::UnboundedVector<u8> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7310 if inlined != (member_inline_size <= 4) {
7311 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7312 }
7313 let inner_offset;
7314 let mut inner_depth = depth.clone();
7315 if inlined {
7316 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7317 inner_offset = next_offset;
7318 } else {
7319 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7320 inner_depth.increment()?;
7321 }
7322 let val_ref = self.program.get_or_insert_with(|| {
7323 fidl::new_empty!(fidl::encoding::UnboundedVector<u8>, D)
7324 });
7325 fidl::decode!(
7326 fidl::encoding::UnboundedVector<u8>,
7327 D,
7328 val_ref,
7329 decoder,
7330 inner_offset,
7331 inner_depth
7332 )?;
7333 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7334 {
7335 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7336 }
7337 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7338 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7339 }
7340 }
7341
7342 next_offset += envelope_size;
7343
7344 while next_offset < end_offset {
7346 _next_ordinal_to_read += 1;
7347 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7348 next_offset += envelope_size;
7349 }
7350
7351 Ok(())
7352 }
7353 }
7354
7355 impl WifiStaIfaceGetApfPacketFilterSupportResponse {
7356 #[inline(always)]
7357 fn max_ordinal_present(&self) -> u64 {
7358 if let Some(_) = self.max_filter_length {
7359 return 2;
7360 }
7361 if let Some(_) = self.version {
7362 return 1;
7363 }
7364 0
7365 }
7366 }
7367
7368 impl fidl::encoding::ValueTypeMarker for WifiStaIfaceGetApfPacketFilterSupportResponse {
7369 type Borrowed<'a> = &'a Self;
7370 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
7371 value
7372 }
7373 }
7374
7375 unsafe impl fidl::encoding::TypeMarker for WifiStaIfaceGetApfPacketFilterSupportResponse {
7376 type Owned = Self;
7377
7378 #[inline(always)]
7379 fn inline_align(_context: fidl::encoding::Context) -> usize {
7380 8
7381 }
7382
7383 #[inline(always)]
7384 fn inline_size(_context: fidl::encoding::Context) -> usize {
7385 16
7386 }
7387 }
7388
7389 unsafe impl<D: fidl::encoding::ResourceDialect>
7390 fidl::encoding::Encode<WifiStaIfaceGetApfPacketFilterSupportResponse, D>
7391 for &WifiStaIfaceGetApfPacketFilterSupportResponse
7392 {
7393 unsafe fn encode(
7394 self,
7395 encoder: &mut fidl::encoding::Encoder<'_, D>,
7396 offset: usize,
7397 mut depth: fidl::encoding::Depth,
7398 ) -> fidl::Result<()> {
7399 encoder.debug_check_bounds::<WifiStaIfaceGetApfPacketFilterSupportResponse>(offset);
7400 let max_ordinal: u64 = self.max_ordinal_present();
7402 encoder.write_num(max_ordinal, offset);
7403 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
7404 if max_ordinal == 0 {
7406 return Ok(());
7407 }
7408 depth.increment()?;
7409 let envelope_size = 8;
7410 let bytes_len = max_ordinal as usize * envelope_size;
7411 #[allow(unused_variables)]
7412 let offset = encoder.out_of_line_offset(bytes_len);
7413 let mut _prev_end_offset: usize = 0;
7414 if 1 > max_ordinal {
7415 return Ok(());
7416 }
7417
7418 let cur_offset: usize = (1 - 1) * envelope_size;
7421
7422 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7424
7425 fidl::encoding::encode_in_envelope_optional::<i32, D>(
7430 self.version.as_ref().map(<i32 as fidl::encoding::ValueTypeMarker>::borrow),
7431 encoder,
7432 offset + cur_offset,
7433 depth,
7434 )?;
7435
7436 _prev_end_offset = cur_offset + envelope_size;
7437 if 2 > max_ordinal {
7438 return Ok(());
7439 }
7440
7441 let cur_offset: usize = (2 - 1) * envelope_size;
7444
7445 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7447
7448 fidl::encoding::encode_in_envelope_optional::<i32, D>(
7453 self.max_filter_length
7454 .as_ref()
7455 .map(<i32 as fidl::encoding::ValueTypeMarker>::borrow),
7456 encoder,
7457 offset + cur_offset,
7458 depth,
7459 )?;
7460
7461 _prev_end_offset = cur_offset + envelope_size;
7462
7463 Ok(())
7464 }
7465 }
7466
7467 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
7468 for WifiStaIfaceGetApfPacketFilterSupportResponse
7469 {
7470 #[inline(always)]
7471 fn new_empty() -> Self {
7472 Self::default()
7473 }
7474
7475 unsafe fn decode(
7476 &mut self,
7477 decoder: &mut fidl::encoding::Decoder<'_, D>,
7478 offset: usize,
7479 mut depth: fidl::encoding::Depth,
7480 ) -> fidl::Result<()> {
7481 decoder.debug_check_bounds::<Self>(offset);
7482 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
7483 None => return Err(fidl::Error::NotNullable),
7484 Some(len) => len,
7485 };
7486 if len == 0 {
7488 return Ok(());
7489 };
7490 depth.increment()?;
7491 let envelope_size = 8;
7492 let bytes_len = len * envelope_size;
7493 let offset = decoder.out_of_line_offset(bytes_len)?;
7494 let mut _next_ordinal_to_read = 0;
7496 let mut next_offset = offset;
7497 let end_offset = offset + bytes_len;
7498 _next_ordinal_to_read += 1;
7499 if next_offset >= end_offset {
7500 return Ok(());
7501 }
7502
7503 while _next_ordinal_to_read < 1 {
7505 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7506 _next_ordinal_to_read += 1;
7507 next_offset += envelope_size;
7508 }
7509
7510 let next_out_of_line = decoder.next_out_of_line();
7511 let handles_before = decoder.remaining_handles();
7512 if let Some((inlined, num_bytes, num_handles)) =
7513 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7514 {
7515 let member_inline_size =
7516 <i32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7517 if inlined != (member_inline_size <= 4) {
7518 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7519 }
7520 let inner_offset;
7521 let mut inner_depth = depth.clone();
7522 if inlined {
7523 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7524 inner_offset = next_offset;
7525 } else {
7526 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7527 inner_depth.increment()?;
7528 }
7529 let val_ref = self.version.get_or_insert_with(|| fidl::new_empty!(i32, D));
7530 fidl::decode!(i32, D, val_ref, decoder, inner_offset, inner_depth)?;
7531 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7532 {
7533 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7534 }
7535 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7536 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7537 }
7538 }
7539
7540 next_offset += envelope_size;
7541 _next_ordinal_to_read += 1;
7542 if next_offset >= end_offset {
7543 return Ok(());
7544 }
7545
7546 while _next_ordinal_to_read < 2 {
7548 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7549 _next_ordinal_to_read += 1;
7550 next_offset += envelope_size;
7551 }
7552
7553 let next_out_of_line = decoder.next_out_of_line();
7554 let handles_before = decoder.remaining_handles();
7555 if let Some((inlined, num_bytes, num_handles)) =
7556 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7557 {
7558 let member_inline_size =
7559 <i32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7560 if inlined != (member_inline_size <= 4) {
7561 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7562 }
7563 let inner_offset;
7564 let mut inner_depth = depth.clone();
7565 if inlined {
7566 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7567 inner_offset = next_offset;
7568 } else {
7569 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7570 inner_depth.increment()?;
7571 }
7572 let val_ref =
7573 self.max_filter_length.get_or_insert_with(|| fidl::new_empty!(i32, D));
7574 fidl::decode!(i32, D, val_ref, decoder, inner_offset, inner_depth)?;
7575 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7576 {
7577 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7578 }
7579 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7580 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7581 }
7582 }
7583
7584 next_offset += envelope_size;
7585
7586 while next_offset < end_offset {
7588 _next_ordinal_to_read += 1;
7589 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7590 next_offset += envelope_size;
7591 }
7592
7593 Ok(())
7594 }
7595 }
7596
7597 impl WifiStaIfaceGetLinkLayerStatsResponse {
7598 #[inline(always)]
7599 fn max_ordinal_present(&self) -> u64 {
7600 if let Some(_) = self.stats {
7601 return 1;
7602 }
7603 0
7604 }
7605 }
7606
7607 impl fidl::encoding::ValueTypeMarker for WifiStaIfaceGetLinkLayerStatsResponse {
7608 type Borrowed<'a> = &'a Self;
7609 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
7610 value
7611 }
7612 }
7613
7614 unsafe impl fidl::encoding::TypeMarker for WifiStaIfaceGetLinkLayerStatsResponse {
7615 type Owned = Self;
7616
7617 #[inline(always)]
7618 fn inline_align(_context: fidl::encoding::Context) -> usize {
7619 8
7620 }
7621
7622 #[inline(always)]
7623 fn inline_size(_context: fidl::encoding::Context) -> usize {
7624 16
7625 }
7626 }
7627
7628 unsafe impl<D: fidl::encoding::ResourceDialect>
7629 fidl::encoding::Encode<WifiStaIfaceGetLinkLayerStatsResponse, D>
7630 for &WifiStaIfaceGetLinkLayerStatsResponse
7631 {
7632 unsafe fn encode(
7633 self,
7634 encoder: &mut fidl::encoding::Encoder<'_, D>,
7635 offset: usize,
7636 mut depth: fidl::encoding::Depth,
7637 ) -> fidl::Result<()> {
7638 encoder.debug_check_bounds::<WifiStaIfaceGetLinkLayerStatsResponse>(offset);
7639 let max_ordinal: u64 = self.max_ordinal_present();
7641 encoder.write_num(max_ordinal, offset);
7642 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
7643 if max_ordinal == 0 {
7645 return Ok(());
7646 }
7647 depth.increment()?;
7648 let envelope_size = 8;
7649 let bytes_len = max_ordinal as usize * envelope_size;
7650 #[allow(unused_variables)]
7651 let offset = encoder.out_of_line_offset(bytes_len);
7652 let mut _prev_end_offset: usize = 0;
7653 if 1 > max_ordinal {
7654 return Ok(());
7655 }
7656
7657 let cur_offset: usize = (1 - 1) * envelope_size;
7660
7661 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7663
7664 fidl::encoding::encode_in_envelope_optional::<LinkLayerStats, D>(
7669 self.stats
7670 .as_ref()
7671 .map(<LinkLayerStats as fidl::encoding::ValueTypeMarker>::borrow),
7672 encoder,
7673 offset + cur_offset,
7674 depth,
7675 )?;
7676
7677 _prev_end_offset = cur_offset + envelope_size;
7678
7679 Ok(())
7680 }
7681 }
7682
7683 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
7684 for WifiStaIfaceGetLinkLayerStatsResponse
7685 {
7686 #[inline(always)]
7687 fn new_empty() -> Self {
7688 Self::default()
7689 }
7690
7691 unsafe fn decode(
7692 &mut self,
7693 decoder: &mut fidl::encoding::Decoder<'_, D>,
7694 offset: usize,
7695 mut depth: fidl::encoding::Depth,
7696 ) -> fidl::Result<()> {
7697 decoder.debug_check_bounds::<Self>(offset);
7698 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
7699 None => return Err(fidl::Error::NotNullable),
7700 Some(len) => len,
7701 };
7702 if len == 0 {
7704 return Ok(());
7705 };
7706 depth.increment()?;
7707 let envelope_size = 8;
7708 let bytes_len = len * envelope_size;
7709 let offset = decoder.out_of_line_offset(bytes_len)?;
7710 let mut _next_ordinal_to_read = 0;
7712 let mut next_offset = offset;
7713 let end_offset = offset + bytes_len;
7714 _next_ordinal_to_read += 1;
7715 if next_offset >= end_offset {
7716 return Ok(());
7717 }
7718
7719 while _next_ordinal_to_read < 1 {
7721 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7722 _next_ordinal_to_read += 1;
7723 next_offset += envelope_size;
7724 }
7725
7726 let next_out_of_line = decoder.next_out_of_line();
7727 let handles_before = decoder.remaining_handles();
7728 if let Some((inlined, num_bytes, num_handles)) =
7729 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7730 {
7731 let member_inline_size =
7732 <LinkLayerStats as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7733 if inlined != (member_inline_size <= 4) {
7734 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7735 }
7736 let inner_offset;
7737 let mut inner_depth = depth.clone();
7738 if inlined {
7739 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7740 inner_offset = next_offset;
7741 } else {
7742 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7743 inner_depth.increment()?;
7744 }
7745 let val_ref = self.stats.get_or_insert_with(|| fidl::new_empty!(LinkLayerStats, D));
7746 fidl::decode!(LinkLayerStats, D, val_ref, decoder, inner_offset, inner_depth)?;
7747 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7748 {
7749 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7750 }
7751 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7752 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7753 }
7754 }
7755
7756 next_offset += envelope_size;
7757
7758 while next_offset < end_offset {
7760 _next_ordinal_to_read += 1;
7761 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7762 next_offset += envelope_size;
7763 }
7764
7765 Ok(())
7766 }
7767 }
7768
7769 impl WifiStaIfaceGetNameResponse {
7770 #[inline(always)]
7771 fn max_ordinal_present(&self) -> u64 {
7772 if let Some(_) = self.iface_name {
7773 return 1;
7774 }
7775 0
7776 }
7777 }
7778
7779 impl fidl::encoding::ValueTypeMarker for WifiStaIfaceGetNameResponse {
7780 type Borrowed<'a> = &'a Self;
7781 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
7782 value
7783 }
7784 }
7785
7786 unsafe impl fidl::encoding::TypeMarker for WifiStaIfaceGetNameResponse {
7787 type Owned = Self;
7788
7789 #[inline(always)]
7790 fn inline_align(_context: fidl::encoding::Context) -> usize {
7791 8
7792 }
7793
7794 #[inline(always)]
7795 fn inline_size(_context: fidl::encoding::Context) -> usize {
7796 16
7797 }
7798 }
7799
7800 unsafe impl<D: fidl::encoding::ResourceDialect>
7801 fidl::encoding::Encode<WifiStaIfaceGetNameResponse, D> for &WifiStaIfaceGetNameResponse
7802 {
7803 unsafe fn encode(
7804 self,
7805 encoder: &mut fidl::encoding::Encoder<'_, D>,
7806 offset: usize,
7807 mut depth: fidl::encoding::Depth,
7808 ) -> fidl::Result<()> {
7809 encoder.debug_check_bounds::<WifiStaIfaceGetNameResponse>(offset);
7810 let max_ordinal: u64 = self.max_ordinal_present();
7812 encoder.write_num(max_ordinal, offset);
7813 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
7814 if max_ordinal == 0 {
7816 return Ok(());
7817 }
7818 depth.increment()?;
7819 let envelope_size = 8;
7820 let bytes_len = max_ordinal as usize * envelope_size;
7821 #[allow(unused_variables)]
7822 let offset = encoder.out_of_line_offset(bytes_len);
7823 let mut _prev_end_offset: usize = 0;
7824 if 1 > max_ordinal {
7825 return Ok(());
7826 }
7827
7828 let cur_offset: usize = (1 - 1) * envelope_size;
7831
7832 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7834
7835 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<16>, D>(
7840 self.iface_name.as_ref().map(
7841 <fidl::encoding::BoundedString<16> as fidl::encoding::ValueTypeMarker>::borrow,
7842 ),
7843 encoder,
7844 offset + cur_offset,
7845 depth,
7846 )?;
7847
7848 _prev_end_offset = cur_offset + envelope_size;
7849
7850 Ok(())
7851 }
7852 }
7853
7854 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
7855 for WifiStaIfaceGetNameResponse
7856 {
7857 #[inline(always)]
7858 fn new_empty() -> Self {
7859 Self::default()
7860 }
7861
7862 unsafe fn decode(
7863 &mut self,
7864 decoder: &mut fidl::encoding::Decoder<'_, D>,
7865 offset: usize,
7866 mut depth: fidl::encoding::Depth,
7867 ) -> fidl::Result<()> {
7868 decoder.debug_check_bounds::<Self>(offset);
7869 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
7870 None => return Err(fidl::Error::NotNullable),
7871 Some(len) => len,
7872 };
7873 if len == 0 {
7875 return Ok(());
7876 };
7877 depth.increment()?;
7878 let envelope_size = 8;
7879 let bytes_len = len * envelope_size;
7880 let offset = decoder.out_of_line_offset(bytes_len)?;
7881 let mut _next_ordinal_to_read = 0;
7883 let mut next_offset = offset;
7884 let end_offset = offset + bytes_len;
7885 _next_ordinal_to_read += 1;
7886 if next_offset >= end_offset {
7887 return Ok(());
7888 }
7889
7890 while _next_ordinal_to_read < 1 {
7892 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7893 _next_ordinal_to_read += 1;
7894 next_offset += envelope_size;
7895 }
7896
7897 let next_out_of_line = decoder.next_out_of_line();
7898 let handles_before = decoder.remaining_handles();
7899 if let Some((inlined, num_bytes, num_handles)) =
7900 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7901 {
7902 let member_inline_size =
7903 <fidl::encoding::BoundedString<16> as fidl::encoding::TypeMarker>::inline_size(
7904 decoder.context,
7905 );
7906 if inlined != (member_inline_size <= 4) {
7907 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7908 }
7909 let inner_offset;
7910 let mut inner_depth = depth.clone();
7911 if inlined {
7912 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7913 inner_offset = next_offset;
7914 } else {
7915 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7916 inner_depth.increment()?;
7917 }
7918 let val_ref = self
7919 .iface_name
7920 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<16>, D));
7921 fidl::decode!(
7922 fidl::encoding::BoundedString<16>,
7923 D,
7924 val_ref,
7925 decoder,
7926 inner_offset,
7927 inner_depth
7928 )?;
7929 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7930 {
7931 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7932 }
7933 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7934 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7935 }
7936 }
7937
7938 next_offset += envelope_size;
7939
7940 while next_offset < end_offset {
7942 _next_ordinal_to_read += 1;
7943 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7944 next_offset += envelope_size;
7945 }
7946
7947 Ok(())
7948 }
7949 }
7950
7951 impl WifiStaIfaceReadApfPacketFilterDataResponse {
7952 #[inline(always)]
7953 fn max_ordinal_present(&self) -> u64 {
7954 if let Some(_) = self.memory {
7955 return 1;
7956 }
7957 0
7958 }
7959 }
7960
7961 impl fidl::encoding::ValueTypeMarker for WifiStaIfaceReadApfPacketFilterDataResponse {
7962 type Borrowed<'a> = &'a Self;
7963 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
7964 value
7965 }
7966 }
7967
7968 unsafe impl fidl::encoding::TypeMarker for WifiStaIfaceReadApfPacketFilterDataResponse {
7969 type Owned = Self;
7970
7971 #[inline(always)]
7972 fn inline_align(_context: fidl::encoding::Context) -> usize {
7973 8
7974 }
7975
7976 #[inline(always)]
7977 fn inline_size(_context: fidl::encoding::Context) -> usize {
7978 16
7979 }
7980 }
7981
7982 unsafe impl<D: fidl::encoding::ResourceDialect>
7983 fidl::encoding::Encode<WifiStaIfaceReadApfPacketFilterDataResponse, D>
7984 for &WifiStaIfaceReadApfPacketFilterDataResponse
7985 {
7986 unsafe fn encode(
7987 self,
7988 encoder: &mut fidl::encoding::Encoder<'_, D>,
7989 offset: usize,
7990 mut depth: fidl::encoding::Depth,
7991 ) -> fidl::Result<()> {
7992 encoder.debug_check_bounds::<WifiStaIfaceReadApfPacketFilterDataResponse>(offset);
7993 let max_ordinal: u64 = self.max_ordinal_present();
7995 encoder.write_num(max_ordinal, offset);
7996 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
7997 if max_ordinal == 0 {
7999 return Ok(());
8000 }
8001 depth.increment()?;
8002 let envelope_size = 8;
8003 let bytes_len = max_ordinal as usize * envelope_size;
8004 #[allow(unused_variables)]
8005 let offset = encoder.out_of_line_offset(bytes_len);
8006 let mut _prev_end_offset: usize = 0;
8007 if 1 > max_ordinal {
8008 return Ok(());
8009 }
8010
8011 let cur_offset: usize = (1 - 1) * envelope_size;
8014
8015 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8017
8018 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<u8>, D>(
8023 self.memory.as_ref().map(<fidl::encoding::UnboundedVector<u8> as fidl::encoding::ValueTypeMarker>::borrow),
8024 encoder, offset + cur_offset, depth
8025 )?;
8026
8027 _prev_end_offset = cur_offset + envelope_size;
8028
8029 Ok(())
8030 }
8031 }
8032
8033 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
8034 for WifiStaIfaceReadApfPacketFilterDataResponse
8035 {
8036 #[inline(always)]
8037 fn new_empty() -> Self {
8038 Self::default()
8039 }
8040
8041 unsafe fn decode(
8042 &mut self,
8043 decoder: &mut fidl::encoding::Decoder<'_, D>,
8044 offset: usize,
8045 mut depth: fidl::encoding::Depth,
8046 ) -> fidl::Result<()> {
8047 decoder.debug_check_bounds::<Self>(offset);
8048 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
8049 None => return Err(fidl::Error::NotNullable),
8050 Some(len) => len,
8051 };
8052 if len == 0 {
8054 return Ok(());
8055 };
8056 depth.increment()?;
8057 let envelope_size = 8;
8058 let bytes_len = len * envelope_size;
8059 let offset = decoder.out_of_line_offset(bytes_len)?;
8060 let mut _next_ordinal_to_read = 0;
8062 let mut next_offset = offset;
8063 let end_offset = offset + bytes_len;
8064 _next_ordinal_to_read += 1;
8065 if next_offset >= end_offset {
8066 return Ok(());
8067 }
8068
8069 while _next_ordinal_to_read < 1 {
8071 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8072 _next_ordinal_to_read += 1;
8073 next_offset += envelope_size;
8074 }
8075
8076 let next_out_of_line = decoder.next_out_of_line();
8077 let handles_before = decoder.remaining_handles();
8078 if let Some((inlined, num_bytes, num_handles)) =
8079 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8080 {
8081 let member_inline_size = <fidl::encoding::UnboundedVector<u8> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8082 if inlined != (member_inline_size <= 4) {
8083 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8084 }
8085 let inner_offset;
8086 let mut inner_depth = depth.clone();
8087 if inlined {
8088 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8089 inner_offset = next_offset;
8090 } else {
8091 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8092 inner_depth.increment()?;
8093 }
8094 let val_ref = self.memory.get_or_insert_with(|| {
8095 fidl::new_empty!(fidl::encoding::UnboundedVector<u8>, D)
8096 });
8097 fidl::decode!(
8098 fidl::encoding::UnboundedVector<u8>,
8099 D,
8100 val_ref,
8101 decoder,
8102 inner_offset,
8103 inner_depth
8104 )?;
8105 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8106 {
8107 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8108 }
8109 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8110 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8111 }
8112 }
8113
8114 next_offset += envelope_size;
8115
8116 while next_offset < end_offset {
8118 _next_ordinal_to_read += 1;
8119 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8120 next_offset += envelope_size;
8121 }
8122
8123 Ok(())
8124 }
8125 }
8126
8127 impl WifiGetChipIdsResponse {
8128 #[inline(always)]
8129 fn max_ordinal_present(&self) -> u64 {
8130 if let Some(_) = self.chip_ids {
8131 return 1;
8132 }
8133 0
8134 }
8135 }
8136
8137 impl fidl::encoding::ValueTypeMarker for WifiGetChipIdsResponse {
8138 type Borrowed<'a> = &'a Self;
8139 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
8140 value
8141 }
8142 }
8143
8144 unsafe impl fidl::encoding::TypeMarker for WifiGetChipIdsResponse {
8145 type Owned = Self;
8146
8147 #[inline(always)]
8148 fn inline_align(_context: fidl::encoding::Context) -> usize {
8149 8
8150 }
8151
8152 #[inline(always)]
8153 fn inline_size(_context: fidl::encoding::Context) -> usize {
8154 16
8155 }
8156 }
8157
8158 unsafe impl<D: fidl::encoding::ResourceDialect>
8159 fidl::encoding::Encode<WifiGetChipIdsResponse, D> for &WifiGetChipIdsResponse
8160 {
8161 unsafe fn encode(
8162 self,
8163 encoder: &mut fidl::encoding::Encoder<'_, D>,
8164 offset: usize,
8165 mut depth: fidl::encoding::Depth,
8166 ) -> fidl::Result<()> {
8167 encoder.debug_check_bounds::<WifiGetChipIdsResponse>(offset);
8168 let max_ordinal: u64 = self.max_ordinal_present();
8170 encoder.write_num(max_ordinal, offset);
8171 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
8172 if max_ordinal == 0 {
8174 return Ok(());
8175 }
8176 depth.increment()?;
8177 let envelope_size = 8;
8178 let bytes_len = max_ordinal as usize * envelope_size;
8179 #[allow(unused_variables)]
8180 let offset = encoder.out_of_line_offset(bytes_len);
8181 let mut _prev_end_offset: usize = 0;
8182 if 1 > max_ordinal {
8183 return Ok(());
8184 }
8185
8186 let cur_offset: usize = (1 - 1) * envelope_size;
8189
8190 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8192
8193 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<u32>, D>(
8198 self.chip_ids.as_ref().map(<fidl::encoding::UnboundedVector<u32> as fidl::encoding::ValueTypeMarker>::borrow),
8199 encoder, offset + cur_offset, depth
8200 )?;
8201
8202 _prev_end_offset = cur_offset + envelope_size;
8203
8204 Ok(())
8205 }
8206 }
8207
8208 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
8209 for WifiGetChipIdsResponse
8210 {
8211 #[inline(always)]
8212 fn new_empty() -> Self {
8213 Self::default()
8214 }
8215
8216 unsafe fn decode(
8217 &mut self,
8218 decoder: &mut fidl::encoding::Decoder<'_, D>,
8219 offset: usize,
8220 mut depth: fidl::encoding::Depth,
8221 ) -> fidl::Result<()> {
8222 decoder.debug_check_bounds::<Self>(offset);
8223 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
8224 None => return Err(fidl::Error::NotNullable),
8225 Some(len) => len,
8226 };
8227 if len == 0 {
8229 return Ok(());
8230 };
8231 depth.increment()?;
8232 let envelope_size = 8;
8233 let bytes_len = len * envelope_size;
8234 let offset = decoder.out_of_line_offset(bytes_len)?;
8235 let mut _next_ordinal_to_read = 0;
8237 let mut next_offset = offset;
8238 let end_offset = offset + bytes_len;
8239 _next_ordinal_to_read += 1;
8240 if next_offset >= end_offset {
8241 return Ok(());
8242 }
8243
8244 while _next_ordinal_to_read < 1 {
8246 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8247 _next_ordinal_to_read += 1;
8248 next_offset += envelope_size;
8249 }
8250
8251 let next_out_of_line = decoder.next_out_of_line();
8252 let handles_before = decoder.remaining_handles();
8253 if let Some((inlined, num_bytes, num_handles)) =
8254 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8255 {
8256 let member_inline_size = <fidl::encoding::UnboundedVector<u32> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8257 if inlined != (member_inline_size <= 4) {
8258 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8259 }
8260 let inner_offset;
8261 let mut inner_depth = depth.clone();
8262 if inlined {
8263 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8264 inner_offset = next_offset;
8265 } else {
8266 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8267 inner_depth.increment()?;
8268 }
8269 let val_ref = self.chip_ids.get_or_insert_with(|| {
8270 fidl::new_empty!(fidl::encoding::UnboundedVector<u32>, D)
8271 });
8272 fidl::decode!(
8273 fidl::encoding::UnboundedVector<u32>,
8274 D,
8275 val_ref,
8276 decoder,
8277 inner_offset,
8278 inner_depth
8279 )?;
8280 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8281 {
8282 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8283 }
8284 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8285 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8286 }
8287 }
8288
8289 next_offset += envelope_size;
8290
8291 while next_offset < end_offset {
8293 _next_ordinal_to_read += 1;
8294 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8295 next_offset += envelope_size;
8296 }
8297
8298 Ok(())
8299 }
8300 }
8301
8302 impl WifiGetStateResponse {
8303 #[inline(always)]
8304 fn max_ordinal_present(&self) -> u64 {
8305 if let Some(_) = self.is_started {
8306 return 1;
8307 }
8308 0
8309 }
8310 }
8311
8312 impl fidl::encoding::ValueTypeMarker for WifiGetStateResponse {
8313 type Borrowed<'a> = &'a Self;
8314 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
8315 value
8316 }
8317 }
8318
8319 unsafe impl fidl::encoding::TypeMarker for WifiGetStateResponse {
8320 type Owned = Self;
8321
8322 #[inline(always)]
8323 fn inline_align(_context: fidl::encoding::Context) -> usize {
8324 8
8325 }
8326
8327 #[inline(always)]
8328 fn inline_size(_context: fidl::encoding::Context) -> usize {
8329 16
8330 }
8331 }
8332
8333 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<WifiGetStateResponse, D>
8334 for &WifiGetStateResponse
8335 {
8336 unsafe fn encode(
8337 self,
8338 encoder: &mut fidl::encoding::Encoder<'_, D>,
8339 offset: usize,
8340 mut depth: fidl::encoding::Depth,
8341 ) -> fidl::Result<()> {
8342 encoder.debug_check_bounds::<WifiGetStateResponse>(offset);
8343 let max_ordinal: u64 = self.max_ordinal_present();
8345 encoder.write_num(max_ordinal, offset);
8346 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
8347 if max_ordinal == 0 {
8349 return Ok(());
8350 }
8351 depth.increment()?;
8352 let envelope_size = 8;
8353 let bytes_len = max_ordinal as usize * envelope_size;
8354 #[allow(unused_variables)]
8355 let offset = encoder.out_of_line_offset(bytes_len);
8356 let mut _prev_end_offset: usize = 0;
8357 if 1 > max_ordinal {
8358 return Ok(());
8359 }
8360
8361 let cur_offset: usize = (1 - 1) * envelope_size;
8364
8365 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8367
8368 fidl::encoding::encode_in_envelope_optional::<bool, D>(
8373 self.is_started.as_ref().map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
8374 encoder,
8375 offset + cur_offset,
8376 depth,
8377 )?;
8378
8379 _prev_end_offset = cur_offset + envelope_size;
8380
8381 Ok(())
8382 }
8383 }
8384
8385 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for WifiGetStateResponse {
8386 #[inline(always)]
8387 fn new_empty() -> Self {
8388 Self::default()
8389 }
8390
8391 unsafe fn decode(
8392 &mut self,
8393 decoder: &mut fidl::encoding::Decoder<'_, D>,
8394 offset: usize,
8395 mut depth: fidl::encoding::Depth,
8396 ) -> fidl::Result<()> {
8397 decoder.debug_check_bounds::<Self>(offset);
8398 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
8399 None => return Err(fidl::Error::NotNullable),
8400 Some(len) => len,
8401 };
8402 if len == 0 {
8404 return Ok(());
8405 };
8406 depth.increment()?;
8407 let envelope_size = 8;
8408 let bytes_len = len * envelope_size;
8409 let offset = decoder.out_of_line_offset(bytes_len)?;
8410 let mut _next_ordinal_to_read = 0;
8412 let mut next_offset = offset;
8413 let end_offset = offset + bytes_len;
8414 _next_ordinal_to_read += 1;
8415 if next_offset >= end_offset {
8416 return Ok(());
8417 }
8418
8419 while _next_ordinal_to_read < 1 {
8421 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8422 _next_ordinal_to_read += 1;
8423 next_offset += envelope_size;
8424 }
8425
8426 let next_out_of_line = decoder.next_out_of_line();
8427 let handles_before = decoder.remaining_handles();
8428 if let Some((inlined, num_bytes, num_handles)) =
8429 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8430 {
8431 let member_inline_size =
8432 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8433 if inlined != (member_inline_size <= 4) {
8434 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8435 }
8436 let inner_offset;
8437 let mut inner_depth = depth.clone();
8438 if inlined {
8439 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8440 inner_offset = next_offset;
8441 } else {
8442 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8443 inner_depth.increment()?;
8444 }
8445 let val_ref = self.is_started.get_or_insert_with(|| fidl::new_empty!(bool, D));
8446 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
8447 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8448 {
8449 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8450 }
8451 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8452 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8453 }
8454 }
8455
8456 next_offset += envelope_size;
8457
8458 while next_offset < end_offset {
8460 _next_ordinal_to_read += 1;
8461 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8462 next_offset += envelope_size;
8463 }
8464
8465 Ok(())
8466 }
8467 }
8468
8469 impl fidl::encoding::ValueTypeMarker for Nl80211Message {
8470 type Borrowed<'a> = &'a Self;
8471 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
8472 value
8473 }
8474 }
8475
8476 unsafe impl fidl::encoding::TypeMarker for Nl80211Message {
8477 type Owned = Self;
8478
8479 #[inline(always)]
8480 fn inline_align(_context: fidl::encoding::Context) -> usize {
8481 8
8482 }
8483
8484 #[inline(always)]
8485 fn inline_size(_context: fidl::encoding::Context) -> usize {
8486 16
8487 }
8488 }
8489
8490 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Nl80211Message, D>
8491 for &Nl80211Message
8492 {
8493 #[inline]
8494 unsafe fn encode(
8495 self,
8496 encoder: &mut fidl::encoding::Encoder<'_, D>,
8497 offset: usize,
8498 _depth: fidl::encoding::Depth,
8499 ) -> fidl::Result<()> {
8500 encoder.debug_check_bounds::<Nl80211Message>(offset);
8501 encoder.write_num::<u64>(self.ordinal(), offset);
8502 match self {
8503 Nl80211Message::Done(ref val) => fidl::encoding::encode_in_envelope::<Done, D>(
8504 <Done as fidl::encoding::ValueTypeMarker>::borrow(val),
8505 encoder,
8506 offset + 8,
8507 _depth,
8508 ),
8509 Nl80211Message::Error(ref val) => fidl::encoding::encode_in_envelope::<Error, D>(
8510 <Error as fidl::encoding::ValueTypeMarker>::borrow(val),
8511 encoder,
8512 offset + 8,
8513 _depth,
8514 ),
8515 Nl80211Message::Ack(ref val) => fidl::encoding::encode_in_envelope::<Ack, D>(
8516 <Ack as fidl::encoding::ValueTypeMarker>::borrow(val),
8517 encoder,
8518 offset + 8,
8519 _depth,
8520 ),
8521 Nl80211Message::Message(ref val) => {
8522 fidl::encoding::encode_in_envelope::<Message, D>(
8523 <Message as fidl::encoding::ValueTypeMarker>::borrow(val),
8524 encoder,
8525 offset + 8,
8526 _depth,
8527 )
8528 }
8529 Nl80211Message::__SourceBreaking { .. } => Err(fidl::Error::UnknownUnionTag),
8530 }
8531 }
8532 }
8533
8534 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Nl80211Message {
8535 #[inline(always)]
8536 fn new_empty() -> Self {
8537 Self::__SourceBreaking { unknown_ordinal: 0 }
8538 }
8539
8540 #[inline]
8541 unsafe fn decode(
8542 &mut self,
8543 decoder: &mut fidl::encoding::Decoder<'_, D>,
8544 offset: usize,
8545 mut depth: fidl::encoding::Depth,
8546 ) -> fidl::Result<()> {
8547 decoder.debug_check_bounds::<Self>(offset);
8548 #[allow(unused_variables)]
8549 let next_out_of_line = decoder.next_out_of_line();
8550 let handles_before = decoder.remaining_handles();
8551 let (ordinal, inlined, num_bytes, num_handles) =
8552 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
8553
8554 let member_inline_size = match ordinal {
8555 1 => <Done as fidl::encoding::TypeMarker>::inline_size(decoder.context),
8556 2 => <Error as fidl::encoding::TypeMarker>::inline_size(decoder.context),
8557 3 => <Ack as fidl::encoding::TypeMarker>::inline_size(decoder.context),
8558 4 => <Message as fidl::encoding::TypeMarker>::inline_size(decoder.context),
8559 0 => return Err(fidl::Error::UnknownUnionTag),
8560 _ => num_bytes as usize,
8561 };
8562
8563 if inlined != (member_inline_size <= 4) {
8564 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8565 }
8566 let _inner_offset;
8567 if inlined {
8568 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
8569 _inner_offset = offset + 8;
8570 } else {
8571 depth.increment()?;
8572 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8573 }
8574 match ordinal {
8575 1 => {
8576 #[allow(irrefutable_let_patterns)]
8577 if let Nl80211Message::Done(_) = self {
8578 } else {
8580 *self = Nl80211Message::Done(fidl::new_empty!(Done, D));
8582 }
8583 #[allow(irrefutable_let_patterns)]
8584 if let Nl80211Message::Done(ref mut val) = self {
8585 fidl::decode!(Done, D, val, decoder, _inner_offset, depth)?;
8586 } else {
8587 unreachable!()
8588 }
8589 }
8590 2 => {
8591 #[allow(irrefutable_let_patterns)]
8592 if let Nl80211Message::Error(_) = self {
8593 } else {
8595 *self = Nl80211Message::Error(fidl::new_empty!(Error, D));
8597 }
8598 #[allow(irrefutable_let_patterns)]
8599 if let Nl80211Message::Error(ref mut val) = self {
8600 fidl::decode!(Error, D, val, decoder, _inner_offset, depth)?;
8601 } else {
8602 unreachable!()
8603 }
8604 }
8605 3 => {
8606 #[allow(irrefutable_let_patterns)]
8607 if let Nl80211Message::Ack(_) = self {
8608 } else {
8610 *self = Nl80211Message::Ack(fidl::new_empty!(Ack, D));
8612 }
8613 #[allow(irrefutable_let_patterns)]
8614 if let Nl80211Message::Ack(ref mut val) = self {
8615 fidl::decode!(Ack, D, val, decoder, _inner_offset, depth)?;
8616 } else {
8617 unreachable!()
8618 }
8619 }
8620 4 => {
8621 #[allow(irrefutable_let_patterns)]
8622 if let Nl80211Message::Message(_) = self {
8623 } else {
8625 *self = Nl80211Message::Message(fidl::new_empty!(Message, D));
8627 }
8628 #[allow(irrefutable_let_patterns)]
8629 if let Nl80211Message::Message(ref mut val) = self {
8630 fidl::decode!(Message, D, val, decoder, _inner_offset, depth)?;
8631 } else {
8632 unreachable!()
8633 }
8634 }
8635 #[allow(deprecated)]
8636 ordinal => {
8637 for _ in 0..num_handles {
8638 decoder.drop_next_handle()?;
8639 }
8640 *self = Nl80211Message::__SourceBreaking { unknown_ordinal: ordinal };
8641 }
8642 }
8643 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
8644 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8645 }
8646 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8647 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8648 }
8649 Ok(())
8650 }
8651 }
8652}