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_driver_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_ieee80211_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_driver_common::WlanKeyConfig>,
771 pub security_ie: Option<Vec<u8>>,
773 pub wep_key_desc: Option<fidl_fuchsia_wlan_ieee80211_common::SetKeyDescriptor>,
776 pub owe_public_key: Option<WlanFullmacOwePublicKey>,
779 #[doc(hidden)]
780 pub __source_breaking: fidl::marker::SourceBreaking,
781}
782
783impl fidl::Persistable for WlanFullmacImplConnectRequest {}
784
785#[derive(Clone, Debug, Default, PartialEq)]
786pub struct WlanFullmacImplDeauthRequest {
787 pub peer_sta_address: Option<[u8; 6]>,
788 pub reason_code: Option<fidl_fuchsia_wlan_ieee80211_common::ReasonCode>,
789 #[doc(hidden)]
790 pub __source_breaking: fidl::marker::SourceBreaking,
791}
792
793impl fidl::Persistable for WlanFullmacImplDeauthRequest {}
794
795#[derive(Clone, Debug, Default, PartialEq)]
796pub struct WlanFullmacImplDisassocRequest {
797 pub peer_sta_address: Option<[u8; 6]>,
798 pub reason_code: Option<fidl_fuchsia_wlan_ieee80211_common::ReasonCode>,
799 #[doc(hidden)]
800 pub __source_breaking: fidl::marker::SourceBreaking,
801}
802
803impl fidl::Persistable for WlanFullmacImplDisassocRequest {}
804
805#[derive(Clone, Debug, Default, PartialEq)]
806pub struct WlanFullmacImplEapolTxRequest {
807 pub src_addr: Option<[u8; 6]>,
808 pub dst_addr: Option<[u8; 6]>,
809 pub data: Option<Vec<u8>>,
810 #[doc(hidden)]
811 pub __source_breaking: fidl::marker::SourceBreaking,
812}
813
814impl fidl::Persistable for WlanFullmacImplEapolTxRequest {}
815
816#[derive(Clone, Debug, Default, PartialEq)]
817pub struct WlanFullmacImplIfcAssocIndRequest {
818 pub peer_sta_address: Option<[u8; 6]>,
819 pub listen_interval: Option<u16>,
820 pub ssid: Option<Vec<u8>>,
821 pub rsne: Option<Vec<u8>>,
822 pub vendor_ie: Option<Vec<u8>>,
823 #[doc(hidden)]
824 pub __source_breaking: fidl::marker::SourceBreaking,
825}
826
827impl fidl::Persistable for WlanFullmacImplIfcAssocIndRequest {}
828
829#[derive(Clone, Debug, Default, PartialEq)]
830pub struct WlanFullmacImplIfcAuthIndRequest {
831 pub peer_sta_address: Option<[u8; 6]>,
832 pub auth_type: Option<WlanAuthType>,
833 #[doc(hidden)]
834 pub __source_breaking: fidl::marker::SourceBreaking,
835}
836
837impl fidl::Persistable for WlanFullmacImplIfcAuthIndRequest {}
838
839#[derive(Clone, Debug, Default, PartialEq)]
840pub struct WlanFullmacImplIfcConnectConfRequest {
841 pub peer_sta_address: Option<[u8; 6]>,
842 pub result_code: Option<fidl_fuchsia_wlan_ieee80211_common::StatusCode>,
843 pub association_id: Option<u16>,
844 pub association_ies: Option<Vec<u8>>,
845 #[doc(hidden)]
846 pub __source_breaking: fidl::marker::SourceBreaking,
847}
848
849impl fidl::Persistable for WlanFullmacImplIfcConnectConfRequest {}
850
851#[derive(Clone, Debug, Default, PartialEq)]
852pub struct WlanFullmacImplIfcDeauthConfRequest {
853 pub peer_sta_address: Option<[u8; 6]>,
854 #[doc(hidden)]
855 pub __source_breaking: fidl::marker::SourceBreaking,
856}
857
858impl fidl::Persistable for WlanFullmacImplIfcDeauthConfRequest {}
859
860#[derive(Clone, Debug, Default, PartialEq)]
861pub struct WlanFullmacImplIfcDeauthIndRequest {
862 pub peer_sta_address: Option<[u8; 6]>,
864 pub reason_code: Option<fidl_fuchsia_wlan_ieee80211_common::ReasonCode>,
866 pub locally_initiated: Option<bool>,
869 #[doc(hidden)]
870 pub __source_breaking: fidl::marker::SourceBreaking,
871}
872
873impl fidl::Persistable for WlanFullmacImplIfcDeauthIndRequest {}
874
875#[derive(Clone, Debug, Default, PartialEq)]
876pub struct WlanFullmacImplIfcDisassocConfRequest {
877 pub status: Option<i32>,
885 #[doc(hidden)]
886 pub __source_breaking: fidl::marker::SourceBreaking,
887}
888
889impl fidl::Persistable for WlanFullmacImplIfcDisassocConfRequest {}
890
891#[derive(Clone, Debug, Default, PartialEq)]
892pub struct WlanFullmacImplIfcDisassocIndRequest {
893 pub peer_sta_address: Option<[u8; 6]>,
895 pub reason_code: Option<fidl_fuchsia_wlan_ieee80211_common::ReasonCode>,
897 pub locally_initiated: Option<bool>,
902 #[doc(hidden)]
903 pub __source_breaking: fidl::marker::SourceBreaking,
904}
905
906impl fidl::Persistable for WlanFullmacImplIfcDisassocIndRequest {}
907
908#[derive(Clone, Debug, Default, PartialEq)]
909pub struct WlanFullmacImplIfcEapolConfRequest {
910 pub result_code: Option<EapolTxResult>,
912 pub dst_addr: Option<[u8; 6]>,
917 #[doc(hidden)]
918 pub __source_breaking: fidl::marker::SourceBreaking,
919}
920
921impl fidl::Persistable for WlanFullmacImplIfcEapolConfRequest {}
922
923#[derive(Clone, Debug, Default, PartialEq)]
924pub struct WlanFullmacImplIfcEapolIndRequest {
925 pub src_addr: Option<[u8; 6]>,
927 pub dst_addr: Option<[u8; 6]>,
929 pub data: Option<Vec<u8>>,
931 #[doc(hidden)]
932 pub __source_breaking: fidl::marker::SourceBreaking,
933}
934
935impl fidl::Persistable for WlanFullmacImplIfcEapolIndRequest {}
936
937#[derive(Clone, Debug, Default, PartialEq)]
938pub struct WlanFullmacImplIfcOnPmkAvailableRequest {
939 pub pmk: Option<Vec<u8>>,
941 pub pmkid: Option<Vec<u8>>,
943 #[doc(hidden)]
944 pub __source_breaking: fidl::marker::SourceBreaking,
945}
946
947impl fidl::Persistable for WlanFullmacImplIfcOnPmkAvailableRequest {}
948
949#[derive(Clone, Debug, Default, PartialEq)]
950pub struct WlanFullmacImplIfcOnScanEndRequest {
951 pub txn_id: Option<u64>,
952 pub code: Option<WlanScanResult>,
953 #[doc(hidden)]
954 pub __source_breaking: fidl::marker::SourceBreaking,
955}
956
957impl fidl::Persistable for WlanFullmacImplIfcOnScanEndRequest {}
958
959#[derive(Clone, Debug, Default, PartialEq)]
960pub struct WlanFullmacImplIfcOnScanResultRequest {
961 pub txn_id: Option<u64>,
962 pub timestamp_nanos: Option<i64>,
963 pub bss: Option<fidl_fuchsia_wlan_ieee80211_common::BssDescription>,
964 #[doc(hidden)]
965 pub __source_breaking: fidl::marker::SourceBreaking,
966}
967
968impl fidl::Persistable for WlanFullmacImplIfcOnScanResultRequest {}
969
970#[derive(Clone, Debug, Default, PartialEq)]
971pub struct WlanFullmacImplIfcOnScheduledScanMatchesAvailableRequest {
972 pub txn_id: Option<u64>,
973 #[doc(hidden)]
974 pub __source_breaking: fidl::marker::SourceBreaking,
975}
976
977impl fidl::Persistable for WlanFullmacImplIfcOnScheduledScanMatchesAvailableRequest {}
978
979#[derive(Clone, Debug, Default, PartialEq)]
980pub struct WlanFullmacImplIfcOnScheduledScanStoppedByFirmwareRequest {
981 pub txn_id: Option<u64>,
982 #[doc(hidden)]
983 pub __source_breaking: fidl::marker::SourceBreaking,
984}
985
986impl fidl::Persistable for WlanFullmacImplIfcOnScheduledScanStoppedByFirmwareRequest {}
987
988#[derive(Clone, Debug, Default, PartialEq)]
989pub struct WlanFullmacImplIfcRoamConfRequest {
990 pub selected_bssid: Option<[u8; 6]>,
992 pub status_code: Option<fidl_fuchsia_wlan_ieee80211_common::StatusCode>,
994 pub original_association_maintained: Option<bool>,
999 pub target_bss_authenticated: Option<bool>,
1004 pub association_id: Option<u16>,
1006 pub association_ies: Option<Vec<u8>>,
1008 #[doc(hidden)]
1009 pub __source_breaking: fidl::marker::SourceBreaking,
1010}
1011
1012impl fidl::Persistable for WlanFullmacImplIfcRoamConfRequest {}
1013
1014#[derive(Clone, Debug, Default, PartialEq)]
1015pub struct WlanFullmacImplIfcRoamResultIndRequest {
1016 pub selected_bssid: Option<[u8; 6]>,
1018 pub status_code: Option<fidl_fuchsia_wlan_ieee80211_common::StatusCode>,
1020 pub original_association_maintained: Option<bool>,
1025 pub target_bss_authenticated: Option<bool>,
1030 pub association_id: Option<u16>,
1032 pub association_ies: Option<Vec<u8>>,
1034 #[doc(hidden)]
1035 pub __source_breaking: fidl::marker::SourceBreaking,
1036}
1037
1038impl fidl::Persistable for WlanFullmacImplIfcRoamResultIndRequest {}
1039
1040#[derive(Clone, Debug, Default, PartialEq)]
1041pub struct WlanFullmacImplIfcRoamStartIndRequest {
1042 pub selected_bssid: Option<[u8; 6]>,
1044 pub selected_bss: Option<fidl_fuchsia_wlan_ieee80211_common::BssDescription>,
1048 pub original_association_maintained: Option<bool>,
1056 #[doc(hidden)]
1057 pub __source_breaking: fidl::marker::SourceBreaking,
1058}
1059
1060impl fidl::Persistable for WlanFullmacImplIfcRoamStartIndRequest {}
1061
1062#[derive(Clone, Debug, Default, PartialEq)]
1063pub struct WlanFullmacImplIfcSaeHandshakeIndRequest {
1064 pub peer_sta_address: Option<[u8; 6]>,
1065 #[doc(hidden)]
1066 pub __source_breaking: fidl::marker::SourceBreaking,
1067}
1068
1069impl fidl::Persistable for WlanFullmacImplIfcSaeHandshakeIndRequest {}
1070
1071#[derive(Clone, Debug, Default, PartialEq)]
1072pub struct WlanFullmacImplIfcStartConfRequest {
1073 pub result_code: Option<StartResult>,
1075 #[doc(hidden)]
1076 pub __source_breaking: fidl::marker::SourceBreaking,
1077}
1078
1079impl fidl::Persistable for WlanFullmacImplIfcStartConfRequest {}
1080
1081#[derive(Clone, Debug, Default, PartialEq)]
1082pub struct WlanFullmacImplIfcStopConfRequest {
1083 pub result_code: Option<StopResult>,
1085 #[doc(hidden)]
1086 pub __source_breaking: fidl::marker::SourceBreaking,
1087}
1088
1089impl fidl::Persistable for WlanFullmacImplIfcStopConfRequest {}
1090
1091#[derive(Clone, Debug, Default, PartialEq)]
1092pub struct WlanFullmacImplInstallApfPacketFilterRequest {
1093 pub program: Option<Vec<u8>>,
1094 #[doc(hidden)]
1095 pub __source_breaking: fidl::marker::SourceBreaking,
1096}
1097
1098impl fidl::Persistable for WlanFullmacImplInstallApfPacketFilterRequest {}
1099
1100#[derive(Clone, Debug, Default, PartialEq)]
1101pub struct WlanFullmacImplOnLinkStateChangedRequest {
1102 pub online: Option<bool>,
1103 #[doc(hidden)]
1104 pub __source_breaking: fidl::marker::SourceBreaking,
1105}
1106
1107impl fidl::Persistable for WlanFullmacImplOnLinkStateChangedRequest {}
1108
1109#[derive(Clone, Debug, Default, PartialEq)]
1110pub struct WlanFullmacImplReconnectRequest {
1111 pub peer_sta_address: Option<[u8; 6]>,
1112 #[doc(hidden)]
1113 pub __source_breaking: fidl::marker::SourceBreaking,
1114}
1115
1116impl fidl::Persistable for WlanFullmacImplReconnectRequest {}
1117
1118#[derive(Clone, Debug, Default, PartialEq)]
1119pub struct WlanFullmacImplRoamRequest {
1120 pub selected_bss: Option<fidl_fuchsia_wlan_ieee80211_common::BssDescription>,
1124 #[doc(hidden)]
1125 pub __source_breaking: fidl::marker::SourceBreaking,
1126}
1127
1128impl fidl::Persistable for WlanFullmacImplRoamRequest {}
1129
1130#[derive(Clone, Debug, Default, PartialEq)]
1131pub struct WlanFullmacImplSaeHandshakeRespRequest {
1132 pub peer_sta_address: Option<[u8; 6]>,
1134 pub status_code: Option<fidl_fuchsia_wlan_ieee80211_common::StatusCode>,
1136 #[doc(hidden)]
1137 pub __source_breaking: fidl::marker::SourceBreaking,
1138}
1139
1140impl fidl::Persistable for WlanFullmacImplSaeHandshakeRespRequest {}
1141
1142#[derive(Clone, Debug, Default, PartialEq)]
1143pub struct WlanFullmacImplSetApfPacketFilterEnabledRequest {
1144 pub enabled: Option<bool>,
1145 #[doc(hidden)]
1146 pub __source_breaking: fidl::marker::SourceBreaking,
1147}
1148
1149impl fidl::Persistable for WlanFullmacImplSetApfPacketFilterEnabledRequest {}
1150
1151#[derive(Clone, Debug, Default, PartialEq)]
1152pub struct WlanFullmacImplSetKeysRequest {
1153 pub keylist: Option<Vec<fidl_fuchsia_wlan_driver_common::WlanKeyConfig>>,
1154 pub key_descriptors: Option<Vec<fidl_fuchsia_wlan_ieee80211_common::SetKeyDescriptor>>,
1155 #[doc(hidden)]
1156 pub __source_breaking: fidl::marker::SourceBreaking,
1157}
1158
1159impl fidl::Persistable for WlanFullmacImplSetKeysRequest {}
1160
1161#[derive(Clone, Debug, Default, PartialEq)]
1162pub struct WlanFullmacImplStartBssRequest {
1163 pub ssid: Option<Vec<u8>>,
1164 pub bss_type: Option<fidl_fuchsia_wlan_ieee80211_common::BssType>,
1165 pub beacon_period: Option<u32>,
1166 pub dtim_period: Option<u32>,
1167 pub channel: Option<u8>,
1168 pub rsne: Option<Vec<u8>>,
1169 pub vendor_ie: Option<Vec<u8>>,
1170 #[doc(hidden)]
1171 pub __source_breaking: fidl::marker::SourceBreaking,
1172}
1173
1174impl fidl::Persistable for WlanFullmacImplStartBssRequest {}
1175
1176#[derive(Clone, Debug, Default, PartialEq)]
1177pub struct WlanFullmacImplStartScanRequest {
1178 pub txn_id: Option<u64>,
1180 pub scan_type: Option<WlanScanType>,
1181 pub channels: Option<Vec<u8>>,
1189 pub ssids: Option<Vec<Vec<u8>>>,
1198 pub min_channel_time: Option<u32>,
1200 pub max_channel_time: Option<u32>,
1202 #[doc(hidden)]
1203 pub __source_breaking: fidl::marker::SourceBreaking,
1204}
1205
1206impl fidl::Persistable for WlanFullmacImplStartScanRequest {}
1207
1208#[derive(Clone, Debug, Default, PartialEq)]
1209pub struct WlanFullmacImplStartScheduledScanRequest {
1210 pub txn_id: Option<u64>,
1211 pub req: Option<fidl_fuchsia_wlan_common_common::ScheduledScanRequest>,
1212 #[doc(hidden)]
1213 pub __source_breaking: fidl::marker::SourceBreaking,
1214}
1215
1216impl fidl::Persistable for WlanFullmacImplStartScheduledScanRequest {}
1217
1218#[derive(Clone, Debug, Default, PartialEq)]
1219pub struct WlanFullmacImplStopBssRequest {
1220 pub ssid: Option<Vec<u8>>,
1221 #[doc(hidden)]
1222 pub __source_breaking: fidl::marker::SourceBreaking,
1223}
1224
1225impl fidl::Persistable for WlanFullmacImplStopBssRequest {}
1226
1227#[derive(Clone, Debug, Default, PartialEq)]
1228pub struct WlanFullmacImplStopScheduledScanRequest {
1229 pub txn_id: Option<u64>,
1230 #[doc(hidden)]
1231 pub __source_breaking: fidl::marker::SourceBreaking,
1232}
1233
1234impl fidl::Persistable for WlanFullmacImplStopScheduledScanRequest {}
1235
1236#[derive(Clone, Debug, Default, PartialEq)]
1237pub struct WlanFullmacImplGetApfPacketFilterEnabledResponse {
1238 pub enabled: Option<bool>,
1239 #[doc(hidden)]
1240 pub __source_breaking: fidl::marker::SourceBreaking,
1241}
1242
1243impl fidl::Persistable for WlanFullmacImplGetApfPacketFilterEnabledResponse {}
1244
1245#[derive(Clone, Debug, Default, PartialEq)]
1246pub struct WlanFullmacImplGetScheduledScanEnabledResponse {
1247 pub active_txn_ids: Option<Vec<u64>>,
1248 #[doc(hidden)]
1249 pub __source_breaking: fidl::marker::SourceBreaking,
1250}
1251
1252impl fidl::Persistable for WlanFullmacImplGetScheduledScanEnabledResponse {}
1253
1254#[derive(Clone, Debug, Default, PartialEq)]
1255pub struct WlanFullmacImplQueryApfPacketFilterSupportResponse {
1256 pub resp: Option<fidl_fuchsia_wlan_common_common::ApfPacketFilterSupport>,
1257 #[doc(hidden)]
1258 pub __source_breaking: fidl::marker::SourceBreaking,
1259}
1260
1261impl fidl::Persistable for WlanFullmacImplQueryApfPacketFilterSupportResponse {}
1262
1263#[derive(Clone, Debug, Default, PartialEq)]
1264pub struct WlanFullmacImplQuerySecuritySupportResponse {
1265 pub resp: Option<fidl_fuchsia_wlan_common_common::SecuritySupport>,
1266 #[doc(hidden)]
1267 pub __source_breaking: fidl::marker::SourceBreaking,
1268}
1269
1270impl fidl::Persistable for WlanFullmacImplQuerySecuritySupportResponse {}
1271
1272#[derive(Clone, Debug, Default, PartialEq)]
1273pub struct WlanFullmacImplQuerySpectrumManagementSupportResponse {
1274 pub resp: Option<fidl_fuchsia_wlan_common_common::SpectrumManagementSupport>,
1275 #[doc(hidden)]
1276 pub __source_breaking: fidl::marker::SourceBreaking,
1277}
1278
1279impl fidl::Persistable for WlanFullmacImplQuerySpectrumManagementSupportResponse {}
1280
1281#[derive(Clone, Debug, Default, PartialEq)]
1282pub struct WlanFullmacImplQueryTelemetrySupportResponse {
1283 pub resp: Option<fidl_fuchsia_wlan_stats_common::TelemetrySupport>,
1284 #[doc(hidden)]
1285 pub __source_breaking: fidl::marker::SourceBreaking,
1286}
1287
1288impl fidl::Persistable for WlanFullmacImplQueryTelemetrySupportResponse {}
1289
1290#[derive(Clone, Debug, Default, PartialEq)]
1291pub struct WlanFullmacImplQueryResponse {
1292 pub sta_addr: Option<[u8; 6]>,
1294 pub role: Option<fidl_fuchsia_wlan_common_common::WlanMacRole>,
1296 pub band_caps: Option<Vec<BandCapability>>,
1298 pub factory_addr: Option<[u8; 6]>,
1300 #[doc(hidden)]
1301 pub __source_breaking: fidl::marker::SourceBreaking,
1302}
1303
1304impl fidl::Persistable for WlanFullmacImplQueryResponse {}
1305
1306#[derive(Clone, Debug, Default, PartialEq)]
1307pub struct WlanFullmacImplReadApfPacketFilterDataResponse {
1308 pub memory: Option<Vec<u8>>,
1309 #[doc(hidden)]
1310 pub __source_breaking: fidl::marker::SourceBreaking,
1311}
1312
1313impl fidl::Persistable for WlanFullmacImplReadApfPacketFilterDataResponse {}
1314
1315#[derive(Clone, Debug, Default, PartialEq)]
1316pub struct WlanFullmacOwePublicKey {
1317 pub group: Option<u16>,
1318 pub key: Option<Vec<u8>>,
1319 #[doc(hidden)]
1320 pub __source_breaking: fidl::marker::SourceBreaking,
1321}
1322
1323impl fidl::Persistable for WlanFullmacOwePublicKey {}
1324
1325pub mod wlan_fullmac_impl__ordinals {
1326 pub const INIT: u64 = 0x593dfb6cb3f0f1aa;
1327 pub const QUERY: u64 = 0x28ac65f9da3941d4;
1328 pub const QUERY_SECURITY_SUPPORT: u64 = 0x11cf3fa6eeb93f84;
1329 pub const QUERY_SPECTRUM_MANAGEMENT_SUPPORT: u64 = 0x22ae7551d855b83a;
1330 pub const QUERY_TELEMETRY_SUPPORT: u64 = 0x4561479ca560827f;
1331 pub const QUERY_APF_PACKET_FILTER_SUPPORT: u64 = 0x6df8cdf0acd4dfad;
1332 pub const START_SCAN: u64 = 0x26c17bf595aa161c;
1333 pub const START_SCHEDULED_SCAN: u64 = 0x67bb4356265682d2;
1334 pub const STOP_SCHEDULED_SCAN: u64 = 0x71bf2a03f2cdc10f;
1335 pub const GET_SCHEDULED_SCAN_ENABLED: u64 = 0x96be6f11648f198;
1336 pub const CONNECT: u64 = 0x19eb0322efb07a76;
1337 pub const RECONNECT: u64 = 0x474084c4ef19ee71;
1338 pub const ROAM: u64 = 0x1e35dcc98b124b64;
1339 pub const AUTH_RESP: u64 = 0x5f7ea24b44a4aaeb;
1340 pub const DEAUTH: u64 = 0x112786eccbf12f37;
1341 pub const ASSOC_RESP: u64 = 0x5022ce6b8eefec2f;
1342 pub const DISASSOC: u64 = 0x9c0fc4e8de53e01;
1343 pub const START_BSS: u64 = 0x6922644d6b1d341d;
1344 pub const STOP_BSS: u64 = 0x5aeb9b72e7575268;
1345 pub const SET_KEYS: u64 = 0x20f46b1e039f0985;
1346 pub const EAPOL_TX: u64 = 0x529a2d90fd4c8177;
1347 pub const GET_IFACE_STATS: u64 = 0x505563776ef0392f;
1348 pub const GET_IFACE_HISTOGRAM_STATS: u64 = 0x503d586f30ccf2cd;
1349 pub const GET_SIGNAL_REPORT: u64 = 0x5d93f056e4796bb3;
1350 pub const SAE_HANDSHAKE_RESP: u64 = 0x72cd3a31ae5a54f6;
1351 pub const SAE_FRAME_TX: u64 = 0x4715ad5dc5a6340f;
1352 pub const WMM_STATUS_REQ: u64 = 0x635ecef3beb7a059;
1353 pub const ON_LINK_STATE_CHANGED: u64 = 0x4d896e5b68e488d7;
1354 pub const SET_MAC_ADDRESS: u64 = 0x211a97f6f21ae5f0;
1355 pub const INSTALL_APF_PACKET_FILTER: u64 = 0x14597eda84122115;
1356 pub const READ_APF_PACKET_FILTER_DATA: u64 = 0x6ddcf8a179553a3c;
1357 pub const SET_APF_PACKET_FILTER_ENABLED: u64 = 0x808792cade97d59;
1358 pub const GET_APF_PACKET_FILTER_ENABLED: u64 = 0x284e1725471e3ae7;
1359}
1360
1361pub mod wlan_fullmac_impl_ifc_ordinals {
1362 pub const ON_SCAN_RESULT: u64 = 0x29aa81dc570f7a3e;
1363 pub const ON_SCAN_END: u64 = 0x7cd8aff80d27073c;
1364 pub const ON_SCHEDULED_SCAN_MATCHES_AVAILABLE: u64 = 0x3036cd8b8b35e81b;
1365 pub const ON_SCHEDULED_SCAN_STOPPED_BY_FIRMWARE: u64 = 0x50353be2c3029817;
1366 pub const CONNECT_CONF: u64 = 0x3c22c6d80b2a2759;
1367 pub const ROAM_CONF: u64 = 0x368b2a5b903b3f7b;
1368 pub const ROAM_START_IND: u64 = 0x23e1d9368935e7e4;
1369 pub const ROAM_RESULT_IND: u64 = 0x7081c1b1ceea4914;
1370 pub const AUTH_IND: u64 = 0x270e1f8889650d0b;
1371 pub const DEAUTH_CONF: u64 = 0x2c94b0d7258111b7;
1372 pub const DEAUTH_IND: u64 = 0x26cd27cdadd8dbaf;
1373 pub const ASSOC_IND: u64 = 0x3e44529e3dc179ce;
1374 pub const DISASSOC_CONF: u64 = 0x7c713bcd58a76cb3;
1375 pub const DISASSOC_IND: u64 = 0x6667b381b7f3990f;
1376 pub const START_CONF: u64 = 0x3e9b9641f3ddc7fc;
1377 pub const STOP_CONF: u64 = 0x320a5ff227a4e9df;
1378 pub const EAPOL_CONF: u64 = 0x77364db9cc3970ec;
1379 pub const ON_CHANNEL_SWITCH: u64 = 0x21db0b8f71cae647;
1380 pub const SIGNAL_REPORT: u64 = 0x79679fa8789c3d9f;
1381 pub const EAPOL_IND: u64 = 0x3de8ec1eda10d1d0;
1382 pub const ON_PMK_AVAILABLE: u64 = 0x5cedd8d9be28a17e;
1383 pub const SAE_HANDSHAKE_IND: u64 = 0x4f3d53885503a1d8;
1384 pub const SAE_FRAME_RX: u64 = 0x51650906857ed4d4;
1385 pub const ON_WMM_STATUS_RESP: u64 = 0x6823a88bf3ba8b2a;
1386}
1387
1388mod internal {
1389 use super::*;
1390 unsafe impl fidl::encoding::TypeMarker for EapolTxResult {
1391 type Owned = Self;
1392
1393 #[inline(always)]
1394 fn inline_align(_context: fidl::encoding::Context) -> usize {
1395 std::mem::align_of::<u8>()
1396 }
1397
1398 #[inline(always)]
1399 fn inline_size(_context: fidl::encoding::Context) -> usize {
1400 std::mem::size_of::<u8>()
1401 }
1402
1403 #[inline(always)]
1404 fn encode_is_copy() -> bool {
1405 false
1406 }
1407
1408 #[inline(always)]
1409 fn decode_is_copy() -> bool {
1410 false
1411 }
1412 }
1413
1414 impl fidl::encoding::ValueTypeMarker for EapolTxResult {
1415 type Borrowed<'a> = Self;
1416 #[inline(always)]
1417 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1418 *value
1419 }
1420 }
1421
1422 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for EapolTxResult {
1423 #[inline]
1424 unsafe fn encode(
1425 self,
1426 encoder: &mut fidl::encoding::Encoder<'_, D>,
1427 offset: usize,
1428 _depth: fidl::encoding::Depth,
1429 ) -> fidl::Result<()> {
1430 encoder.debug_check_bounds::<Self>(offset);
1431 encoder.write_num(self.into_primitive(), offset);
1432 Ok(())
1433 }
1434 }
1435
1436 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for EapolTxResult {
1437 #[inline(always)]
1438 fn new_empty() -> Self {
1439 Self::unknown()
1440 }
1441
1442 #[inline]
1443 unsafe fn decode(
1444 &mut self,
1445 decoder: &mut fidl::encoding::Decoder<'_, D>,
1446 offset: usize,
1447 _depth: fidl::encoding::Depth,
1448 ) -> fidl::Result<()> {
1449 decoder.debug_check_bounds::<Self>(offset);
1450 let prim = decoder.read_num::<u8>(offset);
1451
1452 *self = Self::from_primitive_allow_unknown(prim);
1453 Ok(())
1454 }
1455 }
1456 unsafe impl fidl::encoding::TypeMarker for StartResult {
1457 type Owned = Self;
1458
1459 #[inline(always)]
1460 fn inline_align(_context: fidl::encoding::Context) -> usize {
1461 std::mem::align_of::<u8>()
1462 }
1463
1464 #[inline(always)]
1465 fn inline_size(_context: fidl::encoding::Context) -> usize {
1466 std::mem::size_of::<u8>()
1467 }
1468
1469 #[inline(always)]
1470 fn encode_is_copy() -> bool {
1471 false
1472 }
1473
1474 #[inline(always)]
1475 fn decode_is_copy() -> bool {
1476 false
1477 }
1478 }
1479
1480 impl fidl::encoding::ValueTypeMarker for StartResult {
1481 type Borrowed<'a> = Self;
1482 #[inline(always)]
1483 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1484 *value
1485 }
1486 }
1487
1488 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for StartResult {
1489 #[inline]
1490 unsafe fn encode(
1491 self,
1492 encoder: &mut fidl::encoding::Encoder<'_, D>,
1493 offset: usize,
1494 _depth: fidl::encoding::Depth,
1495 ) -> fidl::Result<()> {
1496 encoder.debug_check_bounds::<Self>(offset);
1497 encoder.write_num(self.into_primitive(), offset);
1498 Ok(())
1499 }
1500 }
1501
1502 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for StartResult {
1503 #[inline(always)]
1504 fn new_empty() -> Self {
1505 Self::unknown()
1506 }
1507
1508 #[inline]
1509 unsafe fn decode(
1510 &mut self,
1511 decoder: &mut fidl::encoding::Decoder<'_, D>,
1512 offset: usize,
1513 _depth: fidl::encoding::Depth,
1514 ) -> fidl::Result<()> {
1515 decoder.debug_check_bounds::<Self>(offset);
1516 let prim = decoder.read_num::<u8>(offset);
1517
1518 *self = Self::from_primitive_allow_unknown(prim);
1519 Ok(())
1520 }
1521 }
1522 unsafe impl fidl::encoding::TypeMarker for StopResult {
1523 type Owned = Self;
1524
1525 #[inline(always)]
1526 fn inline_align(_context: fidl::encoding::Context) -> usize {
1527 std::mem::align_of::<u8>()
1528 }
1529
1530 #[inline(always)]
1531 fn inline_size(_context: fidl::encoding::Context) -> usize {
1532 std::mem::size_of::<u8>()
1533 }
1534
1535 #[inline(always)]
1536 fn encode_is_copy() -> bool {
1537 false
1538 }
1539
1540 #[inline(always)]
1541 fn decode_is_copy() -> bool {
1542 false
1543 }
1544 }
1545
1546 impl fidl::encoding::ValueTypeMarker for StopResult {
1547 type Borrowed<'a> = Self;
1548 #[inline(always)]
1549 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1550 *value
1551 }
1552 }
1553
1554 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for StopResult {
1555 #[inline]
1556 unsafe fn encode(
1557 self,
1558 encoder: &mut fidl::encoding::Encoder<'_, D>,
1559 offset: usize,
1560 _depth: fidl::encoding::Depth,
1561 ) -> fidl::Result<()> {
1562 encoder.debug_check_bounds::<Self>(offset);
1563 encoder.write_num(self.into_primitive(), offset);
1564 Ok(())
1565 }
1566 }
1567
1568 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for StopResult {
1569 #[inline(always)]
1570 fn new_empty() -> Self {
1571 Self::unknown()
1572 }
1573
1574 #[inline]
1575 unsafe fn decode(
1576 &mut self,
1577 decoder: &mut fidl::encoding::Decoder<'_, D>,
1578 offset: usize,
1579 _depth: fidl::encoding::Depth,
1580 ) -> fidl::Result<()> {
1581 decoder.debug_check_bounds::<Self>(offset);
1582 let prim = decoder.read_num::<u8>(offset);
1583
1584 *self = Self::from_primitive_allow_unknown(prim);
1585 Ok(())
1586 }
1587 }
1588 unsafe impl fidl::encoding::TypeMarker for WlanAssocResult {
1589 type Owned = Self;
1590
1591 #[inline(always)]
1592 fn inline_align(_context: fidl::encoding::Context) -> usize {
1593 std::mem::align_of::<u8>()
1594 }
1595
1596 #[inline(always)]
1597 fn inline_size(_context: fidl::encoding::Context) -> usize {
1598 std::mem::size_of::<u8>()
1599 }
1600
1601 #[inline(always)]
1602 fn encode_is_copy() -> bool {
1603 false
1604 }
1605
1606 #[inline(always)]
1607 fn decode_is_copy() -> bool {
1608 false
1609 }
1610 }
1611
1612 impl fidl::encoding::ValueTypeMarker for WlanAssocResult {
1613 type Borrowed<'a> = Self;
1614 #[inline(always)]
1615 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1616 *value
1617 }
1618 }
1619
1620 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
1621 for WlanAssocResult
1622 {
1623 #[inline]
1624 unsafe fn encode(
1625 self,
1626 encoder: &mut fidl::encoding::Encoder<'_, D>,
1627 offset: usize,
1628 _depth: fidl::encoding::Depth,
1629 ) -> fidl::Result<()> {
1630 encoder.debug_check_bounds::<Self>(offset);
1631 encoder.write_num(self.into_primitive(), offset);
1632 Ok(())
1633 }
1634 }
1635
1636 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for WlanAssocResult {
1637 #[inline(always)]
1638 fn new_empty() -> Self {
1639 Self::unknown()
1640 }
1641
1642 #[inline]
1643 unsafe fn decode(
1644 &mut self,
1645 decoder: &mut fidl::encoding::Decoder<'_, D>,
1646 offset: usize,
1647 _depth: fidl::encoding::Depth,
1648 ) -> fidl::Result<()> {
1649 decoder.debug_check_bounds::<Self>(offset);
1650 let prim = decoder.read_num::<u8>(offset);
1651
1652 *self = Self::from_primitive_allow_unknown(prim);
1653 Ok(())
1654 }
1655 }
1656 unsafe impl fidl::encoding::TypeMarker for WlanAuthResult {
1657 type Owned = Self;
1658
1659 #[inline(always)]
1660 fn inline_align(_context: fidl::encoding::Context) -> usize {
1661 std::mem::align_of::<u8>()
1662 }
1663
1664 #[inline(always)]
1665 fn inline_size(_context: fidl::encoding::Context) -> usize {
1666 std::mem::size_of::<u8>()
1667 }
1668
1669 #[inline(always)]
1670 fn encode_is_copy() -> bool {
1671 false
1672 }
1673
1674 #[inline(always)]
1675 fn decode_is_copy() -> bool {
1676 false
1677 }
1678 }
1679
1680 impl fidl::encoding::ValueTypeMarker for WlanAuthResult {
1681 type Borrowed<'a> = Self;
1682 #[inline(always)]
1683 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1684 *value
1685 }
1686 }
1687
1688 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for WlanAuthResult {
1689 #[inline]
1690 unsafe fn encode(
1691 self,
1692 encoder: &mut fidl::encoding::Encoder<'_, D>,
1693 offset: usize,
1694 _depth: fidl::encoding::Depth,
1695 ) -> fidl::Result<()> {
1696 encoder.debug_check_bounds::<Self>(offset);
1697 encoder.write_num(self.into_primitive(), offset);
1698 Ok(())
1699 }
1700 }
1701
1702 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for WlanAuthResult {
1703 #[inline(always)]
1704 fn new_empty() -> Self {
1705 Self::unknown()
1706 }
1707
1708 #[inline]
1709 unsafe fn decode(
1710 &mut self,
1711 decoder: &mut fidl::encoding::Decoder<'_, D>,
1712 offset: usize,
1713 _depth: fidl::encoding::Depth,
1714 ) -> fidl::Result<()> {
1715 decoder.debug_check_bounds::<Self>(offset);
1716 let prim = decoder.read_num::<u8>(offset);
1717
1718 *self = Self::from_primitive_allow_unknown(prim);
1719 Ok(())
1720 }
1721 }
1722 unsafe impl fidl::encoding::TypeMarker for WlanAuthType {
1723 type Owned = Self;
1724
1725 #[inline(always)]
1726 fn inline_align(_context: fidl::encoding::Context) -> usize {
1727 std::mem::align_of::<u8>()
1728 }
1729
1730 #[inline(always)]
1731 fn inline_size(_context: fidl::encoding::Context) -> usize {
1732 std::mem::size_of::<u8>()
1733 }
1734
1735 #[inline(always)]
1736 fn encode_is_copy() -> bool {
1737 false
1738 }
1739
1740 #[inline(always)]
1741 fn decode_is_copy() -> bool {
1742 false
1743 }
1744 }
1745
1746 impl fidl::encoding::ValueTypeMarker for WlanAuthType {
1747 type Borrowed<'a> = Self;
1748 #[inline(always)]
1749 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1750 *value
1751 }
1752 }
1753
1754 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for WlanAuthType {
1755 #[inline]
1756 unsafe fn encode(
1757 self,
1758 encoder: &mut fidl::encoding::Encoder<'_, D>,
1759 offset: usize,
1760 _depth: fidl::encoding::Depth,
1761 ) -> fidl::Result<()> {
1762 encoder.debug_check_bounds::<Self>(offset);
1763 encoder.write_num(self.into_primitive(), offset);
1764 Ok(())
1765 }
1766 }
1767
1768 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for WlanAuthType {
1769 #[inline(always)]
1770 fn new_empty() -> Self {
1771 Self::unknown()
1772 }
1773
1774 #[inline]
1775 unsafe fn decode(
1776 &mut self,
1777 decoder: &mut fidl::encoding::Decoder<'_, D>,
1778 offset: usize,
1779 _depth: fidl::encoding::Depth,
1780 ) -> fidl::Result<()> {
1781 decoder.debug_check_bounds::<Self>(offset);
1782 let prim = decoder.read_num::<u8>(offset);
1783
1784 *self = Self::from_primitive_allow_unknown(prim);
1785 Ok(())
1786 }
1787 }
1788 unsafe impl fidl::encoding::TypeMarker for WlanScanResult {
1789 type Owned = Self;
1790
1791 #[inline(always)]
1792 fn inline_align(_context: fidl::encoding::Context) -> usize {
1793 std::mem::align_of::<u8>()
1794 }
1795
1796 #[inline(always)]
1797 fn inline_size(_context: fidl::encoding::Context) -> usize {
1798 std::mem::size_of::<u8>()
1799 }
1800
1801 #[inline(always)]
1802 fn encode_is_copy() -> bool {
1803 false
1804 }
1805
1806 #[inline(always)]
1807 fn decode_is_copy() -> bool {
1808 false
1809 }
1810 }
1811
1812 impl fidl::encoding::ValueTypeMarker for WlanScanResult {
1813 type Borrowed<'a> = Self;
1814 #[inline(always)]
1815 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1816 *value
1817 }
1818 }
1819
1820 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for WlanScanResult {
1821 #[inline]
1822 unsafe fn encode(
1823 self,
1824 encoder: &mut fidl::encoding::Encoder<'_, D>,
1825 offset: usize,
1826 _depth: fidl::encoding::Depth,
1827 ) -> fidl::Result<()> {
1828 encoder.debug_check_bounds::<Self>(offset);
1829 encoder.write_num(self.into_primitive(), offset);
1830 Ok(())
1831 }
1832 }
1833
1834 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for WlanScanResult {
1835 #[inline(always)]
1836 fn new_empty() -> Self {
1837 Self::unknown()
1838 }
1839
1840 #[inline]
1841 unsafe fn decode(
1842 &mut self,
1843 decoder: &mut fidl::encoding::Decoder<'_, D>,
1844 offset: usize,
1845 _depth: fidl::encoding::Depth,
1846 ) -> fidl::Result<()> {
1847 decoder.debug_check_bounds::<Self>(offset);
1848 let prim = decoder.read_num::<u8>(offset);
1849
1850 *self = Self::from_primitive_allow_unknown(prim);
1851 Ok(())
1852 }
1853 }
1854 unsafe impl fidl::encoding::TypeMarker for WlanScanType {
1855 type Owned = Self;
1856
1857 #[inline(always)]
1858 fn inline_align(_context: fidl::encoding::Context) -> usize {
1859 std::mem::align_of::<u8>()
1860 }
1861
1862 #[inline(always)]
1863 fn inline_size(_context: fidl::encoding::Context) -> usize {
1864 std::mem::size_of::<u8>()
1865 }
1866
1867 #[inline(always)]
1868 fn encode_is_copy() -> bool {
1869 false
1870 }
1871
1872 #[inline(always)]
1873 fn decode_is_copy() -> bool {
1874 false
1875 }
1876 }
1877
1878 impl fidl::encoding::ValueTypeMarker for WlanScanType {
1879 type Borrowed<'a> = Self;
1880 #[inline(always)]
1881 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1882 *value
1883 }
1884 }
1885
1886 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for WlanScanType {
1887 #[inline]
1888 unsafe fn encode(
1889 self,
1890 encoder: &mut fidl::encoding::Encoder<'_, D>,
1891 offset: usize,
1892 _depth: fidl::encoding::Depth,
1893 ) -> fidl::Result<()> {
1894 encoder.debug_check_bounds::<Self>(offset);
1895 encoder.write_num(self.into_primitive(), offset);
1896 Ok(())
1897 }
1898 }
1899
1900 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for WlanScanType {
1901 #[inline(always)]
1902 fn new_empty() -> Self {
1903 Self::unknown()
1904 }
1905
1906 #[inline]
1907 unsafe fn decode(
1908 &mut self,
1909 decoder: &mut fidl::encoding::Decoder<'_, D>,
1910 offset: usize,
1911 _depth: fidl::encoding::Depth,
1912 ) -> fidl::Result<()> {
1913 decoder.debug_check_bounds::<Self>(offset);
1914 let prim = decoder.read_num::<u8>(offset);
1915
1916 *self = Self::from_primitive_allow_unknown(prim);
1917 Ok(())
1918 }
1919 }
1920
1921 impl fidl::encoding::ValueTypeMarker for WlanFullmacChannelSwitchInfo {
1922 type Borrowed<'a> = &'a Self;
1923 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1924 value
1925 }
1926 }
1927
1928 unsafe impl fidl::encoding::TypeMarker for WlanFullmacChannelSwitchInfo {
1929 type Owned = Self;
1930
1931 #[inline(always)]
1932 fn inline_align(_context: fidl::encoding::Context) -> usize {
1933 1
1934 }
1935
1936 #[inline(always)]
1937 fn inline_size(_context: fidl::encoding::Context) -> usize {
1938 1
1939 }
1940 #[inline(always)]
1941 fn encode_is_copy() -> bool {
1942 true
1943 }
1944
1945 #[inline(always)]
1946 fn decode_is_copy() -> bool {
1947 true
1948 }
1949 }
1950
1951 unsafe impl<D: fidl::encoding::ResourceDialect>
1952 fidl::encoding::Encode<WlanFullmacChannelSwitchInfo, D> for &WlanFullmacChannelSwitchInfo
1953 {
1954 #[inline]
1955 unsafe fn encode(
1956 self,
1957 encoder: &mut fidl::encoding::Encoder<'_, D>,
1958 offset: usize,
1959 _depth: fidl::encoding::Depth,
1960 ) -> fidl::Result<()> {
1961 encoder.debug_check_bounds::<WlanFullmacChannelSwitchInfo>(offset);
1962 unsafe {
1963 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
1965 (buf_ptr as *mut WlanFullmacChannelSwitchInfo)
1966 .write_unaligned((self as *const WlanFullmacChannelSwitchInfo).read());
1967 }
1970 Ok(())
1971 }
1972 }
1973 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<u8, D>>
1974 fidl::encoding::Encode<WlanFullmacChannelSwitchInfo, D> for (T0,)
1975 {
1976 #[inline]
1977 unsafe fn encode(
1978 self,
1979 encoder: &mut fidl::encoding::Encoder<'_, D>,
1980 offset: usize,
1981 depth: fidl::encoding::Depth,
1982 ) -> fidl::Result<()> {
1983 encoder.debug_check_bounds::<WlanFullmacChannelSwitchInfo>(offset);
1984 self.0.encode(encoder, offset + 0, depth)?;
1988 Ok(())
1989 }
1990 }
1991
1992 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1993 for WlanFullmacChannelSwitchInfo
1994 {
1995 #[inline(always)]
1996 fn new_empty() -> Self {
1997 Self { new_channel: fidl::new_empty!(u8, D) }
1998 }
1999
2000 #[inline]
2001 unsafe fn decode(
2002 &mut self,
2003 decoder: &mut fidl::encoding::Decoder<'_, D>,
2004 offset: usize,
2005 _depth: fidl::encoding::Depth,
2006 ) -> fidl::Result<()> {
2007 decoder.debug_check_bounds::<Self>(offset);
2008 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
2009 unsafe {
2012 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 1);
2013 }
2014 Ok(())
2015 }
2016 }
2017
2018 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcOnChannelSwitchRequest {
2019 type Borrowed<'a> = &'a Self;
2020 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2021 value
2022 }
2023 }
2024
2025 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcOnChannelSwitchRequest {
2026 type Owned = Self;
2027
2028 #[inline(always)]
2029 fn inline_align(_context: fidl::encoding::Context) -> usize {
2030 1
2031 }
2032
2033 #[inline(always)]
2034 fn inline_size(_context: fidl::encoding::Context) -> usize {
2035 1
2036 }
2037 #[inline(always)]
2038 fn encode_is_copy() -> bool {
2039 true
2040 }
2041
2042 #[inline(always)]
2043 fn decode_is_copy() -> bool {
2044 true
2045 }
2046 }
2047
2048 unsafe impl<D: fidl::encoding::ResourceDialect>
2049 fidl::encoding::Encode<WlanFullmacImplIfcOnChannelSwitchRequest, D>
2050 for &WlanFullmacImplIfcOnChannelSwitchRequest
2051 {
2052 #[inline]
2053 unsafe fn encode(
2054 self,
2055 encoder: &mut fidl::encoding::Encoder<'_, D>,
2056 offset: usize,
2057 _depth: fidl::encoding::Depth,
2058 ) -> fidl::Result<()> {
2059 encoder.debug_check_bounds::<WlanFullmacImplIfcOnChannelSwitchRequest>(offset);
2060 unsafe {
2061 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
2063 (buf_ptr as *mut WlanFullmacImplIfcOnChannelSwitchRequest).write_unaligned(
2064 (self as *const WlanFullmacImplIfcOnChannelSwitchRequest).read(),
2065 );
2066 }
2069 Ok(())
2070 }
2071 }
2072 unsafe impl<
2073 D: fidl::encoding::ResourceDialect,
2074 T0: fidl::encoding::Encode<WlanFullmacChannelSwitchInfo, D>,
2075 > fidl::encoding::Encode<WlanFullmacImplIfcOnChannelSwitchRequest, D> for (T0,)
2076 {
2077 #[inline]
2078 unsafe fn encode(
2079 self,
2080 encoder: &mut fidl::encoding::Encoder<'_, D>,
2081 offset: usize,
2082 depth: fidl::encoding::Depth,
2083 ) -> fidl::Result<()> {
2084 encoder.debug_check_bounds::<WlanFullmacImplIfcOnChannelSwitchRequest>(offset);
2085 self.0.encode(encoder, offset + 0, depth)?;
2089 Ok(())
2090 }
2091 }
2092
2093 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2094 for WlanFullmacImplIfcOnChannelSwitchRequest
2095 {
2096 #[inline(always)]
2097 fn new_empty() -> Self {
2098 Self { ind: fidl::new_empty!(WlanFullmacChannelSwitchInfo, D) }
2099 }
2100
2101 #[inline]
2102 unsafe fn decode(
2103 &mut self,
2104 decoder: &mut fidl::encoding::Decoder<'_, D>,
2105 offset: usize,
2106 _depth: fidl::encoding::Depth,
2107 ) -> fidl::Result<()> {
2108 decoder.debug_check_bounds::<Self>(offset);
2109 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
2110 unsafe {
2113 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 1);
2114 }
2115 Ok(())
2116 }
2117 }
2118
2119 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcOnWmmStatusRespRequest {
2120 type Borrowed<'a> = &'a Self;
2121 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2122 value
2123 }
2124 }
2125
2126 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcOnWmmStatusRespRequest {
2127 type Owned = Self;
2128
2129 #[inline(always)]
2130 fn inline_align(_context: fidl::encoding::Context) -> usize {
2131 4
2132 }
2133
2134 #[inline(always)]
2135 fn inline_size(_context: fidl::encoding::Context) -> usize {
2136 40
2137 }
2138 }
2139
2140 unsafe impl<D: fidl::encoding::ResourceDialect>
2141 fidl::encoding::Encode<WlanFullmacImplIfcOnWmmStatusRespRequest, D>
2142 for &WlanFullmacImplIfcOnWmmStatusRespRequest
2143 {
2144 #[inline]
2145 unsafe fn encode(
2146 self,
2147 encoder: &mut fidl::encoding::Encoder<'_, D>,
2148 offset: usize,
2149 _depth: fidl::encoding::Depth,
2150 ) -> fidl::Result<()> {
2151 encoder.debug_check_bounds::<WlanFullmacImplIfcOnWmmStatusRespRequest>(offset);
2152 fidl::encoding::Encode::<WlanFullmacImplIfcOnWmmStatusRespRequest, D>::encode(
2154 (
2155 <i32 as fidl::encoding::ValueTypeMarker>::borrow(&self.status),
2156 <fidl_fuchsia_wlan_driver_common::WlanWmmParameters as fidl::encoding::ValueTypeMarker>::borrow(&self.wmm_params),
2157 ),
2158 encoder, offset, _depth
2159 )
2160 }
2161 }
2162 unsafe impl<
2163 D: fidl::encoding::ResourceDialect,
2164 T0: fidl::encoding::Encode<i32, D>,
2165 T1: fidl::encoding::Encode<fidl_fuchsia_wlan_driver_common::WlanWmmParameters, D>,
2166 > fidl::encoding::Encode<WlanFullmacImplIfcOnWmmStatusRespRequest, D> for (T0, T1)
2167 {
2168 #[inline]
2169 unsafe fn encode(
2170 self,
2171 encoder: &mut fidl::encoding::Encoder<'_, D>,
2172 offset: usize,
2173 depth: fidl::encoding::Depth,
2174 ) -> fidl::Result<()> {
2175 encoder.debug_check_bounds::<WlanFullmacImplIfcOnWmmStatusRespRequest>(offset);
2176 unsafe {
2179 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(36);
2180 (ptr as *mut u32).write_unaligned(0);
2181 }
2182 self.0.encode(encoder, offset + 0, depth)?;
2184 self.1.encode(encoder, offset + 4, depth)?;
2185 Ok(())
2186 }
2187 }
2188
2189 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2190 for WlanFullmacImplIfcOnWmmStatusRespRequest
2191 {
2192 #[inline(always)]
2193 fn new_empty() -> Self {
2194 Self {
2195 status: fidl::new_empty!(i32, D),
2196 wmm_params: fidl::new_empty!(fidl_fuchsia_wlan_driver_common::WlanWmmParameters, D),
2197 }
2198 }
2199
2200 #[inline]
2201 unsafe fn decode(
2202 &mut self,
2203 decoder: &mut fidl::encoding::Decoder<'_, D>,
2204 offset: usize,
2205 _depth: fidl::encoding::Depth,
2206 ) -> fidl::Result<()> {
2207 decoder.debug_check_bounds::<Self>(offset);
2208 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(36) };
2210 let padval = unsafe { (ptr as *const u32).read_unaligned() };
2211 let mask = 0xffff0000u32;
2212 let maskedval = padval & mask;
2213 if maskedval != 0 {
2214 return Err(fidl::Error::NonZeroPadding {
2215 padding_start: offset + 36 + ((mask as u64).trailing_zeros() / 8) as usize,
2216 });
2217 }
2218 fidl::decode!(i32, D, &mut self.status, decoder, offset + 0, _depth)?;
2219 fidl::decode!(
2220 fidl_fuchsia_wlan_driver_common::WlanWmmParameters,
2221 D,
2222 &mut self.wmm_params,
2223 decoder,
2224 offset + 4,
2225 _depth
2226 )?;
2227 Ok(())
2228 }
2229 }
2230
2231 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcSaeFrameRxRequest {
2232 type Borrowed<'a> = &'a Self;
2233 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2234 value
2235 }
2236 }
2237
2238 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcSaeFrameRxRequest {
2239 type Owned = Self;
2240
2241 #[inline(always)]
2242 fn inline_align(_context: fidl::encoding::Context) -> usize {
2243 8
2244 }
2245
2246 #[inline(always)]
2247 fn inline_size(_context: fidl::encoding::Context) -> usize {
2248 16
2249 }
2250 }
2251
2252 unsafe impl<D: fidl::encoding::ResourceDialect>
2253 fidl::encoding::Encode<WlanFullmacImplIfcSaeFrameRxRequest, D>
2254 for &WlanFullmacImplIfcSaeFrameRxRequest
2255 {
2256 #[inline]
2257 unsafe fn encode(
2258 self,
2259 encoder: &mut fidl::encoding::Encoder<'_, D>,
2260 offset: usize,
2261 _depth: fidl::encoding::Depth,
2262 ) -> fidl::Result<()> {
2263 encoder.debug_check_bounds::<WlanFullmacImplIfcSaeFrameRxRequest>(offset);
2264 fidl::encoding::Encode::<WlanFullmacImplIfcSaeFrameRxRequest, D>::encode(
2266 (<SaeFrame as fidl::encoding::ValueTypeMarker>::borrow(&self.frame),),
2267 encoder,
2268 offset,
2269 _depth,
2270 )
2271 }
2272 }
2273 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<SaeFrame, D>>
2274 fidl::encoding::Encode<WlanFullmacImplIfcSaeFrameRxRequest, D> for (T0,)
2275 {
2276 #[inline]
2277 unsafe fn encode(
2278 self,
2279 encoder: &mut fidl::encoding::Encoder<'_, D>,
2280 offset: usize,
2281 depth: fidl::encoding::Depth,
2282 ) -> fidl::Result<()> {
2283 encoder.debug_check_bounds::<WlanFullmacImplIfcSaeFrameRxRequest>(offset);
2284 self.0.encode(encoder, offset + 0, depth)?;
2288 Ok(())
2289 }
2290 }
2291
2292 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2293 for WlanFullmacImplIfcSaeFrameRxRequest
2294 {
2295 #[inline(always)]
2296 fn new_empty() -> Self {
2297 Self { frame: fidl::new_empty!(SaeFrame, D) }
2298 }
2299
2300 #[inline]
2301 unsafe fn decode(
2302 &mut self,
2303 decoder: &mut fidl::encoding::Decoder<'_, D>,
2304 offset: usize,
2305 _depth: fidl::encoding::Depth,
2306 ) -> fidl::Result<()> {
2307 decoder.debug_check_bounds::<Self>(offset);
2308 fidl::decode!(SaeFrame, D, &mut self.frame, decoder, offset + 0, _depth)?;
2310 Ok(())
2311 }
2312 }
2313
2314 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcSignalReportRequest {
2315 type Borrowed<'a> = &'a Self;
2316 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2317 value
2318 }
2319 }
2320
2321 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcSignalReportRequest {
2322 type Owned = Self;
2323
2324 #[inline(always)]
2325 fn inline_align(_context: fidl::encoding::Context) -> usize {
2326 1
2327 }
2328
2329 #[inline(always)]
2330 fn inline_size(_context: fidl::encoding::Context) -> usize {
2331 2
2332 }
2333 #[inline(always)]
2334 fn encode_is_copy() -> bool {
2335 true
2336 }
2337
2338 #[inline(always)]
2339 fn decode_is_copy() -> bool {
2340 true
2341 }
2342 }
2343
2344 unsafe impl<D: fidl::encoding::ResourceDialect>
2345 fidl::encoding::Encode<WlanFullmacImplIfcSignalReportRequest, D>
2346 for &WlanFullmacImplIfcSignalReportRequest
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::<WlanFullmacImplIfcSignalReportRequest>(offset);
2356 unsafe {
2357 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
2359 (buf_ptr as *mut WlanFullmacImplIfcSignalReportRequest)
2360 .write_unaligned((self as *const WlanFullmacImplIfcSignalReportRequest).read());
2361 }
2364 Ok(())
2365 }
2366 }
2367 unsafe impl<
2368 D: fidl::encoding::ResourceDialect,
2369 T0: fidl::encoding::Encode<WlanFullmacSignalReportIndication, D>,
2370 > fidl::encoding::Encode<WlanFullmacImplIfcSignalReportRequest, D> for (T0,)
2371 {
2372 #[inline]
2373 unsafe fn encode(
2374 self,
2375 encoder: &mut fidl::encoding::Encoder<'_, D>,
2376 offset: usize,
2377 depth: fidl::encoding::Depth,
2378 ) -> fidl::Result<()> {
2379 encoder.debug_check_bounds::<WlanFullmacImplIfcSignalReportRequest>(offset);
2380 self.0.encode(encoder, offset + 0, depth)?;
2384 Ok(())
2385 }
2386 }
2387
2388 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2389 for WlanFullmacImplIfcSignalReportRequest
2390 {
2391 #[inline(always)]
2392 fn new_empty() -> Self {
2393 Self { ind: fidl::new_empty!(WlanFullmacSignalReportIndication, D) }
2394 }
2395
2396 #[inline]
2397 unsafe fn decode(
2398 &mut self,
2399 decoder: &mut fidl::encoding::Decoder<'_, D>,
2400 offset: usize,
2401 _depth: fidl::encoding::Depth,
2402 ) -> fidl::Result<()> {
2403 decoder.debug_check_bounds::<Self>(offset);
2404 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
2405 unsafe {
2408 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 2);
2409 }
2410 Ok(())
2411 }
2412 }
2413
2414 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplSaeFrameTxRequest {
2415 type Borrowed<'a> = &'a Self;
2416 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2417 value
2418 }
2419 }
2420
2421 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplSaeFrameTxRequest {
2422 type Owned = Self;
2423
2424 #[inline(always)]
2425 fn inline_align(_context: fidl::encoding::Context) -> usize {
2426 8
2427 }
2428
2429 #[inline(always)]
2430 fn inline_size(_context: fidl::encoding::Context) -> usize {
2431 16
2432 }
2433 }
2434
2435 unsafe impl<D: fidl::encoding::ResourceDialect>
2436 fidl::encoding::Encode<WlanFullmacImplSaeFrameTxRequest, D>
2437 for &WlanFullmacImplSaeFrameTxRequest
2438 {
2439 #[inline]
2440 unsafe fn encode(
2441 self,
2442 encoder: &mut fidl::encoding::Encoder<'_, D>,
2443 offset: usize,
2444 _depth: fidl::encoding::Depth,
2445 ) -> fidl::Result<()> {
2446 encoder.debug_check_bounds::<WlanFullmacImplSaeFrameTxRequest>(offset);
2447 fidl::encoding::Encode::<WlanFullmacImplSaeFrameTxRequest, D>::encode(
2449 (<SaeFrame as fidl::encoding::ValueTypeMarker>::borrow(&self.frame),),
2450 encoder,
2451 offset,
2452 _depth,
2453 )
2454 }
2455 }
2456 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<SaeFrame, D>>
2457 fidl::encoding::Encode<WlanFullmacImplSaeFrameTxRequest, D> for (T0,)
2458 {
2459 #[inline]
2460 unsafe fn encode(
2461 self,
2462 encoder: &mut fidl::encoding::Encoder<'_, D>,
2463 offset: usize,
2464 depth: fidl::encoding::Depth,
2465 ) -> fidl::Result<()> {
2466 encoder.debug_check_bounds::<WlanFullmacImplSaeFrameTxRequest>(offset);
2467 self.0.encode(encoder, offset + 0, depth)?;
2471 Ok(())
2472 }
2473 }
2474
2475 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2476 for WlanFullmacImplSaeFrameTxRequest
2477 {
2478 #[inline(always)]
2479 fn new_empty() -> Self {
2480 Self { frame: fidl::new_empty!(SaeFrame, D) }
2481 }
2482
2483 #[inline]
2484 unsafe fn decode(
2485 &mut self,
2486 decoder: &mut fidl::encoding::Decoder<'_, D>,
2487 offset: usize,
2488 _depth: fidl::encoding::Depth,
2489 ) -> fidl::Result<()> {
2490 decoder.debug_check_bounds::<Self>(offset);
2491 fidl::decode!(SaeFrame, D, &mut self.frame, decoder, offset + 0, _depth)?;
2493 Ok(())
2494 }
2495 }
2496
2497 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplSetKeysResponse {
2498 type Borrowed<'a> = &'a Self;
2499 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2500 value
2501 }
2502 }
2503
2504 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplSetKeysResponse {
2505 type Owned = Self;
2506
2507 #[inline(always)]
2508 fn inline_align(_context: fidl::encoding::Context) -> usize {
2509 8
2510 }
2511
2512 #[inline(always)]
2513 fn inline_size(_context: fidl::encoding::Context) -> usize {
2514 16
2515 }
2516 }
2517
2518 unsafe impl<D: fidl::encoding::ResourceDialect>
2519 fidl::encoding::Encode<WlanFullmacImplSetKeysResponse, D>
2520 for &WlanFullmacImplSetKeysResponse
2521 {
2522 #[inline]
2523 unsafe fn encode(
2524 self,
2525 encoder: &mut fidl::encoding::Encoder<'_, D>,
2526 offset: usize,
2527 _depth: fidl::encoding::Depth,
2528 ) -> fidl::Result<()> {
2529 encoder.debug_check_bounds::<WlanFullmacImplSetKeysResponse>(offset);
2530 fidl::encoding::Encode::<WlanFullmacImplSetKeysResponse, D>::encode(
2532 (<WlanFullmacSetKeysResp as fidl::encoding::ValueTypeMarker>::borrow(&self.resp),),
2533 encoder,
2534 offset,
2535 _depth,
2536 )
2537 }
2538 }
2539 unsafe impl<
2540 D: fidl::encoding::ResourceDialect,
2541 T0: fidl::encoding::Encode<WlanFullmacSetKeysResp, D>,
2542 > fidl::encoding::Encode<WlanFullmacImplSetKeysResponse, D> for (T0,)
2543 {
2544 #[inline]
2545 unsafe fn encode(
2546 self,
2547 encoder: &mut fidl::encoding::Encoder<'_, D>,
2548 offset: usize,
2549 depth: fidl::encoding::Depth,
2550 ) -> fidl::Result<()> {
2551 encoder.debug_check_bounds::<WlanFullmacImplSetKeysResponse>(offset);
2552 self.0.encode(encoder, offset + 0, depth)?;
2556 Ok(())
2557 }
2558 }
2559
2560 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2561 for WlanFullmacImplSetKeysResponse
2562 {
2563 #[inline(always)]
2564 fn new_empty() -> Self {
2565 Self { resp: fidl::new_empty!(WlanFullmacSetKeysResp, D) }
2566 }
2567
2568 #[inline]
2569 unsafe fn decode(
2570 &mut self,
2571 decoder: &mut fidl::encoding::Decoder<'_, D>,
2572 offset: usize,
2573 _depth: fidl::encoding::Depth,
2574 ) -> fidl::Result<()> {
2575 decoder.debug_check_bounds::<Self>(offset);
2576 fidl::decode!(WlanFullmacSetKeysResp, D, &mut self.resp, decoder, offset + 0, _depth)?;
2578 Ok(())
2579 }
2580 }
2581
2582 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplSetMacAddressRequest {
2583 type Borrowed<'a> = &'a Self;
2584 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2585 value
2586 }
2587 }
2588
2589 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplSetMacAddressRequest {
2590 type Owned = Self;
2591
2592 #[inline(always)]
2593 fn inline_align(_context: fidl::encoding::Context) -> usize {
2594 1
2595 }
2596
2597 #[inline(always)]
2598 fn inline_size(_context: fidl::encoding::Context) -> usize {
2599 6
2600 }
2601 #[inline(always)]
2602 fn encode_is_copy() -> bool {
2603 true
2604 }
2605
2606 #[inline(always)]
2607 fn decode_is_copy() -> bool {
2608 true
2609 }
2610 }
2611
2612 unsafe impl<D: fidl::encoding::ResourceDialect>
2613 fidl::encoding::Encode<WlanFullmacImplSetMacAddressRequest, D>
2614 for &WlanFullmacImplSetMacAddressRequest
2615 {
2616 #[inline]
2617 unsafe fn encode(
2618 self,
2619 encoder: &mut fidl::encoding::Encoder<'_, D>,
2620 offset: usize,
2621 _depth: fidl::encoding::Depth,
2622 ) -> fidl::Result<()> {
2623 encoder.debug_check_bounds::<WlanFullmacImplSetMacAddressRequest>(offset);
2624 unsafe {
2625 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
2627 (buf_ptr as *mut WlanFullmacImplSetMacAddressRequest)
2628 .write_unaligned((self as *const WlanFullmacImplSetMacAddressRequest).read());
2629 }
2632 Ok(())
2633 }
2634 }
2635 unsafe impl<
2636 D: fidl::encoding::ResourceDialect,
2637 T0: fidl::encoding::Encode<fidl::encoding::Array<u8, 6>, D>,
2638 > fidl::encoding::Encode<WlanFullmacImplSetMacAddressRequest, D> for (T0,)
2639 {
2640 #[inline]
2641 unsafe fn encode(
2642 self,
2643 encoder: &mut fidl::encoding::Encoder<'_, D>,
2644 offset: usize,
2645 depth: fidl::encoding::Depth,
2646 ) -> fidl::Result<()> {
2647 encoder.debug_check_bounds::<WlanFullmacImplSetMacAddressRequest>(offset);
2648 self.0.encode(encoder, offset + 0, depth)?;
2652 Ok(())
2653 }
2654 }
2655
2656 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2657 for WlanFullmacImplSetMacAddressRequest
2658 {
2659 #[inline(always)]
2660 fn new_empty() -> Self {
2661 Self { mac_addr: fidl::new_empty!(fidl::encoding::Array<u8, 6>, D) }
2662 }
2663
2664 #[inline]
2665 unsafe fn decode(
2666 &mut self,
2667 decoder: &mut fidl::encoding::Decoder<'_, D>,
2668 offset: usize,
2669 _depth: fidl::encoding::Depth,
2670 ) -> fidl::Result<()> {
2671 decoder.debug_check_bounds::<Self>(offset);
2672 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
2673 unsafe {
2676 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 6);
2677 }
2678 Ok(())
2679 }
2680 }
2681
2682 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplGetIfaceHistogramStatsResponse {
2683 type Borrowed<'a> = &'a Self;
2684 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2685 value
2686 }
2687 }
2688
2689 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplGetIfaceHistogramStatsResponse {
2690 type Owned = Self;
2691
2692 #[inline(always)]
2693 fn inline_align(_context: fidl::encoding::Context) -> usize {
2694 8
2695 }
2696
2697 #[inline(always)]
2698 fn inline_size(_context: fidl::encoding::Context) -> usize {
2699 16
2700 }
2701 }
2702
2703 unsafe impl<D: fidl::encoding::ResourceDialect>
2704 fidl::encoding::Encode<WlanFullmacImplGetIfaceHistogramStatsResponse, D>
2705 for &WlanFullmacImplGetIfaceHistogramStatsResponse
2706 {
2707 #[inline]
2708 unsafe fn encode(
2709 self,
2710 encoder: &mut fidl::encoding::Encoder<'_, D>,
2711 offset: usize,
2712 _depth: fidl::encoding::Depth,
2713 ) -> fidl::Result<()> {
2714 encoder.debug_check_bounds::<WlanFullmacImplGetIfaceHistogramStatsResponse>(offset);
2715 fidl::encoding::Encode::<WlanFullmacImplGetIfaceHistogramStatsResponse, D>::encode(
2717 (
2718 <fidl_fuchsia_wlan_stats_common::IfaceHistogramStats as fidl::encoding::ValueTypeMarker>::borrow(&self.stats),
2719 ),
2720 encoder, offset, _depth
2721 )
2722 }
2723 }
2724 unsafe impl<
2725 D: fidl::encoding::ResourceDialect,
2726 T0: fidl::encoding::Encode<fidl_fuchsia_wlan_stats_common::IfaceHistogramStats, D>,
2727 > fidl::encoding::Encode<WlanFullmacImplGetIfaceHistogramStatsResponse, D> for (T0,)
2728 {
2729 #[inline]
2730 unsafe fn encode(
2731 self,
2732 encoder: &mut fidl::encoding::Encoder<'_, D>,
2733 offset: usize,
2734 depth: fidl::encoding::Depth,
2735 ) -> fidl::Result<()> {
2736 encoder.debug_check_bounds::<WlanFullmacImplGetIfaceHistogramStatsResponse>(offset);
2737 self.0.encode(encoder, offset + 0, depth)?;
2741 Ok(())
2742 }
2743 }
2744
2745 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2746 for WlanFullmacImplGetIfaceHistogramStatsResponse
2747 {
2748 #[inline(always)]
2749 fn new_empty() -> Self {
2750 Self { stats: fidl::new_empty!(fidl_fuchsia_wlan_stats_common::IfaceHistogramStats, D) }
2751 }
2752
2753 #[inline]
2754 unsafe fn decode(
2755 &mut self,
2756 decoder: &mut fidl::encoding::Decoder<'_, D>,
2757 offset: usize,
2758 _depth: fidl::encoding::Depth,
2759 ) -> fidl::Result<()> {
2760 decoder.debug_check_bounds::<Self>(offset);
2761 fidl::decode!(
2763 fidl_fuchsia_wlan_stats_common::IfaceHistogramStats,
2764 D,
2765 &mut self.stats,
2766 decoder,
2767 offset + 0,
2768 _depth
2769 )?;
2770 Ok(())
2771 }
2772 }
2773
2774 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplGetIfaceStatsResponse {
2775 type Borrowed<'a> = &'a Self;
2776 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2777 value
2778 }
2779 }
2780
2781 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplGetIfaceStatsResponse {
2782 type Owned = Self;
2783
2784 #[inline(always)]
2785 fn inline_align(_context: fidl::encoding::Context) -> usize {
2786 8
2787 }
2788
2789 #[inline(always)]
2790 fn inline_size(_context: fidl::encoding::Context) -> usize {
2791 16
2792 }
2793 }
2794
2795 unsafe impl<D: fidl::encoding::ResourceDialect>
2796 fidl::encoding::Encode<WlanFullmacImplGetIfaceStatsResponse, D>
2797 for &WlanFullmacImplGetIfaceStatsResponse
2798 {
2799 #[inline]
2800 unsafe fn encode(
2801 self,
2802 encoder: &mut fidl::encoding::Encoder<'_, D>,
2803 offset: usize,
2804 _depth: fidl::encoding::Depth,
2805 ) -> fidl::Result<()> {
2806 encoder.debug_check_bounds::<WlanFullmacImplGetIfaceStatsResponse>(offset);
2807 fidl::encoding::Encode::<WlanFullmacImplGetIfaceStatsResponse, D>::encode(
2809 (
2810 <fidl_fuchsia_wlan_stats_common::IfaceStats as fidl::encoding::ValueTypeMarker>::borrow(&self.stats),
2811 ),
2812 encoder, offset, _depth
2813 )
2814 }
2815 }
2816 unsafe impl<
2817 D: fidl::encoding::ResourceDialect,
2818 T0: fidl::encoding::Encode<fidl_fuchsia_wlan_stats_common::IfaceStats, D>,
2819 > fidl::encoding::Encode<WlanFullmacImplGetIfaceStatsResponse, D> for (T0,)
2820 {
2821 #[inline]
2822 unsafe fn encode(
2823 self,
2824 encoder: &mut fidl::encoding::Encoder<'_, D>,
2825 offset: usize,
2826 depth: fidl::encoding::Depth,
2827 ) -> fidl::Result<()> {
2828 encoder.debug_check_bounds::<WlanFullmacImplGetIfaceStatsResponse>(offset);
2829 self.0.encode(encoder, offset + 0, depth)?;
2833 Ok(())
2834 }
2835 }
2836
2837 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2838 for WlanFullmacImplGetIfaceStatsResponse
2839 {
2840 #[inline(always)]
2841 fn new_empty() -> Self {
2842 Self { stats: fidl::new_empty!(fidl_fuchsia_wlan_stats_common::IfaceStats, D) }
2843 }
2844
2845 #[inline]
2846 unsafe fn decode(
2847 &mut self,
2848 decoder: &mut fidl::encoding::Decoder<'_, D>,
2849 offset: usize,
2850 _depth: fidl::encoding::Depth,
2851 ) -> fidl::Result<()> {
2852 decoder.debug_check_bounds::<Self>(offset);
2853 fidl::decode!(
2855 fidl_fuchsia_wlan_stats_common::IfaceStats,
2856 D,
2857 &mut self.stats,
2858 decoder,
2859 offset + 0,
2860 _depth
2861 )?;
2862 Ok(())
2863 }
2864 }
2865
2866 impl fidl::encoding::ValueTypeMarker for WlanFullmacRssiStats {
2867 type Borrowed<'a> = &'a Self;
2868 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2869 value
2870 }
2871 }
2872
2873 unsafe impl fidl::encoding::TypeMarker for WlanFullmacRssiStats {
2874 type Owned = Self;
2875
2876 #[inline(always)]
2877 fn inline_align(_context: fidl::encoding::Context) -> usize {
2878 8
2879 }
2880
2881 #[inline(always)]
2882 fn inline_size(_context: fidl::encoding::Context) -> usize {
2883 16
2884 }
2885 }
2886
2887 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<WlanFullmacRssiStats, D>
2888 for &WlanFullmacRssiStats
2889 {
2890 #[inline]
2891 unsafe fn encode(
2892 self,
2893 encoder: &mut fidl::encoding::Encoder<'_, D>,
2894 offset: usize,
2895 _depth: fidl::encoding::Depth,
2896 ) -> fidl::Result<()> {
2897 encoder.debug_check_bounds::<WlanFullmacRssiStats>(offset);
2898 fidl::encoding::Encode::<WlanFullmacRssiStats, D>::encode(
2900 (
2901 <fidl::encoding::UnboundedVector<u64> as fidl::encoding::ValueTypeMarker>::borrow(&self.hist),
2902 ),
2903 encoder, offset, _depth
2904 )
2905 }
2906 }
2907 unsafe impl<
2908 D: fidl::encoding::ResourceDialect,
2909 T0: fidl::encoding::Encode<fidl::encoding::UnboundedVector<u64>, D>,
2910 > fidl::encoding::Encode<WlanFullmacRssiStats, D> for (T0,)
2911 {
2912 #[inline]
2913 unsafe fn encode(
2914 self,
2915 encoder: &mut fidl::encoding::Encoder<'_, D>,
2916 offset: usize,
2917 depth: fidl::encoding::Depth,
2918 ) -> fidl::Result<()> {
2919 encoder.debug_check_bounds::<WlanFullmacRssiStats>(offset);
2920 self.0.encode(encoder, offset + 0, depth)?;
2924 Ok(())
2925 }
2926 }
2927
2928 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for WlanFullmacRssiStats {
2929 #[inline(always)]
2930 fn new_empty() -> Self {
2931 Self { hist: fidl::new_empty!(fidl::encoding::UnboundedVector<u64>, D) }
2932 }
2933
2934 #[inline]
2935 unsafe fn decode(
2936 &mut self,
2937 decoder: &mut fidl::encoding::Decoder<'_, D>,
2938 offset: usize,
2939 _depth: fidl::encoding::Depth,
2940 ) -> fidl::Result<()> {
2941 decoder.debug_check_bounds::<Self>(offset);
2942 fidl::decode!(
2944 fidl::encoding::UnboundedVector<u64>,
2945 D,
2946 &mut self.hist,
2947 decoder,
2948 offset + 0,
2949 _depth
2950 )?;
2951 Ok(())
2952 }
2953 }
2954
2955 impl fidl::encoding::ValueTypeMarker for WlanFullmacSetKeysResp {
2956 type Borrowed<'a> = &'a Self;
2957 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2958 value
2959 }
2960 }
2961
2962 unsafe impl fidl::encoding::TypeMarker for WlanFullmacSetKeysResp {
2963 type Owned = Self;
2964
2965 #[inline(always)]
2966 fn inline_align(_context: fidl::encoding::Context) -> usize {
2967 8
2968 }
2969
2970 #[inline(always)]
2971 fn inline_size(_context: fidl::encoding::Context) -> usize {
2972 16
2973 }
2974 }
2975
2976 unsafe impl<D: fidl::encoding::ResourceDialect>
2977 fidl::encoding::Encode<WlanFullmacSetKeysResp, D> for &WlanFullmacSetKeysResp
2978 {
2979 #[inline]
2980 unsafe fn encode(
2981 self,
2982 encoder: &mut fidl::encoding::Encoder<'_, D>,
2983 offset: usize,
2984 _depth: fidl::encoding::Depth,
2985 ) -> fidl::Result<()> {
2986 encoder.debug_check_bounds::<WlanFullmacSetKeysResp>(offset);
2987 fidl::encoding::Encode::<WlanFullmacSetKeysResp, D>::encode(
2989 (<fidl::encoding::Vector<i32, 4> as fidl::encoding::ValueTypeMarker>::borrow(
2990 &self.statuslist,
2991 ),),
2992 encoder,
2993 offset,
2994 _depth,
2995 )
2996 }
2997 }
2998 unsafe impl<
2999 D: fidl::encoding::ResourceDialect,
3000 T0: fidl::encoding::Encode<fidl::encoding::Vector<i32, 4>, D>,
3001 > fidl::encoding::Encode<WlanFullmacSetKeysResp, D> for (T0,)
3002 {
3003 #[inline]
3004 unsafe fn encode(
3005 self,
3006 encoder: &mut fidl::encoding::Encoder<'_, D>,
3007 offset: usize,
3008 depth: fidl::encoding::Depth,
3009 ) -> fidl::Result<()> {
3010 encoder.debug_check_bounds::<WlanFullmacSetKeysResp>(offset);
3011 self.0.encode(encoder, offset + 0, depth)?;
3015 Ok(())
3016 }
3017 }
3018
3019 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
3020 for WlanFullmacSetKeysResp
3021 {
3022 #[inline(always)]
3023 fn new_empty() -> Self {
3024 Self { statuslist: fidl::new_empty!(fidl::encoding::Vector<i32, 4>, D) }
3025 }
3026
3027 #[inline]
3028 unsafe fn decode(
3029 &mut self,
3030 decoder: &mut fidl::encoding::Decoder<'_, D>,
3031 offset: usize,
3032 _depth: fidl::encoding::Depth,
3033 ) -> fidl::Result<()> {
3034 decoder.debug_check_bounds::<Self>(offset);
3035 fidl::decode!(fidl::encoding::Vector<i32, 4>, D, &mut self.statuslist, decoder, offset + 0, _depth)?;
3037 Ok(())
3038 }
3039 }
3040
3041 impl fidl::encoding::ValueTypeMarker for WlanFullmacSignalReportIndication {
3042 type Borrowed<'a> = &'a Self;
3043 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3044 value
3045 }
3046 }
3047
3048 unsafe impl fidl::encoding::TypeMarker for WlanFullmacSignalReportIndication {
3049 type Owned = Self;
3050
3051 #[inline(always)]
3052 fn inline_align(_context: fidl::encoding::Context) -> usize {
3053 1
3054 }
3055
3056 #[inline(always)]
3057 fn inline_size(_context: fidl::encoding::Context) -> usize {
3058 2
3059 }
3060 #[inline(always)]
3061 fn encode_is_copy() -> bool {
3062 true
3063 }
3064
3065 #[inline(always)]
3066 fn decode_is_copy() -> bool {
3067 true
3068 }
3069 }
3070
3071 unsafe impl<D: fidl::encoding::ResourceDialect>
3072 fidl::encoding::Encode<WlanFullmacSignalReportIndication, D>
3073 for &WlanFullmacSignalReportIndication
3074 {
3075 #[inline]
3076 unsafe fn encode(
3077 self,
3078 encoder: &mut fidl::encoding::Encoder<'_, D>,
3079 offset: usize,
3080 _depth: fidl::encoding::Depth,
3081 ) -> fidl::Result<()> {
3082 encoder.debug_check_bounds::<WlanFullmacSignalReportIndication>(offset);
3083 unsafe {
3084 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
3086 (buf_ptr as *mut WlanFullmacSignalReportIndication)
3087 .write_unaligned((self as *const WlanFullmacSignalReportIndication).read());
3088 }
3091 Ok(())
3092 }
3093 }
3094 unsafe impl<
3095 D: fidl::encoding::ResourceDialect,
3096 T0: fidl::encoding::Encode<i8, D>,
3097 T1: fidl::encoding::Encode<i8, D>,
3098 > fidl::encoding::Encode<WlanFullmacSignalReportIndication, D> for (T0, T1)
3099 {
3100 #[inline]
3101 unsafe fn encode(
3102 self,
3103 encoder: &mut fidl::encoding::Encoder<'_, D>,
3104 offset: usize,
3105 depth: fidl::encoding::Depth,
3106 ) -> fidl::Result<()> {
3107 encoder.debug_check_bounds::<WlanFullmacSignalReportIndication>(offset);
3108 self.0.encode(encoder, offset + 0, depth)?;
3112 self.1.encode(encoder, offset + 1, depth)?;
3113 Ok(())
3114 }
3115 }
3116
3117 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
3118 for WlanFullmacSignalReportIndication
3119 {
3120 #[inline(always)]
3121 fn new_empty() -> Self {
3122 Self { rssi_dbm: fidl::new_empty!(i8, D), snr_db: fidl::new_empty!(i8, D) }
3123 }
3124
3125 #[inline]
3126 unsafe fn decode(
3127 &mut self,
3128 decoder: &mut fidl::encoding::Decoder<'_, D>,
3129 offset: usize,
3130 _depth: fidl::encoding::Depth,
3131 ) -> fidl::Result<()> {
3132 decoder.debug_check_bounds::<Self>(offset);
3133 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
3134 unsafe {
3137 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 2);
3138 }
3139 Ok(())
3140 }
3141 }
3142
3143 impl BandCapability {
3144 #[inline(always)]
3145 fn max_ordinal_present(&self) -> u64 {
3146 if let Some(_) = self.operating_channels {
3147 return 5;
3148 }
3149 if let Some(_) = self.vht_caps {
3150 return 4;
3151 }
3152 if let Some(_) = self.ht_caps {
3153 return 3;
3154 }
3155 if let Some(_) = self.basic_rates {
3156 return 2;
3157 }
3158 if let Some(_) = self.band {
3159 return 1;
3160 }
3161 0
3162 }
3163 }
3164
3165 impl fidl::encoding::ValueTypeMarker for BandCapability {
3166 type Borrowed<'a> = &'a Self;
3167 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3168 value
3169 }
3170 }
3171
3172 unsafe impl fidl::encoding::TypeMarker for BandCapability {
3173 type Owned = Self;
3174
3175 #[inline(always)]
3176 fn inline_align(_context: fidl::encoding::Context) -> usize {
3177 8
3178 }
3179
3180 #[inline(always)]
3181 fn inline_size(_context: fidl::encoding::Context) -> usize {
3182 16
3183 }
3184 }
3185
3186 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<BandCapability, D>
3187 for &BandCapability
3188 {
3189 unsafe fn encode(
3190 self,
3191 encoder: &mut fidl::encoding::Encoder<'_, D>,
3192 offset: usize,
3193 mut depth: fidl::encoding::Depth,
3194 ) -> fidl::Result<()> {
3195 encoder.debug_check_bounds::<BandCapability>(offset);
3196 let max_ordinal: u64 = self.max_ordinal_present();
3198 encoder.write_num(max_ordinal, offset);
3199 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
3200 if max_ordinal == 0 {
3202 return Ok(());
3203 }
3204 depth.increment()?;
3205 let envelope_size = 8;
3206 let bytes_len = max_ordinal as usize * envelope_size;
3207 #[allow(unused_variables)]
3208 let offset = encoder.out_of_line_offset(bytes_len);
3209 let mut _prev_end_offset: usize = 0;
3210 if 1 > max_ordinal {
3211 return Ok(());
3212 }
3213
3214 let cur_offset: usize = (1 - 1) * envelope_size;
3217
3218 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3220
3221 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_ieee80211_common::WlanBand, D>(
3226 self.band.as_ref().map(<fidl_fuchsia_wlan_ieee80211_common::WlanBand as fidl::encoding::ValueTypeMarker>::borrow),
3227 encoder, offset + cur_offset, depth
3228 )?;
3229
3230 _prev_end_offset = cur_offset + envelope_size;
3231 if 2 > max_ordinal {
3232 return Ok(());
3233 }
3234
3235 let cur_offset: usize = (2 - 1) * envelope_size;
3238
3239 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3241
3242 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<u8, 12>, D>(
3247 self.basic_rates.as_ref().map(
3248 <fidl::encoding::Vector<u8, 12> as fidl::encoding::ValueTypeMarker>::borrow,
3249 ),
3250 encoder,
3251 offset + cur_offset,
3252 depth,
3253 )?;
3254
3255 _prev_end_offset = cur_offset + envelope_size;
3256 if 3 > max_ordinal {
3257 return Ok(());
3258 }
3259
3260 let cur_offset: usize = (3 - 1) * envelope_size;
3263
3264 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3266
3267 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_ieee80211_common::HtCapabilities, D>(
3272 self.ht_caps.as_ref().map(<fidl_fuchsia_wlan_ieee80211_common::HtCapabilities as fidl::encoding::ValueTypeMarker>::borrow),
3273 encoder, offset + cur_offset, depth
3274 )?;
3275
3276 _prev_end_offset = cur_offset + envelope_size;
3277 if 4 > max_ordinal {
3278 return Ok(());
3279 }
3280
3281 let cur_offset: usize = (4 - 1) * envelope_size;
3284
3285 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3287
3288 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_ieee80211_common::VhtCapabilities, D>(
3293 self.vht_caps.as_ref().map(<fidl_fuchsia_wlan_ieee80211_common::VhtCapabilities as fidl::encoding::ValueTypeMarker>::borrow),
3294 encoder, offset + cur_offset, depth
3295 )?;
3296
3297 _prev_end_offset = cur_offset + envelope_size;
3298 if 5 > max_ordinal {
3299 return Ok(());
3300 }
3301
3302 let cur_offset: usize = (5 - 1) * envelope_size;
3305
3306 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3308
3309 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<u8, 256>, D>(
3314 self.operating_channels.as_ref().map(
3315 <fidl::encoding::Vector<u8, 256> as fidl::encoding::ValueTypeMarker>::borrow,
3316 ),
3317 encoder,
3318 offset + cur_offset,
3319 depth,
3320 )?;
3321
3322 _prev_end_offset = cur_offset + envelope_size;
3323
3324 Ok(())
3325 }
3326 }
3327
3328 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for BandCapability {
3329 #[inline(always)]
3330 fn new_empty() -> Self {
3331 Self::default()
3332 }
3333
3334 unsafe fn decode(
3335 &mut self,
3336 decoder: &mut fidl::encoding::Decoder<'_, D>,
3337 offset: usize,
3338 mut depth: fidl::encoding::Depth,
3339 ) -> fidl::Result<()> {
3340 decoder.debug_check_bounds::<Self>(offset);
3341 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
3342 None => return Err(fidl::Error::NotNullable),
3343 Some(len) => len,
3344 };
3345 if len == 0 {
3347 return Ok(());
3348 };
3349 depth.increment()?;
3350 let envelope_size = 8;
3351 let bytes_len = len * envelope_size;
3352 let offset = decoder.out_of_line_offset(bytes_len)?;
3353 let mut _next_ordinal_to_read = 0;
3355 let mut next_offset = offset;
3356 let end_offset = offset + bytes_len;
3357 _next_ordinal_to_read += 1;
3358 if next_offset >= end_offset {
3359 return Ok(());
3360 }
3361
3362 while _next_ordinal_to_read < 1 {
3364 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3365 _next_ordinal_to_read += 1;
3366 next_offset += envelope_size;
3367 }
3368
3369 let next_out_of_line = decoder.next_out_of_line();
3370 let handles_before = decoder.remaining_handles();
3371 if let Some((inlined, num_bytes, num_handles)) =
3372 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3373 {
3374 let member_inline_size = <fidl_fuchsia_wlan_ieee80211_common::WlanBand as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3375 if inlined != (member_inline_size <= 4) {
3376 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3377 }
3378 let inner_offset;
3379 let mut inner_depth = depth.clone();
3380 if inlined {
3381 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3382 inner_offset = next_offset;
3383 } else {
3384 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3385 inner_depth.increment()?;
3386 }
3387 let val_ref = self.band.get_or_insert_with(|| {
3388 fidl::new_empty!(fidl_fuchsia_wlan_ieee80211_common::WlanBand, D)
3389 });
3390 fidl::decode!(
3391 fidl_fuchsia_wlan_ieee80211_common::WlanBand,
3392 D,
3393 val_ref,
3394 decoder,
3395 inner_offset,
3396 inner_depth
3397 )?;
3398 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3399 {
3400 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3401 }
3402 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3403 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3404 }
3405 }
3406
3407 next_offset += envelope_size;
3408 _next_ordinal_to_read += 1;
3409 if next_offset >= end_offset {
3410 return Ok(());
3411 }
3412
3413 while _next_ordinal_to_read < 2 {
3415 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3416 _next_ordinal_to_read += 1;
3417 next_offset += envelope_size;
3418 }
3419
3420 let next_out_of_line = decoder.next_out_of_line();
3421 let handles_before = decoder.remaining_handles();
3422 if let Some((inlined, num_bytes, num_handles)) =
3423 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3424 {
3425 let member_inline_size =
3426 <fidl::encoding::Vector<u8, 12> as fidl::encoding::TypeMarker>::inline_size(
3427 decoder.context,
3428 );
3429 if inlined != (member_inline_size <= 4) {
3430 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3431 }
3432 let inner_offset;
3433 let mut inner_depth = depth.clone();
3434 if inlined {
3435 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3436 inner_offset = next_offset;
3437 } else {
3438 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3439 inner_depth.increment()?;
3440 }
3441 let val_ref = self
3442 .basic_rates
3443 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<u8, 12>, D));
3444 fidl::decode!(fidl::encoding::Vector<u8, 12>, D, val_ref, decoder, inner_offset, inner_depth)?;
3445 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3446 {
3447 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3448 }
3449 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3450 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3451 }
3452 }
3453
3454 next_offset += envelope_size;
3455 _next_ordinal_to_read += 1;
3456 if next_offset >= end_offset {
3457 return Ok(());
3458 }
3459
3460 while _next_ordinal_to_read < 3 {
3462 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3463 _next_ordinal_to_read += 1;
3464 next_offset += envelope_size;
3465 }
3466
3467 let next_out_of_line = decoder.next_out_of_line();
3468 let handles_before = decoder.remaining_handles();
3469 if let Some((inlined, num_bytes, num_handles)) =
3470 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3471 {
3472 let member_inline_size = <fidl_fuchsia_wlan_ieee80211_common::HtCapabilities as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3473 if inlined != (member_inline_size <= 4) {
3474 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3475 }
3476 let inner_offset;
3477 let mut inner_depth = depth.clone();
3478 if inlined {
3479 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3480 inner_offset = next_offset;
3481 } else {
3482 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3483 inner_depth.increment()?;
3484 }
3485 let val_ref = self.ht_caps.get_or_insert_with(|| {
3486 fidl::new_empty!(fidl_fuchsia_wlan_ieee80211_common::HtCapabilities, D)
3487 });
3488 fidl::decode!(
3489 fidl_fuchsia_wlan_ieee80211_common::HtCapabilities,
3490 D,
3491 val_ref,
3492 decoder,
3493 inner_offset,
3494 inner_depth
3495 )?;
3496 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3497 {
3498 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3499 }
3500 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3501 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3502 }
3503 }
3504
3505 next_offset += envelope_size;
3506 _next_ordinal_to_read += 1;
3507 if next_offset >= end_offset {
3508 return Ok(());
3509 }
3510
3511 while _next_ordinal_to_read < 4 {
3513 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3514 _next_ordinal_to_read += 1;
3515 next_offset += envelope_size;
3516 }
3517
3518 let next_out_of_line = decoder.next_out_of_line();
3519 let handles_before = decoder.remaining_handles();
3520 if let Some((inlined, num_bytes, num_handles)) =
3521 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3522 {
3523 let member_inline_size = <fidl_fuchsia_wlan_ieee80211_common::VhtCapabilities as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3524 if inlined != (member_inline_size <= 4) {
3525 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3526 }
3527 let inner_offset;
3528 let mut inner_depth = depth.clone();
3529 if inlined {
3530 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3531 inner_offset = next_offset;
3532 } else {
3533 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3534 inner_depth.increment()?;
3535 }
3536 let val_ref = self.vht_caps.get_or_insert_with(|| {
3537 fidl::new_empty!(fidl_fuchsia_wlan_ieee80211_common::VhtCapabilities, D)
3538 });
3539 fidl::decode!(
3540 fidl_fuchsia_wlan_ieee80211_common::VhtCapabilities,
3541 D,
3542 val_ref,
3543 decoder,
3544 inner_offset,
3545 inner_depth
3546 )?;
3547 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3548 {
3549 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3550 }
3551 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3552 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3553 }
3554 }
3555
3556 next_offset += envelope_size;
3557 _next_ordinal_to_read += 1;
3558 if next_offset >= end_offset {
3559 return Ok(());
3560 }
3561
3562 while _next_ordinal_to_read < 5 {
3564 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3565 _next_ordinal_to_read += 1;
3566 next_offset += envelope_size;
3567 }
3568
3569 let next_out_of_line = decoder.next_out_of_line();
3570 let handles_before = decoder.remaining_handles();
3571 if let Some((inlined, num_bytes, num_handles)) =
3572 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3573 {
3574 let member_inline_size =
3575 <fidl::encoding::Vector<u8, 256> as fidl::encoding::TypeMarker>::inline_size(
3576 decoder.context,
3577 );
3578 if inlined != (member_inline_size <= 4) {
3579 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3580 }
3581 let inner_offset;
3582 let mut inner_depth = depth.clone();
3583 if inlined {
3584 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3585 inner_offset = next_offset;
3586 } else {
3587 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3588 inner_depth.increment()?;
3589 }
3590 let val_ref = self
3591 .operating_channels
3592 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<u8, 256>, D));
3593 fidl::decode!(fidl::encoding::Vector<u8, 256>, D, val_ref, decoder, inner_offset, inner_depth)?;
3594 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3595 {
3596 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3597 }
3598 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3599 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3600 }
3601 }
3602
3603 next_offset += envelope_size;
3604
3605 while next_offset < end_offset {
3607 _next_ordinal_to_read += 1;
3608 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3609 next_offset += envelope_size;
3610 }
3611
3612 Ok(())
3613 }
3614 }
3615
3616 impl SaeFrame {
3617 #[inline(always)]
3618 fn max_ordinal_present(&self) -> u64 {
3619 if let Some(_) = self.sae_fields {
3620 return 4;
3621 }
3622 if let Some(_) = self.seq_num {
3623 return 3;
3624 }
3625 if let Some(_) = self.status_code {
3626 return 2;
3627 }
3628 if let Some(_) = self.peer_sta_address {
3629 return 1;
3630 }
3631 0
3632 }
3633 }
3634
3635 impl fidl::encoding::ValueTypeMarker for SaeFrame {
3636 type Borrowed<'a> = &'a Self;
3637 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3638 value
3639 }
3640 }
3641
3642 unsafe impl fidl::encoding::TypeMarker for SaeFrame {
3643 type Owned = Self;
3644
3645 #[inline(always)]
3646 fn inline_align(_context: fidl::encoding::Context) -> usize {
3647 8
3648 }
3649
3650 #[inline(always)]
3651 fn inline_size(_context: fidl::encoding::Context) -> usize {
3652 16
3653 }
3654 }
3655
3656 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<SaeFrame, D> for &SaeFrame {
3657 unsafe fn encode(
3658 self,
3659 encoder: &mut fidl::encoding::Encoder<'_, D>,
3660 offset: usize,
3661 mut depth: fidl::encoding::Depth,
3662 ) -> fidl::Result<()> {
3663 encoder.debug_check_bounds::<SaeFrame>(offset);
3664 let max_ordinal: u64 = self.max_ordinal_present();
3666 encoder.write_num(max_ordinal, offset);
3667 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
3668 if max_ordinal == 0 {
3670 return Ok(());
3671 }
3672 depth.increment()?;
3673 let envelope_size = 8;
3674 let bytes_len = max_ordinal as usize * envelope_size;
3675 #[allow(unused_variables)]
3676 let offset = encoder.out_of_line_offset(bytes_len);
3677 let mut _prev_end_offset: usize = 0;
3678 if 1 > max_ordinal {
3679 return Ok(());
3680 }
3681
3682 let cur_offset: usize = (1 - 1) * envelope_size;
3685
3686 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3688
3689 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
3694 self.peer_sta_address
3695 .as_ref()
3696 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
3697 encoder,
3698 offset + cur_offset,
3699 depth,
3700 )?;
3701
3702 _prev_end_offset = cur_offset + envelope_size;
3703 if 2 > max_ordinal {
3704 return Ok(());
3705 }
3706
3707 let cur_offset: usize = (2 - 1) * envelope_size;
3710
3711 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3713
3714 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_ieee80211_common::StatusCode, D>(
3719 self.status_code.as_ref().map(<fidl_fuchsia_wlan_ieee80211_common::StatusCode as fidl::encoding::ValueTypeMarker>::borrow),
3720 encoder, offset + cur_offset, depth
3721 )?;
3722
3723 _prev_end_offset = cur_offset + envelope_size;
3724 if 3 > max_ordinal {
3725 return Ok(());
3726 }
3727
3728 let cur_offset: usize = (3 - 1) * envelope_size;
3731
3732 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3734
3735 fidl::encoding::encode_in_envelope_optional::<u16, D>(
3740 self.seq_num.as_ref().map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
3741 encoder,
3742 offset + cur_offset,
3743 depth,
3744 )?;
3745
3746 _prev_end_offset = cur_offset + envelope_size;
3747 if 4 > max_ordinal {
3748 return Ok(());
3749 }
3750
3751 let cur_offset: usize = (4 - 1) * envelope_size;
3754
3755 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3757
3758 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<u8>, D>(
3763 self.sae_fields.as_ref().map(<fidl::encoding::UnboundedVector<u8> as fidl::encoding::ValueTypeMarker>::borrow),
3764 encoder, offset + cur_offset, depth
3765 )?;
3766
3767 _prev_end_offset = cur_offset + envelope_size;
3768
3769 Ok(())
3770 }
3771 }
3772
3773 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for SaeFrame {
3774 #[inline(always)]
3775 fn new_empty() -> Self {
3776 Self::default()
3777 }
3778
3779 unsafe fn decode(
3780 &mut self,
3781 decoder: &mut fidl::encoding::Decoder<'_, D>,
3782 offset: usize,
3783 mut depth: fidl::encoding::Depth,
3784 ) -> fidl::Result<()> {
3785 decoder.debug_check_bounds::<Self>(offset);
3786 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
3787 None => return Err(fidl::Error::NotNullable),
3788 Some(len) => len,
3789 };
3790 if len == 0 {
3792 return Ok(());
3793 };
3794 depth.increment()?;
3795 let envelope_size = 8;
3796 let bytes_len = len * envelope_size;
3797 let offset = decoder.out_of_line_offset(bytes_len)?;
3798 let mut _next_ordinal_to_read = 0;
3800 let mut next_offset = offset;
3801 let end_offset = offset + bytes_len;
3802 _next_ordinal_to_read += 1;
3803 if next_offset >= end_offset {
3804 return Ok(());
3805 }
3806
3807 while _next_ordinal_to_read < 1 {
3809 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3810 _next_ordinal_to_read += 1;
3811 next_offset += envelope_size;
3812 }
3813
3814 let next_out_of_line = decoder.next_out_of_line();
3815 let handles_before = decoder.remaining_handles();
3816 if let Some((inlined, num_bytes, num_handles)) =
3817 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3818 {
3819 let member_inline_size =
3820 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
3821 decoder.context,
3822 );
3823 if inlined != (member_inline_size <= 4) {
3824 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3825 }
3826 let inner_offset;
3827 let mut inner_depth = depth.clone();
3828 if inlined {
3829 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3830 inner_offset = next_offset;
3831 } else {
3832 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3833 inner_depth.increment()?;
3834 }
3835 let val_ref = self
3836 .peer_sta_address
3837 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
3838 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
3839 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3840 {
3841 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3842 }
3843 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3844 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3845 }
3846 }
3847
3848 next_offset += envelope_size;
3849 _next_ordinal_to_read += 1;
3850 if next_offset >= end_offset {
3851 return Ok(());
3852 }
3853
3854 while _next_ordinal_to_read < 2 {
3856 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3857 _next_ordinal_to_read += 1;
3858 next_offset += envelope_size;
3859 }
3860
3861 let next_out_of_line = decoder.next_out_of_line();
3862 let handles_before = decoder.remaining_handles();
3863 if let Some((inlined, num_bytes, num_handles)) =
3864 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3865 {
3866 let member_inline_size = <fidl_fuchsia_wlan_ieee80211_common::StatusCode as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3867 if inlined != (member_inline_size <= 4) {
3868 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3869 }
3870 let inner_offset;
3871 let mut inner_depth = depth.clone();
3872 if inlined {
3873 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3874 inner_offset = next_offset;
3875 } else {
3876 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3877 inner_depth.increment()?;
3878 }
3879 let val_ref = self.status_code.get_or_insert_with(|| {
3880 fidl::new_empty!(fidl_fuchsia_wlan_ieee80211_common::StatusCode, D)
3881 });
3882 fidl::decode!(
3883 fidl_fuchsia_wlan_ieee80211_common::StatusCode,
3884 D,
3885 val_ref,
3886 decoder,
3887 inner_offset,
3888 inner_depth
3889 )?;
3890 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3891 {
3892 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3893 }
3894 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3895 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3896 }
3897 }
3898
3899 next_offset += envelope_size;
3900 _next_ordinal_to_read += 1;
3901 if next_offset >= end_offset {
3902 return Ok(());
3903 }
3904
3905 while _next_ordinal_to_read < 3 {
3907 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3908 _next_ordinal_to_read += 1;
3909 next_offset += envelope_size;
3910 }
3911
3912 let next_out_of_line = decoder.next_out_of_line();
3913 let handles_before = decoder.remaining_handles();
3914 if let Some((inlined, num_bytes, num_handles)) =
3915 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3916 {
3917 let member_inline_size =
3918 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3919 if inlined != (member_inline_size <= 4) {
3920 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3921 }
3922 let inner_offset;
3923 let mut inner_depth = depth.clone();
3924 if inlined {
3925 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3926 inner_offset = next_offset;
3927 } else {
3928 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3929 inner_depth.increment()?;
3930 }
3931 let val_ref = self.seq_num.get_or_insert_with(|| fidl::new_empty!(u16, D));
3932 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
3933 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3934 {
3935 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3936 }
3937 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3938 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3939 }
3940 }
3941
3942 next_offset += envelope_size;
3943 _next_ordinal_to_read += 1;
3944 if next_offset >= end_offset {
3945 return Ok(());
3946 }
3947
3948 while _next_ordinal_to_read < 4 {
3950 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3951 _next_ordinal_to_read += 1;
3952 next_offset += envelope_size;
3953 }
3954
3955 let next_out_of_line = decoder.next_out_of_line();
3956 let handles_before = decoder.remaining_handles();
3957 if let Some((inlined, num_bytes, num_handles)) =
3958 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3959 {
3960 let member_inline_size = <fidl::encoding::UnboundedVector<u8> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3961 if inlined != (member_inline_size <= 4) {
3962 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3963 }
3964 let inner_offset;
3965 let mut inner_depth = depth.clone();
3966 if inlined {
3967 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3968 inner_offset = next_offset;
3969 } else {
3970 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3971 inner_depth.increment()?;
3972 }
3973 let val_ref = self.sae_fields.get_or_insert_with(|| {
3974 fidl::new_empty!(fidl::encoding::UnboundedVector<u8>, D)
3975 });
3976 fidl::decode!(
3977 fidl::encoding::UnboundedVector<u8>,
3978 D,
3979 val_ref,
3980 decoder,
3981 inner_offset,
3982 inner_depth
3983 )?;
3984 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3985 {
3986 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3987 }
3988 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3989 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3990 }
3991 }
3992
3993 next_offset += envelope_size;
3994
3995 while next_offset < end_offset {
3997 _next_ordinal_to_read += 1;
3998 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3999 next_offset += envelope_size;
4000 }
4001
4002 Ok(())
4003 }
4004 }
4005
4006 impl WlanFullmacImplAssocRespRequest {
4007 #[inline(always)]
4008 fn max_ordinal_present(&self) -> u64 {
4009 if let Some(_) = self.association_id {
4010 return 3;
4011 }
4012 if let Some(_) = self.result_code {
4013 return 2;
4014 }
4015 if let Some(_) = self.peer_sta_address {
4016 return 1;
4017 }
4018 0
4019 }
4020 }
4021
4022 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplAssocRespRequest {
4023 type Borrowed<'a> = &'a Self;
4024 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4025 value
4026 }
4027 }
4028
4029 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplAssocRespRequest {
4030 type Owned = Self;
4031
4032 #[inline(always)]
4033 fn inline_align(_context: fidl::encoding::Context) -> usize {
4034 8
4035 }
4036
4037 #[inline(always)]
4038 fn inline_size(_context: fidl::encoding::Context) -> usize {
4039 16
4040 }
4041 }
4042
4043 unsafe impl<D: fidl::encoding::ResourceDialect>
4044 fidl::encoding::Encode<WlanFullmacImplAssocRespRequest, D>
4045 for &WlanFullmacImplAssocRespRequest
4046 {
4047 unsafe fn encode(
4048 self,
4049 encoder: &mut fidl::encoding::Encoder<'_, D>,
4050 offset: usize,
4051 mut depth: fidl::encoding::Depth,
4052 ) -> fidl::Result<()> {
4053 encoder.debug_check_bounds::<WlanFullmacImplAssocRespRequest>(offset);
4054 let max_ordinal: u64 = self.max_ordinal_present();
4056 encoder.write_num(max_ordinal, offset);
4057 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
4058 if max_ordinal == 0 {
4060 return Ok(());
4061 }
4062 depth.increment()?;
4063 let envelope_size = 8;
4064 let bytes_len = max_ordinal as usize * envelope_size;
4065 #[allow(unused_variables)]
4066 let offset = encoder.out_of_line_offset(bytes_len);
4067 let mut _prev_end_offset: usize = 0;
4068 if 1 > max_ordinal {
4069 return Ok(());
4070 }
4071
4072 let cur_offset: usize = (1 - 1) * envelope_size;
4075
4076 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4078
4079 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
4084 self.peer_sta_address
4085 .as_ref()
4086 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
4087 encoder,
4088 offset + cur_offset,
4089 depth,
4090 )?;
4091
4092 _prev_end_offset = cur_offset + envelope_size;
4093 if 2 > max_ordinal {
4094 return Ok(());
4095 }
4096
4097 let cur_offset: usize = (2 - 1) * envelope_size;
4100
4101 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4103
4104 fidl::encoding::encode_in_envelope_optional::<WlanAssocResult, D>(
4109 self.result_code
4110 .as_ref()
4111 .map(<WlanAssocResult as fidl::encoding::ValueTypeMarker>::borrow),
4112 encoder,
4113 offset + cur_offset,
4114 depth,
4115 )?;
4116
4117 _prev_end_offset = cur_offset + envelope_size;
4118 if 3 > max_ordinal {
4119 return Ok(());
4120 }
4121
4122 let cur_offset: usize = (3 - 1) * envelope_size;
4125
4126 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4128
4129 fidl::encoding::encode_in_envelope_optional::<u16, D>(
4134 self.association_id.as_ref().map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
4135 encoder,
4136 offset + cur_offset,
4137 depth,
4138 )?;
4139
4140 _prev_end_offset = cur_offset + envelope_size;
4141
4142 Ok(())
4143 }
4144 }
4145
4146 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
4147 for WlanFullmacImplAssocRespRequest
4148 {
4149 #[inline(always)]
4150 fn new_empty() -> Self {
4151 Self::default()
4152 }
4153
4154 unsafe fn decode(
4155 &mut self,
4156 decoder: &mut fidl::encoding::Decoder<'_, D>,
4157 offset: usize,
4158 mut depth: fidl::encoding::Depth,
4159 ) -> fidl::Result<()> {
4160 decoder.debug_check_bounds::<Self>(offset);
4161 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
4162 None => return Err(fidl::Error::NotNullable),
4163 Some(len) => len,
4164 };
4165 if len == 0 {
4167 return Ok(());
4168 };
4169 depth.increment()?;
4170 let envelope_size = 8;
4171 let bytes_len = len * envelope_size;
4172 let offset = decoder.out_of_line_offset(bytes_len)?;
4173 let mut _next_ordinal_to_read = 0;
4175 let mut next_offset = offset;
4176 let end_offset = offset + bytes_len;
4177 _next_ordinal_to_read += 1;
4178 if next_offset >= end_offset {
4179 return Ok(());
4180 }
4181
4182 while _next_ordinal_to_read < 1 {
4184 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4185 _next_ordinal_to_read += 1;
4186 next_offset += envelope_size;
4187 }
4188
4189 let next_out_of_line = decoder.next_out_of_line();
4190 let handles_before = decoder.remaining_handles();
4191 if let Some((inlined, num_bytes, num_handles)) =
4192 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4193 {
4194 let member_inline_size =
4195 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
4196 decoder.context,
4197 );
4198 if inlined != (member_inline_size <= 4) {
4199 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4200 }
4201 let inner_offset;
4202 let mut inner_depth = depth.clone();
4203 if inlined {
4204 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4205 inner_offset = next_offset;
4206 } else {
4207 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4208 inner_depth.increment()?;
4209 }
4210 let val_ref = self
4211 .peer_sta_address
4212 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
4213 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
4214 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4215 {
4216 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4217 }
4218 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4219 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4220 }
4221 }
4222
4223 next_offset += envelope_size;
4224 _next_ordinal_to_read += 1;
4225 if next_offset >= end_offset {
4226 return Ok(());
4227 }
4228
4229 while _next_ordinal_to_read < 2 {
4231 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4232 _next_ordinal_to_read += 1;
4233 next_offset += envelope_size;
4234 }
4235
4236 let next_out_of_line = decoder.next_out_of_line();
4237 let handles_before = decoder.remaining_handles();
4238 if let Some((inlined, num_bytes, num_handles)) =
4239 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4240 {
4241 let member_inline_size =
4242 <WlanAssocResult as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4243 if inlined != (member_inline_size <= 4) {
4244 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4245 }
4246 let inner_offset;
4247 let mut inner_depth = depth.clone();
4248 if inlined {
4249 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4250 inner_offset = next_offset;
4251 } else {
4252 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4253 inner_depth.increment()?;
4254 }
4255 let val_ref =
4256 self.result_code.get_or_insert_with(|| fidl::new_empty!(WlanAssocResult, D));
4257 fidl::decode!(WlanAssocResult, D, val_ref, decoder, inner_offset, inner_depth)?;
4258 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4259 {
4260 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4261 }
4262 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4263 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4264 }
4265 }
4266
4267 next_offset += envelope_size;
4268 _next_ordinal_to_read += 1;
4269 if next_offset >= end_offset {
4270 return Ok(());
4271 }
4272
4273 while _next_ordinal_to_read < 3 {
4275 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4276 _next_ordinal_to_read += 1;
4277 next_offset += envelope_size;
4278 }
4279
4280 let next_out_of_line = decoder.next_out_of_line();
4281 let handles_before = decoder.remaining_handles();
4282 if let Some((inlined, num_bytes, num_handles)) =
4283 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4284 {
4285 let member_inline_size =
4286 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4287 if inlined != (member_inline_size <= 4) {
4288 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4289 }
4290 let inner_offset;
4291 let mut inner_depth = depth.clone();
4292 if inlined {
4293 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4294 inner_offset = next_offset;
4295 } else {
4296 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4297 inner_depth.increment()?;
4298 }
4299 let val_ref = self.association_id.get_or_insert_with(|| fidl::new_empty!(u16, D));
4300 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
4301 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4302 {
4303 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4304 }
4305 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4306 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4307 }
4308 }
4309
4310 next_offset += envelope_size;
4311
4312 while next_offset < end_offset {
4314 _next_ordinal_to_read += 1;
4315 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4316 next_offset += envelope_size;
4317 }
4318
4319 Ok(())
4320 }
4321 }
4322
4323 impl WlanFullmacImplAuthRespRequest {
4324 #[inline(always)]
4325 fn max_ordinal_present(&self) -> u64 {
4326 if let Some(_) = self.result_code {
4327 return 2;
4328 }
4329 if let Some(_) = self.peer_sta_address {
4330 return 1;
4331 }
4332 0
4333 }
4334 }
4335
4336 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplAuthRespRequest {
4337 type Borrowed<'a> = &'a Self;
4338 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4339 value
4340 }
4341 }
4342
4343 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplAuthRespRequest {
4344 type Owned = Self;
4345
4346 #[inline(always)]
4347 fn inline_align(_context: fidl::encoding::Context) -> usize {
4348 8
4349 }
4350
4351 #[inline(always)]
4352 fn inline_size(_context: fidl::encoding::Context) -> usize {
4353 16
4354 }
4355 }
4356
4357 unsafe impl<D: fidl::encoding::ResourceDialect>
4358 fidl::encoding::Encode<WlanFullmacImplAuthRespRequest, D>
4359 for &WlanFullmacImplAuthRespRequest
4360 {
4361 unsafe fn encode(
4362 self,
4363 encoder: &mut fidl::encoding::Encoder<'_, D>,
4364 offset: usize,
4365 mut depth: fidl::encoding::Depth,
4366 ) -> fidl::Result<()> {
4367 encoder.debug_check_bounds::<WlanFullmacImplAuthRespRequest>(offset);
4368 let max_ordinal: u64 = self.max_ordinal_present();
4370 encoder.write_num(max_ordinal, offset);
4371 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
4372 if max_ordinal == 0 {
4374 return Ok(());
4375 }
4376 depth.increment()?;
4377 let envelope_size = 8;
4378 let bytes_len = max_ordinal as usize * envelope_size;
4379 #[allow(unused_variables)]
4380 let offset = encoder.out_of_line_offset(bytes_len);
4381 let mut _prev_end_offset: usize = 0;
4382 if 1 > max_ordinal {
4383 return Ok(());
4384 }
4385
4386 let cur_offset: usize = (1 - 1) * envelope_size;
4389
4390 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4392
4393 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
4398 self.peer_sta_address
4399 .as_ref()
4400 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
4401 encoder,
4402 offset + cur_offset,
4403 depth,
4404 )?;
4405
4406 _prev_end_offset = cur_offset + envelope_size;
4407 if 2 > max_ordinal {
4408 return Ok(());
4409 }
4410
4411 let cur_offset: usize = (2 - 1) * envelope_size;
4414
4415 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4417
4418 fidl::encoding::encode_in_envelope_optional::<WlanAuthResult, D>(
4423 self.result_code
4424 .as_ref()
4425 .map(<WlanAuthResult as fidl::encoding::ValueTypeMarker>::borrow),
4426 encoder,
4427 offset + cur_offset,
4428 depth,
4429 )?;
4430
4431 _prev_end_offset = cur_offset + envelope_size;
4432
4433 Ok(())
4434 }
4435 }
4436
4437 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
4438 for WlanFullmacImplAuthRespRequest
4439 {
4440 #[inline(always)]
4441 fn new_empty() -> Self {
4442 Self::default()
4443 }
4444
4445 unsafe fn decode(
4446 &mut self,
4447 decoder: &mut fidl::encoding::Decoder<'_, D>,
4448 offset: usize,
4449 mut depth: fidl::encoding::Depth,
4450 ) -> fidl::Result<()> {
4451 decoder.debug_check_bounds::<Self>(offset);
4452 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
4453 None => return Err(fidl::Error::NotNullable),
4454 Some(len) => len,
4455 };
4456 if len == 0 {
4458 return Ok(());
4459 };
4460 depth.increment()?;
4461 let envelope_size = 8;
4462 let bytes_len = len * envelope_size;
4463 let offset = decoder.out_of_line_offset(bytes_len)?;
4464 let mut _next_ordinal_to_read = 0;
4466 let mut next_offset = offset;
4467 let end_offset = offset + bytes_len;
4468 _next_ordinal_to_read += 1;
4469 if next_offset >= end_offset {
4470 return Ok(());
4471 }
4472
4473 while _next_ordinal_to_read < 1 {
4475 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4476 _next_ordinal_to_read += 1;
4477 next_offset += envelope_size;
4478 }
4479
4480 let next_out_of_line = decoder.next_out_of_line();
4481 let handles_before = decoder.remaining_handles();
4482 if let Some((inlined, num_bytes, num_handles)) =
4483 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4484 {
4485 let member_inline_size =
4486 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
4487 decoder.context,
4488 );
4489 if inlined != (member_inline_size <= 4) {
4490 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4491 }
4492 let inner_offset;
4493 let mut inner_depth = depth.clone();
4494 if inlined {
4495 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4496 inner_offset = next_offset;
4497 } else {
4498 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4499 inner_depth.increment()?;
4500 }
4501 let val_ref = self
4502 .peer_sta_address
4503 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
4504 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
4505 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4506 {
4507 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4508 }
4509 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4510 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4511 }
4512 }
4513
4514 next_offset += envelope_size;
4515 _next_ordinal_to_read += 1;
4516 if next_offset >= end_offset {
4517 return Ok(());
4518 }
4519
4520 while _next_ordinal_to_read < 2 {
4522 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4523 _next_ordinal_to_read += 1;
4524 next_offset += envelope_size;
4525 }
4526
4527 let next_out_of_line = decoder.next_out_of_line();
4528 let handles_before = decoder.remaining_handles();
4529 if let Some((inlined, num_bytes, num_handles)) =
4530 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4531 {
4532 let member_inline_size =
4533 <WlanAuthResult as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4534 if inlined != (member_inline_size <= 4) {
4535 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4536 }
4537 let inner_offset;
4538 let mut inner_depth = depth.clone();
4539 if inlined {
4540 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4541 inner_offset = next_offset;
4542 } else {
4543 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4544 inner_depth.increment()?;
4545 }
4546 let val_ref =
4547 self.result_code.get_or_insert_with(|| fidl::new_empty!(WlanAuthResult, D));
4548 fidl::decode!(WlanAuthResult, D, val_ref, decoder, inner_offset, inner_depth)?;
4549 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4550 {
4551 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4552 }
4553 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4554 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4555 }
4556 }
4557
4558 next_offset += envelope_size;
4559
4560 while next_offset < end_offset {
4562 _next_ordinal_to_read += 1;
4563 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4564 next_offset += envelope_size;
4565 }
4566
4567 Ok(())
4568 }
4569 }
4570
4571 impl WlanFullmacImplConnectRequest {
4572 #[inline(always)]
4573 fn max_ordinal_present(&self) -> u64 {
4574 if let Some(_) = self.owe_public_key {
4575 return 8;
4576 }
4577 if let Some(_) = self.wep_key_desc {
4578 return 7;
4579 }
4580 if let Some(_) = self.security_ie {
4581 return 6;
4582 }
4583 if let Some(_) = self.wep_key {
4584 return 5;
4585 }
4586 if let Some(_) = self.sae_password {
4587 return 4;
4588 }
4589 if let Some(_) = self.auth_type {
4590 return 3;
4591 }
4592 if let Some(_) = self.connect_failure_timeout {
4593 return 2;
4594 }
4595 if let Some(_) = self.selected_bss {
4596 return 1;
4597 }
4598 0
4599 }
4600 }
4601
4602 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplConnectRequest {
4603 type Borrowed<'a> = &'a Self;
4604 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4605 value
4606 }
4607 }
4608
4609 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplConnectRequest {
4610 type Owned = Self;
4611
4612 #[inline(always)]
4613 fn inline_align(_context: fidl::encoding::Context) -> usize {
4614 8
4615 }
4616
4617 #[inline(always)]
4618 fn inline_size(_context: fidl::encoding::Context) -> usize {
4619 16
4620 }
4621 }
4622
4623 unsafe impl<D: fidl::encoding::ResourceDialect>
4624 fidl::encoding::Encode<WlanFullmacImplConnectRequest, D>
4625 for &WlanFullmacImplConnectRequest
4626 {
4627 unsafe fn encode(
4628 self,
4629 encoder: &mut fidl::encoding::Encoder<'_, D>,
4630 offset: usize,
4631 mut depth: fidl::encoding::Depth,
4632 ) -> fidl::Result<()> {
4633 encoder.debug_check_bounds::<WlanFullmacImplConnectRequest>(offset);
4634 let max_ordinal: u64 = self.max_ordinal_present();
4636 encoder.write_num(max_ordinal, offset);
4637 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
4638 if max_ordinal == 0 {
4640 return Ok(());
4641 }
4642 depth.increment()?;
4643 let envelope_size = 8;
4644 let bytes_len = max_ordinal as usize * envelope_size;
4645 #[allow(unused_variables)]
4646 let offset = encoder.out_of_line_offset(bytes_len);
4647 let mut _prev_end_offset: usize = 0;
4648 if 1 > max_ordinal {
4649 return Ok(());
4650 }
4651
4652 let cur_offset: usize = (1 - 1) * envelope_size;
4655
4656 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4658
4659 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_ieee80211_common::BssDescription, D>(
4664 self.selected_bss.as_ref().map(<fidl_fuchsia_wlan_ieee80211_common::BssDescription as fidl::encoding::ValueTypeMarker>::borrow),
4665 encoder, offset + cur_offset, depth
4666 )?;
4667
4668 _prev_end_offset = cur_offset + envelope_size;
4669 if 2 > max_ordinal {
4670 return Ok(());
4671 }
4672
4673 let cur_offset: usize = (2 - 1) * envelope_size;
4676
4677 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4679
4680 fidl::encoding::encode_in_envelope_optional::<u32, D>(
4685 self.connect_failure_timeout
4686 .as_ref()
4687 .map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
4688 encoder,
4689 offset + cur_offset,
4690 depth,
4691 )?;
4692
4693 _prev_end_offset = cur_offset + envelope_size;
4694 if 3 > max_ordinal {
4695 return Ok(());
4696 }
4697
4698 let cur_offset: usize = (3 - 1) * envelope_size;
4701
4702 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4704
4705 fidl::encoding::encode_in_envelope_optional::<WlanAuthType, D>(
4710 self.auth_type
4711 .as_ref()
4712 .map(<WlanAuthType as fidl::encoding::ValueTypeMarker>::borrow),
4713 encoder,
4714 offset + cur_offset,
4715 depth,
4716 )?;
4717
4718 _prev_end_offset = cur_offset + envelope_size;
4719 if 4 > max_ordinal {
4720 return Ok(());
4721 }
4722
4723 let cur_offset: usize = (4 - 1) * envelope_size;
4726
4727 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4729
4730 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<u8>, D>(
4735 self.sae_password.as_ref().map(<fidl::encoding::UnboundedVector<u8> as fidl::encoding::ValueTypeMarker>::borrow),
4736 encoder, offset + cur_offset, depth
4737 )?;
4738
4739 _prev_end_offset = cur_offset + envelope_size;
4740 if 5 > max_ordinal {
4741 return Ok(());
4742 }
4743
4744 let cur_offset: usize = (5 - 1) * envelope_size;
4747
4748 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4750
4751 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_driver_common::WlanKeyConfig, D>(
4756 self.wep_key.as_ref().map(<fidl_fuchsia_wlan_driver_common::WlanKeyConfig as fidl::encoding::ValueTypeMarker>::borrow),
4757 encoder, offset + cur_offset, depth
4758 )?;
4759
4760 _prev_end_offset = cur_offset + envelope_size;
4761 if 6 > max_ordinal {
4762 return Ok(());
4763 }
4764
4765 let cur_offset: usize = (6 - 1) * envelope_size;
4768
4769 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4771
4772 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<u8, 257>, D>(
4777 self.security_ie.as_ref().map(
4778 <fidl::encoding::Vector<u8, 257> as fidl::encoding::ValueTypeMarker>::borrow,
4779 ),
4780 encoder,
4781 offset + cur_offset,
4782 depth,
4783 )?;
4784
4785 _prev_end_offset = cur_offset + envelope_size;
4786 if 7 > max_ordinal {
4787 return Ok(());
4788 }
4789
4790 let cur_offset: usize = (7 - 1) * envelope_size;
4793
4794 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4796
4797 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_ieee80211_common::SetKeyDescriptor, D>(
4802 self.wep_key_desc.as_ref().map(<fidl_fuchsia_wlan_ieee80211_common::SetKeyDescriptor as fidl::encoding::ValueTypeMarker>::borrow),
4803 encoder, offset + cur_offset, depth
4804 )?;
4805
4806 _prev_end_offset = cur_offset + envelope_size;
4807 if 8 > max_ordinal {
4808 return Ok(());
4809 }
4810
4811 let cur_offset: usize = (8 - 1) * envelope_size;
4814
4815 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4817
4818 fidl::encoding::encode_in_envelope_optional::<WlanFullmacOwePublicKey, D>(
4823 self.owe_public_key
4824 .as_ref()
4825 .map(<WlanFullmacOwePublicKey as fidl::encoding::ValueTypeMarker>::borrow),
4826 encoder,
4827 offset + cur_offset,
4828 depth,
4829 )?;
4830
4831 _prev_end_offset = cur_offset + envelope_size;
4832
4833 Ok(())
4834 }
4835 }
4836
4837 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
4838 for WlanFullmacImplConnectRequest
4839 {
4840 #[inline(always)]
4841 fn new_empty() -> Self {
4842 Self::default()
4843 }
4844
4845 unsafe fn decode(
4846 &mut self,
4847 decoder: &mut fidl::encoding::Decoder<'_, D>,
4848 offset: usize,
4849 mut depth: fidl::encoding::Depth,
4850 ) -> fidl::Result<()> {
4851 decoder.debug_check_bounds::<Self>(offset);
4852 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
4853 None => return Err(fidl::Error::NotNullable),
4854 Some(len) => len,
4855 };
4856 if len == 0 {
4858 return Ok(());
4859 };
4860 depth.increment()?;
4861 let envelope_size = 8;
4862 let bytes_len = len * envelope_size;
4863 let offset = decoder.out_of_line_offset(bytes_len)?;
4864 let mut _next_ordinal_to_read = 0;
4866 let mut next_offset = offset;
4867 let end_offset = offset + bytes_len;
4868 _next_ordinal_to_read += 1;
4869 if next_offset >= end_offset {
4870 return Ok(());
4871 }
4872
4873 while _next_ordinal_to_read < 1 {
4875 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4876 _next_ordinal_to_read += 1;
4877 next_offset += envelope_size;
4878 }
4879
4880 let next_out_of_line = decoder.next_out_of_line();
4881 let handles_before = decoder.remaining_handles();
4882 if let Some((inlined, num_bytes, num_handles)) =
4883 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4884 {
4885 let member_inline_size = <fidl_fuchsia_wlan_ieee80211_common::BssDescription as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4886 if inlined != (member_inline_size <= 4) {
4887 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4888 }
4889 let inner_offset;
4890 let mut inner_depth = depth.clone();
4891 if inlined {
4892 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4893 inner_offset = next_offset;
4894 } else {
4895 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4896 inner_depth.increment()?;
4897 }
4898 let val_ref = self.selected_bss.get_or_insert_with(|| {
4899 fidl::new_empty!(fidl_fuchsia_wlan_ieee80211_common::BssDescription, D)
4900 });
4901 fidl::decode!(
4902 fidl_fuchsia_wlan_ieee80211_common::BssDescription,
4903 D,
4904 val_ref,
4905 decoder,
4906 inner_offset,
4907 inner_depth
4908 )?;
4909 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4910 {
4911 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4912 }
4913 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4914 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4915 }
4916 }
4917
4918 next_offset += envelope_size;
4919 _next_ordinal_to_read += 1;
4920 if next_offset >= end_offset {
4921 return Ok(());
4922 }
4923
4924 while _next_ordinal_to_read < 2 {
4926 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4927 _next_ordinal_to_read += 1;
4928 next_offset += envelope_size;
4929 }
4930
4931 let next_out_of_line = decoder.next_out_of_line();
4932 let handles_before = decoder.remaining_handles();
4933 if let Some((inlined, num_bytes, num_handles)) =
4934 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4935 {
4936 let member_inline_size =
4937 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4938 if inlined != (member_inline_size <= 4) {
4939 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4940 }
4941 let inner_offset;
4942 let mut inner_depth = depth.clone();
4943 if inlined {
4944 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4945 inner_offset = next_offset;
4946 } else {
4947 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4948 inner_depth.increment()?;
4949 }
4950 let val_ref =
4951 self.connect_failure_timeout.get_or_insert_with(|| fidl::new_empty!(u32, D));
4952 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
4953 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4954 {
4955 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4956 }
4957 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4958 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4959 }
4960 }
4961
4962 next_offset += envelope_size;
4963 _next_ordinal_to_read += 1;
4964 if next_offset >= end_offset {
4965 return Ok(());
4966 }
4967
4968 while _next_ordinal_to_read < 3 {
4970 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4971 _next_ordinal_to_read += 1;
4972 next_offset += envelope_size;
4973 }
4974
4975 let next_out_of_line = decoder.next_out_of_line();
4976 let handles_before = decoder.remaining_handles();
4977 if let Some((inlined, num_bytes, num_handles)) =
4978 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4979 {
4980 let member_inline_size =
4981 <WlanAuthType as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4982 if inlined != (member_inline_size <= 4) {
4983 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4984 }
4985 let inner_offset;
4986 let mut inner_depth = depth.clone();
4987 if inlined {
4988 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4989 inner_offset = next_offset;
4990 } else {
4991 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4992 inner_depth.increment()?;
4993 }
4994 let val_ref =
4995 self.auth_type.get_or_insert_with(|| fidl::new_empty!(WlanAuthType, D));
4996 fidl::decode!(WlanAuthType, D, val_ref, decoder, inner_offset, inner_depth)?;
4997 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4998 {
4999 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5000 }
5001 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5002 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5003 }
5004 }
5005
5006 next_offset += envelope_size;
5007 _next_ordinal_to_read += 1;
5008 if next_offset >= end_offset {
5009 return Ok(());
5010 }
5011
5012 while _next_ordinal_to_read < 4 {
5014 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5015 _next_ordinal_to_read += 1;
5016 next_offset += envelope_size;
5017 }
5018
5019 let next_out_of_line = decoder.next_out_of_line();
5020 let handles_before = decoder.remaining_handles();
5021 if let Some((inlined, num_bytes, num_handles)) =
5022 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5023 {
5024 let member_inline_size = <fidl::encoding::UnboundedVector<u8> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5025 if inlined != (member_inline_size <= 4) {
5026 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5027 }
5028 let inner_offset;
5029 let mut inner_depth = depth.clone();
5030 if inlined {
5031 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5032 inner_offset = next_offset;
5033 } else {
5034 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5035 inner_depth.increment()?;
5036 }
5037 let val_ref = self.sae_password.get_or_insert_with(|| {
5038 fidl::new_empty!(fidl::encoding::UnboundedVector<u8>, D)
5039 });
5040 fidl::decode!(
5041 fidl::encoding::UnboundedVector<u8>,
5042 D,
5043 val_ref,
5044 decoder,
5045 inner_offset,
5046 inner_depth
5047 )?;
5048 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5049 {
5050 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5051 }
5052 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5053 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5054 }
5055 }
5056
5057 next_offset += envelope_size;
5058 _next_ordinal_to_read += 1;
5059 if next_offset >= end_offset {
5060 return Ok(());
5061 }
5062
5063 while _next_ordinal_to_read < 5 {
5065 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5066 _next_ordinal_to_read += 1;
5067 next_offset += envelope_size;
5068 }
5069
5070 let next_out_of_line = decoder.next_out_of_line();
5071 let handles_before = decoder.remaining_handles();
5072 if let Some((inlined, num_bytes, num_handles)) =
5073 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5074 {
5075 let member_inline_size = <fidl_fuchsia_wlan_driver_common::WlanKeyConfig as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5076 if inlined != (member_inline_size <= 4) {
5077 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5078 }
5079 let inner_offset;
5080 let mut inner_depth = depth.clone();
5081 if inlined {
5082 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5083 inner_offset = next_offset;
5084 } else {
5085 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5086 inner_depth.increment()?;
5087 }
5088 let val_ref = self.wep_key.get_or_insert_with(|| {
5089 fidl::new_empty!(fidl_fuchsia_wlan_driver_common::WlanKeyConfig, D)
5090 });
5091 fidl::decode!(
5092 fidl_fuchsia_wlan_driver_common::WlanKeyConfig,
5093 D,
5094 val_ref,
5095 decoder,
5096 inner_offset,
5097 inner_depth
5098 )?;
5099 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5100 {
5101 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5102 }
5103 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5104 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5105 }
5106 }
5107
5108 next_offset += envelope_size;
5109 _next_ordinal_to_read += 1;
5110 if next_offset >= end_offset {
5111 return Ok(());
5112 }
5113
5114 while _next_ordinal_to_read < 6 {
5116 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5117 _next_ordinal_to_read += 1;
5118 next_offset += envelope_size;
5119 }
5120
5121 let next_out_of_line = decoder.next_out_of_line();
5122 let handles_before = decoder.remaining_handles();
5123 if let Some((inlined, num_bytes, num_handles)) =
5124 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5125 {
5126 let member_inline_size =
5127 <fidl::encoding::Vector<u8, 257> as fidl::encoding::TypeMarker>::inline_size(
5128 decoder.context,
5129 );
5130 if inlined != (member_inline_size <= 4) {
5131 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5132 }
5133 let inner_offset;
5134 let mut inner_depth = depth.clone();
5135 if inlined {
5136 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5137 inner_offset = next_offset;
5138 } else {
5139 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5140 inner_depth.increment()?;
5141 }
5142 let val_ref = self
5143 .security_ie
5144 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<u8, 257>, D));
5145 fidl::decode!(fidl::encoding::Vector<u8, 257>, D, val_ref, decoder, inner_offset, inner_depth)?;
5146 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5147 {
5148 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5149 }
5150 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5151 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5152 }
5153 }
5154
5155 next_offset += envelope_size;
5156 _next_ordinal_to_read += 1;
5157 if next_offset >= end_offset {
5158 return Ok(());
5159 }
5160
5161 while _next_ordinal_to_read < 7 {
5163 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5164 _next_ordinal_to_read += 1;
5165 next_offset += envelope_size;
5166 }
5167
5168 let next_out_of_line = decoder.next_out_of_line();
5169 let handles_before = decoder.remaining_handles();
5170 if let Some((inlined, num_bytes, num_handles)) =
5171 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5172 {
5173 let member_inline_size = <fidl_fuchsia_wlan_ieee80211_common::SetKeyDescriptor as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5174 if inlined != (member_inline_size <= 4) {
5175 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5176 }
5177 let inner_offset;
5178 let mut inner_depth = depth.clone();
5179 if inlined {
5180 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5181 inner_offset = next_offset;
5182 } else {
5183 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5184 inner_depth.increment()?;
5185 }
5186 let val_ref = self.wep_key_desc.get_or_insert_with(|| {
5187 fidl::new_empty!(fidl_fuchsia_wlan_ieee80211_common::SetKeyDescriptor, D)
5188 });
5189 fidl::decode!(
5190 fidl_fuchsia_wlan_ieee80211_common::SetKeyDescriptor,
5191 D,
5192 val_ref,
5193 decoder,
5194 inner_offset,
5195 inner_depth
5196 )?;
5197 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5198 {
5199 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5200 }
5201 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5202 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5203 }
5204 }
5205
5206 next_offset += envelope_size;
5207 _next_ordinal_to_read += 1;
5208 if next_offset >= end_offset {
5209 return Ok(());
5210 }
5211
5212 while _next_ordinal_to_read < 8 {
5214 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5215 _next_ordinal_to_read += 1;
5216 next_offset += envelope_size;
5217 }
5218
5219 let next_out_of_line = decoder.next_out_of_line();
5220 let handles_before = decoder.remaining_handles();
5221 if let Some((inlined, num_bytes, num_handles)) =
5222 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5223 {
5224 let member_inline_size =
5225 <WlanFullmacOwePublicKey as fidl::encoding::TypeMarker>::inline_size(
5226 decoder.context,
5227 );
5228 if inlined != (member_inline_size <= 4) {
5229 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5230 }
5231 let inner_offset;
5232 let mut inner_depth = depth.clone();
5233 if inlined {
5234 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5235 inner_offset = next_offset;
5236 } else {
5237 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5238 inner_depth.increment()?;
5239 }
5240 let val_ref = self
5241 .owe_public_key
5242 .get_or_insert_with(|| fidl::new_empty!(WlanFullmacOwePublicKey, D));
5243 fidl::decode!(
5244 WlanFullmacOwePublicKey,
5245 D,
5246 val_ref,
5247 decoder,
5248 inner_offset,
5249 inner_depth
5250 )?;
5251 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5252 {
5253 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5254 }
5255 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5256 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5257 }
5258 }
5259
5260 next_offset += envelope_size;
5261
5262 while next_offset < end_offset {
5264 _next_ordinal_to_read += 1;
5265 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5266 next_offset += envelope_size;
5267 }
5268
5269 Ok(())
5270 }
5271 }
5272
5273 impl WlanFullmacImplDeauthRequest {
5274 #[inline(always)]
5275 fn max_ordinal_present(&self) -> u64 {
5276 if let Some(_) = self.reason_code {
5277 return 2;
5278 }
5279 if let Some(_) = self.peer_sta_address {
5280 return 1;
5281 }
5282 0
5283 }
5284 }
5285
5286 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplDeauthRequest {
5287 type Borrowed<'a> = &'a Self;
5288 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
5289 value
5290 }
5291 }
5292
5293 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplDeauthRequest {
5294 type Owned = Self;
5295
5296 #[inline(always)]
5297 fn inline_align(_context: fidl::encoding::Context) -> usize {
5298 8
5299 }
5300
5301 #[inline(always)]
5302 fn inline_size(_context: fidl::encoding::Context) -> usize {
5303 16
5304 }
5305 }
5306
5307 unsafe impl<D: fidl::encoding::ResourceDialect>
5308 fidl::encoding::Encode<WlanFullmacImplDeauthRequest, D> for &WlanFullmacImplDeauthRequest
5309 {
5310 unsafe fn encode(
5311 self,
5312 encoder: &mut fidl::encoding::Encoder<'_, D>,
5313 offset: usize,
5314 mut depth: fidl::encoding::Depth,
5315 ) -> fidl::Result<()> {
5316 encoder.debug_check_bounds::<WlanFullmacImplDeauthRequest>(offset);
5317 let max_ordinal: u64 = self.max_ordinal_present();
5319 encoder.write_num(max_ordinal, offset);
5320 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
5321 if max_ordinal == 0 {
5323 return Ok(());
5324 }
5325 depth.increment()?;
5326 let envelope_size = 8;
5327 let bytes_len = max_ordinal as usize * envelope_size;
5328 #[allow(unused_variables)]
5329 let offset = encoder.out_of_line_offset(bytes_len);
5330 let mut _prev_end_offset: usize = 0;
5331 if 1 > max_ordinal {
5332 return Ok(());
5333 }
5334
5335 let cur_offset: usize = (1 - 1) * envelope_size;
5338
5339 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5341
5342 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
5347 self.peer_sta_address
5348 .as_ref()
5349 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
5350 encoder,
5351 offset + cur_offset,
5352 depth,
5353 )?;
5354
5355 _prev_end_offset = cur_offset + envelope_size;
5356 if 2 > max_ordinal {
5357 return Ok(());
5358 }
5359
5360 let cur_offset: usize = (2 - 1) * envelope_size;
5363
5364 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5366
5367 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_ieee80211_common::ReasonCode, D>(
5372 self.reason_code.as_ref().map(<fidl_fuchsia_wlan_ieee80211_common::ReasonCode as fidl::encoding::ValueTypeMarker>::borrow),
5373 encoder, offset + cur_offset, depth
5374 )?;
5375
5376 _prev_end_offset = cur_offset + envelope_size;
5377
5378 Ok(())
5379 }
5380 }
5381
5382 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
5383 for WlanFullmacImplDeauthRequest
5384 {
5385 #[inline(always)]
5386 fn new_empty() -> Self {
5387 Self::default()
5388 }
5389
5390 unsafe fn decode(
5391 &mut self,
5392 decoder: &mut fidl::encoding::Decoder<'_, D>,
5393 offset: usize,
5394 mut depth: fidl::encoding::Depth,
5395 ) -> fidl::Result<()> {
5396 decoder.debug_check_bounds::<Self>(offset);
5397 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
5398 None => return Err(fidl::Error::NotNullable),
5399 Some(len) => len,
5400 };
5401 if len == 0 {
5403 return Ok(());
5404 };
5405 depth.increment()?;
5406 let envelope_size = 8;
5407 let bytes_len = len * envelope_size;
5408 let offset = decoder.out_of_line_offset(bytes_len)?;
5409 let mut _next_ordinal_to_read = 0;
5411 let mut next_offset = offset;
5412 let end_offset = offset + bytes_len;
5413 _next_ordinal_to_read += 1;
5414 if next_offset >= end_offset {
5415 return Ok(());
5416 }
5417
5418 while _next_ordinal_to_read < 1 {
5420 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5421 _next_ordinal_to_read += 1;
5422 next_offset += envelope_size;
5423 }
5424
5425 let next_out_of_line = decoder.next_out_of_line();
5426 let handles_before = decoder.remaining_handles();
5427 if let Some((inlined, num_bytes, num_handles)) =
5428 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5429 {
5430 let member_inline_size =
5431 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
5432 decoder.context,
5433 );
5434 if inlined != (member_inline_size <= 4) {
5435 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5436 }
5437 let inner_offset;
5438 let mut inner_depth = depth.clone();
5439 if inlined {
5440 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5441 inner_offset = next_offset;
5442 } else {
5443 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5444 inner_depth.increment()?;
5445 }
5446 let val_ref = self
5447 .peer_sta_address
5448 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
5449 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
5450 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5451 {
5452 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5453 }
5454 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5455 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5456 }
5457 }
5458
5459 next_offset += envelope_size;
5460 _next_ordinal_to_read += 1;
5461 if next_offset >= end_offset {
5462 return Ok(());
5463 }
5464
5465 while _next_ordinal_to_read < 2 {
5467 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5468 _next_ordinal_to_read += 1;
5469 next_offset += envelope_size;
5470 }
5471
5472 let next_out_of_line = decoder.next_out_of_line();
5473 let handles_before = decoder.remaining_handles();
5474 if let Some((inlined, num_bytes, num_handles)) =
5475 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5476 {
5477 let member_inline_size = <fidl_fuchsia_wlan_ieee80211_common::ReasonCode as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5478 if inlined != (member_inline_size <= 4) {
5479 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5480 }
5481 let inner_offset;
5482 let mut inner_depth = depth.clone();
5483 if inlined {
5484 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5485 inner_offset = next_offset;
5486 } else {
5487 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5488 inner_depth.increment()?;
5489 }
5490 let val_ref = self.reason_code.get_or_insert_with(|| {
5491 fidl::new_empty!(fidl_fuchsia_wlan_ieee80211_common::ReasonCode, D)
5492 });
5493 fidl::decode!(
5494 fidl_fuchsia_wlan_ieee80211_common::ReasonCode,
5495 D,
5496 val_ref,
5497 decoder,
5498 inner_offset,
5499 inner_depth
5500 )?;
5501 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5502 {
5503 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5504 }
5505 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5506 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5507 }
5508 }
5509
5510 next_offset += envelope_size;
5511
5512 while next_offset < end_offset {
5514 _next_ordinal_to_read += 1;
5515 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5516 next_offset += envelope_size;
5517 }
5518
5519 Ok(())
5520 }
5521 }
5522
5523 impl WlanFullmacImplDisassocRequest {
5524 #[inline(always)]
5525 fn max_ordinal_present(&self) -> u64 {
5526 if let Some(_) = self.reason_code {
5527 return 2;
5528 }
5529 if let Some(_) = self.peer_sta_address {
5530 return 1;
5531 }
5532 0
5533 }
5534 }
5535
5536 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplDisassocRequest {
5537 type Borrowed<'a> = &'a Self;
5538 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
5539 value
5540 }
5541 }
5542
5543 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplDisassocRequest {
5544 type Owned = Self;
5545
5546 #[inline(always)]
5547 fn inline_align(_context: fidl::encoding::Context) -> usize {
5548 8
5549 }
5550
5551 #[inline(always)]
5552 fn inline_size(_context: fidl::encoding::Context) -> usize {
5553 16
5554 }
5555 }
5556
5557 unsafe impl<D: fidl::encoding::ResourceDialect>
5558 fidl::encoding::Encode<WlanFullmacImplDisassocRequest, D>
5559 for &WlanFullmacImplDisassocRequest
5560 {
5561 unsafe fn encode(
5562 self,
5563 encoder: &mut fidl::encoding::Encoder<'_, D>,
5564 offset: usize,
5565 mut depth: fidl::encoding::Depth,
5566 ) -> fidl::Result<()> {
5567 encoder.debug_check_bounds::<WlanFullmacImplDisassocRequest>(offset);
5568 let max_ordinal: u64 = self.max_ordinal_present();
5570 encoder.write_num(max_ordinal, offset);
5571 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
5572 if max_ordinal == 0 {
5574 return Ok(());
5575 }
5576 depth.increment()?;
5577 let envelope_size = 8;
5578 let bytes_len = max_ordinal as usize * envelope_size;
5579 #[allow(unused_variables)]
5580 let offset = encoder.out_of_line_offset(bytes_len);
5581 let mut _prev_end_offset: usize = 0;
5582 if 1 > max_ordinal {
5583 return Ok(());
5584 }
5585
5586 let cur_offset: usize = (1 - 1) * envelope_size;
5589
5590 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5592
5593 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
5598 self.peer_sta_address
5599 .as_ref()
5600 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
5601 encoder,
5602 offset + cur_offset,
5603 depth,
5604 )?;
5605
5606 _prev_end_offset = cur_offset + envelope_size;
5607 if 2 > max_ordinal {
5608 return Ok(());
5609 }
5610
5611 let cur_offset: usize = (2 - 1) * envelope_size;
5614
5615 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5617
5618 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_ieee80211_common::ReasonCode, D>(
5623 self.reason_code.as_ref().map(<fidl_fuchsia_wlan_ieee80211_common::ReasonCode as fidl::encoding::ValueTypeMarker>::borrow),
5624 encoder, offset + cur_offset, depth
5625 )?;
5626
5627 _prev_end_offset = cur_offset + envelope_size;
5628
5629 Ok(())
5630 }
5631 }
5632
5633 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
5634 for WlanFullmacImplDisassocRequest
5635 {
5636 #[inline(always)]
5637 fn new_empty() -> Self {
5638 Self::default()
5639 }
5640
5641 unsafe fn decode(
5642 &mut self,
5643 decoder: &mut fidl::encoding::Decoder<'_, D>,
5644 offset: usize,
5645 mut depth: fidl::encoding::Depth,
5646 ) -> fidl::Result<()> {
5647 decoder.debug_check_bounds::<Self>(offset);
5648 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
5649 None => return Err(fidl::Error::NotNullable),
5650 Some(len) => len,
5651 };
5652 if len == 0 {
5654 return Ok(());
5655 };
5656 depth.increment()?;
5657 let envelope_size = 8;
5658 let bytes_len = len * envelope_size;
5659 let offset = decoder.out_of_line_offset(bytes_len)?;
5660 let mut _next_ordinal_to_read = 0;
5662 let mut next_offset = offset;
5663 let end_offset = offset + bytes_len;
5664 _next_ordinal_to_read += 1;
5665 if next_offset >= end_offset {
5666 return Ok(());
5667 }
5668
5669 while _next_ordinal_to_read < 1 {
5671 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5672 _next_ordinal_to_read += 1;
5673 next_offset += envelope_size;
5674 }
5675
5676 let next_out_of_line = decoder.next_out_of_line();
5677 let handles_before = decoder.remaining_handles();
5678 if let Some((inlined, num_bytes, num_handles)) =
5679 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5680 {
5681 let member_inline_size =
5682 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
5683 decoder.context,
5684 );
5685 if inlined != (member_inline_size <= 4) {
5686 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5687 }
5688 let inner_offset;
5689 let mut inner_depth = depth.clone();
5690 if inlined {
5691 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5692 inner_offset = next_offset;
5693 } else {
5694 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5695 inner_depth.increment()?;
5696 }
5697 let val_ref = self
5698 .peer_sta_address
5699 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
5700 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
5701 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5702 {
5703 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5704 }
5705 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5706 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5707 }
5708 }
5709
5710 next_offset += envelope_size;
5711 _next_ordinal_to_read += 1;
5712 if next_offset >= end_offset {
5713 return Ok(());
5714 }
5715
5716 while _next_ordinal_to_read < 2 {
5718 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5719 _next_ordinal_to_read += 1;
5720 next_offset += envelope_size;
5721 }
5722
5723 let next_out_of_line = decoder.next_out_of_line();
5724 let handles_before = decoder.remaining_handles();
5725 if let Some((inlined, num_bytes, num_handles)) =
5726 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5727 {
5728 let member_inline_size = <fidl_fuchsia_wlan_ieee80211_common::ReasonCode as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5729 if inlined != (member_inline_size <= 4) {
5730 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5731 }
5732 let inner_offset;
5733 let mut inner_depth = depth.clone();
5734 if inlined {
5735 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5736 inner_offset = next_offset;
5737 } else {
5738 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5739 inner_depth.increment()?;
5740 }
5741 let val_ref = self.reason_code.get_or_insert_with(|| {
5742 fidl::new_empty!(fidl_fuchsia_wlan_ieee80211_common::ReasonCode, D)
5743 });
5744 fidl::decode!(
5745 fidl_fuchsia_wlan_ieee80211_common::ReasonCode,
5746 D,
5747 val_ref,
5748 decoder,
5749 inner_offset,
5750 inner_depth
5751 )?;
5752 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5753 {
5754 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5755 }
5756 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5757 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5758 }
5759 }
5760
5761 next_offset += envelope_size;
5762
5763 while next_offset < end_offset {
5765 _next_ordinal_to_read += 1;
5766 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5767 next_offset += envelope_size;
5768 }
5769
5770 Ok(())
5771 }
5772 }
5773
5774 impl WlanFullmacImplEapolTxRequest {
5775 #[inline(always)]
5776 fn max_ordinal_present(&self) -> u64 {
5777 if let Some(_) = self.data {
5778 return 3;
5779 }
5780 if let Some(_) = self.dst_addr {
5781 return 2;
5782 }
5783 if let Some(_) = self.src_addr {
5784 return 1;
5785 }
5786 0
5787 }
5788 }
5789
5790 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplEapolTxRequest {
5791 type Borrowed<'a> = &'a Self;
5792 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
5793 value
5794 }
5795 }
5796
5797 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplEapolTxRequest {
5798 type Owned = Self;
5799
5800 #[inline(always)]
5801 fn inline_align(_context: fidl::encoding::Context) -> usize {
5802 8
5803 }
5804
5805 #[inline(always)]
5806 fn inline_size(_context: fidl::encoding::Context) -> usize {
5807 16
5808 }
5809 }
5810
5811 unsafe impl<D: fidl::encoding::ResourceDialect>
5812 fidl::encoding::Encode<WlanFullmacImplEapolTxRequest, D>
5813 for &WlanFullmacImplEapolTxRequest
5814 {
5815 unsafe fn encode(
5816 self,
5817 encoder: &mut fidl::encoding::Encoder<'_, D>,
5818 offset: usize,
5819 mut depth: fidl::encoding::Depth,
5820 ) -> fidl::Result<()> {
5821 encoder.debug_check_bounds::<WlanFullmacImplEapolTxRequest>(offset);
5822 let max_ordinal: u64 = self.max_ordinal_present();
5824 encoder.write_num(max_ordinal, offset);
5825 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
5826 if max_ordinal == 0 {
5828 return Ok(());
5829 }
5830 depth.increment()?;
5831 let envelope_size = 8;
5832 let bytes_len = max_ordinal as usize * envelope_size;
5833 #[allow(unused_variables)]
5834 let offset = encoder.out_of_line_offset(bytes_len);
5835 let mut _prev_end_offset: usize = 0;
5836 if 1 > max_ordinal {
5837 return Ok(());
5838 }
5839
5840 let cur_offset: usize = (1 - 1) * envelope_size;
5843
5844 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5846
5847 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
5852 self.src_addr
5853 .as_ref()
5854 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
5855 encoder,
5856 offset + cur_offset,
5857 depth,
5858 )?;
5859
5860 _prev_end_offset = cur_offset + envelope_size;
5861 if 2 > max_ordinal {
5862 return Ok(());
5863 }
5864
5865 let cur_offset: usize = (2 - 1) * envelope_size;
5868
5869 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5871
5872 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
5877 self.dst_addr
5878 .as_ref()
5879 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
5880 encoder,
5881 offset + cur_offset,
5882 depth,
5883 )?;
5884
5885 _prev_end_offset = cur_offset + envelope_size;
5886 if 3 > max_ordinal {
5887 return Ok(());
5888 }
5889
5890 let cur_offset: usize = (3 - 1) * envelope_size;
5893
5894 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5896
5897 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<u8>, D>(
5902 self.data.as_ref().map(<fidl::encoding::UnboundedVector<u8> as fidl::encoding::ValueTypeMarker>::borrow),
5903 encoder, offset + cur_offset, depth
5904 )?;
5905
5906 _prev_end_offset = cur_offset + envelope_size;
5907
5908 Ok(())
5909 }
5910 }
5911
5912 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
5913 for WlanFullmacImplEapolTxRequest
5914 {
5915 #[inline(always)]
5916 fn new_empty() -> Self {
5917 Self::default()
5918 }
5919
5920 unsafe fn decode(
5921 &mut self,
5922 decoder: &mut fidl::encoding::Decoder<'_, D>,
5923 offset: usize,
5924 mut depth: fidl::encoding::Depth,
5925 ) -> fidl::Result<()> {
5926 decoder.debug_check_bounds::<Self>(offset);
5927 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
5928 None => return Err(fidl::Error::NotNullable),
5929 Some(len) => len,
5930 };
5931 if len == 0 {
5933 return Ok(());
5934 };
5935 depth.increment()?;
5936 let envelope_size = 8;
5937 let bytes_len = len * envelope_size;
5938 let offset = decoder.out_of_line_offset(bytes_len)?;
5939 let mut _next_ordinal_to_read = 0;
5941 let mut next_offset = offset;
5942 let end_offset = offset + bytes_len;
5943 _next_ordinal_to_read += 1;
5944 if next_offset >= end_offset {
5945 return Ok(());
5946 }
5947
5948 while _next_ordinal_to_read < 1 {
5950 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5951 _next_ordinal_to_read += 1;
5952 next_offset += envelope_size;
5953 }
5954
5955 let next_out_of_line = decoder.next_out_of_line();
5956 let handles_before = decoder.remaining_handles();
5957 if let Some((inlined, num_bytes, num_handles)) =
5958 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5959 {
5960 let member_inline_size =
5961 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
5962 decoder.context,
5963 );
5964 if inlined != (member_inline_size <= 4) {
5965 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5966 }
5967 let inner_offset;
5968 let mut inner_depth = depth.clone();
5969 if inlined {
5970 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5971 inner_offset = next_offset;
5972 } else {
5973 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5974 inner_depth.increment()?;
5975 }
5976 let val_ref = self
5977 .src_addr
5978 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
5979 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
5980 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5981 {
5982 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5983 }
5984 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5985 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5986 }
5987 }
5988
5989 next_offset += envelope_size;
5990 _next_ordinal_to_read += 1;
5991 if next_offset >= end_offset {
5992 return Ok(());
5993 }
5994
5995 while _next_ordinal_to_read < 2 {
5997 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5998 _next_ordinal_to_read += 1;
5999 next_offset += envelope_size;
6000 }
6001
6002 let next_out_of_line = decoder.next_out_of_line();
6003 let handles_before = decoder.remaining_handles();
6004 if let Some((inlined, num_bytes, num_handles)) =
6005 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6006 {
6007 let member_inline_size =
6008 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
6009 decoder.context,
6010 );
6011 if inlined != (member_inline_size <= 4) {
6012 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6013 }
6014 let inner_offset;
6015 let mut inner_depth = depth.clone();
6016 if inlined {
6017 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6018 inner_offset = next_offset;
6019 } else {
6020 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6021 inner_depth.increment()?;
6022 }
6023 let val_ref = self
6024 .dst_addr
6025 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
6026 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
6027 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6028 {
6029 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6030 }
6031 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6032 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6033 }
6034 }
6035
6036 next_offset += envelope_size;
6037 _next_ordinal_to_read += 1;
6038 if next_offset >= end_offset {
6039 return Ok(());
6040 }
6041
6042 while _next_ordinal_to_read < 3 {
6044 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6045 _next_ordinal_to_read += 1;
6046 next_offset += envelope_size;
6047 }
6048
6049 let next_out_of_line = decoder.next_out_of_line();
6050 let handles_before = decoder.remaining_handles();
6051 if let Some((inlined, num_bytes, num_handles)) =
6052 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6053 {
6054 let member_inline_size = <fidl::encoding::UnboundedVector<u8> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6055 if inlined != (member_inline_size <= 4) {
6056 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6057 }
6058 let inner_offset;
6059 let mut inner_depth = depth.clone();
6060 if inlined {
6061 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6062 inner_offset = next_offset;
6063 } else {
6064 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6065 inner_depth.increment()?;
6066 }
6067 let val_ref = self.data.get_or_insert_with(|| {
6068 fidl::new_empty!(fidl::encoding::UnboundedVector<u8>, D)
6069 });
6070 fidl::decode!(
6071 fidl::encoding::UnboundedVector<u8>,
6072 D,
6073 val_ref,
6074 decoder,
6075 inner_offset,
6076 inner_depth
6077 )?;
6078 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6079 {
6080 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6081 }
6082 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6083 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6084 }
6085 }
6086
6087 next_offset += envelope_size;
6088
6089 while next_offset < end_offset {
6091 _next_ordinal_to_read += 1;
6092 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6093 next_offset += envelope_size;
6094 }
6095
6096 Ok(())
6097 }
6098 }
6099
6100 impl WlanFullmacImplIfcAssocIndRequest {
6101 #[inline(always)]
6102 fn max_ordinal_present(&self) -> u64 {
6103 if let Some(_) = self.vendor_ie {
6104 return 5;
6105 }
6106 if let Some(_) = self.rsne {
6107 return 4;
6108 }
6109 if let Some(_) = self.ssid {
6110 return 3;
6111 }
6112 if let Some(_) = self.listen_interval {
6113 return 2;
6114 }
6115 if let Some(_) = self.peer_sta_address {
6116 return 1;
6117 }
6118 0
6119 }
6120 }
6121
6122 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcAssocIndRequest {
6123 type Borrowed<'a> = &'a Self;
6124 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
6125 value
6126 }
6127 }
6128
6129 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcAssocIndRequest {
6130 type Owned = Self;
6131
6132 #[inline(always)]
6133 fn inline_align(_context: fidl::encoding::Context) -> usize {
6134 8
6135 }
6136
6137 #[inline(always)]
6138 fn inline_size(_context: fidl::encoding::Context) -> usize {
6139 16
6140 }
6141 }
6142
6143 unsafe impl<D: fidl::encoding::ResourceDialect>
6144 fidl::encoding::Encode<WlanFullmacImplIfcAssocIndRequest, D>
6145 for &WlanFullmacImplIfcAssocIndRequest
6146 {
6147 unsafe fn encode(
6148 self,
6149 encoder: &mut fidl::encoding::Encoder<'_, D>,
6150 offset: usize,
6151 mut depth: fidl::encoding::Depth,
6152 ) -> fidl::Result<()> {
6153 encoder.debug_check_bounds::<WlanFullmacImplIfcAssocIndRequest>(offset);
6154 let max_ordinal: u64 = self.max_ordinal_present();
6156 encoder.write_num(max_ordinal, offset);
6157 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
6158 if max_ordinal == 0 {
6160 return Ok(());
6161 }
6162 depth.increment()?;
6163 let envelope_size = 8;
6164 let bytes_len = max_ordinal as usize * envelope_size;
6165 #[allow(unused_variables)]
6166 let offset = encoder.out_of_line_offset(bytes_len);
6167 let mut _prev_end_offset: usize = 0;
6168 if 1 > max_ordinal {
6169 return Ok(());
6170 }
6171
6172 let cur_offset: usize = (1 - 1) * envelope_size;
6175
6176 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6178
6179 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
6184 self.peer_sta_address
6185 .as_ref()
6186 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
6187 encoder,
6188 offset + cur_offset,
6189 depth,
6190 )?;
6191
6192 _prev_end_offset = cur_offset + envelope_size;
6193 if 2 > max_ordinal {
6194 return Ok(());
6195 }
6196
6197 let cur_offset: usize = (2 - 1) * envelope_size;
6200
6201 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6203
6204 fidl::encoding::encode_in_envelope_optional::<u16, D>(
6209 self.listen_interval.as_ref().map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
6210 encoder,
6211 offset + cur_offset,
6212 depth,
6213 )?;
6214
6215 _prev_end_offset = cur_offset + envelope_size;
6216 if 3 > max_ordinal {
6217 return Ok(());
6218 }
6219
6220 let cur_offset: usize = (3 - 1) * envelope_size;
6223
6224 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6226
6227 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<u8, 32>, D>(
6232 self.ssid.as_ref().map(
6233 <fidl::encoding::Vector<u8, 32> as fidl::encoding::ValueTypeMarker>::borrow,
6234 ),
6235 encoder,
6236 offset + cur_offset,
6237 depth,
6238 )?;
6239
6240 _prev_end_offset = cur_offset + envelope_size;
6241 if 4 > max_ordinal {
6242 return Ok(());
6243 }
6244
6245 let cur_offset: usize = (4 - 1) * envelope_size;
6248
6249 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6251
6252 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<u8, 257>, D>(
6257 self.rsne.as_ref().map(
6258 <fidl::encoding::Vector<u8, 257> as fidl::encoding::ValueTypeMarker>::borrow,
6259 ),
6260 encoder,
6261 offset + cur_offset,
6262 depth,
6263 )?;
6264
6265 _prev_end_offset = cur_offset + envelope_size;
6266 if 5 > max_ordinal {
6267 return Ok(());
6268 }
6269
6270 let cur_offset: usize = (5 - 1) * envelope_size;
6273
6274 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6276
6277 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<u8, 514>, D>(
6282 self.vendor_ie.as_ref().map(
6283 <fidl::encoding::Vector<u8, 514> as fidl::encoding::ValueTypeMarker>::borrow,
6284 ),
6285 encoder,
6286 offset + cur_offset,
6287 depth,
6288 )?;
6289
6290 _prev_end_offset = cur_offset + envelope_size;
6291
6292 Ok(())
6293 }
6294 }
6295
6296 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
6297 for WlanFullmacImplIfcAssocIndRequest
6298 {
6299 #[inline(always)]
6300 fn new_empty() -> Self {
6301 Self::default()
6302 }
6303
6304 unsafe fn decode(
6305 &mut self,
6306 decoder: &mut fidl::encoding::Decoder<'_, D>,
6307 offset: usize,
6308 mut depth: fidl::encoding::Depth,
6309 ) -> fidl::Result<()> {
6310 decoder.debug_check_bounds::<Self>(offset);
6311 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
6312 None => return Err(fidl::Error::NotNullable),
6313 Some(len) => len,
6314 };
6315 if len == 0 {
6317 return Ok(());
6318 };
6319 depth.increment()?;
6320 let envelope_size = 8;
6321 let bytes_len = len * envelope_size;
6322 let offset = decoder.out_of_line_offset(bytes_len)?;
6323 let mut _next_ordinal_to_read = 0;
6325 let mut next_offset = offset;
6326 let end_offset = offset + bytes_len;
6327 _next_ordinal_to_read += 1;
6328 if next_offset >= end_offset {
6329 return Ok(());
6330 }
6331
6332 while _next_ordinal_to_read < 1 {
6334 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6335 _next_ordinal_to_read += 1;
6336 next_offset += envelope_size;
6337 }
6338
6339 let next_out_of_line = decoder.next_out_of_line();
6340 let handles_before = decoder.remaining_handles();
6341 if let Some((inlined, num_bytes, num_handles)) =
6342 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6343 {
6344 let member_inline_size =
6345 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
6346 decoder.context,
6347 );
6348 if inlined != (member_inline_size <= 4) {
6349 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6350 }
6351 let inner_offset;
6352 let mut inner_depth = depth.clone();
6353 if inlined {
6354 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6355 inner_offset = next_offset;
6356 } else {
6357 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6358 inner_depth.increment()?;
6359 }
6360 let val_ref = self
6361 .peer_sta_address
6362 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
6363 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
6364 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6365 {
6366 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6367 }
6368 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6369 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6370 }
6371 }
6372
6373 next_offset += envelope_size;
6374 _next_ordinal_to_read += 1;
6375 if next_offset >= end_offset {
6376 return Ok(());
6377 }
6378
6379 while _next_ordinal_to_read < 2 {
6381 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6382 _next_ordinal_to_read += 1;
6383 next_offset += envelope_size;
6384 }
6385
6386 let next_out_of_line = decoder.next_out_of_line();
6387 let handles_before = decoder.remaining_handles();
6388 if let Some((inlined, num_bytes, num_handles)) =
6389 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6390 {
6391 let member_inline_size =
6392 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6393 if inlined != (member_inline_size <= 4) {
6394 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6395 }
6396 let inner_offset;
6397 let mut inner_depth = depth.clone();
6398 if inlined {
6399 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6400 inner_offset = next_offset;
6401 } else {
6402 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6403 inner_depth.increment()?;
6404 }
6405 let val_ref = self.listen_interval.get_or_insert_with(|| fidl::new_empty!(u16, D));
6406 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
6407 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6408 {
6409 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6410 }
6411 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6412 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6413 }
6414 }
6415
6416 next_offset += envelope_size;
6417 _next_ordinal_to_read += 1;
6418 if next_offset >= end_offset {
6419 return Ok(());
6420 }
6421
6422 while _next_ordinal_to_read < 3 {
6424 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6425 _next_ordinal_to_read += 1;
6426 next_offset += envelope_size;
6427 }
6428
6429 let next_out_of_line = decoder.next_out_of_line();
6430 let handles_before = decoder.remaining_handles();
6431 if let Some((inlined, num_bytes, num_handles)) =
6432 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6433 {
6434 let member_inline_size =
6435 <fidl::encoding::Vector<u8, 32> as fidl::encoding::TypeMarker>::inline_size(
6436 decoder.context,
6437 );
6438 if inlined != (member_inline_size <= 4) {
6439 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6440 }
6441 let inner_offset;
6442 let mut inner_depth = depth.clone();
6443 if inlined {
6444 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6445 inner_offset = next_offset;
6446 } else {
6447 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6448 inner_depth.increment()?;
6449 }
6450 let val_ref = self
6451 .ssid
6452 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<u8, 32>, D));
6453 fidl::decode!(fidl::encoding::Vector<u8, 32>, D, val_ref, decoder, inner_offset, inner_depth)?;
6454 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6455 {
6456 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6457 }
6458 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6459 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6460 }
6461 }
6462
6463 next_offset += envelope_size;
6464 _next_ordinal_to_read += 1;
6465 if next_offset >= end_offset {
6466 return Ok(());
6467 }
6468
6469 while _next_ordinal_to_read < 4 {
6471 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6472 _next_ordinal_to_read += 1;
6473 next_offset += envelope_size;
6474 }
6475
6476 let next_out_of_line = decoder.next_out_of_line();
6477 let handles_before = decoder.remaining_handles();
6478 if let Some((inlined, num_bytes, num_handles)) =
6479 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6480 {
6481 let member_inline_size =
6482 <fidl::encoding::Vector<u8, 257> as fidl::encoding::TypeMarker>::inline_size(
6483 decoder.context,
6484 );
6485 if inlined != (member_inline_size <= 4) {
6486 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6487 }
6488 let inner_offset;
6489 let mut inner_depth = depth.clone();
6490 if inlined {
6491 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6492 inner_offset = next_offset;
6493 } else {
6494 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6495 inner_depth.increment()?;
6496 }
6497 let val_ref = self
6498 .rsne
6499 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<u8, 257>, D));
6500 fidl::decode!(fidl::encoding::Vector<u8, 257>, D, val_ref, decoder, inner_offset, inner_depth)?;
6501 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6502 {
6503 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6504 }
6505 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6506 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6507 }
6508 }
6509
6510 next_offset += envelope_size;
6511 _next_ordinal_to_read += 1;
6512 if next_offset >= end_offset {
6513 return Ok(());
6514 }
6515
6516 while _next_ordinal_to_read < 5 {
6518 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6519 _next_ordinal_to_read += 1;
6520 next_offset += envelope_size;
6521 }
6522
6523 let next_out_of_line = decoder.next_out_of_line();
6524 let handles_before = decoder.remaining_handles();
6525 if let Some((inlined, num_bytes, num_handles)) =
6526 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6527 {
6528 let member_inline_size =
6529 <fidl::encoding::Vector<u8, 514> as fidl::encoding::TypeMarker>::inline_size(
6530 decoder.context,
6531 );
6532 if inlined != (member_inline_size <= 4) {
6533 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6534 }
6535 let inner_offset;
6536 let mut inner_depth = depth.clone();
6537 if inlined {
6538 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6539 inner_offset = next_offset;
6540 } else {
6541 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6542 inner_depth.increment()?;
6543 }
6544 let val_ref = self
6545 .vendor_ie
6546 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<u8, 514>, D));
6547 fidl::decode!(fidl::encoding::Vector<u8, 514>, D, val_ref, decoder, inner_offset, inner_depth)?;
6548 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6549 {
6550 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6551 }
6552 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6553 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6554 }
6555 }
6556
6557 next_offset += envelope_size;
6558
6559 while next_offset < end_offset {
6561 _next_ordinal_to_read += 1;
6562 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6563 next_offset += envelope_size;
6564 }
6565
6566 Ok(())
6567 }
6568 }
6569
6570 impl WlanFullmacImplIfcAuthIndRequest {
6571 #[inline(always)]
6572 fn max_ordinal_present(&self) -> u64 {
6573 if let Some(_) = self.auth_type {
6574 return 2;
6575 }
6576 if let Some(_) = self.peer_sta_address {
6577 return 1;
6578 }
6579 0
6580 }
6581 }
6582
6583 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcAuthIndRequest {
6584 type Borrowed<'a> = &'a Self;
6585 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
6586 value
6587 }
6588 }
6589
6590 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcAuthIndRequest {
6591 type Owned = Self;
6592
6593 #[inline(always)]
6594 fn inline_align(_context: fidl::encoding::Context) -> usize {
6595 8
6596 }
6597
6598 #[inline(always)]
6599 fn inline_size(_context: fidl::encoding::Context) -> usize {
6600 16
6601 }
6602 }
6603
6604 unsafe impl<D: fidl::encoding::ResourceDialect>
6605 fidl::encoding::Encode<WlanFullmacImplIfcAuthIndRequest, D>
6606 for &WlanFullmacImplIfcAuthIndRequest
6607 {
6608 unsafe fn encode(
6609 self,
6610 encoder: &mut fidl::encoding::Encoder<'_, D>,
6611 offset: usize,
6612 mut depth: fidl::encoding::Depth,
6613 ) -> fidl::Result<()> {
6614 encoder.debug_check_bounds::<WlanFullmacImplIfcAuthIndRequest>(offset);
6615 let max_ordinal: u64 = self.max_ordinal_present();
6617 encoder.write_num(max_ordinal, offset);
6618 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
6619 if max_ordinal == 0 {
6621 return Ok(());
6622 }
6623 depth.increment()?;
6624 let envelope_size = 8;
6625 let bytes_len = max_ordinal as usize * envelope_size;
6626 #[allow(unused_variables)]
6627 let offset = encoder.out_of_line_offset(bytes_len);
6628 let mut _prev_end_offset: usize = 0;
6629 if 1 > max_ordinal {
6630 return Ok(());
6631 }
6632
6633 let cur_offset: usize = (1 - 1) * envelope_size;
6636
6637 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6639
6640 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
6645 self.peer_sta_address
6646 .as_ref()
6647 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
6648 encoder,
6649 offset + cur_offset,
6650 depth,
6651 )?;
6652
6653 _prev_end_offset = cur_offset + envelope_size;
6654 if 2 > max_ordinal {
6655 return Ok(());
6656 }
6657
6658 let cur_offset: usize = (2 - 1) * envelope_size;
6661
6662 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6664
6665 fidl::encoding::encode_in_envelope_optional::<WlanAuthType, D>(
6670 self.auth_type
6671 .as_ref()
6672 .map(<WlanAuthType as fidl::encoding::ValueTypeMarker>::borrow),
6673 encoder,
6674 offset + cur_offset,
6675 depth,
6676 )?;
6677
6678 _prev_end_offset = cur_offset + envelope_size;
6679
6680 Ok(())
6681 }
6682 }
6683
6684 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
6685 for WlanFullmacImplIfcAuthIndRequest
6686 {
6687 #[inline(always)]
6688 fn new_empty() -> Self {
6689 Self::default()
6690 }
6691
6692 unsafe fn decode(
6693 &mut self,
6694 decoder: &mut fidl::encoding::Decoder<'_, D>,
6695 offset: usize,
6696 mut depth: fidl::encoding::Depth,
6697 ) -> fidl::Result<()> {
6698 decoder.debug_check_bounds::<Self>(offset);
6699 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
6700 None => return Err(fidl::Error::NotNullable),
6701 Some(len) => len,
6702 };
6703 if len == 0 {
6705 return Ok(());
6706 };
6707 depth.increment()?;
6708 let envelope_size = 8;
6709 let bytes_len = len * envelope_size;
6710 let offset = decoder.out_of_line_offset(bytes_len)?;
6711 let mut _next_ordinal_to_read = 0;
6713 let mut next_offset = offset;
6714 let end_offset = offset + bytes_len;
6715 _next_ordinal_to_read += 1;
6716 if next_offset >= end_offset {
6717 return Ok(());
6718 }
6719
6720 while _next_ordinal_to_read < 1 {
6722 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6723 _next_ordinal_to_read += 1;
6724 next_offset += envelope_size;
6725 }
6726
6727 let next_out_of_line = decoder.next_out_of_line();
6728 let handles_before = decoder.remaining_handles();
6729 if let Some((inlined, num_bytes, num_handles)) =
6730 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6731 {
6732 let member_inline_size =
6733 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
6734 decoder.context,
6735 );
6736 if inlined != (member_inline_size <= 4) {
6737 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6738 }
6739 let inner_offset;
6740 let mut inner_depth = depth.clone();
6741 if inlined {
6742 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6743 inner_offset = next_offset;
6744 } else {
6745 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6746 inner_depth.increment()?;
6747 }
6748 let val_ref = self
6749 .peer_sta_address
6750 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
6751 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
6752 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6753 {
6754 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6755 }
6756 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6757 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6758 }
6759 }
6760
6761 next_offset += envelope_size;
6762 _next_ordinal_to_read += 1;
6763 if next_offset >= end_offset {
6764 return Ok(());
6765 }
6766
6767 while _next_ordinal_to_read < 2 {
6769 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6770 _next_ordinal_to_read += 1;
6771 next_offset += envelope_size;
6772 }
6773
6774 let next_out_of_line = decoder.next_out_of_line();
6775 let handles_before = decoder.remaining_handles();
6776 if let Some((inlined, num_bytes, num_handles)) =
6777 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6778 {
6779 let member_inline_size =
6780 <WlanAuthType as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6781 if inlined != (member_inline_size <= 4) {
6782 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6783 }
6784 let inner_offset;
6785 let mut inner_depth = depth.clone();
6786 if inlined {
6787 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6788 inner_offset = next_offset;
6789 } else {
6790 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6791 inner_depth.increment()?;
6792 }
6793 let val_ref =
6794 self.auth_type.get_or_insert_with(|| fidl::new_empty!(WlanAuthType, D));
6795 fidl::decode!(WlanAuthType, D, val_ref, decoder, inner_offset, inner_depth)?;
6796 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6797 {
6798 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6799 }
6800 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6801 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6802 }
6803 }
6804
6805 next_offset += envelope_size;
6806
6807 while next_offset < end_offset {
6809 _next_ordinal_to_read += 1;
6810 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6811 next_offset += envelope_size;
6812 }
6813
6814 Ok(())
6815 }
6816 }
6817
6818 impl WlanFullmacImplIfcConnectConfRequest {
6819 #[inline(always)]
6820 fn max_ordinal_present(&self) -> u64 {
6821 if let Some(_) = self.association_ies {
6822 return 4;
6823 }
6824 if let Some(_) = self.association_id {
6825 return 3;
6826 }
6827 if let Some(_) = self.result_code {
6828 return 2;
6829 }
6830 if let Some(_) = self.peer_sta_address {
6831 return 1;
6832 }
6833 0
6834 }
6835 }
6836
6837 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcConnectConfRequest {
6838 type Borrowed<'a> = &'a Self;
6839 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
6840 value
6841 }
6842 }
6843
6844 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcConnectConfRequest {
6845 type Owned = Self;
6846
6847 #[inline(always)]
6848 fn inline_align(_context: fidl::encoding::Context) -> usize {
6849 8
6850 }
6851
6852 #[inline(always)]
6853 fn inline_size(_context: fidl::encoding::Context) -> usize {
6854 16
6855 }
6856 }
6857
6858 unsafe impl<D: fidl::encoding::ResourceDialect>
6859 fidl::encoding::Encode<WlanFullmacImplIfcConnectConfRequest, D>
6860 for &WlanFullmacImplIfcConnectConfRequest
6861 {
6862 unsafe fn encode(
6863 self,
6864 encoder: &mut fidl::encoding::Encoder<'_, D>,
6865 offset: usize,
6866 mut depth: fidl::encoding::Depth,
6867 ) -> fidl::Result<()> {
6868 encoder.debug_check_bounds::<WlanFullmacImplIfcConnectConfRequest>(offset);
6869 let max_ordinal: u64 = self.max_ordinal_present();
6871 encoder.write_num(max_ordinal, offset);
6872 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
6873 if max_ordinal == 0 {
6875 return Ok(());
6876 }
6877 depth.increment()?;
6878 let envelope_size = 8;
6879 let bytes_len = max_ordinal as usize * envelope_size;
6880 #[allow(unused_variables)]
6881 let offset = encoder.out_of_line_offset(bytes_len);
6882 let mut _prev_end_offset: usize = 0;
6883 if 1 > max_ordinal {
6884 return Ok(());
6885 }
6886
6887 let cur_offset: usize = (1 - 1) * envelope_size;
6890
6891 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6893
6894 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
6899 self.peer_sta_address
6900 .as_ref()
6901 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
6902 encoder,
6903 offset + cur_offset,
6904 depth,
6905 )?;
6906
6907 _prev_end_offset = cur_offset + envelope_size;
6908 if 2 > max_ordinal {
6909 return Ok(());
6910 }
6911
6912 let cur_offset: usize = (2 - 1) * envelope_size;
6915
6916 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6918
6919 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_ieee80211_common::StatusCode, D>(
6924 self.result_code.as_ref().map(<fidl_fuchsia_wlan_ieee80211_common::StatusCode as fidl::encoding::ValueTypeMarker>::borrow),
6925 encoder, offset + cur_offset, depth
6926 )?;
6927
6928 _prev_end_offset = cur_offset + envelope_size;
6929 if 3 > max_ordinal {
6930 return Ok(());
6931 }
6932
6933 let cur_offset: usize = (3 - 1) * envelope_size;
6936
6937 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6939
6940 fidl::encoding::encode_in_envelope_optional::<u16, D>(
6945 self.association_id.as_ref().map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
6946 encoder,
6947 offset + cur_offset,
6948 depth,
6949 )?;
6950
6951 _prev_end_offset = cur_offset + envelope_size;
6952 if 4 > max_ordinal {
6953 return Ok(());
6954 }
6955
6956 let cur_offset: usize = (4 - 1) * envelope_size;
6959
6960 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6962
6963 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<u8>, D>(
6968 self.association_ies.as_ref().map(<fidl::encoding::UnboundedVector<u8> as fidl::encoding::ValueTypeMarker>::borrow),
6969 encoder, offset + cur_offset, depth
6970 )?;
6971
6972 _prev_end_offset = cur_offset + envelope_size;
6973
6974 Ok(())
6975 }
6976 }
6977
6978 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
6979 for WlanFullmacImplIfcConnectConfRequest
6980 {
6981 #[inline(always)]
6982 fn new_empty() -> Self {
6983 Self::default()
6984 }
6985
6986 unsafe fn decode(
6987 &mut self,
6988 decoder: &mut fidl::encoding::Decoder<'_, D>,
6989 offset: usize,
6990 mut depth: fidl::encoding::Depth,
6991 ) -> fidl::Result<()> {
6992 decoder.debug_check_bounds::<Self>(offset);
6993 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
6994 None => return Err(fidl::Error::NotNullable),
6995 Some(len) => len,
6996 };
6997 if len == 0 {
6999 return Ok(());
7000 };
7001 depth.increment()?;
7002 let envelope_size = 8;
7003 let bytes_len = len * envelope_size;
7004 let offset = decoder.out_of_line_offset(bytes_len)?;
7005 let mut _next_ordinal_to_read = 0;
7007 let mut next_offset = offset;
7008 let end_offset = offset + bytes_len;
7009 _next_ordinal_to_read += 1;
7010 if next_offset >= end_offset {
7011 return Ok(());
7012 }
7013
7014 while _next_ordinal_to_read < 1 {
7016 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7017 _next_ordinal_to_read += 1;
7018 next_offset += envelope_size;
7019 }
7020
7021 let next_out_of_line = decoder.next_out_of_line();
7022 let handles_before = decoder.remaining_handles();
7023 if let Some((inlined, num_bytes, num_handles)) =
7024 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7025 {
7026 let member_inline_size =
7027 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
7028 decoder.context,
7029 );
7030 if inlined != (member_inline_size <= 4) {
7031 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7032 }
7033 let inner_offset;
7034 let mut inner_depth = depth.clone();
7035 if inlined {
7036 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7037 inner_offset = next_offset;
7038 } else {
7039 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7040 inner_depth.increment()?;
7041 }
7042 let val_ref = self
7043 .peer_sta_address
7044 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
7045 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
7046 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7047 {
7048 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7049 }
7050 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7051 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7052 }
7053 }
7054
7055 next_offset += envelope_size;
7056 _next_ordinal_to_read += 1;
7057 if next_offset >= end_offset {
7058 return Ok(());
7059 }
7060
7061 while _next_ordinal_to_read < 2 {
7063 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7064 _next_ordinal_to_read += 1;
7065 next_offset += envelope_size;
7066 }
7067
7068 let next_out_of_line = decoder.next_out_of_line();
7069 let handles_before = decoder.remaining_handles();
7070 if let Some((inlined, num_bytes, num_handles)) =
7071 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7072 {
7073 let member_inline_size = <fidl_fuchsia_wlan_ieee80211_common::StatusCode as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7074 if inlined != (member_inline_size <= 4) {
7075 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7076 }
7077 let inner_offset;
7078 let mut inner_depth = depth.clone();
7079 if inlined {
7080 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7081 inner_offset = next_offset;
7082 } else {
7083 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7084 inner_depth.increment()?;
7085 }
7086 let val_ref = self.result_code.get_or_insert_with(|| {
7087 fidl::new_empty!(fidl_fuchsia_wlan_ieee80211_common::StatusCode, D)
7088 });
7089 fidl::decode!(
7090 fidl_fuchsia_wlan_ieee80211_common::StatusCode,
7091 D,
7092 val_ref,
7093 decoder,
7094 inner_offset,
7095 inner_depth
7096 )?;
7097 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7098 {
7099 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7100 }
7101 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7102 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7103 }
7104 }
7105
7106 next_offset += envelope_size;
7107 _next_ordinal_to_read += 1;
7108 if next_offset >= end_offset {
7109 return Ok(());
7110 }
7111
7112 while _next_ordinal_to_read < 3 {
7114 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7115 _next_ordinal_to_read += 1;
7116 next_offset += envelope_size;
7117 }
7118
7119 let next_out_of_line = decoder.next_out_of_line();
7120 let handles_before = decoder.remaining_handles();
7121 if let Some((inlined, num_bytes, num_handles)) =
7122 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7123 {
7124 let member_inline_size =
7125 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7126 if inlined != (member_inline_size <= 4) {
7127 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7128 }
7129 let inner_offset;
7130 let mut inner_depth = depth.clone();
7131 if inlined {
7132 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7133 inner_offset = next_offset;
7134 } else {
7135 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7136 inner_depth.increment()?;
7137 }
7138 let val_ref = self.association_id.get_or_insert_with(|| fidl::new_empty!(u16, D));
7139 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
7140 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7141 {
7142 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7143 }
7144 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7145 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7146 }
7147 }
7148
7149 next_offset += envelope_size;
7150 _next_ordinal_to_read += 1;
7151 if next_offset >= end_offset {
7152 return Ok(());
7153 }
7154
7155 while _next_ordinal_to_read < 4 {
7157 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7158 _next_ordinal_to_read += 1;
7159 next_offset += envelope_size;
7160 }
7161
7162 let next_out_of_line = decoder.next_out_of_line();
7163 let handles_before = decoder.remaining_handles();
7164 if let Some((inlined, num_bytes, num_handles)) =
7165 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7166 {
7167 let member_inline_size = <fidl::encoding::UnboundedVector<u8> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7168 if inlined != (member_inline_size <= 4) {
7169 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7170 }
7171 let inner_offset;
7172 let mut inner_depth = depth.clone();
7173 if inlined {
7174 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7175 inner_offset = next_offset;
7176 } else {
7177 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7178 inner_depth.increment()?;
7179 }
7180 let val_ref = self.association_ies.get_or_insert_with(|| {
7181 fidl::new_empty!(fidl::encoding::UnboundedVector<u8>, D)
7182 });
7183 fidl::decode!(
7184 fidl::encoding::UnboundedVector<u8>,
7185 D,
7186 val_ref,
7187 decoder,
7188 inner_offset,
7189 inner_depth
7190 )?;
7191 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7192 {
7193 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7194 }
7195 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7196 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7197 }
7198 }
7199
7200 next_offset += envelope_size;
7201
7202 while next_offset < end_offset {
7204 _next_ordinal_to_read += 1;
7205 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7206 next_offset += envelope_size;
7207 }
7208
7209 Ok(())
7210 }
7211 }
7212
7213 impl WlanFullmacImplIfcDeauthConfRequest {
7214 #[inline(always)]
7215 fn max_ordinal_present(&self) -> u64 {
7216 if let Some(_) = self.peer_sta_address {
7217 return 1;
7218 }
7219 0
7220 }
7221 }
7222
7223 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcDeauthConfRequest {
7224 type Borrowed<'a> = &'a Self;
7225 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
7226 value
7227 }
7228 }
7229
7230 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcDeauthConfRequest {
7231 type Owned = Self;
7232
7233 #[inline(always)]
7234 fn inline_align(_context: fidl::encoding::Context) -> usize {
7235 8
7236 }
7237
7238 #[inline(always)]
7239 fn inline_size(_context: fidl::encoding::Context) -> usize {
7240 16
7241 }
7242 }
7243
7244 unsafe impl<D: fidl::encoding::ResourceDialect>
7245 fidl::encoding::Encode<WlanFullmacImplIfcDeauthConfRequest, D>
7246 for &WlanFullmacImplIfcDeauthConfRequest
7247 {
7248 unsafe fn encode(
7249 self,
7250 encoder: &mut fidl::encoding::Encoder<'_, D>,
7251 offset: usize,
7252 mut depth: fidl::encoding::Depth,
7253 ) -> fidl::Result<()> {
7254 encoder.debug_check_bounds::<WlanFullmacImplIfcDeauthConfRequest>(offset);
7255 let max_ordinal: u64 = self.max_ordinal_present();
7257 encoder.write_num(max_ordinal, offset);
7258 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
7259 if max_ordinal == 0 {
7261 return Ok(());
7262 }
7263 depth.increment()?;
7264 let envelope_size = 8;
7265 let bytes_len = max_ordinal as usize * envelope_size;
7266 #[allow(unused_variables)]
7267 let offset = encoder.out_of_line_offset(bytes_len);
7268 let mut _prev_end_offset: usize = 0;
7269 if 1 > max_ordinal {
7270 return Ok(());
7271 }
7272
7273 let cur_offset: usize = (1 - 1) * envelope_size;
7276
7277 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7279
7280 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
7285 self.peer_sta_address
7286 .as_ref()
7287 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
7288 encoder,
7289 offset + cur_offset,
7290 depth,
7291 )?;
7292
7293 _prev_end_offset = cur_offset + envelope_size;
7294
7295 Ok(())
7296 }
7297 }
7298
7299 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
7300 for WlanFullmacImplIfcDeauthConfRequest
7301 {
7302 #[inline(always)]
7303 fn new_empty() -> Self {
7304 Self::default()
7305 }
7306
7307 unsafe fn decode(
7308 &mut self,
7309 decoder: &mut fidl::encoding::Decoder<'_, D>,
7310 offset: usize,
7311 mut depth: fidl::encoding::Depth,
7312 ) -> fidl::Result<()> {
7313 decoder.debug_check_bounds::<Self>(offset);
7314 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
7315 None => return Err(fidl::Error::NotNullable),
7316 Some(len) => len,
7317 };
7318 if len == 0 {
7320 return Ok(());
7321 };
7322 depth.increment()?;
7323 let envelope_size = 8;
7324 let bytes_len = len * envelope_size;
7325 let offset = decoder.out_of_line_offset(bytes_len)?;
7326 let mut _next_ordinal_to_read = 0;
7328 let mut next_offset = offset;
7329 let end_offset = offset + bytes_len;
7330 _next_ordinal_to_read += 1;
7331 if next_offset >= end_offset {
7332 return Ok(());
7333 }
7334
7335 while _next_ordinal_to_read < 1 {
7337 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7338 _next_ordinal_to_read += 1;
7339 next_offset += envelope_size;
7340 }
7341
7342 let next_out_of_line = decoder.next_out_of_line();
7343 let handles_before = decoder.remaining_handles();
7344 if let Some((inlined, num_bytes, num_handles)) =
7345 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7346 {
7347 let member_inline_size =
7348 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
7349 decoder.context,
7350 );
7351 if inlined != (member_inline_size <= 4) {
7352 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7353 }
7354 let inner_offset;
7355 let mut inner_depth = depth.clone();
7356 if inlined {
7357 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7358 inner_offset = next_offset;
7359 } else {
7360 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7361 inner_depth.increment()?;
7362 }
7363 let val_ref = self
7364 .peer_sta_address
7365 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
7366 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
7367 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7368 {
7369 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7370 }
7371 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7372 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7373 }
7374 }
7375
7376 next_offset += envelope_size;
7377
7378 while next_offset < end_offset {
7380 _next_ordinal_to_read += 1;
7381 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7382 next_offset += envelope_size;
7383 }
7384
7385 Ok(())
7386 }
7387 }
7388
7389 impl WlanFullmacImplIfcDeauthIndRequest {
7390 #[inline(always)]
7391 fn max_ordinal_present(&self) -> u64 {
7392 if let Some(_) = self.locally_initiated {
7393 return 3;
7394 }
7395 if let Some(_) = self.reason_code {
7396 return 2;
7397 }
7398 if let Some(_) = self.peer_sta_address {
7399 return 1;
7400 }
7401 0
7402 }
7403 }
7404
7405 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcDeauthIndRequest {
7406 type Borrowed<'a> = &'a Self;
7407 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
7408 value
7409 }
7410 }
7411
7412 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcDeauthIndRequest {
7413 type Owned = Self;
7414
7415 #[inline(always)]
7416 fn inline_align(_context: fidl::encoding::Context) -> usize {
7417 8
7418 }
7419
7420 #[inline(always)]
7421 fn inline_size(_context: fidl::encoding::Context) -> usize {
7422 16
7423 }
7424 }
7425
7426 unsafe impl<D: fidl::encoding::ResourceDialect>
7427 fidl::encoding::Encode<WlanFullmacImplIfcDeauthIndRequest, D>
7428 for &WlanFullmacImplIfcDeauthIndRequest
7429 {
7430 unsafe fn encode(
7431 self,
7432 encoder: &mut fidl::encoding::Encoder<'_, D>,
7433 offset: usize,
7434 mut depth: fidl::encoding::Depth,
7435 ) -> fidl::Result<()> {
7436 encoder.debug_check_bounds::<WlanFullmacImplIfcDeauthIndRequest>(offset);
7437 let max_ordinal: u64 = self.max_ordinal_present();
7439 encoder.write_num(max_ordinal, offset);
7440 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
7441 if max_ordinal == 0 {
7443 return Ok(());
7444 }
7445 depth.increment()?;
7446 let envelope_size = 8;
7447 let bytes_len = max_ordinal as usize * envelope_size;
7448 #[allow(unused_variables)]
7449 let offset = encoder.out_of_line_offset(bytes_len);
7450 let mut _prev_end_offset: usize = 0;
7451 if 1 > max_ordinal {
7452 return Ok(());
7453 }
7454
7455 let cur_offset: usize = (1 - 1) * envelope_size;
7458
7459 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7461
7462 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
7467 self.peer_sta_address
7468 .as_ref()
7469 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
7470 encoder,
7471 offset + cur_offset,
7472 depth,
7473 )?;
7474
7475 _prev_end_offset = cur_offset + envelope_size;
7476 if 2 > max_ordinal {
7477 return Ok(());
7478 }
7479
7480 let cur_offset: usize = (2 - 1) * envelope_size;
7483
7484 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7486
7487 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_ieee80211_common::ReasonCode, D>(
7492 self.reason_code.as_ref().map(<fidl_fuchsia_wlan_ieee80211_common::ReasonCode as fidl::encoding::ValueTypeMarker>::borrow),
7493 encoder, offset + cur_offset, depth
7494 )?;
7495
7496 _prev_end_offset = cur_offset + envelope_size;
7497 if 3 > max_ordinal {
7498 return Ok(());
7499 }
7500
7501 let cur_offset: usize = (3 - 1) * envelope_size;
7504
7505 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7507
7508 fidl::encoding::encode_in_envelope_optional::<bool, D>(
7513 self.locally_initiated
7514 .as_ref()
7515 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
7516 encoder,
7517 offset + cur_offset,
7518 depth,
7519 )?;
7520
7521 _prev_end_offset = cur_offset + envelope_size;
7522
7523 Ok(())
7524 }
7525 }
7526
7527 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
7528 for WlanFullmacImplIfcDeauthIndRequest
7529 {
7530 #[inline(always)]
7531 fn new_empty() -> Self {
7532 Self::default()
7533 }
7534
7535 unsafe fn decode(
7536 &mut self,
7537 decoder: &mut fidl::encoding::Decoder<'_, D>,
7538 offset: usize,
7539 mut depth: fidl::encoding::Depth,
7540 ) -> fidl::Result<()> {
7541 decoder.debug_check_bounds::<Self>(offset);
7542 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
7543 None => return Err(fidl::Error::NotNullable),
7544 Some(len) => len,
7545 };
7546 if len == 0 {
7548 return Ok(());
7549 };
7550 depth.increment()?;
7551 let envelope_size = 8;
7552 let bytes_len = len * envelope_size;
7553 let offset = decoder.out_of_line_offset(bytes_len)?;
7554 let mut _next_ordinal_to_read = 0;
7556 let mut next_offset = offset;
7557 let end_offset = offset + bytes_len;
7558 _next_ordinal_to_read += 1;
7559 if next_offset >= end_offset {
7560 return Ok(());
7561 }
7562
7563 while _next_ordinal_to_read < 1 {
7565 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7566 _next_ordinal_to_read += 1;
7567 next_offset += envelope_size;
7568 }
7569
7570 let next_out_of_line = decoder.next_out_of_line();
7571 let handles_before = decoder.remaining_handles();
7572 if let Some((inlined, num_bytes, num_handles)) =
7573 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7574 {
7575 let member_inline_size =
7576 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
7577 decoder.context,
7578 );
7579 if inlined != (member_inline_size <= 4) {
7580 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7581 }
7582 let inner_offset;
7583 let mut inner_depth = depth.clone();
7584 if inlined {
7585 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7586 inner_offset = next_offset;
7587 } else {
7588 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7589 inner_depth.increment()?;
7590 }
7591 let val_ref = self
7592 .peer_sta_address
7593 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
7594 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
7595 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7596 {
7597 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7598 }
7599 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7600 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7601 }
7602 }
7603
7604 next_offset += envelope_size;
7605 _next_ordinal_to_read += 1;
7606 if next_offset >= end_offset {
7607 return Ok(());
7608 }
7609
7610 while _next_ordinal_to_read < 2 {
7612 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7613 _next_ordinal_to_read += 1;
7614 next_offset += envelope_size;
7615 }
7616
7617 let next_out_of_line = decoder.next_out_of_line();
7618 let handles_before = decoder.remaining_handles();
7619 if let Some((inlined, num_bytes, num_handles)) =
7620 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7621 {
7622 let member_inline_size = <fidl_fuchsia_wlan_ieee80211_common::ReasonCode as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7623 if inlined != (member_inline_size <= 4) {
7624 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7625 }
7626 let inner_offset;
7627 let mut inner_depth = depth.clone();
7628 if inlined {
7629 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7630 inner_offset = next_offset;
7631 } else {
7632 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7633 inner_depth.increment()?;
7634 }
7635 let val_ref = self.reason_code.get_or_insert_with(|| {
7636 fidl::new_empty!(fidl_fuchsia_wlan_ieee80211_common::ReasonCode, D)
7637 });
7638 fidl::decode!(
7639 fidl_fuchsia_wlan_ieee80211_common::ReasonCode,
7640 D,
7641 val_ref,
7642 decoder,
7643 inner_offset,
7644 inner_depth
7645 )?;
7646 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7647 {
7648 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7649 }
7650 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7651 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7652 }
7653 }
7654
7655 next_offset += envelope_size;
7656 _next_ordinal_to_read += 1;
7657 if next_offset >= end_offset {
7658 return Ok(());
7659 }
7660
7661 while _next_ordinal_to_read < 3 {
7663 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7664 _next_ordinal_to_read += 1;
7665 next_offset += envelope_size;
7666 }
7667
7668 let next_out_of_line = decoder.next_out_of_line();
7669 let handles_before = decoder.remaining_handles();
7670 if let Some((inlined, num_bytes, num_handles)) =
7671 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7672 {
7673 let member_inline_size =
7674 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7675 if inlined != (member_inline_size <= 4) {
7676 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7677 }
7678 let inner_offset;
7679 let mut inner_depth = depth.clone();
7680 if inlined {
7681 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7682 inner_offset = next_offset;
7683 } else {
7684 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7685 inner_depth.increment()?;
7686 }
7687 let val_ref =
7688 self.locally_initiated.get_or_insert_with(|| fidl::new_empty!(bool, D));
7689 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
7690 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7691 {
7692 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7693 }
7694 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7695 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7696 }
7697 }
7698
7699 next_offset += envelope_size;
7700
7701 while next_offset < end_offset {
7703 _next_ordinal_to_read += 1;
7704 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7705 next_offset += envelope_size;
7706 }
7707
7708 Ok(())
7709 }
7710 }
7711
7712 impl WlanFullmacImplIfcDisassocConfRequest {
7713 #[inline(always)]
7714 fn max_ordinal_present(&self) -> u64 {
7715 if let Some(_) = self.status {
7716 return 1;
7717 }
7718 0
7719 }
7720 }
7721
7722 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcDisassocConfRequest {
7723 type Borrowed<'a> = &'a Self;
7724 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
7725 value
7726 }
7727 }
7728
7729 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcDisassocConfRequest {
7730 type Owned = Self;
7731
7732 #[inline(always)]
7733 fn inline_align(_context: fidl::encoding::Context) -> usize {
7734 8
7735 }
7736
7737 #[inline(always)]
7738 fn inline_size(_context: fidl::encoding::Context) -> usize {
7739 16
7740 }
7741 }
7742
7743 unsafe impl<D: fidl::encoding::ResourceDialect>
7744 fidl::encoding::Encode<WlanFullmacImplIfcDisassocConfRequest, D>
7745 for &WlanFullmacImplIfcDisassocConfRequest
7746 {
7747 unsafe fn encode(
7748 self,
7749 encoder: &mut fidl::encoding::Encoder<'_, D>,
7750 offset: usize,
7751 mut depth: fidl::encoding::Depth,
7752 ) -> fidl::Result<()> {
7753 encoder.debug_check_bounds::<WlanFullmacImplIfcDisassocConfRequest>(offset);
7754 let max_ordinal: u64 = self.max_ordinal_present();
7756 encoder.write_num(max_ordinal, offset);
7757 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
7758 if max_ordinal == 0 {
7760 return Ok(());
7761 }
7762 depth.increment()?;
7763 let envelope_size = 8;
7764 let bytes_len = max_ordinal as usize * envelope_size;
7765 #[allow(unused_variables)]
7766 let offset = encoder.out_of_line_offset(bytes_len);
7767 let mut _prev_end_offset: usize = 0;
7768 if 1 > max_ordinal {
7769 return Ok(());
7770 }
7771
7772 let cur_offset: usize = (1 - 1) * envelope_size;
7775
7776 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7778
7779 fidl::encoding::encode_in_envelope_optional::<i32, D>(
7784 self.status.as_ref().map(<i32 as fidl::encoding::ValueTypeMarker>::borrow),
7785 encoder,
7786 offset + cur_offset,
7787 depth,
7788 )?;
7789
7790 _prev_end_offset = cur_offset + envelope_size;
7791
7792 Ok(())
7793 }
7794 }
7795
7796 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
7797 for WlanFullmacImplIfcDisassocConfRequest
7798 {
7799 #[inline(always)]
7800 fn new_empty() -> Self {
7801 Self::default()
7802 }
7803
7804 unsafe fn decode(
7805 &mut self,
7806 decoder: &mut fidl::encoding::Decoder<'_, D>,
7807 offset: usize,
7808 mut depth: fidl::encoding::Depth,
7809 ) -> fidl::Result<()> {
7810 decoder.debug_check_bounds::<Self>(offset);
7811 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
7812 None => return Err(fidl::Error::NotNullable),
7813 Some(len) => len,
7814 };
7815 if len == 0 {
7817 return Ok(());
7818 };
7819 depth.increment()?;
7820 let envelope_size = 8;
7821 let bytes_len = len * envelope_size;
7822 let offset = decoder.out_of_line_offset(bytes_len)?;
7823 let mut _next_ordinal_to_read = 0;
7825 let mut next_offset = offset;
7826 let end_offset = offset + bytes_len;
7827 _next_ordinal_to_read += 1;
7828 if next_offset >= end_offset {
7829 return Ok(());
7830 }
7831
7832 while _next_ordinal_to_read < 1 {
7834 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7835 _next_ordinal_to_read += 1;
7836 next_offset += envelope_size;
7837 }
7838
7839 let next_out_of_line = decoder.next_out_of_line();
7840 let handles_before = decoder.remaining_handles();
7841 if let Some((inlined, num_bytes, num_handles)) =
7842 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7843 {
7844 let member_inline_size =
7845 <i32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7846 if inlined != (member_inline_size <= 4) {
7847 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7848 }
7849 let inner_offset;
7850 let mut inner_depth = depth.clone();
7851 if inlined {
7852 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7853 inner_offset = next_offset;
7854 } else {
7855 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7856 inner_depth.increment()?;
7857 }
7858 let val_ref = self.status.get_or_insert_with(|| fidl::new_empty!(i32, D));
7859 fidl::decode!(i32, D, val_ref, decoder, inner_offset, inner_depth)?;
7860 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7861 {
7862 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7863 }
7864 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7865 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7866 }
7867 }
7868
7869 next_offset += envelope_size;
7870
7871 while next_offset < end_offset {
7873 _next_ordinal_to_read += 1;
7874 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7875 next_offset += envelope_size;
7876 }
7877
7878 Ok(())
7879 }
7880 }
7881
7882 impl WlanFullmacImplIfcDisassocIndRequest {
7883 #[inline(always)]
7884 fn max_ordinal_present(&self) -> u64 {
7885 if let Some(_) = self.locally_initiated {
7886 return 3;
7887 }
7888 if let Some(_) = self.reason_code {
7889 return 2;
7890 }
7891 if let Some(_) = self.peer_sta_address {
7892 return 1;
7893 }
7894 0
7895 }
7896 }
7897
7898 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcDisassocIndRequest {
7899 type Borrowed<'a> = &'a Self;
7900 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
7901 value
7902 }
7903 }
7904
7905 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcDisassocIndRequest {
7906 type Owned = Self;
7907
7908 #[inline(always)]
7909 fn inline_align(_context: fidl::encoding::Context) -> usize {
7910 8
7911 }
7912
7913 #[inline(always)]
7914 fn inline_size(_context: fidl::encoding::Context) -> usize {
7915 16
7916 }
7917 }
7918
7919 unsafe impl<D: fidl::encoding::ResourceDialect>
7920 fidl::encoding::Encode<WlanFullmacImplIfcDisassocIndRequest, D>
7921 for &WlanFullmacImplIfcDisassocIndRequest
7922 {
7923 unsafe fn encode(
7924 self,
7925 encoder: &mut fidl::encoding::Encoder<'_, D>,
7926 offset: usize,
7927 mut depth: fidl::encoding::Depth,
7928 ) -> fidl::Result<()> {
7929 encoder.debug_check_bounds::<WlanFullmacImplIfcDisassocIndRequest>(offset);
7930 let max_ordinal: u64 = self.max_ordinal_present();
7932 encoder.write_num(max_ordinal, offset);
7933 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
7934 if max_ordinal == 0 {
7936 return Ok(());
7937 }
7938 depth.increment()?;
7939 let envelope_size = 8;
7940 let bytes_len = max_ordinal as usize * envelope_size;
7941 #[allow(unused_variables)]
7942 let offset = encoder.out_of_line_offset(bytes_len);
7943 let mut _prev_end_offset: usize = 0;
7944 if 1 > max_ordinal {
7945 return Ok(());
7946 }
7947
7948 let cur_offset: usize = (1 - 1) * envelope_size;
7951
7952 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7954
7955 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
7960 self.peer_sta_address
7961 .as_ref()
7962 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
7963 encoder,
7964 offset + cur_offset,
7965 depth,
7966 )?;
7967
7968 _prev_end_offset = cur_offset + envelope_size;
7969 if 2 > max_ordinal {
7970 return Ok(());
7971 }
7972
7973 let cur_offset: usize = (2 - 1) * envelope_size;
7976
7977 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7979
7980 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_ieee80211_common::ReasonCode, D>(
7985 self.reason_code.as_ref().map(<fidl_fuchsia_wlan_ieee80211_common::ReasonCode as fidl::encoding::ValueTypeMarker>::borrow),
7986 encoder, offset + cur_offset, depth
7987 )?;
7988
7989 _prev_end_offset = cur_offset + envelope_size;
7990 if 3 > max_ordinal {
7991 return Ok(());
7992 }
7993
7994 let cur_offset: usize = (3 - 1) * envelope_size;
7997
7998 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8000
8001 fidl::encoding::encode_in_envelope_optional::<bool, D>(
8006 self.locally_initiated
8007 .as_ref()
8008 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
8009 encoder,
8010 offset + cur_offset,
8011 depth,
8012 )?;
8013
8014 _prev_end_offset = cur_offset + envelope_size;
8015
8016 Ok(())
8017 }
8018 }
8019
8020 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
8021 for WlanFullmacImplIfcDisassocIndRequest
8022 {
8023 #[inline(always)]
8024 fn new_empty() -> Self {
8025 Self::default()
8026 }
8027
8028 unsafe fn decode(
8029 &mut self,
8030 decoder: &mut fidl::encoding::Decoder<'_, D>,
8031 offset: usize,
8032 mut depth: fidl::encoding::Depth,
8033 ) -> fidl::Result<()> {
8034 decoder.debug_check_bounds::<Self>(offset);
8035 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
8036 None => return Err(fidl::Error::NotNullable),
8037 Some(len) => len,
8038 };
8039 if len == 0 {
8041 return Ok(());
8042 };
8043 depth.increment()?;
8044 let envelope_size = 8;
8045 let bytes_len = len * envelope_size;
8046 let offset = decoder.out_of_line_offset(bytes_len)?;
8047 let mut _next_ordinal_to_read = 0;
8049 let mut next_offset = offset;
8050 let end_offset = offset + bytes_len;
8051 _next_ordinal_to_read += 1;
8052 if next_offset >= end_offset {
8053 return Ok(());
8054 }
8055
8056 while _next_ordinal_to_read < 1 {
8058 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8059 _next_ordinal_to_read += 1;
8060 next_offset += envelope_size;
8061 }
8062
8063 let next_out_of_line = decoder.next_out_of_line();
8064 let handles_before = decoder.remaining_handles();
8065 if let Some((inlined, num_bytes, num_handles)) =
8066 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8067 {
8068 let member_inline_size =
8069 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
8070 decoder.context,
8071 );
8072 if inlined != (member_inline_size <= 4) {
8073 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8074 }
8075 let inner_offset;
8076 let mut inner_depth = depth.clone();
8077 if inlined {
8078 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8079 inner_offset = next_offset;
8080 } else {
8081 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8082 inner_depth.increment()?;
8083 }
8084 let val_ref = self
8085 .peer_sta_address
8086 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
8087 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
8088 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8089 {
8090 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8091 }
8092 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8093 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8094 }
8095 }
8096
8097 next_offset += envelope_size;
8098 _next_ordinal_to_read += 1;
8099 if next_offset >= end_offset {
8100 return Ok(());
8101 }
8102
8103 while _next_ordinal_to_read < 2 {
8105 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8106 _next_ordinal_to_read += 1;
8107 next_offset += envelope_size;
8108 }
8109
8110 let next_out_of_line = decoder.next_out_of_line();
8111 let handles_before = decoder.remaining_handles();
8112 if let Some((inlined, num_bytes, num_handles)) =
8113 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8114 {
8115 let member_inline_size = <fidl_fuchsia_wlan_ieee80211_common::ReasonCode as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8116 if inlined != (member_inline_size <= 4) {
8117 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8118 }
8119 let inner_offset;
8120 let mut inner_depth = depth.clone();
8121 if inlined {
8122 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8123 inner_offset = next_offset;
8124 } else {
8125 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8126 inner_depth.increment()?;
8127 }
8128 let val_ref = self.reason_code.get_or_insert_with(|| {
8129 fidl::new_empty!(fidl_fuchsia_wlan_ieee80211_common::ReasonCode, D)
8130 });
8131 fidl::decode!(
8132 fidl_fuchsia_wlan_ieee80211_common::ReasonCode,
8133 D,
8134 val_ref,
8135 decoder,
8136 inner_offset,
8137 inner_depth
8138 )?;
8139 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8140 {
8141 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8142 }
8143 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8144 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8145 }
8146 }
8147
8148 next_offset += envelope_size;
8149 _next_ordinal_to_read += 1;
8150 if next_offset >= end_offset {
8151 return Ok(());
8152 }
8153
8154 while _next_ordinal_to_read < 3 {
8156 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8157 _next_ordinal_to_read += 1;
8158 next_offset += envelope_size;
8159 }
8160
8161 let next_out_of_line = decoder.next_out_of_line();
8162 let handles_before = decoder.remaining_handles();
8163 if let Some((inlined, num_bytes, num_handles)) =
8164 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8165 {
8166 let member_inline_size =
8167 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8168 if inlined != (member_inline_size <= 4) {
8169 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8170 }
8171 let inner_offset;
8172 let mut inner_depth = depth.clone();
8173 if inlined {
8174 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8175 inner_offset = next_offset;
8176 } else {
8177 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8178 inner_depth.increment()?;
8179 }
8180 let val_ref =
8181 self.locally_initiated.get_or_insert_with(|| fidl::new_empty!(bool, D));
8182 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
8183 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8184 {
8185 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8186 }
8187 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8188 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8189 }
8190 }
8191
8192 next_offset += envelope_size;
8193
8194 while next_offset < end_offset {
8196 _next_ordinal_to_read += 1;
8197 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8198 next_offset += envelope_size;
8199 }
8200
8201 Ok(())
8202 }
8203 }
8204
8205 impl WlanFullmacImplIfcEapolConfRequest {
8206 #[inline(always)]
8207 fn max_ordinal_present(&self) -> u64 {
8208 if let Some(_) = self.dst_addr {
8209 return 2;
8210 }
8211 if let Some(_) = self.result_code {
8212 return 1;
8213 }
8214 0
8215 }
8216 }
8217
8218 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcEapolConfRequest {
8219 type Borrowed<'a> = &'a Self;
8220 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
8221 value
8222 }
8223 }
8224
8225 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcEapolConfRequest {
8226 type Owned = Self;
8227
8228 #[inline(always)]
8229 fn inline_align(_context: fidl::encoding::Context) -> usize {
8230 8
8231 }
8232
8233 #[inline(always)]
8234 fn inline_size(_context: fidl::encoding::Context) -> usize {
8235 16
8236 }
8237 }
8238
8239 unsafe impl<D: fidl::encoding::ResourceDialect>
8240 fidl::encoding::Encode<WlanFullmacImplIfcEapolConfRequest, D>
8241 for &WlanFullmacImplIfcEapolConfRequest
8242 {
8243 unsafe fn encode(
8244 self,
8245 encoder: &mut fidl::encoding::Encoder<'_, D>,
8246 offset: usize,
8247 mut depth: fidl::encoding::Depth,
8248 ) -> fidl::Result<()> {
8249 encoder.debug_check_bounds::<WlanFullmacImplIfcEapolConfRequest>(offset);
8250 let max_ordinal: u64 = self.max_ordinal_present();
8252 encoder.write_num(max_ordinal, offset);
8253 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
8254 if max_ordinal == 0 {
8256 return Ok(());
8257 }
8258 depth.increment()?;
8259 let envelope_size = 8;
8260 let bytes_len = max_ordinal as usize * envelope_size;
8261 #[allow(unused_variables)]
8262 let offset = encoder.out_of_line_offset(bytes_len);
8263 let mut _prev_end_offset: usize = 0;
8264 if 1 > max_ordinal {
8265 return Ok(());
8266 }
8267
8268 let cur_offset: usize = (1 - 1) * envelope_size;
8271
8272 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8274
8275 fidl::encoding::encode_in_envelope_optional::<EapolTxResult, D>(
8280 self.result_code
8281 .as_ref()
8282 .map(<EapolTxResult as fidl::encoding::ValueTypeMarker>::borrow),
8283 encoder,
8284 offset + cur_offset,
8285 depth,
8286 )?;
8287
8288 _prev_end_offset = cur_offset + envelope_size;
8289 if 2 > max_ordinal {
8290 return Ok(());
8291 }
8292
8293 let cur_offset: usize = (2 - 1) * envelope_size;
8296
8297 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8299
8300 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
8305 self.dst_addr
8306 .as_ref()
8307 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
8308 encoder,
8309 offset + cur_offset,
8310 depth,
8311 )?;
8312
8313 _prev_end_offset = cur_offset + envelope_size;
8314
8315 Ok(())
8316 }
8317 }
8318
8319 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
8320 for WlanFullmacImplIfcEapolConfRequest
8321 {
8322 #[inline(always)]
8323 fn new_empty() -> Self {
8324 Self::default()
8325 }
8326
8327 unsafe fn decode(
8328 &mut self,
8329 decoder: &mut fidl::encoding::Decoder<'_, D>,
8330 offset: usize,
8331 mut depth: fidl::encoding::Depth,
8332 ) -> fidl::Result<()> {
8333 decoder.debug_check_bounds::<Self>(offset);
8334 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
8335 None => return Err(fidl::Error::NotNullable),
8336 Some(len) => len,
8337 };
8338 if len == 0 {
8340 return Ok(());
8341 };
8342 depth.increment()?;
8343 let envelope_size = 8;
8344 let bytes_len = len * envelope_size;
8345 let offset = decoder.out_of_line_offset(bytes_len)?;
8346 let mut _next_ordinal_to_read = 0;
8348 let mut next_offset = offset;
8349 let end_offset = offset + bytes_len;
8350 _next_ordinal_to_read += 1;
8351 if next_offset >= end_offset {
8352 return Ok(());
8353 }
8354
8355 while _next_ordinal_to_read < 1 {
8357 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8358 _next_ordinal_to_read += 1;
8359 next_offset += envelope_size;
8360 }
8361
8362 let next_out_of_line = decoder.next_out_of_line();
8363 let handles_before = decoder.remaining_handles();
8364 if let Some((inlined, num_bytes, num_handles)) =
8365 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8366 {
8367 let member_inline_size =
8368 <EapolTxResult as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8369 if inlined != (member_inline_size <= 4) {
8370 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8371 }
8372 let inner_offset;
8373 let mut inner_depth = depth.clone();
8374 if inlined {
8375 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8376 inner_offset = next_offset;
8377 } else {
8378 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8379 inner_depth.increment()?;
8380 }
8381 let val_ref =
8382 self.result_code.get_or_insert_with(|| fidl::new_empty!(EapolTxResult, D));
8383 fidl::decode!(EapolTxResult, D, val_ref, decoder, inner_offset, inner_depth)?;
8384 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8385 {
8386 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8387 }
8388 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8389 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8390 }
8391 }
8392
8393 next_offset += envelope_size;
8394 _next_ordinal_to_read += 1;
8395 if next_offset >= end_offset {
8396 return Ok(());
8397 }
8398
8399 while _next_ordinal_to_read < 2 {
8401 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8402 _next_ordinal_to_read += 1;
8403 next_offset += envelope_size;
8404 }
8405
8406 let next_out_of_line = decoder.next_out_of_line();
8407 let handles_before = decoder.remaining_handles();
8408 if let Some((inlined, num_bytes, num_handles)) =
8409 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8410 {
8411 let member_inline_size =
8412 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
8413 decoder.context,
8414 );
8415 if inlined != (member_inline_size <= 4) {
8416 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8417 }
8418 let inner_offset;
8419 let mut inner_depth = depth.clone();
8420 if inlined {
8421 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8422 inner_offset = next_offset;
8423 } else {
8424 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8425 inner_depth.increment()?;
8426 }
8427 let val_ref = self
8428 .dst_addr
8429 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
8430 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
8431 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8432 {
8433 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8434 }
8435 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8436 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8437 }
8438 }
8439
8440 next_offset += envelope_size;
8441
8442 while next_offset < end_offset {
8444 _next_ordinal_to_read += 1;
8445 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8446 next_offset += envelope_size;
8447 }
8448
8449 Ok(())
8450 }
8451 }
8452
8453 impl WlanFullmacImplIfcEapolIndRequest {
8454 #[inline(always)]
8455 fn max_ordinal_present(&self) -> u64 {
8456 if let Some(_) = self.data {
8457 return 3;
8458 }
8459 if let Some(_) = self.dst_addr {
8460 return 2;
8461 }
8462 if let Some(_) = self.src_addr {
8463 return 1;
8464 }
8465 0
8466 }
8467 }
8468
8469 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcEapolIndRequest {
8470 type Borrowed<'a> = &'a Self;
8471 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
8472 value
8473 }
8474 }
8475
8476 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcEapolIndRequest {
8477 type Owned = Self;
8478
8479 #[inline(always)]
8480 fn inline_align(_context: fidl::encoding::Context) -> usize {
8481 8
8482 }
8483
8484 #[inline(always)]
8485 fn inline_size(_context: fidl::encoding::Context) -> usize {
8486 16
8487 }
8488 }
8489
8490 unsafe impl<D: fidl::encoding::ResourceDialect>
8491 fidl::encoding::Encode<WlanFullmacImplIfcEapolIndRequest, D>
8492 for &WlanFullmacImplIfcEapolIndRequest
8493 {
8494 unsafe fn encode(
8495 self,
8496 encoder: &mut fidl::encoding::Encoder<'_, D>,
8497 offset: usize,
8498 mut depth: fidl::encoding::Depth,
8499 ) -> fidl::Result<()> {
8500 encoder.debug_check_bounds::<WlanFullmacImplIfcEapolIndRequest>(offset);
8501 let max_ordinal: u64 = self.max_ordinal_present();
8503 encoder.write_num(max_ordinal, offset);
8504 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
8505 if max_ordinal == 0 {
8507 return Ok(());
8508 }
8509 depth.increment()?;
8510 let envelope_size = 8;
8511 let bytes_len = max_ordinal as usize * envelope_size;
8512 #[allow(unused_variables)]
8513 let offset = encoder.out_of_line_offset(bytes_len);
8514 let mut _prev_end_offset: usize = 0;
8515 if 1 > max_ordinal {
8516 return Ok(());
8517 }
8518
8519 let cur_offset: usize = (1 - 1) * envelope_size;
8522
8523 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8525
8526 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
8531 self.src_addr
8532 .as_ref()
8533 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
8534 encoder,
8535 offset + cur_offset,
8536 depth,
8537 )?;
8538
8539 _prev_end_offset = cur_offset + envelope_size;
8540 if 2 > max_ordinal {
8541 return Ok(());
8542 }
8543
8544 let cur_offset: usize = (2 - 1) * envelope_size;
8547
8548 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8550
8551 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
8556 self.dst_addr
8557 .as_ref()
8558 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
8559 encoder,
8560 offset + cur_offset,
8561 depth,
8562 )?;
8563
8564 _prev_end_offset = cur_offset + envelope_size;
8565 if 3 > max_ordinal {
8566 return Ok(());
8567 }
8568
8569 let cur_offset: usize = (3 - 1) * envelope_size;
8572
8573 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8575
8576 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<u8>, D>(
8581 self.data.as_ref().map(<fidl::encoding::UnboundedVector<u8> as fidl::encoding::ValueTypeMarker>::borrow),
8582 encoder, offset + cur_offset, depth
8583 )?;
8584
8585 _prev_end_offset = cur_offset + envelope_size;
8586
8587 Ok(())
8588 }
8589 }
8590
8591 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
8592 for WlanFullmacImplIfcEapolIndRequest
8593 {
8594 #[inline(always)]
8595 fn new_empty() -> Self {
8596 Self::default()
8597 }
8598
8599 unsafe fn decode(
8600 &mut self,
8601 decoder: &mut fidl::encoding::Decoder<'_, D>,
8602 offset: usize,
8603 mut depth: fidl::encoding::Depth,
8604 ) -> fidl::Result<()> {
8605 decoder.debug_check_bounds::<Self>(offset);
8606 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
8607 None => return Err(fidl::Error::NotNullable),
8608 Some(len) => len,
8609 };
8610 if len == 0 {
8612 return Ok(());
8613 };
8614 depth.increment()?;
8615 let envelope_size = 8;
8616 let bytes_len = len * envelope_size;
8617 let offset = decoder.out_of_line_offset(bytes_len)?;
8618 let mut _next_ordinal_to_read = 0;
8620 let mut next_offset = offset;
8621 let end_offset = offset + bytes_len;
8622 _next_ordinal_to_read += 1;
8623 if next_offset >= end_offset {
8624 return Ok(());
8625 }
8626
8627 while _next_ordinal_to_read < 1 {
8629 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8630 _next_ordinal_to_read += 1;
8631 next_offset += envelope_size;
8632 }
8633
8634 let next_out_of_line = decoder.next_out_of_line();
8635 let handles_before = decoder.remaining_handles();
8636 if let Some((inlined, num_bytes, num_handles)) =
8637 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8638 {
8639 let member_inline_size =
8640 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
8641 decoder.context,
8642 );
8643 if inlined != (member_inline_size <= 4) {
8644 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8645 }
8646 let inner_offset;
8647 let mut inner_depth = depth.clone();
8648 if inlined {
8649 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8650 inner_offset = next_offset;
8651 } else {
8652 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8653 inner_depth.increment()?;
8654 }
8655 let val_ref = self
8656 .src_addr
8657 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
8658 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
8659 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8660 {
8661 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8662 }
8663 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8664 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8665 }
8666 }
8667
8668 next_offset += envelope_size;
8669 _next_ordinal_to_read += 1;
8670 if next_offset >= end_offset {
8671 return Ok(());
8672 }
8673
8674 while _next_ordinal_to_read < 2 {
8676 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8677 _next_ordinal_to_read += 1;
8678 next_offset += envelope_size;
8679 }
8680
8681 let next_out_of_line = decoder.next_out_of_line();
8682 let handles_before = decoder.remaining_handles();
8683 if let Some((inlined, num_bytes, num_handles)) =
8684 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8685 {
8686 let member_inline_size =
8687 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
8688 decoder.context,
8689 );
8690 if inlined != (member_inline_size <= 4) {
8691 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8692 }
8693 let inner_offset;
8694 let mut inner_depth = depth.clone();
8695 if inlined {
8696 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8697 inner_offset = next_offset;
8698 } else {
8699 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8700 inner_depth.increment()?;
8701 }
8702 let val_ref = self
8703 .dst_addr
8704 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
8705 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
8706 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8707 {
8708 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8709 }
8710 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8711 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8712 }
8713 }
8714
8715 next_offset += envelope_size;
8716 _next_ordinal_to_read += 1;
8717 if next_offset >= end_offset {
8718 return Ok(());
8719 }
8720
8721 while _next_ordinal_to_read < 3 {
8723 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8724 _next_ordinal_to_read += 1;
8725 next_offset += envelope_size;
8726 }
8727
8728 let next_out_of_line = decoder.next_out_of_line();
8729 let handles_before = decoder.remaining_handles();
8730 if let Some((inlined, num_bytes, num_handles)) =
8731 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8732 {
8733 let member_inline_size = <fidl::encoding::UnboundedVector<u8> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8734 if inlined != (member_inline_size <= 4) {
8735 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8736 }
8737 let inner_offset;
8738 let mut inner_depth = depth.clone();
8739 if inlined {
8740 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8741 inner_offset = next_offset;
8742 } else {
8743 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8744 inner_depth.increment()?;
8745 }
8746 let val_ref = self.data.get_or_insert_with(|| {
8747 fidl::new_empty!(fidl::encoding::UnboundedVector<u8>, D)
8748 });
8749 fidl::decode!(
8750 fidl::encoding::UnboundedVector<u8>,
8751 D,
8752 val_ref,
8753 decoder,
8754 inner_offset,
8755 inner_depth
8756 )?;
8757 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8758 {
8759 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8760 }
8761 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8762 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8763 }
8764 }
8765
8766 next_offset += envelope_size;
8767
8768 while next_offset < end_offset {
8770 _next_ordinal_to_read += 1;
8771 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8772 next_offset += envelope_size;
8773 }
8774
8775 Ok(())
8776 }
8777 }
8778
8779 impl WlanFullmacImplIfcOnPmkAvailableRequest {
8780 #[inline(always)]
8781 fn max_ordinal_present(&self) -> u64 {
8782 if let Some(_) = self.pmkid {
8783 return 2;
8784 }
8785 if let Some(_) = self.pmk {
8786 return 1;
8787 }
8788 0
8789 }
8790 }
8791
8792 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcOnPmkAvailableRequest {
8793 type Borrowed<'a> = &'a Self;
8794 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
8795 value
8796 }
8797 }
8798
8799 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcOnPmkAvailableRequest {
8800 type Owned = Self;
8801
8802 #[inline(always)]
8803 fn inline_align(_context: fidl::encoding::Context) -> usize {
8804 8
8805 }
8806
8807 #[inline(always)]
8808 fn inline_size(_context: fidl::encoding::Context) -> usize {
8809 16
8810 }
8811 }
8812
8813 unsafe impl<D: fidl::encoding::ResourceDialect>
8814 fidl::encoding::Encode<WlanFullmacImplIfcOnPmkAvailableRequest, D>
8815 for &WlanFullmacImplIfcOnPmkAvailableRequest
8816 {
8817 unsafe fn encode(
8818 self,
8819 encoder: &mut fidl::encoding::Encoder<'_, D>,
8820 offset: usize,
8821 mut depth: fidl::encoding::Depth,
8822 ) -> fidl::Result<()> {
8823 encoder.debug_check_bounds::<WlanFullmacImplIfcOnPmkAvailableRequest>(offset);
8824 let max_ordinal: u64 = self.max_ordinal_present();
8826 encoder.write_num(max_ordinal, offset);
8827 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
8828 if max_ordinal == 0 {
8830 return Ok(());
8831 }
8832 depth.increment()?;
8833 let envelope_size = 8;
8834 let bytes_len = max_ordinal as usize * envelope_size;
8835 #[allow(unused_variables)]
8836 let offset = encoder.out_of_line_offset(bytes_len);
8837 let mut _prev_end_offset: usize = 0;
8838 if 1 > max_ordinal {
8839 return Ok(());
8840 }
8841
8842 let cur_offset: usize = (1 - 1) * envelope_size;
8845
8846 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8848
8849 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<u8>, D>(
8854 self.pmk.as_ref().map(<fidl::encoding::UnboundedVector<u8> as fidl::encoding::ValueTypeMarker>::borrow),
8855 encoder, offset + cur_offset, depth
8856 )?;
8857
8858 _prev_end_offset = cur_offset + envelope_size;
8859 if 2 > max_ordinal {
8860 return Ok(());
8861 }
8862
8863 let cur_offset: usize = (2 - 1) * envelope_size;
8866
8867 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8869
8870 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<u8>, D>(
8875 self.pmkid.as_ref().map(<fidl::encoding::UnboundedVector<u8> as fidl::encoding::ValueTypeMarker>::borrow),
8876 encoder, offset + cur_offset, depth
8877 )?;
8878
8879 _prev_end_offset = cur_offset + envelope_size;
8880
8881 Ok(())
8882 }
8883 }
8884
8885 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
8886 for WlanFullmacImplIfcOnPmkAvailableRequest
8887 {
8888 #[inline(always)]
8889 fn new_empty() -> Self {
8890 Self::default()
8891 }
8892
8893 unsafe fn decode(
8894 &mut self,
8895 decoder: &mut fidl::encoding::Decoder<'_, D>,
8896 offset: usize,
8897 mut depth: fidl::encoding::Depth,
8898 ) -> fidl::Result<()> {
8899 decoder.debug_check_bounds::<Self>(offset);
8900 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
8901 None => return Err(fidl::Error::NotNullable),
8902 Some(len) => len,
8903 };
8904 if len == 0 {
8906 return Ok(());
8907 };
8908 depth.increment()?;
8909 let envelope_size = 8;
8910 let bytes_len = len * envelope_size;
8911 let offset = decoder.out_of_line_offset(bytes_len)?;
8912 let mut _next_ordinal_to_read = 0;
8914 let mut next_offset = offset;
8915 let end_offset = offset + bytes_len;
8916 _next_ordinal_to_read += 1;
8917 if next_offset >= end_offset {
8918 return Ok(());
8919 }
8920
8921 while _next_ordinal_to_read < 1 {
8923 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8924 _next_ordinal_to_read += 1;
8925 next_offset += envelope_size;
8926 }
8927
8928 let next_out_of_line = decoder.next_out_of_line();
8929 let handles_before = decoder.remaining_handles();
8930 if let Some((inlined, num_bytes, num_handles)) =
8931 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8932 {
8933 let member_inline_size = <fidl::encoding::UnboundedVector<u8> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8934 if inlined != (member_inline_size <= 4) {
8935 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8936 }
8937 let inner_offset;
8938 let mut inner_depth = depth.clone();
8939 if inlined {
8940 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8941 inner_offset = next_offset;
8942 } else {
8943 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8944 inner_depth.increment()?;
8945 }
8946 let val_ref = self.pmk.get_or_insert_with(|| {
8947 fidl::new_empty!(fidl::encoding::UnboundedVector<u8>, D)
8948 });
8949 fidl::decode!(
8950 fidl::encoding::UnboundedVector<u8>,
8951 D,
8952 val_ref,
8953 decoder,
8954 inner_offset,
8955 inner_depth
8956 )?;
8957 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8958 {
8959 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8960 }
8961 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8962 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8963 }
8964 }
8965
8966 next_offset += envelope_size;
8967 _next_ordinal_to_read += 1;
8968 if next_offset >= end_offset {
8969 return Ok(());
8970 }
8971
8972 while _next_ordinal_to_read < 2 {
8974 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8975 _next_ordinal_to_read += 1;
8976 next_offset += envelope_size;
8977 }
8978
8979 let next_out_of_line = decoder.next_out_of_line();
8980 let handles_before = decoder.remaining_handles();
8981 if let Some((inlined, num_bytes, num_handles)) =
8982 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8983 {
8984 let member_inline_size = <fidl::encoding::UnboundedVector<u8> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8985 if inlined != (member_inline_size <= 4) {
8986 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8987 }
8988 let inner_offset;
8989 let mut inner_depth = depth.clone();
8990 if inlined {
8991 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8992 inner_offset = next_offset;
8993 } else {
8994 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8995 inner_depth.increment()?;
8996 }
8997 let val_ref = self.pmkid.get_or_insert_with(|| {
8998 fidl::new_empty!(fidl::encoding::UnboundedVector<u8>, D)
8999 });
9000 fidl::decode!(
9001 fidl::encoding::UnboundedVector<u8>,
9002 D,
9003 val_ref,
9004 decoder,
9005 inner_offset,
9006 inner_depth
9007 )?;
9008 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9009 {
9010 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9011 }
9012 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9013 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9014 }
9015 }
9016
9017 next_offset += envelope_size;
9018
9019 while next_offset < end_offset {
9021 _next_ordinal_to_read += 1;
9022 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9023 next_offset += envelope_size;
9024 }
9025
9026 Ok(())
9027 }
9028 }
9029
9030 impl WlanFullmacImplIfcOnScanEndRequest {
9031 #[inline(always)]
9032 fn max_ordinal_present(&self) -> u64 {
9033 if let Some(_) = self.code {
9034 return 2;
9035 }
9036 if let Some(_) = self.txn_id {
9037 return 1;
9038 }
9039 0
9040 }
9041 }
9042
9043 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcOnScanEndRequest {
9044 type Borrowed<'a> = &'a Self;
9045 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
9046 value
9047 }
9048 }
9049
9050 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcOnScanEndRequest {
9051 type Owned = Self;
9052
9053 #[inline(always)]
9054 fn inline_align(_context: fidl::encoding::Context) -> usize {
9055 8
9056 }
9057
9058 #[inline(always)]
9059 fn inline_size(_context: fidl::encoding::Context) -> usize {
9060 16
9061 }
9062 }
9063
9064 unsafe impl<D: fidl::encoding::ResourceDialect>
9065 fidl::encoding::Encode<WlanFullmacImplIfcOnScanEndRequest, D>
9066 for &WlanFullmacImplIfcOnScanEndRequest
9067 {
9068 unsafe fn encode(
9069 self,
9070 encoder: &mut fidl::encoding::Encoder<'_, D>,
9071 offset: usize,
9072 mut depth: fidl::encoding::Depth,
9073 ) -> fidl::Result<()> {
9074 encoder.debug_check_bounds::<WlanFullmacImplIfcOnScanEndRequest>(offset);
9075 let max_ordinal: u64 = self.max_ordinal_present();
9077 encoder.write_num(max_ordinal, offset);
9078 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
9079 if max_ordinal == 0 {
9081 return Ok(());
9082 }
9083 depth.increment()?;
9084 let envelope_size = 8;
9085 let bytes_len = max_ordinal as usize * envelope_size;
9086 #[allow(unused_variables)]
9087 let offset = encoder.out_of_line_offset(bytes_len);
9088 let mut _prev_end_offset: usize = 0;
9089 if 1 > max_ordinal {
9090 return Ok(());
9091 }
9092
9093 let cur_offset: usize = (1 - 1) * envelope_size;
9096
9097 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9099
9100 fidl::encoding::encode_in_envelope_optional::<u64, D>(
9105 self.txn_id.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
9106 encoder,
9107 offset + cur_offset,
9108 depth,
9109 )?;
9110
9111 _prev_end_offset = cur_offset + envelope_size;
9112 if 2 > max_ordinal {
9113 return Ok(());
9114 }
9115
9116 let cur_offset: usize = (2 - 1) * envelope_size;
9119
9120 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9122
9123 fidl::encoding::encode_in_envelope_optional::<WlanScanResult, D>(
9128 self.code.as_ref().map(<WlanScanResult as fidl::encoding::ValueTypeMarker>::borrow),
9129 encoder,
9130 offset + cur_offset,
9131 depth,
9132 )?;
9133
9134 _prev_end_offset = cur_offset + envelope_size;
9135
9136 Ok(())
9137 }
9138 }
9139
9140 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
9141 for WlanFullmacImplIfcOnScanEndRequest
9142 {
9143 #[inline(always)]
9144 fn new_empty() -> Self {
9145 Self::default()
9146 }
9147
9148 unsafe fn decode(
9149 &mut self,
9150 decoder: &mut fidl::encoding::Decoder<'_, D>,
9151 offset: usize,
9152 mut depth: fidl::encoding::Depth,
9153 ) -> fidl::Result<()> {
9154 decoder.debug_check_bounds::<Self>(offset);
9155 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
9156 None => return Err(fidl::Error::NotNullable),
9157 Some(len) => len,
9158 };
9159 if len == 0 {
9161 return Ok(());
9162 };
9163 depth.increment()?;
9164 let envelope_size = 8;
9165 let bytes_len = len * envelope_size;
9166 let offset = decoder.out_of_line_offset(bytes_len)?;
9167 let mut _next_ordinal_to_read = 0;
9169 let mut next_offset = offset;
9170 let end_offset = offset + bytes_len;
9171 _next_ordinal_to_read += 1;
9172 if next_offset >= end_offset {
9173 return Ok(());
9174 }
9175
9176 while _next_ordinal_to_read < 1 {
9178 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9179 _next_ordinal_to_read += 1;
9180 next_offset += envelope_size;
9181 }
9182
9183 let next_out_of_line = decoder.next_out_of_line();
9184 let handles_before = decoder.remaining_handles();
9185 if let Some((inlined, num_bytes, num_handles)) =
9186 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9187 {
9188 let member_inline_size =
9189 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
9190 if inlined != (member_inline_size <= 4) {
9191 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9192 }
9193 let inner_offset;
9194 let mut inner_depth = depth.clone();
9195 if inlined {
9196 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9197 inner_offset = next_offset;
9198 } else {
9199 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9200 inner_depth.increment()?;
9201 }
9202 let val_ref = self.txn_id.get_or_insert_with(|| fidl::new_empty!(u64, D));
9203 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
9204 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9205 {
9206 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9207 }
9208 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9209 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9210 }
9211 }
9212
9213 next_offset += envelope_size;
9214 _next_ordinal_to_read += 1;
9215 if next_offset >= end_offset {
9216 return Ok(());
9217 }
9218
9219 while _next_ordinal_to_read < 2 {
9221 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9222 _next_ordinal_to_read += 1;
9223 next_offset += envelope_size;
9224 }
9225
9226 let next_out_of_line = decoder.next_out_of_line();
9227 let handles_before = decoder.remaining_handles();
9228 if let Some((inlined, num_bytes, num_handles)) =
9229 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9230 {
9231 let member_inline_size =
9232 <WlanScanResult as fidl::encoding::TypeMarker>::inline_size(decoder.context);
9233 if inlined != (member_inline_size <= 4) {
9234 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9235 }
9236 let inner_offset;
9237 let mut inner_depth = depth.clone();
9238 if inlined {
9239 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9240 inner_offset = next_offset;
9241 } else {
9242 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9243 inner_depth.increment()?;
9244 }
9245 let val_ref = self.code.get_or_insert_with(|| fidl::new_empty!(WlanScanResult, D));
9246 fidl::decode!(WlanScanResult, D, val_ref, decoder, inner_offset, inner_depth)?;
9247 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9248 {
9249 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9250 }
9251 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9252 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9253 }
9254 }
9255
9256 next_offset += envelope_size;
9257
9258 while next_offset < end_offset {
9260 _next_ordinal_to_read += 1;
9261 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9262 next_offset += envelope_size;
9263 }
9264
9265 Ok(())
9266 }
9267 }
9268
9269 impl WlanFullmacImplIfcOnScanResultRequest {
9270 #[inline(always)]
9271 fn max_ordinal_present(&self) -> u64 {
9272 if let Some(_) = self.bss {
9273 return 3;
9274 }
9275 if let Some(_) = self.timestamp_nanos {
9276 return 2;
9277 }
9278 if let Some(_) = self.txn_id {
9279 return 1;
9280 }
9281 0
9282 }
9283 }
9284
9285 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcOnScanResultRequest {
9286 type Borrowed<'a> = &'a Self;
9287 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
9288 value
9289 }
9290 }
9291
9292 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcOnScanResultRequest {
9293 type Owned = Self;
9294
9295 #[inline(always)]
9296 fn inline_align(_context: fidl::encoding::Context) -> usize {
9297 8
9298 }
9299
9300 #[inline(always)]
9301 fn inline_size(_context: fidl::encoding::Context) -> usize {
9302 16
9303 }
9304 }
9305
9306 unsafe impl<D: fidl::encoding::ResourceDialect>
9307 fidl::encoding::Encode<WlanFullmacImplIfcOnScanResultRequest, D>
9308 for &WlanFullmacImplIfcOnScanResultRequest
9309 {
9310 unsafe fn encode(
9311 self,
9312 encoder: &mut fidl::encoding::Encoder<'_, D>,
9313 offset: usize,
9314 mut depth: fidl::encoding::Depth,
9315 ) -> fidl::Result<()> {
9316 encoder.debug_check_bounds::<WlanFullmacImplIfcOnScanResultRequest>(offset);
9317 let max_ordinal: u64 = self.max_ordinal_present();
9319 encoder.write_num(max_ordinal, offset);
9320 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
9321 if max_ordinal == 0 {
9323 return Ok(());
9324 }
9325 depth.increment()?;
9326 let envelope_size = 8;
9327 let bytes_len = max_ordinal as usize * envelope_size;
9328 #[allow(unused_variables)]
9329 let offset = encoder.out_of_line_offset(bytes_len);
9330 let mut _prev_end_offset: usize = 0;
9331 if 1 > max_ordinal {
9332 return Ok(());
9333 }
9334
9335 let cur_offset: usize = (1 - 1) * envelope_size;
9338
9339 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9341
9342 fidl::encoding::encode_in_envelope_optional::<u64, D>(
9347 self.txn_id.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
9348 encoder,
9349 offset + cur_offset,
9350 depth,
9351 )?;
9352
9353 _prev_end_offset = cur_offset + envelope_size;
9354 if 2 > max_ordinal {
9355 return Ok(());
9356 }
9357
9358 let cur_offset: usize = (2 - 1) * envelope_size;
9361
9362 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9364
9365 fidl::encoding::encode_in_envelope_optional::<i64, D>(
9370 self.timestamp_nanos.as_ref().map(<i64 as fidl::encoding::ValueTypeMarker>::borrow),
9371 encoder,
9372 offset + cur_offset,
9373 depth,
9374 )?;
9375
9376 _prev_end_offset = cur_offset + envelope_size;
9377 if 3 > max_ordinal {
9378 return Ok(());
9379 }
9380
9381 let cur_offset: usize = (3 - 1) * envelope_size;
9384
9385 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9387
9388 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_ieee80211_common::BssDescription, D>(
9393 self.bss.as_ref().map(<fidl_fuchsia_wlan_ieee80211_common::BssDescription as fidl::encoding::ValueTypeMarker>::borrow),
9394 encoder, offset + cur_offset, depth
9395 )?;
9396
9397 _prev_end_offset = cur_offset + envelope_size;
9398
9399 Ok(())
9400 }
9401 }
9402
9403 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
9404 for WlanFullmacImplIfcOnScanResultRequest
9405 {
9406 #[inline(always)]
9407 fn new_empty() -> Self {
9408 Self::default()
9409 }
9410
9411 unsafe fn decode(
9412 &mut self,
9413 decoder: &mut fidl::encoding::Decoder<'_, D>,
9414 offset: usize,
9415 mut depth: fidl::encoding::Depth,
9416 ) -> fidl::Result<()> {
9417 decoder.debug_check_bounds::<Self>(offset);
9418 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
9419 None => return Err(fidl::Error::NotNullable),
9420 Some(len) => len,
9421 };
9422 if len == 0 {
9424 return Ok(());
9425 };
9426 depth.increment()?;
9427 let envelope_size = 8;
9428 let bytes_len = len * envelope_size;
9429 let offset = decoder.out_of_line_offset(bytes_len)?;
9430 let mut _next_ordinal_to_read = 0;
9432 let mut next_offset = offset;
9433 let end_offset = offset + bytes_len;
9434 _next_ordinal_to_read += 1;
9435 if next_offset >= end_offset {
9436 return Ok(());
9437 }
9438
9439 while _next_ordinal_to_read < 1 {
9441 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9442 _next_ordinal_to_read += 1;
9443 next_offset += envelope_size;
9444 }
9445
9446 let next_out_of_line = decoder.next_out_of_line();
9447 let handles_before = decoder.remaining_handles();
9448 if let Some((inlined, num_bytes, num_handles)) =
9449 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9450 {
9451 let member_inline_size =
9452 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
9453 if inlined != (member_inline_size <= 4) {
9454 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9455 }
9456 let inner_offset;
9457 let mut inner_depth = depth.clone();
9458 if inlined {
9459 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9460 inner_offset = next_offset;
9461 } else {
9462 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9463 inner_depth.increment()?;
9464 }
9465 let val_ref = self.txn_id.get_or_insert_with(|| fidl::new_empty!(u64, D));
9466 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
9467 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9468 {
9469 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9470 }
9471 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9472 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9473 }
9474 }
9475
9476 next_offset += envelope_size;
9477 _next_ordinal_to_read += 1;
9478 if next_offset >= end_offset {
9479 return Ok(());
9480 }
9481
9482 while _next_ordinal_to_read < 2 {
9484 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9485 _next_ordinal_to_read += 1;
9486 next_offset += envelope_size;
9487 }
9488
9489 let next_out_of_line = decoder.next_out_of_line();
9490 let handles_before = decoder.remaining_handles();
9491 if let Some((inlined, num_bytes, num_handles)) =
9492 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9493 {
9494 let member_inline_size =
9495 <i64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
9496 if inlined != (member_inline_size <= 4) {
9497 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9498 }
9499 let inner_offset;
9500 let mut inner_depth = depth.clone();
9501 if inlined {
9502 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9503 inner_offset = next_offset;
9504 } else {
9505 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9506 inner_depth.increment()?;
9507 }
9508 let val_ref = self.timestamp_nanos.get_or_insert_with(|| fidl::new_empty!(i64, D));
9509 fidl::decode!(i64, D, val_ref, decoder, inner_offset, inner_depth)?;
9510 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9511 {
9512 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9513 }
9514 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9515 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9516 }
9517 }
9518
9519 next_offset += envelope_size;
9520 _next_ordinal_to_read += 1;
9521 if next_offset >= end_offset {
9522 return Ok(());
9523 }
9524
9525 while _next_ordinal_to_read < 3 {
9527 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9528 _next_ordinal_to_read += 1;
9529 next_offset += envelope_size;
9530 }
9531
9532 let next_out_of_line = decoder.next_out_of_line();
9533 let handles_before = decoder.remaining_handles();
9534 if let Some((inlined, num_bytes, num_handles)) =
9535 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9536 {
9537 let member_inline_size = <fidl_fuchsia_wlan_ieee80211_common::BssDescription as fidl::encoding::TypeMarker>::inline_size(decoder.context);
9538 if inlined != (member_inline_size <= 4) {
9539 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9540 }
9541 let inner_offset;
9542 let mut inner_depth = depth.clone();
9543 if inlined {
9544 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9545 inner_offset = next_offset;
9546 } else {
9547 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9548 inner_depth.increment()?;
9549 }
9550 let val_ref = self.bss.get_or_insert_with(|| {
9551 fidl::new_empty!(fidl_fuchsia_wlan_ieee80211_common::BssDescription, D)
9552 });
9553 fidl::decode!(
9554 fidl_fuchsia_wlan_ieee80211_common::BssDescription,
9555 D,
9556 val_ref,
9557 decoder,
9558 inner_offset,
9559 inner_depth
9560 )?;
9561 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9562 {
9563 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9564 }
9565 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9566 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9567 }
9568 }
9569
9570 next_offset += envelope_size;
9571
9572 while next_offset < end_offset {
9574 _next_ordinal_to_read += 1;
9575 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9576 next_offset += envelope_size;
9577 }
9578
9579 Ok(())
9580 }
9581 }
9582
9583 impl WlanFullmacImplIfcOnScheduledScanMatchesAvailableRequest {
9584 #[inline(always)]
9585 fn max_ordinal_present(&self) -> u64 {
9586 if let Some(_) = self.txn_id {
9587 return 1;
9588 }
9589 0
9590 }
9591 }
9592
9593 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcOnScheduledScanMatchesAvailableRequest {
9594 type Borrowed<'a> = &'a Self;
9595 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
9596 value
9597 }
9598 }
9599
9600 unsafe impl fidl::encoding::TypeMarker
9601 for WlanFullmacImplIfcOnScheduledScanMatchesAvailableRequest
9602 {
9603 type Owned = Self;
9604
9605 #[inline(always)]
9606 fn inline_align(_context: fidl::encoding::Context) -> usize {
9607 8
9608 }
9609
9610 #[inline(always)]
9611 fn inline_size(_context: fidl::encoding::Context) -> usize {
9612 16
9613 }
9614 }
9615
9616 unsafe impl<D: fidl::encoding::ResourceDialect>
9617 fidl::encoding::Encode<WlanFullmacImplIfcOnScheduledScanMatchesAvailableRequest, D>
9618 for &WlanFullmacImplIfcOnScheduledScanMatchesAvailableRequest
9619 {
9620 unsafe fn encode(
9621 self,
9622 encoder: &mut fidl::encoding::Encoder<'_, D>,
9623 offset: usize,
9624 mut depth: fidl::encoding::Depth,
9625 ) -> fidl::Result<()> {
9626 encoder.debug_check_bounds::<WlanFullmacImplIfcOnScheduledScanMatchesAvailableRequest>(
9627 offset,
9628 );
9629 let max_ordinal: u64 = self.max_ordinal_present();
9631 encoder.write_num(max_ordinal, offset);
9632 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
9633 if max_ordinal == 0 {
9635 return Ok(());
9636 }
9637 depth.increment()?;
9638 let envelope_size = 8;
9639 let bytes_len = max_ordinal as usize * envelope_size;
9640 #[allow(unused_variables)]
9641 let offset = encoder.out_of_line_offset(bytes_len);
9642 let mut _prev_end_offset: usize = 0;
9643 if 1 > max_ordinal {
9644 return Ok(());
9645 }
9646
9647 let cur_offset: usize = (1 - 1) * envelope_size;
9650
9651 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9653
9654 fidl::encoding::encode_in_envelope_optional::<u64, D>(
9659 self.txn_id.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
9660 encoder,
9661 offset + cur_offset,
9662 depth,
9663 )?;
9664
9665 _prev_end_offset = cur_offset + envelope_size;
9666
9667 Ok(())
9668 }
9669 }
9670
9671 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
9672 for WlanFullmacImplIfcOnScheduledScanMatchesAvailableRequest
9673 {
9674 #[inline(always)]
9675 fn new_empty() -> Self {
9676 Self::default()
9677 }
9678
9679 unsafe fn decode(
9680 &mut self,
9681 decoder: &mut fidl::encoding::Decoder<'_, D>,
9682 offset: usize,
9683 mut depth: fidl::encoding::Depth,
9684 ) -> fidl::Result<()> {
9685 decoder.debug_check_bounds::<Self>(offset);
9686 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
9687 None => return Err(fidl::Error::NotNullable),
9688 Some(len) => len,
9689 };
9690 if len == 0 {
9692 return Ok(());
9693 };
9694 depth.increment()?;
9695 let envelope_size = 8;
9696 let bytes_len = len * envelope_size;
9697 let offset = decoder.out_of_line_offset(bytes_len)?;
9698 let mut _next_ordinal_to_read = 0;
9700 let mut next_offset = offset;
9701 let end_offset = offset + bytes_len;
9702 _next_ordinal_to_read += 1;
9703 if next_offset >= end_offset {
9704 return Ok(());
9705 }
9706
9707 while _next_ordinal_to_read < 1 {
9709 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9710 _next_ordinal_to_read += 1;
9711 next_offset += envelope_size;
9712 }
9713
9714 let next_out_of_line = decoder.next_out_of_line();
9715 let handles_before = decoder.remaining_handles();
9716 if let Some((inlined, num_bytes, num_handles)) =
9717 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9718 {
9719 let member_inline_size =
9720 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
9721 if inlined != (member_inline_size <= 4) {
9722 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9723 }
9724 let inner_offset;
9725 let mut inner_depth = depth.clone();
9726 if inlined {
9727 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9728 inner_offset = next_offset;
9729 } else {
9730 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9731 inner_depth.increment()?;
9732 }
9733 let val_ref = self.txn_id.get_or_insert_with(|| fidl::new_empty!(u64, D));
9734 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
9735 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9736 {
9737 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9738 }
9739 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9740 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9741 }
9742 }
9743
9744 next_offset += envelope_size;
9745
9746 while next_offset < end_offset {
9748 _next_ordinal_to_read += 1;
9749 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9750 next_offset += envelope_size;
9751 }
9752
9753 Ok(())
9754 }
9755 }
9756
9757 impl WlanFullmacImplIfcOnScheduledScanStoppedByFirmwareRequest {
9758 #[inline(always)]
9759 fn max_ordinal_present(&self) -> u64 {
9760 if let Some(_) = self.txn_id {
9761 return 1;
9762 }
9763 0
9764 }
9765 }
9766
9767 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcOnScheduledScanStoppedByFirmwareRequest {
9768 type Borrowed<'a> = &'a Self;
9769 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
9770 value
9771 }
9772 }
9773
9774 unsafe impl fidl::encoding::TypeMarker
9775 for WlanFullmacImplIfcOnScheduledScanStoppedByFirmwareRequest
9776 {
9777 type Owned = Self;
9778
9779 #[inline(always)]
9780 fn inline_align(_context: fidl::encoding::Context) -> usize {
9781 8
9782 }
9783
9784 #[inline(always)]
9785 fn inline_size(_context: fidl::encoding::Context) -> usize {
9786 16
9787 }
9788 }
9789
9790 unsafe impl<D: fidl::encoding::ResourceDialect>
9791 fidl::encoding::Encode<WlanFullmacImplIfcOnScheduledScanStoppedByFirmwareRequest, D>
9792 for &WlanFullmacImplIfcOnScheduledScanStoppedByFirmwareRequest
9793 {
9794 unsafe fn encode(
9795 self,
9796 encoder: &mut fidl::encoding::Encoder<'_, D>,
9797 offset: usize,
9798 mut depth: fidl::encoding::Depth,
9799 ) -> fidl::Result<()> {
9800 encoder
9801 .debug_check_bounds::<WlanFullmacImplIfcOnScheduledScanStoppedByFirmwareRequest>(
9802 offset,
9803 );
9804 let max_ordinal: u64 = self.max_ordinal_present();
9806 encoder.write_num(max_ordinal, offset);
9807 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
9808 if max_ordinal == 0 {
9810 return Ok(());
9811 }
9812 depth.increment()?;
9813 let envelope_size = 8;
9814 let bytes_len = max_ordinal as usize * envelope_size;
9815 #[allow(unused_variables)]
9816 let offset = encoder.out_of_line_offset(bytes_len);
9817 let mut _prev_end_offset: usize = 0;
9818 if 1 > max_ordinal {
9819 return Ok(());
9820 }
9821
9822 let cur_offset: usize = (1 - 1) * envelope_size;
9825
9826 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9828
9829 fidl::encoding::encode_in_envelope_optional::<u64, D>(
9834 self.txn_id.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
9835 encoder,
9836 offset + cur_offset,
9837 depth,
9838 )?;
9839
9840 _prev_end_offset = cur_offset + envelope_size;
9841
9842 Ok(())
9843 }
9844 }
9845
9846 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
9847 for WlanFullmacImplIfcOnScheduledScanStoppedByFirmwareRequest
9848 {
9849 #[inline(always)]
9850 fn new_empty() -> Self {
9851 Self::default()
9852 }
9853
9854 unsafe fn decode(
9855 &mut self,
9856 decoder: &mut fidl::encoding::Decoder<'_, D>,
9857 offset: usize,
9858 mut depth: fidl::encoding::Depth,
9859 ) -> fidl::Result<()> {
9860 decoder.debug_check_bounds::<Self>(offset);
9861 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
9862 None => return Err(fidl::Error::NotNullable),
9863 Some(len) => len,
9864 };
9865 if len == 0 {
9867 return Ok(());
9868 };
9869 depth.increment()?;
9870 let envelope_size = 8;
9871 let bytes_len = len * envelope_size;
9872 let offset = decoder.out_of_line_offset(bytes_len)?;
9873 let mut _next_ordinal_to_read = 0;
9875 let mut next_offset = offset;
9876 let end_offset = offset + bytes_len;
9877 _next_ordinal_to_read += 1;
9878 if next_offset >= end_offset {
9879 return Ok(());
9880 }
9881
9882 while _next_ordinal_to_read < 1 {
9884 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9885 _next_ordinal_to_read += 1;
9886 next_offset += envelope_size;
9887 }
9888
9889 let next_out_of_line = decoder.next_out_of_line();
9890 let handles_before = decoder.remaining_handles();
9891 if let Some((inlined, num_bytes, num_handles)) =
9892 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9893 {
9894 let member_inline_size =
9895 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
9896 if inlined != (member_inline_size <= 4) {
9897 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9898 }
9899 let inner_offset;
9900 let mut inner_depth = depth.clone();
9901 if inlined {
9902 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9903 inner_offset = next_offset;
9904 } else {
9905 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9906 inner_depth.increment()?;
9907 }
9908 let val_ref = self.txn_id.get_or_insert_with(|| fidl::new_empty!(u64, D));
9909 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
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 WlanFullmacImplIfcRoamConfRequest {
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 WlanFullmacImplIfcRoamConfRequest {
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 WlanFullmacImplIfcRoamConfRequest {
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<WlanFullmacImplIfcRoamConfRequest, D>
9980 for &WlanFullmacImplIfcRoamConfRequest
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::<WlanFullmacImplIfcRoamConfRequest>(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 WlanFullmacImplIfcRoamConfRequest
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 WlanFullmacImplIfcRoamResultIndRequest {
10473 #[inline(always)]
10474 fn max_ordinal_present(&self) -> u64 {
10475 if let Some(_) = self.association_ies {
10476 return 6;
10477 }
10478 if let Some(_) = self.association_id {
10479 return 5;
10480 }
10481 if let Some(_) = self.target_bss_authenticated {
10482 return 4;
10483 }
10484 if let Some(_) = self.original_association_maintained {
10485 return 3;
10486 }
10487 if let Some(_) = self.status_code {
10488 return 2;
10489 }
10490 if let Some(_) = self.selected_bssid {
10491 return 1;
10492 }
10493 0
10494 }
10495 }
10496
10497 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcRoamResultIndRequest {
10498 type Borrowed<'a> = &'a Self;
10499 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
10500 value
10501 }
10502 }
10503
10504 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcRoamResultIndRequest {
10505 type Owned = Self;
10506
10507 #[inline(always)]
10508 fn inline_align(_context: fidl::encoding::Context) -> usize {
10509 8
10510 }
10511
10512 #[inline(always)]
10513 fn inline_size(_context: fidl::encoding::Context) -> usize {
10514 16
10515 }
10516 }
10517
10518 unsafe impl<D: fidl::encoding::ResourceDialect>
10519 fidl::encoding::Encode<WlanFullmacImplIfcRoamResultIndRequest, D>
10520 for &WlanFullmacImplIfcRoamResultIndRequest
10521 {
10522 unsafe fn encode(
10523 self,
10524 encoder: &mut fidl::encoding::Encoder<'_, D>,
10525 offset: usize,
10526 mut depth: fidl::encoding::Depth,
10527 ) -> fidl::Result<()> {
10528 encoder.debug_check_bounds::<WlanFullmacImplIfcRoamResultIndRequest>(offset);
10529 let max_ordinal: u64 = self.max_ordinal_present();
10531 encoder.write_num(max_ordinal, offset);
10532 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
10533 if max_ordinal == 0 {
10535 return Ok(());
10536 }
10537 depth.increment()?;
10538 let envelope_size = 8;
10539 let bytes_len = max_ordinal as usize * envelope_size;
10540 #[allow(unused_variables)]
10541 let offset = encoder.out_of_line_offset(bytes_len);
10542 let mut _prev_end_offset: usize = 0;
10543 if 1 > max_ordinal {
10544 return Ok(());
10545 }
10546
10547 let cur_offset: usize = (1 - 1) * envelope_size;
10550
10551 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10553
10554 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
10559 self.selected_bssid
10560 .as_ref()
10561 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
10562 encoder,
10563 offset + cur_offset,
10564 depth,
10565 )?;
10566
10567 _prev_end_offset = cur_offset + envelope_size;
10568 if 2 > max_ordinal {
10569 return Ok(());
10570 }
10571
10572 let cur_offset: usize = (2 - 1) * envelope_size;
10575
10576 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10578
10579 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_ieee80211_common::StatusCode, D>(
10584 self.status_code.as_ref().map(<fidl_fuchsia_wlan_ieee80211_common::StatusCode as fidl::encoding::ValueTypeMarker>::borrow),
10585 encoder, offset + cur_offset, depth
10586 )?;
10587
10588 _prev_end_offset = cur_offset + envelope_size;
10589 if 3 > max_ordinal {
10590 return Ok(());
10591 }
10592
10593 let cur_offset: usize = (3 - 1) * envelope_size;
10596
10597 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10599
10600 fidl::encoding::encode_in_envelope_optional::<bool, D>(
10605 self.original_association_maintained
10606 .as_ref()
10607 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
10608 encoder,
10609 offset + cur_offset,
10610 depth,
10611 )?;
10612
10613 _prev_end_offset = cur_offset + envelope_size;
10614 if 4 > max_ordinal {
10615 return Ok(());
10616 }
10617
10618 let cur_offset: usize = (4 - 1) * envelope_size;
10621
10622 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10624
10625 fidl::encoding::encode_in_envelope_optional::<bool, D>(
10630 self.target_bss_authenticated
10631 .as_ref()
10632 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
10633 encoder,
10634 offset + cur_offset,
10635 depth,
10636 )?;
10637
10638 _prev_end_offset = cur_offset + envelope_size;
10639 if 5 > max_ordinal {
10640 return Ok(());
10641 }
10642
10643 let cur_offset: usize = (5 - 1) * envelope_size;
10646
10647 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10649
10650 fidl::encoding::encode_in_envelope_optional::<u16, D>(
10655 self.association_id.as_ref().map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
10656 encoder,
10657 offset + cur_offset,
10658 depth,
10659 )?;
10660
10661 _prev_end_offset = cur_offset + envelope_size;
10662 if 6 > max_ordinal {
10663 return Ok(());
10664 }
10665
10666 let cur_offset: usize = (6 - 1) * envelope_size;
10669
10670 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10672
10673 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<u8>, D>(
10678 self.association_ies.as_ref().map(<fidl::encoding::UnboundedVector<u8> as fidl::encoding::ValueTypeMarker>::borrow),
10679 encoder, offset + cur_offset, depth
10680 )?;
10681
10682 _prev_end_offset = cur_offset + envelope_size;
10683
10684 Ok(())
10685 }
10686 }
10687
10688 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
10689 for WlanFullmacImplIfcRoamResultIndRequest
10690 {
10691 #[inline(always)]
10692 fn new_empty() -> Self {
10693 Self::default()
10694 }
10695
10696 unsafe fn decode(
10697 &mut self,
10698 decoder: &mut fidl::encoding::Decoder<'_, D>,
10699 offset: usize,
10700 mut depth: fidl::encoding::Depth,
10701 ) -> fidl::Result<()> {
10702 decoder.debug_check_bounds::<Self>(offset);
10703 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
10704 None => return Err(fidl::Error::NotNullable),
10705 Some(len) => len,
10706 };
10707 if len == 0 {
10709 return Ok(());
10710 };
10711 depth.increment()?;
10712 let envelope_size = 8;
10713 let bytes_len = len * envelope_size;
10714 let offset = decoder.out_of_line_offset(bytes_len)?;
10715 let mut _next_ordinal_to_read = 0;
10717 let mut next_offset = offset;
10718 let end_offset = offset + bytes_len;
10719 _next_ordinal_to_read += 1;
10720 if next_offset >= end_offset {
10721 return Ok(());
10722 }
10723
10724 while _next_ordinal_to_read < 1 {
10726 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10727 _next_ordinal_to_read += 1;
10728 next_offset += envelope_size;
10729 }
10730
10731 let next_out_of_line = decoder.next_out_of_line();
10732 let handles_before = decoder.remaining_handles();
10733 if let Some((inlined, num_bytes, num_handles)) =
10734 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10735 {
10736 let member_inline_size =
10737 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
10738 decoder.context,
10739 );
10740 if inlined != (member_inline_size <= 4) {
10741 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10742 }
10743 let inner_offset;
10744 let mut inner_depth = depth.clone();
10745 if inlined {
10746 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10747 inner_offset = next_offset;
10748 } else {
10749 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10750 inner_depth.increment()?;
10751 }
10752 let val_ref = self
10753 .selected_bssid
10754 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
10755 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
10756 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10757 {
10758 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10759 }
10760 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10761 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10762 }
10763 }
10764
10765 next_offset += envelope_size;
10766 _next_ordinal_to_read += 1;
10767 if next_offset >= end_offset {
10768 return Ok(());
10769 }
10770
10771 while _next_ordinal_to_read < 2 {
10773 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10774 _next_ordinal_to_read += 1;
10775 next_offset += envelope_size;
10776 }
10777
10778 let next_out_of_line = decoder.next_out_of_line();
10779 let handles_before = decoder.remaining_handles();
10780 if let Some((inlined, num_bytes, num_handles)) =
10781 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10782 {
10783 let member_inline_size = <fidl_fuchsia_wlan_ieee80211_common::StatusCode as fidl::encoding::TypeMarker>::inline_size(decoder.context);
10784 if inlined != (member_inline_size <= 4) {
10785 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10786 }
10787 let inner_offset;
10788 let mut inner_depth = depth.clone();
10789 if inlined {
10790 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10791 inner_offset = next_offset;
10792 } else {
10793 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10794 inner_depth.increment()?;
10795 }
10796 let val_ref = self.status_code.get_or_insert_with(|| {
10797 fidl::new_empty!(fidl_fuchsia_wlan_ieee80211_common::StatusCode, D)
10798 });
10799 fidl::decode!(
10800 fidl_fuchsia_wlan_ieee80211_common::StatusCode,
10801 D,
10802 val_ref,
10803 decoder,
10804 inner_offset,
10805 inner_depth
10806 )?;
10807 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10808 {
10809 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10810 }
10811 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10812 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10813 }
10814 }
10815
10816 next_offset += envelope_size;
10817 _next_ordinal_to_read += 1;
10818 if next_offset >= end_offset {
10819 return Ok(());
10820 }
10821
10822 while _next_ordinal_to_read < 3 {
10824 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10825 _next_ordinal_to_read += 1;
10826 next_offset += envelope_size;
10827 }
10828
10829 let next_out_of_line = decoder.next_out_of_line();
10830 let handles_before = decoder.remaining_handles();
10831 if let Some((inlined, num_bytes, num_handles)) =
10832 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10833 {
10834 let member_inline_size =
10835 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
10836 if inlined != (member_inline_size <= 4) {
10837 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10838 }
10839 let inner_offset;
10840 let mut inner_depth = depth.clone();
10841 if inlined {
10842 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10843 inner_offset = next_offset;
10844 } else {
10845 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10846 inner_depth.increment()?;
10847 }
10848 let val_ref = self
10849 .original_association_maintained
10850 .get_or_insert_with(|| fidl::new_empty!(bool, D));
10851 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
10852 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10853 {
10854 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10855 }
10856 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10857 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10858 }
10859 }
10860
10861 next_offset += envelope_size;
10862 _next_ordinal_to_read += 1;
10863 if next_offset >= end_offset {
10864 return Ok(());
10865 }
10866
10867 while _next_ordinal_to_read < 4 {
10869 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10870 _next_ordinal_to_read += 1;
10871 next_offset += envelope_size;
10872 }
10873
10874 let next_out_of_line = decoder.next_out_of_line();
10875 let handles_before = decoder.remaining_handles();
10876 if let Some((inlined, num_bytes, num_handles)) =
10877 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10878 {
10879 let member_inline_size =
10880 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
10881 if inlined != (member_inline_size <= 4) {
10882 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10883 }
10884 let inner_offset;
10885 let mut inner_depth = depth.clone();
10886 if inlined {
10887 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10888 inner_offset = next_offset;
10889 } else {
10890 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10891 inner_depth.increment()?;
10892 }
10893 let val_ref =
10894 self.target_bss_authenticated.get_or_insert_with(|| fidl::new_empty!(bool, D));
10895 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
10896 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10897 {
10898 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10899 }
10900 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10901 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10902 }
10903 }
10904
10905 next_offset += envelope_size;
10906 _next_ordinal_to_read += 1;
10907 if next_offset >= end_offset {
10908 return Ok(());
10909 }
10910
10911 while _next_ordinal_to_read < 5 {
10913 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10914 _next_ordinal_to_read += 1;
10915 next_offset += envelope_size;
10916 }
10917
10918 let next_out_of_line = decoder.next_out_of_line();
10919 let handles_before = decoder.remaining_handles();
10920 if let Some((inlined, num_bytes, num_handles)) =
10921 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10922 {
10923 let member_inline_size =
10924 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
10925 if inlined != (member_inline_size <= 4) {
10926 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10927 }
10928 let inner_offset;
10929 let mut inner_depth = depth.clone();
10930 if inlined {
10931 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10932 inner_offset = next_offset;
10933 } else {
10934 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10935 inner_depth.increment()?;
10936 }
10937 let val_ref = self.association_id.get_or_insert_with(|| fidl::new_empty!(u16, D));
10938 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
10939 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10940 {
10941 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10942 }
10943 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10944 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10945 }
10946 }
10947
10948 next_offset += envelope_size;
10949 _next_ordinal_to_read += 1;
10950 if next_offset >= end_offset {
10951 return Ok(());
10952 }
10953
10954 while _next_ordinal_to_read < 6 {
10956 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10957 _next_ordinal_to_read += 1;
10958 next_offset += envelope_size;
10959 }
10960
10961 let next_out_of_line = decoder.next_out_of_line();
10962 let handles_before = decoder.remaining_handles();
10963 if let Some((inlined, num_bytes, num_handles)) =
10964 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10965 {
10966 let member_inline_size = <fidl::encoding::UnboundedVector<u8> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
10967 if inlined != (member_inline_size <= 4) {
10968 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10969 }
10970 let inner_offset;
10971 let mut inner_depth = depth.clone();
10972 if inlined {
10973 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10974 inner_offset = next_offset;
10975 } else {
10976 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10977 inner_depth.increment()?;
10978 }
10979 let val_ref = self.association_ies.get_or_insert_with(|| {
10980 fidl::new_empty!(fidl::encoding::UnboundedVector<u8>, D)
10981 });
10982 fidl::decode!(
10983 fidl::encoding::UnboundedVector<u8>,
10984 D,
10985 val_ref,
10986 decoder,
10987 inner_offset,
10988 inner_depth
10989 )?;
10990 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10991 {
10992 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10993 }
10994 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10995 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10996 }
10997 }
10998
10999 next_offset += envelope_size;
11000
11001 while next_offset < end_offset {
11003 _next_ordinal_to_read += 1;
11004 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11005 next_offset += envelope_size;
11006 }
11007
11008 Ok(())
11009 }
11010 }
11011
11012 impl WlanFullmacImplIfcRoamStartIndRequest {
11013 #[inline(always)]
11014 fn max_ordinal_present(&self) -> u64 {
11015 if let Some(_) = self.original_association_maintained {
11016 return 3;
11017 }
11018 if let Some(_) = self.selected_bss {
11019 return 2;
11020 }
11021 if let Some(_) = self.selected_bssid {
11022 return 1;
11023 }
11024 0
11025 }
11026 }
11027
11028 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcRoamStartIndRequest {
11029 type Borrowed<'a> = &'a Self;
11030 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
11031 value
11032 }
11033 }
11034
11035 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcRoamStartIndRequest {
11036 type Owned = Self;
11037
11038 #[inline(always)]
11039 fn inline_align(_context: fidl::encoding::Context) -> usize {
11040 8
11041 }
11042
11043 #[inline(always)]
11044 fn inline_size(_context: fidl::encoding::Context) -> usize {
11045 16
11046 }
11047 }
11048
11049 unsafe impl<D: fidl::encoding::ResourceDialect>
11050 fidl::encoding::Encode<WlanFullmacImplIfcRoamStartIndRequest, D>
11051 for &WlanFullmacImplIfcRoamStartIndRequest
11052 {
11053 unsafe fn encode(
11054 self,
11055 encoder: &mut fidl::encoding::Encoder<'_, D>,
11056 offset: usize,
11057 mut depth: fidl::encoding::Depth,
11058 ) -> fidl::Result<()> {
11059 encoder.debug_check_bounds::<WlanFullmacImplIfcRoamStartIndRequest>(offset);
11060 let max_ordinal: u64 = self.max_ordinal_present();
11062 encoder.write_num(max_ordinal, offset);
11063 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
11064 if max_ordinal == 0 {
11066 return Ok(());
11067 }
11068 depth.increment()?;
11069 let envelope_size = 8;
11070 let bytes_len = max_ordinal as usize * envelope_size;
11071 #[allow(unused_variables)]
11072 let offset = encoder.out_of_line_offset(bytes_len);
11073 let mut _prev_end_offset: usize = 0;
11074 if 1 > max_ordinal {
11075 return Ok(());
11076 }
11077
11078 let cur_offset: usize = (1 - 1) * envelope_size;
11081
11082 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
11084
11085 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
11090 self.selected_bssid
11091 .as_ref()
11092 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
11093 encoder,
11094 offset + cur_offset,
11095 depth,
11096 )?;
11097
11098 _prev_end_offset = cur_offset + envelope_size;
11099 if 2 > max_ordinal {
11100 return Ok(());
11101 }
11102
11103 let cur_offset: usize = (2 - 1) * envelope_size;
11106
11107 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
11109
11110 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_ieee80211_common::BssDescription, D>(
11115 self.selected_bss.as_ref().map(<fidl_fuchsia_wlan_ieee80211_common::BssDescription as fidl::encoding::ValueTypeMarker>::borrow),
11116 encoder, offset + cur_offset, depth
11117 )?;
11118
11119 _prev_end_offset = cur_offset + envelope_size;
11120 if 3 > max_ordinal {
11121 return Ok(());
11122 }
11123
11124 let cur_offset: usize = (3 - 1) * envelope_size;
11127
11128 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
11130
11131 fidl::encoding::encode_in_envelope_optional::<bool, D>(
11136 self.original_association_maintained
11137 .as_ref()
11138 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
11139 encoder,
11140 offset + cur_offset,
11141 depth,
11142 )?;
11143
11144 _prev_end_offset = cur_offset + envelope_size;
11145
11146 Ok(())
11147 }
11148 }
11149
11150 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
11151 for WlanFullmacImplIfcRoamStartIndRequest
11152 {
11153 #[inline(always)]
11154 fn new_empty() -> Self {
11155 Self::default()
11156 }
11157
11158 unsafe fn decode(
11159 &mut self,
11160 decoder: &mut fidl::encoding::Decoder<'_, D>,
11161 offset: usize,
11162 mut depth: fidl::encoding::Depth,
11163 ) -> fidl::Result<()> {
11164 decoder.debug_check_bounds::<Self>(offset);
11165 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
11166 None => return Err(fidl::Error::NotNullable),
11167 Some(len) => len,
11168 };
11169 if len == 0 {
11171 return Ok(());
11172 };
11173 depth.increment()?;
11174 let envelope_size = 8;
11175 let bytes_len = len * envelope_size;
11176 let offset = decoder.out_of_line_offset(bytes_len)?;
11177 let mut _next_ordinal_to_read = 0;
11179 let mut next_offset = offset;
11180 let end_offset = offset + bytes_len;
11181 _next_ordinal_to_read += 1;
11182 if next_offset >= end_offset {
11183 return Ok(());
11184 }
11185
11186 while _next_ordinal_to_read < 1 {
11188 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11189 _next_ordinal_to_read += 1;
11190 next_offset += envelope_size;
11191 }
11192
11193 let next_out_of_line = decoder.next_out_of_line();
11194 let handles_before = decoder.remaining_handles();
11195 if let Some((inlined, num_bytes, num_handles)) =
11196 fidl::encoding::decode_envelope_header(decoder, next_offset)?
11197 {
11198 let member_inline_size =
11199 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
11200 decoder.context,
11201 );
11202 if inlined != (member_inline_size <= 4) {
11203 return Err(fidl::Error::InvalidInlineBitInEnvelope);
11204 }
11205 let inner_offset;
11206 let mut inner_depth = depth.clone();
11207 if inlined {
11208 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
11209 inner_offset = next_offset;
11210 } else {
11211 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
11212 inner_depth.increment()?;
11213 }
11214 let val_ref = self
11215 .selected_bssid
11216 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
11217 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
11218 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
11219 {
11220 return Err(fidl::Error::InvalidNumBytesInEnvelope);
11221 }
11222 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
11223 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
11224 }
11225 }
11226
11227 next_offset += envelope_size;
11228 _next_ordinal_to_read += 1;
11229 if next_offset >= end_offset {
11230 return Ok(());
11231 }
11232
11233 while _next_ordinal_to_read < 2 {
11235 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11236 _next_ordinal_to_read += 1;
11237 next_offset += envelope_size;
11238 }
11239
11240 let next_out_of_line = decoder.next_out_of_line();
11241 let handles_before = decoder.remaining_handles();
11242 if let Some((inlined, num_bytes, num_handles)) =
11243 fidl::encoding::decode_envelope_header(decoder, next_offset)?
11244 {
11245 let member_inline_size = <fidl_fuchsia_wlan_ieee80211_common::BssDescription as fidl::encoding::TypeMarker>::inline_size(decoder.context);
11246 if inlined != (member_inline_size <= 4) {
11247 return Err(fidl::Error::InvalidInlineBitInEnvelope);
11248 }
11249 let inner_offset;
11250 let mut inner_depth = depth.clone();
11251 if inlined {
11252 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
11253 inner_offset = next_offset;
11254 } else {
11255 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
11256 inner_depth.increment()?;
11257 }
11258 let val_ref = self.selected_bss.get_or_insert_with(|| {
11259 fidl::new_empty!(fidl_fuchsia_wlan_ieee80211_common::BssDescription, D)
11260 });
11261 fidl::decode!(
11262 fidl_fuchsia_wlan_ieee80211_common::BssDescription,
11263 D,
11264 val_ref,
11265 decoder,
11266 inner_offset,
11267 inner_depth
11268 )?;
11269 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
11270 {
11271 return Err(fidl::Error::InvalidNumBytesInEnvelope);
11272 }
11273 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
11274 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
11275 }
11276 }
11277
11278 next_offset += envelope_size;
11279 _next_ordinal_to_read += 1;
11280 if next_offset >= end_offset {
11281 return Ok(());
11282 }
11283
11284 while _next_ordinal_to_read < 3 {
11286 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11287 _next_ordinal_to_read += 1;
11288 next_offset += envelope_size;
11289 }
11290
11291 let next_out_of_line = decoder.next_out_of_line();
11292 let handles_before = decoder.remaining_handles();
11293 if let Some((inlined, num_bytes, num_handles)) =
11294 fidl::encoding::decode_envelope_header(decoder, next_offset)?
11295 {
11296 let member_inline_size =
11297 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
11298 if inlined != (member_inline_size <= 4) {
11299 return Err(fidl::Error::InvalidInlineBitInEnvelope);
11300 }
11301 let inner_offset;
11302 let mut inner_depth = depth.clone();
11303 if inlined {
11304 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
11305 inner_offset = next_offset;
11306 } else {
11307 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
11308 inner_depth.increment()?;
11309 }
11310 let val_ref = self
11311 .original_association_maintained
11312 .get_or_insert_with(|| fidl::new_empty!(bool, D));
11313 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
11314 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
11315 {
11316 return Err(fidl::Error::InvalidNumBytesInEnvelope);
11317 }
11318 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
11319 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
11320 }
11321 }
11322
11323 next_offset += envelope_size;
11324
11325 while next_offset < end_offset {
11327 _next_ordinal_to_read += 1;
11328 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11329 next_offset += envelope_size;
11330 }
11331
11332 Ok(())
11333 }
11334 }
11335
11336 impl WlanFullmacImplIfcSaeHandshakeIndRequest {
11337 #[inline(always)]
11338 fn max_ordinal_present(&self) -> u64 {
11339 if let Some(_) = self.peer_sta_address {
11340 return 1;
11341 }
11342 0
11343 }
11344 }
11345
11346 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcSaeHandshakeIndRequest {
11347 type Borrowed<'a> = &'a Self;
11348 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
11349 value
11350 }
11351 }
11352
11353 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcSaeHandshakeIndRequest {
11354 type Owned = Self;
11355
11356 #[inline(always)]
11357 fn inline_align(_context: fidl::encoding::Context) -> usize {
11358 8
11359 }
11360
11361 #[inline(always)]
11362 fn inline_size(_context: fidl::encoding::Context) -> usize {
11363 16
11364 }
11365 }
11366
11367 unsafe impl<D: fidl::encoding::ResourceDialect>
11368 fidl::encoding::Encode<WlanFullmacImplIfcSaeHandshakeIndRequest, D>
11369 for &WlanFullmacImplIfcSaeHandshakeIndRequest
11370 {
11371 unsafe fn encode(
11372 self,
11373 encoder: &mut fidl::encoding::Encoder<'_, D>,
11374 offset: usize,
11375 mut depth: fidl::encoding::Depth,
11376 ) -> fidl::Result<()> {
11377 encoder.debug_check_bounds::<WlanFullmacImplIfcSaeHandshakeIndRequest>(offset);
11378 let max_ordinal: u64 = self.max_ordinal_present();
11380 encoder.write_num(max_ordinal, offset);
11381 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
11382 if max_ordinal == 0 {
11384 return Ok(());
11385 }
11386 depth.increment()?;
11387 let envelope_size = 8;
11388 let bytes_len = max_ordinal as usize * envelope_size;
11389 #[allow(unused_variables)]
11390 let offset = encoder.out_of_line_offset(bytes_len);
11391 let mut _prev_end_offset: usize = 0;
11392 if 1 > max_ordinal {
11393 return Ok(());
11394 }
11395
11396 let cur_offset: usize = (1 - 1) * envelope_size;
11399
11400 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
11402
11403 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
11408 self.peer_sta_address
11409 .as_ref()
11410 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
11411 encoder,
11412 offset + cur_offset,
11413 depth,
11414 )?;
11415
11416 _prev_end_offset = cur_offset + envelope_size;
11417
11418 Ok(())
11419 }
11420 }
11421
11422 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
11423 for WlanFullmacImplIfcSaeHandshakeIndRequest
11424 {
11425 #[inline(always)]
11426 fn new_empty() -> Self {
11427 Self::default()
11428 }
11429
11430 unsafe fn decode(
11431 &mut self,
11432 decoder: &mut fidl::encoding::Decoder<'_, D>,
11433 offset: usize,
11434 mut depth: fidl::encoding::Depth,
11435 ) -> fidl::Result<()> {
11436 decoder.debug_check_bounds::<Self>(offset);
11437 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
11438 None => return Err(fidl::Error::NotNullable),
11439 Some(len) => len,
11440 };
11441 if len == 0 {
11443 return Ok(());
11444 };
11445 depth.increment()?;
11446 let envelope_size = 8;
11447 let bytes_len = len * envelope_size;
11448 let offset = decoder.out_of_line_offset(bytes_len)?;
11449 let mut _next_ordinal_to_read = 0;
11451 let mut next_offset = offset;
11452 let end_offset = offset + bytes_len;
11453 _next_ordinal_to_read += 1;
11454 if next_offset >= end_offset {
11455 return Ok(());
11456 }
11457
11458 while _next_ordinal_to_read < 1 {
11460 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11461 _next_ordinal_to_read += 1;
11462 next_offset += envelope_size;
11463 }
11464
11465 let next_out_of_line = decoder.next_out_of_line();
11466 let handles_before = decoder.remaining_handles();
11467 if let Some((inlined, num_bytes, num_handles)) =
11468 fidl::encoding::decode_envelope_header(decoder, next_offset)?
11469 {
11470 let member_inline_size =
11471 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
11472 decoder.context,
11473 );
11474 if inlined != (member_inline_size <= 4) {
11475 return Err(fidl::Error::InvalidInlineBitInEnvelope);
11476 }
11477 let inner_offset;
11478 let mut inner_depth = depth.clone();
11479 if inlined {
11480 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
11481 inner_offset = next_offset;
11482 } else {
11483 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
11484 inner_depth.increment()?;
11485 }
11486 let val_ref = self
11487 .peer_sta_address
11488 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
11489 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
11490 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
11491 {
11492 return Err(fidl::Error::InvalidNumBytesInEnvelope);
11493 }
11494 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
11495 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
11496 }
11497 }
11498
11499 next_offset += envelope_size;
11500
11501 while next_offset < end_offset {
11503 _next_ordinal_to_read += 1;
11504 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11505 next_offset += envelope_size;
11506 }
11507
11508 Ok(())
11509 }
11510 }
11511
11512 impl WlanFullmacImplIfcStartConfRequest {
11513 #[inline(always)]
11514 fn max_ordinal_present(&self) -> u64 {
11515 if let Some(_) = self.result_code {
11516 return 1;
11517 }
11518 0
11519 }
11520 }
11521
11522 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcStartConfRequest {
11523 type Borrowed<'a> = &'a Self;
11524 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
11525 value
11526 }
11527 }
11528
11529 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcStartConfRequest {
11530 type Owned = Self;
11531
11532 #[inline(always)]
11533 fn inline_align(_context: fidl::encoding::Context) -> usize {
11534 8
11535 }
11536
11537 #[inline(always)]
11538 fn inline_size(_context: fidl::encoding::Context) -> usize {
11539 16
11540 }
11541 }
11542
11543 unsafe impl<D: fidl::encoding::ResourceDialect>
11544 fidl::encoding::Encode<WlanFullmacImplIfcStartConfRequest, D>
11545 for &WlanFullmacImplIfcStartConfRequest
11546 {
11547 unsafe fn encode(
11548 self,
11549 encoder: &mut fidl::encoding::Encoder<'_, D>,
11550 offset: usize,
11551 mut depth: fidl::encoding::Depth,
11552 ) -> fidl::Result<()> {
11553 encoder.debug_check_bounds::<WlanFullmacImplIfcStartConfRequest>(offset);
11554 let max_ordinal: u64 = self.max_ordinal_present();
11556 encoder.write_num(max_ordinal, offset);
11557 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
11558 if max_ordinal == 0 {
11560 return Ok(());
11561 }
11562 depth.increment()?;
11563 let envelope_size = 8;
11564 let bytes_len = max_ordinal as usize * envelope_size;
11565 #[allow(unused_variables)]
11566 let offset = encoder.out_of_line_offset(bytes_len);
11567 let mut _prev_end_offset: usize = 0;
11568 if 1 > max_ordinal {
11569 return Ok(());
11570 }
11571
11572 let cur_offset: usize = (1 - 1) * envelope_size;
11575
11576 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
11578
11579 fidl::encoding::encode_in_envelope_optional::<StartResult, D>(
11584 self.result_code
11585 .as_ref()
11586 .map(<StartResult as fidl::encoding::ValueTypeMarker>::borrow),
11587 encoder,
11588 offset + cur_offset,
11589 depth,
11590 )?;
11591
11592 _prev_end_offset = cur_offset + envelope_size;
11593
11594 Ok(())
11595 }
11596 }
11597
11598 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
11599 for WlanFullmacImplIfcStartConfRequest
11600 {
11601 #[inline(always)]
11602 fn new_empty() -> Self {
11603 Self::default()
11604 }
11605
11606 unsafe fn decode(
11607 &mut self,
11608 decoder: &mut fidl::encoding::Decoder<'_, D>,
11609 offset: usize,
11610 mut depth: fidl::encoding::Depth,
11611 ) -> fidl::Result<()> {
11612 decoder.debug_check_bounds::<Self>(offset);
11613 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
11614 None => return Err(fidl::Error::NotNullable),
11615 Some(len) => len,
11616 };
11617 if len == 0 {
11619 return Ok(());
11620 };
11621 depth.increment()?;
11622 let envelope_size = 8;
11623 let bytes_len = len * envelope_size;
11624 let offset = decoder.out_of_line_offset(bytes_len)?;
11625 let mut _next_ordinal_to_read = 0;
11627 let mut next_offset = offset;
11628 let end_offset = offset + bytes_len;
11629 _next_ordinal_to_read += 1;
11630 if next_offset >= end_offset {
11631 return Ok(());
11632 }
11633
11634 while _next_ordinal_to_read < 1 {
11636 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11637 _next_ordinal_to_read += 1;
11638 next_offset += envelope_size;
11639 }
11640
11641 let next_out_of_line = decoder.next_out_of_line();
11642 let handles_before = decoder.remaining_handles();
11643 if let Some((inlined, num_bytes, num_handles)) =
11644 fidl::encoding::decode_envelope_header(decoder, next_offset)?
11645 {
11646 let member_inline_size =
11647 <StartResult as fidl::encoding::TypeMarker>::inline_size(decoder.context);
11648 if inlined != (member_inline_size <= 4) {
11649 return Err(fidl::Error::InvalidInlineBitInEnvelope);
11650 }
11651 let inner_offset;
11652 let mut inner_depth = depth.clone();
11653 if inlined {
11654 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
11655 inner_offset = next_offset;
11656 } else {
11657 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
11658 inner_depth.increment()?;
11659 }
11660 let val_ref =
11661 self.result_code.get_or_insert_with(|| fidl::new_empty!(StartResult, D));
11662 fidl::decode!(StartResult, D, val_ref, decoder, inner_offset, inner_depth)?;
11663 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
11664 {
11665 return Err(fidl::Error::InvalidNumBytesInEnvelope);
11666 }
11667 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
11668 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
11669 }
11670 }
11671
11672 next_offset += envelope_size;
11673
11674 while next_offset < end_offset {
11676 _next_ordinal_to_read += 1;
11677 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11678 next_offset += envelope_size;
11679 }
11680
11681 Ok(())
11682 }
11683 }
11684
11685 impl WlanFullmacImplIfcStopConfRequest {
11686 #[inline(always)]
11687 fn max_ordinal_present(&self) -> u64 {
11688 if let Some(_) = self.result_code {
11689 return 1;
11690 }
11691 0
11692 }
11693 }
11694
11695 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcStopConfRequest {
11696 type Borrowed<'a> = &'a Self;
11697 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
11698 value
11699 }
11700 }
11701
11702 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcStopConfRequest {
11703 type Owned = Self;
11704
11705 #[inline(always)]
11706 fn inline_align(_context: fidl::encoding::Context) -> usize {
11707 8
11708 }
11709
11710 #[inline(always)]
11711 fn inline_size(_context: fidl::encoding::Context) -> usize {
11712 16
11713 }
11714 }
11715
11716 unsafe impl<D: fidl::encoding::ResourceDialect>
11717 fidl::encoding::Encode<WlanFullmacImplIfcStopConfRequest, D>
11718 for &WlanFullmacImplIfcStopConfRequest
11719 {
11720 unsafe fn encode(
11721 self,
11722 encoder: &mut fidl::encoding::Encoder<'_, D>,
11723 offset: usize,
11724 mut depth: fidl::encoding::Depth,
11725 ) -> fidl::Result<()> {
11726 encoder.debug_check_bounds::<WlanFullmacImplIfcStopConfRequest>(offset);
11727 let max_ordinal: u64 = self.max_ordinal_present();
11729 encoder.write_num(max_ordinal, offset);
11730 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
11731 if max_ordinal == 0 {
11733 return Ok(());
11734 }
11735 depth.increment()?;
11736 let envelope_size = 8;
11737 let bytes_len = max_ordinal as usize * envelope_size;
11738 #[allow(unused_variables)]
11739 let offset = encoder.out_of_line_offset(bytes_len);
11740 let mut _prev_end_offset: usize = 0;
11741 if 1 > max_ordinal {
11742 return Ok(());
11743 }
11744
11745 let cur_offset: usize = (1 - 1) * envelope_size;
11748
11749 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
11751
11752 fidl::encoding::encode_in_envelope_optional::<StopResult, D>(
11757 self.result_code
11758 .as_ref()
11759 .map(<StopResult as fidl::encoding::ValueTypeMarker>::borrow),
11760 encoder,
11761 offset + cur_offset,
11762 depth,
11763 )?;
11764
11765 _prev_end_offset = cur_offset + envelope_size;
11766
11767 Ok(())
11768 }
11769 }
11770
11771 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
11772 for WlanFullmacImplIfcStopConfRequest
11773 {
11774 #[inline(always)]
11775 fn new_empty() -> Self {
11776 Self::default()
11777 }
11778
11779 unsafe fn decode(
11780 &mut self,
11781 decoder: &mut fidl::encoding::Decoder<'_, D>,
11782 offset: usize,
11783 mut depth: fidl::encoding::Depth,
11784 ) -> fidl::Result<()> {
11785 decoder.debug_check_bounds::<Self>(offset);
11786 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
11787 None => return Err(fidl::Error::NotNullable),
11788 Some(len) => len,
11789 };
11790 if len == 0 {
11792 return Ok(());
11793 };
11794 depth.increment()?;
11795 let envelope_size = 8;
11796 let bytes_len = len * envelope_size;
11797 let offset = decoder.out_of_line_offset(bytes_len)?;
11798 let mut _next_ordinal_to_read = 0;
11800 let mut next_offset = offset;
11801 let end_offset = offset + bytes_len;
11802 _next_ordinal_to_read += 1;
11803 if next_offset >= end_offset {
11804 return Ok(());
11805 }
11806
11807 while _next_ordinal_to_read < 1 {
11809 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11810 _next_ordinal_to_read += 1;
11811 next_offset += envelope_size;
11812 }
11813
11814 let next_out_of_line = decoder.next_out_of_line();
11815 let handles_before = decoder.remaining_handles();
11816 if let Some((inlined, num_bytes, num_handles)) =
11817 fidl::encoding::decode_envelope_header(decoder, next_offset)?
11818 {
11819 let member_inline_size =
11820 <StopResult as fidl::encoding::TypeMarker>::inline_size(decoder.context);
11821 if inlined != (member_inline_size <= 4) {
11822 return Err(fidl::Error::InvalidInlineBitInEnvelope);
11823 }
11824 let inner_offset;
11825 let mut inner_depth = depth.clone();
11826 if inlined {
11827 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
11828 inner_offset = next_offset;
11829 } else {
11830 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
11831 inner_depth.increment()?;
11832 }
11833 let val_ref =
11834 self.result_code.get_or_insert_with(|| fidl::new_empty!(StopResult, D));
11835 fidl::decode!(StopResult, D, val_ref, decoder, inner_offset, inner_depth)?;
11836 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
11837 {
11838 return Err(fidl::Error::InvalidNumBytesInEnvelope);
11839 }
11840 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
11841 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
11842 }
11843 }
11844
11845 next_offset += envelope_size;
11846
11847 while next_offset < end_offset {
11849 _next_ordinal_to_read += 1;
11850 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11851 next_offset += envelope_size;
11852 }
11853
11854 Ok(())
11855 }
11856 }
11857
11858 impl WlanFullmacImplInstallApfPacketFilterRequest {
11859 #[inline(always)]
11860 fn max_ordinal_present(&self) -> u64 {
11861 if let Some(_) = self.program {
11862 return 1;
11863 }
11864 0
11865 }
11866 }
11867
11868 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplInstallApfPacketFilterRequest {
11869 type Borrowed<'a> = &'a Self;
11870 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
11871 value
11872 }
11873 }
11874
11875 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplInstallApfPacketFilterRequest {
11876 type Owned = Self;
11877
11878 #[inline(always)]
11879 fn inline_align(_context: fidl::encoding::Context) -> usize {
11880 8
11881 }
11882
11883 #[inline(always)]
11884 fn inline_size(_context: fidl::encoding::Context) -> usize {
11885 16
11886 }
11887 }
11888
11889 unsafe impl<D: fidl::encoding::ResourceDialect>
11890 fidl::encoding::Encode<WlanFullmacImplInstallApfPacketFilterRequest, D>
11891 for &WlanFullmacImplInstallApfPacketFilterRequest
11892 {
11893 unsafe fn encode(
11894 self,
11895 encoder: &mut fidl::encoding::Encoder<'_, D>,
11896 offset: usize,
11897 mut depth: fidl::encoding::Depth,
11898 ) -> fidl::Result<()> {
11899 encoder.debug_check_bounds::<WlanFullmacImplInstallApfPacketFilterRequest>(offset);
11900 let max_ordinal: u64 = self.max_ordinal_present();
11902 encoder.write_num(max_ordinal, offset);
11903 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
11904 if max_ordinal == 0 {
11906 return Ok(());
11907 }
11908 depth.increment()?;
11909 let envelope_size = 8;
11910 let bytes_len = max_ordinal as usize * envelope_size;
11911 #[allow(unused_variables)]
11912 let offset = encoder.out_of_line_offset(bytes_len);
11913 let mut _prev_end_offset: usize = 0;
11914 if 1 > max_ordinal {
11915 return Ok(());
11916 }
11917
11918 let cur_offset: usize = (1 - 1) * envelope_size;
11921
11922 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
11924
11925 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<u8>, D>(
11930 self.program.as_ref().map(<fidl::encoding::UnboundedVector<u8> as fidl::encoding::ValueTypeMarker>::borrow),
11931 encoder, offset + cur_offset, depth
11932 )?;
11933
11934 _prev_end_offset = cur_offset + envelope_size;
11935
11936 Ok(())
11937 }
11938 }
11939
11940 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
11941 for WlanFullmacImplInstallApfPacketFilterRequest
11942 {
11943 #[inline(always)]
11944 fn new_empty() -> Self {
11945 Self::default()
11946 }
11947
11948 unsafe fn decode(
11949 &mut self,
11950 decoder: &mut fidl::encoding::Decoder<'_, D>,
11951 offset: usize,
11952 mut depth: fidl::encoding::Depth,
11953 ) -> fidl::Result<()> {
11954 decoder.debug_check_bounds::<Self>(offset);
11955 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
11956 None => return Err(fidl::Error::NotNullable),
11957 Some(len) => len,
11958 };
11959 if len == 0 {
11961 return Ok(());
11962 };
11963 depth.increment()?;
11964 let envelope_size = 8;
11965 let bytes_len = len * envelope_size;
11966 let offset = decoder.out_of_line_offset(bytes_len)?;
11967 let mut _next_ordinal_to_read = 0;
11969 let mut next_offset = offset;
11970 let end_offset = offset + bytes_len;
11971 _next_ordinal_to_read += 1;
11972 if next_offset >= end_offset {
11973 return Ok(());
11974 }
11975
11976 while _next_ordinal_to_read < 1 {
11978 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11979 _next_ordinal_to_read += 1;
11980 next_offset += envelope_size;
11981 }
11982
11983 let next_out_of_line = decoder.next_out_of_line();
11984 let handles_before = decoder.remaining_handles();
11985 if let Some((inlined, num_bytes, num_handles)) =
11986 fidl::encoding::decode_envelope_header(decoder, next_offset)?
11987 {
11988 let member_inline_size = <fidl::encoding::UnboundedVector<u8> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
11989 if inlined != (member_inline_size <= 4) {
11990 return Err(fidl::Error::InvalidInlineBitInEnvelope);
11991 }
11992 let inner_offset;
11993 let mut inner_depth = depth.clone();
11994 if inlined {
11995 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
11996 inner_offset = next_offset;
11997 } else {
11998 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
11999 inner_depth.increment()?;
12000 }
12001 let val_ref = self.program.get_or_insert_with(|| {
12002 fidl::new_empty!(fidl::encoding::UnboundedVector<u8>, D)
12003 });
12004 fidl::decode!(
12005 fidl::encoding::UnboundedVector<u8>,
12006 D,
12007 val_ref,
12008 decoder,
12009 inner_offset,
12010 inner_depth
12011 )?;
12012 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
12013 {
12014 return Err(fidl::Error::InvalidNumBytesInEnvelope);
12015 }
12016 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
12017 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
12018 }
12019 }
12020
12021 next_offset += envelope_size;
12022
12023 while next_offset < end_offset {
12025 _next_ordinal_to_read += 1;
12026 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12027 next_offset += envelope_size;
12028 }
12029
12030 Ok(())
12031 }
12032 }
12033
12034 impl WlanFullmacImplOnLinkStateChangedRequest {
12035 #[inline(always)]
12036 fn max_ordinal_present(&self) -> u64 {
12037 if let Some(_) = self.online {
12038 return 1;
12039 }
12040 0
12041 }
12042 }
12043
12044 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplOnLinkStateChangedRequest {
12045 type Borrowed<'a> = &'a Self;
12046 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
12047 value
12048 }
12049 }
12050
12051 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplOnLinkStateChangedRequest {
12052 type Owned = Self;
12053
12054 #[inline(always)]
12055 fn inline_align(_context: fidl::encoding::Context) -> usize {
12056 8
12057 }
12058
12059 #[inline(always)]
12060 fn inline_size(_context: fidl::encoding::Context) -> usize {
12061 16
12062 }
12063 }
12064
12065 unsafe impl<D: fidl::encoding::ResourceDialect>
12066 fidl::encoding::Encode<WlanFullmacImplOnLinkStateChangedRequest, D>
12067 for &WlanFullmacImplOnLinkStateChangedRequest
12068 {
12069 unsafe fn encode(
12070 self,
12071 encoder: &mut fidl::encoding::Encoder<'_, D>,
12072 offset: usize,
12073 mut depth: fidl::encoding::Depth,
12074 ) -> fidl::Result<()> {
12075 encoder.debug_check_bounds::<WlanFullmacImplOnLinkStateChangedRequest>(offset);
12076 let max_ordinal: u64 = self.max_ordinal_present();
12078 encoder.write_num(max_ordinal, offset);
12079 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
12080 if max_ordinal == 0 {
12082 return Ok(());
12083 }
12084 depth.increment()?;
12085 let envelope_size = 8;
12086 let bytes_len = max_ordinal as usize * envelope_size;
12087 #[allow(unused_variables)]
12088 let offset = encoder.out_of_line_offset(bytes_len);
12089 let mut _prev_end_offset: usize = 0;
12090 if 1 > max_ordinal {
12091 return Ok(());
12092 }
12093
12094 let cur_offset: usize = (1 - 1) * envelope_size;
12097
12098 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12100
12101 fidl::encoding::encode_in_envelope_optional::<bool, D>(
12106 self.online.as_ref().map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
12107 encoder,
12108 offset + cur_offset,
12109 depth,
12110 )?;
12111
12112 _prev_end_offset = cur_offset + envelope_size;
12113
12114 Ok(())
12115 }
12116 }
12117
12118 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
12119 for WlanFullmacImplOnLinkStateChangedRequest
12120 {
12121 #[inline(always)]
12122 fn new_empty() -> Self {
12123 Self::default()
12124 }
12125
12126 unsafe fn decode(
12127 &mut self,
12128 decoder: &mut fidl::encoding::Decoder<'_, D>,
12129 offset: usize,
12130 mut depth: fidl::encoding::Depth,
12131 ) -> fidl::Result<()> {
12132 decoder.debug_check_bounds::<Self>(offset);
12133 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
12134 None => return Err(fidl::Error::NotNullable),
12135 Some(len) => len,
12136 };
12137 if len == 0 {
12139 return Ok(());
12140 };
12141 depth.increment()?;
12142 let envelope_size = 8;
12143 let bytes_len = len * envelope_size;
12144 let offset = decoder.out_of_line_offset(bytes_len)?;
12145 let mut _next_ordinal_to_read = 0;
12147 let mut next_offset = offset;
12148 let end_offset = offset + bytes_len;
12149 _next_ordinal_to_read += 1;
12150 if next_offset >= end_offset {
12151 return Ok(());
12152 }
12153
12154 while _next_ordinal_to_read < 1 {
12156 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12157 _next_ordinal_to_read += 1;
12158 next_offset += envelope_size;
12159 }
12160
12161 let next_out_of_line = decoder.next_out_of_line();
12162 let handles_before = decoder.remaining_handles();
12163 if let Some((inlined, num_bytes, num_handles)) =
12164 fidl::encoding::decode_envelope_header(decoder, next_offset)?
12165 {
12166 let member_inline_size =
12167 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
12168 if inlined != (member_inline_size <= 4) {
12169 return Err(fidl::Error::InvalidInlineBitInEnvelope);
12170 }
12171 let inner_offset;
12172 let mut inner_depth = depth.clone();
12173 if inlined {
12174 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
12175 inner_offset = next_offset;
12176 } else {
12177 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
12178 inner_depth.increment()?;
12179 }
12180 let val_ref = self.online.get_or_insert_with(|| fidl::new_empty!(bool, D));
12181 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
12182 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
12183 {
12184 return Err(fidl::Error::InvalidNumBytesInEnvelope);
12185 }
12186 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
12187 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
12188 }
12189 }
12190
12191 next_offset += envelope_size;
12192
12193 while next_offset < end_offset {
12195 _next_ordinal_to_read += 1;
12196 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12197 next_offset += envelope_size;
12198 }
12199
12200 Ok(())
12201 }
12202 }
12203
12204 impl WlanFullmacImplReconnectRequest {
12205 #[inline(always)]
12206 fn max_ordinal_present(&self) -> u64 {
12207 if let Some(_) = self.peer_sta_address {
12208 return 1;
12209 }
12210 0
12211 }
12212 }
12213
12214 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplReconnectRequest {
12215 type Borrowed<'a> = &'a Self;
12216 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
12217 value
12218 }
12219 }
12220
12221 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplReconnectRequest {
12222 type Owned = Self;
12223
12224 #[inline(always)]
12225 fn inline_align(_context: fidl::encoding::Context) -> usize {
12226 8
12227 }
12228
12229 #[inline(always)]
12230 fn inline_size(_context: fidl::encoding::Context) -> usize {
12231 16
12232 }
12233 }
12234
12235 unsafe impl<D: fidl::encoding::ResourceDialect>
12236 fidl::encoding::Encode<WlanFullmacImplReconnectRequest, D>
12237 for &WlanFullmacImplReconnectRequest
12238 {
12239 unsafe fn encode(
12240 self,
12241 encoder: &mut fidl::encoding::Encoder<'_, D>,
12242 offset: usize,
12243 mut depth: fidl::encoding::Depth,
12244 ) -> fidl::Result<()> {
12245 encoder.debug_check_bounds::<WlanFullmacImplReconnectRequest>(offset);
12246 let max_ordinal: u64 = self.max_ordinal_present();
12248 encoder.write_num(max_ordinal, offset);
12249 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
12250 if max_ordinal == 0 {
12252 return Ok(());
12253 }
12254 depth.increment()?;
12255 let envelope_size = 8;
12256 let bytes_len = max_ordinal as usize * envelope_size;
12257 #[allow(unused_variables)]
12258 let offset = encoder.out_of_line_offset(bytes_len);
12259 let mut _prev_end_offset: usize = 0;
12260 if 1 > max_ordinal {
12261 return Ok(());
12262 }
12263
12264 let cur_offset: usize = (1 - 1) * envelope_size;
12267
12268 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12270
12271 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
12276 self.peer_sta_address
12277 .as_ref()
12278 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
12279 encoder,
12280 offset + cur_offset,
12281 depth,
12282 )?;
12283
12284 _prev_end_offset = cur_offset + envelope_size;
12285
12286 Ok(())
12287 }
12288 }
12289
12290 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
12291 for WlanFullmacImplReconnectRequest
12292 {
12293 #[inline(always)]
12294 fn new_empty() -> Self {
12295 Self::default()
12296 }
12297
12298 unsafe fn decode(
12299 &mut self,
12300 decoder: &mut fidl::encoding::Decoder<'_, D>,
12301 offset: usize,
12302 mut depth: fidl::encoding::Depth,
12303 ) -> fidl::Result<()> {
12304 decoder.debug_check_bounds::<Self>(offset);
12305 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
12306 None => return Err(fidl::Error::NotNullable),
12307 Some(len) => len,
12308 };
12309 if len == 0 {
12311 return Ok(());
12312 };
12313 depth.increment()?;
12314 let envelope_size = 8;
12315 let bytes_len = len * envelope_size;
12316 let offset = decoder.out_of_line_offset(bytes_len)?;
12317 let mut _next_ordinal_to_read = 0;
12319 let mut next_offset = offset;
12320 let end_offset = offset + bytes_len;
12321 _next_ordinal_to_read += 1;
12322 if next_offset >= end_offset {
12323 return Ok(());
12324 }
12325
12326 while _next_ordinal_to_read < 1 {
12328 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12329 _next_ordinal_to_read += 1;
12330 next_offset += envelope_size;
12331 }
12332
12333 let next_out_of_line = decoder.next_out_of_line();
12334 let handles_before = decoder.remaining_handles();
12335 if let Some((inlined, num_bytes, num_handles)) =
12336 fidl::encoding::decode_envelope_header(decoder, next_offset)?
12337 {
12338 let member_inline_size =
12339 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
12340 decoder.context,
12341 );
12342 if inlined != (member_inline_size <= 4) {
12343 return Err(fidl::Error::InvalidInlineBitInEnvelope);
12344 }
12345 let inner_offset;
12346 let mut inner_depth = depth.clone();
12347 if inlined {
12348 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
12349 inner_offset = next_offset;
12350 } else {
12351 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
12352 inner_depth.increment()?;
12353 }
12354 let val_ref = self
12355 .peer_sta_address
12356 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
12357 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
12358 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
12359 {
12360 return Err(fidl::Error::InvalidNumBytesInEnvelope);
12361 }
12362 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
12363 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
12364 }
12365 }
12366
12367 next_offset += envelope_size;
12368
12369 while next_offset < end_offset {
12371 _next_ordinal_to_read += 1;
12372 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12373 next_offset += envelope_size;
12374 }
12375
12376 Ok(())
12377 }
12378 }
12379
12380 impl WlanFullmacImplRoamRequest {
12381 #[inline(always)]
12382 fn max_ordinal_present(&self) -> u64 {
12383 if let Some(_) = self.selected_bss {
12384 return 1;
12385 }
12386 0
12387 }
12388 }
12389
12390 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplRoamRequest {
12391 type Borrowed<'a> = &'a Self;
12392 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
12393 value
12394 }
12395 }
12396
12397 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplRoamRequest {
12398 type Owned = Self;
12399
12400 #[inline(always)]
12401 fn inline_align(_context: fidl::encoding::Context) -> usize {
12402 8
12403 }
12404
12405 #[inline(always)]
12406 fn inline_size(_context: fidl::encoding::Context) -> usize {
12407 16
12408 }
12409 }
12410
12411 unsafe impl<D: fidl::encoding::ResourceDialect>
12412 fidl::encoding::Encode<WlanFullmacImplRoamRequest, D> for &WlanFullmacImplRoamRequest
12413 {
12414 unsafe fn encode(
12415 self,
12416 encoder: &mut fidl::encoding::Encoder<'_, D>,
12417 offset: usize,
12418 mut depth: fidl::encoding::Depth,
12419 ) -> fidl::Result<()> {
12420 encoder.debug_check_bounds::<WlanFullmacImplRoamRequest>(offset);
12421 let max_ordinal: u64 = self.max_ordinal_present();
12423 encoder.write_num(max_ordinal, offset);
12424 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
12425 if max_ordinal == 0 {
12427 return Ok(());
12428 }
12429 depth.increment()?;
12430 let envelope_size = 8;
12431 let bytes_len = max_ordinal as usize * envelope_size;
12432 #[allow(unused_variables)]
12433 let offset = encoder.out_of_line_offset(bytes_len);
12434 let mut _prev_end_offset: usize = 0;
12435 if 1 > max_ordinal {
12436 return Ok(());
12437 }
12438
12439 let cur_offset: usize = (1 - 1) * envelope_size;
12442
12443 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12445
12446 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_ieee80211_common::BssDescription, D>(
12451 self.selected_bss.as_ref().map(<fidl_fuchsia_wlan_ieee80211_common::BssDescription as fidl::encoding::ValueTypeMarker>::borrow),
12452 encoder, offset + cur_offset, depth
12453 )?;
12454
12455 _prev_end_offset = cur_offset + envelope_size;
12456
12457 Ok(())
12458 }
12459 }
12460
12461 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
12462 for WlanFullmacImplRoamRequest
12463 {
12464 #[inline(always)]
12465 fn new_empty() -> Self {
12466 Self::default()
12467 }
12468
12469 unsafe fn decode(
12470 &mut self,
12471 decoder: &mut fidl::encoding::Decoder<'_, D>,
12472 offset: usize,
12473 mut depth: fidl::encoding::Depth,
12474 ) -> fidl::Result<()> {
12475 decoder.debug_check_bounds::<Self>(offset);
12476 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
12477 None => return Err(fidl::Error::NotNullable),
12478 Some(len) => len,
12479 };
12480 if len == 0 {
12482 return Ok(());
12483 };
12484 depth.increment()?;
12485 let envelope_size = 8;
12486 let bytes_len = len * envelope_size;
12487 let offset = decoder.out_of_line_offset(bytes_len)?;
12488 let mut _next_ordinal_to_read = 0;
12490 let mut next_offset = offset;
12491 let end_offset = offset + bytes_len;
12492 _next_ordinal_to_read += 1;
12493 if next_offset >= end_offset {
12494 return Ok(());
12495 }
12496
12497 while _next_ordinal_to_read < 1 {
12499 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12500 _next_ordinal_to_read += 1;
12501 next_offset += envelope_size;
12502 }
12503
12504 let next_out_of_line = decoder.next_out_of_line();
12505 let handles_before = decoder.remaining_handles();
12506 if let Some((inlined, num_bytes, num_handles)) =
12507 fidl::encoding::decode_envelope_header(decoder, next_offset)?
12508 {
12509 let member_inline_size = <fidl_fuchsia_wlan_ieee80211_common::BssDescription as fidl::encoding::TypeMarker>::inline_size(decoder.context);
12510 if inlined != (member_inline_size <= 4) {
12511 return Err(fidl::Error::InvalidInlineBitInEnvelope);
12512 }
12513 let inner_offset;
12514 let mut inner_depth = depth.clone();
12515 if inlined {
12516 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
12517 inner_offset = next_offset;
12518 } else {
12519 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
12520 inner_depth.increment()?;
12521 }
12522 let val_ref = self.selected_bss.get_or_insert_with(|| {
12523 fidl::new_empty!(fidl_fuchsia_wlan_ieee80211_common::BssDescription, D)
12524 });
12525 fidl::decode!(
12526 fidl_fuchsia_wlan_ieee80211_common::BssDescription,
12527 D,
12528 val_ref,
12529 decoder,
12530 inner_offset,
12531 inner_depth
12532 )?;
12533 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
12534 {
12535 return Err(fidl::Error::InvalidNumBytesInEnvelope);
12536 }
12537 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
12538 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
12539 }
12540 }
12541
12542 next_offset += envelope_size;
12543
12544 while next_offset < end_offset {
12546 _next_ordinal_to_read += 1;
12547 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12548 next_offset += envelope_size;
12549 }
12550
12551 Ok(())
12552 }
12553 }
12554
12555 impl WlanFullmacImplSaeHandshakeRespRequest {
12556 #[inline(always)]
12557 fn max_ordinal_present(&self) -> u64 {
12558 if let Some(_) = self.status_code {
12559 return 2;
12560 }
12561 if let Some(_) = self.peer_sta_address {
12562 return 1;
12563 }
12564 0
12565 }
12566 }
12567
12568 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplSaeHandshakeRespRequest {
12569 type Borrowed<'a> = &'a Self;
12570 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
12571 value
12572 }
12573 }
12574
12575 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplSaeHandshakeRespRequest {
12576 type Owned = Self;
12577
12578 #[inline(always)]
12579 fn inline_align(_context: fidl::encoding::Context) -> usize {
12580 8
12581 }
12582
12583 #[inline(always)]
12584 fn inline_size(_context: fidl::encoding::Context) -> usize {
12585 16
12586 }
12587 }
12588
12589 unsafe impl<D: fidl::encoding::ResourceDialect>
12590 fidl::encoding::Encode<WlanFullmacImplSaeHandshakeRespRequest, D>
12591 for &WlanFullmacImplSaeHandshakeRespRequest
12592 {
12593 unsafe fn encode(
12594 self,
12595 encoder: &mut fidl::encoding::Encoder<'_, D>,
12596 offset: usize,
12597 mut depth: fidl::encoding::Depth,
12598 ) -> fidl::Result<()> {
12599 encoder.debug_check_bounds::<WlanFullmacImplSaeHandshakeRespRequest>(offset);
12600 let max_ordinal: u64 = self.max_ordinal_present();
12602 encoder.write_num(max_ordinal, offset);
12603 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
12604 if max_ordinal == 0 {
12606 return Ok(());
12607 }
12608 depth.increment()?;
12609 let envelope_size = 8;
12610 let bytes_len = max_ordinal as usize * envelope_size;
12611 #[allow(unused_variables)]
12612 let offset = encoder.out_of_line_offset(bytes_len);
12613 let mut _prev_end_offset: usize = 0;
12614 if 1 > max_ordinal {
12615 return Ok(());
12616 }
12617
12618 let cur_offset: usize = (1 - 1) * envelope_size;
12621
12622 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12624
12625 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
12630 self.peer_sta_address
12631 .as_ref()
12632 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
12633 encoder,
12634 offset + cur_offset,
12635 depth,
12636 )?;
12637
12638 _prev_end_offset = cur_offset + envelope_size;
12639 if 2 > max_ordinal {
12640 return Ok(());
12641 }
12642
12643 let cur_offset: usize = (2 - 1) * envelope_size;
12646
12647 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12649
12650 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_ieee80211_common::StatusCode, D>(
12655 self.status_code.as_ref().map(<fidl_fuchsia_wlan_ieee80211_common::StatusCode as fidl::encoding::ValueTypeMarker>::borrow),
12656 encoder, offset + cur_offset, depth
12657 )?;
12658
12659 _prev_end_offset = cur_offset + envelope_size;
12660
12661 Ok(())
12662 }
12663 }
12664
12665 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
12666 for WlanFullmacImplSaeHandshakeRespRequest
12667 {
12668 #[inline(always)]
12669 fn new_empty() -> Self {
12670 Self::default()
12671 }
12672
12673 unsafe fn decode(
12674 &mut self,
12675 decoder: &mut fidl::encoding::Decoder<'_, D>,
12676 offset: usize,
12677 mut depth: fidl::encoding::Depth,
12678 ) -> fidl::Result<()> {
12679 decoder.debug_check_bounds::<Self>(offset);
12680 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
12681 None => return Err(fidl::Error::NotNullable),
12682 Some(len) => len,
12683 };
12684 if len == 0 {
12686 return Ok(());
12687 };
12688 depth.increment()?;
12689 let envelope_size = 8;
12690 let bytes_len = len * envelope_size;
12691 let offset = decoder.out_of_line_offset(bytes_len)?;
12692 let mut _next_ordinal_to_read = 0;
12694 let mut next_offset = offset;
12695 let end_offset = offset + bytes_len;
12696 _next_ordinal_to_read += 1;
12697 if next_offset >= end_offset {
12698 return Ok(());
12699 }
12700
12701 while _next_ordinal_to_read < 1 {
12703 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12704 _next_ordinal_to_read += 1;
12705 next_offset += envelope_size;
12706 }
12707
12708 let next_out_of_line = decoder.next_out_of_line();
12709 let handles_before = decoder.remaining_handles();
12710 if let Some((inlined, num_bytes, num_handles)) =
12711 fidl::encoding::decode_envelope_header(decoder, next_offset)?
12712 {
12713 let member_inline_size =
12714 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
12715 decoder.context,
12716 );
12717 if inlined != (member_inline_size <= 4) {
12718 return Err(fidl::Error::InvalidInlineBitInEnvelope);
12719 }
12720 let inner_offset;
12721 let mut inner_depth = depth.clone();
12722 if inlined {
12723 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
12724 inner_offset = next_offset;
12725 } else {
12726 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
12727 inner_depth.increment()?;
12728 }
12729 let val_ref = self
12730 .peer_sta_address
12731 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
12732 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
12733 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
12734 {
12735 return Err(fidl::Error::InvalidNumBytesInEnvelope);
12736 }
12737 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
12738 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
12739 }
12740 }
12741
12742 next_offset += envelope_size;
12743 _next_ordinal_to_read += 1;
12744 if next_offset >= end_offset {
12745 return Ok(());
12746 }
12747
12748 while _next_ordinal_to_read < 2 {
12750 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12751 _next_ordinal_to_read += 1;
12752 next_offset += envelope_size;
12753 }
12754
12755 let next_out_of_line = decoder.next_out_of_line();
12756 let handles_before = decoder.remaining_handles();
12757 if let Some((inlined, num_bytes, num_handles)) =
12758 fidl::encoding::decode_envelope_header(decoder, next_offset)?
12759 {
12760 let member_inline_size = <fidl_fuchsia_wlan_ieee80211_common::StatusCode as fidl::encoding::TypeMarker>::inline_size(decoder.context);
12761 if inlined != (member_inline_size <= 4) {
12762 return Err(fidl::Error::InvalidInlineBitInEnvelope);
12763 }
12764 let inner_offset;
12765 let mut inner_depth = depth.clone();
12766 if inlined {
12767 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
12768 inner_offset = next_offset;
12769 } else {
12770 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
12771 inner_depth.increment()?;
12772 }
12773 let val_ref = self.status_code.get_or_insert_with(|| {
12774 fidl::new_empty!(fidl_fuchsia_wlan_ieee80211_common::StatusCode, D)
12775 });
12776 fidl::decode!(
12777 fidl_fuchsia_wlan_ieee80211_common::StatusCode,
12778 D,
12779 val_ref,
12780 decoder,
12781 inner_offset,
12782 inner_depth
12783 )?;
12784 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
12785 {
12786 return Err(fidl::Error::InvalidNumBytesInEnvelope);
12787 }
12788 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
12789 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
12790 }
12791 }
12792
12793 next_offset += envelope_size;
12794
12795 while next_offset < end_offset {
12797 _next_ordinal_to_read += 1;
12798 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12799 next_offset += envelope_size;
12800 }
12801
12802 Ok(())
12803 }
12804 }
12805
12806 impl WlanFullmacImplSetApfPacketFilterEnabledRequest {
12807 #[inline(always)]
12808 fn max_ordinal_present(&self) -> u64 {
12809 if let Some(_) = self.enabled {
12810 return 1;
12811 }
12812 0
12813 }
12814 }
12815
12816 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplSetApfPacketFilterEnabledRequest {
12817 type Borrowed<'a> = &'a Self;
12818 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
12819 value
12820 }
12821 }
12822
12823 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplSetApfPacketFilterEnabledRequest {
12824 type Owned = Self;
12825
12826 #[inline(always)]
12827 fn inline_align(_context: fidl::encoding::Context) -> usize {
12828 8
12829 }
12830
12831 #[inline(always)]
12832 fn inline_size(_context: fidl::encoding::Context) -> usize {
12833 16
12834 }
12835 }
12836
12837 unsafe impl<D: fidl::encoding::ResourceDialect>
12838 fidl::encoding::Encode<WlanFullmacImplSetApfPacketFilterEnabledRequest, D>
12839 for &WlanFullmacImplSetApfPacketFilterEnabledRequest
12840 {
12841 unsafe fn encode(
12842 self,
12843 encoder: &mut fidl::encoding::Encoder<'_, D>,
12844 offset: usize,
12845 mut depth: fidl::encoding::Depth,
12846 ) -> fidl::Result<()> {
12847 encoder.debug_check_bounds::<WlanFullmacImplSetApfPacketFilterEnabledRequest>(offset);
12848 let max_ordinal: u64 = self.max_ordinal_present();
12850 encoder.write_num(max_ordinal, offset);
12851 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
12852 if max_ordinal == 0 {
12854 return Ok(());
12855 }
12856 depth.increment()?;
12857 let envelope_size = 8;
12858 let bytes_len = max_ordinal as usize * envelope_size;
12859 #[allow(unused_variables)]
12860 let offset = encoder.out_of_line_offset(bytes_len);
12861 let mut _prev_end_offset: usize = 0;
12862 if 1 > max_ordinal {
12863 return Ok(());
12864 }
12865
12866 let cur_offset: usize = (1 - 1) * envelope_size;
12869
12870 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12872
12873 fidl::encoding::encode_in_envelope_optional::<bool, D>(
12878 self.enabled.as_ref().map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
12879 encoder,
12880 offset + cur_offset,
12881 depth,
12882 )?;
12883
12884 _prev_end_offset = cur_offset + envelope_size;
12885
12886 Ok(())
12887 }
12888 }
12889
12890 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
12891 for WlanFullmacImplSetApfPacketFilterEnabledRequest
12892 {
12893 #[inline(always)]
12894 fn new_empty() -> Self {
12895 Self::default()
12896 }
12897
12898 unsafe fn decode(
12899 &mut self,
12900 decoder: &mut fidl::encoding::Decoder<'_, D>,
12901 offset: usize,
12902 mut depth: fidl::encoding::Depth,
12903 ) -> fidl::Result<()> {
12904 decoder.debug_check_bounds::<Self>(offset);
12905 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
12906 None => return Err(fidl::Error::NotNullable),
12907 Some(len) => len,
12908 };
12909 if len == 0 {
12911 return Ok(());
12912 };
12913 depth.increment()?;
12914 let envelope_size = 8;
12915 let bytes_len = len * envelope_size;
12916 let offset = decoder.out_of_line_offset(bytes_len)?;
12917 let mut _next_ordinal_to_read = 0;
12919 let mut next_offset = offset;
12920 let end_offset = offset + bytes_len;
12921 _next_ordinal_to_read += 1;
12922 if next_offset >= end_offset {
12923 return Ok(());
12924 }
12925
12926 while _next_ordinal_to_read < 1 {
12928 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12929 _next_ordinal_to_read += 1;
12930 next_offset += envelope_size;
12931 }
12932
12933 let next_out_of_line = decoder.next_out_of_line();
12934 let handles_before = decoder.remaining_handles();
12935 if let Some((inlined, num_bytes, num_handles)) =
12936 fidl::encoding::decode_envelope_header(decoder, next_offset)?
12937 {
12938 let member_inline_size =
12939 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
12940 if inlined != (member_inline_size <= 4) {
12941 return Err(fidl::Error::InvalidInlineBitInEnvelope);
12942 }
12943 let inner_offset;
12944 let mut inner_depth = depth.clone();
12945 if inlined {
12946 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
12947 inner_offset = next_offset;
12948 } else {
12949 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
12950 inner_depth.increment()?;
12951 }
12952 let val_ref = self.enabled.get_or_insert_with(|| fidl::new_empty!(bool, D));
12953 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
12954 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
12955 {
12956 return Err(fidl::Error::InvalidNumBytesInEnvelope);
12957 }
12958 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
12959 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
12960 }
12961 }
12962
12963 next_offset += envelope_size;
12964
12965 while next_offset < end_offset {
12967 _next_ordinal_to_read += 1;
12968 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12969 next_offset += envelope_size;
12970 }
12971
12972 Ok(())
12973 }
12974 }
12975
12976 impl WlanFullmacImplSetKeysRequest {
12977 #[inline(always)]
12978 fn max_ordinal_present(&self) -> u64 {
12979 if let Some(_) = self.key_descriptors {
12980 return 2;
12981 }
12982 if let Some(_) = self.keylist {
12983 return 1;
12984 }
12985 0
12986 }
12987 }
12988
12989 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplSetKeysRequest {
12990 type Borrowed<'a> = &'a Self;
12991 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
12992 value
12993 }
12994 }
12995
12996 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplSetKeysRequest {
12997 type Owned = Self;
12998
12999 #[inline(always)]
13000 fn inline_align(_context: fidl::encoding::Context) -> usize {
13001 8
13002 }
13003
13004 #[inline(always)]
13005 fn inline_size(_context: fidl::encoding::Context) -> usize {
13006 16
13007 }
13008 }
13009
13010 unsafe impl<D: fidl::encoding::ResourceDialect>
13011 fidl::encoding::Encode<WlanFullmacImplSetKeysRequest, D>
13012 for &WlanFullmacImplSetKeysRequest
13013 {
13014 unsafe fn encode(
13015 self,
13016 encoder: &mut fidl::encoding::Encoder<'_, D>,
13017 offset: usize,
13018 mut depth: fidl::encoding::Depth,
13019 ) -> fidl::Result<()> {
13020 encoder.debug_check_bounds::<WlanFullmacImplSetKeysRequest>(offset);
13021 let max_ordinal: u64 = self.max_ordinal_present();
13023 encoder.write_num(max_ordinal, offset);
13024 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
13025 if max_ordinal == 0 {
13027 return Ok(());
13028 }
13029 depth.increment()?;
13030 let envelope_size = 8;
13031 let bytes_len = max_ordinal as usize * envelope_size;
13032 #[allow(unused_variables)]
13033 let offset = encoder.out_of_line_offset(bytes_len);
13034 let mut _prev_end_offset: usize = 0;
13035 if 1 > max_ordinal {
13036 return Ok(());
13037 }
13038
13039 let cur_offset: usize = (1 - 1) * envelope_size;
13042
13043 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
13045
13046 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<fidl_fuchsia_wlan_driver_common::WlanKeyConfig, 4>, D>(
13051 self.keylist.as_ref().map(<fidl::encoding::Vector<fidl_fuchsia_wlan_driver_common::WlanKeyConfig, 4> as fidl::encoding::ValueTypeMarker>::borrow),
13052 encoder, offset + cur_offset, depth
13053 )?;
13054
13055 _prev_end_offset = cur_offset + envelope_size;
13056 if 2 > max_ordinal {
13057 return Ok(());
13058 }
13059
13060 let cur_offset: usize = (2 - 1) * envelope_size;
13063
13064 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
13066
13067 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<fidl_fuchsia_wlan_ieee80211_common::SetKeyDescriptor, 4>, D>(
13072 self.key_descriptors.as_ref().map(<fidl::encoding::Vector<fidl_fuchsia_wlan_ieee80211_common::SetKeyDescriptor, 4> as fidl::encoding::ValueTypeMarker>::borrow),
13073 encoder, offset + cur_offset, depth
13074 )?;
13075
13076 _prev_end_offset = cur_offset + envelope_size;
13077
13078 Ok(())
13079 }
13080 }
13081
13082 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
13083 for WlanFullmacImplSetKeysRequest
13084 {
13085 #[inline(always)]
13086 fn new_empty() -> Self {
13087 Self::default()
13088 }
13089
13090 unsafe fn decode(
13091 &mut self,
13092 decoder: &mut fidl::encoding::Decoder<'_, D>,
13093 offset: usize,
13094 mut depth: fidl::encoding::Depth,
13095 ) -> fidl::Result<()> {
13096 decoder.debug_check_bounds::<Self>(offset);
13097 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
13098 None => return Err(fidl::Error::NotNullable),
13099 Some(len) => len,
13100 };
13101 if len == 0 {
13103 return Ok(());
13104 };
13105 depth.increment()?;
13106 let envelope_size = 8;
13107 let bytes_len = len * envelope_size;
13108 let offset = decoder.out_of_line_offset(bytes_len)?;
13109 let mut _next_ordinal_to_read = 0;
13111 let mut next_offset = offset;
13112 let end_offset = offset + bytes_len;
13113 _next_ordinal_to_read += 1;
13114 if next_offset >= end_offset {
13115 return Ok(());
13116 }
13117
13118 while _next_ordinal_to_read < 1 {
13120 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13121 _next_ordinal_to_read += 1;
13122 next_offset += envelope_size;
13123 }
13124
13125 let next_out_of_line = decoder.next_out_of_line();
13126 let handles_before = decoder.remaining_handles();
13127 if let Some((inlined, num_bytes, num_handles)) =
13128 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13129 {
13130 let member_inline_size = <fidl::encoding::Vector<
13131 fidl_fuchsia_wlan_driver_common::WlanKeyConfig,
13132 4,
13133 > as fidl::encoding::TypeMarker>::inline_size(
13134 decoder.context
13135 );
13136 if inlined != (member_inline_size <= 4) {
13137 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13138 }
13139 let inner_offset;
13140 let mut inner_depth = depth.clone();
13141 if inlined {
13142 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13143 inner_offset = next_offset;
13144 } else {
13145 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13146 inner_depth.increment()?;
13147 }
13148 let val_ref =
13149 self.keylist.get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<fidl_fuchsia_wlan_driver_common::WlanKeyConfig, 4>, D));
13150 fidl::decode!(fidl::encoding::Vector<fidl_fuchsia_wlan_driver_common::WlanKeyConfig, 4>, D, val_ref, decoder, inner_offset, inner_depth)?;
13151 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13152 {
13153 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13154 }
13155 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13156 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13157 }
13158 }
13159
13160 next_offset += envelope_size;
13161 _next_ordinal_to_read += 1;
13162 if next_offset >= end_offset {
13163 return Ok(());
13164 }
13165
13166 while _next_ordinal_to_read < 2 {
13168 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13169 _next_ordinal_to_read += 1;
13170 next_offset += envelope_size;
13171 }
13172
13173 let next_out_of_line = decoder.next_out_of_line();
13174 let handles_before = decoder.remaining_handles();
13175 if let Some((inlined, num_bytes, num_handles)) =
13176 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13177 {
13178 let member_inline_size = <fidl::encoding::Vector<
13179 fidl_fuchsia_wlan_ieee80211_common::SetKeyDescriptor,
13180 4,
13181 > as fidl::encoding::TypeMarker>::inline_size(
13182 decoder.context
13183 );
13184 if inlined != (member_inline_size <= 4) {
13185 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13186 }
13187 let inner_offset;
13188 let mut inner_depth = depth.clone();
13189 if inlined {
13190 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13191 inner_offset = next_offset;
13192 } else {
13193 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13194 inner_depth.increment()?;
13195 }
13196 let val_ref =
13197 self.key_descriptors.get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<fidl_fuchsia_wlan_ieee80211_common::SetKeyDescriptor, 4>, D));
13198 fidl::decode!(fidl::encoding::Vector<fidl_fuchsia_wlan_ieee80211_common::SetKeyDescriptor, 4>, D, val_ref, decoder, inner_offset, inner_depth)?;
13199 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13200 {
13201 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13202 }
13203 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13204 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13205 }
13206 }
13207
13208 next_offset += envelope_size;
13209
13210 while next_offset < end_offset {
13212 _next_ordinal_to_read += 1;
13213 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13214 next_offset += envelope_size;
13215 }
13216
13217 Ok(())
13218 }
13219 }
13220
13221 impl WlanFullmacImplStartBssRequest {
13222 #[inline(always)]
13223 fn max_ordinal_present(&self) -> u64 {
13224 if let Some(_) = self.vendor_ie {
13225 return 7;
13226 }
13227 if let Some(_) = self.rsne {
13228 return 6;
13229 }
13230 if let Some(_) = self.channel {
13231 return 5;
13232 }
13233 if let Some(_) = self.dtim_period {
13234 return 4;
13235 }
13236 if let Some(_) = self.beacon_period {
13237 return 3;
13238 }
13239 if let Some(_) = self.bss_type {
13240 return 2;
13241 }
13242 if let Some(_) = self.ssid {
13243 return 1;
13244 }
13245 0
13246 }
13247 }
13248
13249 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplStartBssRequest {
13250 type Borrowed<'a> = &'a Self;
13251 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
13252 value
13253 }
13254 }
13255
13256 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplStartBssRequest {
13257 type Owned = Self;
13258
13259 #[inline(always)]
13260 fn inline_align(_context: fidl::encoding::Context) -> usize {
13261 8
13262 }
13263
13264 #[inline(always)]
13265 fn inline_size(_context: fidl::encoding::Context) -> usize {
13266 16
13267 }
13268 }
13269
13270 unsafe impl<D: fidl::encoding::ResourceDialect>
13271 fidl::encoding::Encode<WlanFullmacImplStartBssRequest, D>
13272 for &WlanFullmacImplStartBssRequest
13273 {
13274 unsafe fn encode(
13275 self,
13276 encoder: &mut fidl::encoding::Encoder<'_, D>,
13277 offset: usize,
13278 mut depth: fidl::encoding::Depth,
13279 ) -> fidl::Result<()> {
13280 encoder.debug_check_bounds::<WlanFullmacImplStartBssRequest>(offset);
13281 let max_ordinal: u64 = self.max_ordinal_present();
13283 encoder.write_num(max_ordinal, offset);
13284 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
13285 if max_ordinal == 0 {
13287 return Ok(());
13288 }
13289 depth.increment()?;
13290 let envelope_size = 8;
13291 let bytes_len = max_ordinal as usize * envelope_size;
13292 #[allow(unused_variables)]
13293 let offset = encoder.out_of_line_offset(bytes_len);
13294 let mut _prev_end_offset: usize = 0;
13295 if 1 > max_ordinal {
13296 return Ok(());
13297 }
13298
13299 let cur_offset: usize = (1 - 1) * envelope_size;
13302
13303 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
13305
13306 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<u8, 32>, D>(
13311 self.ssid.as_ref().map(
13312 <fidl::encoding::Vector<u8, 32> as fidl::encoding::ValueTypeMarker>::borrow,
13313 ),
13314 encoder,
13315 offset + cur_offset,
13316 depth,
13317 )?;
13318
13319 _prev_end_offset = cur_offset + envelope_size;
13320 if 2 > max_ordinal {
13321 return Ok(());
13322 }
13323
13324 let cur_offset: usize = (2 - 1) * envelope_size;
13327
13328 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
13330
13331 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_ieee80211_common::BssType, D>(
13336 self.bss_type.as_ref().map(<fidl_fuchsia_wlan_ieee80211_common::BssType as fidl::encoding::ValueTypeMarker>::borrow),
13337 encoder, offset + cur_offset, depth
13338 )?;
13339
13340 _prev_end_offset = cur_offset + envelope_size;
13341 if 3 > max_ordinal {
13342 return Ok(());
13343 }
13344
13345 let cur_offset: usize = (3 - 1) * envelope_size;
13348
13349 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
13351
13352 fidl::encoding::encode_in_envelope_optional::<u32, D>(
13357 self.beacon_period.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
13358 encoder,
13359 offset + cur_offset,
13360 depth,
13361 )?;
13362
13363 _prev_end_offset = cur_offset + envelope_size;
13364 if 4 > max_ordinal {
13365 return Ok(());
13366 }
13367
13368 let cur_offset: usize = (4 - 1) * envelope_size;
13371
13372 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
13374
13375 fidl::encoding::encode_in_envelope_optional::<u32, D>(
13380 self.dtim_period.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
13381 encoder,
13382 offset + cur_offset,
13383 depth,
13384 )?;
13385
13386 _prev_end_offset = cur_offset + envelope_size;
13387 if 5 > max_ordinal {
13388 return Ok(());
13389 }
13390
13391 let cur_offset: usize = (5 - 1) * envelope_size;
13394
13395 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
13397
13398 fidl::encoding::encode_in_envelope_optional::<u8, D>(
13403 self.channel.as_ref().map(<u8 as fidl::encoding::ValueTypeMarker>::borrow),
13404 encoder,
13405 offset + cur_offset,
13406 depth,
13407 )?;
13408
13409 _prev_end_offset = cur_offset + envelope_size;
13410 if 6 > max_ordinal {
13411 return Ok(());
13412 }
13413
13414 let cur_offset: usize = (6 - 1) * envelope_size;
13417
13418 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
13420
13421 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<u8, 257>, D>(
13426 self.rsne.as_ref().map(
13427 <fidl::encoding::Vector<u8, 257> as fidl::encoding::ValueTypeMarker>::borrow,
13428 ),
13429 encoder,
13430 offset + cur_offset,
13431 depth,
13432 )?;
13433
13434 _prev_end_offset = cur_offset + envelope_size;
13435 if 7 > max_ordinal {
13436 return Ok(());
13437 }
13438
13439 let cur_offset: usize = (7 - 1) * envelope_size;
13442
13443 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
13445
13446 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<u8, 514>, D>(
13451 self.vendor_ie.as_ref().map(
13452 <fidl::encoding::Vector<u8, 514> as fidl::encoding::ValueTypeMarker>::borrow,
13453 ),
13454 encoder,
13455 offset + cur_offset,
13456 depth,
13457 )?;
13458
13459 _prev_end_offset = cur_offset + envelope_size;
13460
13461 Ok(())
13462 }
13463 }
13464
13465 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
13466 for WlanFullmacImplStartBssRequest
13467 {
13468 #[inline(always)]
13469 fn new_empty() -> Self {
13470 Self::default()
13471 }
13472
13473 unsafe fn decode(
13474 &mut self,
13475 decoder: &mut fidl::encoding::Decoder<'_, D>,
13476 offset: usize,
13477 mut depth: fidl::encoding::Depth,
13478 ) -> fidl::Result<()> {
13479 decoder.debug_check_bounds::<Self>(offset);
13480 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
13481 None => return Err(fidl::Error::NotNullable),
13482 Some(len) => len,
13483 };
13484 if len == 0 {
13486 return Ok(());
13487 };
13488 depth.increment()?;
13489 let envelope_size = 8;
13490 let bytes_len = len * envelope_size;
13491 let offset = decoder.out_of_line_offset(bytes_len)?;
13492 let mut _next_ordinal_to_read = 0;
13494 let mut next_offset = offset;
13495 let end_offset = offset + bytes_len;
13496 _next_ordinal_to_read += 1;
13497 if next_offset >= end_offset {
13498 return Ok(());
13499 }
13500
13501 while _next_ordinal_to_read < 1 {
13503 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13504 _next_ordinal_to_read += 1;
13505 next_offset += envelope_size;
13506 }
13507
13508 let next_out_of_line = decoder.next_out_of_line();
13509 let handles_before = decoder.remaining_handles();
13510 if let Some((inlined, num_bytes, num_handles)) =
13511 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13512 {
13513 let member_inline_size =
13514 <fidl::encoding::Vector<u8, 32> as fidl::encoding::TypeMarker>::inline_size(
13515 decoder.context,
13516 );
13517 if inlined != (member_inline_size <= 4) {
13518 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13519 }
13520 let inner_offset;
13521 let mut inner_depth = depth.clone();
13522 if inlined {
13523 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13524 inner_offset = next_offset;
13525 } else {
13526 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13527 inner_depth.increment()?;
13528 }
13529 let val_ref = self
13530 .ssid
13531 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<u8, 32>, D));
13532 fidl::decode!(fidl::encoding::Vector<u8, 32>, D, val_ref, decoder, inner_offset, inner_depth)?;
13533 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13534 {
13535 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13536 }
13537 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13538 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13539 }
13540 }
13541
13542 next_offset += envelope_size;
13543 _next_ordinal_to_read += 1;
13544 if next_offset >= end_offset {
13545 return Ok(());
13546 }
13547
13548 while _next_ordinal_to_read < 2 {
13550 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13551 _next_ordinal_to_read += 1;
13552 next_offset += envelope_size;
13553 }
13554
13555 let next_out_of_line = decoder.next_out_of_line();
13556 let handles_before = decoder.remaining_handles();
13557 if let Some((inlined, num_bytes, num_handles)) =
13558 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13559 {
13560 let member_inline_size = <fidl_fuchsia_wlan_ieee80211_common::BssType as fidl::encoding::TypeMarker>::inline_size(decoder.context);
13561 if inlined != (member_inline_size <= 4) {
13562 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13563 }
13564 let inner_offset;
13565 let mut inner_depth = depth.clone();
13566 if inlined {
13567 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13568 inner_offset = next_offset;
13569 } else {
13570 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13571 inner_depth.increment()?;
13572 }
13573 let val_ref = self.bss_type.get_or_insert_with(|| {
13574 fidl::new_empty!(fidl_fuchsia_wlan_ieee80211_common::BssType, D)
13575 });
13576 fidl::decode!(
13577 fidl_fuchsia_wlan_ieee80211_common::BssType,
13578 D,
13579 val_ref,
13580 decoder,
13581 inner_offset,
13582 inner_depth
13583 )?;
13584 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13585 {
13586 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13587 }
13588 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13589 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13590 }
13591 }
13592
13593 next_offset += envelope_size;
13594 _next_ordinal_to_read += 1;
13595 if next_offset >= end_offset {
13596 return Ok(());
13597 }
13598
13599 while _next_ordinal_to_read < 3 {
13601 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13602 _next_ordinal_to_read += 1;
13603 next_offset += envelope_size;
13604 }
13605
13606 let next_out_of_line = decoder.next_out_of_line();
13607 let handles_before = decoder.remaining_handles();
13608 if let Some((inlined, num_bytes, num_handles)) =
13609 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13610 {
13611 let member_inline_size =
13612 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
13613 if inlined != (member_inline_size <= 4) {
13614 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13615 }
13616 let inner_offset;
13617 let mut inner_depth = depth.clone();
13618 if inlined {
13619 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13620 inner_offset = next_offset;
13621 } else {
13622 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13623 inner_depth.increment()?;
13624 }
13625 let val_ref = self.beacon_period.get_or_insert_with(|| fidl::new_empty!(u32, D));
13626 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
13627 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13628 {
13629 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13630 }
13631 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13632 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13633 }
13634 }
13635
13636 next_offset += envelope_size;
13637 _next_ordinal_to_read += 1;
13638 if next_offset >= end_offset {
13639 return Ok(());
13640 }
13641
13642 while _next_ordinal_to_read < 4 {
13644 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13645 _next_ordinal_to_read += 1;
13646 next_offset += envelope_size;
13647 }
13648
13649 let next_out_of_line = decoder.next_out_of_line();
13650 let handles_before = decoder.remaining_handles();
13651 if let Some((inlined, num_bytes, num_handles)) =
13652 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13653 {
13654 let member_inline_size =
13655 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
13656 if inlined != (member_inline_size <= 4) {
13657 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13658 }
13659 let inner_offset;
13660 let mut inner_depth = depth.clone();
13661 if inlined {
13662 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13663 inner_offset = next_offset;
13664 } else {
13665 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13666 inner_depth.increment()?;
13667 }
13668 let val_ref = self.dtim_period.get_or_insert_with(|| fidl::new_empty!(u32, D));
13669 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
13670 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13671 {
13672 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13673 }
13674 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13675 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13676 }
13677 }
13678
13679 next_offset += envelope_size;
13680 _next_ordinal_to_read += 1;
13681 if next_offset >= end_offset {
13682 return Ok(());
13683 }
13684
13685 while _next_ordinal_to_read < 5 {
13687 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13688 _next_ordinal_to_read += 1;
13689 next_offset += envelope_size;
13690 }
13691
13692 let next_out_of_line = decoder.next_out_of_line();
13693 let handles_before = decoder.remaining_handles();
13694 if let Some((inlined, num_bytes, num_handles)) =
13695 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13696 {
13697 let member_inline_size =
13698 <u8 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
13699 if inlined != (member_inline_size <= 4) {
13700 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13701 }
13702 let inner_offset;
13703 let mut inner_depth = depth.clone();
13704 if inlined {
13705 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13706 inner_offset = next_offset;
13707 } else {
13708 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13709 inner_depth.increment()?;
13710 }
13711 let val_ref = self.channel.get_or_insert_with(|| fidl::new_empty!(u8, D));
13712 fidl::decode!(u8, D, val_ref, decoder, inner_offset, inner_depth)?;
13713 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13714 {
13715 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13716 }
13717 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13718 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13719 }
13720 }
13721
13722 next_offset += envelope_size;
13723 _next_ordinal_to_read += 1;
13724 if next_offset >= end_offset {
13725 return Ok(());
13726 }
13727
13728 while _next_ordinal_to_read < 6 {
13730 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13731 _next_ordinal_to_read += 1;
13732 next_offset += envelope_size;
13733 }
13734
13735 let next_out_of_line = decoder.next_out_of_line();
13736 let handles_before = decoder.remaining_handles();
13737 if let Some((inlined, num_bytes, num_handles)) =
13738 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13739 {
13740 let member_inline_size =
13741 <fidl::encoding::Vector<u8, 257> as fidl::encoding::TypeMarker>::inline_size(
13742 decoder.context,
13743 );
13744 if inlined != (member_inline_size <= 4) {
13745 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13746 }
13747 let inner_offset;
13748 let mut inner_depth = depth.clone();
13749 if inlined {
13750 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13751 inner_offset = next_offset;
13752 } else {
13753 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13754 inner_depth.increment()?;
13755 }
13756 let val_ref = self
13757 .rsne
13758 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<u8, 257>, D));
13759 fidl::decode!(fidl::encoding::Vector<u8, 257>, D, val_ref, decoder, inner_offset, inner_depth)?;
13760 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13761 {
13762 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13763 }
13764 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13765 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13766 }
13767 }
13768
13769 next_offset += envelope_size;
13770 _next_ordinal_to_read += 1;
13771 if next_offset >= end_offset {
13772 return Ok(());
13773 }
13774
13775 while _next_ordinal_to_read < 7 {
13777 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13778 _next_ordinal_to_read += 1;
13779 next_offset += envelope_size;
13780 }
13781
13782 let next_out_of_line = decoder.next_out_of_line();
13783 let handles_before = decoder.remaining_handles();
13784 if let Some((inlined, num_bytes, num_handles)) =
13785 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13786 {
13787 let member_inline_size =
13788 <fidl::encoding::Vector<u8, 514> as fidl::encoding::TypeMarker>::inline_size(
13789 decoder.context,
13790 );
13791 if inlined != (member_inline_size <= 4) {
13792 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13793 }
13794 let inner_offset;
13795 let mut inner_depth = depth.clone();
13796 if inlined {
13797 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13798 inner_offset = next_offset;
13799 } else {
13800 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13801 inner_depth.increment()?;
13802 }
13803 let val_ref = self
13804 .vendor_ie
13805 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<u8, 514>, D));
13806 fidl::decode!(fidl::encoding::Vector<u8, 514>, D, val_ref, decoder, inner_offset, inner_depth)?;
13807 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13808 {
13809 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13810 }
13811 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13812 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13813 }
13814 }
13815
13816 next_offset += envelope_size;
13817
13818 while next_offset < end_offset {
13820 _next_ordinal_to_read += 1;
13821 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13822 next_offset += envelope_size;
13823 }
13824
13825 Ok(())
13826 }
13827 }
13828
13829 impl WlanFullmacImplStartScanRequest {
13830 #[inline(always)]
13831 fn max_ordinal_present(&self) -> u64 {
13832 if let Some(_) = self.max_channel_time {
13833 return 6;
13834 }
13835 if let Some(_) = self.min_channel_time {
13836 return 5;
13837 }
13838 if let Some(_) = self.ssids {
13839 return 4;
13840 }
13841 if let Some(_) = self.channels {
13842 return 3;
13843 }
13844 if let Some(_) = self.scan_type {
13845 return 2;
13846 }
13847 if let Some(_) = self.txn_id {
13848 return 1;
13849 }
13850 0
13851 }
13852 }
13853
13854 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplStartScanRequest {
13855 type Borrowed<'a> = &'a Self;
13856 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
13857 value
13858 }
13859 }
13860
13861 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplStartScanRequest {
13862 type Owned = Self;
13863
13864 #[inline(always)]
13865 fn inline_align(_context: fidl::encoding::Context) -> usize {
13866 8
13867 }
13868
13869 #[inline(always)]
13870 fn inline_size(_context: fidl::encoding::Context) -> usize {
13871 16
13872 }
13873 }
13874
13875 unsafe impl<D: fidl::encoding::ResourceDialect>
13876 fidl::encoding::Encode<WlanFullmacImplStartScanRequest, D>
13877 for &WlanFullmacImplStartScanRequest
13878 {
13879 unsafe fn encode(
13880 self,
13881 encoder: &mut fidl::encoding::Encoder<'_, D>,
13882 offset: usize,
13883 mut depth: fidl::encoding::Depth,
13884 ) -> fidl::Result<()> {
13885 encoder.debug_check_bounds::<WlanFullmacImplStartScanRequest>(offset);
13886 let max_ordinal: u64 = self.max_ordinal_present();
13888 encoder.write_num(max_ordinal, offset);
13889 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
13890 if max_ordinal == 0 {
13892 return Ok(());
13893 }
13894 depth.increment()?;
13895 let envelope_size = 8;
13896 let bytes_len = max_ordinal as usize * envelope_size;
13897 #[allow(unused_variables)]
13898 let offset = encoder.out_of_line_offset(bytes_len);
13899 let mut _prev_end_offset: usize = 0;
13900 if 1 > max_ordinal {
13901 return Ok(());
13902 }
13903
13904 let cur_offset: usize = (1 - 1) * envelope_size;
13907
13908 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
13910
13911 fidl::encoding::encode_in_envelope_optional::<u64, D>(
13916 self.txn_id.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
13917 encoder,
13918 offset + cur_offset,
13919 depth,
13920 )?;
13921
13922 _prev_end_offset = cur_offset + envelope_size;
13923 if 2 > max_ordinal {
13924 return Ok(());
13925 }
13926
13927 let cur_offset: usize = (2 - 1) * envelope_size;
13930
13931 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
13933
13934 fidl::encoding::encode_in_envelope_optional::<WlanScanType, D>(
13939 self.scan_type
13940 .as_ref()
13941 .map(<WlanScanType as fidl::encoding::ValueTypeMarker>::borrow),
13942 encoder,
13943 offset + cur_offset,
13944 depth,
13945 )?;
13946
13947 _prev_end_offset = cur_offset + envelope_size;
13948 if 3 > max_ordinal {
13949 return Ok(());
13950 }
13951
13952 let cur_offset: usize = (3 - 1) * envelope_size;
13955
13956 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
13958
13959 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<u8, 256>, D>(
13964 self.channels.as_ref().map(
13965 <fidl::encoding::Vector<u8, 256> as fidl::encoding::ValueTypeMarker>::borrow,
13966 ),
13967 encoder,
13968 offset + cur_offset,
13969 depth,
13970 )?;
13971
13972 _prev_end_offset = cur_offset + envelope_size;
13973 if 4 > max_ordinal {
13974 return Ok(());
13975 }
13976
13977 let cur_offset: usize = (4 - 1) * envelope_size;
13980
13981 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
13983
13984 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<fidl::encoding::Vector<u8, 32>>, D>(
13989 self.ssids.as_ref().map(<fidl::encoding::UnboundedVector<fidl::encoding::Vector<u8, 32>> as fidl::encoding::ValueTypeMarker>::borrow),
13990 encoder, offset + cur_offset, depth
13991 )?;
13992
13993 _prev_end_offset = cur_offset + envelope_size;
13994 if 5 > max_ordinal {
13995 return Ok(());
13996 }
13997
13998 let cur_offset: usize = (5 - 1) * envelope_size;
14001
14002 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
14004
14005 fidl::encoding::encode_in_envelope_optional::<u32, D>(
14010 self.min_channel_time
14011 .as_ref()
14012 .map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
14013 encoder,
14014 offset + cur_offset,
14015 depth,
14016 )?;
14017
14018 _prev_end_offset = cur_offset + envelope_size;
14019 if 6 > max_ordinal {
14020 return Ok(());
14021 }
14022
14023 let cur_offset: usize = (6 - 1) * envelope_size;
14026
14027 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
14029
14030 fidl::encoding::encode_in_envelope_optional::<u32, D>(
14035 self.max_channel_time
14036 .as_ref()
14037 .map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
14038 encoder,
14039 offset + cur_offset,
14040 depth,
14041 )?;
14042
14043 _prev_end_offset = cur_offset + envelope_size;
14044
14045 Ok(())
14046 }
14047 }
14048
14049 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
14050 for WlanFullmacImplStartScanRequest
14051 {
14052 #[inline(always)]
14053 fn new_empty() -> Self {
14054 Self::default()
14055 }
14056
14057 unsafe fn decode(
14058 &mut self,
14059 decoder: &mut fidl::encoding::Decoder<'_, D>,
14060 offset: usize,
14061 mut depth: fidl::encoding::Depth,
14062 ) -> fidl::Result<()> {
14063 decoder.debug_check_bounds::<Self>(offset);
14064 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
14065 None => return Err(fidl::Error::NotNullable),
14066 Some(len) => len,
14067 };
14068 if len == 0 {
14070 return Ok(());
14071 };
14072 depth.increment()?;
14073 let envelope_size = 8;
14074 let bytes_len = len * envelope_size;
14075 let offset = decoder.out_of_line_offset(bytes_len)?;
14076 let mut _next_ordinal_to_read = 0;
14078 let mut next_offset = offset;
14079 let end_offset = offset + bytes_len;
14080 _next_ordinal_to_read += 1;
14081 if next_offset >= end_offset {
14082 return Ok(());
14083 }
14084
14085 while _next_ordinal_to_read < 1 {
14087 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14088 _next_ordinal_to_read += 1;
14089 next_offset += envelope_size;
14090 }
14091
14092 let next_out_of_line = decoder.next_out_of_line();
14093 let handles_before = decoder.remaining_handles();
14094 if let Some((inlined, num_bytes, num_handles)) =
14095 fidl::encoding::decode_envelope_header(decoder, next_offset)?
14096 {
14097 let member_inline_size =
14098 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
14099 if inlined != (member_inline_size <= 4) {
14100 return Err(fidl::Error::InvalidInlineBitInEnvelope);
14101 }
14102 let inner_offset;
14103 let mut inner_depth = depth.clone();
14104 if inlined {
14105 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
14106 inner_offset = next_offset;
14107 } else {
14108 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
14109 inner_depth.increment()?;
14110 }
14111 let val_ref = self.txn_id.get_or_insert_with(|| fidl::new_empty!(u64, D));
14112 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
14113 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
14114 {
14115 return Err(fidl::Error::InvalidNumBytesInEnvelope);
14116 }
14117 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
14118 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
14119 }
14120 }
14121
14122 next_offset += envelope_size;
14123 _next_ordinal_to_read += 1;
14124 if next_offset >= end_offset {
14125 return Ok(());
14126 }
14127
14128 while _next_ordinal_to_read < 2 {
14130 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14131 _next_ordinal_to_read += 1;
14132 next_offset += envelope_size;
14133 }
14134
14135 let next_out_of_line = decoder.next_out_of_line();
14136 let handles_before = decoder.remaining_handles();
14137 if let Some((inlined, num_bytes, num_handles)) =
14138 fidl::encoding::decode_envelope_header(decoder, next_offset)?
14139 {
14140 let member_inline_size =
14141 <WlanScanType as fidl::encoding::TypeMarker>::inline_size(decoder.context);
14142 if inlined != (member_inline_size <= 4) {
14143 return Err(fidl::Error::InvalidInlineBitInEnvelope);
14144 }
14145 let inner_offset;
14146 let mut inner_depth = depth.clone();
14147 if inlined {
14148 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
14149 inner_offset = next_offset;
14150 } else {
14151 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
14152 inner_depth.increment()?;
14153 }
14154 let val_ref =
14155 self.scan_type.get_or_insert_with(|| fidl::new_empty!(WlanScanType, D));
14156 fidl::decode!(WlanScanType, D, val_ref, decoder, inner_offset, inner_depth)?;
14157 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
14158 {
14159 return Err(fidl::Error::InvalidNumBytesInEnvelope);
14160 }
14161 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
14162 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
14163 }
14164 }
14165
14166 next_offset += envelope_size;
14167 _next_ordinal_to_read += 1;
14168 if next_offset >= end_offset {
14169 return Ok(());
14170 }
14171
14172 while _next_ordinal_to_read < 3 {
14174 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14175 _next_ordinal_to_read += 1;
14176 next_offset += envelope_size;
14177 }
14178
14179 let next_out_of_line = decoder.next_out_of_line();
14180 let handles_before = decoder.remaining_handles();
14181 if let Some((inlined, num_bytes, num_handles)) =
14182 fidl::encoding::decode_envelope_header(decoder, next_offset)?
14183 {
14184 let member_inline_size =
14185 <fidl::encoding::Vector<u8, 256> as fidl::encoding::TypeMarker>::inline_size(
14186 decoder.context,
14187 );
14188 if inlined != (member_inline_size <= 4) {
14189 return Err(fidl::Error::InvalidInlineBitInEnvelope);
14190 }
14191 let inner_offset;
14192 let mut inner_depth = depth.clone();
14193 if inlined {
14194 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
14195 inner_offset = next_offset;
14196 } else {
14197 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
14198 inner_depth.increment()?;
14199 }
14200 let val_ref = self
14201 .channels
14202 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<u8, 256>, D));
14203 fidl::decode!(fidl::encoding::Vector<u8, 256>, D, val_ref, decoder, inner_offset, inner_depth)?;
14204 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
14205 {
14206 return Err(fidl::Error::InvalidNumBytesInEnvelope);
14207 }
14208 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
14209 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
14210 }
14211 }
14212
14213 next_offset += envelope_size;
14214 _next_ordinal_to_read += 1;
14215 if next_offset >= end_offset {
14216 return Ok(());
14217 }
14218
14219 while _next_ordinal_to_read < 4 {
14221 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14222 _next_ordinal_to_read += 1;
14223 next_offset += envelope_size;
14224 }
14225
14226 let next_out_of_line = decoder.next_out_of_line();
14227 let handles_before = decoder.remaining_handles();
14228 if let Some((inlined, num_bytes, num_handles)) =
14229 fidl::encoding::decode_envelope_header(decoder, next_offset)?
14230 {
14231 let member_inline_size = <fidl::encoding::UnboundedVector<
14232 fidl::encoding::Vector<u8, 32>,
14233 > as fidl::encoding::TypeMarker>::inline_size(
14234 decoder.context
14235 );
14236 if inlined != (member_inline_size <= 4) {
14237 return Err(fidl::Error::InvalidInlineBitInEnvelope);
14238 }
14239 let inner_offset;
14240 let mut inner_depth = depth.clone();
14241 if inlined {
14242 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
14243 inner_offset = next_offset;
14244 } else {
14245 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
14246 inner_depth.increment()?;
14247 }
14248 let val_ref = self.ssids.get_or_insert_with(|| {
14249 fidl::new_empty!(
14250 fidl::encoding::UnboundedVector<fidl::encoding::Vector<u8, 32>>,
14251 D
14252 )
14253 });
14254 fidl::decode!(
14255 fidl::encoding::UnboundedVector<fidl::encoding::Vector<u8, 32>>,
14256 D,
14257 val_ref,
14258 decoder,
14259 inner_offset,
14260 inner_depth
14261 )?;
14262 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
14263 {
14264 return Err(fidl::Error::InvalidNumBytesInEnvelope);
14265 }
14266 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
14267 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
14268 }
14269 }
14270
14271 next_offset += envelope_size;
14272 _next_ordinal_to_read += 1;
14273 if next_offset >= end_offset {
14274 return Ok(());
14275 }
14276
14277 while _next_ordinal_to_read < 5 {
14279 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14280 _next_ordinal_to_read += 1;
14281 next_offset += envelope_size;
14282 }
14283
14284 let next_out_of_line = decoder.next_out_of_line();
14285 let handles_before = decoder.remaining_handles();
14286 if let Some((inlined, num_bytes, num_handles)) =
14287 fidl::encoding::decode_envelope_header(decoder, next_offset)?
14288 {
14289 let member_inline_size =
14290 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
14291 if inlined != (member_inline_size <= 4) {
14292 return Err(fidl::Error::InvalidInlineBitInEnvelope);
14293 }
14294 let inner_offset;
14295 let mut inner_depth = depth.clone();
14296 if inlined {
14297 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
14298 inner_offset = next_offset;
14299 } else {
14300 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
14301 inner_depth.increment()?;
14302 }
14303 let val_ref = self.min_channel_time.get_or_insert_with(|| fidl::new_empty!(u32, D));
14304 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
14305 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
14306 {
14307 return Err(fidl::Error::InvalidNumBytesInEnvelope);
14308 }
14309 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
14310 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
14311 }
14312 }
14313
14314 next_offset += envelope_size;
14315 _next_ordinal_to_read += 1;
14316 if next_offset >= end_offset {
14317 return Ok(());
14318 }
14319
14320 while _next_ordinal_to_read < 6 {
14322 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14323 _next_ordinal_to_read += 1;
14324 next_offset += envelope_size;
14325 }
14326
14327 let next_out_of_line = decoder.next_out_of_line();
14328 let handles_before = decoder.remaining_handles();
14329 if let Some((inlined, num_bytes, num_handles)) =
14330 fidl::encoding::decode_envelope_header(decoder, next_offset)?
14331 {
14332 let member_inline_size =
14333 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
14334 if inlined != (member_inline_size <= 4) {
14335 return Err(fidl::Error::InvalidInlineBitInEnvelope);
14336 }
14337 let inner_offset;
14338 let mut inner_depth = depth.clone();
14339 if inlined {
14340 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
14341 inner_offset = next_offset;
14342 } else {
14343 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
14344 inner_depth.increment()?;
14345 }
14346 let val_ref = self.max_channel_time.get_or_insert_with(|| fidl::new_empty!(u32, D));
14347 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
14348 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
14349 {
14350 return Err(fidl::Error::InvalidNumBytesInEnvelope);
14351 }
14352 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
14353 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
14354 }
14355 }
14356
14357 next_offset += envelope_size;
14358
14359 while next_offset < end_offset {
14361 _next_ordinal_to_read += 1;
14362 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14363 next_offset += envelope_size;
14364 }
14365
14366 Ok(())
14367 }
14368 }
14369
14370 impl WlanFullmacImplStartScheduledScanRequest {
14371 #[inline(always)]
14372 fn max_ordinal_present(&self) -> u64 {
14373 if let Some(_) = self.req {
14374 return 2;
14375 }
14376 if let Some(_) = self.txn_id {
14377 return 1;
14378 }
14379 0
14380 }
14381 }
14382
14383 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplStartScheduledScanRequest {
14384 type Borrowed<'a> = &'a Self;
14385 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
14386 value
14387 }
14388 }
14389
14390 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplStartScheduledScanRequest {
14391 type Owned = Self;
14392
14393 #[inline(always)]
14394 fn inline_align(_context: fidl::encoding::Context) -> usize {
14395 8
14396 }
14397
14398 #[inline(always)]
14399 fn inline_size(_context: fidl::encoding::Context) -> usize {
14400 16
14401 }
14402 }
14403
14404 unsafe impl<D: fidl::encoding::ResourceDialect>
14405 fidl::encoding::Encode<WlanFullmacImplStartScheduledScanRequest, D>
14406 for &WlanFullmacImplStartScheduledScanRequest
14407 {
14408 unsafe fn encode(
14409 self,
14410 encoder: &mut fidl::encoding::Encoder<'_, D>,
14411 offset: usize,
14412 mut depth: fidl::encoding::Depth,
14413 ) -> fidl::Result<()> {
14414 encoder.debug_check_bounds::<WlanFullmacImplStartScheduledScanRequest>(offset);
14415 let max_ordinal: u64 = self.max_ordinal_present();
14417 encoder.write_num(max_ordinal, offset);
14418 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
14419 if max_ordinal == 0 {
14421 return Ok(());
14422 }
14423 depth.increment()?;
14424 let envelope_size = 8;
14425 let bytes_len = max_ordinal as usize * envelope_size;
14426 #[allow(unused_variables)]
14427 let offset = encoder.out_of_line_offset(bytes_len);
14428 let mut _prev_end_offset: usize = 0;
14429 if 1 > max_ordinal {
14430 return Ok(());
14431 }
14432
14433 let cur_offset: usize = (1 - 1) * envelope_size;
14436
14437 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
14439
14440 fidl::encoding::encode_in_envelope_optional::<u64, D>(
14445 self.txn_id.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
14446 encoder,
14447 offset + cur_offset,
14448 depth,
14449 )?;
14450
14451 _prev_end_offset = cur_offset + envelope_size;
14452 if 2 > max_ordinal {
14453 return Ok(());
14454 }
14455
14456 let cur_offset: usize = (2 - 1) * envelope_size;
14459
14460 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
14462
14463 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_common_common::ScheduledScanRequest, D>(
14468 self.req.as_ref().map(<fidl_fuchsia_wlan_common_common::ScheduledScanRequest as fidl::encoding::ValueTypeMarker>::borrow),
14469 encoder, offset + cur_offset, depth
14470 )?;
14471
14472 _prev_end_offset = cur_offset + envelope_size;
14473
14474 Ok(())
14475 }
14476 }
14477
14478 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
14479 for WlanFullmacImplStartScheduledScanRequest
14480 {
14481 #[inline(always)]
14482 fn new_empty() -> Self {
14483 Self::default()
14484 }
14485
14486 unsafe fn decode(
14487 &mut self,
14488 decoder: &mut fidl::encoding::Decoder<'_, D>,
14489 offset: usize,
14490 mut depth: fidl::encoding::Depth,
14491 ) -> fidl::Result<()> {
14492 decoder.debug_check_bounds::<Self>(offset);
14493 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
14494 None => return Err(fidl::Error::NotNullable),
14495 Some(len) => len,
14496 };
14497 if len == 0 {
14499 return Ok(());
14500 };
14501 depth.increment()?;
14502 let envelope_size = 8;
14503 let bytes_len = len * envelope_size;
14504 let offset = decoder.out_of_line_offset(bytes_len)?;
14505 let mut _next_ordinal_to_read = 0;
14507 let mut next_offset = offset;
14508 let end_offset = offset + bytes_len;
14509 _next_ordinal_to_read += 1;
14510 if next_offset >= end_offset {
14511 return Ok(());
14512 }
14513
14514 while _next_ordinal_to_read < 1 {
14516 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14517 _next_ordinal_to_read += 1;
14518 next_offset += envelope_size;
14519 }
14520
14521 let next_out_of_line = decoder.next_out_of_line();
14522 let handles_before = decoder.remaining_handles();
14523 if let Some((inlined, num_bytes, num_handles)) =
14524 fidl::encoding::decode_envelope_header(decoder, next_offset)?
14525 {
14526 let member_inline_size =
14527 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
14528 if inlined != (member_inline_size <= 4) {
14529 return Err(fidl::Error::InvalidInlineBitInEnvelope);
14530 }
14531 let inner_offset;
14532 let mut inner_depth = depth.clone();
14533 if inlined {
14534 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
14535 inner_offset = next_offset;
14536 } else {
14537 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
14538 inner_depth.increment()?;
14539 }
14540 let val_ref = self.txn_id.get_or_insert_with(|| fidl::new_empty!(u64, D));
14541 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
14542 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
14543 {
14544 return Err(fidl::Error::InvalidNumBytesInEnvelope);
14545 }
14546 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
14547 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
14548 }
14549 }
14550
14551 next_offset += envelope_size;
14552 _next_ordinal_to_read += 1;
14553 if next_offset >= end_offset {
14554 return Ok(());
14555 }
14556
14557 while _next_ordinal_to_read < 2 {
14559 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14560 _next_ordinal_to_read += 1;
14561 next_offset += envelope_size;
14562 }
14563
14564 let next_out_of_line = decoder.next_out_of_line();
14565 let handles_before = decoder.remaining_handles();
14566 if let Some((inlined, num_bytes, num_handles)) =
14567 fidl::encoding::decode_envelope_header(decoder, next_offset)?
14568 {
14569 let member_inline_size = <fidl_fuchsia_wlan_common_common::ScheduledScanRequest as fidl::encoding::TypeMarker>::inline_size(decoder.context);
14570 if inlined != (member_inline_size <= 4) {
14571 return Err(fidl::Error::InvalidInlineBitInEnvelope);
14572 }
14573 let inner_offset;
14574 let mut inner_depth = depth.clone();
14575 if inlined {
14576 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
14577 inner_offset = next_offset;
14578 } else {
14579 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
14580 inner_depth.increment()?;
14581 }
14582 let val_ref = self.req.get_or_insert_with(|| {
14583 fidl::new_empty!(fidl_fuchsia_wlan_common_common::ScheduledScanRequest, D)
14584 });
14585 fidl::decode!(
14586 fidl_fuchsia_wlan_common_common::ScheduledScanRequest,
14587 D,
14588 val_ref,
14589 decoder,
14590 inner_offset,
14591 inner_depth
14592 )?;
14593 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
14594 {
14595 return Err(fidl::Error::InvalidNumBytesInEnvelope);
14596 }
14597 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
14598 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
14599 }
14600 }
14601
14602 next_offset += envelope_size;
14603
14604 while next_offset < end_offset {
14606 _next_ordinal_to_read += 1;
14607 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14608 next_offset += envelope_size;
14609 }
14610
14611 Ok(())
14612 }
14613 }
14614
14615 impl WlanFullmacImplStopBssRequest {
14616 #[inline(always)]
14617 fn max_ordinal_present(&self) -> u64 {
14618 if let Some(_) = self.ssid {
14619 return 1;
14620 }
14621 0
14622 }
14623 }
14624
14625 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplStopBssRequest {
14626 type Borrowed<'a> = &'a Self;
14627 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
14628 value
14629 }
14630 }
14631
14632 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplStopBssRequest {
14633 type Owned = Self;
14634
14635 #[inline(always)]
14636 fn inline_align(_context: fidl::encoding::Context) -> usize {
14637 8
14638 }
14639
14640 #[inline(always)]
14641 fn inline_size(_context: fidl::encoding::Context) -> usize {
14642 16
14643 }
14644 }
14645
14646 unsafe impl<D: fidl::encoding::ResourceDialect>
14647 fidl::encoding::Encode<WlanFullmacImplStopBssRequest, D>
14648 for &WlanFullmacImplStopBssRequest
14649 {
14650 unsafe fn encode(
14651 self,
14652 encoder: &mut fidl::encoding::Encoder<'_, D>,
14653 offset: usize,
14654 mut depth: fidl::encoding::Depth,
14655 ) -> fidl::Result<()> {
14656 encoder.debug_check_bounds::<WlanFullmacImplStopBssRequest>(offset);
14657 let max_ordinal: u64 = self.max_ordinal_present();
14659 encoder.write_num(max_ordinal, offset);
14660 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
14661 if max_ordinal == 0 {
14663 return Ok(());
14664 }
14665 depth.increment()?;
14666 let envelope_size = 8;
14667 let bytes_len = max_ordinal as usize * envelope_size;
14668 #[allow(unused_variables)]
14669 let offset = encoder.out_of_line_offset(bytes_len);
14670 let mut _prev_end_offset: usize = 0;
14671 if 1 > max_ordinal {
14672 return Ok(());
14673 }
14674
14675 let cur_offset: usize = (1 - 1) * envelope_size;
14678
14679 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
14681
14682 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<u8, 32>, D>(
14687 self.ssid.as_ref().map(
14688 <fidl::encoding::Vector<u8, 32> as fidl::encoding::ValueTypeMarker>::borrow,
14689 ),
14690 encoder,
14691 offset + cur_offset,
14692 depth,
14693 )?;
14694
14695 _prev_end_offset = cur_offset + envelope_size;
14696
14697 Ok(())
14698 }
14699 }
14700
14701 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
14702 for WlanFullmacImplStopBssRequest
14703 {
14704 #[inline(always)]
14705 fn new_empty() -> Self {
14706 Self::default()
14707 }
14708
14709 unsafe fn decode(
14710 &mut self,
14711 decoder: &mut fidl::encoding::Decoder<'_, D>,
14712 offset: usize,
14713 mut depth: fidl::encoding::Depth,
14714 ) -> fidl::Result<()> {
14715 decoder.debug_check_bounds::<Self>(offset);
14716 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
14717 None => return Err(fidl::Error::NotNullable),
14718 Some(len) => len,
14719 };
14720 if len == 0 {
14722 return Ok(());
14723 };
14724 depth.increment()?;
14725 let envelope_size = 8;
14726 let bytes_len = len * envelope_size;
14727 let offset = decoder.out_of_line_offset(bytes_len)?;
14728 let mut _next_ordinal_to_read = 0;
14730 let mut next_offset = offset;
14731 let end_offset = offset + bytes_len;
14732 _next_ordinal_to_read += 1;
14733 if next_offset >= end_offset {
14734 return Ok(());
14735 }
14736
14737 while _next_ordinal_to_read < 1 {
14739 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14740 _next_ordinal_to_read += 1;
14741 next_offset += envelope_size;
14742 }
14743
14744 let next_out_of_line = decoder.next_out_of_line();
14745 let handles_before = decoder.remaining_handles();
14746 if let Some((inlined, num_bytes, num_handles)) =
14747 fidl::encoding::decode_envelope_header(decoder, next_offset)?
14748 {
14749 let member_inline_size =
14750 <fidl::encoding::Vector<u8, 32> as fidl::encoding::TypeMarker>::inline_size(
14751 decoder.context,
14752 );
14753 if inlined != (member_inline_size <= 4) {
14754 return Err(fidl::Error::InvalidInlineBitInEnvelope);
14755 }
14756 let inner_offset;
14757 let mut inner_depth = depth.clone();
14758 if inlined {
14759 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
14760 inner_offset = next_offset;
14761 } else {
14762 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
14763 inner_depth.increment()?;
14764 }
14765 let val_ref = self
14766 .ssid
14767 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<u8, 32>, D));
14768 fidl::decode!(fidl::encoding::Vector<u8, 32>, D, val_ref, decoder, inner_offset, inner_depth)?;
14769 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
14770 {
14771 return Err(fidl::Error::InvalidNumBytesInEnvelope);
14772 }
14773 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
14774 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
14775 }
14776 }
14777
14778 next_offset += envelope_size;
14779
14780 while next_offset < end_offset {
14782 _next_ordinal_to_read += 1;
14783 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14784 next_offset += envelope_size;
14785 }
14786
14787 Ok(())
14788 }
14789 }
14790
14791 impl WlanFullmacImplStopScheduledScanRequest {
14792 #[inline(always)]
14793 fn max_ordinal_present(&self) -> u64 {
14794 if let Some(_) = self.txn_id {
14795 return 1;
14796 }
14797 0
14798 }
14799 }
14800
14801 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplStopScheduledScanRequest {
14802 type Borrowed<'a> = &'a Self;
14803 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
14804 value
14805 }
14806 }
14807
14808 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplStopScheduledScanRequest {
14809 type Owned = Self;
14810
14811 #[inline(always)]
14812 fn inline_align(_context: fidl::encoding::Context) -> usize {
14813 8
14814 }
14815
14816 #[inline(always)]
14817 fn inline_size(_context: fidl::encoding::Context) -> usize {
14818 16
14819 }
14820 }
14821
14822 unsafe impl<D: fidl::encoding::ResourceDialect>
14823 fidl::encoding::Encode<WlanFullmacImplStopScheduledScanRequest, D>
14824 for &WlanFullmacImplStopScheduledScanRequest
14825 {
14826 unsafe fn encode(
14827 self,
14828 encoder: &mut fidl::encoding::Encoder<'_, D>,
14829 offset: usize,
14830 mut depth: fidl::encoding::Depth,
14831 ) -> fidl::Result<()> {
14832 encoder.debug_check_bounds::<WlanFullmacImplStopScheduledScanRequest>(offset);
14833 let max_ordinal: u64 = self.max_ordinal_present();
14835 encoder.write_num(max_ordinal, offset);
14836 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
14837 if max_ordinal == 0 {
14839 return Ok(());
14840 }
14841 depth.increment()?;
14842 let envelope_size = 8;
14843 let bytes_len = max_ordinal as usize * envelope_size;
14844 #[allow(unused_variables)]
14845 let offset = encoder.out_of_line_offset(bytes_len);
14846 let mut _prev_end_offset: usize = 0;
14847 if 1 > max_ordinal {
14848 return Ok(());
14849 }
14850
14851 let cur_offset: usize = (1 - 1) * envelope_size;
14854
14855 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
14857
14858 fidl::encoding::encode_in_envelope_optional::<u64, D>(
14863 self.txn_id.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
14864 encoder,
14865 offset + cur_offset,
14866 depth,
14867 )?;
14868
14869 _prev_end_offset = cur_offset + envelope_size;
14870
14871 Ok(())
14872 }
14873 }
14874
14875 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
14876 for WlanFullmacImplStopScheduledScanRequest
14877 {
14878 #[inline(always)]
14879 fn new_empty() -> Self {
14880 Self::default()
14881 }
14882
14883 unsafe fn decode(
14884 &mut self,
14885 decoder: &mut fidl::encoding::Decoder<'_, D>,
14886 offset: usize,
14887 mut depth: fidl::encoding::Depth,
14888 ) -> fidl::Result<()> {
14889 decoder.debug_check_bounds::<Self>(offset);
14890 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
14891 None => return Err(fidl::Error::NotNullable),
14892 Some(len) => len,
14893 };
14894 if len == 0 {
14896 return Ok(());
14897 };
14898 depth.increment()?;
14899 let envelope_size = 8;
14900 let bytes_len = len * envelope_size;
14901 let offset = decoder.out_of_line_offset(bytes_len)?;
14902 let mut _next_ordinal_to_read = 0;
14904 let mut next_offset = offset;
14905 let end_offset = offset + bytes_len;
14906 _next_ordinal_to_read += 1;
14907 if next_offset >= end_offset {
14908 return Ok(());
14909 }
14910
14911 while _next_ordinal_to_read < 1 {
14913 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14914 _next_ordinal_to_read += 1;
14915 next_offset += envelope_size;
14916 }
14917
14918 let next_out_of_line = decoder.next_out_of_line();
14919 let handles_before = decoder.remaining_handles();
14920 if let Some((inlined, num_bytes, num_handles)) =
14921 fidl::encoding::decode_envelope_header(decoder, next_offset)?
14922 {
14923 let member_inline_size =
14924 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
14925 if inlined != (member_inline_size <= 4) {
14926 return Err(fidl::Error::InvalidInlineBitInEnvelope);
14927 }
14928 let inner_offset;
14929 let mut inner_depth = depth.clone();
14930 if inlined {
14931 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
14932 inner_offset = next_offset;
14933 } else {
14934 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
14935 inner_depth.increment()?;
14936 }
14937 let val_ref = self.txn_id.get_or_insert_with(|| fidl::new_empty!(u64, D));
14938 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
14939 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
14940 {
14941 return Err(fidl::Error::InvalidNumBytesInEnvelope);
14942 }
14943 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
14944 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
14945 }
14946 }
14947
14948 next_offset += envelope_size;
14949
14950 while next_offset < end_offset {
14952 _next_ordinal_to_read += 1;
14953 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14954 next_offset += envelope_size;
14955 }
14956
14957 Ok(())
14958 }
14959 }
14960
14961 impl WlanFullmacImplGetApfPacketFilterEnabledResponse {
14962 #[inline(always)]
14963 fn max_ordinal_present(&self) -> u64 {
14964 if let Some(_) = self.enabled {
14965 return 1;
14966 }
14967 0
14968 }
14969 }
14970
14971 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplGetApfPacketFilterEnabledResponse {
14972 type Borrowed<'a> = &'a Self;
14973 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
14974 value
14975 }
14976 }
14977
14978 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplGetApfPacketFilterEnabledResponse {
14979 type Owned = Self;
14980
14981 #[inline(always)]
14982 fn inline_align(_context: fidl::encoding::Context) -> usize {
14983 8
14984 }
14985
14986 #[inline(always)]
14987 fn inline_size(_context: fidl::encoding::Context) -> usize {
14988 16
14989 }
14990 }
14991
14992 unsafe impl<D: fidl::encoding::ResourceDialect>
14993 fidl::encoding::Encode<WlanFullmacImplGetApfPacketFilterEnabledResponse, D>
14994 for &WlanFullmacImplGetApfPacketFilterEnabledResponse
14995 {
14996 unsafe fn encode(
14997 self,
14998 encoder: &mut fidl::encoding::Encoder<'_, D>,
14999 offset: usize,
15000 mut depth: fidl::encoding::Depth,
15001 ) -> fidl::Result<()> {
15002 encoder.debug_check_bounds::<WlanFullmacImplGetApfPacketFilterEnabledResponse>(offset);
15003 let max_ordinal: u64 = self.max_ordinal_present();
15005 encoder.write_num(max_ordinal, offset);
15006 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
15007 if max_ordinal == 0 {
15009 return Ok(());
15010 }
15011 depth.increment()?;
15012 let envelope_size = 8;
15013 let bytes_len = max_ordinal as usize * envelope_size;
15014 #[allow(unused_variables)]
15015 let offset = encoder.out_of_line_offset(bytes_len);
15016 let mut _prev_end_offset: usize = 0;
15017 if 1 > max_ordinal {
15018 return Ok(());
15019 }
15020
15021 let cur_offset: usize = (1 - 1) * envelope_size;
15024
15025 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
15027
15028 fidl::encoding::encode_in_envelope_optional::<bool, D>(
15033 self.enabled.as_ref().map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
15034 encoder,
15035 offset + cur_offset,
15036 depth,
15037 )?;
15038
15039 _prev_end_offset = cur_offset + envelope_size;
15040
15041 Ok(())
15042 }
15043 }
15044
15045 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
15046 for WlanFullmacImplGetApfPacketFilterEnabledResponse
15047 {
15048 #[inline(always)]
15049 fn new_empty() -> Self {
15050 Self::default()
15051 }
15052
15053 unsafe fn decode(
15054 &mut self,
15055 decoder: &mut fidl::encoding::Decoder<'_, D>,
15056 offset: usize,
15057 mut depth: fidl::encoding::Depth,
15058 ) -> fidl::Result<()> {
15059 decoder.debug_check_bounds::<Self>(offset);
15060 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
15061 None => return Err(fidl::Error::NotNullable),
15062 Some(len) => len,
15063 };
15064 if len == 0 {
15066 return Ok(());
15067 };
15068 depth.increment()?;
15069 let envelope_size = 8;
15070 let bytes_len = len * envelope_size;
15071 let offset = decoder.out_of_line_offset(bytes_len)?;
15072 let mut _next_ordinal_to_read = 0;
15074 let mut next_offset = offset;
15075 let end_offset = offset + bytes_len;
15076 _next_ordinal_to_read += 1;
15077 if next_offset >= end_offset {
15078 return Ok(());
15079 }
15080
15081 while _next_ordinal_to_read < 1 {
15083 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15084 _next_ordinal_to_read += 1;
15085 next_offset += envelope_size;
15086 }
15087
15088 let next_out_of_line = decoder.next_out_of_line();
15089 let handles_before = decoder.remaining_handles();
15090 if let Some((inlined, num_bytes, num_handles)) =
15091 fidl::encoding::decode_envelope_header(decoder, next_offset)?
15092 {
15093 let member_inline_size =
15094 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
15095 if inlined != (member_inline_size <= 4) {
15096 return Err(fidl::Error::InvalidInlineBitInEnvelope);
15097 }
15098 let inner_offset;
15099 let mut inner_depth = depth.clone();
15100 if inlined {
15101 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
15102 inner_offset = next_offset;
15103 } else {
15104 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
15105 inner_depth.increment()?;
15106 }
15107 let val_ref = self.enabled.get_or_insert_with(|| fidl::new_empty!(bool, D));
15108 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
15109 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
15110 {
15111 return Err(fidl::Error::InvalidNumBytesInEnvelope);
15112 }
15113 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
15114 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
15115 }
15116 }
15117
15118 next_offset += envelope_size;
15119
15120 while next_offset < end_offset {
15122 _next_ordinal_to_read += 1;
15123 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15124 next_offset += envelope_size;
15125 }
15126
15127 Ok(())
15128 }
15129 }
15130
15131 impl WlanFullmacImplGetScheduledScanEnabledResponse {
15132 #[inline(always)]
15133 fn max_ordinal_present(&self) -> u64 {
15134 if let Some(_) = self.active_txn_ids {
15135 return 1;
15136 }
15137 0
15138 }
15139 }
15140
15141 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplGetScheduledScanEnabledResponse {
15142 type Borrowed<'a> = &'a Self;
15143 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
15144 value
15145 }
15146 }
15147
15148 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplGetScheduledScanEnabledResponse {
15149 type Owned = Self;
15150
15151 #[inline(always)]
15152 fn inline_align(_context: fidl::encoding::Context) -> usize {
15153 8
15154 }
15155
15156 #[inline(always)]
15157 fn inline_size(_context: fidl::encoding::Context) -> usize {
15158 16
15159 }
15160 }
15161
15162 unsafe impl<D: fidl::encoding::ResourceDialect>
15163 fidl::encoding::Encode<WlanFullmacImplGetScheduledScanEnabledResponse, D>
15164 for &WlanFullmacImplGetScheduledScanEnabledResponse
15165 {
15166 unsafe fn encode(
15167 self,
15168 encoder: &mut fidl::encoding::Encoder<'_, D>,
15169 offset: usize,
15170 mut depth: fidl::encoding::Depth,
15171 ) -> fidl::Result<()> {
15172 encoder.debug_check_bounds::<WlanFullmacImplGetScheduledScanEnabledResponse>(offset);
15173 let max_ordinal: u64 = self.max_ordinal_present();
15175 encoder.write_num(max_ordinal, offset);
15176 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
15177 if max_ordinal == 0 {
15179 return Ok(());
15180 }
15181 depth.increment()?;
15182 let envelope_size = 8;
15183 let bytes_len = max_ordinal as usize * envelope_size;
15184 #[allow(unused_variables)]
15185 let offset = encoder.out_of_line_offset(bytes_len);
15186 let mut _prev_end_offset: usize = 0;
15187 if 1 > max_ordinal {
15188 return Ok(());
15189 }
15190
15191 let cur_offset: usize = (1 - 1) * envelope_size;
15194
15195 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
15197
15198 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<u64>, D>(
15203 self.active_txn_ids.as_ref().map(<fidl::encoding::UnboundedVector<u64> as fidl::encoding::ValueTypeMarker>::borrow),
15204 encoder, offset + cur_offset, depth
15205 )?;
15206
15207 _prev_end_offset = cur_offset + envelope_size;
15208
15209 Ok(())
15210 }
15211 }
15212
15213 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
15214 for WlanFullmacImplGetScheduledScanEnabledResponse
15215 {
15216 #[inline(always)]
15217 fn new_empty() -> Self {
15218 Self::default()
15219 }
15220
15221 unsafe fn decode(
15222 &mut self,
15223 decoder: &mut fidl::encoding::Decoder<'_, D>,
15224 offset: usize,
15225 mut depth: fidl::encoding::Depth,
15226 ) -> fidl::Result<()> {
15227 decoder.debug_check_bounds::<Self>(offset);
15228 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
15229 None => return Err(fidl::Error::NotNullable),
15230 Some(len) => len,
15231 };
15232 if len == 0 {
15234 return Ok(());
15235 };
15236 depth.increment()?;
15237 let envelope_size = 8;
15238 let bytes_len = len * envelope_size;
15239 let offset = decoder.out_of_line_offset(bytes_len)?;
15240 let mut _next_ordinal_to_read = 0;
15242 let mut next_offset = offset;
15243 let end_offset = offset + bytes_len;
15244 _next_ordinal_to_read += 1;
15245 if next_offset >= end_offset {
15246 return Ok(());
15247 }
15248
15249 while _next_ordinal_to_read < 1 {
15251 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15252 _next_ordinal_to_read += 1;
15253 next_offset += envelope_size;
15254 }
15255
15256 let next_out_of_line = decoder.next_out_of_line();
15257 let handles_before = decoder.remaining_handles();
15258 if let Some((inlined, num_bytes, num_handles)) =
15259 fidl::encoding::decode_envelope_header(decoder, next_offset)?
15260 {
15261 let member_inline_size = <fidl::encoding::UnboundedVector<u64> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
15262 if inlined != (member_inline_size <= 4) {
15263 return Err(fidl::Error::InvalidInlineBitInEnvelope);
15264 }
15265 let inner_offset;
15266 let mut inner_depth = depth.clone();
15267 if inlined {
15268 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
15269 inner_offset = next_offset;
15270 } else {
15271 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
15272 inner_depth.increment()?;
15273 }
15274 let val_ref = self.active_txn_ids.get_or_insert_with(|| {
15275 fidl::new_empty!(fidl::encoding::UnboundedVector<u64>, D)
15276 });
15277 fidl::decode!(
15278 fidl::encoding::UnboundedVector<u64>,
15279 D,
15280 val_ref,
15281 decoder,
15282 inner_offset,
15283 inner_depth
15284 )?;
15285 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
15286 {
15287 return Err(fidl::Error::InvalidNumBytesInEnvelope);
15288 }
15289 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
15290 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
15291 }
15292 }
15293
15294 next_offset += envelope_size;
15295
15296 while next_offset < end_offset {
15298 _next_ordinal_to_read += 1;
15299 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15300 next_offset += envelope_size;
15301 }
15302
15303 Ok(())
15304 }
15305 }
15306
15307 impl WlanFullmacImplQueryApfPacketFilterSupportResponse {
15308 #[inline(always)]
15309 fn max_ordinal_present(&self) -> u64 {
15310 if let Some(_) = self.resp {
15311 return 1;
15312 }
15313 0
15314 }
15315 }
15316
15317 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplQueryApfPacketFilterSupportResponse {
15318 type Borrowed<'a> = &'a Self;
15319 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
15320 value
15321 }
15322 }
15323
15324 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplQueryApfPacketFilterSupportResponse {
15325 type Owned = Self;
15326
15327 #[inline(always)]
15328 fn inline_align(_context: fidl::encoding::Context) -> usize {
15329 8
15330 }
15331
15332 #[inline(always)]
15333 fn inline_size(_context: fidl::encoding::Context) -> usize {
15334 16
15335 }
15336 }
15337
15338 unsafe impl<D: fidl::encoding::ResourceDialect>
15339 fidl::encoding::Encode<WlanFullmacImplQueryApfPacketFilterSupportResponse, D>
15340 for &WlanFullmacImplQueryApfPacketFilterSupportResponse
15341 {
15342 unsafe fn encode(
15343 self,
15344 encoder: &mut fidl::encoding::Encoder<'_, D>,
15345 offset: usize,
15346 mut depth: fidl::encoding::Depth,
15347 ) -> fidl::Result<()> {
15348 encoder
15349 .debug_check_bounds::<WlanFullmacImplQueryApfPacketFilterSupportResponse>(offset);
15350 let max_ordinal: u64 = self.max_ordinal_present();
15352 encoder.write_num(max_ordinal, offset);
15353 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
15354 if max_ordinal == 0 {
15356 return Ok(());
15357 }
15358 depth.increment()?;
15359 let envelope_size = 8;
15360 let bytes_len = max_ordinal as usize * envelope_size;
15361 #[allow(unused_variables)]
15362 let offset = encoder.out_of_line_offset(bytes_len);
15363 let mut _prev_end_offset: usize = 0;
15364 if 1 > max_ordinal {
15365 return Ok(());
15366 }
15367
15368 let cur_offset: usize = (1 - 1) * envelope_size;
15371
15372 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
15374
15375 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_common_common::ApfPacketFilterSupport, D>(
15380 self.resp.as_ref().map(<fidl_fuchsia_wlan_common_common::ApfPacketFilterSupport as fidl::encoding::ValueTypeMarker>::borrow),
15381 encoder, offset + cur_offset, depth
15382 )?;
15383
15384 _prev_end_offset = cur_offset + envelope_size;
15385
15386 Ok(())
15387 }
15388 }
15389
15390 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
15391 for WlanFullmacImplQueryApfPacketFilterSupportResponse
15392 {
15393 #[inline(always)]
15394 fn new_empty() -> Self {
15395 Self::default()
15396 }
15397
15398 unsafe fn decode(
15399 &mut self,
15400 decoder: &mut fidl::encoding::Decoder<'_, D>,
15401 offset: usize,
15402 mut depth: fidl::encoding::Depth,
15403 ) -> fidl::Result<()> {
15404 decoder.debug_check_bounds::<Self>(offset);
15405 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
15406 None => return Err(fidl::Error::NotNullable),
15407 Some(len) => len,
15408 };
15409 if len == 0 {
15411 return Ok(());
15412 };
15413 depth.increment()?;
15414 let envelope_size = 8;
15415 let bytes_len = len * envelope_size;
15416 let offset = decoder.out_of_line_offset(bytes_len)?;
15417 let mut _next_ordinal_to_read = 0;
15419 let mut next_offset = offset;
15420 let end_offset = offset + bytes_len;
15421 _next_ordinal_to_read += 1;
15422 if next_offset >= end_offset {
15423 return Ok(());
15424 }
15425
15426 while _next_ordinal_to_read < 1 {
15428 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15429 _next_ordinal_to_read += 1;
15430 next_offset += envelope_size;
15431 }
15432
15433 let next_out_of_line = decoder.next_out_of_line();
15434 let handles_before = decoder.remaining_handles();
15435 if let Some((inlined, num_bytes, num_handles)) =
15436 fidl::encoding::decode_envelope_header(decoder, next_offset)?
15437 {
15438 let member_inline_size = <fidl_fuchsia_wlan_common_common::ApfPacketFilterSupport as fidl::encoding::TypeMarker>::inline_size(decoder.context);
15439 if inlined != (member_inline_size <= 4) {
15440 return Err(fidl::Error::InvalidInlineBitInEnvelope);
15441 }
15442 let inner_offset;
15443 let mut inner_depth = depth.clone();
15444 if inlined {
15445 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
15446 inner_offset = next_offset;
15447 } else {
15448 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
15449 inner_depth.increment()?;
15450 }
15451 let val_ref = self.resp.get_or_insert_with(|| {
15452 fidl::new_empty!(fidl_fuchsia_wlan_common_common::ApfPacketFilterSupport, D)
15453 });
15454 fidl::decode!(
15455 fidl_fuchsia_wlan_common_common::ApfPacketFilterSupport,
15456 D,
15457 val_ref,
15458 decoder,
15459 inner_offset,
15460 inner_depth
15461 )?;
15462 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
15463 {
15464 return Err(fidl::Error::InvalidNumBytesInEnvelope);
15465 }
15466 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
15467 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
15468 }
15469 }
15470
15471 next_offset += envelope_size;
15472
15473 while next_offset < end_offset {
15475 _next_ordinal_to_read += 1;
15476 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15477 next_offset += envelope_size;
15478 }
15479
15480 Ok(())
15481 }
15482 }
15483
15484 impl WlanFullmacImplQuerySecuritySupportResponse {
15485 #[inline(always)]
15486 fn max_ordinal_present(&self) -> u64 {
15487 if let Some(_) = self.resp {
15488 return 1;
15489 }
15490 0
15491 }
15492 }
15493
15494 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplQuerySecuritySupportResponse {
15495 type Borrowed<'a> = &'a Self;
15496 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
15497 value
15498 }
15499 }
15500
15501 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplQuerySecuritySupportResponse {
15502 type Owned = Self;
15503
15504 #[inline(always)]
15505 fn inline_align(_context: fidl::encoding::Context) -> usize {
15506 8
15507 }
15508
15509 #[inline(always)]
15510 fn inline_size(_context: fidl::encoding::Context) -> usize {
15511 16
15512 }
15513 }
15514
15515 unsafe impl<D: fidl::encoding::ResourceDialect>
15516 fidl::encoding::Encode<WlanFullmacImplQuerySecuritySupportResponse, D>
15517 for &WlanFullmacImplQuerySecuritySupportResponse
15518 {
15519 unsafe fn encode(
15520 self,
15521 encoder: &mut fidl::encoding::Encoder<'_, D>,
15522 offset: usize,
15523 mut depth: fidl::encoding::Depth,
15524 ) -> fidl::Result<()> {
15525 encoder.debug_check_bounds::<WlanFullmacImplQuerySecuritySupportResponse>(offset);
15526 let max_ordinal: u64 = self.max_ordinal_present();
15528 encoder.write_num(max_ordinal, offset);
15529 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
15530 if max_ordinal == 0 {
15532 return Ok(());
15533 }
15534 depth.increment()?;
15535 let envelope_size = 8;
15536 let bytes_len = max_ordinal as usize * envelope_size;
15537 #[allow(unused_variables)]
15538 let offset = encoder.out_of_line_offset(bytes_len);
15539 let mut _prev_end_offset: usize = 0;
15540 if 1 > max_ordinal {
15541 return Ok(());
15542 }
15543
15544 let cur_offset: usize = (1 - 1) * envelope_size;
15547
15548 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
15550
15551 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_common_common::SecuritySupport, D>(
15556 self.resp.as_ref().map(<fidl_fuchsia_wlan_common_common::SecuritySupport as fidl::encoding::ValueTypeMarker>::borrow),
15557 encoder, offset + cur_offset, depth
15558 )?;
15559
15560 _prev_end_offset = cur_offset + envelope_size;
15561
15562 Ok(())
15563 }
15564 }
15565
15566 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
15567 for WlanFullmacImplQuerySecuritySupportResponse
15568 {
15569 #[inline(always)]
15570 fn new_empty() -> Self {
15571 Self::default()
15572 }
15573
15574 unsafe fn decode(
15575 &mut self,
15576 decoder: &mut fidl::encoding::Decoder<'_, D>,
15577 offset: usize,
15578 mut depth: fidl::encoding::Depth,
15579 ) -> fidl::Result<()> {
15580 decoder.debug_check_bounds::<Self>(offset);
15581 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
15582 None => return Err(fidl::Error::NotNullable),
15583 Some(len) => len,
15584 };
15585 if len == 0 {
15587 return Ok(());
15588 };
15589 depth.increment()?;
15590 let envelope_size = 8;
15591 let bytes_len = len * envelope_size;
15592 let offset = decoder.out_of_line_offset(bytes_len)?;
15593 let mut _next_ordinal_to_read = 0;
15595 let mut next_offset = offset;
15596 let end_offset = offset + bytes_len;
15597 _next_ordinal_to_read += 1;
15598 if next_offset >= end_offset {
15599 return Ok(());
15600 }
15601
15602 while _next_ordinal_to_read < 1 {
15604 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15605 _next_ordinal_to_read += 1;
15606 next_offset += envelope_size;
15607 }
15608
15609 let next_out_of_line = decoder.next_out_of_line();
15610 let handles_before = decoder.remaining_handles();
15611 if let Some((inlined, num_bytes, num_handles)) =
15612 fidl::encoding::decode_envelope_header(decoder, next_offset)?
15613 {
15614 let member_inline_size = <fidl_fuchsia_wlan_common_common::SecuritySupport as fidl::encoding::TypeMarker>::inline_size(decoder.context);
15615 if inlined != (member_inline_size <= 4) {
15616 return Err(fidl::Error::InvalidInlineBitInEnvelope);
15617 }
15618 let inner_offset;
15619 let mut inner_depth = depth.clone();
15620 if inlined {
15621 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
15622 inner_offset = next_offset;
15623 } else {
15624 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
15625 inner_depth.increment()?;
15626 }
15627 let val_ref = self.resp.get_or_insert_with(|| {
15628 fidl::new_empty!(fidl_fuchsia_wlan_common_common::SecuritySupport, D)
15629 });
15630 fidl::decode!(
15631 fidl_fuchsia_wlan_common_common::SecuritySupport,
15632 D,
15633 val_ref,
15634 decoder,
15635 inner_offset,
15636 inner_depth
15637 )?;
15638 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
15639 {
15640 return Err(fidl::Error::InvalidNumBytesInEnvelope);
15641 }
15642 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
15643 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
15644 }
15645 }
15646
15647 next_offset += envelope_size;
15648
15649 while next_offset < end_offset {
15651 _next_ordinal_to_read += 1;
15652 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15653 next_offset += envelope_size;
15654 }
15655
15656 Ok(())
15657 }
15658 }
15659
15660 impl WlanFullmacImplQuerySpectrumManagementSupportResponse {
15661 #[inline(always)]
15662 fn max_ordinal_present(&self) -> u64 {
15663 if let Some(_) = self.resp {
15664 return 1;
15665 }
15666 0
15667 }
15668 }
15669
15670 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplQuerySpectrumManagementSupportResponse {
15671 type Borrowed<'a> = &'a Self;
15672 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
15673 value
15674 }
15675 }
15676
15677 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplQuerySpectrumManagementSupportResponse {
15678 type Owned = Self;
15679
15680 #[inline(always)]
15681 fn inline_align(_context: fidl::encoding::Context) -> usize {
15682 8
15683 }
15684
15685 #[inline(always)]
15686 fn inline_size(_context: fidl::encoding::Context) -> usize {
15687 16
15688 }
15689 }
15690
15691 unsafe impl<D: fidl::encoding::ResourceDialect>
15692 fidl::encoding::Encode<WlanFullmacImplQuerySpectrumManagementSupportResponse, D>
15693 for &WlanFullmacImplQuerySpectrumManagementSupportResponse
15694 {
15695 unsafe fn encode(
15696 self,
15697 encoder: &mut fidl::encoding::Encoder<'_, D>,
15698 offset: usize,
15699 mut depth: fidl::encoding::Depth,
15700 ) -> fidl::Result<()> {
15701 encoder.debug_check_bounds::<WlanFullmacImplQuerySpectrumManagementSupportResponse>(
15702 offset,
15703 );
15704 let max_ordinal: u64 = self.max_ordinal_present();
15706 encoder.write_num(max_ordinal, offset);
15707 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
15708 if max_ordinal == 0 {
15710 return Ok(());
15711 }
15712 depth.increment()?;
15713 let envelope_size = 8;
15714 let bytes_len = max_ordinal as usize * envelope_size;
15715 #[allow(unused_variables)]
15716 let offset = encoder.out_of_line_offset(bytes_len);
15717 let mut _prev_end_offset: usize = 0;
15718 if 1 > max_ordinal {
15719 return Ok(());
15720 }
15721
15722 let cur_offset: usize = (1 - 1) * envelope_size;
15725
15726 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
15728
15729 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_common_common::SpectrumManagementSupport, D>(
15734 self.resp.as_ref().map(<fidl_fuchsia_wlan_common_common::SpectrumManagementSupport as fidl::encoding::ValueTypeMarker>::borrow),
15735 encoder, offset + cur_offset, depth
15736 )?;
15737
15738 _prev_end_offset = cur_offset + envelope_size;
15739
15740 Ok(())
15741 }
15742 }
15743
15744 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
15745 for WlanFullmacImplQuerySpectrumManagementSupportResponse
15746 {
15747 #[inline(always)]
15748 fn new_empty() -> Self {
15749 Self::default()
15750 }
15751
15752 unsafe fn decode(
15753 &mut self,
15754 decoder: &mut fidl::encoding::Decoder<'_, D>,
15755 offset: usize,
15756 mut depth: fidl::encoding::Depth,
15757 ) -> fidl::Result<()> {
15758 decoder.debug_check_bounds::<Self>(offset);
15759 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
15760 None => return Err(fidl::Error::NotNullable),
15761 Some(len) => len,
15762 };
15763 if len == 0 {
15765 return Ok(());
15766 };
15767 depth.increment()?;
15768 let envelope_size = 8;
15769 let bytes_len = len * envelope_size;
15770 let offset = decoder.out_of_line_offset(bytes_len)?;
15771 let mut _next_ordinal_to_read = 0;
15773 let mut next_offset = offset;
15774 let end_offset = offset + bytes_len;
15775 _next_ordinal_to_read += 1;
15776 if next_offset >= end_offset {
15777 return Ok(());
15778 }
15779
15780 while _next_ordinal_to_read < 1 {
15782 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15783 _next_ordinal_to_read += 1;
15784 next_offset += envelope_size;
15785 }
15786
15787 let next_out_of_line = decoder.next_out_of_line();
15788 let handles_before = decoder.remaining_handles();
15789 if let Some((inlined, num_bytes, num_handles)) =
15790 fidl::encoding::decode_envelope_header(decoder, next_offset)?
15791 {
15792 let member_inline_size = <fidl_fuchsia_wlan_common_common::SpectrumManagementSupport as fidl::encoding::TypeMarker>::inline_size(decoder.context);
15793 if inlined != (member_inline_size <= 4) {
15794 return Err(fidl::Error::InvalidInlineBitInEnvelope);
15795 }
15796 let inner_offset;
15797 let mut inner_depth = depth.clone();
15798 if inlined {
15799 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
15800 inner_offset = next_offset;
15801 } else {
15802 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
15803 inner_depth.increment()?;
15804 }
15805 let val_ref = self.resp.get_or_insert_with(|| {
15806 fidl::new_empty!(fidl_fuchsia_wlan_common_common::SpectrumManagementSupport, D)
15807 });
15808 fidl::decode!(
15809 fidl_fuchsia_wlan_common_common::SpectrumManagementSupport,
15810 D,
15811 val_ref,
15812 decoder,
15813 inner_offset,
15814 inner_depth
15815 )?;
15816 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
15817 {
15818 return Err(fidl::Error::InvalidNumBytesInEnvelope);
15819 }
15820 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
15821 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
15822 }
15823 }
15824
15825 next_offset += envelope_size;
15826
15827 while next_offset < end_offset {
15829 _next_ordinal_to_read += 1;
15830 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15831 next_offset += envelope_size;
15832 }
15833
15834 Ok(())
15835 }
15836 }
15837
15838 impl WlanFullmacImplQueryTelemetrySupportResponse {
15839 #[inline(always)]
15840 fn max_ordinal_present(&self) -> u64 {
15841 if let Some(_) = self.resp {
15842 return 1;
15843 }
15844 0
15845 }
15846 }
15847
15848 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplQueryTelemetrySupportResponse {
15849 type Borrowed<'a> = &'a Self;
15850 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
15851 value
15852 }
15853 }
15854
15855 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplQueryTelemetrySupportResponse {
15856 type Owned = Self;
15857
15858 #[inline(always)]
15859 fn inline_align(_context: fidl::encoding::Context) -> usize {
15860 8
15861 }
15862
15863 #[inline(always)]
15864 fn inline_size(_context: fidl::encoding::Context) -> usize {
15865 16
15866 }
15867 }
15868
15869 unsafe impl<D: fidl::encoding::ResourceDialect>
15870 fidl::encoding::Encode<WlanFullmacImplQueryTelemetrySupportResponse, D>
15871 for &WlanFullmacImplQueryTelemetrySupportResponse
15872 {
15873 unsafe fn encode(
15874 self,
15875 encoder: &mut fidl::encoding::Encoder<'_, D>,
15876 offset: usize,
15877 mut depth: fidl::encoding::Depth,
15878 ) -> fidl::Result<()> {
15879 encoder.debug_check_bounds::<WlanFullmacImplQueryTelemetrySupportResponse>(offset);
15880 let max_ordinal: u64 = self.max_ordinal_present();
15882 encoder.write_num(max_ordinal, offset);
15883 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
15884 if max_ordinal == 0 {
15886 return Ok(());
15887 }
15888 depth.increment()?;
15889 let envelope_size = 8;
15890 let bytes_len = max_ordinal as usize * envelope_size;
15891 #[allow(unused_variables)]
15892 let offset = encoder.out_of_line_offset(bytes_len);
15893 let mut _prev_end_offset: usize = 0;
15894 if 1 > max_ordinal {
15895 return Ok(());
15896 }
15897
15898 let cur_offset: usize = (1 - 1) * envelope_size;
15901
15902 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
15904
15905 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_stats_common::TelemetrySupport, D>(
15910 self.resp.as_ref().map(<fidl_fuchsia_wlan_stats_common::TelemetrySupport as fidl::encoding::ValueTypeMarker>::borrow),
15911 encoder, offset + cur_offset, depth
15912 )?;
15913
15914 _prev_end_offset = cur_offset + envelope_size;
15915
15916 Ok(())
15917 }
15918 }
15919
15920 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
15921 for WlanFullmacImplQueryTelemetrySupportResponse
15922 {
15923 #[inline(always)]
15924 fn new_empty() -> Self {
15925 Self::default()
15926 }
15927
15928 unsafe fn decode(
15929 &mut self,
15930 decoder: &mut fidl::encoding::Decoder<'_, D>,
15931 offset: usize,
15932 mut depth: fidl::encoding::Depth,
15933 ) -> fidl::Result<()> {
15934 decoder.debug_check_bounds::<Self>(offset);
15935 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
15936 None => return Err(fidl::Error::NotNullable),
15937 Some(len) => len,
15938 };
15939 if len == 0 {
15941 return Ok(());
15942 };
15943 depth.increment()?;
15944 let envelope_size = 8;
15945 let bytes_len = len * envelope_size;
15946 let offset = decoder.out_of_line_offset(bytes_len)?;
15947 let mut _next_ordinal_to_read = 0;
15949 let mut next_offset = offset;
15950 let end_offset = offset + bytes_len;
15951 _next_ordinal_to_read += 1;
15952 if next_offset >= end_offset {
15953 return Ok(());
15954 }
15955
15956 while _next_ordinal_to_read < 1 {
15958 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15959 _next_ordinal_to_read += 1;
15960 next_offset += envelope_size;
15961 }
15962
15963 let next_out_of_line = decoder.next_out_of_line();
15964 let handles_before = decoder.remaining_handles();
15965 if let Some((inlined, num_bytes, num_handles)) =
15966 fidl::encoding::decode_envelope_header(decoder, next_offset)?
15967 {
15968 let member_inline_size = <fidl_fuchsia_wlan_stats_common::TelemetrySupport as fidl::encoding::TypeMarker>::inline_size(decoder.context);
15969 if inlined != (member_inline_size <= 4) {
15970 return Err(fidl::Error::InvalidInlineBitInEnvelope);
15971 }
15972 let inner_offset;
15973 let mut inner_depth = depth.clone();
15974 if inlined {
15975 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
15976 inner_offset = next_offset;
15977 } else {
15978 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
15979 inner_depth.increment()?;
15980 }
15981 let val_ref = self.resp.get_or_insert_with(|| {
15982 fidl::new_empty!(fidl_fuchsia_wlan_stats_common::TelemetrySupport, D)
15983 });
15984 fidl::decode!(
15985 fidl_fuchsia_wlan_stats_common::TelemetrySupport,
15986 D,
15987 val_ref,
15988 decoder,
15989 inner_offset,
15990 inner_depth
15991 )?;
15992 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
15993 {
15994 return Err(fidl::Error::InvalidNumBytesInEnvelope);
15995 }
15996 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
15997 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
15998 }
15999 }
16000
16001 next_offset += envelope_size;
16002
16003 while next_offset < end_offset {
16005 _next_ordinal_to_read += 1;
16006 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
16007 next_offset += envelope_size;
16008 }
16009
16010 Ok(())
16011 }
16012 }
16013
16014 impl WlanFullmacImplQueryResponse {
16015 #[inline(always)]
16016 fn max_ordinal_present(&self) -> u64 {
16017 if let Some(_) = self.factory_addr {
16018 return 4;
16019 }
16020 if let Some(_) = self.band_caps {
16021 return 3;
16022 }
16023 if let Some(_) = self.role {
16024 return 2;
16025 }
16026 if let Some(_) = self.sta_addr {
16027 return 1;
16028 }
16029 0
16030 }
16031 }
16032
16033 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplQueryResponse {
16034 type Borrowed<'a> = &'a Self;
16035 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
16036 value
16037 }
16038 }
16039
16040 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplQueryResponse {
16041 type Owned = Self;
16042
16043 #[inline(always)]
16044 fn inline_align(_context: fidl::encoding::Context) -> usize {
16045 8
16046 }
16047
16048 #[inline(always)]
16049 fn inline_size(_context: fidl::encoding::Context) -> usize {
16050 16
16051 }
16052 }
16053
16054 unsafe impl<D: fidl::encoding::ResourceDialect>
16055 fidl::encoding::Encode<WlanFullmacImplQueryResponse, D> for &WlanFullmacImplQueryResponse
16056 {
16057 unsafe fn encode(
16058 self,
16059 encoder: &mut fidl::encoding::Encoder<'_, D>,
16060 offset: usize,
16061 mut depth: fidl::encoding::Depth,
16062 ) -> fidl::Result<()> {
16063 encoder.debug_check_bounds::<WlanFullmacImplQueryResponse>(offset);
16064 let max_ordinal: u64 = self.max_ordinal_present();
16066 encoder.write_num(max_ordinal, offset);
16067 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
16068 if max_ordinal == 0 {
16070 return Ok(());
16071 }
16072 depth.increment()?;
16073 let envelope_size = 8;
16074 let bytes_len = max_ordinal as usize * envelope_size;
16075 #[allow(unused_variables)]
16076 let offset = encoder.out_of_line_offset(bytes_len);
16077 let mut _prev_end_offset: usize = 0;
16078 if 1 > max_ordinal {
16079 return Ok(());
16080 }
16081
16082 let cur_offset: usize = (1 - 1) * envelope_size;
16085
16086 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
16088
16089 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
16094 self.sta_addr
16095 .as_ref()
16096 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
16097 encoder,
16098 offset + cur_offset,
16099 depth,
16100 )?;
16101
16102 _prev_end_offset = cur_offset + envelope_size;
16103 if 2 > max_ordinal {
16104 return Ok(());
16105 }
16106
16107 let cur_offset: usize = (2 - 1) * envelope_size;
16110
16111 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
16113
16114 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_common_common::WlanMacRole, D>(
16119 self.role.as_ref().map(<fidl_fuchsia_wlan_common_common::WlanMacRole as fidl::encoding::ValueTypeMarker>::borrow),
16120 encoder, offset + cur_offset, depth
16121 )?;
16122
16123 _prev_end_offset = cur_offset + envelope_size;
16124 if 3 > max_ordinal {
16125 return Ok(());
16126 }
16127
16128 let cur_offset: usize = (3 - 1) * envelope_size;
16131
16132 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
16134
16135 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<BandCapability, 16>, D>(
16140 self.band_caps.as_ref().map(<fidl::encoding::Vector<BandCapability, 16> as fidl::encoding::ValueTypeMarker>::borrow),
16141 encoder, offset + cur_offset, depth
16142 )?;
16143
16144 _prev_end_offset = cur_offset + envelope_size;
16145 if 4 > max_ordinal {
16146 return Ok(());
16147 }
16148
16149 let cur_offset: usize = (4 - 1) * envelope_size;
16152
16153 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
16155
16156 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
16161 self.factory_addr
16162 .as_ref()
16163 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
16164 encoder,
16165 offset + cur_offset,
16166 depth,
16167 )?;
16168
16169 _prev_end_offset = cur_offset + envelope_size;
16170
16171 Ok(())
16172 }
16173 }
16174
16175 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
16176 for WlanFullmacImplQueryResponse
16177 {
16178 #[inline(always)]
16179 fn new_empty() -> Self {
16180 Self::default()
16181 }
16182
16183 unsafe fn decode(
16184 &mut self,
16185 decoder: &mut fidl::encoding::Decoder<'_, D>,
16186 offset: usize,
16187 mut depth: fidl::encoding::Depth,
16188 ) -> fidl::Result<()> {
16189 decoder.debug_check_bounds::<Self>(offset);
16190 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
16191 None => return Err(fidl::Error::NotNullable),
16192 Some(len) => len,
16193 };
16194 if len == 0 {
16196 return Ok(());
16197 };
16198 depth.increment()?;
16199 let envelope_size = 8;
16200 let bytes_len = len * envelope_size;
16201 let offset = decoder.out_of_line_offset(bytes_len)?;
16202 let mut _next_ordinal_to_read = 0;
16204 let mut next_offset = offset;
16205 let end_offset = offset + bytes_len;
16206 _next_ordinal_to_read += 1;
16207 if next_offset >= end_offset {
16208 return Ok(());
16209 }
16210
16211 while _next_ordinal_to_read < 1 {
16213 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
16214 _next_ordinal_to_read += 1;
16215 next_offset += envelope_size;
16216 }
16217
16218 let next_out_of_line = decoder.next_out_of_line();
16219 let handles_before = decoder.remaining_handles();
16220 if let Some((inlined, num_bytes, num_handles)) =
16221 fidl::encoding::decode_envelope_header(decoder, next_offset)?
16222 {
16223 let member_inline_size =
16224 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
16225 decoder.context,
16226 );
16227 if inlined != (member_inline_size <= 4) {
16228 return Err(fidl::Error::InvalidInlineBitInEnvelope);
16229 }
16230 let inner_offset;
16231 let mut inner_depth = depth.clone();
16232 if inlined {
16233 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
16234 inner_offset = next_offset;
16235 } else {
16236 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
16237 inner_depth.increment()?;
16238 }
16239 let val_ref = self
16240 .sta_addr
16241 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
16242 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
16243 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
16244 {
16245 return Err(fidl::Error::InvalidNumBytesInEnvelope);
16246 }
16247 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
16248 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
16249 }
16250 }
16251
16252 next_offset += envelope_size;
16253 _next_ordinal_to_read += 1;
16254 if next_offset >= end_offset {
16255 return Ok(());
16256 }
16257
16258 while _next_ordinal_to_read < 2 {
16260 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
16261 _next_ordinal_to_read += 1;
16262 next_offset += envelope_size;
16263 }
16264
16265 let next_out_of_line = decoder.next_out_of_line();
16266 let handles_before = decoder.remaining_handles();
16267 if let Some((inlined, num_bytes, num_handles)) =
16268 fidl::encoding::decode_envelope_header(decoder, next_offset)?
16269 {
16270 let member_inline_size = <fidl_fuchsia_wlan_common_common::WlanMacRole as fidl::encoding::TypeMarker>::inline_size(decoder.context);
16271 if inlined != (member_inline_size <= 4) {
16272 return Err(fidl::Error::InvalidInlineBitInEnvelope);
16273 }
16274 let inner_offset;
16275 let mut inner_depth = depth.clone();
16276 if inlined {
16277 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
16278 inner_offset = next_offset;
16279 } else {
16280 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
16281 inner_depth.increment()?;
16282 }
16283 let val_ref = self.role.get_or_insert_with(|| {
16284 fidl::new_empty!(fidl_fuchsia_wlan_common_common::WlanMacRole, D)
16285 });
16286 fidl::decode!(
16287 fidl_fuchsia_wlan_common_common::WlanMacRole,
16288 D,
16289 val_ref,
16290 decoder,
16291 inner_offset,
16292 inner_depth
16293 )?;
16294 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
16295 {
16296 return Err(fidl::Error::InvalidNumBytesInEnvelope);
16297 }
16298 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
16299 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
16300 }
16301 }
16302
16303 next_offset += envelope_size;
16304 _next_ordinal_to_read += 1;
16305 if next_offset >= end_offset {
16306 return Ok(());
16307 }
16308
16309 while _next_ordinal_to_read < 3 {
16311 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
16312 _next_ordinal_to_read += 1;
16313 next_offset += envelope_size;
16314 }
16315
16316 let next_out_of_line = decoder.next_out_of_line();
16317 let handles_before = decoder.remaining_handles();
16318 if let Some((inlined, num_bytes, num_handles)) =
16319 fidl::encoding::decode_envelope_header(decoder, next_offset)?
16320 {
16321 let member_inline_size = <fidl::encoding::Vector<BandCapability, 16> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
16322 if inlined != (member_inline_size <= 4) {
16323 return Err(fidl::Error::InvalidInlineBitInEnvelope);
16324 }
16325 let inner_offset;
16326 let mut inner_depth = depth.clone();
16327 if inlined {
16328 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
16329 inner_offset = next_offset;
16330 } else {
16331 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
16332 inner_depth.increment()?;
16333 }
16334 let val_ref = self.band_caps.get_or_insert_with(
16335 || fidl::new_empty!(fidl::encoding::Vector<BandCapability, 16>, D),
16336 );
16337 fidl::decode!(fidl::encoding::Vector<BandCapability, 16>, D, val_ref, decoder, inner_offset, inner_depth)?;
16338 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
16339 {
16340 return Err(fidl::Error::InvalidNumBytesInEnvelope);
16341 }
16342 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
16343 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
16344 }
16345 }
16346
16347 next_offset += envelope_size;
16348 _next_ordinal_to_read += 1;
16349 if next_offset >= end_offset {
16350 return Ok(());
16351 }
16352
16353 while _next_ordinal_to_read < 4 {
16355 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
16356 _next_ordinal_to_read += 1;
16357 next_offset += envelope_size;
16358 }
16359
16360 let next_out_of_line = decoder.next_out_of_line();
16361 let handles_before = decoder.remaining_handles();
16362 if let Some((inlined, num_bytes, num_handles)) =
16363 fidl::encoding::decode_envelope_header(decoder, next_offset)?
16364 {
16365 let member_inline_size =
16366 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
16367 decoder.context,
16368 );
16369 if inlined != (member_inline_size <= 4) {
16370 return Err(fidl::Error::InvalidInlineBitInEnvelope);
16371 }
16372 let inner_offset;
16373 let mut inner_depth = depth.clone();
16374 if inlined {
16375 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
16376 inner_offset = next_offset;
16377 } else {
16378 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
16379 inner_depth.increment()?;
16380 }
16381 let val_ref = self
16382 .factory_addr
16383 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
16384 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
16385 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
16386 {
16387 return Err(fidl::Error::InvalidNumBytesInEnvelope);
16388 }
16389 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
16390 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
16391 }
16392 }
16393
16394 next_offset += envelope_size;
16395
16396 while next_offset < end_offset {
16398 _next_ordinal_to_read += 1;
16399 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
16400 next_offset += envelope_size;
16401 }
16402
16403 Ok(())
16404 }
16405 }
16406
16407 impl WlanFullmacImplReadApfPacketFilterDataResponse {
16408 #[inline(always)]
16409 fn max_ordinal_present(&self) -> u64 {
16410 if let Some(_) = self.memory {
16411 return 1;
16412 }
16413 0
16414 }
16415 }
16416
16417 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplReadApfPacketFilterDataResponse {
16418 type Borrowed<'a> = &'a Self;
16419 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
16420 value
16421 }
16422 }
16423
16424 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplReadApfPacketFilterDataResponse {
16425 type Owned = Self;
16426
16427 #[inline(always)]
16428 fn inline_align(_context: fidl::encoding::Context) -> usize {
16429 8
16430 }
16431
16432 #[inline(always)]
16433 fn inline_size(_context: fidl::encoding::Context) -> usize {
16434 16
16435 }
16436 }
16437
16438 unsafe impl<D: fidl::encoding::ResourceDialect>
16439 fidl::encoding::Encode<WlanFullmacImplReadApfPacketFilterDataResponse, D>
16440 for &WlanFullmacImplReadApfPacketFilterDataResponse
16441 {
16442 unsafe fn encode(
16443 self,
16444 encoder: &mut fidl::encoding::Encoder<'_, D>,
16445 offset: usize,
16446 mut depth: fidl::encoding::Depth,
16447 ) -> fidl::Result<()> {
16448 encoder.debug_check_bounds::<WlanFullmacImplReadApfPacketFilterDataResponse>(offset);
16449 let max_ordinal: u64 = self.max_ordinal_present();
16451 encoder.write_num(max_ordinal, offset);
16452 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
16453 if max_ordinal == 0 {
16455 return Ok(());
16456 }
16457 depth.increment()?;
16458 let envelope_size = 8;
16459 let bytes_len = max_ordinal as usize * envelope_size;
16460 #[allow(unused_variables)]
16461 let offset = encoder.out_of_line_offset(bytes_len);
16462 let mut _prev_end_offset: usize = 0;
16463 if 1 > max_ordinal {
16464 return Ok(());
16465 }
16466
16467 let cur_offset: usize = (1 - 1) * envelope_size;
16470
16471 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
16473
16474 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<u8>, D>(
16479 self.memory.as_ref().map(<fidl::encoding::UnboundedVector<u8> as fidl::encoding::ValueTypeMarker>::borrow),
16480 encoder, offset + cur_offset, depth
16481 )?;
16482
16483 _prev_end_offset = cur_offset + envelope_size;
16484
16485 Ok(())
16486 }
16487 }
16488
16489 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
16490 for WlanFullmacImplReadApfPacketFilterDataResponse
16491 {
16492 #[inline(always)]
16493 fn new_empty() -> Self {
16494 Self::default()
16495 }
16496
16497 unsafe fn decode(
16498 &mut self,
16499 decoder: &mut fidl::encoding::Decoder<'_, D>,
16500 offset: usize,
16501 mut depth: fidl::encoding::Depth,
16502 ) -> fidl::Result<()> {
16503 decoder.debug_check_bounds::<Self>(offset);
16504 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
16505 None => return Err(fidl::Error::NotNullable),
16506 Some(len) => len,
16507 };
16508 if len == 0 {
16510 return Ok(());
16511 };
16512 depth.increment()?;
16513 let envelope_size = 8;
16514 let bytes_len = len * envelope_size;
16515 let offset = decoder.out_of_line_offset(bytes_len)?;
16516 let mut _next_ordinal_to_read = 0;
16518 let mut next_offset = offset;
16519 let end_offset = offset + bytes_len;
16520 _next_ordinal_to_read += 1;
16521 if next_offset >= end_offset {
16522 return Ok(());
16523 }
16524
16525 while _next_ordinal_to_read < 1 {
16527 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
16528 _next_ordinal_to_read += 1;
16529 next_offset += envelope_size;
16530 }
16531
16532 let next_out_of_line = decoder.next_out_of_line();
16533 let handles_before = decoder.remaining_handles();
16534 if let Some((inlined, num_bytes, num_handles)) =
16535 fidl::encoding::decode_envelope_header(decoder, next_offset)?
16536 {
16537 let member_inline_size = <fidl::encoding::UnboundedVector<u8> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
16538 if inlined != (member_inline_size <= 4) {
16539 return Err(fidl::Error::InvalidInlineBitInEnvelope);
16540 }
16541 let inner_offset;
16542 let mut inner_depth = depth.clone();
16543 if inlined {
16544 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
16545 inner_offset = next_offset;
16546 } else {
16547 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
16548 inner_depth.increment()?;
16549 }
16550 let val_ref = self.memory.get_or_insert_with(|| {
16551 fidl::new_empty!(fidl::encoding::UnboundedVector<u8>, D)
16552 });
16553 fidl::decode!(
16554 fidl::encoding::UnboundedVector<u8>,
16555 D,
16556 val_ref,
16557 decoder,
16558 inner_offset,
16559 inner_depth
16560 )?;
16561 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
16562 {
16563 return Err(fidl::Error::InvalidNumBytesInEnvelope);
16564 }
16565 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
16566 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
16567 }
16568 }
16569
16570 next_offset += envelope_size;
16571
16572 while next_offset < end_offset {
16574 _next_ordinal_to_read += 1;
16575 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
16576 next_offset += envelope_size;
16577 }
16578
16579 Ok(())
16580 }
16581 }
16582
16583 impl WlanFullmacOwePublicKey {
16584 #[inline(always)]
16585 fn max_ordinal_present(&self) -> u64 {
16586 if let Some(_) = self.key {
16587 return 2;
16588 }
16589 if let Some(_) = self.group {
16590 return 1;
16591 }
16592 0
16593 }
16594 }
16595
16596 impl fidl::encoding::ValueTypeMarker for WlanFullmacOwePublicKey {
16597 type Borrowed<'a> = &'a Self;
16598 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
16599 value
16600 }
16601 }
16602
16603 unsafe impl fidl::encoding::TypeMarker for WlanFullmacOwePublicKey {
16604 type Owned = Self;
16605
16606 #[inline(always)]
16607 fn inline_align(_context: fidl::encoding::Context) -> usize {
16608 8
16609 }
16610
16611 #[inline(always)]
16612 fn inline_size(_context: fidl::encoding::Context) -> usize {
16613 16
16614 }
16615 }
16616
16617 unsafe impl<D: fidl::encoding::ResourceDialect>
16618 fidl::encoding::Encode<WlanFullmacOwePublicKey, D> for &WlanFullmacOwePublicKey
16619 {
16620 unsafe fn encode(
16621 self,
16622 encoder: &mut fidl::encoding::Encoder<'_, D>,
16623 offset: usize,
16624 mut depth: fidl::encoding::Depth,
16625 ) -> fidl::Result<()> {
16626 encoder.debug_check_bounds::<WlanFullmacOwePublicKey>(offset);
16627 let max_ordinal: u64 = self.max_ordinal_present();
16629 encoder.write_num(max_ordinal, offset);
16630 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
16631 if max_ordinal == 0 {
16633 return Ok(());
16634 }
16635 depth.increment()?;
16636 let envelope_size = 8;
16637 let bytes_len = max_ordinal as usize * envelope_size;
16638 #[allow(unused_variables)]
16639 let offset = encoder.out_of_line_offset(bytes_len);
16640 let mut _prev_end_offset: usize = 0;
16641 if 1 > max_ordinal {
16642 return Ok(());
16643 }
16644
16645 let cur_offset: usize = (1 - 1) * envelope_size;
16648
16649 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
16651
16652 fidl::encoding::encode_in_envelope_optional::<u16, D>(
16657 self.group.as_ref().map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
16658 encoder,
16659 offset + cur_offset,
16660 depth,
16661 )?;
16662
16663 _prev_end_offset = cur_offset + envelope_size;
16664 if 2 > max_ordinal {
16665 return Ok(());
16666 }
16667
16668 let cur_offset: usize = (2 - 1) * envelope_size;
16671
16672 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
16674
16675 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<u8>, D>(
16680 self.key.as_ref().map(<fidl::encoding::UnboundedVector<u8> as fidl::encoding::ValueTypeMarker>::borrow),
16681 encoder, offset + cur_offset, depth
16682 )?;
16683
16684 _prev_end_offset = cur_offset + envelope_size;
16685
16686 Ok(())
16687 }
16688 }
16689
16690 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
16691 for WlanFullmacOwePublicKey
16692 {
16693 #[inline(always)]
16694 fn new_empty() -> Self {
16695 Self::default()
16696 }
16697
16698 unsafe fn decode(
16699 &mut self,
16700 decoder: &mut fidl::encoding::Decoder<'_, D>,
16701 offset: usize,
16702 mut depth: fidl::encoding::Depth,
16703 ) -> fidl::Result<()> {
16704 decoder.debug_check_bounds::<Self>(offset);
16705 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
16706 None => return Err(fidl::Error::NotNullable),
16707 Some(len) => len,
16708 };
16709 if len == 0 {
16711 return Ok(());
16712 };
16713 depth.increment()?;
16714 let envelope_size = 8;
16715 let bytes_len = len * envelope_size;
16716 let offset = decoder.out_of_line_offset(bytes_len)?;
16717 let mut _next_ordinal_to_read = 0;
16719 let mut next_offset = offset;
16720 let end_offset = offset + bytes_len;
16721 _next_ordinal_to_read += 1;
16722 if next_offset >= end_offset {
16723 return Ok(());
16724 }
16725
16726 while _next_ordinal_to_read < 1 {
16728 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
16729 _next_ordinal_to_read += 1;
16730 next_offset += envelope_size;
16731 }
16732
16733 let next_out_of_line = decoder.next_out_of_line();
16734 let handles_before = decoder.remaining_handles();
16735 if let Some((inlined, num_bytes, num_handles)) =
16736 fidl::encoding::decode_envelope_header(decoder, next_offset)?
16737 {
16738 let member_inline_size =
16739 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
16740 if inlined != (member_inline_size <= 4) {
16741 return Err(fidl::Error::InvalidInlineBitInEnvelope);
16742 }
16743 let inner_offset;
16744 let mut inner_depth = depth.clone();
16745 if inlined {
16746 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
16747 inner_offset = next_offset;
16748 } else {
16749 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
16750 inner_depth.increment()?;
16751 }
16752 let val_ref = self.group.get_or_insert_with(|| fidl::new_empty!(u16, D));
16753 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
16754 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
16755 {
16756 return Err(fidl::Error::InvalidNumBytesInEnvelope);
16757 }
16758 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
16759 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
16760 }
16761 }
16762
16763 next_offset += envelope_size;
16764 _next_ordinal_to_read += 1;
16765 if next_offset >= end_offset {
16766 return Ok(());
16767 }
16768
16769 while _next_ordinal_to_read < 2 {
16771 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
16772 _next_ordinal_to_read += 1;
16773 next_offset += envelope_size;
16774 }
16775
16776 let next_out_of_line = decoder.next_out_of_line();
16777 let handles_before = decoder.remaining_handles();
16778 if let Some((inlined, num_bytes, num_handles)) =
16779 fidl::encoding::decode_envelope_header(decoder, next_offset)?
16780 {
16781 let member_inline_size = <fidl::encoding::UnboundedVector<u8> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
16782 if inlined != (member_inline_size <= 4) {
16783 return Err(fidl::Error::InvalidInlineBitInEnvelope);
16784 }
16785 let inner_offset;
16786 let mut inner_depth = depth.clone();
16787 if inlined {
16788 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
16789 inner_offset = next_offset;
16790 } else {
16791 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
16792 inner_depth.increment()?;
16793 }
16794 let val_ref = self.key.get_or_insert_with(|| {
16795 fidl::new_empty!(fidl::encoding::UnboundedVector<u8>, D)
16796 });
16797 fidl::decode!(
16798 fidl::encoding::UnboundedVector<u8>,
16799 D,
16800 val_ref,
16801 decoder,
16802 inner_offset,
16803 inner_depth
16804 )?;
16805 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
16806 {
16807 return Err(fidl::Error::InvalidNumBytesInEnvelope);
16808 }
16809 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
16810 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
16811 }
16812 }
16813
16814 next_offset += envelope_size;
16815
16816 while next_offset < end_offset {
16818 _next_ordinal_to_read += 1;
16819 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
16820 next_offset += envelope_size;
16821 }
16822
16823 Ok(())
16824 }
16825 }
16826}