1#![warn(clippy::all)]
4#![allow(unused_parens, unused_mut, unused_imports, nonstandard_style)]
5
6use bitflags::bitflags;
7use fidl::encoding::{MessageBufFor, ProxyChannelBox, ResourceDialect};
8use futures::future::{self, MaybeDone, TryFutureExt};
9use zx_status;
10
11pub const WLAN_MAX_KEYLIST_SIZE: u32 = 4;
12
13pub const WLAN_VIE_MAX_LEN: u32 = 514;
16
17#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
18pub enum EapolTxResult {
19 Success,
20 TransmissionFailure,
21 #[doc(hidden)]
22 __SourceBreaking {
23 unknown_ordinal: u8,
24 },
25}
26
27#[macro_export]
29macro_rules! EapolTxResultUnknown {
30 () => {
31 _
32 };
33}
34
35impl EapolTxResult {
36 #[inline]
37 pub fn from_primitive(prim: u8) -> Option<Self> {
38 match prim {
39 0 => Some(Self::Success),
40 1 => Some(Self::TransmissionFailure),
41 _ => None,
42 }
43 }
44
45 #[inline]
46 pub fn from_primitive_allow_unknown(prim: u8) -> Self {
47 match prim {
48 0 => Self::Success,
49 1 => Self::TransmissionFailure,
50 unknown_ordinal => Self::__SourceBreaking { unknown_ordinal },
51 }
52 }
53
54 #[inline]
55 pub fn unknown() -> Self {
56 Self::__SourceBreaking { unknown_ordinal: 0xff }
57 }
58
59 #[inline]
60 pub const fn into_primitive(self) -> u8 {
61 match self {
62 Self::Success => 0,
63 Self::TransmissionFailure => 1,
64 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
65 }
66 }
67
68 #[inline]
69 pub fn is_unknown(&self) -> bool {
70 match self {
71 Self::__SourceBreaking { unknown_ordinal: _ } => true,
72 _ => false,
73 }
74 }
75}
76
77#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
78pub enum StartResult {
79 Success,
80 BssAlreadyStartedOrJoined,
81 ResetRequiredBeforeStart,
82 NotSupported,
83 #[doc(hidden)]
84 __SourceBreaking {
85 unknown_ordinal: u8,
86 },
87}
88
89#[macro_export]
91macro_rules! StartResultUnknown {
92 () => {
93 _
94 };
95}
96
97impl StartResult {
98 #[inline]
99 pub fn from_primitive(prim: u8) -> Option<Self> {
100 match prim {
101 0 => Some(Self::Success),
102 1 => Some(Self::BssAlreadyStartedOrJoined),
103 2 => Some(Self::ResetRequiredBeforeStart),
104 3 => Some(Self::NotSupported),
105 _ => None,
106 }
107 }
108
109 #[inline]
110 pub fn from_primitive_allow_unknown(prim: u8) -> Self {
111 match prim {
112 0 => Self::Success,
113 1 => Self::BssAlreadyStartedOrJoined,
114 2 => Self::ResetRequiredBeforeStart,
115 3 => Self::NotSupported,
116 unknown_ordinal => Self::__SourceBreaking { unknown_ordinal },
117 }
118 }
119
120 #[inline]
121 pub fn unknown() -> Self {
122 Self::__SourceBreaking { unknown_ordinal: 0xff }
123 }
124
125 #[inline]
126 pub const fn into_primitive(self) -> u8 {
127 match self {
128 Self::Success => 0,
129 Self::BssAlreadyStartedOrJoined => 1,
130 Self::ResetRequiredBeforeStart => 2,
131 Self::NotSupported => 3,
132 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
133 }
134 }
135
136 #[inline]
137 pub fn is_unknown(&self) -> bool {
138 match self {
139 Self::__SourceBreaking { unknown_ordinal: _ } => true,
140 _ => false,
141 }
142 }
143}
144
145#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
146pub enum StopResult {
147 Success,
148 BssAlreadyStopped,
149 InternalError,
150 #[doc(hidden)]
151 __SourceBreaking {
152 unknown_ordinal: u8,
153 },
154}
155
156#[macro_export]
158macro_rules! StopResultUnknown {
159 () => {
160 _
161 };
162}
163
164impl StopResult {
165 #[inline]
166 pub fn from_primitive(prim: u8) -> Option<Self> {
167 match prim {
168 0 => Some(Self::Success),
169 1 => Some(Self::BssAlreadyStopped),
170 2 => Some(Self::InternalError),
171 _ => None,
172 }
173 }
174
175 #[inline]
176 pub fn from_primitive_allow_unknown(prim: u8) -> Self {
177 match prim {
178 0 => Self::Success,
179 1 => Self::BssAlreadyStopped,
180 2 => Self::InternalError,
181 unknown_ordinal => Self::__SourceBreaking { unknown_ordinal },
182 }
183 }
184
185 #[inline]
186 pub fn unknown() -> Self {
187 Self::__SourceBreaking { unknown_ordinal: 0xff }
188 }
189
190 #[inline]
191 pub const fn into_primitive(self) -> u8 {
192 match self {
193 Self::Success => 0,
194 Self::BssAlreadyStopped => 1,
195 Self::InternalError => 2,
196 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
197 }
198 }
199
200 #[inline]
201 pub fn is_unknown(&self) -> bool {
202 match self {
203 Self::__SourceBreaking { unknown_ordinal: _ } => true,
204 _ => false,
205 }
206 }
207}
208
209#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
210pub enum WlanAssocResult {
211 Success,
212 RefusedReasonUnspecified,
213 RefusedNotAuthenticated,
214 RefusedCapabilitiesMismatch,
215 RefusedExternalReason,
216 RefusedApOutOfMemory,
217 RefusedBasicRatesMismatch,
218 RejectedEmergencyServicesNotSupported,
219 RefusedTemporarily,
220 #[doc(hidden)]
221 __SourceBreaking {
222 unknown_ordinal: u8,
223 },
224}
225
226#[macro_export]
228macro_rules! WlanAssocResultUnknown {
229 () => {
230 _
231 };
232}
233
234impl WlanAssocResult {
235 #[inline]
236 pub fn from_primitive(prim: u8) -> Option<Self> {
237 match prim {
238 0 => Some(Self::Success),
239 1 => Some(Self::RefusedReasonUnspecified),
240 2 => Some(Self::RefusedNotAuthenticated),
241 3 => Some(Self::RefusedCapabilitiesMismatch),
242 4 => Some(Self::RefusedExternalReason),
243 5 => Some(Self::RefusedApOutOfMemory),
244 6 => Some(Self::RefusedBasicRatesMismatch),
245 7 => Some(Self::RejectedEmergencyServicesNotSupported),
246 8 => Some(Self::RefusedTemporarily),
247 _ => None,
248 }
249 }
250
251 #[inline]
252 pub fn from_primitive_allow_unknown(prim: u8) -> Self {
253 match prim {
254 0 => Self::Success,
255 1 => Self::RefusedReasonUnspecified,
256 2 => Self::RefusedNotAuthenticated,
257 3 => Self::RefusedCapabilitiesMismatch,
258 4 => Self::RefusedExternalReason,
259 5 => Self::RefusedApOutOfMemory,
260 6 => Self::RefusedBasicRatesMismatch,
261 7 => Self::RejectedEmergencyServicesNotSupported,
262 8 => Self::RefusedTemporarily,
263 unknown_ordinal => Self::__SourceBreaking { unknown_ordinal },
264 }
265 }
266
267 #[inline]
268 pub fn unknown() -> Self {
269 Self::__SourceBreaking { unknown_ordinal: 0xff }
270 }
271
272 #[inline]
273 pub const fn into_primitive(self) -> u8 {
274 match self {
275 Self::Success => 0,
276 Self::RefusedReasonUnspecified => 1,
277 Self::RefusedNotAuthenticated => 2,
278 Self::RefusedCapabilitiesMismatch => 3,
279 Self::RefusedExternalReason => 4,
280 Self::RefusedApOutOfMemory => 5,
281 Self::RefusedBasicRatesMismatch => 6,
282 Self::RejectedEmergencyServicesNotSupported => 7,
283 Self::RefusedTemporarily => 8,
284 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
285 }
286 }
287
288 #[inline]
289 pub fn is_unknown(&self) -> bool {
290 match self {
291 Self::__SourceBreaking { unknown_ordinal: _ } => true,
292 _ => false,
293 }
294 }
295}
296
297#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
298pub enum WlanAuthResult {
299 Success,
300 Refused,
301 AntiCloggingTokenRequired,
302 FiniteCyclicGroupNotSupported,
303 Rejected,
304 FailureTimeout,
305 #[doc(hidden)]
306 __SourceBreaking {
307 unknown_ordinal: u8,
308 },
309}
310
311#[macro_export]
313macro_rules! WlanAuthResultUnknown {
314 () => {
315 _
316 };
317}
318
319impl WlanAuthResult {
320 #[inline]
321 pub fn from_primitive(prim: u8) -> Option<Self> {
322 match prim {
323 0 => Some(Self::Success),
324 1 => Some(Self::Refused),
325 2 => Some(Self::AntiCloggingTokenRequired),
326 3 => Some(Self::FiniteCyclicGroupNotSupported),
327 4 => Some(Self::Rejected),
328 5 => Some(Self::FailureTimeout),
329 _ => None,
330 }
331 }
332
333 #[inline]
334 pub fn from_primitive_allow_unknown(prim: u8) -> Self {
335 match prim {
336 0 => Self::Success,
337 1 => Self::Refused,
338 2 => Self::AntiCloggingTokenRequired,
339 3 => Self::FiniteCyclicGroupNotSupported,
340 4 => Self::Rejected,
341 5 => Self::FailureTimeout,
342 unknown_ordinal => Self::__SourceBreaking { unknown_ordinal },
343 }
344 }
345
346 #[inline]
347 pub fn unknown() -> Self {
348 Self::__SourceBreaking { unknown_ordinal: 0xff }
349 }
350
351 #[inline]
352 pub const fn into_primitive(self) -> u8 {
353 match self {
354 Self::Success => 0,
355 Self::Refused => 1,
356 Self::AntiCloggingTokenRequired => 2,
357 Self::FiniteCyclicGroupNotSupported => 3,
358 Self::Rejected => 4,
359 Self::FailureTimeout => 5,
360 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
361 }
362 }
363
364 #[inline]
365 pub fn is_unknown(&self) -> bool {
366 match self {
367 Self::__SourceBreaking { unknown_ordinal: _ } => true,
368 _ => false,
369 }
370 }
371}
372
373#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
374pub enum WlanAuthType {
375 OpenSystem,
376 SharedKey,
377 FastBssTransition,
378 Sae,
379 #[doc(hidden)]
380 __SourceBreaking {
381 unknown_ordinal: u8,
382 },
383}
384
385#[macro_export]
387macro_rules! WlanAuthTypeUnknown {
388 () => {
389 _
390 };
391}
392
393impl WlanAuthType {
394 #[inline]
395 pub fn from_primitive(prim: u8) -> Option<Self> {
396 match prim {
397 1 => Some(Self::OpenSystem),
398 2 => Some(Self::SharedKey),
399 3 => Some(Self::FastBssTransition),
400 4 => Some(Self::Sae),
401 _ => None,
402 }
403 }
404
405 #[inline]
406 pub fn from_primitive_allow_unknown(prim: u8) -> Self {
407 match prim {
408 1 => Self::OpenSystem,
409 2 => Self::SharedKey,
410 3 => Self::FastBssTransition,
411 4 => Self::Sae,
412 unknown_ordinal => Self::__SourceBreaking { unknown_ordinal },
413 }
414 }
415
416 #[inline]
417 pub fn unknown() -> Self {
418 Self::__SourceBreaking { unknown_ordinal: 0xff }
419 }
420
421 #[inline]
422 pub const fn into_primitive(self) -> u8 {
423 match self {
424 Self::OpenSystem => 1,
425 Self::SharedKey => 2,
426 Self::FastBssTransition => 3,
427 Self::Sae => 4,
428 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
429 }
430 }
431
432 #[inline]
433 pub fn is_unknown(&self) -> bool {
434 match self {
435 Self::__SourceBreaking { unknown_ordinal: _ } => true,
436 _ => false,
437 }
438 }
439}
440
441#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
442pub enum WlanScanResult {
443 Success,
444 NotSupported,
445 InvalidArgs,
446 InternalError,
447 ShouldWait,
448 CanceledByDriverOrFirmware,
449 #[doc(hidden)]
450 __SourceBreaking {
451 unknown_ordinal: u8,
452 },
453}
454
455#[macro_export]
457macro_rules! WlanScanResultUnknown {
458 () => {
459 _
460 };
461}
462
463impl WlanScanResult {
464 #[inline]
465 pub fn from_primitive(prim: u8) -> Option<Self> {
466 match prim {
467 0 => Some(Self::Success),
468 1 => Some(Self::NotSupported),
469 2 => Some(Self::InvalidArgs),
470 3 => Some(Self::InternalError),
471 4 => Some(Self::ShouldWait),
472 5 => Some(Self::CanceledByDriverOrFirmware),
473 _ => None,
474 }
475 }
476
477 #[inline]
478 pub fn from_primitive_allow_unknown(prim: u8) -> Self {
479 match prim {
480 0 => Self::Success,
481 1 => Self::NotSupported,
482 2 => Self::InvalidArgs,
483 3 => Self::InternalError,
484 4 => Self::ShouldWait,
485 5 => Self::CanceledByDriverOrFirmware,
486 unknown_ordinal => Self::__SourceBreaking { unknown_ordinal },
487 }
488 }
489
490 #[inline]
491 pub fn unknown() -> Self {
492 Self::__SourceBreaking { unknown_ordinal: 0xff }
493 }
494
495 #[inline]
496 pub const fn into_primitive(self) -> u8 {
497 match self {
498 Self::Success => 0,
499 Self::NotSupported => 1,
500 Self::InvalidArgs => 2,
501 Self::InternalError => 3,
502 Self::ShouldWait => 4,
503 Self::CanceledByDriverOrFirmware => 5,
504 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
505 }
506 }
507
508 #[inline]
509 pub fn is_unknown(&self) -> bool {
510 match self {
511 Self::__SourceBreaking { unknown_ordinal: _ } => true,
512 _ => false,
513 }
514 }
515}
516
517#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
518pub enum WlanScanType {
519 Active,
520 Passive,
521 #[doc(hidden)]
522 __SourceBreaking {
523 unknown_ordinal: u8,
524 },
525}
526
527#[macro_export]
529macro_rules! WlanScanTypeUnknown {
530 () => {
531 _
532 };
533}
534
535impl WlanScanType {
536 #[inline]
537 pub fn from_primitive(prim: u8) -> Option<Self> {
538 match prim {
539 1 => Some(Self::Active),
540 2 => Some(Self::Passive),
541 _ => None,
542 }
543 }
544
545 #[inline]
546 pub fn from_primitive_allow_unknown(prim: u8) -> Self {
547 match prim {
548 1 => Self::Active,
549 2 => Self::Passive,
550 unknown_ordinal => Self::__SourceBreaking { unknown_ordinal },
551 }
552 }
553
554 #[inline]
555 pub fn unknown() -> Self {
556 Self::__SourceBreaking { unknown_ordinal: 0xff }
557 }
558
559 #[inline]
560 pub const fn into_primitive(self) -> u8 {
561 match self {
562 Self::Active => 1,
563 Self::Passive => 2,
564 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
565 }
566 }
567
568 #[inline]
569 pub fn is_unknown(&self) -> bool {
570 match self {
571 Self::__SourceBreaking { unknown_ordinal: _ } => true,
572 _ => false,
573 }
574 }
575}
576
577#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
578#[repr(C)]
579pub struct WlanFullmacChannelSwitchInfo {
580 pub new_channel: u8,
581}
582
583impl fidl::Persistable for WlanFullmacChannelSwitchInfo {}
584
585#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
586#[repr(C)]
587pub struct WlanFullmacImplIfcOnChannelSwitchRequest {
588 pub ind: WlanFullmacChannelSwitchInfo,
589}
590
591impl fidl::Persistable for WlanFullmacImplIfcOnChannelSwitchRequest {}
592
593#[derive(Clone, Debug, PartialEq)]
594pub struct WlanFullmacImplIfcOnWmmStatusRespRequest {
595 pub status: i32,
596 pub wmm_params: fidl_fuchsia_wlan_common__common::WlanWmmParameters,
597}
598
599impl fidl::Persistable for WlanFullmacImplIfcOnWmmStatusRespRequest {}
600
601#[derive(Clone, Debug, PartialEq)]
602pub struct WlanFullmacImplIfcSaeFrameRxRequest {
603 pub frame: SaeFrame,
604}
605
606impl fidl::Persistable for WlanFullmacImplIfcSaeFrameRxRequest {}
607
608#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
609#[repr(C)]
610pub struct WlanFullmacImplIfcSignalReportRequest {
611 pub ind: WlanFullmacSignalReportIndication,
612}
613
614impl fidl::Persistable for WlanFullmacImplIfcSignalReportRequest {}
615
616#[derive(Clone, Debug, PartialEq)]
617pub struct WlanFullmacImplSaeFrameTxRequest {
618 pub frame: SaeFrame,
619}
620
621impl fidl::Persistable for WlanFullmacImplSaeFrameTxRequest {}
622
623#[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
624pub struct WlanFullmacImplSetKeysResponse {
625 pub resp: WlanFullmacSetKeysResp,
626}
627
628impl fidl::Persistable for WlanFullmacImplSetKeysResponse {}
629
630#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
631#[repr(C)]
632pub struct WlanFullmacImplSetMacAddressRequest {
633 pub mac_addr: [u8; 6],
634}
635
636impl fidl::Persistable for WlanFullmacImplSetMacAddressRequest {}
637
638#[derive(Clone, Debug, PartialEq)]
639pub struct WlanFullmacImplGetIfaceHistogramStatsResponse {
640 pub stats: fidl_fuchsia_wlan_stats__common::IfaceHistogramStats,
641}
642
643impl fidl::Persistable for WlanFullmacImplGetIfaceHistogramStatsResponse {}
644
645#[derive(Clone, Debug, PartialEq)]
646pub struct WlanFullmacImplGetIfaceStatsResponse {
647 pub stats: fidl_fuchsia_wlan_stats__common::IfaceStats,
648}
649
650impl fidl::Persistable for WlanFullmacImplGetIfaceStatsResponse {}
651
652#[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
653pub struct WlanFullmacRssiStats {
654 pub hist: Vec<u64>,
655}
656
657impl fidl::Persistable for WlanFullmacRssiStats {}
658
659#[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
660pub struct WlanFullmacSetKeysResp {
661 pub statuslist: Vec<i32>,
662}
663
664impl fidl::Persistable for WlanFullmacSetKeysResp {}
665
666#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
667#[repr(C)]
668pub struct WlanFullmacSignalReportIndication {
669 pub rssi_dbm: i8,
670 pub snr_db: i8,
671}
672
673impl fidl::Persistable for WlanFullmacSignalReportIndication {}
674
675#[derive(Clone, Debug, Default, PartialEq)]
677pub struct BandCapability {
678 pub band: Option<fidl_fuchsia_wlan_ieee80211__common::WlanBand>,
682 pub basic_rates: Option<Vec<u8>>,
689 pub ht_caps: Option<fidl_fuchsia_wlan_ieee80211__common::HtCapabilities>,
694 pub vht_caps: Option<fidl_fuchsia_wlan_ieee80211__common::VhtCapabilities>,
699 pub operating_channels: Option<Vec<u8>>,
711 #[doc(hidden)]
712 pub __source_breaking: fidl::marker::SourceBreaking,
713}
714
715impl fidl::Persistable for BandCapability {}
716
717#[derive(Clone, Debug, Default, PartialEq)]
720pub struct SaeFrame {
721 pub peer_sta_address: Option<[u8; 6]>,
723 pub status_code: Option<fidl_fuchsia_wlan_ieee80211__common::StatusCode>,
725 pub seq_num: Option<u16>,
727 pub sae_fields: Option<Vec<u8>>,
731 #[doc(hidden)]
732 pub __source_breaking: fidl::marker::SourceBreaking,
733}
734
735impl fidl::Persistable for SaeFrame {}
736
737#[derive(Clone, Debug, Default, PartialEq)]
738pub struct WlanFullmacImplAssocRespRequest {
739 pub peer_sta_address: Option<[u8; 6]>,
740 pub result_code: Option<WlanAssocResult>,
741 pub association_id: Option<u16>,
742 #[doc(hidden)]
743 pub __source_breaking: fidl::marker::SourceBreaking,
744}
745
746impl fidl::Persistable for WlanFullmacImplAssocRespRequest {}
747
748#[derive(Clone, Debug, Default, PartialEq)]
749pub struct WlanFullmacImplAuthRespRequest {
750 pub peer_sta_address: Option<[u8; 6]>,
751 pub result_code: Option<WlanAuthResult>,
752 #[doc(hidden)]
753 pub __source_breaking: fidl::marker::SourceBreaking,
754}
755
756impl fidl::Persistable for WlanFullmacImplAuthRespRequest {}
757
758#[derive(Clone, Debug, Default, PartialEq)]
759pub struct WlanFullmacImplConnectRequest {
760 pub selected_bss: Option<fidl_fuchsia_wlan_common__common::BssDescription>,
761 pub connect_failure_timeout: Option<u32>,
763 pub auth_type: Option<WlanAuthType>,
765 pub sae_password: Option<Vec<u8>>,
768 pub wep_key: Option<fidl_fuchsia_wlan_common__common::WlanKeyConfig>,
771 pub security_ie: Option<Vec<u8>>,
773 pub wep_key_desc: Option<fidl_fuchsia_wlan_ieee80211__common::SetKeyDescriptor>,
776 #[doc(hidden)]
777 pub __source_breaking: fidl::marker::SourceBreaking,
778}
779
780impl fidl::Persistable for WlanFullmacImplConnectRequest {}
781
782#[derive(Clone, Debug, Default, PartialEq)]
783pub struct WlanFullmacImplDeauthRequest {
784 pub peer_sta_address: Option<[u8; 6]>,
785 pub reason_code: Option<fidl_fuchsia_wlan_ieee80211__common::ReasonCode>,
786 #[doc(hidden)]
787 pub __source_breaking: fidl::marker::SourceBreaking,
788}
789
790impl fidl::Persistable for WlanFullmacImplDeauthRequest {}
791
792#[derive(Clone, Debug, Default, PartialEq)]
793pub struct WlanFullmacImplDisassocRequest {
794 pub peer_sta_address: Option<[u8; 6]>,
795 pub reason_code: Option<fidl_fuchsia_wlan_ieee80211__common::ReasonCode>,
796 #[doc(hidden)]
797 pub __source_breaking: fidl::marker::SourceBreaking,
798}
799
800impl fidl::Persistable for WlanFullmacImplDisassocRequest {}
801
802#[derive(Clone, Debug, Default, PartialEq)]
803pub struct WlanFullmacImplEapolTxRequest {
804 pub src_addr: Option<[u8; 6]>,
805 pub dst_addr: Option<[u8; 6]>,
806 pub data: Option<Vec<u8>>,
807 #[doc(hidden)]
808 pub __source_breaking: fidl::marker::SourceBreaking,
809}
810
811impl fidl::Persistable for WlanFullmacImplEapolTxRequest {}
812
813#[derive(Clone, Debug, Default, PartialEq)]
814pub struct WlanFullmacImplIfcAssocIndRequest {
815 pub peer_sta_address: Option<[u8; 6]>,
816 pub listen_interval: Option<u16>,
817 pub ssid: Option<Vec<u8>>,
818 pub rsne: Option<Vec<u8>>,
819 pub vendor_ie: Option<Vec<u8>>,
820 #[doc(hidden)]
821 pub __source_breaking: fidl::marker::SourceBreaking,
822}
823
824impl fidl::Persistable for WlanFullmacImplIfcAssocIndRequest {}
825
826#[derive(Clone, Debug, Default, PartialEq)]
827pub struct WlanFullmacImplIfcAuthIndRequest {
828 pub peer_sta_address: Option<[u8; 6]>,
829 pub auth_type: Option<WlanAuthType>,
830 #[doc(hidden)]
831 pub __source_breaking: fidl::marker::SourceBreaking,
832}
833
834impl fidl::Persistable for WlanFullmacImplIfcAuthIndRequest {}
835
836#[derive(Clone, Debug, Default, PartialEq)]
837pub struct WlanFullmacImplIfcConnectConfRequest {
838 pub peer_sta_address: Option<[u8; 6]>,
839 pub result_code: Option<fidl_fuchsia_wlan_ieee80211__common::StatusCode>,
840 pub association_id: Option<u16>,
841 pub association_ies: Option<Vec<u8>>,
842 #[doc(hidden)]
843 pub __source_breaking: fidl::marker::SourceBreaking,
844}
845
846impl fidl::Persistable for WlanFullmacImplIfcConnectConfRequest {}
847
848#[derive(Clone, Debug, Default, PartialEq)]
849pub struct WlanFullmacImplIfcDeauthConfRequest {
850 pub peer_sta_address: Option<[u8; 6]>,
851 #[doc(hidden)]
852 pub __source_breaking: fidl::marker::SourceBreaking,
853}
854
855impl fidl::Persistable for WlanFullmacImplIfcDeauthConfRequest {}
856
857#[derive(Clone, Debug, Default, PartialEq)]
858pub struct WlanFullmacImplIfcDeauthIndRequest {
859 pub peer_sta_address: Option<[u8; 6]>,
861 pub reason_code: Option<fidl_fuchsia_wlan_ieee80211__common::ReasonCode>,
863 pub locally_initiated: Option<bool>,
866 #[doc(hidden)]
867 pub __source_breaking: fidl::marker::SourceBreaking,
868}
869
870impl fidl::Persistable for WlanFullmacImplIfcDeauthIndRequest {}
871
872#[derive(Clone, Debug, Default, PartialEq)]
873pub struct WlanFullmacImplIfcDisassocConfRequest {
874 pub status: Option<i32>,
882 #[doc(hidden)]
883 pub __source_breaking: fidl::marker::SourceBreaking,
884}
885
886impl fidl::Persistable for WlanFullmacImplIfcDisassocConfRequest {}
887
888#[derive(Clone, Debug, Default, PartialEq)]
889pub struct WlanFullmacImplIfcDisassocIndRequest {
890 pub peer_sta_address: Option<[u8; 6]>,
892 pub reason_code: Option<fidl_fuchsia_wlan_ieee80211__common::ReasonCode>,
894 pub locally_initiated: Option<bool>,
899 #[doc(hidden)]
900 pub __source_breaking: fidl::marker::SourceBreaking,
901}
902
903impl fidl::Persistable for WlanFullmacImplIfcDisassocIndRequest {}
904
905#[derive(Clone, Debug, Default, PartialEq)]
906pub struct WlanFullmacImplIfcEapolConfRequest {
907 pub result_code: Option<EapolTxResult>,
909 pub dst_addr: Option<[u8; 6]>,
914 #[doc(hidden)]
915 pub __source_breaking: fidl::marker::SourceBreaking,
916}
917
918impl fidl::Persistable for WlanFullmacImplIfcEapolConfRequest {}
919
920#[derive(Clone, Debug, Default, PartialEq)]
921pub struct WlanFullmacImplIfcEapolIndRequest {
922 pub src_addr: Option<[u8; 6]>,
924 pub dst_addr: Option<[u8; 6]>,
926 pub data: Option<Vec<u8>>,
928 #[doc(hidden)]
929 pub __source_breaking: fidl::marker::SourceBreaking,
930}
931
932impl fidl::Persistable for WlanFullmacImplIfcEapolIndRequest {}
933
934#[derive(Clone, Debug, Default, PartialEq)]
935pub struct WlanFullmacImplIfcOnPmkAvailableRequest {
936 pub pmk: Option<Vec<u8>>,
938 pub pmkid: Option<Vec<u8>>,
940 #[doc(hidden)]
941 pub __source_breaking: fidl::marker::SourceBreaking,
942}
943
944impl fidl::Persistable for WlanFullmacImplIfcOnPmkAvailableRequest {}
945
946#[derive(Clone, Debug, Default, PartialEq)]
947pub struct WlanFullmacImplIfcOnScanEndRequest {
948 pub txn_id: Option<u64>,
949 pub code: Option<WlanScanResult>,
950 #[doc(hidden)]
951 pub __source_breaking: fidl::marker::SourceBreaking,
952}
953
954impl fidl::Persistable for WlanFullmacImplIfcOnScanEndRequest {}
955
956#[derive(Clone, Debug, Default, PartialEq)]
957pub struct WlanFullmacImplIfcOnScanResultRequest {
958 pub txn_id: Option<u64>,
959 pub timestamp_nanos: Option<i64>,
960 pub bss: Option<fidl_fuchsia_wlan_common__common::BssDescription>,
961 #[doc(hidden)]
962 pub __source_breaking: fidl::marker::SourceBreaking,
963}
964
965impl fidl::Persistable for WlanFullmacImplIfcOnScanResultRequest {}
966
967#[derive(Clone, Debug, Default, PartialEq)]
968pub struct WlanFullmacImplIfcRoamConfRequest {
969 pub selected_bssid: Option<[u8; 6]>,
971 pub status_code: Option<fidl_fuchsia_wlan_ieee80211__common::StatusCode>,
973 pub original_association_maintained: Option<bool>,
978 pub target_bss_authenticated: Option<bool>,
983 pub association_id: Option<u16>,
985 pub association_ies: Option<Vec<u8>>,
987 #[doc(hidden)]
988 pub __source_breaking: fidl::marker::SourceBreaking,
989}
990
991impl fidl::Persistable for WlanFullmacImplIfcRoamConfRequest {}
992
993#[derive(Clone, Debug, Default, PartialEq)]
994pub struct WlanFullmacImplIfcRoamResultIndRequest {
995 pub selected_bssid: Option<[u8; 6]>,
997 pub status_code: Option<fidl_fuchsia_wlan_ieee80211__common::StatusCode>,
999 pub original_association_maintained: Option<bool>,
1004 pub target_bss_authenticated: Option<bool>,
1009 pub association_id: Option<u16>,
1011 pub association_ies: Option<Vec<u8>>,
1013 #[doc(hidden)]
1014 pub __source_breaking: fidl::marker::SourceBreaking,
1015}
1016
1017impl fidl::Persistable for WlanFullmacImplIfcRoamResultIndRequest {}
1018
1019#[derive(Clone, Debug, Default, PartialEq)]
1020pub struct WlanFullmacImplIfcRoamStartIndRequest {
1021 pub selected_bssid: Option<[u8; 6]>,
1023 pub selected_bss: Option<fidl_fuchsia_wlan_common__common::BssDescription>,
1027 pub original_association_maintained: Option<bool>,
1035 #[doc(hidden)]
1036 pub __source_breaking: fidl::marker::SourceBreaking,
1037}
1038
1039impl fidl::Persistable for WlanFullmacImplIfcRoamStartIndRequest {}
1040
1041#[derive(Clone, Debug, Default, PartialEq)]
1042pub struct WlanFullmacImplIfcSaeHandshakeIndRequest {
1043 pub peer_sta_address: Option<[u8; 6]>,
1044 #[doc(hidden)]
1045 pub __source_breaking: fidl::marker::SourceBreaking,
1046}
1047
1048impl fidl::Persistable for WlanFullmacImplIfcSaeHandshakeIndRequest {}
1049
1050#[derive(Clone, Debug, Default, PartialEq)]
1051pub struct WlanFullmacImplIfcStartConfRequest {
1052 pub result_code: Option<StartResult>,
1054 #[doc(hidden)]
1055 pub __source_breaking: fidl::marker::SourceBreaking,
1056}
1057
1058impl fidl::Persistable for WlanFullmacImplIfcStartConfRequest {}
1059
1060#[derive(Clone, Debug, Default, PartialEq)]
1061pub struct WlanFullmacImplIfcStopConfRequest {
1062 pub result_code: Option<StopResult>,
1064 #[doc(hidden)]
1065 pub __source_breaking: fidl::marker::SourceBreaking,
1066}
1067
1068impl fidl::Persistable for WlanFullmacImplIfcStopConfRequest {}
1069
1070#[derive(Clone, Debug, Default, PartialEq)]
1071pub struct WlanFullmacImplOnLinkStateChangedRequest {
1072 pub online: Option<bool>,
1073 #[doc(hidden)]
1074 pub __source_breaking: fidl::marker::SourceBreaking,
1075}
1076
1077impl fidl::Persistable for WlanFullmacImplOnLinkStateChangedRequest {}
1078
1079#[derive(Clone, Debug, Default, PartialEq)]
1080pub struct WlanFullmacImplReconnectRequest {
1081 pub peer_sta_address: Option<[u8; 6]>,
1082 #[doc(hidden)]
1083 pub __source_breaking: fidl::marker::SourceBreaking,
1084}
1085
1086impl fidl::Persistable for WlanFullmacImplReconnectRequest {}
1087
1088#[derive(Clone, Debug, Default, PartialEq)]
1089pub struct WlanFullmacImplRoamRequest {
1090 pub selected_bss: Option<fidl_fuchsia_wlan_common__common::BssDescription>,
1094 #[doc(hidden)]
1095 pub __source_breaking: fidl::marker::SourceBreaking,
1096}
1097
1098impl fidl::Persistable for WlanFullmacImplRoamRequest {}
1099
1100#[derive(Clone, Debug, Default, PartialEq)]
1101pub struct WlanFullmacImplSaeHandshakeRespRequest {
1102 pub peer_sta_address: Option<[u8; 6]>,
1104 pub status_code: Option<fidl_fuchsia_wlan_ieee80211__common::StatusCode>,
1106 #[doc(hidden)]
1107 pub __source_breaking: fidl::marker::SourceBreaking,
1108}
1109
1110impl fidl::Persistable for WlanFullmacImplSaeHandshakeRespRequest {}
1111
1112#[derive(Clone, Debug, Default, PartialEq)]
1113pub struct WlanFullmacImplSetKeysRequest {
1114 pub keylist: Option<Vec<fidl_fuchsia_wlan_common__common::WlanKeyConfig>>,
1115 pub key_descriptors: Option<Vec<fidl_fuchsia_wlan_ieee80211__common::SetKeyDescriptor>>,
1116 #[doc(hidden)]
1117 pub __source_breaking: fidl::marker::SourceBreaking,
1118}
1119
1120impl fidl::Persistable for WlanFullmacImplSetKeysRequest {}
1121
1122#[derive(Clone, Debug, Default, PartialEq)]
1123pub struct WlanFullmacImplStartBssRequest {
1124 pub ssid: Option<Vec<u8>>,
1125 pub bss_type: Option<fidl_fuchsia_wlan_common__common::BssType>,
1126 pub beacon_period: Option<u32>,
1127 pub dtim_period: Option<u32>,
1128 pub channel: Option<u8>,
1129 pub rsne: Option<Vec<u8>>,
1130 pub vendor_ie: Option<Vec<u8>>,
1131 #[doc(hidden)]
1132 pub __source_breaking: fidl::marker::SourceBreaking,
1133}
1134
1135impl fidl::Persistable for WlanFullmacImplStartBssRequest {}
1136
1137#[derive(Clone, Debug, Default, PartialEq)]
1138pub struct WlanFullmacImplStartScanRequest {
1139 pub txn_id: Option<u64>,
1141 pub scan_type: Option<WlanScanType>,
1142 pub channels: Option<Vec<u8>>,
1150 pub ssids: Option<Vec<Vec<u8>>>,
1159 pub min_channel_time: Option<u32>,
1161 pub max_channel_time: Option<u32>,
1163 #[doc(hidden)]
1164 pub __source_breaking: fidl::marker::SourceBreaking,
1165}
1166
1167impl fidl::Persistable for WlanFullmacImplStartScanRequest {}
1168
1169#[derive(Clone, Debug, Default, PartialEq)]
1170pub struct WlanFullmacImplStopBssRequest {
1171 pub ssid: Option<Vec<u8>>,
1172 #[doc(hidden)]
1173 pub __source_breaking: fidl::marker::SourceBreaking,
1174}
1175
1176impl fidl::Persistable for WlanFullmacImplStopBssRequest {}
1177
1178#[derive(Clone, Debug, Default, PartialEq)]
1179pub struct WlanFullmacImplQuerySecuritySupportResponse {
1180 pub resp: Option<fidl_fuchsia_wlan_common__common::SecuritySupport>,
1181 #[doc(hidden)]
1182 pub __source_breaking: fidl::marker::SourceBreaking,
1183}
1184
1185impl fidl::Persistable for WlanFullmacImplQuerySecuritySupportResponse {}
1186
1187#[derive(Clone, Debug, Default, PartialEq)]
1188pub struct WlanFullmacImplQuerySpectrumManagementSupportResponse {
1189 pub resp: Option<fidl_fuchsia_wlan_common__common::SpectrumManagementSupport>,
1190 #[doc(hidden)]
1191 pub __source_breaking: fidl::marker::SourceBreaking,
1192}
1193
1194impl fidl::Persistable for WlanFullmacImplQuerySpectrumManagementSupportResponse {}
1195
1196#[derive(Clone, Debug, Default, PartialEq)]
1197pub struct WlanFullmacImplQueryTelemetrySupportResponse {
1198 pub resp: Option<fidl_fuchsia_wlan_stats__common::TelemetrySupport>,
1199 #[doc(hidden)]
1200 pub __source_breaking: fidl::marker::SourceBreaking,
1201}
1202
1203impl fidl::Persistable for WlanFullmacImplQueryTelemetrySupportResponse {}
1204
1205#[derive(Clone, Debug, Default, PartialEq)]
1206pub struct WlanFullmacImplQueryResponse {
1207 pub sta_addr: Option<[u8; 6]>,
1209 pub role: Option<fidl_fuchsia_wlan_common__common::WlanMacRole>,
1211 pub band_caps: Option<Vec<BandCapability>>,
1213 pub factory_addr: Option<[u8; 6]>,
1215 #[doc(hidden)]
1216 pub __source_breaking: fidl::marker::SourceBreaking,
1217}
1218
1219impl fidl::Persistable for WlanFullmacImplQueryResponse {}
1220
1221pub mod wlan_fullmac_impl__ordinals {
1222 pub const INIT: u64 = 0x593dfb6cb3f0f1aa;
1223 pub const QUERY: u64 = 0x28ac65f9da3941d4;
1224 pub const QUERY_SECURITY_SUPPORT: u64 = 0x11cf3fa6eeb93f84;
1225 pub const QUERY_SPECTRUM_MANAGEMENT_SUPPORT: u64 = 0x22ae7551d855b83a;
1226 pub const QUERY_TELEMETRY_SUPPORT: u64 = 0x4561479ca560827f;
1227 pub const START_SCAN: u64 = 0x26c17bf595aa161c;
1228 pub const CONNECT: u64 = 0x19eb0322efb07a76;
1229 pub const RECONNECT: u64 = 0x474084c4ef19ee71;
1230 pub const ROAM: u64 = 0x1e35dcc98b124b64;
1231 pub const AUTH_RESP: u64 = 0x5f7ea24b44a4aaeb;
1232 pub const DEAUTH: u64 = 0x112786eccbf12f37;
1233 pub const ASSOC_RESP: u64 = 0x5022ce6b8eefec2f;
1234 pub const DISASSOC: u64 = 0x9c0fc4e8de53e01;
1235 pub const START_BSS: u64 = 0x6922644d6b1d341d;
1236 pub const STOP_BSS: u64 = 0x5aeb9b72e7575268;
1237 pub const SET_KEYS: u64 = 0x20f46b1e039f0985;
1238 pub const EAPOL_TX: u64 = 0x529a2d90fd4c8177;
1239 pub const GET_IFACE_STATS: u64 = 0x505563776ef0392f;
1240 pub const GET_IFACE_HISTOGRAM_STATS: u64 = 0x503d586f30ccf2cd;
1241 pub const GET_SIGNAL_REPORT: u64 = 0x5d93f056e4796bb3;
1242 pub const SAE_HANDSHAKE_RESP: u64 = 0x72cd3a31ae5a54f6;
1243 pub const SAE_FRAME_TX: u64 = 0x4715ad5dc5a6340f;
1244 pub const WMM_STATUS_REQ: u64 = 0x635ecef3beb7a059;
1245 pub const ON_LINK_STATE_CHANGED: u64 = 0x4d896e5b68e488d7;
1246 pub const SET_MAC_ADDRESS: u64 = 0x211a97f6f21ae5f0;
1247}
1248
1249pub mod wlan_fullmac_impl_ifc_ordinals {
1250 pub const ON_SCAN_RESULT: u64 = 0x29aa81dc570f7a3e;
1251 pub const ON_SCAN_END: u64 = 0x7cd8aff80d27073c;
1252 pub const CONNECT_CONF: u64 = 0x3c22c6d80b2a2759;
1253 pub const ROAM_CONF: u64 = 0x368b2a5b903b3f7b;
1254 pub const ROAM_START_IND: u64 = 0x23e1d9368935e7e4;
1255 pub const ROAM_RESULT_IND: u64 = 0x7081c1b1ceea4914;
1256 pub const AUTH_IND: u64 = 0x270e1f8889650d0b;
1257 pub const DEAUTH_CONF: u64 = 0x2c94b0d7258111b7;
1258 pub const DEAUTH_IND: u64 = 0x26cd27cdadd8dbaf;
1259 pub const ASSOC_IND: u64 = 0x3e44529e3dc179ce;
1260 pub const DISASSOC_CONF: u64 = 0x7c713bcd58a76cb3;
1261 pub const DISASSOC_IND: u64 = 0x6667b381b7f3990f;
1262 pub const START_CONF: u64 = 0x3e9b9641f3ddc7fc;
1263 pub const STOP_CONF: u64 = 0x320a5ff227a4e9df;
1264 pub const EAPOL_CONF: u64 = 0x77364db9cc3970ec;
1265 pub const ON_CHANNEL_SWITCH: u64 = 0x21db0b8f71cae647;
1266 pub const SIGNAL_REPORT: u64 = 0x79679fa8789c3d9f;
1267 pub const EAPOL_IND: u64 = 0x3de8ec1eda10d1d0;
1268 pub const ON_PMK_AVAILABLE: u64 = 0x5cedd8d9be28a17e;
1269 pub const SAE_HANDSHAKE_IND: u64 = 0x4f3d53885503a1d8;
1270 pub const SAE_FRAME_RX: u64 = 0x51650906857ed4d4;
1271 pub const ON_WMM_STATUS_RESP: u64 = 0x6823a88bf3ba8b2a;
1272}
1273
1274mod internal {
1275 use super::*;
1276 unsafe impl fidl::encoding::TypeMarker for EapolTxResult {
1277 type Owned = Self;
1278
1279 #[inline(always)]
1280 fn inline_align(_context: fidl::encoding::Context) -> usize {
1281 std::mem::align_of::<u8>()
1282 }
1283
1284 #[inline(always)]
1285 fn inline_size(_context: fidl::encoding::Context) -> usize {
1286 std::mem::size_of::<u8>()
1287 }
1288
1289 #[inline(always)]
1290 fn encode_is_copy() -> bool {
1291 false
1292 }
1293
1294 #[inline(always)]
1295 fn decode_is_copy() -> bool {
1296 false
1297 }
1298 }
1299
1300 impl fidl::encoding::ValueTypeMarker for EapolTxResult {
1301 type Borrowed<'a> = Self;
1302 #[inline(always)]
1303 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1304 *value
1305 }
1306 }
1307
1308 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for EapolTxResult {
1309 #[inline]
1310 unsafe fn encode(
1311 self,
1312 encoder: &mut fidl::encoding::Encoder<'_, D>,
1313 offset: usize,
1314 _depth: fidl::encoding::Depth,
1315 ) -> fidl::Result<()> {
1316 encoder.debug_check_bounds::<Self>(offset);
1317 encoder.write_num(self.into_primitive(), offset);
1318 Ok(())
1319 }
1320 }
1321
1322 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for EapolTxResult {
1323 #[inline(always)]
1324 fn new_empty() -> Self {
1325 Self::unknown()
1326 }
1327
1328 #[inline]
1329 unsafe fn decode(
1330 &mut self,
1331 decoder: &mut fidl::encoding::Decoder<'_, D>,
1332 offset: usize,
1333 _depth: fidl::encoding::Depth,
1334 ) -> fidl::Result<()> {
1335 decoder.debug_check_bounds::<Self>(offset);
1336 let prim = decoder.read_num::<u8>(offset);
1337
1338 *self = Self::from_primitive_allow_unknown(prim);
1339 Ok(())
1340 }
1341 }
1342 unsafe impl fidl::encoding::TypeMarker for StartResult {
1343 type Owned = Self;
1344
1345 #[inline(always)]
1346 fn inline_align(_context: fidl::encoding::Context) -> usize {
1347 std::mem::align_of::<u8>()
1348 }
1349
1350 #[inline(always)]
1351 fn inline_size(_context: fidl::encoding::Context) -> usize {
1352 std::mem::size_of::<u8>()
1353 }
1354
1355 #[inline(always)]
1356 fn encode_is_copy() -> bool {
1357 false
1358 }
1359
1360 #[inline(always)]
1361 fn decode_is_copy() -> bool {
1362 false
1363 }
1364 }
1365
1366 impl fidl::encoding::ValueTypeMarker for StartResult {
1367 type Borrowed<'a> = Self;
1368 #[inline(always)]
1369 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1370 *value
1371 }
1372 }
1373
1374 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for StartResult {
1375 #[inline]
1376 unsafe fn encode(
1377 self,
1378 encoder: &mut fidl::encoding::Encoder<'_, D>,
1379 offset: usize,
1380 _depth: fidl::encoding::Depth,
1381 ) -> fidl::Result<()> {
1382 encoder.debug_check_bounds::<Self>(offset);
1383 encoder.write_num(self.into_primitive(), offset);
1384 Ok(())
1385 }
1386 }
1387
1388 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for StartResult {
1389 #[inline(always)]
1390 fn new_empty() -> Self {
1391 Self::unknown()
1392 }
1393
1394 #[inline]
1395 unsafe fn decode(
1396 &mut self,
1397 decoder: &mut fidl::encoding::Decoder<'_, D>,
1398 offset: usize,
1399 _depth: fidl::encoding::Depth,
1400 ) -> fidl::Result<()> {
1401 decoder.debug_check_bounds::<Self>(offset);
1402 let prim = decoder.read_num::<u8>(offset);
1403
1404 *self = Self::from_primitive_allow_unknown(prim);
1405 Ok(())
1406 }
1407 }
1408 unsafe impl fidl::encoding::TypeMarker for StopResult {
1409 type Owned = Self;
1410
1411 #[inline(always)]
1412 fn inline_align(_context: fidl::encoding::Context) -> usize {
1413 std::mem::align_of::<u8>()
1414 }
1415
1416 #[inline(always)]
1417 fn inline_size(_context: fidl::encoding::Context) -> usize {
1418 std::mem::size_of::<u8>()
1419 }
1420
1421 #[inline(always)]
1422 fn encode_is_copy() -> bool {
1423 false
1424 }
1425
1426 #[inline(always)]
1427 fn decode_is_copy() -> bool {
1428 false
1429 }
1430 }
1431
1432 impl fidl::encoding::ValueTypeMarker for StopResult {
1433 type Borrowed<'a> = Self;
1434 #[inline(always)]
1435 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1436 *value
1437 }
1438 }
1439
1440 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for StopResult {
1441 #[inline]
1442 unsafe fn encode(
1443 self,
1444 encoder: &mut fidl::encoding::Encoder<'_, D>,
1445 offset: usize,
1446 _depth: fidl::encoding::Depth,
1447 ) -> fidl::Result<()> {
1448 encoder.debug_check_bounds::<Self>(offset);
1449 encoder.write_num(self.into_primitive(), offset);
1450 Ok(())
1451 }
1452 }
1453
1454 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for StopResult {
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::<u8>(offset);
1469
1470 *self = Self::from_primitive_allow_unknown(prim);
1471 Ok(())
1472 }
1473 }
1474 unsafe impl fidl::encoding::TypeMarker for WlanAssocResult {
1475 type Owned = Self;
1476
1477 #[inline(always)]
1478 fn inline_align(_context: fidl::encoding::Context) -> usize {
1479 std::mem::align_of::<u8>()
1480 }
1481
1482 #[inline(always)]
1483 fn inline_size(_context: fidl::encoding::Context) -> usize {
1484 std::mem::size_of::<u8>()
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 WlanAssocResult {
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 WlanAssocResult
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 WlanAssocResult {
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::<u8>(offset);
1537
1538 *self = Self::from_primitive_allow_unknown(prim);
1539 Ok(())
1540 }
1541 }
1542 unsafe impl fidl::encoding::TypeMarker for WlanAuthResult {
1543 type Owned = Self;
1544
1545 #[inline(always)]
1546 fn inline_align(_context: fidl::encoding::Context) -> usize {
1547 std::mem::align_of::<u8>()
1548 }
1549
1550 #[inline(always)]
1551 fn inline_size(_context: fidl::encoding::Context) -> usize {
1552 std::mem::size_of::<u8>()
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 WlanAuthResult {
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> for WlanAuthResult {
1575 #[inline]
1576 unsafe fn encode(
1577 self,
1578 encoder: &mut fidl::encoding::Encoder<'_, D>,
1579 offset: usize,
1580 _depth: fidl::encoding::Depth,
1581 ) -> fidl::Result<()> {
1582 encoder.debug_check_bounds::<Self>(offset);
1583 encoder.write_num(self.into_primitive(), offset);
1584 Ok(())
1585 }
1586 }
1587
1588 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for WlanAuthResult {
1589 #[inline(always)]
1590 fn new_empty() -> Self {
1591 Self::unknown()
1592 }
1593
1594 #[inline]
1595 unsafe fn decode(
1596 &mut self,
1597 decoder: &mut fidl::encoding::Decoder<'_, D>,
1598 offset: usize,
1599 _depth: fidl::encoding::Depth,
1600 ) -> fidl::Result<()> {
1601 decoder.debug_check_bounds::<Self>(offset);
1602 let prim = decoder.read_num::<u8>(offset);
1603
1604 *self = Self::from_primitive_allow_unknown(prim);
1605 Ok(())
1606 }
1607 }
1608 unsafe impl fidl::encoding::TypeMarker for WlanAuthType {
1609 type Owned = Self;
1610
1611 #[inline(always)]
1612 fn inline_align(_context: fidl::encoding::Context) -> usize {
1613 std::mem::align_of::<u8>()
1614 }
1615
1616 #[inline(always)]
1617 fn inline_size(_context: fidl::encoding::Context) -> usize {
1618 std::mem::size_of::<u8>()
1619 }
1620
1621 #[inline(always)]
1622 fn encode_is_copy() -> bool {
1623 false
1624 }
1625
1626 #[inline(always)]
1627 fn decode_is_copy() -> bool {
1628 false
1629 }
1630 }
1631
1632 impl fidl::encoding::ValueTypeMarker for WlanAuthType {
1633 type Borrowed<'a> = Self;
1634 #[inline(always)]
1635 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1636 *value
1637 }
1638 }
1639
1640 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for WlanAuthType {
1641 #[inline]
1642 unsafe fn encode(
1643 self,
1644 encoder: &mut fidl::encoding::Encoder<'_, D>,
1645 offset: usize,
1646 _depth: fidl::encoding::Depth,
1647 ) -> fidl::Result<()> {
1648 encoder.debug_check_bounds::<Self>(offset);
1649 encoder.write_num(self.into_primitive(), offset);
1650 Ok(())
1651 }
1652 }
1653
1654 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for WlanAuthType {
1655 #[inline(always)]
1656 fn new_empty() -> Self {
1657 Self::unknown()
1658 }
1659
1660 #[inline]
1661 unsafe fn decode(
1662 &mut self,
1663 decoder: &mut fidl::encoding::Decoder<'_, D>,
1664 offset: usize,
1665 _depth: fidl::encoding::Depth,
1666 ) -> fidl::Result<()> {
1667 decoder.debug_check_bounds::<Self>(offset);
1668 let prim = decoder.read_num::<u8>(offset);
1669
1670 *self = Self::from_primitive_allow_unknown(prim);
1671 Ok(())
1672 }
1673 }
1674 unsafe impl fidl::encoding::TypeMarker for WlanScanResult {
1675 type Owned = Self;
1676
1677 #[inline(always)]
1678 fn inline_align(_context: fidl::encoding::Context) -> usize {
1679 std::mem::align_of::<u8>()
1680 }
1681
1682 #[inline(always)]
1683 fn inline_size(_context: fidl::encoding::Context) -> usize {
1684 std::mem::size_of::<u8>()
1685 }
1686
1687 #[inline(always)]
1688 fn encode_is_copy() -> bool {
1689 false
1690 }
1691
1692 #[inline(always)]
1693 fn decode_is_copy() -> bool {
1694 false
1695 }
1696 }
1697
1698 impl fidl::encoding::ValueTypeMarker for WlanScanResult {
1699 type Borrowed<'a> = Self;
1700 #[inline(always)]
1701 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1702 *value
1703 }
1704 }
1705
1706 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for WlanScanResult {
1707 #[inline]
1708 unsafe fn encode(
1709 self,
1710 encoder: &mut fidl::encoding::Encoder<'_, D>,
1711 offset: usize,
1712 _depth: fidl::encoding::Depth,
1713 ) -> fidl::Result<()> {
1714 encoder.debug_check_bounds::<Self>(offset);
1715 encoder.write_num(self.into_primitive(), offset);
1716 Ok(())
1717 }
1718 }
1719
1720 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for WlanScanResult {
1721 #[inline(always)]
1722 fn new_empty() -> Self {
1723 Self::unknown()
1724 }
1725
1726 #[inline]
1727 unsafe fn decode(
1728 &mut self,
1729 decoder: &mut fidl::encoding::Decoder<'_, D>,
1730 offset: usize,
1731 _depth: fidl::encoding::Depth,
1732 ) -> fidl::Result<()> {
1733 decoder.debug_check_bounds::<Self>(offset);
1734 let prim = decoder.read_num::<u8>(offset);
1735
1736 *self = Self::from_primitive_allow_unknown(prim);
1737 Ok(())
1738 }
1739 }
1740 unsafe impl fidl::encoding::TypeMarker for WlanScanType {
1741 type Owned = Self;
1742
1743 #[inline(always)]
1744 fn inline_align(_context: fidl::encoding::Context) -> usize {
1745 std::mem::align_of::<u8>()
1746 }
1747
1748 #[inline(always)]
1749 fn inline_size(_context: fidl::encoding::Context) -> usize {
1750 std::mem::size_of::<u8>()
1751 }
1752
1753 #[inline(always)]
1754 fn encode_is_copy() -> bool {
1755 false
1756 }
1757
1758 #[inline(always)]
1759 fn decode_is_copy() -> bool {
1760 false
1761 }
1762 }
1763
1764 impl fidl::encoding::ValueTypeMarker for WlanScanType {
1765 type Borrowed<'a> = Self;
1766 #[inline(always)]
1767 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1768 *value
1769 }
1770 }
1771
1772 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for WlanScanType {
1773 #[inline]
1774 unsafe fn encode(
1775 self,
1776 encoder: &mut fidl::encoding::Encoder<'_, D>,
1777 offset: usize,
1778 _depth: fidl::encoding::Depth,
1779 ) -> fidl::Result<()> {
1780 encoder.debug_check_bounds::<Self>(offset);
1781 encoder.write_num(self.into_primitive(), offset);
1782 Ok(())
1783 }
1784 }
1785
1786 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for WlanScanType {
1787 #[inline(always)]
1788 fn new_empty() -> Self {
1789 Self::unknown()
1790 }
1791
1792 #[inline]
1793 unsafe fn decode(
1794 &mut self,
1795 decoder: &mut fidl::encoding::Decoder<'_, D>,
1796 offset: usize,
1797 _depth: fidl::encoding::Depth,
1798 ) -> fidl::Result<()> {
1799 decoder.debug_check_bounds::<Self>(offset);
1800 let prim = decoder.read_num::<u8>(offset);
1801
1802 *self = Self::from_primitive_allow_unknown(prim);
1803 Ok(())
1804 }
1805 }
1806
1807 impl fidl::encoding::ValueTypeMarker for WlanFullmacChannelSwitchInfo {
1808 type Borrowed<'a> = &'a Self;
1809 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1810 value
1811 }
1812 }
1813
1814 unsafe impl fidl::encoding::TypeMarker for WlanFullmacChannelSwitchInfo {
1815 type Owned = Self;
1816
1817 #[inline(always)]
1818 fn inline_align(_context: fidl::encoding::Context) -> usize {
1819 1
1820 }
1821
1822 #[inline(always)]
1823 fn inline_size(_context: fidl::encoding::Context) -> usize {
1824 1
1825 }
1826 #[inline(always)]
1827 fn encode_is_copy() -> bool {
1828 true
1829 }
1830
1831 #[inline(always)]
1832 fn decode_is_copy() -> bool {
1833 true
1834 }
1835 }
1836
1837 unsafe impl<D: fidl::encoding::ResourceDialect>
1838 fidl::encoding::Encode<WlanFullmacChannelSwitchInfo, D> for &WlanFullmacChannelSwitchInfo
1839 {
1840 #[inline]
1841 unsafe fn encode(
1842 self,
1843 encoder: &mut fidl::encoding::Encoder<'_, D>,
1844 offset: usize,
1845 _depth: fidl::encoding::Depth,
1846 ) -> fidl::Result<()> {
1847 encoder.debug_check_bounds::<WlanFullmacChannelSwitchInfo>(offset);
1848 unsafe {
1849 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
1851 (buf_ptr as *mut WlanFullmacChannelSwitchInfo)
1852 .write_unaligned((self as *const WlanFullmacChannelSwitchInfo).read());
1853 }
1856 Ok(())
1857 }
1858 }
1859 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<u8, D>>
1860 fidl::encoding::Encode<WlanFullmacChannelSwitchInfo, D> for (T0,)
1861 {
1862 #[inline]
1863 unsafe fn encode(
1864 self,
1865 encoder: &mut fidl::encoding::Encoder<'_, D>,
1866 offset: usize,
1867 depth: fidl::encoding::Depth,
1868 ) -> fidl::Result<()> {
1869 encoder.debug_check_bounds::<WlanFullmacChannelSwitchInfo>(offset);
1870 self.0.encode(encoder, offset + 0, depth)?;
1874 Ok(())
1875 }
1876 }
1877
1878 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1879 for WlanFullmacChannelSwitchInfo
1880 {
1881 #[inline(always)]
1882 fn new_empty() -> Self {
1883 Self { new_channel: fidl::new_empty!(u8, D) }
1884 }
1885
1886 #[inline]
1887 unsafe fn decode(
1888 &mut self,
1889 decoder: &mut fidl::encoding::Decoder<'_, D>,
1890 offset: usize,
1891 _depth: fidl::encoding::Depth,
1892 ) -> fidl::Result<()> {
1893 decoder.debug_check_bounds::<Self>(offset);
1894 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
1895 unsafe {
1898 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 1);
1899 }
1900 Ok(())
1901 }
1902 }
1903
1904 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcOnChannelSwitchRequest {
1905 type Borrowed<'a> = &'a Self;
1906 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1907 value
1908 }
1909 }
1910
1911 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcOnChannelSwitchRequest {
1912 type Owned = Self;
1913
1914 #[inline(always)]
1915 fn inline_align(_context: fidl::encoding::Context) -> usize {
1916 1
1917 }
1918
1919 #[inline(always)]
1920 fn inline_size(_context: fidl::encoding::Context) -> usize {
1921 1
1922 }
1923 #[inline(always)]
1924 fn encode_is_copy() -> bool {
1925 true
1926 }
1927
1928 #[inline(always)]
1929 fn decode_is_copy() -> bool {
1930 true
1931 }
1932 }
1933
1934 unsafe impl<D: fidl::encoding::ResourceDialect>
1935 fidl::encoding::Encode<WlanFullmacImplIfcOnChannelSwitchRequest, D>
1936 for &WlanFullmacImplIfcOnChannelSwitchRequest
1937 {
1938 #[inline]
1939 unsafe fn encode(
1940 self,
1941 encoder: &mut fidl::encoding::Encoder<'_, D>,
1942 offset: usize,
1943 _depth: fidl::encoding::Depth,
1944 ) -> fidl::Result<()> {
1945 encoder.debug_check_bounds::<WlanFullmacImplIfcOnChannelSwitchRequest>(offset);
1946 unsafe {
1947 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
1949 (buf_ptr as *mut WlanFullmacImplIfcOnChannelSwitchRequest).write_unaligned(
1950 (self as *const WlanFullmacImplIfcOnChannelSwitchRequest).read(),
1951 );
1952 }
1955 Ok(())
1956 }
1957 }
1958 unsafe impl<
1959 D: fidl::encoding::ResourceDialect,
1960 T0: fidl::encoding::Encode<WlanFullmacChannelSwitchInfo, D>,
1961 > fidl::encoding::Encode<WlanFullmacImplIfcOnChannelSwitchRequest, D> for (T0,)
1962 {
1963 #[inline]
1964 unsafe fn encode(
1965 self,
1966 encoder: &mut fidl::encoding::Encoder<'_, D>,
1967 offset: usize,
1968 depth: fidl::encoding::Depth,
1969 ) -> fidl::Result<()> {
1970 encoder.debug_check_bounds::<WlanFullmacImplIfcOnChannelSwitchRequest>(offset);
1971 self.0.encode(encoder, offset + 0, depth)?;
1975 Ok(())
1976 }
1977 }
1978
1979 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1980 for WlanFullmacImplIfcOnChannelSwitchRequest
1981 {
1982 #[inline(always)]
1983 fn new_empty() -> Self {
1984 Self { ind: fidl::new_empty!(WlanFullmacChannelSwitchInfo, D) }
1985 }
1986
1987 #[inline]
1988 unsafe fn decode(
1989 &mut self,
1990 decoder: &mut fidl::encoding::Decoder<'_, D>,
1991 offset: usize,
1992 _depth: fidl::encoding::Depth,
1993 ) -> fidl::Result<()> {
1994 decoder.debug_check_bounds::<Self>(offset);
1995 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
1996 unsafe {
1999 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 1);
2000 }
2001 Ok(())
2002 }
2003 }
2004
2005 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcOnWmmStatusRespRequest {
2006 type Borrowed<'a> = &'a Self;
2007 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2008 value
2009 }
2010 }
2011
2012 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcOnWmmStatusRespRequest {
2013 type Owned = Self;
2014
2015 #[inline(always)]
2016 fn inline_align(_context: fidl::encoding::Context) -> usize {
2017 4
2018 }
2019
2020 #[inline(always)]
2021 fn inline_size(_context: fidl::encoding::Context) -> usize {
2022 40
2023 }
2024 }
2025
2026 unsafe impl<D: fidl::encoding::ResourceDialect>
2027 fidl::encoding::Encode<WlanFullmacImplIfcOnWmmStatusRespRequest, D>
2028 for &WlanFullmacImplIfcOnWmmStatusRespRequest
2029 {
2030 #[inline]
2031 unsafe fn encode(
2032 self,
2033 encoder: &mut fidl::encoding::Encoder<'_, D>,
2034 offset: usize,
2035 _depth: fidl::encoding::Depth,
2036 ) -> fidl::Result<()> {
2037 encoder.debug_check_bounds::<WlanFullmacImplIfcOnWmmStatusRespRequest>(offset);
2038 fidl::encoding::Encode::<WlanFullmacImplIfcOnWmmStatusRespRequest, D>::encode(
2040 (
2041 <i32 as fidl::encoding::ValueTypeMarker>::borrow(&self.status),
2042 <fidl_fuchsia_wlan_common__common::WlanWmmParameters as fidl::encoding::ValueTypeMarker>::borrow(&self.wmm_params),
2043 ),
2044 encoder, offset, _depth
2045 )
2046 }
2047 }
2048 unsafe impl<
2049 D: fidl::encoding::ResourceDialect,
2050 T0: fidl::encoding::Encode<i32, D>,
2051 T1: fidl::encoding::Encode<fidl_fuchsia_wlan_common__common::WlanWmmParameters, D>,
2052 > fidl::encoding::Encode<WlanFullmacImplIfcOnWmmStatusRespRequest, D> for (T0, T1)
2053 {
2054 #[inline]
2055 unsafe fn encode(
2056 self,
2057 encoder: &mut fidl::encoding::Encoder<'_, D>,
2058 offset: usize,
2059 depth: fidl::encoding::Depth,
2060 ) -> fidl::Result<()> {
2061 encoder.debug_check_bounds::<WlanFullmacImplIfcOnWmmStatusRespRequest>(offset);
2062 unsafe {
2065 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(36);
2066 (ptr as *mut u32).write_unaligned(0);
2067 }
2068 self.0.encode(encoder, offset + 0, depth)?;
2070 self.1.encode(encoder, offset + 4, depth)?;
2071 Ok(())
2072 }
2073 }
2074
2075 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2076 for WlanFullmacImplIfcOnWmmStatusRespRequest
2077 {
2078 #[inline(always)]
2079 fn new_empty() -> Self {
2080 Self {
2081 status: fidl::new_empty!(i32, D),
2082 wmm_params: fidl::new_empty!(
2083 fidl_fuchsia_wlan_common__common::WlanWmmParameters,
2084 D
2085 ),
2086 }
2087 }
2088
2089 #[inline]
2090 unsafe fn decode(
2091 &mut self,
2092 decoder: &mut fidl::encoding::Decoder<'_, D>,
2093 offset: usize,
2094 _depth: fidl::encoding::Depth,
2095 ) -> fidl::Result<()> {
2096 decoder.debug_check_bounds::<Self>(offset);
2097 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(36) };
2099 let padval = unsafe { (ptr as *const u32).read_unaligned() };
2100 let mask = 0xffff0000u32;
2101 let maskedval = padval & mask;
2102 if maskedval != 0 {
2103 return Err(fidl::Error::NonZeroPadding {
2104 padding_start: offset + 36 + ((mask as u64).trailing_zeros() / 8) as usize,
2105 });
2106 }
2107 fidl::decode!(i32, D, &mut self.status, decoder, offset + 0, _depth)?;
2108 fidl::decode!(
2109 fidl_fuchsia_wlan_common__common::WlanWmmParameters,
2110 D,
2111 &mut self.wmm_params,
2112 decoder,
2113 offset + 4,
2114 _depth
2115 )?;
2116 Ok(())
2117 }
2118 }
2119
2120 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcSaeFrameRxRequest {
2121 type Borrowed<'a> = &'a Self;
2122 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2123 value
2124 }
2125 }
2126
2127 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcSaeFrameRxRequest {
2128 type Owned = Self;
2129
2130 #[inline(always)]
2131 fn inline_align(_context: fidl::encoding::Context) -> usize {
2132 8
2133 }
2134
2135 #[inline(always)]
2136 fn inline_size(_context: fidl::encoding::Context) -> usize {
2137 16
2138 }
2139 }
2140
2141 unsafe impl<D: fidl::encoding::ResourceDialect>
2142 fidl::encoding::Encode<WlanFullmacImplIfcSaeFrameRxRequest, D>
2143 for &WlanFullmacImplIfcSaeFrameRxRequest
2144 {
2145 #[inline]
2146 unsafe fn encode(
2147 self,
2148 encoder: &mut fidl::encoding::Encoder<'_, D>,
2149 offset: usize,
2150 _depth: fidl::encoding::Depth,
2151 ) -> fidl::Result<()> {
2152 encoder.debug_check_bounds::<WlanFullmacImplIfcSaeFrameRxRequest>(offset);
2153 fidl::encoding::Encode::<WlanFullmacImplIfcSaeFrameRxRequest, D>::encode(
2155 (<SaeFrame as fidl::encoding::ValueTypeMarker>::borrow(&self.frame),),
2156 encoder,
2157 offset,
2158 _depth,
2159 )
2160 }
2161 }
2162 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<SaeFrame, D>>
2163 fidl::encoding::Encode<WlanFullmacImplIfcSaeFrameRxRequest, D> for (T0,)
2164 {
2165 #[inline]
2166 unsafe fn encode(
2167 self,
2168 encoder: &mut fidl::encoding::Encoder<'_, D>,
2169 offset: usize,
2170 depth: fidl::encoding::Depth,
2171 ) -> fidl::Result<()> {
2172 encoder.debug_check_bounds::<WlanFullmacImplIfcSaeFrameRxRequest>(offset);
2173 self.0.encode(encoder, offset + 0, depth)?;
2177 Ok(())
2178 }
2179 }
2180
2181 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2182 for WlanFullmacImplIfcSaeFrameRxRequest
2183 {
2184 #[inline(always)]
2185 fn new_empty() -> Self {
2186 Self { frame: fidl::new_empty!(SaeFrame, D) }
2187 }
2188
2189 #[inline]
2190 unsafe fn decode(
2191 &mut self,
2192 decoder: &mut fidl::encoding::Decoder<'_, D>,
2193 offset: usize,
2194 _depth: fidl::encoding::Depth,
2195 ) -> fidl::Result<()> {
2196 decoder.debug_check_bounds::<Self>(offset);
2197 fidl::decode!(SaeFrame, D, &mut self.frame, decoder, offset + 0, _depth)?;
2199 Ok(())
2200 }
2201 }
2202
2203 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcSignalReportRequest {
2204 type Borrowed<'a> = &'a Self;
2205 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2206 value
2207 }
2208 }
2209
2210 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcSignalReportRequest {
2211 type Owned = Self;
2212
2213 #[inline(always)]
2214 fn inline_align(_context: fidl::encoding::Context) -> usize {
2215 1
2216 }
2217
2218 #[inline(always)]
2219 fn inline_size(_context: fidl::encoding::Context) -> usize {
2220 2
2221 }
2222 #[inline(always)]
2223 fn encode_is_copy() -> bool {
2224 true
2225 }
2226
2227 #[inline(always)]
2228 fn decode_is_copy() -> bool {
2229 true
2230 }
2231 }
2232
2233 unsafe impl<D: fidl::encoding::ResourceDialect>
2234 fidl::encoding::Encode<WlanFullmacImplIfcSignalReportRequest, D>
2235 for &WlanFullmacImplIfcSignalReportRequest
2236 {
2237 #[inline]
2238 unsafe fn encode(
2239 self,
2240 encoder: &mut fidl::encoding::Encoder<'_, D>,
2241 offset: usize,
2242 _depth: fidl::encoding::Depth,
2243 ) -> fidl::Result<()> {
2244 encoder.debug_check_bounds::<WlanFullmacImplIfcSignalReportRequest>(offset);
2245 unsafe {
2246 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
2248 (buf_ptr as *mut WlanFullmacImplIfcSignalReportRequest)
2249 .write_unaligned((self as *const WlanFullmacImplIfcSignalReportRequest).read());
2250 }
2253 Ok(())
2254 }
2255 }
2256 unsafe impl<
2257 D: fidl::encoding::ResourceDialect,
2258 T0: fidl::encoding::Encode<WlanFullmacSignalReportIndication, D>,
2259 > fidl::encoding::Encode<WlanFullmacImplIfcSignalReportRequest, D> for (T0,)
2260 {
2261 #[inline]
2262 unsafe fn encode(
2263 self,
2264 encoder: &mut fidl::encoding::Encoder<'_, D>,
2265 offset: usize,
2266 depth: fidl::encoding::Depth,
2267 ) -> fidl::Result<()> {
2268 encoder.debug_check_bounds::<WlanFullmacImplIfcSignalReportRequest>(offset);
2269 self.0.encode(encoder, offset + 0, depth)?;
2273 Ok(())
2274 }
2275 }
2276
2277 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2278 for WlanFullmacImplIfcSignalReportRequest
2279 {
2280 #[inline(always)]
2281 fn new_empty() -> Self {
2282 Self { ind: fidl::new_empty!(WlanFullmacSignalReportIndication, D) }
2283 }
2284
2285 #[inline]
2286 unsafe fn decode(
2287 &mut self,
2288 decoder: &mut fidl::encoding::Decoder<'_, D>,
2289 offset: usize,
2290 _depth: fidl::encoding::Depth,
2291 ) -> fidl::Result<()> {
2292 decoder.debug_check_bounds::<Self>(offset);
2293 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
2294 unsafe {
2297 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 2);
2298 }
2299 Ok(())
2300 }
2301 }
2302
2303 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplSaeFrameTxRequest {
2304 type Borrowed<'a> = &'a Self;
2305 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2306 value
2307 }
2308 }
2309
2310 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplSaeFrameTxRequest {
2311 type Owned = Self;
2312
2313 #[inline(always)]
2314 fn inline_align(_context: fidl::encoding::Context) -> usize {
2315 8
2316 }
2317
2318 #[inline(always)]
2319 fn inline_size(_context: fidl::encoding::Context) -> usize {
2320 16
2321 }
2322 }
2323
2324 unsafe impl<D: fidl::encoding::ResourceDialect>
2325 fidl::encoding::Encode<WlanFullmacImplSaeFrameTxRequest, D>
2326 for &WlanFullmacImplSaeFrameTxRequest
2327 {
2328 #[inline]
2329 unsafe fn encode(
2330 self,
2331 encoder: &mut fidl::encoding::Encoder<'_, D>,
2332 offset: usize,
2333 _depth: fidl::encoding::Depth,
2334 ) -> fidl::Result<()> {
2335 encoder.debug_check_bounds::<WlanFullmacImplSaeFrameTxRequest>(offset);
2336 fidl::encoding::Encode::<WlanFullmacImplSaeFrameTxRequest, D>::encode(
2338 (<SaeFrame as fidl::encoding::ValueTypeMarker>::borrow(&self.frame),),
2339 encoder,
2340 offset,
2341 _depth,
2342 )
2343 }
2344 }
2345 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<SaeFrame, D>>
2346 fidl::encoding::Encode<WlanFullmacImplSaeFrameTxRequest, D> for (T0,)
2347 {
2348 #[inline]
2349 unsafe fn encode(
2350 self,
2351 encoder: &mut fidl::encoding::Encoder<'_, D>,
2352 offset: usize,
2353 depth: fidl::encoding::Depth,
2354 ) -> fidl::Result<()> {
2355 encoder.debug_check_bounds::<WlanFullmacImplSaeFrameTxRequest>(offset);
2356 self.0.encode(encoder, offset + 0, depth)?;
2360 Ok(())
2361 }
2362 }
2363
2364 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2365 for WlanFullmacImplSaeFrameTxRequest
2366 {
2367 #[inline(always)]
2368 fn new_empty() -> Self {
2369 Self { frame: fidl::new_empty!(SaeFrame, D) }
2370 }
2371
2372 #[inline]
2373 unsafe fn decode(
2374 &mut self,
2375 decoder: &mut fidl::encoding::Decoder<'_, D>,
2376 offset: usize,
2377 _depth: fidl::encoding::Depth,
2378 ) -> fidl::Result<()> {
2379 decoder.debug_check_bounds::<Self>(offset);
2380 fidl::decode!(SaeFrame, D, &mut self.frame, decoder, offset + 0, _depth)?;
2382 Ok(())
2383 }
2384 }
2385
2386 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplSetKeysResponse {
2387 type Borrowed<'a> = &'a Self;
2388 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2389 value
2390 }
2391 }
2392
2393 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplSetKeysResponse {
2394 type Owned = Self;
2395
2396 #[inline(always)]
2397 fn inline_align(_context: fidl::encoding::Context) -> usize {
2398 8
2399 }
2400
2401 #[inline(always)]
2402 fn inline_size(_context: fidl::encoding::Context) -> usize {
2403 16
2404 }
2405 }
2406
2407 unsafe impl<D: fidl::encoding::ResourceDialect>
2408 fidl::encoding::Encode<WlanFullmacImplSetKeysResponse, D>
2409 for &WlanFullmacImplSetKeysResponse
2410 {
2411 #[inline]
2412 unsafe fn encode(
2413 self,
2414 encoder: &mut fidl::encoding::Encoder<'_, D>,
2415 offset: usize,
2416 _depth: fidl::encoding::Depth,
2417 ) -> fidl::Result<()> {
2418 encoder.debug_check_bounds::<WlanFullmacImplSetKeysResponse>(offset);
2419 fidl::encoding::Encode::<WlanFullmacImplSetKeysResponse, D>::encode(
2421 (<WlanFullmacSetKeysResp as fidl::encoding::ValueTypeMarker>::borrow(&self.resp),),
2422 encoder,
2423 offset,
2424 _depth,
2425 )
2426 }
2427 }
2428 unsafe impl<
2429 D: fidl::encoding::ResourceDialect,
2430 T0: fidl::encoding::Encode<WlanFullmacSetKeysResp, D>,
2431 > fidl::encoding::Encode<WlanFullmacImplSetKeysResponse, D> for (T0,)
2432 {
2433 #[inline]
2434 unsafe fn encode(
2435 self,
2436 encoder: &mut fidl::encoding::Encoder<'_, D>,
2437 offset: usize,
2438 depth: fidl::encoding::Depth,
2439 ) -> fidl::Result<()> {
2440 encoder.debug_check_bounds::<WlanFullmacImplSetKeysResponse>(offset);
2441 self.0.encode(encoder, offset + 0, depth)?;
2445 Ok(())
2446 }
2447 }
2448
2449 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2450 for WlanFullmacImplSetKeysResponse
2451 {
2452 #[inline(always)]
2453 fn new_empty() -> Self {
2454 Self { resp: fidl::new_empty!(WlanFullmacSetKeysResp, D) }
2455 }
2456
2457 #[inline]
2458 unsafe fn decode(
2459 &mut self,
2460 decoder: &mut fidl::encoding::Decoder<'_, D>,
2461 offset: usize,
2462 _depth: fidl::encoding::Depth,
2463 ) -> fidl::Result<()> {
2464 decoder.debug_check_bounds::<Self>(offset);
2465 fidl::decode!(WlanFullmacSetKeysResp, D, &mut self.resp, decoder, offset + 0, _depth)?;
2467 Ok(())
2468 }
2469 }
2470
2471 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplSetMacAddressRequest {
2472 type Borrowed<'a> = &'a Self;
2473 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2474 value
2475 }
2476 }
2477
2478 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplSetMacAddressRequest {
2479 type Owned = Self;
2480
2481 #[inline(always)]
2482 fn inline_align(_context: fidl::encoding::Context) -> usize {
2483 1
2484 }
2485
2486 #[inline(always)]
2487 fn inline_size(_context: fidl::encoding::Context) -> usize {
2488 6
2489 }
2490 #[inline(always)]
2491 fn encode_is_copy() -> bool {
2492 true
2493 }
2494
2495 #[inline(always)]
2496 fn decode_is_copy() -> bool {
2497 true
2498 }
2499 }
2500
2501 unsafe impl<D: fidl::encoding::ResourceDialect>
2502 fidl::encoding::Encode<WlanFullmacImplSetMacAddressRequest, D>
2503 for &WlanFullmacImplSetMacAddressRequest
2504 {
2505 #[inline]
2506 unsafe fn encode(
2507 self,
2508 encoder: &mut fidl::encoding::Encoder<'_, D>,
2509 offset: usize,
2510 _depth: fidl::encoding::Depth,
2511 ) -> fidl::Result<()> {
2512 encoder.debug_check_bounds::<WlanFullmacImplSetMacAddressRequest>(offset);
2513 unsafe {
2514 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
2516 (buf_ptr as *mut WlanFullmacImplSetMacAddressRequest)
2517 .write_unaligned((self as *const WlanFullmacImplSetMacAddressRequest).read());
2518 }
2521 Ok(())
2522 }
2523 }
2524 unsafe impl<
2525 D: fidl::encoding::ResourceDialect,
2526 T0: fidl::encoding::Encode<fidl::encoding::Array<u8, 6>, D>,
2527 > fidl::encoding::Encode<WlanFullmacImplSetMacAddressRequest, D> for (T0,)
2528 {
2529 #[inline]
2530 unsafe fn encode(
2531 self,
2532 encoder: &mut fidl::encoding::Encoder<'_, D>,
2533 offset: usize,
2534 depth: fidl::encoding::Depth,
2535 ) -> fidl::Result<()> {
2536 encoder.debug_check_bounds::<WlanFullmacImplSetMacAddressRequest>(offset);
2537 self.0.encode(encoder, offset + 0, depth)?;
2541 Ok(())
2542 }
2543 }
2544
2545 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2546 for WlanFullmacImplSetMacAddressRequest
2547 {
2548 #[inline(always)]
2549 fn new_empty() -> Self {
2550 Self { mac_addr: fidl::new_empty!(fidl::encoding::Array<u8, 6>, D) }
2551 }
2552
2553 #[inline]
2554 unsafe fn decode(
2555 &mut self,
2556 decoder: &mut fidl::encoding::Decoder<'_, D>,
2557 offset: usize,
2558 _depth: fidl::encoding::Depth,
2559 ) -> fidl::Result<()> {
2560 decoder.debug_check_bounds::<Self>(offset);
2561 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
2562 unsafe {
2565 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 6);
2566 }
2567 Ok(())
2568 }
2569 }
2570
2571 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplGetIfaceHistogramStatsResponse {
2572 type Borrowed<'a> = &'a Self;
2573 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2574 value
2575 }
2576 }
2577
2578 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplGetIfaceHistogramStatsResponse {
2579 type Owned = Self;
2580
2581 #[inline(always)]
2582 fn inline_align(_context: fidl::encoding::Context) -> usize {
2583 8
2584 }
2585
2586 #[inline(always)]
2587 fn inline_size(_context: fidl::encoding::Context) -> usize {
2588 16
2589 }
2590 }
2591
2592 unsafe impl<D: fidl::encoding::ResourceDialect>
2593 fidl::encoding::Encode<WlanFullmacImplGetIfaceHistogramStatsResponse, D>
2594 for &WlanFullmacImplGetIfaceHistogramStatsResponse
2595 {
2596 #[inline]
2597 unsafe fn encode(
2598 self,
2599 encoder: &mut fidl::encoding::Encoder<'_, D>,
2600 offset: usize,
2601 _depth: fidl::encoding::Depth,
2602 ) -> fidl::Result<()> {
2603 encoder.debug_check_bounds::<WlanFullmacImplGetIfaceHistogramStatsResponse>(offset);
2604 fidl::encoding::Encode::<WlanFullmacImplGetIfaceHistogramStatsResponse, D>::encode(
2606 (
2607 <fidl_fuchsia_wlan_stats__common::IfaceHistogramStats as fidl::encoding::ValueTypeMarker>::borrow(&self.stats),
2608 ),
2609 encoder, offset, _depth
2610 )
2611 }
2612 }
2613 unsafe impl<
2614 D: fidl::encoding::ResourceDialect,
2615 T0: fidl::encoding::Encode<fidl_fuchsia_wlan_stats__common::IfaceHistogramStats, D>,
2616 > fidl::encoding::Encode<WlanFullmacImplGetIfaceHistogramStatsResponse, D> for (T0,)
2617 {
2618 #[inline]
2619 unsafe fn encode(
2620 self,
2621 encoder: &mut fidl::encoding::Encoder<'_, D>,
2622 offset: usize,
2623 depth: fidl::encoding::Depth,
2624 ) -> fidl::Result<()> {
2625 encoder.debug_check_bounds::<WlanFullmacImplGetIfaceHistogramStatsResponse>(offset);
2626 self.0.encode(encoder, offset + 0, depth)?;
2630 Ok(())
2631 }
2632 }
2633
2634 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2635 for WlanFullmacImplGetIfaceHistogramStatsResponse
2636 {
2637 #[inline(always)]
2638 fn new_empty() -> Self {
2639 Self {
2640 stats: fidl::new_empty!(fidl_fuchsia_wlan_stats__common::IfaceHistogramStats, D),
2641 }
2642 }
2643
2644 #[inline]
2645 unsafe fn decode(
2646 &mut self,
2647 decoder: &mut fidl::encoding::Decoder<'_, D>,
2648 offset: usize,
2649 _depth: fidl::encoding::Depth,
2650 ) -> fidl::Result<()> {
2651 decoder.debug_check_bounds::<Self>(offset);
2652 fidl::decode!(
2654 fidl_fuchsia_wlan_stats__common::IfaceHistogramStats,
2655 D,
2656 &mut self.stats,
2657 decoder,
2658 offset + 0,
2659 _depth
2660 )?;
2661 Ok(())
2662 }
2663 }
2664
2665 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplGetIfaceStatsResponse {
2666 type Borrowed<'a> = &'a Self;
2667 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2668 value
2669 }
2670 }
2671
2672 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplGetIfaceStatsResponse {
2673 type Owned = Self;
2674
2675 #[inline(always)]
2676 fn inline_align(_context: fidl::encoding::Context) -> usize {
2677 8
2678 }
2679
2680 #[inline(always)]
2681 fn inline_size(_context: fidl::encoding::Context) -> usize {
2682 16
2683 }
2684 }
2685
2686 unsafe impl<D: fidl::encoding::ResourceDialect>
2687 fidl::encoding::Encode<WlanFullmacImplGetIfaceStatsResponse, D>
2688 for &WlanFullmacImplGetIfaceStatsResponse
2689 {
2690 #[inline]
2691 unsafe fn encode(
2692 self,
2693 encoder: &mut fidl::encoding::Encoder<'_, D>,
2694 offset: usize,
2695 _depth: fidl::encoding::Depth,
2696 ) -> fidl::Result<()> {
2697 encoder.debug_check_bounds::<WlanFullmacImplGetIfaceStatsResponse>(offset);
2698 fidl::encoding::Encode::<WlanFullmacImplGetIfaceStatsResponse, D>::encode(
2700 (
2701 <fidl_fuchsia_wlan_stats__common::IfaceStats as fidl::encoding::ValueTypeMarker>::borrow(&self.stats),
2702 ),
2703 encoder, offset, _depth
2704 )
2705 }
2706 }
2707 unsafe impl<
2708 D: fidl::encoding::ResourceDialect,
2709 T0: fidl::encoding::Encode<fidl_fuchsia_wlan_stats__common::IfaceStats, D>,
2710 > fidl::encoding::Encode<WlanFullmacImplGetIfaceStatsResponse, D> for (T0,)
2711 {
2712 #[inline]
2713 unsafe fn encode(
2714 self,
2715 encoder: &mut fidl::encoding::Encoder<'_, D>,
2716 offset: usize,
2717 depth: fidl::encoding::Depth,
2718 ) -> fidl::Result<()> {
2719 encoder.debug_check_bounds::<WlanFullmacImplGetIfaceStatsResponse>(offset);
2720 self.0.encode(encoder, offset + 0, depth)?;
2724 Ok(())
2725 }
2726 }
2727
2728 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2729 for WlanFullmacImplGetIfaceStatsResponse
2730 {
2731 #[inline(always)]
2732 fn new_empty() -> Self {
2733 Self { stats: fidl::new_empty!(fidl_fuchsia_wlan_stats__common::IfaceStats, D) }
2734 }
2735
2736 #[inline]
2737 unsafe fn decode(
2738 &mut self,
2739 decoder: &mut fidl::encoding::Decoder<'_, D>,
2740 offset: usize,
2741 _depth: fidl::encoding::Depth,
2742 ) -> fidl::Result<()> {
2743 decoder.debug_check_bounds::<Self>(offset);
2744 fidl::decode!(
2746 fidl_fuchsia_wlan_stats__common::IfaceStats,
2747 D,
2748 &mut self.stats,
2749 decoder,
2750 offset + 0,
2751 _depth
2752 )?;
2753 Ok(())
2754 }
2755 }
2756
2757 impl fidl::encoding::ValueTypeMarker for WlanFullmacRssiStats {
2758 type Borrowed<'a> = &'a Self;
2759 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2760 value
2761 }
2762 }
2763
2764 unsafe impl fidl::encoding::TypeMarker for WlanFullmacRssiStats {
2765 type Owned = Self;
2766
2767 #[inline(always)]
2768 fn inline_align(_context: fidl::encoding::Context) -> usize {
2769 8
2770 }
2771
2772 #[inline(always)]
2773 fn inline_size(_context: fidl::encoding::Context) -> usize {
2774 16
2775 }
2776 }
2777
2778 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<WlanFullmacRssiStats, D>
2779 for &WlanFullmacRssiStats
2780 {
2781 #[inline]
2782 unsafe fn encode(
2783 self,
2784 encoder: &mut fidl::encoding::Encoder<'_, D>,
2785 offset: usize,
2786 _depth: fidl::encoding::Depth,
2787 ) -> fidl::Result<()> {
2788 encoder.debug_check_bounds::<WlanFullmacRssiStats>(offset);
2789 fidl::encoding::Encode::<WlanFullmacRssiStats, D>::encode(
2791 (
2792 <fidl::encoding::UnboundedVector<u64> as fidl::encoding::ValueTypeMarker>::borrow(&self.hist),
2793 ),
2794 encoder, offset, _depth
2795 )
2796 }
2797 }
2798 unsafe impl<
2799 D: fidl::encoding::ResourceDialect,
2800 T0: fidl::encoding::Encode<fidl::encoding::UnboundedVector<u64>, D>,
2801 > fidl::encoding::Encode<WlanFullmacRssiStats, D> for (T0,)
2802 {
2803 #[inline]
2804 unsafe fn encode(
2805 self,
2806 encoder: &mut fidl::encoding::Encoder<'_, D>,
2807 offset: usize,
2808 depth: fidl::encoding::Depth,
2809 ) -> fidl::Result<()> {
2810 encoder.debug_check_bounds::<WlanFullmacRssiStats>(offset);
2811 self.0.encode(encoder, offset + 0, depth)?;
2815 Ok(())
2816 }
2817 }
2818
2819 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for WlanFullmacRssiStats {
2820 #[inline(always)]
2821 fn new_empty() -> Self {
2822 Self { hist: fidl::new_empty!(fidl::encoding::UnboundedVector<u64>, D) }
2823 }
2824
2825 #[inline]
2826 unsafe fn decode(
2827 &mut self,
2828 decoder: &mut fidl::encoding::Decoder<'_, D>,
2829 offset: usize,
2830 _depth: fidl::encoding::Depth,
2831 ) -> fidl::Result<()> {
2832 decoder.debug_check_bounds::<Self>(offset);
2833 fidl::decode!(
2835 fidl::encoding::UnboundedVector<u64>,
2836 D,
2837 &mut self.hist,
2838 decoder,
2839 offset + 0,
2840 _depth
2841 )?;
2842 Ok(())
2843 }
2844 }
2845
2846 impl fidl::encoding::ValueTypeMarker for WlanFullmacSetKeysResp {
2847 type Borrowed<'a> = &'a Self;
2848 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2849 value
2850 }
2851 }
2852
2853 unsafe impl fidl::encoding::TypeMarker for WlanFullmacSetKeysResp {
2854 type Owned = Self;
2855
2856 #[inline(always)]
2857 fn inline_align(_context: fidl::encoding::Context) -> usize {
2858 8
2859 }
2860
2861 #[inline(always)]
2862 fn inline_size(_context: fidl::encoding::Context) -> usize {
2863 16
2864 }
2865 }
2866
2867 unsafe impl<D: fidl::encoding::ResourceDialect>
2868 fidl::encoding::Encode<WlanFullmacSetKeysResp, D> for &WlanFullmacSetKeysResp
2869 {
2870 #[inline]
2871 unsafe fn encode(
2872 self,
2873 encoder: &mut fidl::encoding::Encoder<'_, D>,
2874 offset: usize,
2875 _depth: fidl::encoding::Depth,
2876 ) -> fidl::Result<()> {
2877 encoder.debug_check_bounds::<WlanFullmacSetKeysResp>(offset);
2878 fidl::encoding::Encode::<WlanFullmacSetKeysResp, D>::encode(
2880 (<fidl::encoding::Vector<i32, 4> as fidl::encoding::ValueTypeMarker>::borrow(
2881 &self.statuslist,
2882 ),),
2883 encoder,
2884 offset,
2885 _depth,
2886 )
2887 }
2888 }
2889 unsafe impl<
2890 D: fidl::encoding::ResourceDialect,
2891 T0: fidl::encoding::Encode<fidl::encoding::Vector<i32, 4>, D>,
2892 > fidl::encoding::Encode<WlanFullmacSetKeysResp, D> for (T0,)
2893 {
2894 #[inline]
2895 unsafe fn encode(
2896 self,
2897 encoder: &mut fidl::encoding::Encoder<'_, D>,
2898 offset: usize,
2899 depth: fidl::encoding::Depth,
2900 ) -> fidl::Result<()> {
2901 encoder.debug_check_bounds::<WlanFullmacSetKeysResp>(offset);
2902 self.0.encode(encoder, offset + 0, depth)?;
2906 Ok(())
2907 }
2908 }
2909
2910 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2911 for WlanFullmacSetKeysResp
2912 {
2913 #[inline(always)]
2914 fn new_empty() -> Self {
2915 Self { statuslist: fidl::new_empty!(fidl::encoding::Vector<i32, 4>, D) }
2916 }
2917
2918 #[inline]
2919 unsafe fn decode(
2920 &mut self,
2921 decoder: &mut fidl::encoding::Decoder<'_, D>,
2922 offset: usize,
2923 _depth: fidl::encoding::Depth,
2924 ) -> fidl::Result<()> {
2925 decoder.debug_check_bounds::<Self>(offset);
2926 fidl::decode!(fidl::encoding::Vector<i32, 4>, D, &mut self.statuslist, decoder, offset + 0, _depth)?;
2928 Ok(())
2929 }
2930 }
2931
2932 impl fidl::encoding::ValueTypeMarker for WlanFullmacSignalReportIndication {
2933 type Borrowed<'a> = &'a Self;
2934 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2935 value
2936 }
2937 }
2938
2939 unsafe impl fidl::encoding::TypeMarker for WlanFullmacSignalReportIndication {
2940 type Owned = Self;
2941
2942 #[inline(always)]
2943 fn inline_align(_context: fidl::encoding::Context) -> usize {
2944 1
2945 }
2946
2947 #[inline(always)]
2948 fn inline_size(_context: fidl::encoding::Context) -> usize {
2949 2
2950 }
2951 #[inline(always)]
2952 fn encode_is_copy() -> bool {
2953 true
2954 }
2955
2956 #[inline(always)]
2957 fn decode_is_copy() -> bool {
2958 true
2959 }
2960 }
2961
2962 unsafe impl<D: fidl::encoding::ResourceDialect>
2963 fidl::encoding::Encode<WlanFullmacSignalReportIndication, D>
2964 for &WlanFullmacSignalReportIndication
2965 {
2966 #[inline]
2967 unsafe fn encode(
2968 self,
2969 encoder: &mut fidl::encoding::Encoder<'_, D>,
2970 offset: usize,
2971 _depth: fidl::encoding::Depth,
2972 ) -> fidl::Result<()> {
2973 encoder.debug_check_bounds::<WlanFullmacSignalReportIndication>(offset);
2974 unsafe {
2975 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
2977 (buf_ptr as *mut WlanFullmacSignalReportIndication)
2978 .write_unaligned((self as *const WlanFullmacSignalReportIndication).read());
2979 }
2982 Ok(())
2983 }
2984 }
2985 unsafe impl<
2986 D: fidl::encoding::ResourceDialect,
2987 T0: fidl::encoding::Encode<i8, D>,
2988 T1: fidl::encoding::Encode<i8, D>,
2989 > fidl::encoding::Encode<WlanFullmacSignalReportIndication, D> for (T0, T1)
2990 {
2991 #[inline]
2992 unsafe fn encode(
2993 self,
2994 encoder: &mut fidl::encoding::Encoder<'_, D>,
2995 offset: usize,
2996 depth: fidl::encoding::Depth,
2997 ) -> fidl::Result<()> {
2998 encoder.debug_check_bounds::<WlanFullmacSignalReportIndication>(offset);
2999 self.0.encode(encoder, offset + 0, depth)?;
3003 self.1.encode(encoder, offset + 1, depth)?;
3004 Ok(())
3005 }
3006 }
3007
3008 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
3009 for WlanFullmacSignalReportIndication
3010 {
3011 #[inline(always)]
3012 fn new_empty() -> Self {
3013 Self { rssi_dbm: fidl::new_empty!(i8, D), snr_db: fidl::new_empty!(i8, D) }
3014 }
3015
3016 #[inline]
3017 unsafe fn decode(
3018 &mut self,
3019 decoder: &mut fidl::encoding::Decoder<'_, D>,
3020 offset: usize,
3021 _depth: fidl::encoding::Depth,
3022 ) -> fidl::Result<()> {
3023 decoder.debug_check_bounds::<Self>(offset);
3024 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
3025 unsafe {
3028 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 2);
3029 }
3030 Ok(())
3031 }
3032 }
3033
3034 impl BandCapability {
3035 #[inline(always)]
3036 fn max_ordinal_present(&self) -> u64 {
3037 if let Some(_) = self.operating_channels {
3038 return 5;
3039 }
3040 if let Some(_) = self.vht_caps {
3041 return 4;
3042 }
3043 if let Some(_) = self.ht_caps {
3044 return 3;
3045 }
3046 if let Some(_) = self.basic_rates {
3047 return 2;
3048 }
3049 if let Some(_) = self.band {
3050 return 1;
3051 }
3052 0
3053 }
3054 }
3055
3056 impl fidl::encoding::ValueTypeMarker for BandCapability {
3057 type Borrowed<'a> = &'a Self;
3058 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3059 value
3060 }
3061 }
3062
3063 unsafe impl fidl::encoding::TypeMarker for BandCapability {
3064 type Owned = Self;
3065
3066 #[inline(always)]
3067 fn inline_align(_context: fidl::encoding::Context) -> usize {
3068 8
3069 }
3070
3071 #[inline(always)]
3072 fn inline_size(_context: fidl::encoding::Context) -> usize {
3073 16
3074 }
3075 }
3076
3077 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<BandCapability, D>
3078 for &BandCapability
3079 {
3080 unsafe fn encode(
3081 self,
3082 encoder: &mut fidl::encoding::Encoder<'_, D>,
3083 offset: usize,
3084 mut depth: fidl::encoding::Depth,
3085 ) -> fidl::Result<()> {
3086 encoder.debug_check_bounds::<BandCapability>(offset);
3087 let max_ordinal: u64 = self.max_ordinal_present();
3089 encoder.write_num(max_ordinal, offset);
3090 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
3091 if max_ordinal == 0 {
3093 return Ok(());
3094 }
3095 depth.increment()?;
3096 let envelope_size = 8;
3097 let bytes_len = max_ordinal as usize * envelope_size;
3098 #[allow(unused_variables)]
3099 let offset = encoder.out_of_line_offset(bytes_len);
3100 let mut _prev_end_offset: usize = 0;
3101 if 1 > max_ordinal {
3102 return Ok(());
3103 }
3104
3105 let cur_offset: usize = (1 - 1) * envelope_size;
3108
3109 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3111
3112 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_ieee80211__common::WlanBand, D>(
3117 self.band.as_ref().map(<fidl_fuchsia_wlan_ieee80211__common::WlanBand as fidl::encoding::ValueTypeMarker>::borrow),
3118 encoder, offset + cur_offset, depth
3119 )?;
3120
3121 _prev_end_offset = cur_offset + envelope_size;
3122 if 2 > max_ordinal {
3123 return Ok(());
3124 }
3125
3126 let cur_offset: usize = (2 - 1) * envelope_size;
3129
3130 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3132
3133 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<u8, 12>, D>(
3138 self.basic_rates.as_ref().map(
3139 <fidl::encoding::Vector<u8, 12> as fidl::encoding::ValueTypeMarker>::borrow,
3140 ),
3141 encoder,
3142 offset + cur_offset,
3143 depth,
3144 )?;
3145
3146 _prev_end_offset = cur_offset + envelope_size;
3147 if 3 > max_ordinal {
3148 return Ok(());
3149 }
3150
3151 let cur_offset: usize = (3 - 1) * envelope_size;
3154
3155 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3157
3158 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_ieee80211__common::HtCapabilities, D>(
3163 self.ht_caps.as_ref().map(<fidl_fuchsia_wlan_ieee80211__common::HtCapabilities as fidl::encoding::ValueTypeMarker>::borrow),
3164 encoder, offset + cur_offset, depth
3165 )?;
3166
3167 _prev_end_offset = cur_offset + envelope_size;
3168 if 4 > max_ordinal {
3169 return Ok(());
3170 }
3171
3172 let cur_offset: usize = (4 - 1) * envelope_size;
3175
3176 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3178
3179 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_ieee80211__common::VhtCapabilities, D>(
3184 self.vht_caps.as_ref().map(<fidl_fuchsia_wlan_ieee80211__common::VhtCapabilities as fidl::encoding::ValueTypeMarker>::borrow),
3185 encoder, offset + cur_offset, depth
3186 )?;
3187
3188 _prev_end_offset = cur_offset + envelope_size;
3189 if 5 > max_ordinal {
3190 return Ok(());
3191 }
3192
3193 let cur_offset: usize = (5 - 1) * envelope_size;
3196
3197 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3199
3200 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<u8, 256>, D>(
3205 self.operating_channels.as_ref().map(
3206 <fidl::encoding::Vector<u8, 256> as fidl::encoding::ValueTypeMarker>::borrow,
3207 ),
3208 encoder,
3209 offset + cur_offset,
3210 depth,
3211 )?;
3212
3213 _prev_end_offset = cur_offset + envelope_size;
3214
3215 Ok(())
3216 }
3217 }
3218
3219 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for BandCapability {
3220 #[inline(always)]
3221 fn new_empty() -> Self {
3222 Self::default()
3223 }
3224
3225 unsafe fn decode(
3226 &mut self,
3227 decoder: &mut fidl::encoding::Decoder<'_, D>,
3228 offset: usize,
3229 mut depth: fidl::encoding::Depth,
3230 ) -> fidl::Result<()> {
3231 decoder.debug_check_bounds::<Self>(offset);
3232 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
3233 None => return Err(fidl::Error::NotNullable),
3234 Some(len) => len,
3235 };
3236 if len == 0 {
3238 return Ok(());
3239 };
3240 depth.increment()?;
3241 let envelope_size = 8;
3242 let bytes_len = len * envelope_size;
3243 let offset = decoder.out_of_line_offset(bytes_len)?;
3244 let mut _next_ordinal_to_read = 0;
3246 let mut next_offset = offset;
3247 let end_offset = offset + bytes_len;
3248 _next_ordinal_to_read += 1;
3249 if next_offset >= end_offset {
3250 return Ok(());
3251 }
3252
3253 while _next_ordinal_to_read < 1 {
3255 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3256 _next_ordinal_to_read += 1;
3257 next_offset += envelope_size;
3258 }
3259
3260 let next_out_of_line = decoder.next_out_of_line();
3261 let handles_before = decoder.remaining_handles();
3262 if let Some((inlined, num_bytes, num_handles)) =
3263 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3264 {
3265 let member_inline_size = <fidl_fuchsia_wlan_ieee80211__common::WlanBand as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3266 if inlined != (member_inline_size <= 4) {
3267 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3268 }
3269 let inner_offset;
3270 let mut inner_depth = depth.clone();
3271 if inlined {
3272 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3273 inner_offset = next_offset;
3274 } else {
3275 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3276 inner_depth.increment()?;
3277 }
3278 let val_ref = self.band.get_or_insert_with(|| {
3279 fidl::new_empty!(fidl_fuchsia_wlan_ieee80211__common::WlanBand, D)
3280 });
3281 fidl::decode!(
3282 fidl_fuchsia_wlan_ieee80211__common::WlanBand,
3283 D,
3284 val_ref,
3285 decoder,
3286 inner_offset,
3287 inner_depth
3288 )?;
3289 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3290 {
3291 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3292 }
3293 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3294 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3295 }
3296 }
3297
3298 next_offset += envelope_size;
3299 _next_ordinal_to_read += 1;
3300 if next_offset >= end_offset {
3301 return Ok(());
3302 }
3303
3304 while _next_ordinal_to_read < 2 {
3306 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3307 _next_ordinal_to_read += 1;
3308 next_offset += envelope_size;
3309 }
3310
3311 let next_out_of_line = decoder.next_out_of_line();
3312 let handles_before = decoder.remaining_handles();
3313 if let Some((inlined, num_bytes, num_handles)) =
3314 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3315 {
3316 let member_inline_size =
3317 <fidl::encoding::Vector<u8, 12> as fidl::encoding::TypeMarker>::inline_size(
3318 decoder.context,
3319 );
3320 if inlined != (member_inline_size <= 4) {
3321 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3322 }
3323 let inner_offset;
3324 let mut inner_depth = depth.clone();
3325 if inlined {
3326 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3327 inner_offset = next_offset;
3328 } else {
3329 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3330 inner_depth.increment()?;
3331 }
3332 let val_ref = self
3333 .basic_rates
3334 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<u8, 12>, D));
3335 fidl::decode!(fidl::encoding::Vector<u8, 12>, D, val_ref, decoder, inner_offset, inner_depth)?;
3336 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3337 {
3338 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3339 }
3340 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3341 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3342 }
3343 }
3344
3345 next_offset += envelope_size;
3346 _next_ordinal_to_read += 1;
3347 if next_offset >= end_offset {
3348 return Ok(());
3349 }
3350
3351 while _next_ordinal_to_read < 3 {
3353 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3354 _next_ordinal_to_read += 1;
3355 next_offset += envelope_size;
3356 }
3357
3358 let next_out_of_line = decoder.next_out_of_line();
3359 let handles_before = decoder.remaining_handles();
3360 if let Some((inlined, num_bytes, num_handles)) =
3361 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3362 {
3363 let member_inline_size = <fidl_fuchsia_wlan_ieee80211__common::HtCapabilities as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3364 if inlined != (member_inline_size <= 4) {
3365 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3366 }
3367 let inner_offset;
3368 let mut inner_depth = depth.clone();
3369 if inlined {
3370 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3371 inner_offset = next_offset;
3372 } else {
3373 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3374 inner_depth.increment()?;
3375 }
3376 let val_ref = self.ht_caps.get_or_insert_with(|| {
3377 fidl::new_empty!(fidl_fuchsia_wlan_ieee80211__common::HtCapabilities, D)
3378 });
3379 fidl::decode!(
3380 fidl_fuchsia_wlan_ieee80211__common::HtCapabilities,
3381 D,
3382 val_ref,
3383 decoder,
3384 inner_offset,
3385 inner_depth
3386 )?;
3387 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3388 {
3389 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3390 }
3391 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3392 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3393 }
3394 }
3395
3396 next_offset += envelope_size;
3397 _next_ordinal_to_read += 1;
3398 if next_offset >= end_offset {
3399 return Ok(());
3400 }
3401
3402 while _next_ordinal_to_read < 4 {
3404 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3405 _next_ordinal_to_read += 1;
3406 next_offset += envelope_size;
3407 }
3408
3409 let next_out_of_line = decoder.next_out_of_line();
3410 let handles_before = decoder.remaining_handles();
3411 if let Some((inlined, num_bytes, num_handles)) =
3412 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3413 {
3414 let member_inline_size = <fidl_fuchsia_wlan_ieee80211__common::VhtCapabilities as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3415 if inlined != (member_inline_size <= 4) {
3416 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3417 }
3418 let inner_offset;
3419 let mut inner_depth = depth.clone();
3420 if inlined {
3421 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3422 inner_offset = next_offset;
3423 } else {
3424 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3425 inner_depth.increment()?;
3426 }
3427 let val_ref = self.vht_caps.get_or_insert_with(|| {
3428 fidl::new_empty!(fidl_fuchsia_wlan_ieee80211__common::VhtCapabilities, D)
3429 });
3430 fidl::decode!(
3431 fidl_fuchsia_wlan_ieee80211__common::VhtCapabilities,
3432 D,
3433 val_ref,
3434 decoder,
3435 inner_offset,
3436 inner_depth
3437 )?;
3438 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3439 {
3440 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3441 }
3442 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3443 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3444 }
3445 }
3446
3447 next_offset += envelope_size;
3448 _next_ordinal_to_read += 1;
3449 if next_offset >= end_offset {
3450 return Ok(());
3451 }
3452
3453 while _next_ordinal_to_read < 5 {
3455 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3456 _next_ordinal_to_read += 1;
3457 next_offset += envelope_size;
3458 }
3459
3460 let next_out_of_line = decoder.next_out_of_line();
3461 let handles_before = decoder.remaining_handles();
3462 if let Some((inlined, num_bytes, num_handles)) =
3463 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3464 {
3465 let member_inline_size =
3466 <fidl::encoding::Vector<u8, 256> as fidl::encoding::TypeMarker>::inline_size(
3467 decoder.context,
3468 );
3469 if inlined != (member_inline_size <= 4) {
3470 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3471 }
3472 let inner_offset;
3473 let mut inner_depth = depth.clone();
3474 if inlined {
3475 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3476 inner_offset = next_offset;
3477 } else {
3478 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3479 inner_depth.increment()?;
3480 }
3481 let val_ref = self
3482 .operating_channels
3483 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<u8, 256>, D));
3484 fidl::decode!(fidl::encoding::Vector<u8, 256>, D, val_ref, decoder, inner_offset, inner_depth)?;
3485 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3486 {
3487 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3488 }
3489 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3490 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3491 }
3492 }
3493
3494 next_offset += envelope_size;
3495
3496 while next_offset < end_offset {
3498 _next_ordinal_to_read += 1;
3499 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3500 next_offset += envelope_size;
3501 }
3502
3503 Ok(())
3504 }
3505 }
3506
3507 impl SaeFrame {
3508 #[inline(always)]
3509 fn max_ordinal_present(&self) -> u64 {
3510 if let Some(_) = self.sae_fields {
3511 return 4;
3512 }
3513 if let Some(_) = self.seq_num {
3514 return 3;
3515 }
3516 if let Some(_) = self.status_code {
3517 return 2;
3518 }
3519 if let Some(_) = self.peer_sta_address {
3520 return 1;
3521 }
3522 0
3523 }
3524 }
3525
3526 impl fidl::encoding::ValueTypeMarker for SaeFrame {
3527 type Borrowed<'a> = &'a Self;
3528 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3529 value
3530 }
3531 }
3532
3533 unsafe impl fidl::encoding::TypeMarker for SaeFrame {
3534 type Owned = Self;
3535
3536 #[inline(always)]
3537 fn inline_align(_context: fidl::encoding::Context) -> usize {
3538 8
3539 }
3540
3541 #[inline(always)]
3542 fn inline_size(_context: fidl::encoding::Context) -> usize {
3543 16
3544 }
3545 }
3546
3547 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<SaeFrame, D> for &SaeFrame {
3548 unsafe fn encode(
3549 self,
3550 encoder: &mut fidl::encoding::Encoder<'_, D>,
3551 offset: usize,
3552 mut depth: fidl::encoding::Depth,
3553 ) -> fidl::Result<()> {
3554 encoder.debug_check_bounds::<SaeFrame>(offset);
3555 let max_ordinal: u64 = self.max_ordinal_present();
3557 encoder.write_num(max_ordinal, offset);
3558 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
3559 if max_ordinal == 0 {
3561 return Ok(());
3562 }
3563 depth.increment()?;
3564 let envelope_size = 8;
3565 let bytes_len = max_ordinal as usize * envelope_size;
3566 #[allow(unused_variables)]
3567 let offset = encoder.out_of_line_offset(bytes_len);
3568 let mut _prev_end_offset: usize = 0;
3569 if 1 > max_ordinal {
3570 return Ok(());
3571 }
3572
3573 let cur_offset: usize = (1 - 1) * envelope_size;
3576
3577 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3579
3580 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
3585 self.peer_sta_address
3586 .as_ref()
3587 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
3588 encoder,
3589 offset + cur_offset,
3590 depth,
3591 )?;
3592
3593 _prev_end_offset = cur_offset + envelope_size;
3594 if 2 > max_ordinal {
3595 return Ok(());
3596 }
3597
3598 let cur_offset: usize = (2 - 1) * envelope_size;
3601
3602 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3604
3605 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_ieee80211__common::StatusCode, D>(
3610 self.status_code.as_ref().map(<fidl_fuchsia_wlan_ieee80211__common::StatusCode as fidl::encoding::ValueTypeMarker>::borrow),
3611 encoder, offset + cur_offset, depth
3612 )?;
3613
3614 _prev_end_offset = cur_offset + envelope_size;
3615 if 3 > max_ordinal {
3616 return Ok(());
3617 }
3618
3619 let cur_offset: usize = (3 - 1) * envelope_size;
3622
3623 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3625
3626 fidl::encoding::encode_in_envelope_optional::<u16, D>(
3631 self.seq_num.as_ref().map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
3632 encoder,
3633 offset + cur_offset,
3634 depth,
3635 )?;
3636
3637 _prev_end_offset = cur_offset + envelope_size;
3638 if 4 > max_ordinal {
3639 return Ok(());
3640 }
3641
3642 let cur_offset: usize = (4 - 1) * envelope_size;
3645
3646 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3648
3649 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<u8>, D>(
3654 self.sae_fields.as_ref().map(<fidl::encoding::UnboundedVector<u8> as fidl::encoding::ValueTypeMarker>::borrow),
3655 encoder, offset + cur_offset, depth
3656 )?;
3657
3658 _prev_end_offset = cur_offset + envelope_size;
3659
3660 Ok(())
3661 }
3662 }
3663
3664 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for SaeFrame {
3665 #[inline(always)]
3666 fn new_empty() -> Self {
3667 Self::default()
3668 }
3669
3670 unsafe fn decode(
3671 &mut self,
3672 decoder: &mut fidl::encoding::Decoder<'_, D>,
3673 offset: usize,
3674 mut depth: fidl::encoding::Depth,
3675 ) -> fidl::Result<()> {
3676 decoder.debug_check_bounds::<Self>(offset);
3677 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
3678 None => return Err(fidl::Error::NotNullable),
3679 Some(len) => len,
3680 };
3681 if len == 0 {
3683 return Ok(());
3684 };
3685 depth.increment()?;
3686 let envelope_size = 8;
3687 let bytes_len = len * envelope_size;
3688 let offset = decoder.out_of_line_offset(bytes_len)?;
3689 let mut _next_ordinal_to_read = 0;
3691 let mut next_offset = offset;
3692 let end_offset = offset + bytes_len;
3693 _next_ordinal_to_read += 1;
3694 if next_offset >= end_offset {
3695 return Ok(());
3696 }
3697
3698 while _next_ordinal_to_read < 1 {
3700 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3701 _next_ordinal_to_read += 1;
3702 next_offset += envelope_size;
3703 }
3704
3705 let next_out_of_line = decoder.next_out_of_line();
3706 let handles_before = decoder.remaining_handles();
3707 if let Some((inlined, num_bytes, num_handles)) =
3708 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3709 {
3710 let member_inline_size =
3711 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
3712 decoder.context,
3713 );
3714 if inlined != (member_inline_size <= 4) {
3715 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3716 }
3717 let inner_offset;
3718 let mut inner_depth = depth.clone();
3719 if inlined {
3720 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3721 inner_offset = next_offset;
3722 } else {
3723 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3724 inner_depth.increment()?;
3725 }
3726 let val_ref = self
3727 .peer_sta_address
3728 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
3729 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
3730 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3731 {
3732 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3733 }
3734 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3735 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3736 }
3737 }
3738
3739 next_offset += envelope_size;
3740 _next_ordinal_to_read += 1;
3741 if next_offset >= end_offset {
3742 return Ok(());
3743 }
3744
3745 while _next_ordinal_to_read < 2 {
3747 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3748 _next_ordinal_to_read += 1;
3749 next_offset += envelope_size;
3750 }
3751
3752 let next_out_of_line = decoder.next_out_of_line();
3753 let handles_before = decoder.remaining_handles();
3754 if let Some((inlined, num_bytes, num_handles)) =
3755 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3756 {
3757 let member_inline_size = <fidl_fuchsia_wlan_ieee80211__common::StatusCode as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3758 if inlined != (member_inline_size <= 4) {
3759 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3760 }
3761 let inner_offset;
3762 let mut inner_depth = depth.clone();
3763 if inlined {
3764 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3765 inner_offset = next_offset;
3766 } else {
3767 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3768 inner_depth.increment()?;
3769 }
3770 let val_ref = self.status_code.get_or_insert_with(|| {
3771 fidl::new_empty!(fidl_fuchsia_wlan_ieee80211__common::StatusCode, D)
3772 });
3773 fidl::decode!(
3774 fidl_fuchsia_wlan_ieee80211__common::StatusCode,
3775 D,
3776 val_ref,
3777 decoder,
3778 inner_offset,
3779 inner_depth
3780 )?;
3781 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3782 {
3783 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3784 }
3785 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3786 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3787 }
3788 }
3789
3790 next_offset += envelope_size;
3791 _next_ordinal_to_read += 1;
3792 if next_offset >= end_offset {
3793 return Ok(());
3794 }
3795
3796 while _next_ordinal_to_read < 3 {
3798 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3799 _next_ordinal_to_read += 1;
3800 next_offset += envelope_size;
3801 }
3802
3803 let next_out_of_line = decoder.next_out_of_line();
3804 let handles_before = decoder.remaining_handles();
3805 if let Some((inlined, num_bytes, num_handles)) =
3806 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3807 {
3808 let member_inline_size =
3809 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3810 if inlined != (member_inline_size <= 4) {
3811 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3812 }
3813 let inner_offset;
3814 let mut inner_depth = depth.clone();
3815 if inlined {
3816 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3817 inner_offset = next_offset;
3818 } else {
3819 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3820 inner_depth.increment()?;
3821 }
3822 let val_ref = self.seq_num.get_or_insert_with(|| fidl::new_empty!(u16, D));
3823 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
3824 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3825 {
3826 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3827 }
3828 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3829 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3830 }
3831 }
3832
3833 next_offset += envelope_size;
3834 _next_ordinal_to_read += 1;
3835 if next_offset >= end_offset {
3836 return Ok(());
3837 }
3838
3839 while _next_ordinal_to_read < 4 {
3841 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3842 _next_ordinal_to_read += 1;
3843 next_offset += envelope_size;
3844 }
3845
3846 let next_out_of_line = decoder.next_out_of_line();
3847 let handles_before = decoder.remaining_handles();
3848 if let Some((inlined, num_bytes, num_handles)) =
3849 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3850 {
3851 let member_inline_size = <fidl::encoding::UnboundedVector<u8> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3852 if inlined != (member_inline_size <= 4) {
3853 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3854 }
3855 let inner_offset;
3856 let mut inner_depth = depth.clone();
3857 if inlined {
3858 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3859 inner_offset = next_offset;
3860 } else {
3861 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3862 inner_depth.increment()?;
3863 }
3864 let val_ref = self.sae_fields.get_or_insert_with(|| {
3865 fidl::new_empty!(fidl::encoding::UnboundedVector<u8>, D)
3866 });
3867 fidl::decode!(
3868 fidl::encoding::UnboundedVector<u8>,
3869 D,
3870 val_ref,
3871 decoder,
3872 inner_offset,
3873 inner_depth
3874 )?;
3875 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3876 {
3877 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3878 }
3879 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3880 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3881 }
3882 }
3883
3884 next_offset += envelope_size;
3885
3886 while next_offset < end_offset {
3888 _next_ordinal_to_read += 1;
3889 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3890 next_offset += envelope_size;
3891 }
3892
3893 Ok(())
3894 }
3895 }
3896
3897 impl WlanFullmacImplAssocRespRequest {
3898 #[inline(always)]
3899 fn max_ordinal_present(&self) -> u64 {
3900 if let Some(_) = self.association_id {
3901 return 3;
3902 }
3903 if let Some(_) = self.result_code {
3904 return 2;
3905 }
3906 if let Some(_) = self.peer_sta_address {
3907 return 1;
3908 }
3909 0
3910 }
3911 }
3912
3913 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplAssocRespRequest {
3914 type Borrowed<'a> = &'a Self;
3915 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3916 value
3917 }
3918 }
3919
3920 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplAssocRespRequest {
3921 type Owned = Self;
3922
3923 #[inline(always)]
3924 fn inline_align(_context: fidl::encoding::Context) -> usize {
3925 8
3926 }
3927
3928 #[inline(always)]
3929 fn inline_size(_context: fidl::encoding::Context) -> usize {
3930 16
3931 }
3932 }
3933
3934 unsafe impl<D: fidl::encoding::ResourceDialect>
3935 fidl::encoding::Encode<WlanFullmacImplAssocRespRequest, D>
3936 for &WlanFullmacImplAssocRespRequest
3937 {
3938 unsafe fn encode(
3939 self,
3940 encoder: &mut fidl::encoding::Encoder<'_, D>,
3941 offset: usize,
3942 mut depth: fidl::encoding::Depth,
3943 ) -> fidl::Result<()> {
3944 encoder.debug_check_bounds::<WlanFullmacImplAssocRespRequest>(offset);
3945 let max_ordinal: u64 = self.max_ordinal_present();
3947 encoder.write_num(max_ordinal, offset);
3948 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
3949 if max_ordinal == 0 {
3951 return Ok(());
3952 }
3953 depth.increment()?;
3954 let envelope_size = 8;
3955 let bytes_len = max_ordinal as usize * envelope_size;
3956 #[allow(unused_variables)]
3957 let offset = encoder.out_of_line_offset(bytes_len);
3958 let mut _prev_end_offset: usize = 0;
3959 if 1 > max_ordinal {
3960 return Ok(());
3961 }
3962
3963 let cur_offset: usize = (1 - 1) * envelope_size;
3966
3967 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3969
3970 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
3975 self.peer_sta_address
3976 .as_ref()
3977 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
3978 encoder,
3979 offset + cur_offset,
3980 depth,
3981 )?;
3982
3983 _prev_end_offset = cur_offset + envelope_size;
3984 if 2 > max_ordinal {
3985 return Ok(());
3986 }
3987
3988 let cur_offset: usize = (2 - 1) * envelope_size;
3991
3992 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3994
3995 fidl::encoding::encode_in_envelope_optional::<WlanAssocResult, D>(
4000 self.result_code
4001 .as_ref()
4002 .map(<WlanAssocResult as fidl::encoding::ValueTypeMarker>::borrow),
4003 encoder,
4004 offset + cur_offset,
4005 depth,
4006 )?;
4007
4008 _prev_end_offset = cur_offset + envelope_size;
4009 if 3 > max_ordinal {
4010 return Ok(());
4011 }
4012
4013 let cur_offset: usize = (3 - 1) * envelope_size;
4016
4017 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4019
4020 fidl::encoding::encode_in_envelope_optional::<u16, D>(
4025 self.association_id.as_ref().map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
4026 encoder,
4027 offset + cur_offset,
4028 depth,
4029 )?;
4030
4031 _prev_end_offset = cur_offset + envelope_size;
4032
4033 Ok(())
4034 }
4035 }
4036
4037 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
4038 for WlanFullmacImplAssocRespRequest
4039 {
4040 #[inline(always)]
4041 fn new_empty() -> Self {
4042 Self::default()
4043 }
4044
4045 unsafe fn decode(
4046 &mut self,
4047 decoder: &mut fidl::encoding::Decoder<'_, D>,
4048 offset: usize,
4049 mut depth: fidl::encoding::Depth,
4050 ) -> fidl::Result<()> {
4051 decoder.debug_check_bounds::<Self>(offset);
4052 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
4053 None => return Err(fidl::Error::NotNullable),
4054 Some(len) => len,
4055 };
4056 if len == 0 {
4058 return Ok(());
4059 };
4060 depth.increment()?;
4061 let envelope_size = 8;
4062 let bytes_len = len * envelope_size;
4063 let offset = decoder.out_of_line_offset(bytes_len)?;
4064 let mut _next_ordinal_to_read = 0;
4066 let mut next_offset = offset;
4067 let end_offset = offset + bytes_len;
4068 _next_ordinal_to_read += 1;
4069 if next_offset >= end_offset {
4070 return Ok(());
4071 }
4072
4073 while _next_ordinal_to_read < 1 {
4075 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4076 _next_ordinal_to_read += 1;
4077 next_offset += envelope_size;
4078 }
4079
4080 let next_out_of_line = decoder.next_out_of_line();
4081 let handles_before = decoder.remaining_handles();
4082 if let Some((inlined, num_bytes, num_handles)) =
4083 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4084 {
4085 let member_inline_size =
4086 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
4087 decoder.context,
4088 );
4089 if inlined != (member_inline_size <= 4) {
4090 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4091 }
4092 let inner_offset;
4093 let mut inner_depth = depth.clone();
4094 if inlined {
4095 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4096 inner_offset = next_offset;
4097 } else {
4098 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4099 inner_depth.increment()?;
4100 }
4101 let val_ref = self
4102 .peer_sta_address
4103 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
4104 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
4105 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4106 {
4107 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4108 }
4109 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4110 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4111 }
4112 }
4113
4114 next_offset += envelope_size;
4115 _next_ordinal_to_read += 1;
4116 if next_offset >= end_offset {
4117 return Ok(());
4118 }
4119
4120 while _next_ordinal_to_read < 2 {
4122 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4123 _next_ordinal_to_read += 1;
4124 next_offset += envelope_size;
4125 }
4126
4127 let next_out_of_line = decoder.next_out_of_line();
4128 let handles_before = decoder.remaining_handles();
4129 if let Some((inlined, num_bytes, num_handles)) =
4130 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4131 {
4132 let member_inline_size =
4133 <WlanAssocResult as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4134 if inlined != (member_inline_size <= 4) {
4135 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4136 }
4137 let inner_offset;
4138 let mut inner_depth = depth.clone();
4139 if inlined {
4140 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4141 inner_offset = next_offset;
4142 } else {
4143 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4144 inner_depth.increment()?;
4145 }
4146 let val_ref =
4147 self.result_code.get_or_insert_with(|| fidl::new_empty!(WlanAssocResult, D));
4148 fidl::decode!(WlanAssocResult, D, val_ref, decoder, inner_offset, inner_depth)?;
4149 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4150 {
4151 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4152 }
4153 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4154 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4155 }
4156 }
4157
4158 next_offset += envelope_size;
4159 _next_ordinal_to_read += 1;
4160 if next_offset >= end_offset {
4161 return Ok(());
4162 }
4163
4164 while _next_ordinal_to_read < 3 {
4166 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4167 _next_ordinal_to_read += 1;
4168 next_offset += envelope_size;
4169 }
4170
4171 let next_out_of_line = decoder.next_out_of_line();
4172 let handles_before = decoder.remaining_handles();
4173 if let Some((inlined, num_bytes, num_handles)) =
4174 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4175 {
4176 let member_inline_size =
4177 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4178 if inlined != (member_inline_size <= 4) {
4179 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4180 }
4181 let inner_offset;
4182 let mut inner_depth = depth.clone();
4183 if inlined {
4184 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4185 inner_offset = next_offset;
4186 } else {
4187 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4188 inner_depth.increment()?;
4189 }
4190 let val_ref = self.association_id.get_or_insert_with(|| fidl::new_empty!(u16, D));
4191 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
4192 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4193 {
4194 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4195 }
4196 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4197 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4198 }
4199 }
4200
4201 next_offset += envelope_size;
4202
4203 while next_offset < end_offset {
4205 _next_ordinal_to_read += 1;
4206 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4207 next_offset += envelope_size;
4208 }
4209
4210 Ok(())
4211 }
4212 }
4213
4214 impl WlanFullmacImplAuthRespRequest {
4215 #[inline(always)]
4216 fn max_ordinal_present(&self) -> u64 {
4217 if let Some(_) = self.result_code {
4218 return 2;
4219 }
4220 if let Some(_) = self.peer_sta_address {
4221 return 1;
4222 }
4223 0
4224 }
4225 }
4226
4227 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplAuthRespRequest {
4228 type Borrowed<'a> = &'a Self;
4229 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4230 value
4231 }
4232 }
4233
4234 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplAuthRespRequest {
4235 type Owned = Self;
4236
4237 #[inline(always)]
4238 fn inline_align(_context: fidl::encoding::Context) -> usize {
4239 8
4240 }
4241
4242 #[inline(always)]
4243 fn inline_size(_context: fidl::encoding::Context) -> usize {
4244 16
4245 }
4246 }
4247
4248 unsafe impl<D: fidl::encoding::ResourceDialect>
4249 fidl::encoding::Encode<WlanFullmacImplAuthRespRequest, D>
4250 for &WlanFullmacImplAuthRespRequest
4251 {
4252 unsafe fn encode(
4253 self,
4254 encoder: &mut fidl::encoding::Encoder<'_, D>,
4255 offset: usize,
4256 mut depth: fidl::encoding::Depth,
4257 ) -> fidl::Result<()> {
4258 encoder.debug_check_bounds::<WlanFullmacImplAuthRespRequest>(offset);
4259 let max_ordinal: u64 = self.max_ordinal_present();
4261 encoder.write_num(max_ordinal, offset);
4262 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
4263 if max_ordinal == 0 {
4265 return Ok(());
4266 }
4267 depth.increment()?;
4268 let envelope_size = 8;
4269 let bytes_len = max_ordinal as usize * envelope_size;
4270 #[allow(unused_variables)]
4271 let offset = encoder.out_of_line_offset(bytes_len);
4272 let mut _prev_end_offset: usize = 0;
4273 if 1 > max_ordinal {
4274 return Ok(());
4275 }
4276
4277 let cur_offset: usize = (1 - 1) * envelope_size;
4280
4281 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4283
4284 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
4289 self.peer_sta_address
4290 .as_ref()
4291 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
4292 encoder,
4293 offset + cur_offset,
4294 depth,
4295 )?;
4296
4297 _prev_end_offset = cur_offset + envelope_size;
4298 if 2 > max_ordinal {
4299 return Ok(());
4300 }
4301
4302 let cur_offset: usize = (2 - 1) * envelope_size;
4305
4306 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4308
4309 fidl::encoding::encode_in_envelope_optional::<WlanAuthResult, D>(
4314 self.result_code
4315 .as_ref()
4316 .map(<WlanAuthResult as fidl::encoding::ValueTypeMarker>::borrow),
4317 encoder,
4318 offset + cur_offset,
4319 depth,
4320 )?;
4321
4322 _prev_end_offset = cur_offset + envelope_size;
4323
4324 Ok(())
4325 }
4326 }
4327
4328 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
4329 for WlanFullmacImplAuthRespRequest
4330 {
4331 #[inline(always)]
4332 fn new_empty() -> Self {
4333 Self::default()
4334 }
4335
4336 unsafe fn decode(
4337 &mut self,
4338 decoder: &mut fidl::encoding::Decoder<'_, D>,
4339 offset: usize,
4340 mut depth: fidl::encoding::Depth,
4341 ) -> fidl::Result<()> {
4342 decoder.debug_check_bounds::<Self>(offset);
4343 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
4344 None => return Err(fidl::Error::NotNullable),
4345 Some(len) => len,
4346 };
4347 if len == 0 {
4349 return Ok(());
4350 };
4351 depth.increment()?;
4352 let envelope_size = 8;
4353 let bytes_len = len * envelope_size;
4354 let offset = decoder.out_of_line_offset(bytes_len)?;
4355 let mut _next_ordinal_to_read = 0;
4357 let mut next_offset = offset;
4358 let end_offset = offset + bytes_len;
4359 _next_ordinal_to_read += 1;
4360 if next_offset >= end_offset {
4361 return Ok(());
4362 }
4363
4364 while _next_ordinal_to_read < 1 {
4366 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4367 _next_ordinal_to_read += 1;
4368 next_offset += envelope_size;
4369 }
4370
4371 let next_out_of_line = decoder.next_out_of_line();
4372 let handles_before = decoder.remaining_handles();
4373 if let Some((inlined, num_bytes, num_handles)) =
4374 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4375 {
4376 let member_inline_size =
4377 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
4378 decoder.context,
4379 );
4380 if inlined != (member_inline_size <= 4) {
4381 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4382 }
4383 let inner_offset;
4384 let mut inner_depth = depth.clone();
4385 if inlined {
4386 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4387 inner_offset = next_offset;
4388 } else {
4389 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4390 inner_depth.increment()?;
4391 }
4392 let val_ref = self
4393 .peer_sta_address
4394 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
4395 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
4396 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4397 {
4398 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4399 }
4400 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4401 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4402 }
4403 }
4404
4405 next_offset += envelope_size;
4406 _next_ordinal_to_read += 1;
4407 if next_offset >= end_offset {
4408 return Ok(());
4409 }
4410
4411 while _next_ordinal_to_read < 2 {
4413 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4414 _next_ordinal_to_read += 1;
4415 next_offset += envelope_size;
4416 }
4417
4418 let next_out_of_line = decoder.next_out_of_line();
4419 let handles_before = decoder.remaining_handles();
4420 if let Some((inlined, num_bytes, num_handles)) =
4421 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4422 {
4423 let member_inline_size =
4424 <WlanAuthResult as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4425 if inlined != (member_inline_size <= 4) {
4426 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4427 }
4428 let inner_offset;
4429 let mut inner_depth = depth.clone();
4430 if inlined {
4431 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4432 inner_offset = next_offset;
4433 } else {
4434 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4435 inner_depth.increment()?;
4436 }
4437 let val_ref =
4438 self.result_code.get_or_insert_with(|| fidl::new_empty!(WlanAuthResult, D));
4439 fidl::decode!(WlanAuthResult, D, val_ref, decoder, inner_offset, inner_depth)?;
4440 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4441 {
4442 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4443 }
4444 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4445 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4446 }
4447 }
4448
4449 next_offset += envelope_size;
4450
4451 while next_offset < end_offset {
4453 _next_ordinal_to_read += 1;
4454 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4455 next_offset += envelope_size;
4456 }
4457
4458 Ok(())
4459 }
4460 }
4461
4462 impl WlanFullmacImplConnectRequest {
4463 #[inline(always)]
4464 fn max_ordinal_present(&self) -> u64 {
4465 if let Some(_) = self.wep_key_desc {
4466 return 7;
4467 }
4468 if let Some(_) = self.security_ie {
4469 return 6;
4470 }
4471 if let Some(_) = self.wep_key {
4472 return 5;
4473 }
4474 if let Some(_) = self.sae_password {
4475 return 4;
4476 }
4477 if let Some(_) = self.auth_type {
4478 return 3;
4479 }
4480 if let Some(_) = self.connect_failure_timeout {
4481 return 2;
4482 }
4483 if let Some(_) = self.selected_bss {
4484 return 1;
4485 }
4486 0
4487 }
4488 }
4489
4490 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplConnectRequest {
4491 type Borrowed<'a> = &'a Self;
4492 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4493 value
4494 }
4495 }
4496
4497 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplConnectRequest {
4498 type Owned = Self;
4499
4500 #[inline(always)]
4501 fn inline_align(_context: fidl::encoding::Context) -> usize {
4502 8
4503 }
4504
4505 #[inline(always)]
4506 fn inline_size(_context: fidl::encoding::Context) -> usize {
4507 16
4508 }
4509 }
4510
4511 unsafe impl<D: fidl::encoding::ResourceDialect>
4512 fidl::encoding::Encode<WlanFullmacImplConnectRequest, D>
4513 for &WlanFullmacImplConnectRequest
4514 {
4515 unsafe fn encode(
4516 self,
4517 encoder: &mut fidl::encoding::Encoder<'_, D>,
4518 offset: usize,
4519 mut depth: fidl::encoding::Depth,
4520 ) -> fidl::Result<()> {
4521 encoder.debug_check_bounds::<WlanFullmacImplConnectRequest>(offset);
4522 let max_ordinal: u64 = self.max_ordinal_present();
4524 encoder.write_num(max_ordinal, offset);
4525 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
4526 if max_ordinal == 0 {
4528 return Ok(());
4529 }
4530 depth.increment()?;
4531 let envelope_size = 8;
4532 let bytes_len = max_ordinal as usize * envelope_size;
4533 #[allow(unused_variables)]
4534 let offset = encoder.out_of_line_offset(bytes_len);
4535 let mut _prev_end_offset: usize = 0;
4536 if 1 > max_ordinal {
4537 return Ok(());
4538 }
4539
4540 let cur_offset: usize = (1 - 1) * envelope_size;
4543
4544 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4546
4547 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_common__common::BssDescription, D>(
4552 self.selected_bss.as_ref().map(<fidl_fuchsia_wlan_common__common::BssDescription as fidl::encoding::ValueTypeMarker>::borrow),
4553 encoder, offset + cur_offset, depth
4554 )?;
4555
4556 _prev_end_offset = cur_offset + envelope_size;
4557 if 2 > max_ordinal {
4558 return Ok(());
4559 }
4560
4561 let cur_offset: usize = (2 - 1) * envelope_size;
4564
4565 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4567
4568 fidl::encoding::encode_in_envelope_optional::<u32, D>(
4573 self.connect_failure_timeout
4574 .as_ref()
4575 .map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
4576 encoder,
4577 offset + cur_offset,
4578 depth,
4579 )?;
4580
4581 _prev_end_offset = cur_offset + envelope_size;
4582 if 3 > max_ordinal {
4583 return Ok(());
4584 }
4585
4586 let cur_offset: usize = (3 - 1) * envelope_size;
4589
4590 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4592
4593 fidl::encoding::encode_in_envelope_optional::<WlanAuthType, D>(
4598 self.auth_type
4599 .as_ref()
4600 .map(<WlanAuthType as fidl::encoding::ValueTypeMarker>::borrow),
4601 encoder,
4602 offset + cur_offset,
4603 depth,
4604 )?;
4605
4606 _prev_end_offset = cur_offset + envelope_size;
4607 if 4 > max_ordinal {
4608 return Ok(());
4609 }
4610
4611 let cur_offset: usize = (4 - 1) * envelope_size;
4614
4615 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4617
4618 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<u8>, D>(
4623 self.sae_password.as_ref().map(<fidl::encoding::UnboundedVector<u8> as fidl::encoding::ValueTypeMarker>::borrow),
4624 encoder, offset + cur_offset, depth
4625 )?;
4626
4627 _prev_end_offset = cur_offset + envelope_size;
4628 if 5 > max_ordinal {
4629 return Ok(());
4630 }
4631
4632 let cur_offset: usize = (5 - 1) * envelope_size;
4635
4636 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4638
4639 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_common__common::WlanKeyConfig, D>(
4644 self.wep_key.as_ref().map(<fidl_fuchsia_wlan_common__common::WlanKeyConfig as fidl::encoding::ValueTypeMarker>::borrow),
4645 encoder, offset + cur_offset, depth
4646 )?;
4647
4648 _prev_end_offset = cur_offset + envelope_size;
4649 if 6 > max_ordinal {
4650 return Ok(());
4651 }
4652
4653 let cur_offset: usize = (6 - 1) * envelope_size;
4656
4657 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4659
4660 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<u8, 257>, D>(
4665 self.security_ie.as_ref().map(
4666 <fidl::encoding::Vector<u8, 257> as fidl::encoding::ValueTypeMarker>::borrow,
4667 ),
4668 encoder,
4669 offset + cur_offset,
4670 depth,
4671 )?;
4672
4673 _prev_end_offset = cur_offset + envelope_size;
4674 if 7 > max_ordinal {
4675 return Ok(());
4676 }
4677
4678 let cur_offset: usize = (7 - 1) * envelope_size;
4681
4682 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4684
4685 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_ieee80211__common::SetKeyDescriptor, D>(
4690 self.wep_key_desc.as_ref().map(<fidl_fuchsia_wlan_ieee80211__common::SetKeyDescriptor as fidl::encoding::ValueTypeMarker>::borrow),
4691 encoder, offset + cur_offset, depth
4692 )?;
4693
4694 _prev_end_offset = cur_offset + envelope_size;
4695
4696 Ok(())
4697 }
4698 }
4699
4700 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
4701 for WlanFullmacImplConnectRequest
4702 {
4703 #[inline(always)]
4704 fn new_empty() -> Self {
4705 Self::default()
4706 }
4707
4708 unsafe fn decode(
4709 &mut self,
4710 decoder: &mut fidl::encoding::Decoder<'_, D>,
4711 offset: usize,
4712 mut depth: fidl::encoding::Depth,
4713 ) -> fidl::Result<()> {
4714 decoder.debug_check_bounds::<Self>(offset);
4715 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
4716 None => return Err(fidl::Error::NotNullable),
4717 Some(len) => len,
4718 };
4719 if len == 0 {
4721 return Ok(());
4722 };
4723 depth.increment()?;
4724 let envelope_size = 8;
4725 let bytes_len = len * envelope_size;
4726 let offset = decoder.out_of_line_offset(bytes_len)?;
4727 let mut _next_ordinal_to_read = 0;
4729 let mut next_offset = offset;
4730 let end_offset = offset + bytes_len;
4731 _next_ordinal_to_read += 1;
4732 if next_offset >= end_offset {
4733 return Ok(());
4734 }
4735
4736 while _next_ordinal_to_read < 1 {
4738 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4739 _next_ordinal_to_read += 1;
4740 next_offset += envelope_size;
4741 }
4742
4743 let next_out_of_line = decoder.next_out_of_line();
4744 let handles_before = decoder.remaining_handles();
4745 if let Some((inlined, num_bytes, num_handles)) =
4746 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4747 {
4748 let member_inline_size = <fidl_fuchsia_wlan_common__common::BssDescription as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4749 if inlined != (member_inline_size <= 4) {
4750 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4751 }
4752 let inner_offset;
4753 let mut inner_depth = depth.clone();
4754 if inlined {
4755 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4756 inner_offset = next_offset;
4757 } else {
4758 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4759 inner_depth.increment()?;
4760 }
4761 let val_ref = self.selected_bss.get_or_insert_with(|| {
4762 fidl::new_empty!(fidl_fuchsia_wlan_common__common::BssDescription, D)
4763 });
4764 fidl::decode!(
4765 fidl_fuchsia_wlan_common__common::BssDescription,
4766 D,
4767 val_ref,
4768 decoder,
4769 inner_offset,
4770 inner_depth
4771 )?;
4772 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4773 {
4774 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4775 }
4776 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4777 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4778 }
4779 }
4780
4781 next_offset += envelope_size;
4782 _next_ordinal_to_read += 1;
4783 if next_offset >= end_offset {
4784 return Ok(());
4785 }
4786
4787 while _next_ordinal_to_read < 2 {
4789 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4790 _next_ordinal_to_read += 1;
4791 next_offset += envelope_size;
4792 }
4793
4794 let next_out_of_line = decoder.next_out_of_line();
4795 let handles_before = decoder.remaining_handles();
4796 if let Some((inlined, num_bytes, num_handles)) =
4797 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4798 {
4799 let member_inline_size =
4800 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4801 if inlined != (member_inline_size <= 4) {
4802 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4803 }
4804 let inner_offset;
4805 let mut inner_depth = depth.clone();
4806 if inlined {
4807 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4808 inner_offset = next_offset;
4809 } else {
4810 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4811 inner_depth.increment()?;
4812 }
4813 let val_ref =
4814 self.connect_failure_timeout.get_or_insert_with(|| fidl::new_empty!(u32, D));
4815 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
4816 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4817 {
4818 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4819 }
4820 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4821 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4822 }
4823 }
4824
4825 next_offset += envelope_size;
4826 _next_ordinal_to_read += 1;
4827 if next_offset >= end_offset {
4828 return Ok(());
4829 }
4830
4831 while _next_ordinal_to_read < 3 {
4833 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4834 _next_ordinal_to_read += 1;
4835 next_offset += envelope_size;
4836 }
4837
4838 let next_out_of_line = decoder.next_out_of_line();
4839 let handles_before = decoder.remaining_handles();
4840 if let Some((inlined, num_bytes, num_handles)) =
4841 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4842 {
4843 let member_inline_size =
4844 <WlanAuthType as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4845 if inlined != (member_inline_size <= 4) {
4846 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4847 }
4848 let inner_offset;
4849 let mut inner_depth = depth.clone();
4850 if inlined {
4851 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4852 inner_offset = next_offset;
4853 } else {
4854 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4855 inner_depth.increment()?;
4856 }
4857 let val_ref =
4858 self.auth_type.get_or_insert_with(|| fidl::new_empty!(WlanAuthType, D));
4859 fidl::decode!(WlanAuthType, D, val_ref, decoder, inner_offset, inner_depth)?;
4860 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4861 {
4862 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4863 }
4864 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4865 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4866 }
4867 }
4868
4869 next_offset += envelope_size;
4870 _next_ordinal_to_read += 1;
4871 if next_offset >= end_offset {
4872 return Ok(());
4873 }
4874
4875 while _next_ordinal_to_read < 4 {
4877 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4878 _next_ordinal_to_read += 1;
4879 next_offset += envelope_size;
4880 }
4881
4882 let next_out_of_line = decoder.next_out_of_line();
4883 let handles_before = decoder.remaining_handles();
4884 if let Some((inlined, num_bytes, num_handles)) =
4885 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4886 {
4887 let member_inline_size = <fidl::encoding::UnboundedVector<u8> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4888 if inlined != (member_inline_size <= 4) {
4889 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4890 }
4891 let inner_offset;
4892 let mut inner_depth = depth.clone();
4893 if inlined {
4894 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4895 inner_offset = next_offset;
4896 } else {
4897 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4898 inner_depth.increment()?;
4899 }
4900 let val_ref = self.sae_password.get_or_insert_with(|| {
4901 fidl::new_empty!(fidl::encoding::UnboundedVector<u8>, D)
4902 });
4903 fidl::decode!(
4904 fidl::encoding::UnboundedVector<u8>,
4905 D,
4906 val_ref,
4907 decoder,
4908 inner_offset,
4909 inner_depth
4910 )?;
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 < 5 {
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 = <fidl_fuchsia_wlan_common__common::WlanKeyConfig as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4939 if inlined != (member_inline_size <= 4) {
4940 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4941 }
4942 let inner_offset;
4943 let mut inner_depth = depth.clone();
4944 if inlined {
4945 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4946 inner_offset = next_offset;
4947 } else {
4948 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4949 inner_depth.increment()?;
4950 }
4951 let val_ref = self.wep_key.get_or_insert_with(|| {
4952 fidl::new_empty!(fidl_fuchsia_wlan_common__common::WlanKeyConfig, D)
4953 });
4954 fidl::decode!(
4955 fidl_fuchsia_wlan_common__common::WlanKeyConfig,
4956 D,
4957 val_ref,
4958 decoder,
4959 inner_offset,
4960 inner_depth
4961 )?;
4962 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4963 {
4964 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4965 }
4966 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4967 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4968 }
4969 }
4970
4971 next_offset += envelope_size;
4972 _next_ordinal_to_read += 1;
4973 if next_offset >= end_offset {
4974 return Ok(());
4975 }
4976
4977 while _next_ordinal_to_read < 6 {
4979 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4980 _next_ordinal_to_read += 1;
4981 next_offset += envelope_size;
4982 }
4983
4984 let next_out_of_line = decoder.next_out_of_line();
4985 let handles_before = decoder.remaining_handles();
4986 if let Some((inlined, num_bytes, num_handles)) =
4987 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4988 {
4989 let member_inline_size =
4990 <fidl::encoding::Vector<u8, 257> as fidl::encoding::TypeMarker>::inline_size(
4991 decoder.context,
4992 );
4993 if inlined != (member_inline_size <= 4) {
4994 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4995 }
4996 let inner_offset;
4997 let mut inner_depth = depth.clone();
4998 if inlined {
4999 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5000 inner_offset = next_offset;
5001 } else {
5002 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5003 inner_depth.increment()?;
5004 }
5005 let val_ref = self
5006 .security_ie
5007 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<u8, 257>, D));
5008 fidl::decode!(fidl::encoding::Vector<u8, 257>, D, val_ref, decoder, inner_offset, inner_depth)?;
5009 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5010 {
5011 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5012 }
5013 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5014 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5015 }
5016 }
5017
5018 next_offset += envelope_size;
5019 _next_ordinal_to_read += 1;
5020 if next_offset >= end_offset {
5021 return Ok(());
5022 }
5023
5024 while _next_ordinal_to_read < 7 {
5026 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5027 _next_ordinal_to_read += 1;
5028 next_offset += envelope_size;
5029 }
5030
5031 let next_out_of_line = decoder.next_out_of_line();
5032 let handles_before = decoder.remaining_handles();
5033 if let Some((inlined, num_bytes, num_handles)) =
5034 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5035 {
5036 let member_inline_size = <fidl_fuchsia_wlan_ieee80211__common::SetKeyDescriptor as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5037 if inlined != (member_inline_size <= 4) {
5038 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5039 }
5040 let inner_offset;
5041 let mut inner_depth = depth.clone();
5042 if inlined {
5043 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5044 inner_offset = next_offset;
5045 } else {
5046 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5047 inner_depth.increment()?;
5048 }
5049 let val_ref = self.wep_key_desc.get_or_insert_with(|| {
5050 fidl::new_empty!(fidl_fuchsia_wlan_ieee80211__common::SetKeyDescriptor, D)
5051 });
5052 fidl::decode!(
5053 fidl_fuchsia_wlan_ieee80211__common::SetKeyDescriptor,
5054 D,
5055 val_ref,
5056 decoder,
5057 inner_offset,
5058 inner_depth
5059 )?;
5060 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5061 {
5062 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5063 }
5064 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5065 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5066 }
5067 }
5068
5069 next_offset += envelope_size;
5070
5071 while next_offset < end_offset {
5073 _next_ordinal_to_read += 1;
5074 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5075 next_offset += envelope_size;
5076 }
5077
5078 Ok(())
5079 }
5080 }
5081
5082 impl WlanFullmacImplDeauthRequest {
5083 #[inline(always)]
5084 fn max_ordinal_present(&self) -> u64 {
5085 if let Some(_) = self.reason_code {
5086 return 2;
5087 }
5088 if let Some(_) = self.peer_sta_address {
5089 return 1;
5090 }
5091 0
5092 }
5093 }
5094
5095 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplDeauthRequest {
5096 type Borrowed<'a> = &'a Self;
5097 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
5098 value
5099 }
5100 }
5101
5102 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplDeauthRequest {
5103 type Owned = Self;
5104
5105 #[inline(always)]
5106 fn inline_align(_context: fidl::encoding::Context) -> usize {
5107 8
5108 }
5109
5110 #[inline(always)]
5111 fn inline_size(_context: fidl::encoding::Context) -> usize {
5112 16
5113 }
5114 }
5115
5116 unsafe impl<D: fidl::encoding::ResourceDialect>
5117 fidl::encoding::Encode<WlanFullmacImplDeauthRequest, D> for &WlanFullmacImplDeauthRequest
5118 {
5119 unsafe fn encode(
5120 self,
5121 encoder: &mut fidl::encoding::Encoder<'_, D>,
5122 offset: usize,
5123 mut depth: fidl::encoding::Depth,
5124 ) -> fidl::Result<()> {
5125 encoder.debug_check_bounds::<WlanFullmacImplDeauthRequest>(offset);
5126 let max_ordinal: u64 = self.max_ordinal_present();
5128 encoder.write_num(max_ordinal, offset);
5129 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
5130 if max_ordinal == 0 {
5132 return Ok(());
5133 }
5134 depth.increment()?;
5135 let envelope_size = 8;
5136 let bytes_len = max_ordinal as usize * envelope_size;
5137 #[allow(unused_variables)]
5138 let offset = encoder.out_of_line_offset(bytes_len);
5139 let mut _prev_end_offset: usize = 0;
5140 if 1 > max_ordinal {
5141 return Ok(());
5142 }
5143
5144 let cur_offset: usize = (1 - 1) * envelope_size;
5147
5148 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5150
5151 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
5156 self.peer_sta_address
5157 .as_ref()
5158 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
5159 encoder,
5160 offset + cur_offset,
5161 depth,
5162 )?;
5163
5164 _prev_end_offset = cur_offset + envelope_size;
5165 if 2 > max_ordinal {
5166 return Ok(());
5167 }
5168
5169 let cur_offset: usize = (2 - 1) * envelope_size;
5172
5173 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5175
5176 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_ieee80211__common::ReasonCode, D>(
5181 self.reason_code.as_ref().map(<fidl_fuchsia_wlan_ieee80211__common::ReasonCode as fidl::encoding::ValueTypeMarker>::borrow),
5182 encoder, offset + cur_offset, depth
5183 )?;
5184
5185 _prev_end_offset = cur_offset + envelope_size;
5186
5187 Ok(())
5188 }
5189 }
5190
5191 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
5192 for WlanFullmacImplDeauthRequest
5193 {
5194 #[inline(always)]
5195 fn new_empty() -> Self {
5196 Self::default()
5197 }
5198
5199 unsafe fn decode(
5200 &mut self,
5201 decoder: &mut fidl::encoding::Decoder<'_, D>,
5202 offset: usize,
5203 mut depth: fidl::encoding::Depth,
5204 ) -> fidl::Result<()> {
5205 decoder.debug_check_bounds::<Self>(offset);
5206 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
5207 None => return Err(fidl::Error::NotNullable),
5208 Some(len) => len,
5209 };
5210 if len == 0 {
5212 return Ok(());
5213 };
5214 depth.increment()?;
5215 let envelope_size = 8;
5216 let bytes_len = len * envelope_size;
5217 let offset = decoder.out_of_line_offset(bytes_len)?;
5218 let mut _next_ordinal_to_read = 0;
5220 let mut next_offset = offset;
5221 let end_offset = offset + bytes_len;
5222 _next_ordinal_to_read += 1;
5223 if next_offset >= end_offset {
5224 return Ok(());
5225 }
5226
5227 while _next_ordinal_to_read < 1 {
5229 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5230 _next_ordinal_to_read += 1;
5231 next_offset += envelope_size;
5232 }
5233
5234 let next_out_of_line = decoder.next_out_of_line();
5235 let handles_before = decoder.remaining_handles();
5236 if let Some((inlined, num_bytes, num_handles)) =
5237 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5238 {
5239 let member_inline_size =
5240 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
5241 decoder.context,
5242 );
5243 if inlined != (member_inline_size <= 4) {
5244 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5245 }
5246 let inner_offset;
5247 let mut inner_depth = depth.clone();
5248 if inlined {
5249 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5250 inner_offset = next_offset;
5251 } else {
5252 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5253 inner_depth.increment()?;
5254 }
5255 let val_ref = self
5256 .peer_sta_address
5257 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
5258 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
5259 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5260 {
5261 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5262 }
5263 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5264 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5265 }
5266 }
5267
5268 next_offset += envelope_size;
5269 _next_ordinal_to_read += 1;
5270 if next_offset >= end_offset {
5271 return Ok(());
5272 }
5273
5274 while _next_ordinal_to_read < 2 {
5276 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5277 _next_ordinal_to_read += 1;
5278 next_offset += envelope_size;
5279 }
5280
5281 let next_out_of_line = decoder.next_out_of_line();
5282 let handles_before = decoder.remaining_handles();
5283 if let Some((inlined, num_bytes, num_handles)) =
5284 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5285 {
5286 let member_inline_size = <fidl_fuchsia_wlan_ieee80211__common::ReasonCode as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5287 if inlined != (member_inline_size <= 4) {
5288 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5289 }
5290 let inner_offset;
5291 let mut inner_depth = depth.clone();
5292 if inlined {
5293 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5294 inner_offset = next_offset;
5295 } else {
5296 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5297 inner_depth.increment()?;
5298 }
5299 let val_ref = self.reason_code.get_or_insert_with(|| {
5300 fidl::new_empty!(fidl_fuchsia_wlan_ieee80211__common::ReasonCode, D)
5301 });
5302 fidl::decode!(
5303 fidl_fuchsia_wlan_ieee80211__common::ReasonCode,
5304 D,
5305 val_ref,
5306 decoder,
5307 inner_offset,
5308 inner_depth
5309 )?;
5310 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5311 {
5312 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5313 }
5314 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5315 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5316 }
5317 }
5318
5319 next_offset += envelope_size;
5320
5321 while next_offset < end_offset {
5323 _next_ordinal_to_read += 1;
5324 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5325 next_offset += envelope_size;
5326 }
5327
5328 Ok(())
5329 }
5330 }
5331
5332 impl WlanFullmacImplDisassocRequest {
5333 #[inline(always)]
5334 fn max_ordinal_present(&self) -> u64 {
5335 if let Some(_) = self.reason_code {
5336 return 2;
5337 }
5338 if let Some(_) = self.peer_sta_address {
5339 return 1;
5340 }
5341 0
5342 }
5343 }
5344
5345 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplDisassocRequest {
5346 type Borrowed<'a> = &'a Self;
5347 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
5348 value
5349 }
5350 }
5351
5352 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplDisassocRequest {
5353 type Owned = Self;
5354
5355 #[inline(always)]
5356 fn inline_align(_context: fidl::encoding::Context) -> usize {
5357 8
5358 }
5359
5360 #[inline(always)]
5361 fn inline_size(_context: fidl::encoding::Context) -> usize {
5362 16
5363 }
5364 }
5365
5366 unsafe impl<D: fidl::encoding::ResourceDialect>
5367 fidl::encoding::Encode<WlanFullmacImplDisassocRequest, D>
5368 for &WlanFullmacImplDisassocRequest
5369 {
5370 unsafe fn encode(
5371 self,
5372 encoder: &mut fidl::encoding::Encoder<'_, D>,
5373 offset: usize,
5374 mut depth: fidl::encoding::Depth,
5375 ) -> fidl::Result<()> {
5376 encoder.debug_check_bounds::<WlanFullmacImplDisassocRequest>(offset);
5377 let max_ordinal: u64 = self.max_ordinal_present();
5379 encoder.write_num(max_ordinal, offset);
5380 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
5381 if max_ordinal == 0 {
5383 return Ok(());
5384 }
5385 depth.increment()?;
5386 let envelope_size = 8;
5387 let bytes_len = max_ordinal as usize * envelope_size;
5388 #[allow(unused_variables)]
5389 let offset = encoder.out_of_line_offset(bytes_len);
5390 let mut _prev_end_offset: usize = 0;
5391 if 1 > max_ordinal {
5392 return Ok(());
5393 }
5394
5395 let cur_offset: usize = (1 - 1) * envelope_size;
5398
5399 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5401
5402 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
5407 self.peer_sta_address
5408 .as_ref()
5409 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
5410 encoder,
5411 offset + cur_offset,
5412 depth,
5413 )?;
5414
5415 _prev_end_offset = cur_offset + envelope_size;
5416 if 2 > max_ordinal {
5417 return Ok(());
5418 }
5419
5420 let cur_offset: usize = (2 - 1) * envelope_size;
5423
5424 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5426
5427 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_ieee80211__common::ReasonCode, D>(
5432 self.reason_code.as_ref().map(<fidl_fuchsia_wlan_ieee80211__common::ReasonCode as fidl::encoding::ValueTypeMarker>::borrow),
5433 encoder, offset + cur_offset, depth
5434 )?;
5435
5436 _prev_end_offset = cur_offset + envelope_size;
5437
5438 Ok(())
5439 }
5440 }
5441
5442 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
5443 for WlanFullmacImplDisassocRequest
5444 {
5445 #[inline(always)]
5446 fn new_empty() -> Self {
5447 Self::default()
5448 }
5449
5450 unsafe fn decode(
5451 &mut self,
5452 decoder: &mut fidl::encoding::Decoder<'_, D>,
5453 offset: usize,
5454 mut depth: fidl::encoding::Depth,
5455 ) -> fidl::Result<()> {
5456 decoder.debug_check_bounds::<Self>(offset);
5457 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
5458 None => return Err(fidl::Error::NotNullable),
5459 Some(len) => len,
5460 };
5461 if len == 0 {
5463 return Ok(());
5464 };
5465 depth.increment()?;
5466 let envelope_size = 8;
5467 let bytes_len = len * envelope_size;
5468 let offset = decoder.out_of_line_offset(bytes_len)?;
5469 let mut _next_ordinal_to_read = 0;
5471 let mut next_offset = offset;
5472 let end_offset = offset + bytes_len;
5473 _next_ordinal_to_read += 1;
5474 if next_offset >= end_offset {
5475 return Ok(());
5476 }
5477
5478 while _next_ordinal_to_read < 1 {
5480 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5481 _next_ordinal_to_read += 1;
5482 next_offset += envelope_size;
5483 }
5484
5485 let next_out_of_line = decoder.next_out_of_line();
5486 let handles_before = decoder.remaining_handles();
5487 if let Some((inlined, num_bytes, num_handles)) =
5488 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5489 {
5490 let member_inline_size =
5491 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
5492 decoder.context,
5493 );
5494 if inlined != (member_inline_size <= 4) {
5495 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5496 }
5497 let inner_offset;
5498 let mut inner_depth = depth.clone();
5499 if inlined {
5500 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5501 inner_offset = next_offset;
5502 } else {
5503 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5504 inner_depth.increment()?;
5505 }
5506 let val_ref = self
5507 .peer_sta_address
5508 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
5509 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
5510 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5511 {
5512 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5513 }
5514 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5515 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5516 }
5517 }
5518
5519 next_offset += envelope_size;
5520 _next_ordinal_to_read += 1;
5521 if next_offset >= end_offset {
5522 return Ok(());
5523 }
5524
5525 while _next_ordinal_to_read < 2 {
5527 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5528 _next_ordinal_to_read += 1;
5529 next_offset += envelope_size;
5530 }
5531
5532 let next_out_of_line = decoder.next_out_of_line();
5533 let handles_before = decoder.remaining_handles();
5534 if let Some((inlined, num_bytes, num_handles)) =
5535 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5536 {
5537 let member_inline_size = <fidl_fuchsia_wlan_ieee80211__common::ReasonCode as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5538 if inlined != (member_inline_size <= 4) {
5539 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5540 }
5541 let inner_offset;
5542 let mut inner_depth = depth.clone();
5543 if inlined {
5544 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5545 inner_offset = next_offset;
5546 } else {
5547 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5548 inner_depth.increment()?;
5549 }
5550 let val_ref = self.reason_code.get_or_insert_with(|| {
5551 fidl::new_empty!(fidl_fuchsia_wlan_ieee80211__common::ReasonCode, D)
5552 });
5553 fidl::decode!(
5554 fidl_fuchsia_wlan_ieee80211__common::ReasonCode,
5555 D,
5556 val_ref,
5557 decoder,
5558 inner_offset,
5559 inner_depth
5560 )?;
5561 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5562 {
5563 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5564 }
5565 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5566 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5567 }
5568 }
5569
5570 next_offset += envelope_size;
5571
5572 while next_offset < end_offset {
5574 _next_ordinal_to_read += 1;
5575 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5576 next_offset += envelope_size;
5577 }
5578
5579 Ok(())
5580 }
5581 }
5582
5583 impl WlanFullmacImplEapolTxRequest {
5584 #[inline(always)]
5585 fn max_ordinal_present(&self) -> u64 {
5586 if let Some(_) = self.data {
5587 return 3;
5588 }
5589 if let Some(_) = self.dst_addr {
5590 return 2;
5591 }
5592 if let Some(_) = self.src_addr {
5593 return 1;
5594 }
5595 0
5596 }
5597 }
5598
5599 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplEapolTxRequest {
5600 type Borrowed<'a> = &'a Self;
5601 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
5602 value
5603 }
5604 }
5605
5606 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplEapolTxRequest {
5607 type Owned = Self;
5608
5609 #[inline(always)]
5610 fn inline_align(_context: fidl::encoding::Context) -> usize {
5611 8
5612 }
5613
5614 #[inline(always)]
5615 fn inline_size(_context: fidl::encoding::Context) -> usize {
5616 16
5617 }
5618 }
5619
5620 unsafe impl<D: fidl::encoding::ResourceDialect>
5621 fidl::encoding::Encode<WlanFullmacImplEapolTxRequest, D>
5622 for &WlanFullmacImplEapolTxRequest
5623 {
5624 unsafe fn encode(
5625 self,
5626 encoder: &mut fidl::encoding::Encoder<'_, D>,
5627 offset: usize,
5628 mut depth: fidl::encoding::Depth,
5629 ) -> fidl::Result<()> {
5630 encoder.debug_check_bounds::<WlanFullmacImplEapolTxRequest>(offset);
5631 let max_ordinal: u64 = self.max_ordinal_present();
5633 encoder.write_num(max_ordinal, offset);
5634 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
5635 if max_ordinal == 0 {
5637 return Ok(());
5638 }
5639 depth.increment()?;
5640 let envelope_size = 8;
5641 let bytes_len = max_ordinal as usize * envelope_size;
5642 #[allow(unused_variables)]
5643 let offset = encoder.out_of_line_offset(bytes_len);
5644 let mut _prev_end_offset: usize = 0;
5645 if 1 > max_ordinal {
5646 return Ok(());
5647 }
5648
5649 let cur_offset: usize = (1 - 1) * envelope_size;
5652
5653 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5655
5656 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
5661 self.src_addr
5662 .as_ref()
5663 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
5664 encoder,
5665 offset + cur_offset,
5666 depth,
5667 )?;
5668
5669 _prev_end_offset = cur_offset + envelope_size;
5670 if 2 > max_ordinal {
5671 return Ok(());
5672 }
5673
5674 let cur_offset: usize = (2 - 1) * envelope_size;
5677
5678 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5680
5681 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
5686 self.dst_addr
5687 .as_ref()
5688 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
5689 encoder,
5690 offset + cur_offset,
5691 depth,
5692 )?;
5693
5694 _prev_end_offset = cur_offset + envelope_size;
5695 if 3 > max_ordinal {
5696 return Ok(());
5697 }
5698
5699 let cur_offset: usize = (3 - 1) * envelope_size;
5702
5703 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5705
5706 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<u8>, D>(
5711 self.data.as_ref().map(<fidl::encoding::UnboundedVector<u8> as fidl::encoding::ValueTypeMarker>::borrow),
5712 encoder, offset + cur_offset, depth
5713 )?;
5714
5715 _prev_end_offset = cur_offset + envelope_size;
5716
5717 Ok(())
5718 }
5719 }
5720
5721 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
5722 for WlanFullmacImplEapolTxRequest
5723 {
5724 #[inline(always)]
5725 fn new_empty() -> Self {
5726 Self::default()
5727 }
5728
5729 unsafe fn decode(
5730 &mut self,
5731 decoder: &mut fidl::encoding::Decoder<'_, D>,
5732 offset: usize,
5733 mut depth: fidl::encoding::Depth,
5734 ) -> fidl::Result<()> {
5735 decoder.debug_check_bounds::<Self>(offset);
5736 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
5737 None => return Err(fidl::Error::NotNullable),
5738 Some(len) => len,
5739 };
5740 if len == 0 {
5742 return Ok(());
5743 };
5744 depth.increment()?;
5745 let envelope_size = 8;
5746 let bytes_len = len * envelope_size;
5747 let offset = decoder.out_of_line_offset(bytes_len)?;
5748 let mut _next_ordinal_to_read = 0;
5750 let mut next_offset = offset;
5751 let end_offset = offset + bytes_len;
5752 _next_ordinal_to_read += 1;
5753 if next_offset >= end_offset {
5754 return Ok(());
5755 }
5756
5757 while _next_ordinal_to_read < 1 {
5759 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5760 _next_ordinal_to_read += 1;
5761 next_offset += envelope_size;
5762 }
5763
5764 let next_out_of_line = decoder.next_out_of_line();
5765 let handles_before = decoder.remaining_handles();
5766 if let Some((inlined, num_bytes, num_handles)) =
5767 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5768 {
5769 let member_inline_size =
5770 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
5771 decoder.context,
5772 );
5773 if inlined != (member_inline_size <= 4) {
5774 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5775 }
5776 let inner_offset;
5777 let mut inner_depth = depth.clone();
5778 if inlined {
5779 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5780 inner_offset = next_offset;
5781 } else {
5782 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5783 inner_depth.increment()?;
5784 }
5785 let val_ref = self
5786 .src_addr
5787 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
5788 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
5789 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5790 {
5791 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5792 }
5793 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5794 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5795 }
5796 }
5797
5798 next_offset += envelope_size;
5799 _next_ordinal_to_read += 1;
5800 if next_offset >= end_offset {
5801 return Ok(());
5802 }
5803
5804 while _next_ordinal_to_read < 2 {
5806 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5807 _next_ordinal_to_read += 1;
5808 next_offset += envelope_size;
5809 }
5810
5811 let next_out_of_line = decoder.next_out_of_line();
5812 let handles_before = decoder.remaining_handles();
5813 if let Some((inlined, num_bytes, num_handles)) =
5814 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5815 {
5816 let member_inline_size =
5817 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
5818 decoder.context,
5819 );
5820 if inlined != (member_inline_size <= 4) {
5821 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5822 }
5823 let inner_offset;
5824 let mut inner_depth = depth.clone();
5825 if inlined {
5826 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5827 inner_offset = next_offset;
5828 } else {
5829 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5830 inner_depth.increment()?;
5831 }
5832 let val_ref = self
5833 .dst_addr
5834 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
5835 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
5836 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5837 {
5838 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5839 }
5840 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5841 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5842 }
5843 }
5844
5845 next_offset += envelope_size;
5846 _next_ordinal_to_read += 1;
5847 if next_offset >= end_offset {
5848 return Ok(());
5849 }
5850
5851 while _next_ordinal_to_read < 3 {
5853 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5854 _next_ordinal_to_read += 1;
5855 next_offset += envelope_size;
5856 }
5857
5858 let next_out_of_line = decoder.next_out_of_line();
5859 let handles_before = decoder.remaining_handles();
5860 if let Some((inlined, num_bytes, num_handles)) =
5861 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5862 {
5863 let member_inline_size = <fidl::encoding::UnboundedVector<u8> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5864 if inlined != (member_inline_size <= 4) {
5865 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5866 }
5867 let inner_offset;
5868 let mut inner_depth = depth.clone();
5869 if inlined {
5870 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5871 inner_offset = next_offset;
5872 } else {
5873 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5874 inner_depth.increment()?;
5875 }
5876 let val_ref = self.data.get_or_insert_with(|| {
5877 fidl::new_empty!(fidl::encoding::UnboundedVector<u8>, D)
5878 });
5879 fidl::decode!(
5880 fidl::encoding::UnboundedVector<u8>,
5881 D,
5882 val_ref,
5883 decoder,
5884 inner_offset,
5885 inner_depth
5886 )?;
5887 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5888 {
5889 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5890 }
5891 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5892 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5893 }
5894 }
5895
5896 next_offset += envelope_size;
5897
5898 while next_offset < end_offset {
5900 _next_ordinal_to_read += 1;
5901 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5902 next_offset += envelope_size;
5903 }
5904
5905 Ok(())
5906 }
5907 }
5908
5909 impl WlanFullmacImplIfcAssocIndRequest {
5910 #[inline(always)]
5911 fn max_ordinal_present(&self) -> u64 {
5912 if let Some(_) = self.vendor_ie {
5913 return 5;
5914 }
5915 if let Some(_) = self.rsne {
5916 return 4;
5917 }
5918 if let Some(_) = self.ssid {
5919 return 3;
5920 }
5921 if let Some(_) = self.listen_interval {
5922 return 2;
5923 }
5924 if let Some(_) = self.peer_sta_address {
5925 return 1;
5926 }
5927 0
5928 }
5929 }
5930
5931 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcAssocIndRequest {
5932 type Borrowed<'a> = &'a Self;
5933 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
5934 value
5935 }
5936 }
5937
5938 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcAssocIndRequest {
5939 type Owned = Self;
5940
5941 #[inline(always)]
5942 fn inline_align(_context: fidl::encoding::Context) -> usize {
5943 8
5944 }
5945
5946 #[inline(always)]
5947 fn inline_size(_context: fidl::encoding::Context) -> usize {
5948 16
5949 }
5950 }
5951
5952 unsafe impl<D: fidl::encoding::ResourceDialect>
5953 fidl::encoding::Encode<WlanFullmacImplIfcAssocIndRequest, D>
5954 for &WlanFullmacImplIfcAssocIndRequest
5955 {
5956 unsafe fn encode(
5957 self,
5958 encoder: &mut fidl::encoding::Encoder<'_, D>,
5959 offset: usize,
5960 mut depth: fidl::encoding::Depth,
5961 ) -> fidl::Result<()> {
5962 encoder.debug_check_bounds::<WlanFullmacImplIfcAssocIndRequest>(offset);
5963 let max_ordinal: u64 = self.max_ordinal_present();
5965 encoder.write_num(max_ordinal, offset);
5966 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
5967 if max_ordinal == 0 {
5969 return Ok(());
5970 }
5971 depth.increment()?;
5972 let envelope_size = 8;
5973 let bytes_len = max_ordinal as usize * envelope_size;
5974 #[allow(unused_variables)]
5975 let offset = encoder.out_of_line_offset(bytes_len);
5976 let mut _prev_end_offset: usize = 0;
5977 if 1 > max_ordinal {
5978 return Ok(());
5979 }
5980
5981 let cur_offset: usize = (1 - 1) * envelope_size;
5984
5985 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5987
5988 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
5993 self.peer_sta_address
5994 .as_ref()
5995 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
5996 encoder,
5997 offset + cur_offset,
5998 depth,
5999 )?;
6000
6001 _prev_end_offset = cur_offset + envelope_size;
6002 if 2 > max_ordinal {
6003 return Ok(());
6004 }
6005
6006 let cur_offset: usize = (2 - 1) * envelope_size;
6009
6010 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6012
6013 fidl::encoding::encode_in_envelope_optional::<u16, D>(
6018 self.listen_interval.as_ref().map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
6019 encoder,
6020 offset + cur_offset,
6021 depth,
6022 )?;
6023
6024 _prev_end_offset = cur_offset + envelope_size;
6025 if 3 > max_ordinal {
6026 return Ok(());
6027 }
6028
6029 let cur_offset: usize = (3 - 1) * envelope_size;
6032
6033 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6035
6036 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<u8, 32>, D>(
6041 self.ssid.as_ref().map(
6042 <fidl::encoding::Vector<u8, 32> as fidl::encoding::ValueTypeMarker>::borrow,
6043 ),
6044 encoder,
6045 offset + cur_offset,
6046 depth,
6047 )?;
6048
6049 _prev_end_offset = cur_offset + envelope_size;
6050 if 4 > max_ordinal {
6051 return Ok(());
6052 }
6053
6054 let cur_offset: usize = (4 - 1) * envelope_size;
6057
6058 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6060
6061 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<u8, 257>, D>(
6066 self.rsne.as_ref().map(
6067 <fidl::encoding::Vector<u8, 257> as fidl::encoding::ValueTypeMarker>::borrow,
6068 ),
6069 encoder,
6070 offset + cur_offset,
6071 depth,
6072 )?;
6073
6074 _prev_end_offset = cur_offset + envelope_size;
6075 if 5 > max_ordinal {
6076 return Ok(());
6077 }
6078
6079 let cur_offset: usize = (5 - 1) * envelope_size;
6082
6083 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6085
6086 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<u8, 514>, D>(
6091 self.vendor_ie.as_ref().map(
6092 <fidl::encoding::Vector<u8, 514> as fidl::encoding::ValueTypeMarker>::borrow,
6093 ),
6094 encoder,
6095 offset + cur_offset,
6096 depth,
6097 )?;
6098
6099 _prev_end_offset = cur_offset + envelope_size;
6100
6101 Ok(())
6102 }
6103 }
6104
6105 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
6106 for WlanFullmacImplIfcAssocIndRequest
6107 {
6108 #[inline(always)]
6109 fn new_empty() -> Self {
6110 Self::default()
6111 }
6112
6113 unsafe fn decode(
6114 &mut self,
6115 decoder: &mut fidl::encoding::Decoder<'_, D>,
6116 offset: usize,
6117 mut depth: fidl::encoding::Depth,
6118 ) -> fidl::Result<()> {
6119 decoder.debug_check_bounds::<Self>(offset);
6120 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
6121 None => return Err(fidl::Error::NotNullable),
6122 Some(len) => len,
6123 };
6124 if len == 0 {
6126 return Ok(());
6127 };
6128 depth.increment()?;
6129 let envelope_size = 8;
6130 let bytes_len = len * envelope_size;
6131 let offset = decoder.out_of_line_offset(bytes_len)?;
6132 let mut _next_ordinal_to_read = 0;
6134 let mut next_offset = offset;
6135 let end_offset = offset + bytes_len;
6136 _next_ordinal_to_read += 1;
6137 if next_offset >= end_offset {
6138 return Ok(());
6139 }
6140
6141 while _next_ordinal_to_read < 1 {
6143 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6144 _next_ordinal_to_read += 1;
6145 next_offset += envelope_size;
6146 }
6147
6148 let next_out_of_line = decoder.next_out_of_line();
6149 let handles_before = decoder.remaining_handles();
6150 if let Some((inlined, num_bytes, num_handles)) =
6151 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6152 {
6153 let member_inline_size =
6154 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
6155 decoder.context,
6156 );
6157 if inlined != (member_inline_size <= 4) {
6158 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6159 }
6160 let inner_offset;
6161 let mut inner_depth = depth.clone();
6162 if inlined {
6163 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6164 inner_offset = next_offset;
6165 } else {
6166 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6167 inner_depth.increment()?;
6168 }
6169 let val_ref = self
6170 .peer_sta_address
6171 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
6172 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
6173 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6174 {
6175 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6176 }
6177 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6178 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6179 }
6180 }
6181
6182 next_offset += envelope_size;
6183 _next_ordinal_to_read += 1;
6184 if next_offset >= end_offset {
6185 return Ok(());
6186 }
6187
6188 while _next_ordinal_to_read < 2 {
6190 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6191 _next_ordinal_to_read += 1;
6192 next_offset += envelope_size;
6193 }
6194
6195 let next_out_of_line = decoder.next_out_of_line();
6196 let handles_before = decoder.remaining_handles();
6197 if let Some((inlined, num_bytes, num_handles)) =
6198 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6199 {
6200 let member_inline_size =
6201 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6202 if inlined != (member_inline_size <= 4) {
6203 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6204 }
6205 let inner_offset;
6206 let mut inner_depth = depth.clone();
6207 if inlined {
6208 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6209 inner_offset = next_offset;
6210 } else {
6211 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6212 inner_depth.increment()?;
6213 }
6214 let val_ref = self.listen_interval.get_or_insert_with(|| fidl::new_empty!(u16, D));
6215 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
6216 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6217 {
6218 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6219 }
6220 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6221 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6222 }
6223 }
6224
6225 next_offset += envelope_size;
6226 _next_ordinal_to_read += 1;
6227 if next_offset >= end_offset {
6228 return Ok(());
6229 }
6230
6231 while _next_ordinal_to_read < 3 {
6233 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6234 _next_ordinal_to_read += 1;
6235 next_offset += envelope_size;
6236 }
6237
6238 let next_out_of_line = decoder.next_out_of_line();
6239 let handles_before = decoder.remaining_handles();
6240 if let Some((inlined, num_bytes, num_handles)) =
6241 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6242 {
6243 let member_inline_size =
6244 <fidl::encoding::Vector<u8, 32> as fidl::encoding::TypeMarker>::inline_size(
6245 decoder.context,
6246 );
6247 if inlined != (member_inline_size <= 4) {
6248 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6249 }
6250 let inner_offset;
6251 let mut inner_depth = depth.clone();
6252 if inlined {
6253 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6254 inner_offset = next_offset;
6255 } else {
6256 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6257 inner_depth.increment()?;
6258 }
6259 let val_ref = self
6260 .ssid
6261 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<u8, 32>, D));
6262 fidl::decode!(fidl::encoding::Vector<u8, 32>, D, val_ref, decoder, inner_offset, inner_depth)?;
6263 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6264 {
6265 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6266 }
6267 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6268 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6269 }
6270 }
6271
6272 next_offset += envelope_size;
6273 _next_ordinal_to_read += 1;
6274 if next_offset >= end_offset {
6275 return Ok(());
6276 }
6277
6278 while _next_ordinal_to_read < 4 {
6280 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6281 _next_ordinal_to_read += 1;
6282 next_offset += envelope_size;
6283 }
6284
6285 let next_out_of_line = decoder.next_out_of_line();
6286 let handles_before = decoder.remaining_handles();
6287 if let Some((inlined, num_bytes, num_handles)) =
6288 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6289 {
6290 let member_inline_size =
6291 <fidl::encoding::Vector<u8, 257> as fidl::encoding::TypeMarker>::inline_size(
6292 decoder.context,
6293 );
6294 if inlined != (member_inline_size <= 4) {
6295 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6296 }
6297 let inner_offset;
6298 let mut inner_depth = depth.clone();
6299 if inlined {
6300 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6301 inner_offset = next_offset;
6302 } else {
6303 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6304 inner_depth.increment()?;
6305 }
6306 let val_ref = self
6307 .rsne
6308 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<u8, 257>, D));
6309 fidl::decode!(fidl::encoding::Vector<u8, 257>, D, val_ref, decoder, inner_offset, inner_depth)?;
6310 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6311 {
6312 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6313 }
6314 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6315 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6316 }
6317 }
6318
6319 next_offset += envelope_size;
6320 _next_ordinal_to_read += 1;
6321 if next_offset >= end_offset {
6322 return Ok(());
6323 }
6324
6325 while _next_ordinal_to_read < 5 {
6327 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6328 _next_ordinal_to_read += 1;
6329 next_offset += envelope_size;
6330 }
6331
6332 let next_out_of_line = decoder.next_out_of_line();
6333 let handles_before = decoder.remaining_handles();
6334 if let Some((inlined, num_bytes, num_handles)) =
6335 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6336 {
6337 let member_inline_size =
6338 <fidl::encoding::Vector<u8, 514> as fidl::encoding::TypeMarker>::inline_size(
6339 decoder.context,
6340 );
6341 if inlined != (member_inline_size <= 4) {
6342 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6343 }
6344 let inner_offset;
6345 let mut inner_depth = depth.clone();
6346 if inlined {
6347 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6348 inner_offset = next_offset;
6349 } else {
6350 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6351 inner_depth.increment()?;
6352 }
6353 let val_ref = self
6354 .vendor_ie
6355 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<u8, 514>, D));
6356 fidl::decode!(fidl::encoding::Vector<u8, 514>, D, val_ref, decoder, inner_offset, inner_depth)?;
6357 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6358 {
6359 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6360 }
6361 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6362 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6363 }
6364 }
6365
6366 next_offset += envelope_size;
6367
6368 while next_offset < end_offset {
6370 _next_ordinal_to_read += 1;
6371 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6372 next_offset += envelope_size;
6373 }
6374
6375 Ok(())
6376 }
6377 }
6378
6379 impl WlanFullmacImplIfcAuthIndRequest {
6380 #[inline(always)]
6381 fn max_ordinal_present(&self) -> u64 {
6382 if let Some(_) = self.auth_type {
6383 return 2;
6384 }
6385 if let Some(_) = self.peer_sta_address {
6386 return 1;
6387 }
6388 0
6389 }
6390 }
6391
6392 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcAuthIndRequest {
6393 type Borrowed<'a> = &'a Self;
6394 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
6395 value
6396 }
6397 }
6398
6399 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcAuthIndRequest {
6400 type Owned = Self;
6401
6402 #[inline(always)]
6403 fn inline_align(_context: fidl::encoding::Context) -> usize {
6404 8
6405 }
6406
6407 #[inline(always)]
6408 fn inline_size(_context: fidl::encoding::Context) -> usize {
6409 16
6410 }
6411 }
6412
6413 unsafe impl<D: fidl::encoding::ResourceDialect>
6414 fidl::encoding::Encode<WlanFullmacImplIfcAuthIndRequest, D>
6415 for &WlanFullmacImplIfcAuthIndRequest
6416 {
6417 unsafe fn encode(
6418 self,
6419 encoder: &mut fidl::encoding::Encoder<'_, D>,
6420 offset: usize,
6421 mut depth: fidl::encoding::Depth,
6422 ) -> fidl::Result<()> {
6423 encoder.debug_check_bounds::<WlanFullmacImplIfcAuthIndRequest>(offset);
6424 let max_ordinal: u64 = self.max_ordinal_present();
6426 encoder.write_num(max_ordinal, offset);
6427 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
6428 if max_ordinal == 0 {
6430 return Ok(());
6431 }
6432 depth.increment()?;
6433 let envelope_size = 8;
6434 let bytes_len = max_ordinal as usize * envelope_size;
6435 #[allow(unused_variables)]
6436 let offset = encoder.out_of_line_offset(bytes_len);
6437 let mut _prev_end_offset: usize = 0;
6438 if 1 > max_ordinal {
6439 return Ok(());
6440 }
6441
6442 let cur_offset: usize = (1 - 1) * envelope_size;
6445
6446 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6448
6449 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
6454 self.peer_sta_address
6455 .as_ref()
6456 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
6457 encoder,
6458 offset + cur_offset,
6459 depth,
6460 )?;
6461
6462 _prev_end_offset = cur_offset + envelope_size;
6463 if 2 > max_ordinal {
6464 return Ok(());
6465 }
6466
6467 let cur_offset: usize = (2 - 1) * envelope_size;
6470
6471 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6473
6474 fidl::encoding::encode_in_envelope_optional::<WlanAuthType, D>(
6479 self.auth_type
6480 .as_ref()
6481 .map(<WlanAuthType as fidl::encoding::ValueTypeMarker>::borrow),
6482 encoder,
6483 offset + cur_offset,
6484 depth,
6485 )?;
6486
6487 _prev_end_offset = cur_offset + envelope_size;
6488
6489 Ok(())
6490 }
6491 }
6492
6493 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
6494 for WlanFullmacImplIfcAuthIndRequest
6495 {
6496 #[inline(always)]
6497 fn new_empty() -> Self {
6498 Self::default()
6499 }
6500
6501 unsafe fn decode(
6502 &mut self,
6503 decoder: &mut fidl::encoding::Decoder<'_, D>,
6504 offset: usize,
6505 mut depth: fidl::encoding::Depth,
6506 ) -> fidl::Result<()> {
6507 decoder.debug_check_bounds::<Self>(offset);
6508 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
6509 None => return Err(fidl::Error::NotNullable),
6510 Some(len) => len,
6511 };
6512 if len == 0 {
6514 return Ok(());
6515 };
6516 depth.increment()?;
6517 let envelope_size = 8;
6518 let bytes_len = len * envelope_size;
6519 let offset = decoder.out_of_line_offset(bytes_len)?;
6520 let mut _next_ordinal_to_read = 0;
6522 let mut next_offset = offset;
6523 let end_offset = offset + bytes_len;
6524 _next_ordinal_to_read += 1;
6525 if next_offset >= end_offset {
6526 return Ok(());
6527 }
6528
6529 while _next_ordinal_to_read < 1 {
6531 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6532 _next_ordinal_to_read += 1;
6533 next_offset += envelope_size;
6534 }
6535
6536 let next_out_of_line = decoder.next_out_of_line();
6537 let handles_before = decoder.remaining_handles();
6538 if let Some((inlined, num_bytes, num_handles)) =
6539 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6540 {
6541 let member_inline_size =
6542 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
6543 decoder.context,
6544 );
6545 if inlined != (member_inline_size <= 4) {
6546 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6547 }
6548 let inner_offset;
6549 let mut inner_depth = depth.clone();
6550 if inlined {
6551 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6552 inner_offset = next_offset;
6553 } else {
6554 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6555 inner_depth.increment()?;
6556 }
6557 let val_ref = self
6558 .peer_sta_address
6559 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
6560 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
6561 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6562 {
6563 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6564 }
6565 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6566 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6567 }
6568 }
6569
6570 next_offset += envelope_size;
6571 _next_ordinal_to_read += 1;
6572 if next_offset >= end_offset {
6573 return Ok(());
6574 }
6575
6576 while _next_ordinal_to_read < 2 {
6578 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6579 _next_ordinal_to_read += 1;
6580 next_offset += envelope_size;
6581 }
6582
6583 let next_out_of_line = decoder.next_out_of_line();
6584 let handles_before = decoder.remaining_handles();
6585 if let Some((inlined, num_bytes, num_handles)) =
6586 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6587 {
6588 let member_inline_size =
6589 <WlanAuthType as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6590 if inlined != (member_inline_size <= 4) {
6591 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6592 }
6593 let inner_offset;
6594 let mut inner_depth = depth.clone();
6595 if inlined {
6596 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6597 inner_offset = next_offset;
6598 } else {
6599 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6600 inner_depth.increment()?;
6601 }
6602 let val_ref =
6603 self.auth_type.get_or_insert_with(|| fidl::new_empty!(WlanAuthType, D));
6604 fidl::decode!(WlanAuthType, D, val_ref, decoder, inner_offset, inner_depth)?;
6605 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6606 {
6607 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6608 }
6609 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6610 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6611 }
6612 }
6613
6614 next_offset += envelope_size;
6615
6616 while next_offset < end_offset {
6618 _next_ordinal_to_read += 1;
6619 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6620 next_offset += envelope_size;
6621 }
6622
6623 Ok(())
6624 }
6625 }
6626
6627 impl WlanFullmacImplIfcConnectConfRequest {
6628 #[inline(always)]
6629 fn max_ordinal_present(&self) -> u64 {
6630 if let Some(_) = self.association_ies {
6631 return 4;
6632 }
6633 if let Some(_) = self.association_id {
6634 return 3;
6635 }
6636 if let Some(_) = self.result_code {
6637 return 2;
6638 }
6639 if let Some(_) = self.peer_sta_address {
6640 return 1;
6641 }
6642 0
6643 }
6644 }
6645
6646 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcConnectConfRequest {
6647 type Borrowed<'a> = &'a Self;
6648 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
6649 value
6650 }
6651 }
6652
6653 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcConnectConfRequest {
6654 type Owned = Self;
6655
6656 #[inline(always)]
6657 fn inline_align(_context: fidl::encoding::Context) -> usize {
6658 8
6659 }
6660
6661 #[inline(always)]
6662 fn inline_size(_context: fidl::encoding::Context) -> usize {
6663 16
6664 }
6665 }
6666
6667 unsafe impl<D: fidl::encoding::ResourceDialect>
6668 fidl::encoding::Encode<WlanFullmacImplIfcConnectConfRequest, D>
6669 for &WlanFullmacImplIfcConnectConfRequest
6670 {
6671 unsafe fn encode(
6672 self,
6673 encoder: &mut fidl::encoding::Encoder<'_, D>,
6674 offset: usize,
6675 mut depth: fidl::encoding::Depth,
6676 ) -> fidl::Result<()> {
6677 encoder.debug_check_bounds::<WlanFullmacImplIfcConnectConfRequest>(offset);
6678 let max_ordinal: u64 = self.max_ordinal_present();
6680 encoder.write_num(max_ordinal, offset);
6681 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
6682 if max_ordinal == 0 {
6684 return Ok(());
6685 }
6686 depth.increment()?;
6687 let envelope_size = 8;
6688 let bytes_len = max_ordinal as usize * envelope_size;
6689 #[allow(unused_variables)]
6690 let offset = encoder.out_of_line_offset(bytes_len);
6691 let mut _prev_end_offset: usize = 0;
6692 if 1 > max_ordinal {
6693 return Ok(());
6694 }
6695
6696 let cur_offset: usize = (1 - 1) * envelope_size;
6699
6700 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6702
6703 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
6708 self.peer_sta_address
6709 .as_ref()
6710 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
6711 encoder,
6712 offset + cur_offset,
6713 depth,
6714 )?;
6715
6716 _prev_end_offset = cur_offset + envelope_size;
6717 if 2 > max_ordinal {
6718 return Ok(());
6719 }
6720
6721 let cur_offset: usize = (2 - 1) * envelope_size;
6724
6725 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6727
6728 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_ieee80211__common::StatusCode, D>(
6733 self.result_code.as_ref().map(<fidl_fuchsia_wlan_ieee80211__common::StatusCode as fidl::encoding::ValueTypeMarker>::borrow),
6734 encoder, offset + cur_offset, depth
6735 )?;
6736
6737 _prev_end_offset = cur_offset + envelope_size;
6738 if 3 > max_ordinal {
6739 return Ok(());
6740 }
6741
6742 let cur_offset: usize = (3 - 1) * envelope_size;
6745
6746 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6748
6749 fidl::encoding::encode_in_envelope_optional::<u16, D>(
6754 self.association_id.as_ref().map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
6755 encoder,
6756 offset + cur_offset,
6757 depth,
6758 )?;
6759
6760 _prev_end_offset = cur_offset + envelope_size;
6761 if 4 > max_ordinal {
6762 return Ok(());
6763 }
6764
6765 let cur_offset: usize = (4 - 1) * envelope_size;
6768
6769 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6771
6772 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<u8>, D>(
6777 self.association_ies.as_ref().map(<fidl::encoding::UnboundedVector<u8> as fidl::encoding::ValueTypeMarker>::borrow),
6778 encoder, offset + cur_offset, depth
6779 )?;
6780
6781 _prev_end_offset = cur_offset + envelope_size;
6782
6783 Ok(())
6784 }
6785 }
6786
6787 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
6788 for WlanFullmacImplIfcConnectConfRequest
6789 {
6790 #[inline(always)]
6791 fn new_empty() -> Self {
6792 Self::default()
6793 }
6794
6795 unsafe fn decode(
6796 &mut self,
6797 decoder: &mut fidl::encoding::Decoder<'_, D>,
6798 offset: usize,
6799 mut depth: fidl::encoding::Depth,
6800 ) -> fidl::Result<()> {
6801 decoder.debug_check_bounds::<Self>(offset);
6802 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
6803 None => return Err(fidl::Error::NotNullable),
6804 Some(len) => len,
6805 };
6806 if len == 0 {
6808 return Ok(());
6809 };
6810 depth.increment()?;
6811 let envelope_size = 8;
6812 let bytes_len = len * envelope_size;
6813 let offset = decoder.out_of_line_offset(bytes_len)?;
6814 let mut _next_ordinal_to_read = 0;
6816 let mut next_offset = offset;
6817 let end_offset = offset + bytes_len;
6818 _next_ordinal_to_read += 1;
6819 if next_offset >= end_offset {
6820 return Ok(());
6821 }
6822
6823 while _next_ordinal_to_read < 1 {
6825 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6826 _next_ordinal_to_read += 1;
6827 next_offset += envelope_size;
6828 }
6829
6830 let next_out_of_line = decoder.next_out_of_line();
6831 let handles_before = decoder.remaining_handles();
6832 if let Some((inlined, num_bytes, num_handles)) =
6833 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6834 {
6835 let member_inline_size =
6836 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
6837 decoder.context,
6838 );
6839 if inlined != (member_inline_size <= 4) {
6840 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6841 }
6842 let inner_offset;
6843 let mut inner_depth = depth.clone();
6844 if inlined {
6845 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6846 inner_offset = next_offset;
6847 } else {
6848 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6849 inner_depth.increment()?;
6850 }
6851 let val_ref = self
6852 .peer_sta_address
6853 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
6854 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
6855 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6856 {
6857 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6858 }
6859 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6860 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6861 }
6862 }
6863
6864 next_offset += envelope_size;
6865 _next_ordinal_to_read += 1;
6866 if next_offset >= end_offset {
6867 return Ok(());
6868 }
6869
6870 while _next_ordinal_to_read < 2 {
6872 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6873 _next_ordinal_to_read += 1;
6874 next_offset += envelope_size;
6875 }
6876
6877 let next_out_of_line = decoder.next_out_of_line();
6878 let handles_before = decoder.remaining_handles();
6879 if let Some((inlined, num_bytes, num_handles)) =
6880 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6881 {
6882 let member_inline_size = <fidl_fuchsia_wlan_ieee80211__common::StatusCode as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6883 if inlined != (member_inline_size <= 4) {
6884 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6885 }
6886 let inner_offset;
6887 let mut inner_depth = depth.clone();
6888 if inlined {
6889 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6890 inner_offset = next_offset;
6891 } else {
6892 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6893 inner_depth.increment()?;
6894 }
6895 let val_ref = self.result_code.get_or_insert_with(|| {
6896 fidl::new_empty!(fidl_fuchsia_wlan_ieee80211__common::StatusCode, D)
6897 });
6898 fidl::decode!(
6899 fidl_fuchsia_wlan_ieee80211__common::StatusCode,
6900 D,
6901 val_ref,
6902 decoder,
6903 inner_offset,
6904 inner_depth
6905 )?;
6906 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6907 {
6908 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6909 }
6910 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6911 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6912 }
6913 }
6914
6915 next_offset += envelope_size;
6916 _next_ordinal_to_read += 1;
6917 if next_offset >= end_offset {
6918 return Ok(());
6919 }
6920
6921 while _next_ordinal_to_read < 3 {
6923 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6924 _next_ordinal_to_read += 1;
6925 next_offset += envelope_size;
6926 }
6927
6928 let next_out_of_line = decoder.next_out_of_line();
6929 let handles_before = decoder.remaining_handles();
6930 if let Some((inlined, num_bytes, num_handles)) =
6931 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6932 {
6933 let member_inline_size =
6934 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6935 if inlined != (member_inline_size <= 4) {
6936 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6937 }
6938 let inner_offset;
6939 let mut inner_depth = depth.clone();
6940 if inlined {
6941 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6942 inner_offset = next_offset;
6943 } else {
6944 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6945 inner_depth.increment()?;
6946 }
6947 let val_ref = self.association_id.get_or_insert_with(|| fidl::new_empty!(u16, D));
6948 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
6949 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6950 {
6951 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6952 }
6953 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6954 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6955 }
6956 }
6957
6958 next_offset += envelope_size;
6959 _next_ordinal_to_read += 1;
6960 if next_offset >= end_offset {
6961 return Ok(());
6962 }
6963
6964 while _next_ordinal_to_read < 4 {
6966 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6967 _next_ordinal_to_read += 1;
6968 next_offset += envelope_size;
6969 }
6970
6971 let next_out_of_line = decoder.next_out_of_line();
6972 let handles_before = decoder.remaining_handles();
6973 if let Some((inlined, num_bytes, num_handles)) =
6974 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6975 {
6976 let member_inline_size = <fidl::encoding::UnboundedVector<u8> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6977 if inlined != (member_inline_size <= 4) {
6978 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6979 }
6980 let inner_offset;
6981 let mut inner_depth = depth.clone();
6982 if inlined {
6983 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6984 inner_offset = next_offset;
6985 } else {
6986 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6987 inner_depth.increment()?;
6988 }
6989 let val_ref = self.association_ies.get_or_insert_with(|| {
6990 fidl::new_empty!(fidl::encoding::UnboundedVector<u8>, D)
6991 });
6992 fidl::decode!(
6993 fidl::encoding::UnboundedVector<u8>,
6994 D,
6995 val_ref,
6996 decoder,
6997 inner_offset,
6998 inner_depth
6999 )?;
7000 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7001 {
7002 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7003 }
7004 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7005 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7006 }
7007 }
7008
7009 next_offset += envelope_size;
7010
7011 while next_offset < end_offset {
7013 _next_ordinal_to_read += 1;
7014 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7015 next_offset += envelope_size;
7016 }
7017
7018 Ok(())
7019 }
7020 }
7021
7022 impl WlanFullmacImplIfcDeauthConfRequest {
7023 #[inline(always)]
7024 fn max_ordinal_present(&self) -> u64 {
7025 if let Some(_) = self.peer_sta_address {
7026 return 1;
7027 }
7028 0
7029 }
7030 }
7031
7032 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcDeauthConfRequest {
7033 type Borrowed<'a> = &'a Self;
7034 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
7035 value
7036 }
7037 }
7038
7039 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcDeauthConfRequest {
7040 type Owned = Self;
7041
7042 #[inline(always)]
7043 fn inline_align(_context: fidl::encoding::Context) -> usize {
7044 8
7045 }
7046
7047 #[inline(always)]
7048 fn inline_size(_context: fidl::encoding::Context) -> usize {
7049 16
7050 }
7051 }
7052
7053 unsafe impl<D: fidl::encoding::ResourceDialect>
7054 fidl::encoding::Encode<WlanFullmacImplIfcDeauthConfRequest, D>
7055 for &WlanFullmacImplIfcDeauthConfRequest
7056 {
7057 unsafe fn encode(
7058 self,
7059 encoder: &mut fidl::encoding::Encoder<'_, D>,
7060 offset: usize,
7061 mut depth: fidl::encoding::Depth,
7062 ) -> fidl::Result<()> {
7063 encoder.debug_check_bounds::<WlanFullmacImplIfcDeauthConfRequest>(offset);
7064 let max_ordinal: u64 = self.max_ordinal_present();
7066 encoder.write_num(max_ordinal, offset);
7067 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
7068 if max_ordinal == 0 {
7070 return Ok(());
7071 }
7072 depth.increment()?;
7073 let envelope_size = 8;
7074 let bytes_len = max_ordinal as usize * envelope_size;
7075 #[allow(unused_variables)]
7076 let offset = encoder.out_of_line_offset(bytes_len);
7077 let mut _prev_end_offset: usize = 0;
7078 if 1 > max_ordinal {
7079 return Ok(());
7080 }
7081
7082 let cur_offset: usize = (1 - 1) * envelope_size;
7085
7086 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7088
7089 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
7094 self.peer_sta_address
7095 .as_ref()
7096 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
7097 encoder,
7098 offset + cur_offset,
7099 depth,
7100 )?;
7101
7102 _prev_end_offset = cur_offset + envelope_size;
7103
7104 Ok(())
7105 }
7106 }
7107
7108 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
7109 for WlanFullmacImplIfcDeauthConfRequest
7110 {
7111 #[inline(always)]
7112 fn new_empty() -> Self {
7113 Self::default()
7114 }
7115
7116 unsafe fn decode(
7117 &mut self,
7118 decoder: &mut fidl::encoding::Decoder<'_, D>,
7119 offset: usize,
7120 mut depth: fidl::encoding::Depth,
7121 ) -> fidl::Result<()> {
7122 decoder.debug_check_bounds::<Self>(offset);
7123 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
7124 None => return Err(fidl::Error::NotNullable),
7125 Some(len) => len,
7126 };
7127 if len == 0 {
7129 return Ok(());
7130 };
7131 depth.increment()?;
7132 let envelope_size = 8;
7133 let bytes_len = len * envelope_size;
7134 let offset = decoder.out_of_line_offset(bytes_len)?;
7135 let mut _next_ordinal_to_read = 0;
7137 let mut next_offset = offset;
7138 let end_offset = offset + bytes_len;
7139 _next_ordinal_to_read += 1;
7140 if next_offset >= end_offset {
7141 return Ok(());
7142 }
7143
7144 while _next_ordinal_to_read < 1 {
7146 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7147 _next_ordinal_to_read += 1;
7148 next_offset += envelope_size;
7149 }
7150
7151 let next_out_of_line = decoder.next_out_of_line();
7152 let handles_before = decoder.remaining_handles();
7153 if let Some((inlined, num_bytes, num_handles)) =
7154 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7155 {
7156 let member_inline_size =
7157 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
7158 decoder.context,
7159 );
7160 if inlined != (member_inline_size <= 4) {
7161 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7162 }
7163 let inner_offset;
7164 let mut inner_depth = depth.clone();
7165 if inlined {
7166 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7167 inner_offset = next_offset;
7168 } else {
7169 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7170 inner_depth.increment()?;
7171 }
7172 let val_ref = self
7173 .peer_sta_address
7174 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
7175 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
7176 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7177 {
7178 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7179 }
7180 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7181 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7182 }
7183 }
7184
7185 next_offset += envelope_size;
7186
7187 while next_offset < end_offset {
7189 _next_ordinal_to_read += 1;
7190 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7191 next_offset += envelope_size;
7192 }
7193
7194 Ok(())
7195 }
7196 }
7197
7198 impl WlanFullmacImplIfcDeauthIndRequest {
7199 #[inline(always)]
7200 fn max_ordinal_present(&self) -> u64 {
7201 if let Some(_) = self.locally_initiated {
7202 return 3;
7203 }
7204 if let Some(_) = self.reason_code {
7205 return 2;
7206 }
7207 if let Some(_) = self.peer_sta_address {
7208 return 1;
7209 }
7210 0
7211 }
7212 }
7213
7214 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcDeauthIndRequest {
7215 type Borrowed<'a> = &'a Self;
7216 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
7217 value
7218 }
7219 }
7220
7221 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcDeauthIndRequest {
7222 type Owned = Self;
7223
7224 #[inline(always)]
7225 fn inline_align(_context: fidl::encoding::Context) -> usize {
7226 8
7227 }
7228
7229 #[inline(always)]
7230 fn inline_size(_context: fidl::encoding::Context) -> usize {
7231 16
7232 }
7233 }
7234
7235 unsafe impl<D: fidl::encoding::ResourceDialect>
7236 fidl::encoding::Encode<WlanFullmacImplIfcDeauthIndRequest, D>
7237 for &WlanFullmacImplIfcDeauthIndRequest
7238 {
7239 unsafe fn encode(
7240 self,
7241 encoder: &mut fidl::encoding::Encoder<'_, D>,
7242 offset: usize,
7243 mut depth: fidl::encoding::Depth,
7244 ) -> fidl::Result<()> {
7245 encoder.debug_check_bounds::<WlanFullmacImplIfcDeauthIndRequest>(offset);
7246 let max_ordinal: u64 = self.max_ordinal_present();
7248 encoder.write_num(max_ordinal, offset);
7249 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
7250 if max_ordinal == 0 {
7252 return Ok(());
7253 }
7254 depth.increment()?;
7255 let envelope_size = 8;
7256 let bytes_len = max_ordinal as usize * envelope_size;
7257 #[allow(unused_variables)]
7258 let offset = encoder.out_of_line_offset(bytes_len);
7259 let mut _prev_end_offset: usize = 0;
7260 if 1 > max_ordinal {
7261 return Ok(());
7262 }
7263
7264 let cur_offset: usize = (1 - 1) * envelope_size;
7267
7268 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7270
7271 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
7276 self.peer_sta_address
7277 .as_ref()
7278 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
7279 encoder,
7280 offset + cur_offset,
7281 depth,
7282 )?;
7283
7284 _prev_end_offset = cur_offset + envelope_size;
7285 if 2 > max_ordinal {
7286 return Ok(());
7287 }
7288
7289 let cur_offset: usize = (2 - 1) * envelope_size;
7292
7293 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7295
7296 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_ieee80211__common::ReasonCode, D>(
7301 self.reason_code.as_ref().map(<fidl_fuchsia_wlan_ieee80211__common::ReasonCode as fidl::encoding::ValueTypeMarker>::borrow),
7302 encoder, offset + cur_offset, depth
7303 )?;
7304
7305 _prev_end_offset = cur_offset + envelope_size;
7306 if 3 > max_ordinal {
7307 return Ok(());
7308 }
7309
7310 let cur_offset: usize = (3 - 1) * envelope_size;
7313
7314 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7316
7317 fidl::encoding::encode_in_envelope_optional::<bool, D>(
7322 self.locally_initiated
7323 .as_ref()
7324 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
7325 encoder,
7326 offset + cur_offset,
7327 depth,
7328 )?;
7329
7330 _prev_end_offset = cur_offset + envelope_size;
7331
7332 Ok(())
7333 }
7334 }
7335
7336 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
7337 for WlanFullmacImplIfcDeauthIndRequest
7338 {
7339 #[inline(always)]
7340 fn new_empty() -> Self {
7341 Self::default()
7342 }
7343
7344 unsafe fn decode(
7345 &mut self,
7346 decoder: &mut fidl::encoding::Decoder<'_, D>,
7347 offset: usize,
7348 mut depth: fidl::encoding::Depth,
7349 ) -> fidl::Result<()> {
7350 decoder.debug_check_bounds::<Self>(offset);
7351 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
7352 None => return Err(fidl::Error::NotNullable),
7353 Some(len) => len,
7354 };
7355 if len == 0 {
7357 return Ok(());
7358 };
7359 depth.increment()?;
7360 let envelope_size = 8;
7361 let bytes_len = len * envelope_size;
7362 let offset = decoder.out_of_line_offset(bytes_len)?;
7363 let mut _next_ordinal_to_read = 0;
7365 let mut next_offset = offset;
7366 let end_offset = offset + bytes_len;
7367 _next_ordinal_to_read += 1;
7368 if next_offset >= end_offset {
7369 return Ok(());
7370 }
7371
7372 while _next_ordinal_to_read < 1 {
7374 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7375 _next_ordinal_to_read += 1;
7376 next_offset += envelope_size;
7377 }
7378
7379 let next_out_of_line = decoder.next_out_of_line();
7380 let handles_before = decoder.remaining_handles();
7381 if let Some((inlined, num_bytes, num_handles)) =
7382 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7383 {
7384 let member_inline_size =
7385 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
7386 decoder.context,
7387 );
7388 if inlined != (member_inline_size <= 4) {
7389 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7390 }
7391 let inner_offset;
7392 let mut inner_depth = depth.clone();
7393 if inlined {
7394 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7395 inner_offset = next_offset;
7396 } else {
7397 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7398 inner_depth.increment()?;
7399 }
7400 let val_ref = self
7401 .peer_sta_address
7402 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
7403 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
7404 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7405 {
7406 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7407 }
7408 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7409 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7410 }
7411 }
7412
7413 next_offset += envelope_size;
7414 _next_ordinal_to_read += 1;
7415 if next_offset >= end_offset {
7416 return Ok(());
7417 }
7418
7419 while _next_ordinal_to_read < 2 {
7421 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7422 _next_ordinal_to_read += 1;
7423 next_offset += envelope_size;
7424 }
7425
7426 let next_out_of_line = decoder.next_out_of_line();
7427 let handles_before = decoder.remaining_handles();
7428 if let Some((inlined, num_bytes, num_handles)) =
7429 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7430 {
7431 let member_inline_size = <fidl_fuchsia_wlan_ieee80211__common::ReasonCode as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7432 if inlined != (member_inline_size <= 4) {
7433 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7434 }
7435 let inner_offset;
7436 let mut inner_depth = depth.clone();
7437 if inlined {
7438 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7439 inner_offset = next_offset;
7440 } else {
7441 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7442 inner_depth.increment()?;
7443 }
7444 let val_ref = self.reason_code.get_or_insert_with(|| {
7445 fidl::new_empty!(fidl_fuchsia_wlan_ieee80211__common::ReasonCode, D)
7446 });
7447 fidl::decode!(
7448 fidl_fuchsia_wlan_ieee80211__common::ReasonCode,
7449 D,
7450 val_ref,
7451 decoder,
7452 inner_offset,
7453 inner_depth
7454 )?;
7455 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7456 {
7457 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7458 }
7459 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7460 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7461 }
7462 }
7463
7464 next_offset += envelope_size;
7465 _next_ordinal_to_read += 1;
7466 if next_offset >= end_offset {
7467 return Ok(());
7468 }
7469
7470 while _next_ordinal_to_read < 3 {
7472 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7473 _next_ordinal_to_read += 1;
7474 next_offset += envelope_size;
7475 }
7476
7477 let next_out_of_line = decoder.next_out_of_line();
7478 let handles_before = decoder.remaining_handles();
7479 if let Some((inlined, num_bytes, num_handles)) =
7480 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7481 {
7482 let member_inline_size =
7483 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7484 if inlined != (member_inline_size <= 4) {
7485 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7486 }
7487 let inner_offset;
7488 let mut inner_depth = depth.clone();
7489 if inlined {
7490 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7491 inner_offset = next_offset;
7492 } else {
7493 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7494 inner_depth.increment()?;
7495 }
7496 let val_ref =
7497 self.locally_initiated.get_or_insert_with(|| fidl::new_empty!(bool, D));
7498 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
7499 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7500 {
7501 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7502 }
7503 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7504 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7505 }
7506 }
7507
7508 next_offset += envelope_size;
7509
7510 while next_offset < end_offset {
7512 _next_ordinal_to_read += 1;
7513 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7514 next_offset += envelope_size;
7515 }
7516
7517 Ok(())
7518 }
7519 }
7520
7521 impl WlanFullmacImplIfcDisassocConfRequest {
7522 #[inline(always)]
7523 fn max_ordinal_present(&self) -> u64 {
7524 if let Some(_) = self.status {
7525 return 1;
7526 }
7527 0
7528 }
7529 }
7530
7531 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcDisassocConfRequest {
7532 type Borrowed<'a> = &'a Self;
7533 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
7534 value
7535 }
7536 }
7537
7538 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcDisassocConfRequest {
7539 type Owned = Self;
7540
7541 #[inline(always)]
7542 fn inline_align(_context: fidl::encoding::Context) -> usize {
7543 8
7544 }
7545
7546 #[inline(always)]
7547 fn inline_size(_context: fidl::encoding::Context) -> usize {
7548 16
7549 }
7550 }
7551
7552 unsafe impl<D: fidl::encoding::ResourceDialect>
7553 fidl::encoding::Encode<WlanFullmacImplIfcDisassocConfRequest, D>
7554 for &WlanFullmacImplIfcDisassocConfRequest
7555 {
7556 unsafe fn encode(
7557 self,
7558 encoder: &mut fidl::encoding::Encoder<'_, D>,
7559 offset: usize,
7560 mut depth: fidl::encoding::Depth,
7561 ) -> fidl::Result<()> {
7562 encoder.debug_check_bounds::<WlanFullmacImplIfcDisassocConfRequest>(offset);
7563 let max_ordinal: u64 = self.max_ordinal_present();
7565 encoder.write_num(max_ordinal, offset);
7566 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
7567 if max_ordinal == 0 {
7569 return Ok(());
7570 }
7571 depth.increment()?;
7572 let envelope_size = 8;
7573 let bytes_len = max_ordinal as usize * envelope_size;
7574 #[allow(unused_variables)]
7575 let offset = encoder.out_of_line_offset(bytes_len);
7576 let mut _prev_end_offset: usize = 0;
7577 if 1 > max_ordinal {
7578 return Ok(());
7579 }
7580
7581 let cur_offset: usize = (1 - 1) * envelope_size;
7584
7585 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7587
7588 fidl::encoding::encode_in_envelope_optional::<i32, D>(
7593 self.status.as_ref().map(<i32 as fidl::encoding::ValueTypeMarker>::borrow),
7594 encoder,
7595 offset + cur_offset,
7596 depth,
7597 )?;
7598
7599 _prev_end_offset = cur_offset + envelope_size;
7600
7601 Ok(())
7602 }
7603 }
7604
7605 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
7606 for WlanFullmacImplIfcDisassocConfRequest
7607 {
7608 #[inline(always)]
7609 fn new_empty() -> Self {
7610 Self::default()
7611 }
7612
7613 unsafe fn decode(
7614 &mut self,
7615 decoder: &mut fidl::encoding::Decoder<'_, D>,
7616 offset: usize,
7617 mut depth: fidl::encoding::Depth,
7618 ) -> fidl::Result<()> {
7619 decoder.debug_check_bounds::<Self>(offset);
7620 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
7621 None => return Err(fidl::Error::NotNullable),
7622 Some(len) => len,
7623 };
7624 if len == 0 {
7626 return Ok(());
7627 };
7628 depth.increment()?;
7629 let envelope_size = 8;
7630 let bytes_len = len * envelope_size;
7631 let offset = decoder.out_of_line_offset(bytes_len)?;
7632 let mut _next_ordinal_to_read = 0;
7634 let mut next_offset = offset;
7635 let end_offset = offset + bytes_len;
7636 _next_ordinal_to_read += 1;
7637 if next_offset >= end_offset {
7638 return Ok(());
7639 }
7640
7641 while _next_ordinal_to_read < 1 {
7643 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7644 _next_ordinal_to_read += 1;
7645 next_offset += envelope_size;
7646 }
7647
7648 let next_out_of_line = decoder.next_out_of_line();
7649 let handles_before = decoder.remaining_handles();
7650 if let Some((inlined, num_bytes, num_handles)) =
7651 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7652 {
7653 let member_inline_size =
7654 <i32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7655 if inlined != (member_inline_size <= 4) {
7656 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7657 }
7658 let inner_offset;
7659 let mut inner_depth = depth.clone();
7660 if inlined {
7661 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7662 inner_offset = next_offset;
7663 } else {
7664 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7665 inner_depth.increment()?;
7666 }
7667 let val_ref = self.status.get_or_insert_with(|| fidl::new_empty!(i32, D));
7668 fidl::decode!(i32, D, val_ref, decoder, inner_offset, inner_depth)?;
7669 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7670 {
7671 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7672 }
7673 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7674 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7675 }
7676 }
7677
7678 next_offset += envelope_size;
7679
7680 while next_offset < end_offset {
7682 _next_ordinal_to_read += 1;
7683 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7684 next_offset += envelope_size;
7685 }
7686
7687 Ok(())
7688 }
7689 }
7690
7691 impl WlanFullmacImplIfcDisassocIndRequest {
7692 #[inline(always)]
7693 fn max_ordinal_present(&self) -> u64 {
7694 if let Some(_) = self.locally_initiated {
7695 return 3;
7696 }
7697 if let Some(_) = self.reason_code {
7698 return 2;
7699 }
7700 if let Some(_) = self.peer_sta_address {
7701 return 1;
7702 }
7703 0
7704 }
7705 }
7706
7707 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcDisassocIndRequest {
7708 type Borrowed<'a> = &'a Self;
7709 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
7710 value
7711 }
7712 }
7713
7714 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcDisassocIndRequest {
7715 type Owned = Self;
7716
7717 #[inline(always)]
7718 fn inline_align(_context: fidl::encoding::Context) -> usize {
7719 8
7720 }
7721
7722 #[inline(always)]
7723 fn inline_size(_context: fidl::encoding::Context) -> usize {
7724 16
7725 }
7726 }
7727
7728 unsafe impl<D: fidl::encoding::ResourceDialect>
7729 fidl::encoding::Encode<WlanFullmacImplIfcDisassocIndRequest, D>
7730 for &WlanFullmacImplIfcDisassocIndRequest
7731 {
7732 unsafe fn encode(
7733 self,
7734 encoder: &mut fidl::encoding::Encoder<'_, D>,
7735 offset: usize,
7736 mut depth: fidl::encoding::Depth,
7737 ) -> fidl::Result<()> {
7738 encoder.debug_check_bounds::<WlanFullmacImplIfcDisassocIndRequest>(offset);
7739 let max_ordinal: u64 = self.max_ordinal_present();
7741 encoder.write_num(max_ordinal, offset);
7742 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
7743 if max_ordinal == 0 {
7745 return Ok(());
7746 }
7747 depth.increment()?;
7748 let envelope_size = 8;
7749 let bytes_len = max_ordinal as usize * envelope_size;
7750 #[allow(unused_variables)]
7751 let offset = encoder.out_of_line_offset(bytes_len);
7752 let mut _prev_end_offset: usize = 0;
7753 if 1 > max_ordinal {
7754 return Ok(());
7755 }
7756
7757 let cur_offset: usize = (1 - 1) * envelope_size;
7760
7761 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7763
7764 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
7769 self.peer_sta_address
7770 .as_ref()
7771 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
7772 encoder,
7773 offset + cur_offset,
7774 depth,
7775 )?;
7776
7777 _prev_end_offset = cur_offset + envelope_size;
7778 if 2 > max_ordinal {
7779 return Ok(());
7780 }
7781
7782 let cur_offset: usize = (2 - 1) * envelope_size;
7785
7786 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7788
7789 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_ieee80211__common::ReasonCode, D>(
7794 self.reason_code.as_ref().map(<fidl_fuchsia_wlan_ieee80211__common::ReasonCode as fidl::encoding::ValueTypeMarker>::borrow),
7795 encoder, offset + cur_offset, depth
7796 )?;
7797
7798 _prev_end_offset = cur_offset + envelope_size;
7799 if 3 > max_ordinal {
7800 return Ok(());
7801 }
7802
7803 let cur_offset: usize = (3 - 1) * envelope_size;
7806
7807 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7809
7810 fidl::encoding::encode_in_envelope_optional::<bool, D>(
7815 self.locally_initiated
7816 .as_ref()
7817 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
7818 encoder,
7819 offset + cur_offset,
7820 depth,
7821 )?;
7822
7823 _prev_end_offset = cur_offset + envelope_size;
7824
7825 Ok(())
7826 }
7827 }
7828
7829 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
7830 for WlanFullmacImplIfcDisassocIndRequest
7831 {
7832 #[inline(always)]
7833 fn new_empty() -> Self {
7834 Self::default()
7835 }
7836
7837 unsafe fn decode(
7838 &mut self,
7839 decoder: &mut fidl::encoding::Decoder<'_, D>,
7840 offset: usize,
7841 mut depth: fidl::encoding::Depth,
7842 ) -> fidl::Result<()> {
7843 decoder.debug_check_bounds::<Self>(offset);
7844 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
7845 None => return Err(fidl::Error::NotNullable),
7846 Some(len) => len,
7847 };
7848 if len == 0 {
7850 return Ok(());
7851 };
7852 depth.increment()?;
7853 let envelope_size = 8;
7854 let bytes_len = len * envelope_size;
7855 let offset = decoder.out_of_line_offset(bytes_len)?;
7856 let mut _next_ordinal_to_read = 0;
7858 let mut next_offset = offset;
7859 let end_offset = offset + bytes_len;
7860 _next_ordinal_to_read += 1;
7861 if next_offset >= end_offset {
7862 return Ok(());
7863 }
7864
7865 while _next_ordinal_to_read < 1 {
7867 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7868 _next_ordinal_to_read += 1;
7869 next_offset += envelope_size;
7870 }
7871
7872 let next_out_of_line = decoder.next_out_of_line();
7873 let handles_before = decoder.remaining_handles();
7874 if let Some((inlined, num_bytes, num_handles)) =
7875 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7876 {
7877 let member_inline_size =
7878 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
7879 decoder.context,
7880 );
7881 if inlined != (member_inline_size <= 4) {
7882 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7883 }
7884 let inner_offset;
7885 let mut inner_depth = depth.clone();
7886 if inlined {
7887 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7888 inner_offset = next_offset;
7889 } else {
7890 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7891 inner_depth.increment()?;
7892 }
7893 let val_ref = self
7894 .peer_sta_address
7895 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
7896 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
7897 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7898 {
7899 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7900 }
7901 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7902 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7903 }
7904 }
7905
7906 next_offset += envelope_size;
7907 _next_ordinal_to_read += 1;
7908 if next_offset >= end_offset {
7909 return Ok(());
7910 }
7911
7912 while _next_ordinal_to_read < 2 {
7914 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7915 _next_ordinal_to_read += 1;
7916 next_offset += envelope_size;
7917 }
7918
7919 let next_out_of_line = decoder.next_out_of_line();
7920 let handles_before = decoder.remaining_handles();
7921 if let Some((inlined, num_bytes, num_handles)) =
7922 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7923 {
7924 let member_inline_size = <fidl_fuchsia_wlan_ieee80211__common::ReasonCode as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7925 if inlined != (member_inline_size <= 4) {
7926 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7927 }
7928 let inner_offset;
7929 let mut inner_depth = depth.clone();
7930 if inlined {
7931 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7932 inner_offset = next_offset;
7933 } else {
7934 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7935 inner_depth.increment()?;
7936 }
7937 let val_ref = self.reason_code.get_or_insert_with(|| {
7938 fidl::new_empty!(fidl_fuchsia_wlan_ieee80211__common::ReasonCode, D)
7939 });
7940 fidl::decode!(
7941 fidl_fuchsia_wlan_ieee80211__common::ReasonCode,
7942 D,
7943 val_ref,
7944 decoder,
7945 inner_offset,
7946 inner_depth
7947 )?;
7948 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7949 {
7950 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7951 }
7952 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7953 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7954 }
7955 }
7956
7957 next_offset += envelope_size;
7958 _next_ordinal_to_read += 1;
7959 if next_offset >= end_offset {
7960 return Ok(());
7961 }
7962
7963 while _next_ordinal_to_read < 3 {
7965 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7966 _next_ordinal_to_read += 1;
7967 next_offset += envelope_size;
7968 }
7969
7970 let next_out_of_line = decoder.next_out_of_line();
7971 let handles_before = decoder.remaining_handles();
7972 if let Some((inlined, num_bytes, num_handles)) =
7973 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7974 {
7975 let member_inline_size =
7976 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7977 if inlined != (member_inline_size <= 4) {
7978 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7979 }
7980 let inner_offset;
7981 let mut inner_depth = depth.clone();
7982 if inlined {
7983 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7984 inner_offset = next_offset;
7985 } else {
7986 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7987 inner_depth.increment()?;
7988 }
7989 let val_ref =
7990 self.locally_initiated.get_or_insert_with(|| fidl::new_empty!(bool, D));
7991 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
7992 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7993 {
7994 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7995 }
7996 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7997 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7998 }
7999 }
8000
8001 next_offset += envelope_size;
8002
8003 while next_offset < end_offset {
8005 _next_ordinal_to_read += 1;
8006 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8007 next_offset += envelope_size;
8008 }
8009
8010 Ok(())
8011 }
8012 }
8013
8014 impl WlanFullmacImplIfcEapolConfRequest {
8015 #[inline(always)]
8016 fn max_ordinal_present(&self) -> u64 {
8017 if let Some(_) = self.dst_addr {
8018 return 2;
8019 }
8020 if let Some(_) = self.result_code {
8021 return 1;
8022 }
8023 0
8024 }
8025 }
8026
8027 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcEapolConfRequest {
8028 type Borrowed<'a> = &'a Self;
8029 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
8030 value
8031 }
8032 }
8033
8034 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcEapolConfRequest {
8035 type Owned = Self;
8036
8037 #[inline(always)]
8038 fn inline_align(_context: fidl::encoding::Context) -> usize {
8039 8
8040 }
8041
8042 #[inline(always)]
8043 fn inline_size(_context: fidl::encoding::Context) -> usize {
8044 16
8045 }
8046 }
8047
8048 unsafe impl<D: fidl::encoding::ResourceDialect>
8049 fidl::encoding::Encode<WlanFullmacImplIfcEapolConfRequest, D>
8050 for &WlanFullmacImplIfcEapolConfRequest
8051 {
8052 unsafe fn encode(
8053 self,
8054 encoder: &mut fidl::encoding::Encoder<'_, D>,
8055 offset: usize,
8056 mut depth: fidl::encoding::Depth,
8057 ) -> fidl::Result<()> {
8058 encoder.debug_check_bounds::<WlanFullmacImplIfcEapolConfRequest>(offset);
8059 let max_ordinal: u64 = self.max_ordinal_present();
8061 encoder.write_num(max_ordinal, offset);
8062 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
8063 if max_ordinal == 0 {
8065 return Ok(());
8066 }
8067 depth.increment()?;
8068 let envelope_size = 8;
8069 let bytes_len = max_ordinal as usize * envelope_size;
8070 #[allow(unused_variables)]
8071 let offset = encoder.out_of_line_offset(bytes_len);
8072 let mut _prev_end_offset: usize = 0;
8073 if 1 > max_ordinal {
8074 return Ok(());
8075 }
8076
8077 let cur_offset: usize = (1 - 1) * envelope_size;
8080
8081 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8083
8084 fidl::encoding::encode_in_envelope_optional::<EapolTxResult, D>(
8089 self.result_code
8090 .as_ref()
8091 .map(<EapolTxResult as fidl::encoding::ValueTypeMarker>::borrow),
8092 encoder,
8093 offset + cur_offset,
8094 depth,
8095 )?;
8096
8097 _prev_end_offset = cur_offset + envelope_size;
8098 if 2 > max_ordinal {
8099 return Ok(());
8100 }
8101
8102 let cur_offset: usize = (2 - 1) * envelope_size;
8105
8106 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8108
8109 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
8114 self.dst_addr
8115 .as_ref()
8116 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
8117 encoder,
8118 offset + cur_offset,
8119 depth,
8120 )?;
8121
8122 _prev_end_offset = cur_offset + envelope_size;
8123
8124 Ok(())
8125 }
8126 }
8127
8128 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
8129 for WlanFullmacImplIfcEapolConfRequest
8130 {
8131 #[inline(always)]
8132 fn new_empty() -> Self {
8133 Self::default()
8134 }
8135
8136 unsafe fn decode(
8137 &mut self,
8138 decoder: &mut fidl::encoding::Decoder<'_, D>,
8139 offset: usize,
8140 mut depth: fidl::encoding::Depth,
8141 ) -> fidl::Result<()> {
8142 decoder.debug_check_bounds::<Self>(offset);
8143 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
8144 None => return Err(fidl::Error::NotNullable),
8145 Some(len) => len,
8146 };
8147 if len == 0 {
8149 return Ok(());
8150 };
8151 depth.increment()?;
8152 let envelope_size = 8;
8153 let bytes_len = len * envelope_size;
8154 let offset = decoder.out_of_line_offset(bytes_len)?;
8155 let mut _next_ordinal_to_read = 0;
8157 let mut next_offset = offset;
8158 let end_offset = offset + bytes_len;
8159 _next_ordinal_to_read += 1;
8160 if next_offset >= end_offset {
8161 return Ok(());
8162 }
8163
8164 while _next_ordinal_to_read < 1 {
8166 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8167 _next_ordinal_to_read += 1;
8168 next_offset += envelope_size;
8169 }
8170
8171 let next_out_of_line = decoder.next_out_of_line();
8172 let handles_before = decoder.remaining_handles();
8173 if let Some((inlined, num_bytes, num_handles)) =
8174 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8175 {
8176 let member_inline_size =
8177 <EapolTxResult as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8178 if inlined != (member_inline_size <= 4) {
8179 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8180 }
8181 let inner_offset;
8182 let mut inner_depth = depth.clone();
8183 if inlined {
8184 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8185 inner_offset = next_offset;
8186 } else {
8187 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8188 inner_depth.increment()?;
8189 }
8190 let val_ref =
8191 self.result_code.get_or_insert_with(|| fidl::new_empty!(EapolTxResult, D));
8192 fidl::decode!(EapolTxResult, D, val_ref, decoder, inner_offset, inner_depth)?;
8193 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8194 {
8195 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8196 }
8197 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8198 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8199 }
8200 }
8201
8202 next_offset += envelope_size;
8203 _next_ordinal_to_read += 1;
8204 if next_offset >= end_offset {
8205 return Ok(());
8206 }
8207
8208 while _next_ordinal_to_read < 2 {
8210 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8211 _next_ordinal_to_read += 1;
8212 next_offset += envelope_size;
8213 }
8214
8215 let next_out_of_line = decoder.next_out_of_line();
8216 let handles_before = decoder.remaining_handles();
8217 if let Some((inlined, num_bytes, num_handles)) =
8218 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8219 {
8220 let member_inline_size =
8221 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
8222 decoder.context,
8223 );
8224 if inlined != (member_inline_size <= 4) {
8225 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8226 }
8227 let inner_offset;
8228 let mut inner_depth = depth.clone();
8229 if inlined {
8230 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8231 inner_offset = next_offset;
8232 } else {
8233 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8234 inner_depth.increment()?;
8235 }
8236 let val_ref = self
8237 .dst_addr
8238 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
8239 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
8240 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8241 {
8242 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8243 }
8244 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8245 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8246 }
8247 }
8248
8249 next_offset += envelope_size;
8250
8251 while next_offset < end_offset {
8253 _next_ordinal_to_read += 1;
8254 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8255 next_offset += envelope_size;
8256 }
8257
8258 Ok(())
8259 }
8260 }
8261
8262 impl WlanFullmacImplIfcEapolIndRequest {
8263 #[inline(always)]
8264 fn max_ordinal_present(&self) -> u64 {
8265 if let Some(_) = self.data {
8266 return 3;
8267 }
8268 if let Some(_) = self.dst_addr {
8269 return 2;
8270 }
8271 if let Some(_) = self.src_addr {
8272 return 1;
8273 }
8274 0
8275 }
8276 }
8277
8278 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcEapolIndRequest {
8279 type Borrowed<'a> = &'a Self;
8280 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
8281 value
8282 }
8283 }
8284
8285 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcEapolIndRequest {
8286 type Owned = Self;
8287
8288 #[inline(always)]
8289 fn inline_align(_context: fidl::encoding::Context) -> usize {
8290 8
8291 }
8292
8293 #[inline(always)]
8294 fn inline_size(_context: fidl::encoding::Context) -> usize {
8295 16
8296 }
8297 }
8298
8299 unsafe impl<D: fidl::encoding::ResourceDialect>
8300 fidl::encoding::Encode<WlanFullmacImplIfcEapolIndRequest, D>
8301 for &WlanFullmacImplIfcEapolIndRequest
8302 {
8303 unsafe fn encode(
8304 self,
8305 encoder: &mut fidl::encoding::Encoder<'_, D>,
8306 offset: usize,
8307 mut depth: fidl::encoding::Depth,
8308 ) -> fidl::Result<()> {
8309 encoder.debug_check_bounds::<WlanFullmacImplIfcEapolIndRequest>(offset);
8310 let max_ordinal: u64 = self.max_ordinal_present();
8312 encoder.write_num(max_ordinal, offset);
8313 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
8314 if max_ordinal == 0 {
8316 return Ok(());
8317 }
8318 depth.increment()?;
8319 let envelope_size = 8;
8320 let bytes_len = max_ordinal as usize * envelope_size;
8321 #[allow(unused_variables)]
8322 let offset = encoder.out_of_line_offset(bytes_len);
8323 let mut _prev_end_offset: usize = 0;
8324 if 1 > max_ordinal {
8325 return Ok(());
8326 }
8327
8328 let cur_offset: usize = (1 - 1) * envelope_size;
8331
8332 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8334
8335 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
8340 self.src_addr
8341 .as_ref()
8342 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
8343 encoder,
8344 offset + cur_offset,
8345 depth,
8346 )?;
8347
8348 _prev_end_offset = cur_offset + envelope_size;
8349 if 2 > max_ordinal {
8350 return Ok(());
8351 }
8352
8353 let cur_offset: usize = (2 - 1) * envelope_size;
8356
8357 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8359
8360 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
8365 self.dst_addr
8366 .as_ref()
8367 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
8368 encoder,
8369 offset + cur_offset,
8370 depth,
8371 )?;
8372
8373 _prev_end_offset = cur_offset + envelope_size;
8374 if 3 > max_ordinal {
8375 return Ok(());
8376 }
8377
8378 let cur_offset: usize = (3 - 1) * envelope_size;
8381
8382 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8384
8385 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<u8>, D>(
8390 self.data.as_ref().map(<fidl::encoding::UnboundedVector<u8> as fidl::encoding::ValueTypeMarker>::borrow),
8391 encoder, offset + cur_offset, depth
8392 )?;
8393
8394 _prev_end_offset = cur_offset + envelope_size;
8395
8396 Ok(())
8397 }
8398 }
8399
8400 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
8401 for WlanFullmacImplIfcEapolIndRequest
8402 {
8403 #[inline(always)]
8404 fn new_empty() -> Self {
8405 Self::default()
8406 }
8407
8408 unsafe fn decode(
8409 &mut self,
8410 decoder: &mut fidl::encoding::Decoder<'_, D>,
8411 offset: usize,
8412 mut depth: fidl::encoding::Depth,
8413 ) -> fidl::Result<()> {
8414 decoder.debug_check_bounds::<Self>(offset);
8415 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
8416 None => return Err(fidl::Error::NotNullable),
8417 Some(len) => len,
8418 };
8419 if len == 0 {
8421 return Ok(());
8422 };
8423 depth.increment()?;
8424 let envelope_size = 8;
8425 let bytes_len = len * envelope_size;
8426 let offset = decoder.out_of_line_offset(bytes_len)?;
8427 let mut _next_ordinal_to_read = 0;
8429 let mut next_offset = offset;
8430 let end_offset = offset + bytes_len;
8431 _next_ordinal_to_read += 1;
8432 if next_offset >= end_offset {
8433 return Ok(());
8434 }
8435
8436 while _next_ordinal_to_read < 1 {
8438 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8439 _next_ordinal_to_read += 1;
8440 next_offset += envelope_size;
8441 }
8442
8443 let next_out_of_line = decoder.next_out_of_line();
8444 let handles_before = decoder.remaining_handles();
8445 if let Some((inlined, num_bytes, num_handles)) =
8446 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8447 {
8448 let member_inline_size =
8449 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
8450 decoder.context,
8451 );
8452 if inlined != (member_inline_size <= 4) {
8453 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8454 }
8455 let inner_offset;
8456 let mut inner_depth = depth.clone();
8457 if inlined {
8458 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8459 inner_offset = next_offset;
8460 } else {
8461 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8462 inner_depth.increment()?;
8463 }
8464 let val_ref = self
8465 .src_addr
8466 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
8467 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
8468 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8469 {
8470 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8471 }
8472 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8473 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8474 }
8475 }
8476
8477 next_offset += envelope_size;
8478 _next_ordinal_to_read += 1;
8479 if next_offset >= end_offset {
8480 return Ok(());
8481 }
8482
8483 while _next_ordinal_to_read < 2 {
8485 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8486 _next_ordinal_to_read += 1;
8487 next_offset += envelope_size;
8488 }
8489
8490 let next_out_of_line = decoder.next_out_of_line();
8491 let handles_before = decoder.remaining_handles();
8492 if let Some((inlined, num_bytes, num_handles)) =
8493 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8494 {
8495 let member_inline_size =
8496 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
8497 decoder.context,
8498 );
8499 if inlined != (member_inline_size <= 4) {
8500 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8501 }
8502 let inner_offset;
8503 let mut inner_depth = depth.clone();
8504 if inlined {
8505 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8506 inner_offset = next_offset;
8507 } else {
8508 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8509 inner_depth.increment()?;
8510 }
8511 let val_ref = self
8512 .dst_addr
8513 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
8514 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
8515 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8516 {
8517 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8518 }
8519 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8520 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8521 }
8522 }
8523
8524 next_offset += envelope_size;
8525 _next_ordinal_to_read += 1;
8526 if next_offset >= end_offset {
8527 return Ok(());
8528 }
8529
8530 while _next_ordinal_to_read < 3 {
8532 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8533 _next_ordinal_to_read += 1;
8534 next_offset += envelope_size;
8535 }
8536
8537 let next_out_of_line = decoder.next_out_of_line();
8538 let handles_before = decoder.remaining_handles();
8539 if let Some((inlined, num_bytes, num_handles)) =
8540 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8541 {
8542 let member_inline_size = <fidl::encoding::UnboundedVector<u8> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8543 if inlined != (member_inline_size <= 4) {
8544 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8545 }
8546 let inner_offset;
8547 let mut inner_depth = depth.clone();
8548 if inlined {
8549 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8550 inner_offset = next_offset;
8551 } else {
8552 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8553 inner_depth.increment()?;
8554 }
8555 let val_ref = self.data.get_or_insert_with(|| {
8556 fidl::new_empty!(fidl::encoding::UnboundedVector<u8>, D)
8557 });
8558 fidl::decode!(
8559 fidl::encoding::UnboundedVector<u8>,
8560 D,
8561 val_ref,
8562 decoder,
8563 inner_offset,
8564 inner_depth
8565 )?;
8566 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8567 {
8568 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8569 }
8570 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8571 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8572 }
8573 }
8574
8575 next_offset += envelope_size;
8576
8577 while next_offset < end_offset {
8579 _next_ordinal_to_read += 1;
8580 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8581 next_offset += envelope_size;
8582 }
8583
8584 Ok(())
8585 }
8586 }
8587
8588 impl WlanFullmacImplIfcOnPmkAvailableRequest {
8589 #[inline(always)]
8590 fn max_ordinal_present(&self) -> u64 {
8591 if let Some(_) = self.pmkid {
8592 return 2;
8593 }
8594 if let Some(_) = self.pmk {
8595 return 1;
8596 }
8597 0
8598 }
8599 }
8600
8601 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcOnPmkAvailableRequest {
8602 type Borrowed<'a> = &'a Self;
8603 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
8604 value
8605 }
8606 }
8607
8608 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcOnPmkAvailableRequest {
8609 type Owned = Self;
8610
8611 #[inline(always)]
8612 fn inline_align(_context: fidl::encoding::Context) -> usize {
8613 8
8614 }
8615
8616 #[inline(always)]
8617 fn inline_size(_context: fidl::encoding::Context) -> usize {
8618 16
8619 }
8620 }
8621
8622 unsafe impl<D: fidl::encoding::ResourceDialect>
8623 fidl::encoding::Encode<WlanFullmacImplIfcOnPmkAvailableRequest, D>
8624 for &WlanFullmacImplIfcOnPmkAvailableRequest
8625 {
8626 unsafe fn encode(
8627 self,
8628 encoder: &mut fidl::encoding::Encoder<'_, D>,
8629 offset: usize,
8630 mut depth: fidl::encoding::Depth,
8631 ) -> fidl::Result<()> {
8632 encoder.debug_check_bounds::<WlanFullmacImplIfcOnPmkAvailableRequest>(offset);
8633 let max_ordinal: u64 = self.max_ordinal_present();
8635 encoder.write_num(max_ordinal, offset);
8636 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
8637 if max_ordinal == 0 {
8639 return Ok(());
8640 }
8641 depth.increment()?;
8642 let envelope_size = 8;
8643 let bytes_len = max_ordinal as usize * envelope_size;
8644 #[allow(unused_variables)]
8645 let offset = encoder.out_of_line_offset(bytes_len);
8646 let mut _prev_end_offset: usize = 0;
8647 if 1 > max_ordinal {
8648 return Ok(());
8649 }
8650
8651 let cur_offset: usize = (1 - 1) * envelope_size;
8654
8655 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8657
8658 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<u8>, D>(
8663 self.pmk.as_ref().map(<fidl::encoding::UnboundedVector<u8> as fidl::encoding::ValueTypeMarker>::borrow),
8664 encoder, offset + cur_offset, depth
8665 )?;
8666
8667 _prev_end_offset = cur_offset + envelope_size;
8668 if 2 > max_ordinal {
8669 return Ok(());
8670 }
8671
8672 let cur_offset: usize = (2 - 1) * envelope_size;
8675
8676 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8678
8679 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<u8>, D>(
8684 self.pmkid.as_ref().map(<fidl::encoding::UnboundedVector<u8> as fidl::encoding::ValueTypeMarker>::borrow),
8685 encoder, offset + cur_offset, depth
8686 )?;
8687
8688 _prev_end_offset = cur_offset + envelope_size;
8689
8690 Ok(())
8691 }
8692 }
8693
8694 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
8695 for WlanFullmacImplIfcOnPmkAvailableRequest
8696 {
8697 #[inline(always)]
8698 fn new_empty() -> Self {
8699 Self::default()
8700 }
8701
8702 unsafe fn decode(
8703 &mut self,
8704 decoder: &mut fidl::encoding::Decoder<'_, D>,
8705 offset: usize,
8706 mut depth: fidl::encoding::Depth,
8707 ) -> fidl::Result<()> {
8708 decoder.debug_check_bounds::<Self>(offset);
8709 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
8710 None => return Err(fidl::Error::NotNullable),
8711 Some(len) => len,
8712 };
8713 if len == 0 {
8715 return Ok(());
8716 };
8717 depth.increment()?;
8718 let envelope_size = 8;
8719 let bytes_len = len * envelope_size;
8720 let offset = decoder.out_of_line_offset(bytes_len)?;
8721 let mut _next_ordinal_to_read = 0;
8723 let mut next_offset = offset;
8724 let end_offset = offset + bytes_len;
8725 _next_ordinal_to_read += 1;
8726 if next_offset >= end_offset {
8727 return Ok(());
8728 }
8729
8730 while _next_ordinal_to_read < 1 {
8732 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8733 _next_ordinal_to_read += 1;
8734 next_offset += envelope_size;
8735 }
8736
8737 let next_out_of_line = decoder.next_out_of_line();
8738 let handles_before = decoder.remaining_handles();
8739 if let Some((inlined, num_bytes, num_handles)) =
8740 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8741 {
8742 let member_inline_size = <fidl::encoding::UnboundedVector<u8> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8743 if inlined != (member_inline_size <= 4) {
8744 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8745 }
8746 let inner_offset;
8747 let mut inner_depth = depth.clone();
8748 if inlined {
8749 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8750 inner_offset = next_offset;
8751 } else {
8752 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8753 inner_depth.increment()?;
8754 }
8755 let val_ref = self.pmk.get_or_insert_with(|| {
8756 fidl::new_empty!(fidl::encoding::UnboundedVector<u8>, D)
8757 });
8758 fidl::decode!(
8759 fidl::encoding::UnboundedVector<u8>,
8760 D,
8761 val_ref,
8762 decoder,
8763 inner_offset,
8764 inner_depth
8765 )?;
8766 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8767 {
8768 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8769 }
8770 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8771 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8772 }
8773 }
8774
8775 next_offset += envelope_size;
8776 _next_ordinal_to_read += 1;
8777 if next_offset >= end_offset {
8778 return Ok(());
8779 }
8780
8781 while _next_ordinal_to_read < 2 {
8783 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8784 _next_ordinal_to_read += 1;
8785 next_offset += envelope_size;
8786 }
8787
8788 let next_out_of_line = decoder.next_out_of_line();
8789 let handles_before = decoder.remaining_handles();
8790 if let Some((inlined, num_bytes, num_handles)) =
8791 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8792 {
8793 let member_inline_size = <fidl::encoding::UnboundedVector<u8> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8794 if inlined != (member_inline_size <= 4) {
8795 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8796 }
8797 let inner_offset;
8798 let mut inner_depth = depth.clone();
8799 if inlined {
8800 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8801 inner_offset = next_offset;
8802 } else {
8803 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8804 inner_depth.increment()?;
8805 }
8806 let val_ref = self.pmkid.get_or_insert_with(|| {
8807 fidl::new_empty!(fidl::encoding::UnboundedVector<u8>, D)
8808 });
8809 fidl::decode!(
8810 fidl::encoding::UnboundedVector<u8>,
8811 D,
8812 val_ref,
8813 decoder,
8814 inner_offset,
8815 inner_depth
8816 )?;
8817 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8818 {
8819 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8820 }
8821 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8822 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8823 }
8824 }
8825
8826 next_offset += envelope_size;
8827
8828 while next_offset < end_offset {
8830 _next_ordinal_to_read += 1;
8831 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8832 next_offset += envelope_size;
8833 }
8834
8835 Ok(())
8836 }
8837 }
8838
8839 impl WlanFullmacImplIfcOnScanEndRequest {
8840 #[inline(always)]
8841 fn max_ordinal_present(&self) -> u64 {
8842 if let Some(_) = self.code {
8843 return 2;
8844 }
8845 if let Some(_) = self.txn_id {
8846 return 1;
8847 }
8848 0
8849 }
8850 }
8851
8852 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcOnScanEndRequest {
8853 type Borrowed<'a> = &'a Self;
8854 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
8855 value
8856 }
8857 }
8858
8859 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcOnScanEndRequest {
8860 type Owned = Self;
8861
8862 #[inline(always)]
8863 fn inline_align(_context: fidl::encoding::Context) -> usize {
8864 8
8865 }
8866
8867 #[inline(always)]
8868 fn inline_size(_context: fidl::encoding::Context) -> usize {
8869 16
8870 }
8871 }
8872
8873 unsafe impl<D: fidl::encoding::ResourceDialect>
8874 fidl::encoding::Encode<WlanFullmacImplIfcOnScanEndRequest, D>
8875 for &WlanFullmacImplIfcOnScanEndRequest
8876 {
8877 unsafe fn encode(
8878 self,
8879 encoder: &mut fidl::encoding::Encoder<'_, D>,
8880 offset: usize,
8881 mut depth: fidl::encoding::Depth,
8882 ) -> fidl::Result<()> {
8883 encoder.debug_check_bounds::<WlanFullmacImplIfcOnScanEndRequest>(offset);
8884 let max_ordinal: u64 = self.max_ordinal_present();
8886 encoder.write_num(max_ordinal, offset);
8887 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
8888 if max_ordinal == 0 {
8890 return Ok(());
8891 }
8892 depth.increment()?;
8893 let envelope_size = 8;
8894 let bytes_len = max_ordinal as usize * envelope_size;
8895 #[allow(unused_variables)]
8896 let offset = encoder.out_of_line_offset(bytes_len);
8897 let mut _prev_end_offset: usize = 0;
8898 if 1 > max_ordinal {
8899 return Ok(());
8900 }
8901
8902 let cur_offset: usize = (1 - 1) * envelope_size;
8905
8906 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8908
8909 fidl::encoding::encode_in_envelope_optional::<u64, D>(
8914 self.txn_id.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
8915 encoder,
8916 offset + cur_offset,
8917 depth,
8918 )?;
8919
8920 _prev_end_offset = cur_offset + envelope_size;
8921 if 2 > max_ordinal {
8922 return Ok(());
8923 }
8924
8925 let cur_offset: usize = (2 - 1) * envelope_size;
8928
8929 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8931
8932 fidl::encoding::encode_in_envelope_optional::<WlanScanResult, D>(
8937 self.code.as_ref().map(<WlanScanResult as fidl::encoding::ValueTypeMarker>::borrow),
8938 encoder,
8939 offset + cur_offset,
8940 depth,
8941 )?;
8942
8943 _prev_end_offset = cur_offset + envelope_size;
8944
8945 Ok(())
8946 }
8947 }
8948
8949 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
8950 for WlanFullmacImplIfcOnScanEndRequest
8951 {
8952 #[inline(always)]
8953 fn new_empty() -> Self {
8954 Self::default()
8955 }
8956
8957 unsafe fn decode(
8958 &mut self,
8959 decoder: &mut fidl::encoding::Decoder<'_, D>,
8960 offset: usize,
8961 mut depth: fidl::encoding::Depth,
8962 ) -> fidl::Result<()> {
8963 decoder.debug_check_bounds::<Self>(offset);
8964 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
8965 None => return Err(fidl::Error::NotNullable),
8966 Some(len) => len,
8967 };
8968 if len == 0 {
8970 return Ok(());
8971 };
8972 depth.increment()?;
8973 let envelope_size = 8;
8974 let bytes_len = len * envelope_size;
8975 let offset = decoder.out_of_line_offset(bytes_len)?;
8976 let mut _next_ordinal_to_read = 0;
8978 let mut next_offset = offset;
8979 let end_offset = offset + bytes_len;
8980 _next_ordinal_to_read += 1;
8981 if next_offset >= end_offset {
8982 return Ok(());
8983 }
8984
8985 while _next_ordinal_to_read < 1 {
8987 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8988 _next_ordinal_to_read += 1;
8989 next_offset += envelope_size;
8990 }
8991
8992 let next_out_of_line = decoder.next_out_of_line();
8993 let handles_before = decoder.remaining_handles();
8994 if let Some((inlined, num_bytes, num_handles)) =
8995 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8996 {
8997 let member_inline_size =
8998 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8999 if inlined != (member_inline_size <= 4) {
9000 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9001 }
9002 let inner_offset;
9003 let mut inner_depth = depth.clone();
9004 if inlined {
9005 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9006 inner_offset = next_offset;
9007 } else {
9008 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9009 inner_depth.increment()?;
9010 }
9011 let val_ref = self.txn_id.get_or_insert_with(|| fidl::new_empty!(u64, D));
9012 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
9013 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9014 {
9015 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9016 }
9017 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9018 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9019 }
9020 }
9021
9022 next_offset += envelope_size;
9023 _next_ordinal_to_read += 1;
9024 if next_offset >= end_offset {
9025 return Ok(());
9026 }
9027
9028 while _next_ordinal_to_read < 2 {
9030 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9031 _next_ordinal_to_read += 1;
9032 next_offset += envelope_size;
9033 }
9034
9035 let next_out_of_line = decoder.next_out_of_line();
9036 let handles_before = decoder.remaining_handles();
9037 if let Some((inlined, num_bytes, num_handles)) =
9038 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9039 {
9040 let member_inline_size =
9041 <WlanScanResult as fidl::encoding::TypeMarker>::inline_size(decoder.context);
9042 if inlined != (member_inline_size <= 4) {
9043 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9044 }
9045 let inner_offset;
9046 let mut inner_depth = depth.clone();
9047 if inlined {
9048 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9049 inner_offset = next_offset;
9050 } else {
9051 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9052 inner_depth.increment()?;
9053 }
9054 let val_ref = self.code.get_or_insert_with(|| fidl::new_empty!(WlanScanResult, D));
9055 fidl::decode!(WlanScanResult, D, val_ref, decoder, inner_offset, inner_depth)?;
9056 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9057 {
9058 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9059 }
9060 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9061 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9062 }
9063 }
9064
9065 next_offset += envelope_size;
9066
9067 while next_offset < end_offset {
9069 _next_ordinal_to_read += 1;
9070 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9071 next_offset += envelope_size;
9072 }
9073
9074 Ok(())
9075 }
9076 }
9077
9078 impl WlanFullmacImplIfcOnScanResultRequest {
9079 #[inline(always)]
9080 fn max_ordinal_present(&self) -> u64 {
9081 if let Some(_) = self.bss {
9082 return 3;
9083 }
9084 if let Some(_) = self.timestamp_nanos {
9085 return 2;
9086 }
9087 if let Some(_) = self.txn_id {
9088 return 1;
9089 }
9090 0
9091 }
9092 }
9093
9094 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcOnScanResultRequest {
9095 type Borrowed<'a> = &'a Self;
9096 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
9097 value
9098 }
9099 }
9100
9101 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcOnScanResultRequest {
9102 type Owned = Self;
9103
9104 #[inline(always)]
9105 fn inline_align(_context: fidl::encoding::Context) -> usize {
9106 8
9107 }
9108
9109 #[inline(always)]
9110 fn inline_size(_context: fidl::encoding::Context) -> usize {
9111 16
9112 }
9113 }
9114
9115 unsafe impl<D: fidl::encoding::ResourceDialect>
9116 fidl::encoding::Encode<WlanFullmacImplIfcOnScanResultRequest, D>
9117 for &WlanFullmacImplIfcOnScanResultRequest
9118 {
9119 unsafe fn encode(
9120 self,
9121 encoder: &mut fidl::encoding::Encoder<'_, D>,
9122 offset: usize,
9123 mut depth: fidl::encoding::Depth,
9124 ) -> fidl::Result<()> {
9125 encoder.debug_check_bounds::<WlanFullmacImplIfcOnScanResultRequest>(offset);
9126 let max_ordinal: u64 = self.max_ordinal_present();
9128 encoder.write_num(max_ordinal, offset);
9129 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
9130 if max_ordinal == 0 {
9132 return Ok(());
9133 }
9134 depth.increment()?;
9135 let envelope_size = 8;
9136 let bytes_len = max_ordinal as usize * envelope_size;
9137 #[allow(unused_variables)]
9138 let offset = encoder.out_of_line_offset(bytes_len);
9139 let mut _prev_end_offset: usize = 0;
9140 if 1 > max_ordinal {
9141 return Ok(());
9142 }
9143
9144 let cur_offset: usize = (1 - 1) * envelope_size;
9147
9148 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9150
9151 fidl::encoding::encode_in_envelope_optional::<u64, D>(
9156 self.txn_id.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
9157 encoder,
9158 offset + cur_offset,
9159 depth,
9160 )?;
9161
9162 _prev_end_offset = cur_offset + envelope_size;
9163 if 2 > max_ordinal {
9164 return Ok(());
9165 }
9166
9167 let cur_offset: usize = (2 - 1) * envelope_size;
9170
9171 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9173
9174 fidl::encoding::encode_in_envelope_optional::<i64, D>(
9179 self.timestamp_nanos.as_ref().map(<i64 as fidl::encoding::ValueTypeMarker>::borrow),
9180 encoder,
9181 offset + cur_offset,
9182 depth,
9183 )?;
9184
9185 _prev_end_offset = cur_offset + envelope_size;
9186 if 3 > max_ordinal {
9187 return Ok(());
9188 }
9189
9190 let cur_offset: usize = (3 - 1) * envelope_size;
9193
9194 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9196
9197 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_common__common::BssDescription, D>(
9202 self.bss.as_ref().map(<fidl_fuchsia_wlan_common__common::BssDescription as fidl::encoding::ValueTypeMarker>::borrow),
9203 encoder, offset + cur_offset, depth
9204 )?;
9205
9206 _prev_end_offset = cur_offset + envelope_size;
9207
9208 Ok(())
9209 }
9210 }
9211
9212 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
9213 for WlanFullmacImplIfcOnScanResultRequest
9214 {
9215 #[inline(always)]
9216 fn new_empty() -> Self {
9217 Self::default()
9218 }
9219
9220 unsafe fn decode(
9221 &mut self,
9222 decoder: &mut fidl::encoding::Decoder<'_, D>,
9223 offset: usize,
9224 mut depth: fidl::encoding::Depth,
9225 ) -> fidl::Result<()> {
9226 decoder.debug_check_bounds::<Self>(offset);
9227 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
9228 None => return Err(fidl::Error::NotNullable),
9229 Some(len) => len,
9230 };
9231 if len == 0 {
9233 return Ok(());
9234 };
9235 depth.increment()?;
9236 let envelope_size = 8;
9237 let bytes_len = len * envelope_size;
9238 let offset = decoder.out_of_line_offset(bytes_len)?;
9239 let mut _next_ordinal_to_read = 0;
9241 let mut next_offset = offset;
9242 let end_offset = offset + bytes_len;
9243 _next_ordinal_to_read += 1;
9244 if next_offset >= end_offset {
9245 return Ok(());
9246 }
9247
9248 while _next_ordinal_to_read < 1 {
9250 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9251 _next_ordinal_to_read += 1;
9252 next_offset += envelope_size;
9253 }
9254
9255 let next_out_of_line = decoder.next_out_of_line();
9256 let handles_before = decoder.remaining_handles();
9257 if let Some((inlined, num_bytes, num_handles)) =
9258 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9259 {
9260 let member_inline_size =
9261 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
9262 if inlined != (member_inline_size <= 4) {
9263 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9264 }
9265 let inner_offset;
9266 let mut inner_depth = depth.clone();
9267 if inlined {
9268 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9269 inner_offset = next_offset;
9270 } else {
9271 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9272 inner_depth.increment()?;
9273 }
9274 let val_ref = self.txn_id.get_or_insert_with(|| fidl::new_empty!(u64, D));
9275 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
9276 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9277 {
9278 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9279 }
9280 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9281 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9282 }
9283 }
9284
9285 next_offset += envelope_size;
9286 _next_ordinal_to_read += 1;
9287 if next_offset >= end_offset {
9288 return Ok(());
9289 }
9290
9291 while _next_ordinal_to_read < 2 {
9293 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9294 _next_ordinal_to_read += 1;
9295 next_offset += envelope_size;
9296 }
9297
9298 let next_out_of_line = decoder.next_out_of_line();
9299 let handles_before = decoder.remaining_handles();
9300 if let Some((inlined, num_bytes, num_handles)) =
9301 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9302 {
9303 let member_inline_size =
9304 <i64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
9305 if inlined != (member_inline_size <= 4) {
9306 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9307 }
9308 let inner_offset;
9309 let mut inner_depth = depth.clone();
9310 if inlined {
9311 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9312 inner_offset = next_offset;
9313 } else {
9314 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9315 inner_depth.increment()?;
9316 }
9317 let val_ref = self.timestamp_nanos.get_or_insert_with(|| fidl::new_empty!(i64, D));
9318 fidl::decode!(i64, D, val_ref, decoder, inner_offset, inner_depth)?;
9319 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9320 {
9321 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9322 }
9323 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9324 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9325 }
9326 }
9327
9328 next_offset += envelope_size;
9329 _next_ordinal_to_read += 1;
9330 if next_offset >= end_offset {
9331 return Ok(());
9332 }
9333
9334 while _next_ordinal_to_read < 3 {
9336 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9337 _next_ordinal_to_read += 1;
9338 next_offset += envelope_size;
9339 }
9340
9341 let next_out_of_line = decoder.next_out_of_line();
9342 let handles_before = decoder.remaining_handles();
9343 if let Some((inlined, num_bytes, num_handles)) =
9344 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9345 {
9346 let member_inline_size = <fidl_fuchsia_wlan_common__common::BssDescription as fidl::encoding::TypeMarker>::inline_size(decoder.context);
9347 if inlined != (member_inline_size <= 4) {
9348 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9349 }
9350 let inner_offset;
9351 let mut inner_depth = depth.clone();
9352 if inlined {
9353 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9354 inner_offset = next_offset;
9355 } else {
9356 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9357 inner_depth.increment()?;
9358 }
9359 let val_ref = self.bss.get_or_insert_with(|| {
9360 fidl::new_empty!(fidl_fuchsia_wlan_common__common::BssDescription, D)
9361 });
9362 fidl::decode!(
9363 fidl_fuchsia_wlan_common__common::BssDescription,
9364 D,
9365 val_ref,
9366 decoder,
9367 inner_offset,
9368 inner_depth
9369 )?;
9370 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9371 {
9372 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9373 }
9374 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9375 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9376 }
9377 }
9378
9379 next_offset += envelope_size;
9380
9381 while next_offset < end_offset {
9383 _next_ordinal_to_read += 1;
9384 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9385 next_offset += envelope_size;
9386 }
9387
9388 Ok(())
9389 }
9390 }
9391
9392 impl WlanFullmacImplIfcRoamConfRequest {
9393 #[inline(always)]
9394 fn max_ordinal_present(&self) -> u64 {
9395 if let Some(_) = self.association_ies {
9396 return 6;
9397 }
9398 if let Some(_) = self.association_id {
9399 return 5;
9400 }
9401 if let Some(_) = self.target_bss_authenticated {
9402 return 4;
9403 }
9404 if let Some(_) = self.original_association_maintained {
9405 return 3;
9406 }
9407 if let Some(_) = self.status_code {
9408 return 2;
9409 }
9410 if let Some(_) = self.selected_bssid {
9411 return 1;
9412 }
9413 0
9414 }
9415 }
9416
9417 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcRoamConfRequest {
9418 type Borrowed<'a> = &'a Self;
9419 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
9420 value
9421 }
9422 }
9423
9424 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcRoamConfRequest {
9425 type Owned = Self;
9426
9427 #[inline(always)]
9428 fn inline_align(_context: fidl::encoding::Context) -> usize {
9429 8
9430 }
9431
9432 #[inline(always)]
9433 fn inline_size(_context: fidl::encoding::Context) -> usize {
9434 16
9435 }
9436 }
9437
9438 unsafe impl<D: fidl::encoding::ResourceDialect>
9439 fidl::encoding::Encode<WlanFullmacImplIfcRoamConfRequest, D>
9440 for &WlanFullmacImplIfcRoamConfRequest
9441 {
9442 unsafe fn encode(
9443 self,
9444 encoder: &mut fidl::encoding::Encoder<'_, D>,
9445 offset: usize,
9446 mut depth: fidl::encoding::Depth,
9447 ) -> fidl::Result<()> {
9448 encoder.debug_check_bounds::<WlanFullmacImplIfcRoamConfRequest>(offset);
9449 let max_ordinal: u64 = self.max_ordinal_present();
9451 encoder.write_num(max_ordinal, offset);
9452 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
9453 if max_ordinal == 0 {
9455 return Ok(());
9456 }
9457 depth.increment()?;
9458 let envelope_size = 8;
9459 let bytes_len = max_ordinal as usize * envelope_size;
9460 #[allow(unused_variables)]
9461 let offset = encoder.out_of_line_offset(bytes_len);
9462 let mut _prev_end_offset: usize = 0;
9463 if 1 > max_ordinal {
9464 return Ok(());
9465 }
9466
9467 let cur_offset: usize = (1 - 1) * envelope_size;
9470
9471 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9473
9474 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
9479 self.selected_bssid
9480 .as_ref()
9481 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
9482 encoder,
9483 offset + cur_offset,
9484 depth,
9485 )?;
9486
9487 _prev_end_offset = cur_offset + envelope_size;
9488 if 2 > max_ordinal {
9489 return Ok(());
9490 }
9491
9492 let cur_offset: usize = (2 - 1) * envelope_size;
9495
9496 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9498
9499 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_ieee80211__common::StatusCode, D>(
9504 self.status_code.as_ref().map(<fidl_fuchsia_wlan_ieee80211__common::StatusCode as fidl::encoding::ValueTypeMarker>::borrow),
9505 encoder, offset + cur_offset, depth
9506 )?;
9507
9508 _prev_end_offset = cur_offset + envelope_size;
9509 if 3 > max_ordinal {
9510 return Ok(());
9511 }
9512
9513 let cur_offset: usize = (3 - 1) * envelope_size;
9516
9517 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9519
9520 fidl::encoding::encode_in_envelope_optional::<bool, D>(
9525 self.original_association_maintained
9526 .as_ref()
9527 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
9528 encoder,
9529 offset + cur_offset,
9530 depth,
9531 )?;
9532
9533 _prev_end_offset = cur_offset + envelope_size;
9534 if 4 > max_ordinal {
9535 return Ok(());
9536 }
9537
9538 let cur_offset: usize = (4 - 1) * envelope_size;
9541
9542 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9544
9545 fidl::encoding::encode_in_envelope_optional::<bool, D>(
9550 self.target_bss_authenticated
9551 .as_ref()
9552 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
9553 encoder,
9554 offset + cur_offset,
9555 depth,
9556 )?;
9557
9558 _prev_end_offset = cur_offset + envelope_size;
9559 if 5 > max_ordinal {
9560 return Ok(());
9561 }
9562
9563 let cur_offset: usize = (5 - 1) * envelope_size;
9566
9567 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9569
9570 fidl::encoding::encode_in_envelope_optional::<u16, D>(
9575 self.association_id.as_ref().map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
9576 encoder,
9577 offset + cur_offset,
9578 depth,
9579 )?;
9580
9581 _prev_end_offset = cur_offset + envelope_size;
9582 if 6 > max_ordinal {
9583 return Ok(());
9584 }
9585
9586 let cur_offset: usize = (6 - 1) * envelope_size;
9589
9590 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9592
9593 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<u8>, D>(
9598 self.association_ies.as_ref().map(<fidl::encoding::UnboundedVector<u8> as fidl::encoding::ValueTypeMarker>::borrow),
9599 encoder, offset + cur_offset, depth
9600 )?;
9601
9602 _prev_end_offset = cur_offset + envelope_size;
9603
9604 Ok(())
9605 }
9606 }
9607
9608 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
9609 for WlanFullmacImplIfcRoamConfRequest
9610 {
9611 #[inline(always)]
9612 fn new_empty() -> Self {
9613 Self::default()
9614 }
9615
9616 unsafe fn decode(
9617 &mut self,
9618 decoder: &mut fidl::encoding::Decoder<'_, D>,
9619 offset: usize,
9620 mut depth: fidl::encoding::Depth,
9621 ) -> fidl::Result<()> {
9622 decoder.debug_check_bounds::<Self>(offset);
9623 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
9624 None => return Err(fidl::Error::NotNullable),
9625 Some(len) => len,
9626 };
9627 if len == 0 {
9629 return Ok(());
9630 };
9631 depth.increment()?;
9632 let envelope_size = 8;
9633 let bytes_len = len * envelope_size;
9634 let offset = decoder.out_of_line_offset(bytes_len)?;
9635 let mut _next_ordinal_to_read = 0;
9637 let mut next_offset = offset;
9638 let end_offset = offset + bytes_len;
9639 _next_ordinal_to_read += 1;
9640 if next_offset >= end_offset {
9641 return Ok(());
9642 }
9643
9644 while _next_ordinal_to_read < 1 {
9646 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9647 _next_ordinal_to_read += 1;
9648 next_offset += envelope_size;
9649 }
9650
9651 let next_out_of_line = decoder.next_out_of_line();
9652 let handles_before = decoder.remaining_handles();
9653 if let Some((inlined, num_bytes, num_handles)) =
9654 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9655 {
9656 let member_inline_size =
9657 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
9658 decoder.context,
9659 );
9660 if inlined != (member_inline_size <= 4) {
9661 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9662 }
9663 let inner_offset;
9664 let mut inner_depth = depth.clone();
9665 if inlined {
9666 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9667 inner_offset = next_offset;
9668 } else {
9669 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9670 inner_depth.increment()?;
9671 }
9672 let val_ref = self
9673 .selected_bssid
9674 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
9675 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
9676 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9677 {
9678 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9679 }
9680 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9681 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9682 }
9683 }
9684
9685 next_offset += envelope_size;
9686 _next_ordinal_to_read += 1;
9687 if next_offset >= end_offset {
9688 return Ok(());
9689 }
9690
9691 while _next_ordinal_to_read < 2 {
9693 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9694 _next_ordinal_to_read += 1;
9695 next_offset += envelope_size;
9696 }
9697
9698 let next_out_of_line = decoder.next_out_of_line();
9699 let handles_before = decoder.remaining_handles();
9700 if let Some((inlined, num_bytes, num_handles)) =
9701 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9702 {
9703 let member_inline_size = <fidl_fuchsia_wlan_ieee80211__common::StatusCode as fidl::encoding::TypeMarker>::inline_size(decoder.context);
9704 if inlined != (member_inline_size <= 4) {
9705 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9706 }
9707 let inner_offset;
9708 let mut inner_depth = depth.clone();
9709 if inlined {
9710 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9711 inner_offset = next_offset;
9712 } else {
9713 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9714 inner_depth.increment()?;
9715 }
9716 let val_ref = self.status_code.get_or_insert_with(|| {
9717 fidl::new_empty!(fidl_fuchsia_wlan_ieee80211__common::StatusCode, D)
9718 });
9719 fidl::decode!(
9720 fidl_fuchsia_wlan_ieee80211__common::StatusCode,
9721 D,
9722 val_ref,
9723 decoder,
9724 inner_offset,
9725 inner_depth
9726 )?;
9727 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9728 {
9729 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9730 }
9731 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9732 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9733 }
9734 }
9735
9736 next_offset += envelope_size;
9737 _next_ordinal_to_read += 1;
9738 if next_offset >= end_offset {
9739 return Ok(());
9740 }
9741
9742 while _next_ordinal_to_read < 3 {
9744 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9745 _next_ordinal_to_read += 1;
9746 next_offset += envelope_size;
9747 }
9748
9749 let next_out_of_line = decoder.next_out_of_line();
9750 let handles_before = decoder.remaining_handles();
9751 if let Some((inlined, num_bytes, num_handles)) =
9752 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9753 {
9754 let member_inline_size =
9755 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
9756 if inlined != (member_inline_size <= 4) {
9757 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9758 }
9759 let inner_offset;
9760 let mut inner_depth = depth.clone();
9761 if inlined {
9762 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9763 inner_offset = next_offset;
9764 } else {
9765 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9766 inner_depth.increment()?;
9767 }
9768 let val_ref = self
9769 .original_association_maintained
9770 .get_or_insert_with(|| fidl::new_empty!(bool, D));
9771 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
9772 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9773 {
9774 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9775 }
9776 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9777 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9778 }
9779 }
9780
9781 next_offset += envelope_size;
9782 _next_ordinal_to_read += 1;
9783 if next_offset >= end_offset {
9784 return Ok(());
9785 }
9786
9787 while _next_ordinal_to_read < 4 {
9789 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9790 _next_ordinal_to_read += 1;
9791 next_offset += envelope_size;
9792 }
9793
9794 let next_out_of_line = decoder.next_out_of_line();
9795 let handles_before = decoder.remaining_handles();
9796 if let Some((inlined, num_bytes, num_handles)) =
9797 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9798 {
9799 let member_inline_size =
9800 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
9801 if inlined != (member_inline_size <= 4) {
9802 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9803 }
9804 let inner_offset;
9805 let mut inner_depth = depth.clone();
9806 if inlined {
9807 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9808 inner_offset = next_offset;
9809 } else {
9810 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9811 inner_depth.increment()?;
9812 }
9813 let val_ref =
9814 self.target_bss_authenticated.get_or_insert_with(|| fidl::new_empty!(bool, D));
9815 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
9816 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9817 {
9818 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9819 }
9820 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9821 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9822 }
9823 }
9824
9825 next_offset += envelope_size;
9826 _next_ordinal_to_read += 1;
9827 if next_offset >= end_offset {
9828 return Ok(());
9829 }
9830
9831 while _next_ordinal_to_read < 5 {
9833 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9834 _next_ordinal_to_read += 1;
9835 next_offset += envelope_size;
9836 }
9837
9838 let next_out_of_line = decoder.next_out_of_line();
9839 let handles_before = decoder.remaining_handles();
9840 if let Some((inlined, num_bytes, num_handles)) =
9841 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9842 {
9843 let member_inline_size =
9844 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
9845 if inlined != (member_inline_size <= 4) {
9846 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9847 }
9848 let inner_offset;
9849 let mut inner_depth = depth.clone();
9850 if inlined {
9851 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9852 inner_offset = next_offset;
9853 } else {
9854 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9855 inner_depth.increment()?;
9856 }
9857 let val_ref = self.association_id.get_or_insert_with(|| fidl::new_empty!(u16, D));
9858 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
9859 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9860 {
9861 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9862 }
9863 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9864 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9865 }
9866 }
9867
9868 next_offset += envelope_size;
9869 _next_ordinal_to_read += 1;
9870 if next_offset >= end_offset {
9871 return Ok(());
9872 }
9873
9874 while _next_ordinal_to_read < 6 {
9876 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9877 _next_ordinal_to_read += 1;
9878 next_offset += envelope_size;
9879 }
9880
9881 let next_out_of_line = decoder.next_out_of_line();
9882 let handles_before = decoder.remaining_handles();
9883 if let Some((inlined, num_bytes, num_handles)) =
9884 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9885 {
9886 let member_inline_size = <fidl::encoding::UnboundedVector<u8> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
9887 if inlined != (member_inline_size <= 4) {
9888 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9889 }
9890 let inner_offset;
9891 let mut inner_depth = depth.clone();
9892 if inlined {
9893 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9894 inner_offset = next_offset;
9895 } else {
9896 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9897 inner_depth.increment()?;
9898 }
9899 let val_ref = self.association_ies.get_or_insert_with(|| {
9900 fidl::new_empty!(fidl::encoding::UnboundedVector<u8>, D)
9901 });
9902 fidl::decode!(
9903 fidl::encoding::UnboundedVector<u8>,
9904 D,
9905 val_ref,
9906 decoder,
9907 inner_offset,
9908 inner_depth
9909 )?;
9910 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9911 {
9912 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9913 }
9914 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9915 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9916 }
9917 }
9918
9919 next_offset += envelope_size;
9920
9921 while next_offset < end_offset {
9923 _next_ordinal_to_read += 1;
9924 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9925 next_offset += envelope_size;
9926 }
9927
9928 Ok(())
9929 }
9930 }
9931
9932 impl WlanFullmacImplIfcRoamResultIndRequest {
9933 #[inline(always)]
9934 fn max_ordinal_present(&self) -> u64 {
9935 if let Some(_) = self.association_ies {
9936 return 6;
9937 }
9938 if let Some(_) = self.association_id {
9939 return 5;
9940 }
9941 if let Some(_) = self.target_bss_authenticated {
9942 return 4;
9943 }
9944 if let Some(_) = self.original_association_maintained {
9945 return 3;
9946 }
9947 if let Some(_) = self.status_code {
9948 return 2;
9949 }
9950 if let Some(_) = self.selected_bssid {
9951 return 1;
9952 }
9953 0
9954 }
9955 }
9956
9957 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcRoamResultIndRequest {
9958 type Borrowed<'a> = &'a Self;
9959 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
9960 value
9961 }
9962 }
9963
9964 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcRoamResultIndRequest {
9965 type Owned = Self;
9966
9967 #[inline(always)]
9968 fn inline_align(_context: fidl::encoding::Context) -> usize {
9969 8
9970 }
9971
9972 #[inline(always)]
9973 fn inline_size(_context: fidl::encoding::Context) -> usize {
9974 16
9975 }
9976 }
9977
9978 unsafe impl<D: fidl::encoding::ResourceDialect>
9979 fidl::encoding::Encode<WlanFullmacImplIfcRoamResultIndRequest, D>
9980 for &WlanFullmacImplIfcRoamResultIndRequest
9981 {
9982 unsafe fn encode(
9983 self,
9984 encoder: &mut fidl::encoding::Encoder<'_, D>,
9985 offset: usize,
9986 mut depth: fidl::encoding::Depth,
9987 ) -> fidl::Result<()> {
9988 encoder.debug_check_bounds::<WlanFullmacImplIfcRoamResultIndRequest>(offset);
9989 let max_ordinal: u64 = self.max_ordinal_present();
9991 encoder.write_num(max_ordinal, offset);
9992 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
9993 if max_ordinal == 0 {
9995 return Ok(());
9996 }
9997 depth.increment()?;
9998 let envelope_size = 8;
9999 let bytes_len = max_ordinal as usize * envelope_size;
10000 #[allow(unused_variables)]
10001 let offset = encoder.out_of_line_offset(bytes_len);
10002 let mut _prev_end_offset: usize = 0;
10003 if 1 > max_ordinal {
10004 return Ok(());
10005 }
10006
10007 let cur_offset: usize = (1 - 1) * envelope_size;
10010
10011 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10013
10014 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
10019 self.selected_bssid
10020 .as_ref()
10021 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
10022 encoder,
10023 offset + cur_offset,
10024 depth,
10025 )?;
10026
10027 _prev_end_offset = cur_offset + envelope_size;
10028 if 2 > max_ordinal {
10029 return Ok(());
10030 }
10031
10032 let cur_offset: usize = (2 - 1) * envelope_size;
10035
10036 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10038
10039 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_ieee80211__common::StatusCode, D>(
10044 self.status_code.as_ref().map(<fidl_fuchsia_wlan_ieee80211__common::StatusCode as fidl::encoding::ValueTypeMarker>::borrow),
10045 encoder, offset + cur_offset, depth
10046 )?;
10047
10048 _prev_end_offset = cur_offset + envelope_size;
10049 if 3 > max_ordinal {
10050 return Ok(());
10051 }
10052
10053 let cur_offset: usize = (3 - 1) * envelope_size;
10056
10057 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10059
10060 fidl::encoding::encode_in_envelope_optional::<bool, D>(
10065 self.original_association_maintained
10066 .as_ref()
10067 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
10068 encoder,
10069 offset + cur_offset,
10070 depth,
10071 )?;
10072
10073 _prev_end_offset = cur_offset + envelope_size;
10074 if 4 > max_ordinal {
10075 return Ok(());
10076 }
10077
10078 let cur_offset: usize = (4 - 1) * envelope_size;
10081
10082 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10084
10085 fidl::encoding::encode_in_envelope_optional::<bool, D>(
10090 self.target_bss_authenticated
10091 .as_ref()
10092 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
10093 encoder,
10094 offset + cur_offset,
10095 depth,
10096 )?;
10097
10098 _prev_end_offset = cur_offset + envelope_size;
10099 if 5 > max_ordinal {
10100 return Ok(());
10101 }
10102
10103 let cur_offset: usize = (5 - 1) * envelope_size;
10106
10107 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10109
10110 fidl::encoding::encode_in_envelope_optional::<u16, D>(
10115 self.association_id.as_ref().map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
10116 encoder,
10117 offset + cur_offset,
10118 depth,
10119 )?;
10120
10121 _prev_end_offset = cur_offset + envelope_size;
10122 if 6 > max_ordinal {
10123 return Ok(());
10124 }
10125
10126 let cur_offset: usize = (6 - 1) * envelope_size;
10129
10130 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10132
10133 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<u8>, D>(
10138 self.association_ies.as_ref().map(<fidl::encoding::UnboundedVector<u8> as fidl::encoding::ValueTypeMarker>::borrow),
10139 encoder, offset + cur_offset, depth
10140 )?;
10141
10142 _prev_end_offset = cur_offset + envelope_size;
10143
10144 Ok(())
10145 }
10146 }
10147
10148 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
10149 for WlanFullmacImplIfcRoamResultIndRequest
10150 {
10151 #[inline(always)]
10152 fn new_empty() -> Self {
10153 Self::default()
10154 }
10155
10156 unsafe fn decode(
10157 &mut self,
10158 decoder: &mut fidl::encoding::Decoder<'_, D>,
10159 offset: usize,
10160 mut depth: fidl::encoding::Depth,
10161 ) -> fidl::Result<()> {
10162 decoder.debug_check_bounds::<Self>(offset);
10163 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
10164 None => return Err(fidl::Error::NotNullable),
10165 Some(len) => len,
10166 };
10167 if len == 0 {
10169 return Ok(());
10170 };
10171 depth.increment()?;
10172 let envelope_size = 8;
10173 let bytes_len = len * envelope_size;
10174 let offset = decoder.out_of_line_offset(bytes_len)?;
10175 let mut _next_ordinal_to_read = 0;
10177 let mut next_offset = offset;
10178 let end_offset = offset + bytes_len;
10179 _next_ordinal_to_read += 1;
10180 if next_offset >= end_offset {
10181 return Ok(());
10182 }
10183
10184 while _next_ordinal_to_read < 1 {
10186 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10187 _next_ordinal_to_read += 1;
10188 next_offset += envelope_size;
10189 }
10190
10191 let next_out_of_line = decoder.next_out_of_line();
10192 let handles_before = decoder.remaining_handles();
10193 if let Some((inlined, num_bytes, num_handles)) =
10194 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10195 {
10196 let member_inline_size =
10197 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
10198 decoder.context,
10199 );
10200 if inlined != (member_inline_size <= 4) {
10201 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10202 }
10203 let inner_offset;
10204 let mut inner_depth = depth.clone();
10205 if inlined {
10206 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10207 inner_offset = next_offset;
10208 } else {
10209 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10210 inner_depth.increment()?;
10211 }
10212 let val_ref = self
10213 .selected_bssid
10214 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
10215 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
10216 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10217 {
10218 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10219 }
10220 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10221 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10222 }
10223 }
10224
10225 next_offset += envelope_size;
10226 _next_ordinal_to_read += 1;
10227 if next_offset >= end_offset {
10228 return Ok(());
10229 }
10230
10231 while _next_ordinal_to_read < 2 {
10233 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10234 _next_ordinal_to_read += 1;
10235 next_offset += envelope_size;
10236 }
10237
10238 let next_out_of_line = decoder.next_out_of_line();
10239 let handles_before = decoder.remaining_handles();
10240 if let Some((inlined, num_bytes, num_handles)) =
10241 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10242 {
10243 let member_inline_size = <fidl_fuchsia_wlan_ieee80211__common::StatusCode as fidl::encoding::TypeMarker>::inline_size(decoder.context);
10244 if inlined != (member_inline_size <= 4) {
10245 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10246 }
10247 let inner_offset;
10248 let mut inner_depth = depth.clone();
10249 if inlined {
10250 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10251 inner_offset = next_offset;
10252 } else {
10253 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10254 inner_depth.increment()?;
10255 }
10256 let val_ref = self.status_code.get_or_insert_with(|| {
10257 fidl::new_empty!(fidl_fuchsia_wlan_ieee80211__common::StatusCode, D)
10258 });
10259 fidl::decode!(
10260 fidl_fuchsia_wlan_ieee80211__common::StatusCode,
10261 D,
10262 val_ref,
10263 decoder,
10264 inner_offset,
10265 inner_depth
10266 )?;
10267 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10268 {
10269 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10270 }
10271 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10272 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10273 }
10274 }
10275
10276 next_offset += envelope_size;
10277 _next_ordinal_to_read += 1;
10278 if next_offset >= end_offset {
10279 return Ok(());
10280 }
10281
10282 while _next_ordinal_to_read < 3 {
10284 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10285 _next_ordinal_to_read += 1;
10286 next_offset += envelope_size;
10287 }
10288
10289 let next_out_of_line = decoder.next_out_of_line();
10290 let handles_before = decoder.remaining_handles();
10291 if let Some((inlined, num_bytes, num_handles)) =
10292 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10293 {
10294 let member_inline_size =
10295 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
10296 if inlined != (member_inline_size <= 4) {
10297 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10298 }
10299 let inner_offset;
10300 let mut inner_depth = depth.clone();
10301 if inlined {
10302 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10303 inner_offset = next_offset;
10304 } else {
10305 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10306 inner_depth.increment()?;
10307 }
10308 let val_ref = self
10309 .original_association_maintained
10310 .get_or_insert_with(|| fidl::new_empty!(bool, D));
10311 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
10312 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10313 {
10314 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10315 }
10316 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10317 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10318 }
10319 }
10320
10321 next_offset += envelope_size;
10322 _next_ordinal_to_read += 1;
10323 if next_offset >= end_offset {
10324 return Ok(());
10325 }
10326
10327 while _next_ordinal_to_read < 4 {
10329 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10330 _next_ordinal_to_read += 1;
10331 next_offset += envelope_size;
10332 }
10333
10334 let next_out_of_line = decoder.next_out_of_line();
10335 let handles_before = decoder.remaining_handles();
10336 if let Some((inlined, num_bytes, num_handles)) =
10337 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10338 {
10339 let member_inline_size =
10340 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
10341 if inlined != (member_inline_size <= 4) {
10342 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10343 }
10344 let inner_offset;
10345 let mut inner_depth = depth.clone();
10346 if inlined {
10347 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10348 inner_offset = next_offset;
10349 } else {
10350 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10351 inner_depth.increment()?;
10352 }
10353 let val_ref =
10354 self.target_bss_authenticated.get_or_insert_with(|| fidl::new_empty!(bool, D));
10355 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
10356 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10357 {
10358 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10359 }
10360 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10361 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10362 }
10363 }
10364
10365 next_offset += envelope_size;
10366 _next_ordinal_to_read += 1;
10367 if next_offset >= end_offset {
10368 return Ok(());
10369 }
10370
10371 while _next_ordinal_to_read < 5 {
10373 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10374 _next_ordinal_to_read += 1;
10375 next_offset += envelope_size;
10376 }
10377
10378 let next_out_of_line = decoder.next_out_of_line();
10379 let handles_before = decoder.remaining_handles();
10380 if let Some((inlined, num_bytes, num_handles)) =
10381 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10382 {
10383 let member_inline_size =
10384 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
10385 if inlined != (member_inline_size <= 4) {
10386 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10387 }
10388 let inner_offset;
10389 let mut inner_depth = depth.clone();
10390 if inlined {
10391 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10392 inner_offset = next_offset;
10393 } else {
10394 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10395 inner_depth.increment()?;
10396 }
10397 let val_ref = self.association_id.get_or_insert_with(|| fidl::new_empty!(u16, D));
10398 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
10399 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10400 {
10401 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10402 }
10403 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10404 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10405 }
10406 }
10407
10408 next_offset += envelope_size;
10409 _next_ordinal_to_read += 1;
10410 if next_offset >= end_offset {
10411 return Ok(());
10412 }
10413
10414 while _next_ordinal_to_read < 6 {
10416 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10417 _next_ordinal_to_read += 1;
10418 next_offset += envelope_size;
10419 }
10420
10421 let next_out_of_line = decoder.next_out_of_line();
10422 let handles_before = decoder.remaining_handles();
10423 if let Some((inlined, num_bytes, num_handles)) =
10424 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10425 {
10426 let member_inline_size = <fidl::encoding::UnboundedVector<u8> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
10427 if inlined != (member_inline_size <= 4) {
10428 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10429 }
10430 let inner_offset;
10431 let mut inner_depth = depth.clone();
10432 if inlined {
10433 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10434 inner_offset = next_offset;
10435 } else {
10436 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10437 inner_depth.increment()?;
10438 }
10439 let val_ref = self.association_ies.get_or_insert_with(|| {
10440 fidl::new_empty!(fidl::encoding::UnboundedVector<u8>, D)
10441 });
10442 fidl::decode!(
10443 fidl::encoding::UnboundedVector<u8>,
10444 D,
10445 val_ref,
10446 decoder,
10447 inner_offset,
10448 inner_depth
10449 )?;
10450 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10451 {
10452 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10453 }
10454 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10455 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10456 }
10457 }
10458
10459 next_offset += envelope_size;
10460
10461 while next_offset < end_offset {
10463 _next_ordinal_to_read += 1;
10464 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10465 next_offset += envelope_size;
10466 }
10467
10468 Ok(())
10469 }
10470 }
10471
10472 impl WlanFullmacImplIfcRoamStartIndRequest {
10473 #[inline(always)]
10474 fn max_ordinal_present(&self) -> u64 {
10475 if let Some(_) = self.original_association_maintained {
10476 return 3;
10477 }
10478 if let Some(_) = self.selected_bss {
10479 return 2;
10480 }
10481 if let Some(_) = self.selected_bssid {
10482 return 1;
10483 }
10484 0
10485 }
10486 }
10487
10488 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcRoamStartIndRequest {
10489 type Borrowed<'a> = &'a Self;
10490 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
10491 value
10492 }
10493 }
10494
10495 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcRoamStartIndRequest {
10496 type Owned = Self;
10497
10498 #[inline(always)]
10499 fn inline_align(_context: fidl::encoding::Context) -> usize {
10500 8
10501 }
10502
10503 #[inline(always)]
10504 fn inline_size(_context: fidl::encoding::Context) -> usize {
10505 16
10506 }
10507 }
10508
10509 unsafe impl<D: fidl::encoding::ResourceDialect>
10510 fidl::encoding::Encode<WlanFullmacImplIfcRoamStartIndRequest, D>
10511 for &WlanFullmacImplIfcRoamStartIndRequest
10512 {
10513 unsafe fn encode(
10514 self,
10515 encoder: &mut fidl::encoding::Encoder<'_, D>,
10516 offset: usize,
10517 mut depth: fidl::encoding::Depth,
10518 ) -> fidl::Result<()> {
10519 encoder.debug_check_bounds::<WlanFullmacImplIfcRoamStartIndRequest>(offset);
10520 let max_ordinal: u64 = self.max_ordinal_present();
10522 encoder.write_num(max_ordinal, offset);
10523 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
10524 if max_ordinal == 0 {
10526 return Ok(());
10527 }
10528 depth.increment()?;
10529 let envelope_size = 8;
10530 let bytes_len = max_ordinal as usize * envelope_size;
10531 #[allow(unused_variables)]
10532 let offset = encoder.out_of_line_offset(bytes_len);
10533 let mut _prev_end_offset: usize = 0;
10534 if 1 > max_ordinal {
10535 return Ok(());
10536 }
10537
10538 let cur_offset: usize = (1 - 1) * envelope_size;
10541
10542 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10544
10545 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
10550 self.selected_bssid
10551 .as_ref()
10552 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
10553 encoder,
10554 offset + cur_offset,
10555 depth,
10556 )?;
10557
10558 _prev_end_offset = cur_offset + envelope_size;
10559 if 2 > max_ordinal {
10560 return Ok(());
10561 }
10562
10563 let cur_offset: usize = (2 - 1) * envelope_size;
10566
10567 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10569
10570 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_common__common::BssDescription, D>(
10575 self.selected_bss.as_ref().map(<fidl_fuchsia_wlan_common__common::BssDescription as fidl::encoding::ValueTypeMarker>::borrow),
10576 encoder, offset + cur_offset, depth
10577 )?;
10578
10579 _prev_end_offset = cur_offset + envelope_size;
10580 if 3 > max_ordinal {
10581 return Ok(());
10582 }
10583
10584 let cur_offset: usize = (3 - 1) * envelope_size;
10587
10588 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10590
10591 fidl::encoding::encode_in_envelope_optional::<bool, D>(
10596 self.original_association_maintained
10597 .as_ref()
10598 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
10599 encoder,
10600 offset + cur_offset,
10601 depth,
10602 )?;
10603
10604 _prev_end_offset = cur_offset + envelope_size;
10605
10606 Ok(())
10607 }
10608 }
10609
10610 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
10611 for WlanFullmacImplIfcRoamStartIndRequest
10612 {
10613 #[inline(always)]
10614 fn new_empty() -> Self {
10615 Self::default()
10616 }
10617
10618 unsafe fn decode(
10619 &mut self,
10620 decoder: &mut fidl::encoding::Decoder<'_, D>,
10621 offset: usize,
10622 mut depth: fidl::encoding::Depth,
10623 ) -> fidl::Result<()> {
10624 decoder.debug_check_bounds::<Self>(offset);
10625 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
10626 None => return Err(fidl::Error::NotNullable),
10627 Some(len) => len,
10628 };
10629 if len == 0 {
10631 return Ok(());
10632 };
10633 depth.increment()?;
10634 let envelope_size = 8;
10635 let bytes_len = len * envelope_size;
10636 let offset = decoder.out_of_line_offset(bytes_len)?;
10637 let mut _next_ordinal_to_read = 0;
10639 let mut next_offset = offset;
10640 let end_offset = offset + bytes_len;
10641 _next_ordinal_to_read += 1;
10642 if next_offset >= end_offset {
10643 return Ok(());
10644 }
10645
10646 while _next_ordinal_to_read < 1 {
10648 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10649 _next_ordinal_to_read += 1;
10650 next_offset += envelope_size;
10651 }
10652
10653 let next_out_of_line = decoder.next_out_of_line();
10654 let handles_before = decoder.remaining_handles();
10655 if let Some((inlined, num_bytes, num_handles)) =
10656 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10657 {
10658 let member_inline_size =
10659 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
10660 decoder.context,
10661 );
10662 if inlined != (member_inline_size <= 4) {
10663 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10664 }
10665 let inner_offset;
10666 let mut inner_depth = depth.clone();
10667 if inlined {
10668 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10669 inner_offset = next_offset;
10670 } else {
10671 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10672 inner_depth.increment()?;
10673 }
10674 let val_ref = self
10675 .selected_bssid
10676 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
10677 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
10678 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10679 {
10680 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10681 }
10682 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10683 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10684 }
10685 }
10686
10687 next_offset += envelope_size;
10688 _next_ordinal_to_read += 1;
10689 if next_offset >= end_offset {
10690 return Ok(());
10691 }
10692
10693 while _next_ordinal_to_read < 2 {
10695 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10696 _next_ordinal_to_read += 1;
10697 next_offset += envelope_size;
10698 }
10699
10700 let next_out_of_line = decoder.next_out_of_line();
10701 let handles_before = decoder.remaining_handles();
10702 if let Some((inlined, num_bytes, num_handles)) =
10703 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10704 {
10705 let member_inline_size = <fidl_fuchsia_wlan_common__common::BssDescription as fidl::encoding::TypeMarker>::inline_size(decoder.context);
10706 if inlined != (member_inline_size <= 4) {
10707 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10708 }
10709 let inner_offset;
10710 let mut inner_depth = depth.clone();
10711 if inlined {
10712 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10713 inner_offset = next_offset;
10714 } else {
10715 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10716 inner_depth.increment()?;
10717 }
10718 let val_ref = self.selected_bss.get_or_insert_with(|| {
10719 fidl::new_empty!(fidl_fuchsia_wlan_common__common::BssDescription, D)
10720 });
10721 fidl::decode!(
10722 fidl_fuchsia_wlan_common__common::BssDescription,
10723 D,
10724 val_ref,
10725 decoder,
10726 inner_offset,
10727 inner_depth
10728 )?;
10729 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10730 {
10731 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10732 }
10733 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10734 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10735 }
10736 }
10737
10738 next_offset += envelope_size;
10739 _next_ordinal_to_read += 1;
10740 if next_offset >= end_offset {
10741 return Ok(());
10742 }
10743
10744 while _next_ordinal_to_read < 3 {
10746 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10747 _next_ordinal_to_read += 1;
10748 next_offset += envelope_size;
10749 }
10750
10751 let next_out_of_line = decoder.next_out_of_line();
10752 let handles_before = decoder.remaining_handles();
10753 if let Some((inlined, num_bytes, num_handles)) =
10754 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10755 {
10756 let member_inline_size =
10757 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
10758 if inlined != (member_inline_size <= 4) {
10759 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10760 }
10761 let inner_offset;
10762 let mut inner_depth = depth.clone();
10763 if inlined {
10764 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10765 inner_offset = next_offset;
10766 } else {
10767 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10768 inner_depth.increment()?;
10769 }
10770 let val_ref = self
10771 .original_association_maintained
10772 .get_or_insert_with(|| fidl::new_empty!(bool, D));
10773 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
10774 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10775 {
10776 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10777 }
10778 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10779 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10780 }
10781 }
10782
10783 next_offset += envelope_size;
10784
10785 while next_offset < end_offset {
10787 _next_ordinal_to_read += 1;
10788 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10789 next_offset += envelope_size;
10790 }
10791
10792 Ok(())
10793 }
10794 }
10795
10796 impl WlanFullmacImplIfcSaeHandshakeIndRequest {
10797 #[inline(always)]
10798 fn max_ordinal_present(&self) -> u64 {
10799 if let Some(_) = self.peer_sta_address {
10800 return 1;
10801 }
10802 0
10803 }
10804 }
10805
10806 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcSaeHandshakeIndRequest {
10807 type Borrowed<'a> = &'a Self;
10808 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
10809 value
10810 }
10811 }
10812
10813 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcSaeHandshakeIndRequest {
10814 type Owned = Self;
10815
10816 #[inline(always)]
10817 fn inline_align(_context: fidl::encoding::Context) -> usize {
10818 8
10819 }
10820
10821 #[inline(always)]
10822 fn inline_size(_context: fidl::encoding::Context) -> usize {
10823 16
10824 }
10825 }
10826
10827 unsafe impl<D: fidl::encoding::ResourceDialect>
10828 fidl::encoding::Encode<WlanFullmacImplIfcSaeHandshakeIndRequest, D>
10829 for &WlanFullmacImplIfcSaeHandshakeIndRequest
10830 {
10831 unsafe fn encode(
10832 self,
10833 encoder: &mut fidl::encoding::Encoder<'_, D>,
10834 offset: usize,
10835 mut depth: fidl::encoding::Depth,
10836 ) -> fidl::Result<()> {
10837 encoder.debug_check_bounds::<WlanFullmacImplIfcSaeHandshakeIndRequest>(offset);
10838 let max_ordinal: u64 = self.max_ordinal_present();
10840 encoder.write_num(max_ordinal, offset);
10841 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
10842 if max_ordinal == 0 {
10844 return Ok(());
10845 }
10846 depth.increment()?;
10847 let envelope_size = 8;
10848 let bytes_len = max_ordinal as usize * envelope_size;
10849 #[allow(unused_variables)]
10850 let offset = encoder.out_of_line_offset(bytes_len);
10851 let mut _prev_end_offset: usize = 0;
10852 if 1 > max_ordinal {
10853 return Ok(());
10854 }
10855
10856 let cur_offset: usize = (1 - 1) * envelope_size;
10859
10860 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10862
10863 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
10868 self.peer_sta_address
10869 .as_ref()
10870 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
10871 encoder,
10872 offset + cur_offset,
10873 depth,
10874 )?;
10875
10876 _prev_end_offset = cur_offset + envelope_size;
10877
10878 Ok(())
10879 }
10880 }
10881
10882 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
10883 for WlanFullmacImplIfcSaeHandshakeIndRequest
10884 {
10885 #[inline(always)]
10886 fn new_empty() -> Self {
10887 Self::default()
10888 }
10889
10890 unsafe fn decode(
10891 &mut self,
10892 decoder: &mut fidl::encoding::Decoder<'_, D>,
10893 offset: usize,
10894 mut depth: fidl::encoding::Depth,
10895 ) -> fidl::Result<()> {
10896 decoder.debug_check_bounds::<Self>(offset);
10897 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
10898 None => return Err(fidl::Error::NotNullable),
10899 Some(len) => len,
10900 };
10901 if len == 0 {
10903 return Ok(());
10904 };
10905 depth.increment()?;
10906 let envelope_size = 8;
10907 let bytes_len = len * envelope_size;
10908 let offset = decoder.out_of_line_offset(bytes_len)?;
10909 let mut _next_ordinal_to_read = 0;
10911 let mut next_offset = offset;
10912 let end_offset = offset + bytes_len;
10913 _next_ordinal_to_read += 1;
10914 if next_offset >= end_offset {
10915 return Ok(());
10916 }
10917
10918 while _next_ordinal_to_read < 1 {
10920 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10921 _next_ordinal_to_read += 1;
10922 next_offset += envelope_size;
10923 }
10924
10925 let next_out_of_line = decoder.next_out_of_line();
10926 let handles_before = decoder.remaining_handles();
10927 if let Some((inlined, num_bytes, num_handles)) =
10928 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10929 {
10930 let member_inline_size =
10931 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
10932 decoder.context,
10933 );
10934 if inlined != (member_inline_size <= 4) {
10935 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10936 }
10937 let inner_offset;
10938 let mut inner_depth = depth.clone();
10939 if inlined {
10940 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10941 inner_offset = next_offset;
10942 } else {
10943 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10944 inner_depth.increment()?;
10945 }
10946 let val_ref = self
10947 .peer_sta_address
10948 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
10949 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
10950 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10951 {
10952 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10953 }
10954 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10955 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10956 }
10957 }
10958
10959 next_offset += envelope_size;
10960
10961 while next_offset < end_offset {
10963 _next_ordinal_to_read += 1;
10964 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10965 next_offset += envelope_size;
10966 }
10967
10968 Ok(())
10969 }
10970 }
10971
10972 impl WlanFullmacImplIfcStartConfRequest {
10973 #[inline(always)]
10974 fn max_ordinal_present(&self) -> u64 {
10975 if let Some(_) = self.result_code {
10976 return 1;
10977 }
10978 0
10979 }
10980 }
10981
10982 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcStartConfRequest {
10983 type Borrowed<'a> = &'a Self;
10984 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
10985 value
10986 }
10987 }
10988
10989 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcStartConfRequest {
10990 type Owned = Self;
10991
10992 #[inline(always)]
10993 fn inline_align(_context: fidl::encoding::Context) -> usize {
10994 8
10995 }
10996
10997 #[inline(always)]
10998 fn inline_size(_context: fidl::encoding::Context) -> usize {
10999 16
11000 }
11001 }
11002
11003 unsafe impl<D: fidl::encoding::ResourceDialect>
11004 fidl::encoding::Encode<WlanFullmacImplIfcStartConfRequest, D>
11005 for &WlanFullmacImplIfcStartConfRequest
11006 {
11007 unsafe fn encode(
11008 self,
11009 encoder: &mut fidl::encoding::Encoder<'_, D>,
11010 offset: usize,
11011 mut depth: fidl::encoding::Depth,
11012 ) -> fidl::Result<()> {
11013 encoder.debug_check_bounds::<WlanFullmacImplIfcStartConfRequest>(offset);
11014 let max_ordinal: u64 = self.max_ordinal_present();
11016 encoder.write_num(max_ordinal, offset);
11017 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
11018 if max_ordinal == 0 {
11020 return Ok(());
11021 }
11022 depth.increment()?;
11023 let envelope_size = 8;
11024 let bytes_len = max_ordinal as usize * envelope_size;
11025 #[allow(unused_variables)]
11026 let offset = encoder.out_of_line_offset(bytes_len);
11027 let mut _prev_end_offset: usize = 0;
11028 if 1 > max_ordinal {
11029 return Ok(());
11030 }
11031
11032 let cur_offset: usize = (1 - 1) * envelope_size;
11035
11036 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
11038
11039 fidl::encoding::encode_in_envelope_optional::<StartResult, D>(
11044 self.result_code
11045 .as_ref()
11046 .map(<StartResult as fidl::encoding::ValueTypeMarker>::borrow),
11047 encoder,
11048 offset + cur_offset,
11049 depth,
11050 )?;
11051
11052 _prev_end_offset = cur_offset + envelope_size;
11053
11054 Ok(())
11055 }
11056 }
11057
11058 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
11059 for WlanFullmacImplIfcStartConfRequest
11060 {
11061 #[inline(always)]
11062 fn new_empty() -> Self {
11063 Self::default()
11064 }
11065
11066 unsafe fn decode(
11067 &mut self,
11068 decoder: &mut fidl::encoding::Decoder<'_, D>,
11069 offset: usize,
11070 mut depth: fidl::encoding::Depth,
11071 ) -> fidl::Result<()> {
11072 decoder.debug_check_bounds::<Self>(offset);
11073 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
11074 None => return Err(fidl::Error::NotNullable),
11075 Some(len) => len,
11076 };
11077 if len == 0 {
11079 return Ok(());
11080 };
11081 depth.increment()?;
11082 let envelope_size = 8;
11083 let bytes_len = len * envelope_size;
11084 let offset = decoder.out_of_line_offset(bytes_len)?;
11085 let mut _next_ordinal_to_read = 0;
11087 let mut next_offset = offset;
11088 let end_offset = offset + bytes_len;
11089 _next_ordinal_to_read += 1;
11090 if next_offset >= end_offset {
11091 return Ok(());
11092 }
11093
11094 while _next_ordinal_to_read < 1 {
11096 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11097 _next_ordinal_to_read += 1;
11098 next_offset += envelope_size;
11099 }
11100
11101 let next_out_of_line = decoder.next_out_of_line();
11102 let handles_before = decoder.remaining_handles();
11103 if let Some((inlined, num_bytes, num_handles)) =
11104 fidl::encoding::decode_envelope_header(decoder, next_offset)?
11105 {
11106 let member_inline_size =
11107 <StartResult as fidl::encoding::TypeMarker>::inline_size(decoder.context);
11108 if inlined != (member_inline_size <= 4) {
11109 return Err(fidl::Error::InvalidInlineBitInEnvelope);
11110 }
11111 let inner_offset;
11112 let mut inner_depth = depth.clone();
11113 if inlined {
11114 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
11115 inner_offset = next_offset;
11116 } else {
11117 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
11118 inner_depth.increment()?;
11119 }
11120 let val_ref =
11121 self.result_code.get_or_insert_with(|| fidl::new_empty!(StartResult, D));
11122 fidl::decode!(StartResult, D, val_ref, decoder, inner_offset, inner_depth)?;
11123 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
11124 {
11125 return Err(fidl::Error::InvalidNumBytesInEnvelope);
11126 }
11127 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
11128 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
11129 }
11130 }
11131
11132 next_offset += envelope_size;
11133
11134 while next_offset < end_offset {
11136 _next_ordinal_to_read += 1;
11137 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11138 next_offset += envelope_size;
11139 }
11140
11141 Ok(())
11142 }
11143 }
11144
11145 impl WlanFullmacImplIfcStopConfRequest {
11146 #[inline(always)]
11147 fn max_ordinal_present(&self) -> u64 {
11148 if let Some(_) = self.result_code {
11149 return 1;
11150 }
11151 0
11152 }
11153 }
11154
11155 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcStopConfRequest {
11156 type Borrowed<'a> = &'a Self;
11157 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
11158 value
11159 }
11160 }
11161
11162 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcStopConfRequest {
11163 type Owned = Self;
11164
11165 #[inline(always)]
11166 fn inline_align(_context: fidl::encoding::Context) -> usize {
11167 8
11168 }
11169
11170 #[inline(always)]
11171 fn inline_size(_context: fidl::encoding::Context) -> usize {
11172 16
11173 }
11174 }
11175
11176 unsafe impl<D: fidl::encoding::ResourceDialect>
11177 fidl::encoding::Encode<WlanFullmacImplIfcStopConfRequest, D>
11178 for &WlanFullmacImplIfcStopConfRequest
11179 {
11180 unsafe fn encode(
11181 self,
11182 encoder: &mut fidl::encoding::Encoder<'_, D>,
11183 offset: usize,
11184 mut depth: fidl::encoding::Depth,
11185 ) -> fidl::Result<()> {
11186 encoder.debug_check_bounds::<WlanFullmacImplIfcStopConfRequest>(offset);
11187 let max_ordinal: u64 = self.max_ordinal_present();
11189 encoder.write_num(max_ordinal, offset);
11190 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
11191 if max_ordinal == 0 {
11193 return Ok(());
11194 }
11195 depth.increment()?;
11196 let envelope_size = 8;
11197 let bytes_len = max_ordinal as usize * envelope_size;
11198 #[allow(unused_variables)]
11199 let offset = encoder.out_of_line_offset(bytes_len);
11200 let mut _prev_end_offset: usize = 0;
11201 if 1 > max_ordinal {
11202 return Ok(());
11203 }
11204
11205 let cur_offset: usize = (1 - 1) * envelope_size;
11208
11209 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
11211
11212 fidl::encoding::encode_in_envelope_optional::<StopResult, D>(
11217 self.result_code
11218 .as_ref()
11219 .map(<StopResult as fidl::encoding::ValueTypeMarker>::borrow),
11220 encoder,
11221 offset + cur_offset,
11222 depth,
11223 )?;
11224
11225 _prev_end_offset = cur_offset + envelope_size;
11226
11227 Ok(())
11228 }
11229 }
11230
11231 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
11232 for WlanFullmacImplIfcStopConfRequest
11233 {
11234 #[inline(always)]
11235 fn new_empty() -> Self {
11236 Self::default()
11237 }
11238
11239 unsafe fn decode(
11240 &mut self,
11241 decoder: &mut fidl::encoding::Decoder<'_, D>,
11242 offset: usize,
11243 mut depth: fidl::encoding::Depth,
11244 ) -> fidl::Result<()> {
11245 decoder.debug_check_bounds::<Self>(offset);
11246 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
11247 None => return Err(fidl::Error::NotNullable),
11248 Some(len) => len,
11249 };
11250 if len == 0 {
11252 return Ok(());
11253 };
11254 depth.increment()?;
11255 let envelope_size = 8;
11256 let bytes_len = len * envelope_size;
11257 let offset = decoder.out_of_line_offset(bytes_len)?;
11258 let mut _next_ordinal_to_read = 0;
11260 let mut next_offset = offset;
11261 let end_offset = offset + bytes_len;
11262 _next_ordinal_to_read += 1;
11263 if next_offset >= end_offset {
11264 return Ok(());
11265 }
11266
11267 while _next_ordinal_to_read < 1 {
11269 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11270 _next_ordinal_to_read += 1;
11271 next_offset += envelope_size;
11272 }
11273
11274 let next_out_of_line = decoder.next_out_of_line();
11275 let handles_before = decoder.remaining_handles();
11276 if let Some((inlined, num_bytes, num_handles)) =
11277 fidl::encoding::decode_envelope_header(decoder, next_offset)?
11278 {
11279 let member_inline_size =
11280 <StopResult as fidl::encoding::TypeMarker>::inline_size(decoder.context);
11281 if inlined != (member_inline_size <= 4) {
11282 return Err(fidl::Error::InvalidInlineBitInEnvelope);
11283 }
11284 let inner_offset;
11285 let mut inner_depth = depth.clone();
11286 if inlined {
11287 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
11288 inner_offset = next_offset;
11289 } else {
11290 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
11291 inner_depth.increment()?;
11292 }
11293 let val_ref =
11294 self.result_code.get_or_insert_with(|| fidl::new_empty!(StopResult, D));
11295 fidl::decode!(StopResult, D, val_ref, decoder, inner_offset, inner_depth)?;
11296 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
11297 {
11298 return Err(fidl::Error::InvalidNumBytesInEnvelope);
11299 }
11300 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
11301 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
11302 }
11303 }
11304
11305 next_offset += envelope_size;
11306
11307 while next_offset < end_offset {
11309 _next_ordinal_to_read += 1;
11310 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11311 next_offset += envelope_size;
11312 }
11313
11314 Ok(())
11315 }
11316 }
11317
11318 impl WlanFullmacImplOnLinkStateChangedRequest {
11319 #[inline(always)]
11320 fn max_ordinal_present(&self) -> u64 {
11321 if let Some(_) = self.online {
11322 return 1;
11323 }
11324 0
11325 }
11326 }
11327
11328 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplOnLinkStateChangedRequest {
11329 type Borrowed<'a> = &'a Self;
11330 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
11331 value
11332 }
11333 }
11334
11335 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplOnLinkStateChangedRequest {
11336 type Owned = Self;
11337
11338 #[inline(always)]
11339 fn inline_align(_context: fidl::encoding::Context) -> usize {
11340 8
11341 }
11342
11343 #[inline(always)]
11344 fn inline_size(_context: fidl::encoding::Context) -> usize {
11345 16
11346 }
11347 }
11348
11349 unsafe impl<D: fidl::encoding::ResourceDialect>
11350 fidl::encoding::Encode<WlanFullmacImplOnLinkStateChangedRequest, D>
11351 for &WlanFullmacImplOnLinkStateChangedRequest
11352 {
11353 unsafe fn encode(
11354 self,
11355 encoder: &mut fidl::encoding::Encoder<'_, D>,
11356 offset: usize,
11357 mut depth: fidl::encoding::Depth,
11358 ) -> fidl::Result<()> {
11359 encoder.debug_check_bounds::<WlanFullmacImplOnLinkStateChangedRequest>(offset);
11360 let max_ordinal: u64 = self.max_ordinal_present();
11362 encoder.write_num(max_ordinal, offset);
11363 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
11364 if max_ordinal == 0 {
11366 return Ok(());
11367 }
11368 depth.increment()?;
11369 let envelope_size = 8;
11370 let bytes_len = max_ordinal as usize * envelope_size;
11371 #[allow(unused_variables)]
11372 let offset = encoder.out_of_line_offset(bytes_len);
11373 let mut _prev_end_offset: usize = 0;
11374 if 1 > max_ordinal {
11375 return Ok(());
11376 }
11377
11378 let cur_offset: usize = (1 - 1) * envelope_size;
11381
11382 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
11384
11385 fidl::encoding::encode_in_envelope_optional::<bool, D>(
11390 self.online.as_ref().map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
11391 encoder,
11392 offset + cur_offset,
11393 depth,
11394 )?;
11395
11396 _prev_end_offset = cur_offset + envelope_size;
11397
11398 Ok(())
11399 }
11400 }
11401
11402 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
11403 for WlanFullmacImplOnLinkStateChangedRequest
11404 {
11405 #[inline(always)]
11406 fn new_empty() -> Self {
11407 Self::default()
11408 }
11409
11410 unsafe fn decode(
11411 &mut self,
11412 decoder: &mut fidl::encoding::Decoder<'_, D>,
11413 offset: usize,
11414 mut depth: fidl::encoding::Depth,
11415 ) -> fidl::Result<()> {
11416 decoder.debug_check_bounds::<Self>(offset);
11417 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
11418 None => return Err(fidl::Error::NotNullable),
11419 Some(len) => len,
11420 };
11421 if len == 0 {
11423 return Ok(());
11424 };
11425 depth.increment()?;
11426 let envelope_size = 8;
11427 let bytes_len = len * envelope_size;
11428 let offset = decoder.out_of_line_offset(bytes_len)?;
11429 let mut _next_ordinal_to_read = 0;
11431 let mut next_offset = offset;
11432 let end_offset = offset + bytes_len;
11433 _next_ordinal_to_read += 1;
11434 if next_offset >= end_offset {
11435 return Ok(());
11436 }
11437
11438 while _next_ordinal_to_read < 1 {
11440 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11441 _next_ordinal_to_read += 1;
11442 next_offset += envelope_size;
11443 }
11444
11445 let next_out_of_line = decoder.next_out_of_line();
11446 let handles_before = decoder.remaining_handles();
11447 if let Some((inlined, num_bytes, num_handles)) =
11448 fidl::encoding::decode_envelope_header(decoder, next_offset)?
11449 {
11450 let member_inline_size =
11451 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
11452 if inlined != (member_inline_size <= 4) {
11453 return Err(fidl::Error::InvalidInlineBitInEnvelope);
11454 }
11455 let inner_offset;
11456 let mut inner_depth = depth.clone();
11457 if inlined {
11458 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
11459 inner_offset = next_offset;
11460 } else {
11461 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
11462 inner_depth.increment()?;
11463 }
11464 let val_ref = self.online.get_or_insert_with(|| fidl::new_empty!(bool, D));
11465 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
11466 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
11467 {
11468 return Err(fidl::Error::InvalidNumBytesInEnvelope);
11469 }
11470 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
11471 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
11472 }
11473 }
11474
11475 next_offset += envelope_size;
11476
11477 while next_offset < end_offset {
11479 _next_ordinal_to_read += 1;
11480 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11481 next_offset += envelope_size;
11482 }
11483
11484 Ok(())
11485 }
11486 }
11487
11488 impl WlanFullmacImplReconnectRequest {
11489 #[inline(always)]
11490 fn max_ordinal_present(&self) -> u64 {
11491 if let Some(_) = self.peer_sta_address {
11492 return 1;
11493 }
11494 0
11495 }
11496 }
11497
11498 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplReconnectRequest {
11499 type Borrowed<'a> = &'a Self;
11500 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
11501 value
11502 }
11503 }
11504
11505 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplReconnectRequest {
11506 type Owned = Self;
11507
11508 #[inline(always)]
11509 fn inline_align(_context: fidl::encoding::Context) -> usize {
11510 8
11511 }
11512
11513 #[inline(always)]
11514 fn inline_size(_context: fidl::encoding::Context) -> usize {
11515 16
11516 }
11517 }
11518
11519 unsafe impl<D: fidl::encoding::ResourceDialect>
11520 fidl::encoding::Encode<WlanFullmacImplReconnectRequest, D>
11521 for &WlanFullmacImplReconnectRequest
11522 {
11523 unsafe fn encode(
11524 self,
11525 encoder: &mut fidl::encoding::Encoder<'_, D>,
11526 offset: usize,
11527 mut depth: fidl::encoding::Depth,
11528 ) -> fidl::Result<()> {
11529 encoder.debug_check_bounds::<WlanFullmacImplReconnectRequest>(offset);
11530 let max_ordinal: u64 = self.max_ordinal_present();
11532 encoder.write_num(max_ordinal, offset);
11533 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
11534 if max_ordinal == 0 {
11536 return Ok(());
11537 }
11538 depth.increment()?;
11539 let envelope_size = 8;
11540 let bytes_len = max_ordinal as usize * envelope_size;
11541 #[allow(unused_variables)]
11542 let offset = encoder.out_of_line_offset(bytes_len);
11543 let mut _prev_end_offset: usize = 0;
11544 if 1 > max_ordinal {
11545 return Ok(());
11546 }
11547
11548 let cur_offset: usize = (1 - 1) * envelope_size;
11551
11552 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
11554
11555 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
11560 self.peer_sta_address
11561 .as_ref()
11562 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
11563 encoder,
11564 offset + cur_offset,
11565 depth,
11566 )?;
11567
11568 _prev_end_offset = cur_offset + envelope_size;
11569
11570 Ok(())
11571 }
11572 }
11573
11574 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
11575 for WlanFullmacImplReconnectRequest
11576 {
11577 #[inline(always)]
11578 fn new_empty() -> Self {
11579 Self::default()
11580 }
11581
11582 unsafe fn decode(
11583 &mut self,
11584 decoder: &mut fidl::encoding::Decoder<'_, D>,
11585 offset: usize,
11586 mut depth: fidl::encoding::Depth,
11587 ) -> fidl::Result<()> {
11588 decoder.debug_check_bounds::<Self>(offset);
11589 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
11590 None => return Err(fidl::Error::NotNullable),
11591 Some(len) => len,
11592 };
11593 if len == 0 {
11595 return Ok(());
11596 };
11597 depth.increment()?;
11598 let envelope_size = 8;
11599 let bytes_len = len * envelope_size;
11600 let offset = decoder.out_of_line_offset(bytes_len)?;
11601 let mut _next_ordinal_to_read = 0;
11603 let mut next_offset = offset;
11604 let end_offset = offset + bytes_len;
11605 _next_ordinal_to_read += 1;
11606 if next_offset >= end_offset {
11607 return Ok(());
11608 }
11609
11610 while _next_ordinal_to_read < 1 {
11612 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11613 _next_ordinal_to_read += 1;
11614 next_offset += envelope_size;
11615 }
11616
11617 let next_out_of_line = decoder.next_out_of_line();
11618 let handles_before = decoder.remaining_handles();
11619 if let Some((inlined, num_bytes, num_handles)) =
11620 fidl::encoding::decode_envelope_header(decoder, next_offset)?
11621 {
11622 let member_inline_size =
11623 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
11624 decoder.context,
11625 );
11626 if inlined != (member_inline_size <= 4) {
11627 return Err(fidl::Error::InvalidInlineBitInEnvelope);
11628 }
11629 let inner_offset;
11630 let mut inner_depth = depth.clone();
11631 if inlined {
11632 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
11633 inner_offset = next_offset;
11634 } else {
11635 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
11636 inner_depth.increment()?;
11637 }
11638 let val_ref = self
11639 .peer_sta_address
11640 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
11641 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
11642 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
11643 {
11644 return Err(fidl::Error::InvalidNumBytesInEnvelope);
11645 }
11646 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
11647 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
11648 }
11649 }
11650
11651 next_offset += envelope_size;
11652
11653 while next_offset < end_offset {
11655 _next_ordinal_to_read += 1;
11656 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11657 next_offset += envelope_size;
11658 }
11659
11660 Ok(())
11661 }
11662 }
11663
11664 impl WlanFullmacImplRoamRequest {
11665 #[inline(always)]
11666 fn max_ordinal_present(&self) -> u64 {
11667 if let Some(_) = self.selected_bss {
11668 return 1;
11669 }
11670 0
11671 }
11672 }
11673
11674 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplRoamRequest {
11675 type Borrowed<'a> = &'a Self;
11676 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
11677 value
11678 }
11679 }
11680
11681 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplRoamRequest {
11682 type Owned = Self;
11683
11684 #[inline(always)]
11685 fn inline_align(_context: fidl::encoding::Context) -> usize {
11686 8
11687 }
11688
11689 #[inline(always)]
11690 fn inline_size(_context: fidl::encoding::Context) -> usize {
11691 16
11692 }
11693 }
11694
11695 unsafe impl<D: fidl::encoding::ResourceDialect>
11696 fidl::encoding::Encode<WlanFullmacImplRoamRequest, D> for &WlanFullmacImplRoamRequest
11697 {
11698 unsafe fn encode(
11699 self,
11700 encoder: &mut fidl::encoding::Encoder<'_, D>,
11701 offset: usize,
11702 mut depth: fidl::encoding::Depth,
11703 ) -> fidl::Result<()> {
11704 encoder.debug_check_bounds::<WlanFullmacImplRoamRequest>(offset);
11705 let max_ordinal: u64 = self.max_ordinal_present();
11707 encoder.write_num(max_ordinal, offset);
11708 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
11709 if max_ordinal == 0 {
11711 return Ok(());
11712 }
11713 depth.increment()?;
11714 let envelope_size = 8;
11715 let bytes_len = max_ordinal as usize * envelope_size;
11716 #[allow(unused_variables)]
11717 let offset = encoder.out_of_line_offset(bytes_len);
11718 let mut _prev_end_offset: usize = 0;
11719 if 1 > max_ordinal {
11720 return Ok(());
11721 }
11722
11723 let cur_offset: usize = (1 - 1) * envelope_size;
11726
11727 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
11729
11730 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_common__common::BssDescription, D>(
11735 self.selected_bss.as_ref().map(<fidl_fuchsia_wlan_common__common::BssDescription as fidl::encoding::ValueTypeMarker>::borrow),
11736 encoder, offset + cur_offset, depth
11737 )?;
11738
11739 _prev_end_offset = cur_offset + envelope_size;
11740
11741 Ok(())
11742 }
11743 }
11744
11745 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
11746 for WlanFullmacImplRoamRequest
11747 {
11748 #[inline(always)]
11749 fn new_empty() -> Self {
11750 Self::default()
11751 }
11752
11753 unsafe fn decode(
11754 &mut self,
11755 decoder: &mut fidl::encoding::Decoder<'_, D>,
11756 offset: usize,
11757 mut depth: fidl::encoding::Depth,
11758 ) -> fidl::Result<()> {
11759 decoder.debug_check_bounds::<Self>(offset);
11760 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
11761 None => return Err(fidl::Error::NotNullable),
11762 Some(len) => len,
11763 };
11764 if len == 0 {
11766 return Ok(());
11767 };
11768 depth.increment()?;
11769 let envelope_size = 8;
11770 let bytes_len = len * envelope_size;
11771 let offset = decoder.out_of_line_offset(bytes_len)?;
11772 let mut _next_ordinal_to_read = 0;
11774 let mut next_offset = offset;
11775 let end_offset = offset + bytes_len;
11776 _next_ordinal_to_read += 1;
11777 if next_offset >= end_offset {
11778 return Ok(());
11779 }
11780
11781 while _next_ordinal_to_read < 1 {
11783 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11784 _next_ordinal_to_read += 1;
11785 next_offset += envelope_size;
11786 }
11787
11788 let next_out_of_line = decoder.next_out_of_line();
11789 let handles_before = decoder.remaining_handles();
11790 if let Some((inlined, num_bytes, num_handles)) =
11791 fidl::encoding::decode_envelope_header(decoder, next_offset)?
11792 {
11793 let member_inline_size = <fidl_fuchsia_wlan_common__common::BssDescription as fidl::encoding::TypeMarker>::inline_size(decoder.context);
11794 if inlined != (member_inline_size <= 4) {
11795 return Err(fidl::Error::InvalidInlineBitInEnvelope);
11796 }
11797 let inner_offset;
11798 let mut inner_depth = depth.clone();
11799 if inlined {
11800 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
11801 inner_offset = next_offset;
11802 } else {
11803 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
11804 inner_depth.increment()?;
11805 }
11806 let val_ref = self.selected_bss.get_or_insert_with(|| {
11807 fidl::new_empty!(fidl_fuchsia_wlan_common__common::BssDescription, D)
11808 });
11809 fidl::decode!(
11810 fidl_fuchsia_wlan_common__common::BssDescription,
11811 D,
11812 val_ref,
11813 decoder,
11814 inner_offset,
11815 inner_depth
11816 )?;
11817 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
11818 {
11819 return Err(fidl::Error::InvalidNumBytesInEnvelope);
11820 }
11821 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
11822 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
11823 }
11824 }
11825
11826 next_offset += envelope_size;
11827
11828 while next_offset < end_offset {
11830 _next_ordinal_to_read += 1;
11831 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11832 next_offset += envelope_size;
11833 }
11834
11835 Ok(())
11836 }
11837 }
11838
11839 impl WlanFullmacImplSaeHandshakeRespRequest {
11840 #[inline(always)]
11841 fn max_ordinal_present(&self) -> u64 {
11842 if let Some(_) = self.status_code {
11843 return 2;
11844 }
11845 if let Some(_) = self.peer_sta_address {
11846 return 1;
11847 }
11848 0
11849 }
11850 }
11851
11852 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplSaeHandshakeRespRequest {
11853 type Borrowed<'a> = &'a Self;
11854 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
11855 value
11856 }
11857 }
11858
11859 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplSaeHandshakeRespRequest {
11860 type Owned = Self;
11861
11862 #[inline(always)]
11863 fn inline_align(_context: fidl::encoding::Context) -> usize {
11864 8
11865 }
11866
11867 #[inline(always)]
11868 fn inline_size(_context: fidl::encoding::Context) -> usize {
11869 16
11870 }
11871 }
11872
11873 unsafe impl<D: fidl::encoding::ResourceDialect>
11874 fidl::encoding::Encode<WlanFullmacImplSaeHandshakeRespRequest, D>
11875 for &WlanFullmacImplSaeHandshakeRespRequest
11876 {
11877 unsafe fn encode(
11878 self,
11879 encoder: &mut fidl::encoding::Encoder<'_, D>,
11880 offset: usize,
11881 mut depth: fidl::encoding::Depth,
11882 ) -> fidl::Result<()> {
11883 encoder.debug_check_bounds::<WlanFullmacImplSaeHandshakeRespRequest>(offset);
11884 let max_ordinal: u64 = self.max_ordinal_present();
11886 encoder.write_num(max_ordinal, offset);
11887 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
11888 if max_ordinal == 0 {
11890 return Ok(());
11891 }
11892 depth.increment()?;
11893 let envelope_size = 8;
11894 let bytes_len = max_ordinal as usize * envelope_size;
11895 #[allow(unused_variables)]
11896 let offset = encoder.out_of_line_offset(bytes_len);
11897 let mut _prev_end_offset: usize = 0;
11898 if 1 > max_ordinal {
11899 return Ok(());
11900 }
11901
11902 let cur_offset: usize = (1 - 1) * envelope_size;
11905
11906 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
11908
11909 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
11914 self.peer_sta_address
11915 .as_ref()
11916 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
11917 encoder,
11918 offset + cur_offset,
11919 depth,
11920 )?;
11921
11922 _prev_end_offset = cur_offset + envelope_size;
11923 if 2 > max_ordinal {
11924 return Ok(());
11925 }
11926
11927 let cur_offset: usize = (2 - 1) * envelope_size;
11930
11931 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
11933
11934 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_ieee80211__common::StatusCode, D>(
11939 self.status_code.as_ref().map(<fidl_fuchsia_wlan_ieee80211__common::StatusCode as fidl::encoding::ValueTypeMarker>::borrow),
11940 encoder, offset + cur_offset, depth
11941 )?;
11942
11943 _prev_end_offset = cur_offset + envelope_size;
11944
11945 Ok(())
11946 }
11947 }
11948
11949 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
11950 for WlanFullmacImplSaeHandshakeRespRequest
11951 {
11952 #[inline(always)]
11953 fn new_empty() -> Self {
11954 Self::default()
11955 }
11956
11957 unsafe fn decode(
11958 &mut self,
11959 decoder: &mut fidl::encoding::Decoder<'_, D>,
11960 offset: usize,
11961 mut depth: fidl::encoding::Depth,
11962 ) -> fidl::Result<()> {
11963 decoder.debug_check_bounds::<Self>(offset);
11964 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
11965 None => return Err(fidl::Error::NotNullable),
11966 Some(len) => len,
11967 };
11968 if len == 0 {
11970 return Ok(());
11971 };
11972 depth.increment()?;
11973 let envelope_size = 8;
11974 let bytes_len = len * envelope_size;
11975 let offset = decoder.out_of_line_offset(bytes_len)?;
11976 let mut _next_ordinal_to_read = 0;
11978 let mut next_offset = offset;
11979 let end_offset = offset + bytes_len;
11980 _next_ordinal_to_read += 1;
11981 if next_offset >= end_offset {
11982 return Ok(());
11983 }
11984
11985 while _next_ordinal_to_read < 1 {
11987 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11988 _next_ordinal_to_read += 1;
11989 next_offset += envelope_size;
11990 }
11991
11992 let next_out_of_line = decoder.next_out_of_line();
11993 let handles_before = decoder.remaining_handles();
11994 if let Some((inlined, num_bytes, num_handles)) =
11995 fidl::encoding::decode_envelope_header(decoder, next_offset)?
11996 {
11997 let member_inline_size =
11998 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
11999 decoder.context,
12000 );
12001 if inlined != (member_inline_size <= 4) {
12002 return Err(fidl::Error::InvalidInlineBitInEnvelope);
12003 }
12004 let inner_offset;
12005 let mut inner_depth = depth.clone();
12006 if inlined {
12007 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
12008 inner_offset = next_offset;
12009 } else {
12010 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
12011 inner_depth.increment()?;
12012 }
12013 let val_ref = self
12014 .peer_sta_address
12015 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
12016 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
12017 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
12018 {
12019 return Err(fidl::Error::InvalidNumBytesInEnvelope);
12020 }
12021 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
12022 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
12023 }
12024 }
12025
12026 next_offset += envelope_size;
12027 _next_ordinal_to_read += 1;
12028 if next_offset >= end_offset {
12029 return Ok(());
12030 }
12031
12032 while _next_ordinal_to_read < 2 {
12034 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12035 _next_ordinal_to_read += 1;
12036 next_offset += envelope_size;
12037 }
12038
12039 let next_out_of_line = decoder.next_out_of_line();
12040 let handles_before = decoder.remaining_handles();
12041 if let Some((inlined, num_bytes, num_handles)) =
12042 fidl::encoding::decode_envelope_header(decoder, next_offset)?
12043 {
12044 let member_inline_size = <fidl_fuchsia_wlan_ieee80211__common::StatusCode as fidl::encoding::TypeMarker>::inline_size(decoder.context);
12045 if inlined != (member_inline_size <= 4) {
12046 return Err(fidl::Error::InvalidInlineBitInEnvelope);
12047 }
12048 let inner_offset;
12049 let mut inner_depth = depth.clone();
12050 if inlined {
12051 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
12052 inner_offset = next_offset;
12053 } else {
12054 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
12055 inner_depth.increment()?;
12056 }
12057 let val_ref = self.status_code.get_or_insert_with(|| {
12058 fidl::new_empty!(fidl_fuchsia_wlan_ieee80211__common::StatusCode, D)
12059 });
12060 fidl::decode!(
12061 fidl_fuchsia_wlan_ieee80211__common::StatusCode,
12062 D,
12063 val_ref,
12064 decoder,
12065 inner_offset,
12066 inner_depth
12067 )?;
12068 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
12069 {
12070 return Err(fidl::Error::InvalidNumBytesInEnvelope);
12071 }
12072 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
12073 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
12074 }
12075 }
12076
12077 next_offset += envelope_size;
12078
12079 while next_offset < end_offset {
12081 _next_ordinal_to_read += 1;
12082 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12083 next_offset += envelope_size;
12084 }
12085
12086 Ok(())
12087 }
12088 }
12089
12090 impl WlanFullmacImplSetKeysRequest {
12091 #[inline(always)]
12092 fn max_ordinal_present(&self) -> u64 {
12093 if let Some(_) = self.key_descriptors {
12094 return 2;
12095 }
12096 if let Some(_) = self.keylist {
12097 return 1;
12098 }
12099 0
12100 }
12101 }
12102
12103 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplSetKeysRequest {
12104 type Borrowed<'a> = &'a Self;
12105 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
12106 value
12107 }
12108 }
12109
12110 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplSetKeysRequest {
12111 type Owned = Self;
12112
12113 #[inline(always)]
12114 fn inline_align(_context: fidl::encoding::Context) -> usize {
12115 8
12116 }
12117
12118 #[inline(always)]
12119 fn inline_size(_context: fidl::encoding::Context) -> usize {
12120 16
12121 }
12122 }
12123
12124 unsafe impl<D: fidl::encoding::ResourceDialect>
12125 fidl::encoding::Encode<WlanFullmacImplSetKeysRequest, D>
12126 for &WlanFullmacImplSetKeysRequest
12127 {
12128 unsafe fn encode(
12129 self,
12130 encoder: &mut fidl::encoding::Encoder<'_, D>,
12131 offset: usize,
12132 mut depth: fidl::encoding::Depth,
12133 ) -> fidl::Result<()> {
12134 encoder.debug_check_bounds::<WlanFullmacImplSetKeysRequest>(offset);
12135 let max_ordinal: u64 = self.max_ordinal_present();
12137 encoder.write_num(max_ordinal, offset);
12138 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
12139 if max_ordinal == 0 {
12141 return Ok(());
12142 }
12143 depth.increment()?;
12144 let envelope_size = 8;
12145 let bytes_len = max_ordinal as usize * envelope_size;
12146 #[allow(unused_variables)]
12147 let offset = encoder.out_of_line_offset(bytes_len);
12148 let mut _prev_end_offset: usize = 0;
12149 if 1 > max_ordinal {
12150 return Ok(());
12151 }
12152
12153 let cur_offset: usize = (1 - 1) * envelope_size;
12156
12157 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12159
12160 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<fidl_fuchsia_wlan_common__common::WlanKeyConfig, 4>, D>(
12165 self.keylist.as_ref().map(<fidl::encoding::Vector<fidl_fuchsia_wlan_common__common::WlanKeyConfig, 4> as fidl::encoding::ValueTypeMarker>::borrow),
12166 encoder, offset + cur_offset, depth
12167 )?;
12168
12169 _prev_end_offset = cur_offset + envelope_size;
12170 if 2 > max_ordinal {
12171 return Ok(());
12172 }
12173
12174 let cur_offset: usize = (2 - 1) * envelope_size;
12177
12178 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12180
12181 fidl::encoding::encode_in_envelope_optional::<
12186 fidl::encoding::Vector<fidl_fuchsia_wlan_ieee80211__common::SetKeyDescriptor, 4>,
12187 D,
12188 >(
12189 self.key_descriptors.as_ref().map(
12190 <fidl::encoding::Vector<
12191 fidl_fuchsia_wlan_ieee80211__common::SetKeyDescriptor,
12192 4,
12193 > as fidl::encoding::ValueTypeMarker>::borrow,
12194 ),
12195 encoder,
12196 offset + cur_offset,
12197 depth,
12198 )?;
12199
12200 _prev_end_offset = cur_offset + envelope_size;
12201
12202 Ok(())
12203 }
12204 }
12205
12206 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
12207 for WlanFullmacImplSetKeysRequest
12208 {
12209 #[inline(always)]
12210 fn new_empty() -> Self {
12211 Self::default()
12212 }
12213
12214 unsafe fn decode(
12215 &mut self,
12216 decoder: &mut fidl::encoding::Decoder<'_, D>,
12217 offset: usize,
12218 mut depth: fidl::encoding::Depth,
12219 ) -> fidl::Result<()> {
12220 decoder.debug_check_bounds::<Self>(offset);
12221 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
12222 None => return Err(fidl::Error::NotNullable),
12223 Some(len) => len,
12224 };
12225 if len == 0 {
12227 return Ok(());
12228 };
12229 depth.increment()?;
12230 let envelope_size = 8;
12231 let bytes_len = len * envelope_size;
12232 let offset = decoder.out_of_line_offset(bytes_len)?;
12233 let mut _next_ordinal_to_read = 0;
12235 let mut next_offset = offset;
12236 let end_offset = offset + bytes_len;
12237 _next_ordinal_to_read += 1;
12238 if next_offset >= end_offset {
12239 return Ok(());
12240 }
12241
12242 while _next_ordinal_to_read < 1 {
12244 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12245 _next_ordinal_to_read += 1;
12246 next_offset += envelope_size;
12247 }
12248
12249 let next_out_of_line = decoder.next_out_of_line();
12250 let handles_before = decoder.remaining_handles();
12251 if let Some((inlined, num_bytes, num_handles)) =
12252 fidl::encoding::decode_envelope_header(decoder, next_offset)?
12253 {
12254 let member_inline_size = <fidl::encoding::Vector<
12255 fidl_fuchsia_wlan_common__common::WlanKeyConfig,
12256 4,
12257 > as fidl::encoding::TypeMarker>::inline_size(
12258 decoder.context
12259 );
12260 if inlined != (member_inline_size <= 4) {
12261 return Err(fidl::Error::InvalidInlineBitInEnvelope);
12262 }
12263 let inner_offset;
12264 let mut inner_depth = depth.clone();
12265 if inlined {
12266 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
12267 inner_offset = next_offset;
12268 } else {
12269 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
12270 inner_depth.increment()?;
12271 }
12272 let val_ref =
12273 self.keylist.get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<fidl_fuchsia_wlan_common__common::WlanKeyConfig, 4>, D));
12274 fidl::decode!(fidl::encoding::Vector<fidl_fuchsia_wlan_common__common::WlanKeyConfig, 4>, D, val_ref, decoder, inner_offset, inner_depth)?;
12275 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
12276 {
12277 return Err(fidl::Error::InvalidNumBytesInEnvelope);
12278 }
12279 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
12280 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
12281 }
12282 }
12283
12284 next_offset += envelope_size;
12285 _next_ordinal_to_read += 1;
12286 if next_offset >= end_offset {
12287 return Ok(());
12288 }
12289
12290 while _next_ordinal_to_read < 2 {
12292 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12293 _next_ordinal_to_read += 1;
12294 next_offset += envelope_size;
12295 }
12296
12297 let next_out_of_line = decoder.next_out_of_line();
12298 let handles_before = decoder.remaining_handles();
12299 if let Some((inlined, num_bytes, num_handles)) =
12300 fidl::encoding::decode_envelope_header(decoder, next_offset)?
12301 {
12302 let member_inline_size = <fidl::encoding::Vector<
12303 fidl_fuchsia_wlan_ieee80211__common::SetKeyDescriptor,
12304 4,
12305 > as fidl::encoding::TypeMarker>::inline_size(
12306 decoder.context
12307 );
12308 if inlined != (member_inline_size <= 4) {
12309 return Err(fidl::Error::InvalidInlineBitInEnvelope);
12310 }
12311 let inner_offset;
12312 let mut inner_depth = depth.clone();
12313 if inlined {
12314 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
12315 inner_offset = next_offset;
12316 } else {
12317 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
12318 inner_depth.increment()?;
12319 }
12320 let val_ref =
12321 self.key_descriptors.get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<fidl_fuchsia_wlan_ieee80211__common::SetKeyDescriptor, 4>, D));
12322 fidl::decode!(fidl::encoding::Vector<fidl_fuchsia_wlan_ieee80211__common::SetKeyDescriptor, 4>, D, val_ref, decoder, inner_offset, inner_depth)?;
12323 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
12324 {
12325 return Err(fidl::Error::InvalidNumBytesInEnvelope);
12326 }
12327 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
12328 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
12329 }
12330 }
12331
12332 next_offset += envelope_size;
12333
12334 while next_offset < end_offset {
12336 _next_ordinal_to_read += 1;
12337 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12338 next_offset += envelope_size;
12339 }
12340
12341 Ok(())
12342 }
12343 }
12344
12345 impl WlanFullmacImplStartBssRequest {
12346 #[inline(always)]
12347 fn max_ordinal_present(&self) -> u64 {
12348 if let Some(_) = self.vendor_ie {
12349 return 7;
12350 }
12351 if let Some(_) = self.rsne {
12352 return 6;
12353 }
12354 if let Some(_) = self.channel {
12355 return 5;
12356 }
12357 if let Some(_) = self.dtim_period {
12358 return 4;
12359 }
12360 if let Some(_) = self.beacon_period {
12361 return 3;
12362 }
12363 if let Some(_) = self.bss_type {
12364 return 2;
12365 }
12366 if let Some(_) = self.ssid {
12367 return 1;
12368 }
12369 0
12370 }
12371 }
12372
12373 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplStartBssRequest {
12374 type Borrowed<'a> = &'a Self;
12375 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
12376 value
12377 }
12378 }
12379
12380 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplStartBssRequest {
12381 type Owned = Self;
12382
12383 #[inline(always)]
12384 fn inline_align(_context: fidl::encoding::Context) -> usize {
12385 8
12386 }
12387
12388 #[inline(always)]
12389 fn inline_size(_context: fidl::encoding::Context) -> usize {
12390 16
12391 }
12392 }
12393
12394 unsafe impl<D: fidl::encoding::ResourceDialect>
12395 fidl::encoding::Encode<WlanFullmacImplStartBssRequest, D>
12396 for &WlanFullmacImplStartBssRequest
12397 {
12398 unsafe fn encode(
12399 self,
12400 encoder: &mut fidl::encoding::Encoder<'_, D>,
12401 offset: usize,
12402 mut depth: fidl::encoding::Depth,
12403 ) -> fidl::Result<()> {
12404 encoder.debug_check_bounds::<WlanFullmacImplStartBssRequest>(offset);
12405 let max_ordinal: u64 = self.max_ordinal_present();
12407 encoder.write_num(max_ordinal, offset);
12408 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
12409 if max_ordinal == 0 {
12411 return Ok(());
12412 }
12413 depth.increment()?;
12414 let envelope_size = 8;
12415 let bytes_len = max_ordinal as usize * envelope_size;
12416 #[allow(unused_variables)]
12417 let offset = encoder.out_of_line_offset(bytes_len);
12418 let mut _prev_end_offset: usize = 0;
12419 if 1 > max_ordinal {
12420 return Ok(());
12421 }
12422
12423 let cur_offset: usize = (1 - 1) * envelope_size;
12426
12427 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12429
12430 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<u8, 32>, D>(
12435 self.ssid.as_ref().map(
12436 <fidl::encoding::Vector<u8, 32> as fidl::encoding::ValueTypeMarker>::borrow,
12437 ),
12438 encoder,
12439 offset + cur_offset,
12440 depth,
12441 )?;
12442
12443 _prev_end_offset = cur_offset + envelope_size;
12444 if 2 > max_ordinal {
12445 return Ok(());
12446 }
12447
12448 let cur_offset: usize = (2 - 1) * envelope_size;
12451
12452 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12454
12455 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_common__common::BssType, D>(
12460 self.bss_type.as_ref().map(<fidl_fuchsia_wlan_common__common::BssType as fidl::encoding::ValueTypeMarker>::borrow),
12461 encoder, offset + cur_offset, depth
12462 )?;
12463
12464 _prev_end_offset = cur_offset + envelope_size;
12465 if 3 > max_ordinal {
12466 return Ok(());
12467 }
12468
12469 let cur_offset: usize = (3 - 1) * envelope_size;
12472
12473 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12475
12476 fidl::encoding::encode_in_envelope_optional::<u32, D>(
12481 self.beacon_period.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
12482 encoder,
12483 offset + cur_offset,
12484 depth,
12485 )?;
12486
12487 _prev_end_offset = cur_offset + envelope_size;
12488 if 4 > max_ordinal {
12489 return Ok(());
12490 }
12491
12492 let cur_offset: usize = (4 - 1) * envelope_size;
12495
12496 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12498
12499 fidl::encoding::encode_in_envelope_optional::<u32, D>(
12504 self.dtim_period.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
12505 encoder,
12506 offset + cur_offset,
12507 depth,
12508 )?;
12509
12510 _prev_end_offset = cur_offset + envelope_size;
12511 if 5 > max_ordinal {
12512 return Ok(());
12513 }
12514
12515 let cur_offset: usize = (5 - 1) * envelope_size;
12518
12519 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12521
12522 fidl::encoding::encode_in_envelope_optional::<u8, D>(
12527 self.channel.as_ref().map(<u8 as fidl::encoding::ValueTypeMarker>::borrow),
12528 encoder,
12529 offset + cur_offset,
12530 depth,
12531 )?;
12532
12533 _prev_end_offset = cur_offset + envelope_size;
12534 if 6 > max_ordinal {
12535 return Ok(());
12536 }
12537
12538 let cur_offset: usize = (6 - 1) * envelope_size;
12541
12542 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12544
12545 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<u8, 257>, D>(
12550 self.rsne.as_ref().map(
12551 <fidl::encoding::Vector<u8, 257> as fidl::encoding::ValueTypeMarker>::borrow,
12552 ),
12553 encoder,
12554 offset + cur_offset,
12555 depth,
12556 )?;
12557
12558 _prev_end_offset = cur_offset + envelope_size;
12559 if 7 > max_ordinal {
12560 return Ok(());
12561 }
12562
12563 let cur_offset: usize = (7 - 1) * envelope_size;
12566
12567 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12569
12570 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<u8, 514>, D>(
12575 self.vendor_ie.as_ref().map(
12576 <fidl::encoding::Vector<u8, 514> as fidl::encoding::ValueTypeMarker>::borrow,
12577 ),
12578 encoder,
12579 offset + cur_offset,
12580 depth,
12581 )?;
12582
12583 _prev_end_offset = cur_offset + envelope_size;
12584
12585 Ok(())
12586 }
12587 }
12588
12589 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
12590 for WlanFullmacImplStartBssRequest
12591 {
12592 #[inline(always)]
12593 fn new_empty() -> Self {
12594 Self::default()
12595 }
12596
12597 unsafe fn decode(
12598 &mut self,
12599 decoder: &mut fidl::encoding::Decoder<'_, D>,
12600 offset: usize,
12601 mut depth: fidl::encoding::Depth,
12602 ) -> fidl::Result<()> {
12603 decoder.debug_check_bounds::<Self>(offset);
12604 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
12605 None => return Err(fidl::Error::NotNullable),
12606 Some(len) => len,
12607 };
12608 if len == 0 {
12610 return Ok(());
12611 };
12612 depth.increment()?;
12613 let envelope_size = 8;
12614 let bytes_len = len * envelope_size;
12615 let offset = decoder.out_of_line_offset(bytes_len)?;
12616 let mut _next_ordinal_to_read = 0;
12618 let mut next_offset = offset;
12619 let end_offset = offset + bytes_len;
12620 _next_ordinal_to_read += 1;
12621 if next_offset >= end_offset {
12622 return Ok(());
12623 }
12624
12625 while _next_ordinal_to_read < 1 {
12627 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12628 _next_ordinal_to_read += 1;
12629 next_offset += envelope_size;
12630 }
12631
12632 let next_out_of_line = decoder.next_out_of_line();
12633 let handles_before = decoder.remaining_handles();
12634 if let Some((inlined, num_bytes, num_handles)) =
12635 fidl::encoding::decode_envelope_header(decoder, next_offset)?
12636 {
12637 let member_inline_size =
12638 <fidl::encoding::Vector<u8, 32> as fidl::encoding::TypeMarker>::inline_size(
12639 decoder.context,
12640 );
12641 if inlined != (member_inline_size <= 4) {
12642 return Err(fidl::Error::InvalidInlineBitInEnvelope);
12643 }
12644 let inner_offset;
12645 let mut inner_depth = depth.clone();
12646 if inlined {
12647 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
12648 inner_offset = next_offset;
12649 } else {
12650 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
12651 inner_depth.increment()?;
12652 }
12653 let val_ref = self
12654 .ssid
12655 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<u8, 32>, D));
12656 fidl::decode!(fidl::encoding::Vector<u8, 32>, D, val_ref, decoder, inner_offset, inner_depth)?;
12657 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
12658 {
12659 return Err(fidl::Error::InvalidNumBytesInEnvelope);
12660 }
12661 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
12662 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
12663 }
12664 }
12665
12666 next_offset += envelope_size;
12667 _next_ordinal_to_read += 1;
12668 if next_offset >= end_offset {
12669 return Ok(());
12670 }
12671
12672 while _next_ordinal_to_read < 2 {
12674 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12675 _next_ordinal_to_read += 1;
12676 next_offset += envelope_size;
12677 }
12678
12679 let next_out_of_line = decoder.next_out_of_line();
12680 let handles_before = decoder.remaining_handles();
12681 if let Some((inlined, num_bytes, num_handles)) =
12682 fidl::encoding::decode_envelope_header(decoder, next_offset)?
12683 {
12684 let member_inline_size = <fidl_fuchsia_wlan_common__common::BssType as fidl::encoding::TypeMarker>::inline_size(decoder.context);
12685 if inlined != (member_inline_size <= 4) {
12686 return Err(fidl::Error::InvalidInlineBitInEnvelope);
12687 }
12688 let inner_offset;
12689 let mut inner_depth = depth.clone();
12690 if inlined {
12691 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
12692 inner_offset = next_offset;
12693 } else {
12694 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
12695 inner_depth.increment()?;
12696 }
12697 let val_ref = self.bss_type.get_or_insert_with(|| {
12698 fidl::new_empty!(fidl_fuchsia_wlan_common__common::BssType, D)
12699 });
12700 fidl::decode!(
12701 fidl_fuchsia_wlan_common__common::BssType,
12702 D,
12703 val_ref,
12704 decoder,
12705 inner_offset,
12706 inner_depth
12707 )?;
12708 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
12709 {
12710 return Err(fidl::Error::InvalidNumBytesInEnvelope);
12711 }
12712 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
12713 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
12714 }
12715 }
12716
12717 next_offset += envelope_size;
12718 _next_ordinal_to_read += 1;
12719 if next_offset >= end_offset {
12720 return Ok(());
12721 }
12722
12723 while _next_ordinal_to_read < 3 {
12725 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12726 _next_ordinal_to_read += 1;
12727 next_offset += envelope_size;
12728 }
12729
12730 let next_out_of_line = decoder.next_out_of_line();
12731 let handles_before = decoder.remaining_handles();
12732 if let Some((inlined, num_bytes, num_handles)) =
12733 fidl::encoding::decode_envelope_header(decoder, next_offset)?
12734 {
12735 let member_inline_size =
12736 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
12737 if inlined != (member_inline_size <= 4) {
12738 return Err(fidl::Error::InvalidInlineBitInEnvelope);
12739 }
12740 let inner_offset;
12741 let mut inner_depth = depth.clone();
12742 if inlined {
12743 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
12744 inner_offset = next_offset;
12745 } else {
12746 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
12747 inner_depth.increment()?;
12748 }
12749 let val_ref = self.beacon_period.get_or_insert_with(|| fidl::new_empty!(u32, D));
12750 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
12751 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
12752 {
12753 return Err(fidl::Error::InvalidNumBytesInEnvelope);
12754 }
12755 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
12756 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
12757 }
12758 }
12759
12760 next_offset += envelope_size;
12761 _next_ordinal_to_read += 1;
12762 if next_offset >= end_offset {
12763 return Ok(());
12764 }
12765
12766 while _next_ordinal_to_read < 4 {
12768 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12769 _next_ordinal_to_read += 1;
12770 next_offset += envelope_size;
12771 }
12772
12773 let next_out_of_line = decoder.next_out_of_line();
12774 let handles_before = decoder.remaining_handles();
12775 if let Some((inlined, num_bytes, num_handles)) =
12776 fidl::encoding::decode_envelope_header(decoder, next_offset)?
12777 {
12778 let member_inline_size =
12779 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
12780 if inlined != (member_inline_size <= 4) {
12781 return Err(fidl::Error::InvalidInlineBitInEnvelope);
12782 }
12783 let inner_offset;
12784 let mut inner_depth = depth.clone();
12785 if inlined {
12786 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
12787 inner_offset = next_offset;
12788 } else {
12789 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
12790 inner_depth.increment()?;
12791 }
12792 let val_ref = self.dtim_period.get_or_insert_with(|| fidl::new_empty!(u32, D));
12793 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
12794 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
12795 {
12796 return Err(fidl::Error::InvalidNumBytesInEnvelope);
12797 }
12798 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
12799 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
12800 }
12801 }
12802
12803 next_offset += envelope_size;
12804 _next_ordinal_to_read += 1;
12805 if next_offset >= end_offset {
12806 return Ok(());
12807 }
12808
12809 while _next_ordinal_to_read < 5 {
12811 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12812 _next_ordinal_to_read += 1;
12813 next_offset += envelope_size;
12814 }
12815
12816 let next_out_of_line = decoder.next_out_of_line();
12817 let handles_before = decoder.remaining_handles();
12818 if let Some((inlined, num_bytes, num_handles)) =
12819 fidl::encoding::decode_envelope_header(decoder, next_offset)?
12820 {
12821 let member_inline_size =
12822 <u8 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
12823 if inlined != (member_inline_size <= 4) {
12824 return Err(fidl::Error::InvalidInlineBitInEnvelope);
12825 }
12826 let inner_offset;
12827 let mut inner_depth = depth.clone();
12828 if inlined {
12829 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
12830 inner_offset = next_offset;
12831 } else {
12832 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
12833 inner_depth.increment()?;
12834 }
12835 let val_ref = self.channel.get_or_insert_with(|| fidl::new_empty!(u8, D));
12836 fidl::decode!(u8, D, val_ref, decoder, inner_offset, inner_depth)?;
12837 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
12838 {
12839 return Err(fidl::Error::InvalidNumBytesInEnvelope);
12840 }
12841 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
12842 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
12843 }
12844 }
12845
12846 next_offset += envelope_size;
12847 _next_ordinal_to_read += 1;
12848 if next_offset >= end_offset {
12849 return Ok(());
12850 }
12851
12852 while _next_ordinal_to_read < 6 {
12854 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12855 _next_ordinal_to_read += 1;
12856 next_offset += envelope_size;
12857 }
12858
12859 let next_out_of_line = decoder.next_out_of_line();
12860 let handles_before = decoder.remaining_handles();
12861 if let Some((inlined, num_bytes, num_handles)) =
12862 fidl::encoding::decode_envelope_header(decoder, next_offset)?
12863 {
12864 let member_inline_size =
12865 <fidl::encoding::Vector<u8, 257> as fidl::encoding::TypeMarker>::inline_size(
12866 decoder.context,
12867 );
12868 if inlined != (member_inline_size <= 4) {
12869 return Err(fidl::Error::InvalidInlineBitInEnvelope);
12870 }
12871 let inner_offset;
12872 let mut inner_depth = depth.clone();
12873 if inlined {
12874 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
12875 inner_offset = next_offset;
12876 } else {
12877 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
12878 inner_depth.increment()?;
12879 }
12880 let val_ref = self
12881 .rsne
12882 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<u8, 257>, D));
12883 fidl::decode!(fidl::encoding::Vector<u8, 257>, D, val_ref, decoder, inner_offset, inner_depth)?;
12884 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
12885 {
12886 return Err(fidl::Error::InvalidNumBytesInEnvelope);
12887 }
12888 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
12889 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
12890 }
12891 }
12892
12893 next_offset += envelope_size;
12894 _next_ordinal_to_read += 1;
12895 if next_offset >= end_offset {
12896 return Ok(());
12897 }
12898
12899 while _next_ordinal_to_read < 7 {
12901 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12902 _next_ordinal_to_read += 1;
12903 next_offset += envelope_size;
12904 }
12905
12906 let next_out_of_line = decoder.next_out_of_line();
12907 let handles_before = decoder.remaining_handles();
12908 if let Some((inlined, num_bytes, num_handles)) =
12909 fidl::encoding::decode_envelope_header(decoder, next_offset)?
12910 {
12911 let member_inline_size =
12912 <fidl::encoding::Vector<u8, 514> as fidl::encoding::TypeMarker>::inline_size(
12913 decoder.context,
12914 );
12915 if inlined != (member_inline_size <= 4) {
12916 return Err(fidl::Error::InvalidInlineBitInEnvelope);
12917 }
12918 let inner_offset;
12919 let mut inner_depth = depth.clone();
12920 if inlined {
12921 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
12922 inner_offset = next_offset;
12923 } else {
12924 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
12925 inner_depth.increment()?;
12926 }
12927 let val_ref = self
12928 .vendor_ie
12929 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<u8, 514>, D));
12930 fidl::decode!(fidl::encoding::Vector<u8, 514>, D, val_ref, decoder, inner_offset, inner_depth)?;
12931 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
12932 {
12933 return Err(fidl::Error::InvalidNumBytesInEnvelope);
12934 }
12935 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
12936 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
12937 }
12938 }
12939
12940 next_offset += envelope_size;
12941
12942 while next_offset < end_offset {
12944 _next_ordinal_to_read += 1;
12945 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12946 next_offset += envelope_size;
12947 }
12948
12949 Ok(())
12950 }
12951 }
12952
12953 impl WlanFullmacImplStartScanRequest {
12954 #[inline(always)]
12955 fn max_ordinal_present(&self) -> u64 {
12956 if let Some(_) = self.max_channel_time {
12957 return 6;
12958 }
12959 if let Some(_) = self.min_channel_time {
12960 return 5;
12961 }
12962 if let Some(_) = self.ssids {
12963 return 4;
12964 }
12965 if let Some(_) = self.channels {
12966 return 3;
12967 }
12968 if let Some(_) = self.scan_type {
12969 return 2;
12970 }
12971 if let Some(_) = self.txn_id {
12972 return 1;
12973 }
12974 0
12975 }
12976 }
12977
12978 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplStartScanRequest {
12979 type Borrowed<'a> = &'a Self;
12980 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
12981 value
12982 }
12983 }
12984
12985 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplStartScanRequest {
12986 type Owned = Self;
12987
12988 #[inline(always)]
12989 fn inline_align(_context: fidl::encoding::Context) -> usize {
12990 8
12991 }
12992
12993 #[inline(always)]
12994 fn inline_size(_context: fidl::encoding::Context) -> usize {
12995 16
12996 }
12997 }
12998
12999 unsafe impl<D: fidl::encoding::ResourceDialect>
13000 fidl::encoding::Encode<WlanFullmacImplStartScanRequest, D>
13001 for &WlanFullmacImplStartScanRequest
13002 {
13003 unsafe fn encode(
13004 self,
13005 encoder: &mut fidl::encoding::Encoder<'_, D>,
13006 offset: usize,
13007 mut depth: fidl::encoding::Depth,
13008 ) -> fidl::Result<()> {
13009 encoder.debug_check_bounds::<WlanFullmacImplStartScanRequest>(offset);
13010 let max_ordinal: u64 = self.max_ordinal_present();
13012 encoder.write_num(max_ordinal, offset);
13013 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
13014 if max_ordinal == 0 {
13016 return Ok(());
13017 }
13018 depth.increment()?;
13019 let envelope_size = 8;
13020 let bytes_len = max_ordinal as usize * envelope_size;
13021 #[allow(unused_variables)]
13022 let offset = encoder.out_of_line_offset(bytes_len);
13023 let mut _prev_end_offset: usize = 0;
13024 if 1 > max_ordinal {
13025 return Ok(());
13026 }
13027
13028 let cur_offset: usize = (1 - 1) * envelope_size;
13031
13032 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
13034
13035 fidl::encoding::encode_in_envelope_optional::<u64, D>(
13040 self.txn_id.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
13041 encoder,
13042 offset + cur_offset,
13043 depth,
13044 )?;
13045
13046 _prev_end_offset = cur_offset + envelope_size;
13047 if 2 > max_ordinal {
13048 return Ok(());
13049 }
13050
13051 let cur_offset: usize = (2 - 1) * envelope_size;
13054
13055 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
13057
13058 fidl::encoding::encode_in_envelope_optional::<WlanScanType, D>(
13063 self.scan_type
13064 .as_ref()
13065 .map(<WlanScanType as fidl::encoding::ValueTypeMarker>::borrow),
13066 encoder,
13067 offset + cur_offset,
13068 depth,
13069 )?;
13070
13071 _prev_end_offset = cur_offset + envelope_size;
13072 if 3 > max_ordinal {
13073 return Ok(());
13074 }
13075
13076 let cur_offset: usize = (3 - 1) * envelope_size;
13079
13080 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
13082
13083 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<u8, 256>, D>(
13088 self.channels.as_ref().map(
13089 <fidl::encoding::Vector<u8, 256> as fidl::encoding::ValueTypeMarker>::borrow,
13090 ),
13091 encoder,
13092 offset + cur_offset,
13093 depth,
13094 )?;
13095
13096 _prev_end_offset = cur_offset + envelope_size;
13097 if 4 > max_ordinal {
13098 return Ok(());
13099 }
13100
13101 let cur_offset: usize = (4 - 1) * envelope_size;
13104
13105 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
13107
13108 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<fidl::encoding::Vector<u8, 32>>, D>(
13113 self.ssids.as_ref().map(<fidl::encoding::UnboundedVector<fidl::encoding::Vector<u8, 32>> as fidl::encoding::ValueTypeMarker>::borrow),
13114 encoder, offset + cur_offset, depth
13115 )?;
13116
13117 _prev_end_offset = cur_offset + envelope_size;
13118 if 5 > max_ordinal {
13119 return Ok(());
13120 }
13121
13122 let cur_offset: usize = (5 - 1) * envelope_size;
13125
13126 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
13128
13129 fidl::encoding::encode_in_envelope_optional::<u32, D>(
13134 self.min_channel_time
13135 .as_ref()
13136 .map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
13137 encoder,
13138 offset + cur_offset,
13139 depth,
13140 )?;
13141
13142 _prev_end_offset = cur_offset + envelope_size;
13143 if 6 > max_ordinal {
13144 return Ok(());
13145 }
13146
13147 let cur_offset: usize = (6 - 1) * envelope_size;
13150
13151 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
13153
13154 fidl::encoding::encode_in_envelope_optional::<u32, D>(
13159 self.max_channel_time
13160 .as_ref()
13161 .map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
13162 encoder,
13163 offset + cur_offset,
13164 depth,
13165 )?;
13166
13167 _prev_end_offset = cur_offset + envelope_size;
13168
13169 Ok(())
13170 }
13171 }
13172
13173 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
13174 for WlanFullmacImplStartScanRequest
13175 {
13176 #[inline(always)]
13177 fn new_empty() -> Self {
13178 Self::default()
13179 }
13180
13181 unsafe fn decode(
13182 &mut self,
13183 decoder: &mut fidl::encoding::Decoder<'_, D>,
13184 offset: usize,
13185 mut depth: fidl::encoding::Depth,
13186 ) -> fidl::Result<()> {
13187 decoder.debug_check_bounds::<Self>(offset);
13188 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
13189 None => return Err(fidl::Error::NotNullable),
13190 Some(len) => len,
13191 };
13192 if len == 0 {
13194 return Ok(());
13195 };
13196 depth.increment()?;
13197 let envelope_size = 8;
13198 let bytes_len = len * envelope_size;
13199 let offset = decoder.out_of_line_offset(bytes_len)?;
13200 let mut _next_ordinal_to_read = 0;
13202 let mut next_offset = offset;
13203 let end_offset = offset + bytes_len;
13204 _next_ordinal_to_read += 1;
13205 if next_offset >= end_offset {
13206 return Ok(());
13207 }
13208
13209 while _next_ordinal_to_read < 1 {
13211 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13212 _next_ordinal_to_read += 1;
13213 next_offset += envelope_size;
13214 }
13215
13216 let next_out_of_line = decoder.next_out_of_line();
13217 let handles_before = decoder.remaining_handles();
13218 if let Some((inlined, num_bytes, num_handles)) =
13219 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13220 {
13221 let member_inline_size =
13222 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
13223 if inlined != (member_inline_size <= 4) {
13224 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13225 }
13226 let inner_offset;
13227 let mut inner_depth = depth.clone();
13228 if inlined {
13229 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13230 inner_offset = next_offset;
13231 } else {
13232 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13233 inner_depth.increment()?;
13234 }
13235 let val_ref = self.txn_id.get_or_insert_with(|| fidl::new_empty!(u64, D));
13236 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
13237 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13238 {
13239 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13240 }
13241 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13242 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13243 }
13244 }
13245
13246 next_offset += envelope_size;
13247 _next_ordinal_to_read += 1;
13248 if next_offset >= end_offset {
13249 return Ok(());
13250 }
13251
13252 while _next_ordinal_to_read < 2 {
13254 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13255 _next_ordinal_to_read += 1;
13256 next_offset += envelope_size;
13257 }
13258
13259 let next_out_of_line = decoder.next_out_of_line();
13260 let handles_before = decoder.remaining_handles();
13261 if let Some((inlined, num_bytes, num_handles)) =
13262 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13263 {
13264 let member_inline_size =
13265 <WlanScanType as fidl::encoding::TypeMarker>::inline_size(decoder.context);
13266 if inlined != (member_inline_size <= 4) {
13267 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13268 }
13269 let inner_offset;
13270 let mut inner_depth = depth.clone();
13271 if inlined {
13272 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13273 inner_offset = next_offset;
13274 } else {
13275 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13276 inner_depth.increment()?;
13277 }
13278 let val_ref =
13279 self.scan_type.get_or_insert_with(|| fidl::new_empty!(WlanScanType, D));
13280 fidl::decode!(WlanScanType, D, val_ref, decoder, inner_offset, inner_depth)?;
13281 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13282 {
13283 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13284 }
13285 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13286 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13287 }
13288 }
13289
13290 next_offset += envelope_size;
13291 _next_ordinal_to_read += 1;
13292 if next_offset >= end_offset {
13293 return Ok(());
13294 }
13295
13296 while _next_ordinal_to_read < 3 {
13298 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13299 _next_ordinal_to_read += 1;
13300 next_offset += envelope_size;
13301 }
13302
13303 let next_out_of_line = decoder.next_out_of_line();
13304 let handles_before = decoder.remaining_handles();
13305 if let Some((inlined, num_bytes, num_handles)) =
13306 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13307 {
13308 let member_inline_size =
13309 <fidl::encoding::Vector<u8, 256> as fidl::encoding::TypeMarker>::inline_size(
13310 decoder.context,
13311 );
13312 if inlined != (member_inline_size <= 4) {
13313 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13314 }
13315 let inner_offset;
13316 let mut inner_depth = depth.clone();
13317 if inlined {
13318 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13319 inner_offset = next_offset;
13320 } else {
13321 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13322 inner_depth.increment()?;
13323 }
13324 let val_ref = self
13325 .channels
13326 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<u8, 256>, D));
13327 fidl::decode!(fidl::encoding::Vector<u8, 256>, D, val_ref, decoder, inner_offset, inner_depth)?;
13328 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13329 {
13330 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13331 }
13332 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13333 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13334 }
13335 }
13336
13337 next_offset += envelope_size;
13338 _next_ordinal_to_read += 1;
13339 if next_offset >= end_offset {
13340 return Ok(());
13341 }
13342
13343 while _next_ordinal_to_read < 4 {
13345 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13346 _next_ordinal_to_read += 1;
13347 next_offset += envelope_size;
13348 }
13349
13350 let next_out_of_line = decoder.next_out_of_line();
13351 let handles_before = decoder.remaining_handles();
13352 if let Some((inlined, num_bytes, num_handles)) =
13353 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13354 {
13355 let member_inline_size = <fidl::encoding::UnboundedVector<
13356 fidl::encoding::Vector<u8, 32>,
13357 > as fidl::encoding::TypeMarker>::inline_size(
13358 decoder.context
13359 );
13360 if inlined != (member_inline_size <= 4) {
13361 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13362 }
13363 let inner_offset;
13364 let mut inner_depth = depth.clone();
13365 if inlined {
13366 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13367 inner_offset = next_offset;
13368 } else {
13369 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13370 inner_depth.increment()?;
13371 }
13372 let val_ref = self.ssids.get_or_insert_with(|| {
13373 fidl::new_empty!(
13374 fidl::encoding::UnboundedVector<fidl::encoding::Vector<u8, 32>>,
13375 D
13376 )
13377 });
13378 fidl::decode!(
13379 fidl::encoding::UnboundedVector<fidl::encoding::Vector<u8, 32>>,
13380 D,
13381 val_ref,
13382 decoder,
13383 inner_offset,
13384 inner_depth
13385 )?;
13386 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13387 {
13388 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13389 }
13390 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13391 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13392 }
13393 }
13394
13395 next_offset += envelope_size;
13396 _next_ordinal_to_read += 1;
13397 if next_offset >= end_offset {
13398 return Ok(());
13399 }
13400
13401 while _next_ordinal_to_read < 5 {
13403 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13404 _next_ordinal_to_read += 1;
13405 next_offset += envelope_size;
13406 }
13407
13408 let next_out_of_line = decoder.next_out_of_line();
13409 let handles_before = decoder.remaining_handles();
13410 if let Some((inlined, num_bytes, num_handles)) =
13411 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13412 {
13413 let member_inline_size =
13414 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
13415 if inlined != (member_inline_size <= 4) {
13416 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13417 }
13418 let inner_offset;
13419 let mut inner_depth = depth.clone();
13420 if inlined {
13421 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13422 inner_offset = next_offset;
13423 } else {
13424 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13425 inner_depth.increment()?;
13426 }
13427 let val_ref = self.min_channel_time.get_or_insert_with(|| fidl::new_empty!(u32, D));
13428 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
13429 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13430 {
13431 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13432 }
13433 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13434 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13435 }
13436 }
13437
13438 next_offset += envelope_size;
13439 _next_ordinal_to_read += 1;
13440 if next_offset >= end_offset {
13441 return Ok(());
13442 }
13443
13444 while _next_ordinal_to_read < 6 {
13446 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13447 _next_ordinal_to_read += 1;
13448 next_offset += envelope_size;
13449 }
13450
13451 let next_out_of_line = decoder.next_out_of_line();
13452 let handles_before = decoder.remaining_handles();
13453 if let Some((inlined, num_bytes, num_handles)) =
13454 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13455 {
13456 let member_inline_size =
13457 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
13458 if inlined != (member_inline_size <= 4) {
13459 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13460 }
13461 let inner_offset;
13462 let mut inner_depth = depth.clone();
13463 if inlined {
13464 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13465 inner_offset = next_offset;
13466 } else {
13467 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13468 inner_depth.increment()?;
13469 }
13470 let val_ref = self.max_channel_time.get_or_insert_with(|| fidl::new_empty!(u32, D));
13471 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
13472 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13473 {
13474 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13475 }
13476 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13477 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13478 }
13479 }
13480
13481 next_offset += envelope_size;
13482
13483 while next_offset < end_offset {
13485 _next_ordinal_to_read += 1;
13486 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13487 next_offset += envelope_size;
13488 }
13489
13490 Ok(())
13491 }
13492 }
13493
13494 impl WlanFullmacImplStopBssRequest {
13495 #[inline(always)]
13496 fn max_ordinal_present(&self) -> u64 {
13497 if let Some(_) = self.ssid {
13498 return 1;
13499 }
13500 0
13501 }
13502 }
13503
13504 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplStopBssRequest {
13505 type Borrowed<'a> = &'a Self;
13506 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
13507 value
13508 }
13509 }
13510
13511 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplStopBssRequest {
13512 type Owned = Self;
13513
13514 #[inline(always)]
13515 fn inline_align(_context: fidl::encoding::Context) -> usize {
13516 8
13517 }
13518
13519 #[inline(always)]
13520 fn inline_size(_context: fidl::encoding::Context) -> usize {
13521 16
13522 }
13523 }
13524
13525 unsafe impl<D: fidl::encoding::ResourceDialect>
13526 fidl::encoding::Encode<WlanFullmacImplStopBssRequest, D>
13527 for &WlanFullmacImplStopBssRequest
13528 {
13529 unsafe fn encode(
13530 self,
13531 encoder: &mut fidl::encoding::Encoder<'_, D>,
13532 offset: usize,
13533 mut depth: fidl::encoding::Depth,
13534 ) -> fidl::Result<()> {
13535 encoder.debug_check_bounds::<WlanFullmacImplStopBssRequest>(offset);
13536 let max_ordinal: u64 = self.max_ordinal_present();
13538 encoder.write_num(max_ordinal, offset);
13539 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
13540 if max_ordinal == 0 {
13542 return Ok(());
13543 }
13544 depth.increment()?;
13545 let envelope_size = 8;
13546 let bytes_len = max_ordinal as usize * envelope_size;
13547 #[allow(unused_variables)]
13548 let offset = encoder.out_of_line_offset(bytes_len);
13549 let mut _prev_end_offset: usize = 0;
13550 if 1 > max_ordinal {
13551 return Ok(());
13552 }
13553
13554 let cur_offset: usize = (1 - 1) * envelope_size;
13557
13558 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
13560
13561 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<u8, 32>, D>(
13566 self.ssid.as_ref().map(
13567 <fidl::encoding::Vector<u8, 32> as fidl::encoding::ValueTypeMarker>::borrow,
13568 ),
13569 encoder,
13570 offset + cur_offset,
13571 depth,
13572 )?;
13573
13574 _prev_end_offset = cur_offset + envelope_size;
13575
13576 Ok(())
13577 }
13578 }
13579
13580 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
13581 for WlanFullmacImplStopBssRequest
13582 {
13583 #[inline(always)]
13584 fn new_empty() -> Self {
13585 Self::default()
13586 }
13587
13588 unsafe fn decode(
13589 &mut self,
13590 decoder: &mut fidl::encoding::Decoder<'_, D>,
13591 offset: usize,
13592 mut depth: fidl::encoding::Depth,
13593 ) -> fidl::Result<()> {
13594 decoder.debug_check_bounds::<Self>(offset);
13595 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
13596 None => return Err(fidl::Error::NotNullable),
13597 Some(len) => len,
13598 };
13599 if len == 0 {
13601 return Ok(());
13602 };
13603 depth.increment()?;
13604 let envelope_size = 8;
13605 let bytes_len = len * envelope_size;
13606 let offset = decoder.out_of_line_offset(bytes_len)?;
13607 let mut _next_ordinal_to_read = 0;
13609 let mut next_offset = offset;
13610 let end_offset = offset + bytes_len;
13611 _next_ordinal_to_read += 1;
13612 if next_offset >= end_offset {
13613 return Ok(());
13614 }
13615
13616 while _next_ordinal_to_read < 1 {
13618 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13619 _next_ordinal_to_read += 1;
13620 next_offset += envelope_size;
13621 }
13622
13623 let next_out_of_line = decoder.next_out_of_line();
13624 let handles_before = decoder.remaining_handles();
13625 if let Some((inlined, num_bytes, num_handles)) =
13626 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13627 {
13628 let member_inline_size =
13629 <fidl::encoding::Vector<u8, 32> as fidl::encoding::TypeMarker>::inline_size(
13630 decoder.context,
13631 );
13632 if inlined != (member_inline_size <= 4) {
13633 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13634 }
13635 let inner_offset;
13636 let mut inner_depth = depth.clone();
13637 if inlined {
13638 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13639 inner_offset = next_offset;
13640 } else {
13641 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13642 inner_depth.increment()?;
13643 }
13644 let val_ref = self
13645 .ssid
13646 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<u8, 32>, D));
13647 fidl::decode!(fidl::encoding::Vector<u8, 32>, D, val_ref, decoder, inner_offset, inner_depth)?;
13648 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13649 {
13650 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13651 }
13652 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13653 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13654 }
13655 }
13656
13657 next_offset += envelope_size;
13658
13659 while next_offset < end_offset {
13661 _next_ordinal_to_read += 1;
13662 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13663 next_offset += envelope_size;
13664 }
13665
13666 Ok(())
13667 }
13668 }
13669
13670 impl WlanFullmacImplQuerySecuritySupportResponse {
13671 #[inline(always)]
13672 fn max_ordinal_present(&self) -> u64 {
13673 if let Some(_) = self.resp {
13674 return 1;
13675 }
13676 0
13677 }
13678 }
13679
13680 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplQuerySecuritySupportResponse {
13681 type Borrowed<'a> = &'a Self;
13682 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
13683 value
13684 }
13685 }
13686
13687 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplQuerySecuritySupportResponse {
13688 type Owned = Self;
13689
13690 #[inline(always)]
13691 fn inline_align(_context: fidl::encoding::Context) -> usize {
13692 8
13693 }
13694
13695 #[inline(always)]
13696 fn inline_size(_context: fidl::encoding::Context) -> usize {
13697 16
13698 }
13699 }
13700
13701 unsafe impl<D: fidl::encoding::ResourceDialect>
13702 fidl::encoding::Encode<WlanFullmacImplQuerySecuritySupportResponse, D>
13703 for &WlanFullmacImplQuerySecuritySupportResponse
13704 {
13705 unsafe fn encode(
13706 self,
13707 encoder: &mut fidl::encoding::Encoder<'_, D>,
13708 offset: usize,
13709 mut depth: fidl::encoding::Depth,
13710 ) -> fidl::Result<()> {
13711 encoder.debug_check_bounds::<WlanFullmacImplQuerySecuritySupportResponse>(offset);
13712 let max_ordinal: u64 = self.max_ordinal_present();
13714 encoder.write_num(max_ordinal, offset);
13715 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
13716 if max_ordinal == 0 {
13718 return Ok(());
13719 }
13720 depth.increment()?;
13721 let envelope_size = 8;
13722 let bytes_len = max_ordinal as usize * envelope_size;
13723 #[allow(unused_variables)]
13724 let offset = encoder.out_of_line_offset(bytes_len);
13725 let mut _prev_end_offset: usize = 0;
13726 if 1 > max_ordinal {
13727 return Ok(());
13728 }
13729
13730 let cur_offset: usize = (1 - 1) * envelope_size;
13733
13734 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
13736
13737 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_common__common::SecuritySupport, D>(
13742 self.resp.as_ref().map(<fidl_fuchsia_wlan_common__common::SecuritySupport as fidl::encoding::ValueTypeMarker>::borrow),
13743 encoder, offset + cur_offset, depth
13744 )?;
13745
13746 _prev_end_offset = cur_offset + envelope_size;
13747
13748 Ok(())
13749 }
13750 }
13751
13752 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
13753 for WlanFullmacImplQuerySecuritySupportResponse
13754 {
13755 #[inline(always)]
13756 fn new_empty() -> Self {
13757 Self::default()
13758 }
13759
13760 unsafe fn decode(
13761 &mut self,
13762 decoder: &mut fidl::encoding::Decoder<'_, D>,
13763 offset: usize,
13764 mut depth: fidl::encoding::Depth,
13765 ) -> fidl::Result<()> {
13766 decoder.debug_check_bounds::<Self>(offset);
13767 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
13768 None => return Err(fidl::Error::NotNullable),
13769 Some(len) => len,
13770 };
13771 if len == 0 {
13773 return Ok(());
13774 };
13775 depth.increment()?;
13776 let envelope_size = 8;
13777 let bytes_len = len * envelope_size;
13778 let offset = decoder.out_of_line_offset(bytes_len)?;
13779 let mut _next_ordinal_to_read = 0;
13781 let mut next_offset = offset;
13782 let end_offset = offset + bytes_len;
13783 _next_ordinal_to_read += 1;
13784 if next_offset >= end_offset {
13785 return Ok(());
13786 }
13787
13788 while _next_ordinal_to_read < 1 {
13790 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13791 _next_ordinal_to_read += 1;
13792 next_offset += envelope_size;
13793 }
13794
13795 let next_out_of_line = decoder.next_out_of_line();
13796 let handles_before = decoder.remaining_handles();
13797 if let Some((inlined, num_bytes, num_handles)) =
13798 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13799 {
13800 let member_inline_size = <fidl_fuchsia_wlan_common__common::SecuritySupport as fidl::encoding::TypeMarker>::inline_size(decoder.context);
13801 if inlined != (member_inline_size <= 4) {
13802 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13803 }
13804 let inner_offset;
13805 let mut inner_depth = depth.clone();
13806 if inlined {
13807 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13808 inner_offset = next_offset;
13809 } else {
13810 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13811 inner_depth.increment()?;
13812 }
13813 let val_ref = self.resp.get_or_insert_with(|| {
13814 fidl::new_empty!(fidl_fuchsia_wlan_common__common::SecuritySupport, D)
13815 });
13816 fidl::decode!(
13817 fidl_fuchsia_wlan_common__common::SecuritySupport,
13818 D,
13819 val_ref,
13820 decoder,
13821 inner_offset,
13822 inner_depth
13823 )?;
13824 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13825 {
13826 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13827 }
13828 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13829 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13830 }
13831 }
13832
13833 next_offset += envelope_size;
13834
13835 while next_offset < end_offset {
13837 _next_ordinal_to_read += 1;
13838 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13839 next_offset += envelope_size;
13840 }
13841
13842 Ok(())
13843 }
13844 }
13845
13846 impl WlanFullmacImplQuerySpectrumManagementSupportResponse {
13847 #[inline(always)]
13848 fn max_ordinal_present(&self) -> u64 {
13849 if let Some(_) = self.resp {
13850 return 1;
13851 }
13852 0
13853 }
13854 }
13855
13856 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplQuerySpectrumManagementSupportResponse {
13857 type Borrowed<'a> = &'a Self;
13858 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
13859 value
13860 }
13861 }
13862
13863 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplQuerySpectrumManagementSupportResponse {
13864 type Owned = Self;
13865
13866 #[inline(always)]
13867 fn inline_align(_context: fidl::encoding::Context) -> usize {
13868 8
13869 }
13870
13871 #[inline(always)]
13872 fn inline_size(_context: fidl::encoding::Context) -> usize {
13873 16
13874 }
13875 }
13876
13877 unsafe impl<D: fidl::encoding::ResourceDialect>
13878 fidl::encoding::Encode<WlanFullmacImplQuerySpectrumManagementSupportResponse, D>
13879 for &WlanFullmacImplQuerySpectrumManagementSupportResponse
13880 {
13881 unsafe fn encode(
13882 self,
13883 encoder: &mut fidl::encoding::Encoder<'_, D>,
13884 offset: usize,
13885 mut depth: fidl::encoding::Depth,
13886 ) -> fidl::Result<()> {
13887 encoder.debug_check_bounds::<WlanFullmacImplQuerySpectrumManagementSupportResponse>(
13888 offset,
13889 );
13890 let max_ordinal: u64 = self.max_ordinal_present();
13892 encoder.write_num(max_ordinal, offset);
13893 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
13894 if max_ordinal == 0 {
13896 return Ok(());
13897 }
13898 depth.increment()?;
13899 let envelope_size = 8;
13900 let bytes_len = max_ordinal as usize * envelope_size;
13901 #[allow(unused_variables)]
13902 let offset = encoder.out_of_line_offset(bytes_len);
13903 let mut _prev_end_offset: usize = 0;
13904 if 1 > max_ordinal {
13905 return Ok(());
13906 }
13907
13908 let cur_offset: usize = (1 - 1) * envelope_size;
13911
13912 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
13914
13915 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_common__common::SpectrumManagementSupport, D>(
13920 self.resp.as_ref().map(<fidl_fuchsia_wlan_common__common::SpectrumManagementSupport as fidl::encoding::ValueTypeMarker>::borrow),
13921 encoder, offset + cur_offset, depth
13922 )?;
13923
13924 _prev_end_offset = cur_offset + envelope_size;
13925
13926 Ok(())
13927 }
13928 }
13929
13930 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
13931 for WlanFullmacImplQuerySpectrumManagementSupportResponse
13932 {
13933 #[inline(always)]
13934 fn new_empty() -> Self {
13935 Self::default()
13936 }
13937
13938 unsafe fn decode(
13939 &mut self,
13940 decoder: &mut fidl::encoding::Decoder<'_, D>,
13941 offset: usize,
13942 mut depth: fidl::encoding::Depth,
13943 ) -> fidl::Result<()> {
13944 decoder.debug_check_bounds::<Self>(offset);
13945 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
13946 None => return Err(fidl::Error::NotNullable),
13947 Some(len) => len,
13948 };
13949 if len == 0 {
13951 return Ok(());
13952 };
13953 depth.increment()?;
13954 let envelope_size = 8;
13955 let bytes_len = len * envelope_size;
13956 let offset = decoder.out_of_line_offset(bytes_len)?;
13957 let mut _next_ordinal_to_read = 0;
13959 let mut next_offset = offset;
13960 let end_offset = offset + bytes_len;
13961 _next_ordinal_to_read += 1;
13962 if next_offset >= end_offset {
13963 return Ok(());
13964 }
13965
13966 while _next_ordinal_to_read < 1 {
13968 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13969 _next_ordinal_to_read += 1;
13970 next_offset += envelope_size;
13971 }
13972
13973 let next_out_of_line = decoder.next_out_of_line();
13974 let handles_before = decoder.remaining_handles();
13975 if let Some((inlined, num_bytes, num_handles)) =
13976 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13977 {
13978 let member_inline_size = <fidl_fuchsia_wlan_common__common::SpectrumManagementSupport as fidl::encoding::TypeMarker>::inline_size(decoder.context);
13979 if inlined != (member_inline_size <= 4) {
13980 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13981 }
13982 let inner_offset;
13983 let mut inner_depth = depth.clone();
13984 if inlined {
13985 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13986 inner_offset = next_offset;
13987 } else {
13988 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13989 inner_depth.increment()?;
13990 }
13991 let val_ref = self.resp.get_or_insert_with(|| {
13992 fidl::new_empty!(fidl_fuchsia_wlan_common__common::SpectrumManagementSupport, D)
13993 });
13994 fidl::decode!(
13995 fidl_fuchsia_wlan_common__common::SpectrumManagementSupport,
13996 D,
13997 val_ref,
13998 decoder,
13999 inner_offset,
14000 inner_depth
14001 )?;
14002 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
14003 {
14004 return Err(fidl::Error::InvalidNumBytesInEnvelope);
14005 }
14006 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
14007 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
14008 }
14009 }
14010
14011 next_offset += envelope_size;
14012
14013 while next_offset < end_offset {
14015 _next_ordinal_to_read += 1;
14016 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14017 next_offset += envelope_size;
14018 }
14019
14020 Ok(())
14021 }
14022 }
14023
14024 impl WlanFullmacImplQueryTelemetrySupportResponse {
14025 #[inline(always)]
14026 fn max_ordinal_present(&self) -> u64 {
14027 if let Some(_) = self.resp {
14028 return 1;
14029 }
14030 0
14031 }
14032 }
14033
14034 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplQueryTelemetrySupportResponse {
14035 type Borrowed<'a> = &'a Self;
14036 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
14037 value
14038 }
14039 }
14040
14041 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplQueryTelemetrySupportResponse {
14042 type Owned = Self;
14043
14044 #[inline(always)]
14045 fn inline_align(_context: fidl::encoding::Context) -> usize {
14046 8
14047 }
14048
14049 #[inline(always)]
14050 fn inline_size(_context: fidl::encoding::Context) -> usize {
14051 16
14052 }
14053 }
14054
14055 unsafe impl<D: fidl::encoding::ResourceDialect>
14056 fidl::encoding::Encode<WlanFullmacImplQueryTelemetrySupportResponse, D>
14057 for &WlanFullmacImplQueryTelemetrySupportResponse
14058 {
14059 unsafe fn encode(
14060 self,
14061 encoder: &mut fidl::encoding::Encoder<'_, D>,
14062 offset: usize,
14063 mut depth: fidl::encoding::Depth,
14064 ) -> fidl::Result<()> {
14065 encoder.debug_check_bounds::<WlanFullmacImplQueryTelemetrySupportResponse>(offset);
14066 let max_ordinal: u64 = self.max_ordinal_present();
14068 encoder.write_num(max_ordinal, offset);
14069 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
14070 if max_ordinal == 0 {
14072 return Ok(());
14073 }
14074 depth.increment()?;
14075 let envelope_size = 8;
14076 let bytes_len = max_ordinal as usize * envelope_size;
14077 #[allow(unused_variables)]
14078 let offset = encoder.out_of_line_offset(bytes_len);
14079 let mut _prev_end_offset: usize = 0;
14080 if 1 > max_ordinal {
14081 return Ok(());
14082 }
14083
14084 let cur_offset: usize = (1 - 1) * envelope_size;
14087
14088 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
14090
14091 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_stats__common::TelemetrySupport, D>(
14096 self.resp.as_ref().map(<fidl_fuchsia_wlan_stats__common::TelemetrySupport as fidl::encoding::ValueTypeMarker>::borrow),
14097 encoder, offset + cur_offset, depth
14098 )?;
14099
14100 _prev_end_offset = cur_offset + envelope_size;
14101
14102 Ok(())
14103 }
14104 }
14105
14106 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
14107 for WlanFullmacImplQueryTelemetrySupportResponse
14108 {
14109 #[inline(always)]
14110 fn new_empty() -> Self {
14111 Self::default()
14112 }
14113
14114 unsafe fn decode(
14115 &mut self,
14116 decoder: &mut fidl::encoding::Decoder<'_, D>,
14117 offset: usize,
14118 mut depth: fidl::encoding::Depth,
14119 ) -> fidl::Result<()> {
14120 decoder.debug_check_bounds::<Self>(offset);
14121 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
14122 None => return Err(fidl::Error::NotNullable),
14123 Some(len) => len,
14124 };
14125 if len == 0 {
14127 return Ok(());
14128 };
14129 depth.increment()?;
14130 let envelope_size = 8;
14131 let bytes_len = len * envelope_size;
14132 let offset = decoder.out_of_line_offset(bytes_len)?;
14133 let mut _next_ordinal_to_read = 0;
14135 let mut next_offset = offset;
14136 let end_offset = offset + bytes_len;
14137 _next_ordinal_to_read += 1;
14138 if next_offset >= end_offset {
14139 return Ok(());
14140 }
14141
14142 while _next_ordinal_to_read < 1 {
14144 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14145 _next_ordinal_to_read += 1;
14146 next_offset += envelope_size;
14147 }
14148
14149 let next_out_of_line = decoder.next_out_of_line();
14150 let handles_before = decoder.remaining_handles();
14151 if let Some((inlined, num_bytes, num_handles)) =
14152 fidl::encoding::decode_envelope_header(decoder, next_offset)?
14153 {
14154 let member_inline_size = <fidl_fuchsia_wlan_stats__common::TelemetrySupport as fidl::encoding::TypeMarker>::inline_size(decoder.context);
14155 if inlined != (member_inline_size <= 4) {
14156 return Err(fidl::Error::InvalidInlineBitInEnvelope);
14157 }
14158 let inner_offset;
14159 let mut inner_depth = depth.clone();
14160 if inlined {
14161 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
14162 inner_offset = next_offset;
14163 } else {
14164 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
14165 inner_depth.increment()?;
14166 }
14167 let val_ref = self.resp.get_or_insert_with(|| {
14168 fidl::new_empty!(fidl_fuchsia_wlan_stats__common::TelemetrySupport, D)
14169 });
14170 fidl::decode!(
14171 fidl_fuchsia_wlan_stats__common::TelemetrySupport,
14172 D,
14173 val_ref,
14174 decoder,
14175 inner_offset,
14176 inner_depth
14177 )?;
14178 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
14179 {
14180 return Err(fidl::Error::InvalidNumBytesInEnvelope);
14181 }
14182 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
14183 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
14184 }
14185 }
14186
14187 next_offset += envelope_size;
14188
14189 while next_offset < end_offset {
14191 _next_ordinal_to_read += 1;
14192 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14193 next_offset += envelope_size;
14194 }
14195
14196 Ok(())
14197 }
14198 }
14199
14200 impl WlanFullmacImplQueryResponse {
14201 #[inline(always)]
14202 fn max_ordinal_present(&self) -> u64 {
14203 if let Some(_) = self.factory_addr {
14204 return 4;
14205 }
14206 if let Some(_) = self.band_caps {
14207 return 3;
14208 }
14209 if let Some(_) = self.role {
14210 return 2;
14211 }
14212 if let Some(_) = self.sta_addr {
14213 return 1;
14214 }
14215 0
14216 }
14217 }
14218
14219 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplQueryResponse {
14220 type Borrowed<'a> = &'a Self;
14221 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
14222 value
14223 }
14224 }
14225
14226 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplQueryResponse {
14227 type Owned = Self;
14228
14229 #[inline(always)]
14230 fn inline_align(_context: fidl::encoding::Context) -> usize {
14231 8
14232 }
14233
14234 #[inline(always)]
14235 fn inline_size(_context: fidl::encoding::Context) -> usize {
14236 16
14237 }
14238 }
14239
14240 unsafe impl<D: fidl::encoding::ResourceDialect>
14241 fidl::encoding::Encode<WlanFullmacImplQueryResponse, D> for &WlanFullmacImplQueryResponse
14242 {
14243 unsafe fn encode(
14244 self,
14245 encoder: &mut fidl::encoding::Encoder<'_, D>,
14246 offset: usize,
14247 mut depth: fidl::encoding::Depth,
14248 ) -> fidl::Result<()> {
14249 encoder.debug_check_bounds::<WlanFullmacImplQueryResponse>(offset);
14250 let max_ordinal: u64 = self.max_ordinal_present();
14252 encoder.write_num(max_ordinal, offset);
14253 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
14254 if max_ordinal == 0 {
14256 return Ok(());
14257 }
14258 depth.increment()?;
14259 let envelope_size = 8;
14260 let bytes_len = max_ordinal as usize * envelope_size;
14261 #[allow(unused_variables)]
14262 let offset = encoder.out_of_line_offset(bytes_len);
14263 let mut _prev_end_offset: usize = 0;
14264 if 1 > max_ordinal {
14265 return Ok(());
14266 }
14267
14268 let cur_offset: usize = (1 - 1) * envelope_size;
14271
14272 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
14274
14275 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
14280 self.sta_addr
14281 .as_ref()
14282 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
14283 encoder,
14284 offset + cur_offset,
14285 depth,
14286 )?;
14287
14288 _prev_end_offset = cur_offset + envelope_size;
14289 if 2 > max_ordinal {
14290 return Ok(());
14291 }
14292
14293 let cur_offset: usize = (2 - 1) * envelope_size;
14296
14297 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
14299
14300 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_common__common::WlanMacRole, D>(
14305 self.role.as_ref().map(<fidl_fuchsia_wlan_common__common::WlanMacRole as fidl::encoding::ValueTypeMarker>::borrow),
14306 encoder, offset + cur_offset, depth
14307 )?;
14308
14309 _prev_end_offset = cur_offset + envelope_size;
14310 if 3 > max_ordinal {
14311 return Ok(());
14312 }
14313
14314 let cur_offset: usize = (3 - 1) * envelope_size;
14317
14318 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
14320
14321 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<BandCapability, 16>, D>(
14326 self.band_caps.as_ref().map(<fidl::encoding::Vector<BandCapability, 16> as fidl::encoding::ValueTypeMarker>::borrow),
14327 encoder, offset + cur_offset, depth
14328 )?;
14329
14330 _prev_end_offset = cur_offset + envelope_size;
14331 if 4 > max_ordinal {
14332 return Ok(());
14333 }
14334
14335 let cur_offset: usize = (4 - 1) * envelope_size;
14338
14339 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
14341
14342 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
14347 self.factory_addr
14348 .as_ref()
14349 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
14350 encoder,
14351 offset + cur_offset,
14352 depth,
14353 )?;
14354
14355 _prev_end_offset = cur_offset + envelope_size;
14356
14357 Ok(())
14358 }
14359 }
14360
14361 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
14362 for WlanFullmacImplQueryResponse
14363 {
14364 #[inline(always)]
14365 fn new_empty() -> Self {
14366 Self::default()
14367 }
14368
14369 unsafe fn decode(
14370 &mut self,
14371 decoder: &mut fidl::encoding::Decoder<'_, D>,
14372 offset: usize,
14373 mut depth: fidl::encoding::Depth,
14374 ) -> fidl::Result<()> {
14375 decoder.debug_check_bounds::<Self>(offset);
14376 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
14377 None => return Err(fidl::Error::NotNullable),
14378 Some(len) => len,
14379 };
14380 if len == 0 {
14382 return Ok(());
14383 };
14384 depth.increment()?;
14385 let envelope_size = 8;
14386 let bytes_len = len * envelope_size;
14387 let offset = decoder.out_of_line_offset(bytes_len)?;
14388 let mut _next_ordinal_to_read = 0;
14390 let mut next_offset = offset;
14391 let end_offset = offset + bytes_len;
14392 _next_ordinal_to_read += 1;
14393 if next_offset >= end_offset {
14394 return Ok(());
14395 }
14396
14397 while _next_ordinal_to_read < 1 {
14399 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14400 _next_ordinal_to_read += 1;
14401 next_offset += envelope_size;
14402 }
14403
14404 let next_out_of_line = decoder.next_out_of_line();
14405 let handles_before = decoder.remaining_handles();
14406 if let Some((inlined, num_bytes, num_handles)) =
14407 fidl::encoding::decode_envelope_header(decoder, next_offset)?
14408 {
14409 let member_inline_size =
14410 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
14411 decoder.context,
14412 );
14413 if inlined != (member_inline_size <= 4) {
14414 return Err(fidl::Error::InvalidInlineBitInEnvelope);
14415 }
14416 let inner_offset;
14417 let mut inner_depth = depth.clone();
14418 if inlined {
14419 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
14420 inner_offset = next_offset;
14421 } else {
14422 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
14423 inner_depth.increment()?;
14424 }
14425 let val_ref = self
14426 .sta_addr
14427 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
14428 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
14429 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
14430 {
14431 return Err(fidl::Error::InvalidNumBytesInEnvelope);
14432 }
14433 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
14434 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
14435 }
14436 }
14437
14438 next_offset += envelope_size;
14439 _next_ordinal_to_read += 1;
14440 if next_offset >= end_offset {
14441 return Ok(());
14442 }
14443
14444 while _next_ordinal_to_read < 2 {
14446 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14447 _next_ordinal_to_read += 1;
14448 next_offset += envelope_size;
14449 }
14450
14451 let next_out_of_line = decoder.next_out_of_line();
14452 let handles_before = decoder.remaining_handles();
14453 if let Some((inlined, num_bytes, num_handles)) =
14454 fidl::encoding::decode_envelope_header(decoder, next_offset)?
14455 {
14456 let member_inline_size = <fidl_fuchsia_wlan_common__common::WlanMacRole as fidl::encoding::TypeMarker>::inline_size(decoder.context);
14457 if inlined != (member_inline_size <= 4) {
14458 return Err(fidl::Error::InvalidInlineBitInEnvelope);
14459 }
14460 let inner_offset;
14461 let mut inner_depth = depth.clone();
14462 if inlined {
14463 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
14464 inner_offset = next_offset;
14465 } else {
14466 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
14467 inner_depth.increment()?;
14468 }
14469 let val_ref = self.role.get_or_insert_with(|| {
14470 fidl::new_empty!(fidl_fuchsia_wlan_common__common::WlanMacRole, D)
14471 });
14472 fidl::decode!(
14473 fidl_fuchsia_wlan_common__common::WlanMacRole,
14474 D,
14475 val_ref,
14476 decoder,
14477 inner_offset,
14478 inner_depth
14479 )?;
14480 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
14481 {
14482 return Err(fidl::Error::InvalidNumBytesInEnvelope);
14483 }
14484 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
14485 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
14486 }
14487 }
14488
14489 next_offset += envelope_size;
14490 _next_ordinal_to_read += 1;
14491 if next_offset >= end_offset {
14492 return Ok(());
14493 }
14494
14495 while _next_ordinal_to_read < 3 {
14497 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14498 _next_ordinal_to_read += 1;
14499 next_offset += envelope_size;
14500 }
14501
14502 let next_out_of_line = decoder.next_out_of_line();
14503 let handles_before = decoder.remaining_handles();
14504 if let Some((inlined, num_bytes, num_handles)) =
14505 fidl::encoding::decode_envelope_header(decoder, next_offset)?
14506 {
14507 let member_inline_size = <fidl::encoding::Vector<BandCapability, 16> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
14508 if inlined != (member_inline_size <= 4) {
14509 return Err(fidl::Error::InvalidInlineBitInEnvelope);
14510 }
14511 let inner_offset;
14512 let mut inner_depth = depth.clone();
14513 if inlined {
14514 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
14515 inner_offset = next_offset;
14516 } else {
14517 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
14518 inner_depth.increment()?;
14519 }
14520 let val_ref = self.band_caps.get_or_insert_with(
14521 || fidl::new_empty!(fidl::encoding::Vector<BandCapability, 16>, D),
14522 );
14523 fidl::decode!(fidl::encoding::Vector<BandCapability, 16>, D, val_ref, decoder, inner_offset, inner_depth)?;
14524 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
14525 {
14526 return Err(fidl::Error::InvalidNumBytesInEnvelope);
14527 }
14528 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
14529 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
14530 }
14531 }
14532
14533 next_offset += envelope_size;
14534 _next_ordinal_to_read += 1;
14535 if next_offset >= end_offset {
14536 return Ok(());
14537 }
14538
14539 while _next_ordinal_to_read < 4 {
14541 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14542 _next_ordinal_to_read += 1;
14543 next_offset += envelope_size;
14544 }
14545
14546 let next_out_of_line = decoder.next_out_of_line();
14547 let handles_before = decoder.remaining_handles();
14548 if let Some((inlined, num_bytes, num_handles)) =
14549 fidl::encoding::decode_envelope_header(decoder, next_offset)?
14550 {
14551 let member_inline_size =
14552 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
14553 decoder.context,
14554 );
14555 if inlined != (member_inline_size <= 4) {
14556 return Err(fidl::Error::InvalidInlineBitInEnvelope);
14557 }
14558 let inner_offset;
14559 let mut inner_depth = depth.clone();
14560 if inlined {
14561 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
14562 inner_offset = next_offset;
14563 } else {
14564 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
14565 inner_depth.increment()?;
14566 }
14567 let val_ref = self
14568 .factory_addr
14569 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
14570 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
14571 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
14572 {
14573 return Err(fidl::Error::InvalidNumBytesInEnvelope);
14574 }
14575 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
14576 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
14577 }
14578 }
14579
14580 next_offset += envelope_size;
14581
14582 while next_offset < end_offset {
14584 _next_ordinal_to_read += 1;
14585 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14586 next_offset += envelope_size;
14587 }
14588
14589 Ok(())
14590 }
14591 }
14592}