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!(
2197 fidl_fuchsia_wlan_driver__common::WlanWmmParameters,
2198 D
2199 ),
2200 }
2201 }
2202
2203 #[inline]
2204 unsafe fn decode(
2205 &mut self,
2206 decoder: &mut fidl::encoding::Decoder<'_, D>,
2207 offset: usize,
2208 _depth: fidl::encoding::Depth,
2209 ) -> fidl::Result<()> {
2210 decoder.debug_check_bounds::<Self>(offset);
2211 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(36) };
2213 let padval = unsafe { (ptr as *const u32).read_unaligned() };
2214 let mask = 0xffff0000u32;
2215 let maskedval = padval & mask;
2216 if maskedval != 0 {
2217 return Err(fidl::Error::NonZeroPadding {
2218 padding_start: offset + 36 + ((mask as u64).trailing_zeros() / 8) as usize,
2219 });
2220 }
2221 fidl::decode!(i32, D, &mut self.status, decoder, offset + 0, _depth)?;
2222 fidl::decode!(
2223 fidl_fuchsia_wlan_driver__common::WlanWmmParameters,
2224 D,
2225 &mut self.wmm_params,
2226 decoder,
2227 offset + 4,
2228 _depth
2229 )?;
2230 Ok(())
2231 }
2232 }
2233
2234 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcSaeFrameRxRequest {
2235 type Borrowed<'a> = &'a Self;
2236 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2237 value
2238 }
2239 }
2240
2241 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcSaeFrameRxRequest {
2242 type Owned = Self;
2243
2244 #[inline(always)]
2245 fn inline_align(_context: fidl::encoding::Context) -> usize {
2246 8
2247 }
2248
2249 #[inline(always)]
2250 fn inline_size(_context: fidl::encoding::Context) -> usize {
2251 16
2252 }
2253 }
2254
2255 unsafe impl<D: fidl::encoding::ResourceDialect>
2256 fidl::encoding::Encode<WlanFullmacImplIfcSaeFrameRxRequest, D>
2257 for &WlanFullmacImplIfcSaeFrameRxRequest
2258 {
2259 #[inline]
2260 unsafe fn encode(
2261 self,
2262 encoder: &mut fidl::encoding::Encoder<'_, D>,
2263 offset: usize,
2264 _depth: fidl::encoding::Depth,
2265 ) -> fidl::Result<()> {
2266 encoder.debug_check_bounds::<WlanFullmacImplIfcSaeFrameRxRequest>(offset);
2267 fidl::encoding::Encode::<WlanFullmacImplIfcSaeFrameRxRequest, D>::encode(
2269 (<SaeFrame as fidl::encoding::ValueTypeMarker>::borrow(&self.frame),),
2270 encoder,
2271 offset,
2272 _depth,
2273 )
2274 }
2275 }
2276 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<SaeFrame, D>>
2277 fidl::encoding::Encode<WlanFullmacImplIfcSaeFrameRxRequest, D> for (T0,)
2278 {
2279 #[inline]
2280 unsafe fn encode(
2281 self,
2282 encoder: &mut fidl::encoding::Encoder<'_, D>,
2283 offset: usize,
2284 depth: fidl::encoding::Depth,
2285 ) -> fidl::Result<()> {
2286 encoder.debug_check_bounds::<WlanFullmacImplIfcSaeFrameRxRequest>(offset);
2287 self.0.encode(encoder, offset + 0, depth)?;
2291 Ok(())
2292 }
2293 }
2294
2295 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2296 for WlanFullmacImplIfcSaeFrameRxRequest
2297 {
2298 #[inline(always)]
2299 fn new_empty() -> Self {
2300 Self { frame: fidl::new_empty!(SaeFrame, D) }
2301 }
2302
2303 #[inline]
2304 unsafe fn decode(
2305 &mut self,
2306 decoder: &mut fidl::encoding::Decoder<'_, D>,
2307 offset: usize,
2308 _depth: fidl::encoding::Depth,
2309 ) -> fidl::Result<()> {
2310 decoder.debug_check_bounds::<Self>(offset);
2311 fidl::decode!(SaeFrame, D, &mut self.frame, decoder, offset + 0, _depth)?;
2313 Ok(())
2314 }
2315 }
2316
2317 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcSignalReportRequest {
2318 type Borrowed<'a> = &'a Self;
2319 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2320 value
2321 }
2322 }
2323
2324 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcSignalReportRequest {
2325 type Owned = Self;
2326
2327 #[inline(always)]
2328 fn inline_align(_context: fidl::encoding::Context) -> usize {
2329 1
2330 }
2331
2332 #[inline(always)]
2333 fn inline_size(_context: fidl::encoding::Context) -> usize {
2334 2
2335 }
2336 #[inline(always)]
2337 fn encode_is_copy() -> bool {
2338 true
2339 }
2340
2341 #[inline(always)]
2342 fn decode_is_copy() -> bool {
2343 true
2344 }
2345 }
2346
2347 unsafe impl<D: fidl::encoding::ResourceDialect>
2348 fidl::encoding::Encode<WlanFullmacImplIfcSignalReportRequest, D>
2349 for &WlanFullmacImplIfcSignalReportRequest
2350 {
2351 #[inline]
2352 unsafe fn encode(
2353 self,
2354 encoder: &mut fidl::encoding::Encoder<'_, D>,
2355 offset: usize,
2356 _depth: fidl::encoding::Depth,
2357 ) -> fidl::Result<()> {
2358 encoder.debug_check_bounds::<WlanFullmacImplIfcSignalReportRequest>(offset);
2359 unsafe {
2360 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
2362 (buf_ptr as *mut WlanFullmacImplIfcSignalReportRequest)
2363 .write_unaligned((self as *const WlanFullmacImplIfcSignalReportRequest).read());
2364 }
2367 Ok(())
2368 }
2369 }
2370 unsafe impl<
2371 D: fidl::encoding::ResourceDialect,
2372 T0: fidl::encoding::Encode<WlanFullmacSignalReportIndication, D>,
2373 > fidl::encoding::Encode<WlanFullmacImplIfcSignalReportRequest, D> for (T0,)
2374 {
2375 #[inline]
2376 unsafe fn encode(
2377 self,
2378 encoder: &mut fidl::encoding::Encoder<'_, D>,
2379 offset: usize,
2380 depth: fidl::encoding::Depth,
2381 ) -> fidl::Result<()> {
2382 encoder.debug_check_bounds::<WlanFullmacImplIfcSignalReportRequest>(offset);
2383 self.0.encode(encoder, offset + 0, depth)?;
2387 Ok(())
2388 }
2389 }
2390
2391 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2392 for WlanFullmacImplIfcSignalReportRequest
2393 {
2394 #[inline(always)]
2395 fn new_empty() -> Self {
2396 Self { ind: fidl::new_empty!(WlanFullmacSignalReportIndication, D) }
2397 }
2398
2399 #[inline]
2400 unsafe fn decode(
2401 &mut self,
2402 decoder: &mut fidl::encoding::Decoder<'_, D>,
2403 offset: usize,
2404 _depth: fidl::encoding::Depth,
2405 ) -> fidl::Result<()> {
2406 decoder.debug_check_bounds::<Self>(offset);
2407 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
2408 unsafe {
2411 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 2);
2412 }
2413 Ok(())
2414 }
2415 }
2416
2417 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplSaeFrameTxRequest {
2418 type Borrowed<'a> = &'a Self;
2419 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2420 value
2421 }
2422 }
2423
2424 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplSaeFrameTxRequest {
2425 type Owned = Self;
2426
2427 #[inline(always)]
2428 fn inline_align(_context: fidl::encoding::Context) -> usize {
2429 8
2430 }
2431
2432 #[inline(always)]
2433 fn inline_size(_context: fidl::encoding::Context) -> usize {
2434 16
2435 }
2436 }
2437
2438 unsafe impl<D: fidl::encoding::ResourceDialect>
2439 fidl::encoding::Encode<WlanFullmacImplSaeFrameTxRequest, D>
2440 for &WlanFullmacImplSaeFrameTxRequest
2441 {
2442 #[inline]
2443 unsafe fn encode(
2444 self,
2445 encoder: &mut fidl::encoding::Encoder<'_, D>,
2446 offset: usize,
2447 _depth: fidl::encoding::Depth,
2448 ) -> fidl::Result<()> {
2449 encoder.debug_check_bounds::<WlanFullmacImplSaeFrameTxRequest>(offset);
2450 fidl::encoding::Encode::<WlanFullmacImplSaeFrameTxRequest, D>::encode(
2452 (<SaeFrame as fidl::encoding::ValueTypeMarker>::borrow(&self.frame),),
2453 encoder,
2454 offset,
2455 _depth,
2456 )
2457 }
2458 }
2459 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<SaeFrame, D>>
2460 fidl::encoding::Encode<WlanFullmacImplSaeFrameTxRequest, D> for (T0,)
2461 {
2462 #[inline]
2463 unsafe fn encode(
2464 self,
2465 encoder: &mut fidl::encoding::Encoder<'_, D>,
2466 offset: usize,
2467 depth: fidl::encoding::Depth,
2468 ) -> fidl::Result<()> {
2469 encoder.debug_check_bounds::<WlanFullmacImplSaeFrameTxRequest>(offset);
2470 self.0.encode(encoder, offset + 0, depth)?;
2474 Ok(())
2475 }
2476 }
2477
2478 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2479 for WlanFullmacImplSaeFrameTxRequest
2480 {
2481 #[inline(always)]
2482 fn new_empty() -> Self {
2483 Self { frame: fidl::new_empty!(SaeFrame, D) }
2484 }
2485
2486 #[inline]
2487 unsafe fn decode(
2488 &mut self,
2489 decoder: &mut fidl::encoding::Decoder<'_, D>,
2490 offset: usize,
2491 _depth: fidl::encoding::Depth,
2492 ) -> fidl::Result<()> {
2493 decoder.debug_check_bounds::<Self>(offset);
2494 fidl::decode!(SaeFrame, D, &mut self.frame, decoder, offset + 0, _depth)?;
2496 Ok(())
2497 }
2498 }
2499
2500 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplSetKeysResponse {
2501 type Borrowed<'a> = &'a Self;
2502 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2503 value
2504 }
2505 }
2506
2507 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplSetKeysResponse {
2508 type Owned = Self;
2509
2510 #[inline(always)]
2511 fn inline_align(_context: fidl::encoding::Context) -> usize {
2512 8
2513 }
2514
2515 #[inline(always)]
2516 fn inline_size(_context: fidl::encoding::Context) -> usize {
2517 16
2518 }
2519 }
2520
2521 unsafe impl<D: fidl::encoding::ResourceDialect>
2522 fidl::encoding::Encode<WlanFullmacImplSetKeysResponse, D>
2523 for &WlanFullmacImplSetKeysResponse
2524 {
2525 #[inline]
2526 unsafe fn encode(
2527 self,
2528 encoder: &mut fidl::encoding::Encoder<'_, D>,
2529 offset: usize,
2530 _depth: fidl::encoding::Depth,
2531 ) -> fidl::Result<()> {
2532 encoder.debug_check_bounds::<WlanFullmacImplSetKeysResponse>(offset);
2533 fidl::encoding::Encode::<WlanFullmacImplSetKeysResponse, D>::encode(
2535 (<WlanFullmacSetKeysResp as fidl::encoding::ValueTypeMarker>::borrow(&self.resp),),
2536 encoder,
2537 offset,
2538 _depth,
2539 )
2540 }
2541 }
2542 unsafe impl<
2543 D: fidl::encoding::ResourceDialect,
2544 T0: fidl::encoding::Encode<WlanFullmacSetKeysResp, D>,
2545 > fidl::encoding::Encode<WlanFullmacImplSetKeysResponse, D> for (T0,)
2546 {
2547 #[inline]
2548 unsafe fn encode(
2549 self,
2550 encoder: &mut fidl::encoding::Encoder<'_, D>,
2551 offset: usize,
2552 depth: fidl::encoding::Depth,
2553 ) -> fidl::Result<()> {
2554 encoder.debug_check_bounds::<WlanFullmacImplSetKeysResponse>(offset);
2555 self.0.encode(encoder, offset + 0, depth)?;
2559 Ok(())
2560 }
2561 }
2562
2563 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2564 for WlanFullmacImplSetKeysResponse
2565 {
2566 #[inline(always)]
2567 fn new_empty() -> Self {
2568 Self { resp: fidl::new_empty!(WlanFullmacSetKeysResp, D) }
2569 }
2570
2571 #[inline]
2572 unsafe fn decode(
2573 &mut self,
2574 decoder: &mut fidl::encoding::Decoder<'_, D>,
2575 offset: usize,
2576 _depth: fidl::encoding::Depth,
2577 ) -> fidl::Result<()> {
2578 decoder.debug_check_bounds::<Self>(offset);
2579 fidl::decode!(WlanFullmacSetKeysResp, D, &mut self.resp, decoder, offset + 0, _depth)?;
2581 Ok(())
2582 }
2583 }
2584
2585 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplSetMacAddressRequest {
2586 type Borrowed<'a> = &'a Self;
2587 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2588 value
2589 }
2590 }
2591
2592 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplSetMacAddressRequest {
2593 type Owned = Self;
2594
2595 #[inline(always)]
2596 fn inline_align(_context: fidl::encoding::Context) -> usize {
2597 1
2598 }
2599
2600 #[inline(always)]
2601 fn inline_size(_context: fidl::encoding::Context) -> usize {
2602 6
2603 }
2604 #[inline(always)]
2605 fn encode_is_copy() -> bool {
2606 true
2607 }
2608
2609 #[inline(always)]
2610 fn decode_is_copy() -> bool {
2611 true
2612 }
2613 }
2614
2615 unsafe impl<D: fidl::encoding::ResourceDialect>
2616 fidl::encoding::Encode<WlanFullmacImplSetMacAddressRequest, D>
2617 for &WlanFullmacImplSetMacAddressRequest
2618 {
2619 #[inline]
2620 unsafe fn encode(
2621 self,
2622 encoder: &mut fidl::encoding::Encoder<'_, D>,
2623 offset: usize,
2624 _depth: fidl::encoding::Depth,
2625 ) -> fidl::Result<()> {
2626 encoder.debug_check_bounds::<WlanFullmacImplSetMacAddressRequest>(offset);
2627 unsafe {
2628 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
2630 (buf_ptr as *mut WlanFullmacImplSetMacAddressRequest)
2631 .write_unaligned((self as *const WlanFullmacImplSetMacAddressRequest).read());
2632 }
2635 Ok(())
2636 }
2637 }
2638 unsafe impl<
2639 D: fidl::encoding::ResourceDialect,
2640 T0: fidl::encoding::Encode<fidl::encoding::Array<u8, 6>, D>,
2641 > fidl::encoding::Encode<WlanFullmacImplSetMacAddressRequest, D> for (T0,)
2642 {
2643 #[inline]
2644 unsafe fn encode(
2645 self,
2646 encoder: &mut fidl::encoding::Encoder<'_, D>,
2647 offset: usize,
2648 depth: fidl::encoding::Depth,
2649 ) -> fidl::Result<()> {
2650 encoder.debug_check_bounds::<WlanFullmacImplSetMacAddressRequest>(offset);
2651 self.0.encode(encoder, offset + 0, depth)?;
2655 Ok(())
2656 }
2657 }
2658
2659 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2660 for WlanFullmacImplSetMacAddressRequest
2661 {
2662 #[inline(always)]
2663 fn new_empty() -> Self {
2664 Self { mac_addr: fidl::new_empty!(fidl::encoding::Array<u8, 6>, D) }
2665 }
2666
2667 #[inline]
2668 unsafe fn decode(
2669 &mut self,
2670 decoder: &mut fidl::encoding::Decoder<'_, D>,
2671 offset: usize,
2672 _depth: fidl::encoding::Depth,
2673 ) -> fidl::Result<()> {
2674 decoder.debug_check_bounds::<Self>(offset);
2675 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
2676 unsafe {
2679 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 6);
2680 }
2681 Ok(())
2682 }
2683 }
2684
2685 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplGetIfaceHistogramStatsResponse {
2686 type Borrowed<'a> = &'a Self;
2687 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2688 value
2689 }
2690 }
2691
2692 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplGetIfaceHistogramStatsResponse {
2693 type Owned = Self;
2694
2695 #[inline(always)]
2696 fn inline_align(_context: fidl::encoding::Context) -> usize {
2697 8
2698 }
2699
2700 #[inline(always)]
2701 fn inline_size(_context: fidl::encoding::Context) -> usize {
2702 16
2703 }
2704 }
2705
2706 unsafe impl<D: fidl::encoding::ResourceDialect>
2707 fidl::encoding::Encode<WlanFullmacImplGetIfaceHistogramStatsResponse, D>
2708 for &WlanFullmacImplGetIfaceHistogramStatsResponse
2709 {
2710 #[inline]
2711 unsafe fn encode(
2712 self,
2713 encoder: &mut fidl::encoding::Encoder<'_, D>,
2714 offset: usize,
2715 _depth: fidl::encoding::Depth,
2716 ) -> fidl::Result<()> {
2717 encoder.debug_check_bounds::<WlanFullmacImplGetIfaceHistogramStatsResponse>(offset);
2718 fidl::encoding::Encode::<WlanFullmacImplGetIfaceHistogramStatsResponse, D>::encode(
2720 (
2721 <fidl_fuchsia_wlan_stats__common::IfaceHistogramStats as fidl::encoding::ValueTypeMarker>::borrow(&self.stats),
2722 ),
2723 encoder, offset, _depth
2724 )
2725 }
2726 }
2727 unsafe impl<
2728 D: fidl::encoding::ResourceDialect,
2729 T0: fidl::encoding::Encode<fidl_fuchsia_wlan_stats__common::IfaceHistogramStats, D>,
2730 > fidl::encoding::Encode<WlanFullmacImplGetIfaceHistogramStatsResponse, D> for (T0,)
2731 {
2732 #[inline]
2733 unsafe fn encode(
2734 self,
2735 encoder: &mut fidl::encoding::Encoder<'_, D>,
2736 offset: usize,
2737 depth: fidl::encoding::Depth,
2738 ) -> fidl::Result<()> {
2739 encoder.debug_check_bounds::<WlanFullmacImplGetIfaceHistogramStatsResponse>(offset);
2740 self.0.encode(encoder, offset + 0, depth)?;
2744 Ok(())
2745 }
2746 }
2747
2748 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2749 for WlanFullmacImplGetIfaceHistogramStatsResponse
2750 {
2751 #[inline(always)]
2752 fn new_empty() -> Self {
2753 Self {
2754 stats: fidl::new_empty!(fidl_fuchsia_wlan_stats__common::IfaceHistogramStats, D),
2755 }
2756 }
2757
2758 #[inline]
2759 unsafe fn decode(
2760 &mut self,
2761 decoder: &mut fidl::encoding::Decoder<'_, D>,
2762 offset: usize,
2763 _depth: fidl::encoding::Depth,
2764 ) -> fidl::Result<()> {
2765 decoder.debug_check_bounds::<Self>(offset);
2766 fidl::decode!(
2768 fidl_fuchsia_wlan_stats__common::IfaceHistogramStats,
2769 D,
2770 &mut self.stats,
2771 decoder,
2772 offset + 0,
2773 _depth
2774 )?;
2775 Ok(())
2776 }
2777 }
2778
2779 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplGetIfaceStatsResponse {
2780 type Borrowed<'a> = &'a Self;
2781 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2782 value
2783 }
2784 }
2785
2786 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplGetIfaceStatsResponse {
2787 type Owned = Self;
2788
2789 #[inline(always)]
2790 fn inline_align(_context: fidl::encoding::Context) -> usize {
2791 8
2792 }
2793
2794 #[inline(always)]
2795 fn inline_size(_context: fidl::encoding::Context) -> usize {
2796 16
2797 }
2798 }
2799
2800 unsafe impl<D: fidl::encoding::ResourceDialect>
2801 fidl::encoding::Encode<WlanFullmacImplGetIfaceStatsResponse, D>
2802 for &WlanFullmacImplGetIfaceStatsResponse
2803 {
2804 #[inline]
2805 unsafe fn encode(
2806 self,
2807 encoder: &mut fidl::encoding::Encoder<'_, D>,
2808 offset: usize,
2809 _depth: fidl::encoding::Depth,
2810 ) -> fidl::Result<()> {
2811 encoder.debug_check_bounds::<WlanFullmacImplGetIfaceStatsResponse>(offset);
2812 fidl::encoding::Encode::<WlanFullmacImplGetIfaceStatsResponse, D>::encode(
2814 (
2815 <fidl_fuchsia_wlan_stats__common::IfaceStats as fidl::encoding::ValueTypeMarker>::borrow(&self.stats),
2816 ),
2817 encoder, offset, _depth
2818 )
2819 }
2820 }
2821 unsafe impl<
2822 D: fidl::encoding::ResourceDialect,
2823 T0: fidl::encoding::Encode<fidl_fuchsia_wlan_stats__common::IfaceStats, D>,
2824 > fidl::encoding::Encode<WlanFullmacImplGetIfaceStatsResponse, D> for (T0,)
2825 {
2826 #[inline]
2827 unsafe fn encode(
2828 self,
2829 encoder: &mut fidl::encoding::Encoder<'_, D>,
2830 offset: usize,
2831 depth: fidl::encoding::Depth,
2832 ) -> fidl::Result<()> {
2833 encoder.debug_check_bounds::<WlanFullmacImplGetIfaceStatsResponse>(offset);
2834 self.0.encode(encoder, offset + 0, depth)?;
2838 Ok(())
2839 }
2840 }
2841
2842 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2843 for WlanFullmacImplGetIfaceStatsResponse
2844 {
2845 #[inline(always)]
2846 fn new_empty() -> Self {
2847 Self { stats: fidl::new_empty!(fidl_fuchsia_wlan_stats__common::IfaceStats, D) }
2848 }
2849
2850 #[inline]
2851 unsafe fn decode(
2852 &mut self,
2853 decoder: &mut fidl::encoding::Decoder<'_, D>,
2854 offset: usize,
2855 _depth: fidl::encoding::Depth,
2856 ) -> fidl::Result<()> {
2857 decoder.debug_check_bounds::<Self>(offset);
2858 fidl::decode!(
2860 fidl_fuchsia_wlan_stats__common::IfaceStats,
2861 D,
2862 &mut self.stats,
2863 decoder,
2864 offset + 0,
2865 _depth
2866 )?;
2867 Ok(())
2868 }
2869 }
2870
2871 impl fidl::encoding::ValueTypeMarker for WlanFullmacRssiStats {
2872 type Borrowed<'a> = &'a Self;
2873 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2874 value
2875 }
2876 }
2877
2878 unsafe impl fidl::encoding::TypeMarker for WlanFullmacRssiStats {
2879 type Owned = Self;
2880
2881 #[inline(always)]
2882 fn inline_align(_context: fidl::encoding::Context) -> usize {
2883 8
2884 }
2885
2886 #[inline(always)]
2887 fn inline_size(_context: fidl::encoding::Context) -> usize {
2888 16
2889 }
2890 }
2891
2892 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<WlanFullmacRssiStats, D>
2893 for &WlanFullmacRssiStats
2894 {
2895 #[inline]
2896 unsafe fn encode(
2897 self,
2898 encoder: &mut fidl::encoding::Encoder<'_, D>,
2899 offset: usize,
2900 _depth: fidl::encoding::Depth,
2901 ) -> fidl::Result<()> {
2902 encoder.debug_check_bounds::<WlanFullmacRssiStats>(offset);
2903 fidl::encoding::Encode::<WlanFullmacRssiStats, D>::encode(
2905 (
2906 <fidl::encoding::UnboundedVector<u64> as fidl::encoding::ValueTypeMarker>::borrow(&self.hist),
2907 ),
2908 encoder, offset, _depth
2909 )
2910 }
2911 }
2912 unsafe impl<
2913 D: fidl::encoding::ResourceDialect,
2914 T0: fidl::encoding::Encode<fidl::encoding::UnboundedVector<u64>, D>,
2915 > fidl::encoding::Encode<WlanFullmacRssiStats, D> for (T0,)
2916 {
2917 #[inline]
2918 unsafe fn encode(
2919 self,
2920 encoder: &mut fidl::encoding::Encoder<'_, D>,
2921 offset: usize,
2922 depth: fidl::encoding::Depth,
2923 ) -> fidl::Result<()> {
2924 encoder.debug_check_bounds::<WlanFullmacRssiStats>(offset);
2925 self.0.encode(encoder, offset + 0, depth)?;
2929 Ok(())
2930 }
2931 }
2932
2933 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for WlanFullmacRssiStats {
2934 #[inline(always)]
2935 fn new_empty() -> Self {
2936 Self { hist: fidl::new_empty!(fidl::encoding::UnboundedVector<u64>, D) }
2937 }
2938
2939 #[inline]
2940 unsafe fn decode(
2941 &mut self,
2942 decoder: &mut fidl::encoding::Decoder<'_, D>,
2943 offset: usize,
2944 _depth: fidl::encoding::Depth,
2945 ) -> fidl::Result<()> {
2946 decoder.debug_check_bounds::<Self>(offset);
2947 fidl::decode!(
2949 fidl::encoding::UnboundedVector<u64>,
2950 D,
2951 &mut self.hist,
2952 decoder,
2953 offset + 0,
2954 _depth
2955 )?;
2956 Ok(())
2957 }
2958 }
2959
2960 impl fidl::encoding::ValueTypeMarker for WlanFullmacSetKeysResp {
2961 type Borrowed<'a> = &'a Self;
2962 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2963 value
2964 }
2965 }
2966
2967 unsafe impl fidl::encoding::TypeMarker for WlanFullmacSetKeysResp {
2968 type Owned = Self;
2969
2970 #[inline(always)]
2971 fn inline_align(_context: fidl::encoding::Context) -> usize {
2972 8
2973 }
2974
2975 #[inline(always)]
2976 fn inline_size(_context: fidl::encoding::Context) -> usize {
2977 16
2978 }
2979 }
2980
2981 unsafe impl<D: fidl::encoding::ResourceDialect>
2982 fidl::encoding::Encode<WlanFullmacSetKeysResp, D> for &WlanFullmacSetKeysResp
2983 {
2984 #[inline]
2985 unsafe fn encode(
2986 self,
2987 encoder: &mut fidl::encoding::Encoder<'_, D>,
2988 offset: usize,
2989 _depth: fidl::encoding::Depth,
2990 ) -> fidl::Result<()> {
2991 encoder.debug_check_bounds::<WlanFullmacSetKeysResp>(offset);
2992 fidl::encoding::Encode::<WlanFullmacSetKeysResp, D>::encode(
2994 (<fidl::encoding::Vector<i32, 4> as fidl::encoding::ValueTypeMarker>::borrow(
2995 &self.statuslist,
2996 ),),
2997 encoder,
2998 offset,
2999 _depth,
3000 )
3001 }
3002 }
3003 unsafe impl<
3004 D: fidl::encoding::ResourceDialect,
3005 T0: fidl::encoding::Encode<fidl::encoding::Vector<i32, 4>, D>,
3006 > fidl::encoding::Encode<WlanFullmacSetKeysResp, D> for (T0,)
3007 {
3008 #[inline]
3009 unsafe fn encode(
3010 self,
3011 encoder: &mut fidl::encoding::Encoder<'_, D>,
3012 offset: usize,
3013 depth: fidl::encoding::Depth,
3014 ) -> fidl::Result<()> {
3015 encoder.debug_check_bounds::<WlanFullmacSetKeysResp>(offset);
3016 self.0.encode(encoder, offset + 0, depth)?;
3020 Ok(())
3021 }
3022 }
3023
3024 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
3025 for WlanFullmacSetKeysResp
3026 {
3027 #[inline(always)]
3028 fn new_empty() -> Self {
3029 Self { statuslist: fidl::new_empty!(fidl::encoding::Vector<i32, 4>, D) }
3030 }
3031
3032 #[inline]
3033 unsafe fn decode(
3034 &mut self,
3035 decoder: &mut fidl::encoding::Decoder<'_, D>,
3036 offset: usize,
3037 _depth: fidl::encoding::Depth,
3038 ) -> fidl::Result<()> {
3039 decoder.debug_check_bounds::<Self>(offset);
3040 fidl::decode!(fidl::encoding::Vector<i32, 4>, D, &mut self.statuslist, decoder, offset + 0, _depth)?;
3042 Ok(())
3043 }
3044 }
3045
3046 impl fidl::encoding::ValueTypeMarker for WlanFullmacSignalReportIndication {
3047 type Borrowed<'a> = &'a Self;
3048 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3049 value
3050 }
3051 }
3052
3053 unsafe impl fidl::encoding::TypeMarker for WlanFullmacSignalReportIndication {
3054 type Owned = Self;
3055
3056 #[inline(always)]
3057 fn inline_align(_context: fidl::encoding::Context) -> usize {
3058 1
3059 }
3060
3061 #[inline(always)]
3062 fn inline_size(_context: fidl::encoding::Context) -> usize {
3063 2
3064 }
3065 #[inline(always)]
3066 fn encode_is_copy() -> bool {
3067 true
3068 }
3069
3070 #[inline(always)]
3071 fn decode_is_copy() -> bool {
3072 true
3073 }
3074 }
3075
3076 unsafe impl<D: fidl::encoding::ResourceDialect>
3077 fidl::encoding::Encode<WlanFullmacSignalReportIndication, D>
3078 for &WlanFullmacSignalReportIndication
3079 {
3080 #[inline]
3081 unsafe fn encode(
3082 self,
3083 encoder: &mut fidl::encoding::Encoder<'_, D>,
3084 offset: usize,
3085 _depth: fidl::encoding::Depth,
3086 ) -> fidl::Result<()> {
3087 encoder.debug_check_bounds::<WlanFullmacSignalReportIndication>(offset);
3088 unsafe {
3089 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
3091 (buf_ptr as *mut WlanFullmacSignalReportIndication)
3092 .write_unaligned((self as *const WlanFullmacSignalReportIndication).read());
3093 }
3096 Ok(())
3097 }
3098 }
3099 unsafe impl<
3100 D: fidl::encoding::ResourceDialect,
3101 T0: fidl::encoding::Encode<i8, D>,
3102 T1: fidl::encoding::Encode<i8, D>,
3103 > fidl::encoding::Encode<WlanFullmacSignalReportIndication, D> for (T0, T1)
3104 {
3105 #[inline]
3106 unsafe fn encode(
3107 self,
3108 encoder: &mut fidl::encoding::Encoder<'_, D>,
3109 offset: usize,
3110 depth: fidl::encoding::Depth,
3111 ) -> fidl::Result<()> {
3112 encoder.debug_check_bounds::<WlanFullmacSignalReportIndication>(offset);
3113 self.0.encode(encoder, offset + 0, depth)?;
3117 self.1.encode(encoder, offset + 1, depth)?;
3118 Ok(())
3119 }
3120 }
3121
3122 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
3123 for WlanFullmacSignalReportIndication
3124 {
3125 #[inline(always)]
3126 fn new_empty() -> Self {
3127 Self { rssi_dbm: fidl::new_empty!(i8, D), snr_db: fidl::new_empty!(i8, D) }
3128 }
3129
3130 #[inline]
3131 unsafe fn decode(
3132 &mut self,
3133 decoder: &mut fidl::encoding::Decoder<'_, D>,
3134 offset: usize,
3135 _depth: fidl::encoding::Depth,
3136 ) -> fidl::Result<()> {
3137 decoder.debug_check_bounds::<Self>(offset);
3138 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
3139 unsafe {
3142 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 2);
3143 }
3144 Ok(())
3145 }
3146 }
3147
3148 impl BandCapability {
3149 #[inline(always)]
3150 fn max_ordinal_present(&self) -> u64 {
3151 if let Some(_) = self.operating_channels {
3152 return 5;
3153 }
3154 if let Some(_) = self.vht_caps {
3155 return 4;
3156 }
3157 if let Some(_) = self.ht_caps {
3158 return 3;
3159 }
3160 if let Some(_) = self.basic_rates {
3161 return 2;
3162 }
3163 if let Some(_) = self.band {
3164 return 1;
3165 }
3166 0
3167 }
3168 }
3169
3170 impl fidl::encoding::ValueTypeMarker for BandCapability {
3171 type Borrowed<'a> = &'a Self;
3172 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3173 value
3174 }
3175 }
3176
3177 unsafe impl fidl::encoding::TypeMarker for BandCapability {
3178 type Owned = Self;
3179
3180 #[inline(always)]
3181 fn inline_align(_context: fidl::encoding::Context) -> usize {
3182 8
3183 }
3184
3185 #[inline(always)]
3186 fn inline_size(_context: fidl::encoding::Context) -> usize {
3187 16
3188 }
3189 }
3190
3191 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<BandCapability, D>
3192 for &BandCapability
3193 {
3194 unsafe fn encode(
3195 self,
3196 encoder: &mut fidl::encoding::Encoder<'_, D>,
3197 offset: usize,
3198 mut depth: fidl::encoding::Depth,
3199 ) -> fidl::Result<()> {
3200 encoder.debug_check_bounds::<BandCapability>(offset);
3201 let max_ordinal: u64 = self.max_ordinal_present();
3203 encoder.write_num(max_ordinal, offset);
3204 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
3205 if max_ordinal == 0 {
3207 return Ok(());
3208 }
3209 depth.increment()?;
3210 let envelope_size = 8;
3211 let bytes_len = max_ordinal as usize * envelope_size;
3212 #[allow(unused_variables)]
3213 let offset = encoder.out_of_line_offset(bytes_len);
3214 let mut _prev_end_offset: usize = 0;
3215 if 1 > max_ordinal {
3216 return Ok(());
3217 }
3218
3219 let cur_offset: usize = (1 - 1) * envelope_size;
3222
3223 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3225
3226 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_ieee80211__common::WlanBand, D>(
3231 self.band.as_ref().map(<fidl_fuchsia_wlan_ieee80211__common::WlanBand as fidl::encoding::ValueTypeMarker>::borrow),
3232 encoder, offset + cur_offset, depth
3233 )?;
3234
3235 _prev_end_offset = cur_offset + envelope_size;
3236 if 2 > max_ordinal {
3237 return Ok(());
3238 }
3239
3240 let cur_offset: usize = (2 - 1) * envelope_size;
3243
3244 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3246
3247 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<u8, 12>, D>(
3252 self.basic_rates.as_ref().map(
3253 <fidl::encoding::Vector<u8, 12> as fidl::encoding::ValueTypeMarker>::borrow,
3254 ),
3255 encoder,
3256 offset + cur_offset,
3257 depth,
3258 )?;
3259
3260 _prev_end_offset = cur_offset + envelope_size;
3261 if 3 > max_ordinal {
3262 return Ok(());
3263 }
3264
3265 let cur_offset: usize = (3 - 1) * envelope_size;
3268
3269 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3271
3272 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_ieee80211__common::HtCapabilities, D>(
3277 self.ht_caps.as_ref().map(<fidl_fuchsia_wlan_ieee80211__common::HtCapabilities as fidl::encoding::ValueTypeMarker>::borrow),
3278 encoder, offset + cur_offset, depth
3279 )?;
3280
3281 _prev_end_offset = cur_offset + envelope_size;
3282 if 4 > max_ordinal {
3283 return Ok(());
3284 }
3285
3286 let cur_offset: usize = (4 - 1) * envelope_size;
3289
3290 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3292
3293 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_ieee80211__common::VhtCapabilities, D>(
3298 self.vht_caps.as_ref().map(<fidl_fuchsia_wlan_ieee80211__common::VhtCapabilities as fidl::encoding::ValueTypeMarker>::borrow),
3299 encoder, offset + cur_offset, depth
3300 )?;
3301
3302 _prev_end_offset = cur_offset + envelope_size;
3303 if 5 > max_ordinal {
3304 return Ok(());
3305 }
3306
3307 let cur_offset: usize = (5 - 1) * envelope_size;
3310
3311 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3313
3314 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<u8, 256>, D>(
3319 self.operating_channels.as_ref().map(
3320 <fidl::encoding::Vector<u8, 256> as fidl::encoding::ValueTypeMarker>::borrow,
3321 ),
3322 encoder,
3323 offset + cur_offset,
3324 depth,
3325 )?;
3326
3327 _prev_end_offset = cur_offset + envelope_size;
3328
3329 Ok(())
3330 }
3331 }
3332
3333 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for BandCapability {
3334 #[inline(always)]
3335 fn new_empty() -> Self {
3336 Self::default()
3337 }
3338
3339 unsafe fn decode(
3340 &mut self,
3341 decoder: &mut fidl::encoding::Decoder<'_, D>,
3342 offset: usize,
3343 mut depth: fidl::encoding::Depth,
3344 ) -> fidl::Result<()> {
3345 decoder.debug_check_bounds::<Self>(offset);
3346 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
3347 None => return Err(fidl::Error::NotNullable),
3348 Some(len) => len,
3349 };
3350 if len == 0 {
3352 return Ok(());
3353 };
3354 depth.increment()?;
3355 let envelope_size = 8;
3356 let bytes_len = len * envelope_size;
3357 let offset = decoder.out_of_line_offset(bytes_len)?;
3358 let mut _next_ordinal_to_read = 0;
3360 let mut next_offset = offset;
3361 let end_offset = offset + bytes_len;
3362 _next_ordinal_to_read += 1;
3363 if next_offset >= end_offset {
3364 return Ok(());
3365 }
3366
3367 while _next_ordinal_to_read < 1 {
3369 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3370 _next_ordinal_to_read += 1;
3371 next_offset += envelope_size;
3372 }
3373
3374 let next_out_of_line = decoder.next_out_of_line();
3375 let handles_before = decoder.remaining_handles();
3376 if let Some((inlined, num_bytes, num_handles)) =
3377 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3378 {
3379 let member_inline_size = <fidl_fuchsia_wlan_ieee80211__common::WlanBand as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3380 if inlined != (member_inline_size <= 4) {
3381 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3382 }
3383 let inner_offset;
3384 let mut inner_depth = depth.clone();
3385 if inlined {
3386 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3387 inner_offset = next_offset;
3388 } else {
3389 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3390 inner_depth.increment()?;
3391 }
3392 let val_ref = self.band.get_or_insert_with(|| {
3393 fidl::new_empty!(fidl_fuchsia_wlan_ieee80211__common::WlanBand, D)
3394 });
3395 fidl::decode!(
3396 fidl_fuchsia_wlan_ieee80211__common::WlanBand,
3397 D,
3398 val_ref,
3399 decoder,
3400 inner_offset,
3401 inner_depth
3402 )?;
3403 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3404 {
3405 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3406 }
3407 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3408 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3409 }
3410 }
3411
3412 next_offset += envelope_size;
3413 _next_ordinal_to_read += 1;
3414 if next_offset >= end_offset {
3415 return Ok(());
3416 }
3417
3418 while _next_ordinal_to_read < 2 {
3420 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3421 _next_ordinal_to_read += 1;
3422 next_offset += envelope_size;
3423 }
3424
3425 let next_out_of_line = decoder.next_out_of_line();
3426 let handles_before = decoder.remaining_handles();
3427 if let Some((inlined, num_bytes, num_handles)) =
3428 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3429 {
3430 let member_inline_size =
3431 <fidl::encoding::Vector<u8, 12> as fidl::encoding::TypeMarker>::inline_size(
3432 decoder.context,
3433 );
3434 if inlined != (member_inline_size <= 4) {
3435 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3436 }
3437 let inner_offset;
3438 let mut inner_depth = depth.clone();
3439 if inlined {
3440 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3441 inner_offset = next_offset;
3442 } else {
3443 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3444 inner_depth.increment()?;
3445 }
3446 let val_ref = self
3447 .basic_rates
3448 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<u8, 12>, D));
3449 fidl::decode!(fidl::encoding::Vector<u8, 12>, D, val_ref, decoder, inner_offset, inner_depth)?;
3450 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3451 {
3452 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3453 }
3454 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3455 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3456 }
3457 }
3458
3459 next_offset += envelope_size;
3460 _next_ordinal_to_read += 1;
3461 if next_offset >= end_offset {
3462 return Ok(());
3463 }
3464
3465 while _next_ordinal_to_read < 3 {
3467 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3468 _next_ordinal_to_read += 1;
3469 next_offset += envelope_size;
3470 }
3471
3472 let next_out_of_line = decoder.next_out_of_line();
3473 let handles_before = decoder.remaining_handles();
3474 if let Some((inlined, num_bytes, num_handles)) =
3475 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3476 {
3477 let member_inline_size = <fidl_fuchsia_wlan_ieee80211__common::HtCapabilities as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3478 if inlined != (member_inline_size <= 4) {
3479 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3480 }
3481 let inner_offset;
3482 let mut inner_depth = depth.clone();
3483 if inlined {
3484 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3485 inner_offset = next_offset;
3486 } else {
3487 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3488 inner_depth.increment()?;
3489 }
3490 let val_ref = self.ht_caps.get_or_insert_with(|| {
3491 fidl::new_empty!(fidl_fuchsia_wlan_ieee80211__common::HtCapabilities, D)
3492 });
3493 fidl::decode!(
3494 fidl_fuchsia_wlan_ieee80211__common::HtCapabilities,
3495 D,
3496 val_ref,
3497 decoder,
3498 inner_offset,
3499 inner_depth
3500 )?;
3501 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3502 {
3503 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3504 }
3505 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3506 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3507 }
3508 }
3509
3510 next_offset += envelope_size;
3511 _next_ordinal_to_read += 1;
3512 if next_offset >= end_offset {
3513 return Ok(());
3514 }
3515
3516 while _next_ordinal_to_read < 4 {
3518 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3519 _next_ordinal_to_read += 1;
3520 next_offset += envelope_size;
3521 }
3522
3523 let next_out_of_line = decoder.next_out_of_line();
3524 let handles_before = decoder.remaining_handles();
3525 if let Some((inlined, num_bytes, num_handles)) =
3526 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3527 {
3528 let member_inline_size = <fidl_fuchsia_wlan_ieee80211__common::VhtCapabilities as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3529 if inlined != (member_inline_size <= 4) {
3530 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3531 }
3532 let inner_offset;
3533 let mut inner_depth = depth.clone();
3534 if inlined {
3535 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3536 inner_offset = next_offset;
3537 } else {
3538 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3539 inner_depth.increment()?;
3540 }
3541 let val_ref = self.vht_caps.get_or_insert_with(|| {
3542 fidl::new_empty!(fidl_fuchsia_wlan_ieee80211__common::VhtCapabilities, D)
3543 });
3544 fidl::decode!(
3545 fidl_fuchsia_wlan_ieee80211__common::VhtCapabilities,
3546 D,
3547 val_ref,
3548 decoder,
3549 inner_offset,
3550 inner_depth
3551 )?;
3552 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3553 {
3554 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3555 }
3556 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3557 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3558 }
3559 }
3560
3561 next_offset += envelope_size;
3562 _next_ordinal_to_read += 1;
3563 if next_offset >= end_offset {
3564 return Ok(());
3565 }
3566
3567 while _next_ordinal_to_read < 5 {
3569 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3570 _next_ordinal_to_read += 1;
3571 next_offset += envelope_size;
3572 }
3573
3574 let next_out_of_line = decoder.next_out_of_line();
3575 let handles_before = decoder.remaining_handles();
3576 if let Some((inlined, num_bytes, num_handles)) =
3577 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3578 {
3579 let member_inline_size =
3580 <fidl::encoding::Vector<u8, 256> as fidl::encoding::TypeMarker>::inline_size(
3581 decoder.context,
3582 );
3583 if inlined != (member_inline_size <= 4) {
3584 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3585 }
3586 let inner_offset;
3587 let mut inner_depth = depth.clone();
3588 if inlined {
3589 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3590 inner_offset = next_offset;
3591 } else {
3592 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3593 inner_depth.increment()?;
3594 }
3595 let val_ref = self
3596 .operating_channels
3597 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<u8, 256>, D));
3598 fidl::decode!(fidl::encoding::Vector<u8, 256>, D, val_ref, decoder, inner_offset, inner_depth)?;
3599 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3600 {
3601 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3602 }
3603 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3604 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3605 }
3606 }
3607
3608 next_offset += envelope_size;
3609
3610 while next_offset < end_offset {
3612 _next_ordinal_to_read += 1;
3613 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3614 next_offset += envelope_size;
3615 }
3616
3617 Ok(())
3618 }
3619 }
3620
3621 impl SaeFrame {
3622 #[inline(always)]
3623 fn max_ordinal_present(&self) -> u64 {
3624 if let Some(_) = self.sae_fields {
3625 return 4;
3626 }
3627 if let Some(_) = self.seq_num {
3628 return 3;
3629 }
3630 if let Some(_) = self.status_code {
3631 return 2;
3632 }
3633 if let Some(_) = self.peer_sta_address {
3634 return 1;
3635 }
3636 0
3637 }
3638 }
3639
3640 impl fidl::encoding::ValueTypeMarker for SaeFrame {
3641 type Borrowed<'a> = &'a Self;
3642 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3643 value
3644 }
3645 }
3646
3647 unsafe impl fidl::encoding::TypeMarker for SaeFrame {
3648 type Owned = Self;
3649
3650 #[inline(always)]
3651 fn inline_align(_context: fidl::encoding::Context) -> usize {
3652 8
3653 }
3654
3655 #[inline(always)]
3656 fn inline_size(_context: fidl::encoding::Context) -> usize {
3657 16
3658 }
3659 }
3660
3661 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<SaeFrame, D> for &SaeFrame {
3662 unsafe fn encode(
3663 self,
3664 encoder: &mut fidl::encoding::Encoder<'_, D>,
3665 offset: usize,
3666 mut depth: fidl::encoding::Depth,
3667 ) -> fidl::Result<()> {
3668 encoder.debug_check_bounds::<SaeFrame>(offset);
3669 let max_ordinal: u64 = self.max_ordinal_present();
3671 encoder.write_num(max_ordinal, offset);
3672 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
3673 if max_ordinal == 0 {
3675 return Ok(());
3676 }
3677 depth.increment()?;
3678 let envelope_size = 8;
3679 let bytes_len = max_ordinal as usize * envelope_size;
3680 #[allow(unused_variables)]
3681 let offset = encoder.out_of_line_offset(bytes_len);
3682 let mut _prev_end_offset: usize = 0;
3683 if 1 > max_ordinal {
3684 return Ok(());
3685 }
3686
3687 let cur_offset: usize = (1 - 1) * envelope_size;
3690
3691 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3693
3694 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
3699 self.peer_sta_address
3700 .as_ref()
3701 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
3702 encoder,
3703 offset + cur_offset,
3704 depth,
3705 )?;
3706
3707 _prev_end_offset = cur_offset + envelope_size;
3708 if 2 > max_ordinal {
3709 return Ok(());
3710 }
3711
3712 let cur_offset: usize = (2 - 1) * envelope_size;
3715
3716 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3718
3719 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_ieee80211__common::StatusCode, D>(
3724 self.status_code.as_ref().map(<fidl_fuchsia_wlan_ieee80211__common::StatusCode as fidl::encoding::ValueTypeMarker>::borrow),
3725 encoder, offset + cur_offset, depth
3726 )?;
3727
3728 _prev_end_offset = cur_offset + envelope_size;
3729 if 3 > max_ordinal {
3730 return Ok(());
3731 }
3732
3733 let cur_offset: usize = (3 - 1) * envelope_size;
3736
3737 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3739
3740 fidl::encoding::encode_in_envelope_optional::<u16, D>(
3745 self.seq_num.as_ref().map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
3746 encoder,
3747 offset + cur_offset,
3748 depth,
3749 )?;
3750
3751 _prev_end_offset = cur_offset + envelope_size;
3752 if 4 > max_ordinal {
3753 return Ok(());
3754 }
3755
3756 let cur_offset: usize = (4 - 1) * envelope_size;
3759
3760 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3762
3763 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<u8>, D>(
3768 self.sae_fields.as_ref().map(<fidl::encoding::UnboundedVector<u8> as fidl::encoding::ValueTypeMarker>::borrow),
3769 encoder, offset + cur_offset, depth
3770 )?;
3771
3772 _prev_end_offset = cur_offset + envelope_size;
3773
3774 Ok(())
3775 }
3776 }
3777
3778 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for SaeFrame {
3779 #[inline(always)]
3780 fn new_empty() -> Self {
3781 Self::default()
3782 }
3783
3784 unsafe fn decode(
3785 &mut self,
3786 decoder: &mut fidl::encoding::Decoder<'_, D>,
3787 offset: usize,
3788 mut depth: fidl::encoding::Depth,
3789 ) -> fidl::Result<()> {
3790 decoder.debug_check_bounds::<Self>(offset);
3791 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
3792 None => return Err(fidl::Error::NotNullable),
3793 Some(len) => len,
3794 };
3795 if len == 0 {
3797 return Ok(());
3798 };
3799 depth.increment()?;
3800 let envelope_size = 8;
3801 let bytes_len = len * envelope_size;
3802 let offset = decoder.out_of_line_offset(bytes_len)?;
3803 let mut _next_ordinal_to_read = 0;
3805 let mut next_offset = offset;
3806 let end_offset = offset + bytes_len;
3807 _next_ordinal_to_read += 1;
3808 if next_offset >= end_offset {
3809 return Ok(());
3810 }
3811
3812 while _next_ordinal_to_read < 1 {
3814 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3815 _next_ordinal_to_read += 1;
3816 next_offset += envelope_size;
3817 }
3818
3819 let next_out_of_line = decoder.next_out_of_line();
3820 let handles_before = decoder.remaining_handles();
3821 if let Some((inlined, num_bytes, num_handles)) =
3822 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3823 {
3824 let member_inline_size =
3825 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
3826 decoder.context,
3827 );
3828 if inlined != (member_inline_size <= 4) {
3829 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3830 }
3831 let inner_offset;
3832 let mut inner_depth = depth.clone();
3833 if inlined {
3834 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3835 inner_offset = next_offset;
3836 } else {
3837 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3838 inner_depth.increment()?;
3839 }
3840 let val_ref = self
3841 .peer_sta_address
3842 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
3843 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
3844 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3845 {
3846 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3847 }
3848 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3849 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3850 }
3851 }
3852
3853 next_offset += envelope_size;
3854 _next_ordinal_to_read += 1;
3855 if next_offset >= end_offset {
3856 return Ok(());
3857 }
3858
3859 while _next_ordinal_to_read < 2 {
3861 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3862 _next_ordinal_to_read += 1;
3863 next_offset += envelope_size;
3864 }
3865
3866 let next_out_of_line = decoder.next_out_of_line();
3867 let handles_before = decoder.remaining_handles();
3868 if let Some((inlined, num_bytes, num_handles)) =
3869 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3870 {
3871 let member_inline_size = <fidl_fuchsia_wlan_ieee80211__common::StatusCode as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3872 if inlined != (member_inline_size <= 4) {
3873 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3874 }
3875 let inner_offset;
3876 let mut inner_depth = depth.clone();
3877 if inlined {
3878 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3879 inner_offset = next_offset;
3880 } else {
3881 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3882 inner_depth.increment()?;
3883 }
3884 let val_ref = self.status_code.get_or_insert_with(|| {
3885 fidl::new_empty!(fidl_fuchsia_wlan_ieee80211__common::StatusCode, D)
3886 });
3887 fidl::decode!(
3888 fidl_fuchsia_wlan_ieee80211__common::StatusCode,
3889 D,
3890 val_ref,
3891 decoder,
3892 inner_offset,
3893 inner_depth
3894 )?;
3895 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3896 {
3897 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3898 }
3899 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3900 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3901 }
3902 }
3903
3904 next_offset += envelope_size;
3905 _next_ordinal_to_read += 1;
3906 if next_offset >= end_offset {
3907 return Ok(());
3908 }
3909
3910 while _next_ordinal_to_read < 3 {
3912 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3913 _next_ordinal_to_read += 1;
3914 next_offset += envelope_size;
3915 }
3916
3917 let next_out_of_line = decoder.next_out_of_line();
3918 let handles_before = decoder.remaining_handles();
3919 if let Some((inlined, num_bytes, num_handles)) =
3920 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3921 {
3922 let member_inline_size =
3923 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3924 if inlined != (member_inline_size <= 4) {
3925 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3926 }
3927 let inner_offset;
3928 let mut inner_depth = depth.clone();
3929 if inlined {
3930 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3931 inner_offset = next_offset;
3932 } else {
3933 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3934 inner_depth.increment()?;
3935 }
3936 let val_ref = self.seq_num.get_or_insert_with(|| fidl::new_empty!(u16, D));
3937 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
3938 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3939 {
3940 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3941 }
3942 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3943 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3944 }
3945 }
3946
3947 next_offset += envelope_size;
3948 _next_ordinal_to_read += 1;
3949 if next_offset >= end_offset {
3950 return Ok(());
3951 }
3952
3953 while _next_ordinal_to_read < 4 {
3955 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3956 _next_ordinal_to_read += 1;
3957 next_offset += envelope_size;
3958 }
3959
3960 let next_out_of_line = decoder.next_out_of_line();
3961 let handles_before = decoder.remaining_handles();
3962 if let Some((inlined, num_bytes, num_handles)) =
3963 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3964 {
3965 let member_inline_size = <fidl::encoding::UnboundedVector<u8> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3966 if inlined != (member_inline_size <= 4) {
3967 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3968 }
3969 let inner_offset;
3970 let mut inner_depth = depth.clone();
3971 if inlined {
3972 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3973 inner_offset = next_offset;
3974 } else {
3975 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3976 inner_depth.increment()?;
3977 }
3978 let val_ref = self.sae_fields.get_or_insert_with(|| {
3979 fidl::new_empty!(fidl::encoding::UnboundedVector<u8>, D)
3980 });
3981 fidl::decode!(
3982 fidl::encoding::UnboundedVector<u8>,
3983 D,
3984 val_ref,
3985 decoder,
3986 inner_offset,
3987 inner_depth
3988 )?;
3989 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3990 {
3991 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3992 }
3993 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3994 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3995 }
3996 }
3997
3998 next_offset += envelope_size;
3999
4000 while next_offset < end_offset {
4002 _next_ordinal_to_read += 1;
4003 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4004 next_offset += envelope_size;
4005 }
4006
4007 Ok(())
4008 }
4009 }
4010
4011 impl WlanFullmacImplAssocRespRequest {
4012 #[inline(always)]
4013 fn max_ordinal_present(&self) -> u64 {
4014 if let Some(_) = self.association_id {
4015 return 3;
4016 }
4017 if let Some(_) = self.result_code {
4018 return 2;
4019 }
4020 if let Some(_) = self.peer_sta_address {
4021 return 1;
4022 }
4023 0
4024 }
4025 }
4026
4027 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplAssocRespRequest {
4028 type Borrowed<'a> = &'a Self;
4029 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4030 value
4031 }
4032 }
4033
4034 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplAssocRespRequest {
4035 type Owned = Self;
4036
4037 #[inline(always)]
4038 fn inline_align(_context: fidl::encoding::Context) -> usize {
4039 8
4040 }
4041
4042 #[inline(always)]
4043 fn inline_size(_context: fidl::encoding::Context) -> usize {
4044 16
4045 }
4046 }
4047
4048 unsafe impl<D: fidl::encoding::ResourceDialect>
4049 fidl::encoding::Encode<WlanFullmacImplAssocRespRequest, D>
4050 for &WlanFullmacImplAssocRespRequest
4051 {
4052 unsafe fn encode(
4053 self,
4054 encoder: &mut fidl::encoding::Encoder<'_, D>,
4055 offset: usize,
4056 mut depth: fidl::encoding::Depth,
4057 ) -> fidl::Result<()> {
4058 encoder.debug_check_bounds::<WlanFullmacImplAssocRespRequest>(offset);
4059 let max_ordinal: u64 = self.max_ordinal_present();
4061 encoder.write_num(max_ordinal, offset);
4062 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
4063 if max_ordinal == 0 {
4065 return Ok(());
4066 }
4067 depth.increment()?;
4068 let envelope_size = 8;
4069 let bytes_len = max_ordinal as usize * envelope_size;
4070 #[allow(unused_variables)]
4071 let offset = encoder.out_of_line_offset(bytes_len);
4072 let mut _prev_end_offset: usize = 0;
4073 if 1 > max_ordinal {
4074 return Ok(());
4075 }
4076
4077 let cur_offset: usize = (1 - 1) * envelope_size;
4080
4081 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4083
4084 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
4089 self.peer_sta_address
4090 .as_ref()
4091 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
4092 encoder,
4093 offset + cur_offset,
4094 depth,
4095 )?;
4096
4097 _prev_end_offset = cur_offset + envelope_size;
4098 if 2 > max_ordinal {
4099 return Ok(());
4100 }
4101
4102 let cur_offset: usize = (2 - 1) * envelope_size;
4105
4106 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4108
4109 fidl::encoding::encode_in_envelope_optional::<WlanAssocResult, D>(
4114 self.result_code
4115 .as_ref()
4116 .map(<WlanAssocResult as fidl::encoding::ValueTypeMarker>::borrow),
4117 encoder,
4118 offset + cur_offset,
4119 depth,
4120 )?;
4121
4122 _prev_end_offset = cur_offset + envelope_size;
4123 if 3 > max_ordinal {
4124 return Ok(());
4125 }
4126
4127 let cur_offset: usize = (3 - 1) * envelope_size;
4130
4131 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4133
4134 fidl::encoding::encode_in_envelope_optional::<u16, D>(
4139 self.association_id.as_ref().map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
4140 encoder,
4141 offset + cur_offset,
4142 depth,
4143 )?;
4144
4145 _prev_end_offset = cur_offset + envelope_size;
4146
4147 Ok(())
4148 }
4149 }
4150
4151 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
4152 for WlanFullmacImplAssocRespRequest
4153 {
4154 #[inline(always)]
4155 fn new_empty() -> Self {
4156 Self::default()
4157 }
4158
4159 unsafe fn decode(
4160 &mut self,
4161 decoder: &mut fidl::encoding::Decoder<'_, D>,
4162 offset: usize,
4163 mut depth: fidl::encoding::Depth,
4164 ) -> fidl::Result<()> {
4165 decoder.debug_check_bounds::<Self>(offset);
4166 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
4167 None => return Err(fidl::Error::NotNullable),
4168 Some(len) => len,
4169 };
4170 if len == 0 {
4172 return Ok(());
4173 };
4174 depth.increment()?;
4175 let envelope_size = 8;
4176 let bytes_len = len * envelope_size;
4177 let offset = decoder.out_of_line_offset(bytes_len)?;
4178 let mut _next_ordinal_to_read = 0;
4180 let mut next_offset = offset;
4181 let end_offset = offset + bytes_len;
4182 _next_ordinal_to_read += 1;
4183 if next_offset >= end_offset {
4184 return Ok(());
4185 }
4186
4187 while _next_ordinal_to_read < 1 {
4189 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4190 _next_ordinal_to_read += 1;
4191 next_offset += envelope_size;
4192 }
4193
4194 let next_out_of_line = decoder.next_out_of_line();
4195 let handles_before = decoder.remaining_handles();
4196 if let Some((inlined, num_bytes, num_handles)) =
4197 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4198 {
4199 let member_inline_size =
4200 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
4201 decoder.context,
4202 );
4203 if inlined != (member_inline_size <= 4) {
4204 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4205 }
4206 let inner_offset;
4207 let mut inner_depth = depth.clone();
4208 if inlined {
4209 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4210 inner_offset = next_offset;
4211 } else {
4212 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4213 inner_depth.increment()?;
4214 }
4215 let val_ref = self
4216 .peer_sta_address
4217 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
4218 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
4219 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4220 {
4221 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4222 }
4223 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4224 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4225 }
4226 }
4227
4228 next_offset += envelope_size;
4229 _next_ordinal_to_read += 1;
4230 if next_offset >= end_offset {
4231 return Ok(());
4232 }
4233
4234 while _next_ordinal_to_read < 2 {
4236 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4237 _next_ordinal_to_read += 1;
4238 next_offset += envelope_size;
4239 }
4240
4241 let next_out_of_line = decoder.next_out_of_line();
4242 let handles_before = decoder.remaining_handles();
4243 if let Some((inlined, num_bytes, num_handles)) =
4244 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4245 {
4246 let member_inline_size =
4247 <WlanAssocResult as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4248 if inlined != (member_inline_size <= 4) {
4249 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4250 }
4251 let inner_offset;
4252 let mut inner_depth = depth.clone();
4253 if inlined {
4254 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4255 inner_offset = next_offset;
4256 } else {
4257 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4258 inner_depth.increment()?;
4259 }
4260 let val_ref =
4261 self.result_code.get_or_insert_with(|| fidl::new_empty!(WlanAssocResult, D));
4262 fidl::decode!(WlanAssocResult, D, val_ref, decoder, inner_offset, inner_depth)?;
4263 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4264 {
4265 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4266 }
4267 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4268 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4269 }
4270 }
4271
4272 next_offset += envelope_size;
4273 _next_ordinal_to_read += 1;
4274 if next_offset >= end_offset {
4275 return Ok(());
4276 }
4277
4278 while _next_ordinal_to_read < 3 {
4280 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4281 _next_ordinal_to_read += 1;
4282 next_offset += envelope_size;
4283 }
4284
4285 let next_out_of_line = decoder.next_out_of_line();
4286 let handles_before = decoder.remaining_handles();
4287 if let Some((inlined, num_bytes, num_handles)) =
4288 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4289 {
4290 let member_inline_size =
4291 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4292 if inlined != (member_inline_size <= 4) {
4293 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4294 }
4295 let inner_offset;
4296 let mut inner_depth = depth.clone();
4297 if inlined {
4298 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4299 inner_offset = next_offset;
4300 } else {
4301 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4302 inner_depth.increment()?;
4303 }
4304 let val_ref = self.association_id.get_or_insert_with(|| fidl::new_empty!(u16, D));
4305 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
4306 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4307 {
4308 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4309 }
4310 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4311 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4312 }
4313 }
4314
4315 next_offset += envelope_size;
4316
4317 while next_offset < end_offset {
4319 _next_ordinal_to_read += 1;
4320 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4321 next_offset += envelope_size;
4322 }
4323
4324 Ok(())
4325 }
4326 }
4327
4328 impl WlanFullmacImplAuthRespRequest {
4329 #[inline(always)]
4330 fn max_ordinal_present(&self) -> u64 {
4331 if let Some(_) = self.result_code {
4332 return 2;
4333 }
4334 if let Some(_) = self.peer_sta_address {
4335 return 1;
4336 }
4337 0
4338 }
4339 }
4340
4341 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplAuthRespRequest {
4342 type Borrowed<'a> = &'a Self;
4343 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4344 value
4345 }
4346 }
4347
4348 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplAuthRespRequest {
4349 type Owned = Self;
4350
4351 #[inline(always)]
4352 fn inline_align(_context: fidl::encoding::Context) -> usize {
4353 8
4354 }
4355
4356 #[inline(always)]
4357 fn inline_size(_context: fidl::encoding::Context) -> usize {
4358 16
4359 }
4360 }
4361
4362 unsafe impl<D: fidl::encoding::ResourceDialect>
4363 fidl::encoding::Encode<WlanFullmacImplAuthRespRequest, D>
4364 for &WlanFullmacImplAuthRespRequest
4365 {
4366 unsafe fn encode(
4367 self,
4368 encoder: &mut fidl::encoding::Encoder<'_, D>,
4369 offset: usize,
4370 mut depth: fidl::encoding::Depth,
4371 ) -> fidl::Result<()> {
4372 encoder.debug_check_bounds::<WlanFullmacImplAuthRespRequest>(offset);
4373 let max_ordinal: u64 = self.max_ordinal_present();
4375 encoder.write_num(max_ordinal, offset);
4376 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
4377 if max_ordinal == 0 {
4379 return Ok(());
4380 }
4381 depth.increment()?;
4382 let envelope_size = 8;
4383 let bytes_len = max_ordinal as usize * envelope_size;
4384 #[allow(unused_variables)]
4385 let offset = encoder.out_of_line_offset(bytes_len);
4386 let mut _prev_end_offset: usize = 0;
4387 if 1 > max_ordinal {
4388 return Ok(());
4389 }
4390
4391 let cur_offset: usize = (1 - 1) * envelope_size;
4394
4395 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4397
4398 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
4403 self.peer_sta_address
4404 .as_ref()
4405 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
4406 encoder,
4407 offset + cur_offset,
4408 depth,
4409 )?;
4410
4411 _prev_end_offset = cur_offset + envelope_size;
4412 if 2 > max_ordinal {
4413 return Ok(());
4414 }
4415
4416 let cur_offset: usize = (2 - 1) * envelope_size;
4419
4420 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4422
4423 fidl::encoding::encode_in_envelope_optional::<WlanAuthResult, D>(
4428 self.result_code
4429 .as_ref()
4430 .map(<WlanAuthResult as fidl::encoding::ValueTypeMarker>::borrow),
4431 encoder,
4432 offset + cur_offset,
4433 depth,
4434 )?;
4435
4436 _prev_end_offset = cur_offset + envelope_size;
4437
4438 Ok(())
4439 }
4440 }
4441
4442 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
4443 for WlanFullmacImplAuthRespRequest
4444 {
4445 #[inline(always)]
4446 fn new_empty() -> Self {
4447 Self::default()
4448 }
4449
4450 unsafe fn decode(
4451 &mut self,
4452 decoder: &mut fidl::encoding::Decoder<'_, D>,
4453 offset: usize,
4454 mut depth: fidl::encoding::Depth,
4455 ) -> fidl::Result<()> {
4456 decoder.debug_check_bounds::<Self>(offset);
4457 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
4458 None => return Err(fidl::Error::NotNullable),
4459 Some(len) => len,
4460 };
4461 if len == 0 {
4463 return Ok(());
4464 };
4465 depth.increment()?;
4466 let envelope_size = 8;
4467 let bytes_len = len * envelope_size;
4468 let offset = decoder.out_of_line_offset(bytes_len)?;
4469 let mut _next_ordinal_to_read = 0;
4471 let mut next_offset = offset;
4472 let end_offset = offset + bytes_len;
4473 _next_ordinal_to_read += 1;
4474 if next_offset >= end_offset {
4475 return Ok(());
4476 }
4477
4478 while _next_ordinal_to_read < 1 {
4480 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4481 _next_ordinal_to_read += 1;
4482 next_offset += envelope_size;
4483 }
4484
4485 let next_out_of_line = decoder.next_out_of_line();
4486 let handles_before = decoder.remaining_handles();
4487 if let Some((inlined, num_bytes, num_handles)) =
4488 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4489 {
4490 let member_inline_size =
4491 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
4492 decoder.context,
4493 );
4494 if inlined != (member_inline_size <= 4) {
4495 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4496 }
4497 let inner_offset;
4498 let mut inner_depth = depth.clone();
4499 if inlined {
4500 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4501 inner_offset = next_offset;
4502 } else {
4503 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4504 inner_depth.increment()?;
4505 }
4506 let val_ref = self
4507 .peer_sta_address
4508 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
4509 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
4510 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4511 {
4512 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4513 }
4514 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4515 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4516 }
4517 }
4518
4519 next_offset += envelope_size;
4520 _next_ordinal_to_read += 1;
4521 if next_offset >= end_offset {
4522 return Ok(());
4523 }
4524
4525 while _next_ordinal_to_read < 2 {
4527 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4528 _next_ordinal_to_read += 1;
4529 next_offset += envelope_size;
4530 }
4531
4532 let next_out_of_line = decoder.next_out_of_line();
4533 let handles_before = decoder.remaining_handles();
4534 if let Some((inlined, num_bytes, num_handles)) =
4535 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4536 {
4537 let member_inline_size =
4538 <WlanAuthResult as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4539 if inlined != (member_inline_size <= 4) {
4540 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4541 }
4542 let inner_offset;
4543 let mut inner_depth = depth.clone();
4544 if inlined {
4545 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4546 inner_offset = next_offset;
4547 } else {
4548 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4549 inner_depth.increment()?;
4550 }
4551 let val_ref =
4552 self.result_code.get_or_insert_with(|| fidl::new_empty!(WlanAuthResult, D));
4553 fidl::decode!(WlanAuthResult, D, val_ref, decoder, inner_offset, inner_depth)?;
4554 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4555 {
4556 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4557 }
4558 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4559 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4560 }
4561 }
4562
4563 next_offset += envelope_size;
4564
4565 while next_offset < end_offset {
4567 _next_ordinal_to_read += 1;
4568 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4569 next_offset += envelope_size;
4570 }
4571
4572 Ok(())
4573 }
4574 }
4575
4576 impl WlanFullmacImplConnectRequest {
4577 #[inline(always)]
4578 fn max_ordinal_present(&self) -> u64 {
4579 if let Some(_) = self.owe_public_key {
4580 return 8;
4581 }
4582 if let Some(_) = self.wep_key_desc {
4583 return 7;
4584 }
4585 if let Some(_) = self.security_ie {
4586 return 6;
4587 }
4588 if let Some(_) = self.wep_key {
4589 return 5;
4590 }
4591 if let Some(_) = self.sae_password {
4592 return 4;
4593 }
4594 if let Some(_) = self.auth_type {
4595 return 3;
4596 }
4597 if let Some(_) = self.connect_failure_timeout {
4598 return 2;
4599 }
4600 if let Some(_) = self.selected_bss {
4601 return 1;
4602 }
4603 0
4604 }
4605 }
4606
4607 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplConnectRequest {
4608 type Borrowed<'a> = &'a Self;
4609 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4610 value
4611 }
4612 }
4613
4614 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplConnectRequest {
4615 type Owned = Self;
4616
4617 #[inline(always)]
4618 fn inline_align(_context: fidl::encoding::Context) -> usize {
4619 8
4620 }
4621
4622 #[inline(always)]
4623 fn inline_size(_context: fidl::encoding::Context) -> usize {
4624 16
4625 }
4626 }
4627
4628 unsafe impl<D: fidl::encoding::ResourceDialect>
4629 fidl::encoding::Encode<WlanFullmacImplConnectRequest, D>
4630 for &WlanFullmacImplConnectRequest
4631 {
4632 unsafe fn encode(
4633 self,
4634 encoder: &mut fidl::encoding::Encoder<'_, D>,
4635 offset: usize,
4636 mut depth: fidl::encoding::Depth,
4637 ) -> fidl::Result<()> {
4638 encoder.debug_check_bounds::<WlanFullmacImplConnectRequest>(offset);
4639 let max_ordinal: u64 = self.max_ordinal_present();
4641 encoder.write_num(max_ordinal, offset);
4642 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
4643 if max_ordinal == 0 {
4645 return Ok(());
4646 }
4647 depth.increment()?;
4648 let envelope_size = 8;
4649 let bytes_len = max_ordinal as usize * envelope_size;
4650 #[allow(unused_variables)]
4651 let offset = encoder.out_of_line_offset(bytes_len);
4652 let mut _prev_end_offset: usize = 0;
4653 if 1 > max_ordinal {
4654 return Ok(());
4655 }
4656
4657 let cur_offset: usize = (1 - 1) * envelope_size;
4660
4661 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4663
4664 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_ieee80211__common::BssDescription, D>(
4669 self.selected_bss.as_ref().map(<fidl_fuchsia_wlan_ieee80211__common::BssDescription as fidl::encoding::ValueTypeMarker>::borrow),
4670 encoder, offset + cur_offset, depth
4671 )?;
4672
4673 _prev_end_offset = cur_offset + envelope_size;
4674 if 2 > max_ordinal {
4675 return Ok(());
4676 }
4677
4678 let cur_offset: usize = (2 - 1) * envelope_size;
4681
4682 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4684
4685 fidl::encoding::encode_in_envelope_optional::<u32, D>(
4690 self.connect_failure_timeout
4691 .as_ref()
4692 .map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
4693 encoder,
4694 offset + cur_offset,
4695 depth,
4696 )?;
4697
4698 _prev_end_offset = cur_offset + envelope_size;
4699 if 3 > max_ordinal {
4700 return Ok(());
4701 }
4702
4703 let cur_offset: usize = (3 - 1) * envelope_size;
4706
4707 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4709
4710 fidl::encoding::encode_in_envelope_optional::<WlanAuthType, D>(
4715 self.auth_type
4716 .as_ref()
4717 .map(<WlanAuthType as fidl::encoding::ValueTypeMarker>::borrow),
4718 encoder,
4719 offset + cur_offset,
4720 depth,
4721 )?;
4722
4723 _prev_end_offset = cur_offset + envelope_size;
4724 if 4 > max_ordinal {
4725 return Ok(());
4726 }
4727
4728 let cur_offset: usize = (4 - 1) * envelope_size;
4731
4732 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4734
4735 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<u8>, D>(
4740 self.sae_password.as_ref().map(<fidl::encoding::UnboundedVector<u8> as fidl::encoding::ValueTypeMarker>::borrow),
4741 encoder, offset + cur_offset, depth
4742 )?;
4743
4744 _prev_end_offset = cur_offset + envelope_size;
4745 if 5 > max_ordinal {
4746 return Ok(());
4747 }
4748
4749 let cur_offset: usize = (5 - 1) * envelope_size;
4752
4753 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4755
4756 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_driver__common::WlanKeyConfig, D>(
4761 self.wep_key.as_ref().map(<fidl_fuchsia_wlan_driver__common::WlanKeyConfig as fidl::encoding::ValueTypeMarker>::borrow),
4762 encoder, offset + cur_offset, depth
4763 )?;
4764
4765 _prev_end_offset = cur_offset + envelope_size;
4766 if 6 > max_ordinal {
4767 return Ok(());
4768 }
4769
4770 let cur_offset: usize = (6 - 1) * envelope_size;
4773
4774 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4776
4777 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<u8, 257>, D>(
4782 self.security_ie.as_ref().map(
4783 <fidl::encoding::Vector<u8, 257> as fidl::encoding::ValueTypeMarker>::borrow,
4784 ),
4785 encoder,
4786 offset + cur_offset,
4787 depth,
4788 )?;
4789
4790 _prev_end_offset = cur_offset + envelope_size;
4791 if 7 > max_ordinal {
4792 return Ok(());
4793 }
4794
4795 let cur_offset: usize = (7 - 1) * envelope_size;
4798
4799 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4801
4802 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_ieee80211__common::SetKeyDescriptor, D>(
4807 self.wep_key_desc.as_ref().map(<fidl_fuchsia_wlan_ieee80211__common::SetKeyDescriptor as fidl::encoding::ValueTypeMarker>::borrow),
4808 encoder, offset + cur_offset, depth
4809 )?;
4810
4811 _prev_end_offset = cur_offset + envelope_size;
4812 if 8 > max_ordinal {
4813 return Ok(());
4814 }
4815
4816 let cur_offset: usize = (8 - 1) * envelope_size;
4819
4820 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4822
4823 fidl::encoding::encode_in_envelope_optional::<WlanFullmacOwePublicKey, D>(
4828 self.owe_public_key
4829 .as_ref()
4830 .map(<WlanFullmacOwePublicKey as fidl::encoding::ValueTypeMarker>::borrow),
4831 encoder,
4832 offset + cur_offset,
4833 depth,
4834 )?;
4835
4836 _prev_end_offset = cur_offset + envelope_size;
4837
4838 Ok(())
4839 }
4840 }
4841
4842 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
4843 for WlanFullmacImplConnectRequest
4844 {
4845 #[inline(always)]
4846 fn new_empty() -> Self {
4847 Self::default()
4848 }
4849
4850 unsafe fn decode(
4851 &mut self,
4852 decoder: &mut fidl::encoding::Decoder<'_, D>,
4853 offset: usize,
4854 mut depth: fidl::encoding::Depth,
4855 ) -> fidl::Result<()> {
4856 decoder.debug_check_bounds::<Self>(offset);
4857 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
4858 None => return Err(fidl::Error::NotNullable),
4859 Some(len) => len,
4860 };
4861 if len == 0 {
4863 return Ok(());
4864 };
4865 depth.increment()?;
4866 let envelope_size = 8;
4867 let bytes_len = len * envelope_size;
4868 let offset = decoder.out_of_line_offset(bytes_len)?;
4869 let mut _next_ordinal_to_read = 0;
4871 let mut next_offset = offset;
4872 let end_offset = offset + bytes_len;
4873 _next_ordinal_to_read += 1;
4874 if next_offset >= end_offset {
4875 return Ok(());
4876 }
4877
4878 while _next_ordinal_to_read < 1 {
4880 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4881 _next_ordinal_to_read += 1;
4882 next_offset += envelope_size;
4883 }
4884
4885 let next_out_of_line = decoder.next_out_of_line();
4886 let handles_before = decoder.remaining_handles();
4887 if let Some((inlined, num_bytes, num_handles)) =
4888 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4889 {
4890 let member_inline_size = <fidl_fuchsia_wlan_ieee80211__common::BssDescription as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4891 if inlined != (member_inline_size <= 4) {
4892 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4893 }
4894 let inner_offset;
4895 let mut inner_depth = depth.clone();
4896 if inlined {
4897 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4898 inner_offset = next_offset;
4899 } else {
4900 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4901 inner_depth.increment()?;
4902 }
4903 let val_ref = self.selected_bss.get_or_insert_with(|| {
4904 fidl::new_empty!(fidl_fuchsia_wlan_ieee80211__common::BssDescription, D)
4905 });
4906 fidl::decode!(
4907 fidl_fuchsia_wlan_ieee80211__common::BssDescription,
4908 D,
4909 val_ref,
4910 decoder,
4911 inner_offset,
4912 inner_depth
4913 )?;
4914 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4915 {
4916 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4917 }
4918 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4919 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4920 }
4921 }
4922
4923 next_offset += envelope_size;
4924 _next_ordinal_to_read += 1;
4925 if next_offset >= end_offset {
4926 return Ok(());
4927 }
4928
4929 while _next_ordinal_to_read < 2 {
4931 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4932 _next_ordinal_to_read += 1;
4933 next_offset += envelope_size;
4934 }
4935
4936 let next_out_of_line = decoder.next_out_of_line();
4937 let handles_before = decoder.remaining_handles();
4938 if let Some((inlined, num_bytes, num_handles)) =
4939 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4940 {
4941 let member_inline_size =
4942 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4943 if inlined != (member_inline_size <= 4) {
4944 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4945 }
4946 let inner_offset;
4947 let mut inner_depth = depth.clone();
4948 if inlined {
4949 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4950 inner_offset = next_offset;
4951 } else {
4952 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4953 inner_depth.increment()?;
4954 }
4955 let val_ref =
4956 self.connect_failure_timeout.get_or_insert_with(|| fidl::new_empty!(u32, D));
4957 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
4958 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4959 {
4960 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4961 }
4962 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4963 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4964 }
4965 }
4966
4967 next_offset += envelope_size;
4968 _next_ordinal_to_read += 1;
4969 if next_offset >= end_offset {
4970 return Ok(());
4971 }
4972
4973 while _next_ordinal_to_read < 3 {
4975 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4976 _next_ordinal_to_read += 1;
4977 next_offset += envelope_size;
4978 }
4979
4980 let next_out_of_line = decoder.next_out_of_line();
4981 let handles_before = decoder.remaining_handles();
4982 if let Some((inlined, num_bytes, num_handles)) =
4983 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4984 {
4985 let member_inline_size =
4986 <WlanAuthType as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4987 if inlined != (member_inline_size <= 4) {
4988 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4989 }
4990 let inner_offset;
4991 let mut inner_depth = depth.clone();
4992 if inlined {
4993 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4994 inner_offset = next_offset;
4995 } else {
4996 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4997 inner_depth.increment()?;
4998 }
4999 let val_ref =
5000 self.auth_type.get_or_insert_with(|| fidl::new_empty!(WlanAuthType, D));
5001 fidl::decode!(WlanAuthType, D, val_ref, decoder, inner_offset, inner_depth)?;
5002 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5003 {
5004 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5005 }
5006 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5007 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5008 }
5009 }
5010
5011 next_offset += envelope_size;
5012 _next_ordinal_to_read += 1;
5013 if next_offset >= end_offset {
5014 return Ok(());
5015 }
5016
5017 while _next_ordinal_to_read < 4 {
5019 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5020 _next_ordinal_to_read += 1;
5021 next_offset += envelope_size;
5022 }
5023
5024 let next_out_of_line = decoder.next_out_of_line();
5025 let handles_before = decoder.remaining_handles();
5026 if let Some((inlined, num_bytes, num_handles)) =
5027 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5028 {
5029 let member_inline_size = <fidl::encoding::UnboundedVector<u8> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5030 if inlined != (member_inline_size <= 4) {
5031 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5032 }
5033 let inner_offset;
5034 let mut inner_depth = depth.clone();
5035 if inlined {
5036 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5037 inner_offset = next_offset;
5038 } else {
5039 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5040 inner_depth.increment()?;
5041 }
5042 let val_ref = self.sae_password.get_or_insert_with(|| {
5043 fidl::new_empty!(fidl::encoding::UnboundedVector<u8>, D)
5044 });
5045 fidl::decode!(
5046 fidl::encoding::UnboundedVector<u8>,
5047 D,
5048 val_ref,
5049 decoder,
5050 inner_offset,
5051 inner_depth
5052 )?;
5053 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5054 {
5055 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5056 }
5057 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5058 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5059 }
5060 }
5061
5062 next_offset += envelope_size;
5063 _next_ordinal_to_read += 1;
5064 if next_offset >= end_offset {
5065 return Ok(());
5066 }
5067
5068 while _next_ordinal_to_read < 5 {
5070 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5071 _next_ordinal_to_read += 1;
5072 next_offset += envelope_size;
5073 }
5074
5075 let next_out_of_line = decoder.next_out_of_line();
5076 let handles_before = decoder.remaining_handles();
5077 if let Some((inlined, num_bytes, num_handles)) =
5078 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5079 {
5080 let member_inline_size = <fidl_fuchsia_wlan_driver__common::WlanKeyConfig as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5081 if inlined != (member_inline_size <= 4) {
5082 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5083 }
5084 let inner_offset;
5085 let mut inner_depth = depth.clone();
5086 if inlined {
5087 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5088 inner_offset = next_offset;
5089 } else {
5090 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5091 inner_depth.increment()?;
5092 }
5093 let val_ref = self.wep_key.get_or_insert_with(|| {
5094 fidl::new_empty!(fidl_fuchsia_wlan_driver__common::WlanKeyConfig, D)
5095 });
5096 fidl::decode!(
5097 fidl_fuchsia_wlan_driver__common::WlanKeyConfig,
5098 D,
5099 val_ref,
5100 decoder,
5101 inner_offset,
5102 inner_depth
5103 )?;
5104 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5105 {
5106 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5107 }
5108 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5109 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5110 }
5111 }
5112
5113 next_offset += envelope_size;
5114 _next_ordinal_to_read += 1;
5115 if next_offset >= end_offset {
5116 return Ok(());
5117 }
5118
5119 while _next_ordinal_to_read < 6 {
5121 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5122 _next_ordinal_to_read += 1;
5123 next_offset += envelope_size;
5124 }
5125
5126 let next_out_of_line = decoder.next_out_of_line();
5127 let handles_before = decoder.remaining_handles();
5128 if let Some((inlined, num_bytes, num_handles)) =
5129 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5130 {
5131 let member_inline_size =
5132 <fidl::encoding::Vector<u8, 257> as fidl::encoding::TypeMarker>::inline_size(
5133 decoder.context,
5134 );
5135 if inlined != (member_inline_size <= 4) {
5136 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5137 }
5138 let inner_offset;
5139 let mut inner_depth = depth.clone();
5140 if inlined {
5141 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5142 inner_offset = next_offset;
5143 } else {
5144 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5145 inner_depth.increment()?;
5146 }
5147 let val_ref = self
5148 .security_ie
5149 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<u8, 257>, D));
5150 fidl::decode!(fidl::encoding::Vector<u8, 257>, D, val_ref, decoder, inner_offset, inner_depth)?;
5151 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5152 {
5153 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5154 }
5155 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5156 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5157 }
5158 }
5159
5160 next_offset += envelope_size;
5161 _next_ordinal_to_read += 1;
5162 if next_offset >= end_offset {
5163 return Ok(());
5164 }
5165
5166 while _next_ordinal_to_read < 7 {
5168 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5169 _next_ordinal_to_read += 1;
5170 next_offset += envelope_size;
5171 }
5172
5173 let next_out_of_line = decoder.next_out_of_line();
5174 let handles_before = decoder.remaining_handles();
5175 if let Some((inlined, num_bytes, num_handles)) =
5176 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5177 {
5178 let member_inline_size = <fidl_fuchsia_wlan_ieee80211__common::SetKeyDescriptor as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5179 if inlined != (member_inline_size <= 4) {
5180 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5181 }
5182 let inner_offset;
5183 let mut inner_depth = depth.clone();
5184 if inlined {
5185 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5186 inner_offset = next_offset;
5187 } else {
5188 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5189 inner_depth.increment()?;
5190 }
5191 let val_ref = self.wep_key_desc.get_or_insert_with(|| {
5192 fidl::new_empty!(fidl_fuchsia_wlan_ieee80211__common::SetKeyDescriptor, D)
5193 });
5194 fidl::decode!(
5195 fidl_fuchsia_wlan_ieee80211__common::SetKeyDescriptor,
5196 D,
5197 val_ref,
5198 decoder,
5199 inner_offset,
5200 inner_depth
5201 )?;
5202 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5203 {
5204 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5205 }
5206 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5207 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5208 }
5209 }
5210
5211 next_offset += envelope_size;
5212 _next_ordinal_to_read += 1;
5213 if next_offset >= end_offset {
5214 return Ok(());
5215 }
5216
5217 while _next_ordinal_to_read < 8 {
5219 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5220 _next_ordinal_to_read += 1;
5221 next_offset += envelope_size;
5222 }
5223
5224 let next_out_of_line = decoder.next_out_of_line();
5225 let handles_before = decoder.remaining_handles();
5226 if let Some((inlined, num_bytes, num_handles)) =
5227 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5228 {
5229 let member_inline_size =
5230 <WlanFullmacOwePublicKey as fidl::encoding::TypeMarker>::inline_size(
5231 decoder.context,
5232 );
5233 if inlined != (member_inline_size <= 4) {
5234 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5235 }
5236 let inner_offset;
5237 let mut inner_depth = depth.clone();
5238 if inlined {
5239 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5240 inner_offset = next_offset;
5241 } else {
5242 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5243 inner_depth.increment()?;
5244 }
5245 let val_ref = self
5246 .owe_public_key
5247 .get_or_insert_with(|| fidl::new_empty!(WlanFullmacOwePublicKey, D));
5248 fidl::decode!(
5249 WlanFullmacOwePublicKey,
5250 D,
5251 val_ref,
5252 decoder,
5253 inner_offset,
5254 inner_depth
5255 )?;
5256 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5257 {
5258 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5259 }
5260 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5261 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5262 }
5263 }
5264
5265 next_offset += envelope_size;
5266
5267 while next_offset < end_offset {
5269 _next_ordinal_to_read += 1;
5270 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5271 next_offset += envelope_size;
5272 }
5273
5274 Ok(())
5275 }
5276 }
5277
5278 impl WlanFullmacImplDeauthRequest {
5279 #[inline(always)]
5280 fn max_ordinal_present(&self) -> u64 {
5281 if let Some(_) = self.reason_code {
5282 return 2;
5283 }
5284 if let Some(_) = self.peer_sta_address {
5285 return 1;
5286 }
5287 0
5288 }
5289 }
5290
5291 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplDeauthRequest {
5292 type Borrowed<'a> = &'a Self;
5293 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
5294 value
5295 }
5296 }
5297
5298 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplDeauthRequest {
5299 type Owned = Self;
5300
5301 #[inline(always)]
5302 fn inline_align(_context: fidl::encoding::Context) -> usize {
5303 8
5304 }
5305
5306 #[inline(always)]
5307 fn inline_size(_context: fidl::encoding::Context) -> usize {
5308 16
5309 }
5310 }
5311
5312 unsafe impl<D: fidl::encoding::ResourceDialect>
5313 fidl::encoding::Encode<WlanFullmacImplDeauthRequest, D> for &WlanFullmacImplDeauthRequest
5314 {
5315 unsafe fn encode(
5316 self,
5317 encoder: &mut fidl::encoding::Encoder<'_, D>,
5318 offset: usize,
5319 mut depth: fidl::encoding::Depth,
5320 ) -> fidl::Result<()> {
5321 encoder.debug_check_bounds::<WlanFullmacImplDeauthRequest>(offset);
5322 let max_ordinal: u64 = self.max_ordinal_present();
5324 encoder.write_num(max_ordinal, offset);
5325 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
5326 if max_ordinal == 0 {
5328 return Ok(());
5329 }
5330 depth.increment()?;
5331 let envelope_size = 8;
5332 let bytes_len = max_ordinal as usize * envelope_size;
5333 #[allow(unused_variables)]
5334 let offset = encoder.out_of_line_offset(bytes_len);
5335 let mut _prev_end_offset: usize = 0;
5336 if 1 > max_ordinal {
5337 return Ok(());
5338 }
5339
5340 let cur_offset: usize = (1 - 1) * envelope_size;
5343
5344 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5346
5347 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
5352 self.peer_sta_address
5353 .as_ref()
5354 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
5355 encoder,
5356 offset + cur_offset,
5357 depth,
5358 )?;
5359
5360 _prev_end_offset = cur_offset + envelope_size;
5361 if 2 > max_ordinal {
5362 return Ok(());
5363 }
5364
5365 let cur_offset: usize = (2 - 1) * envelope_size;
5368
5369 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5371
5372 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_ieee80211__common::ReasonCode, D>(
5377 self.reason_code.as_ref().map(<fidl_fuchsia_wlan_ieee80211__common::ReasonCode as fidl::encoding::ValueTypeMarker>::borrow),
5378 encoder, offset + cur_offset, depth
5379 )?;
5380
5381 _prev_end_offset = cur_offset + envelope_size;
5382
5383 Ok(())
5384 }
5385 }
5386
5387 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
5388 for WlanFullmacImplDeauthRequest
5389 {
5390 #[inline(always)]
5391 fn new_empty() -> Self {
5392 Self::default()
5393 }
5394
5395 unsafe fn decode(
5396 &mut self,
5397 decoder: &mut fidl::encoding::Decoder<'_, D>,
5398 offset: usize,
5399 mut depth: fidl::encoding::Depth,
5400 ) -> fidl::Result<()> {
5401 decoder.debug_check_bounds::<Self>(offset);
5402 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
5403 None => return Err(fidl::Error::NotNullable),
5404 Some(len) => len,
5405 };
5406 if len == 0 {
5408 return Ok(());
5409 };
5410 depth.increment()?;
5411 let envelope_size = 8;
5412 let bytes_len = len * envelope_size;
5413 let offset = decoder.out_of_line_offset(bytes_len)?;
5414 let mut _next_ordinal_to_read = 0;
5416 let mut next_offset = offset;
5417 let end_offset = offset + bytes_len;
5418 _next_ordinal_to_read += 1;
5419 if next_offset >= end_offset {
5420 return Ok(());
5421 }
5422
5423 while _next_ordinal_to_read < 1 {
5425 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5426 _next_ordinal_to_read += 1;
5427 next_offset += envelope_size;
5428 }
5429
5430 let next_out_of_line = decoder.next_out_of_line();
5431 let handles_before = decoder.remaining_handles();
5432 if let Some((inlined, num_bytes, num_handles)) =
5433 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5434 {
5435 let member_inline_size =
5436 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
5437 decoder.context,
5438 );
5439 if inlined != (member_inline_size <= 4) {
5440 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5441 }
5442 let inner_offset;
5443 let mut inner_depth = depth.clone();
5444 if inlined {
5445 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5446 inner_offset = next_offset;
5447 } else {
5448 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5449 inner_depth.increment()?;
5450 }
5451 let val_ref = self
5452 .peer_sta_address
5453 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
5454 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
5455 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5456 {
5457 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5458 }
5459 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5460 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5461 }
5462 }
5463
5464 next_offset += envelope_size;
5465 _next_ordinal_to_read += 1;
5466 if next_offset >= end_offset {
5467 return Ok(());
5468 }
5469
5470 while _next_ordinal_to_read < 2 {
5472 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5473 _next_ordinal_to_read += 1;
5474 next_offset += envelope_size;
5475 }
5476
5477 let next_out_of_line = decoder.next_out_of_line();
5478 let handles_before = decoder.remaining_handles();
5479 if let Some((inlined, num_bytes, num_handles)) =
5480 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5481 {
5482 let member_inline_size = <fidl_fuchsia_wlan_ieee80211__common::ReasonCode as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5483 if inlined != (member_inline_size <= 4) {
5484 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5485 }
5486 let inner_offset;
5487 let mut inner_depth = depth.clone();
5488 if inlined {
5489 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5490 inner_offset = next_offset;
5491 } else {
5492 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5493 inner_depth.increment()?;
5494 }
5495 let val_ref = self.reason_code.get_or_insert_with(|| {
5496 fidl::new_empty!(fidl_fuchsia_wlan_ieee80211__common::ReasonCode, D)
5497 });
5498 fidl::decode!(
5499 fidl_fuchsia_wlan_ieee80211__common::ReasonCode,
5500 D,
5501 val_ref,
5502 decoder,
5503 inner_offset,
5504 inner_depth
5505 )?;
5506 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5507 {
5508 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5509 }
5510 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5511 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5512 }
5513 }
5514
5515 next_offset += envelope_size;
5516
5517 while next_offset < end_offset {
5519 _next_ordinal_to_read += 1;
5520 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5521 next_offset += envelope_size;
5522 }
5523
5524 Ok(())
5525 }
5526 }
5527
5528 impl WlanFullmacImplDisassocRequest {
5529 #[inline(always)]
5530 fn max_ordinal_present(&self) -> u64 {
5531 if let Some(_) = self.reason_code {
5532 return 2;
5533 }
5534 if let Some(_) = self.peer_sta_address {
5535 return 1;
5536 }
5537 0
5538 }
5539 }
5540
5541 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplDisassocRequest {
5542 type Borrowed<'a> = &'a Self;
5543 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
5544 value
5545 }
5546 }
5547
5548 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplDisassocRequest {
5549 type Owned = Self;
5550
5551 #[inline(always)]
5552 fn inline_align(_context: fidl::encoding::Context) -> usize {
5553 8
5554 }
5555
5556 #[inline(always)]
5557 fn inline_size(_context: fidl::encoding::Context) -> usize {
5558 16
5559 }
5560 }
5561
5562 unsafe impl<D: fidl::encoding::ResourceDialect>
5563 fidl::encoding::Encode<WlanFullmacImplDisassocRequest, D>
5564 for &WlanFullmacImplDisassocRequest
5565 {
5566 unsafe fn encode(
5567 self,
5568 encoder: &mut fidl::encoding::Encoder<'_, D>,
5569 offset: usize,
5570 mut depth: fidl::encoding::Depth,
5571 ) -> fidl::Result<()> {
5572 encoder.debug_check_bounds::<WlanFullmacImplDisassocRequest>(offset);
5573 let max_ordinal: u64 = self.max_ordinal_present();
5575 encoder.write_num(max_ordinal, offset);
5576 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
5577 if max_ordinal == 0 {
5579 return Ok(());
5580 }
5581 depth.increment()?;
5582 let envelope_size = 8;
5583 let bytes_len = max_ordinal as usize * envelope_size;
5584 #[allow(unused_variables)]
5585 let offset = encoder.out_of_line_offset(bytes_len);
5586 let mut _prev_end_offset: usize = 0;
5587 if 1 > max_ordinal {
5588 return Ok(());
5589 }
5590
5591 let cur_offset: usize = (1 - 1) * envelope_size;
5594
5595 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5597
5598 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
5603 self.peer_sta_address
5604 .as_ref()
5605 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
5606 encoder,
5607 offset + cur_offset,
5608 depth,
5609 )?;
5610
5611 _prev_end_offset = cur_offset + envelope_size;
5612 if 2 > max_ordinal {
5613 return Ok(());
5614 }
5615
5616 let cur_offset: usize = (2 - 1) * envelope_size;
5619
5620 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5622
5623 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_ieee80211__common::ReasonCode, D>(
5628 self.reason_code.as_ref().map(<fidl_fuchsia_wlan_ieee80211__common::ReasonCode as fidl::encoding::ValueTypeMarker>::borrow),
5629 encoder, offset + cur_offset, depth
5630 )?;
5631
5632 _prev_end_offset = cur_offset + envelope_size;
5633
5634 Ok(())
5635 }
5636 }
5637
5638 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
5639 for WlanFullmacImplDisassocRequest
5640 {
5641 #[inline(always)]
5642 fn new_empty() -> Self {
5643 Self::default()
5644 }
5645
5646 unsafe fn decode(
5647 &mut self,
5648 decoder: &mut fidl::encoding::Decoder<'_, D>,
5649 offset: usize,
5650 mut depth: fidl::encoding::Depth,
5651 ) -> fidl::Result<()> {
5652 decoder.debug_check_bounds::<Self>(offset);
5653 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
5654 None => return Err(fidl::Error::NotNullable),
5655 Some(len) => len,
5656 };
5657 if len == 0 {
5659 return Ok(());
5660 };
5661 depth.increment()?;
5662 let envelope_size = 8;
5663 let bytes_len = len * envelope_size;
5664 let offset = decoder.out_of_line_offset(bytes_len)?;
5665 let mut _next_ordinal_to_read = 0;
5667 let mut next_offset = offset;
5668 let end_offset = offset + bytes_len;
5669 _next_ordinal_to_read += 1;
5670 if next_offset >= end_offset {
5671 return Ok(());
5672 }
5673
5674 while _next_ordinal_to_read < 1 {
5676 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5677 _next_ordinal_to_read += 1;
5678 next_offset += envelope_size;
5679 }
5680
5681 let next_out_of_line = decoder.next_out_of_line();
5682 let handles_before = decoder.remaining_handles();
5683 if let Some((inlined, num_bytes, num_handles)) =
5684 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5685 {
5686 let member_inline_size =
5687 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
5688 decoder.context,
5689 );
5690 if inlined != (member_inline_size <= 4) {
5691 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5692 }
5693 let inner_offset;
5694 let mut inner_depth = depth.clone();
5695 if inlined {
5696 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5697 inner_offset = next_offset;
5698 } else {
5699 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5700 inner_depth.increment()?;
5701 }
5702 let val_ref = self
5703 .peer_sta_address
5704 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
5705 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
5706 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5707 {
5708 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5709 }
5710 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5711 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5712 }
5713 }
5714
5715 next_offset += envelope_size;
5716 _next_ordinal_to_read += 1;
5717 if next_offset >= end_offset {
5718 return Ok(());
5719 }
5720
5721 while _next_ordinal_to_read < 2 {
5723 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5724 _next_ordinal_to_read += 1;
5725 next_offset += envelope_size;
5726 }
5727
5728 let next_out_of_line = decoder.next_out_of_line();
5729 let handles_before = decoder.remaining_handles();
5730 if let Some((inlined, num_bytes, num_handles)) =
5731 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5732 {
5733 let member_inline_size = <fidl_fuchsia_wlan_ieee80211__common::ReasonCode as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5734 if inlined != (member_inline_size <= 4) {
5735 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5736 }
5737 let inner_offset;
5738 let mut inner_depth = depth.clone();
5739 if inlined {
5740 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5741 inner_offset = next_offset;
5742 } else {
5743 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5744 inner_depth.increment()?;
5745 }
5746 let val_ref = self.reason_code.get_or_insert_with(|| {
5747 fidl::new_empty!(fidl_fuchsia_wlan_ieee80211__common::ReasonCode, D)
5748 });
5749 fidl::decode!(
5750 fidl_fuchsia_wlan_ieee80211__common::ReasonCode,
5751 D,
5752 val_ref,
5753 decoder,
5754 inner_offset,
5755 inner_depth
5756 )?;
5757 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5758 {
5759 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5760 }
5761 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5762 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5763 }
5764 }
5765
5766 next_offset += envelope_size;
5767
5768 while next_offset < end_offset {
5770 _next_ordinal_to_read += 1;
5771 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5772 next_offset += envelope_size;
5773 }
5774
5775 Ok(())
5776 }
5777 }
5778
5779 impl WlanFullmacImplEapolTxRequest {
5780 #[inline(always)]
5781 fn max_ordinal_present(&self) -> u64 {
5782 if let Some(_) = self.data {
5783 return 3;
5784 }
5785 if let Some(_) = self.dst_addr {
5786 return 2;
5787 }
5788 if let Some(_) = self.src_addr {
5789 return 1;
5790 }
5791 0
5792 }
5793 }
5794
5795 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplEapolTxRequest {
5796 type Borrowed<'a> = &'a Self;
5797 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
5798 value
5799 }
5800 }
5801
5802 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplEapolTxRequest {
5803 type Owned = Self;
5804
5805 #[inline(always)]
5806 fn inline_align(_context: fidl::encoding::Context) -> usize {
5807 8
5808 }
5809
5810 #[inline(always)]
5811 fn inline_size(_context: fidl::encoding::Context) -> usize {
5812 16
5813 }
5814 }
5815
5816 unsafe impl<D: fidl::encoding::ResourceDialect>
5817 fidl::encoding::Encode<WlanFullmacImplEapolTxRequest, D>
5818 for &WlanFullmacImplEapolTxRequest
5819 {
5820 unsafe fn encode(
5821 self,
5822 encoder: &mut fidl::encoding::Encoder<'_, D>,
5823 offset: usize,
5824 mut depth: fidl::encoding::Depth,
5825 ) -> fidl::Result<()> {
5826 encoder.debug_check_bounds::<WlanFullmacImplEapolTxRequest>(offset);
5827 let max_ordinal: u64 = self.max_ordinal_present();
5829 encoder.write_num(max_ordinal, offset);
5830 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
5831 if max_ordinal == 0 {
5833 return Ok(());
5834 }
5835 depth.increment()?;
5836 let envelope_size = 8;
5837 let bytes_len = max_ordinal as usize * envelope_size;
5838 #[allow(unused_variables)]
5839 let offset = encoder.out_of_line_offset(bytes_len);
5840 let mut _prev_end_offset: usize = 0;
5841 if 1 > max_ordinal {
5842 return Ok(());
5843 }
5844
5845 let cur_offset: usize = (1 - 1) * envelope_size;
5848
5849 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5851
5852 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
5857 self.src_addr
5858 .as_ref()
5859 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
5860 encoder,
5861 offset + cur_offset,
5862 depth,
5863 )?;
5864
5865 _prev_end_offset = cur_offset + envelope_size;
5866 if 2 > max_ordinal {
5867 return Ok(());
5868 }
5869
5870 let cur_offset: usize = (2 - 1) * envelope_size;
5873
5874 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5876
5877 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
5882 self.dst_addr
5883 .as_ref()
5884 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
5885 encoder,
5886 offset + cur_offset,
5887 depth,
5888 )?;
5889
5890 _prev_end_offset = cur_offset + envelope_size;
5891 if 3 > max_ordinal {
5892 return Ok(());
5893 }
5894
5895 let cur_offset: usize = (3 - 1) * envelope_size;
5898
5899 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5901
5902 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<u8>, D>(
5907 self.data.as_ref().map(<fidl::encoding::UnboundedVector<u8> as fidl::encoding::ValueTypeMarker>::borrow),
5908 encoder, offset + cur_offset, depth
5909 )?;
5910
5911 _prev_end_offset = cur_offset + envelope_size;
5912
5913 Ok(())
5914 }
5915 }
5916
5917 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
5918 for WlanFullmacImplEapolTxRequest
5919 {
5920 #[inline(always)]
5921 fn new_empty() -> Self {
5922 Self::default()
5923 }
5924
5925 unsafe fn decode(
5926 &mut self,
5927 decoder: &mut fidl::encoding::Decoder<'_, D>,
5928 offset: usize,
5929 mut depth: fidl::encoding::Depth,
5930 ) -> fidl::Result<()> {
5931 decoder.debug_check_bounds::<Self>(offset);
5932 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
5933 None => return Err(fidl::Error::NotNullable),
5934 Some(len) => len,
5935 };
5936 if len == 0 {
5938 return Ok(());
5939 };
5940 depth.increment()?;
5941 let envelope_size = 8;
5942 let bytes_len = len * envelope_size;
5943 let offset = decoder.out_of_line_offset(bytes_len)?;
5944 let mut _next_ordinal_to_read = 0;
5946 let mut next_offset = offset;
5947 let end_offset = offset + bytes_len;
5948 _next_ordinal_to_read += 1;
5949 if next_offset >= end_offset {
5950 return Ok(());
5951 }
5952
5953 while _next_ordinal_to_read < 1 {
5955 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5956 _next_ordinal_to_read += 1;
5957 next_offset += envelope_size;
5958 }
5959
5960 let next_out_of_line = decoder.next_out_of_line();
5961 let handles_before = decoder.remaining_handles();
5962 if let Some((inlined, num_bytes, num_handles)) =
5963 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5964 {
5965 let member_inline_size =
5966 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
5967 decoder.context,
5968 );
5969 if inlined != (member_inline_size <= 4) {
5970 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5971 }
5972 let inner_offset;
5973 let mut inner_depth = depth.clone();
5974 if inlined {
5975 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5976 inner_offset = next_offset;
5977 } else {
5978 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5979 inner_depth.increment()?;
5980 }
5981 let val_ref = self
5982 .src_addr
5983 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
5984 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
5985 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5986 {
5987 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5988 }
5989 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5990 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5991 }
5992 }
5993
5994 next_offset += envelope_size;
5995 _next_ordinal_to_read += 1;
5996 if next_offset >= end_offset {
5997 return Ok(());
5998 }
5999
6000 while _next_ordinal_to_read < 2 {
6002 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6003 _next_ordinal_to_read += 1;
6004 next_offset += envelope_size;
6005 }
6006
6007 let next_out_of_line = decoder.next_out_of_line();
6008 let handles_before = decoder.remaining_handles();
6009 if let Some((inlined, num_bytes, num_handles)) =
6010 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6011 {
6012 let member_inline_size =
6013 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
6014 decoder.context,
6015 );
6016 if inlined != (member_inline_size <= 4) {
6017 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6018 }
6019 let inner_offset;
6020 let mut inner_depth = depth.clone();
6021 if inlined {
6022 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6023 inner_offset = next_offset;
6024 } else {
6025 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6026 inner_depth.increment()?;
6027 }
6028 let val_ref = self
6029 .dst_addr
6030 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
6031 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
6032 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6033 {
6034 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6035 }
6036 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6037 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6038 }
6039 }
6040
6041 next_offset += envelope_size;
6042 _next_ordinal_to_read += 1;
6043 if next_offset >= end_offset {
6044 return Ok(());
6045 }
6046
6047 while _next_ordinal_to_read < 3 {
6049 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6050 _next_ordinal_to_read += 1;
6051 next_offset += envelope_size;
6052 }
6053
6054 let next_out_of_line = decoder.next_out_of_line();
6055 let handles_before = decoder.remaining_handles();
6056 if let Some((inlined, num_bytes, num_handles)) =
6057 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6058 {
6059 let member_inline_size = <fidl::encoding::UnboundedVector<u8> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6060 if inlined != (member_inline_size <= 4) {
6061 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6062 }
6063 let inner_offset;
6064 let mut inner_depth = depth.clone();
6065 if inlined {
6066 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6067 inner_offset = next_offset;
6068 } else {
6069 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6070 inner_depth.increment()?;
6071 }
6072 let val_ref = self.data.get_or_insert_with(|| {
6073 fidl::new_empty!(fidl::encoding::UnboundedVector<u8>, D)
6074 });
6075 fidl::decode!(
6076 fidl::encoding::UnboundedVector<u8>,
6077 D,
6078 val_ref,
6079 decoder,
6080 inner_offset,
6081 inner_depth
6082 )?;
6083 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6084 {
6085 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6086 }
6087 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6088 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6089 }
6090 }
6091
6092 next_offset += envelope_size;
6093
6094 while next_offset < end_offset {
6096 _next_ordinal_to_read += 1;
6097 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6098 next_offset += envelope_size;
6099 }
6100
6101 Ok(())
6102 }
6103 }
6104
6105 impl WlanFullmacImplIfcAssocIndRequest {
6106 #[inline(always)]
6107 fn max_ordinal_present(&self) -> u64 {
6108 if let Some(_) = self.vendor_ie {
6109 return 5;
6110 }
6111 if let Some(_) = self.rsne {
6112 return 4;
6113 }
6114 if let Some(_) = self.ssid {
6115 return 3;
6116 }
6117 if let Some(_) = self.listen_interval {
6118 return 2;
6119 }
6120 if let Some(_) = self.peer_sta_address {
6121 return 1;
6122 }
6123 0
6124 }
6125 }
6126
6127 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcAssocIndRequest {
6128 type Borrowed<'a> = &'a Self;
6129 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
6130 value
6131 }
6132 }
6133
6134 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcAssocIndRequest {
6135 type Owned = Self;
6136
6137 #[inline(always)]
6138 fn inline_align(_context: fidl::encoding::Context) -> usize {
6139 8
6140 }
6141
6142 #[inline(always)]
6143 fn inline_size(_context: fidl::encoding::Context) -> usize {
6144 16
6145 }
6146 }
6147
6148 unsafe impl<D: fidl::encoding::ResourceDialect>
6149 fidl::encoding::Encode<WlanFullmacImplIfcAssocIndRequest, D>
6150 for &WlanFullmacImplIfcAssocIndRequest
6151 {
6152 unsafe fn encode(
6153 self,
6154 encoder: &mut fidl::encoding::Encoder<'_, D>,
6155 offset: usize,
6156 mut depth: fidl::encoding::Depth,
6157 ) -> fidl::Result<()> {
6158 encoder.debug_check_bounds::<WlanFullmacImplIfcAssocIndRequest>(offset);
6159 let max_ordinal: u64 = self.max_ordinal_present();
6161 encoder.write_num(max_ordinal, offset);
6162 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
6163 if max_ordinal == 0 {
6165 return Ok(());
6166 }
6167 depth.increment()?;
6168 let envelope_size = 8;
6169 let bytes_len = max_ordinal as usize * envelope_size;
6170 #[allow(unused_variables)]
6171 let offset = encoder.out_of_line_offset(bytes_len);
6172 let mut _prev_end_offset: usize = 0;
6173 if 1 > max_ordinal {
6174 return Ok(());
6175 }
6176
6177 let cur_offset: usize = (1 - 1) * envelope_size;
6180
6181 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6183
6184 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
6189 self.peer_sta_address
6190 .as_ref()
6191 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
6192 encoder,
6193 offset + cur_offset,
6194 depth,
6195 )?;
6196
6197 _prev_end_offset = cur_offset + envelope_size;
6198 if 2 > max_ordinal {
6199 return Ok(());
6200 }
6201
6202 let cur_offset: usize = (2 - 1) * envelope_size;
6205
6206 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6208
6209 fidl::encoding::encode_in_envelope_optional::<u16, D>(
6214 self.listen_interval.as_ref().map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
6215 encoder,
6216 offset + cur_offset,
6217 depth,
6218 )?;
6219
6220 _prev_end_offset = cur_offset + envelope_size;
6221 if 3 > max_ordinal {
6222 return Ok(());
6223 }
6224
6225 let cur_offset: usize = (3 - 1) * envelope_size;
6228
6229 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6231
6232 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<u8, 32>, D>(
6237 self.ssid.as_ref().map(
6238 <fidl::encoding::Vector<u8, 32> as fidl::encoding::ValueTypeMarker>::borrow,
6239 ),
6240 encoder,
6241 offset + cur_offset,
6242 depth,
6243 )?;
6244
6245 _prev_end_offset = cur_offset + envelope_size;
6246 if 4 > max_ordinal {
6247 return Ok(());
6248 }
6249
6250 let cur_offset: usize = (4 - 1) * envelope_size;
6253
6254 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6256
6257 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<u8, 257>, D>(
6262 self.rsne.as_ref().map(
6263 <fidl::encoding::Vector<u8, 257> as fidl::encoding::ValueTypeMarker>::borrow,
6264 ),
6265 encoder,
6266 offset + cur_offset,
6267 depth,
6268 )?;
6269
6270 _prev_end_offset = cur_offset + envelope_size;
6271 if 5 > max_ordinal {
6272 return Ok(());
6273 }
6274
6275 let cur_offset: usize = (5 - 1) * envelope_size;
6278
6279 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6281
6282 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<u8, 514>, D>(
6287 self.vendor_ie.as_ref().map(
6288 <fidl::encoding::Vector<u8, 514> as fidl::encoding::ValueTypeMarker>::borrow,
6289 ),
6290 encoder,
6291 offset + cur_offset,
6292 depth,
6293 )?;
6294
6295 _prev_end_offset = cur_offset + envelope_size;
6296
6297 Ok(())
6298 }
6299 }
6300
6301 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
6302 for WlanFullmacImplIfcAssocIndRequest
6303 {
6304 #[inline(always)]
6305 fn new_empty() -> Self {
6306 Self::default()
6307 }
6308
6309 unsafe fn decode(
6310 &mut self,
6311 decoder: &mut fidl::encoding::Decoder<'_, D>,
6312 offset: usize,
6313 mut depth: fidl::encoding::Depth,
6314 ) -> fidl::Result<()> {
6315 decoder.debug_check_bounds::<Self>(offset);
6316 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
6317 None => return Err(fidl::Error::NotNullable),
6318 Some(len) => len,
6319 };
6320 if len == 0 {
6322 return Ok(());
6323 };
6324 depth.increment()?;
6325 let envelope_size = 8;
6326 let bytes_len = len * envelope_size;
6327 let offset = decoder.out_of_line_offset(bytes_len)?;
6328 let mut _next_ordinal_to_read = 0;
6330 let mut next_offset = offset;
6331 let end_offset = offset + bytes_len;
6332 _next_ordinal_to_read += 1;
6333 if next_offset >= end_offset {
6334 return Ok(());
6335 }
6336
6337 while _next_ordinal_to_read < 1 {
6339 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6340 _next_ordinal_to_read += 1;
6341 next_offset += envelope_size;
6342 }
6343
6344 let next_out_of_line = decoder.next_out_of_line();
6345 let handles_before = decoder.remaining_handles();
6346 if let Some((inlined, num_bytes, num_handles)) =
6347 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6348 {
6349 let member_inline_size =
6350 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
6351 decoder.context,
6352 );
6353 if inlined != (member_inline_size <= 4) {
6354 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6355 }
6356 let inner_offset;
6357 let mut inner_depth = depth.clone();
6358 if inlined {
6359 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6360 inner_offset = next_offset;
6361 } else {
6362 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6363 inner_depth.increment()?;
6364 }
6365 let val_ref = self
6366 .peer_sta_address
6367 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
6368 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
6369 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6370 {
6371 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6372 }
6373 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6374 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6375 }
6376 }
6377
6378 next_offset += envelope_size;
6379 _next_ordinal_to_read += 1;
6380 if next_offset >= end_offset {
6381 return Ok(());
6382 }
6383
6384 while _next_ordinal_to_read < 2 {
6386 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6387 _next_ordinal_to_read += 1;
6388 next_offset += envelope_size;
6389 }
6390
6391 let next_out_of_line = decoder.next_out_of_line();
6392 let handles_before = decoder.remaining_handles();
6393 if let Some((inlined, num_bytes, num_handles)) =
6394 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6395 {
6396 let member_inline_size =
6397 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6398 if inlined != (member_inline_size <= 4) {
6399 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6400 }
6401 let inner_offset;
6402 let mut inner_depth = depth.clone();
6403 if inlined {
6404 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6405 inner_offset = next_offset;
6406 } else {
6407 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6408 inner_depth.increment()?;
6409 }
6410 let val_ref = self.listen_interval.get_or_insert_with(|| fidl::new_empty!(u16, D));
6411 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
6412 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6413 {
6414 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6415 }
6416 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6417 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6418 }
6419 }
6420
6421 next_offset += envelope_size;
6422 _next_ordinal_to_read += 1;
6423 if next_offset >= end_offset {
6424 return Ok(());
6425 }
6426
6427 while _next_ordinal_to_read < 3 {
6429 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6430 _next_ordinal_to_read += 1;
6431 next_offset += envelope_size;
6432 }
6433
6434 let next_out_of_line = decoder.next_out_of_line();
6435 let handles_before = decoder.remaining_handles();
6436 if let Some((inlined, num_bytes, num_handles)) =
6437 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6438 {
6439 let member_inline_size =
6440 <fidl::encoding::Vector<u8, 32> as fidl::encoding::TypeMarker>::inline_size(
6441 decoder.context,
6442 );
6443 if inlined != (member_inline_size <= 4) {
6444 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6445 }
6446 let inner_offset;
6447 let mut inner_depth = depth.clone();
6448 if inlined {
6449 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6450 inner_offset = next_offset;
6451 } else {
6452 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6453 inner_depth.increment()?;
6454 }
6455 let val_ref = self
6456 .ssid
6457 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<u8, 32>, D));
6458 fidl::decode!(fidl::encoding::Vector<u8, 32>, D, val_ref, decoder, inner_offset, inner_depth)?;
6459 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6460 {
6461 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6462 }
6463 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6464 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6465 }
6466 }
6467
6468 next_offset += envelope_size;
6469 _next_ordinal_to_read += 1;
6470 if next_offset >= end_offset {
6471 return Ok(());
6472 }
6473
6474 while _next_ordinal_to_read < 4 {
6476 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6477 _next_ordinal_to_read += 1;
6478 next_offset += envelope_size;
6479 }
6480
6481 let next_out_of_line = decoder.next_out_of_line();
6482 let handles_before = decoder.remaining_handles();
6483 if let Some((inlined, num_bytes, num_handles)) =
6484 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6485 {
6486 let member_inline_size =
6487 <fidl::encoding::Vector<u8, 257> as fidl::encoding::TypeMarker>::inline_size(
6488 decoder.context,
6489 );
6490 if inlined != (member_inline_size <= 4) {
6491 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6492 }
6493 let inner_offset;
6494 let mut inner_depth = depth.clone();
6495 if inlined {
6496 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6497 inner_offset = next_offset;
6498 } else {
6499 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6500 inner_depth.increment()?;
6501 }
6502 let val_ref = self
6503 .rsne
6504 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<u8, 257>, D));
6505 fidl::decode!(fidl::encoding::Vector<u8, 257>, D, val_ref, decoder, inner_offset, inner_depth)?;
6506 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6507 {
6508 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6509 }
6510 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6511 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6512 }
6513 }
6514
6515 next_offset += envelope_size;
6516 _next_ordinal_to_read += 1;
6517 if next_offset >= end_offset {
6518 return Ok(());
6519 }
6520
6521 while _next_ordinal_to_read < 5 {
6523 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6524 _next_ordinal_to_read += 1;
6525 next_offset += envelope_size;
6526 }
6527
6528 let next_out_of_line = decoder.next_out_of_line();
6529 let handles_before = decoder.remaining_handles();
6530 if let Some((inlined, num_bytes, num_handles)) =
6531 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6532 {
6533 let member_inline_size =
6534 <fidl::encoding::Vector<u8, 514> as fidl::encoding::TypeMarker>::inline_size(
6535 decoder.context,
6536 );
6537 if inlined != (member_inline_size <= 4) {
6538 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6539 }
6540 let inner_offset;
6541 let mut inner_depth = depth.clone();
6542 if inlined {
6543 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6544 inner_offset = next_offset;
6545 } else {
6546 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6547 inner_depth.increment()?;
6548 }
6549 let val_ref = self
6550 .vendor_ie
6551 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<u8, 514>, D));
6552 fidl::decode!(fidl::encoding::Vector<u8, 514>, D, val_ref, decoder, inner_offset, inner_depth)?;
6553 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6554 {
6555 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6556 }
6557 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6558 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6559 }
6560 }
6561
6562 next_offset += envelope_size;
6563
6564 while next_offset < end_offset {
6566 _next_ordinal_to_read += 1;
6567 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6568 next_offset += envelope_size;
6569 }
6570
6571 Ok(())
6572 }
6573 }
6574
6575 impl WlanFullmacImplIfcAuthIndRequest {
6576 #[inline(always)]
6577 fn max_ordinal_present(&self) -> u64 {
6578 if let Some(_) = self.auth_type {
6579 return 2;
6580 }
6581 if let Some(_) = self.peer_sta_address {
6582 return 1;
6583 }
6584 0
6585 }
6586 }
6587
6588 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcAuthIndRequest {
6589 type Borrowed<'a> = &'a Self;
6590 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
6591 value
6592 }
6593 }
6594
6595 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcAuthIndRequest {
6596 type Owned = Self;
6597
6598 #[inline(always)]
6599 fn inline_align(_context: fidl::encoding::Context) -> usize {
6600 8
6601 }
6602
6603 #[inline(always)]
6604 fn inline_size(_context: fidl::encoding::Context) -> usize {
6605 16
6606 }
6607 }
6608
6609 unsafe impl<D: fidl::encoding::ResourceDialect>
6610 fidl::encoding::Encode<WlanFullmacImplIfcAuthIndRequest, D>
6611 for &WlanFullmacImplIfcAuthIndRequest
6612 {
6613 unsafe fn encode(
6614 self,
6615 encoder: &mut fidl::encoding::Encoder<'_, D>,
6616 offset: usize,
6617 mut depth: fidl::encoding::Depth,
6618 ) -> fidl::Result<()> {
6619 encoder.debug_check_bounds::<WlanFullmacImplIfcAuthIndRequest>(offset);
6620 let max_ordinal: u64 = self.max_ordinal_present();
6622 encoder.write_num(max_ordinal, offset);
6623 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
6624 if max_ordinal == 0 {
6626 return Ok(());
6627 }
6628 depth.increment()?;
6629 let envelope_size = 8;
6630 let bytes_len = max_ordinal as usize * envelope_size;
6631 #[allow(unused_variables)]
6632 let offset = encoder.out_of_line_offset(bytes_len);
6633 let mut _prev_end_offset: usize = 0;
6634 if 1 > max_ordinal {
6635 return Ok(());
6636 }
6637
6638 let cur_offset: usize = (1 - 1) * envelope_size;
6641
6642 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6644
6645 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
6650 self.peer_sta_address
6651 .as_ref()
6652 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
6653 encoder,
6654 offset + cur_offset,
6655 depth,
6656 )?;
6657
6658 _prev_end_offset = cur_offset + envelope_size;
6659 if 2 > max_ordinal {
6660 return Ok(());
6661 }
6662
6663 let cur_offset: usize = (2 - 1) * envelope_size;
6666
6667 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6669
6670 fidl::encoding::encode_in_envelope_optional::<WlanAuthType, D>(
6675 self.auth_type
6676 .as_ref()
6677 .map(<WlanAuthType as fidl::encoding::ValueTypeMarker>::borrow),
6678 encoder,
6679 offset + cur_offset,
6680 depth,
6681 )?;
6682
6683 _prev_end_offset = cur_offset + envelope_size;
6684
6685 Ok(())
6686 }
6687 }
6688
6689 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
6690 for WlanFullmacImplIfcAuthIndRequest
6691 {
6692 #[inline(always)]
6693 fn new_empty() -> Self {
6694 Self::default()
6695 }
6696
6697 unsafe fn decode(
6698 &mut self,
6699 decoder: &mut fidl::encoding::Decoder<'_, D>,
6700 offset: usize,
6701 mut depth: fidl::encoding::Depth,
6702 ) -> fidl::Result<()> {
6703 decoder.debug_check_bounds::<Self>(offset);
6704 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
6705 None => return Err(fidl::Error::NotNullable),
6706 Some(len) => len,
6707 };
6708 if len == 0 {
6710 return Ok(());
6711 };
6712 depth.increment()?;
6713 let envelope_size = 8;
6714 let bytes_len = len * envelope_size;
6715 let offset = decoder.out_of_line_offset(bytes_len)?;
6716 let mut _next_ordinal_to_read = 0;
6718 let mut next_offset = offset;
6719 let end_offset = offset + bytes_len;
6720 _next_ordinal_to_read += 1;
6721 if next_offset >= end_offset {
6722 return Ok(());
6723 }
6724
6725 while _next_ordinal_to_read < 1 {
6727 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6728 _next_ordinal_to_read += 1;
6729 next_offset += envelope_size;
6730 }
6731
6732 let next_out_of_line = decoder.next_out_of_line();
6733 let handles_before = decoder.remaining_handles();
6734 if let Some((inlined, num_bytes, num_handles)) =
6735 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6736 {
6737 let member_inline_size =
6738 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
6739 decoder.context,
6740 );
6741 if inlined != (member_inline_size <= 4) {
6742 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6743 }
6744 let inner_offset;
6745 let mut inner_depth = depth.clone();
6746 if inlined {
6747 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6748 inner_offset = next_offset;
6749 } else {
6750 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6751 inner_depth.increment()?;
6752 }
6753 let val_ref = self
6754 .peer_sta_address
6755 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
6756 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
6757 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6758 {
6759 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6760 }
6761 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6762 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6763 }
6764 }
6765
6766 next_offset += envelope_size;
6767 _next_ordinal_to_read += 1;
6768 if next_offset >= end_offset {
6769 return Ok(());
6770 }
6771
6772 while _next_ordinal_to_read < 2 {
6774 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6775 _next_ordinal_to_read += 1;
6776 next_offset += envelope_size;
6777 }
6778
6779 let next_out_of_line = decoder.next_out_of_line();
6780 let handles_before = decoder.remaining_handles();
6781 if let Some((inlined, num_bytes, num_handles)) =
6782 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6783 {
6784 let member_inline_size =
6785 <WlanAuthType as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6786 if inlined != (member_inline_size <= 4) {
6787 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6788 }
6789 let inner_offset;
6790 let mut inner_depth = depth.clone();
6791 if inlined {
6792 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6793 inner_offset = next_offset;
6794 } else {
6795 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6796 inner_depth.increment()?;
6797 }
6798 let val_ref =
6799 self.auth_type.get_or_insert_with(|| fidl::new_empty!(WlanAuthType, D));
6800 fidl::decode!(WlanAuthType, D, val_ref, decoder, inner_offset, inner_depth)?;
6801 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6802 {
6803 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6804 }
6805 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6806 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6807 }
6808 }
6809
6810 next_offset += envelope_size;
6811
6812 while next_offset < end_offset {
6814 _next_ordinal_to_read += 1;
6815 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6816 next_offset += envelope_size;
6817 }
6818
6819 Ok(())
6820 }
6821 }
6822
6823 impl WlanFullmacImplIfcConnectConfRequest {
6824 #[inline(always)]
6825 fn max_ordinal_present(&self) -> u64 {
6826 if let Some(_) = self.association_ies {
6827 return 4;
6828 }
6829 if let Some(_) = self.association_id {
6830 return 3;
6831 }
6832 if let Some(_) = self.result_code {
6833 return 2;
6834 }
6835 if let Some(_) = self.peer_sta_address {
6836 return 1;
6837 }
6838 0
6839 }
6840 }
6841
6842 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcConnectConfRequest {
6843 type Borrowed<'a> = &'a Self;
6844 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
6845 value
6846 }
6847 }
6848
6849 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcConnectConfRequest {
6850 type Owned = Self;
6851
6852 #[inline(always)]
6853 fn inline_align(_context: fidl::encoding::Context) -> usize {
6854 8
6855 }
6856
6857 #[inline(always)]
6858 fn inline_size(_context: fidl::encoding::Context) -> usize {
6859 16
6860 }
6861 }
6862
6863 unsafe impl<D: fidl::encoding::ResourceDialect>
6864 fidl::encoding::Encode<WlanFullmacImplIfcConnectConfRequest, D>
6865 for &WlanFullmacImplIfcConnectConfRequest
6866 {
6867 unsafe fn encode(
6868 self,
6869 encoder: &mut fidl::encoding::Encoder<'_, D>,
6870 offset: usize,
6871 mut depth: fidl::encoding::Depth,
6872 ) -> fidl::Result<()> {
6873 encoder.debug_check_bounds::<WlanFullmacImplIfcConnectConfRequest>(offset);
6874 let max_ordinal: u64 = self.max_ordinal_present();
6876 encoder.write_num(max_ordinal, offset);
6877 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
6878 if max_ordinal == 0 {
6880 return Ok(());
6881 }
6882 depth.increment()?;
6883 let envelope_size = 8;
6884 let bytes_len = max_ordinal as usize * envelope_size;
6885 #[allow(unused_variables)]
6886 let offset = encoder.out_of_line_offset(bytes_len);
6887 let mut _prev_end_offset: usize = 0;
6888 if 1 > max_ordinal {
6889 return Ok(());
6890 }
6891
6892 let cur_offset: usize = (1 - 1) * envelope_size;
6895
6896 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6898
6899 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
6904 self.peer_sta_address
6905 .as_ref()
6906 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
6907 encoder,
6908 offset + cur_offset,
6909 depth,
6910 )?;
6911
6912 _prev_end_offset = cur_offset + envelope_size;
6913 if 2 > max_ordinal {
6914 return Ok(());
6915 }
6916
6917 let cur_offset: usize = (2 - 1) * envelope_size;
6920
6921 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6923
6924 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_ieee80211__common::StatusCode, D>(
6929 self.result_code.as_ref().map(<fidl_fuchsia_wlan_ieee80211__common::StatusCode as fidl::encoding::ValueTypeMarker>::borrow),
6930 encoder, offset + cur_offset, depth
6931 )?;
6932
6933 _prev_end_offset = cur_offset + envelope_size;
6934 if 3 > max_ordinal {
6935 return Ok(());
6936 }
6937
6938 let cur_offset: usize = (3 - 1) * envelope_size;
6941
6942 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6944
6945 fidl::encoding::encode_in_envelope_optional::<u16, D>(
6950 self.association_id.as_ref().map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
6951 encoder,
6952 offset + cur_offset,
6953 depth,
6954 )?;
6955
6956 _prev_end_offset = cur_offset + envelope_size;
6957 if 4 > max_ordinal {
6958 return Ok(());
6959 }
6960
6961 let cur_offset: usize = (4 - 1) * envelope_size;
6964
6965 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6967
6968 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<u8>, D>(
6973 self.association_ies.as_ref().map(<fidl::encoding::UnboundedVector<u8> as fidl::encoding::ValueTypeMarker>::borrow),
6974 encoder, offset + cur_offset, depth
6975 )?;
6976
6977 _prev_end_offset = cur_offset + envelope_size;
6978
6979 Ok(())
6980 }
6981 }
6982
6983 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
6984 for WlanFullmacImplIfcConnectConfRequest
6985 {
6986 #[inline(always)]
6987 fn new_empty() -> Self {
6988 Self::default()
6989 }
6990
6991 unsafe fn decode(
6992 &mut self,
6993 decoder: &mut fidl::encoding::Decoder<'_, D>,
6994 offset: usize,
6995 mut depth: fidl::encoding::Depth,
6996 ) -> fidl::Result<()> {
6997 decoder.debug_check_bounds::<Self>(offset);
6998 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
6999 None => return Err(fidl::Error::NotNullable),
7000 Some(len) => len,
7001 };
7002 if len == 0 {
7004 return Ok(());
7005 };
7006 depth.increment()?;
7007 let envelope_size = 8;
7008 let bytes_len = len * envelope_size;
7009 let offset = decoder.out_of_line_offset(bytes_len)?;
7010 let mut _next_ordinal_to_read = 0;
7012 let mut next_offset = offset;
7013 let end_offset = offset + bytes_len;
7014 _next_ordinal_to_read += 1;
7015 if next_offset >= end_offset {
7016 return Ok(());
7017 }
7018
7019 while _next_ordinal_to_read < 1 {
7021 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7022 _next_ordinal_to_read += 1;
7023 next_offset += envelope_size;
7024 }
7025
7026 let next_out_of_line = decoder.next_out_of_line();
7027 let handles_before = decoder.remaining_handles();
7028 if let Some((inlined, num_bytes, num_handles)) =
7029 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7030 {
7031 let member_inline_size =
7032 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
7033 decoder.context,
7034 );
7035 if inlined != (member_inline_size <= 4) {
7036 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7037 }
7038 let inner_offset;
7039 let mut inner_depth = depth.clone();
7040 if inlined {
7041 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7042 inner_offset = next_offset;
7043 } else {
7044 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7045 inner_depth.increment()?;
7046 }
7047 let val_ref = self
7048 .peer_sta_address
7049 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
7050 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
7051 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7052 {
7053 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7054 }
7055 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7056 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7057 }
7058 }
7059
7060 next_offset += envelope_size;
7061 _next_ordinal_to_read += 1;
7062 if next_offset >= end_offset {
7063 return Ok(());
7064 }
7065
7066 while _next_ordinal_to_read < 2 {
7068 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7069 _next_ordinal_to_read += 1;
7070 next_offset += envelope_size;
7071 }
7072
7073 let next_out_of_line = decoder.next_out_of_line();
7074 let handles_before = decoder.remaining_handles();
7075 if let Some((inlined, num_bytes, num_handles)) =
7076 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7077 {
7078 let member_inline_size = <fidl_fuchsia_wlan_ieee80211__common::StatusCode as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7079 if inlined != (member_inline_size <= 4) {
7080 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7081 }
7082 let inner_offset;
7083 let mut inner_depth = depth.clone();
7084 if inlined {
7085 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7086 inner_offset = next_offset;
7087 } else {
7088 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7089 inner_depth.increment()?;
7090 }
7091 let val_ref = self.result_code.get_or_insert_with(|| {
7092 fidl::new_empty!(fidl_fuchsia_wlan_ieee80211__common::StatusCode, D)
7093 });
7094 fidl::decode!(
7095 fidl_fuchsia_wlan_ieee80211__common::StatusCode,
7096 D,
7097 val_ref,
7098 decoder,
7099 inner_offset,
7100 inner_depth
7101 )?;
7102 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7103 {
7104 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7105 }
7106 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7107 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7108 }
7109 }
7110
7111 next_offset += envelope_size;
7112 _next_ordinal_to_read += 1;
7113 if next_offset >= end_offset {
7114 return Ok(());
7115 }
7116
7117 while _next_ordinal_to_read < 3 {
7119 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7120 _next_ordinal_to_read += 1;
7121 next_offset += envelope_size;
7122 }
7123
7124 let next_out_of_line = decoder.next_out_of_line();
7125 let handles_before = decoder.remaining_handles();
7126 if let Some((inlined, num_bytes, num_handles)) =
7127 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7128 {
7129 let member_inline_size =
7130 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7131 if inlined != (member_inline_size <= 4) {
7132 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7133 }
7134 let inner_offset;
7135 let mut inner_depth = depth.clone();
7136 if inlined {
7137 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7138 inner_offset = next_offset;
7139 } else {
7140 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7141 inner_depth.increment()?;
7142 }
7143 let val_ref = self.association_id.get_or_insert_with(|| fidl::new_empty!(u16, D));
7144 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
7145 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7146 {
7147 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7148 }
7149 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7150 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7151 }
7152 }
7153
7154 next_offset += envelope_size;
7155 _next_ordinal_to_read += 1;
7156 if next_offset >= end_offset {
7157 return Ok(());
7158 }
7159
7160 while _next_ordinal_to_read < 4 {
7162 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7163 _next_ordinal_to_read += 1;
7164 next_offset += envelope_size;
7165 }
7166
7167 let next_out_of_line = decoder.next_out_of_line();
7168 let handles_before = decoder.remaining_handles();
7169 if let Some((inlined, num_bytes, num_handles)) =
7170 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7171 {
7172 let member_inline_size = <fidl::encoding::UnboundedVector<u8> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7173 if inlined != (member_inline_size <= 4) {
7174 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7175 }
7176 let inner_offset;
7177 let mut inner_depth = depth.clone();
7178 if inlined {
7179 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7180 inner_offset = next_offset;
7181 } else {
7182 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7183 inner_depth.increment()?;
7184 }
7185 let val_ref = self.association_ies.get_or_insert_with(|| {
7186 fidl::new_empty!(fidl::encoding::UnboundedVector<u8>, D)
7187 });
7188 fidl::decode!(
7189 fidl::encoding::UnboundedVector<u8>,
7190 D,
7191 val_ref,
7192 decoder,
7193 inner_offset,
7194 inner_depth
7195 )?;
7196 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7197 {
7198 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7199 }
7200 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7201 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7202 }
7203 }
7204
7205 next_offset += envelope_size;
7206
7207 while next_offset < end_offset {
7209 _next_ordinal_to_read += 1;
7210 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7211 next_offset += envelope_size;
7212 }
7213
7214 Ok(())
7215 }
7216 }
7217
7218 impl WlanFullmacImplIfcDeauthConfRequest {
7219 #[inline(always)]
7220 fn max_ordinal_present(&self) -> u64 {
7221 if let Some(_) = self.peer_sta_address {
7222 return 1;
7223 }
7224 0
7225 }
7226 }
7227
7228 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcDeauthConfRequest {
7229 type Borrowed<'a> = &'a Self;
7230 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
7231 value
7232 }
7233 }
7234
7235 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcDeauthConfRequest {
7236 type Owned = Self;
7237
7238 #[inline(always)]
7239 fn inline_align(_context: fidl::encoding::Context) -> usize {
7240 8
7241 }
7242
7243 #[inline(always)]
7244 fn inline_size(_context: fidl::encoding::Context) -> usize {
7245 16
7246 }
7247 }
7248
7249 unsafe impl<D: fidl::encoding::ResourceDialect>
7250 fidl::encoding::Encode<WlanFullmacImplIfcDeauthConfRequest, D>
7251 for &WlanFullmacImplIfcDeauthConfRequest
7252 {
7253 unsafe fn encode(
7254 self,
7255 encoder: &mut fidl::encoding::Encoder<'_, D>,
7256 offset: usize,
7257 mut depth: fidl::encoding::Depth,
7258 ) -> fidl::Result<()> {
7259 encoder.debug_check_bounds::<WlanFullmacImplIfcDeauthConfRequest>(offset);
7260 let max_ordinal: u64 = self.max_ordinal_present();
7262 encoder.write_num(max_ordinal, offset);
7263 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
7264 if max_ordinal == 0 {
7266 return Ok(());
7267 }
7268 depth.increment()?;
7269 let envelope_size = 8;
7270 let bytes_len = max_ordinal as usize * envelope_size;
7271 #[allow(unused_variables)]
7272 let offset = encoder.out_of_line_offset(bytes_len);
7273 let mut _prev_end_offset: usize = 0;
7274 if 1 > max_ordinal {
7275 return Ok(());
7276 }
7277
7278 let cur_offset: usize = (1 - 1) * envelope_size;
7281
7282 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7284
7285 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
7290 self.peer_sta_address
7291 .as_ref()
7292 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
7293 encoder,
7294 offset + cur_offset,
7295 depth,
7296 )?;
7297
7298 _prev_end_offset = cur_offset + envelope_size;
7299
7300 Ok(())
7301 }
7302 }
7303
7304 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
7305 for WlanFullmacImplIfcDeauthConfRequest
7306 {
7307 #[inline(always)]
7308 fn new_empty() -> Self {
7309 Self::default()
7310 }
7311
7312 unsafe fn decode(
7313 &mut self,
7314 decoder: &mut fidl::encoding::Decoder<'_, D>,
7315 offset: usize,
7316 mut depth: fidl::encoding::Depth,
7317 ) -> fidl::Result<()> {
7318 decoder.debug_check_bounds::<Self>(offset);
7319 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
7320 None => return Err(fidl::Error::NotNullable),
7321 Some(len) => len,
7322 };
7323 if len == 0 {
7325 return Ok(());
7326 };
7327 depth.increment()?;
7328 let envelope_size = 8;
7329 let bytes_len = len * envelope_size;
7330 let offset = decoder.out_of_line_offset(bytes_len)?;
7331 let mut _next_ordinal_to_read = 0;
7333 let mut next_offset = offset;
7334 let end_offset = offset + bytes_len;
7335 _next_ordinal_to_read += 1;
7336 if next_offset >= end_offset {
7337 return Ok(());
7338 }
7339
7340 while _next_ordinal_to_read < 1 {
7342 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7343 _next_ordinal_to_read += 1;
7344 next_offset += envelope_size;
7345 }
7346
7347 let next_out_of_line = decoder.next_out_of_line();
7348 let handles_before = decoder.remaining_handles();
7349 if let Some((inlined, num_bytes, num_handles)) =
7350 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7351 {
7352 let member_inline_size =
7353 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
7354 decoder.context,
7355 );
7356 if inlined != (member_inline_size <= 4) {
7357 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7358 }
7359 let inner_offset;
7360 let mut inner_depth = depth.clone();
7361 if inlined {
7362 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7363 inner_offset = next_offset;
7364 } else {
7365 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7366 inner_depth.increment()?;
7367 }
7368 let val_ref = self
7369 .peer_sta_address
7370 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
7371 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
7372 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7373 {
7374 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7375 }
7376 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7377 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7378 }
7379 }
7380
7381 next_offset += envelope_size;
7382
7383 while next_offset < end_offset {
7385 _next_ordinal_to_read += 1;
7386 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7387 next_offset += envelope_size;
7388 }
7389
7390 Ok(())
7391 }
7392 }
7393
7394 impl WlanFullmacImplIfcDeauthIndRequest {
7395 #[inline(always)]
7396 fn max_ordinal_present(&self) -> u64 {
7397 if let Some(_) = self.locally_initiated {
7398 return 3;
7399 }
7400 if let Some(_) = self.reason_code {
7401 return 2;
7402 }
7403 if let Some(_) = self.peer_sta_address {
7404 return 1;
7405 }
7406 0
7407 }
7408 }
7409
7410 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcDeauthIndRequest {
7411 type Borrowed<'a> = &'a Self;
7412 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
7413 value
7414 }
7415 }
7416
7417 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcDeauthIndRequest {
7418 type Owned = Self;
7419
7420 #[inline(always)]
7421 fn inline_align(_context: fidl::encoding::Context) -> usize {
7422 8
7423 }
7424
7425 #[inline(always)]
7426 fn inline_size(_context: fidl::encoding::Context) -> usize {
7427 16
7428 }
7429 }
7430
7431 unsafe impl<D: fidl::encoding::ResourceDialect>
7432 fidl::encoding::Encode<WlanFullmacImplIfcDeauthIndRequest, D>
7433 for &WlanFullmacImplIfcDeauthIndRequest
7434 {
7435 unsafe fn encode(
7436 self,
7437 encoder: &mut fidl::encoding::Encoder<'_, D>,
7438 offset: usize,
7439 mut depth: fidl::encoding::Depth,
7440 ) -> fidl::Result<()> {
7441 encoder.debug_check_bounds::<WlanFullmacImplIfcDeauthIndRequest>(offset);
7442 let max_ordinal: u64 = self.max_ordinal_present();
7444 encoder.write_num(max_ordinal, offset);
7445 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
7446 if max_ordinal == 0 {
7448 return Ok(());
7449 }
7450 depth.increment()?;
7451 let envelope_size = 8;
7452 let bytes_len = max_ordinal as usize * envelope_size;
7453 #[allow(unused_variables)]
7454 let offset = encoder.out_of_line_offset(bytes_len);
7455 let mut _prev_end_offset: usize = 0;
7456 if 1 > max_ordinal {
7457 return Ok(());
7458 }
7459
7460 let cur_offset: usize = (1 - 1) * envelope_size;
7463
7464 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7466
7467 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
7472 self.peer_sta_address
7473 .as_ref()
7474 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
7475 encoder,
7476 offset + cur_offset,
7477 depth,
7478 )?;
7479
7480 _prev_end_offset = cur_offset + envelope_size;
7481 if 2 > max_ordinal {
7482 return Ok(());
7483 }
7484
7485 let cur_offset: usize = (2 - 1) * envelope_size;
7488
7489 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7491
7492 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_ieee80211__common::ReasonCode, D>(
7497 self.reason_code.as_ref().map(<fidl_fuchsia_wlan_ieee80211__common::ReasonCode as fidl::encoding::ValueTypeMarker>::borrow),
7498 encoder, offset + cur_offset, depth
7499 )?;
7500
7501 _prev_end_offset = cur_offset + envelope_size;
7502 if 3 > max_ordinal {
7503 return Ok(());
7504 }
7505
7506 let cur_offset: usize = (3 - 1) * envelope_size;
7509
7510 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7512
7513 fidl::encoding::encode_in_envelope_optional::<bool, D>(
7518 self.locally_initiated
7519 .as_ref()
7520 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
7521 encoder,
7522 offset + cur_offset,
7523 depth,
7524 )?;
7525
7526 _prev_end_offset = cur_offset + envelope_size;
7527
7528 Ok(())
7529 }
7530 }
7531
7532 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
7533 for WlanFullmacImplIfcDeauthIndRequest
7534 {
7535 #[inline(always)]
7536 fn new_empty() -> Self {
7537 Self::default()
7538 }
7539
7540 unsafe fn decode(
7541 &mut self,
7542 decoder: &mut fidl::encoding::Decoder<'_, D>,
7543 offset: usize,
7544 mut depth: fidl::encoding::Depth,
7545 ) -> fidl::Result<()> {
7546 decoder.debug_check_bounds::<Self>(offset);
7547 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
7548 None => return Err(fidl::Error::NotNullable),
7549 Some(len) => len,
7550 };
7551 if len == 0 {
7553 return Ok(());
7554 };
7555 depth.increment()?;
7556 let envelope_size = 8;
7557 let bytes_len = len * envelope_size;
7558 let offset = decoder.out_of_line_offset(bytes_len)?;
7559 let mut _next_ordinal_to_read = 0;
7561 let mut next_offset = offset;
7562 let end_offset = offset + bytes_len;
7563 _next_ordinal_to_read += 1;
7564 if next_offset >= end_offset {
7565 return Ok(());
7566 }
7567
7568 while _next_ordinal_to_read < 1 {
7570 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7571 _next_ordinal_to_read += 1;
7572 next_offset += envelope_size;
7573 }
7574
7575 let next_out_of_line = decoder.next_out_of_line();
7576 let handles_before = decoder.remaining_handles();
7577 if let Some((inlined, num_bytes, num_handles)) =
7578 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7579 {
7580 let member_inline_size =
7581 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
7582 decoder.context,
7583 );
7584 if inlined != (member_inline_size <= 4) {
7585 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7586 }
7587 let inner_offset;
7588 let mut inner_depth = depth.clone();
7589 if inlined {
7590 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7591 inner_offset = next_offset;
7592 } else {
7593 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7594 inner_depth.increment()?;
7595 }
7596 let val_ref = self
7597 .peer_sta_address
7598 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
7599 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
7600 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7601 {
7602 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7603 }
7604 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7605 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7606 }
7607 }
7608
7609 next_offset += envelope_size;
7610 _next_ordinal_to_read += 1;
7611 if next_offset >= end_offset {
7612 return Ok(());
7613 }
7614
7615 while _next_ordinal_to_read < 2 {
7617 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7618 _next_ordinal_to_read += 1;
7619 next_offset += envelope_size;
7620 }
7621
7622 let next_out_of_line = decoder.next_out_of_line();
7623 let handles_before = decoder.remaining_handles();
7624 if let Some((inlined, num_bytes, num_handles)) =
7625 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7626 {
7627 let member_inline_size = <fidl_fuchsia_wlan_ieee80211__common::ReasonCode as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7628 if inlined != (member_inline_size <= 4) {
7629 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7630 }
7631 let inner_offset;
7632 let mut inner_depth = depth.clone();
7633 if inlined {
7634 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7635 inner_offset = next_offset;
7636 } else {
7637 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7638 inner_depth.increment()?;
7639 }
7640 let val_ref = self.reason_code.get_or_insert_with(|| {
7641 fidl::new_empty!(fidl_fuchsia_wlan_ieee80211__common::ReasonCode, D)
7642 });
7643 fidl::decode!(
7644 fidl_fuchsia_wlan_ieee80211__common::ReasonCode,
7645 D,
7646 val_ref,
7647 decoder,
7648 inner_offset,
7649 inner_depth
7650 )?;
7651 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7652 {
7653 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7654 }
7655 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7656 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7657 }
7658 }
7659
7660 next_offset += envelope_size;
7661 _next_ordinal_to_read += 1;
7662 if next_offset >= end_offset {
7663 return Ok(());
7664 }
7665
7666 while _next_ordinal_to_read < 3 {
7668 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7669 _next_ordinal_to_read += 1;
7670 next_offset += envelope_size;
7671 }
7672
7673 let next_out_of_line = decoder.next_out_of_line();
7674 let handles_before = decoder.remaining_handles();
7675 if let Some((inlined, num_bytes, num_handles)) =
7676 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7677 {
7678 let member_inline_size =
7679 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7680 if inlined != (member_inline_size <= 4) {
7681 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7682 }
7683 let inner_offset;
7684 let mut inner_depth = depth.clone();
7685 if inlined {
7686 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7687 inner_offset = next_offset;
7688 } else {
7689 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7690 inner_depth.increment()?;
7691 }
7692 let val_ref =
7693 self.locally_initiated.get_or_insert_with(|| fidl::new_empty!(bool, D));
7694 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
7695 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7696 {
7697 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7698 }
7699 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7700 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7701 }
7702 }
7703
7704 next_offset += envelope_size;
7705
7706 while next_offset < end_offset {
7708 _next_ordinal_to_read += 1;
7709 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7710 next_offset += envelope_size;
7711 }
7712
7713 Ok(())
7714 }
7715 }
7716
7717 impl WlanFullmacImplIfcDisassocConfRequest {
7718 #[inline(always)]
7719 fn max_ordinal_present(&self) -> u64 {
7720 if let Some(_) = self.status {
7721 return 1;
7722 }
7723 0
7724 }
7725 }
7726
7727 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcDisassocConfRequest {
7728 type Borrowed<'a> = &'a Self;
7729 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
7730 value
7731 }
7732 }
7733
7734 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcDisassocConfRequest {
7735 type Owned = Self;
7736
7737 #[inline(always)]
7738 fn inline_align(_context: fidl::encoding::Context) -> usize {
7739 8
7740 }
7741
7742 #[inline(always)]
7743 fn inline_size(_context: fidl::encoding::Context) -> usize {
7744 16
7745 }
7746 }
7747
7748 unsafe impl<D: fidl::encoding::ResourceDialect>
7749 fidl::encoding::Encode<WlanFullmacImplIfcDisassocConfRequest, D>
7750 for &WlanFullmacImplIfcDisassocConfRequest
7751 {
7752 unsafe fn encode(
7753 self,
7754 encoder: &mut fidl::encoding::Encoder<'_, D>,
7755 offset: usize,
7756 mut depth: fidl::encoding::Depth,
7757 ) -> fidl::Result<()> {
7758 encoder.debug_check_bounds::<WlanFullmacImplIfcDisassocConfRequest>(offset);
7759 let max_ordinal: u64 = self.max_ordinal_present();
7761 encoder.write_num(max_ordinal, offset);
7762 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
7763 if max_ordinal == 0 {
7765 return Ok(());
7766 }
7767 depth.increment()?;
7768 let envelope_size = 8;
7769 let bytes_len = max_ordinal as usize * envelope_size;
7770 #[allow(unused_variables)]
7771 let offset = encoder.out_of_line_offset(bytes_len);
7772 let mut _prev_end_offset: usize = 0;
7773 if 1 > max_ordinal {
7774 return Ok(());
7775 }
7776
7777 let cur_offset: usize = (1 - 1) * envelope_size;
7780
7781 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7783
7784 fidl::encoding::encode_in_envelope_optional::<i32, D>(
7789 self.status.as_ref().map(<i32 as fidl::encoding::ValueTypeMarker>::borrow),
7790 encoder,
7791 offset + cur_offset,
7792 depth,
7793 )?;
7794
7795 _prev_end_offset = cur_offset + envelope_size;
7796
7797 Ok(())
7798 }
7799 }
7800
7801 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
7802 for WlanFullmacImplIfcDisassocConfRequest
7803 {
7804 #[inline(always)]
7805 fn new_empty() -> Self {
7806 Self::default()
7807 }
7808
7809 unsafe fn decode(
7810 &mut self,
7811 decoder: &mut fidl::encoding::Decoder<'_, D>,
7812 offset: usize,
7813 mut depth: fidl::encoding::Depth,
7814 ) -> fidl::Result<()> {
7815 decoder.debug_check_bounds::<Self>(offset);
7816 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
7817 None => return Err(fidl::Error::NotNullable),
7818 Some(len) => len,
7819 };
7820 if len == 0 {
7822 return Ok(());
7823 };
7824 depth.increment()?;
7825 let envelope_size = 8;
7826 let bytes_len = len * envelope_size;
7827 let offset = decoder.out_of_line_offset(bytes_len)?;
7828 let mut _next_ordinal_to_read = 0;
7830 let mut next_offset = offset;
7831 let end_offset = offset + bytes_len;
7832 _next_ordinal_to_read += 1;
7833 if next_offset >= end_offset {
7834 return Ok(());
7835 }
7836
7837 while _next_ordinal_to_read < 1 {
7839 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7840 _next_ordinal_to_read += 1;
7841 next_offset += envelope_size;
7842 }
7843
7844 let next_out_of_line = decoder.next_out_of_line();
7845 let handles_before = decoder.remaining_handles();
7846 if let Some((inlined, num_bytes, num_handles)) =
7847 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7848 {
7849 let member_inline_size =
7850 <i32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7851 if inlined != (member_inline_size <= 4) {
7852 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7853 }
7854 let inner_offset;
7855 let mut inner_depth = depth.clone();
7856 if inlined {
7857 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7858 inner_offset = next_offset;
7859 } else {
7860 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7861 inner_depth.increment()?;
7862 }
7863 let val_ref = self.status.get_or_insert_with(|| fidl::new_empty!(i32, D));
7864 fidl::decode!(i32, D, val_ref, decoder, inner_offset, inner_depth)?;
7865 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7866 {
7867 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7868 }
7869 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7870 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7871 }
7872 }
7873
7874 next_offset += envelope_size;
7875
7876 while next_offset < end_offset {
7878 _next_ordinal_to_read += 1;
7879 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7880 next_offset += envelope_size;
7881 }
7882
7883 Ok(())
7884 }
7885 }
7886
7887 impl WlanFullmacImplIfcDisassocIndRequest {
7888 #[inline(always)]
7889 fn max_ordinal_present(&self) -> u64 {
7890 if let Some(_) = self.locally_initiated {
7891 return 3;
7892 }
7893 if let Some(_) = self.reason_code {
7894 return 2;
7895 }
7896 if let Some(_) = self.peer_sta_address {
7897 return 1;
7898 }
7899 0
7900 }
7901 }
7902
7903 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcDisassocIndRequest {
7904 type Borrowed<'a> = &'a Self;
7905 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
7906 value
7907 }
7908 }
7909
7910 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcDisassocIndRequest {
7911 type Owned = Self;
7912
7913 #[inline(always)]
7914 fn inline_align(_context: fidl::encoding::Context) -> usize {
7915 8
7916 }
7917
7918 #[inline(always)]
7919 fn inline_size(_context: fidl::encoding::Context) -> usize {
7920 16
7921 }
7922 }
7923
7924 unsafe impl<D: fidl::encoding::ResourceDialect>
7925 fidl::encoding::Encode<WlanFullmacImplIfcDisassocIndRequest, D>
7926 for &WlanFullmacImplIfcDisassocIndRequest
7927 {
7928 unsafe fn encode(
7929 self,
7930 encoder: &mut fidl::encoding::Encoder<'_, D>,
7931 offset: usize,
7932 mut depth: fidl::encoding::Depth,
7933 ) -> fidl::Result<()> {
7934 encoder.debug_check_bounds::<WlanFullmacImplIfcDisassocIndRequest>(offset);
7935 let max_ordinal: u64 = self.max_ordinal_present();
7937 encoder.write_num(max_ordinal, offset);
7938 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
7939 if max_ordinal == 0 {
7941 return Ok(());
7942 }
7943 depth.increment()?;
7944 let envelope_size = 8;
7945 let bytes_len = max_ordinal as usize * envelope_size;
7946 #[allow(unused_variables)]
7947 let offset = encoder.out_of_line_offset(bytes_len);
7948 let mut _prev_end_offset: usize = 0;
7949 if 1 > max_ordinal {
7950 return Ok(());
7951 }
7952
7953 let cur_offset: usize = (1 - 1) * envelope_size;
7956
7957 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7959
7960 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
7965 self.peer_sta_address
7966 .as_ref()
7967 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
7968 encoder,
7969 offset + cur_offset,
7970 depth,
7971 )?;
7972
7973 _prev_end_offset = cur_offset + envelope_size;
7974 if 2 > max_ordinal {
7975 return Ok(());
7976 }
7977
7978 let cur_offset: usize = (2 - 1) * envelope_size;
7981
7982 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7984
7985 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_ieee80211__common::ReasonCode, D>(
7990 self.reason_code.as_ref().map(<fidl_fuchsia_wlan_ieee80211__common::ReasonCode as fidl::encoding::ValueTypeMarker>::borrow),
7991 encoder, offset + cur_offset, depth
7992 )?;
7993
7994 _prev_end_offset = cur_offset + envelope_size;
7995 if 3 > max_ordinal {
7996 return Ok(());
7997 }
7998
7999 let cur_offset: usize = (3 - 1) * envelope_size;
8002
8003 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8005
8006 fidl::encoding::encode_in_envelope_optional::<bool, D>(
8011 self.locally_initiated
8012 .as_ref()
8013 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
8014 encoder,
8015 offset + cur_offset,
8016 depth,
8017 )?;
8018
8019 _prev_end_offset = cur_offset + envelope_size;
8020
8021 Ok(())
8022 }
8023 }
8024
8025 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
8026 for WlanFullmacImplIfcDisassocIndRequest
8027 {
8028 #[inline(always)]
8029 fn new_empty() -> Self {
8030 Self::default()
8031 }
8032
8033 unsafe fn decode(
8034 &mut self,
8035 decoder: &mut fidl::encoding::Decoder<'_, D>,
8036 offset: usize,
8037 mut depth: fidl::encoding::Depth,
8038 ) -> fidl::Result<()> {
8039 decoder.debug_check_bounds::<Self>(offset);
8040 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
8041 None => return Err(fidl::Error::NotNullable),
8042 Some(len) => len,
8043 };
8044 if len == 0 {
8046 return Ok(());
8047 };
8048 depth.increment()?;
8049 let envelope_size = 8;
8050 let bytes_len = len * envelope_size;
8051 let offset = decoder.out_of_line_offset(bytes_len)?;
8052 let mut _next_ordinal_to_read = 0;
8054 let mut next_offset = offset;
8055 let end_offset = offset + bytes_len;
8056 _next_ordinal_to_read += 1;
8057 if next_offset >= end_offset {
8058 return Ok(());
8059 }
8060
8061 while _next_ordinal_to_read < 1 {
8063 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8064 _next_ordinal_to_read += 1;
8065 next_offset += envelope_size;
8066 }
8067
8068 let next_out_of_line = decoder.next_out_of_line();
8069 let handles_before = decoder.remaining_handles();
8070 if let Some((inlined, num_bytes, num_handles)) =
8071 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8072 {
8073 let member_inline_size =
8074 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
8075 decoder.context,
8076 );
8077 if inlined != (member_inline_size <= 4) {
8078 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8079 }
8080 let inner_offset;
8081 let mut inner_depth = depth.clone();
8082 if inlined {
8083 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8084 inner_offset = next_offset;
8085 } else {
8086 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8087 inner_depth.increment()?;
8088 }
8089 let val_ref = self
8090 .peer_sta_address
8091 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
8092 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
8093 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8094 {
8095 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8096 }
8097 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8098 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8099 }
8100 }
8101
8102 next_offset += envelope_size;
8103 _next_ordinal_to_read += 1;
8104 if next_offset >= end_offset {
8105 return Ok(());
8106 }
8107
8108 while _next_ordinal_to_read < 2 {
8110 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8111 _next_ordinal_to_read += 1;
8112 next_offset += envelope_size;
8113 }
8114
8115 let next_out_of_line = decoder.next_out_of_line();
8116 let handles_before = decoder.remaining_handles();
8117 if let Some((inlined, num_bytes, num_handles)) =
8118 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8119 {
8120 let member_inline_size = <fidl_fuchsia_wlan_ieee80211__common::ReasonCode as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8121 if inlined != (member_inline_size <= 4) {
8122 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8123 }
8124 let inner_offset;
8125 let mut inner_depth = depth.clone();
8126 if inlined {
8127 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8128 inner_offset = next_offset;
8129 } else {
8130 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8131 inner_depth.increment()?;
8132 }
8133 let val_ref = self.reason_code.get_or_insert_with(|| {
8134 fidl::new_empty!(fidl_fuchsia_wlan_ieee80211__common::ReasonCode, D)
8135 });
8136 fidl::decode!(
8137 fidl_fuchsia_wlan_ieee80211__common::ReasonCode,
8138 D,
8139 val_ref,
8140 decoder,
8141 inner_offset,
8142 inner_depth
8143 )?;
8144 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8145 {
8146 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8147 }
8148 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8149 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8150 }
8151 }
8152
8153 next_offset += envelope_size;
8154 _next_ordinal_to_read += 1;
8155 if next_offset >= end_offset {
8156 return Ok(());
8157 }
8158
8159 while _next_ordinal_to_read < 3 {
8161 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8162 _next_ordinal_to_read += 1;
8163 next_offset += envelope_size;
8164 }
8165
8166 let next_out_of_line = decoder.next_out_of_line();
8167 let handles_before = decoder.remaining_handles();
8168 if let Some((inlined, num_bytes, num_handles)) =
8169 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8170 {
8171 let member_inline_size =
8172 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8173 if inlined != (member_inline_size <= 4) {
8174 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8175 }
8176 let inner_offset;
8177 let mut inner_depth = depth.clone();
8178 if inlined {
8179 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8180 inner_offset = next_offset;
8181 } else {
8182 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8183 inner_depth.increment()?;
8184 }
8185 let val_ref =
8186 self.locally_initiated.get_or_insert_with(|| fidl::new_empty!(bool, D));
8187 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
8188 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8189 {
8190 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8191 }
8192 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8193 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8194 }
8195 }
8196
8197 next_offset += envelope_size;
8198
8199 while next_offset < end_offset {
8201 _next_ordinal_to_read += 1;
8202 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8203 next_offset += envelope_size;
8204 }
8205
8206 Ok(())
8207 }
8208 }
8209
8210 impl WlanFullmacImplIfcEapolConfRequest {
8211 #[inline(always)]
8212 fn max_ordinal_present(&self) -> u64 {
8213 if let Some(_) = self.dst_addr {
8214 return 2;
8215 }
8216 if let Some(_) = self.result_code {
8217 return 1;
8218 }
8219 0
8220 }
8221 }
8222
8223 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcEapolConfRequest {
8224 type Borrowed<'a> = &'a Self;
8225 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
8226 value
8227 }
8228 }
8229
8230 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcEapolConfRequest {
8231 type Owned = Self;
8232
8233 #[inline(always)]
8234 fn inline_align(_context: fidl::encoding::Context) -> usize {
8235 8
8236 }
8237
8238 #[inline(always)]
8239 fn inline_size(_context: fidl::encoding::Context) -> usize {
8240 16
8241 }
8242 }
8243
8244 unsafe impl<D: fidl::encoding::ResourceDialect>
8245 fidl::encoding::Encode<WlanFullmacImplIfcEapolConfRequest, D>
8246 for &WlanFullmacImplIfcEapolConfRequest
8247 {
8248 unsafe fn encode(
8249 self,
8250 encoder: &mut fidl::encoding::Encoder<'_, D>,
8251 offset: usize,
8252 mut depth: fidl::encoding::Depth,
8253 ) -> fidl::Result<()> {
8254 encoder.debug_check_bounds::<WlanFullmacImplIfcEapolConfRequest>(offset);
8255 let max_ordinal: u64 = self.max_ordinal_present();
8257 encoder.write_num(max_ordinal, offset);
8258 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
8259 if max_ordinal == 0 {
8261 return Ok(());
8262 }
8263 depth.increment()?;
8264 let envelope_size = 8;
8265 let bytes_len = max_ordinal as usize * envelope_size;
8266 #[allow(unused_variables)]
8267 let offset = encoder.out_of_line_offset(bytes_len);
8268 let mut _prev_end_offset: usize = 0;
8269 if 1 > max_ordinal {
8270 return Ok(());
8271 }
8272
8273 let cur_offset: usize = (1 - 1) * envelope_size;
8276
8277 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8279
8280 fidl::encoding::encode_in_envelope_optional::<EapolTxResult, D>(
8285 self.result_code
8286 .as_ref()
8287 .map(<EapolTxResult as fidl::encoding::ValueTypeMarker>::borrow),
8288 encoder,
8289 offset + cur_offset,
8290 depth,
8291 )?;
8292
8293 _prev_end_offset = cur_offset + envelope_size;
8294 if 2 > max_ordinal {
8295 return Ok(());
8296 }
8297
8298 let cur_offset: usize = (2 - 1) * envelope_size;
8301
8302 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8304
8305 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
8310 self.dst_addr
8311 .as_ref()
8312 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
8313 encoder,
8314 offset + cur_offset,
8315 depth,
8316 )?;
8317
8318 _prev_end_offset = cur_offset + envelope_size;
8319
8320 Ok(())
8321 }
8322 }
8323
8324 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
8325 for WlanFullmacImplIfcEapolConfRequest
8326 {
8327 #[inline(always)]
8328 fn new_empty() -> Self {
8329 Self::default()
8330 }
8331
8332 unsafe fn decode(
8333 &mut self,
8334 decoder: &mut fidl::encoding::Decoder<'_, D>,
8335 offset: usize,
8336 mut depth: fidl::encoding::Depth,
8337 ) -> fidl::Result<()> {
8338 decoder.debug_check_bounds::<Self>(offset);
8339 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
8340 None => return Err(fidl::Error::NotNullable),
8341 Some(len) => len,
8342 };
8343 if len == 0 {
8345 return Ok(());
8346 };
8347 depth.increment()?;
8348 let envelope_size = 8;
8349 let bytes_len = len * envelope_size;
8350 let offset = decoder.out_of_line_offset(bytes_len)?;
8351 let mut _next_ordinal_to_read = 0;
8353 let mut next_offset = offset;
8354 let end_offset = offset + bytes_len;
8355 _next_ordinal_to_read += 1;
8356 if next_offset >= end_offset {
8357 return Ok(());
8358 }
8359
8360 while _next_ordinal_to_read < 1 {
8362 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8363 _next_ordinal_to_read += 1;
8364 next_offset += envelope_size;
8365 }
8366
8367 let next_out_of_line = decoder.next_out_of_line();
8368 let handles_before = decoder.remaining_handles();
8369 if let Some((inlined, num_bytes, num_handles)) =
8370 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8371 {
8372 let member_inline_size =
8373 <EapolTxResult as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8374 if inlined != (member_inline_size <= 4) {
8375 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8376 }
8377 let inner_offset;
8378 let mut inner_depth = depth.clone();
8379 if inlined {
8380 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8381 inner_offset = next_offset;
8382 } else {
8383 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8384 inner_depth.increment()?;
8385 }
8386 let val_ref =
8387 self.result_code.get_or_insert_with(|| fidl::new_empty!(EapolTxResult, D));
8388 fidl::decode!(EapolTxResult, D, val_ref, decoder, inner_offset, inner_depth)?;
8389 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8390 {
8391 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8392 }
8393 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8394 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8395 }
8396 }
8397
8398 next_offset += envelope_size;
8399 _next_ordinal_to_read += 1;
8400 if next_offset >= end_offset {
8401 return Ok(());
8402 }
8403
8404 while _next_ordinal_to_read < 2 {
8406 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8407 _next_ordinal_to_read += 1;
8408 next_offset += envelope_size;
8409 }
8410
8411 let next_out_of_line = decoder.next_out_of_line();
8412 let handles_before = decoder.remaining_handles();
8413 if let Some((inlined, num_bytes, num_handles)) =
8414 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8415 {
8416 let member_inline_size =
8417 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
8418 decoder.context,
8419 );
8420 if inlined != (member_inline_size <= 4) {
8421 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8422 }
8423 let inner_offset;
8424 let mut inner_depth = depth.clone();
8425 if inlined {
8426 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8427 inner_offset = next_offset;
8428 } else {
8429 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8430 inner_depth.increment()?;
8431 }
8432 let val_ref = self
8433 .dst_addr
8434 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
8435 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
8436 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8437 {
8438 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8439 }
8440 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8441 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8442 }
8443 }
8444
8445 next_offset += envelope_size;
8446
8447 while next_offset < end_offset {
8449 _next_ordinal_to_read += 1;
8450 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8451 next_offset += envelope_size;
8452 }
8453
8454 Ok(())
8455 }
8456 }
8457
8458 impl WlanFullmacImplIfcEapolIndRequest {
8459 #[inline(always)]
8460 fn max_ordinal_present(&self) -> u64 {
8461 if let Some(_) = self.data {
8462 return 3;
8463 }
8464 if let Some(_) = self.dst_addr {
8465 return 2;
8466 }
8467 if let Some(_) = self.src_addr {
8468 return 1;
8469 }
8470 0
8471 }
8472 }
8473
8474 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcEapolIndRequest {
8475 type Borrowed<'a> = &'a Self;
8476 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
8477 value
8478 }
8479 }
8480
8481 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcEapolIndRequest {
8482 type Owned = Self;
8483
8484 #[inline(always)]
8485 fn inline_align(_context: fidl::encoding::Context) -> usize {
8486 8
8487 }
8488
8489 #[inline(always)]
8490 fn inline_size(_context: fidl::encoding::Context) -> usize {
8491 16
8492 }
8493 }
8494
8495 unsafe impl<D: fidl::encoding::ResourceDialect>
8496 fidl::encoding::Encode<WlanFullmacImplIfcEapolIndRequest, D>
8497 for &WlanFullmacImplIfcEapolIndRequest
8498 {
8499 unsafe fn encode(
8500 self,
8501 encoder: &mut fidl::encoding::Encoder<'_, D>,
8502 offset: usize,
8503 mut depth: fidl::encoding::Depth,
8504 ) -> fidl::Result<()> {
8505 encoder.debug_check_bounds::<WlanFullmacImplIfcEapolIndRequest>(offset);
8506 let max_ordinal: u64 = self.max_ordinal_present();
8508 encoder.write_num(max_ordinal, offset);
8509 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
8510 if max_ordinal == 0 {
8512 return Ok(());
8513 }
8514 depth.increment()?;
8515 let envelope_size = 8;
8516 let bytes_len = max_ordinal as usize * envelope_size;
8517 #[allow(unused_variables)]
8518 let offset = encoder.out_of_line_offset(bytes_len);
8519 let mut _prev_end_offset: usize = 0;
8520 if 1 > max_ordinal {
8521 return Ok(());
8522 }
8523
8524 let cur_offset: usize = (1 - 1) * envelope_size;
8527
8528 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8530
8531 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
8536 self.src_addr
8537 .as_ref()
8538 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
8539 encoder,
8540 offset + cur_offset,
8541 depth,
8542 )?;
8543
8544 _prev_end_offset = cur_offset + envelope_size;
8545 if 2 > max_ordinal {
8546 return Ok(());
8547 }
8548
8549 let cur_offset: usize = (2 - 1) * envelope_size;
8552
8553 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8555
8556 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
8561 self.dst_addr
8562 .as_ref()
8563 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
8564 encoder,
8565 offset + cur_offset,
8566 depth,
8567 )?;
8568
8569 _prev_end_offset = cur_offset + envelope_size;
8570 if 3 > max_ordinal {
8571 return Ok(());
8572 }
8573
8574 let cur_offset: usize = (3 - 1) * envelope_size;
8577
8578 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8580
8581 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<u8>, D>(
8586 self.data.as_ref().map(<fidl::encoding::UnboundedVector<u8> as fidl::encoding::ValueTypeMarker>::borrow),
8587 encoder, offset + cur_offset, depth
8588 )?;
8589
8590 _prev_end_offset = cur_offset + envelope_size;
8591
8592 Ok(())
8593 }
8594 }
8595
8596 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
8597 for WlanFullmacImplIfcEapolIndRequest
8598 {
8599 #[inline(always)]
8600 fn new_empty() -> Self {
8601 Self::default()
8602 }
8603
8604 unsafe fn decode(
8605 &mut self,
8606 decoder: &mut fidl::encoding::Decoder<'_, D>,
8607 offset: usize,
8608 mut depth: fidl::encoding::Depth,
8609 ) -> fidl::Result<()> {
8610 decoder.debug_check_bounds::<Self>(offset);
8611 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
8612 None => return Err(fidl::Error::NotNullable),
8613 Some(len) => len,
8614 };
8615 if len == 0 {
8617 return Ok(());
8618 };
8619 depth.increment()?;
8620 let envelope_size = 8;
8621 let bytes_len = len * envelope_size;
8622 let offset = decoder.out_of_line_offset(bytes_len)?;
8623 let mut _next_ordinal_to_read = 0;
8625 let mut next_offset = offset;
8626 let end_offset = offset + bytes_len;
8627 _next_ordinal_to_read += 1;
8628 if next_offset >= end_offset {
8629 return Ok(());
8630 }
8631
8632 while _next_ordinal_to_read < 1 {
8634 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8635 _next_ordinal_to_read += 1;
8636 next_offset += envelope_size;
8637 }
8638
8639 let next_out_of_line = decoder.next_out_of_line();
8640 let handles_before = decoder.remaining_handles();
8641 if let Some((inlined, num_bytes, num_handles)) =
8642 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8643 {
8644 let member_inline_size =
8645 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
8646 decoder.context,
8647 );
8648 if inlined != (member_inline_size <= 4) {
8649 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8650 }
8651 let inner_offset;
8652 let mut inner_depth = depth.clone();
8653 if inlined {
8654 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8655 inner_offset = next_offset;
8656 } else {
8657 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8658 inner_depth.increment()?;
8659 }
8660 let val_ref = self
8661 .src_addr
8662 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
8663 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
8664 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8665 {
8666 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8667 }
8668 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8669 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8670 }
8671 }
8672
8673 next_offset += envelope_size;
8674 _next_ordinal_to_read += 1;
8675 if next_offset >= end_offset {
8676 return Ok(());
8677 }
8678
8679 while _next_ordinal_to_read < 2 {
8681 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8682 _next_ordinal_to_read += 1;
8683 next_offset += envelope_size;
8684 }
8685
8686 let next_out_of_line = decoder.next_out_of_line();
8687 let handles_before = decoder.remaining_handles();
8688 if let Some((inlined, num_bytes, num_handles)) =
8689 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8690 {
8691 let member_inline_size =
8692 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
8693 decoder.context,
8694 );
8695 if inlined != (member_inline_size <= 4) {
8696 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8697 }
8698 let inner_offset;
8699 let mut inner_depth = depth.clone();
8700 if inlined {
8701 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8702 inner_offset = next_offset;
8703 } else {
8704 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8705 inner_depth.increment()?;
8706 }
8707 let val_ref = self
8708 .dst_addr
8709 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
8710 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
8711 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8712 {
8713 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8714 }
8715 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8716 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8717 }
8718 }
8719
8720 next_offset += envelope_size;
8721 _next_ordinal_to_read += 1;
8722 if next_offset >= end_offset {
8723 return Ok(());
8724 }
8725
8726 while _next_ordinal_to_read < 3 {
8728 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8729 _next_ordinal_to_read += 1;
8730 next_offset += envelope_size;
8731 }
8732
8733 let next_out_of_line = decoder.next_out_of_line();
8734 let handles_before = decoder.remaining_handles();
8735 if let Some((inlined, num_bytes, num_handles)) =
8736 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8737 {
8738 let member_inline_size = <fidl::encoding::UnboundedVector<u8> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8739 if inlined != (member_inline_size <= 4) {
8740 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8741 }
8742 let inner_offset;
8743 let mut inner_depth = depth.clone();
8744 if inlined {
8745 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8746 inner_offset = next_offset;
8747 } else {
8748 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8749 inner_depth.increment()?;
8750 }
8751 let val_ref = self.data.get_or_insert_with(|| {
8752 fidl::new_empty!(fidl::encoding::UnboundedVector<u8>, D)
8753 });
8754 fidl::decode!(
8755 fidl::encoding::UnboundedVector<u8>,
8756 D,
8757 val_ref,
8758 decoder,
8759 inner_offset,
8760 inner_depth
8761 )?;
8762 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8763 {
8764 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8765 }
8766 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8767 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8768 }
8769 }
8770
8771 next_offset += envelope_size;
8772
8773 while next_offset < end_offset {
8775 _next_ordinal_to_read += 1;
8776 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8777 next_offset += envelope_size;
8778 }
8779
8780 Ok(())
8781 }
8782 }
8783
8784 impl WlanFullmacImplIfcOnPmkAvailableRequest {
8785 #[inline(always)]
8786 fn max_ordinal_present(&self) -> u64 {
8787 if let Some(_) = self.pmkid {
8788 return 2;
8789 }
8790 if let Some(_) = self.pmk {
8791 return 1;
8792 }
8793 0
8794 }
8795 }
8796
8797 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcOnPmkAvailableRequest {
8798 type Borrowed<'a> = &'a Self;
8799 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
8800 value
8801 }
8802 }
8803
8804 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcOnPmkAvailableRequest {
8805 type Owned = Self;
8806
8807 #[inline(always)]
8808 fn inline_align(_context: fidl::encoding::Context) -> usize {
8809 8
8810 }
8811
8812 #[inline(always)]
8813 fn inline_size(_context: fidl::encoding::Context) -> usize {
8814 16
8815 }
8816 }
8817
8818 unsafe impl<D: fidl::encoding::ResourceDialect>
8819 fidl::encoding::Encode<WlanFullmacImplIfcOnPmkAvailableRequest, D>
8820 for &WlanFullmacImplIfcOnPmkAvailableRequest
8821 {
8822 unsafe fn encode(
8823 self,
8824 encoder: &mut fidl::encoding::Encoder<'_, D>,
8825 offset: usize,
8826 mut depth: fidl::encoding::Depth,
8827 ) -> fidl::Result<()> {
8828 encoder.debug_check_bounds::<WlanFullmacImplIfcOnPmkAvailableRequest>(offset);
8829 let max_ordinal: u64 = self.max_ordinal_present();
8831 encoder.write_num(max_ordinal, offset);
8832 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
8833 if max_ordinal == 0 {
8835 return Ok(());
8836 }
8837 depth.increment()?;
8838 let envelope_size = 8;
8839 let bytes_len = max_ordinal as usize * envelope_size;
8840 #[allow(unused_variables)]
8841 let offset = encoder.out_of_line_offset(bytes_len);
8842 let mut _prev_end_offset: usize = 0;
8843 if 1 > max_ordinal {
8844 return Ok(());
8845 }
8846
8847 let cur_offset: usize = (1 - 1) * envelope_size;
8850
8851 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8853
8854 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<u8>, D>(
8859 self.pmk.as_ref().map(<fidl::encoding::UnboundedVector<u8> as fidl::encoding::ValueTypeMarker>::borrow),
8860 encoder, offset + cur_offset, depth
8861 )?;
8862
8863 _prev_end_offset = cur_offset + envelope_size;
8864 if 2 > max_ordinal {
8865 return Ok(());
8866 }
8867
8868 let cur_offset: usize = (2 - 1) * envelope_size;
8871
8872 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8874
8875 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<u8>, D>(
8880 self.pmkid.as_ref().map(<fidl::encoding::UnboundedVector<u8> as fidl::encoding::ValueTypeMarker>::borrow),
8881 encoder, offset + cur_offset, depth
8882 )?;
8883
8884 _prev_end_offset = cur_offset + envelope_size;
8885
8886 Ok(())
8887 }
8888 }
8889
8890 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
8891 for WlanFullmacImplIfcOnPmkAvailableRequest
8892 {
8893 #[inline(always)]
8894 fn new_empty() -> Self {
8895 Self::default()
8896 }
8897
8898 unsafe fn decode(
8899 &mut self,
8900 decoder: &mut fidl::encoding::Decoder<'_, D>,
8901 offset: usize,
8902 mut depth: fidl::encoding::Depth,
8903 ) -> fidl::Result<()> {
8904 decoder.debug_check_bounds::<Self>(offset);
8905 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
8906 None => return Err(fidl::Error::NotNullable),
8907 Some(len) => len,
8908 };
8909 if len == 0 {
8911 return Ok(());
8912 };
8913 depth.increment()?;
8914 let envelope_size = 8;
8915 let bytes_len = len * envelope_size;
8916 let offset = decoder.out_of_line_offset(bytes_len)?;
8917 let mut _next_ordinal_to_read = 0;
8919 let mut next_offset = offset;
8920 let end_offset = offset + bytes_len;
8921 _next_ordinal_to_read += 1;
8922 if next_offset >= end_offset {
8923 return Ok(());
8924 }
8925
8926 while _next_ordinal_to_read < 1 {
8928 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8929 _next_ordinal_to_read += 1;
8930 next_offset += envelope_size;
8931 }
8932
8933 let next_out_of_line = decoder.next_out_of_line();
8934 let handles_before = decoder.remaining_handles();
8935 if let Some((inlined, num_bytes, num_handles)) =
8936 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8937 {
8938 let member_inline_size = <fidl::encoding::UnboundedVector<u8> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8939 if inlined != (member_inline_size <= 4) {
8940 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8941 }
8942 let inner_offset;
8943 let mut inner_depth = depth.clone();
8944 if inlined {
8945 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8946 inner_offset = next_offset;
8947 } else {
8948 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8949 inner_depth.increment()?;
8950 }
8951 let val_ref = self.pmk.get_or_insert_with(|| {
8952 fidl::new_empty!(fidl::encoding::UnboundedVector<u8>, D)
8953 });
8954 fidl::decode!(
8955 fidl::encoding::UnboundedVector<u8>,
8956 D,
8957 val_ref,
8958 decoder,
8959 inner_offset,
8960 inner_depth
8961 )?;
8962 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8963 {
8964 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8965 }
8966 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8967 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8968 }
8969 }
8970
8971 next_offset += envelope_size;
8972 _next_ordinal_to_read += 1;
8973 if next_offset >= end_offset {
8974 return Ok(());
8975 }
8976
8977 while _next_ordinal_to_read < 2 {
8979 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8980 _next_ordinal_to_read += 1;
8981 next_offset += envelope_size;
8982 }
8983
8984 let next_out_of_line = decoder.next_out_of_line();
8985 let handles_before = decoder.remaining_handles();
8986 if let Some((inlined, num_bytes, num_handles)) =
8987 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8988 {
8989 let member_inline_size = <fidl::encoding::UnboundedVector<u8> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8990 if inlined != (member_inline_size <= 4) {
8991 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8992 }
8993 let inner_offset;
8994 let mut inner_depth = depth.clone();
8995 if inlined {
8996 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8997 inner_offset = next_offset;
8998 } else {
8999 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9000 inner_depth.increment()?;
9001 }
9002 let val_ref = self.pmkid.get_or_insert_with(|| {
9003 fidl::new_empty!(fidl::encoding::UnboundedVector<u8>, D)
9004 });
9005 fidl::decode!(
9006 fidl::encoding::UnboundedVector<u8>,
9007 D,
9008 val_ref,
9009 decoder,
9010 inner_offset,
9011 inner_depth
9012 )?;
9013 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9014 {
9015 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9016 }
9017 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9018 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9019 }
9020 }
9021
9022 next_offset += envelope_size;
9023
9024 while next_offset < end_offset {
9026 _next_ordinal_to_read += 1;
9027 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9028 next_offset += envelope_size;
9029 }
9030
9031 Ok(())
9032 }
9033 }
9034
9035 impl WlanFullmacImplIfcOnScanEndRequest {
9036 #[inline(always)]
9037 fn max_ordinal_present(&self) -> u64 {
9038 if let Some(_) = self.code {
9039 return 2;
9040 }
9041 if let Some(_) = self.txn_id {
9042 return 1;
9043 }
9044 0
9045 }
9046 }
9047
9048 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcOnScanEndRequest {
9049 type Borrowed<'a> = &'a Self;
9050 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
9051 value
9052 }
9053 }
9054
9055 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcOnScanEndRequest {
9056 type Owned = Self;
9057
9058 #[inline(always)]
9059 fn inline_align(_context: fidl::encoding::Context) -> usize {
9060 8
9061 }
9062
9063 #[inline(always)]
9064 fn inline_size(_context: fidl::encoding::Context) -> usize {
9065 16
9066 }
9067 }
9068
9069 unsafe impl<D: fidl::encoding::ResourceDialect>
9070 fidl::encoding::Encode<WlanFullmacImplIfcOnScanEndRequest, D>
9071 for &WlanFullmacImplIfcOnScanEndRequest
9072 {
9073 unsafe fn encode(
9074 self,
9075 encoder: &mut fidl::encoding::Encoder<'_, D>,
9076 offset: usize,
9077 mut depth: fidl::encoding::Depth,
9078 ) -> fidl::Result<()> {
9079 encoder.debug_check_bounds::<WlanFullmacImplIfcOnScanEndRequest>(offset);
9080 let max_ordinal: u64 = self.max_ordinal_present();
9082 encoder.write_num(max_ordinal, offset);
9083 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
9084 if max_ordinal == 0 {
9086 return Ok(());
9087 }
9088 depth.increment()?;
9089 let envelope_size = 8;
9090 let bytes_len = max_ordinal as usize * envelope_size;
9091 #[allow(unused_variables)]
9092 let offset = encoder.out_of_line_offset(bytes_len);
9093 let mut _prev_end_offset: usize = 0;
9094 if 1 > max_ordinal {
9095 return Ok(());
9096 }
9097
9098 let cur_offset: usize = (1 - 1) * envelope_size;
9101
9102 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9104
9105 fidl::encoding::encode_in_envelope_optional::<u64, D>(
9110 self.txn_id.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
9111 encoder,
9112 offset + cur_offset,
9113 depth,
9114 )?;
9115
9116 _prev_end_offset = cur_offset + envelope_size;
9117 if 2 > max_ordinal {
9118 return Ok(());
9119 }
9120
9121 let cur_offset: usize = (2 - 1) * envelope_size;
9124
9125 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9127
9128 fidl::encoding::encode_in_envelope_optional::<WlanScanResult, D>(
9133 self.code.as_ref().map(<WlanScanResult as fidl::encoding::ValueTypeMarker>::borrow),
9134 encoder,
9135 offset + cur_offset,
9136 depth,
9137 )?;
9138
9139 _prev_end_offset = cur_offset + envelope_size;
9140
9141 Ok(())
9142 }
9143 }
9144
9145 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
9146 for WlanFullmacImplIfcOnScanEndRequest
9147 {
9148 #[inline(always)]
9149 fn new_empty() -> Self {
9150 Self::default()
9151 }
9152
9153 unsafe fn decode(
9154 &mut self,
9155 decoder: &mut fidl::encoding::Decoder<'_, D>,
9156 offset: usize,
9157 mut depth: fidl::encoding::Depth,
9158 ) -> fidl::Result<()> {
9159 decoder.debug_check_bounds::<Self>(offset);
9160 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
9161 None => return Err(fidl::Error::NotNullable),
9162 Some(len) => len,
9163 };
9164 if len == 0 {
9166 return Ok(());
9167 };
9168 depth.increment()?;
9169 let envelope_size = 8;
9170 let bytes_len = len * envelope_size;
9171 let offset = decoder.out_of_line_offset(bytes_len)?;
9172 let mut _next_ordinal_to_read = 0;
9174 let mut next_offset = offset;
9175 let end_offset = offset + bytes_len;
9176 _next_ordinal_to_read += 1;
9177 if next_offset >= end_offset {
9178 return Ok(());
9179 }
9180
9181 while _next_ordinal_to_read < 1 {
9183 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9184 _next_ordinal_to_read += 1;
9185 next_offset += envelope_size;
9186 }
9187
9188 let next_out_of_line = decoder.next_out_of_line();
9189 let handles_before = decoder.remaining_handles();
9190 if let Some((inlined, num_bytes, num_handles)) =
9191 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9192 {
9193 let member_inline_size =
9194 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
9195 if inlined != (member_inline_size <= 4) {
9196 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9197 }
9198 let inner_offset;
9199 let mut inner_depth = depth.clone();
9200 if inlined {
9201 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9202 inner_offset = next_offset;
9203 } else {
9204 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9205 inner_depth.increment()?;
9206 }
9207 let val_ref = self.txn_id.get_or_insert_with(|| fidl::new_empty!(u64, D));
9208 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
9209 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9210 {
9211 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9212 }
9213 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9214 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9215 }
9216 }
9217
9218 next_offset += envelope_size;
9219 _next_ordinal_to_read += 1;
9220 if next_offset >= end_offset {
9221 return Ok(());
9222 }
9223
9224 while _next_ordinal_to_read < 2 {
9226 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9227 _next_ordinal_to_read += 1;
9228 next_offset += envelope_size;
9229 }
9230
9231 let next_out_of_line = decoder.next_out_of_line();
9232 let handles_before = decoder.remaining_handles();
9233 if let Some((inlined, num_bytes, num_handles)) =
9234 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9235 {
9236 let member_inline_size =
9237 <WlanScanResult as fidl::encoding::TypeMarker>::inline_size(decoder.context);
9238 if inlined != (member_inline_size <= 4) {
9239 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9240 }
9241 let inner_offset;
9242 let mut inner_depth = depth.clone();
9243 if inlined {
9244 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9245 inner_offset = next_offset;
9246 } else {
9247 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9248 inner_depth.increment()?;
9249 }
9250 let val_ref = self.code.get_or_insert_with(|| fidl::new_empty!(WlanScanResult, D));
9251 fidl::decode!(WlanScanResult, D, val_ref, decoder, inner_offset, inner_depth)?;
9252 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9253 {
9254 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9255 }
9256 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9257 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9258 }
9259 }
9260
9261 next_offset += envelope_size;
9262
9263 while next_offset < end_offset {
9265 _next_ordinal_to_read += 1;
9266 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9267 next_offset += envelope_size;
9268 }
9269
9270 Ok(())
9271 }
9272 }
9273
9274 impl WlanFullmacImplIfcOnScanResultRequest {
9275 #[inline(always)]
9276 fn max_ordinal_present(&self) -> u64 {
9277 if let Some(_) = self.bss {
9278 return 3;
9279 }
9280 if let Some(_) = self.timestamp_nanos {
9281 return 2;
9282 }
9283 if let Some(_) = self.txn_id {
9284 return 1;
9285 }
9286 0
9287 }
9288 }
9289
9290 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcOnScanResultRequest {
9291 type Borrowed<'a> = &'a Self;
9292 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
9293 value
9294 }
9295 }
9296
9297 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcOnScanResultRequest {
9298 type Owned = Self;
9299
9300 #[inline(always)]
9301 fn inline_align(_context: fidl::encoding::Context) -> usize {
9302 8
9303 }
9304
9305 #[inline(always)]
9306 fn inline_size(_context: fidl::encoding::Context) -> usize {
9307 16
9308 }
9309 }
9310
9311 unsafe impl<D: fidl::encoding::ResourceDialect>
9312 fidl::encoding::Encode<WlanFullmacImplIfcOnScanResultRequest, D>
9313 for &WlanFullmacImplIfcOnScanResultRequest
9314 {
9315 unsafe fn encode(
9316 self,
9317 encoder: &mut fidl::encoding::Encoder<'_, D>,
9318 offset: usize,
9319 mut depth: fidl::encoding::Depth,
9320 ) -> fidl::Result<()> {
9321 encoder.debug_check_bounds::<WlanFullmacImplIfcOnScanResultRequest>(offset);
9322 let max_ordinal: u64 = self.max_ordinal_present();
9324 encoder.write_num(max_ordinal, offset);
9325 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
9326 if max_ordinal == 0 {
9328 return Ok(());
9329 }
9330 depth.increment()?;
9331 let envelope_size = 8;
9332 let bytes_len = max_ordinal as usize * envelope_size;
9333 #[allow(unused_variables)]
9334 let offset = encoder.out_of_line_offset(bytes_len);
9335 let mut _prev_end_offset: usize = 0;
9336 if 1 > max_ordinal {
9337 return Ok(());
9338 }
9339
9340 let cur_offset: usize = (1 - 1) * envelope_size;
9343
9344 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9346
9347 fidl::encoding::encode_in_envelope_optional::<u64, D>(
9352 self.txn_id.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
9353 encoder,
9354 offset + cur_offset,
9355 depth,
9356 )?;
9357
9358 _prev_end_offset = cur_offset + envelope_size;
9359 if 2 > max_ordinal {
9360 return Ok(());
9361 }
9362
9363 let cur_offset: usize = (2 - 1) * envelope_size;
9366
9367 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9369
9370 fidl::encoding::encode_in_envelope_optional::<i64, D>(
9375 self.timestamp_nanos.as_ref().map(<i64 as fidl::encoding::ValueTypeMarker>::borrow),
9376 encoder,
9377 offset + cur_offset,
9378 depth,
9379 )?;
9380
9381 _prev_end_offset = cur_offset + envelope_size;
9382 if 3 > max_ordinal {
9383 return Ok(());
9384 }
9385
9386 let cur_offset: usize = (3 - 1) * envelope_size;
9389
9390 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9392
9393 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_ieee80211__common::BssDescription, D>(
9398 self.bss.as_ref().map(<fidl_fuchsia_wlan_ieee80211__common::BssDescription as fidl::encoding::ValueTypeMarker>::borrow),
9399 encoder, offset + cur_offset, depth
9400 )?;
9401
9402 _prev_end_offset = cur_offset + envelope_size;
9403
9404 Ok(())
9405 }
9406 }
9407
9408 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
9409 for WlanFullmacImplIfcOnScanResultRequest
9410 {
9411 #[inline(always)]
9412 fn new_empty() -> Self {
9413 Self::default()
9414 }
9415
9416 unsafe fn decode(
9417 &mut self,
9418 decoder: &mut fidl::encoding::Decoder<'_, D>,
9419 offset: usize,
9420 mut depth: fidl::encoding::Depth,
9421 ) -> fidl::Result<()> {
9422 decoder.debug_check_bounds::<Self>(offset);
9423 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
9424 None => return Err(fidl::Error::NotNullable),
9425 Some(len) => len,
9426 };
9427 if len == 0 {
9429 return Ok(());
9430 };
9431 depth.increment()?;
9432 let envelope_size = 8;
9433 let bytes_len = len * envelope_size;
9434 let offset = decoder.out_of_line_offset(bytes_len)?;
9435 let mut _next_ordinal_to_read = 0;
9437 let mut next_offset = offset;
9438 let end_offset = offset + bytes_len;
9439 _next_ordinal_to_read += 1;
9440 if next_offset >= end_offset {
9441 return Ok(());
9442 }
9443
9444 while _next_ordinal_to_read < 1 {
9446 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9447 _next_ordinal_to_read += 1;
9448 next_offset += envelope_size;
9449 }
9450
9451 let next_out_of_line = decoder.next_out_of_line();
9452 let handles_before = decoder.remaining_handles();
9453 if let Some((inlined, num_bytes, num_handles)) =
9454 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9455 {
9456 let member_inline_size =
9457 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
9458 if inlined != (member_inline_size <= 4) {
9459 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9460 }
9461 let inner_offset;
9462 let mut inner_depth = depth.clone();
9463 if inlined {
9464 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9465 inner_offset = next_offset;
9466 } else {
9467 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9468 inner_depth.increment()?;
9469 }
9470 let val_ref = self.txn_id.get_or_insert_with(|| fidl::new_empty!(u64, D));
9471 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
9472 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9473 {
9474 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9475 }
9476 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9477 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9478 }
9479 }
9480
9481 next_offset += envelope_size;
9482 _next_ordinal_to_read += 1;
9483 if next_offset >= end_offset {
9484 return Ok(());
9485 }
9486
9487 while _next_ordinal_to_read < 2 {
9489 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9490 _next_ordinal_to_read += 1;
9491 next_offset += envelope_size;
9492 }
9493
9494 let next_out_of_line = decoder.next_out_of_line();
9495 let handles_before = decoder.remaining_handles();
9496 if let Some((inlined, num_bytes, num_handles)) =
9497 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9498 {
9499 let member_inline_size =
9500 <i64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
9501 if inlined != (member_inline_size <= 4) {
9502 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9503 }
9504 let inner_offset;
9505 let mut inner_depth = depth.clone();
9506 if inlined {
9507 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9508 inner_offset = next_offset;
9509 } else {
9510 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9511 inner_depth.increment()?;
9512 }
9513 let val_ref = self.timestamp_nanos.get_or_insert_with(|| fidl::new_empty!(i64, D));
9514 fidl::decode!(i64, D, val_ref, decoder, inner_offset, inner_depth)?;
9515 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9516 {
9517 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9518 }
9519 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9520 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9521 }
9522 }
9523
9524 next_offset += envelope_size;
9525 _next_ordinal_to_read += 1;
9526 if next_offset >= end_offset {
9527 return Ok(());
9528 }
9529
9530 while _next_ordinal_to_read < 3 {
9532 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9533 _next_ordinal_to_read += 1;
9534 next_offset += envelope_size;
9535 }
9536
9537 let next_out_of_line = decoder.next_out_of_line();
9538 let handles_before = decoder.remaining_handles();
9539 if let Some((inlined, num_bytes, num_handles)) =
9540 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9541 {
9542 let member_inline_size = <fidl_fuchsia_wlan_ieee80211__common::BssDescription as fidl::encoding::TypeMarker>::inline_size(decoder.context);
9543 if inlined != (member_inline_size <= 4) {
9544 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9545 }
9546 let inner_offset;
9547 let mut inner_depth = depth.clone();
9548 if inlined {
9549 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9550 inner_offset = next_offset;
9551 } else {
9552 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9553 inner_depth.increment()?;
9554 }
9555 let val_ref = self.bss.get_or_insert_with(|| {
9556 fidl::new_empty!(fidl_fuchsia_wlan_ieee80211__common::BssDescription, D)
9557 });
9558 fidl::decode!(
9559 fidl_fuchsia_wlan_ieee80211__common::BssDescription,
9560 D,
9561 val_ref,
9562 decoder,
9563 inner_offset,
9564 inner_depth
9565 )?;
9566 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9567 {
9568 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9569 }
9570 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9571 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9572 }
9573 }
9574
9575 next_offset += envelope_size;
9576
9577 while next_offset < end_offset {
9579 _next_ordinal_to_read += 1;
9580 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9581 next_offset += envelope_size;
9582 }
9583
9584 Ok(())
9585 }
9586 }
9587
9588 impl WlanFullmacImplIfcOnScheduledScanMatchesAvailableRequest {
9589 #[inline(always)]
9590 fn max_ordinal_present(&self) -> u64 {
9591 if let Some(_) = self.txn_id {
9592 return 1;
9593 }
9594 0
9595 }
9596 }
9597
9598 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcOnScheduledScanMatchesAvailableRequest {
9599 type Borrowed<'a> = &'a Self;
9600 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
9601 value
9602 }
9603 }
9604
9605 unsafe impl fidl::encoding::TypeMarker
9606 for WlanFullmacImplIfcOnScheduledScanMatchesAvailableRequest
9607 {
9608 type Owned = Self;
9609
9610 #[inline(always)]
9611 fn inline_align(_context: fidl::encoding::Context) -> usize {
9612 8
9613 }
9614
9615 #[inline(always)]
9616 fn inline_size(_context: fidl::encoding::Context) -> usize {
9617 16
9618 }
9619 }
9620
9621 unsafe impl<D: fidl::encoding::ResourceDialect>
9622 fidl::encoding::Encode<WlanFullmacImplIfcOnScheduledScanMatchesAvailableRequest, D>
9623 for &WlanFullmacImplIfcOnScheduledScanMatchesAvailableRequest
9624 {
9625 unsafe fn encode(
9626 self,
9627 encoder: &mut fidl::encoding::Encoder<'_, D>,
9628 offset: usize,
9629 mut depth: fidl::encoding::Depth,
9630 ) -> fidl::Result<()> {
9631 encoder.debug_check_bounds::<WlanFullmacImplIfcOnScheduledScanMatchesAvailableRequest>(
9632 offset,
9633 );
9634 let max_ordinal: u64 = self.max_ordinal_present();
9636 encoder.write_num(max_ordinal, offset);
9637 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
9638 if max_ordinal == 0 {
9640 return Ok(());
9641 }
9642 depth.increment()?;
9643 let envelope_size = 8;
9644 let bytes_len = max_ordinal as usize * envelope_size;
9645 #[allow(unused_variables)]
9646 let offset = encoder.out_of_line_offset(bytes_len);
9647 let mut _prev_end_offset: usize = 0;
9648 if 1 > max_ordinal {
9649 return Ok(());
9650 }
9651
9652 let cur_offset: usize = (1 - 1) * envelope_size;
9655
9656 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9658
9659 fidl::encoding::encode_in_envelope_optional::<u64, D>(
9664 self.txn_id.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
9665 encoder,
9666 offset + cur_offset,
9667 depth,
9668 )?;
9669
9670 _prev_end_offset = cur_offset + envelope_size;
9671
9672 Ok(())
9673 }
9674 }
9675
9676 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
9677 for WlanFullmacImplIfcOnScheduledScanMatchesAvailableRequest
9678 {
9679 #[inline(always)]
9680 fn new_empty() -> Self {
9681 Self::default()
9682 }
9683
9684 unsafe fn decode(
9685 &mut self,
9686 decoder: &mut fidl::encoding::Decoder<'_, D>,
9687 offset: usize,
9688 mut depth: fidl::encoding::Depth,
9689 ) -> fidl::Result<()> {
9690 decoder.debug_check_bounds::<Self>(offset);
9691 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
9692 None => return Err(fidl::Error::NotNullable),
9693 Some(len) => len,
9694 };
9695 if len == 0 {
9697 return Ok(());
9698 };
9699 depth.increment()?;
9700 let envelope_size = 8;
9701 let bytes_len = len * envelope_size;
9702 let offset = decoder.out_of_line_offset(bytes_len)?;
9703 let mut _next_ordinal_to_read = 0;
9705 let mut next_offset = offset;
9706 let end_offset = offset + bytes_len;
9707 _next_ordinal_to_read += 1;
9708 if next_offset >= end_offset {
9709 return Ok(());
9710 }
9711
9712 while _next_ordinal_to_read < 1 {
9714 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9715 _next_ordinal_to_read += 1;
9716 next_offset += envelope_size;
9717 }
9718
9719 let next_out_of_line = decoder.next_out_of_line();
9720 let handles_before = decoder.remaining_handles();
9721 if let Some((inlined, num_bytes, num_handles)) =
9722 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9723 {
9724 let member_inline_size =
9725 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
9726 if inlined != (member_inline_size <= 4) {
9727 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9728 }
9729 let inner_offset;
9730 let mut inner_depth = depth.clone();
9731 if inlined {
9732 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9733 inner_offset = next_offset;
9734 } else {
9735 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9736 inner_depth.increment()?;
9737 }
9738 let val_ref = self.txn_id.get_or_insert_with(|| fidl::new_empty!(u64, D));
9739 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
9740 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9741 {
9742 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9743 }
9744 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9745 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9746 }
9747 }
9748
9749 next_offset += envelope_size;
9750
9751 while next_offset < end_offset {
9753 _next_ordinal_to_read += 1;
9754 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9755 next_offset += envelope_size;
9756 }
9757
9758 Ok(())
9759 }
9760 }
9761
9762 impl WlanFullmacImplIfcOnScheduledScanStoppedByFirmwareRequest {
9763 #[inline(always)]
9764 fn max_ordinal_present(&self) -> u64 {
9765 if let Some(_) = self.txn_id {
9766 return 1;
9767 }
9768 0
9769 }
9770 }
9771
9772 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcOnScheduledScanStoppedByFirmwareRequest {
9773 type Borrowed<'a> = &'a Self;
9774 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
9775 value
9776 }
9777 }
9778
9779 unsafe impl fidl::encoding::TypeMarker
9780 for WlanFullmacImplIfcOnScheduledScanStoppedByFirmwareRequest
9781 {
9782 type Owned = Self;
9783
9784 #[inline(always)]
9785 fn inline_align(_context: fidl::encoding::Context) -> usize {
9786 8
9787 }
9788
9789 #[inline(always)]
9790 fn inline_size(_context: fidl::encoding::Context) -> usize {
9791 16
9792 }
9793 }
9794
9795 unsafe impl<D: fidl::encoding::ResourceDialect>
9796 fidl::encoding::Encode<WlanFullmacImplIfcOnScheduledScanStoppedByFirmwareRequest, D>
9797 for &WlanFullmacImplIfcOnScheduledScanStoppedByFirmwareRequest
9798 {
9799 unsafe fn encode(
9800 self,
9801 encoder: &mut fidl::encoding::Encoder<'_, D>,
9802 offset: usize,
9803 mut depth: fidl::encoding::Depth,
9804 ) -> fidl::Result<()> {
9805 encoder
9806 .debug_check_bounds::<WlanFullmacImplIfcOnScheduledScanStoppedByFirmwareRequest>(
9807 offset,
9808 );
9809 let max_ordinal: u64 = self.max_ordinal_present();
9811 encoder.write_num(max_ordinal, offset);
9812 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
9813 if max_ordinal == 0 {
9815 return Ok(());
9816 }
9817 depth.increment()?;
9818 let envelope_size = 8;
9819 let bytes_len = max_ordinal as usize * envelope_size;
9820 #[allow(unused_variables)]
9821 let offset = encoder.out_of_line_offset(bytes_len);
9822 let mut _prev_end_offset: usize = 0;
9823 if 1 > max_ordinal {
9824 return Ok(());
9825 }
9826
9827 let cur_offset: usize = (1 - 1) * envelope_size;
9830
9831 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9833
9834 fidl::encoding::encode_in_envelope_optional::<u64, D>(
9839 self.txn_id.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
9840 encoder,
9841 offset + cur_offset,
9842 depth,
9843 )?;
9844
9845 _prev_end_offset = cur_offset + envelope_size;
9846
9847 Ok(())
9848 }
9849 }
9850
9851 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
9852 for WlanFullmacImplIfcOnScheduledScanStoppedByFirmwareRequest
9853 {
9854 #[inline(always)]
9855 fn new_empty() -> Self {
9856 Self::default()
9857 }
9858
9859 unsafe fn decode(
9860 &mut self,
9861 decoder: &mut fidl::encoding::Decoder<'_, D>,
9862 offset: usize,
9863 mut depth: fidl::encoding::Depth,
9864 ) -> fidl::Result<()> {
9865 decoder.debug_check_bounds::<Self>(offset);
9866 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
9867 None => return Err(fidl::Error::NotNullable),
9868 Some(len) => len,
9869 };
9870 if len == 0 {
9872 return Ok(());
9873 };
9874 depth.increment()?;
9875 let envelope_size = 8;
9876 let bytes_len = len * envelope_size;
9877 let offset = decoder.out_of_line_offset(bytes_len)?;
9878 let mut _next_ordinal_to_read = 0;
9880 let mut next_offset = offset;
9881 let end_offset = offset + bytes_len;
9882 _next_ordinal_to_read += 1;
9883 if next_offset >= end_offset {
9884 return Ok(());
9885 }
9886
9887 while _next_ordinal_to_read < 1 {
9889 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9890 _next_ordinal_to_read += 1;
9891 next_offset += envelope_size;
9892 }
9893
9894 let next_out_of_line = decoder.next_out_of_line();
9895 let handles_before = decoder.remaining_handles();
9896 if let Some((inlined, num_bytes, num_handles)) =
9897 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9898 {
9899 let member_inline_size =
9900 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
9901 if inlined != (member_inline_size <= 4) {
9902 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9903 }
9904 let inner_offset;
9905 let mut inner_depth = depth.clone();
9906 if inlined {
9907 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9908 inner_offset = next_offset;
9909 } else {
9910 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9911 inner_depth.increment()?;
9912 }
9913 let val_ref = self.txn_id.get_or_insert_with(|| fidl::new_empty!(u64, D));
9914 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
9915 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9916 {
9917 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9918 }
9919 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9920 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9921 }
9922 }
9923
9924 next_offset += envelope_size;
9925
9926 while next_offset < end_offset {
9928 _next_ordinal_to_read += 1;
9929 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9930 next_offset += envelope_size;
9931 }
9932
9933 Ok(())
9934 }
9935 }
9936
9937 impl WlanFullmacImplIfcRoamConfRequest {
9938 #[inline(always)]
9939 fn max_ordinal_present(&self) -> u64 {
9940 if let Some(_) = self.association_ies {
9941 return 6;
9942 }
9943 if let Some(_) = self.association_id {
9944 return 5;
9945 }
9946 if let Some(_) = self.target_bss_authenticated {
9947 return 4;
9948 }
9949 if let Some(_) = self.original_association_maintained {
9950 return 3;
9951 }
9952 if let Some(_) = self.status_code {
9953 return 2;
9954 }
9955 if let Some(_) = self.selected_bssid {
9956 return 1;
9957 }
9958 0
9959 }
9960 }
9961
9962 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcRoamConfRequest {
9963 type Borrowed<'a> = &'a Self;
9964 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
9965 value
9966 }
9967 }
9968
9969 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcRoamConfRequest {
9970 type Owned = Self;
9971
9972 #[inline(always)]
9973 fn inline_align(_context: fidl::encoding::Context) -> usize {
9974 8
9975 }
9976
9977 #[inline(always)]
9978 fn inline_size(_context: fidl::encoding::Context) -> usize {
9979 16
9980 }
9981 }
9982
9983 unsafe impl<D: fidl::encoding::ResourceDialect>
9984 fidl::encoding::Encode<WlanFullmacImplIfcRoamConfRequest, D>
9985 for &WlanFullmacImplIfcRoamConfRequest
9986 {
9987 unsafe fn encode(
9988 self,
9989 encoder: &mut fidl::encoding::Encoder<'_, D>,
9990 offset: usize,
9991 mut depth: fidl::encoding::Depth,
9992 ) -> fidl::Result<()> {
9993 encoder.debug_check_bounds::<WlanFullmacImplIfcRoamConfRequest>(offset);
9994 let max_ordinal: u64 = self.max_ordinal_present();
9996 encoder.write_num(max_ordinal, offset);
9997 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
9998 if max_ordinal == 0 {
10000 return Ok(());
10001 }
10002 depth.increment()?;
10003 let envelope_size = 8;
10004 let bytes_len = max_ordinal as usize * envelope_size;
10005 #[allow(unused_variables)]
10006 let offset = encoder.out_of_line_offset(bytes_len);
10007 let mut _prev_end_offset: usize = 0;
10008 if 1 > max_ordinal {
10009 return Ok(());
10010 }
10011
10012 let cur_offset: usize = (1 - 1) * envelope_size;
10015
10016 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10018
10019 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
10024 self.selected_bssid
10025 .as_ref()
10026 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
10027 encoder,
10028 offset + cur_offset,
10029 depth,
10030 )?;
10031
10032 _prev_end_offset = cur_offset + envelope_size;
10033 if 2 > max_ordinal {
10034 return Ok(());
10035 }
10036
10037 let cur_offset: usize = (2 - 1) * envelope_size;
10040
10041 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10043
10044 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_ieee80211__common::StatusCode, D>(
10049 self.status_code.as_ref().map(<fidl_fuchsia_wlan_ieee80211__common::StatusCode as fidl::encoding::ValueTypeMarker>::borrow),
10050 encoder, offset + cur_offset, depth
10051 )?;
10052
10053 _prev_end_offset = cur_offset + envelope_size;
10054 if 3 > max_ordinal {
10055 return Ok(());
10056 }
10057
10058 let cur_offset: usize = (3 - 1) * envelope_size;
10061
10062 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10064
10065 fidl::encoding::encode_in_envelope_optional::<bool, D>(
10070 self.original_association_maintained
10071 .as_ref()
10072 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
10073 encoder,
10074 offset + cur_offset,
10075 depth,
10076 )?;
10077
10078 _prev_end_offset = cur_offset + envelope_size;
10079 if 4 > max_ordinal {
10080 return Ok(());
10081 }
10082
10083 let cur_offset: usize = (4 - 1) * envelope_size;
10086
10087 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10089
10090 fidl::encoding::encode_in_envelope_optional::<bool, D>(
10095 self.target_bss_authenticated
10096 .as_ref()
10097 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
10098 encoder,
10099 offset + cur_offset,
10100 depth,
10101 )?;
10102
10103 _prev_end_offset = cur_offset + envelope_size;
10104 if 5 > max_ordinal {
10105 return Ok(());
10106 }
10107
10108 let cur_offset: usize = (5 - 1) * envelope_size;
10111
10112 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10114
10115 fidl::encoding::encode_in_envelope_optional::<u16, D>(
10120 self.association_id.as_ref().map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
10121 encoder,
10122 offset + cur_offset,
10123 depth,
10124 )?;
10125
10126 _prev_end_offset = cur_offset + envelope_size;
10127 if 6 > max_ordinal {
10128 return Ok(());
10129 }
10130
10131 let cur_offset: usize = (6 - 1) * envelope_size;
10134
10135 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10137
10138 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<u8>, D>(
10143 self.association_ies.as_ref().map(<fidl::encoding::UnboundedVector<u8> as fidl::encoding::ValueTypeMarker>::borrow),
10144 encoder, offset + cur_offset, depth
10145 )?;
10146
10147 _prev_end_offset = cur_offset + envelope_size;
10148
10149 Ok(())
10150 }
10151 }
10152
10153 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
10154 for WlanFullmacImplIfcRoamConfRequest
10155 {
10156 #[inline(always)]
10157 fn new_empty() -> Self {
10158 Self::default()
10159 }
10160
10161 unsafe fn decode(
10162 &mut self,
10163 decoder: &mut fidl::encoding::Decoder<'_, D>,
10164 offset: usize,
10165 mut depth: fidl::encoding::Depth,
10166 ) -> fidl::Result<()> {
10167 decoder.debug_check_bounds::<Self>(offset);
10168 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
10169 None => return Err(fidl::Error::NotNullable),
10170 Some(len) => len,
10171 };
10172 if len == 0 {
10174 return Ok(());
10175 };
10176 depth.increment()?;
10177 let envelope_size = 8;
10178 let bytes_len = len * envelope_size;
10179 let offset = decoder.out_of_line_offset(bytes_len)?;
10180 let mut _next_ordinal_to_read = 0;
10182 let mut next_offset = offset;
10183 let end_offset = offset + bytes_len;
10184 _next_ordinal_to_read += 1;
10185 if next_offset >= end_offset {
10186 return Ok(());
10187 }
10188
10189 while _next_ordinal_to_read < 1 {
10191 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10192 _next_ordinal_to_read += 1;
10193 next_offset += envelope_size;
10194 }
10195
10196 let next_out_of_line = decoder.next_out_of_line();
10197 let handles_before = decoder.remaining_handles();
10198 if let Some((inlined, num_bytes, num_handles)) =
10199 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10200 {
10201 let member_inline_size =
10202 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
10203 decoder.context,
10204 );
10205 if inlined != (member_inline_size <= 4) {
10206 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10207 }
10208 let inner_offset;
10209 let mut inner_depth = depth.clone();
10210 if inlined {
10211 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10212 inner_offset = next_offset;
10213 } else {
10214 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10215 inner_depth.increment()?;
10216 }
10217 let val_ref = self
10218 .selected_bssid
10219 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
10220 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
10221 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10222 {
10223 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10224 }
10225 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10226 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10227 }
10228 }
10229
10230 next_offset += envelope_size;
10231 _next_ordinal_to_read += 1;
10232 if next_offset >= end_offset {
10233 return Ok(());
10234 }
10235
10236 while _next_ordinal_to_read < 2 {
10238 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10239 _next_ordinal_to_read += 1;
10240 next_offset += envelope_size;
10241 }
10242
10243 let next_out_of_line = decoder.next_out_of_line();
10244 let handles_before = decoder.remaining_handles();
10245 if let Some((inlined, num_bytes, num_handles)) =
10246 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10247 {
10248 let member_inline_size = <fidl_fuchsia_wlan_ieee80211__common::StatusCode as fidl::encoding::TypeMarker>::inline_size(decoder.context);
10249 if inlined != (member_inline_size <= 4) {
10250 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10251 }
10252 let inner_offset;
10253 let mut inner_depth = depth.clone();
10254 if inlined {
10255 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10256 inner_offset = next_offset;
10257 } else {
10258 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10259 inner_depth.increment()?;
10260 }
10261 let val_ref = self.status_code.get_or_insert_with(|| {
10262 fidl::new_empty!(fidl_fuchsia_wlan_ieee80211__common::StatusCode, D)
10263 });
10264 fidl::decode!(
10265 fidl_fuchsia_wlan_ieee80211__common::StatusCode,
10266 D,
10267 val_ref,
10268 decoder,
10269 inner_offset,
10270 inner_depth
10271 )?;
10272 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10273 {
10274 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10275 }
10276 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10277 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10278 }
10279 }
10280
10281 next_offset += envelope_size;
10282 _next_ordinal_to_read += 1;
10283 if next_offset >= end_offset {
10284 return Ok(());
10285 }
10286
10287 while _next_ordinal_to_read < 3 {
10289 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10290 _next_ordinal_to_read += 1;
10291 next_offset += envelope_size;
10292 }
10293
10294 let next_out_of_line = decoder.next_out_of_line();
10295 let handles_before = decoder.remaining_handles();
10296 if let Some((inlined, num_bytes, num_handles)) =
10297 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10298 {
10299 let member_inline_size =
10300 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
10301 if inlined != (member_inline_size <= 4) {
10302 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10303 }
10304 let inner_offset;
10305 let mut inner_depth = depth.clone();
10306 if inlined {
10307 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10308 inner_offset = next_offset;
10309 } else {
10310 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10311 inner_depth.increment()?;
10312 }
10313 let val_ref = self
10314 .original_association_maintained
10315 .get_or_insert_with(|| fidl::new_empty!(bool, D));
10316 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
10317 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10318 {
10319 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10320 }
10321 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10322 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10323 }
10324 }
10325
10326 next_offset += envelope_size;
10327 _next_ordinal_to_read += 1;
10328 if next_offset >= end_offset {
10329 return Ok(());
10330 }
10331
10332 while _next_ordinal_to_read < 4 {
10334 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10335 _next_ordinal_to_read += 1;
10336 next_offset += envelope_size;
10337 }
10338
10339 let next_out_of_line = decoder.next_out_of_line();
10340 let handles_before = decoder.remaining_handles();
10341 if let Some((inlined, num_bytes, num_handles)) =
10342 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10343 {
10344 let member_inline_size =
10345 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
10346 if inlined != (member_inline_size <= 4) {
10347 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10348 }
10349 let inner_offset;
10350 let mut inner_depth = depth.clone();
10351 if inlined {
10352 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10353 inner_offset = next_offset;
10354 } else {
10355 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10356 inner_depth.increment()?;
10357 }
10358 let val_ref =
10359 self.target_bss_authenticated.get_or_insert_with(|| fidl::new_empty!(bool, D));
10360 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
10361 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10362 {
10363 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10364 }
10365 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10366 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10367 }
10368 }
10369
10370 next_offset += envelope_size;
10371 _next_ordinal_to_read += 1;
10372 if next_offset >= end_offset {
10373 return Ok(());
10374 }
10375
10376 while _next_ordinal_to_read < 5 {
10378 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10379 _next_ordinal_to_read += 1;
10380 next_offset += envelope_size;
10381 }
10382
10383 let next_out_of_line = decoder.next_out_of_line();
10384 let handles_before = decoder.remaining_handles();
10385 if let Some((inlined, num_bytes, num_handles)) =
10386 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10387 {
10388 let member_inline_size =
10389 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
10390 if inlined != (member_inline_size <= 4) {
10391 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10392 }
10393 let inner_offset;
10394 let mut inner_depth = depth.clone();
10395 if inlined {
10396 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10397 inner_offset = next_offset;
10398 } else {
10399 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10400 inner_depth.increment()?;
10401 }
10402 let val_ref = self.association_id.get_or_insert_with(|| fidl::new_empty!(u16, D));
10403 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
10404 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10405 {
10406 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10407 }
10408 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10409 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10410 }
10411 }
10412
10413 next_offset += envelope_size;
10414 _next_ordinal_to_read += 1;
10415 if next_offset >= end_offset {
10416 return Ok(());
10417 }
10418
10419 while _next_ordinal_to_read < 6 {
10421 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10422 _next_ordinal_to_read += 1;
10423 next_offset += envelope_size;
10424 }
10425
10426 let next_out_of_line = decoder.next_out_of_line();
10427 let handles_before = decoder.remaining_handles();
10428 if let Some((inlined, num_bytes, num_handles)) =
10429 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10430 {
10431 let member_inline_size = <fidl::encoding::UnboundedVector<u8> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
10432 if inlined != (member_inline_size <= 4) {
10433 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10434 }
10435 let inner_offset;
10436 let mut inner_depth = depth.clone();
10437 if inlined {
10438 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10439 inner_offset = next_offset;
10440 } else {
10441 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10442 inner_depth.increment()?;
10443 }
10444 let val_ref = self.association_ies.get_or_insert_with(|| {
10445 fidl::new_empty!(fidl::encoding::UnboundedVector<u8>, D)
10446 });
10447 fidl::decode!(
10448 fidl::encoding::UnboundedVector<u8>,
10449 D,
10450 val_ref,
10451 decoder,
10452 inner_offset,
10453 inner_depth
10454 )?;
10455 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10456 {
10457 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10458 }
10459 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10460 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10461 }
10462 }
10463
10464 next_offset += envelope_size;
10465
10466 while next_offset < end_offset {
10468 _next_ordinal_to_read += 1;
10469 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10470 next_offset += envelope_size;
10471 }
10472
10473 Ok(())
10474 }
10475 }
10476
10477 impl WlanFullmacImplIfcRoamResultIndRequest {
10478 #[inline(always)]
10479 fn max_ordinal_present(&self) -> u64 {
10480 if let Some(_) = self.association_ies {
10481 return 6;
10482 }
10483 if let Some(_) = self.association_id {
10484 return 5;
10485 }
10486 if let Some(_) = self.target_bss_authenticated {
10487 return 4;
10488 }
10489 if let Some(_) = self.original_association_maintained {
10490 return 3;
10491 }
10492 if let Some(_) = self.status_code {
10493 return 2;
10494 }
10495 if let Some(_) = self.selected_bssid {
10496 return 1;
10497 }
10498 0
10499 }
10500 }
10501
10502 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcRoamResultIndRequest {
10503 type Borrowed<'a> = &'a Self;
10504 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
10505 value
10506 }
10507 }
10508
10509 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcRoamResultIndRequest {
10510 type Owned = Self;
10511
10512 #[inline(always)]
10513 fn inline_align(_context: fidl::encoding::Context) -> usize {
10514 8
10515 }
10516
10517 #[inline(always)]
10518 fn inline_size(_context: fidl::encoding::Context) -> usize {
10519 16
10520 }
10521 }
10522
10523 unsafe impl<D: fidl::encoding::ResourceDialect>
10524 fidl::encoding::Encode<WlanFullmacImplIfcRoamResultIndRequest, D>
10525 for &WlanFullmacImplIfcRoamResultIndRequest
10526 {
10527 unsafe fn encode(
10528 self,
10529 encoder: &mut fidl::encoding::Encoder<'_, D>,
10530 offset: usize,
10531 mut depth: fidl::encoding::Depth,
10532 ) -> fidl::Result<()> {
10533 encoder.debug_check_bounds::<WlanFullmacImplIfcRoamResultIndRequest>(offset);
10534 let max_ordinal: u64 = self.max_ordinal_present();
10536 encoder.write_num(max_ordinal, offset);
10537 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
10538 if max_ordinal == 0 {
10540 return Ok(());
10541 }
10542 depth.increment()?;
10543 let envelope_size = 8;
10544 let bytes_len = max_ordinal as usize * envelope_size;
10545 #[allow(unused_variables)]
10546 let offset = encoder.out_of_line_offset(bytes_len);
10547 let mut _prev_end_offset: usize = 0;
10548 if 1 > max_ordinal {
10549 return Ok(());
10550 }
10551
10552 let cur_offset: usize = (1 - 1) * envelope_size;
10555
10556 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10558
10559 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
10564 self.selected_bssid
10565 .as_ref()
10566 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
10567 encoder,
10568 offset + cur_offset,
10569 depth,
10570 )?;
10571
10572 _prev_end_offset = cur_offset + envelope_size;
10573 if 2 > max_ordinal {
10574 return Ok(());
10575 }
10576
10577 let cur_offset: usize = (2 - 1) * envelope_size;
10580
10581 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10583
10584 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_ieee80211__common::StatusCode, D>(
10589 self.status_code.as_ref().map(<fidl_fuchsia_wlan_ieee80211__common::StatusCode as fidl::encoding::ValueTypeMarker>::borrow),
10590 encoder, offset + cur_offset, depth
10591 )?;
10592
10593 _prev_end_offset = cur_offset + envelope_size;
10594 if 3 > max_ordinal {
10595 return Ok(());
10596 }
10597
10598 let cur_offset: usize = (3 - 1) * envelope_size;
10601
10602 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10604
10605 fidl::encoding::encode_in_envelope_optional::<bool, D>(
10610 self.original_association_maintained
10611 .as_ref()
10612 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
10613 encoder,
10614 offset + cur_offset,
10615 depth,
10616 )?;
10617
10618 _prev_end_offset = cur_offset + envelope_size;
10619 if 4 > max_ordinal {
10620 return Ok(());
10621 }
10622
10623 let cur_offset: usize = (4 - 1) * envelope_size;
10626
10627 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10629
10630 fidl::encoding::encode_in_envelope_optional::<bool, D>(
10635 self.target_bss_authenticated
10636 .as_ref()
10637 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
10638 encoder,
10639 offset + cur_offset,
10640 depth,
10641 )?;
10642
10643 _prev_end_offset = cur_offset + envelope_size;
10644 if 5 > max_ordinal {
10645 return Ok(());
10646 }
10647
10648 let cur_offset: usize = (5 - 1) * envelope_size;
10651
10652 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10654
10655 fidl::encoding::encode_in_envelope_optional::<u16, D>(
10660 self.association_id.as_ref().map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
10661 encoder,
10662 offset + cur_offset,
10663 depth,
10664 )?;
10665
10666 _prev_end_offset = cur_offset + envelope_size;
10667 if 6 > max_ordinal {
10668 return Ok(());
10669 }
10670
10671 let cur_offset: usize = (6 - 1) * envelope_size;
10674
10675 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10677
10678 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<u8>, D>(
10683 self.association_ies.as_ref().map(<fidl::encoding::UnboundedVector<u8> as fidl::encoding::ValueTypeMarker>::borrow),
10684 encoder, offset + cur_offset, depth
10685 )?;
10686
10687 _prev_end_offset = cur_offset + envelope_size;
10688
10689 Ok(())
10690 }
10691 }
10692
10693 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
10694 for WlanFullmacImplIfcRoamResultIndRequest
10695 {
10696 #[inline(always)]
10697 fn new_empty() -> Self {
10698 Self::default()
10699 }
10700
10701 unsafe fn decode(
10702 &mut self,
10703 decoder: &mut fidl::encoding::Decoder<'_, D>,
10704 offset: usize,
10705 mut depth: fidl::encoding::Depth,
10706 ) -> fidl::Result<()> {
10707 decoder.debug_check_bounds::<Self>(offset);
10708 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
10709 None => return Err(fidl::Error::NotNullable),
10710 Some(len) => len,
10711 };
10712 if len == 0 {
10714 return Ok(());
10715 };
10716 depth.increment()?;
10717 let envelope_size = 8;
10718 let bytes_len = len * envelope_size;
10719 let offset = decoder.out_of_line_offset(bytes_len)?;
10720 let mut _next_ordinal_to_read = 0;
10722 let mut next_offset = offset;
10723 let end_offset = offset + bytes_len;
10724 _next_ordinal_to_read += 1;
10725 if next_offset >= end_offset {
10726 return Ok(());
10727 }
10728
10729 while _next_ordinal_to_read < 1 {
10731 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10732 _next_ordinal_to_read += 1;
10733 next_offset += envelope_size;
10734 }
10735
10736 let next_out_of_line = decoder.next_out_of_line();
10737 let handles_before = decoder.remaining_handles();
10738 if let Some((inlined, num_bytes, num_handles)) =
10739 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10740 {
10741 let member_inline_size =
10742 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
10743 decoder.context,
10744 );
10745 if inlined != (member_inline_size <= 4) {
10746 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10747 }
10748 let inner_offset;
10749 let mut inner_depth = depth.clone();
10750 if inlined {
10751 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10752 inner_offset = next_offset;
10753 } else {
10754 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10755 inner_depth.increment()?;
10756 }
10757 let val_ref = self
10758 .selected_bssid
10759 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
10760 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
10761 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10762 {
10763 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10764 }
10765 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10766 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10767 }
10768 }
10769
10770 next_offset += envelope_size;
10771 _next_ordinal_to_read += 1;
10772 if next_offset >= end_offset {
10773 return Ok(());
10774 }
10775
10776 while _next_ordinal_to_read < 2 {
10778 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10779 _next_ordinal_to_read += 1;
10780 next_offset += envelope_size;
10781 }
10782
10783 let next_out_of_line = decoder.next_out_of_line();
10784 let handles_before = decoder.remaining_handles();
10785 if let Some((inlined, num_bytes, num_handles)) =
10786 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10787 {
10788 let member_inline_size = <fidl_fuchsia_wlan_ieee80211__common::StatusCode as fidl::encoding::TypeMarker>::inline_size(decoder.context);
10789 if inlined != (member_inline_size <= 4) {
10790 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10791 }
10792 let inner_offset;
10793 let mut inner_depth = depth.clone();
10794 if inlined {
10795 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10796 inner_offset = next_offset;
10797 } else {
10798 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10799 inner_depth.increment()?;
10800 }
10801 let val_ref = self.status_code.get_or_insert_with(|| {
10802 fidl::new_empty!(fidl_fuchsia_wlan_ieee80211__common::StatusCode, D)
10803 });
10804 fidl::decode!(
10805 fidl_fuchsia_wlan_ieee80211__common::StatusCode,
10806 D,
10807 val_ref,
10808 decoder,
10809 inner_offset,
10810 inner_depth
10811 )?;
10812 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10813 {
10814 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10815 }
10816 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10817 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10818 }
10819 }
10820
10821 next_offset += envelope_size;
10822 _next_ordinal_to_read += 1;
10823 if next_offset >= end_offset {
10824 return Ok(());
10825 }
10826
10827 while _next_ordinal_to_read < 3 {
10829 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10830 _next_ordinal_to_read += 1;
10831 next_offset += envelope_size;
10832 }
10833
10834 let next_out_of_line = decoder.next_out_of_line();
10835 let handles_before = decoder.remaining_handles();
10836 if let Some((inlined, num_bytes, num_handles)) =
10837 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10838 {
10839 let member_inline_size =
10840 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
10841 if inlined != (member_inline_size <= 4) {
10842 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10843 }
10844 let inner_offset;
10845 let mut inner_depth = depth.clone();
10846 if inlined {
10847 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10848 inner_offset = next_offset;
10849 } else {
10850 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10851 inner_depth.increment()?;
10852 }
10853 let val_ref = self
10854 .original_association_maintained
10855 .get_or_insert_with(|| fidl::new_empty!(bool, D));
10856 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
10857 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10858 {
10859 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10860 }
10861 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10862 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10863 }
10864 }
10865
10866 next_offset += envelope_size;
10867 _next_ordinal_to_read += 1;
10868 if next_offset >= end_offset {
10869 return Ok(());
10870 }
10871
10872 while _next_ordinal_to_read < 4 {
10874 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10875 _next_ordinal_to_read += 1;
10876 next_offset += envelope_size;
10877 }
10878
10879 let next_out_of_line = decoder.next_out_of_line();
10880 let handles_before = decoder.remaining_handles();
10881 if let Some((inlined, num_bytes, num_handles)) =
10882 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10883 {
10884 let member_inline_size =
10885 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
10886 if inlined != (member_inline_size <= 4) {
10887 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10888 }
10889 let inner_offset;
10890 let mut inner_depth = depth.clone();
10891 if inlined {
10892 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10893 inner_offset = next_offset;
10894 } else {
10895 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10896 inner_depth.increment()?;
10897 }
10898 let val_ref =
10899 self.target_bss_authenticated.get_or_insert_with(|| fidl::new_empty!(bool, D));
10900 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
10901 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10902 {
10903 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10904 }
10905 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10906 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10907 }
10908 }
10909
10910 next_offset += envelope_size;
10911 _next_ordinal_to_read += 1;
10912 if next_offset >= end_offset {
10913 return Ok(());
10914 }
10915
10916 while _next_ordinal_to_read < 5 {
10918 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10919 _next_ordinal_to_read += 1;
10920 next_offset += envelope_size;
10921 }
10922
10923 let next_out_of_line = decoder.next_out_of_line();
10924 let handles_before = decoder.remaining_handles();
10925 if let Some((inlined, num_bytes, num_handles)) =
10926 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10927 {
10928 let member_inline_size =
10929 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
10930 if inlined != (member_inline_size <= 4) {
10931 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10932 }
10933 let inner_offset;
10934 let mut inner_depth = depth.clone();
10935 if inlined {
10936 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10937 inner_offset = next_offset;
10938 } else {
10939 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10940 inner_depth.increment()?;
10941 }
10942 let val_ref = self.association_id.get_or_insert_with(|| fidl::new_empty!(u16, D));
10943 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
10944 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10945 {
10946 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10947 }
10948 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10949 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10950 }
10951 }
10952
10953 next_offset += envelope_size;
10954 _next_ordinal_to_read += 1;
10955 if next_offset >= end_offset {
10956 return Ok(());
10957 }
10958
10959 while _next_ordinal_to_read < 6 {
10961 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10962 _next_ordinal_to_read += 1;
10963 next_offset += envelope_size;
10964 }
10965
10966 let next_out_of_line = decoder.next_out_of_line();
10967 let handles_before = decoder.remaining_handles();
10968 if let Some((inlined, num_bytes, num_handles)) =
10969 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10970 {
10971 let member_inline_size = <fidl::encoding::UnboundedVector<u8> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
10972 if inlined != (member_inline_size <= 4) {
10973 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10974 }
10975 let inner_offset;
10976 let mut inner_depth = depth.clone();
10977 if inlined {
10978 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10979 inner_offset = next_offset;
10980 } else {
10981 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10982 inner_depth.increment()?;
10983 }
10984 let val_ref = self.association_ies.get_or_insert_with(|| {
10985 fidl::new_empty!(fidl::encoding::UnboundedVector<u8>, D)
10986 });
10987 fidl::decode!(
10988 fidl::encoding::UnboundedVector<u8>,
10989 D,
10990 val_ref,
10991 decoder,
10992 inner_offset,
10993 inner_depth
10994 )?;
10995 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10996 {
10997 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10998 }
10999 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
11000 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
11001 }
11002 }
11003
11004 next_offset += envelope_size;
11005
11006 while next_offset < end_offset {
11008 _next_ordinal_to_read += 1;
11009 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11010 next_offset += envelope_size;
11011 }
11012
11013 Ok(())
11014 }
11015 }
11016
11017 impl WlanFullmacImplIfcRoamStartIndRequest {
11018 #[inline(always)]
11019 fn max_ordinal_present(&self) -> u64 {
11020 if let Some(_) = self.original_association_maintained {
11021 return 3;
11022 }
11023 if let Some(_) = self.selected_bss {
11024 return 2;
11025 }
11026 if let Some(_) = self.selected_bssid {
11027 return 1;
11028 }
11029 0
11030 }
11031 }
11032
11033 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcRoamStartIndRequest {
11034 type Borrowed<'a> = &'a Self;
11035 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
11036 value
11037 }
11038 }
11039
11040 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcRoamStartIndRequest {
11041 type Owned = Self;
11042
11043 #[inline(always)]
11044 fn inline_align(_context: fidl::encoding::Context) -> usize {
11045 8
11046 }
11047
11048 #[inline(always)]
11049 fn inline_size(_context: fidl::encoding::Context) -> usize {
11050 16
11051 }
11052 }
11053
11054 unsafe impl<D: fidl::encoding::ResourceDialect>
11055 fidl::encoding::Encode<WlanFullmacImplIfcRoamStartIndRequest, D>
11056 for &WlanFullmacImplIfcRoamStartIndRequest
11057 {
11058 unsafe fn encode(
11059 self,
11060 encoder: &mut fidl::encoding::Encoder<'_, D>,
11061 offset: usize,
11062 mut depth: fidl::encoding::Depth,
11063 ) -> fidl::Result<()> {
11064 encoder.debug_check_bounds::<WlanFullmacImplIfcRoamStartIndRequest>(offset);
11065 let max_ordinal: u64 = self.max_ordinal_present();
11067 encoder.write_num(max_ordinal, offset);
11068 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
11069 if max_ordinal == 0 {
11071 return Ok(());
11072 }
11073 depth.increment()?;
11074 let envelope_size = 8;
11075 let bytes_len = max_ordinal as usize * envelope_size;
11076 #[allow(unused_variables)]
11077 let offset = encoder.out_of_line_offset(bytes_len);
11078 let mut _prev_end_offset: usize = 0;
11079 if 1 > max_ordinal {
11080 return Ok(());
11081 }
11082
11083 let cur_offset: usize = (1 - 1) * envelope_size;
11086
11087 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
11089
11090 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
11095 self.selected_bssid
11096 .as_ref()
11097 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
11098 encoder,
11099 offset + cur_offset,
11100 depth,
11101 )?;
11102
11103 _prev_end_offset = cur_offset + envelope_size;
11104 if 2 > max_ordinal {
11105 return Ok(());
11106 }
11107
11108 let cur_offset: usize = (2 - 1) * envelope_size;
11111
11112 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
11114
11115 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_ieee80211__common::BssDescription, D>(
11120 self.selected_bss.as_ref().map(<fidl_fuchsia_wlan_ieee80211__common::BssDescription as fidl::encoding::ValueTypeMarker>::borrow),
11121 encoder, offset + cur_offset, depth
11122 )?;
11123
11124 _prev_end_offset = cur_offset + envelope_size;
11125 if 3 > max_ordinal {
11126 return Ok(());
11127 }
11128
11129 let cur_offset: usize = (3 - 1) * envelope_size;
11132
11133 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
11135
11136 fidl::encoding::encode_in_envelope_optional::<bool, D>(
11141 self.original_association_maintained
11142 .as_ref()
11143 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
11144 encoder,
11145 offset + cur_offset,
11146 depth,
11147 )?;
11148
11149 _prev_end_offset = cur_offset + envelope_size;
11150
11151 Ok(())
11152 }
11153 }
11154
11155 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
11156 for WlanFullmacImplIfcRoamStartIndRequest
11157 {
11158 #[inline(always)]
11159 fn new_empty() -> Self {
11160 Self::default()
11161 }
11162
11163 unsafe fn decode(
11164 &mut self,
11165 decoder: &mut fidl::encoding::Decoder<'_, D>,
11166 offset: usize,
11167 mut depth: fidl::encoding::Depth,
11168 ) -> fidl::Result<()> {
11169 decoder.debug_check_bounds::<Self>(offset);
11170 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
11171 None => return Err(fidl::Error::NotNullable),
11172 Some(len) => len,
11173 };
11174 if len == 0 {
11176 return Ok(());
11177 };
11178 depth.increment()?;
11179 let envelope_size = 8;
11180 let bytes_len = len * envelope_size;
11181 let offset = decoder.out_of_line_offset(bytes_len)?;
11182 let mut _next_ordinal_to_read = 0;
11184 let mut next_offset = offset;
11185 let end_offset = offset + bytes_len;
11186 _next_ordinal_to_read += 1;
11187 if next_offset >= end_offset {
11188 return Ok(());
11189 }
11190
11191 while _next_ordinal_to_read < 1 {
11193 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11194 _next_ordinal_to_read += 1;
11195 next_offset += envelope_size;
11196 }
11197
11198 let next_out_of_line = decoder.next_out_of_line();
11199 let handles_before = decoder.remaining_handles();
11200 if let Some((inlined, num_bytes, num_handles)) =
11201 fidl::encoding::decode_envelope_header(decoder, next_offset)?
11202 {
11203 let member_inline_size =
11204 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
11205 decoder.context,
11206 );
11207 if inlined != (member_inline_size <= 4) {
11208 return Err(fidl::Error::InvalidInlineBitInEnvelope);
11209 }
11210 let inner_offset;
11211 let mut inner_depth = depth.clone();
11212 if inlined {
11213 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
11214 inner_offset = next_offset;
11215 } else {
11216 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
11217 inner_depth.increment()?;
11218 }
11219 let val_ref = self
11220 .selected_bssid
11221 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
11222 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
11223 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
11224 {
11225 return Err(fidl::Error::InvalidNumBytesInEnvelope);
11226 }
11227 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
11228 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
11229 }
11230 }
11231
11232 next_offset += envelope_size;
11233 _next_ordinal_to_read += 1;
11234 if next_offset >= end_offset {
11235 return Ok(());
11236 }
11237
11238 while _next_ordinal_to_read < 2 {
11240 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11241 _next_ordinal_to_read += 1;
11242 next_offset += envelope_size;
11243 }
11244
11245 let next_out_of_line = decoder.next_out_of_line();
11246 let handles_before = decoder.remaining_handles();
11247 if let Some((inlined, num_bytes, num_handles)) =
11248 fidl::encoding::decode_envelope_header(decoder, next_offset)?
11249 {
11250 let member_inline_size = <fidl_fuchsia_wlan_ieee80211__common::BssDescription as fidl::encoding::TypeMarker>::inline_size(decoder.context);
11251 if inlined != (member_inline_size <= 4) {
11252 return Err(fidl::Error::InvalidInlineBitInEnvelope);
11253 }
11254 let inner_offset;
11255 let mut inner_depth = depth.clone();
11256 if inlined {
11257 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
11258 inner_offset = next_offset;
11259 } else {
11260 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
11261 inner_depth.increment()?;
11262 }
11263 let val_ref = self.selected_bss.get_or_insert_with(|| {
11264 fidl::new_empty!(fidl_fuchsia_wlan_ieee80211__common::BssDescription, D)
11265 });
11266 fidl::decode!(
11267 fidl_fuchsia_wlan_ieee80211__common::BssDescription,
11268 D,
11269 val_ref,
11270 decoder,
11271 inner_offset,
11272 inner_depth
11273 )?;
11274 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
11275 {
11276 return Err(fidl::Error::InvalidNumBytesInEnvelope);
11277 }
11278 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
11279 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
11280 }
11281 }
11282
11283 next_offset += envelope_size;
11284 _next_ordinal_to_read += 1;
11285 if next_offset >= end_offset {
11286 return Ok(());
11287 }
11288
11289 while _next_ordinal_to_read < 3 {
11291 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11292 _next_ordinal_to_read += 1;
11293 next_offset += envelope_size;
11294 }
11295
11296 let next_out_of_line = decoder.next_out_of_line();
11297 let handles_before = decoder.remaining_handles();
11298 if let Some((inlined, num_bytes, num_handles)) =
11299 fidl::encoding::decode_envelope_header(decoder, next_offset)?
11300 {
11301 let member_inline_size =
11302 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
11303 if inlined != (member_inline_size <= 4) {
11304 return Err(fidl::Error::InvalidInlineBitInEnvelope);
11305 }
11306 let inner_offset;
11307 let mut inner_depth = depth.clone();
11308 if inlined {
11309 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
11310 inner_offset = next_offset;
11311 } else {
11312 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
11313 inner_depth.increment()?;
11314 }
11315 let val_ref = self
11316 .original_association_maintained
11317 .get_or_insert_with(|| fidl::new_empty!(bool, D));
11318 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
11319 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
11320 {
11321 return Err(fidl::Error::InvalidNumBytesInEnvelope);
11322 }
11323 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
11324 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
11325 }
11326 }
11327
11328 next_offset += envelope_size;
11329
11330 while next_offset < end_offset {
11332 _next_ordinal_to_read += 1;
11333 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11334 next_offset += envelope_size;
11335 }
11336
11337 Ok(())
11338 }
11339 }
11340
11341 impl WlanFullmacImplIfcSaeHandshakeIndRequest {
11342 #[inline(always)]
11343 fn max_ordinal_present(&self) -> u64 {
11344 if let Some(_) = self.peer_sta_address {
11345 return 1;
11346 }
11347 0
11348 }
11349 }
11350
11351 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcSaeHandshakeIndRequest {
11352 type Borrowed<'a> = &'a Self;
11353 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
11354 value
11355 }
11356 }
11357
11358 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcSaeHandshakeIndRequest {
11359 type Owned = Self;
11360
11361 #[inline(always)]
11362 fn inline_align(_context: fidl::encoding::Context) -> usize {
11363 8
11364 }
11365
11366 #[inline(always)]
11367 fn inline_size(_context: fidl::encoding::Context) -> usize {
11368 16
11369 }
11370 }
11371
11372 unsafe impl<D: fidl::encoding::ResourceDialect>
11373 fidl::encoding::Encode<WlanFullmacImplIfcSaeHandshakeIndRequest, D>
11374 for &WlanFullmacImplIfcSaeHandshakeIndRequest
11375 {
11376 unsafe fn encode(
11377 self,
11378 encoder: &mut fidl::encoding::Encoder<'_, D>,
11379 offset: usize,
11380 mut depth: fidl::encoding::Depth,
11381 ) -> fidl::Result<()> {
11382 encoder.debug_check_bounds::<WlanFullmacImplIfcSaeHandshakeIndRequest>(offset);
11383 let max_ordinal: u64 = self.max_ordinal_present();
11385 encoder.write_num(max_ordinal, offset);
11386 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
11387 if max_ordinal == 0 {
11389 return Ok(());
11390 }
11391 depth.increment()?;
11392 let envelope_size = 8;
11393 let bytes_len = max_ordinal as usize * envelope_size;
11394 #[allow(unused_variables)]
11395 let offset = encoder.out_of_line_offset(bytes_len);
11396 let mut _prev_end_offset: usize = 0;
11397 if 1 > max_ordinal {
11398 return Ok(());
11399 }
11400
11401 let cur_offset: usize = (1 - 1) * envelope_size;
11404
11405 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
11407
11408 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
11413 self.peer_sta_address
11414 .as_ref()
11415 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
11416 encoder,
11417 offset + cur_offset,
11418 depth,
11419 )?;
11420
11421 _prev_end_offset = cur_offset + envelope_size;
11422
11423 Ok(())
11424 }
11425 }
11426
11427 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
11428 for WlanFullmacImplIfcSaeHandshakeIndRequest
11429 {
11430 #[inline(always)]
11431 fn new_empty() -> Self {
11432 Self::default()
11433 }
11434
11435 unsafe fn decode(
11436 &mut self,
11437 decoder: &mut fidl::encoding::Decoder<'_, D>,
11438 offset: usize,
11439 mut depth: fidl::encoding::Depth,
11440 ) -> fidl::Result<()> {
11441 decoder.debug_check_bounds::<Self>(offset);
11442 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
11443 None => return Err(fidl::Error::NotNullable),
11444 Some(len) => len,
11445 };
11446 if len == 0 {
11448 return Ok(());
11449 };
11450 depth.increment()?;
11451 let envelope_size = 8;
11452 let bytes_len = len * envelope_size;
11453 let offset = decoder.out_of_line_offset(bytes_len)?;
11454 let mut _next_ordinal_to_read = 0;
11456 let mut next_offset = offset;
11457 let end_offset = offset + bytes_len;
11458 _next_ordinal_to_read += 1;
11459 if next_offset >= end_offset {
11460 return Ok(());
11461 }
11462
11463 while _next_ordinal_to_read < 1 {
11465 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11466 _next_ordinal_to_read += 1;
11467 next_offset += envelope_size;
11468 }
11469
11470 let next_out_of_line = decoder.next_out_of_line();
11471 let handles_before = decoder.remaining_handles();
11472 if let Some((inlined, num_bytes, num_handles)) =
11473 fidl::encoding::decode_envelope_header(decoder, next_offset)?
11474 {
11475 let member_inline_size =
11476 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
11477 decoder.context,
11478 );
11479 if inlined != (member_inline_size <= 4) {
11480 return Err(fidl::Error::InvalidInlineBitInEnvelope);
11481 }
11482 let inner_offset;
11483 let mut inner_depth = depth.clone();
11484 if inlined {
11485 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
11486 inner_offset = next_offset;
11487 } else {
11488 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
11489 inner_depth.increment()?;
11490 }
11491 let val_ref = self
11492 .peer_sta_address
11493 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
11494 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
11495 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
11496 {
11497 return Err(fidl::Error::InvalidNumBytesInEnvelope);
11498 }
11499 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
11500 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
11501 }
11502 }
11503
11504 next_offset += envelope_size;
11505
11506 while next_offset < end_offset {
11508 _next_ordinal_to_read += 1;
11509 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11510 next_offset += envelope_size;
11511 }
11512
11513 Ok(())
11514 }
11515 }
11516
11517 impl WlanFullmacImplIfcStartConfRequest {
11518 #[inline(always)]
11519 fn max_ordinal_present(&self) -> u64 {
11520 if let Some(_) = self.result_code {
11521 return 1;
11522 }
11523 0
11524 }
11525 }
11526
11527 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcStartConfRequest {
11528 type Borrowed<'a> = &'a Self;
11529 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
11530 value
11531 }
11532 }
11533
11534 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcStartConfRequest {
11535 type Owned = Self;
11536
11537 #[inline(always)]
11538 fn inline_align(_context: fidl::encoding::Context) -> usize {
11539 8
11540 }
11541
11542 #[inline(always)]
11543 fn inline_size(_context: fidl::encoding::Context) -> usize {
11544 16
11545 }
11546 }
11547
11548 unsafe impl<D: fidl::encoding::ResourceDialect>
11549 fidl::encoding::Encode<WlanFullmacImplIfcStartConfRequest, D>
11550 for &WlanFullmacImplIfcStartConfRequest
11551 {
11552 unsafe fn encode(
11553 self,
11554 encoder: &mut fidl::encoding::Encoder<'_, D>,
11555 offset: usize,
11556 mut depth: fidl::encoding::Depth,
11557 ) -> fidl::Result<()> {
11558 encoder.debug_check_bounds::<WlanFullmacImplIfcStartConfRequest>(offset);
11559 let max_ordinal: u64 = self.max_ordinal_present();
11561 encoder.write_num(max_ordinal, offset);
11562 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
11563 if max_ordinal == 0 {
11565 return Ok(());
11566 }
11567 depth.increment()?;
11568 let envelope_size = 8;
11569 let bytes_len = max_ordinal as usize * envelope_size;
11570 #[allow(unused_variables)]
11571 let offset = encoder.out_of_line_offset(bytes_len);
11572 let mut _prev_end_offset: usize = 0;
11573 if 1 > max_ordinal {
11574 return Ok(());
11575 }
11576
11577 let cur_offset: usize = (1 - 1) * envelope_size;
11580
11581 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
11583
11584 fidl::encoding::encode_in_envelope_optional::<StartResult, D>(
11589 self.result_code
11590 .as_ref()
11591 .map(<StartResult as fidl::encoding::ValueTypeMarker>::borrow),
11592 encoder,
11593 offset + cur_offset,
11594 depth,
11595 )?;
11596
11597 _prev_end_offset = cur_offset + envelope_size;
11598
11599 Ok(())
11600 }
11601 }
11602
11603 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
11604 for WlanFullmacImplIfcStartConfRequest
11605 {
11606 #[inline(always)]
11607 fn new_empty() -> Self {
11608 Self::default()
11609 }
11610
11611 unsafe fn decode(
11612 &mut self,
11613 decoder: &mut fidl::encoding::Decoder<'_, D>,
11614 offset: usize,
11615 mut depth: fidl::encoding::Depth,
11616 ) -> fidl::Result<()> {
11617 decoder.debug_check_bounds::<Self>(offset);
11618 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
11619 None => return Err(fidl::Error::NotNullable),
11620 Some(len) => len,
11621 };
11622 if len == 0 {
11624 return Ok(());
11625 };
11626 depth.increment()?;
11627 let envelope_size = 8;
11628 let bytes_len = len * envelope_size;
11629 let offset = decoder.out_of_line_offset(bytes_len)?;
11630 let mut _next_ordinal_to_read = 0;
11632 let mut next_offset = offset;
11633 let end_offset = offset + bytes_len;
11634 _next_ordinal_to_read += 1;
11635 if next_offset >= end_offset {
11636 return Ok(());
11637 }
11638
11639 while _next_ordinal_to_read < 1 {
11641 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11642 _next_ordinal_to_read += 1;
11643 next_offset += envelope_size;
11644 }
11645
11646 let next_out_of_line = decoder.next_out_of_line();
11647 let handles_before = decoder.remaining_handles();
11648 if let Some((inlined, num_bytes, num_handles)) =
11649 fidl::encoding::decode_envelope_header(decoder, next_offset)?
11650 {
11651 let member_inline_size =
11652 <StartResult as fidl::encoding::TypeMarker>::inline_size(decoder.context);
11653 if inlined != (member_inline_size <= 4) {
11654 return Err(fidl::Error::InvalidInlineBitInEnvelope);
11655 }
11656 let inner_offset;
11657 let mut inner_depth = depth.clone();
11658 if inlined {
11659 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
11660 inner_offset = next_offset;
11661 } else {
11662 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
11663 inner_depth.increment()?;
11664 }
11665 let val_ref =
11666 self.result_code.get_or_insert_with(|| fidl::new_empty!(StartResult, D));
11667 fidl::decode!(StartResult, D, val_ref, decoder, inner_offset, inner_depth)?;
11668 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
11669 {
11670 return Err(fidl::Error::InvalidNumBytesInEnvelope);
11671 }
11672 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
11673 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
11674 }
11675 }
11676
11677 next_offset += envelope_size;
11678
11679 while next_offset < end_offset {
11681 _next_ordinal_to_read += 1;
11682 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11683 next_offset += envelope_size;
11684 }
11685
11686 Ok(())
11687 }
11688 }
11689
11690 impl WlanFullmacImplIfcStopConfRequest {
11691 #[inline(always)]
11692 fn max_ordinal_present(&self) -> u64 {
11693 if let Some(_) = self.result_code {
11694 return 1;
11695 }
11696 0
11697 }
11698 }
11699
11700 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcStopConfRequest {
11701 type Borrowed<'a> = &'a Self;
11702 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
11703 value
11704 }
11705 }
11706
11707 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcStopConfRequest {
11708 type Owned = Self;
11709
11710 #[inline(always)]
11711 fn inline_align(_context: fidl::encoding::Context) -> usize {
11712 8
11713 }
11714
11715 #[inline(always)]
11716 fn inline_size(_context: fidl::encoding::Context) -> usize {
11717 16
11718 }
11719 }
11720
11721 unsafe impl<D: fidl::encoding::ResourceDialect>
11722 fidl::encoding::Encode<WlanFullmacImplIfcStopConfRequest, D>
11723 for &WlanFullmacImplIfcStopConfRequest
11724 {
11725 unsafe fn encode(
11726 self,
11727 encoder: &mut fidl::encoding::Encoder<'_, D>,
11728 offset: usize,
11729 mut depth: fidl::encoding::Depth,
11730 ) -> fidl::Result<()> {
11731 encoder.debug_check_bounds::<WlanFullmacImplIfcStopConfRequest>(offset);
11732 let max_ordinal: u64 = self.max_ordinal_present();
11734 encoder.write_num(max_ordinal, offset);
11735 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
11736 if max_ordinal == 0 {
11738 return Ok(());
11739 }
11740 depth.increment()?;
11741 let envelope_size = 8;
11742 let bytes_len = max_ordinal as usize * envelope_size;
11743 #[allow(unused_variables)]
11744 let offset = encoder.out_of_line_offset(bytes_len);
11745 let mut _prev_end_offset: usize = 0;
11746 if 1 > max_ordinal {
11747 return Ok(());
11748 }
11749
11750 let cur_offset: usize = (1 - 1) * envelope_size;
11753
11754 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
11756
11757 fidl::encoding::encode_in_envelope_optional::<StopResult, D>(
11762 self.result_code
11763 .as_ref()
11764 .map(<StopResult as fidl::encoding::ValueTypeMarker>::borrow),
11765 encoder,
11766 offset + cur_offset,
11767 depth,
11768 )?;
11769
11770 _prev_end_offset = cur_offset + envelope_size;
11771
11772 Ok(())
11773 }
11774 }
11775
11776 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
11777 for WlanFullmacImplIfcStopConfRequest
11778 {
11779 #[inline(always)]
11780 fn new_empty() -> Self {
11781 Self::default()
11782 }
11783
11784 unsafe fn decode(
11785 &mut self,
11786 decoder: &mut fidl::encoding::Decoder<'_, D>,
11787 offset: usize,
11788 mut depth: fidl::encoding::Depth,
11789 ) -> fidl::Result<()> {
11790 decoder.debug_check_bounds::<Self>(offset);
11791 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
11792 None => return Err(fidl::Error::NotNullable),
11793 Some(len) => len,
11794 };
11795 if len == 0 {
11797 return Ok(());
11798 };
11799 depth.increment()?;
11800 let envelope_size = 8;
11801 let bytes_len = len * envelope_size;
11802 let offset = decoder.out_of_line_offset(bytes_len)?;
11803 let mut _next_ordinal_to_read = 0;
11805 let mut next_offset = offset;
11806 let end_offset = offset + bytes_len;
11807 _next_ordinal_to_read += 1;
11808 if next_offset >= end_offset {
11809 return Ok(());
11810 }
11811
11812 while _next_ordinal_to_read < 1 {
11814 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11815 _next_ordinal_to_read += 1;
11816 next_offset += envelope_size;
11817 }
11818
11819 let next_out_of_line = decoder.next_out_of_line();
11820 let handles_before = decoder.remaining_handles();
11821 if let Some((inlined, num_bytes, num_handles)) =
11822 fidl::encoding::decode_envelope_header(decoder, next_offset)?
11823 {
11824 let member_inline_size =
11825 <StopResult as fidl::encoding::TypeMarker>::inline_size(decoder.context);
11826 if inlined != (member_inline_size <= 4) {
11827 return Err(fidl::Error::InvalidInlineBitInEnvelope);
11828 }
11829 let inner_offset;
11830 let mut inner_depth = depth.clone();
11831 if inlined {
11832 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
11833 inner_offset = next_offset;
11834 } else {
11835 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
11836 inner_depth.increment()?;
11837 }
11838 let val_ref =
11839 self.result_code.get_or_insert_with(|| fidl::new_empty!(StopResult, D));
11840 fidl::decode!(StopResult, D, val_ref, decoder, inner_offset, inner_depth)?;
11841 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
11842 {
11843 return Err(fidl::Error::InvalidNumBytesInEnvelope);
11844 }
11845 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
11846 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
11847 }
11848 }
11849
11850 next_offset += envelope_size;
11851
11852 while next_offset < end_offset {
11854 _next_ordinal_to_read += 1;
11855 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11856 next_offset += envelope_size;
11857 }
11858
11859 Ok(())
11860 }
11861 }
11862
11863 impl WlanFullmacImplInstallApfPacketFilterRequest {
11864 #[inline(always)]
11865 fn max_ordinal_present(&self) -> u64 {
11866 if let Some(_) = self.program {
11867 return 1;
11868 }
11869 0
11870 }
11871 }
11872
11873 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplInstallApfPacketFilterRequest {
11874 type Borrowed<'a> = &'a Self;
11875 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
11876 value
11877 }
11878 }
11879
11880 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplInstallApfPacketFilterRequest {
11881 type Owned = Self;
11882
11883 #[inline(always)]
11884 fn inline_align(_context: fidl::encoding::Context) -> usize {
11885 8
11886 }
11887
11888 #[inline(always)]
11889 fn inline_size(_context: fidl::encoding::Context) -> usize {
11890 16
11891 }
11892 }
11893
11894 unsafe impl<D: fidl::encoding::ResourceDialect>
11895 fidl::encoding::Encode<WlanFullmacImplInstallApfPacketFilterRequest, D>
11896 for &WlanFullmacImplInstallApfPacketFilterRequest
11897 {
11898 unsafe fn encode(
11899 self,
11900 encoder: &mut fidl::encoding::Encoder<'_, D>,
11901 offset: usize,
11902 mut depth: fidl::encoding::Depth,
11903 ) -> fidl::Result<()> {
11904 encoder.debug_check_bounds::<WlanFullmacImplInstallApfPacketFilterRequest>(offset);
11905 let max_ordinal: u64 = self.max_ordinal_present();
11907 encoder.write_num(max_ordinal, offset);
11908 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
11909 if max_ordinal == 0 {
11911 return Ok(());
11912 }
11913 depth.increment()?;
11914 let envelope_size = 8;
11915 let bytes_len = max_ordinal as usize * envelope_size;
11916 #[allow(unused_variables)]
11917 let offset = encoder.out_of_line_offset(bytes_len);
11918 let mut _prev_end_offset: usize = 0;
11919 if 1 > max_ordinal {
11920 return Ok(());
11921 }
11922
11923 let cur_offset: usize = (1 - 1) * envelope_size;
11926
11927 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
11929
11930 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<u8>, D>(
11935 self.program.as_ref().map(<fidl::encoding::UnboundedVector<u8> as fidl::encoding::ValueTypeMarker>::borrow),
11936 encoder, offset + cur_offset, depth
11937 )?;
11938
11939 _prev_end_offset = cur_offset + envelope_size;
11940
11941 Ok(())
11942 }
11943 }
11944
11945 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
11946 for WlanFullmacImplInstallApfPacketFilterRequest
11947 {
11948 #[inline(always)]
11949 fn new_empty() -> Self {
11950 Self::default()
11951 }
11952
11953 unsafe fn decode(
11954 &mut self,
11955 decoder: &mut fidl::encoding::Decoder<'_, D>,
11956 offset: usize,
11957 mut depth: fidl::encoding::Depth,
11958 ) -> fidl::Result<()> {
11959 decoder.debug_check_bounds::<Self>(offset);
11960 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
11961 None => return Err(fidl::Error::NotNullable),
11962 Some(len) => len,
11963 };
11964 if len == 0 {
11966 return Ok(());
11967 };
11968 depth.increment()?;
11969 let envelope_size = 8;
11970 let bytes_len = len * envelope_size;
11971 let offset = decoder.out_of_line_offset(bytes_len)?;
11972 let mut _next_ordinal_to_read = 0;
11974 let mut next_offset = offset;
11975 let end_offset = offset + bytes_len;
11976 _next_ordinal_to_read += 1;
11977 if next_offset >= end_offset {
11978 return Ok(());
11979 }
11980
11981 while _next_ordinal_to_read < 1 {
11983 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11984 _next_ordinal_to_read += 1;
11985 next_offset += envelope_size;
11986 }
11987
11988 let next_out_of_line = decoder.next_out_of_line();
11989 let handles_before = decoder.remaining_handles();
11990 if let Some((inlined, num_bytes, num_handles)) =
11991 fidl::encoding::decode_envelope_header(decoder, next_offset)?
11992 {
11993 let member_inline_size = <fidl::encoding::UnboundedVector<u8> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
11994 if inlined != (member_inline_size <= 4) {
11995 return Err(fidl::Error::InvalidInlineBitInEnvelope);
11996 }
11997 let inner_offset;
11998 let mut inner_depth = depth.clone();
11999 if inlined {
12000 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
12001 inner_offset = next_offset;
12002 } else {
12003 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
12004 inner_depth.increment()?;
12005 }
12006 let val_ref = self.program.get_or_insert_with(|| {
12007 fidl::new_empty!(fidl::encoding::UnboundedVector<u8>, D)
12008 });
12009 fidl::decode!(
12010 fidl::encoding::UnboundedVector<u8>,
12011 D,
12012 val_ref,
12013 decoder,
12014 inner_offset,
12015 inner_depth
12016 )?;
12017 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
12018 {
12019 return Err(fidl::Error::InvalidNumBytesInEnvelope);
12020 }
12021 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
12022 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
12023 }
12024 }
12025
12026 next_offset += envelope_size;
12027
12028 while next_offset < end_offset {
12030 _next_ordinal_to_read += 1;
12031 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12032 next_offset += envelope_size;
12033 }
12034
12035 Ok(())
12036 }
12037 }
12038
12039 impl WlanFullmacImplOnLinkStateChangedRequest {
12040 #[inline(always)]
12041 fn max_ordinal_present(&self) -> u64 {
12042 if let Some(_) = self.online {
12043 return 1;
12044 }
12045 0
12046 }
12047 }
12048
12049 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplOnLinkStateChangedRequest {
12050 type Borrowed<'a> = &'a Self;
12051 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
12052 value
12053 }
12054 }
12055
12056 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplOnLinkStateChangedRequest {
12057 type Owned = Self;
12058
12059 #[inline(always)]
12060 fn inline_align(_context: fidl::encoding::Context) -> usize {
12061 8
12062 }
12063
12064 #[inline(always)]
12065 fn inline_size(_context: fidl::encoding::Context) -> usize {
12066 16
12067 }
12068 }
12069
12070 unsafe impl<D: fidl::encoding::ResourceDialect>
12071 fidl::encoding::Encode<WlanFullmacImplOnLinkStateChangedRequest, D>
12072 for &WlanFullmacImplOnLinkStateChangedRequest
12073 {
12074 unsafe fn encode(
12075 self,
12076 encoder: &mut fidl::encoding::Encoder<'_, D>,
12077 offset: usize,
12078 mut depth: fidl::encoding::Depth,
12079 ) -> fidl::Result<()> {
12080 encoder.debug_check_bounds::<WlanFullmacImplOnLinkStateChangedRequest>(offset);
12081 let max_ordinal: u64 = self.max_ordinal_present();
12083 encoder.write_num(max_ordinal, offset);
12084 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
12085 if max_ordinal == 0 {
12087 return Ok(());
12088 }
12089 depth.increment()?;
12090 let envelope_size = 8;
12091 let bytes_len = max_ordinal as usize * envelope_size;
12092 #[allow(unused_variables)]
12093 let offset = encoder.out_of_line_offset(bytes_len);
12094 let mut _prev_end_offset: usize = 0;
12095 if 1 > max_ordinal {
12096 return Ok(());
12097 }
12098
12099 let cur_offset: usize = (1 - 1) * envelope_size;
12102
12103 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12105
12106 fidl::encoding::encode_in_envelope_optional::<bool, D>(
12111 self.online.as_ref().map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
12112 encoder,
12113 offset + cur_offset,
12114 depth,
12115 )?;
12116
12117 _prev_end_offset = cur_offset + envelope_size;
12118
12119 Ok(())
12120 }
12121 }
12122
12123 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
12124 for WlanFullmacImplOnLinkStateChangedRequest
12125 {
12126 #[inline(always)]
12127 fn new_empty() -> Self {
12128 Self::default()
12129 }
12130
12131 unsafe fn decode(
12132 &mut self,
12133 decoder: &mut fidl::encoding::Decoder<'_, D>,
12134 offset: usize,
12135 mut depth: fidl::encoding::Depth,
12136 ) -> fidl::Result<()> {
12137 decoder.debug_check_bounds::<Self>(offset);
12138 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
12139 None => return Err(fidl::Error::NotNullable),
12140 Some(len) => len,
12141 };
12142 if len == 0 {
12144 return Ok(());
12145 };
12146 depth.increment()?;
12147 let envelope_size = 8;
12148 let bytes_len = len * envelope_size;
12149 let offset = decoder.out_of_line_offset(bytes_len)?;
12150 let mut _next_ordinal_to_read = 0;
12152 let mut next_offset = offset;
12153 let end_offset = offset + bytes_len;
12154 _next_ordinal_to_read += 1;
12155 if next_offset >= end_offset {
12156 return Ok(());
12157 }
12158
12159 while _next_ordinal_to_read < 1 {
12161 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12162 _next_ordinal_to_read += 1;
12163 next_offset += envelope_size;
12164 }
12165
12166 let next_out_of_line = decoder.next_out_of_line();
12167 let handles_before = decoder.remaining_handles();
12168 if let Some((inlined, num_bytes, num_handles)) =
12169 fidl::encoding::decode_envelope_header(decoder, next_offset)?
12170 {
12171 let member_inline_size =
12172 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
12173 if inlined != (member_inline_size <= 4) {
12174 return Err(fidl::Error::InvalidInlineBitInEnvelope);
12175 }
12176 let inner_offset;
12177 let mut inner_depth = depth.clone();
12178 if inlined {
12179 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
12180 inner_offset = next_offset;
12181 } else {
12182 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
12183 inner_depth.increment()?;
12184 }
12185 let val_ref = self.online.get_or_insert_with(|| fidl::new_empty!(bool, D));
12186 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
12187 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
12188 {
12189 return Err(fidl::Error::InvalidNumBytesInEnvelope);
12190 }
12191 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
12192 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
12193 }
12194 }
12195
12196 next_offset += envelope_size;
12197
12198 while next_offset < end_offset {
12200 _next_ordinal_to_read += 1;
12201 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12202 next_offset += envelope_size;
12203 }
12204
12205 Ok(())
12206 }
12207 }
12208
12209 impl WlanFullmacImplReconnectRequest {
12210 #[inline(always)]
12211 fn max_ordinal_present(&self) -> u64 {
12212 if let Some(_) = self.peer_sta_address {
12213 return 1;
12214 }
12215 0
12216 }
12217 }
12218
12219 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplReconnectRequest {
12220 type Borrowed<'a> = &'a Self;
12221 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
12222 value
12223 }
12224 }
12225
12226 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplReconnectRequest {
12227 type Owned = Self;
12228
12229 #[inline(always)]
12230 fn inline_align(_context: fidl::encoding::Context) -> usize {
12231 8
12232 }
12233
12234 #[inline(always)]
12235 fn inline_size(_context: fidl::encoding::Context) -> usize {
12236 16
12237 }
12238 }
12239
12240 unsafe impl<D: fidl::encoding::ResourceDialect>
12241 fidl::encoding::Encode<WlanFullmacImplReconnectRequest, D>
12242 for &WlanFullmacImplReconnectRequest
12243 {
12244 unsafe fn encode(
12245 self,
12246 encoder: &mut fidl::encoding::Encoder<'_, D>,
12247 offset: usize,
12248 mut depth: fidl::encoding::Depth,
12249 ) -> fidl::Result<()> {
12250 encoder.debug_check_bounds::<WlanFullmacImplReconnectRequest>(offset);
12251 let max_ordinal: u64 = self.max_ordinal_present();
12253 encoder.write_num(max_ordinal, offset);
12254 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
12255 if max_ordinal == 0 {
12257 return Ok(());
12258 }
12259 depth.increment()?;
12260 let envelope_size = 8;
12261 let bytes_len = max_ordinal as usize * envelope_size;
12262 #[allow(unused_variables)]
12263 let offset = encoder.out_of_line_offset(bytes_len);
12264 let mut _prev_end_offset: usize = 0;
12265 if 1 > max_ordinal {
12266 return Ok(());
12267 }
12268
12269 let cur_offset: usize = (1 - 1) * envelope_size;
12272
12273 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12275
12276 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
12281 self.peer_sta_address
12282 .as_ref()
12283 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
12284 encoder,
12285 offset + cur_offset,
12286 depth,
12287 )?;
12288
12289 _prev_end_offset = cur_offset + envelope_size;
12290
12291 Ok(())
12292 }
12293 }
12294
12295 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
12296 for WlanFullmacImplReconnectRequest
12297 {
12298 #[inline(always)]
12299 fn new_empty() -> Self {
12300 Self::default()
12301 }
12302
12303 unsafe fn decode(
12304 &mut self,
12305 decoder: &mut fidl::encoding::Decoder<'_, D>,
12306 offset: usize,
12307 mut depth: fidl::encoding::Depth,
12308 ) -> fidl::Result<()> {
12309 decoder.debug_check_bounds::<Self>(offset);
12310 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
12311 None => return Err(fidl::Error::NotNullable),
12312 Some(len) => len,
12313 };
12314 if len == 0 {
12316 return Ok(());
12317 };
12318 depth.increment()?;
12319 let envelope_size = 8;
12320 let bytes_len = len * envelope_size;
12321 let offset = decoder.out_of_line_offset(bytes_len)?;
12322 let mut _next_ordinal_to_read = 0;
12324 let mut next_offset = offset;
12325 let end_offset = offset + bytes_len;
12326 _next_ordinal_to_read += 1;
12327 if next_offset >= end_offset {
12328 return Ok(());
12329 }
12330
12331 while _next_ordinal_to_read < 1 {
12333 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12334 _next_ordinal_to_read += 1;
12335 next_offset += envelope_size;
12336 }
12337
12338 let next_out_of_line = decoder.next_out_of_line();
12339 let handles_before = decoder.remaining_handles();
12340 if let Some((inlined, num_bytes, num_handles)) =
12341 fidl::encoding::decode_envelope_header(decoder, next_offset)?
12342 {
12343 let member_inline_size =
12344 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
12345 decoder.context,
12346 );
12347 if inlined != (member_inline_size <= 4) {
12348 return Err(fidl::Error::InvalidInlineBitInEnvelope);
12349 }
12350 let inner_offset;
12351 let mut inner_depth = depth.clone();
12352 if inlined {
12353 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
12354 inner_offset = next_offset;
12355 } else {
12356 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
12357 inner_depth.increment()?;
12358 }
12359 let val_ref = self
12360 .peer_sta_address
12361 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
12362 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
12363 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
12364 {
12365 return Err(fidl::Error::InvalidNumBytesInEnvelope);
12366 }
12367 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
12368 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
12369 }
12370 }
12371
12372 next_offset += envelope_size;
12373
12374 while next_offset < end_offset {
12376 _next_ordinal_to_read += 1;
12377 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12378 next_offset += envelope_size;
12379 }
12380
12381 Ok(())
12382 }
12383 }
12384
12385 impl WlanFullmacImplRoamRequest {
12386 #[inline(always)]
12387 fn max_ordinal_present(&self) -> u64 {
12388 if let Some(_) = self.selected_bss {
12389 return 1;
12390 }
12391 0
12392 }
12393 }
12394
12395 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplRoamRequest {
12396 type Borrowed<'a> = &'a Self;
12397 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
12398 value
12399 }
12400 }
12401
12402 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplRoamRequest {
12403 type Owned = Self;
12404
12405 #[inline(always)]
12406 fn inline_align(_context: fidl::encoding::Context) -> usize {
12407 8
12408 }
12409
12410 #[inline(always)]
12411 fn inline_size(_context: fidl::encoding::Context) -> usize {
12412 16
12413 }
12414 }
12415
12416 unsafe impl<D: fidl::encoding::ResourceDialect>
12417 fidl::encoding::Encode<WlanFullmacImplRoamRequest, D> for &WlanFullmacImplRoamRequest
12418 {
12419 unsafe fn encode(
12420 self,
12421 encoder: &mut fidl::encoding::Encoder<'_, D>,
12422 offset: usize,
12423 mut depth: fidl::encoding::Depth,
12424 ) -> fidl::Result<()> {
12425 encoder.debug_check_bounds::<WlanFullmacImplRoamRequest>(offset);
12426 let max_ordinal: u64 = self.max_ordinal_present();
12428 encoder.write_num(max_ordinal, offset);
12429 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
12430 if max_ordinal == 0 {
12432 return Ok(());
12433 }
12434 depth.increment()?;
12435 let envelope_size = 8;
12436 let bytes_len = max_ordinal as usize * envelope_size;
12437 #[allow(unused_variables)]
12438 let offset = encoder.out_of_line_offset(bytes_len);
12439 let mut _prev_end_offset: usize = 0;
12440 if 1 > max_ordinal {
12441 return Ok(());
12442 }
12443
12444 let cur_offset: usize = (1 - 1) * envelope_size;
12447
12448 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12450
12451 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_ieee80211__common::BssDescription, D>(
12456 self.selected_bss.as_ref().map(<fidl_fuchsia_wlan_ieee80211__common::BssDescription as fidl::encoding::ValueTypeMarker>::borrow),
12457 encoder, offset + cur_offset, depth
12458 )?;
12459
12460 _prev_end_offset = cur_offset + envelope_size;
12461
12462 Ok(())
12463 }
12464 }
12465
12466 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
12467 for WlanFullmacImplRoamRequest
12468 {
12469 #[inline(always)]
12470 fn new_empty() -> Self {
12471 Self::default()
12472 }
12473
12474 unsafe fn decode(
12475 &mut self,
12476 decoder: &mut fidl::encoding::Decoder<'_, D>,
12477 offset: usize,
12478 mut depth: fidl::encoding::Depth,
12479 ) -> fidl::Result<()> {
12480 decoder.debug_check_bounds::<Self>(offset);
12481 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
12482 None => return Err(fidl::Error::NotNullable),
12483 Some(len) => len,
12484 };
12485 if len == 0 {
12487 return Ok(());
12488 };
12489 depth.increment()?;
12490 let envelope_size = 8;
12491 let bytes_len = len * envelope_size;
12492 let offset = decoder.out_of_line_offset(bytes_len)?;
12493 let mut _next_ordinal_to_read = 0;
12495 let mut next_offset = offset;
12496 let end_offset = offset + bytes_len;
12497 _next_ordinal_to_read += 1;
12498 if next_offset >= end_offset {
12499 return Ok(());
12500 }
12501
12502 while _next_ordinal_to_read < 1 {
12504 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12505 _next_ordinal_to_read += 1;
12506 next_offset += envelope_size;
12507 }
12508
12509 let next_out_of_line = decoder.next_out_of_line();
12510 let handles_before = decoder.remaining_handles();
12511 if let Some((inlined, num_bytes, num_handles)) =
12512 fidl::encoding::decode_envelope_header(decoder, next_offset)?
12513 {
12514 let member_inline_size = <fidl_fuchsia_wlan_ieee80211__common::BssDescription as fidl::encoding::TypeMarker>::inline_size(decoder.context);
12515 if inlined != (member_inline_size <= 4) {
12516 return Err(fidl::Error::InvalidInlineBitInEnvelope);
12517 }
12518 let inner_offset;
12519 let mut inner_depth = depth.clone();
12520 if inlined {
12521 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
12522 inner_offset = next_offset;
12523 } else {
12524 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
12525 inner_depth.increment()?;
12526 }
12527 let val_ref = self.selected_bss.get_or_insert_with(|| {
12528 fidl::new_empty!(fidl_fuchsia_wlan_ieee80211__common::BssDescription, D)
12529 });
12530 fidl::decode!(
12531 fidl_fuchsia_wlan_ieee80211__common::BssDescription,
12532 D,
12533 val_ref,
12534 decoder,
12535 inner_offset,
12536 inner_depth
12537 )?;
12538 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
12539 {
12540 return Err(fidl::Error::InvalidNumBytesInEnvelope);
12541 }
12542 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
12543 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
12544 }
12545 }
12546
12547 next_offset += envelope_size;
12548
12549 while next_offset < end_offset {
12551 _next_ordinal_to_read += 1;
12552 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12553 next_offset += envelope_size;
12554 }
12555
12556 Ok(())
12557 }
12558 }
12559
12560 impl WlanFullmacImplSaeHandshakeRespRequest {
12561 #[inline(always)]
12562 fn max_ordinal_present(&self) -> u64 {
12563 if let Some(_) = self.status_code {
12564 return 2;
12565 }
12566 if let Some(_) = self.peer_sta_address {
12567 return 1;
12568 }
12569 0
12570 }
12571 }
12572
12573 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplSaeHandshakeRespRequest {
12574 type Borrowed<'a> = &'a Self;
12575 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
12576 value
12577 }
12578 }
12579
12580 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplSaeHandshakeRespRequest {
12581 type Owned = Self;
12582
12583 #[inline(always)]
12584 fn inline_align(_context: fidl::encoding::Context) -> usize {
12585 8
12586 }
12587
12588 #[inline(always)]
12589 fn inline_size(_context: fidl::encoding::Context) -> usize {
12590 16
12591 }
12592 }
12593
12594 unsafe impl<D: fidl::encoding::ResourceDialect>
12595 fidl::encoding::Encode<WlanFullmacImplSaeHandshakeRespRequest, D>
12596 for &WlanFullmacImplSaeHandshakeRespRequest
12597 {
12598 unsafe fn encode(
12599 self,
12600 encoder: &mut fidl::encoding::Encoder<'_, D>,
12601 offset: usize,
12602 mut depth: fidl::encoding::Depth,
12603 ) -> fidl::Result<()> {
12604 encoder.debug_check_bounds::<WlanFullmacImplSaeHandshakeRespRequest>(offset);
12605 let max_ordinal: u64 = self.max_ordinal_present();
12607 encoder.write_num(max_ordinal, offset);
12608 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
12609 if max_ordinal == 0 {
12611 return Ok(());
12612 }
12613 depth.increment()?;
12614 let envelope_size = 8;
12615 let bytes_len = max_ordinal as usize * envelope_size;
12616 #[allow(unused_variables)]
12617 let offset = encoder.out_of_line_offset(bytes_len);
12618 let mut _prev_end_offset: usize = 0;
12619 if 1 > max_ordinal {
12620 return Ok(());
12621 }
12622
12623 let cur_offset: usize = (1 - 1) * envelope_size;
12626
12627 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12629
12630 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
12635 self.peer_sta_address
12636 .as_ref()
12637 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
12638 encoder,
12639 offset + cur_offset,
12640 depth,
12641 )?;
12642
12643 _prev_end_offset = cur_offset + envelope_size;
12644 if 2 > max_ordinal {
12645 return Ok(());
12646 }
12647
12648 let cur_offset: usize = (2 - 1) * envelope_size;
12651
12652 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12654
12655 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_ieee80211__common::StatusCode, D>(
12660 self.status_code.as_ref().map(<fidl_fuchsia_wlan_ieee80211__common::StatusCode as fidl::encoding::ValueTypeMarker>::borrow),
12661 encoder, offset + cur_offset, depth
12662 )?;
12663
12664 _prev_end_offset = cur_offset + envelope_size;
12665
12666 Ok(())
12667 }
12668 }
12669
12670 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
12671 for WlanFullmacImplSaeHandshakeRespRequest
12672 {
12673 #[inline(always)]
12674 fn new_empty() -> Self {
12675 Self::default()
12676 }
12677
12678 unsafe fn decode(
12679 &mut self,
12680 decoder: &mut fidl::encoding::Decoder<'_, D>,
12681 offset: usize,
12682 mut depth: fidl::encoding::Depth,
12683 ) -> fidl::Result<()> {
12684 decoder.debug_check_bounds::<Self>(offset);
12685 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
12686 None => return Err(fidl::Error::NotNullable),
12687 Some(len) => len,
12688 };
12689 if len == 0 {
12691 return Ok(());
12692 };
12693 depth.increment()?;
12694 let envelope_size = 8;
12695 let bytes_len = len * envelope_size;
12696 let offset = decoder.out_of_line_offset(bytes_len)?;
12697 let mut _next_ordinal_to_read = 0;
12699 let mut next_offset = offset;
12700 let end_offset = offset + bytes_len;
12701 _next_ordinal_to_read += 1;
12702 if next_offset >= end_offset {
12703 return Ok(());
12704 }
12705
12706 while _next_ordinal_to_read < 1 {
12708 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12709 _next_ordinal_to_read += 1;
12710 next_offset += envelope_size;
12711 }
12712
12713 let next_out_of_line = decoder.next_out_of_line();
12714 let handles_before = decoder.remaining_handles();
12715 if let Some((inlined, num_bytes, num_handles)) =
12716 fidl::encoding::decode_envelope_header(decoder, next_offset)?
12717 {
12718 let member_inline_size =
12719 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
12720 decoder.context,
12721 );
12722 if inlined != (member_inline_size <= 4) {
12723 return Err(fidl::Error::InvalidInlineBitInEnvelope);
12724 }
12725 let inner_offset;
12726 let mut inner_depth = depth.clone();
12727 if inlined {
12728 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
12729 inner_offset = next_offset;
12730 } else {
12731 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
12732 inner_depth.increment()?;
12733 }
12734 let val_ref = self
12735 .peer_sta_address
12736 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
12737 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
12738 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
12739 {
12740 return Err(fidl::Error::InvalidNumBytesInEnvelope);
12741 }
12742 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
12743 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
12744 }
12745 }
12746
12747 next_offset += envelope_size;
12748 _next_ordinal_to_read += 1;
12749 if next_offset >= end_offset {
12750 return Ok(());
12751 }
12752
12753 while _next_ordinal_to_read < 2 {
12755 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12756 _next_ordinal_to_read += 1;
12757 next_offset += envelope_size;
12758 }
12759
12760 let next_out_of_line = decoder.next_out_of_line();
12761 let handles_before = decoder.remaining_handles();
12762 if let Some((inlined, num_bytes, num_handles)) =
12763 fidl::encoding::decode_envelope_header(decoder, next_offset)?
12764 {
12765 let member_inline_size = <fidl_fuchsia_wlan_ieee80211__common::StatusCode as fidl::encoding::TypeMarker>::inline_size(decoder.context);
12766 if inlined != (member_inline_size <= 4) {
12767 return Err(fidl::Error::InvalidInlineBitInEnvelope);
12768 }
12769 let inner_offset;
12770 let mut inner_depth = depth.clone();
12771 if inlined {
12772 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
12773 inner_offset = next_offset;
12774 } else {
12775 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
12776 inner_depth.increment()?;
12777 }
12778 let val_ref = self.status_code.get_or_insert_with(|| {
12779 fidl::new_empty!(fidl_fuchsia_wlan_ieee80211__common::StatusCode, D)
12780 });
12781 fidl::decode!(
12782 fidl_fuchsia_wlan_ieee80211__common::StatusCode,
12783 D,
12784 val_ref,
12785 decoder,
12786 inner_offset,
12787 inner_depth
12788 )?;
12789 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
12790 {
12791 return Err(fidl::Error::InvalidNumBytesInEnvelope);
12792 }
12793 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
12794 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
12795 }
12796 }
12797
12798 next_offset += envelope_size;
12799
12800 while next_offset < end_offset {
12802 _next_ordinal_to_read += 1;
12803 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12804 next_offset += envelope_size;
12805 }
12806
12807 Ok(())
12808 }
12809 }
12810
12811 impl WlanFullmacImplSetApfPacketFilterEnabledRequest {
12812 #[inline(always)]
12813 fn max_ordinal_present(&self) -> u64 {
12814 if let Some(_) = self.enabled {
12815 return 1;
12816 }
12817 0
12818 }
12819 }
12820
12821 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplSetApfPacketFilterEnabledRequest {
12822 type Borrowed<'a> = &'a Self;
12823 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
12824 value
12825 }
12826 }
12827
12828 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplSetApfPacketFilterEnabledRequest {
12829 type Owned = Self;
12830
12831 #[inline(always)]
12832 fn inline_align(_context: fidl::encoding::Context) -> usize {
12833 8
12834 }
12835
12836 #[inline(always)]
12837 fn inline_size(_context: fidl::encoding::Context) -> usize {
12838 16
12839 }
12840 }
12841
12842 unsafe impl<D: fidl::encoding::ResourceDialect>
12843 fidl::encoding::Encode<WlanFullmacImplSetApfPacketFilterEnabledRequest, D>
12844 for &WlanFullmacImplSetApfPacketFilterEnabledRequest
12845 {
12846 unsafe fn encode(
12847 self,
12848 encoder: &mut fidl::encoding::Encoder<'_, D>,
12849 offset: usize,
12850 mut depth: fidl::encoding::Depth,
12851 ) -> fidl::Result<()> {
12852 encoder.debug_check_bounds::<WlanFullmacImplSetApfPacketFilterEnabledRequest>(offset);
12853 let max_ordinal: u64 = self.max_ordinal_present();
12855 encoder.write_num(max_ordinal, offset);
12856 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
12857 if max_ordinal == 0 {
12859 return Ok(());
12860 }
12861 depth.increment()?;
12862 let envelope_size = 8;
12863 let bytes_len = max_ordinal as usize * envelope_size;
12864 #[allow(unused_variables)]
12865 let offset = encoder.out_of_line_offset(bytes_len);
12866 let mut _prev_end_offset: usize = 0;
12867 if 1 > max_ordinal {
12868 return Ok(());
12869 }
12870
12871 let cur_offset: usize = (1 - 1) * envelope_size;
12874
12875 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12877
12878 fidl::encoding::encode_in_envelope_optional::<bool, D>(
12883 self.enabled.as_ref().map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
12884 encoder,
12885 offset + cur_offset,
12886 depth,
12887 )?;
12888
12889 _prev_end_offset = cur_offset + envelope_size;
12890
12891 Ok(())
12892 }
12893 }
12894
12895 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
12896 for WlanFullmacImplSetApfPacketFilterEnabledRequest
12897 {
12898 #[inline(always)]
12899 fn new_empty() -> Self {
12900 Self::default()
12901 }
12902
12903 unsafe fn decode(
12904 &mut self,
12905 decoder: &mut fidl::encoding::Decoder<'_, D>,
12906 offset: usize,
12907 mut depth: fidl::encoding::Depth,
12908 ) -> fidl::Result<()> {
12909 decoder.debug_check_bounds::<Self>(offset);
12910 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
12911 None => return Err(fidl::Error::NotNullable),
12912 Some(len) => len,
12913 };
12914 if len == 0 {
12916 return Ok(());
12917 };
12918 depth.increment()?;
12919 let envelope_size = 8;
12920 let bytes_len = len * envelope_size;
12921 let offset = decoder.out_of_line_offset(bytes_len)?;
12922 let mut _next_ordinal_to_read = 0;
12924 let mut next_offset = offset;
12925 let end_offset = offset + bytes_len;
12926 _next_ordinal_to_read += 1;
12927 if next_offset >= end_offset {
12928 return Ok(());
12929 }
12930
12931 while _next_ordinal_to_read < 1 {
12933 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12934 _next_ordinal_to_read += 1;
12935 next_offset += envelope_size;
12936 }
12937
12938 let next_out_of_line = decoder.next_out_of_line();
12939 let handles_before = decoder.remaining_handles();
12940 if let Some((inlined, num_bytes, num_handles)) =
12941 fidl::encoding::decode_envelope_header(decoder, next_offset)?
12942 {
12943 let member_inline_size =
12944 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
12945 if inlined != (member_inline_size <= 4) {
12946 return Err(fidl::Error::InvalidInlineBitInEnvelope);
12947 }
12948 let inner_offset;
12949 let mut inner_depth = depth.clone();
12950 if inlined {
12951 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
12952 inner_offset = next_offset;
12953 } else {
12954 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
12955 inner_depth.increment()?;
12956 }
12957 let val_ref = self.enabled.get_or_insert_with(|| fidl::new_empty!(bool, D));
12958 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
12959 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
12960 {
12961 return Err(fidl::Error::InvalidNumBytesInEnvelope);
12962 }
12963 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
12964 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
12965 }
12966 }
12967
12968 next_offset += envelope_size;
12969
12970 while next_offset < end_offset {
12972 _next_ordinal_to_read += 1;
12973 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12974 next_offset += envelope_size;
12975 }
12976
12977 Ok(())
12978 }
12979 }
12980
12981 impl WlanFullmacImplSetKeysRequest {
12982 #[inline(always)]
12983 fn max_ordinal_present(&self) -> u64 {
12984 if let Some(_) = self.key_descriptors {
12985 return 2;
12986 }
12987 if let Some(_) = self.keylist {
12988 return 1;
12989 }
12990 0
12991 }
12992 }
12993
12994 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplSetKeysRequest {
12995 type Borrowed<'a> = &'a Self;
12996 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
12997 value
12998 }
12999 }
13000
13001 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplSetKeysRequest {
13002 type Owned = Self;
13003
13004 #[inline(always)]
13005 fn inline_align(_context: fidl::encoding::Context) -> usize {
13006 8
13007 }
13008
13009 #[inline(always)]
13010 fn inline_size(_context: fidl::encoding::Context) -> usize {
13011 16
13012 }
13013 }
13014
13015 unsafe impl<D: fidl::encoding::ResourceDialect>
13016 fidl::encoding::Encode<WlanFullmacImplSetKeysRequest, D>
13017 for &WlanFullmacImplSetKeysRequest
13018 {
13019 unsafe fn encode(
13020 self,
13021 encoder: &mut fidl::encoding::Encoder<'_, D>,
13022 offset: usize,
13023 mut depth: fidl::encoding::Depth,
13024 ) -> fidl::Result<()> {
13025 encoder.debug_check_bounds::<WlanFullmacImplSetKeysRequest>(offset);
13026 let max_ordinal: u64 = self.max_ordinal_present();
13028 encoder.write_num(max_ordinal, offset);
13029 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
13030 if max_ordinal == 0 {
13032 return Ok(());
13033 }
13034 depth.increment()?;
13035 let envelope_size = 8;
13036 let bytes_len = max_ordinal as usize * envelope_size;
13037 #[allow(unused_variables)]
13038 let offset = encoder.out_of_line_offset(bytes_len);
13039 let mut _prev_end_offset: usize = 0;
13040 if 1 > max_ordinal {
13041 return Ok(());
13042 }
13043
13044 let cur_offset: usize = (1 - 1) * envelope_size;
13047
13048 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
13050
13051 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<fidl_fuchsia_wlan_driver__common::WlanKeyConfig, 4>, D>(
13056 self.keylist.as_ref().map(<fidl::encoding::Vector<fidl_fuchsia_wlan_driver__common::WlanKeyConfig, 4> as fidl::encoding::ValueTypeMarker>::borrow),
13057 encoder, offset + cur_offset, depth
13058 )?;
13059
13060 _prev_end_offset = cur_offset + envelope_size;
13061 if 2 > max_ordinal {
13062 return Ok(());
13063 }
13064
13065 let cur_offset: usize = (2 - 1) * envelope_size;
13068
13069 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
13071
13072 fidl::encoding::encode_in_envelope_optional::<
13077 fidl::encoding::Vector<fidl_fuchsia_wlan_ieee80211__common::SetKeyDescriptor, 4>,
13078 D,
13079 >(
13080 self.key_descriptors.as_ref().map(
13081 <fidl::encoding::Vector<
13082 fidl_fuchsia_wlan_ieee80211__common::SetKeyDescriptor,
13083 4,
13084 > as fidl::encoding::ValueTypeMarker>::borrow,
13085 ),
13086 encoder,
13087 offset + cur_offset,
13088 depth,
13089 )?;
13090
13091 _prev_end_offset = cur_offset + envelope_size;
13092
13093 Ok(())
13094 }
13095 }
13096
13097 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
13098 for WlanFullmacImplSetKeysRequest
13099 {
13100 #[inline(always)]
13101 fn new_empty() -> Self {
13102 Self::default()
13103 }
13104
13105 unsafe fn decode(
13106 &mut self,
13107 decoder: &mut fidl::encoding::Decoder<'_, D>,
13108 offset: usize,
13109 mut depth: fidl::encoding::Depth,
13110 ) -> fidl::Result<()> {
13111 decoder.debug_check_bounds::<Self>(offset);
13112 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
13113 None => return Err(fidl::Error::NotNullable),
13114 Some(len) => len,
13115 };
13116 if len == 0 {
13118 return Ok(());
13119 };
13120 depth.increment()?;
13121 let envelope_size = 8;
13122 let bytes_len = len * envelope_size;
13123 let offset = decoder.out_of_line_offset(bytes_len)?;
13124 let mut _next_ordinal_to_read = 0;
13126 let mut next_offset = offset;
13127 let end_offset = offset + bytes_len;
13128 _next_ordinal_to_read += 1;
13129 if next_offset >= end_offset {
13130 return Ok(());
13131 }
13132
13133 while _next_ordinal_to_read < 1 {
13135 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13136 _next_ordinal_to_read += 1;
13137 next_offset += envelope_size;
13138 }
13139
13140 let next_out_of_line = decoder.next_out_of_line();
13141 let handles_before = decoder.remaining_handles();
13142 if let Some((inlined, num_bytes, num_handles)) =
13143 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13144 {
13145 let member_inline_size = <fidl::encoding::Vector<
13146 fidl_fuchsia_wlan_driver__common::WlanKeyConfig,
13147 4,
13148 > as fidl::encoding::TypeMarker>::inline_size(
13149 decoder.context
13150 );
13151 if inlined != (member_inline_size <= 4) {
13152 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13153 }
13154 let inner_offset;
13155 let mut inner_depth = depth.clone();
13156 if inlined {
13157 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13158 inner_offset = next_offset;
13159 } else {
13160 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13161 inner_depth.increment()?;
13162 }
13163 let val_ref =
13164 self.keylist.get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<fidl_fuchsia_wlan_driver__common::WlanKeyConfig, 4>, D));
13165 fidl::decode!(fidl::encoding::Vector<fidl_fuchsia_wlan_driver__common::WlanKeyConfig, 4>, D, val_ref, decoder, inner_offset, inner_depth)?;
13166 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13167 {
13168 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13169 }
13170 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13171 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13172 }
13173 }
13174
13175 next_offset += envelope_size;
13176 _next_ordinal_to_read += 1;
13177 if next_offset >= end_offset {
13178 return Ok(());
13179 }
13180
13181 while _next_ordinal_to_read < 2 {
13183 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13184 _next_ordinal_to_read += 1;
13185 next_offset += envelope_size;
13186 }
13187
13188 let next_out_of_line = decoder.next_out_of_line();
13189 let handles_before = decoder.remaining_handles();
13190 if let Some((inlined, num_bytes, num_handles)) =
13191 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13192 {
13193 let member_inline_size = <fidl::encoding::Vector<
13194 fidl_fuchsia_wlan_ieee80211__common::SetKeyDescriptor,
13195 4,
13196 > as fidl::encoding::TypeMarker>::inline_size(
13197 decoder.context
13198 );
13199 if inlined != (member_inline_size <= 4) {
13200 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13201 }
13202 let inner_offset;
13203 let mut inner_depth = depth.clone();
13204 if inlined {
13205 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13206 inner_offset = next_offset;
13207 } else {
13208 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13209 inner_depth.increment()?;
13210 }
13211 let val_ref =
13212 self.key_descriptors.get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<fidl_fuchsia_wlan_ieee80211__common::SetKeyDescriptor, 4>, D));
13213 fidl::decode!(fidl::encoding::Vector<fidl_fuchsia_wlan_ieee80211__common::SetKeyDescriptor, 4>, D, val_ref, decoder, inner_offset, inner_depth)?;
13214 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13215 {
13216 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13217 }
13218 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13219 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13220 }
13221 }
13222
13223 next_offset += envelope_size;
13224
13225 while next_offset < end_offset {
13227 _next_ordinal_to_read += 1;
13228 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13229 next_offset += envelope_size;
13230 }
13231
13232 Ok(())
13233 }
13234 }
13235
13236 impl WlanFullmacImplStartBssRequest {
13237 #[inline(always)]
13238 fn max_ordinal_present(&self) -> u64 {
13239 if let Some(_) = self.vendor_ie {
13240 return 7;
13241 }
13242 if let Some(_) = self.rsne {
13243 return 6;
13244 }
13245 if let Some(_) = self.channel {
13246 return 5;
13247 }
13248 if let Some(_) = self.dtim_period {
13249 return 4;
13250 }
13251 if let Some(_) = self.beacon_period {
13252 return 3;
13253 }
13254 if let Some(_) = self.bss_type {
13255 return 2;
13256 }
13257 if let Some(_) = self.ssid {
13258 return 1;
13259 }
13260 0
13261 }
13262 }
13263
13264 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplStartBssRequest {
13265 type Borrowed<'a> = &'a Self;
13266 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
13267 value
13268 }
13269 }
13270
13271 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplStartBssRequest {
13272 type Owned = Self;
13273
13274 #[inline(always)]
13275 fn inline_align(_context: fidl::encoding::Context) -> usize {
13276 8
13277 }
13278
13279 #[inline(always)]
13280 fn inline_size(_context: fidl::encoding::Context) -> usize {
13281 16
13282 }
13283 }
13284
13285 unsafe impl<D: fidl::encoding::ResourceDialect>
13286 fidl::encoding::Encode<WlanFullmacImplStartBssRequest, D>
13287 for &WlanFullmacImplStartBssRequest
13288 {
13289 unsafe fn encode(
13290 self,
13291 encoder: &mut fidl::encoding::Encoder<'_, D>,
13292 offset: usize,
13293 mut depth: fidl::encoding::Depth,
13294 ) -> fidl::Result<()> {
13295 encoder.debug_check_bounds::<WlanFullmacImplStartBssRequest>(offset);
13296 let max_ordinal: u64 = self.max_ordinal_present();
13298 encoder.write_num(max_ordinal, offset);
13299 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
13300 if max_ordinal == 0 {
13302 return Ok(());
13303 }
13304 depth.increment()?;
13305 let envelope_size = 8;
13306 let bytes_len = max_ordinal as usize * envelope_size;
13307 #[allow(unused_variables)]
13308 let offset = encoder.out_of_line_offset(bytes_len);
13309 let mut _prev_end_offset: usize = 0;
13310 if 1 > max_ordinal {
13311 return Ok(());
13312 }
13313
13314 let cur_offset: usize = (1 - 1) * envelope_size;
13317
13318 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
13320
13321 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<u8, 32>, D>(
13326 self.ssid.as_ref().map(
13327 <fidl::encoding::Vector<u8, 32> as fidl::encoding::ValueTypeMarker>::borrow,
13328 ),
13329 encoder,
13330 offset + cur_offset,
13331 depth,
13332 )?;
13333
13334 _prev_end_offset = cur_offset + envelope_size;
13335 if 2 > max_ordinal {
13336 return Ok(());
13337 }
13338
13339 let cur_offset: usize = (2 - 1) * envelope_size;
13342
13343 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
13345
13346 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_ieee80211__common::BssType, D>(
13351 self.bss_type.as_ref().map(<fidl_fuchsia_wlan_ieee80211__common::BssType as fidl::encoding::ValueTypeMarker>::borrow),
13352 encoder, offset + cur_offset, depth
13353 )?;
13354
13355 _prev_end_offset = cur_offset + envelope_size;
13356 if 3 > max_ordinal {
13357 return Ok(());
13358 }
13359
13360 let cur_offset: usize = (3 - 1) * envelope_size;
13363
13364 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
13366
13367 fidl::encoding::encode_in_envelope_optional::<u32, D>(
13372 self.beacon_period.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
13373 encoder,
13374 offset + cur_offset,
13375 depth,
13376 )?;
13377
13378 _prev_end_offset = cur_offset + envelope_size;
13379 if 4 > max_ordinal {
13380 return Ok(());
13381 }
13382
13383 let cur_offset: usize = (4 - 1) * envelope_size;
13386
13387 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
13389
13390 fidl::encoding::encode_in_envelope_optional::<u32, D>(
13395 self.dtim_period.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
13396 encoder,
13397 offset + cur_offset,
13398 depth,
13399 )?;
13400
13401 _prev_end_offset = cur_offset + envelope_size;
13402 if 5 > max_ordinal {
13403 return Ok(());
13404 }
13405
13406 let cur_offset: usize = (5 - 1) * envelope_size;
13409
13410 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
13412
13413 fidl::encoding::encode_in_envelope_optional::<u8, D>(
13418 self.channel.as_ref().map(<u8 as fidl::encoding::ValueTypeMarker>::borrow),
13419 encoder,
13420 offset + cur_offset,
13421 depth,
13422 )?;
13423
13424 _prev_end_offset = cur_offset + envelope_size;
13425 if 6 > max_ordinal {
13426 return Ok(());
13427 }
13428
13429 let cur_offset: usize = (6 - 1) * envelope_size;
13432
13433 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
13435
13436 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<u8, 257>, D>(
13441 self.rsne.as_ref().map(
13442 <fidl::encoding::Vector<u8, 257> as fidl::encoding::ValueTypeMarker>::borrow,
13443 ),
13444 encoder,
13445 offset + cur_offset,
13446 depth,
13447 )?;
13448
13449 _prev_end_offset = cur_offset + envelope_size;
13450 if 7 > max_ordinal {
13451 return Ok(());
13452 }
13453
13454 let cur_offset: usize = (7 - 1) * envelope_size;
13457
13458 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
13460
13461 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<u8, 514>, D>(
13466 self.vendor_ie.as_ref().map(
13467 <fidl::encoding::Vector<u8, 514> as fidl::encoding::ValueTypeMarker>::borrow,
13468 ),
13469 encoder,
13470 offset + cur_offset,
13471 depth,
13472 )?;
13473
13474 _prev_end_offset = cur_offset + envelope_size;
13475
13476 Ok(())
13477 }
13478 }
13479
13480 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
13481 for WlanFullmacImplStartBssRequest
13482 {
13483 #[inline(always)]
13484 fn new_empty() -> Self {
13485 Self::default()
13486 }
13487
13488 unsafe fn decode(
13489 &mut self,
13490 decoder: &mut fidl::encoding::Decoder<'_, D>,
13491 offset: usize,
13492 mut depth: fidl::encoding::Depth,
13493 ) -> fidl::Result<()> {
13494 decoder.debug_check_bounds::<Self>(offset);
13495 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
13496 None => return Err(fidl::Error::NotNullable),
13497 Some(len) => len,
13498 };
13499 if len == 0 {
13501 return Ok(());
13502 };
13503 depth.increment()?;
13504 let envelope_size = 8;
13505 let bytes_len = len * envelope_size;
13506 let offset = decoder.out_of_line_offset(bytes_len)?;
13507 let mut _next_ordinal_to_read = 0;
13509 let mut next_offset = offset;
13510 let end_offset = offset + bytes_len;
13511 _next_ordinal_to_read += 1;
13512 if next_offset >= end_offset {
13513 return Ok(());
13514 }
13515
13516 while _next_ordinal_to_read < 1 {
13518 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13519 _next_ordinal_to_read += 1;
13520 next_offset += envelope_size;
13521 }
13522
13523 let next_out_of_line = decoder.next_out_of_line();
13524 let handles_before = decoder.remaining_handles();
13525 if let Some((inlined, num_bytes, num_handles)) =
13526 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13527 {
13528 let member_inline_size =
13529 <fidl::encoding::Vector<u8, 32> as fidl::encoding::TypeMarker>::inline_size(
13530 decoder.context,
13531 );
13532 if inlined != (member_inline_size <= 4) {
13533 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13534 }
13535 let inner_offset;
13536 let mut inner_depth = depth.clone();
13537 if inlined {
13538 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13539 inner_offset = next_offset;
13540 } else {
13541 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13542 inner_depth.increment()?;
13543 }
13544 let val_ref = self
13545 .ssid
13546 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<u8, 32>, D));
13547 fidl::decode!(fidl::encoding::Vector<u8, 32>, D, val_ref, decoder, inner_offset, inner_depth)?;
13548 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13549 {
13550 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13551 }
13552 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13553 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13554 }
13555 }
13556
13557 next_offset += envelope_size;
13558 _next_ordinal_to_read += 1;
13559 if next_offset >= end_offset {
13560 return Ok(());
13561 }
13562
13563 while _next_ordinal_to_read < 2 {
13565 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13566 _next_ordinal_to_read += 1;
13567 next_offset += envelope_size;
13568 }
13569
13570 let next_out_of_line = decoder.next_out_of_line();
13571 let handles_before = decoder.remaining_handles();
13572 if let Some((inlined, num_bytes, num_handles)) =
13573 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13574 {
13575 let member_inline_size = <fidl_fuchsia_wlan_ieee80211__common::BssType as fidl::encoding::TypeMarker>::inline_size(decoder.context);
13576 if inlined != (member_inline_size <= 4) {
13577 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13578 }
13579 let inner_offset;
13580 let mut inner_depth = depth.clone();
13581 if inlined {
13582 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13583 inner_offset = next_offset;
13584 } else {
13585 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13586 inner_depth.increment()?;
13587 }
13588 let val_ref = self.bss_type.get_or_insert_with(|| {
13589 fidl::new_empty!(fidl_fuchsia_wlan_ieee80211__common::BssType, D)
13590 });
13591 fidl::decode!(
13592 fidl_fuchsia_wlan_ieee80211__common::BssType,
13593 D,
13594 val_ref,
13595 decoder,
13596 inner_offset,
13597 inner_depth
13598 )?;
13599 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13600 {
13601 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13602 }
13603 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13604 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13605 }
13606 }
13607
13608 next_offset += envelope_size;
13609 _next_ordinal_to_read += 1;
13610 if next_offset >= end_offset {
13611 return Ok(());
13612 }
13613
13614 while _next_ordinal_to_read < 3 {
13616 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13617 _next_ordinal_to_read += 1;
13618 next_offset += envelope_size;
13619 }
13620
13621 let next_out_of_line = decoder.next_out_of_line();
13622 let handles_before = decoder.remaining_handles();
13623 if let Some((inlined, num_bytes, num_handles)) =
13624 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13625 {
13626 let member_inline_size =
13627 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
13628 if inlined != (member_inline_size <= 4) {
13629 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13630 }
13631 let inner_offset;
13632 let mut inner_depth = depth.clone();
13633 if inlined {
13634 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13635 inner_offset = next_offset;
13636 } else {
13637 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13638 inner_depth.increment()?;
13639 }
13640 let val_ref = self.beacon_period.get_or_insert_with(|| fidl::new_empty!(u32, D));
13641 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
13642 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13643 {
13644 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13645 }
13646 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13647 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13648 }
13649 }
13650
13651 next_offset += envelope_size;
13652 _next_ordinal_to_read += 1;
13653 if next_offset >= end_offset {
13654 return Ok(());
13655 }
13656
13657 while _next_ordinal_to_read < 4 {
13659 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13660 _next_ordinal_to_read += 1;
13661 next_offset += envelope_size;
13662 }
13663
13664 let next_out_of_line = decoder.next_out_of_line();
13665 let handles_before = decoder.remaining_handles();
13666 if let Some((inlined, num_bytes, num_handles)) =
13667 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13668 {
13669 let member_inline_size =
13670 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
13671 if inlined != (member_inline_size <= 4) {
13672 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13673 }
13674 let inner_offset;
13675 let mut inner_depth = depth.clone();
13676 if inlined {
13677 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13678 inner_offset = next_offset;
13679 } else {
13680 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13681 inner_depth.increment()?;
13682 }
13683 let val_ref = self.dtim_period.get_or_insert_with(|| fidl::new_empty!(u32, D));
13684 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
13685 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13686 {
13687 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13688 }
13689 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13690 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13691 }
13692 }
13693
13694 next_offset += envelope_size;
13695 _next_ordinal_to_read += 1;
13696 if next_offset >= end_offset {
13697 return Ok(());
13698 }
13699
13700 while _next_ordinal_to_read < 5 {
13702 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13703 _next_ordinal_to_read += 1;
13704 next_offset += envelope_size;
13705 }
13706
13707 let next_out_of_line = decoder.next_out_of_line();
13708 let handles_before = decoder.remaining_handles();
13709 if let Some((inlined, num_bytes, num_handles)) =
13710 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13711 {
13712 let member_inline_size =
13713 <u8 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
13714 if inlined != (member_inline_size <= 4) {
13715 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13716 }
13717 let inner_offset;
13718 let mut inner_depth = depth.clone();
13719 if inlined {
13720 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13721 inner_offset = next_offset;
13722 } else {
13723 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13724 inner_depth.increment()?;
13725 }
13726 let val_ref = self.channel.get_or_insert_with(|| fidl::new_empty!(u8, D));
13727 fidl::decode!(u8, D, val_ref, decoder, inner_offset, inner_depth)?;
13728 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13729 {
13730 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13731 }
13732 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13733 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13734 }
13735 }
13736
13737 next_offset += envelope_size;
13738 _next_ordinal_to_read += 1;
13739 if next_offset >= end_offset {
13740 return Ok(());
13741 }
13742
13743 while _next_ordinal_to_read < 6 {
13745 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13746 _next_ordinal_to_read += 1;
13747 next_offset += envelope_size;
13748 }
13749
13750 let next_out_of_line = decoder.next_out_of_line();
13751 let handles_before = decoder.remaining_handles();
13752 if let Some((inlined, num_bytes, num_handles)) =
13753 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13754 {
13755 let member_inline_size =
13756 <fidl::encoding::Vector<u8, 257> as fidl::encoding::TypeMarker>::inline_size(
13757 decoder.context,
13758 );
13759 if inlined != (member_inline_size <= 4) {
13760 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13761 }
13762 let inner_offset;
13763 let mut inner_depth = depth.clone();
13764 if inlined {
13765 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13766 inner_offset = next_offset;
13767 } else {
13768 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13769 inner_depth.increment()?;
13770 }
13771 let val_ref = self
13772 .rsne
13773 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<u8, 257>, D));
13774 fidl::decode!(fidl::encoding::Vector<u8, 257>, D, val_ref, decoder, inner_offset, inner_depth)?;
13775 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13776 {
13777 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13778 }
13779 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13780 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13781 }
13782 }
13783
13784 next_offset += envelope_size;
13785 _next_ordinal_to_read += 1;
13786 if next_offset >= end_offset {
13787 return Ok(());
13788 }
13789
13790 while _next_ordinal_to_read < 7 {
13792 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13793 _next_ordinal_to_read += 1;
13794 next_offset += envelope_size;
13795 }
13796
13797 let next_out_of_line = decoder.next_out_of_line();
13798 let handles_before = decoder.remaining_handles();
13799 if let Some((inlined, num_bytes, num_handles)) =
13800 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13801 {
13802 let member_inline_size =
13803 <fidl::encoding::Vector<u8, 514> as fidl::encoding::TypeMarker>::inline_size(
13804 decoder.context,
13805 );
13806 if inlined != (member_inline_size <= 4) {
13807 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13808 }
13809 let inner_offset;
13810 let mut inner_depth = depth.clone();
13811 if inlined {
13812 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13813 inner_offset = next_offset;
13814 } else {
13815 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13816 inner_depth.increment()?;
13817 }
13818 let val_ref = self
13819 .vendor_ie
13820 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<u8, 514>, D));
13821 fidl::decode!(fidl::encoding::Vector<u8, 514>, D, val_ref, decoder, inner_offset, inner_depth)?;
13822 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13823 {
13824 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13825 }
13826 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13827 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13828 }
13829 }
13830
13831 next_offset += envelope_size;
13832
13833 while next_offset < end_offset {
13835 _next_ordinal_to_read += 1;
13836 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13837 next_offset += envelope_size;
13838 }
13839
13840 Ok(())
13841 }
13842 }
13843
13844 impl WlanFullmacImplStartScanRequest {
13845 #[inline(always)]
13846 fn max_ordinal_present(&self) -> u64 {
13847 if let Some(_) = self.max_channel_time {
13848 return 6;
13849 }
13850 if let Some(_) = self.min_channel_time {
13851 return 5;
13852 }
13853 if let Some(_) = self.ssids {
13854 return 4;
13855 }
13856 if let Some(_) = self.channels {
13857 return 3;
13858 }
13859 if let Some(_) = self.scan_type {
13860 return 2;
13861 }
13862 if let Some(_) = self.txn_id {
13863 return 1;
13864 }
13865 0
13866 }
13867 }
13868
13869 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplStartScanRequest {
13870 type Borrowed<'a> = &'a Self;
13871 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
13872 value
13873 }
13874 }
13875
13876 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplStartScanRequest {
13877 type Owned = Self;
13878
13879 #[inline(always)]
13880 fn inline_align(_context: fidl::encoding::Context) -> usize {
13881 8
13882 }
13883
13884 #[inline(always)]
13885 fn inline_size(_context: fidl::encoding::Context) -> usize {
13886 16
13887 }
13888 }
13889
13890 unsafe impl<D: fidl::encoding::ResourceDialect>
13891 fidl::encoding::Encode<WlanFullmacImplStartScanRequest, D>
13892 for &WlanFullmacImplStartScanRequest
13893 {
13894 unsafe fn encode(
13895 self,
13896 encoder: &mut fidl::encoding::Encoder<'_, D>,
13897 offset: usize,
13898 mut depth: fidl::encoding::Depth,
13899 ) -> fidl::Result<()> {
13900 encoder.debug_check_bounds::<WlanFullmacImplStartScanRequest>(offset);
13901 let max_ordinal: u64 = self.max_ordinal_present();
13903 encoder.write_num(max_ordinal, offset);
13904 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
13905 if max_ordinal == 0 {
13907 return Ok(());
13908 }
13909 depth.increment()?;
13910 let envelope_size = 8;
13911 let bytes_len = max_ordinal as usize * envelope_size;
13912 #[allow(unused_variables)]
13913 let offset = encoder.out_of_line_offset(bytes_len);
13914 let mut _prev_end_offset: usize = 0;
13915 if 1 > max_ordinal {
13916 return Ok(());
13917 }
13918
13919 let cur_offset: usize = (1 - 1) * envelope_size;
13922
13923 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
13925
13926 fidl::encoding::encode_in_envelope_optional::<u64, D>(
13931 self.txn_id.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
13932 encoder,
13933 offset + cur_offset,
13934 depth,
13935 )?;
13936
13937 _prev_end_offset = cur_offset + envelope_size;
13938 if 2 > max_ordinal {
13939 return Ok(());
13940 }
13941
13942 let cur_offset: usize = (2 - 1) * envelope_size;
13945
13946 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
13948
13949 fidl::encoding::encode_in_envelope_optional::<WlanScanType, D>(
13954 self.scan_type
13955 .as_ref()
13956 .map(<WlanScanType as fidl::encoding::ValueTypeMarker>::borrow),
13957 encoder,
13958 offset + cur_offset,
13959 depth,
13960 )?;
13961
13962 _prev_end_offset = cur_offset + envelope_size;
13963 if 3 > max_ordinal {
13964 return Ok(());
13965 }
13966
13967 let cur_offset: usize = (3 - 1) * envelope_size;
13970
13971 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
13973
13974 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<u8, 256>, D>(
13979 self.channels.as_ref().map(
13980 <fidl::encoding::Vector<u8, 256> as fidl::encoding::ValueTypeMarker>::borrow,
13981 ),
13982 encoder,
13983 offset + cur_offset,
13984 depth,
13985 )?;
13986
13987 _prev_end_offset = cur_offset + envelope_size;
13988 if 4 > max_ordinal {
13989 return Ok(());
13990 }
13991
13992 let cur_offset: usize = (4 - 1) * envelope_size;
13995
13996 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
13998
13999 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<fidl::encoding::Vector<u8, 32>>, D>(
14004 self.ssids.as_ref().map(<fidl::encoding::UnboundedVector<fidl::encoding::Vector<u8, 32>> as fidl::encoding::ValueTypeMarker>::borrow),
14005 encoder, offset + cur_offset, depth
14006 )?;
14007
14008 _prev_end_offset = cur_offset + envelope_size;
14009 if 5 > max_ordinal {
14010 return Ok(());
14011 }
14012
14013 let cur_offset: usize = (5 - 1) * envelope_size;
14016
14017 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
14019
14020 fidl::encoding::encode_in_envelope_optional::<u32, D>(
14025 self.min_channel_time
14026 .as_ref()
14027 .map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
14028 encoder,
14029 offset + cur_offset,
14030 depth,
14031 )?;
14032
14033 _prev_end_offset = cur_offset + envelope_size;
14034 if 6 > max_ordinal {
14035 return Ok(());
14036 }
14037
14038 let cur_offset: usize = (6 - 1) * envelope_size;
14041
14042 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
14044
14045 fidl::encoding::encode_in_envelope_optional::<u32, D>(
14050 self.max_channel_time
14051 .as_ref()
14052 .map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
14053 encoder,
14054 offset + cur_offset,
14055 depth,
14056 )?;
14057
14058 _prev_end_offset = cur_offset + envelope_size;
14059
14060 Ok(())
14061 }
14062 }
14063
14064 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
14065 for WlanFullmacImplStartScanRequest
14066 {
14067 #[inline(always)]
14068 fn new_empty() -> Self {
14069 Self::default()
14070 }
14071
14072 unsafe fn decode(
14073 &mut self,
14074 decoder: &mut fidl::encoding::Decoder<'_, D>,
14075 offset: usize,
14076 mut depth: fidl::encoding::Depth,
14077 ) -> fidl::Result<()> {
14078 decoder.debug_check_bounds::<Self>(offset);
14079 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
14080 None => return Err(fidl::Error::NotNullable),
14081 Some(len) => len,
14082 };
14083 if len == 0 {
14085 return Ok(());
14086 };
14087 depth.increment()?;
14088 let envelope_size = 8;
14089 let bytes_len = len * envelope_size;
14090 let offset = decoder.out_of_line_offset(bytes_len)?;
14091 let mut _next_ordinal_to_read = 0;
14093 let mut next_offset = offset;
14094 let end_offset = offset + bytes_len;
14095 _next_ordinal_to_read += 1;
14096 if next_offset >= end_offset {
14097 return Ok(());
14098 }
14099
14100 while _next_ordinal_to_read < 1 {
14102 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14103 _next_ordinal_to_read += 1;
14104 next_offset += envelope_size;
14105 }
14106
14107 let next_out_of_line = decoder.next_out_of_line();
14108 let handles_before = decoder.remaining_handles();
14109 if let Some((inlined, num_bytes, num_handles)) =
14110 fidl::encoding::decode_envelope_header(decoder, next_offset)?
14111 {
14112 let member_inline_size =
14113 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
14114 if inlined != (member_inline_size <= 4) {
14115 return Err(fidl::Error::InvalidInlineBitInEnvelope);
14116 }
14117 let inner_offset;
14118 let mut inner_depth = depth.clone();
14119 if inlined {
14120 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
14121 inner_offset = next_offset;
14122 } else {
14123 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
14124 inner_depth.increment()?;
14125 }
14126 let val_ref = self.txn_id.get_or_insert_with(|| fidl::new_empty!(u64, D));
14127 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
14128 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
14129 {
14130 return Err(fidl::Error::InvalidNumBytesInEnvelope);
14131 }
14132 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
14133 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
14134 }
14135 }
14136
14137 next_offset += envelope_size;
14138 _next_ordinal_to_read += 1;
14139 if next_offset >= end_offset {
14140 return Ok(());
14141 }
14142
14143 while _next_ordinal_to_read < 2 {
14145 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14146 _next_ordinal_to_read += 1;
14147 next_offset += envelope_size;
14148 }
14149
14150 let next_out_of_line = decoder.next_out_of_line();
14151 let handles_before = decoder.remaining_handles();
14152 if let Some((inlined, num_bytes, num_handles)) =
14153 fidl::encoding::decode_envelope_header(decoder, next_offset)?
14154 {
14155 let member_inline_size =
14156 <WlanScanType as fidl::encoding::TypeMarker>::inline_size(decoder.context);
14157 if inlined != (member_inline_size <= 4) {
14158 return Err(fidl::Error::InvalidInlineBitInEnvelope);
14159 }
14160 let inner_offset;
14161 let mut inner_depth = depth.clone();
14162 if inlined {
14163 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
14164 inner_offset = next_offset;
14165 } else {
14166 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
14167 inner_depth.increment()?;
14168 }
14169 let val_ref =
14170 self.scan_type.get_or_insert_with(|| fidl::new_empty!(WlanScanType, D));
14171 fidl::decode!(WlanScanType, D, val_ref, decoder, inner_offset, inner_depth)?;
14172 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
14173 {
14174 return Err(fidl::Error::InvalidNumBytesInEnvelope);
14175 }
14176 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
14177 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
14178 }
14179 }
14180
14181 next_offset += envelope_size;
14182 _next_ordinal_to_read += 1;
14183 if next_offset >= end_offset {
14184 return Ok(());
14185 }
14186
14187 while _next_ordinal_to_read < 3 {
14189 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14190 _next_ordinal_to_read += 1;
14191 next_offset += envelope_size;
14192 }
14193
14194 let next_out_of_line = decoder.next_out_of_line();
14195 let handles_before = decoder.remaining_handles();
14196 if let Some((inlined, num_bytes, num_handles)) =
14197 fidl::encoding::decode_envelope_header(decoder, next_offset)?
14198 {
14199 let member_inline_size =
14200 <fidl::encoding::Vector<u8, 256> as fidl::encoding::TypeMarker>::inline_size(
14201 decoder.context,
14202 );
14203 if inlined != (member_inline_size <= 4) {
14204 return Err(fidl::Error::InvalidInlineBitInEnvelope);
14205 }
14206 let inner_offset;
14207 let mut inner_depth = depth.clone();
14208 if inlined {
14209 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
14210 inner_offset = next_offset;
14211 } else {
14212 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
14213 inner_depth.increment()?;
14214 }
14215 let val_ref = self
14216 .channels
14217 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<u8, 256>, D));
14218 fidl::decode!(fidl::encoding::Vector<u8, 256>, D, val_ref, decoder, inner_offset, inner_depth)?;
14219 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
14220 {
14221 return Err(fidl::Error::InvalidNumBytesInEnvelope);
14222 }
14223 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
14224 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
14225 }
14226 }
14227
14228 next_offset += envelope_size;
14229 _next_ordinal_to_read += 1;
14230 if next_offset >= end_offset {
14231 return Ok(());
14232 }
14233
14234 while _next_ordinal_to_read < 4 {
14236 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14237 _next_ordinal_to_read += 1;
14238 next_offset += envelope_size;
14239 }
14240
14241 let next_out_of_line = decoder.next_out_of_line();
14242 let handles_before = decoder.remaining_handles();
14243 if let Some((inlined, num_bytes, num_handles)) =
14244 fidl::encoding::decode_envelope_header(decoder, next_offset)?
14245 {
14246 let member_inline_size = <fidl::encoding::UnboundedVector<
14247 fidl::encoding::Vector<u8, 32>,
14248 > as fidl::encoding::TypeMarker>::inline_size(
14249 decoder.context
14250 );
14251 if inlined != (member_inline_size <= 4) {
14252 return Err(fidl::Error::InvalidInlineBitInEnvelope);
14253 }
14254 let inner_offset;
14255 let mut inner_depth = depth.clone();
14256 if inlined {
14257 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
14258 inner_offset = next_offset;
14259 } else {
14260 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
14261 inner_depth.increment()?;
14262 }
14263 let val_ref = self.ssids.get_or_insert_with(|| {
14264 fidl::new_empty!(
14265 fidl::encoding::UnboundedVector<fidl::encoding::Vector<u8, 32>>,
14266 D
14267 )
14268 });
14269 fidl::decode!(
14270 fidl::encoding::UnboundedVector<fidl::encoding::Vector<u8, 32>>,
14271 D,
14272 val_ref,
14273 decoder,
14274 inner_offset,
14275 inner_depth
14276 )?;
14277 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
14278 {
14279 return Err(fidl::Error::InvalidNumBytesInEnvelope);
14280 }
14281 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
14282 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
14283 }
14284 }
14285
14286 next_offset += envelope_size;
14287 _next_ordinal_to_read += 1;
14288 if next_offset >= end_offset {
14289 return Ok(());
14290 }
14291
14292 while _next_ordinal_to_read < 5 {
14294 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14295 _next_ordinal_to_read += 1;
14296 next_offset += envelope_size;
14297 }
14298
14299 let next_out_of_line = decoder.next_out_of_line();
14300 let handles_before = decoder.remaining_handles();
14301 if let Some((inlined, num_bytes, num_handles)) =
14302 fidl::encoding::decode_envelope_header(decoder, next_offset)?
14303 {
14304 let member_inline_size =
14305 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
14306 if inlined != (member_inline_size <= 4) {
14307 return Err(fidl::Error::InvalidInlineBitInEnvelope);
14308 }
14309 let inner_offset;
14310 let mut inner_depth = depth.clone();
14311 if inlined {
14312 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
14313 inner_offset = next_offset;
14314 } else {
14315 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
14316 inner_depth.increment()?;
14317 }
14318 let val_ref = self.min_channel_time.get_or_insert_with(|| fidl::new_empty!(u32, D));
14319 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
14320 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
14321 {
14322 return Err(fidl::Error::InvalidNumBytesInEnvelope);
14323 }
14324 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
14325 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
14326 }
14327 }
14328
14329 next_offset += envelope_size;
14330 _next_ordinal_to_read += 1;
14331 if next_offset >= end_offset {
14332 return Ok(());
14333 }
14334
14335 while _next_ordinal_to_read < 6 {
14337 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14338 _next_ordinal_to_read += 1;
14339 next_offset += envelope_size;
14340 }
14341
14342 let next_out_of_line = decoder.next_out_of_line();
14343 let handles_before = decoder.remaining_handles();
14344 if let Some((inlined, num_bytes, num_handles)) =
14345 fidl::encoding::decode_envelope_header(decoder, next_offset)?
14346 {
14347 let member_inline_size =
14348 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
14349 if inlined != (member_inline_size <= 4) {
14350 return Err(fidl::Error::InvalidInlineBitInEnvelope);
14351 }
14352 let inner_offset;
14353 let mut inner_depth = depth.clone();
14354 if inlined {
14355 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
14356 inner_offset = next_offset;
14357 } else {
14358 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
14359 inner_depth.increment()?;
14360 }
14361 let val_ref = self.max_channel_time.get_or_insert_with(|| fidl::new_empty!(u32, D));
14362 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
14363 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
14364 {
14365 return Err(fidl::Error::InvalidNumBytesInEnvelope);
14366 }
14367 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
14368 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
14369 }
14370 }
14371
14372 next_offset += envelope_size;
14373
14374 while next_offset < end_offset {
14376 _next_ordinal_to_read += 1;
14377 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14378 next_offset += envelope_size;
14379 }
14380
14381 Ok(())
14382 }
14383 }
14384
14385 impl WlanFullmacImplStartScheduledScanRequest {
14386 #[inline(always)]
14387 fn max_ordinal_present(&self) -> u64 {
14388 if let Some(_) = self.req {
14389 return 2;
14390 }
14391 if let Some(_) = self.txn_id {
14392 return 1;
14393 }
14394 0
14395 }
14396 }
14397
14398 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplStartScheduledScanRequest {
14399 type Borrowed<'a> = &'a Self;
14400 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
14401 value
14402 }
14403 }
14404
14405 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplStartScheduledScanRequest {
14406 type Owned = Self;
14407
14408 #[inline(always)]
14409 fn inline_align(_context: fidl::encoding::Context) -> usize {
14410 8
14411 }
14412
14413 #[inline(always)]
14414 fn inline_size(_context: fidl::encoding::Context) -> usize {
14415 16
14416 }
14417 }
14418
14419 unsafe impl<D: fidl::encoding::ResourceDialect>
14420 fidl::encoding::Encode<WlanFullmacImplStartScheduledScanRequest, D>
14421 for &WlanFullmacImplStartScheduledScanRequest
14422 {
14423 unsafe fn encode(
14424 self,
14425 encoder: &mut fidl::encoding::Encoder<'_, D>,
14426 offset: usize,
14427 mut depth: fidl::encoding::Depth,
14428 ) -> fidl::Result<()> {
14429 encoder.debug_check_bounds::<WlanFullmacImplStartScheduledScanRequest>(offset);
14430 let max_ordinal: u64 = self.max_ordinal_present();
14432 encoder.write_num(max_ordinal, offset);
14433 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
14434 if max_ordinal == 0 {
14436 return Ok(());
14437 }
14438 depth.increment()?;
14439 let envelope_size = 8;
14440 let bytes_len = max_ordinal as usize * envelope_size;
14441 #[allow(unused_variables)]
14442 let offset = encoder.out_of_line_offset(bytes_len);
14443 let mut _prev_end_offset: usize = 0;
14444 if 1 > max_ordinal {
14445 return Ok(());
14446 }
14447
14448 let cur_offset: usize = (1 - 1) * envelope_size;
14451
14452 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
14454
14455 fidl::encoding::encode_in_envelope_optional::<u64, D>(
14460 self.txn_id.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
14461 encoder,
14462 offset + cur_offset,
14463 depth,
14464 )?;
14465
14466 _prev_end_offset = cur_offset + envelope_size;
14467 if 2 > max_ordinal {
14468 return Ok(());
14469 }
14470
14471 let cur_offset: usize = (2 - 1) * envelope_size;
14474
14475 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
14477
14478 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_common__common::ScheduledScanRequest, D>(
14483 self.req.as_ref().map(<fidl_fuchsia_wlan_common__common::ScheduledScanRequest as fidl::encoding::ValueTypeMarker>::borrow),
14484 encoder, offset + cur_offset, depth
14485 )?;
14486
14487 _prev_end_offset = cur_offset + envelope_size;
14488
14489 Ok(())
14490 }
14491 }
14492
14493 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
14494 for WlanFullmacImplStartScheduledScanRequest
14495 {
14496 #[inline(always)]
14497 fn new_empty() -> Self {
14498 Self::default()
14499 }
14500
14501 unsafe fn decode(
14502 &mut self,
14503 decoder: &mut fidl::encoding::Decoder<'_, D>,
14504 offset: usize,
14505 mut depth: fidl::encoding::Depth,
14506 ) -> fidl::Result<()> {
14507 decoder.debug_check_bounds::<Self>(offset);
14508 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
14509 None => return Err(fidl::Error::NotNullable),
14510 Some(len) => len,
14511 };
14512 if len == 0 {
14514 return Ok(());
14515 };
14516 depth.increment()?;
14517 let envelope_size = 8;
14518 let bytes_len = len * envelope_size;
14519 let offset = decoder.out_of_line_offset(bytes_len)?;
14520 let mut _next_ordinal_to_read = 0;
14522 let mut next_offset = offset;
14523 let end_offset = offset + bytes_len;
14524 _next_ordinal_to_read += 1;
14525 if next_offset >= end_offset {
14526 return Ok(());
14527 }
14528
14529 while _next_ordinal_to_read < 1 {
14531 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14532 _next_ordinal_to_read += 1;
14533 next_offset += envelope_size;
14534 }
14535
14536 let next_out_of_line = decoder.next_out_of_line();
14537 let handles_before = decoder.remaining_handles();
14538 if let Some((inlined, num_bytes, num_handles)) =
14539 fidl::encoding::decode_envelope_header(decoder, next_offset)?
14540 {
14541 let member_inline_size =
14542 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
14543 if inlined != (member_inline_size <= 4) {
14544 return Err(fidl::Error::InvalidInlineBitInEnvelope);
14545 }
14546 let inner_offset;
14547 let mut inner_depth = depth.clone();
14548 if inlined {
14549 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
14550 inner_offset = next_offset;
14551 } else {
14552 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
14553 inner_depth.increment()?;
14554 }
14555 let val_ref = self.txn_id.get_or_insert_with(|| fidl::new_empty!(u64, D));
14556 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
14557 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
14558 {
14559 return Err(fidl::Error::InvalidNumBytesInEnvelope);
14560 }
14561 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
14562 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
14563 }
14564 }
14565
14566 next_offset += envelope_size;
14567 _next_ordinal_to_read += 1;
14568 if next_offset >= end_offset {
14569 return Ok(());
14570 }
14571
14572 while _next_ordinal_to_read < 2 {
14574 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14575 _next_ordinal_to_read += 1;
14576 next_offset += envelope_size;
14577 }
14578
14579 let next_out_of_line = decoder.next_out_of_line();
14580 let handles_before = decoder.remaining_handles();
14581 if let Some((inlined, num_bytes, num_handles)) =
14582 fidl::encoding::decode_envelope_header(decoder, next_offset)?
14583 {
14584 let member_inline_size = <fidl_fuchsia_wlan_common__common::ScheduledScanRequest as fidl::encoding::TypeMarker>::inline_size(decoder.context);
14585 if inlined != (member_inline_size <= 4) {
14586 return Err(fidl::Error::InvalidInlineBitInEnvelope);
14587 }
14588 let inner_offset;
14589 let mut inner_depth = depth.clone();
14590 if inlined {
14591 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
14592 inner_offset = next_offset;
14593 } else {
14594 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
14595 inner_depth.increment()?;
14596 }
14597 let val_ref = self.req.get_or_insert_with(|| {
14598 fidl::new_empty!(fidl_fuchsia_wlan_common__common::ScheduledScanRequest, D)
14599 });
14600 fidl::decode!(
14601 fidl_fuchsia_wlan_common__common::ScheduledScanRequest,
14602 D,
14603 val_ref,
14604 decoder,
14605 inner_offset,
14606 inner_depth
14607 )?;
14608 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
14609 {
14610 return Err(fidl::Error::InvalidNumBytesInEnvelope);
14611 }
14612 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
14613 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
14614 }
14615 }
14616
14617 next_offset += envelope_size;
14618
14619 while next_offset < end_offset {
14621 _next_ordinal_to_read += 1;
14622 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14623 next_offset += envelope_size;
14624 }
14625
14626 Ok(())
14627 }
14628 }
14629
14630 impl WlanFullmacImplStopBssRequest {
14631 #[inline(always)]
14632 fn max_ordinal_present(&self) -> u64 {
14633 if let Some(_) = self.ssid {
14634 return 1;
14635 }
14636 0
14637 }
14638 }
14639
14640 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplStopBssRequest {
14641 type Borrowed<'a> = &'a Self;
14642 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
14643 value
14644 }
14645 }
14646
14647 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplStopBssRequest {
14648 type Owned = Self;
14649
14650 #[inline(always)]
14651 fn inline_align(_context: fidl::encoding::Context) -> usize {
14652 8
14653 }
14654
14655 #[inline(always)]
14656 fn inline_size(_context: fidl::encoding::Context) -> usize {
14657 16
14658 }
14659 }
14660
14661 unsafe impl<D: fidl::encoding::ResourceDialect>
14662 fidl::encoding::Encode<WlanFullmacImplStopBssRequest, D>
14663 for &WlanFullmacImplStopBssRequest
14664 {
14665 unsafe fn encode(
14666 self,
14667 encoder: &mut fidl::encoding::Encoder<'_, D>,
14668 offset: usize,
14669 mut depth: fidl::encoding::Depth,
14670 ) -> fidl::Result<()> {
14671 encoder.debug_check_bounds::<WlanFullmacImplStopBssRequest>(offset);
14672 let max_ordinal: u64 = self.max_ordinal_present();
14674 encoder.write_num(max_ordinal, offset);
14675 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
14676 if max_ordinal == 0 {
14678 return Ok(());
14679 }
14680 depth.increment()?;
14681 let envelope_size = 8;
14682 let bytes_len = max_ordinal as usize * envelope_size;
14683 #[allow(unused_variables)]
14684 let offset = encoder.out_of_line_offset(bytes_len);
14685 let mut _prev_end_offset: usize = 0;
14686 if 1 > max_ordinal {
14687 return Ok(());
14688 }
14689
14690 let cur_offset: usize = (1 - 1) * envelope_size;
14693
14694 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
14696
14697 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<u8, 32>, D>(
14702 self.ssid.as_ref().map(
14703 <fidl::encoding::Vector<u8, 32> as fidl::encoding::ValueTypeMarker>::borrow,
14704 ),
14705 encoder,
14706 offset + cur_offset,
14707 depth,
14708 )?;
14709
14710 _prev_end_offset = cur_offset + envelope_size;
14711
14712 Ok(())
14713 }
14714 }
14715
14716 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
14717 for WlanFullmacImplStopBssRequest
14718 {
14719 #[inline(always)]
14720 fn new_empty() -> Self {
14721 Self::default()
14722 }
14723
14724 unsafe fn decode(
14725 &mut self,
14726 decoder: &mut fidl::encoding::Decoder<'_, D>,
14727 offset: usize,
14728 mut depth: fidl::encoding::Depth,
14729 ) -> fidl::Result<()> {
14730 decoder.debug_check_bounds::<Self>(offset);
14731 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
14732 None => return Err(fidl::Error::NotNullable),
14733 Some(len) => len,
14734 };
14735 if len == 0 {
14737 return Ok(());
14738 };
14739 depth.increment()?;
14740 let envelope_size = 8;
14741 let bytes_len = len * envelope_size;
14742 let offset = decoder.out_of_line_offset(bytes_len)?;
14743 let mut _next_ordinal_to_read = 0;
14745 let mut next_offset = offset;
14746 let end_offset = offset + bytes_len;
14747 _next_ordinal_to_read += 1;
14748 if next_offset >= end_offset {
14749 return Ok(());
14750 }
14751
14752 while _next_ordinal_to_read < 1 {
14754 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14755 _next_ordinal_to_read += 1;
14756 next_offset += envelope_size;
14757 }
14758
14759 let next_out_of_line = decoder.next_out_of_line();
14760 let handles_before = decoder.remaining_handles();
14761 if let Some((inlined, num_bytes, num_handles)) =
14762 fidl::encoding::decode_envelope_header(decoder, next_offset)?
14763 {
14764 let member_inline_size =
14765 <fidl::encoding::Vector<u8, 32> as fidl::encoding::TypeMarker>::inline_size(
14766 decoder.context,
14767 );
14768 if inlined != (member_inline_size <= 4) {
14769 return Err(fidl::Error::InvalidInlineBitInEnvelope);
14770 }
14771 let inner_offset;
14772 let mut inner_depth = depth.clone();
14773 if inlined {
14774 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
14775 inner_offset = next_offset;
14776 } else {
14777 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
14778 inner_depth.increment()?;
14779 }
14780 let val_ref = self
14781 .ssid
14782 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<u8, 32>, D));
14783 fidl::decode!(fidl::encoding::Vector<u8, 32>, D, val_ref, decoder, inner_offset, inner_depth)?;
14784 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
14785 {
14786 return Err(fidl::Error::InvalidNumBytesInEnvelope);
14787 }
14788 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
14789 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
14790 }
14791 }
14792
14793 next_offset += envelope_size;
14794
14795 while next_offset < end_offset {
14797 _next_ordinal_to_read += 1;
14798 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14799 next_offset += envelope_size;
14800 }
14801
14802 Ok(())
14803 }
14804 }
14805
14806 impl WlanFullmacImplStopScheduledScanRequest {
14807 #[inline(always)]
14808 fn max_ordinal_present(&self) -> u64 {
14809 if let Some(_) = self.txn_id {
14810 return 1;
14811 }
14812 0
14813 }
14814 }
14815
14816 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplStopScheduledScanRequest {
14817 type Borrowed<'a> = &'a Self;
14818 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
14819 value
14820 }
14821 }
14822
14823 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplStopScheduledScanRequest {
14824 type Owned = Self;
14825
14826 #[inline(always)]
14827 fn inline_align(_context: fidl::encoding::Context) -> usize {
14828 8
14829 }
14830
14831 #[inline(always)]
14832 fn inline_size(_context: fidl::encoding::Context) -> usize {
14833 16
14834 }
14835 }
14836
14837 unsafe impl<D: fidl::encoding::ResourceDialect>
14838 fidl::encoding::Encode<WlanFullmacImplStopScheduledScanRequest, D>
14839 for &WlanFullmacImplStopScheduledScanRequest
14840 {
14841 unsafe fn encode(
14842 self,
14843 encoder: &mut fidl::encoding::Encoder<'_, D>,
14844 offset: usize,
14845 mut depth: fidl::encoding::Depth,
14846 ) -> fidl::Result<()> {
14847 encoder.debug_check_bounds::<WlanFullmacImplStopScheduledScanRequest>(offset);
14848 let max_ordinal: u64 = self.max_ordinal_present();
14850 encoder.write_num(max_ordinal, offset);
14851 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
14852 if max_ordinal == 0 {
14854 return Ok(());
14855 }
14856 depth.increment()?;
14857 let envelope_size = 8;
14858 let bytes_len = max_ordinal as usize * envelope_size;
14859 #[allow(unused_variables)]
14860 let offset = encoder.out_of_line_offset(bytes_len);
14861 let mut _prev_end_offset: usize = 0;
14862 if 1 > max_ordinal {
14863 return Ok(());
14864 }
14865
14866 let cur_offset: usize = (1 - 1) * envelope_size;
14869
14870 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
14872
14873 fidl::encoding::encode_in_envelope_optional::<u64, D>(
14878 self.txn_id.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
14879 encoder,
14880 offset + cur_offset,
14881 depth,
14882 )?;
14883
14884 _prev_end_offset = cur_offset + envelope_size;
14885
14886 Ok(())
14887 }
14888 }
14889
14890 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
14891 for WlanFullmacImplStopScheduledScanRequest
14892 {
14893 #[inline(always)]
14894 fn new_empty() -> Self {
14895 Self::default()
14896 }
14897
14898 unsafe fn decode(
14899 &mut self,
14900 decoder: &mut fidl::encoding::Decoder<'_, D>,
14901 offset: usize,
14902 mut depth: fidl::encoding::Depth,
14903 ) -> fidl::Result<()> {
14904 decoder.debug_check_bounds::<Self>(offset);
14905 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
14906 None => return Err(fidl::Error::NotNullable),
14907 Some(len) => len,
14908 };
14909 if len == 0 {
14911 return Ok(());
14912 };
14913 depth.increment()?;
14914 let envelope_size = 8;
14915 let bytes_len = len * envelope_size;
14916 let offset = decoder.out_of_line_offset(bytes_len)?;
14917 let mut _next_ordinal_to_read = 0;
14919 let mut next_offset = offset;
14920 let end_offset = offset + bytes_len;
14921 _next_ordinal_to_read += 1;
14922 if next_offset >= end_offset {
14923 return Ok(());
14924 }
14925
14926 while _next_ordinal_to_read < 1 {
14928 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14929 _next_ordinal_to_read += 1;
14930 next_offset += envelope_size;
14931 }
14932
14933 let next_out_of_line = decoder.next_out_of_line();
14934 let handles_before = decoder.remaining_handles();
14935 if let Some((inlined, num_bytes, num_handles)) =
14936 fidl::encoding::decode_envelope_header(decoder, next_offset)?
14937 {
14938 let member_inline_size =
14939 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
14940 if inlined != (member_inline_size <= 4) {
14941 return Err(fidl::Error::InvalidInlineBitInEnvelope);
14942 }
14943 let inner_offset;
14944 let mut inner_depth = depth.clone();
14945 if inlined {
14946 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
14947 inner_offset = next_offset;
14948 } else {
14949 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
14950 inner_depth.increment()?;
14951 }
14952 let val_ref = self.txn_id.get_or_insert_with(|| fidl::new_empty!(u64, D));
14953 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
14954 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
14955 {
14956 return Err(fidl::Error::InvalidNumBytesInEnvelope);
14957 }
14958 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
14959 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
14960 }
14961 }
14962
14963 next_offset += envelope_size;
14964
14965 while next_offset < end_offset {
14967 _next_ordinal_to_read += 1;
14968 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14969 next_offset += envelope_size;
14970 }
14971
14972 Ok(())
14973 }
14974 }
14975
14976 impl WlanFullmacImplGetApfPacketFilterEnabledResponse {
14977 #[inline(always)]
14978 fn max_ordinal_present(&self) -> u64 {
14979 if let Some(_) = self.enabled {
14980 return 1;
14981 }
14982 0
14983 }
14984 }
14985
14986 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplGetApfPacketFilterEnabledResponse {
14987 type Borrowed<'a> = &'a Self;
14988 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
14989 value
14990 }
14991 }
14992
14993 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplGetApfPacketFilterEnabledResponse {
14994 type Owned = Self;
14995
14996 #[inline(always)]
14997 fn inline_align(_context: fidl::encoding::Context) -> usize {
14998 8
14999 }
15000
15001 #[inline(always)]
15002 fn inline_size(_context: fidl::encoding::Context) -> usize {
15003 16
15004 }
15005 }
15006
15007 unsafe impl<D: fidl::encoding::ResourceDialect>
15008 fidl::encoding::Encode<WlanFullmacImplGetApfPacketFilterEnabledResponse, D>
15009 for &WlanFullmacImplGetApfPacketFilterEnabledResponse
15010 {
15011 unsafe fn encode(
15012 self,
15013 encoder: &mut fidl::encoding::Encoder<'_, D>,
15014 offset: usize,
15015 mut depth: fidl::encoding::Depth,
15016 ) -> fidl::Result<()> {
15017 encoder.debug_check_bounds::<WlanFullmacImplGetApfPacketFilterEnabledResponse>(offset);
15018 let max_ordinal: u64 = self.max_ordinal_present();
15020 encoder.write_num(max_ordinal, offset);
15021 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
15022 if max_ordinal == 0 {
15024 return Ok(());
15025 }
15026 depth.increment()?;
15027 let envelope_size = 8;
15028 let bytes_len = max_ordinal as usize * envelope_size;
15029 #[allow(unused_variables)]
15030 let offset = encoder.out_of_line_offset(bytes_len);
15031 let mut _prev_end_offset: usize = 0;
15032 if 1 > max_ordinal {
15033 return Ok(());
15034 }
15035
15036 let cur_offset: usize = (1 - 1) * envelope_size;
15039
15040 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
15042
15043 fidl::encoding::encode_in_envelope_optional::<bool, D>(
15048 self.enabled.as_ref().map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
15049 encoder,
15050 offset + cur_offset,
15051 depth,
15052 )?;
15053
15054 _prev_end_offset = cur_offset + envelope_size;
15055
15056 Ok(())
15057 }
15058 }
15059
15060 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
15061 for WlanFullmacImplGetApfPacketFilterEnabledResponse
15062 {
15063 #[inline(always)]
15064 fn new_empty() -> Self {
15065 Self::default()
15066 }
15067
15068 unsafe fn decode(
15069 &mut self,
15070 decoder: &mut fidl::encoding::Decoder<'_, D>,
15071 offset: usize,
15072 mut depth: fidl::encoding::Depth,
15073 ) -> fidl::Result<()> {
15074 decoder.debug_check_bounds::<Self>(offset);
15075 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
15076 None => return Err(fidl::Error::NotNullable),
15077 Some(len) => len,
15078 };
15079 if len == 0 {
15081 return Ok(());
15082 };
15083 depth.increment()?;
15084 let envelope_size = 8;
15085 let bytes_len = len * envelope_size;
15086 let offset = decoder.out_of_line_offset(bytes_len)?;
15087 let mut _next_ordinal_to_read = 0;
15089 let mut next_offset = offset;
15090 let end_offset = offset + bytes_len;
15091 _next_ordinal_to_read += 1;
15092 if next_offset >= end_offset {
15093 return Ok(());
15094 }
15095
15096 while _next_ordinal_to_read < 1 {
15098 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15099 _next_ordinal_to_read += 1;
15100 next_offset += envelope_size;
15101 }
15102
15103 let next_out_of_line = decoder.next_out_of_line();
15104 let handles_before = decoder.remaining_handles();
15105 if let Some((inlined, num_bytes, num_handles)) =
15106 fidl::encoding::decode_envelope_header(decoder, next_offset)?
15107 {
15108 let member_inline_size =
15109 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
15110 if inlined != (member_inline_size <= 4) {
15111 return Err(fidl::Error::InvalidInlineBitInEnvelope);
15112 }
15113 let inner_offset;
15114 let mut inner_depth = depth.clone();
15115 if inlined {
15116 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
15117 inner_offset = next_offset;
15118 } else {
15119 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
15120 inner_depth.increment()?;
15121 }
15122 let val_ref = self.enabled.get_or_insert_with(|| fidl::new_empty!(bool, D));
15123 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
15124 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
15125 {
15126 return Err(fidl::Error::InvalidNumBytesInEnvelope);
15127 }
15128 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
15129 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
15130 }
15131 }
15132
15133 next_offset += envelope_size;
15134
15135 while next_offset < end_offset {
15137 _next_ordinal_to_read += 1;
15138 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15139 next_offset += envelope_size;
15140 }
15141
15142 Ok(())
15143 }
15144 }
15145
15146 impl WlanFullmacImplGetScheduledScanEnabledResponse {
15147 #[inline(always)]
15148 fn max_ordinal_present(&self) -> u64 {
15149 if let Some(_) = self.active_txn_ids {
15150 return 1;
15151 }
15152 0
15153 }
15154 }
15155
15156 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplGetScheduledScanEnabledResponse {
15157 type Borrowed<'a> = &'a Self;
15158 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
15159 value
15160 }
15161 }
15162
15163 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplGetScheduledScanEnabledResponse {
15164 type Owned = Self;
15165
15166 #[inline(always)]
15167 fn inline_align(_context: fidl::encoding::Context) -> usize {
15168 8
15169 }
15170
15171 #[inline(always)]
15172 fn inline_size(_context: fidl::encoding::Context) -> usize {
15173 16
15174 }
15175 }
15176
15177 unsafe impl<D: fidl::encoding::ResourceDialect>
15178 fidl::encoding::Encode<WlanFullmacImplGetScheduledScanEnabledResponse, D>
15179 for &WlanFullmacImplGetScheduledScanEnabledResponse
15180 {
15181 unsafe fn encode(
15182 self,
15183 encoder: &mut fidl::encoding::Encoder<'_, D>,
15184 offset: usize,
15185 mut depth: fidl::encoding::Depth,
15186 ) -> fidl::Result<()> {
15187 encoder.debug_check_bounds::<WlanFullmacImplGetScheduledScanEnabledResponse>(offset);
15188 let max_ordinal: u64 = self.max_ordinal_present();
15190 encoder.write_num(max_ordinal, offset);
15191 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
15192 if max_ordinal == 0 {
15194 return Ok(());
15195 }
15196 depth.increment()?;
15197 let envelope_size = 8;
15198 let bytes_len = max_ordinal as usize * envelope_size;
15199 #[allow(unused_variables)]
15200 let offset = encoder.out_of_line_offset(bytes_len);
15201 let mut _prev_end_offset: usize = 0;
15202 if 1 > max_ordinal {
15203 return Ok(());
15204 }
15205
15206 let cur_offset: usize = (1 - 1) * envelope_size;
15209
15210 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
15212
15213 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<u64>, D>(
15218 self.active_txn_ids.as_ref().map(<fidl::encoding::UnboundedVector<u64> as fidl::encoding::ValueTypeMarker>::borrow),
15219 encoder, offset + cur_offset, depth
15220 )?;
15221
15222 _prev_end_offset = cur_offset + envelope_size;
15223
15224 Ok(())
15225 }
15226 }
15227
15228 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
15229 for WlanFullmacImplGetScheduledScanEnabledResponse
15230 {
15231 #[inline(always)]
15232 fn new_empty() -> Self {
15233 Self::default()
15234 }
15235
15236 unsafe fn decode(
15237 &mut self,
15238 decoder: &mut fidl::encoding::Decoder<'_, D>,
15239 offset: usize,
15240 mut depth: fidl::encoding::Depth,
15241 ) -> fidl::Result<()> {
15242 decoder.debug_check_bounds::<Self>(offset);
15243 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
15244 None => return Err(fidl::Error::NotNullable),
15245 Some(len) => len,
15246 };
15247 if len == 0 {
15249 return Ok(());
15250 };
15251 depth.increment()?;
15252 let envelope_size = 8;
15253 let bytes_len = len * envelope_size;
15254 let offset = decoder.out_of_line_offset(bytes_len)?;
15255 let mut _next_ordinal_to_read = 0;
15257 let mut next_offset = offset;
15258 let end_offset = offset + bytes_len;
15259 _next_ordinal_to_read += 1;
15260 if next_offset >= end_offset {
15261 return Ok(());
15262 }
15263
15264 while _next_ordinal_to_read < 1 {
15266 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15267 _next_ordinal_to_read += 1;
15268 next_offset += envelope_size;
15269 }
15270
15271 let next_out_of_line = decoder.next_out_of_line();
15272 let handles_before = decoder.remaining_handles();
15273 if let Some((inlined, num_bytes, num_handles)) =
15274 fidl::encoding::decode_envelope_header(decoder, next_offset)?
15275 {
15276 let member_inline_size = <fidl::encoding::UnboundedVector<u64> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
15277 if inlined != (member_inline_size <= 4) {
15278 return Err(fidl::Error::InvalidInlineBitInEnvelope);
15279 }
15280 let inner_offset;
15281 let mut inner_depth = depth.clone();
15282 if inlined {
15283 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
15284 inner_offset = next_offset;
15285 } else {
15286 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
15287 inner_depth.increment()?;
15288 }
15289 let val_ref = self.active_txn_ids.get_or_insert_with(|| {
15290 fidl::new_empty!(fidl::encoding::UnboundedVector<u64>, D)
15291 });
15292 fidl::decode!(
15293 fidl::encoding::UnboundedVector<u64>,
15294 D,
15295 val_ref,
15296 decoder,
15297 inner_offset,
15298 inner_depth
15299 )?;
15300 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
15301 {
15302 return Err(fidl::Error::InvalidNumBytesInEnvelope);
15303 }
15304 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
15305 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
15306 }
15307 }
15308
15309 next_offset += envelope_size;
15310
15311 while next_offset < end_offset {
15313 _next_ordinal_to_read += 1;
15314 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15315 next_offset += envelope_size;
15316 }
15317
15318 Ok(())
15319 }
15320 }
15321
15322 impl WlanFullmacImplQueryApfPacketFilterSupportResponse {
15323 #[inline(always)]
15324 fn max_ordinal_present(&self) -> u64 {
15325 if let Some(_) = self.resp {
15326 return 1;
15327 }
15328 0
15329 }
15330 }
15331
15332 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplQueryApfPacketFilterSupportResponse {
15333 type Borrowed<'a> = &'a Self;
15334 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
15335 value
15336 }
15337 }
15338
15339 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplQueryApfPacketFilterSupportResponse {
15340 type Owned = Self;
15341
15342 #[inline(always)]
15343 fn inline_align(_context: fidl::encoding::Context) -> usize {
15344 8
15345 }
15346
15347 #[inline(always)]
15348 fn inline_size(_context: fidl::encoding::Context) -> usize {
15349 16
15350 }
15351 }
15352
15353 unsafe impl<D: fidl::encoding::ResourceDialect>
15354 fidl::encoding::Encode<WlanFullmacImplQueryApfPacketFilterSupportResponse, D>
15355 for &WlanFullmacImplQueryApfPacketFilterSupportResponse
15356 {
15357 unsafe fn encode(
15358 self,
15359 encoder: &mut fidl::encoding::Encoder<'_, D>,
15360 offset: usize,
15361 mut depth: fidl::encoding::Depth,
15362 ) -> fidl::Result<()> {
15363 encoder
15364 .debug_check_bounds::<WlanFullmacImplQueryApfPacketFilterSupportResponse>(offset);
15365 let max_ordinal: u64 = self.max_ordinal_present();
15367 encoder.write_num(max_ordinal, offset);
15368 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
15369 if max_ordinal == 0 {
15371 return Ok(());
15372 }
15373 depth.increment()?;
15374 let envelope_size = 8;
15375 let bytes_len = max_ordinal as usize * envelope_size;
15376 #[allow(unused_variables)]
15377 let offset = encoder.out_of_line_offset(bytes_len);
15378 let mut _prev_end_offset: usize = 0;
15379 if 1 > max_ordinal {
15380 return Ok(());
15381 }
15382
15383 let cur_offset: usize = (1 - 1) * envelope_size;
15386
15387 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
15389
15390 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_common__common::ApfPacketFilterSupport, D>(
15395 self.resp.as_ref().map(<fidl_fuchsia_wlan_common__common::ApfPacketFilterSupport as fidl::encoding::ValueTypeMarker>::borrow),
15396 encoder, offset + cur_offset, depth
15397 )?;
15398
15399 _prev_end_offset = cur_offset + envelope_size;
15400
15401 Ok(())
15402 }
15403 }
15404
15405 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
15406 for WlanFullmacImplQueryApfPacketFilterSupportResponse
15407 {
15408 #[inline(always)]
15409 fn new_empty() -> Self {
15410 Self::default()
15411 }
15412
15413 unsafe fn decode(
15414 &mut self,
15415 decoder: &mut fidl::encoding::Decoder<'_, D>,
15416 offset: usize,
15417 mut depth: fidl::encoding::Depth,
15418 ) -> fidl::Result<()> {
15419 decoder.debug_check_bounds::<Self>(offset);
15420 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
15421 None => return Err(fidl::Error::NotNullable),
15422 Some(len) => len,
15423 };
15424 if len == 0 {
15426 return Ok(());
15427 };
15428 depth.increment()?;
15429 let envelope_size = 8;
15430 let bytes_len = len * envelope_size;
15431 let offset = decoder.out_of_line_offset(bytes_len)?;
15432 let mut _next_ordinal_to_read = 0;
15434 let mut next_offset = offset;
15435 let end_offset = offset + bytes_len;
15436 _next_ordinal_to_read += 1;
15437 if next_offset >= end_offset {
15438 return Ok(());
15439 }
15440
15441 while _next_ordinal_to_read < 1 {
15443 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15444 _next_ordinal_to_read += 1;
15445 next_offset += envelope_size;
15446 }
15447
15448 let next_out_of_line = decoder.next_out_of_line();
15449 let handles_before = decoder.remaining_handles();
15450 if let Some((inlined, num_bytes, num_handles)) =
15451 fidl::encoding::decode_envelope_header(decoder, next_offset)?
15452 {
15453 let member_inline_size = <fidl_fuchsia_wlan_common__common::ApfPacketFilterSupport as fidl::encoding::TypeMarker>::inline_size(decoder.context);
15454 if inlined != (member_inline_size <= 4) {
15455 return Err(fidl::Error::InvalidInlineBitInEnvelope);
15456 }
15457 let inner_offset;
15458 let mut inner_depth = depth.clone();
15459 if inlined {
15460 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
15461 inner_offset = next_offset;
15462 } else {
15463 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
15464 inner_depth.increment()?;
15465 }
15466 let val_ref = self.resp.get_or_insert_with(|| {
15467 fidl::new_empty!(fidl_fuchsia_wlan_common__common::ApfPacketFilterSupport, D)
15468 });
15469 fidl::decode!(
15470 fidl_fuchsia_wlan_common__common::ApfPacketFilterSupport,
15471 D,
15472 val_ref,
15473 decoder,
15474 inner_offset,
15475 inner_depth
15476 )?;
15477 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
15478 {
15479 return Err(fidl::Error::InvalidNumBytesInEnvelope);
15480 }
15481 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
15482 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
15483 }
15484 }
15485
15486 next_offset += envelope_size;
15487
15488 while next_offset < end_offset {
15490 _next_ordinal_to_read += 1;
15491 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15492 next_offset += envelope_size;
15493 }
15494
15495 Ok(())
15496 }
15497 }
15498
15499 impl WlanFullmacImplQuerySecuritySupportResponse {
15500 #[inline(always)]
15501 fn max_ordinal_present(&self) -> u64 {
15502 if let Some(_) = self.resp {
15503 return 1;
15504 }
15505 0
15506 }
15507 }
15508
15509 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplQuerySecuritySupportResponse {
15510 type Borrowed<'a> = &'a Self;
15511 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
15512 value
15513 }
15514 }
15515
15516 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplQuerySecuritySupportResponse {
15517 type Owned = Self;
15518
15519 #[inline(always)]
15520 fn inline_align(_context: fidl::encoding::Context) -> usize {
15521 8
15522 }
15523
15524 #[inline(always)]
15525 fn inline_size(_context: fidl::encoding::Context) -> usize {
15526 16
15527 }
15528 }
15529
15530 unsafe impl<D: fidl::encoding::ResourceDialect>
15531 fidl::encoding::Encode<WlanFullmacImplQuerySecuritySupportResponse, D>
15532 for &WlanFullmacImplQuerySecuritySupportResponse
15533 {
15534 unsafe fn encode(
15535 self,
15536 encoder: &mut fidl::encoding::Encoder<'_, D>,
15537 offset: usize,
15538 mut depth: fidl::encoding::Depth,
15539 ) -> fidl::Result<()> {
15540 encoder.debug_check_bounds::<WlanFullmacImplQuerySecuritySupportResponse>(offset);
15541 let max_ordinal: u64 = self.max_ordinal_present();
15543 encoder.write_num(max_ordinal, offset);
15544 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
15545 if max_ordinal == 0 {
15547 return Ok(());
15548 }
15549 depth.increment()?;
15550 let envelope_size = 8;
15551 let bytes_len = max_ordinal as usize * envelope_size;
15552 #[allow(unused_variables)]
15553 let offset = encoder.out_of_line_offset(bytes_len);
15554 let mut _prev_end_offset: usize = 0;
15555 if 1 > max_ordinal {
15556 return Ok(());
15557 }
15558
15559 let cur_offset: usize = (1 - 1) * envelope_size;
15562
15563 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
15565
15566 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_common__common::SecuritySupport, D>(
15571 self.resp.as_ref().map(<fidl_fuchsia_wlan_common__common::SecuritySupport as fidl::encoding::ValueTypeMarker>::borrow),
15572 encoder, offset + cur_offset, depth
15573 )?;
15574
15575 _prev_end_offset = cur_offset + envelope_size;
15576
15577 Ok(())
15578 }
15579 }
15580
15581 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
15582 for WlanFullmacImplQuerySecuritySupportResponse
15583 {
15584 #[inline(always)]
15585 fn new_empty() -> Self {
15586 Self::default()
15587 }
15588
15589 unsafe fn decode(
15590 &mut self,
15591 decoder: &mut fidl::encoding::Decoder<'_, D>,
15592 offset: usize,
15593 mut depth: fidl::encoding::Depth,
15594 ) -> fidl::Result<()> {
15595 decoder.debug_check_bounds::<Self>(offset);
15596 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
15597 None => return Err(fidl::Error::NotNullable),
15598 Some(len) => len,
15599 };
15600 if len == 0 {
15602 return Ok(());
15603 };
15604 depth.increment()?;
15605 let envelope_size = 8;
15606 let bytes_len = len * envelope_size;
15607 let offset = decoder.out_of_line_offset(bytes_len)?;
15608 let mut _next_ordinal_to_read = 0;
15610 let mut next_offset = offset;
15611 let end_offset = offset + bytes_len;
15612 _next_ordinal_to_read += 1;
15613 if next_offset >= end_offset {
15614 return Ok(());
15615 }
15616
15617 while _next_ordinal_to_read < 1 {
15619 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15620 _next_ordinal_to_read += 1;
15621 next_offset += envelope_size;
15622 }
15623
15624 let next_out_of_line = decoder.next_out_of_line();
15625 let handles_before = decoder.remaining_handles();
15626 if let Some((inlined, num_bytes, num_handles)) =
15627 fidl::encoding::decode_envelope_header(decoder, next_offset)?
15628 {
15629 let member_inline_size = <fidl_fuchsia_wlan_common__common::SecuritySupport as fidl::encoding::TypeMarker>::inline_size(decoder.context);
15630 if inlined != (member_inline_size <= 4) {
15631 return Err(fidl::Error::InvalidInlineBitInEnvelope);
15632 }
15633 let inner_offset;
15634 let mut inner_depth = depth.clone();
15635 if inlined {
15636 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
15637 inner_offset = next_offset;
15638 } else {
15639 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
15640 inner_depth.increment()?;
15641 }
15642 let val_ref = self.resp.get_or_insert_with(|| {
15643 fidl::new_empty!(fidl_fuchsia_wlan_common__common::SecuritySupport, D)
15644 });
15645 fidl::decode!(
15646 fidl_fuchsia_wlan_common__common::SecuritySupport,
15647 D,
15648 val_ref,
15649 decoder,
15650 inner_offset,
15651 inner_depth
15652 )?;
15653 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
15654 {
15655 return Err(fidl::Error::InvalidNumBytesInEnvelope);
15656 }
15657 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
15658 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
15659 }
15660 }
15661
15662 next_offset += envelope_size;
15663
15664 while next_offset < end_offset {
15666 _next_ordinal_to_read += 1;
15667 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15668 next_offset += envelope_size;
15669 }
15670
15671 Ok(())
15672 }
15673 }
15674
15675 impl WlanFullmacImplQuerySpectrumManagementSupportResponse {
15676 #[inline(always)]
15677 fn max_ordinal_present(&self) -> u64 {
15678 if let Some(_) = self.resp {
15679 return 1;
15680 }
15681 0
15682 }
15683 }
15684
15685 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplQuerySpectrumManagementSupportResponse {
15686 type Borrowed<'a> = &'a Self;
15687 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
15688 value
15689 }
15690 }
15691
15692 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplQuerySpectrumManagementSupportResponse {
15693 type Owned = Self;
15694
15695 #[inline(always)]
15696 fn inline_align(_context: fidl::encoding::Context) -> usize {
15697 8
15698 }
15699
15700 #[inline(always)]
15701 fn inline_size(_context: fidl::encoding::Context) -> usize {
15702 16
15703 }
15704 }
15705
15706 unsafe impl<D: fidl::encoding::ResourceDialect>
15707 fidl::encoding::Encode<WlanFullmacImplQuerySpectrumManagementSupportResponse, D>
15708 for &WlanFullmacImplQuerySpectrumManagementSupportResponse
15709 {
15710 unsafe fn encode(
15711 self,
15712 encoder: &mut fidl::encoding::Encoder<'_, D>,
15713 offset: usize,
15714 mut depth: fidl::encoding::Depth,
15715 ) -> fidl::Result<()> {
15716 encoder.debug_check_bounds::<WlanFullmacImplQuerySpectrumManagementSupportResponse>(
15717 offset,
15718 );
15719 let max_ordinal: u64 = self.max_ordinal_present();
15721 encoder.write_num(max_ordinal, offset);
15722 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
15723 if max_ordinal == 0 {
15725 return Ok(());
15726 }
15727 depth.increment()?;
15728 let envelope_size = 8;
15729 let bytes_len = max_ordinal as usize * envelope_size;
15730 #[allow(unused_variables)]
15731 let offset = encoder.out_of_line_offset(bytes_len);
15732 let mut _prev_end_offset: usize = 0;
15733 if 1 > max_ordinal {
15734 return Ok(());
15735 }
15736
15737 let cur_offset: usize = (1 - 1) * envelope_size;
15740
15741 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
15743
15744 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_common__common::SpectrumManagementSupport, D>(
15749 self.resp.as_ref().map(<fidl_fuchsia_wlan_common__common::SpectrumManagementSupport as fidl::encoding::ValueTypeMarker>::borrow),
15750 encoder, offset + cur_offset, depth
15751 )?;
15752
15753 _prev_end_offset = cur_offset + envelope_size;
15754
15755 Ok(())
15756 }
15757 }
15758
15759 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
15760 for WlanFullmacImplQuerySpectrumManagementSupportResponse
15761 {
15762 #[inline(always)]
15763 fn new_empty() -> Self {
15764 Self::default()
15765 }
15766
15767 unsafe fn decode(
15768 &mut self,
15769 decoder: &mut fidl::encoding::Decoder<'_, D>,
15770 offset: usize,
15771 mut depth: fidl::encoding::Depth,
15772 ) -> fidl::Result<()> {
15773 decoder.debug_check_bounds::<Self>(offset);
15774 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
15775 None => return Err(fidl::Error::NotNullable),
15776 Some(len) => len,
15777 };
15778 if len == 0 {
15780 return Ok(());
15781 };
15782 depth.increment()?;
15783 let envelope_size = 8;
15784 let bytes_len = len * envelope_size;
15785 let offset = decoder.out_of_line_offset(bytes_len)?;
15786 let mut _next_ordinal_to_read = 0;
15788 let mut next_offset = offset;
15789 let end_offset = offset + bytes_len;
15790 _next_ordinal_to_read += 1;
15791 if next_offset >= end_offset {
15792 return Ok(());
15793 }
15794
15795 while _next_ordinal_to_read < 1 {
15797 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15798 _next_ordinal_to_read += 1;
15799 next_offset += envelope_size;
15800 }
15801
15802 let next_out_of_line = decoder.next_out_of_line();
15803 let handles_before = decoder.remaining_handles();
15804 if let Some((inlined, num_bytes, num_handles)) =
15805 fidl::encoding::decode_envelope_header(decoder, next_offset)?
15806 {
15807 let member_inline_size = <fidl_fuchsia_wlan_common__common::SpectrumManagementSupport as fidl::encoding::TypeMarker>::inline_size(decoder.context);
15808 if inlined != (member_inline_size <= 4) {
15809 return Err(fidl::Error::InvalidInlineBitInEnvelope);
15810 }
15811 let inner_offset;
15812 let mut inner_depth = depth.clone();
15813 if inlined {
15814 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
15815 inner_offset = next_offset;
15816 } else {
15817 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
15818 inner_depth.increment()?;
15819 }
15820 let val_ref = self.resp.get_or_insert_with(|| {
15821 fidl::new_empty!(fidl_fuchsia_wlan_common__common::SpectrumManagementSupport, D)
15822 });
15823 fidl::decode!(
15824 fidl_fuchsia_wlan_common__common::SpectrumManagementSupport,
15825 D,
15826 val_ref,
15827 decoder,
15828 inner_offset,
15829 inner_depth
15830 )?;
15831 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
15832 {
15833 return Err(fidl::Error::InvalidNumBytesInEnvelope);
15834 }
15835 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
15836 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
15837 }
15838 }
15839
15840 next_offset += envelope_size;
15841
15842 while next_offset < end_offset {
15844 _next_ordinal_to_read += 1;
15845 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15846 next_offset += envelope_size;
15847 }
15848
15849 Ok(())
15850 }
15851 }
15852
15853 impl WlanFullmacImplQueryTelemetrySupportResponse {
15854 #[inline(always)]
15855 fn max_ordinal_present(&self) -> u64 {
15856 if let Some(_) = self.resp {
15857 return 1;
15858 }
15859 0
15860 }
15861 }
15862
15863 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplQueryTelemetrySupportResponse {
15864 type Borrowed<'a> = &'a Self;
15865 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
15866 value
15867 }
15868 }
15869
15870 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplQueryTelemetrySupportResponse {
15871 type Owned = Self;
15872
15873 #[inline(always)]
15874 fn inline_align(_context: fidl::encoding::Context) -> usize {
15875 8
15876 }
15877
15878 #[inline(always)]
15879 fn inline_size(_context: fidl::encoding::Context) -> usize {
15880 16
15881 }
15882 }
15883
15884 unsafe impl<D: fidl::encoding::ResourceDialect>
15885 fidl::encoding::Encode<WlanFullmacImplQueryTelemetrySupportResponse, D>
15886 for &WlanFullmacImplQueryTelemetrySupportResponse
15887 {
15888 unsafe fn encode(
15889 self,
15890 encoder: &mut fidl::encoding::Encoder<'_, D>,
15891 offset: usize,
15892 mut depth: fidl::encoding::Depth,
15893 ) -> fidl::Result<()> {
15894 encoder.debug_check_bounds::<WlanFullmacImplQueryTelemetrySupportResponse>(offset);
15895 let max_ordinal: u64 = self.max_ordinal_present();
15897 encoder.write_num(max_ordinal, offset);
15898 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
15899 if max_ordinal == 0 {
15901 return Ok(());
15902 }
15903 depth.increment()?;
15904 let envelope_size = 8;
15905 let bytes_len = max_ordinal as usize * envelope_size;
15906 #[allow(unused_variables)]
15907 let offset = encoder.out_of_line_offset(bytes_len);
15908 let mut _prev_end_offset: usize = 0;
15909 if 1 > max_ordinal {
15910 return Ok(());
15911 }
15912
15913 let cur_offset: usize = (1 - 1) * envelope_size;
15916
15917 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
15919
15920 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_stats__common::TelemetrySupport, D>(
15925 self.resp.as_ref().map(<fidl_fuchsia_wlan_stats__common::TelemetrySupport as fidl::encoding::ValueTypeMarker>::borrow),
15926 encoder, offset + cur_offset, depth
15927 )?;
15928
15929 _prev_end_offset = cur_offset + envelope_size;
15930
15931 Ok(())
15932 }
15933 }
15934
15935 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
15936 for WlanFullmacImplQueryTelemetrySupportResponse
15937 {
15938 #[inline(always)]
15939 fn new_empty() -> Self {
15940 Self::default()
15941 }
15942
15943 unsafe fn decode(
15944 &mut self,
15945 decoder: &mut fidl::encoding::Decoder<'_, D>,
15946 offset: usize,
15947 mut depth: fidl::encoding::Depth,
15948 ) -> fidl::Result<()> {
15949 decoder.debug_check_bounds::<Self>(offset);
15950 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
15951 None => return Err(fidl::Error::NotNullable),
15952 Some(len) => len,
15953 };
15954 if len == 0 {
15956 return Ok(());
15957 };
15958 depth.increment()?;
15959 let envelope_size = 8;
15960 let bytes_len = len * envelope_size;
15961 let offset = decoder.out_of_line_offset(bytes_len)?;
15962 let mut _next_ordinal_to_read = 0;
15964 let mut next_offset = offset;
15965 let end_offset = offset + bytes_len;
15966 _next_ordinal_to_read += 1;
15967 if next_offset >= end_offset {
15968 return Ok(());
15969 }
15970
15971 while _next_ordinal_to_read < 1 {
15973 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15974 _next_ordinal_to_read += 1;
15975 next_offset += envelope_size;
15976 }
15977
15978 let next_out_of_line = decoder.next_out_of_line();
15979 let handles_before = decoder.remaining_handles();
15980 if let Some((inlined, num_bytes, num_handles)) =
15981 fidl::encoding::decode_envelope_header(decoder, next_offset)?
15982 {
15983 let member_inline_size = <fidl_fuchsia_wlan_stats__common::TelemetrySupport as fidl::encoding::TypeMarker>::inline_size(decoder.context);
15984 if inlined != (member_inline_size <= 4) {
15985 return Err(fidl::Error::InvalidInlineBitInEnvelope);
15986 }
15987 let inner_offset;
15988 let mut inner_depth = depth.clone();
15989 if inlined {
15990 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
15991 inner_offset = next_offset;
15992 } else {
15993 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
15994 inner_depth.increment()?;
15995 }
15996 let val_ref = self.resp.get_or_insert_with(|| {
15997 fidl::new_empty!(fidl_fuchsia_wlan_stats__common::TelemetrySupport, D)
15998 });
15999 fidl::decode!(
16000 fidl_fuchsia_wlan_stats__common::TelemetrySupport,
16001 D,
16002 val_ref,
16003 decoder,
16004 inner_offset,
16005 inner_depth
16006 )?;
16007 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
16008 {
16009 return Err(fidl::Error::InvalidNumBytesInEnvelope);
16010 }
16011 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
16012 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
16013 }
16014 }
16015
16016 next_offset += envelope_size;
16017
16018 while next_offset < end_offset {
16020 _next_ordinal_to_read += 1;
16021 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
16022 next_offset += envelope_size;
16023 }
16024
16025 Ok(())
16026 }
16027 }
16028
16029 impl WlanFullmacImplQueryResponse {
16030 #[inline(always)]
16031 fn max_ordinal_present(&self) -> u64 {
16032 if let Some(_) = self.factory_addr {
16033 return 4;
16034 }
16035 if let Some(_) = self.band_caps {
16036 return 3;
16037 }
16038 if let Some(_) = self.role {
16039 return 2;
16040 }
16041 if let Some(_) = self.sta_addr {
16042 return 1;
16043 }
16044 0
16045 }
16046 }
16047
16048 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplQueryResponse {
16049 type Borrowed<'a> = &'a Self;
16050 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
16051 value
16052 }
16053 }
16054
16055 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplQueryResponse {
16056 type Owned = Self;
16057
16058 #[inline(always)]
16059 fn inline_align(_context: fidl::encoding::Context) -> usize {
16060 8
16061 }
16062
16063 #[inline(always)]
16064 fn inline_size(_context: fidl::encoding::Context) -> usize {
16065 16
16066 }
16067 }
16068
16069 unsafe impl<D: fidl::encoding::ResourceDialect>
16070 fidl::encoding::Encode<WlanFullmacImplQueryResponse, D> for &WlanFullmacImplQueryResponse
16071 {
16072 unsafe fn encode(
16073 self,
16074 encoder: &mut fidl::encoding::Encoder<'_, D>,
16075 offset: usize,
16076 mut depth: fidl::encoding::Depth,
16077 ) -> fidl::Result<()> {
16078 encoder.debug_check_bounds::<WlanFullmacImplQueryResponse>(offset);
16079 let max_ordinal: u64 = self.max_ordinal_present();
16081 encoder.write_num(max_ordinal, offset);
16082 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
16083 if max_ordinal == 0 {
16085 return Ok(());
16086 }
16087 depth.increment()?;
16088 let envelope_size = 8;
16089 let bytes_len = max_ordinal as usize * envelope_size;
16090 #[allow(unused_variables)]
16091 let offset = encoder.out_of_line_offset(bytes_len);
16092 let mut _prev_end_offset: usize = 0;
16093 if 1 > max_ordinal {
16094 return Ok(());
16095 }
16096
16097 let cur_offset: usize = (1 - 1) * envelope_size;
16100
16101 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
16103
16104 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
16109 self.sta_addr
16110 .as_ref()
16111 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
16112 encoder,
16113 offset + cur_offset,
16114 depth,
16115 )?;
16116
16117 _prev_end_offset = cur_offset + envelope_size;
16118 if 2 > max_ordinal {
16119 return Ok(());
16120 }
16121
16122 let cur_offset: usize = (2 - 1) * envelope_size;
16125
16126 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
16128
16129 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_common__common::WlanMacRole, D>(
16134 self.role.as_ref().map(<fidl_fuchsia_wlan_common__common::WlanMacRole as fidl::encoding::ValueTypeMarker>::borrow),
16135 encoder, offset + cur_offset, depth
16136 )?;
16137
16138 _prev_end_offset = cur_offset + envelope_size;
16139 if 3 > max_ordinal {
16140 return Ok(());
16141 }
16142
16143 let cur_offset: usize = (3 - 1) * envelope_size;
16146
16147 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
16149
16150 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<BandCapability, 16>, D>(
16155 self.band_caps.as_ref().map(<fidl::encoding::Vector<BandCapability, 16> as fidl::encoding::ValueTypeMarker>::borrow),
16156 encoder, offset + cur_offset, depth
16157 )?;
16158
16159 _prev_end_offset = cur_offset + envelope_size;
16160 if 4 > max_ordinal {
16161 return Ok(());
16162 }
16163
16164 let cur_offset: usize = (4 - 1) * envelope_size;
16167
16168 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
16170
16171 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
16176 self.factory_addr
16177 .as_ref()
16178 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
16179 encoder,
16180 offset + cur_offset,
16181 depth,
16182 )?;
16183
16184 _prev_end_offset = cur_offset + envelope_size;
16185
16186 Ok(())
16187 }
16188 }
16189
16190 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
16191 for WlanFullmacImplQueryResponse
16192 {
16193 #[inline(always)]
16194 fn new_empty() -> Self {
16195 Self::default()
16196 }
16197
16198 unsafe fn decode(
16199 &mut self,
16200 decoder: &mut fidl::encoding::Decoder<'_, D>,
16201 offset: usize,
16202 mut depth: fidl::encoding::Depth,
16203 ) -> fidl::Result<()> {
16204 decoder.debug_check_bounds::<Self>(offset);
16205 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
16206 None => return Err(fidl::Error::NotNullable),
16207 Some(len) => len,
16208 };
16209 if len == 0 {
16211 return Ok(());
16212 };
16213 depth.increment()?;
16214 let envelope_size = 8;
16215 let bytes_len = len * envelope_size;
16216 let offset = decoder.out_of_line_offset(bytes_len)?;
16217 let mut _next_ordinal_to_read = 0;
16219 let mut next_offset = offset;
16220 let end_offset = offset + bytes_len;
16221 _next_ordinal_to_read += 1;
16222 if next_offset >= end_offset {
16223 return Ok(());
16224 }
16225
16226 while _next_ordinal_to_read < 1 {
16228 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
16229 _next_ordinal_to_read += 1;
16230 next_offset += envelope_size;
16231 }
16232
16233 let next_out_of_line = decoder.next_out_of_line();
16234 let handles_before = decoder.remaining_handles();
16235 if let Some((inlined, num_bytes, num_handles)) =
16236 fidl::encoding::decode_envelope_header(decoder, next_offset)?
16237 {
16238 let member_inline_size =
16239 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
16240 decoder.context,
16241 );
16242 if inlined != (member_inline_size <= 4) {
16243 return Err(fidl::Error::InvalidInlineBitInEnvelope);
16244 }
16245 let inner_offset;
16246 let mut inner_depth = depth.clone();
16247 if inlined {
16248 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
16249 inner_offset = next_offset;
16250 } else {
16251 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
16252 inner_depth.increment()?;
16253 }
16254 let val_ref = self
16255 .sta_addr
16256 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
16257 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
16258 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
16259 {
16260 return Err(fidl::Error::InvalidNumBytesInEnvelope);
16261 }
16262 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
16263 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
16264 }
16265 }
16266
16267 next_offset += envelope_size;
16268 _next_ordinal_to_read += 1;
16269 if next_offset >= end_offset {
16270 return Ok(());
16271 }
16272
16273 while _next_ordinal_to_read < 2 {
16275 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
16276 _next_ordinal_to_read += 1;
16277 next_offset += envelope_size;
16278 }
16279
16280 let next_out_of_line = decoder.next_out_of_line();
16281 let handles_before = decoder.remaining_handles();
16282 if let Some((inlined, num_bytes, num_handles)) =
16283 fidl::encoding::decode_envelope_header(decoder, next_offset)?
16284 {
16285 let member_inline_size = <fidl_fuchsia_wlan_common__common::WlanMacRole as fidl::encoding::TypeMarker>::inline_size(decoder.context);
16286 if inlined != (member_inline_size <= 4) {
16287 return Err(fidl::Error::InvalidInlineBitInEnvelope);
16288 }
16289 let inner_offset;
16290 let mut inner_depth = depth.clone();
16291 if inlined {
16292 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
16293 inner_offset = next_offset;
16294 } else {
16295 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
16296 inner_depth.increment()?;
16297 }
16298 let val_ref = self.role.get_or_insert_with(|| {
16299 fidl::new_empty!(fidl_fuchsia_wlan_common__common::WlanMacRole, D)
16300 });
16301 fidl::decode!(
16302 fidl_fuchsia_wlan_common__common::WlanMacRole,
16303 D,
16304 val_ref,
16305 decoder,
16306 inner_offset,
16307 inner_depth
16308 )?;
16309 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
16310 {
16311 return Err(fidl::Error::InvalidNumBytesInEnvelope);
16312 }
16313 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
16314 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
16315 }
16316 }
16317
16318 next_offset += envelope_size;
16319 _next_ordinal_to_read += 1;
16320 if next_offset >= end_offset {
16321 return Ok(());
16322 }
16323
16324 while _next_ordinal_to_read < 3 {
16326 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
16327 _next_ordinal_to_read += 1;
16328 next_offset += envelope_size;
16329 }
16330
16331 let next_out_of_line = decoder.next_out_of_line();
16332 let handles_before = decoder.remaining_handles();
16333 if let Some((inlined, num_bytes, num_handles)) =
16334 fidl::encoding::decode_envelope_header(decoder, next_offset)?
16335 {
16336 let member_inline_size = <fidl::encoding::Vector<BandCapability, 16> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
16337 if inlined != (member_inline_size <= 4) {
16338 return Err(fidl::Error::InvalidInlineBitInEnvelope);
16339 }
16340 let inner_offset;
16341 let mut inner_depth = depth.clone();
16342 if inlined {
16343 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
16344 inner_offset = next_offset;
16345 } else {
16346 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
16347 inner_depth.increment()?;
16348 }
16349 let val_ref = self.band_caps.get_or_insert_with(
16350 || fidl::new_empty!(fidl::encoding::Vector<BandCapability, 16>, D),
16351 );
16352 fidl::decode!(fidl::encoding::Vector<BandCapability, 16>, D, val_ref, decoder, inner_offset, inner_depth)?;
16353 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
16354 {
16355 return Err(fidl::Error::InvalidNumBytesInEnvelope);
16356 }
16357 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
16358 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
16359 }
16360 }
16361
16362 next_offset += envelope_size;
16363 _next_ordinal_to_read += 1;
16364 if next_offset >= end_offset {
16365 return Ok(());
16366 }
16367
16368 while _next_ordinal_to_read < 4 {
16370 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
16371 _next_ordinal_to_read += 1;
16372 next_offset += envelope_size;
16373 }
16374
16375 let next_out_of_line = decoder.next_out_of_line();
16376 let handles_before = decoder.remaining_handles();
16377 if let Some((inlined, num_bytes, num_handles)) =
16378 fidl::encoding::decode_envelope_header(decoder, next_offset)?
16379 {
16380 let member_inline_size =
16381 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
16382 decoder.context,
16383 );
16384 if inlined != (member_inline_size <= 4) {
16385 return Err(fidl::Error::InvalidInlineBitInEnvelope);
16386 }
16387 let inner_offset;
16388 let mut inner_depth = depth.clone();
16389 if inlined {
16390 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
16391 inner_offset = next_offset;
16392 } else {
16393 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
16394 inner_depth.increment()?;
16395 }
16396 let val_ref = self
16397 .factory_addr
16398 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
16399 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
16400 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
16401 {
16402 return Err(fidl::Error::InvalidNumBytesInEnvelope);
16403 }
16404 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
16405 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
16406 }
16407 }
16408
16409 next_offset += envelope_size;
16410
16411 while next_offset < end_offset {
16413 _next_ordinal_to_read += 1;
16414 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
16415 next_offset += envelope_size;
16416 }
16417
16418 Ok(())
16419 }
16420 }
16421
16422 impl WlanFullmacImplReadApfPacketFilterDataResponse {
16423 #[inline(always)]
16424 fn max_ordinal_present(&self) -> u64 {
16425 if let Some(_) = self.memory {
16426 return 1;
16427 }
16428 0
16429 }
16430 }
16431
16432 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplReadApfPacketFilterDataResponse {
16433 type Borrowed<'a> = &'a Self;
16434 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
16435 value
16436 }
16437 }
16438
16439 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplReadApfPacketFilterDataResponse {
16440 type Owned = Self;
16441
16442 #[inline(always)]
16443 fn inline_align(_context: fidl::encoding::Context) -> usize {
16444 8
16445 }
16446
16447 #[inline(always)]
16448 fn inline_size(_context: fidl::encoding::Context) -> usize {
16449 16
16450 }
16451 }
16452
16453 unsafe impl<D: fidl::encoding::ResourceDialect>
16454 fidl::encoding::Encode<WlanFullmacImplReadApfPacketFilterDataResponse, D>
16455 for &WlanFullmacImplReadApfPacketFilterDataResponse
16456 {
16457 unsafe fn encode(
16458 self,
16459 encoder: &mut fidl::encoding::Encoder<'_, D>,
16460 offset: usize,
16461 mut depth: fidl::encoding::Depth,
16462 ) -> fidl::Result<()> {
16463 encoder.debug_check_bounds::<WlanFullmacImplReadApfPacketFilterDataResponse>(offset);
16464 let max_ordinal: u64 = self.max_ordinal_present();
16466 encoder.write_num(max_ordinal, offset);
16467 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
16468 if max_ordinal == 0 {
16470 return Ok(());
16471 }
16472 depth.increment()?;
16473 let envelope_size = 8;
16474 let bytes_len = max_ordinal as usize * envelope_size;
16475 #[allow(unused_variables)]
16476 let offset = encoder.out_of_line_offset(bytes_len);
16477 let mut _prev_end_offset: usize = 0;
16478 if 1 > max_ordinal {
16479 return Ok(());
16480 }
16481
16482 let cur_offset: usize = (1 - 1) * envelope_size;
16485
16486 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
16488
16489 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<u8>, D>(
16494 self.memory.as_ref().map(<fidl::encoding::UnboundedVector<u8> as fidl::encoding::ValueTypeMarker>::borrow),
16495 encoder, offset + cur_offset, depth
16496 )?;
16497
16498 _prev_end_offset = cur_offset + envelope_size;
16499
16500 Ok(())
16501 }
16502 }
16503
16504 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
16505 for WlanFullmacImplReadApfPacketFilterDataResponse
16506 {
16507 #[inline(always)]
16508 fn new_empty() -> Self {
16509 Self::default()
16510 }
16511
16512 unsafe fn decode(
16513 &mut self,
16514 decoder: &mut fidl::encoding::Decoder<'_, D>,
16515 offset: usize,
16516 mut depth: fidl::encoding::Depth,
16517 ) -> fidl::Result<()> {
16518 decoder.debug_check_bounds::<Self>(offset);
16519 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
16520 None => return Err(fidl::Error::NotNullable),
16521 Some(len) => len,
16522 };
16523 if len == 0 {
16525 return Ok(());
16526 };
16527 depth.increment()?;
16528 let envelope_size = 8;
16529 let bytes_len = len * envelope_size;
16530 let offset = decoder.out_of_line_offset(bytes_len)?;
16531 let mut _next_ordinal_to_read = 0;
16533 let mut next_offset = offset;
16534 let end_offset = offset + bytes_len;
16535 _next_ordinal_to_read += 1;
16536 if next_offset >= end_offset {
16537 return Ok(());
16538 }
16539
16540 while _next_ordinal_to_read < 1 {
16542 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
16543 _next_ordinal_to_read += 1;
16544 next_offset += envelope_size;
16545 }
16546
16547 let next_out_of_line = decoder.next_out_of_line();
16548 let handles_before = decoder.remaining_handles();
16549 if let Some((inlined, num_bytes, num_handles)) =
16550 fidl::encoding::decode_envelope_header(decoder, next_offset)?
16551 {
16552 let member_inline_size = <fidl::encoding::UnboundedVector<u8> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
16553 if inlined != (member_inline_size <= 4) {
16554 return Err(fidl::Error::InvalidInlineBitInEnvelope);
16555 }
16556 let inner_offset;
16557 let mut inner_depth = depth.clone();
16558 if inlined {
16559 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
16560 inner_offset = next_offset;
16561 } else {
16562 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
16563 inner_depth.increment()?;
16564 }
16565 let val_ref = self.memory.get_or_insert_with(|| {
16566 fidl::new_empty!(fidl::encoding::UnboundedVector<u8>, D)
16567 });
16568 fidl::decode!(
16569 fidl::encoding::UnboundedVector<u8>,
16570 D,
16571 val_ref,
16572 decoder,
16573 inner_offset,
16574 inner_depth
16575 )?;
16576 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
16577 {
16578 return Err(fidl::Error::InvalidNumBytesInEnvelope);
16579 }
16580 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
16581 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
16582 }
16583 }
16584
16585 next_offset += envelope_size;
16586
16587 while next_offset < end_offset {
16589 _next_ordinal_to_read += 1;
16590 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
16591 next_offset += envelope_size;
16592 }
16593
16594 Ok(())
16595 }
16596 }
16597
16598 impl WlanFullmacOwePublicKey {
16599 #[inline(always)]
16600 fn max_ordinal_present(&self) -> u64 {
16601 if let Some(_) = self.key {
16602 return 2;
16603 }
16604 if let Some(_) = self.group {
16605 return 1;
16606 }
16607 0
16608 }
16609 }
16610
16611 impl fidl::encoding::ValueTypeMarker for WlanFullmacOwePublicKey {
16612 type Borrowed<'a> = &'a Self;
16613 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
16614 value
16615 }
16616 }
16617
16618 unsafe impl fidl::encoding::TypeMarker for WlanFullmacOwePublicKey {
16619 type Owned = Self;
16620
16621 #[inline(always)]
16622 fn inline_align(_context: fidl::encoding::Context) -> usize {
16623 8
16624 }
16625
16626 #[inline(always)]
16627 fn inline_size(_context: fidl::encoding::Context) -> usize {
16628 16
16629 }
16630 }
16631
16632 unsafe impl<D: fidl::encoding::ResourceDialect>
16633 fidl::encoding::Encode<WlanFullmacOwePublicKey, D> for &WlanFullmacOwePublicKey
16634 {
16635 unsafe fn encode(
16636 self,
16637 encoder: &mut fidl::encoding::Encoder<'_, D>,
16638 offset: usize,
16639 mut depth: fidl::encoding::Depth,
16640 ) -> fidl::Result<()> {
16641 encoder.debug_check_bounds::<WlanFullmacOwePublicKey>(offset);
16642 let max_ordinal: u64 = self.max_ordinal_present();
16644 encoder.write_num(max_ordinal, offset);
16645 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
16646 if max_ordinal == 0 {
16648 return Ok(());
16649 }
16650 depth.increment()?;
16651 let envelope_size = 8;
16652 let bytes_len = max_ordinal as usize * envelope_size;
16653 #[allow(unused_variables)]
16654 let offset = encoder.out_of_line_offset(bytes_len);
16655 let mut _prev_end_offset: usize = 0;
16656 if 1 > max_ordinal {
16657 return Ok(());
16658 }
16659
16660 let cur_offset: usize = (1 - 1) * envelope_size;
16663
16664 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
16666
16667 fidl::encoding::encode_in_envelope_optional::<u16, D>(
16672 self.group.as_ref().map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
16673 encoder,
16674 offset + cur_offset,
16675 depth,
16676 )?;
16677
16678 _prev_end_offset = cur_offset + envelope_size;
16679 if 2 > max_ordinal {
16680 return Ok(());
16681 }
16682
16683 let cur_offset: usize = (2 - 1) * envelope_size;
16686
16687 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
16689
16690 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<u8>, D>(
16695 self.key.as_ref().map(<fidl::encoding::UnboundedVector<u8> as fidl::encoding::ValueTypeMarker>::borrow),
16696 encoder, offset + cur_offset, depth
16697 )?;
16698
16699 _prev_end_offset = cur_offset + envelope_size;
16700
16701 Ok(())
16702 }
16703 }
16704
16705 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
16706 for WlanFullmacOwePublicKey
16707 {
16708 #[inline(always)]
16709 fn new_empty() -> Self {
16710 Self::default()
16711 }
16712
16713 unsafe fn decode(
16714 &mut self,
16715 decoder: &mut fidl::encoding::Decoder<'_, D>,
16716 offset: usize,
16717 mut depth: fidl::encoding::Depth,
16718 ) -> fidl::Result<()> {
16719 decoder.debug_check_bounds::<Self>(offset);
16720 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
16721 None => return Err(fidl::Error::NotNullable),
16722 Some(len) => len,
16723 };
16724 if len == 0 {
16726 return Ok(());
16727 };
16728 depth.increment()?;
16729 let envelope_size = 8;
16730 let bytes_len = len * envelope_size;
16731 let offset = decoder.out_of_line_offset(bytes_len)?;
16732 let mut _next_ordinal_to_read = 0;
16734 let mut next_offset = offset;
16735 let end_offset = offset + bytes_len;
16736 _next_ordinal_to_read += 1;
16737 if next_offset >= end_offset {
16738 return Ok(());
16739 }
16740
16741 while _next_ordinal_to_read < 1 {
16743 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
16744 _next_ordinal_to_read += 1;
16745 next_offset += envelope_size;
16746 }
16747
16748 let next_out_of_line = decoder.next_out_of_line();
16749 let handles_before = decoder.remaining_handles();
16750 if let Some((inlined, num_bytes, num_handles)) =
16751 fidl::encoding::decode_envelope_header(decoder, next_offset)?
16752 {
16753 let member_inline_size =
16754 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
16755 if inlined != (member_inline_size <= 4) {
16756 return Err(fidl::Error::InvalidInlineBitInEnvelope);
16757 }
16758 let inner_offset;
16759 let mut inner_depth = depth.clone();
16760 if inlined {
16761 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
16762 inner_offset = next_offset;
16763 } else {
16764 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
16765 inner_depth.increment()?;
16766 }
16767 let val_ref = self.group.get_or_insert_with(|| fidl::new_empty!(u16, D));
16768 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
16769 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
16770 {
16771 return Err(fidl::Error::InvalidNumBytesInEnvelope);
16772 }
16773 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
16774 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
16775 }
16776 }
16777
16778 next_offset += envelope_size;
16779 _next_ordinal_to_read += 1;
16780 if next_offset >= end_offset {
16781 return Ok(());
16782 }
16783
16784 while _next_ordinal_to_read < 2 {
16786 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
16787 _next_ordinal_to_read += 1;
16788 next_offset += envelope_size;
16789 }
16790
16791 let next_out_of_line = decoder.next_out_of_line();
16792 let handles_before = decoder.remaining_handles();
16793 if let Some((inlined, num_bytes, num_handles)) =
16794 fidl::encoding::decode_envelope_header(decoder, next_offset)?
16795 {
16796 let member_inline_size = <fidl::encoding::UnboundedVector<u8> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
16797 if inlined != (member_inline_size <= 4) {
16798 return Err(fidl::Error::InvalidInlineBitInEnvelope);
16799 }
16800 let inner_offset;
16801 let mut inner_depth = depth.clone();
16802 if inlined {
16803 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
16804 inner_offset = next_offset;
16805 } else {
16806 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
16807 inner_depth.increment()?;
16808 }
16809 let val_ref = self.key.get_or_insert_with(|| {
16810 fidl::new_empty!(fidl::encoding::UnboundedVector<u8>, D)
16811 });
16812 fidl::decode!(
16813 fidl::encoding::UnboundedVector<u8>,
16814 D,
16815 val_ref,
16816 decoder,
16817 inner_offset,
16818 inner_depth
16819 )?;
16820 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
16821 {
16822 return Err(fidl::Error::InvalidNumBytesInEnvelope);
16823 }
16824 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
16825 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
16826 }
16827 }
16828
16829 next_offset += envelope_size;
16830
16831 while next_offset < end_offset {
16833 _next_ordinal_to_read += 1;
16834 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
16835 next_offset += envelope_size;
16836 }
16837
16838 Ok(())
16839 }
16840 }
16841}