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, Debug, PartialEq)]
578pub struct WlanFullmacChannelSwitchInfo {
579 pub new_primary_channel: fidl_fuchsia_wlan_ieee80211_common::ChannelNumber,
580 pub bandwidth: fidl_fuchsia_wlan_ieee80211_common::ChannelBandwidth,
581 pub vht_secondary_80_channel: fidl_fuchsia_wlan_ieee80211_common::ChannelNumber,
582}
583
584impl fidl::Persistable for WlanFullmacChannelSwitchInfo {}
585
586#[derive(Clone, Debug, PartialEq)]
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 primary_channels: Option<Vec<fidl_fuchsia_wlan_ieee80211_common::ChannelNumber>>,
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 primary: Option<fidl_fuchsia_wlan_ieee80211_common::ChannelNumber>,
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<fidl_fuchsia_wlan_ieee80211_common::ChannelNumber>>,
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 4
1934 }
1935
1936 #[inline(always)]
1937 fn inline_size(_context: fidl::encoding::Context) -> usize {
1938 12
1939 }
1940 }
1941
1942 unsafe impl<D: fidl::encoding::ResourceDialect>
1943 fidl::encoding::Encode<WlanFullmacChannelSwitchInfo, D> for &WlanFullmacChannelSwitchInfo
1944 {
1945 #[inline]
1946 unsafe fn encode(
1947 self,
1948 encoder: &mut fidl::encoding::Encoder<'_, D>,
1949 offset: usize,
1950 _depth: fidl::encoding::Depth,
1951 ) -> fidl::Result<()> {
1952 encoder.debug_check_bounds::<WlanFullmacChannelSwitchInfo>(offset);
1953 fidl::encoding::Encode::<WlanFullmacChannelSwitchInfo, D>::encode(
1955 (
1956 <fidl_fuchsia_wlan_ieee80211_common::ChannelNumber as fidl::encoding::ValueTypeMarker>::borrow(&self.new_primary_channel),
1957 <fidl_fuchsia_wlan_ieee80211_common::ChannelBandwidth as fidl::encoding::ValueTypeMarker>::borrow(&self.bandwidth),
1958 <fidl_fuchsia_wlan_ieee80211_common::ChannelNumber as fidl::encoding::ValueTypeMarker>::borrow(&self.vht_secondary_80_channel),
1959 ),
1960 encoder, offset, _depth
1961 )
1962 }
1963 }
1964 unsafe impl<
1965 D: fidl::encoding::ResourceDialect,
1966 T0: fidl::encoding::Encode<fidl_fuchsia_wlan_ieee80211_common::ChannelNumber, D>,
1967 T1: fidl::encoding::Encode<fidl_fuchsia_wlan_ieee80211_common::ChannelBandwidth, D>,
1968 T2: fidl::encoding::Encode<fidl_fuchsia_wlan_ieee80211_common::ChannelNumber, D>,
1969 > fidl::encoding::Encode<WlanFullmacChannelSwitchInfo, D> for (T0, T1, T2)
1970 {
1971 #[inline]
1972 unsafe fn encode(
1973 self,
1974 encoder: &mut fidl::encoding::Encoder<'_, D>,
1975 offset: usize,
1976 depth: fidl::encoding::Depth,
1977 ) -> fidl::Result<()> {
1978 encoder.debug_check_bounds::<WlanFullmacChannelSwitchInfo>(offset);
1979 unsafe {
1982 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(0);
1983 (ptr as *mut u32).write_unaligned(0);
1984 }
1985 unsafe {
1986 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(8);
1987 (ptr as *mut u32).write_unaligned(0);
1988 }
1989 self.0.encode(encoder, offset + 0, depth)?;
1991 self.1.encode(encoder, offset + 4, depth)?;
1992 self.2.encode(encoder, offset + 8, depth)?;
1993 Ok(())
1994 }
1995 }
1996
1997 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1998 for WlanFullmacChannelSwitchInfo
1999 {
2000 #[inline(always)]
2001 fn new_empty() -> Self {
2002 Self {
2003 new_primary_channel: fidl::new_empty!(
2004 fidl_fuchsia_wlan_ieee80211_common::ChannelNumber,
2005 D
2006 ),
2007 bandwidth: fidl::new_empty!(
2008 fidl_fuchsia_wlan_ieee80211_common::ChannelBandwidth,
2009 D
2010 ),
2011 vht_secondary_80_channel: fidl::new_empty!(
2012 fidl_fuchsia_wlan_ieee80211_common::ChannelNumber,
2013 D
2014 ),
2015 }
2016 }
2017
2018 #[inline]
2019 unsafe fn decode(
2020 &mut self,
2021 decoder: &mut fidl::encoding::Decoder<'_, D>,
2022 offset: usize,
2023 _depth: fidl::encoding::Depth,
2024 ) -> fidl::Result<()> {
2025 decoder.debug_check_bounds::<Self>(offset);
2026 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(0) };
2028 let padval = unsafe { (ptr as *const u32).read_unaligned() };
2029 let mask = 0xffff0000u32;
2030 let maskedval = padval & mask;
2031 if maskedval != 0 {
2032 return Err(fidl::Error::NonZeroPadding {
2033 padding_start: offset + 0 + ((mask as u64).trailing_zeros() / 8) as usize,
2034 });
2035 }
2036 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(8) };
2037 let padval = unsafe { (ptr as *const u32).read_unaligned() };
2038 let mask = 0xffff0000u32;
2039 let maskedval = padval & mask;
2040 if maskedval != 0 {
2041 return Err(fidl::Error::NonZeroPadding {
2042 padding_start: offset + 8 + ((mask as u64).trailing_zeros() / 8) as usize,
2043 });
2044 }
2045 fidl::decode!(
2046 fidl_fuchsia_wlan_ieee80211_common::ChannelNumber,
2047 D,
2048 &mut self.new_primary_channel,
2049 decoder,
2050 offset + 0,
2051 _depth
2052 )?;
2053 fidl::decode!(
2054 fidl_fuchsia_wlan_ieee80211_common::ChannelBandwidth,
2055 D,
2056 &mut self.bandwidth,
2057 decoder,
2058 offset + 4,
2059 _depth
2060 )?;
2061 fidl::decode!(
2062 fidl_fuchsia_wlan_ieee80211_common::ChannelNumber,
2063 D,
2064 &mut self.vht_secondary_80_channel,
2065 decoder,
2066 offset + 8,
2067 _depth
2068 )?;
2069 Ok(())
2070 }
2071 }
2072
2073 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcOnChannelSwitchRequest {
2074 type Borrowed<'a> = &'a Self;
2075 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2076 value
2077 }
2078 }
2079
2080 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcOnChannelSwitchRequest {
2081 type Owned = Self;
2082
2083 #[inline(always)]
2084 fn inline_align(_context: fidl::encoding::Context) -> usize {
2085 4
2086 }
2087
2088 #[inline(always)]
2089 fn inline_size(_context: fidl::encoding::Context) -> usize {
2090 12
2091 }
2092 }
2093
2094 unsafe impl<D: fidl::encoding::ResourceDialect>
2095 fidl::encoding::Encode<WlanFullmacImplIfcOnChannelSwitchRequest, D>
2096 for &WlanFullmacImplIfcOnChannelSwitchRequest
2097 {
2098 #[inline]
2099 unsafe fn encode(
2100 self,
2101 encoder: &mut fidl::encoding::Encoder<'_, D>,
2102 offset: usize,
2103 _depth: fidl::encoding::Depth,
2104 ) -> fidl::Result<()> {
2105 encoder.debug_check_bounds::<WlanFullmacImplIfcOnChannelSwitchRequest>(offset);
2106 fidl::encoding::Encode::<WlanFullmacImplIfcOnChannelSwitchRequest, D>::encode(
2108 (<WlanFullmacChannelSwitchInfo as fidl::encoding::ValueTypeMarker>::borrow(
2109 &self.ind,
2110 ),),
2111 encoder,
2112 offset,
2113 _depth,
2114 )
2115 }
2116 }
2117 unsafe impl<
2118 D: fidl::encoding::ResourceDialect,
2119 T0: fidl::encoding::Encode<WlanFullmacChannelSwitchInfo, D>,
2120 > fidl::encoding::Encode<WlanFullmacImplIfcOnChannelSwitchRequest, D> for (T0,)
2121 {
2122 #[inline]
2123 unsafe fn encode(
2124 self,
2125 encoder: &mut fidl::encoding::Encoder<'_, D>,
2126 offset: usize,
2127 depth: fidl::encoding::Depth,
2128 ) -> fidl::Result<()> {
2129 encoder.debug_check_bounds::<WlanFullmacImplIfcOnChannelSwitchRequest>(offset);
2130 self.0.encode(encoder, offset + 0, depth)?;
2134 Ok(())
2135 }
2136 }
2137
2138 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2139 for WlanFullmacImplIfcOnChannelSwitchRequest
2140 {
2141 #[inline(always)]
2142 fn new_empty() -> Self {
2143 Self { ind: fidl::new_empty!(WlanFullmacChannelSwitchInfo, D) }
2144 }
2145
2146 #[inline]
2147 unsafe fn decode(
2148 &mut self,
2149 decoder: &mut fidl::encoding::Decoder<'_, D>,
2150 offset: usize,
2151 _depth: fidl::encoding::Depth,
2152 ) -> fidl::Result<()> {
2153 decoder.debug_check_bounds::<Self>(offset);
2154 fidl::decode!(
2156 WlanFullmacChannelSwitchInfo,
2157 D,
2158 &mut self.ind,
2159 decoder,
2160 offset + 0,
2161 _depth
2162 )?;
2163 Ok(())
2164 }
2165 }
2166
2167 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcOnWmmStatusRespRequest {
2168 type Borrowed<'a> = &'a Self;
2169 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2170 value
2171 }
2172 }
2173
2174 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcOnWmmStatusRespRequest {
2175 type Owned = Self;
2176
2177 #[inline(always)]
2178 fn inline_align(_context: fidl::encoding::Context) -> usize {
2179 4
2180 }
2181
2182 #[inline(always)]
2183 fn inline_size(_context: fidl::encoding::Context) -> usize {
2184 40
2185 }
2186 }
2187
2188 unsafe impl<D: fidl::encoding::ResourceDialect>
2189 fidl::encoding::Encode<WlanFullmacImplIfcOnWmmStatusRespRequest, D>
2190 for &WlanFullmacImplIfcOnWmmStatusRespRequest
2191 {
2192 #[inline]
2193 unsafe fn encode(
2194 self,
2195 encoder: &mut fidl::encoding::Encoder<'_, D>,
2196 offset: usize,
2197 _depth: fidl::encoding::Depth,
2198 ) -> fidl::Result<()> {
2199 encoder.debug_check_bounds::<WlanFullmacImplIfcOnWmmStatusRespRequest>(offset);
2200 fidl::encoding::Encode::<WlanFullmacImplIfcOnWmmStatusRespRequest, D>::encode(
2202 (
2203 <i32 as fidl::encoding::ValueTypeMarker>::borrow(&self.status),
2204 <fidl_fuchsia_wlan_driver_common::WlanWmmParameters as fidl::encoding::ValueTypeMarker>::borrow(&self.wmm_params),
2205 ),
2206 encoder, offset, _depth
2207 )
2208 }
2209 }
2210 unsafe impl<
2211 D: fidl::encoding::ResourceDialect,
2212 T0: fidl::encoding::Encode<i32, D>,
2213 T1: fidl::encoding::Encode<fidl_fuchsia_wlan_driver_common::WlanWmmParameters, D>,
2214 > fidl::encoding::Encode<WlanFullmacImplIfcOnWmmStatusRespRequest, D> for (T0, T1)
2215 {
2216 #[inline]
2217 unsafe fn encode(
2218 self,
2219 encoder: &mut fidl::encoding::Encoder<'_, D>,
2220 offset: usize,
2221 depth: fidl::encoding::Depth,
2222 ) -> fidl::Result<()> {
2223 encoder.debug_check_bounds::<WlanFullmacImplIfcOnWmmStatusRespRequest>(offset);
2224 unsafe {
2227 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(36);
2228 (ptr as *mut u32).write_unaligned(0);
2229 }
2230 self.0.encode(encoder, offset + 0, depth)?;
2232 self.1.encode(encoder, offset + 4, depth)?;
2233 Ok(())
2234 }
2235 }
2236
2237 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2238 for WlanFullmacImplIfcOnWmmStatusRespRequest
2239 {
2240 #[inline(always)]
2241 fn new_empty() -> Self {
2242 Self {
2243 status: fidl::new_empty!(i32, D),
2244 wmm_params: fidl::new_empty!(fidl_fuchsia_wlan_driver_common::WlanWmmParameters, D),
2245 }
2246 }
2247
2248 #[inline]
2249 unsafe fn decode(
2250 &mut self,
2251 decoder: &mut fidl::encoding::Decoder<'_, D>,
2252 offset: usize,
2253 _depth: fidl::encoding::Depth,
2254 ) -> fidl::Result<()> {
2255 decoder.debug_check_bounds::<Self>(offset);
2256 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(36) };
2258 let padval = unsafe { (ptr as *const u32).read_unaligned() };
2259 let mask = 0xffff0000u32;
2260 let maskedval = padval & mask;
2261 if maskedval != 0 {
2262 return Err(fidl::Error::NonZeroPadding {
2263 padding_start: offset + 36 + ((mask as u64).trailing_zeros() / 8) as usize,
2264 });
2265 }
2266 fidl::decode!(i32, D, &mut self.status, decoder, offset + 0, _depth)?;
2267 fidl::decode!(
2268 fidl_fuchsia_wlan_driver_common::WlanWmmParameters,
2269 D,
2270 &mut self.wmm_params,
2271 decoder,
2272 offset + 4,
2273 _depth
2274 )?;
2275 Ok(())
2276 }
2277 }
2278
2279 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcSaeFrameRxRequest {
2280 type Borrowed<'a> = &'a Self;
2281 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2282 value
2283 }
2284 }
2285
2286 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcSaeFrameRxRequest {
2287 type Owned = Self;
2288
2289 #[inline(always)]
2290 fn inline_align(_context: fidl::encoding::Context) -> usize {
2291 8
2292 }
2293
2294 #[inline(always)]
2295 fn inline_size(_context: fidl::encoding::Context) -> usize {
2296 16
2297 }
2298 }
2299
2300 unsafe impl<D: fidl::encoding::ResourceDialect>
2301 fidl::encoding::Encode<WlanFullmacImplIfcSaeFrameRxRequest, D>
2302 for &WlanFullmacImplIfcSaeFrameRxRequest
2303 {
2304 #[inline]
2305 unsafe fn encode(
2306 self,
2307 encoder: &mut fidl::encoding::Encoder<'_, D>,
2308 offset: usize,
2309 _depth: fidl::encoding::Depth,
2310 ) -> fidl::Result<()> {
2311 encoder.debug_check_bounds::<WlanFullmacImplIfcSaeFrameRxRequest>(offset);
2312 fidl::encoding::Encode::<WlanFullmacImplIfcSaeFrameRxRequest, D>::encode(
2314 (<SaeFrame as fidl::encoding::ValueTypeMarker>::borrow(&self.frame),),
2315 encoder,
2316 offset,
2317 _depth,
2318 )
2319 }
2320 }
2321 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<SaeFrame, D>>
2322 fidl::encoding::Encode<WlanFullmacImplIfcSaeFrameRxRequest, D> for (T0,)
2323 {
2324 #[inline]
2325 unsafe fn encode(
2326 self,
2327 encoder: &mut fidl::encoding::Encoder<'_, D>,
2328 offset: usize,
2329 depth: fidl::encoding::Depth,
2330 ) -> fidl::Result<()> {
2331 encoder.debug_check_bounds::<WlanFullmacImplIfcSaeFrameRxRequest>(offset);
2332 self.0.encode(encoder, offset + 0, depth)?;
2336 Ok(())
2337 }
2338 }
2339
2340 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2341 for WlanFullmacImplIfcSaeFrameRxRequest
2342 {
2343 #[inline(always)]
2344 fn new_empty() -> Self {
2345 Self { frame: fidl::new_empty!(SaeFrame, D) }
2346 }
2347
2348 #[inline]
2349 unsafe fn decode(
2350 &mut self,
2351 decoder: &mut fidl::encoding::Decoder<'_, D>,
2352 offset: usize,
2353 _depth: fidl::encoding::Depth,
2354 ) -> fidl::Result<()> {
2355 decoder.debug_check_bounds::<Self>(offset);
2356 fidl::decode!(SaeFrame, D, &mut self.frame, decoder, offset + 0, _depth)?;
2358 Ok(())
2359 }
2360 }
2361
2362 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcSignalReportRequest {
2363 type Borrowed<'a> = &'a Self;
2364 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2365 value
2366 }
2367 }
2368
2369 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcSignalReportRequest {
2370 type Owned = Self;
2371
2372 #[inline(always)]
2373 fn inline_align(_context: fidl::encoding::Context) -> usize {
2374 1
2375 }
2376
2377 #[inline(always)]
2378 fn inline_size(_context: fidl::encoding::Context) -> usize {
2379 2
2380 }
2381 #[inline(always)]
2382 fn encode_is_copy() -> bool {
2383 true
2384 }
2385
2386 #[inline(always)]
2387 fn decode_is_copy() -> bool {
2388 true
2389 }
2390 }
2391
2392 unsafe impl<D: fidl::encoding::ResourceDialect>
2393 fidl::encoding::Encode<WlanFullmacImplIfcSignalReportRequest, D>
2394 for &WlanFullmacImplIfcSignalReportRequest
2395 {
2396 #[inline]
2397 unsafe fn encode(
2398 self,
2399 encoder: &mut fidl::encoding::Encoder<'_, D>,
2400 offset: usize,
2401 _depth: fidl::encoding::Depth,
2402 ) -> fidl::Result<()> {
2403 encoder.debug_check_bounds::<WlanFullmacImplIfcSignalReportRequest>(offset);
2404 unsafe {
2405 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
2407 (buf_ptr as *mut WlanFullmacImplIfcSignalReportRequest)
2408 .write_unaligned((self as *const WlanFullmacImplIfcSignalReportRequest).read());
2409 }
2412 Ok(())
2413 }
2414 }
2415 unsafe impl<
2416 D: fidl::encoding::ResourceDialect,
2417 T0: fidl::encoding::Encode<WlanFullmacSignalReportIndication, D>,
2418 > fidl::encoding::Encode<WlanFullmacImplIfcSignalReportRequest, D> for (T0,)
2419 {
2420 #[inline]
2421 unsafe fn encode(
2422 self,
2423 encoder: &mut fidl::encoding::Encoder<'_, D>,
2424 offset: usize,
2425 depth: fidl::encoding::Depth,
2426 ) -> fidl::Result<()> {
2427 encoder.debug_check_bounds::<WlanFullmacImplIfcSignalReportRequest>(offset);
2428 self.0.encode(encoder, offset + 0, depth)?;
2432 Ok(())
2433 }
2434 }
2435
2436 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2437 for WlanFullmacImplIfcSignalReportRequest
2438 {
2439 #[inline(always)]
2440 fn new_empty() -> Self {
2441 Self { ind: fidl::new_empty!(WlanFullmacSignalReportIndication, D) }
2442 }
2443
2444 #[inline]
2445 unsafe fn decode(
2446 &mut self,
2447 decoder: &mut fidl::encoding::Decoder<'_, D>,
2448 offset: usize,
2449 _depth: fidl::encoding::Depth,
2450 ) -> fidl::Result<()> {
2451 decoder.debug_check_bounds::<Self>(offset);
2452 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
2453 unsafe {
2456 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 2);
2457 }
2458 Ok(())
2459 }
2460 }
2461
2462 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplSaeFrameTxRequest {
2463 type Borrowed<'a> = &'a Self;
2464 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2465 value
2466 }
2467 }
2468
2469 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplSaeFrameTxRequest {
2470 type Owned = Self;
2471
2472 #[inline(always)]
2473 fn inline_align(_context: fidl::encoding::Context) -> usize {
2474 8
2475 }
2476
2477 #[inline(always)]
2478 fn inline_size(_context: fidl::encoding::Context) -> usize {
2479 16
2480 }
2481 }
2482
2483 unsafe impl<D: fidl::encoding::ResourceDialect>
2484 fidl::encoding::Encode<WlanFullmacImplSaeFrameTxRequest, D>
2485 for &WlanFullmacImplSaeFrameTxRequest
2486 {
2487 #[inline]
2488 unsafe fn encode(
2489 self,
2490 encoder: &mut fidl::encoding::Encoder<'_, D>,
2491 offset: usize,
2492 _depth: fidl::encoding::Depth,
2493 ) -> fidl::Result<()> {
2494 encoder.debug_check_bounds::<WlanFullmacImplSaeFrameTxRequest>(offset);
2495 fidl::encoding::Encode::<WlanFullmacImplSaeFrameTxRequest, D>::encode(
2497 (<SaeFrame as fidl::encoding::ValueTypeMarker>::borrow(&self.frame),),
2498 encoder,
2499 offset,
2500 _depth,
2501 )
2502 }
2503 }
2504 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<SaeFrame, D>>
2505 fidl::encoding::Encode<WlanFullmacImplSaeFrameTxRequest, D> for (T0,)
2506 {
2507 #[inline]
2508 unsafe fn encode(
2509 self,
2510 encoder: &mut fidl::encoding::Encoder<'_, D>,
2511 offset: usize,
2512 depth: fidl::encoding::Depth,
2513 ) -> fidl::Result<()> {
2514 encoder.debug_check_bounds::<WlanFullmacImplSaeFrameTxRequest>(offset);
2515 self.0.encode(encoder, offset + 0, depth)?;
2519 Ok(())
2520 }
2521 }
2522
2523 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2524 for WlanFullmacImplSaeFrameTxRequest
2525 {
2526 #[inline(always)]
2527 fn new_empty() -> Self {
2528 Self { frame: fidl::new_empty!(SaeFrame, D) }
2529 }
2530
2531 #[inline]
2532 unsafe fn decode(
2533 &mut self,
2534 decoder: &mut fidl::encoding::Decoder<'_, D>,
2535 offset: usize,
2536 _depth: fidl::encoding::Depth,
2537 ) -> fidl::Result<()> {
2538 decoder.debug_check_bounds::<Self>(offset);
2539 fidl::decode!(SaeFrame, D, &mut self.frame, decoder, offset + 0, _depth)?;
2541 Ok(())
2542 }
2543 }
2544
2545 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplSetKeysResponse {
2546 type Borrowed<'a> = &'a Self;
2547 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2548 value
2549 }
2550 }
2551
2552 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplSetKeysResponse {
2553 type Owned = Self;
2554
2555 #[inline(always)]
2556 fn inline_align(_context: fidl::encoding::Context) -> usize {
2557 8
2558 }
2559
2560 #[inline(always)]
2561 fn inline_size(_context: fidl::encoding::Context) -> usize {
2562 16
2563 }
2564 }
2565
2566 unsafe impl<D: fidl::encoding::ResourceDialect>
2567 fidl::encoding::Encode<WlanFullmacImplSetKeysResponse, D>
2568 for &WlanFullmacImplSetKeysResponse
2569 {
2570 #[inline]
2571 unsafe fn encode(
2572 self,
2573 encoder: &mut fidl::encoding::Encoder<'_, D>,
2574 offset: usize,
2575 _depth: fidl::encoding::Depth,
2576 ) -> fidl::Result<()> {
2577 encoder.debug_check_bounds::<WlanFullmacImplSetKeysResponse>(offset);
2578 fidl::encoding::Encode::<WlanFullmacImplSetKeysResponse, D>::encode(
2580 (<WlanFullmacSetKeysResp as fidl::encoding::ValueTypeMarker>::borrow(&self.resp),),
2581 encoder,
2582 offset,
2583 _depth,
2584 )
2585 }
2586 }
2587 unsafe impl<
2588 D: fidl::encoding::ResourceDialect,
2589 T0: fidl::encoding::Encode<WlanFullmacSetKeysResp, D>,
2590 > fidl::encoding::Encode<WlanFullmacImplSetKeysResponse, D> for (T0,)
2591 {
2592 #[inline]
2593 unsafe fn encode(
2594 self,
2595 encoder: &mut fidl::encoding::Encoder<'_, D>,
2596 offset: usize,
2597 depth: fidl::encoding::Depth,
2598 ) -> fidl::Result<()> {
2599 encoder.debug_check_bounds::<WlanFullmacImplSetKeysResponse>(offset);
2600 self.0.encode(encoder, offset + 0, depth)?;
2604 Ok(())
2605 }
2606 }
2607
2608 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2609 for WlanFullmacImplSetKeysResponse
2610 {
2611 #[inline(always)]
2612 fn new_empty() -> Self {
2613 Self { resp: fidl::new_empty!(WlanFullmacSetKeysResp, D) }
2614 }
2615
2616 #[inline]
2617 unsafe fn decode(
2618 &mut self,
2619 decoder: &mut fidl::encoding::Decoder<'_, D>,
2620 offset: usize,
2621 _depth: fidl::encoding::Depth,
2622 ) -> fidl::Result<()> {
2623 decoder.debug_check_bounds::<Self>(offset);
2624 fidl::decode!(WlanFullmacSetKeysResp, D, &mut self.resp, decoder, offset + 0, _depth)?;
2626 Ok(())
2627 }
2628 }
2629
2630 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplSetMacAddressRequest {
2631 type Borrowed<'a> = &'a Self;
2632 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2633 value
2634 }
2635 }
2636
2637 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplSetMacAddressRequest {
2638 type Owned = Self;
2639
2640 #[inline(always)]
2641 fn inline_align(_context: fidl::encoding::Context) -> usize {
2642 1
2643 }
2644
2645 #[inline(always)]
2646 fn inline_size(_context: fidl::encoding::Context) -> usize {
2647 6
2648 }
2649 #[inline(always)]
2650 fn encode_is_copy() -> bool {
2651 true
2652 }
2653
2654 #[inline(always)]
2655 fn decode_is_copy() -> bool {
2656 true
2657 }
2658 }
2659
2660 unsafe impl<D: fidl::encoding::ResourceDialect>
2661 fidl::encoding::Encode<WlanFullmacImplSetMacAddressRequest, D>
2662 for &WlanFullmacImplSetMacAddressRequest
2663 {
2664 #[inline]
2665 unsafe fn encode(
2666 self,
2667 encoder: &mut fidl::encoding::Encoder<'_, D>,
2668 offset: usize,
2669 _depth: fidl::encoding::Depth,
2670 ) -> fidl::Result<()> {
2671 encoder.debug_check_bounds::<WlanFullmacImplSetMacAddressRequest>(offset);
2672 unsafe {
2673 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
2675 (buf_ptr as *mut WlanFullmacImplSetMacAddressRequest)
2676 .write_unaligned((self as *const WlanFullmacImplSetMacAddressRequest).read());
2677 }
2680 Ok(())
2681 }
2682 }
2683 unsafe impl<
2684 D: fidl::encoding::ResourceDialect,
2685 T0: fidl::encoding::Encode<fidl::encoding::Array<u8, 6>, D>,
2686 > fidl::encoding::Encode<WlanFullmacImplSetMacAddressRequest, D> for (T0,)
2687 {
2688 #[inline]
2689 unsafe fn encode(
2690 self,
2691 encoder: &mut fidl::encoding::Encoder<'_, D>,
2692 offset: usize,
2693 depth: fidl::encoding::Depth,
2694 ) -> fidl::Result<()> {
2695 encoder.debug_check_bounds::<WlanFullmacImplSetMacAddressRequest>(offset);
2696 self.0.encode(encoder, offset + 0, depth)?;
2700 Ok(())
2701 }
2702 }
2703
2704 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2705 for WlanFullmacImplSetMacAddressRequest
2706 {
2707 #[inline(always)]
2708 fn new_empty() -> Self {
2709 Self { mac_addr: fidl::new_empty!(fidl::encoding::Array<u8, 6>, D) }
2710 }
2711
2712 #[inline]
2713 unsafe fn decode(
2714 &mut self,
2715 decoder: &mut fidl::encoding::Decoder<'_, D>,
2716 offset: usize,
2717 _depth: fidl::encoding::Depth,
2718 ) -> fidl::Result<()> {
2719 decoder.debug_check_bounds::<Self>(offset);
2720 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
2721 unsafe {
2724 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 6);
2725 }
2726 Ok(())
2727 }
2728 }
2729
2730 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplGetIfaceHistogramStatsResponse {
2731 type Borrowed<'a> = &'a Self;
2732 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2733 value
2734 }
2735 }
2736
2737 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplGetIfaceHistogramStatsResponse {
2738 type Owned = Self;
2739
2740 #[inline(always)]
2741 fn inline_align(_context: fidl::encoding::Context) -> usize {
2742 8
2743 }
2744
2745 #[inline(always)]
2746 fn inline_size(_context: fidl::encoding::Context) -> usize {
2747 16
2748 }
2749 }
2750
2751 unsafe impl<D: fidl::encoding::ResourceDialect>
2752 fidl::encoding::Encode<WlanFullmacImplGetIfaceHistogramStatsResponse, D>
2753 for &WlanFullmacImplGetIfaceHistogramStatsResponse
2754 {
2755 #[inline]
2756 unsafe fn encode(
2757 self,
2758 encoder: &mut fidl::encoding::Encoder<'_, D>,
2759 offset: usize,
2760 _depth: fidl::encoding::Depth,
2761 ) -> fidl::Result<()> {
2762 encoder.debug_check_bounds::<WlanFullmacImplGetIfaceHistogramStatsResponse>(offset);
2763 fidl::encoding::Encode::<WlanFullmacImplGetIfaceHistogramStatsResponse, D>::encode(
2765 (
2766 <fidl_fuchsia_wlan_stats_common::IfaceHistogramStats as fidl::encoding::ValueTypeMarker>::borrow(&self.stats),
2767 ),
2768 encoder, offset, _depth
2769 )
2770 }
2771 }
2772 unsafe impl<
2773 D: fidl::encoding::ResourceDialect,
2774 T0: fidl::encoding::Encode<fidl_fuchsia_wlan_stats_common::IfaceHistogramStats, D>,
2775 > fidl::encoding::Encode<WlanFullmacImplGetIfaceHistogramStatsResponse, D> for (T0,)
2776 {
2777 #[inline]
2778 unsafe fn encode(
2779 self,
2780 encoder: &mut fidl::encoding::Encoder<'_, D>,
2781 offset: usize,
2782 depth: fidl::encoding::Depth,
2783 ) -> fidl::Result<()> {
2784 encoder.debug_check_bounds::<WlanFullmacImplGetIfaceHistogramStatsResponse>(offset);
2785 self.0.encode(encoder, offset + 0, depth)?;
2789 Ok(())
2790 }
2791 }
2792
2793 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2794 for WlanFullmacImplGetIfaceHistogramStatsResponse
2795 {
2796 #[inline(always)]
2797 fn new_empty() -> Self {
2798 Self { stats: fidl::new_empty!(fidl_fuchsia_wlan_stats_common::IfaceHistogramStats, D) }
2799 }
2800
2801 #[inline]
2802 unsafe fn decode(
2803 &mut self,
2804 decoder: &mut fidl::encoding::Decoder<'_, D>,
2805 offset: usize,
2806 _depth: fidl::encoding::Depth,
2807 ) -> fidl::Result<()> {
2808 decoder.debug_check_bounds::<Self>(offset);
2809 fidl::decode!(
2811 fidl_fuchsia_wlan_stats_common::IfaceHistogramStats,
2812 D,
2813 &mut self.stats,
2814 decoder,
2815 offset + 0,
2816 _depth
2817 )?;
2818 Ok(())
2819 }
2820 }
2821
2822 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplGetIfaceStatsResponse {
2823 type Borrowed<'a> = &'a Self;
2824 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2825 value
2826 }
2827 }
2828
2829 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplGetIfaceStatsResponse {
2830 type Owned = Self;
2831
2832 #[inline(always)]
2833 fn inline_align(_context: fidl::encoding::Context) -> usize {
2834 8
2835 }
2836
2837 #[inline(always)]
2838 fn inline_size(_context: fidl::encoding::Context) -> usize {
2839 16
2840 }
2841 }
2842
2843 unsafe impl<D: fidl::encoding::ResourceDialect>
2844 fidl::encoding::Encode<WlanFullmacImplGetIfaceStatsResponse, D>
2845 for &WlanFullmacImplGetIfaceStatsResponse
2846 {
2847 #[inline]
2848 unsafe fn encode(
2849 self,
2850 encoder: &mut fidl::encoding::Encoder<'_, D>,
2851 offset: usize,
2852 _depth: fidl::encoding::Depth,
2853 ) -> fidl::Result<()> {
2854 encoder.debug_check_bounds::<WlanFullmacImplGetIfaceStatsResponse>(offset);
2855 fidl::encoding::Encode::<WlanFullmacImplGetIfaceStatsResponse, D>::encode(
2857 (
2858 <fidl_fuchsia_wlan_stats_common::IfaceStats as fidl::encoding::ValueTypeMarker>::borrow(&self.stats),
2859 ),
2860 encoder, offset, _depth
2861 )
2862 }
2863 }
2864 unsafe impl<
2865 D: fidl::encoding::ResourceDialect,
2866 T0: fidl::encoding::Encode<fidl_fuchsia_wlan_stats_common::IfaceStats, D>,
2867 > fidl::encoding::Encode<WlanFullmacImplGetIfaceStatsResponse, D> for (T0,)
2868 {
2869 #[inline]
2870 unsafe fn encode(
2871 self,
2872 encoder: &mut fidl::encoding::Encoder<'_, D>,
2873 offset: usize,
2874 depth: fidl::encoding::Depth,
2875 ) -> fidl::Result<()> {
2876 encoder.debug_check_bounds::<WlanFullmacImplGetIfaceStatsResponse>(offset);
2877 self.0.encode(encoder, offset + 0, depth)?;
2881 Ok(())
2882 }
2883 }
2884
2885 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2886 for WlanFullmacImplGetIfaceStatsResponse
2887 {
2888 #[inline(always)]
2889 fn new_empty() -> Self {
2890 Self { stats: fidl::new_empty!(fidl_fuchsia_wlan_stats_common::IfaceStats, D) }
2891 }
2892
2893 #[inline]
2894 unsafe fn decode(
2895 &mut self,
2896 decoder: &mut fidl::encoding::Decoder<'_, D>,
2897 offset: usize,
2898 _depth: fidl::encoding::Depth,
2899 ) -> fidl::Result<()> {
2900 decoder.debug_check_bounds::<Self>(offset);
2901 fidl::decode!(
2903 fidl_fuchsia_wlan_stats_common::IfaceStats,
2904 D,
2905 &mut self.stats,
2906 decoder,
2907 offset + 0,
2908 _depth
2909 )?;
2910 Ok(())
2911 }
2912 }
2913
2914 impl fidl::encoding::ValueTypeMarker for WlanFullmacRssiStats {
2915 type Borrowed<'a> = &'a Self;
2916 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2917 value
2918 }
2919 }
2920
2921 unsafe impl fidl::encoding::TypeMarker for WlanFullmacRssiStats {
2922 type Owned = Self;
2923
2924 #[inline(always)]
2925 fn inline_align(_context: fidl::encoding::Context) -> usize {
2926 8
2927 }
2928
2929 #[inline(always)]
2930 fn inline_size(_context: fidl::encoding::Context) -> usize {
2931 16
2932 }
2933 }
2934
2935 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<WlanFullmacRssiStats, D>
2936 for &WlanFullmacRssiStats
2937 {
2938 #[inline]
2939 unsafe fn encode(
2940 self,
2941 encoder: &mut fidl::encoding::Encoder<'_, D>,
2942 offset: usize,
2943 _depth: fidl::encoding::Depth,
2944 ) -> fidl::Result<()> {
2945 encoder.debug_check_bounds::<WlanFullmacRssiStats>(offset);
2946 fidl::encoding::Encode::<WlanFullmacRssiStats, D>::encode(
2948 (
2949 <fidl::encoding::UnboundedVector<u64> as fidl::encoding::ValueTypeMarker>::borrow(&self.hist),
2950 ),
2951 encoder, offset, _depth
2952 )
2953 }
2954 }
2955 unsafe impl<
2956 D: fidl::encoding::ResourceDialect,
2957 T0: fidl::encoding::Encode<fidl::encoding::UnboundedVector<u64>, D>,
2958 > fidl::encoding::Encode<WlanFullmacRssiStats, D> for (T0,)
2959 {
2960 #[inline]
2961 unsafe fn encode(
2962 self,
2963 encoder: &mut fidl::encoding::Encoder<'_, D>,
2964 offset: usize,
2965 depth: fidl::encoding::Depth,
2966 ) -> fidl::Result<()> {
2967 encoder.debug_check_bounds::<WlanFullmacRssiStats>(offset);
2968 self.0.encode(encoder, offset + 0, depth)?;
2972 Ok(())
2973 }
2974 }
2975
2976 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for WlanFullmacRssiStats {
2977 #[inline(always)]
2978 fn new_empty() -> Self {
2979 Self { hist: fidl::new_empty!(fidl::encoding::UnboundedVector<u64>, D) }
2980 }
2981
2982 #[inline]
2983 unsafe fn decode(
2984 &mut self,
2985 decoder: &mut fidl::encoding::Decoder<'_, D>,
2986 offset: usize,
2987 _depth: fidl::encoding::Depth,
2988 ) -> fidl::Result<()> {
2989 decoder.debug_check_bounds::<Self>(offset);
2990 fidl::decode!(
2992 fidl::encoding::UnboundedVector<u64>,
2993 D,
2994 &mut self.hist,
2995 decoder,
2996 offset + 0,
2997 _depth
2998 )?;
2999 Ok(())
3000 }
3001 }
3002
3003 impl fidl::encoding::ValueTypeMarker for WlanFullmacSetKeysResp {
3004 type Borrowed<'a> = &'a Self;
3005 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3006 value
3007 }
3008 }
3009
3010 unsafe impl fidl::encoding::TypeMarker for WlanFullmacSetKeysResp {
3011 type Owned = Self;
3012
3013 #[inline(always)]
3014 fn inline_align(_context: fidl::encoding::Context) -> usize {
3015 8
3016 }
3017
3018 #[inline(always)]
3019 fn inline_size(_context: fidl::encoding::Context) -> usize {
3020 16
3021 }
3022 }
3023
3024 unsafe impl<D: fidl::encoding::ResourceDialect>
3025 fidl::encoding::Encode<WlanFullmacSetKeysResp, D> for &WlanFullmacSetKeysResp
3026 {
3027 #[inline]
3028 unsafe fn encode(
3029 self,
3030 encoder: &mut fidl::encoding::Encoder<'_, D>,
3031 offset: usize,
3032 _depth: fidl::encoding::Depth,
3033 ) -> fidl::Result<()> {
3034 encoder.debug_check_bounds::<WlanFullmacSetKeysResp>(offset);
3035 fidl::encoding::Encode::<WlanFullmacSetKeysResp, D>::encode(
3037 (<fidl::encoding::Vector<i32, 4> as fidl::encoding::ValueTypeMarker>::borrow(
3038 &self.statuslist,
3039 ),),
3040 encoder,
3041 offset,
3042 _depth,
3043 )
3044 }
3045 }
3046 unsafe impl<
3047 D: fidl::encoding::ResourceDialect,
3048 T0: fidl::encoding::Encode<fidl::encoding::Vector<i32, 4>, D>,
3049 > fidl::encoding::Encode<WlanFullmacSetKeysResp, D> for (T0,)
3050 {
3051 #[inline]
3052 unsafe fn encode(
3053 self,
3054 encoder: &mut fidl::encoding::Encoder<'_, D>,
3055 offset: usize,
3056 depth: fidl::encoding::Depth,
3057 ) -> fidl::Result<()> {
3058 encoder.debug_check_bounds::<WlanFullmacSetKeysResp>(offset);
3059 self.0.encode(encoder, offset + 0, depth)?;
3063 Ok(())
3064 }
3065 }
3066
3067 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
3068 for WlanFullmacSetKeysResp
3069 {
3070 #[inline(always)]
3071 fn new_empty() -> Self {
3072 Self { statuslist: fidl::new_empty!(fidl::encoding::Vector<i32, 4>, D) }
3073 }
3074
3075 #[inline]
3076 unsafe fn decode(
3077 &mut self,
3078 decoder: &mut fidl::encoding::Decoder<'_, D>,
3079 offset: usize,
3080 _depth: fidl::encoding::Depth,
3081 ) -> fidl::Result<()> {
3082 decoder.debug_check_bounds::<Self>(offset);
3083 fidl::decode!(fidl::encoding::Vector<i32, 4>, D, &mut self.statuslist, decoder, offset + 0, _depth)?;
3085 Ok(())
3086 }
3087 }
3088
3089 impl fidl::encoding::ValueTypeMarker for WlanFullmacSignalReportIndication {
3090 type Borrowed<'a> = &'a Self;
3091 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3092 value
3093 }
3094 }
3095
3096 unsafe impl fidl::encoding::TypeMarker for WlanFullmacSignalReportIndication {
3097 type Owned = Self;
3098
3099 #[inline(always)]
3100 fn inline_align(_context: fidl::encoding::Context) -> usize {
3101 1
3102 }
3103
3104 #[inline(always)]
3105 fn inline_size(_context: fidl::encoding::Context) -> usize {
3106 2
3107 }
3108 #[inline(always)]
3109 fn encode_is_copy() -> bool {
3110 true
3111 }
3112
3113 #[inline(always)]
3114 fn decode_is_copy() -> bool {
3115 true
3116 }
3117 }
3118
3119 unsafe impl<D: fidl::encoding::ResourceDialect>
3120 fidl::encoding::Encode<WlanFullmacSignalReportIndication, D>
3121 for &WlanFullmacSignalReportIndication
3122 {
3123 #[inline]
3124 unsafe fn encode(
3125 self,
3126 encoder: &mut fidl::encoding::Encoder<'_, D>,
3127 offset: usize,
3128 _depth: fidl::encoding::Depth,
3129 ) -> fidl::Result<()> {
3130 encoder.debug_check_bounds::<WlanFullmacSignalReportIndication>(offset);
3131 unsafe {
3132 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
3134 (buf_ptr as *mut WlanFullmacSignalReportIndication)
3135 .write_unaligned((self as *const WlanFullmacSignalReportIndication).read());
3136 }
3139 Ok(())
3140 }
3141 }
3142 unsafe impl<
3143 D: fidl::encoding::ResourceDialect,
3144 T0: fidl::encoding::Encode<i8, D>,
3145 T1: fidl::encoding::Encode<i8, D>,
3146 > fidl::encoding::Encode<WlanFullmacSignalReportIndication, D> for (T0, T1)
3147 {
3148 #[inline]
3149 unsafe fn encode(
3150 self,
3151 encoder: &mut fidl::encoding::Encoder<'_, D>,
3152 offset: usize,
3153 depth: fidl::encoding::Depth,
3154 ) -> fidl::Result<()> {
3155 encoder.debug_check_bounds::<WlanFullmacSignalReportIndication>(offset);
3156 self.0.encode(encoder, offset + 0, depth)?;
3160 self.1.encode(encoder, offset + 1, depth)?;
3161 Ok(())
3162 }
3163 }
3164
3165 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
3166 for WlanFullmacSignalReportIndication
3167 {
3168 #[inline(always)]
3169 fn new_empty() -> Self {
3170 Self { rssi_dbm: fidl::new_empty!(i8, D), snr_db: fidl::new_empty!(i8, D) }
3171 }
3172
3173 #[inline]
3174 unsafe fn decode(
3175 &mut self,
3176 decoder: &mut fidl::encoding::Decoder<'_, D>,
3177 offset: usize,
3178 _depth: fidl::encoding::Depth,
3179 ) -> fidl::Result<()> {
3180 decoder.debug_check_bounds::<Self>(offset);
3181 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
3182 unsafe {
3185 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 2);
3186 }
3187 Ok(())
3188 }
3189 }
3190
3191 impl BandCapability {
3192 #[inline(always)]
3193 fn max_ordinal_present(&self) -> u64 {
3194 if let Some(_) = self.primary_channels {
3195 return 5;
3196 }
3197 if let Some(_) = self.vht_caps {
3198 return 4;
3199 }
3200 if let Some(_) = self.ht_caps {
3201 return 3;
3202 }
3203 if let Some(_) = self.basic_rates {
3204 return 2;
3205 }
3206 if let Some(_) = self.band {
3207 return 1;
3208 }
3209 0
3210 }
3211 }
3212
3213 impl fidl::encoding::ValueTypeMarker for BandCapability {
3214 type Borrowed<'a> = &'a Self;
3215 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3216 value
3217 }
3218 }
3219
3220 unsafe impl fidl::encoding::TypeMarker for BandCapability {
3221 type Owned = Self;
3222
3223 #[inline(always)]
3224 fn inline_align(_context: fidl::encoding::Context) -> usize {
3225 8
3226 }
3227
3228 #[inline(always)]
3229 fn inline_size(_context: fidl::encoding::Context) -> usize {
3230 16
3231 }
3232 }
3233
3234 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<BandCapability, D>
3235 for &BandCapability
3236 {
3237 unsafe fn encode(
3238 self,
3239 encoder: &mut fidl::encoding::Encoder<'_, D>,
3240 offset: usize,
3241 mut depth: fidl::encoding::Depth,
3242 ) -> fidl::Result<()> {
3243 encoder.debug_check_bounds::<BandCapability>(offset);
3244 let max_ordinal: u64 = self.max_ordinal_present();
3246 encoder.write_num(max_ordinal, offset);
3247 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
3248 if max_ordinal == 0 {
3250 return Ok(());
3251 }
3252 depth.increment()?;
3253 let envelope_size = 8;
3254 let bytes_len = max_ordinal as usize * envelope_size;
3255 #[allow(unused_variables)]
3256 let offset = encoder.out_of_line_offset(bytes_len);
3257 let mut _prev_end_offset: usize = 0;
3258 if 1 > max_ordinal {
3259 return Ok(());
3260 }
3261
3262 let cur_offset: usize = (1 - 1) * envelope_size;
3265
3266 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3268
3269 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_ieee80211_common::WlanBand, D>(
3274 self.band.as_ref().map(<fidl_fuchsia_wlan_ieee80211_common::WlanBand as fidl::encoding::ValueTypeMarker>::borrow),
3275 encoder, offset + cur_offset, depth
3276 )?;
3277
3278 _prev_end_offset = cur_offset + envelope_size;
3279 if 2 > max_ordinal {
3280 return Ok(());
3281 }
3282
3283 let cur_offset: usize = (2 - 1) * envelope_size;
3286
3287 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3289
3290 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<u8, 12>, D>(
3295 self.basic_rates.as_ref().map(
3296 <fidl::encoding::Vector<u8, 12> as fidl::encoding::ValueTypeMarker>::borrow,
3297 ),
3298 encoder,
3299 offset + cur_offset,
3300 depth,
3301 )?;
3302
3303 _prev_end_offset = cur_offset + envelope_size;
3304 if 3 > max_ordinal {
3305 return Ok(());
3306 }
3307
3308 let cur_offset: usize = (3 - 1) * envelope_size;
3311
3312 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3314
3315 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_ieee80211_common::HtCapabilities, D>(
3320 self.ht_caps.as_ref().map(<fidl_fuchsia_wlan_ieee80211_common::HtCapabilities as fidl::encoding::ValueTypeMarker>::borrow),
3321 encoder, offset + cur_offset, depth
3322 )?;
3323
3324 _prev_end_offset = cur_offset + envelope_size;
3325 if 4 > max_ordinal {
3326 return Ok(());
3327 }
3328
3329 let cur_offset: usize = (4 - 1) * envelope_size;
3332
3333 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3335
3336 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_ieee80211_common::VhtCapabilities, D>(
3341 self.vht_caps.as_ref().map(<fidl_fuchsia_wlan_ieee80211_common::VhtCapabilities as fidl::encoding::ValueTypeMarker>::borrow),
3342 encoder, offset + cur_offset, depth
3343 )?;
3344
3345 _prev_end_offset = cur_offset + envelope_size;
3346 if 5 > max_ordinal {
3347 return Ok(());
3348 }
3349
3350 let cur_offset: usize = (5 - 1) * envelope_size;
3353
3354 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3356
3357 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<fidl_fuchsia_wlan_ieee80211_common::ChannelNumber, 256>, D>(
3362 self.primary_channels.as_ref().map(<fidl::encoding::Vector<fidl_fuchsia_wlan_ieee80211_common::ChannelNumber, 256> as fidl::encoding::ValueTypeMarker>::borrow),
3363 encoder, offset + cur_offset, depth
3364 )?;
3365
3366 _prev_end_offset = cur_offset + envelope_size;
3367
3368 Ok(())
3369 }
3370 }
3371
3372 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for BandCapability {
3373 #[inline(always)]
3374 fn new_empty() -> Self {
3375 Self::default()
3376 }
3377
3378 unsafe fn decode(
3379 &mut self,
3380 decoder: &mut fidl::encoding::Decoder<'_, D>,
3381 offset: usize,
3382 mut depth: fidl::encoding::Depth,
3383 ) -> fidl::Result<()> {
3384 decoder.debug_check_bounds::<Self>(offset);
3385 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
3386 None => return Err(fidl::Error::NotNullable),
3387 Some(len) => len,
3388 };
3389 if len == 0 {
3391 return Ok(());
3392 };
3393 depth.increment()?;
3394 let envelope_size = 8;
3395 let bytes_len = len * envelope_size;
3396 let offset = decoder.out_of_line_offset(bytes_len)?;
3397 let mut _next_ordinal_to_read = 0;
3399 let mut next_offset = offset;
3400 let end_offset = offset + bytes_len;
3401 _next_ordinal_to_read += 1;
3402 if next_offset >= end_offset {
3403 return Ok(());
3404 }
3405
3406 while _next_ordinal_to_read < 1 {
3408 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3409 _next_ordinal_to_read += 1;
3410 next_offset += envelope_size;
3411 }
3412
3413 let next_out_of_line = decoder.next_out_of_line();
3414 let handles_before = decoder.remaining_handles();
3415 if let Some((inlined, num_bytes, num_handles)) =
3416 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3417 {
3418 let member_inline_size = <fidl_fuchsia_wlan_ieee80211_common::WlanBand as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3419 if inlined != (member_inline_size <= 4) {
3420 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3421 }
3422 let inner_offset;
3423 let mut inner_depth = depth.clone();
3424 if inlined {
3425 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3426 inner_offset = next_offset;
3427 } else {
3428 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3429 inner_depth.increment()?;
3430 }
3431 let val_ref = self.band.get_or_insert_with(|| {
3432 fidl::new_empty!(fidl_fuchsia_wlan_ieee80211_common::WlanBand, D)
3433 });
3434 fidl::decode!(
3435 fidl_fuchsia_wlan_ieee80211_common::WlanBand,
3436 D,
3437 val_ref,
3438 decoder,
3439 inner_offset,
3440 inner_depth
3441 )?;
3442 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3443 {
3444 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3445 }
3446 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3447 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3448 }
3449 }
3450
3451 next_offset += envelope_size;
3452 _next_ordinal_to_read += 1;
3453 if next_offset >= end_offset {
3454 return Ok(());
3455 }
3456
3457 while _next_ordinal_to_read < 2 {
3459 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3460 _next_ordinal_to_read += 1;
3461 next_offset += envelope_size;
3462 }
3463
3464 let next_out_of_line = decoder.next_out_of_line();
3465 let handles_before = decoder.remaining_handles();
3466 if let Some((inlined, num_bytes, num_handles)) =
3467 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3468 {
3469 let member_inline_size =
3470 <fidl::encoding::Vector<u8, 12> as fidl::encoding::TypeMarker>::inline_size(
3471 decoder.context,
3472 );
3473 if inlined != (member_inline_size <= 4) {
3474 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3475 }
3476 let inner_offset;
3477 let mut inner_depth = depth.clone();
3478 if inlined {
3479 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3480 inner_offset = next_offset;
3481 } else {
3482 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3483 inner_depth.increment()?;
3484 }
3485 let val_ref = self
3486 .basic_rates
3487 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<u8, 12>, D));
3488 fidl::decode!(fidl::encoding::Vector<u8, 12>, D, val_ref, decoder, inner_offset, inner_depth)?;
3489 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3490 {
3491 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3492 }
3493 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3494 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3495 }
3496 }
3497
3498 next_offset += envelope_size;
3499 _next_ordinal_to_read += 1;
3500 if next_offset >= end_offset {
3501 return Ok(());
3502 }
3503
3504 while _next_ordinal_to_read < 3 {
3506 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3507 _next_ordinal_to_read += 1;
3508 next_offset += envelope_size;
3509 }
3510
3511 let next_out_of_line = decoder.next_out_of_line();
3512 let handles_before = decoder.remaining_handles();
3513 if let Some((inlined, num_bytes, num_handles)) =
3514 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3515 {
3516 let member_inline_size = <fidl_fuchsia_wlan_ieee80211_common::HtCapabilities as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3517 if inlined != (member_inline_size <= 4) {
3518 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3519 }
3520 let inner_offset;
3521 let mut inner_depth = depth.clone();
3522 if inlined {
3523 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3524 inner_offset = next_offset;
3525 } else {
3526 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3527 inner_depth.increment()?;
3528 }
3529 let val_ref = self.ht_caps.get_or_insert_with(|| {
3530 fidl::new_empty!(fidl_fuchsia_wlan_ieee80211_common::HtCapabilities, D)
3531 });
3532 fidl::decode!(
3533 fidl_fuchsia_wlan_ieee80211_common::HtCapabilities,
3534 D,
3535 val_ref,
3536 decoder,
3537 inner_offset,
3538 inner_depth
3539 )?;
3540 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3541 {
3542 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3543 }
3544 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3545 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3546 }
3547 }
3548
3549 next_offset += envelope_size;
3550 _next_ordinal_to_read += 1;
3551 if next_offset >= end_offset {
3552 return Ok(());
3553 }
3554
3555 while _next_ordinal_to_read < 4 {
3557 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3558 _next_ordinal_to_read += 1;
3559 next_offset += envelope_size;
3560 }
3561
3562 let next_out_of_line = decoder.next_out_of_line();
3563 let handles_before = decoder.remaining_handles();
3564 if let Some((inlined, num_bytes, num_handles)) =
3565 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3566 {
3567 let member_inline_size = <fidl_fuchsia_wlan_ieee80211_common::VhtCapabilities as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3568 if inlined != (member_inline_size <= 4) {
3569 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3570 }
3571 let inner_offset;
3572 let mut inner_depth = depth.clone();
3573 if inlined {
3574 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3575 inner_offset = next_offset;
3576 } else {
3577 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3578 inner_depth.increment()?;
3579 }
3580 let val_ref = self.vht_caps.get_or_insert_with(|| {
3581 fidl::new_empty!(fidl_fuchsia_wlan_ieee80211_common::VhtCapabilities, D)
3582 });
3583 fidl::decode!(
3584 fidl_fuchsia_wlan_ieee80211_common::VhtCapabilities,
3585 D,
3586 val_ref,
3587 decoder,
3588 inner_offset,
3589 inner_depth
3590 )?;
3591 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3592 {
3593 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3594 }
3595 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3596 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3597 }
3598 }
3599
3600 next_offset += envelope_size;
3601 _next_ordinal_to_read += 1;
3602 if next_offset >= end_offset {
3603 return Ok(());
3604 }
3605
3606 while _next_ordinal_to_read < 5 {
3608 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3609 _next_ordinal_to_read += 1;
3610 next_offset += envelope_size;
3611 }
3612
3613 let next_out_of_line = decoder.next_out_of_line();
3614 let handles_before = decoder.remaining_handles();
3615 if let Some((inlined, num_bytes, num_handles)) =
3616 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3617 {
3618 let member_inline_size = <fidl::encoding::Vector<
3619 fidl_fuchsia_wlan_ieee80211_common::ChannelNumber,
3620 256,
3621 > as fidl::encoding::TypeMarker>::inline_size(
3622 decoder.context
3623 );
3624 if inlined != (member_inline_size <= 4) {
3625 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3626 }
3627 let inner_offset;
3628 let mut inner_depth = depth.clone();
3629 if inlined {
3630 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3631 inner_offset = next_offset;
3632 } else {
3633 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3634 inner_depth.increment()?;
3635 }
3636 let val_ref =
3637 self.primary_channels.get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<fidl_fuchsia_wlan_ieee80211_common::ChannelNumber, 256>, D));
3638 fidl::decode!(fidl::encoding::Vector<fidl_fuchsia_wlan_ieee80211_common::ChannelNumber, 256>, D, val_ref, decoder, inner_offset, inner_depth)?;
3639 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3640 {
3641 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3642 }
3643 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3644 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3645 }
3646 }
3647
3648 next_offset += envelope_size;
3649
3650 while next_offset < end_offset {
3652 _next_ordinal_to_read += 1;
3653 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3654 next_offset += envelope_size;
3655 }
3656
3657 Ok(())
3658 }
3659 }
3660
3661 impl SaeFrame {
3662 #[inline(always)]
3663 fn max_ordinal_present(&self) -> u64 {
3664 if let Some(_) = self.sae_fields {
3665 return 4;
3666 }
3667 if let Some(_) = self.seq_num {
3668 return 3;
3669 }
3670 if let Some(_) = self.status_code {
3671 return 2;
3672 }
3673 if let Some(_) = self.peer_sta_address {
3674 return 1;
3675 }
3676 0
3677 }
3678 }
3679
3680 impl fidl::encoding::ValueTypeMarker for SaeFrame {
3681 type Borrowed<'a> = &'a Self;
3682 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3683 value
3684 }
3685 }
3686
3687 unsafe impl fidl::encoding::TypeMarker for SaeFrame {
3688 type Owned = Self;
3689
3690 #[inline(always)]
3691 fn inline_align(_context: fidl::encoding::Context) -> usize {
3692 8
3693 }
3694
3695 #[inline(always)]
3696 fn inline_size(_context: fidl::encoding::Context) -> usize {
3697 16
3698 }
3699 }
3700
3701 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<SaeFrame, D> for &SaeFrame {
3702 unsafe fn encode(
3703 self,
3704 encoder: &mut fidl::encoding::Encoder<'_, D>,
3705 offset: usize,
3706 mut depth: fidl::encoding::Depth,
3707 ) -> fidl::Result<()> {
3708 encoder.debug_check_bounds::<SaeFrame>(offset);
3709 let max_ordinal: u64 = self.max_ordinal_present();
3711 encoder.write_num(max_ordinal, offset);
3712 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
3713 if max_ordinal == 0 {
3715 return Ok(());
3716 }
3717 depth.increment()?;
3718 let envelope_size = 8;
3719 let bytes_len = max_ordinal as usize * envelope_size;
3720 #[allow(unused_variables)]
3721 let offset = encoder.out_of_line_offset(bytes_len);
3722 let mut _prev_end_offset: usize = 0;
3723 if 1 > max_ordinal {
3724 return Ok(());
3725 }
3726
3727 let cur_offset: usize = (1 - 1) * envelope_size;
3730
3731 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3733
3734 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
3739 self.peer_sta_address
3740 .as_ref()
3741 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
3742 encoder,
3743 offset + cur_offset,
3744 depth,
3745 )?;
3746
3747 _prev_end_offset = cur_offset + envelope_size;
3748 if 2 > max_ordinal {
3749 return Ok(());
3750 }
3751
3752 let cur_offset: usize = (2 - 1) * envelope_size;
3755
3756 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3758
3759 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_ieee80211_common::StatusCode, D>(
3764 self.status_code.as_ref().map(<fidl_fuchsia_wlan_ieee80211_common::StatusCode as fidl::encoding::ValueTypeMarker>::borrow),
3765 encoder, offset + cur_offset, depth
3766 )?;
3767
3768 _prev_end_offset = cur_offset + envelope_size;
3769 if 3 > max_ordinal {
3770 return Ok(());
3771 }
3772
3773 let cur_offset: usize = (3 - 1) * envelope_size;
3776
3777 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3779
3780 fidl::encoding::encode_in_envelope_optional::<u16, D>(
3785 self.seq_num.as_ref().map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
3786 encoder,
3787 offset + cur_offset,
3788 depth,
3789 )?;
3790
3791 _prev_end_offset = cur_offset + envelope_size;
3792 if 4 > max_ordinal {
3793 return Ok(());
3794 }
3795
3796 let cur_offset: usize = (4 - 1) * envelope_size;
3799
3800 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3802
3803 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<u8>, D>(
3808 self.sae_fields.as_ref().map(<fidl::encoding::UnboundedVector<u8> as fidl::encoding::ValueTypeMarker>::borrow),
3809 encoder, offset + cur_offset, depth
3810 )?;
3811
3812 _prev_end_offset = cur_offset + envelope_size;
3813
3814 Ok(())
3815 }
3816 }
3817
3818 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for SaeFrame {
3819 #[inline(always)]
3820 fn new_empty() -> Self {
3821 Self::default()
3822 }
3823
3824 unsafe fn decode(
3825 &mut self,
3826 decoder: &mut fidl::encoding::Decoder<'_, D>,
3827 offset: usize,
3828 mut depth: fidl::encoding::Depth,
3829 ) -> fidl::Result<()> {
3830 decoder.debug_check_bounds::<Self>(offset);
3831 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
3832 None => return Err(fidl::Error::NotNullable),
3833 Some(len) => len,
3834 };
3835 if len == 0 {
3837 return Ok(());
3838 };
3839 depth.increment()?;
3840 let envelope_size = 8;
3841 let bytes_len = len * envelope_size;
3842 let offset = decoder.out_of_line_offset(bytes_len)?;
3843 let mut _next_ordinal_to_read = 0;
3845 let mut next_offset = offset;
3846 let end_offset = offset + bytes_len;
3847 _next_ordinal_to_read += 1;
3848 if next_offset >= end_offset {
3849 return Ok(());
3850 }
3851
3852 while _next_ordinal_to_read < 1 {
3854 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3855 _next_ordinal_to_read += 1;
3856 next_offset += envelope_size;
3857 }
3858
3859 let next_out_of_line = decoder.next_out_of_line();
3860 let handles_before = decoder.remaining_handles();
3861 if let Some((inlined, num_bytes, num_handles)) =
3862 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3863 {
3864 let member_inline_size =
3865 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
3866 decoder.context,
3867 );
3868 if inlined != (member_inline_size <= 4) {
3869 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3870 }
3871 let inner_offset;
3872 let mut inner_depth = depth.clone();
3873 if inlined {
3874 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3875 inner_offset = next_offset;
3876 } else {
3877 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3878 inner_depth.increment()?;
3879 }
3880 let val_ref = self
3881 .peer_sta_address
3882 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
3883 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
3884 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3885 {
3886 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3887 }
3888 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3889 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3890 }
3891 }
3892
3893 next_offset += envelope_size;
3894 _next_ordinal_to_read += 1;
3895 if next_offset >= end_offset {
3896 return Ok(());
3897 }
3898
3899 while _next_ordinal_to_read < 2 {
3901 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3902 _next_ordinal_to_read += 1;
3903 next_offset += envelope_size;
3904 }
3905
3906 let next_out_of_line = decoder.next_out_of_line();
3907 let handles_before = decoder.remaining_handles();
3908 if let Some((inlined, num_bytes, num_handles)) =
3909 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3910 {
3911 let member_inline_size = <fidl_fuchsia_wlan_ieee80211_common::StatusCode as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3912 if inlined != (member_inline_size <= 4) {
3913 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3914 }
3915 let inner_offset;
3916 let mut inner_depth = depth.clone();
3917 if inlined {
3918 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3919 inner_offset = next_offset;
3920 } else {
3921 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3922 inner_depth.increment()?;
3923 }
3924 let val_ref = self.status_code.get_or_insert_with(|| {
3925 fidl::new_empty!(fidl_fuchsia_wlan_ieee80211_common::StatusCode, D)
3926 });
3927 fidl::decode!(
3928 fidl_fuchsia_wlan_ieee80211_common::StatusCode,
3929 D,
3930 val_ref,
3931 decoder,
3932 inner_offset,
3933 inner_depth
3934 )?;
3935 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3936 {
3937 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3938 }
3939 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3940 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3941 }
3942 }
3943
3944 next_offset += envelope_size;
3945 _next_ordinal_to_read += 1;
3946 if next_offset >= end_offset {
3947 return Ok(());
3948 }
3949
3950 while _next_ordinal_to_read < 3 {
3952 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3953 _next_ordinal_to_read += 1;
3954 next_offset += envelope_size;
3955 }
3956
3957 let next_out_of_line = decoder.next_out_of_line();
3958 let handles_before = decoder.remaining_handles();
3959 if let Some((inlined, num_bytes, num_handles)) =
3960 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3961 {
3962 let member_inline_size =
3963 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3964 if inlined != (member_inline_size <= 4) {
3965 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3966 }
3967 let inner_offset;
3968 let mut inner_depth = depth.clone();
3969 if inlined {
3970 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3971 inner_offset = next_offset;
3972 } else {
3973 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3974 inner_depth.increment()?;
3975 }
3976 let val_ref = self.seq_num.get_or_insert_with(|| fidl::new_empty!(u16, D));
3977 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
3978 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3979 {
3980 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3981 }
3982 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3983 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3984 }
3985 }
3986
3987 next_offset += envelope_size;
3988 _next_ordinal_to_read += 1;
3989 if next_offset >= end_offset {
3990 return Ok(());
3991 }
3992
3993 while _next_ordinal_to_read < 4 {
3995 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3996 _next_ordinal_to_read += 1;
3997 next_offset += envelope_size;
3998 }
3999
4000 let next_out_of_line = decoder.next_out_of_line();
4001 let handles_before = decoder.remaining_handles();
4002 if let Some((inlined, num_bytes, num_handles)) =
4003 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4004 {
4005 let member_inline_size = <fidl::encoding::UnboundedVector<u8> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4006 if inlined != (member_inline_size <= 4) {
4007 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4008 }
4009 let inner_offset;
4010 let mut inner_depth = depth.clone();
4011 if inlined {
4012 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4013 inner_offset = next_offset;
4014 } else {
4015 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4016 inner_depth.increment()?;
4017 }
4018 let val_ref = self.sae_fields.get_or_insert_with(|| {
4019 fidl::new_empty!(fidl::encoding::UnboundedVector<u8>, D)
4020 });
4021 fidl::decode!(
4022 fidl::encoding::UnboundedVector<u8>,
4023 D,
4024 val_ref,
4025 decoder,
4026 inner_offset,
4027 inner_depth
4028 )?;
4029 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4030 {
4031 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4032 }
4033 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4034 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4035 }
4036 }
4037
4038 next_offset += envelope_size;
4039
4040 while next_offset < end_offset {
4042 _next_ordinal_to_read += 1;
4043 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4044 next_offset += envelope_size;
4045 }
4046
4047 Ok(())
4048 }
4049 }
4050
4051 impl WlanFullmacImplAssocRespRequest {
4052 #[inline(always)]
4053 fn max_ordinal_present(&self) -> u64 {
4054 if let Some(_) = self.association_id {
4055 return 3;
4056 }
4057 if let Some(_) = self.result_code {
4058 return 2;
4059 }
4060 if let Some(_) = self.peer_sta_address {
4061 return 1;
4062 }
4063 0
4064 }
4065 }
4066
4067 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplAssocRespRequest {
4068 type Borrowed<'a> = &'a Self;
4069 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4070 value
4071 }
4072 }
4073
4074 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplAssocRespRequest {
4075 type Owned = Self;
4076
4077 #[inline(always)]
4078 fn inline_align(_context: fidl::encoding::Context) -> usize {
4079 8
4080 }
4081
4082 #[inline(always)]
4083 fn inline_size(_context: fidl::encoding::Context) -> usize {
4084 16
4085 }
4086 }
4087
4088 unsafe impl<D: fidl::encoding::ResourceDialect>
4089 fidl::encoding::Encode<WlanFullmacImplAssocRespRequest, D>
4090 for &WlanFullmacImplAssocRespRequest
4091 {
4092 unsafe fn encode(
4093 self,
4094 encoder: &mut fidl::encoding::Encoder<'_, D>,
4095 offset: usize,
4096 mut depth: fidl::encoding::Depth,
4097 ) -> fidl::Result<()> {
4098 encoder.debug_check_bounds::<WlanFullmacImplAssocRespRequest>(offset);
4099 let max_ordinal: u64 = self.max_ordinal_present();
4101 encoder.write_num(max_ordinal, offset);
4102 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
4103 if max_ordinal == 0 {
4105 return Ok(());
4106 }
4107 depth.increment()?;
4108 let envelope_size = 8;
4109 let bytes_len = max_ordinal as usize * envelope_size;
4110 #[allow(unused_variables)]
4111 let offset = encoder.out_of_line_offset(bytes_len);
4112 let mut _prev_end_offset: usize = 0;
4113 if 1 > max_ordinal {
4114 return Ok(());
4115 }
4116
4117 let cur_offset: usize = (1 - 1) * envelope_size;
4120
4121 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4123
4124 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
4129 self.peer_sta_address
4130 .as_ref()
4131 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
4132 encoder,
4133 offset + cur_offset,
4134 depth,
4135 )?;
4136
4137 _prev_end_offset = cur_offset + envelope_size;
4138 if 2 > max_ordinal {
4139 return Ok(());
4140 }
4141
4142 let cur_offset: usize = (2 - 1) * envelope_size;
4145
4146 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4148
4149 fidl::encoding::encode_in_envelope_optional::<WlanAssocResult, D>(
4154 self.result_code
4155 .as_ref()
4156 .map(<WlanAssocResult as fidl::encoding::ValueTypeMarker>::borrow),
4157 encoder,
4158 offset + cur_offset,
4159 depth,
4160 )?;
4161
4162 _prev_end_offset = cur_offset + envelope_size;
4163 if 3 > max_ordinal {
4164 return Ok(());
4165 }
4166
4167 let cur_offset: usize = (3 - 1) * envelope_size;
4170
4171 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4173
4174 fidl::encoding::encode_in_envelope_optional::<u16, D>(
4179 self.association_id.as_ref().map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
4180 encoder,
4181 offset + cur_offset,
4182 depth,
4183 )?;
4184
4185 _prev_end_offset = cur_offset + envelope_size;
4186
4187 Ok(())
4188 }
4189 }
4190
4191 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
4192 for WlanFullmacImplAssocRespRequest
4193 {
4194 #[inline(always)]
4195 fn new_empty() -> Self {
4196 Self::default()
4197 }
4198
4199 unsafe fn decode(
4200 &mut self,
4201 decoder: &mut fidl::encoding::Decoder<'_, D>,
4202 offset: usize,
4203 mut depth: fidl::encoding::Depth,
4204 ) -> fidl::Result<()> {
4205 decoder.debug_check_bounds::<Self>(offset);
4206 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
4207 None => return Err(fidl::Error::NotNullable),
4208 Some(len) => len,
4209 };
4210 if len == 0 {
4212 return Ok(());
4213 };
4214 depth.increment()?;
4215 let envelope_size = 8;
4216 let bytes_len = len * envelope_size;
4217 let offset = decoder.out_of_line_offset(bytes_len)?;
4218 let mut _next_ordinal_to_read = 0;
4220 let mut next_offset = offset;
4221 let end_offset = offset + bytes_len;
4222 _next_ordinal_to_read += 1;
4223 if next_offset >= end_offset {
4224 return Ok(());
4225 }
4226
4227 while _next_ordinal_to_read < 1 {
4229 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4230 _next_ordinal_to_read += 1;
4231 next_offset += envelope_size;
4232 }
4233
4234 let next_out_of_line = decoder.next_out_of_line();
4235 let handles_before = decoder.remaining_handles();
4236 if let Some((inlined, num_bytes, num_handles)) =
4237 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4238 {
4239 let member_inline_size =
4240 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
4241 decoder.context,
4242 );
4243 if inlined != (member_inline_size <= 4) {
4244 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4245 }
4246 let inner_offset;
4247 let mut inner_depth = depth.clone();
4248 if inlined {
4249 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4250 inner_offset = next_offset;
4251 } else {
4252 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4253 inner_depth.increment()?;
4254 }
4255 let val_ref = self
4256 .peer_sta_address
4257 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
4258 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
4259 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4260 {
4261 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4262 }
4263 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4264 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4265 }
4266 }
4267
4268 next_offset += envelope_size;
4269 _next_ordinal_to_read += 1;
4270 if next_offset >= end_offset {
4271 return Ok(());
4272 }
4273
4274 while _next_ordinal_to_read < 2 {
4276 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4277 _next_ordinal_to_read += 1;
4278 next_offset += envelope_size;
4279 }
4280
4281 let next_out_of_line = decoder.next_out_of_line();
4282 let handles_before = decoder.remaining_handles();
4283 if let Some((inlined, num_bytes, num_handles)) =
4284 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4285 {
4286 let member_inline_size =
4287 <WlanAssocResult as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4288 if inlined != (member_inline_size <= 4) {
4289 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4290 }
4291 let inner_offset;
4292 let mut inner_depth = depth.clone();
4293 if inlined {
4294 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4295 inner_offset = next_offset;
4296 } else {
4297 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4298 inner_depth.increment()?;
4299 }
4300 let val_ref =
4301 self.result_code.get_or_insert_with(|| fidl::new_empty!(WlanAssocResult, D));
4302 fidl::decode!(WlanAssocResult, D, val_ref, decoder, inner_offset, inner_depth)?;
4303 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4304 {
4305 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4306 }
4307 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4308 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4309 }
4310 }
4311
4312 next_offset += envelope_size;
4313 _next_ordinal_to_read += 1;
4314 if next_offset >= end_offset {
4315 return Ok(());
4316 }
4317
4318 while _next_ordinal_to_read < 3 {
4320 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4321 _next_ordinal_to_read += 1;
4322 next_offset += envelope_size;
4323 }
4324
4325 let next_out_of_line = decoder.next_out_of_line();
4326 let handles_before = decoder.remaining_handles();
4327 if let Some((inlined, num_bytes, num_handles)) =
4328 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4329 {
4330 let member_inline_size =
4331 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4332 if inlined != (member_inline_size <= 4) {
4333 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4334 }
4335 let inner_offset;
4336 let mut inner_depth = depth.clone();
4337 if inlined {
4338 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4339 inner_offset = next_offset;
4340 } else {
4341 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4342 inner_depth.increment()?;
4343 }
4344 let val_ref = self.association_id.get_or_insert_with(|| fidl::new_empty!(u16, D));
4345 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
4346 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4347 {
4348 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4349 }
4350 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4351 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4352 }
4353 }
4354
4355 next_offset += envelope_size;
4356
4357 while next_offset < end_offset {
4359 _next_ordinal_to_read += 1;
4360 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4361 next_offset += envelope_size;
4362 }
4363
4364 Ok(())
4365 }
4366 }
4367
4368 impl WlanFullmacImplAuthRespRequest {
4369 #[inline(always)]
4370 fn max_ordinal_present(&self) -> u64 {
4371 if let Some(_) = self.result_code {
4372 return 2;
4373 }
4374 if let Some(_) = self.peer_sta_address {
4375 return 1;
4376 }
4377 0
4378 }
4379 }
4380
4381 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplAuthRespRequest {
4382 type Borrowed<'a> = &'a Self;
4383 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4384 value
4385 }
4386 }
4387
4388 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplAuthRespRequest {
4389 type Owned = Self;
4390
4391 #[inline(always)]
4392 fn inline_align(_context: fidl::encoding::Context) -> usize {
4393 8
4394 }
4395
4396 #[inline(always)]
4397 fn inline_size(_context: fidl::encoding::Context) -> usize {
4398 16
4399 }
4400 }
4401
4402 unsafe impl<D: fidl::encoding::ResourceDialect>
4403 fidl::encoding::Encode<WlanFullmacImplAuthRespRequest, D>
4404 for &WlanFullmacImplAuthRespRequest
4405 {
4406 unsafe fn encode(
4407 self,
4408 encoder: &mut fidl::encoding::Encoder<'_, D>,
4409 offset: usize,
4410 mut depth: fidl::encoding::Depth,
4411 ) -> fidl::Result<()> {
4412 encoder.debug_check_bounds::<WlanFullmacImplAuthRespRequest>(offset);
4413 let max_ordinal: u64 = self.max_ordinal_present();
4415 encoder.write_num(max_ordinal, offset);
4416 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
4417 if max_ordinal == 0 {
4419 return Ok(());
4420 }
4421 depth.increment()?;
4422 let envelope_size = 8;
4423 let bytes_len = max_ordinal as usize * envelope_size;
4424 #[allow(unused_variables)]
4425 let offset = encoder.out_of_line_offset(bytes_len);
4426 let mut _prev_end_offset: usize = 0;
4427 if 1 > max_ordinal {
4428 return Ok(());
4429 }
4430
4431 let cur_offset: usize = (1 - 1) * envelope_size;
4434
4435 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4437
4438 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
4443 self.peer_sta_address
4444 .as_ref()
4445 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
4446 encoder,
4447 offset + cur_offset,
4448 depth,
4449 )?;
4450
4451 _prev_end_offset = cur_offset + envelope_size;
4452 if 2 > max_ordinal {
4453 return Ok(());
4454 }
4455
4456 let cur_offset: usize = (2 - 1) * envelope_size;
4459
4460 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4462
4463 fidl::encoding::encode_in_envelope_optional::<WlanAuthResult, D>(
4468 self.result_code
4469 .as_ref()
4470 .map(<WlanAuthResult as fidl::encoding::ValueTypeMarker>::borrow),
4471 encoder,
4472 offset + cur_offset,
4473 depth,
4474 )?;
4475
4476 _prev_end_offset = cur_offset + envelope_size;
4477
4478 Ok(())
4479 }
4480 }
4481
4482 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
4483 for WlanFullmacImplAuthRespRequest
4484 {
4485 #[inline(always)]
4486 fn new_empty() -> Self {
4487 Self::default()
4488 }
4489
4490 unsafe fn decode(
4491 &mut self,
4492 decoder: &mut fidl::encoding::Decoder<'_, D>,
4493 offset: usize,
4494 mut depth: fidl::encoding::Depth,
4495 ) -> fidl::Result<()> {
4496 decoder.debug_check_bounds::<Self>(offset);
4497 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
4498 None => return Err(fidl::Error::NotNullable),
4499 Some(len) => len,
4500 };
4501 if len == 0 {
4503 return Ok(());
4504 };
4505 depth.increment()?;
4506 let envelope_size = 8;
4507 let bytes_len = len * envelope_size;
4508 let offset = decoder.out_of_line_offset(bytes_len)?;
4509 let mut _next_ordinal_to_read = 0;
4511 let mut next_offset = offset;
4512 let end_offset = offset + bytes_len;
4513 _next_ordinal_to_read += 1;
4514 if next_offset >= end_offset {
4515 return Ok(());
4516 }
4517
4518 while _next_ordinal_to_read < 1 {
4520 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4521 _next_ordinal_to_read += 1;
4522 next_offset += envelope_size;
4523 }
4524
4525 let next_out_of_line = decoder.next_out_of_line();
4526 let handles_before = decoder.remaining_handles();
4527 if let Some((inlined, num_bytes, num_handles)) =
4528 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4529 {
4530 let member_inline_size =
4531 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
4532 decoder.context,
4533 );
4534 if inlined != (member_inline_size <= 4) {
4535 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4536 }
4537 let inner_offset;
4538 let mut inner_depth = depth.clone();
4539 if inlined {
4540 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4541 inner_offset = next_offset;
4542 } else {
4543 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4544 inner_depth.increment()?;
4545 }
4546 let val_ref = self
4547 .peer_sta_address
4548 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
4549 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
4550 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4551 {
4552 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4553 }
4554 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4555 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4556 }
4557 }
4558
4559 next_offset += envelope_size;
4560 _next_ordinal_to_read += 1;
4561 if next_offset >= end_offset {
4562 return Ok(());
4563 }
4564
4565 while _next_ordinal_to_read < 2 {
4567 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4568 _next_ordinal_to_read += 1;
4569 next_offset += envelope_size;
4570 }
4571
4572 let next_out_of_line = decoder.next_out_of_line();
4573 let handles_before = decoder.remaining_handles();
4574 if let Some((inlined, num_bytes, num_handles)) =
4575 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4576 {
4577 let member_inline_size =
4578 <WlanAuthResult as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4579 if inlined != (member_inline_size <= 4) {
4580 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4581 }
4582 let inner_offset;
4583 let mut inner_depth = depth.clone();
4584 if inlined {
4585 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4586 inner_offset = next_offset;
4587 } else {
4588 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4589 inner_depth.increment()?;
4590 }
4591 let val_ref =
4592 self.result_code.get_or_insert_with(|| fidl::new_empty!(WlanAuthResult, D));
4593 fidl::decode!(WlanAuthResult, D, val_ref, decoder, inner_offset, inner_depth)?;
4594 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4595 {
4596 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4597 }
4598 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4599 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4600 }
4601 }
4602
4603 next_offset += envelope_size;
4604
4605 while next_offset < end_offset {
4607 _next_ordinal_to_read += 1;
4608 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4609 next_offset += envelope_size;
4610 }
4611
4612 Ok(())
4613 }
4614 }
4615
4616 impl WlanFullmacImplConnectRequest {
4617 #[inline(always)]
4618 fn max_ordinal_present(&self) -> u64 {
4619 if let Some(_) = self.owe_public_key {
4620 return 8;
4621 }
4622 if let Some(_) = self.wep_key_desc {
4623 return 7;
4624 }
4625 if let Some(_) = self.security_ie {
4626 return 6;
4627 }
4628 if let Some(_) = self.wep_key {
4629 return 5;
4630 }
4631 if let Some(_) = self.sae_password {
4632 return 4;
4633 }
4634 if let Some(_) = self.auth_type {
4635 return 3;
4636 }
4637 if let Some(_) = self.connect_failure_timeout {
4638 return 2;
4639 }
4640 if let Some(_) = self.selected_bss {
4641 return 1;
4642 }
4643 0
4644 }
4645 }
4646
4647 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplConnectRequest {
4648 type Borrowed<'a> = &'a Self;
4649 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4650 value
4651 }
4652 }
4653
4654 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplConnectRequest {
4655 type Owned = Self;
4656
4657 #[inline(always)]
4658 fn inline_align(_context: fidl::encoding::Context) -> usize {
4659 8
4660 }
4661
4662 #[inline(always)]
4663 fn inline_size(_context: fidl::encoding::Context) -> usize {
4664 16
4665 }
4666 }
4667
4668 unsafe impl<D: fidl::encoding::ResourceDialect>
4669 fidl::encoding::Encode<WlanFullmacImplConnectRequest, D>
4670 for &WlanFullmacImplConnectRequest
4671 {
4672 unsafe fn encode(
4673 self,
4674 encoder: &mut fidl::encoding::Encoder<'_, D>,
4675 offset: usize,
4676 mut depth: fidl::encoding::Depth,
4677 ) -> fidl::Result<()> {
4678 encoder.debug_check_bounds::<WlanFullmacImplConnectRequest>(offset);
4679 let max_ordinal: u64 = self.max_ordinal_present();
4681 encoder.write_num(max_ordinal, offset);
4682 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
4683 if max_ordinal == 0 {
4685 return Ok(());
4686 }
4687 depth.increment()?;
4688 let envelope_size = 8;
4689 let bytes_len = max_ordinal as usize * envelope_size;
4690 #[allow(unused_variables)]
4691 let offset = encoder.out_of_line_offset(bytes_len);
4692 let mut _prev_end_offset: usize = 0;
4693 if 1 > max_ordinal {
4694 return Ok(());
4695 }
4696
4697 let cur_offset: usize = (1 - 1) * envelope_size;
4700
4701 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4703
4704 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_ieee80211_common::BssDescription, D>(
4709 self.selected_bss.as_ref().map(<fidl_fuchsia_wlan_ieee80211_common::BssDescription as fidl::encoding::ValueTypeMarker>::borrow),
4710 encoder, offset + cur_offset, depth
4711 )?;
4712
4713 _prev_end_offset = cur_offset + envelope_size;
4714 if 2 > max_ordinal {
4715 return Ok(());
4716 }
4717
4718 let cur_offset: usize = (2 - 1) * envelope_size;
4721
4722 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4724
4725 fidl::encoding::encode_in_envelope_optional::<u32, D>(
4730 self.connect_failure_timeout
4731 .as_ref()
4732 .map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
4733 encoder,
4734 offset + cur_offset,
4735 depth,
4736 )?;
4737
4738 _prev_end_offset = cur_offset + envelope_size;
4739 if 3 > max_ordinal {
4740 return Ok(());
4741 }
4742
4743 let cur_offset: usize = (3 - 1) * envelope_size;
4746
4747 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4749
4750 fidl::encoding::encode_in_envelope_optional::<WlanAuthType, D>(
4755 self.auth_type
4756 .as_ref()
4757 .map(<WlanAuthType as fidl::encoding::ValueTypeMarker>::borrow),
4758 encoder,
4759 offset + cur_offset,
4760 depth,
4761 )?;
4762
4763 _prev_end_offset = cur_offset + envelope_size;
4764 if 4 > max_ordinal {
4765 return Ok(());
4766 }
4767
4768 let cur_offset: usize = (4 - 1) * envelope_size;
4771
4772 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4774
4775 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<u8>, D>(
4780 self.sae_password.as_ref().map(<fidl::encoding::UnboundedVector<u8> as fidl::encoding::ValueTypeMarker>::borrow),
4781 encoder, offset + cur_offset, depth
4782 )?;
4783
4784 _prev_end_offset = cur_offset + envelope_size;
4785 if 5 > max_ordinal {
4786 return Ok(());
4787 }
4788
4789 let cur_offset: usize = (5 - 1) * envelope_size;
4792
4793 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4795
4796 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_driver_common::WlanKeyConfig, D>(
4801 self.wep_key.as_ref().map(<fidl_fuchsia_wlan_driver_common::WlanKeyConfig as fidl::encoding::ValueTypeMarker>::borrow),
4802 encoder, offset + cur_offset, depth
4803 )?;
4804
4805 _prev_end_offset = cur_offset + envelope_size;
4806 if 6 > max_ordinal {
4807 return Ok(());
4808 }
4809
4810 let cur_offset: usize = (6 - 1) * envelope_size;
4813
4814 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4816
4817 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<u8, 257>, D>(
4822 self.security_ie.as_ref().map(
4823 <fidl::encoding::Vector<u8, 257> as fidl::encoding::ValueTypeMarker>::borrow,
4824 ),
4825 encoder,
4826 offset + cur_offset,
4827 depth,
4828 )?;
4829
4830 _prev_end_offset = cur_offset + envelope_size;
4831 if 7 > max_ordinal {
4832 return Ok(());
4833 }
4834
4835 let cur_offset: usize = (7 - 1) * envelope_size;
4838
4839 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4841
4842 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_ieee80211_common::SetKeyDescriptor, D>(
4847 self.wep_key_desc.as_ref().map(<fidl_fuchsia_wlan_ieee80211_common::SetKeyDescriptor as fidl::encoding::ValueTypeMarker>::borrow),
4848 encoder, offset + cur_offset, depth
4849 )?;
4850
4851 _prev_end_offset = cur_offset + envelope_size;
4852 if 8 > max_ordinal {
4853 return Ok(());
4854 }
4855
4856 let cur_offset: usize = (8 - 1) * envelope_size;
4859
4860 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4862
4863 fidl::encoding::encode_in_envelope_optional::<WlanFullmacOwePublicKey, D>(
4868 self.owe_public_key
4869 .as_ref()
4870 .map(<WlanFullmacOwePublicKey as fidl::encoding::ValueTypeMarker>::borrow),
4871 encoder,
4872 offset + cur_offset,
4873 depth,
4874 )?;
4875
4876 _prev_end_offset = cur_offset + envelope_size;
4877
4878 Ok(())
4879 }
4880 }
4881
4882 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
4883 for WlanFullmacImplConnectRequest
4884 {
4885 #[inline(always)]
4886 fn new_empty() -> Self {
4887 Self::default()
4888 }
4889
4890 unsafe fn decode(
4891 &mut self,
4892 decoder: &mut fidl::encoding::Decoder<'_, D>,
4893 offset: usize,
4894 mut depth: fidl::encoding::Depth,
4895 ) -> fidl::Result<()> {
4896 decoder.debug_check_bounds::<Self>(offset);
4897 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
4898 None => return Err(fidl::Error::NotNullable),
4899 Some(len) => len,
4900 };
4901 if len == 0 {
4903 return Ok(());
4904 };
4905 depth.increment()?;
4906 let envelope_size = 8;
4907 let bytes_len = len * envelope_size;
4908 let offset = decoder.out_of_line_offset(bytes_len)?;
4909 let mut _next_ordinal_to_read = 0;
4911 let mut next_offset = offset;
4912 let end_offset = offset + bytes_len;
4913 _next_ordinal_to_read += 1;
4914 if next_offset >= end_offset {
4915 return Ok(());
4916 }
4917
4918 while _next_ordinal_to_read < 1 {
4920 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4921 _next_ordinal_to_read += 1;
4922 next_offset += envelope_size;
4923 }
4924
4925 let next_out_of_line = decoder.next_out_of_line();
4926 let handles_before = decoder.remaining_handles();
4927 if let Some((inlined, num_bytes, num_handles)) =
4928 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4929 {
4930 let member_inline_size = <fidl_fuchsia_wlan_ieee80211_common::BssDescription as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4931 if inlined != (member_inline_size <= 4) {
4932 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4933 }
4934 let inner_offset;
4935 let mut inner_depth = depth.clone();
4936 if inlined {
4937 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4938 inner_offset = next_offset;
4939 } else {
4940 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4941 inner_depth.increment()?;
4942 }
4943 let val_ref = self.selected_bss.get_or_insert_with(|| {
4944 fidl::new_empty!(fidl_fuchsia_wlan_ieee80211_common::BssDescription, D)
4945 });
4946 fidl::decode!(
4947 fidl_fuchsia_wlan_ieee80211_common::BssDescription,
4948 D,
4949 val_ref,
4950 decoder,
4951 inner_offset,
4952 inner_depth
4953 )?;
4954 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4955 {
4956 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4957 }
4958 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4959 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4960 }
4961 }
4962
4963 next_offset += envelope_size;
4964 _next_ordinal_to_read += 1;
4965 if next_offset >= end_offset {
4966 return Ok(());
4967 }
4968
4969 while _next_ordinal_to_read < 2 {
4971 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4972 _next_ordinal_to_read += 1;
4973 next_offset += envelope_size;
4974 }
4975
4976 let next_out_of_line = decoder.next_out_of_line();
4977 let handles_before = decoder.remaining_handles();
4978 if let Some((inlined, num_bytes, num_handles)) =
4979 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4980 {
4981 let member_inline_size =
4982 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4983 if inlined != (member_inline_size <= 4) {
4984 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4985 }
4986 let inner_offset;
4987 let mut inner_depth = depth.clone();
4988 if inlined {
4989 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4990 inner_offset = next_offset;
4991 } else {
4992 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4993 inner_depth.increment()?;
4994 }
4995 let val_ref =
4996 self.connect_failure_timeout.get_or_insert_with(|| fidl::new_empty!(u32, D));
4997 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
4998 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4999 {
5000 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5001 }
5002 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5003 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5004 }
5005 }
5006
5007 next_offset += envelope_size;
5008 _next_ordinal_to_read += 1;
5009 if next_offset >= end_offset {
5010 return Ok(());
5011 }
5012
5013 while _next_ordinal_to_read < 3 {
5015 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5016 _next_ordinal_to_read += 1;
5017 next_offset += envelope_size;
5018 }
5019
5020 let next_out_of_line = decoder.next_out_of_line();
5021 let handles_before = decoder.remaining_handles();
5022 if let Some((inlined, num_bytes, num_handles)) =
5023 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5024 {
5025 let member_inline_size =
5026 <WlanAuthType as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5027 if inlined != (member_inline_size <= 4) {
5028 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5029 }
5030 let inner_offset;
5031 let mut inner_depth = depth.clone();
5032 if inlined {
5033 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5034 inner_offset = next_offset;
5035 } else {
5036 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5037 inner_depth.increment()?;
5038 }
5039 let val_ref =
5040 self.auth_type.get_or_insert_with(|| fidl::new_empty!(WlanAuthType, D));
5041 fidl::decode!(WlanAuthType, D, val_ref, decoder, inner_offset, inner_depth)?;
5042 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5043 {
5044 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5045 }
5046 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5047 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5048 }
5049 }
5050
5051 next_offset += envelope_size;
5052 _next_ordinal_to_read += 1;
5053 if next_offset >= end_offset {
5054 return Ok(());
5055 }
5056
5057 while _next_ordinal_to_read < 4 {
5059 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5060 _next_ordinal_to_read += 1;
5061 next_offset += envelope_size;
5062 }
5063
5064 let next_out_of_line = decoder.next_out_of_line();
5065 let handles_before = decoder.remaining_handles();
5066 if let Some((inlined, num_bytes, num_handles)) =
5067 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5068 {
5069 let member_inline_size = <fidl::encoding::UnboundedVector<u8> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5070 if inlined != (member_inline_size <= 4) {
5071 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5072 }
5073 let inner_offset;
5074 let mut inner_depth = depth.clone();
5075 if inlined {
5076 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5077 inner_offset = next_offset;
5078 } else {
5079 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5080 inner_depth.increment()?;
5081 }
5082 let val_ref = self.sae_password.get_or_insert_with(|| {
5083 fidl::new_empty!(fidl::encoding::UnboundedVector<u8>, D)
5084 });
5085 fidl::decode!(
5086 fidl::encoding::UnboundedVector<u8>,
5087 D,
5088 val_ref,
5089 decoder,
5090 inner_offset,
5091 inner_depth
5092 )?;
5093 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5094 {
5095 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5096 }
5097 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5098 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5099 }
5100 }
5101
5102 next_offset += envelope_size;
5103 _next_ordinal_to_read += 1;
5104 if next_offset >= end_offset {
5105 return Ok(());
5106 }
5107
5108 while _next_ordinal_to_read < 5 {
5110 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5111 _next_ordinal_to_read += 1;
5112 next_offset += envelope_size;
5113 }
5114
5115 let next_out_of_line = decoder.next_out_of_line();
5116 let handles_before = decoder.remaining_handles();
5117 if let Some((inlined, num_bytes, num_handles)) =
5118 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5119 {
5120 let member_inline_size = <fidl_fuchsia_wlan_driver_common::WlanKeyConfig as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5121 if inlined != (member_inline_size <= 4) {
5122 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5123 }
5124 let inner_offset;
5125 let mut inner_depth = depth.clone();
5126 if inlined {
5127 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5128 inner_offset = next_offset;
5129 } else {
5130 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5131 inner_depth.increment()?;
5132 }
5133 let val_ref = self.wep_key.get_or_insert_with(|| {
5134 fidl::new_empty!(fidl_fuchsia_wlan_driver_common::WlanKeyConfig, D)
5135 });
5136 fidl::decode!(
5137 fidl_fuchsia_wlan_driver_common::WlanKeyConfig,
5138 D,
5139 val_ref,
5140 decoder,
5141 inner_offset,
5142 inner_depth
5143 )?;
5144 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5145 {
5146 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5147 }
5148 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5149 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5150 }
5151 }
5152
5153 next_offset += envelope_size;
5154 _next_ordinal_to_read += 1;
5155 if next_offset >= end_offset {
5156 return Ok(());
5157 }
5158
5159 while _next_ordinal_to_read < 6 {
5161 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5162 _next_ordinal_to_read += 1;
5163 next_offset += envelope_size;
5164 }
5165
5166 let next_out_of_line = decoder.next_out_of_line();
5167 let handles_before = decoder.remaining_handles();
5168 if let Some((inlined, num_bytes, num_handles)) =
5169 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5170 {
5171 let member_inline_size =
5172 <fidl::encoding::Vector<u8, 257> as fidl::encoding::TypeMarker>::inline_size(
5173 decoder.context,
5174 );
5175 if inlined != (member_inline_size <= 4) {
5176 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5177 }
5178 let inner_offset;
5179 let mut inner_depth = depth.clone();
5180 if inlined {
5181 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5182 inner_offset = next_offset;
5183 } else {
5184 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5185 inner_depth.increment()?;
5186 }
5187 let val_ref = self
5188 .security_ie
5189 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<u8, 257>, D));
5190 fidl::decode!(fidl::encoding::Vector<u8, 257>, D, val_ref, decoder, inner_offset, inner_depth)?;
5191 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5192 {
5193 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5194 }
5195 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5196 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5197 }
5198 }
5199
5200 next_offset += envelope_size;
5201 _next_ordinal_to_read += 1;
5202 if next_offset >= end_offset {
5203 return Ok(());
5204 }
5205
5206 while _next_ordinal_to_read < 7 {
5208 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5209 _next_ordinal_to_read += 1;
5210 next_offset += envelope_size;
5211 }
5212
5213 let next_out_of_line = decoder.next_out_of_line();
5214 let handles_before = decoder.remaining_handles();
5215 if let Some((inlined, num_bytes, num_handles)) =
5216 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5217 {
5218 let member_inline_size = <fidl_fuchsia_wlan_ieee80211_common::SetKeyDescriptor as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5219 if inlined != (member_inline_size <= 4) {
5220 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5221 }
5222 let inner_offset;
5223 let mut inner_depth = depth.clone();
5224 if inlined {
5225 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5226 inner_offset = next_offset;
5227 } else {
5228 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5229 inner_depth.increment()?;
5230 }
5231 let val_ref = self.wep_key_desc.get_or_insert_with(|| {
5232 fidl::new_empty!(fidl_fuchsia_wlan_ieee80211_common::SetKeyDescriptor, D)
5233 });
5234 fidl::decode!(
5235 fidl_fuchsia_wlan_ieee80211_common::SetKeyDescriptor,
5236 D,
5237 val_ref,
5238 decoder,
5239 inner_offset,
5240 inner_depth
5241 )?;
5242 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5243 {
5244 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5245 }
5246 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5247 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5248 }
5249 }
5250
5251 next_offset += envelope_size;
5252 _next_ordinal_to_read += 1;
5253 if next_offset >= end_offset {
5254 return Ok(());
5255 }
5256
5257 while _next_ordinal_to_read < 8 {
5259 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5260 _next_ordinal_to_read += 1;
5261 next_offset += envelope_size;
5262 }
5263
5264 let next_out_of_line = decoder.next_out_of_line();
5265 let handles_before = decoder.remaining_handles();
5266 if let Some((inlined, num_bytes, num_handles)) =
5267 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5268 {
5269 let member_inline_size =
5270 <WlanFullmacOwePublicKey as fidl::encoding::TypeMarker>::inline_size(
5271 decoder.context,
5272 );
5273 if inlined != (member_inline_size <= 4) {
5274 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5275 }
5276 let inner_offset;
5277 let mut inner_depth = depth.clone();
5278 if inlined {
5279 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5280 inner_offset = next_offset;
5281 } else {
5282 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5283 inner_depth.increment()?;
5284 }
5285 let val_ref = self
5286 .owe_public_key
5287 .get_or_insert_with(|| fidl::new_empty!(WlanFullmacOwePublicKey, D));
5288 fidl::decode!(
5289 WlanFullmacOwePublicKey,
5290 D,
5291 val_ref,
5292 decoder,
5293 inner_offset,
5294 inner_depth
5295 )?;
5296 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5297 {
5298 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5299 }
5300 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5301 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5302 }
5303 }
5304
5305 next_offset += envelope_size;
5306
5307 while next_offset < end_offset {
5309 _next_ordinal_to_read += 1;
5310 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5311 next_offset += envelope_size;
5312 }
5313
5314 Ok(())
5315 }
5316 }
5317
5318 impl WlanFullmacImplDeauthRequest {
5319 #[inline(always)]
5320 fn max_ordinal_present(&self) -> u64 {
5321 if let Some(_) = self.reason_code {
5322 return 2;
5323 }
5324 if let Some(_) = self.peer_sta_address {
5325 return 1;
5326 }
5327 0
5328 }
5329 }
5330
5331 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplDeauthRequest {
5332 type Borrowed<'a> = &'a Self;
5333 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
5334 value
5335 }
5336 }
5337
5338 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplDeauthRequest {
5339 type Owned = Self;
5340
5341 #[inline(always)]
5342 fn inline_align(_context: fidl::encoding::Context) -> usize {
5343 8
5344 }
5345
5346 #[inline(always)]
5347 fn inline_size(_context: fidl::encoding::Context) -> usize {
5348 16
5349 }
5350 }
5351
5352 unsafe impl<D: fidl::encoding::ResourceDialect>
5353 fidl::encoding::Encode<WlanFullmacImplDeauthRequest, D> for &WlanFullmacImplDeauthRequest
5354 {
5355 unsafe fn encode(
5356 self,
5357 encoder: &mut fidl::encoding::Encoder<'_, D>,
5358 offset: usize,
5359 mut depth: fidl::encoding::Depth,
5360 ) -> fidl::Result<()> {
5361 encoder.debug_check_bounds::<WlanFullmacImplDeauthRequest>(offset);
5362 let max_ordinal: u64 = self.max_ordinal_present();
5364 encoder.write_num(max_ordinal, offset);
5365 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
5366 if max_ordinal == 0 {
5368 return Ok(());
5369 }
5370 depth.increment()?;
5371 let envelope_size = 8;
5372 let bytes_len = max_ordinal as usize * envelope_size;
5373 #[allow(unused_variables)]
5374 let offset = encoder.out_of_line_offset(bytes_len);
5375 let mut _prev_end_offset: usize = 0;
5376 if 1 > max_ordinal {
5377 return Ok(());
5378 }
5379
5380 let cur_offset: usize = (1 - 1) * envelope_size;
5383
5384 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5386
5387 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
5392 self.peer_sta_address
5393 .as_ref()
5394 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
5395 encoder,
5396 offset + cur_offset,
5397 depth,
5398 )?;
5399
5400 _prev_end_offset = cur_offset + envelope_size;
5401 if 2 > max_ordinal {
5402 return Ok(());
5403 }
5404
5405 let cur_offset: usize = (2 - 1) * envelope_size;
5408
5409 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5411
5412 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_ieee80211_common::ReasonCode, D>(
5417 self.reason_code.as_ref().map(<fidl_fuchsia_wlan_ieee80211_common::ReasonCode as fidl::encoding::ValueTypeMarker>::borrow),
5418 encoder, offset + cur_offset, depth
5419 )?;
5420
5421 _prev_end_offset = cur_offset + envelope_size;
5422
5423 Ok(())
5424 }
5425 }
5426
5427 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
5428 for WlanFullmacImplDeauthRequest
5429 {
5430 #[inline(always)]
5431 fn new_empty() -> Self {
5432 Self::default()
5433 }
5434
5435 unsafe fn decode(
5436 &mut self,
5437 decoder: &mut fidl::encoding::Decoder<'_, D>,
5438 offset: usize,
5439 mut depth: fidl::encoding::Depth,
5440 ) -> fidl::Result<()> {
5441 decoder.debug_check_bounds::<Self>(offset);
5442 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
5443 None => return Err(fidl::Error::NotNullable),
5444 Some(len) => len,
5445 };
5446 if len == 0 {
5448 return Ok(());
5449 };
5450 depth.increment()?;
5451 let envelope_size = 8;
5452 let bytes_len = len * envelope_size;
5453 let offset = decoder.out_of_line_offset(bytes_len)?;
5454 let mut _next_ordinal_to_read = 0;
5456 let mut next_offset = offset;
5457 let end_offset = offset + bytes_len;
5458 _next_ordinal_to_read += 1;
5459 if next_offset >= end_offset {
5460 return Ok(());
5461 }
5462
5463 while _next_ordinal_to_read < 1 {
5465 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5466 _next_ordinal_to_read += 1;
5467 next_offset += envelope_size;
5468 }
5469
5470 let next_out_of_line = decoder.next_out_of_line();
5471 let handles_before = decoder.remaining_handles();
5472 if let Some((inlined, num_bytes, num_handles)) =
5473 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5474 {
5475 let member_inline_size =
5476 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
5477 decoder.context,
5478 );
5479 if inlined != (member_inline_size <= 4) {
5480 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5481 }
5482 let inner_offset;
5483 let mut inner_depth = depth.clone();
5484 if inlined {
5485 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5486 inner_offset = next_offset;
5487 } else {
5488 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5489 inner_depth.increment()?;
5490 }
5491 let val_ref = self
5492 .peer_sta_address
5493 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
5494 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
5495 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5496 {
5497 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5498 }
5499 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5500 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5501 }
5502 }
5503
5504 next_offset += envelope_size;
5505 _next_ordinal_to_read += 1;
5506 if next_offset >= end_offset {
5507 return Ok(());
5508 }
5509
5510 while _next_ordinal_to_read < 2 {
5512 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5513 _next_ordinal_to_read += 1;
5514 next_offset += envelope_size;
5515 }
5516
5517 let next_out_of_line = decoder.next_out_of_line();
5518 let handles_before = decoder.remaining_handles();
5519 if let Some((inlined, num_bytes, num_handles)) =
5520 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5521 {
5522 let member_inline_size = <fidl_fuchsia_wlan_ieee80211_common::ReasonCode as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5523 if inlined != (member_inline_size <= 4) {
5524 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5525 }
5526 let inner_offset;
5527 let mut inner_depth = depth.clone();
5528 if inlined {
5529 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5530 inner_offset = next_offset;
5531 } else {
5532 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5533 inner_depth.increment()?;
5534 }
5535 let val_ref = self.reason_code.get_or_insert_with(|| {
5536 fidl::new_empty!(fidl_fuchsia_wlan_ieee80211_common::ReasonCode, D)
5537 });
5538 fidl::decode!(
5539 fidl_fuchsia_wlan_ieee80211_common::ReasonCode,
5540 D,
5541 val_ref,
5542 decoder,
5543 inner_offset,
5544 inner_depth
5545 )?;
5546 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5547 {
5548 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5549 }
5550 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5551 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5552 }
5553 }
5554
5555 next_offset += envelope_size;
5556
5557 while next_offset < end_offset {
5559 _next_ordinal_to_read += 1;
5560 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5561 next_offset += envelope_size;
5562 }
5563
5564 Ok(())
5565 }
5566 }
5567
5568 impl WlanFullmacImplDisassocRequest {
5569 #[inline(always)]
5570 fn max_ordinal_present(&self) -> u64 {
5571 if let Some(_) = self.reason_code {
5572 return 2;
5573 }
5574 if let Some(_) = self.peer_sta_address {
5575 return 1;
5576 }
5577 0
5578 }
5579 }
5580
5581 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplDisassocRequest {
5582 type Borrowed<'a> = &'a Self;
5583 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
5584 value
5585 }
5586 }
5587
5588 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplDisassocRequest {
5589 type Owned = Self;
5590
5591 #[inline(always)]
5592 fn inline_align(_context: fidl::encoding::Context) -> usize {
5593 8
5594 }
5595
5596 #[inline(always)]
5597 fn inline_size(_context: fidl::encoding::Context) -> usize {
5598 16
5599 }
5600 }
5601
5602 unsafe impl<D: fidl::encoding::ResourceDialect>
5603 fidl::encoding::Encode<WlanFullmacImplDisassocRequest, D>
5604 for &WlanFullmacImplDisassocRequest
5605 {
5606 unsafe fn encode(
5607 self,
5608 encoder: &mut fidl::encoding::Encoder<'_, D>,
5609 offset: usize,
5610 mut depth: fidl::encoding::Depth,
5611 ) -> fidl::Result<()> {
5612 encoder.debug_check_bounds::<WlanFullmacImplDisassocRequest>(offset);
5613 let max_ordinal: u64 = self.max_ordinal_present();
5615 encoder.write_num(max_ordinal, offset);
5616 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
5617 if max_ordinal == 0 {
5619 return Ok(());
5620 }
5621 depth.increment()?;
5622 let envelope_size = 8;
5623 let bytes_len = max_ordinal as usize * envelope_size;
5624 #[allow(unused_variables)]
5625 let offset = encoder.out_of_line_offset(bytes_len);
5626 let mut _prev_end_offset: usize = 0;
5627 if 1 > max_ordinal {
5628 return Ok(());
5629 }
5630
5631 let cur_offset: usize = (1 - 1) * envelope_size;
5634
5635 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5637
5638 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
5643 self.peer_sta_address
5644 .as_ref()
5645 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
5646 encoder,
5647 offset + cur_offset,
5648 depth,
5649 )?;
5650
5651 _prev_end_offset = cur_offset + envelope_size;
5652 if 2 > max_ordinal {
5653 return Ok(());
5654 }
5655
5656 let cur_offset: usize = (2 - 1) * envelope_size;
5659
5660 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5662
5663 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_ieee80211_common::ReasonCode, D>(
5668 self.reason_code.as_ref().map(<fidl_fuchsia_wlan_ieee80211_common::ReasonCode as fidl::encoding::ValueTypeMarker>::borrow),
5669 encoder, offset + cur_offset, depth
5670 )?;
5671
5672 _prev_end_offset = cur_offset + envelope_size;
5673
5674 Ok(())
5675 }
5676 }
5677
5678 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
5679 for WlanFullmacImplDisassocRequest
5680 {
5681 #[inline(always)]
5682 fn new_empty() -> Self {
5683 Self::default()
5684 }
5685
5686 unsafe fn decode(
5687 &mut self,
5688 decoder: &mut fidl::encoding::Decoder<'_, D>,
5689 offset: usize,
5690 mut depth: fidl::encoding::Depth,
5691 ) -> fidl::Result<()> {
5692 decoder.debug_check_bounds::<Self>(offset);
5693 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
5694 None => return Err(fidl::Error::NotNullable),
5695 Some(len) => len,
5696 };
5697 if len == 0 {
5699 return Ok(());
5700 };
5701 depth.increment()?;
5702 let envelope_size = 8;
5703 let bytes_len = len * envelope_size;
5704 let offset = decoder.out_of_line_offset(bytes_len)?;
5705 let mut _next_ordinal_to_read = 0;
5707 let mut next_offset = offset;
5708 let end_offset = offset + bytes_len;
5709 _next_ordinal_to_read += 1;
5710 if next_offset >= end_offset {
5711 return Ok(());
5712 }
5713
5714 while _next_ordinal_to_read < 1 {
5716 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5717 _next_ordinal_to_read += 1;
5718 next_offset += envelope_size;
5719 }
5720
5721 let next_out_of_line = decoder.next_out_of_line();
5722 let handles_before = decoder.remaining_handles();
5723 if let Some((inlined, num_bytes, num_handles)) =
5724 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5725 {
5726 let member_inline_size =
5727 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
5728 decoder.context,
5729 );
5730 if inlined != (member_inline_size <= 4) {
5731 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5732 }
5733 let inner_offset;
5734 let mut inner_depth = depth.clone();
5735 if inlined {
5736 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5737 inner_offset = next_offset;
5738 } else {
5739 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5740 inner_depth.increment()?;
5741 }
5742 let val_ref = self
5743 .peer_sta_address
5744 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
5745 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
5746 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5747 {
5748 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5749 }
5750 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5751 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5752 }
5753 }
5754
5755 next_offset += envelope_size;
5756 _next_ordinal_to_read += 1;
5757 if next_offset >= end_offset {
5758 return Ok(());
5759 }
5760
5761 while _next_ordinal_to_read < 2 {
5763 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5764 _next_ordinal_to_read += 1;
5765 next_offset += envelope_size;
5766 }
5767
5768 let next_out_of_line = decoder.next_out_of_line();
5769 let handles_before = decoder.remaining_handles();
5770 if let Some((inlined, num_bytes, num_handles)) =
5771 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5772 {
5773 let member_inline_size = <fidl_fuchsia_wlan_ieee80211_common::ReasonCode as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5774 if inlined != (member_inline_size <= 4) {
5775 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5776 }
5777 let inner_offset;
5778 let mut inner_depth = depth.clone();
5779 if inlined {
5780 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5781 inner_offset = next_offset;
5782 } else {
5783 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5784 inner_depth.increment()?;
5785 }
5786 let val_ref = self.reason_code.get_or_insert_with(|| {
5787 fidl::new_empty!(fidl_fuchsia_wlan_ieee80211_common::ReasonCode, D)
5788 });
5789 fidl::decode!(
5790 fidl_fuchsia_wlan_ieee80211_common::ReasonCode,
5791 D,
5792 val_ref,
5793 decoder,
5794 inner_offset,
5795 inner_depth
5796 )?;
5797 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5798 {
5799 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5800 }
5801 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5802 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5803 }
5804 }
5805
5806 next_offset += envelope_size;
5807
5808 while next_offset < end_offset {
5810 _next_ordinal_to_read += 1;
5811 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5812 next_offset += envelope_size;
5813 }
5814
5815 Ok(())
5816 }
5817 }
5818
5819 impl WlanFullmacImplEapolTxRequest {
5820 #[inline(always)]
5821 fn max_ordinal_present(&self) -> u64 {
5822 if let Some(_) = self.data {
5823 return 3;
5824 }
5825 if let Some(_) = self.dst_addr {
5826 return 2;
5827 }
5828 if let Some(_) = self.src_addr {
5829 return 1;
5830 }
5831 0
5832 }
5833 }
5834
5835 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplEapolTxRequest {
5836 type Borrowed<'a> = &'a Self;
5837 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
5838 value
5839 }
5840 }
5841
5842 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplEapolTxRequest {
5843 type Owned = Self;
5844
5845 #[inline(always)]
5846 fn inline_align(_context: fidl::encoding::Context) -> usize {
5847 8
5848 }
5849
5850 #[inline(always)]
5851 fn inline_size(_context: fidl::encoding::Context) -> usize {
5852 16
5853 }
5854 }
5855
5856 unsafe impl<D: fidl::encoding::ResourceDialect>
5857 fidl::encoding::Encode<WlanFullmacImplEapolTxRequest, D>
5858 for &WlanFullmacImplEapolTxRequest
5859 {
5860 unsafe fn encode(
5861 self,
5862 encoder: &mut fidl::encoding::Encoder<'_, D>,
5863 offset: usize,
5864 mut depth: fidl::encoding::Depth,
5865 ) -> fidl::Result<()> {
5866 encoder.debug_check_bounds::<WlanFullmacImplEapolTxRequest>(offset);
5867 let max_ordinal: u64 = self.max_ordinal_present();
5869 encoder.write_num(max_ordinal, offset);
5870 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
5871 if max_ordinal == 0 {
5873 return Ok(());
5874 }
5875 depth.increment()?;
5876 let envelope_size = 8;
5877 let bytes_len = max_ordinal as usize * envelope_size;
5878 #[allow(unused_variables)]
5879 let offset = encoder.out_of_line_offset(bytes_len);
5880 let mut _prev_end_offset: usize = 0;
5881 if 1 > max_ordinal {
5882 return Ok(());
5883 }
5884
5885 let cur_offset: usize = (1 - 1) * envelope_size;
5888
5889 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5891
5892 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
5897 self.src_addr
5898 .as_ref()
5899 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
5900 encoder,
5901 offset + cur_offset,
5902 depth,
5903 )?;
5904
5905 _prev_end_offset = cur_offset + envelope_size;
5906 if 2 > max_ordinal {
5907 return Ok(());
5908 }
5909
5910 let cur_offset: usize = (2 - 1) * envelope_size;
5913
5914 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5916
5917 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
5922 self.dst_addr
5923 .as_ref()
5924 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
5925 encoder,
5926 offset + cur_offset,
5927 depth,
5928 )?;
5929
5930 _prev_end_offset = cur_offset + envelope_size;
5931 if 3 > max_ordinal {
5932 return Ok(());
5933 }
5934
5935 let cur_offset: usize = (3 - 1) * envelope_size;
5938
5939 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5941
5942 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<u8>, D>(
5947 self.data.as_ref().map(<fidl::encoding::UnboundedVector<u8> as fidl::encoding::ValueTypeMarker>::borrow),
5948 encoder, offset + cur_offset, depth
5949 )?;
5950
5951 _prev_end_offset = cur_offset + envelope_size;
5952
5953 Ok(())
5954 }
5955 }
5956
5957 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
5958 for WlanFullmacImplEapolTxRequest
5959 {
5960 #[inline(always)]
5961 fn new_empty() -> Self {
5962 Self::default()
5963 }
5964
5965 unsafe fn decode(
5966 &mut self,
5967 decoder: &mut fidl::encoding::Decoder<'_, D>,
5968 offset: usize,
5969 mut depth: fidl::encoding::Depth,
5970 ) -> fidl::Result<()> {
5971 decoder.debug_check_bounds::<Self>(offset);
5972 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
5973 None => return Err(fidl::Error::NotNullable),
5974 Some(len) => len,
5975 };
5976 if len == 0 {
5978 return Ok(());
5979 };
5980 depth.increment()?;
5981 let envelope_size = 8;
5982 let bytes_len = len * envelope_size;
5983 let offset = decoder.out_of_line_offset(bytes_len)?;
5984 let mut _next_ordinal_to_read = 0;
5986 let mut next_offset = offset;
5987 let end_offset = offset + bytes_len;
5988 _next_ordinal_to_read += 1;
5989 if next_offset >= end_offset {
5990 return Ok(());
5991 }
5992
5993 while _next_ordinal_to_read < 1 {
5995 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5996 _next_ordinal_to_read += 1;
5997 next_offset += envelope_size;
5998 }
5999
6000 let next_out_of_line = decoder.next_out_of_line();
6001 let handles_before = decoder.remaining_handles();
6002 if let Some((inlined, num_bytes, num_handles)) =
6003 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6004 {
6005 let member_inline_size =
6006 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
6007 decoder.context,
6008 );
6009 if inlined != (member_inline_size <= 4) {
6010 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6011 }
6012 let inner_offset;
6013 let mut inner_depth = depth.clone();
6014 if inlined {
6015 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6016 inner_offset = next_offset;
6017 } else {
6018 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6019 inner_depth.increment()?;
6020 }
6021 let val_ref = self
6022 .src_addr
6023 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
6024 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
6025 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6026 {
6027 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6028 }
6029 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6030 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6031 }
6032 }
6033
6034 next_offset += envelope_size;
6035 _next_ordinal_to_read += 1;
6036 if next_offset >= end_offset {
6037 return Ok(());
6038 }
6039
6040 while _next_ordinal_to_read < 2 {
6042 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6043 _next_ordinal_to_read += 1;
6044 next_offset += envelope_size;
6045 }
6046
6047 let next_out_of_line = decoder.next_out_of_line();
6048 let handles_before = decoder.remaining_handles();
6049 if let Some((inlined, num_bytes, num_handles)) =
6050 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6051 {
6052 let member_inline_size =
6053 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
6054 decoder.context,
6055 );
6056 if inlined != (member_inline_size <= 4) {
6057 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6058 }
6059 let inner_offset;
6060 let mut inner_depth = depth.clone();
6061 if inlined {
6062 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6063 inner_offset = next_offset;
6064 } else {
6065 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6066 inner_depth.increment()?;
6067 }
6068 let val_ref = self
6069 .dst_addr
6070 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
6071 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
6072 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6073 {
6074 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6075 }
6076 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6077 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6078 }
6079 }
6080
6081 next_offset += envelope_size;
6082 _next_ordinal_to_read += 1;
6083 if next_offset >= end_offset {
6084 return Ok(());
6085 }
6086
6087 while _next_ordinal_to_read < 3 {
6089 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6090 _next_ordinal_to_read += 1;
6091 next_offset += envelope_size;
6092 }
6093
6094 let next_out_of_line = decoder.next_out_of_line();
6095 let handles_before = decoder.remaining_handles();
6096 if let Some((inlined, num_bytes, num_handles)) =
6097 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6098 {
6099 let member_inline_size = <fidl::encoding::UnboundedVector<u8> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6100 if inlined != (member_inline_size <= 4) {
6101 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6102 }
6103 let inner_offset;
6104 let mut inner_depth = depth.clone();
6105 if inlined {
6106 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6107 inner_offset = next_offset;
6108 } else {
6109 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6110 inner_depth.increment()?;
6111 }
6112 let val_ref = self.data.get_or_insert_with(|| {
6113 fidl::new_empty!(fidl::encoding::UnboundedVector<u8>, D)
6114 });
6115 fidl::decode!(
6116 fidl::encoding::UnboundedVector<u8>,
6117 D,
6118 val_ref,
6119 decoder,
6120 inner_offset,
6121 inner_depth
6122 )?;
6123 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6124 {
6125 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6126 }
6127 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6128 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6129 }
6130 }
6131
6132 next_offset += envelope_size;
6133
6134 while next_offset < end_offset {
6136 _next_ordinal_to_read += 1;
6137 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6138 next_offset += envelope_size;
6139 }
6140
6141 Ok(())
6142 }
6143 }
6144
6145 impl WlanFullmacImplIfcAssocIndRequest {
6146 #[inline(always)]
6147 fn max_ordinal_present(&self) -> u64 {
6148 if let Some(_) = self.vendor_ie {
6149 return 5;
6150 }
6151 if let Some(_) = self.rsne {
6152 return 4;
6153 }
6154 if let Some(_) = self.ssid {
6155 return 3;
6156 }
6157 if let Some(_) = self.listen_interval {
6158 return 2;
6159 }
6160 if let Some(_) = self.peer_sta_address {
6161 return 1;
6162 }
6163 0
6164 }
6165 }
6166
6167 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcAssocIndRequest {
6168 type Borrowed<'a> = &'a Self;
6169 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
6170 value
6171 }
6172 }
6173
6174 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcAssocIndRequest {
6175 type Owned = Self;
6176
6177 #[inline(always)]
6178 fn inline_align(_context: fidl::encoding::Context) -> usize {
6179 8
6180 }
6181
6182 #[inline(always)]
6183 fn inline_size(_context: fidl::encoding::Context) -> usize {
6184 16
6185 }
6186 }
6187
6188 unsafe impl<D: fidl::encoding::ResourceDialect>
6189 fidl::encoding::Encode<WlanFullmacImplIfcAssocIndRequest, D>
6190 for &WlanFullmacImplIfcAssocIndRequest
6191 {
6192 unsafe fn encode(
6193 self,
6194 encoder: &mut fidl::encoding::Encoder<'_, D>,
6195 offset: usize,
6196 mut depth: fidl::encoding::Depth,
6197 ) -> fidl::Result<()> {
6198 encoder.debug_check_bounds::<WlanFullmacImplIfcAssocIndRequest>(offset);
6199 let max_ordinal: u64 = self.max_ordinal_present();
6201 encoder.write_num(max_ordinal, offset);
6202 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
6203 if max_ordinal == 0 {
6205 return Ok(());
6206 }
6207 depth.increment()?;
6208 let envelope_size = 8;
6209 let bytes_len = max_ordinal as usize * envelope_size;
6210 #[allow(unused_variables)]
6211 let offset = encoder.out_of_line_offset(bytes_len);
6212 let mut _prev_end_offset: usize = 0;
6213 if 1 > max_ordinal {
6214 return Ok(());
6215 }
6216
6217 let cur_offset: usize = (1 - 1) * envelope_size;
6220
6221 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6223
6224 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
6229 self.peer_sta_address
6230 .as_ref()
6231 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
6232 encoder,
6233 offset + cur_offset,
6234 depth,
6235 )?;
6236
6237 _prev_end_offset = cur_offset + envelope_size;
6238 if 2 > max_ordinal {
6239 return Ok(());
6240 }
6241
6242 let cur_offset: usize = (2 - 1) * envelope_size;
6245
6246 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6248
6249 fidl::encoding::encode_in_envelope_optional::<u16, D>(
6254 self.listen_interval.as_ref().map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
6255 encoder,
6256 offset + cur_offset,
6257 depth,
6258 )?;
6259
6260 _prev_end_offset = cur_offset + envelope_size;
6261 if 3 > max_ordinal {
6262 return Ok(());
6263 }
6264
6265 let cur_offset: usize = (3 - 1) * envelope_size;
6268
6269 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6271
6272 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<u8, 32>, D>(
6277 self.ssid.as_ref().map(
6278 <fidl::encoding::Vector<u8, 32> as fidl::encoding::ValueTypeMarker>::borrow,
6279 ),
6280 encoder,
6281 offset + cur_offset,
6282 depth,
6283 )?;
6284
6285 _prev_end_offset = cur_offset + envelope_size;
6286 if 4 > max_ordinal {
6287 return Ok(());
6288 }
6289
6290 let cur_offset: usize = (4 - 1) * envelope_size;
6293
6294 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6296
6297 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<u8, 257>, D>(
6302 self.rsne.as_ref().map(
6303 <fidl::encoding::Vector<u8, 257> as fidl::encoding::ValueTypeMarker>::borrow,
6304 ),
6305 encoder,
6306 offset + cur_offset,
6307 depth,
6308 )?;
6309
6310 _prev_end_offset = cur_offset + envelope_size;
6311 if 5 > max_ordinal {
6312 return Ok(());
6313 }
6314
6315 let cur_offset: usize = (5 - 1) * envelope_size;
6318
6319 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6321
6322 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<u8, 514>, D>(
6327 self.vendor_ie.as_ref().map(
6328 <fidl::encoding::Vector<u8, 514> as fidl::encoding::ValueTypeMarker>::borrow,
6329 ),
6330 encoder,
6331 offset + cur_offset,
6332 depth,
6333 )?;
6334
6335 _prev_end_offset = cur_offset + envelope_size;
6336
6337 Ok(())
6338 }
6339 }
6340
6341 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
6342 for WlanFullmacImplIfcAssocIndRequest
6343 {
6344 #[inline(always)]
6345 fn new_empty() -> Self {
6346 Self::default()
6347 }
6348
6349 unsafe fn decode(
6350 &mut self,
6351 decoder: &mut fidl::encoding::Decoder<'_, D>,
6352 offset: usize,
6353 mut depth: fidl::encoding::Depth,
6354 ) -> fidl::Result<()> {
6355 decoder.debug_check_bounds::<Self>(offset);
6356 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
6357 None => return Err(fidl::Error::NotNullable),
6358 Some(len) => len,
6359 };
6360 if len == 0 {
6362 return Ok(());
6363 };
6364 depth.increment()?;
6365 let envelope_size = 8;
6366 let bytes_len = len * envelope_size;
6367 let offset = decoder.out_of_line_offset(bytes_len)?;
6368 let mut _next_ordinal_to_read = 0;
6370 let mut next_offset = offset;
6371 let end_offset = offset + bytes_len;
6372 _next_ordinal_to_read += 1;
6373 if next_offset >= end_offset {
6374 return Ok(());
6375 }
6376
6377 while _next_ordinal_to_read < 1 {
6379 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6380 _next_ordinal_to_read += 1;
6381 next_offset += envelope_size;
6382 }
6383
6384 let next_out_of_line = decoder.next_out_of_line();
6385 let handles_before = decoder.remaining_handles();
6386 if let Some((inlined, num_bytes, num_handles)) =
6387 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6388 {
6389 let member_inline_size =
6390 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
6391 decoder.context,
6392 );
6393 if inlined != (member_inline_size <= 4) {
6394 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6395 }
6396 let inner_offset;
6397 let mut inner_depth = depth.clone();
6398 if inlined {
6399 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6400 inner_offset = next_offset;
6401 } else {
6402 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6403 inner_depth.increment()?;
6404 }
6405 let val_ref = self
6406 .peer_sta_address
6407 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
6408 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
6409 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6410 {
6411 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6412 }
6413 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6414 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6415 }
6416 }
6417
6418 next_offset += envelope_size;
6419 _next_ordinal_to_read += 1;
6420 if next_offset >= end_offset {
6421 return Ok(());
6422 }
6423
6424 while _next_ordinal_to_read < 2 {
6426 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6427 _next_ordinal_to_read += 1;
6428 next_offset += envelope_size;
6429 }
6430
6431 let next_out_of_line = decoder.next_out_of_line();
6432 let handles_before = decoder.remaining_handles();
6433 if let Some((inlined, num_bytes, num_handles)) =
6434 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6435 {
6436 let member_inline_size =
6437 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6438 if inlined != (member_inline_size <= 4) {
6439 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6440 }
6441 let inner_offset;
6442 let mut inner_depth = depth.clone();
6443 if inlined {
6444 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6445 inner_offset = next_offset;
6446 } else {
6447 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6448 inner_depth.increment()?;
6449 }
6450 let val_ref = self.listen_interval.get_or_insert_with(|| fidl::new_empty!(u16, D));
6451 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
6452 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6453 {
6454 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6455 }
6456 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6457 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6458 }
6459 }
6460
6461 next_offset += envelope_size;
6462 _next_ordinal_to_read += 1;
6463 if next_offset >= end_offset {
6464 return Ok(());
6465 }
6466
6467 while _next_ordinal_to_read < 3 {
6469 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6470 _next_ordinal_to_read += 1;
6471 next_offset += envelope_size;
6472 }
6473
6474 let next_out_of_line = decoder.next_out_of_line();
6475 let handles_before = decoder.remaining_handles();
6476 if let Some((inlined, num_bytes, num_handles)) =
6477 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6478 {
6479 let member_inline_size =
6480 <fidl::encoding::Vector<u8, 32> as fidl::encoding::TypeMarker>::inline_size(
6481 decoder.context,
6482 );
6483 if inlined != (member_inline_size <= 4) {
6484 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6485 }
6486 let inner_offset;
6487 let mut inner_depth = depth.clone();
6488 if inlined {
6489 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6490 inner_offset = next_offset;
6491 } else {
6492 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6493 inner_depth.increment()?;
6494 }
6495 let val_ref = self
6496 .ssid
6497 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<u8, 32>, D));
6498 fidl::decode!(fidl::encoding::Vector<u8, 32>, D, val_ref, decoder, inner_offset, inner_depth)?;
6499 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6500 {
6501 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6502 }
6503 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6504 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6505 }
6506 }
6507
6508 next_offset += envelope_size;
6509 _next_ordinal_to_read += 1;
6510 if next_offset >= end_offset {
6511 return Ok(());
6512 }
6513
6514 while _next_ordinal_to_read < 4 {
6516 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6517 _next_ordinal_to_read += 1;
6518 next_offset += envelope_size;
6519 }
6520
6521 let next_out_of_line = decoder.next_out_of_line();
6522 let handles_before = decoder.remaining_handles();
6523 if let Some((inlined, num_bytes, num_handles)) =
6524 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6525 {
6526 let member_inline_size =
6527 <fidl::encoding::Vector<u8, 257> as fidl::encoding::TypeMarker>::inline_size(
6528 decoder.context,
6529 );
6530 if inlined != (member_inline_size <= 4) {
6531 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6532 }
6533 let inner_offset;
6534 let mut inner_depth = depth.clone();
6535 if inlined {
6536 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6537 inner_offset = next_offset;
6538 } else {
6539 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6540 inner_depth.increment()?;
6541 }
6542 let val_ref = self
6543 .rsne
6544 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<u8, 257>, D));
6545 fidl::decode!(fidl::encoding::Vector<u8, 257>, D, val_ref, decoder, inner_offset, inner_depth)?;
6546 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6547 {
6548 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6549 }
6550 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6551 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6552 }
6553 }
6554
6555 next_offset += envelope_size;
6556 _next_ordinal_to_read += 1;
6557 if next_offset >= end_offset {
6558 return Ok(());
6559 }
6560
6561 while _next_ordinal_to_read < 5 {
6563 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6564 _next_ordinal_to_read += 1;
6565 next_offset += envelope_size;
6566 }
6567
6568 let next_out_of_line = decoder.next_out_of_line();
6569 let handles_before = decoder.remaining_handles();
6570 if let Some((inlined, num_bytes, num_handles)) =
6571 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6572 {
6573 let member_inline_size =
6574 <fidl::encoding::Vector<u8, 514> as fidl::encoding::TypeMarker>::inline_size(
6575 decoder.context,
6576 );
6577 if inlined != (member_inline_size <= 4) {
6578 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6579 }
6580 let inner_offset;
6581 let mut inner_depth = depth.clone();
6582 if inlined {
6583 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6584 inner_offset = next_offset;
6585 } else {
6586 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6587 inner_depth.increment()?;
6588 }
6589 let val_ref = self
6590 .vendor_ie
6591 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<u8, 514>, D));
6592 fidl::decode!(fidl::encoding::Vector<u8, 514>, D, val_ref, decoder, inner_offset, inner_depth)?;
6593 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6594 {
6595 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6596 }
6597 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6598 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6599 }
6600 }
6601
6602 next_offset += envelope_size;
6603
6604 while next_offset < end_offset {
6606 _next_ordinal_to_read += 1;
6607 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6608 next_offset += envelope_size;
6609 }
6610
6611 Ok(())
6612 }
6613 }
6614
6615 impl WlanFullmacImplIfcAuthIndRequest {
6616 #[inline(always)]
6617 fn max_ordinal_present(&self) -> u64 {
6618 if let Some(_) = self.auth_type {
6619 return 2;
6620 }
6621 if let Some(_) = self.peer_sta_address {
6622 return 1;
6623 }
6624 0
6625 }
6626 }
6627
6628 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcAuthIndRequest {
6629 type Borrowed<'a> = &'a Self;
6630 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
6631 value
6632 }
6633 }
6634
6635 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcAuthIndRequest {
6636 type Owned = Self;
6637
6638 #[inline(always)]
6639 fn inline_align(_context: fidl::encoding::Context) -> usize {
6640 8
6641 }
6642
6643 #[inline(always)]
6644 fn inline_size(_context: fidl::encoding::Context) -> usize {
6645 16
6646 }
6647 }
6648
6649 unsafe impl<D: fidl::encoding::ResourceDialect>
6650 fidl::encoding::Encode<WlanFullmacImplIfcAuthIndRequest, D>
6651 for &WlanFullmacImplIfcAuthIndRequest
6652 {
6653 unsafe fn encode(
6654 self,
6655 encoder: &mut fidl::encoding::Encoder<'_, D>,
6656 offset: usize,
6657 mut depth: fidl::encoding::Depth,
6658 ) -> fidl::Result<()> {
6659 encoder.debug_check_bounds::<WlanFullmacImplIfcAuthIndRequest>(offset);
6660 let max_ordinal: u64 = self.max_ordinal_present();
6662 encoder.write_num(max_ordinal, offset);
6663 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
6664 if max_ordinal == 0 {
6666 return Ok(());
6667 }
6668 depth.increment()?;
6669 let envelope_size = 8;
6670 let bytes_len = max_ordinal as usize * envelope_size;
6671 #[allow(unused_variables)]
6672 let offset = encoder.out_of_line_offset(bytes_len);
6673 let mut _prev_end_offset: usize = 0;
6674 if 1 > max_ordinal {
6675 return Ok(());
6676 }
6677
6678 let cur_offset: usize = (1 - 1) * envelope_size;
6681
6682 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6684
6685 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
6690 self.peer_sta_address
6691 .as_ref()
6692 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
6693 encoder,
6694 offset + cur_offset,
6695 depth,
6696 )?;
6697
6698 _prev_end_offset = cur_offset + envelope_size;
6699 if 2 > max_ordinal {
6700 return Ok(());
6701 }
6702
6703 let cur_offset: usize = (2 - 1) * envelope_size;
6706
6707 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6709
6710 fidl::encoding::encode_in_envelope_optional::<WlanAuthType, D>(
6715 self.auth_type
6716 .as_ref()
6717 .map(<WlanAuthType as fidl::encoding::ValueTypeMarker>::borrow),
6718 encoder,
6719 offset + cur_offset,
6720 depth,
6721 )?;
6722
6723 _prev_end_offset = cur_offset + envelope_size;
6724
6725 Ok(())
6726 }
6727 }
6728
6729 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
6730 for WlanFullmacImplIfcAuthIndRequest
6731 {
6732 #[inline(always)]
6733 fn new_empty() -> Self {
6734 Self::default()
6735 }
6736
6737 unsafe fn decode(
6738 &mut self,
6739 decoder: &mut fidl::encoding::Decoder<'_, D>,
6740 offset: usize,
6741 mut depth: fidl::encoding::Depth,
6742 ) -> fidl::Result<()> {
6743 decoder.debug_check_bounds::<Self>(offset);
6744 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
6745 None => return Err(fidl::Error::NotNullable),
6746 Some(len) => len,
6747 };
6748 if len == 0 {
6750 return Ok(());
6751 };
6752 depth.increment()?;
6753 let envelope_size = 8;
6754 let bytes_len = len * envelope_size;
6755 let offset = decoder.out_of_line_offset(bytes_len)?;
6756 let mut _next_ordinal_to_read = 0;
6758 let mut next_offset = offset;
6759 let end_offset = offset + bytes_len;
6760 _next_ordinal_to_read += 1;
6761 if next_offset >= end_offset {
6762 return Ok(());
6763 }
6764
6765 while _next_ordinal_to_read < 1 {
6767 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6768 _next_ordinal_to_read += 1;
6769 next_offset += envelope_size;
6770 }
6771
6772 let next_out_of_line = decoder.next_out_of_line();
6773 let handles_before = decoder.remaining_handles();
6774 if let Some((inlined, num_bytes, num_handles)) =
6775 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6776 {
6777 let member_inline_size =
6778 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
6779 decoder.context,
6780 );
6781 if inlined != (member_inline_size <= 4) {
6782 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6783 }
6784 let inner_offset;
6785 let mut inner_depth = depth.clone();
6786 if inlined {
6787 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6788 inner_offset = next_offset;
6789 } else {
6790 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6791 inner_depth.increment()?;
6792 }
6793 let val_ref = self
6794 .peer_sta_address
6795 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
6796 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
6797 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6798 {
6799 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6800 }
6801 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6802 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6803 }
6804 }
6805
6806 next_offset += envelope_size;
6807 _next_ordinal_to_read += 1;
6808 if next_offset >= end_offset {
6809 return Ok(());
6810 }
6811
6812 while _next_ordinal_to_read < 2 {
6814 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6815 _next_ordinal_to_read += 1;
6816 next_offset += envelope_size;
6817 }
6818
6819 let next_out_of_line = decoder.next_out_of_line();
6820 let handles_before = decoder.remaining_handles();
6821 if let Some((inlined, num_bytes, num_handles)) =
6822 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6823 {
6824 let member_inline_size =
6825 <WlanAuthType as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6826 if inlined != (member_inline_size <= 4) {
6827 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6828 }
6829 let inner_offset;
6830 let mut inner_depth = depth.clone();
6831 if inlined {
6832 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6833 inner_offset = next_offset;
6834 } else {
6835 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6836 inner_depth.increment()?;
6837 }
6838 let val_ref =
6839 self.auth_type.get_or_insert_with(|| fidl::new_empty!(WlanAuthType, D));
6840 fidl::decode!(WlanAuthType, D, val_ref, decoder, inner_offset, inner_depth)?;
6841 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6842 {
6843 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6844 }
6845 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6846 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6847 }
6848 }
6849
6850 next_offset += envelope_size;
6851
6852 while next_offset < end_offset {
6854 _next_ordinal_to_read += 1;
6855 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6856 next_offset += envelope_size;
6857 }
6858
6859 Ok(())
6860 }
6861 }
6862
6863 impl WlanFullmacImplIfcConnectConfRequest {
6864 #[inline(always)]
6865 fn max_ordinal_present(&self) -> u64 {
6866 if let Some(_) = self.association_ies {
6867 return 4;
6868 }
6869 if let Some(_) = self.association_id {
6870 return 3;
6871 }
6872 if let Some(_) = self.result_code {
6873 return 2;
6874 }
6875 if let Some(_) = self.peer_sta_address {
6876 return 1;
6877 }
6878 0
6879 }
6880 }
6881
6882 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcConnectConfRequest {
6883 type Borrowed<'a> = &'a Self;
6884 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
6885 value
6886 }
6887 }
6888
6889 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcConnectConfRequest {
6890 type Owned = Self;
6891
6892 #[inline(always)]
6893 fn inline_align(_context: fidl::encoding::Context) -> usize {
6894 8
6895 }
6896
6897 #[inline(always)]
6898 fn inline_size(_context: fidl::encoding::Context) -> usize {
6899 16
6900 }
6901 }
6902
6903 unsafe impl<D: fidl::encoding::ResourceDialect>
6904 fidl::encoding::Encode<WlanFullmacImplIfcConnectConfRequest, D>
6905 for &WlanFullmacImplIfcConnectConfRequest
6906 {
6907 unsafe fn encode(
6908 self,
6909 encoder: &mut fidl::encoding::Encoder<'_, D>,
6910 offset: usize,
6911 mut depth: fidl::encoding::Depth,
6912 ) -> fidl::Result<()> {
6913 encoder.debug_check_bounds::<WlanFullmacImplIfcConnectConfRequest>(offset);
6914 let max_ordinal: u64 = self.max_ordinal_present();
6916 encoder.write_num(max_ordinal, offset);
6917 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
6918 if max_ordinal == 0 {
6920 return Ok(());
6921 }
6922 depth.increment()?;
6923 let envelope_size = 8;
6924 let bytes_len = max_ordinal as usize * envelope_size;
6925 #[allow(unused_variables)]
6926 let offset = encoder.out_of_line_offset(bytes_len);
6927 let mut _prev_end_offset: usize = 0;
6928 if 1 > max_ordinal {
6929 return Ok(());
6930 }
6931
6932 let cur_offset: usize = (1 - 1) * envelope_size;
6935
6936 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6938
6939 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
6944 self.peer_sta_address
6945 .as_ref()
6946 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
6947 encoder,
6948 offset + cur_offset,
6949 depth,
6950 )?;
6951
6952 _prev_end_offset = cur_offset + envelope_size;
6953 if 2 > max_ordinal {
6954 return Ok(());
6955 }
6956
6957 let cur_offset: usize = (2 - 1) * envelope_size;
6960
6961 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6963
6964 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_ieee80211_common::StatusCode, D>(
6969 self.result_code.as_ref().map(<fidl_fuchsia_wlan_ieee80211_common::StatusCode as fidl::encoding::ValueTypeMarker>::borrow),
6970 encoder, offset + cur_offset, depth
6971 )?;
6972
6973 _prev_end_offset = cur_offset + envelope_size;
6974 if 3 > max_ordinal {
6975 return Ok(());
6976 }
6977
6978 let cur_offset: usize = (3 - 1) * envelope_size;
6981
6982 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6984
6985 fidl::encoding::encode_in_envelope_optional::<u16, D>(
6990 self.association_id.as_ref().map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
6991 encoder,
6992 offset + cur_offset,
6993 depth,
6994 )?;
6995
6996 _prev_end_offset = cur_offset + envelope_size;
6997 if 4 > max_ordinal {
6998 return Ok(());
6999 }
7000
7001 let cur_offset: usize = (4 - 1) * envelope_size;
7004
7005 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7007
7008 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<u8>, D>(
7013 self.association_ies.as_ref().map(<fidl::encoding::UnboundedVector<u8> as fidl::encoding::ValueTypeMarker>::borrow),
7014 encoder, offset + cur_offset, depth
7015 )?;
7016
7017 _prev_end_offset = cur_offset + envelope_size;
7018
7019 Ok(())
7020 }
7021 }
7022
7023 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
7024 for WlanFullmacImplIfcConnectConfRequest
7025 {
7026 #[inline(always)]
7027 fn new_empty() -> Self {
7028 Self::default()
7029 }
7030
7031 unsafe fn decode(
7032 &mut self,
7033 decoder: &mut fidl::encoding::Decoder<'_, D>,
7034 offset: usize,
7035 mut depth: fidl::encoding::Depth,
7036 ) -> fidl::Result<()> {
7037 decoder.debug_check_bounds::<Self>(offset);
7038 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
7039 None => return Err(fidl::Error::NotNullable),
7040 Some(len) => len,
7041 };
7042 if len == 0 {
7044 return Ok(());
7045 };
7046 depth.increment()?;
7047 let envelope_size = 8;
7048 let bytes_len = len * envelope_size;
7049 let offset = decoder.out_of_line_offset(bytes_len)?;
7050 let mut _next_ordinal_to_read = 0;
7052 let mut next_offset = offset;
7053 let end_offset = offset + bytes_len;
7054 _next_ordinal_to_read += 1;
7055 if next_offset >= end_offset {
7056 return Ok(());
7057 }
7058
7059 while _next_ordinal_to_read < 1 {
7061 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7062 _next_ordinal_to_read += 1;
7063 next_offset += envelope_size;
7064 }
7065
7066 let next_out_of_line = decoder.next_out_of_line();
7067 let handles_before = decoder.remaining_handles();
7068 if let Some((inlined, num_bytes, num_handles)) =
7069 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7070 {
7071 let member_inline_size =
7072 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
7073 decoder.context,
7074 );
7075 if inlined != (member_inline_size <= 4) {
7076 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7077 }
7078 let inner_offset;
7079 let mut inner_depth = depth.clone();
7080 if inlined {
7081 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7082 inner_offset = next_offset;
7083 } else {
7084 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7085 inner_depth.increment()?;
7086 }
7087 let val_ref = self
7088 .peer_sta_address
7089 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
7090 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
7091 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7092 {
7093 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7094 }
7095 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7096 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7097 }
7098 }
7099
7100 next_offset += envelope_size;
7101 _next_ordinal_to_read += 1;
7102 if next_offset >= end_offset {
7103 return Ok(());
7104 }
7105
7106 while _next_ordinal_to_read < 2 {
7108 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7109 _next_ordinal_to_read += 1;
7110 next_offset += envelope_size;
7111 }
7112
7113 let next_out_of_line = decoder.next_out_of_line();
7114 let handles_before = decoder.remaining_handles();
7115 if let Some((inlined, num_bytes, num_handles)) =
7116 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7117 {
7118 let member_inline_size = <fidl_fuchsia_wlan_ieee80211_common::StatusCode as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7119 if inlined != (member_inline_size <= 4) {
7120 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7121 }
7122 let inner_offset;
7123 let mut inner_depth = depth.clone();
7124 if inlined {
7125 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7126 inner_offset = next_offset;
7127 } else {
7128 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7129 inner_depth.increment()?;
7130 }
7131 let val_ref = self.result_code.get_or_insert_with(|| {
7132 fidl::new_empty!(fidl_fuchsia_wlan_ieee80211_common::StatusCode, D)
7133 });
7134 fidl::decode!(
7135 fidl_fuchsia_wlan_ieee80211_common::StatusCode,
7136 D,
7137 val_ref,
7138 decoder,
7139 inner_offset,
7140 inner_depth
7141 )?;
7142 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7143 {
7144 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7145 }
7146 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7147 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7148 }
7149 }
7150
7151 next_offset += envelope_size;
7152 _next_ordinal_to_read += 1;
7153 if next_offset >= end_offset {
7154 return Ok(());
7155 }
7156
7157 while _next_ordinal_to_read < 3 {
7159 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7160 _next_ordinal_to_read += 1;
7161 next_offset += envelope_size;
7162 }
7163
7164 let next_out_of_line = decoder.next_out_of_line();
7165 let handles_before = decoder.remaining_handles();
7166 if let Some((inlined, num_bytes, num_handles)) =
7167 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7168 {
7169 let member_inline_size =
7170 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7171 if inlined != (member_inline_size <= 4) {
7172 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7173 }
7174 let inner_offset;
7175 let mut inner_depth = depth.clone();
7176 if inlined {
7177 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7178 inner_offset = next_offset;
7179 } else {
7180 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7181 inner_depth.increment()?;
7182 }
7183 let val_ref = self.association_id.get_or_insert_with(|| fidl::new_empty!(u16, D));
7184 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
7185 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7186 {
7187 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7188 }
7189 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7190 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7191 }
7192 }
7193
7194 next_offset += envelope_size;
7195 _next_ordinal_to_read += 1;
7196 if next_offset >= end_offset {
7197 return Ok(());
7198 }
7199
7200 while _next_ordinal_to_read < 4 {
7202 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7203 _next_ordinal_to_read += 1;
7204 next_offset += envelope_size;
7205 }
7206
7207 let next_out_of_line = decoder.next_out_of_line();
7208 let handles_before = decoder.remaining_handles();
7209 if let Some((inlined, num_bytes, num_handles)) =
7210 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7211 {
7212 let member_inline_size = <fidl::encoding::UnboundedVector<u8> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7213 if inlined != (member_inline_size <= 4) {
7214 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7215 }
7216 let inner_offset;
7217 let mut inner_depth = depth.clone();
7218 if inlined {
7219 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7220 inner_offset = next_offset;
7221 } else {
7222 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7223 inner_depth.increment()?;
7224 }
7225 let val_ref = self.association_ies.get_or_insert_with(|| {
7226 fidl::new_empty!(fidl::encoding::UnboundedVector<u8>, D)
7227 });
7228 fidl::decode!(
7229 fidl::encoding::UnboundedVector<u8>,
7230 D,
7231 val_ref,
7232 decoder,
7233 inner_offset,
7234 inner_depth
7235 )?;
7236 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7237 {
7238 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7239 }
7240 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7241 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7242 }
7243 }
7244
7245 next_offset += envelope_size;
7246
7247 while next_offset < end_offset {
7249 _next_ordinal_to_read += 1;
7250 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7251 next_offset += envelope_size;
7252 }
7253
7254 Ok(())
7255 }
7256 }
7257
7258 impl WlanFullmacImplIfcDeauthConfRequest {
7259 #[inline(always)]
7260 fn max_ordinal_present(&self) -> u64 {
7261 if let Some(_) = self.peer_sta_address {
7262 return 1;
7263 }
7264 0
7265 }
7266 }
7267
7268 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcDeauthConfRequest {
7269 type Borrowed<'a> = &'a Self;
7270 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
7271 value
7272 }
7273 }
7274
7275 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcDeauthConfRequest {
7276 type Owned = Self;
7277
7278 #[inline(always)]
7279 fn inline_align(_context: fidl::encoding::Context) -> usize {
7280 8
7281 }
7282
7283 #[inline(always)]
7284 fn inline_size(_context: fidl::encoding::Context) -> usize {
7285 16
7286 }
7287 }
7288
7289 unsafe impl<D: fidl::encoding::ResourceDialect>
7290 fidl::encoding::Encode<WlanFullmacImplIfcDeauthConfRequest, D>
7291 for &WlanFullmacImplIfcDeauthConfRequest
7292 {
7293 unsafe fn encode(
7294 self,
7295 encoder: &mut fidl::encoding::Encoder<'_, D>,
7296 offset: usize,
7297 mut depth: fidl::encoding::Depth,
7298 ) -> fidl::Result<()> {
7299 encoder.debug_check_bounds::<WlanFullmacImplIfcDeauthConfRequest>(offset);
7300 let max_ordinal: u64 = self.max_ordinal_present();
7302 encoder.write_num(max_ordinal, offset);
7303 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
7304 if max_ordinal == 0 {
7306 return Ok(());
7307 }
7308 depth.increment()?;
7309 let envelope_size = 8;
7310 let bytes_len = max_ordinal as usize * envelope_size;
7311 #[allow(unused_variables)]
7312 let offset = encoder.out_of_line_offset(bytes_len);
7313 let mut _prev_end_offset: usize = 0;
7314 if 1 > max_ordinal {
7315 return Ok(());
7316 }
7317
7318 let cur_offset: usize = (1 - 1) * envelope_size;
7321
7322 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7324
7325 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
7330 self.peer_sta_address
7331 .as_ref()
7332 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
7333 encoder,
7334 offset + cur_offset,
7335 depth,
7336 )?;
7337
7338 _prev_end_offset = cur_offset + envelope_size;
7339
7340 Ok(())
7341 }
7342 }
7343
7344 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
7345 for WlanFullmacImplIfcDeauthConfRequest
7346 {
7347 #[inline(always)]
7348 fn new_empty() -> Self {
7349 Self::default()
7350 }
7351
7352 unsafe fn decode(
7353 &mut self,
7354 decoder: &mut fidl::encoding::Decoder<'_, D>,
7355 offset: usize,
7356 mut depth: fidl::encoding::Depth,
7357 ) -> fidl::Result<()> {
7358 decoder.debug_check_bounds::<Self>(offset);
7359 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
7360 None => return Err(fidl::Error::NotNullable),
7361 Some(len) => len,
7362 };
7363 if len == 0 {
7365 return Ok(());
7366 };
7367 depth.increment()?;
7368 let envelope_size = 8;
7369 let bytes_len = len * envelope_size;
7370 let offset = decoder.out_of_line_offset(bytes_len)?;
7371 let mut _next_ordinal_to_read = 0;
7373 let mut next_offset = offset;
7374 let end_offset = offset + bytes_len;
7375 _next_ordinal_to_read += 1;
7376 if next_offset >= end_offset {
7377 return Ok(());
7378 }
7379
7380 while _next_ordinal_to_read < 1 {
7382 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7383 _next_ordinal_to_read += 1;
7384 next_offset += envelope_size;
7385 }
7386
7387 let next_out_of_line = decoder.next_out_of_line();
7388 let handles_before = decoder.remaining_handles();
7389 if let Some((inlined, num_bytes, num_handles)) =
7390 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7391 {
7392 let member_inline_size =
7393 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
7394 decoder.context,
7395 );
7396 if inlined != (member_inline_size <= 4) {
7397 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7398 }
7399 let inner_offset;
7400 let mut inner_depth = depth.clone();
7401 if inlined {
7402 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7403 inner_offset = next_offset;
7404 } else {
7405 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7406 inner_depth.increment()?;
7407 }
7408 let val_ref = self
7409 .peer_sta_address
7410 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
7411 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
7412 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7413 {
7414 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7415 }
7416 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7417 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7418 }
7419 }
7420
7421 next_offset += envelope_size;
7422
7423 while next_offset < end_offset {
7425 _next_ordinal_to_read += 1;
7426 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7427 next_offset += envelope_size;
7428 }
7429
7430 Ok(())
7431 }
7432 }
7433
7434 impl WlanFullmacImplIfcDeauthIndRequest {
7435 #[inline(always)]
7436 fn max_ordinal_present(&self) -> u64 {
7437 if let Some(_) = self.locally_initiated {
7438 return 3;
7439 }
7440 if let Some(_) = self.reason_code {
7441 return 2;
7442 }
7443 if let Some(_) = self.peer_sta_address {
7444 return 1;
7445 }
7446 0
7447 }
7448 }
7449
7450 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcDeauthIndRequest {
7451 type Borrowed<'a> = &'a Self;
7452 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
7453 value
7454 }
7455 }
7456
7457 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcDeauthIndRequest {
7458 type Owned = Self;
7459
7460 #[inline(always)]
7461 fn inline_align(_context: fidl::encoding::Context) -> usize {
7462 8
7463 }
7464
7465 #[inline(always)]
7466 fn inline_size(_context: fidl::encoding::Context) -> usize {
7467 16
7468 }
7469 }
7470
7471 unsafe impl<D: fidl::encoding::ResourceDialect>
7472 fidl::encoding::Encode<WlanFullmacImplIfcDeauthIndRequest, D>
7473 for &WlanFullmacImplIfcDeauthIndRequest
7474 {
7475 unsafe fn encode(
7476 self,
7477 encoder: &mut fidl::encoding::Encoder<'_, D>,
7478 offset: usize,
7479 mut depth: fidl::encoding::Depth,
7480 ) -> fidl::Result<()> {
7481 encoder.debug_check_bounds::<WlanFullmacImplIfcDeauthIndRequest>(offset);
7482 let max_ordinal: u64 = self.max_ordinal_present();
7484 encoder.write_num(max_ordinal, offset);
7485 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
7486 if max_ordinal == 0 {
7488 return Ok(());
7489 }
7490 depth.increment()?;
7491 let envelope_size = 8;
7492 let bytes_len = max_ordinal as usize * envelope_size;
7493 #[allow(unused_variables)]
7494 let offset = encoder.out_of_line_offset(bytes_len);
7495 let mut _prev_end_offset: usize = 0;
7496 if 1 > max_ordinal {
7497 return Ok(());
7498 }
7499
7500 let cur_offset: usize = (1 - 1) * envelope_size;
7503
7504 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7506
7507 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
7512 self.peer_sta_address
7513 .as_ref()
7514 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
7515 encoder,
7516 offset + cur_offset,
7517 depth,
7518 )?;
7519
7520 _prev_end_offset = cur_offset + envelope_size;
7521 if 2 > max_ordinal {
7522 return Ok(());
7523 }
7524
7525 let cur_offset: usize = (2 - 1) * envelope_size;
7528
7529 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7531
7532 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_ieee80211_common::ReasonCode, D>(
7537 self.reason_code.as_ref().map(<fidl_fuchsia_wlan_ieee80211_common::ReasonCode as fidl::encoding::ValueTypeMarker>::borrow),
7538 encoder, offset + cur_offset, depth
7539 )?;
7540
7541 _prev_end_offset = cur_offset + envelope_size;
7542 if 3 > max_ordinal {
7543 return Ok(());
7544 }
7545
7546 let cur_offset: usize = (3 - 1) * envelope_size;
7549
7550 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7552
7553 fidl::encoding::encode_in_envelope_optional::<bool, D>(
7558 self.locally_initiated
7559 .as_ref()
7560 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
7561 encoder,
7562 offset + cur_offset,
7563 depth,
7564 )?;
7565
7566 _prev_end_offset = cur_offset + envelope_size;
7567
7568 Ok(())
7569 }
7570 }
7571
7572 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
7573 for WlanFullmacImplIfcDeauthIndRequest
7574 {
7575 #[inline(always)]
7576 fn new_empty() -> Self {
7577 Self::default()
7578 }
7579
7580 unsafe fn decode(
7581 &mut self,
7582 decoder: &mut fidl::encoding::Decoder<'_, D>,
7583 offset: usize,
7584 mut depth: fidl::encoding::Depth,
7585 ) -> fidl::Result<()> {
7586 decoder.debug_check_bounds::<Self>(offset);
7587 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
7588 None => return Err(fidl::Error::NotNullable),
7589 Some(len) => len,
7590 };
7591 if len == 0 {
7593 return Ok(());
7594 };
7595 depth.increment()?;
7596 let envelope_size = 8;
7597 let bytes_len = len * envelope_size;
7598 let offset = decoder.out_of_line_offset(bytes_len)?;
7599 let mut _next_ordinal_to_read = 0;
7601 let mut next_offset = offset;
7602 let end_offset = offset + bytes_len;
7603 _next_ordinal_to_read += 1;
7604 if next_offset >= end_offset {
7605 return Ok(());
7606 }
7607
7608 while _next_ordinal_to_read < 1 {
7610 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7611 _next_ordinal_to_read += 1;
7612 next_offset += envelope_size;
7613 }
7614
7615 let next_out_of_line = decoder.next_out_of_line();
7616 let handles_before = decoder.remaining_handles();
7617 if let Some((inlined, num_bytes, num_handles)) =
7618 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7619 {
7620 let member_inline_size =
7621 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
7622 decoder.context,
7623 );
7624 if inlined != (member_inline_size <= 4) {
7625 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7626 }
7627 let inner_offset;
7628 let mut inner_depth = depth.clone();
7629 if inlined {
7630 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7631 inner_offset = next_offset;
7632 } else {
7633 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7634 inner_depth.increment()?;
7635 }
7636 let val_ref = self
7637 .peer_sta_address
7638 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
7639 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
7640 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7641 {
7642 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7643 }
7644 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7645 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7646 }
7647 }
7648
7649 next_offset += envelope_size;
7650 _next_ordinal_to_read += 1;
7651 if next_offset >= end_offset {
7652 return Ok(());
7653 }
7654
7655 while _next_ordinal_to_read < 2 {
7657 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7658 _next_ordinal_to_read += 1;
7659 next_offset += envelope_size;
7660 }
7661
7662 let next_out_of_line = decoder.next_out_of_line();
7663 let handles_before = decoder.remaining_handles();
7664 if let Some((inlined, num_bytes, num_handles)) =
7665 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7666 {
7667 let member_inline_size = <fidl_fuchsia_wlan_ieee80211_common::ReasonCode as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7668 if inlined != (member_inline_size <= 4) {
7669 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7670 }
7671 let inner_offset;
7672 let mut inner_depth = depth.clone();
7673 if inlined {
7674 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7675 inner_offset = next_offset;
7676 } else {
7677 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7678 inner_depth.increment()?;
7679 }
7680 let val_ref = self.reason_code.get_or_insert_with(|| {
7681 fidl::new_empty!(fidl_fuchsia_wlan_ieee80211_common::ReasonCode, D)
7682 });
7683 fidl::decode!(
7684 fidl_fuchsia_wlan_ieee80211_common::ReasonCode,
7685 D,
7686 val_ref,
7687 decoder,
7688 inner_offset,
7689 inner_depth
7690 )?;
7691 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7692 {
7693 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7694 }
7695 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7696 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7697 }
7698 }
7699
7700 next_offset += envelope_size;
7701 _next_ordinal_to_read += 1;
7702 if next_offset >= end_offset {
7703 return Ok(());
7704 }
7705
7706 while _next_ordinal_to_read < 3 {
7708 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7709 _next_ordinal_to_read += 1;
7710 next_offset += envelope_size;
7711 }
7712
7713 let next_out_of_line = decoder.next_out_of_line();
7714 let handles_before = decoder.remaining_handles();
7715 if let Some((inlined, num_bytes, num_handles)) =
7716 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7717 {
7718 let member_inline_size =
7719 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7720 if inlined != (member_inline_size <= 4) {
7721 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7722 }
7723 let inner_offset;
7724 let mut inner_depth = depth.clone();
7725 if inlined {
7726 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7727 inner_offset = next_offset;
7728 } else {
7729 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7730 inner_depth.increment()?;
7731 }
7732 let val_ref =
7733 self.locally_initiated.get_or_insert_with(|| fidl::new_empty!(bool, D));
7734 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
7735 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7736 {
7737 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7738 }
7739 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7740 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7741 }
7742 }
7743
7744 next_offset += envelope_size;
7745
7746 while next_offset < end_offset {
7748 _next_ordinal_to_read += 1;
7749 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7750 next_offset += envelope_size;
7751 }
7752
7753 Ok(())
7754 }
7755 }
7756
7757 impl WlanFullmacImplIfcDisassocConfRequest {
7758 #[inline(always)]
7759 fn max_ordinal_present(&self) -> u64 {
7760 if let Some(_) = self.status {
7761 return 1;
7762 }
7763 0
7764 }
7765 }
7766
7767 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcDisassocConfRequest {
7768 type Borrowed<'a> = &'a Self;
7769 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
7770 value
7771 }
7772 }
7773
7774 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcDisassocConfRequest {
7775 type Owned = Self;
7776
7777 #[inline(always)]
7778 fn inline_align(_context: fidl::encoding::Context) -> usize {
7779 8
7780 }
7781
7782 #[inline(always)]
7783 fn inline_size(_context: fidl::encoding::Context) -> usize {
7784 16
7785 }
7786 }
7787
7788 unsafe impl<D: fidl::encoding::ResourceDialect>
7789 fidl::encoding::Encode<WlanFullmacImplIfcDisassocConfRequest, D>
7790 for &WlanFullmacImplIfcDisassocConfRequest
7791 {
7792 unsafe fn encode(
7793 self,
7794 encoder: &mut fidl::encoding::Encoder<'_, D>,
7795 offset: usize,
7796 mut depth: fidl::encoding::Depth,
7797 ) -> fidl::Result<()> {
7798 encoder.debug_check_bounds::<WlanFullmacImplIfcDisassocConfRequest>(offset);
7799 let max_ordinal: u64 = self.max_ordinal_present();
7801 encoder.write_num(max_ordinal, offset);
7802 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
7803 if max_ordinal == 0 {
7805 return Ok(());
7806 }
7807 depth.increment()?;
7808 let envelope_size = 8;
7809 let bytes_len = max_ordinal as usize * envelope_size;
7810 #[allow(unused_variables)]
7811 let offset = encoder.out_of_line_offset(bytes_len);
7812 let mut _prev_end_offset: usize = 0;
7813 if 1 > max_ordinal {
7814 return Ok(());
7815 }
7816
7817 let cur_offset: usize = (1 - 1) * envelope_size;
7820
7821 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7823
7824 fidl::encoding::encode_in_envelope_optional::<i32, D>(
7829 self.status.as_ref().map(<i32 as fidl::encoding::ValueTypeMarker>::borrow),
7830 encoder,
7831 offset + cur_offset,
7832 depth,
7833 )?;
7834
7835 _prev_end_offset = cur_offset + envelope_size;
7836
7837 Ok(())
7838 }
7839 }
7840
7841 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
7842 for WlanFullmacImplIfcDisassocConfRequest
7843 {
7844 #[inline(always)]
7845 fn new_empty() -> Self {
7846 Self::default()
7847 }
7848
7849 unsafe fn decode(
7850 &mut self,
7851 decoder: &mut fidl::encoding::Decoder<'_, D>,
7852 offset: usize,
7853 mut depth: fidl::encoding::Depth,
7854 ) -> fidl::Result<()> {
7855 decoder.debug_check_bounds::<Self>(offset);
7856 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
7857 None => return Err(fidl::Error::NotNullable),
7858 Some(len) => len,
7859 };
7860 if len == 0 {
7862 return Ok(());
7863 };
7864 depth.increment()?;
7865 let envelope_size = 8;
7866 let bytes_len = len * envelope_size;
7867 let offset = decoder.out_of_line_offset(bytes_len)?;
7868 let mut _next_ordinal_to_read = 0;
7870 let mut next_offset = offset;
7871 let end_offset = offset + bytes_len;
7872 _next_ordinal_to_read += 1;
7873 if next_offset >= end_offset {
7874 return Ok(());
7875 }
7876
7877 while _next_ordinal_to_read < 1 {
7879 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7880 _next_ordinal_to_read += 1;
7881 next_offset += envelope_size;
7882 }
7883
7884 let next_out_of_line = decoder.next_out_of_line();
7885 let handles_before = decoder.remaining_handles();
7886 if let Some((inlined, num_bytes, num_handles)) =
7887 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7888 {
7889 let member_inline_size =
7890 <i32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7891 if inlined != (member_inline_size <= 4) {
7892 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7893 }
7894 let inner_offset;
7895 let mut inner_depth = depth.clone();
7896 if inlined {
7897 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7898 inner_offset = next_offset;
7899 } else {
7900 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7901 inner_depth.increment()?;
7902 }
7903 let val_ref = self.status.get_or_insert_with(|| fidl::new_empty!(i32, D));
7904 fidl::decode!(i32, D, val_ref, decoder, inner_offset, inner_depth)?;
7905 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7906 {
7907 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7908 }
7909 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7910 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7911 }
7912 }
7913
7914 next_offset += envelope_size;
7915
7916 while next_offset < end_offset {
7918 _next_ordinal_to_read += 1;
7919 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7920 next_offset += envelope_size;
7921 }
7922
7923 Ok(())
7924 }
7925 }
7926
7927 impl WlanFullmacImplIfcDisassocIndRequest {
7928 #[inline(always)]
7929 fn max_ordinal_present(&self) -> u64 {
7930 if let Some(_) = self.locally_initiated {
7931 return 3;
7932 }
7933 if let Some(_) = self.reason_code {
7934 return 2;
7935 }
7936 if let Some(_) = self.peer_sta_address {
7937 return 1;
7938 }
7939 0
7940 }
7941 }
7942
7943 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcDisassocIndRequest {
7944 type Borrowed<'a> = &'a Self;
7945 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
7946 value
7947 }
7948 }
7949
7950 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcDisassocIndRequest {
7951 type Owned = Self;
7952
7953 #[inline(always)]
7954 fn inline_align(_context: fidl::encoding::Context) -> usize {
7955 8
7956 }
7957
7958 #[inline(always)]
7959 fn inline_size(_context: fidl::encoding::Context) -> usize {
7960 16
7961 }
7962 }
7963
7964 unsafe impl<D: fidl::encoding::ResourceDialect>
7965 fidl::encoding::Encode<WlanFullmacImplIfcDisassocIndRequest, D>
7966 for &WlanFullmacImplIfcDisassocIndRequest
7967 {
7968 unsafe fn encode(
7969 self,
7970 encoder: &mut fidl::encoding::Encoder<'_, D>,
7971 offset: usize,
7972 mut depth: fidl::encoding::Depth,
7973 ) -> fidl::Result<()> {
7974 encoder.debug_check_bounds::<WlanFullmacImplIfcDisassocIndRequest>(offset);
7975 let max_ordinal: u64 = self.max_ordinal_present();
7977 encoder.write_num(max_ordinal, offset);
7978 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
7979 if max_ordinal == 0 {
7981 return Ok(());
7982 }
7983 depth.increment()?;
7984 let envelope_size = 8;
7985 let bytes_len = max_ordinal as usize * envelope_size;
7986 #[allow(unused_variables)]
7987 let offset = encoder.out_of_line_offset(bytes_len);
7988 let mut _prev_end_offset: usize = 0;
7989 if 1 > max_ordinal {
7990 return Ok(());
7991 }
7992
7993 let cur_offset: usize = (1 - 1) * envelope_size;
7996
7997 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7999
8000 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
8005 self.peer_sta_address
8006 .as_ref()
8007 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
8008 encoder,
8009 offset + cur_offset,
8010 depth,
8011 )?;
8012
8013 _prev_end_offset = cur_offset + envelope_size;
8014 if 2 > max_ordinal {
8015 return Ok(());
8016 }
8017
8018 let cur_offset: usize = (2 - 1) * envelope_size;
8021
8022 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8024
8025 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_ieee80211_common::ReasonCode, D>(
8030 self.reason_code.as_ref().map(<fidl_fuchsia_wlan_ieee80211_common::ReasonCode as fidl::encoding::ValueTypeMarker>::borrow),
8031 encoder, offset + cur_offset, depth
8032 )?;
8033
8034 _prev_end_offset = cur_offset + envelope_size;
8035 if 3 > max_ordinal {
8036 return Ok(());
8037 }
8038
8039 let cur_offset: usize = (3 - 1) * envelope_size;
8042
8043 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8045
8046 fidl::encoding::encode_in_envelope_optional::<bool, D>(
8051 self.locally_initiated
8052 .as_ref()
8053 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
8054 encoder,
8055 offset + cur_offset,
8056 depth,
8057 )?;
8058
8059 _prev_end_offset = cur_offset + envelope_size;
8060
8061 Ok(())
8062 }
8063 }
8064
8065 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
8066 for WlanFullmacImplIfcDisassocIndRequest
8067 {
8068 #[inline(always)]
8069 fn new_empty() -> Self {
8070 Self::default()
8071 }
8072
8073 unsafe fn decode(
8074 &mut self,
8075 decoder: &mut fidl::encoding::Decoder<'_, D>,
8076 offset: usize,
8077 mut depth: fidl::encoding::Depth,
8078 ) -> fidl::Result<()> {
8079 decoder.debug_check_bounds::<Self>(offset);
8080 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
8081 None => return Err(fidl::Error::NotNullable),
8082 Some(len) => len,
8083 };
8084 if len == 0 {
8086 return Ok(());
8087 };
8088 depth.increment()?;
8089 let envelope_size = 8;
8090 let bytes_len = len * envelope_size;
8091 let offset = decoder.out_of_line_offset(bytes_len)?;
8092 let mut _next_ordinal_to_read = 0;
8094 let mut next_offset = offset;
8095 let end_offset = offset + bytes_len;
8096 _next_ordinal_to_read += 1;
8097 if next_offset >= end_offset {
8098 return Ok(());
8099 }
8100
8101 while _next_ordinal_to_read < 1 {
8103 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8104 _next_ordinal_to_read += 1;
8105 next_offset += envelope_size;
8106 }
8107
8108 let next_out_of_line = decoder.next_out_of_line();
8109 let handles_before = decoder.remaining_handles();
8110 if let Some((inlined, num_bytes, num_handles)) =
8111 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8112 {
8113 let member_inline_size =
8114 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
8115 decoder.context,
8116 );
8117 if inlined != (member_inline_size <= 4) {
8118 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8119 }
8120 let inner_offset;
8121 let mut inner_depth = depth.clone();
8122 if inlined {
8123 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8124 inner_offset = next_offset;
8125 } else {
8126 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8127 inner_depth.increment()?;
8128 }
8129 let val_ref = self
8130 .peer_sta_address
8131 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
8132 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
8133 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8134 {
8135 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8136 }
8137 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8138 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8139 }
8140 }
8141
8142 next_offset += envelope_size;
8143 _next_ordinal_to_read += 1;
8144 if next_offset >= end_offset {
8145 return Ok(());
8146 }
8147
8148 while _next_ordinal_to_read < 2 {
8150 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8151 _next_ordinal_to_read += 1;
8152 next_offset += envelope_size;
8153 }
8154
8155 let next_out_of_line = decoder.next_out_of_line();
8156 let handles_before = decoder.remaining_handles();
8157 if let Some((inlined, num_bytes, num_handles)) =
8158 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8159 {
8160 let member_inline_size = <fidl_fuchsia_wlan_ieee80211_common::ReasonCode as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8161 if inlined != (member_inline_size <= 4) {
8162 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8163 }
8164 let inner_offset;
8165 let mut inner_depth = depth.clone();
8166 if inlined {
8167 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8168 inner_offset = next_offset;
8169 } else {
8170 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8171 inner_depth.increment()?;
8172 }
8173 let val_ref = self.reason_code.get_or_insert_with(|| {
8174 fidl::new_empty!(fidl_fuchsia_wlan_ieee80211_common::ReasonCode, D)
8175 });
8176 fidl::decode!(
8177 fidl_fuchsia_wlan_ieee80211_common::ReasonCode,
8178 D,
8179 val_ref,
8180 decoder,
8181 inner_offset,
8182 inner_depth
8183 )?;
8184 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8185 {
8186 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8187 }
8188 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8189 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8190 }
8191 }
8192
8193 next_offset += envelope_size;
8194 _next_ordinal_to_read += 1;
8195 if next_offset >= end_offset {
8196 return Ok(());
8197 }
8198
8199 while _next_ordinal_to_read < 3 {
8201 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8202 _next_ordinal_to_read += 1;
8203 next_offset += envelope_size;
8204 }
8205
8206 let next_out_of_line = decoder.next_out_of_line();
8207 let handles_before = decoder.remaining_handles();
8208 if let Some((inlined, num_bytes, num_handles)) =
8209 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8210 {
8211 let member_inline_size =
8212 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8213 if inlined != (member_inline_size <= 4) {
8214 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8215 }
8216 let inner_offset;
8217 let mut inner_depth = depth.clone();
8218 if inlined {
8219 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8220 inner_offset = next_offset;
8221 } else {
8222 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8223 inner_depth.increment()?;
8224 }
8225 let val_ref =
8226 self.locally_initiated.get_or_insert_with(|| fidl::new_empty!(bool, D));
8227 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
8228 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8229 {
8230 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8231 }
8232 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8233 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8234 }
8235 }
8236
8237 next_offset += envelope_size;
8238
8239 while next_offset < end_offset {
8241 _next_ordinal_to_read += 1;
8242 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8243 next_offset += envelope_size;
8244 }
8245
8246 Ok(())
8247 }
8248 }
8249
8250 impl WlanFullmacImplIfcEapolConfRequest {
8251 #[inline(always)]
8252 fn max_ordinal_present(&self) -> u64 {
8253 if let Some(_) = self.dst_addr {
8254 return 2;
8255 }
8256 if let Some(_) = self.result_code {
8257 return 1;
8258 }
8259 0
8260 }
8261 }
8262
8263 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcEapolConfRequest {
8264 type Borrowed<'a> = &'a Self;
8265 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
8266 value
8267 }
8268 }
8269
8270 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcEapolConfRequest {
8271 type Owned = Self;
8272
8273 #[inline(always)]
8274 fn inline_align(_context: fidl::encoding::Context) -> usize {
8275 8
8276 }
8277
8278 #[inline(always)]
8279 fn inline_size(_context: fidl::encoding::Context) -> usize {
8280 16
8281 }
8282 }
8283
8284 unsafe impl<D: fidl::encoding::ResourceDialect>
8285 fidl::encoding::Encode<WlanFullmacImplIfcEapolConfRequest, D>
8286 for &WlanFullmacImplIfcEapolConfRequest
8287 {
8288 unsafe fn encode(
8289 self,
8290 encoder: &mut fidl::encoding::Encoder<'_, D>,
8291 offset: usize,
8292 mut depth: fidl::encoding::Depth,
8293 ) -> fidl::Result<()> {
8294 encoder.debug_check_bounds::<WlanFullmacImplIfcEapolConfRequest>(offset);
8295 let max_ordinal: u64 = self.max_ordinal_present();
8297 encoder.write_num(max_ordinal, offset);
8298 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
8299 if max_ordinal == 0 {
8301 return Ok(());
8302 }
8303 depth.increment()?;
8304 let envelope_size = 8;
8305 let bytes_len = max_ordinal as usize * envelope_size;
8306 #[allow(unused_variables)]
8307 let offset = encoder.out_of_line_offset(bytes_len);
8308 let mut _prev_end_offset: usize = 0;
8309 if 1 > max_ordinal {
8310 return Ok(());
8311 }
8312
8313 let cur_offset: usize = (1 - 1) * envelope_size;
8316
8317 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8319
8320 fidl::encoding::encode_in_envelope_optional::<EapolTxResult, D>(
8325 self.result_code
8326 .as_ref()
8327 .map(<EapolTxResult as fidl::encoding::ValueTypeMarker>::borrow),
8328 encoder,
8329 offset + cur_offset,
8330 depth,
8331 )?;
8332
8333 _prev_end_offset = cur_offset + envelope_size;
8334 if 2 > max_ordinal {
8335 return Ok(());
8336 }
8337
8338 let cur_offset: usize = (2 - 1) * envelope_size;
8341
8342 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8344
8345 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
8350 self.dst_addr
8351 .as_ref()
8352 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
8353 encoder,
8354 offset + cur_offset,
8355 depth,
8356 )?;
8357
8358 _prev_end_offset = cur_offset + envelope_size;
8359
8360 Ok(())
8361 }
8362 }
8363
8364 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
8365 for WlanFullmacImplIfcEapolConfRequest
8366 {
8367 #[inline(always)]
8368 fn new_empty() -> Self {
8369 Self::default()
8370 }
8371
8372 unsafe fn decode(
8373 &mut self,
8374 decoder: &mut fidl::encoding::Decoder<'_, D>,
8375 offset: usize,
8376 mut depth: fidl::encoding::Depth,
8377 ) -> fidl::Result<()> {
8378 decoder.debug_check_bounds::<Self>(offset);
8379 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
8380 None => return Err(fidl::Error::NotNullable),
8381 Some(len) => len,
8382 };
8383 if len == 0 {
8385 return Ok(());
8386 };
8387 depth.increment()?;
8388 let envelope_size = 8;
8389 let bytes_len = len * envelope_size;
8390 let offset = decoder.out_of_line_offset(bytes_len)?;
8391 let mut _next_ordinal_to_read = 0;
8393 let mut next_offset = offset;
8394 let end_offset = offset + bytes_len;
8395 _next_ordinal_to_read += 1;
8396 if next_offset >= end_offset {
8397 return Ok(());
8398 }
8399
8400 while _next_ordinal_to_read < 1 {
8402 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8403 _next_ordinal_to_read += 1;
8404 next_offset += envelope_size;
8405 }
8406
8407 let next_out_of_line = decoder.next_out_of_line();
8408 let handles_before = decoder.remaining_handles();
8409 if let Some((inlined, num_bytes, num_handles)) =
8410 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8411 {
8412 let member_inline_size =
8413 <EapolTxResult as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8414 if inlined != (member_inline_size <= 4) {
8415 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8416 }
8417 let inner_offset;
8418 let mut inner_depth = depth.clone();
8419 if inlined {
8420 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8421 inner_offset = next_offset;
8422 } else {
8423 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8424 inner_depth.increment()?;
8425 }
8426 let val_ref =
8427 self.result_code.get_or_insert_with(|| fidl::new_empty!(EapolTxResult, D));
8428 fidl::decode!(EapolTxResult, D, val_ref, decoder, inner_offset, inner_depth)?;
8429 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8430 {
8431 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8432 }
8433 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8434 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8435 }
8436 }
8437
8438 next_offset += envelope_size;
8439 _next_ordinal_to_read += 1;
8440 if next_offset >= end_offset {
8441 return Ok(());
8442 }
8443
8444 while _next_ordinal_to_read < 2 {
8446 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8447 _next_ordinal_to_read += 1;
8448 next_offset += envelope_size;
8449 }
8450
8451 let next_out_of_line = decoder.next_out_of_line();
8452 let handles_before = decoder.remaining_handles();
8453 if let Some((inlined, num_bytes, num_handles)) =
8454 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8455 {
8456 let member_inline_size =
8457 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
8458 decoder.context,
8459 );
8460 if inlined != (member_inline_size <= 4) {
8461 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8462 }
8463 let inner_offset;
8464 let mut inner_depth = depth.clone();
8465 if inlined {
8466 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8467 inner_offset = next_offset;
8468 } else {
8469 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8470 inner_depth.increment()?;
8471 }
8472 let val_ref = self
8473 .dst_addr
8474 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
8475 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
8476 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8477 {
8478 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8479 }
8480 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8481 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8482 }
8483 }
8484
8485 next_offset += envelope_size;
8486
8487 while next_offset < end_offset {
8489 _next_ordinal_to_read += 1;
8490 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8491 next_offset += envelope_size;
8492 }
8493
8494 Ok(())
8495 }
8496 }
8497
8498 impl WlanFullmacImplIfcEapolIndRequest {
8499 #[inline(always)]
8500 fn max_ordinal_present(&self) -> u64 {
8501 if let Some(_) = self.data {
8502 return 3;
8503 }
8504 if let Some(_) = self.dst_addr {
8505 return 2;
8506 }
8507 if let Some(_) = self.src_addr {
8508 return 1;
8509 }
8510 0
8511 }
8512 }
8513
8514 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcEapolIndRequest {
8515 type Borrowed<'a> = &'a Self;
8516 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
8517 value
8518 }
8519 }
8520
8521 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcEapolIndRequest {
8522 type Owned = Self;
8523
8524 #[inline(always)]
8525 fn inline_align(_context: fidl::encoding::Context) -> usize {
8526 8
8527 }
8528
8529 #[inline(always)]
8530 fn inline_size(_context: fidl::encoding::Context) -> usize {
8531 16
8532 }
8533 }
8534
8535 unsafe impl<D: fidl::encoding::ResourceDialect>
8536 fidl::encoding::Encode<WlanFullmacImplIfcEapolIndRequest, D>
8537 for &WlanFullmacImplIfcEapolIndRequest
8538 {
8539 unsafe fn encode(
8540 self,
8541 encoder: &mut fidl::encoding::Encoder<'_, D>,
8542 offset: usize,
8543 mut depth: fidl::encoding::Depth,
8544 ) -> fidl::Result<()> {
8545 encoder.debug_check_bounds::<WlanFullmacImplIfcEapolIndRequest>(offset);
8546 let max_ordinal: u64 = self.max_ordinal_present();
8548 encoder.write_num(max_ordinal, offset);
8549 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
8550 if max_ordinal == 0 {
8552 return Ok(());
8553 }
8554 depth.increment()?;
8555 let envelope_size = 8;
8556 let bytes_len = max_ordinal as usize * envelope_size;
8557 #[allow(unused_variables)]
8558 let offset = encoder.out_of_line_offset(bytes_len);
8559 let mut _prev_end_offset: usize = 0;
8560 if 1 > max_ordinal {
8561 return Ok(());
8562 }
8563
8564 let cur_offset: usize = (1 - 1) * envelope_size;
8567
8568 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8570
8571 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
8576 self.src_addr
8577 .as_ref()
8578 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
8579 encoder,
8580 offset + cur_offset,
8581 depth,
8582 )?;
8583
8584 _prev_end_offset = cur_offset + envelope_size;
8585 if 2 > max_ordinal {
8586 return Ok(());
8587 }
8588
8589 let cur_offset: usize = (2 - 1) * envelope_size;
8592
8593 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8595
8596 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
8601 self.dst_addr
8602 .as_ref()
8603 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
8604 encoder,
8605 offset + cur_offset,
8606 depth,
8607 )?;
8608
8609 _prev_end_offset = cur_offset + envelope_size;
8610 if 3 > max_ordinal {
8611 return Ok(());
8612 }
8613
8614 let cur_offset: usize = (3 - 1) * envelope_size;
8617
8618 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8620
8621 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<u8>, D>(
8626 self.data.as_ref().map(<fidl::encoding::UnboundedVector<u8> as fidl::encoding::ValueTypeMarker>::borrow),
8627 encoder, offset + cur_offset, depth
8628 )?;
8629
8630 _prev_end_offset = cur_offset + envelope_size;
8631
8632 Ok(())
8633 }
8634 }
8635
8636 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
8637 for WlanFullmacImplIfcEapolIndRequest
8638 {
8639 #[inline(always)]
8640 fn new_empty() -> Self {
8641 Self::default()
8642 }
8643
8644 unsafe fn decode(
8645 &mut self,
8646 decoder: &mut fidl::encoding::Decoder<'_, D>,
8647 offset: usize,
8648 mut depth: fidl::encoding::Depth,
8649 ) -> fidl::Result<()> {
8650 decoder.debug_check_bounds::<Self>(offset);
8651 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
8652 None => return Err(fidl::Error::NotNullable),
8653 Some(len) => len,
8654 };
8655 if len == 0 {
8657 return Ok(());
8658 };
8659 depth.increment()?;
8660 let envelope_size = 8;
8661 let bytes_len = len * envelope_size;
8662 let offset = decoder.out_of_line_offset(bytes_len)?;
8663 let mut _next_ordinal_to_read = 0;
8665 let mut next_offset = offset;
8666 let end_offset = offset + bytes_len;
8667 _next_ordinal_to_read += 1;
8668 if next_offset >= end_offset {
8669 return Ok(());
8670 }
8671
8672 while _next_ordinal_to_read < 1 {
8674 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8675 _next_ordinal_to_read += 1;
8676 next_offset += envelope_size;
8677 }
8678
8679 let next_out_of_line = decoder.next_out_of_line();
8680 let handles_before = decoder.remaining_handles();
8681 if let Some((inlined, num_bytes, num_handles)) =
8682 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8683 {
8684 let member_inline_size =
8685 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
8686 decoder.context,
8687 );
8688 if inlined != (member_inline_size <= 4) {
8689 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8690 }
8691 let inner_offset;
8692 let mut inner_depth = depth.clone();
8693 if inlined {
8694 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8695 inner_offset = next_offset;
8696 } else {
8697 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8698 inner_depth.increment()?;
8699 }
8700 let val_ref = self
8701 .src_addr
8702 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
8703 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
8704 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8705 {
8706 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8707 }
8708 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8709 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8710 }
8711 }
8712
8713 next_offset += envelope_size;
8714 _next_ordinal_to_read += 1;
8715 if next_offset >= end_offset {
8716 return Ok(());
8717 }
8718
8719 while _next_ordinal_to_read < 2 {
8721 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8722 _next_ordinal_to_read += 1;
8723 next_offset += envelope_size;
8724 }
8725
8726 let next_out_of_line = decoder.next_out_of_line();
8727 let handles_before = decoder.remaining_handles();
8728 if let Some((inlined, num_bytes, num_handles)) =
8729 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8730 {
8731 let member_inline_size =
8732 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
8733 decoder.context,
8734 );
8735 if inlined != (member_inline_size <= 4) {
8736 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8737 }
8738 let inner_offset;
8739 let mut inner_depth = depth.clone();
8740 if inlined {
8741 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8742 inner_offset = next_offset;
8743 } else {
8744 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8745 inner_depth.increment()?;
8746 }
8747 let val_ref = self
8748 .dst_addr
8749 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
8750 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
8751 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8752 {
8753 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8754 }
8755 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8756 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8757 }
8758 }
8759
8760 next_offset += envelope_size;
8761 _next_ordinal_to_read += 1;
8762 if next_offset >= end_offset {
8763 return Ok(());
8764 }
8765
8766 while _next_ordinal_to_read < 3 {
8768 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8769 _next_ordinal_to_read += 1;
8770 next_offset += envelope_size;
8771 }
8772
8773 let next_out_of_line = decoder.next_out_of_line();
8774 let handles_before = decoder.remaining_handles();
8775 if let Some((inlined, num_bytes, num_handles)) =
8776 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8777 {
8778 let member_inline_size = <fidl::encoding::UnboundedVector<u8> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8779 if inlined != (member_inline_size <= 4) {
8780 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8781 }
8782 let inner_offset;
8783 let mut inner_depth = depth.clone();
8784 if inlined {
8785 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8786 inner_offset = next_offset;
8787 } else {
8788 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8789 inner_depth.increment()?;
8790 }
8791 let val_ref = self.data.get_or_insert_with(|| {
8792 fidl::new_empty!(fidl::encoding::UnboundedVector<u8>, D)
8793 });
8794 fidl::decode!(
8795 fidl::encoding::UnboundedVector<u8>,
8796 D,
8797 val_ref,
8798 decoder,
8799 inner_offset,
8800 inner_depth
8801 )?;
8802 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8803 {
8804 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8805 }
8806 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8807 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8808 }
8809 }
8810
8811 next_offset += envelope_size;
8812
8813 while next_offset < end_offset {
8815 _next_ordinal_to_read += 1;
8816 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8817 next_offset += envelope_size;
8818 }
8819
8820 Ok(())
8821 }
8822 }
8823
8824 impl WlanFullmacImplIfcOnPmkAvailableRequest {
8825 #[inline(always)]
8826 fn max_ordinal_present(&self) -> u64 {
8827 if let Some(_) = self.pmkid {
8828 return 2;
8829 }
8830 if let Some(_) = self.pmk {
8831 return 1;
8832 }
8833 0
8834 }
8835 }
8836
8837 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcOnPmkAvailableRequest {
8838 type Borrowed<'a> = &'a Self;
8839 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
8840 value
8841 }
8842 }
8843
8844 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcOnPmkAvailableRequest {
8845 type Owned = Self;
8846
8847 #[inline(always)]
8848 fn inline_align(_context: fidl::encoding::Context) -> usize {
8849 8
8850 }
8851
8852 #[inline(always)]
8853 fn inline_size(_context: fidl::encoding::Context) -> usize {
8854 16
8855 }
8856 }
8857
8858 unsafe impl<D: fidl::encoding::ResourceDialect>
8859 fidl::encoding::Encode<WlanFullmacImplIfcOnPmkAvailableRequest, D>
8860 for &WlanFullmacImplIfcOnPmkAvailableRequest
8861 {
8862 unsafe fn encode(
8863 self,
8864 encoder: &mut fidl::encoding::Encoder<'_, D>,
8865 offset: usize,
8866 mut depth: fidl::encoding::Depth,
8867 ) -> fidl::Result<()> {
8868 encoder.debug_check_bounds::<WlanFullmacImplIfcOnPmkAvailableRequest>(offset);
8869 let max_ordinal: u64 = self.max_ordinal_present();
8871 encoder.write_num(max_ordinal, offset);
8872 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
8873 if max_ordinal == 0 {
8875 return Ok(());
8876 }
8877 depth.increment()?;
8878 let envelope_size = 8;
8879 let bytes_len = max_ordinal as usize * envelope_size;
8880 #[allow(unused_variables)]
8881 let offset = encoder.out_of_line_offset(bytes_len);
8882 let mut _prev_end_offset: usize = 0;
8883 if 1 > max_ordinal {
8884 return Ok(());
8885 }
8886
8887 let cur_offset: usize = (1 - 1) * envelope_size;
8890
8891 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8893
8894 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<u8>, D>(
8899 self.pmk.as_ref().map(<fidl::encoding::UnboundedVector<u8> as fidl::encoding::ValueTypeMarker>::borrow),
8900 encoder, offset + cur_offset, depth
8901 )?;
8902
8903 _prev_end_offset = cur_offset + envelope_size;
8904 if 2 > max_ordinal {
8905 return Ok(());
8906 }
8907
8908 let cur_offset: usize = (2 - 1) * envelope_size;
8911
8912 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8914
8915 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<u8>, D>(
8920 self.pmkid.as_ref().map(<fidl::encoding::UnboundedVector<u8> as fidl::encoding::ValueTypeMarker>::borrow),
8921 encoder, offset + cur_offset, depth
8922 )?;
8923
8924 _prev_end_offset = cur_offset + envelope_size;
8925
8926 Ok(())
8927 }
8928 }
8929
8930 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
8931 for WlanFullmacImplIfcOnPmkAvailableRequest
8932 {
8933 #[inline(always)]
8934 fn new_empty() -> Self {
8935 Self::default()
8936 }
8937
8938 unsafe fn decode(
8939 &mut self,
8940 decoder: &mut fidl::encoding::Decoder<'_, D>,
8941 offset: usize,
8942 mut depth: fidl::encoding::Depth,
8943 ) -> fidl::Result<()> {
8944 decoder.debug_check_bounds::<Self>(offset);
8945 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
8946 None => return Err(fidl::Error::NotNullable),
8947 Some(len) => len,
8948 };
8949 if len == 0 {
8951 return Ok(());
8952 };
8953 depth.increment()?;
8954 let envelope_size = 8;
8955 let bytes_len = len * envelope_size;
8956 let offset = decoder.out_of_line_offset(bytes_len)?;
8957 let mut _next_ordinal_to_read = 0;
8959 let mut next_offset = offset;
8960 let end_offset = offset + bytes_len;
8961 _next_ordinal_to_read += 1;
8962 if next_offset >= end_offset {
8963 return Ok(());
8964 }
8965
8966 while _next_ordinal_to_read < 1 {
8968 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8969 _next_ordinal_to_read += 1;
8970 next_offset += envelope_size;
8971 }
8972
8973 let next_out_of_line = decoder.next_out_of_line();
8974 let handles_before = decoder.remaining_handles();
8975 if let Some((inlined, num_bytes, num_handles)) =
8976 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8977 {
8978 let member_inline_size = <fidl::encoding::UnboundedVector<u8> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8979 if inlined != (member_inline_size <= 4) {
8980 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8981 }
8982 let inner_offset;
8983 let mut inner_depth = depth.clone();
8984 if inlined {
8985 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8986 inner_offset = next_offset;
8987 } else {
8988 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8989 inner_depth.increment()?;
8990 }
8991 let val_ref = self.pmk.get_or_insert_with(|| {
8992 fidl::new_empty!(fidl::encoding::UnboundedVector<u8>, D)
8993 });
8994 fidl::decode!(
8995 fidl::encoding::UnboundedVector<u8>,
8996 D,
8997 val_ref,
8998 decoder,
8999 inner_offset,
9000 inner_depth
9001 )?;
9002 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9003 {
9004 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9005 }
9006 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9007 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9008 }
9009 }
9010
9011 next_offset += envelope_size;
9012 _next_ordinal_to_read += 1;
9013 if next_offset >= end_offset {
9014 return Ok(());
9015 }
9016
9017 while _next_ordinal_to_read < 2 {
9019 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9020 _next_ordinal_to_read += 1;
9021 next_offset += envelope_size;
9022 }
9023
9024 let next_out_of_line = decoder.next_out_of_line();
9025 let handles_before = decoder.remaining_handles();
9026 if let Some((inlined, num_bytes, num_handles)) =
9027 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9028 {
9029 let member_inline_size = <fidl::encoding::UnboundedVector<u8> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
9030 if inlined != (member_inline_size <= 4) {
9031 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9032 }
9033 let inner_offset;
9034 let mut inner_depth = depth.clone();
9035 if inlined {
9036 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9037 inner_offset = next_offset;
9038 } else {
9039 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9040 inner_depth.increment()?;
9041 }
9042 let val_ref = self.pmkid.get_or_insert_with(|| {
9043 fidl::new_empty!(fidl::encoding::UnboundedVector<u8>, D)
9044 });
9045 fidl::decode!(
9046 fidl::encoding::UnboundedVector<u8>,
9047 D,
9048 val_ref,
9049 decoder,
9050 inner_offset,
9051 inner_depth
9052 )?;
9053 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9054 {
9055 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9056 }
9057 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9058 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9059 }
9060 }
9061
9062 next_offset += envelope_size;
9063
9064 while next_offset < end_offset {
9066 _next_ordinal_to_read += 1;
9067 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9068 next_offset += envelope_size;
9069 }
9070
9071 Ok(())
9072 }
9073 }
9074
9075 impl WlanFullmacImplIfcOnScanEndRequest {
9076 #[inline(always)]
9077 fn max_ordinal_present(&self) -> u64 {
9078 if let Some(_) = self.code {
9079 return 2;
9080 }
9081 if let Some(_) = self.txn_id {
9082 return 1;
9083 }
9084 0
9085 }
9086 }
9087
9088 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcOnScanEndRequest {
9089 type Borrowed<'a> = &'a Self;
9090 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
9091 value
9092 }
9093 }
9094
9095 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcOnScanEndRequest {
9096 type Owned = Self;
9097
9098 #[inline(always)]
9099 fn inline_align(_context: fidl::encoding::Context) -> usize {
9100 8
9101 }
9102
9103 #[inline(always)]
9104 fn inline_size(_context: fidl::encoding::Context) -> usize {
9105 16
9106 }
9107 }
9108
9109 unsafe impl<D: fidl::encoding::ResourceDialect>
9110 fidl::encoding::Encode<WlanFullmacImplIfcOnScanEndRequest, D>
9111 for &WlanFullmacImplIfcOnScanEndRequest
9112 {
9113 unsafe fn encode(
9114 self,
9115 encoder: &mut fidl::encoding::Encoder<'_, D>,
9116 offset: usize,
9117 mut depth: fidl::encoding::Depth,
9118 ) -> fidl::Result<()> {
9119 encoder.debug_check_bounds::<WlanFullmacImplIfcOnScanEndRequest>(offset);
9120 let max_ordinal: u64 = self.max_ordinal_present();
9122 encoder.write_num(max_ordinal, offset);
9123 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
9124 if max_ordinal == 0 {
9126 return Ok(());
9127 }
9128 depth.increment()?;
9129 let envelope_size = 8;
9130 let bytes_len = max_ordinal as usize * envelope_size;
9131 #[allow(unused_variables)]
9132 let offset = encoder.out_of_line_offset(bytes_len);
9133 let mut _prev_end_offset: usize = 0;
9134 if 1 > max_ordinal {
9135 return Ok(());
9136 }
9137
9138 let cur_offset: usize = (1 - 1) * envelope_size;
9141
9142 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9144
9145 fidl::encoding::encode_in_envelope_optional::<u64, D>(
9150 self.txn_id.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
9151 encoder,
9152 offset + cur_offset,
9153 depth,
9154 )?;
9155
9156 _prev_end_offset = cur_offset + envelope_size;
9157 if 2 > max_ordinal {
9158 return Ok(());
9159 }
9160
9161 let cur_offset: usize = (2 - 1) * envelope_size;
9164
9165 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9167
9168 fidl::encoding::encode_in_envelope_optional::<WlanScanResult, D>(
9173 self.code.as_ref().map(<WlanScanResult as fidl::encoding::ValueTypeMarker>::borrow),
9174 encoder,
9175 offset + cur_offset,
9176 depth,
9177 )?;
9178
9179 _prev_end_offset = cur_offset + envelope_size;
9180
9181 Ok(())
9182 }
9183 }
9184
9185 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
9186 for WlanFullmacImplIfcOnScanEndRequest
9187 {
9188 #[inline(always)]
9189 fn new_empty() -> Self {
9190 Self::default()
9191 }
9192
9193 unsafe fn decode(
9194 &mut self,
9195 decoder: &mut fidl::encoding::Decoder<'_, D>,
9196 offset: usize,
9197 mut depth: fidl::encoding::Depth,
9198 ) -> fidl::Result<()> {
9199 decoder.debug_check_bounds::<Self>(offset);
9200 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
9201 None => return Err(fidl::Error::NotNullable),
9202 Some(len) => len,
9203 };
9204 if len == 0 {
9206 return Ok(());
9207 };
9208 depth.increment()?;
9209 let envelope_size = 8;
9210 let bytes_len = len * envelope_size;
9211 let offset = decoder.out_of_line_offset(bytes_len)?;
9212 let mut _next_ordinal_to_read = 0;
9214 let mut next_offset = offset;
9215 let end_offset = offset + bytes_len;
9216 _next_ordinal_to_read += 1;
9217 if next_offset >= end_offset {
9218 return Ok(());
9219 }
9220
9221 while _next_ordinal_to_read < 1 {
9223 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9224 _next_ordinal_to_read += 1;
9225 next_offset += envelope_size;
9226 }
9227
9228 let next_out_of_line = decoder.next_out_of_line();
9229 let handles_before = decoder.remaining_handles();
9230 if let Some((inlined, num_bytes, num_handles)) =
9231 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9232 {
9233 let member_inline_size =
9234 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
9235 if inlined != (member_inline_size <= 4) {
9236 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9237 }
9238 let inner_offset;
9239 let mut inner_depth = depth.clone();
9240 if inlined {
9241 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9242 inner_offset = next_offset;
9243 } else {
9244 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9245 inner_depth.increment()?;
9246 }
9247 let val_ref = self.txn_id.get_or_insert_with(|| fidl::new_empty!(u64, D));
9248 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
9249 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9250 {
9251 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9252 }
9253 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9254 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9255 }
9256 }
9257
9258 next_offset += envelope_size;
9259 _next_ordinal_to_read += 1;
9260 if next_offset >= end_offset {
9261 return Ok(());
9262 }
9263
9264 while _next_ordinal_to_read < 2 {
9266 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9267 _next_ordinal_to_read += 1;
9268 next_offset += envelope_size;
9269 }
9270
9271 let next_out_of_line = decoder.next_out_of_line();
9272 let handles_before = decoder.remaining_handles();
9273 if let Some((inlined, num_bytes, num_handles)) =
9274 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9275 {
9276 let member_inline_size =
9277 <WlanScanResult as fidl::encoding::TypeMarker>::inline_size(decoder.context);
9278 if inlined != (member_inline_size <= 4) {
9279 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9280 }
9281 let inner_offset;
9282 let mut inner_depth = depth.clone();
9283 if inlined {
9284 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9285 inner_offset = next_offset;
9286 } else {
9287 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9288 inner_depth.increment()?;
9289 }
9290 let val_ref = self.code.get_or_insert_with(|| fidl::new_empty!(WlanScanResult, D));
9291 fidl::decode!(WlanScanResult, D, val_ref, decoder, inner_offset, inner_depth)?;
9292 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9293 {
9294 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9295 }
9296 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9297 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9298 }
9299 }
9300
9301 next_offset += envelope_size;
9302
9303 while next_offset < end_offset {
9305 _next_ordinal_to_read += 1;
9306 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9307 next_offset += envelope_size;
9308 }
9309
9310 Ok(())
9311 }
9312 }
9313
9314 impl WlanFullmacImplIfcOnScanResultRequest {
9315 #[inline(always)]
9316 fn max_ordinal_present(&self) -> u64 {
9317 if let Some(_) = self.bss {
9318 return 3;
9319 }
9320 if let Some(_) = self.timestamp_nanos {
9321 return 2;
9322 }
9323 if let Some(_) = self.txn_id {
9324 return 1;
9325 }
9326 0
9327 }
9328 }
9329
9330 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcOnScanResultRequest {
9331 type Borrowed<'a> = &'a Self;
9332 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
9333 value
9334 }
9335 }
9336
9337 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcOnScanResultRequest {
9338 type Owned = Self;
9339
9340 #[inline(always)]
9341 fn inline_align(_context: fidl::encoding::Context) -> usize {
9342 8
9343 }
9344
9345 #[inline(always)]
9346 fn inline_size(_context: fidl::encoding::Context) -> usize {
9347 16
9348 }
9349 }
9350
9351 unsafe impl<D: fidl::encoding::ResourceDialect>
9352 fidl::encoding::Encode<WlanFullmacImplIfcOnScanResultRequest, D>
9353 for &WlanFullmacImplIfcOnScanResultRequest
9354 {
9355 unsafe fn encode(
9356 self,
9357 encoder: &mut fidl::encoding::Encoder<'_, D>,
9358 offset: usize,
9359 mut depth: fidl::encoding::Depth,
9360 ) -> fidl::Result<()> {
9361 encoder.debug_check_bounds::<WlanFullmacImplIfcOnScanResultRequest>(offset);
9362 let max_ordinal: u64 = self.max_ordinal_present();
9364 encoder.write_num(max_ordinal, offset);
9365 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
9366 if max_ordinal == 0 {
9368 return Ok(());
9369 }
9370 depth.increment()?;
9371 let envelope_size = 8;
9372 let bytes_len = max_ordinal as usize * envelope_size;
9373 #[allow(unused_variables)]
9374 let offset = encoder.out_of_line_offset(bytes_len);
9375 let mut _prev_end_offset: usize = 0;
9376 if 1 > max_ordinal {
9377 return Ok(());
9378 }
9379
9380 let cur_offset: usize = (1 - 1) * envelope_size;
9383
9384 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9386
9387 fidl::encoding::encode_in_envelope_optional::<u64, D>(
9392 self.txn_id.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
9393 encoder,
9394 offset + cur_offset,
9395 depth,
9396 )?;
9397
9398 _prev_end_offset = cur_offset + envelope_size;
9399 if 2 > max_ordinal {
9400 return Ok(());
9401 }
9402
9403 let cur_offset: usize = (2 - 1) * envelope_size;
9406
9407 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9409
9410 fidl::encoding::encode_in_envelope_optional::<i64, D>(
9415 self.timestamp_nanos.as_ref().map(<i64 as fidl::encoding::ValueTypeMarker>::borrow),
9416 encoder,
9417 offset + cur_offset,
9418 depth,
9419 )?;
9420
9421 _prev_end_offset = cur_offset + envelope_size;
9422 if 3 > max_ordinal {
9423 return Ok(());
9424 }
9425
9426 let cur_offset: usize = (3 - 1) * envelope_size;
9429
9430 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9432
9433 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_ieee80211_common::BssDescription, D>(
9438 self.bss.as_ref().map(<fidl_fuchsia_wlan_ieee80211_common::BssDescription as fidl::encoding::ValueTypeMarker>::borrow),
9439 encoder, offset + cur_offset, depth
9440 )?;
9441
9442 _prev_end_offset = cur_offset + envelope_size;
9443
9444 Ok(())
9445 }
9446 }
9447
9448 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
9449 for WlanFullmacImplIfcOnScanResultRequest
9450 {
9451 #[inline(always)]
9452 fn new_empty() -> Self {
9453 Self::default()
9454 }
9455
9456 unsafe fn decode(
9457 &mut self,
9458 decoder: &mut fidl::encoding::Decoder<'_, D>,
9459 offset: usize,
9460 mut depth: fidl::encoding::Depth,
9461 ) -> fidl::Result<()> {
9462 decoder.debug_check_bounds::<Self>(offset);
9463 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
9464 None => return Err(fidl::Error::NotNullable),
9465 Some(len) => len,
9466 };
9467 if len == 0 {
9469 return Ok(());
9470 };
9471 depth.increment()?;
9472 let envelope_size = 8;
9473 let bytes_len = len * envelope_size;
9474 let offset = decoder.out_of_line_offset(bytes_len)?;
9475 let mut _next_ordinal_to_read = 0;
9477 let mut next_offset = offset;
9478 let end_offset = offset + bytes_len;
9479 _next_ordinal_to_read += 1;
9480 if next_offset >= end_offset {
9481 return Ok(());
9482 }
9483
9484 while _next_ordinal_to_read < 1 {
9486 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9487 _next_ordinal_to_read += 1;
9488 next_offset += envelope_size;
9489 }
9490
9491 let next_out_of_line = decoder.next_out_of_line();
9492 let handles_before = decoder.remaining_handles();
9493 if let Some((inlined, num_bytes, num_handles)) =
9494 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9495 {
9496 let member_inline_size =
9497 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
9498 if inlined != (member_inline_size <= 4) {
9499 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9500 }
9501 let inner_offset;
9502 let mut inner_depth = depth.clone();
9503 if inlined {
9504 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9505 inner_offset = next_offset;
9506 } else {
9507 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9508 inner_depth.increment()?;
9509 }
9510 let val_ref = self.txn_id.get_or_insert_with(|| fidl::new_empty!(u64, D));
9511 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
9512 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9513 {
9514 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9515 }
9516 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9517 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9518 }
9519 }
9520
9521 next_offset += envelope_size;
9522 _next_ordinal_to_read += 1;
9523 if next_offset >= end_offset {
9524 return Ok(());
9525 }
9526
9527 while _next_ordinal_to_read < 2 {
9529 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9530 _next_ordinal_to_read += 1;
9531 next_offset += envelope_size;
9532 }
9533
9534 let next_out_of_line = decoder.next_out_of_line();
9535 let handles_before = decoder.remaining_handles();
9536 if let Some((inlined, num_bytes, num_handles)) =
9537 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9538 {
9539 let member_inline_size =
9540 <i64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
9541 if inlined != (member_inline_size <= 4) {
9542 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9543 }
9544 let inner_offset;
9545 let mut inner_depth = depth.clone();
9546 if inlined {
9547 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9548 inner_offset = next_offset;
9549 } else {
9550 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9551 inner_depth.increment()?;
9552 }
9553 let val_ref = self.timestamp_nanos.get_or_insert_with(|| fidl::new_empty!(i64, D));
9554 fidl::decode!(i64, D, val_ref, decoder, inner_offset, inner_depth)?;
9555 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9556 {
9557 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9558 }
9559 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9560 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9561 }
9562 }
9563
9564 next_offset += envelope_size;
9565 _next_ordinal_to_read += 1;
9566 if next_offset >= end_offset {
9567 return Ok(());
9568 }
9569
9570 while _next_ordinal_to_read < 3 {
9572 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9573 _next_ordinal_to_read += 1;
9574 next_offset += envelope_size;
9575 }
9576
9577 let next_out_of_line = decoder.next_out_of_line();
9578 let handles_before = decoder.remaining_handles();
9579 if let Some((inlined, num_bytes, num_handles)) =
9580 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9581 {
9582 let member_inline_size = <fidl_fuchsia_wlan_ieee80211_common::BssDescription as fidl::encoding::TypeMarker>::inline_size(decoder.context);
9583 if inlined != (member_inline_size <= 4) {
9584 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9585 }
9586 let inner_offset;
9587 let mut inner_depth = depth.clone();
9588 if inlined {
9589 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9590 inner_offset = next_offset;
9591 } else {
9592 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9593 inner_depth.increment()?;
9594 }
9595 let val_ref = self.bss.get_or_insert_with(|| {
9596 fidl::new_empty!(fidl_fuchsia_wlan_ieee80211_common::BssDescription, D)
9597 });
9598 fidl::decode!(
9599 fidl_fuchsia_wlan_ieee80211_common::BssDescription,
9600 D,
9601 val_ref,
9602 decoder,
9603 inner_offset,
9604 inner_depth
9605 )?;
9606 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9607 {
9608 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9609 }
9610 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9611 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9612 }
9613 }
9614
9615 next_offset += envelope_size;
9616
9617 while next_offset < end_offset {
9619 _next_ordinal_to_read += 1;
9620 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9621 next_offset += envelope_size;
9622 }
9623
9624 Ok(())
9625 }
9626 }
9627
9628 impl WlanFullmacImplIfcOnScheduledScanMatchesAvailableRequest {
9629 #[inline(always)]
9630 fn max_ordinal_present(&self) -> u64 {
9631 if let Some(_) = self.txn_id {
9632 return 1;
9633 }
9634 0
9635 }
9636 }
9637
9638 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcOnScheduledScanMatchesAvailableRequest {
9639 type Borrowed<'a> = &'a Self;
9640 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
9641 value
9642 }
9643 }
9644
9645 unsafe impl fidl::encoding::TypeMarker
9646 for WlanFullmacImplIfcOnScheduledScanMatchesAvailableRequest
9647 {
9648 type Owned = Self;
9649
9650 #[inline(always)]
9651 fn inline_align(_context: fidl::encoding::Context) -> usize {
9652 8
9653 }
9654
9655 #[inline(always)]
9656 fn inline_size(_context: fidl::encoding::Context) -> usize {
9657 16
9658 }
9659 }
9660
9661 unsafe impl<D: fidl::encoding::ResourceDialect>
9662 fidl::encoding::Encode<WlanFullmacImplIfcOnScheduledScanMatchesAvailableRequest, D>
9663 for &WlanFullmacImplIfcOnScheduledScanMatchesAvailableRequest
9664 {
9665 unsafe fn encode(
9666 self,
9667 encoder: &mut fidl::encoding::Encoder<'_, D>,
9668 offset: usize,
9669 mut depth: fidl::encoding::Depth,
9670 ) -> fidl::Result<()> {
9671 encoder.debug_check_bounds::<WlanFullmacImplIfcOnScheduledScanMatchesAvailableRequest>(
9672 offset,
9673 );
9674 let max_ordinal: u64 = self.max_ordinal_present();
9676 encoder.write_num(max_ordinal, offset);
9677 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
9678 if max_ordinal == 0 {
9680 return Ok(());
9681 }
9682 depth.increment()?;
9683 let envelope_size = 8;
9684 let bytes_len = max_ordinal as usize * envelope_size;
9685 #[allow(unused_variables)]
9686 let offset = encoder.out_of_line_offset(bytes_len);
9687 let mut _prev_end_offset: usize = 0;
9688 if 1 > max_ordinal {
9689 return Ok(());
9690 }
9691
9692 let cur_offset: usize = (1 - 1) * envelope_size;
9695
9696 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9698
9699 fidl::encoding::encode_in_envelope_optional::<u64, D>(
9704 self.txn_id.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
9705 encoder,
9706 offset + cur_offset,
9707 depth,
9708 )?;
9709
9710 _prev_end_offset = cur_offset + envelope_size;
9711
9712 Ok(())
9713 }
9714 }
9715
9716 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
9717 for WlanFullmacImplIfcOnScheduledScanMatchesAvailableRequest
9718 {
9719 #[inline(always)]
9720 fn new_empty() -> Self {
9721 Self::default()
9722 }
9723
9724 unsafe fn decode(
9725 &mut self,
9726 decoder: &mut fidl::encoding::Decoder<'_, D>,
9727 offset: usize,
9728 mut depth: fidl::encoding::Depth,
9729 ) -> fidl::Result<()> {
9730 decoder.debug_check_bounds::<Self>(offset);
9731 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
9732 None => return Err(fidl::Error::NotNullable),
9733 Some(len) => len,
9734 };
9735 if len == 0 {
9737 return Ok(());
9738 };
9739 depth.increment()?;
9740 let envelope_size = 8;
9741 let bytes_len = len * envelope_size;
9742 let offset = decoder.out_of_line_offset(bytes_len)?;
9743 let mut _next_ordinal_to_read = 0;
9745 let mut next_offset = offset;
9746 let end_offset = offset + bytes_len;
9747 _next_ordinal_to_read += 1;
9748 if next_offset >= end_offset {
9749 return Ok(());
9750 }
9751
9752 while _next_ordinal_to_read < 1 {
9754 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9755 _next_ordinal_to_read += 1;
9756 next_offset += envelope_size;
9757 }
9758
9759 let next_out_of_line = decoder.next_out_of_line();
9760 let handles_before = decoder.remaining_handles();
9761 if let Some((inlined, num_bytes, num_handles)) =
9762 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9763 {
9764 let member_inline_size =
9765 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
9766 if inlined != (member_inline_size <= 4) {
9767 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9768 }
9769 let inner_offset;
9770 let mut inner_depth = depth.clone();
9771 if inlined {
9772 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9773 inner_offset = next_offset;
9774 } else {
9775 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9776 inner_depth.increment()?;
9777 }
9778 let val_ref = self.txn_id.get_or_insert_with(|| fidl::new_empty!(u64, D));
9779 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
9780 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9781 {
9782 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9783 }
9784 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9785 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9786 }
9787 }
9788
9789 next_offset += envelope_size;
9790
9791 while next_offset < end_offset {
9793 _next_ordinal_to_read += 1;
9794 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9795 next_offset += envelope_size;
9796 }
9797
9798 Ok(())
9799 }
9800 }
9801
9802 impl WlanFullmacImplIfcOnScheduledScanStoppedByFirmwareRequest {
9803 #[inline(always)]
9804 fn max_ordinal_present(&self) -> u64 {
9805 if let Some(_) = self.txn_id {
9806 return 1;
9807 }
9808 0
9809 }
9810 }
9811
9812 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcOnScheduledScanStoppedByFirmwareRequest {
9813 type Borrowed<'a> = &'a Self;
9814 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
9815 value
9816 }
9817 }
9818
9819 unsafe impl fidl::encoding::TypeMarker
9820 for WlanFullmacImplIfcOnScheduledScanStoppedByFirmwareRequest
9821 {
9822 type Owned = Self;
9823
9824 #[inline(always)]
9825 fn inline_align(_context: fidl::encoding::Context) -> usize {
9826 8
9827 }
9828
9829 #[inline(always)]
9830 fn inline_size(_context: fidl::encoding::Context) -> usize {
9831 16
9832 }
9833 }
9834
9835 unsafe impl<D: fidl::encoding::ResourceDialect>
9836 fidl::encoding::Encode<WlanFullmacImplIfcOnScheduledScanStoppedByFirmwareRequest, D>
9837 for &WlanFullmacImplIfcOnScheduledScanStoppedByFirmwareRequest
9838 {
9839 unsafe fn encode(
9840 self,
9841 encoder: &mut fidl::encoding::Encoder<'_, D>,
9842 offset: usize,
9843 mut depth: fidl::encoding::Depth,
9844 ) -> fidl::Result<()> {
9845 encoder
9846 .debug_check_bounds::<WlanFullmacImplIfcOnScheduledScanStoppedByFirmwareRequest>(
9847 offset,
9848 );
9849 let max_ordinal: u64 = self.max_ordinal_present();
9851 encoder.write_num(max_ordinal, offset);
9852 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
9853 if max_ordinal == 0 {
9855 return Ok(());
9856 }
9857 depth.increment()?;
9858 let envelope_size = 8;
9859 let bytes_len = max_ordinal as usize * envelope_size;
9860 #[allow(unused_variables)]
9861 let offset = encoder.out_of_line_offset(bytes_len);
9862 let mut _prev_end_offset: usize = 0;
9863 if 1 > max_ordinal {
9864 return Ok(());
9865 }
9866
9867 let cur_offset: usize = (1 - 1) * envelope_size;
9870
9871 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9873
9874 fidl::encoding::encode_in_envelope_optional::<u64, D>(
9879 self.txn_id.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
9880 encoder,
9881 offset + cur_offset,
9882 depth,
9883 )?;
9884
9885 _prev_end_offset = cur_offset + envelope_size;
9886
9887 Ok(())
9888 }
9889 }
9890
9891 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
9892 for WlanFullmacImplIfcOnScheduledScanStoppedByFirmwareRequest
9893 {
9894 #[inline(always)]
9895 fn new_empty() -> Self {
9896 Self::default()
9897 }
9898
9899 unsafe fn decode(
9900 &mut self,
9901 decoder: &mut fidl::encoding::Decoder<'_, D>,
9902 offset: usize,
9903 mut depth: fidl::encoding::Depth,
9904 ) -> fidl::Result<()> {
9905 decoder.debug_check_bounds::<Self>(offset);
9906 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
9907 None => return Err(fidl::Error::NotNullable),
9908 Some(len) => len,
9909 };
9910 if len == 0 {
9912 return Ok(());
9913 };
9914 depth.increment()?;
9915 let envelope_size = 8;
9916 let bytes_len = len * envelope_size;
9917 let offset = decoder.out_of_line_offset(bytes_len)?;
9918 let mut _next_ordinal_to_read = 0;
9920 let mut next_offset = offset;
9921 let end_offset = offset + bytes_len;
9922 _next_ordinal_to_read += 1;
9923 if next_offset >= end_offset {
9924 return Ok(());
9925 }
9926
9927 while _next_ordinal_to_read < 1 {
9929 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9930 _next_ordinal_to_read += 1;
9931 next_offset += envelope_size;
9932 }
9933
9934 let next_out_of_line = decoder.next_out_of_line();
9935 let handles_before = decoder.remaining_handles();
9936 if let Some((inlined, num_bytes, num_handles)) =
9937 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9938 {
9939 let member_inline_size =
9940 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
9941 if inlined != (member_inline_size <= 4) {
9942 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9943 }
9944 let inner_offset;
9945 let mut inner_depth = depth.clone();
9946 if inlined {
9947 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9948 inner_offset = next_offset;
9949 } else {
9950 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9951 inner_depth.increment()?;
9952 }
9953 let val_ref = self.txn_id.get_or_insert_with(|| fidl::new_empty!(u64, D));
9954 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
9955 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9956 {
9957 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9958 }
9959 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9960 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9961 }
9962 }
9963
9964 next_offset += envelope_size;
9965
9966 while next_offset < end_offset {
9968 _next_ordinal_to_read += 1;
9969 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9970 next_offset += envelope_size;
9971 }
9972
9973 Ok(())
9974 }
9975 }
9976
9977 impl WlanFullmacImplIfcRoamConfRequest {
9978 #[inline(always)]
9979 fn max_ordinal_present(&self) -> u64 {
9980 if let Some(_) = self.association_ies {
9981 return 6;
9982 }
9983 if let Some(_) = self.association_id {
9984 return 5;
9985 }
9986 if let Some(_) = self.target_bss_authenticated {
9987 return 4;
9988 }
9989 if let Some(_) = self.original_association_maintained {
9990 return 3;
9991 }
9992 if let Some(_) = self.status_code {
9993 return 2;
9994 }
9995 if let Some(_) = self.selected_bssid {
9996 return 1;
9997 }
9998 0
9999 }
10000 }
10001
10002 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcRoamConfRequest {
10003 type Borrowed<'a> = &'a Self;
10004 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
10005 value
10006 }
10007 }
10008
10009 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcRoamConfRequest {
10010 type Owned = Self;
10011
10012 #[inline(always)]
10013 fn inline_align(_context: fidl::encoding::Context) -> usize {
10014 8
10015 }
10016
10017 #[inline(always)]
10018 fn inline_size(_context: fidl::encoding::Context) -> usize {
10019 16
10020 }
10021 }
10022
10023 unsafe impl<D: fidl::encoding::ResourceDialect>
10024 fidl::encoding::Encode<WlanFullmacImplIfcRoamConfRequest, D>
10025 for &WlanFullmacImplIfcRoamConfRequest
10026 {
10027 unsafe fn encode(
10028 self,
10029 encoder: &mut fidl::encoding::Encoder<'_, D>,
10030 offset: usize,
10031 mut depth: fidl::encoding::Depth,
10032 ) -> fidl::Result<()> {
10033 encoder.debug_check_bounds::<WlanFullmacImplIfcRoamConfRequest>(offset);
10034 let max_ordinal: u64 = self.max_ordinal_present();
10036 encoder.write_num(max_ordinal, offset);
10037 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
10038 if max_ordinal == 0 {
10040 return Ok(());
10041 }
10042 depth.increment()?;
10043 let envelope_size = 8;
10044 let bytes_len = max_ordinal as usize * envelope_size;
10045 #[allow(unused_variables)]
10046 let offset = encoder.out_of_line_offset(bytes_len);
10047 let mut _prev_end_offset: usize = 0;
10048 if 1 > max_ordinal {
10049 return Ok(());
10050 }
10051
10052 let cur_offset: usize = (1 - 1) * envelope_size;
10055
10056 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10058
10059 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
10064 self.selected_bssid
10065 .as_ref()
10066 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
10067 encoder,
10068 offset + cur_offset,
10069 depth,
10070 )?;
10071
10072 _prev_end_offset = cur_offset + envelope_size;
10073 if 2 > max_ordinal {
10074 return Ok(());
10075 }
10076
10077 let cur_offset: usize = (2 - 1) * envelope_size;
10080
10081 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10083
10084 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_ieee80211_common::StatusCode, D>(
10089 self.status_code.as_ref().map(<fidl_fuchsia_wlan_ieee80211_common::StatusCode as fidl::encoding::ValueTypeMarker>::borrow),
10090 encoder, offset + cur_offset, depth
10091 )?;
10092
10093 _prev_end_offset = cur_offset + envelope_size;
10094 if 3 > max_ordinal {
10095 return Ok(());
10096 }
10097
10098 let cur_offset: usize = (3 - 1) * envelope_size;
10101
10102 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10104
10105 fidl::encoding::encode_in_envelope_optional::<bool, D>(
10110 self.original_association_maintained
10111 .as_ref()
10112 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
10113 encoder,
10114 offset + cur_offset,
10115 depth,
10116 )?;
10117
10118 _prev_end_offset = cur_offset + envelope_size;
10119 if 4 > max_ordinal {
10120 return Ok(());
10121 }
10122
10123 let cur_offset: usize = (4 - 1) * envelope_size;
10126
10127 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10129
10130 fidl::encoding::encode_in_envelope_optional::<bool, D>(
10135 self.target_bss_authenticated
10136 .as_ref()
10137 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
10138 encoder,
10139 offset + cur_offset,
10140 depth,
10141 )?;
10142
10143 _prev_end_offset = cur_offset + envelope_size;
10144 if 5 > max_ordinal {
10145 return Ok(());
10146 }
10147
10148 let cur_offset: usize = (5 - 1) * envelope_size;
10151
10152 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10154
10155 fidl::encoding::encode_in_envelope_optional::<u16, D>(
10160 self.association_id.as_ref().map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
10161 encoder,
10162 offset + cur_offset,
10163 depth,
10164 )?;
10165
10166 _prev_end_offset = cur_offset + envelope_size;
10167 if 6 > max_ordinal {
10168 return Ok(());
10169 }
10170
10171 let cur_offset: usize = (6 - 1) * envelope_size;
10174
10175 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10177
10178 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<u8>, D>(
10183 self.association_ies.as_ref().map(<fidl::encoding::UnboundedVector<u8> as fidl::encoding::ValueTypeMarker>::borrow),
10184 encoder, offset + cur_offset, depth
10185 )?;
10186
10187 _prev_end_offset = cur_offset + envelope_size;
10188
10189 Ok(())
10190 }
10191 }
10192
10193 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
10194 for WlanFullmacImplIfcRoamConfRequest
10195 {
10196 #[inline(always)]
10197 fn new_empty() -> Self {
10198 Self::default()
10199 }
10200
10201 unsafe fn decode(
10202 &mut self,
10203 decoder: &mut fidl::encoding::Decoder<'_, D>,
10204 offset: usize,
10205 mut depth: fidl::encoding::Depth,
10206 ) -> fidl::Result<()> {
10207 decoder.debug_check_bounds::<Self>(offset);
10208 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
10209 None => return Err(fidl::Error::NotNullable),
10210 Some(len) => len,
10211 };
10212 if len == 0 {
10214 return Ok(());
10215 };
10216 depth.increment()?;
10217 let envelope_size = 8;
10218 let bytes_len = len * envelope_size;
10219 let offset = decoder.out_of_line_offset(bytes_len)?;
10220 let mut _next_ordinal_to_read = 0;
10222 let mut next_offset = offset;
10223 let end_offset = offset + bytes_len;
10224 _next_ordinal_to_read += 1;
10225 if next_offset >= end_offset {
10226 return Ok(());
10227 }
10228
10229 while _next_ordinal_to_read < 1 {
10231 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10232 _next_ordinal_to_read += 1;
10233 next_offset += envelope_size;
10234 }
10235
10236 let next_out_of_line = decoder.next_out_of_line();
10237 let handles_before = decoder.remaining_handles();
10238 if let Some((inlined, num_bytes, num_handles)) =
10239 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10240 {
10241 let member_inline_size =
10242 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
10243 decoder.context,
10244 );
10245 if inlined != (member_inline_size <= 4) {
10246 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10247 }
10248 let inner_offset;
10249 let mut inner_depth = depth.clone();
10250 if inlined {
10251 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10252 inner_offset = next_offset;
10253 } else {
10254 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10255 inner_depth.increment()?;
10256 }
10257 let val_ref = self
10258 .selected_bssid
10259 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
10260 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
10261 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10262 {
10263 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10264 }
10265 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10266 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10267 }
10268 }
10269
10270 next_offset += envelope_size;
10271 _next_ordinal_to_read += 1;
10272 if next_offset >= end_offset {
10273 return Ok(());
10274 }
10275
10276 while _next_ordinal_to_read < 2 {
10278 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10279 _next_ordinal_to_read += 1;
10280 next_offset += envelope_size;
10281 }
10282
10283 let next_out_of_line = decoder.next_out_of_line();
10284 let handles_before = decoder.remaining_handles();
10285 if let Some((inlined, num_bytes, num_handles)) =
10286 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10287 {
10288 let member_inline_size = <fidl_fuchsia_wlan_ieee80211_common::StatusCode as fidl::encoding::TypeMarker>::inline_size(decoder.context);
10289 if inlined != (member_inline_size <= 4) {
10290 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10291 }
10292 let inner_offset;
10293 let mut inner_depth = depth.clone();
10294 if inlined {
10295 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10296 inner_offset = next_offset;
10297 } else {
10298 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10299 inner_depth.increment()?;
10300 }
10301 let val_ref = self.status_code.get_or_insert_with(|| {
10302 fidl::new_empty!(fidl_fuchsia_wlan_ieee80211_common::StatusCode, D)
10303 });
10304 fidl::decode!(
10305 fidl_fuchsia_wlan_ieee80211_common::StatusCode,
10306 D,
10307 val_ref,
10308 decoder,
10309 inner_offset,
10310 inner_depth
10311 )?;
10312 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10313 {
10314 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10315 }
10316 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10317 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10318 }
10319 }
10320
10321 next_offset += envelope_size;
10322 _next_ordinal_to_read += 1;
10323 if next_offset >= end_offset {
10324 return Ok(());
10325 }
10326
10327 while _next_ordinal_to_read < 3 {
10329 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10330 _next_ordinal_to_read += 1;
10331 next_offset += envelope_size;
10332 }
10333
10334 let next_out_of_line = decoder.next_out_of_line();
10335 let handles_before = decoder.remaining_handles();
10336 if let Some((inlined, num_bytes, num_handles)) =
10337 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10338 {
10339 let member_inline_size =
10340 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
10341 if inlined != (member_inline_size <= 4) {
10342 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10343 }
10344 let inner_offset;
10345 let mut inner_depth = depth.clone();
10346 if inlined {
10347 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10348 inner_offset = next_offset;
10349 } else {
10350 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10351 inner_depth.increment()?;
10352 }
10353 let val_ref = self
10354 .original_association_maintained
10355 .get_or_insert_with(|| fidl::new_empty!(bool, D));
10356 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
10357 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10358 {
10359 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10360 }
10361 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10362 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10363 }
10364 }
10365
10366 next_offset += envelope_size;
10367 _next_ordinal_to_read += 1;
10368 if next_offset >= end_offset {
10369 return Ok(());
10370 }
10371
10372 while _next_ordinal_to_read < 4 {
10374 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10375 _next_ordinal_to_read += 1;
10376 next_offset += envelope_size;
10377 }
10378
10379 let next_out_of_line = decoder.next_out_of_line();
10380 let handles_before = decoder.remaining_handles();
10381 if let Some((inlined, num_bytes, num_handles)) =
10382 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10383 {
10384 let member_inline_size =
10385 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
10386 if inlined != (member_inline_size <= 4) {
10387 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10388 }
10389 let inner_offset;
10390 let mut inner_depth = depth.clone();
10391 if inlined {
10392 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10393 inner_offset = next_offset;
10394 } else {
10395 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10396 inner_depth.increment()?;
10397 }
10398 let val_ref =
10399 self.target_bss_authenticated.get_or_insert_with(|| fidl::new_empty!(bool, D));
10400 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
10401 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10402 {
10403 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10404 }
10405 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10406 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10407 }
10408 }
10409
10410 next_offset += envelope_size;
10411 _next_ordinal_to_read += 1;
10412 if next_offset >= end_offset {
10413 return Ok(());
10414 }
10415
10416 while _next_ordinal_to_read < 5 {
10418 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10419 _next_ordinal_to_read += 1;
10420 next_offset += envelope_size;
10421 }
10422
10423 let next_out_of_line = decoder.next_out_of_line();
10424 let handles_before = decoder.remaining_handles();
10425 if let Some((inlined, num_bytes, num_handles)) =
10426 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10427 {
10428 let member_inline_size =
10429 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
10430 if inlined != (member_inline_size <= 4) {
10431 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10432 }
10433 let inner_offset;
10434 let mut inner_depth = depth.clone();
10435 if inlined {
10436 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10437 inner_offset = next_offset;
10438 } else {
10439 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10440 inner_depth.increment()?;
10441 }
10442 let val_ref = self.association_id.get_or_insert_with(|| fidl::new_empty!(u16, D));
10443 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
10444 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10445 {
10446 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10447 }
10448 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10449 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10450 }
10451 }
10452
10453 next_offset += envelope_size;
10454 _next_ordinal_to_read += 1;
10455 if next_offset >= end_offset {
10456 return Ok(());
10457 }
10458
10459 while _next_ordinal_to_read < 6 {
10461 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10462 _next_ordinal_to_read += 1;
10463 next_offset += envelope_size;
10464 }
10465
10466 let next_out_of_line = decoder.next_out_of_line();
10467 let handles_before = decoder.remaining_handles();
10468 if let Some((inlined, num_bytes, num_handles)) =
10469 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10470 {
10471 let member_inline_size = <fidl::encoding::UnboundedVector<u8> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
10472 if inlined != (member_inline_size <= 4) {
10473 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10474 }
10475 let inner_offset;
10476 let mut inner_depth = depth.clone();
10477 if inlined {
10478 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10479 inner_offset = next_offset;
10480 } else {
10481 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10482 inner_depth.increment()?;
10483 }
10484 let val_ref = self.association_ies.get_or_insert_with(|| {
10485 fidl::new_empty!(fidl::encoding::UnboundedVector<u8>, D)
10486 });
10487 fidl::decode!(
10488 fidl::encoding::UnboundedVector<u8>,
10489 D,
10490 val_ref,
10491 decoder,
10492 inner_offset,
10493 inner_depth
10494 )?;
10495 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10496 {
10497 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10498 }
10499 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10500 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10501 }
10502 }
10503
10504 next_offset += envelope_size;
10505
10506 while next_offset < end_offset {
10508 _next_ordinal_to_read += 1;
10509 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10510 next_offset += envelope_size;
10511 }
10512
10513 Ok(())
10514 }
10515 }
10516
10517 impl WlanFullmacImplIfcRoamResultIndRequest {
10518 #[inline(always)]
10519 fn max_ordinal_present(&self) -> u64 {
10520 if let Some(_) = self.association_ies {
10521 return 6;
10522 }
10523 if let Some(_) = self.association_id {
10524 return 5;
10525 }
10526 if let Some(_) = self.target_bss_authenticated {
10527 return 4;
10528 }
10529 if let Some(_) = self.original_association_maintained {
10530 return 3;
10531 }
10532 if let Some(_) = self.status_code {
10533 return 2;
10534 }
10535 if let Some(_) = self.selected_bssid {
10536 return 1;
10537 }
10538 0
10539 }
10540 }
10541
10542 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcRoamResultIndRequest {
10543 type Borrowed<'a> = &'a Self;
10544 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
10545 value
10546 }
10547 }
10548
10549 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcRoamResultIndRequest {
10550 type Owned = Self;
10551
10552 #[inline(always)]
10553 fn inline_align(_context: fidl::encoding::Context) -> usize {
10554 8
10555 }
10556
10557 #[inline(always)]
10558 fn inline_size(_context: fidl::encoding::Context) -> usize {
10559 16
10560 }
10561 }
10562
10563 unsafe impl<D: fidl::encoding::ResourceDialect>
10564 fidl::encoding::Encode<WlanFullmacImplIfcRoamResultIndRequest, D>
10565 for &WlanFullmacImplIfcRoamResultIndRequest
10566 {
10567 unsafe fn encode(
10568 self,
10569 encoder: &mut fidl::encoding::Encoder<'_, D>,
10570 offset: usize,
10571 mut depth: fidl::encoding::Depth,
10572 ) -> fidl::Result<()> {
10573 encoder.debug_check_bounds::<WlanFullmacImplIfcRoamResultIndRequest>(offset);
10574 let max_ordinal: u64 = self.max_ordinal_present();
10576 encoder.write_num(max_ordinal, offset);
10577 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
10578 if max_ordinal == 0 {
10580 return Ok(());
10581 }
10582 depth.increment()?;
10583 let envelope_size = 8;
10584 let bytes_len = max_ordinal as usize * envelope_size;
10585 #[allow(unused_variables)]
10586 let offset = encoder.out_of_line_offset(bytes_len);
10587 let mut _prev_end_offset: usize = 0;
10588 if 1 > max_ordinal {
10589 return Ok(());
10590 }
10591
10592 let cur_offset: usize = (1 - 1) * envelope_size;
10595
10596 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10598
10599 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
10604 self.selected_bssid
10605 .as_ref()
10606 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
10607 encoder,
10608 offset + cur_offset,
10609 depth,
10610 )?;
10611
10612 _prev_end_offset = cur_offset + envelope_size;
10613 if 2 > max_ordinal {
10614 return Ok(());
10615 }
10616
10617 let cur_offset: usize = (2 - 1) * envelope_size;
10620
10621 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10623
10624 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_ieee80211_common::StatusCode, D>(
10629 self.status_code.as_ref().map(<fidl_fuchsia_wlan_ieee80211_common::StatusCode as fidl::encoding::ValueTypeMarker>::borrow),
10630 encoder, offset + cur_offset, depth
10631 )?;
10632
10633 _prev_end_offset = cur_offset + envelope_size;
10634 if 3 > max_ordinal {
10635 return Ok(());
10636 }
10637
10638 let cur_offset: usize = (3 - 1) * envelope_size;
10641
10642 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10644
10645 fidl::encoding::encode_in_envelope_optional::<bool, D>(
10650 self.original_association_maintained
10651 .as_ref()
10652 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
10653 encoder,
10654 offset + cur_offset,
10655 depth,
10656 )?;
10657
10658 _prev_end_offset = cur_offset + envelope_size;
10659 if 4 > max_ordinal {
10660 return Ok(());
10661 }
10662
10663 let cur_offset: usize = (4 - 1) * envelope_size;
10666
10667 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10669
10670 fidl::encoding::encode_in_envelope_optional::<bool, D>(
10675 self.target_bss_authenticated
10676 .as_ref()
10677 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
10678 encoder,
10679 offset + cur_offset,
10680 depth,
10681 )?;
10682
10683 _prev_end_offset = cur_offset + envelope_size;
10684 if 5 > max_ordinal {
10685 return Ok(());
10686 }
10687
10688 let cur_offset: usize = (5 - 1) * envelope_size;
10691
10692 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10694
10695 fidl::encoding::encode_in_envelope_optional::<u16, D>(
10700 self.association_id.as_ref().map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
10701 encoder,
10702 offset + cur_offset,
10703 depth,
10704 )?;
10705
10706 _prev_end_offset = cur_offset + envelope_size;
10707 if 6 > max_ordinal {
10708 return Ok(());
10709 }
10710
10711 let cur_offset: usize = (6 - 1) * envelope_size;
10714
10715 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10717
10718 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<u8>, D>(
10723 self.association_ies.as_ref().map(<fidl::encoding::UnboundedVector<u8> as fidl::encoding::ValueTypeMarker>::borrow),
10724 encoder, offset + cur_offset, depth
10725 )?;
10726
10727 _prev_end_offset = cur_offset + envelope_size;
10728
10729 Ok(())
10730 }
10731 }
10732
10733 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
10734 for WlanFullmacImplIfcRoamResultIndRequest
10735 {
10736 #[inline(always)]
10737 fn new_empty() -> Self {
10738 Self::default()
10739 }
10740
10741 unsafe fn decode(
10742 &mut self,
10743 decoder: &mut fidl::encoding::Decoder<'_, D>,
10744 offset: usize,
10745 mut depth: fidl::encoding::Depth,
10746 ) -> fidl::Result<()> {
10747 decoder.debug_check_bounds::<Self>(offset);
10748 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
10749 None => return Err(fidl::Error::NotNullable),
10750 Some(len) => len,
10751 };
10752 if len == 0 {
10754 return Ok(());
10755 };
10756 depth.increment()?;
10757 let envelope_size = 8;
10758 let bytes_len = len * envelope_size;
10759 let offset = decoder.out_of_line_offset(bytes_len)?;
10760 let mut _next_ordinal_to_read = 0;
10762 let mut next_offset = offset;
10763 let end_offset = offset + bytes_len;
10764 _next_ordinal_to_read += 1;
10765 if next_offset >= end_offset {
10766 return Ok(());
10767 }
10768
10769 while _next_ordinal_to_read < 1 {
10771 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10772 _next_ordinal_to_read += 1;
10773 next_offset += envelope_size;
10774 }
10775
10776 let next_out_of_line = decoder.next_out_of_line();
10777 let handles_before = decoder.remaining_handles();
10778 if let Some((inlined, num_bytes, num_handles)) =
10779 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10780 {
10781 let member_inline_size =
10782 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
10783 decoder.context,
10784 );
10785 if inlined != (member_inline_size <= 4) {
10786 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10787 }
10788 let inner_offset;
10789 let mut inner_depth = depth.clone();
10790 if inlined {
10791 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10792 inner_offset = next_offset;
10793 } else {
10794 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10795 inner_depth.increment()?;
10796 }
10797 let val_ref = self
10798 .selected_bssid
10799 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
10800 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
10801 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10802 {
10803 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10804 }
10805 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10806 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10807 }
10808 }
10809
10810 next_offset += envelope_size;
10811 _next_ordinal_to_read += 1;
10812 if next_offset >= end_offset {
10813 return Ok(());
10814 }
10815
10816 while _next_ordinal_to_read < 2 {
10818 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10819 _next_ordinal_to_read += 1;
10820 next_offset += envelope_size;
10821 }
10822
10823 let next_out_of_line = decoder.next_out_of_line();
10824 let handles_before = decoder.remaining_handles();
10825 if let Some((inlined, num_bytes, num_handles)) =
10826 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10827 {
10828 let member_inline_size = <fidl_fuchsia_wlan_ieee80211_common::StatusCode as fidl::encoding::TypeMarker>::inline_size(decoder.context);
10829 if inlined != (member_inline_size <= 4) {
10830 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10831 }
10832 let inner_offset;
10833 let mut inner_depth = depth.clone();
10834 if inlined {
10835 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10836 inner_offset = next_offset;
10837 } else {
10838 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10839 inner_depth.increment()?;
10840 }
10841 let val_ref = self.status_code.get_or_insert_with(|| {
10842 fidl::new_empty!(fidl_fuchsia_wlan_ieee80211_common::StatusCode, D)
10843 });
10844 fidl::decode!(
10845 fidl_fuchsia_wlan_ieee80211_common::StatusCode,
10846 D,
10847 val_ref,
10848 decoder,
10849 inner_offset,
10850 inner_depth
10851 )?;
10852 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10853 {
10854 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10855 }
10856 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10857 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10858 }
10859 }
10860
10861 next_offset += envelope_size;
10862 _next_ordinal_to_read += 1;
10863 if next_offset >= end_offset {
10864 return Ok(());
10865 }
10866
10867 while _next_ordinal_to_read < 3 {
10869 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10870 _next_ordinal_to_read += 1;
10871 next_offset += envelope_size;
10872 }
10873
10874 let next_out_of_line = decoder.next_out_of_line();
10875 let handles_before = decoder.remaining_handles();
10876 if let Some((inlined, num_bytes, num_handles)) =
10877 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10878 {
10879 let member_inline_size =
10880 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
10881 if inlined != (member_inline_size <= 4) {
10882 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10883 }
10884 let inner_offset;
10885 let mut inner_depth = depth.clone();
10886 if inlined {
10887 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10888 inner_offset = next_offset;
10889 } else {
10890 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10891 inner_depth.increment()?;
10892 }
10893 let val_ref = self
10894 .original_association_maintained
10895 .get_or_insert_with(|| fidl::new_empty!(bool, D));
10896 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
10897 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10898 {
10899 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10900 }
10901 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10902 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10903 }
10904 }
10905
10906 next_offset += envelope_size;
10907 _next_ordinal_to_read += 1;
10908 if next_offset >= end_offset {
10909 return Ok(());
10910 }
10911
10912 while _next_ordinal_to_read < 4 {
10914 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10915 _next_ordinal_to_read += 1;
10916 next_offset += envelope_size;
10917 }
10918
10919 let next_out_of_line = decoder.next_out_of_line();
10920 let handles_before = decoder.remaining_handles();
10921 if let Some((inlined, num_bytes, num_handles)) =
10922 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10923 {
10924 let member_inline_size =
10925 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
10926 if inlined != (member_inline_size <= 4) {
10927 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10928 }
10929 let inner_offset;
10930 let mut inner_depth = depth.clone();
10931 if inlined {
10932 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10933 inner_offset = next_offset;
10934 } else {
10935 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10936 inner_depth.increment()?;
10937 }
10938 let val_ref =
10939 self.target_bss_authenticated.get_or_insert_with(|| fidl::new_empty!(bool, D));
10940 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
10941 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10942 {
10943 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10944 }
10945 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10946 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10947 }
10948 }
10949
10950 next_offset += envelope_size;
10951 _next_ordinal_to_read += 1;
10952 if next_offset >= end_offset {
10953 return Ok(());
10954 }
10955
10956 while _next_ordinal_to_read < 5 {
10958 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10959 _next_ordinal_to_read += 1;
10960 next_offset += envelope_size;
10961 }
10962
10963 let next_out_of_line = decoder.next_out_of_line();
10964 let handles_before = decoder.remaining_handles();
10965 if let Some((inlined, num_bytes, num_handles)) =
10966 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10967 {
10968 let member_inline_size =
10969 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
10970 if inlined != (member_inline_size <= 4) {
10971 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10972 }
10973 let inner_offset;
10974 let mut inner_depth = depth.clone();
10975 if inlined {
10976 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10977 inner_offset = next_offset;
10978 } else {
10979 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10980 inner_depth.increment()?;
10981 }
10982 let val_ref = self.association_id.get_or_insert_with(|| fidl::new_empty!(u16, D));
10983 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
10984 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10985 {
10986 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10987 }
10988 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10989 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10990 }
10991 }
10992
10993 next_offset += envelope_size;
10994 _next_ordinal_to_read += 1;
10995 if next_offset >= end_offset {
10996 return Ok(());
10997 }
10998
10999 while _next_ordinal_to_read < 6 {
11001 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11002 _next_ordinal_to_read += 1;
11003 next_offset += envelope_size;
11004 }
11005
11006 let next_out_of_line = decoder.next_out_of_line();
11007 let handles_before = decoder.remaining_handles();
11008 if let Some((inlined, num_bytes, num_handles)) =
11009 fidl::encoding::decode_envelope_header(decoder, next_offset)?
11010 {
11011 let member_inline_size = <fidl::encoding::UnboundedVector<u8> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
11012 if inlined != (member_inline_size <= 4) {
11013 return Err(fidl::Error::InvalidInlineBitInEnvelope);
11014 }
11015 let inner_offset;
11016 let mut inner_depth = depth.clone();
11017 if inlined {
11018 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
11019 inner_offset = next_offset;
11020 } else {
11021 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
11022 inner_depth.increment()?;
11023 }
11024 let val_ref = self.association_ies.get_or_insert_with(|| {
11025 fidl::new_empty!(fidl::encoding::UnboundedVector<u8>, D)
11026 });
11027 fidl::decode!(
11028 fidl::encoding::UnboundedVector<u8>,
11029 D,
11030 val_ref,
11031 decoder,
11032 inner_offset,
11033 inner_depth
11034 )?;
11035 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
11036 {
11037 return Err(fidl::Error::InvalidNumBytesInEnvelope);
11038 }
11039 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
11040 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
11041 }
11042 }
11043
11044 next_offset += envelope_size;
11045
11046 while next_offset < end_offset {
11048 _next_ordinal_to_read += 1;
11049 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11050 next_offset += envelope_size;
11051 }
11052
11053 Ok(())
11054 }
11055 }
11056
11057 impl WlanFullmacImplIfcRoamStartIndRequest {
11058 #[inline(always)]
11059 fn max_ordinal_present(&self) -> u64 {
11060 if let Some(_) = self.original_association_maintained {
11061 return 3;
11062 }
11063 if let Some(_) = self.selected_bss {
11064 return 2;
11065 }
11066 if let Some(_) = self.selected_bssid {
11067 return 1;
11068 }
11069 0
11070 }
11071 }
11072
11073 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcRoamStartIndRequest {
11074 type Borrowed<'a> = &'a Self;
11075 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
11076 value
11077 }
11078 }
11079
11080 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcRoamStartIndRequest {
11081 type Owned = Self;
11082
11083 #[inline(always)]
11084 fn inline_align(_context: fidl::encoding::Context) -> usize {
11085 8
11086 }
11087
11088 #[inline(always)]
11089 fn inline_size(_context: fidl::encoding::Context) -> usize {
11090 16
11091 }
11092 }
11093
11094 unsafe impl<D: fidl::encoding::ResourceDialect>
11095 fidl::encoding::Encode<WlanFullmacImplIfcRoamStartIndRequest, D>
11096 for &WlanFullmacImplIfcRoamStartIndRequest
11097 {
11098 unsafe fn encode(
11099 self,
11100 encoder: &mut fidl::encoding::Encoder<'_, D>,
11101 offset: usize,
11102 mut depth: fidl::encoding::Depth,
11103 ) -> fidl::Result<()> {
11104 encoder.debug_check_bounds::<WlanFullmacImplIfcRoamStartIndRequest>(offset);
11105 let max_ordinal: u64 = self.max_ordinal_present();
11107 encoder.write_num(max_ordinal, offset);
11108 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
11109 if max_ordinal == 0 {
11111 return Ok(());
11112 }
11113 depth.increment()?;
11114 let envelope_size = 8;
11115 let bytes_len = max_ordinal as usize * envelope_size;
11116 #[allow(unused_variables)]
11117 let offset = encoder.out_of_line_offset(bytes_len);
11118 let mut _prev_end_offset: usize = 0;
11119 if 1 > max_ordinal {
11120 return Ok(());
11121 }
11122
11123 let cur_offset: usize = (1 - 1) * envelope_size;
11126
11127 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
11129
11130 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
11135 self.selected_bssid
11136 .as_ref()
11137 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
11138 encoder,
11139 offset + cur_offset,
11140 depth,
11141 )?;
11142
11143 _prev_end_offset = cur_offset + envelope_size;
11144 if 2 > max_ordinal {
11145 return Ok(());
11146 }
11147
11148 let cur_offset: usize = (2 - 1) * envelope_size;
11151
11152 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
11154
11155 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_ieee80211_common::BssDescription, D>(
11160 self.selected_bss.as_ref().map(<fidl_fuchsia_wlan_ieee80211_common::BssDescription as fidl::encoding::ValueTypeMarker>::borrow),
11161 encoder, offset + cur_offset, depth
11162 )?;
11163
11164 _prev_end_offset = cur_offset + envelope_size;
11165 if 3 > max_ordinal {
11166 return Ok(());
11167 }
11168
11169 let cur_offset: usize = (3 - 1) * envelope_size;
11172
11173 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
11175
11176 fidl::encoding::encode_in_envelope_optional::<bool, D>(
11181 self.original_association_maintained
11182 .as_ref()
11183 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
11184 encoder,
11185 offset + cur_offset,
11186 depth,
11187 )?;
11188
11189 _prev_end_offset = cur_offset + envelope_size;
11190
11191 Ok(())
11192 }
11193 }
11194
11195 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
11196 for WlanFullmacImplIfcRoamStartIndRequest
11197 {
11198 #[inline(always)]
11199 fn new_empty() -> Self {
11200 Self::default()
11201 }
11202
11203 unsafe fn decode(
11204 &mut self,
11205 decoder: &mut fidl::encoding::Decoder<'_, D>,
11206 offset: usize,
11207 mut depth: fidl::encoding::Depth,
11208 ) -> fidl::Result<()> {
11209 decoder.debug_check_bounds::<Self>(offset);
11210 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
11211 None => return Err(fidl::Error::NotNullable),
11212 Some(len) => len,
11213 };
11214 if len == 0 {
11216 return Ok(());
11217 };
11218 depth.increment()?;
11219 let envelope_size = 8;
11220 let bytes_len = len * envelope_size;
11221 let offset = decoder.out_of_line_offset(bytes_len)?;
11222 let mut _next_ordinal_to_read = 0;
11224 let mut next_offset = offset;
11225 let end_offset = offset + bytes_len;
11226 _next_ordinal_to_read += 1;
11227 if next_offset >= end_offset {
11228 return Ok(());
11229 }
11230
11231 while _next_ordinal_to_read < 1 {
11233 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11234 _next_ordinal_to_read += 1;
11235 next_offset += envelope_size;
11236 }
11237
11238 let next_out_of_line = decoder.next_out_of_line();
11239 let handles_before = decoder.remaining_handles();
11240 if let Some((inlined, num_bytes, num_handles)) =
11241 fidl::encoding::decode_envelope_header(decoder, next_offset)?
11242 {
11243 let member_inline_size =
11244 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
11245 decoder.context,
11246 );
11247 if inlined != (member_inline_size <= 4) {
11248 return Err(fidl::Error::InvalidInlineBitInEnvelope);
11249 }
11250 let inner_offset;
11251 let mut inner_depth = depth.clone();
11252 if inlined {
11253 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
11254 inner_offset = next_offset;
11255 } else {
11256 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
11257 inner_depth.increment()?;
11258 }
11259 let val_ref = self
11260 .selected_bssid
11261 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
11262 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
11263 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
11264 {
11265 return Err(fidl::Error::InvalidNumBytesInEnvelope);
11266 }
11267 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
11268 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
11269 }
11270 }
11271
11272 next_offset += envelope_size;
11273 _next_ordinal_to_read += 1;
11274 if next_offset >= end_offset {
11275 return Ok(());
11276 }
11277
11278 while _next_ordinal_to_read < 2 {
11280 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11281 _next_ordinal_to_read += 1;
11282 next_offset += envelope_size;
11283 }
11284
11285 let next_out_of_line = decoder.next_out_of_line();
11286 let handles_before = decoder.remaining_handles();
11287 if let Some((inlined, num_bytes, num_handles)) =
11288 fidl::encoding::decode_envelope_header(decoder, next_offset)?
11289 {
11290 let member_inline_size = <fidl_fuchsia_wlan_ieee80211_common::BssDescription as fidl::encoding::TypeMarker>::inline_size(decoder.context);
11291 if inlined != (member_inline_size <= 4) {
11292 return Err(fidl::Error::InvalidInlineBitInEnvelope);
11293 }
11294 let inner_offset;
11295 let mut inner_depth = depth.clone();
11296 if inlined {
11297 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
11298 inner_offset = next_offset;
11299 } else {
11300 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
11301 inner_depth.increment()?;
11302 }
11303 let val_ref = self.selected_bss.get_or_insert_with(|| {
11304 fidl::new_empty!(fidl_fuchsia_wlan_ieee80211_common::BssDescription, D)
11305 });
11306 fidl::decode!(
11307 fidl_fuchsia_wlan_ieee80211_common::BssDescription,
11308 D,
11309 val_ref,
11310 decoder,
11311 inner_offset,
11312 inner_depth
11313 )?;
11314 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
11315 {
11316 return Err(fidl::Error::InvalidNumBytesInEnvelope);
11317 }
11318 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
11319 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
11320 }
11321 }
11322
11323 next_offset += envelope_size;
11324 _next_ordinal_to_read += 1;
11325 if next_offset >= end_offset {
11326 return Ok(());
11327 }
11328
11329 while _next_ordinal_to_read < 3 {
11331 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11332 _next_ordinal_to_read += 1;
11333 next_offset += envelope_size;
11334 }
11335
11336 let next_out_of_line = decoder.next_out_of_line();
11337 let handles_before = decoder.remaining_handles();
11338 if let Some((inlined, num_bytes, num_handles)) =
11339 fidl::encoding::decode_envelope_header(decoder, next_offset)?
11340 {
11341 let member_inline_size =
11342 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
11343 if inlined != (member_inline_size <= 4) {
11344 return Err(fidl::Error::InvalidInlineBitInEnvelope);
11345 }
11346 let inner_offset;
11347 let mut inner_depth = depth.clone();
11348 if inlined {
11349 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
11350 inner_offset = next_offset;
11351 } else {
11352 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
11353 inner_depth.increment()?;
11354 }
11355 let val_ref = self
11356 .original_association_maintained
11357 .get_or_insert_with(|| fidl::new_empty!(bool, D));
11358 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
11359 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
11360 {
11361 return Err(fidl::Error::InvalidNumBytesInEnvelope);
11362 }
11363 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
11364 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
11365 }
11366 }
11367
11368 next_offset += envelope_size;
11369
11370 while next_offset < end_offset {
11372 _next_ordinal_to_read += 1;
11373 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11374 next_offset += envelope_size;
11375 }
11376
11377 Ok(())
11378 }
11379 }
11380
11381 impl WlanFullmacImplIfcSaeHandshakeIndRequest {
11382 #[inline(always)]
11383 fn max_ordinal_present(&self) -> u64 {
11384 if let Some(_) = self.peer_sta_address {
11385 return 1;
11386 }
11387 0
11388 }
11389 }
11390
11391 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcSaeHandshakeIndRequest {
11392 type Borrowed<'a> = &'a Self;
11393 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
11394 value
11395 }
11396 }
11397
11398 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcSaeHandshakeIndRequest {
11399 type Owned = Self;
11400
11401 #[inline(always)]
11402 fn inline_align(_context: fidl::encoding::Context) -> usize {
11403 8
11404 }
11405
11406 #[inline(always)]
11407 fn inline_size(_context: fidl::encoding::Context) -> usize {
11408 16
11409 }
11410 }
11411
11412 unsafe impl<D: fidl::encoding::ResourceDialect>
11413 fidl::encoding::Encode<WlanFullmacImplIfcSaeHandshakeIndRequest, D>
11414 for &WlanFullmacImplIfcSaeHandshakeIndRequest
11415 {
11416 unsafe fn encode(
11417 self,
11418 encoder: &mut fidl::encoding::Encoder<'_, D>,
11419 offset: usize,
11420 mut depth: fidl::encoding::Depth,
11421 ) -> fidl::Result<()> {
11422 encoder.debug_check_bounds::<WlanFullmacImplIfcSaeHandshakeIndRequest>(offset);
11423 let max_ordinal: u64 = self.max_ordinal_present();
11425 encoder.write_num(max_ordinal, offset);
11426 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
11427 if max_ordinal == 0 {
11429 return Ok(());
11430 }
11431 depth.increment()?;
11432 let envelope_size = 8;
11433 let bytes_len = max_ordinal as usize * envelope_size;
11434 #[allow(unused_variables)]
11435 let offset = encoder.out_of_line_offset(bytes_len);
11436 let mut _prev_end_offset: usize = 0;
11437 if 1 > max_ordinal {
11438 return Ok(());
11439 }
11440
11441 let cur_offset: usize = (1 - 1) * envelope_size;
11444
11445 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
11447
11448 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
11453 self.peer_sta_address
11454 .as_ref()
11455 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
11456 encoder,
11457 offset + cur_offset,
11458 depth,
11459 )?;
11460
11461 _prev_end_offset = cur_offset + envelope_size;
11462
11463 Ok(())
11464 }
11465 }
11466
11467 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
11468 for WlanFullmacImplIfcSaeHandshakeIndRequest
11469 {
11470 #[inline(always)]
11471 fn new_empty() -> Self {
11472 Self::default()
11473 }
11474
11475 unsafe fn decode(
11476 &mut self,
11477 decoder: &mut fidl::encoding::Decoder<'_, D>,
11478 offset: usize,
11479 mut depth: fidl::encoding::Depth,
11480 ) -> fidl::Result<()> {
11481 decoder.debug_check_bounds::<Self>(offset);
11482 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
11483 None => return Err(fidl::Error::NotNullable),
11484 Some(len) => len,
11485 };
11486 if len == 0 {
11488 return Ok(());
11489 };
11490 depth.increment()?;
11491 let envelope_size = 8;
11492 let bytes_len = len * envelope_size;
11493 let offset = decoder.out_of_line_offset(bytes_len)?;
11494 let mut _next_ordinal_to_read = 0;
11496 let mut next_offset = offset;
11497 let end_offset = offset + bytes_len;
11498 _next_ordinal_to_read += 1;
11499 if next_offset >= end_offset {
11500 return Ok(());
11501 }
11502
11503 while _next_ordinal_to_read < 1 {
11505 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11506 _next_ordinal_to_read += 1;
11507 next_offset += envelope_size;
11508 }
11509
11510 let next_out_of_line = decoder.next_out_of_line();
11511 let handles_before = decoder.remaining_handles();
11512 if let Some((inlined, num_bytes, num_handles)) =
11513 fidl::encoding::decode_envelope_header(decoder, next_offset)?
11514 {
11515 let member_inline_size =
11516 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
11517 decoder.context,
11518 );
11519 if inlined != (member_inline_size <= 4) {
11520 return Err(fidl::Error::InvalidInlineBitInEnvelope);
11521 }
11522 let inner_offset;
11523 let mut inner_depth = depth.clone();
11524 if inlined {
11525 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
11526 inner_offset = next_offset;
11527 } else {
11528 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
11529 inner_depth.increment()?;
11530 }
11531 let val_ref = self
11532 .peer_sta_address
11533 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
11534 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
11535 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
11536 {
11537 return Err(fidl::Error::InvalidNumBytesInEnvelope);
11538 }
11539 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
11540 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
11541 }
11542 }
11543
11544 next_offset += envelope_size;
11545
11546 while next_offset < end_offset {
11548 _next_ordinal_to_read += 1;
11549 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11550 next_offset += envelope_size;
11551 }
11552
11553 Ok(())
11554 }
11555 }
11556
11557 impl WlanFullmacImplIfcStartConfRequest {
11558 #[inline(always)]
11559 fn max_ordinal_present(&self) -> u64 {
11560 if let Some(_) = self.result_code {
11561 return 1;
11562 }
11563 0
11564 }
11565 }
11566
11567 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcStartConfRequest {
11568 type Borrowed<'a> = &'a Self;
11569 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
11570 value
11571 }
11572 }
11573
11574 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcStartConfRequest {
11575 type Owned = Self;
11576
11577 #[inline(always)]
11578 fn inline_align(_context: fidl::encoding::Context) -> usize {
11579 8
11580 }
11581
11582 #[inline(always)]
11583 fn inline_size(_context: fidl::encoding::Context) -> usize {
11584 16
11585 }
11586 }
11587
11588 unsafe impl<D: fidl::encoding::ResourceDialect>
11589 fidl::encoding::Encode<WlanFullmacImplIfcStartConfRequest, D>
11590 for &WlanFullmacImplIfcStartConfRequest
11591 {
11592 unsafe fn encode(
11593 self,
11594 encoder: &mut fidl::encoding::Encoder<'_, D>,
11595 offset: usize,
11596 mut depth: fidl::encoding::Depth,
11597 ) -> fidl::Result<()> {
11598 encoder.debug_check_bounds::<WlanFullmacImplIfcStartConfRequest>(offset);
11599 let max_ordinal: u64 = self.max_ordinal_present();
11601 encoder.write_num(max_ordinal, offset);
11602 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
11603 if max_ordinal == 0 {
11605 return Ok(());
11606 }
11607 depth.increment()?;
11608 let envelope_size = 8;
11609 let bytes_len = max_ordinal as usize * envelope_size;
11610 #[allow(unused_variables)]
11611 let offset = encoder.out_of_line_offset(bytes_len);
11612 let mut _prev_end_offset: usize = 0;
11613 if 1 > max_ordinal {
11614 return Ok(());
11615 }
11616
11617 let cur_offset: usize = (1 - 1) * envelope_size;
11620
11621 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
11623
11624 fidl::encoding::encode_in_envelope_optional::<StartResult, D>(
11629 self.result_code
11630 .as_ref()
11631 .map(<StartResult as fidl::encoding::ValueTypeMarker>::borrow),
11632 encoder,
11633 offset + cur_offset,
11634 depth,
11635 )?;
11636
11637 _prev_end_offset = cur_offset + envelope_size;
11638
11639 Ok(())
11640 }
11641 }
11642
11643 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
11644 for WlanFullmacImplIfcStartConfRequest
11645 {
11646 #[inline(always)]
11647 fn new_empty() -> Self {
11648 Self::default()
11649 }
11650
11651 unsafe fn decode(
11652 &mut self,
11653 decoder: &mut fidl::encoding::Decoder<'_, D>,
11654 offset: usize,
11655 mut depth: fidl::encoding::Depth,
11656 ) -> fidl::Result<()> {
11657 decoder.debug_check_bounds::<Self>(offset);
11658 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
11659 None => return Err(fidl::Error::NotNullable),
11660 Some(len) => len,
11661 };
11662 if len == 0 {
11664 return Ok(());
11665 };
11666 depth.increment()?;
11667 let envelope_size = 8;
11668 let bytes_len = len * envelope_size;
11669 let offset = decoder.out_of_line_offset(bytes_len)?;
11670 let mut _next_ordinal_to_read = 0;
11672 let mut next_offset = offset;
11673 let end_offset = offset + bytes_len;
11674 _next_ordinal_to_read += 1;
11675 if next_offset >= end_offset {
11676 return Ok(());
11677 }
11678
11679 while _next_ordinal_to_read < 1 {
11681 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11682 _next_ordinal_to_read += 1;
11683 next_offset += envelope_size;
11684 }
11685
11686 let next_out_of_line = decoder.next_out_of_line();
11687 let handles_before = decoder.remaining_handles();
11688 if let Some((inlined, num_bytes, num_handles)) =
11689 fidl::encoding::decode_envelope_header(decoder, next_offset)?
11690 {
11691 let member_inline_size =
11692 <StartResult as fidl::encoding::TypeMarker>::inline_size(decoder.context);
11693 if inlined != (member_inline_size <= 4) {
11694 return Err(fidl::Error::InvalidInlineBitInEnvelope);
11695 }
11696 let inner_offset;
11697 let mut inner_depth = depth.clone();
11698 if inlined {
11699 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
11700 inner_offset = next_offset;
11701 } else {
11702 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
11703 inner_depth.increment()?;
11704 }
11705 let val_ref =
11706 self.result_code.get_or_insert_with(|| fidl::new_empty!(StartResult, D));
11707 fidl::decode!(StartResult, D, val_ref, decoder, inner_offset, inner_depth)?;
11708 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
11709 {
11710 return Err(fidl::Error::InvalidNumBytesInEnvelope);
11711 }
11712 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
11713 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
11714 }
11715 }
11716
11717 next_offset += envelope_size;
11718
11719 while next_offset < end_offset {
11721 _next_ordinal_to_read += 1;
11722 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11723 next_offset += envelope_size;
11724 }
11725
11726 Ok(())
11727 }
11728 }
11729
11730 impl WlanFullmacImplIfcStopConfRequest {
11731 #[inline(always)]
11732 fn max_ordinal_present(&self) -> u64 {
11733 if let Some(_) = self.result_code {
11734 return 1;
11735 }
11736 0
11737 }
11738 }
11739
11740 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcStopConfRequest {
11741 type Borrowed<'a> = &'a Self;
11742 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
11743 value
11744 }
11745 }
11746
11747 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcStopConfRequest {
11748 type Owned = Self;
11749
11750 #[inline(always)]
11751 fn inline_align(_context: fidl::encoding::Context) -> usize {
11752 8
11753 }
11754
11755 #[inline(always)]
11756 fn inline_size(_context: fidl::encoding::Context) -> usize {
11757 16
11758 }
11759 }
11760
11761 unsafe impl<D: fidl::encoding::ResourceDialect>
11762 fidl::encoding::Encode<WlanFullmacImplIfcStopConfRequest, D>
11763 for &WlanFullmacImplIfcStopConfRequest
11764 {
11765 unsafe fn encode(
11766 self,
11767 encoder: &mut fidl::encoding::Encoder<'_, D>,
11768 offset: usize,
11769 mut depth: fidl::encoding::Depth,
11770 ) -> fidl::Result<()> {
11771 encoder.debug_check_bounds::<WlanFullmacImplIfcStopConfRequest>(offset);
11772 let max_ordinal: u64 = self.max_ordinal_present();
11774 encoder.write_num(max_ordinal, offset);
11775 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
11776 if max_ordinal == 0 {
11778 return Ok(());
11779 }
11780 depth.increment()?;
11781 let envelope_size = 8;
11782 let bytes_len = max_ordinal as usize * envelope_size;
11783 #[allow(unused_variables)]
11784 let offset = encoder.out_of_line_offset(bytes_len);
11785 let mut _prev_end_offset: usize = 0;
11786 if 1 > max_ordinal {
11787 return Ok(());
11788 }
11789
11790 let cur_offset: usize = (1 - 1) * envelope_size;
11793
11794 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
11796
11797 fidl::encoding::encode_in_envelope_optional::<StopResult, D>(
11802 self.result_code
11803 .as_ref()
11804 .map(<StopResult as fidl::encoding::ValueTypeMarker>::borrow),
11805 encoder,
11806 offset + cur_offset,
11807 depth,
11808 )?;
11809
11810 _prev_end_offset = cur_offset + envelope_size;
11811
11812 Ok(())
11813 }
11814 }
11815
11816 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
11817 for WlanFullmacImplIfcStopConfRequest
11818 {
11819 #[inline(always)]
11820 fn new_empty() -> Self {
11821 Self::default()
11822 }
11823
11824 unsafe fn decode(
11825 &mut self,
11826 decoder: &mut fidl::encoding::Decoder<'_, D>,
11827 offset: usize,
11828 mut depth: fidl::encoding::Depth,
11829 ) -> fidl::Result<()> {
11830 decoder.debug_check_bounds::<Self>(offset);
11831 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
11832 None => return Err(fidl::Error::NotNullable),
11833 Some(len) => len,
11834 };
11835 if len == 0 {
11837 return Ok(());
11838 };
11839 depth.increment()?;
11840 let envelope_size = 8;
11841 let bytes_len = len * envelope_size;
11842 let offset = decoder.out_of_line_offset(bytes_len)?;
11843 let mut _next_ordinal_to_read = 0;
11845 let mut next_offset = offset;
11846 let end_offset = offset + bytes_len;
11847 _next_ordinal_to_read += 1;
11848 if next_offset >= end_offset {
11849 return Ok(());
11850 }
11851
11852 while _next_ordinal_to_read < 1 {
11854 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11855 _next_ordinal_to_read += 1;
11856 next_offset += envelope_size;
11857 }
11858
11859 let next_out_of_line = decoder.next_out_of_line();
11860 let handles_before = decoder.remaining_handles();
11861 if let Some((inlined, num_bytes, num_handles)) =
11862 fidl::encoding::decode_envelope_header(decoder, next_offset)?
11863 {
11864 let member_inline_size =
11865 <StopResult as fidl::encoding::TypeMarker>::inline_size(decoder.context);
11866 if inlined != (member_inline_size <= 4) {
11867 return Err(fidl::Error::InvalidInlineBitInEnvelope);
11868 }
11869 let inner_offset;
11870 let mut inner_depth = depth.clone();
11871 if inlined {
11872 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
11873 inner_offset = next_offset;
11874 } else {
11875 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
11876 inner_depth.increment()?;
11877 }
11878 let val_ref =
11879 self.result_code.get_or_insert_with(|| fidl::new_empty!(StopResult, D));
11880 fidl::decode!(StopResult, D, val_ref, decoder, inner_offset, inner_depth)?;
11881 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
11882 {
11883 return Err(fidl::Error::InvalidNumBytesInEnvelope);
11884 }
11885 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
11886 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
11887 }
11888 }
11889
11890 next_offset += envelope_size;
11891
11892 while next_offset < end_offset {
11894 _next_ordinal_to_read += 1;
11895 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11896 next_offset += envelope_size;
11897 }
11898
11899 Ok(())
11900 }
11901 }
11902
11903 impl WlanFullmacImplInstallApfPacketFilterRequest {
11904 #[inline(always)]
11905 fn max_ordinal_present(&self) -> u64 {
11906 if let Some(_) = self.program {
11907 return 1;
11908 }
11909 0
11910 }
11911 }
11912
11913 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplInstallApfPacketFilterRequest {
11914 type Borrowed<'a> = &'a Self;
11915 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
11916 value
11917 }
11918 }
11919
11920 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplInstallApfPacketFilterRequest {
11921 type Owned = Self;
11922
11923 #[inline(always)]
11924 fn inline_align(_context: fidl::encoding::Context) -> usize {
11925 8
11926 }
11927
11928 #[inline(always)]
11929 fn inline_size(_context: fidl::encoding::Context) -> usize {
11930 16
11931 }
11932 }
11933
11934 unsafe impl<D: fidl::encoding::ResourceDialect>
11935 fidl::encoding::Encode<WlanFullmacImplInstallApfPacketFilterRequest, D>
11936 for &WlanFullmacImplInstallApfPacketFilterRequest
11937 {
11938 unsafe fn encode(
11939 self,
11940 encoder: &mut fidl::encoding::Encoder<'_, D>,
11941 offset: usize,
11942 mut depth: fidl::encoding::Depth,
11943 ) -> fidl::Result<()> {
11944 encoder.debug_check_bounds::<WlanFullmacImplInstallApfPacketFilterRequest>(offset);
11945 let max_ordinal: u64 = self.max_ordinal_present();
11947 encoder.write_num(max_ordinal, offset);
11948 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
11949 if max_ordinal == 0 {
11951 return Ok(());
11952 }
11953 depth.increment()?;
11954 let envelope_size = 8;
11955 let bytes_len = max_ordinal as usize * envelope_size;
11956 #[allow(unused_variables)]
11957 let offset = encoder.out_of_line_offset(bytes_len);
11958 let mut _prev_end_offset: usize = 0;
11959 if 1 > max_ordinal {
11960 return Ok(());
11961 }
11962
11963 let cur_offset: usize = (1 - 1) * envelope_size;
11966
11967 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
11969
11970 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<u8>, D>(
11975 self.program.as_ref().map(<fidl::encoding::UnboundedVector<u8> as fidl::encoding::ValueTypeMarker>::borrow),
11976 encoder, offset + cur_offset, depth
11977 )?;
11978
11979 _prev_end_offset = cur_offset + envelope_size;
11980
11981 Ok(())
11982 }
11983 }
11984
11985 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
11986 for WlanFullmacImplInstallApfPacketFilterRequest
11987 {
11988 #[inline(always)]
11989 fn new_empty() -> Self {
11990 Self::default()
11991 }
11992
11993 unsafe fn decode(
11994 &mut self,
11995 decoder: &mut fidl::encoding::Decoder<'_, D>,
11996 offset: usize,
11997 mut depth: fidl::encoding::Depth,
11998 ) -> fidl::Result<()> {
11999 decoder.debug_check_bounds::<Self>(offset);
12000 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
12001 None => return Err(fidl::Error::NotNullable),
12002 Some(len) => len,
12003 };
12004 if len == 0 {
12006 return Ok(());
12007 };
12008 depth.increment()?;
12009 let envelope_size = 8;
12010 let bytes_len = len * envelope_size;
12011 let offset = decoder.out_of_line_offset(bytes_len)?;
12012 let mut _next_ordinal_to_read = 0;
12014 let mut next_offset = offset;
12015 let end_offset = offset + bytes_len;
12016 _next_ordinal_to_read += 1;
12017 if next_offset >= end_offset {
12018 return Ok(());
12019 }
12020
12021 while _next_ordinal_to_read < 1 {
12023 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12024 _next_ordinal_to_read += 1;
12025 next_offset += envelope_size;
12026 }
12027
12028 let next_out_of_line = decoder.next_out_of_line();
12029 let handles_before = decoder.remaining_handles();
12030 if let Some((inlined, num_bytes, num_handles)) =
12031 fidl::encoding::decode_envelope_header(decoder, next_offset)?
12032 {
12033 let member_inline_size = <fidl::encoding::UnboundedVector<u8> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
12034 if inlined != (member_inline_size <= 4) {
12035 return Err(fidl::Error::InvalidInlineBitInEnvelope);
12036 }
12037 let inner_offset;
12038 let mut inner_depth = depth.clone();
12039 if inlined {
12040 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
12041 inner_offset = next_offset;
12042 } else {
12043 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
12044 inner_depth.increment()?;
12045 }
12046 let val_ref = self.program.get_or_insert_with(|| {
12047 fidl::new_empty!(fidl::encoding::UnboundedVector<u8>, D)
12048 });
12049 fidl::decode!(
12050 fidl::encoding::UnboundedVector<u8>,
12051 D,
12052 val_ref,
12053 decoder,
12054 inner_offset,
12055 inner_depth
12056 )?;
12057 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
12058 {
12059 return Err(fidl::Error::InvalidNumBytesInEnvelope);
12060 }
12061 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
12062 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
12063 }
12064 }
12065
12066 next_offset += envelope_size;
12067
12068 while next_offset < end_offset {
12070 _next_ordinal_to_read += 1;
12071 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12072 next_offset += envelope_size;
12073 }
12074
12075 Ok(())
12076 }
12077 }
12078
12079 impl WlanFullmacImplOnLinkStateChangedRequest {
12080 #[inline(always)]
12081 fn max_ordinal_present(&self) -> u64 {
12082 if let Some(_) = self.online {
12083 return 1;
12084 }
12085 0
12086 }
12087 }
12088
12089 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplOnLinkStateChangedRequest {
12090 type Borrowed<'a> = &'a Self;
12091 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
12092 value
12093 }
12094 }
12095
12096 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplOnLinkStateChangedRequest {
12097 type Owned = Self;
12098
12099 #[inline(always)]
12100 fn inline_align(_context: fidl::encoding::Context) -> usize {
12101 8
12102 }
12103
12104 #[inline(always)]
12105 fn inline_size(_context: fidl::encoding::Context) -> usize {
12106 16
12107 }
12108 }
12109
12110 unsafe impl<D: fidl::encoding::ResourceDialect>
12111 fidl::encoding::Encode<WlanFullmacImplOnLinkStateChangedRequest, D>
12112 for &WlanFullmacImplOnLinkStateChangedRequest
12113 {
12114 unsafe fn encode(
12115 self,
12116 encoder: &mut fidl::encoding::Encoder<'_, D>,
12117 offset: usize,
12118 mut depth: fidl::encoding::Depth,
12119 ) -> fidl::Result<()> {
12120 encoder.debug_check_bounds::<WlanFullmacImplOnLinkStateChangedRequest>(offset);
12121 let max_ordinal: u64 = self.max_ordinal_present();
12123 encoder.write_num(max_ordinal, offset);
12124 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
12125 if max_ordinal == 0 {
12127 return Ok(());
12128 }
12129 depth.increment()?;
12130 let envelope_size = 8;
12131 let bytes_len = max_ordinal as usize * envelope_size;
12132 #[allow(unused_variables)]
12133 let offset = encoder.out_of_line_offset(bytes_len);
12134 let mut _prev_end_offset: usize = 0;
12135 if 1 > max_ordinal {
12136 return Ok(());
12137 }
12138
12139 let cur_offset: usize = (1 - 1) * envelope_size;
12142
12143 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12145
12146 fidl::encoding::encode_in_envelope_optional::<bool, D>(
12151 self.online.as_ref().map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
12152 encoder,
12153 offset + cur_offset,
12154 depth,
12155 )?;
12156
12157 _prev_end_offset = cur_offset + envelope_size;
12158
12159 Ok(())
12160 }
12161 }
12162
12163 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
12164 for WlanFullmacImplOnLinkStateChangedRequest
12165 {
12166 #[inline(always)]
12167 fn new_empty() -> Self {
12168 Self::default()
12169 }
12170
12171 unsafe fn decode(
12172 &mut self,
12173 decoder: &mut fidl::encoding::Decoder<'_, D>,
12174 offset: usize,
12175 mut depth: fidl::encoding::Depth,
12176 ) -> fidl::Result<()> {
12177 decoder.debug_check_bounds::<Self>(offset);
12178 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
12179 None => return Err(fidl::Error::NotNullable),
12180 Some(len) => len,
12181 };
12182 if len == 0 {
12184 return Ok(());
12185 };
12186 depth.increment()?;
12187 let envelope_size = 8;
12188 let bytes_len = len * envelope_size;
12189 let offset = decoder.out_of_line_offset(bytes_len)?;
12190 let mut _next_ordinal_to_read = 0;
12192 let mut next_offset = offset;
12193 let end_offset = offset + bytes_len;
12194 _next_ordinal_to_read += 1;
12195 if next_offset >= end_offset {
12196 return Ok(());
12197 }
12198
12199 while _next_ordinal_to_read < 1 {
12201 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12202 _next_ordinal_to_read += 1;
12203 next_offset += envelope_size;
12204 }
12205
12206 let next_out_of_line = decoder.next_out_of_line();
12207 let handles_before = decoder.remaining_handles();
12208 if let Some((inlined, num_bytes, num_handles)) =
12209 fidl::encoding::decode_envelope_header(decoder, next_offset)?
12210 {
12211 let member_inline_size =
12212 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
12213 if inlined != (member_inline_size <= 4) {
12214 return Err(fidl::Error::InvalidInlineBitInEnvelope);
12215 }
12216 let inner_offset;
12217 let mut inner_depth = depth.clone();
12218 if inlined {
12219 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
12220 inner_offset = next_offset;
12221 } else {
12222 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
12223 inner_depth.increment()?;
12224 }
12225 let val_ref = self.online.get_or_insert_with(|| fidl::new_empty!(bool, D));
12226 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
12227 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
12228 {
12229 return Err(fidl::Error::InvalidNumBytesInEnvelope);
12230 }
12231 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
12232 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
12233 }
12234 }
12235
12236 next_offset += envelope_size;
12237
12238 while next_offset < end_offset {
12240 _next_ordinal_to_read += 1;
12241 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12242 next_offset += envelope_size;
12243 }
12244
12245 Ok(())
12246 }
12247 }
12248
12249 impl WlanFullmacImplReconnectRequest {
12250 #[inline(always)]
12251 fn max_ordinal_present(&self) -> u64 {
12252 if let Some(_) = self.peer_sta_address {
12253 return 1;
12254 }
12255 0
12256 }
12257 }
12258
12259 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplReconnectRequest {
12260 type Borrowed<'a> = &'a Self;
12261 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
12262 value
12263 }
12264 }
12265
12266 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplReconnectRequest {
12267 type Owned = Self;
12268
12269 #[inline(always)]
12270 fn inline_align(_context: fidl::encoding::Context) -> usize {
12271 8
12272 }
12273
12274 #[inline(always)]
12275 fn inline_size(_context: fidl::encoding::Context) -> usize {
12276 16
12277 }
12278 }
12279
12280 unsafe impl<D: fidl::encoding::ResourceDialect>
12281 fidl::encoding::Encode<WlanFullmacImplReconnectRequest, D>
12282 for &WlanFullmacImplReconnectRequest
12283 {
12284 unsafe fn encode(
12285 self,
12286 encoder: &mut fidl::encoding::Encoder<'_, D>,
12287 offset: usize,
12288 mut depth: fidl::encoding::Depth,
12289 ) -> fidl::Result<()> {
12290 encoder.debug_check_bounds::<WlanFullmacImplReconnectRequest>(offset);
12291 let max_ordinal: u64 = self.max_ordinal_present();
12293 encoder.write_num(max_ordinal, offset);
12294 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
12295 if max_ordinal == 0 {
12297 return Ok(());
12298 }
12299 depth.increment()?;
12300 let envelope_size = 8;
12301 let bytes_len = max_ordinal as usize * envelope_size;
12302 #[allow(unused_variables)]
12303 let offset = encoder.out_of_line_offset(bytes_len);
12304 let mut _prev_end_offset: usize = 0;
12305 if 1 > max_ordinal {
12306 return Ok(());
12307 }
12308
12309 let cur_offset: usize = (1 - 1) * envelope_size;
12312
12313 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12315
12316 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
12321 self.peer_sta_address
12322 .as_ref()
12323 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
12324 encoder,
12325 offset + cur_offset,
12326 depth,
12327 )?;
12328
12329 _prev_end_offset = cur_offset + envelope_size;
12330
12331 Ok(())
12332 }
12333 }
12334
12335 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
12336 for WlanFullmacImplReconnectRequest
12337 {
12338 #[inline(always)]
12339 fn new_empty() -> Self {
12340 Self::default()
12341 }
12342
12343 unsafe fn decode(
12344 &mut self,
12345 decoder: &mut fidl::encoding::Decoder<'_, D>,
12346 offset: usize,
12347 mut depth: fidl::encoding::Depth,
12348 ) -> fidl::Result<()> {
12349 decoder.debug_check_bounds::<Self>(offset);
12350 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
12351 None => return Err(fidl::Error::NotNullable),
12352 Some(len) => len,
12353 };
12354 if len == 0 {
12356 return Ok(());
12357 };
12358 depth.increment()?;
12359 let envelope_size = 8;
12360 let bytes_len = len * envelope_size;
12361 let offset = decoder.out_of_line_offset(bytes_len)?;
12362 let mut _next_ordinal_to_read = 0;
12364 let mut next_offset = offset;
12365 let end_offset = offset + bytes_len;
12366 _next_ordinal_to_read += 1;
12367 if next_offset >= end_offset {
12368 return Ok(());
12369 }
12370
12371 while _next_ordinal_to_read < 1 {
12373 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12374 _next_ordinal_to_read += 1;
12375 next_offset += envelope_size;
12376 }
12377
12378 let next_out_of_line = decoder.next_out_of_line();
12379 let handles_before = decoder.remaining_handles();
12380 if let Some((inlined, num_bytes, num_handles)) =
12381 fidl::encoding::decode_envelope_header(decoder, next_offset)?
12382 {
12383 let member_inline_size =
12384 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
12385 decoder.context,
12386 );
12387 if inlined != (member_inline_size <= 4) {
12388 return Err(fidl::Error::InvalidInlineBitInEnvelope);
12389 }
12390 let inner_offset;
12391 let mut inner_depth = depth.clone();
12392 if inlined {
12393 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
12394 inner_offset = next_offset;
12395 } else {
12396 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
12397 inner_depth.increment()?;
12398 }
12399 let val_ref = self
12400 .peer_sta_address
12401 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
12402 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
12403 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
12404 {
12405 return Err(fidl::Error::InvalidNumBytesInEnvelope);
12406 }
12407 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
12408 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
12409 }
12410 }
12411
12412 next_offset += envelope_size;
12413
12414 while next_offset < end_offset {
12416 _next_ordinal_to_read += 1;
12417 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12418 next_offset += envelope_size;
12419 }
12420
12421 Ok(())
12422 }
12423 }
12424
12425 impl WlanFullmacImplRoamRequest {
12426 #[inline(always)]
12427 fn max_ordinal_present(&self) -> u64 {
12428 if let Some(_) = self.selected_bss {
12429 return 1;
12430 }
12431 0
12432 }
12433 }
12434
12435 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplRoamRequest {
12436 type Borrowed<'a> = &'a Self;
12437 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
12438 value
12439 }
12440 }
12441
12442 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplRoamRequest {
12443 type Owned = Self;
12444
12445 #[inline(always)]
12446 fn inline_align(_context: fidl::encoding::Context) -> usize {
12447 8
12448 }
12449
12450 #[inline(always)]
12451 fn inline_size(_context: fidl::encoding::Context) -> usize {
12452 16
12453 }
12454 }
12455
12456 unsafe impl<D: fidl::encoding::ResourceDialect>
12457 fidl::encoding::Encode<WlanFullmacImplRoamRequest, D> for &WlanFullmacImplRoamRequest
12458 {
12459 unsafe fn encode(
12460 self,
12461 encoder: &mut fidl::encoding::Encoder<'_, D>,
12462 offset: usize,
12463 mut depth: fidl::encoding::Depth,
12464 ) -> fidl::Result<()> {
12465 encoder.debug_check_bounds::<WlanFullmacImplRoamRequest>(offset);
12466 let max_ordinal: u64 = self.max_ordinal_present();
12468 encoder.write_num(max_ordinal, offset);
12469 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
12470 if max_ordinal == 0 {
12472 return Ok(());
12473 }
12474 depth.increment()?;
12475 let envelope_size = 8;
12476 let bytes_len = max_ordinal as usize * envelope_size;
12477 #[allow(unused_variables)]
12478 let offset = encoder.out_of_line_offset(bytes_len);
12479 let mut _prev_end_offset: usize = 0;
12480 if 1 > max_ordinal {
12481 return Ok(());
12482 }
12483
12484 let cur_offset: usize = (1 - 1) * envelope_size;
12487
12488 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12490
12491 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_ieee80211_common::BssDescription, D>(
12496 self.selected_bss.as_ref().map(<fidl_fuchsia_wlan_ieee80211_common::BssDescription as fidl::encoding::ValueTypeMarker>::borrow),
12497 encoder, offset + cur_offset, depth
12498 )?;
12499
12500 _prev_end_offset = cur_offset + envelope_size;
12501
12502 Ok(())
12503 }
12504 }
12505
12506 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
12507 for WlanFullmacImplRoamRequest
12508 {
12509 #[inline(always)]
12510 fn new_empty() -> Self {
12511 Self::default()
12512 }
12513
12514 unsafe fn decode(
12515 &mut self,
12516 decoder: &mut fidl::encoding::Decoder<'_, D>,
12517 offset: usize,
12518 mut depth: fidl::encoding::Depth,
12519 ) -> fidl::Result<()> {
12520 decoder.debug_check_bounds::<Self>(offset);
12521 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
12522 None => return Err(fidl::Error::NotNullable),
12523 Some(len) => len,
12524 };
12525 if len == 0 {
12527 return Ok(());
12528 };
12529 depth.increment()?;
12530 let envelope_size = 8;
12531 let bytes_len = len * envelope_size;
12532 let offset = decoder.out_of_line_offset(bytes_len)?;
12533 let mut _next_ordinal_to_read = 0;
12535 let mut next_offset = offset;
12536 let end_offset = offset + bytes_len;
12537 _next_ordinal_to_read += 1;
12538 if next_offset >= end_offset {
12539 return Ok(());
12540 }
12541
12542 while _next_ordinal_to_read < 1 {
12544 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12545 _next_ordinal_to_read += 1;
12546 next_offset += envelope_size;
12547 }
12548
12549 let next_out_of_line = decoder.next_out_of_line();
12550 let handles_before = decoder.remaining_handles();
12551 if let Some((inlined, num_bytes, num_handles)) =
12552 fidl::encoding::decode_envelope_header(decoder, next_offset)?
12553 {
12554 let member_inline_size = <fidl_fuchsia_wlan_ieee80211_common::BssDescription as fidl::encoding::TypeMarker>::inline_size(decoder.context);
12555 if inlined != (member_inline_size <= 4) {
12556 return Err(fidl::Error::InvalidInlineBitInEnvelope);
12557 }
12558 let inner_offset;
12559 let mut inner_depth = depth.clone();
12560 if inlined {
12561 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
12562 inner_offset = next_offset;
12563 } else {
12564 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
12565 inner_depth.increment()?;
12566 }
12567 let val_ref = self.selected_bss.get_or_insert_with(|| {
12568 fidl::new_empty!(fidl_fuchsia_wlan_ieee80211_common::BssDescription, D)
12569 });
12570 fidl::decode!(
12571 fidl_fuchsia_wlan_ieee80211_common::BssDescription,
12572 D,
12573 val_ref,
12574 decoder,
12575 inner_offset,
12576 inner_depth
12577 )?;
12578 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
12579 {
12580 return Err(fidl::Error::InvalidNumBytesInEnvelope);
12581 }
12582 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
12583 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
12584 }
12585 }
12586
12587 next_offset += envelope_size;
12588
12589 while next_offset < end_offset {
12591 _next_ordinal_to_read += 1;
12592 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12593 next_offset += envelope_size;
12594 }
12595
12596 Ok(())
12597 }
12598 }
12599
12600 impl WlanFullmacImplSaeHandshakeRespRequest {
12601 #[inline(always)]
12602 fn max_ordinal_present(&self) -> u64 {
12603 if let Some(_) = self.status_code {
12604 return 2;
12605 }
12606 if let Some(_) = self.peer_sta_address {
12607 return 1;
12608 }
12609 0
12610 }
12611 }
12612
12613 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplSaeHandshakeRespRequest {
12614 type Borrowed<'a> = &'a Self;
12615 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
12616 value
12617 }
12618 }
12619
12620 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplSaeHandshakeRespRequest {
12621 type Owned = Self;
12622
12623 #[inline(always)]
12624 fn inline_align(_context: fidl::encoding::Context) -> usize {
12625 8
12626 }
12627
12628 #[inline(always)]
12629 fn inline_size(_context: fidl::encoding::Context) -> usize {
12630 16
12631 }
12632 }
12633
12634 unsafe impl<D: fidl::encoding::ResourceDialect>
12635 fidl::encoding::Encode<WlanFullmacImplSaeHandshakeRespRequest, D>
12636 for &WlanFullmacImplSaeHandshakeRespRequest
12637 {
12638 unsafe fn encode(
12639 self,
12640 encoder: &mut fidl::encoding::Encoder<'_, D>,
12641 offset: usize,
12642 mut depth: fidl::encoding::Depth,
12643 ) -> fidl::Result<()> {
12644 encoder.debug_check_bounds::<WlanFullmacImplSaeHandshakeRespRequest>(offset);
12645 let max_ordinal: u64 = self.max_ordinal_present();
12647 encoder.write_num(max_ordinal, offset);
12648 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
12649 if max_ordinal == 0 {
12651 return Ok(());
12652 }
12653 depth.increment()?;
12654 let envelope_size = 8;
12655 let bytes_len = max_ordinal as usize * envelope_size;
12656 #[allow(unused_variables)]
12657 let offset = encoder.out_of_line_offset(bytes_len);
12658 let mut _prev_end_offset: usize = 0;
12659 if 1 > max_ordinal {
12660 return Ok(());
12661 }
12662
12663 let cur_offset: usize = (1 - 1) * envelope_size;
12666
12667 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12669
12670 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
12675 self.peer_sta_address
12676 .as_ref()
12677 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
12678 encoder,
12679 offset + cur_offset,
12680 depth,
12681 )?;
12682
12683 _prev_end_offset = cur_offset + envelope_size;
12684 if 2 > max_ordinal {
12685 return Ok(());
12686 }
12687
12688 let cur_offset: usize = (2 - 1) * envelope_size;
12691
12692 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12694
12695 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_ieee80211_common::StatusCode, D>(
12700 self.status_code.as_ref().map(<fidl_fuchsia_wlan_ieee80211_common::StatusCode as fidl::encoding::ValueTypeMarker>::borrow),
12701 encoder, offset + cur_offset, depth
12702 )?;
12703
12704 _prev_end_offset = cur_offset + envelope_size;
12705
12706 Ok(())
12707 }
12708 }
12709
12710 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
12711 for WlanFullmacImplSaeHandshakeRespRequest
12712 {
12713 #[inline(always)]
12714 fn new_empty() -> Self {
12715 Self::default()
12716 }
12717
12718 unsafe fn decode(
12719 &mut self,
12720 decoder: &mut fidl::encoding::Decoder<'_, D>,
12721 offset: usize,
12722 mut depth: fidl::encoding::Depth,
12723 ) -> fidl::Result<()> {
12724 decoder.debug_check_bounds::<Self>(offset);
12725 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
12726 None => return Err(fidl::Error::NotNullable),
12727 Some(len) => len,
12728 };
12729 if len == 0 {
12731 return Ok(());
12732 };
12733 depth.increment()?;
12734 let envelope_size = 8;
12735 let bytes_len = len * envelope_size;
12736 let offset = decoder.out_of_line_offset(bytes_len)?;
12737 let mut _next_ordinal_to_read = 0;
12739 let mut next_offset = offset;
12740 let end_offset = offset + bytes_len;
12741 _next_ordinal_to_read += 1;
12742 if next_offset >= end_offset {
12743 return Ok(());
12744 }
12745
12746 while _next_ordinal_to_read < 1 {
12748 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12749 _next_ordinal_to_read += 1;
12750 next_offset += envelope_size;
12751 }
12752
12753 let next_out_of_line = decoder.next_out_of_line();
12754 let handles_before = decoder.remaining_handles();
12755 if let Some((inlined, num_bytes, num_handles)) =
12756 fidl::encoding::decode_envelope_header(decoder, next_offset)?
12757 {
12758 let member_inline_size =
12759 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
12760 decoder.context,
12761 );
12762 if inlined != (member_inline_size <= 4) {
12763 return Err(fidl::Error::InvalidInlineBitInEnvelope);
12764 }
12765 let inner_offset;
12766 let mut inner_depth = depth.clone();
12767 if inlined {
12768 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
12769 inner_offset = next_offset;
12770 } else {
12771 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
12772 inner_depth.increment()?;
12773 }
12774 let val_ref = self
12775 .peer_sta_address
12776 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
12777 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
12778 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
12779 {
12780 return Err(fidl::Error::InvalidNumBytesInEnvelope);
12781 }
12782 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
12783 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
12784 }
12785 }
12786
12787 next_offset += envelope_size;
12788 _next_ordinal_to_read += 1;
12789 if next_offset >= end_offset {
12790 return Ok(());
12791 }
12792
12793 while _next_ordinal_to_read < 2 {
12795 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12796 _next_ordinal_to_read += 1;
12797 next_offset += envelope_size;
12798 }
12799
12800 let next_out_of_line = decoder.next_out_of_line();
12801 let handles_before = decoder.remaining_handles();
12802 if let Some((inlined, num_bytes, num_handles)) =
12803 fidl::encoding::decode_envelope_header(decoder, next_offset)?
12804 {
12805 let member_inline_size = <fidl_fuchsia_wlan_ieee80211_common::StatusCode as fidl::encoding::TypeMarker>::inline_size(decoder.context);
12806 if inlined != (member_inline_size <= 4) {
12807 return Err(fidl::Error::InvalidInlineBitInEnvelope);
12808 }
12809 let inner_offset;
12810 let mut inner_depth = depth.clone();
12811 if inlined {
12812 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
12813 inner_offset = next_offset;
12814 } else {
12815 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
12816 inner_depth.increment()?;
12817 }
12818 let val_ref = self.status_code.get_or_insert_with(|| {
12819 fidl::new_empty!(fidl_fuchsia_wlan_ieee80211_common::StatusCode, D)
12820 });
12821 fidl::decode!(
12822 fidl_fuchsia_wlan_ieee80211_common::StatusCode,
12823 D,
12824 val_ref,
12825 decoder,
12826 inner_offset,
12827 inner_depth
12828 )?;
12829 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
12830 {
12831 return Err(fidl::Error::InvalidNumBytesInEnvelope);
12832 }
12833 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
12834 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
12835 }
12836 }
12837
12838 next_offset += envelope_size;
12839
12840 while next_offset < end_offset {
12842 _next_ordinal_to_read += 1;
12843 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12844 next_offset += envelope_size;
12845 }
12846
12847 Ok(())
12848 }
12849 }
12850
12851 impl WlanFullmacImplSetApfPacketFilterEnabledRequest {
12852 #[inline(always)]
12853 fn max_ordinal_present(&self) -> u64 {
12854 if let Some(_) = self.enabled {
12855 return 1;
12856 }
12857 0
12858 }
12859 }
12860
12861 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplSetApfPacketFilterEnabledRequest {
12862 type Borrowed<'a> = &'a Self;
12863 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
12864 value
12865 }
12866 }
12867
12868 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplSetApfPacketFilterEnabledRequest {
12869 type Owned = Self;
12870
12871 #[inline(always)]
12872 fn inline_align(_context: fidl::encoding::Context) -> usize {
12873 8
12874 }
12875
12876 #[inline(always)]
12877 fn inline_size(_context: fidl::encoding::Context) -> usize {
12878 16
12879 }
12880 }
12881
12882 unsafe impl<D: fidl::encoding::ResourceDialect>
12883 fidl::encoding::Encode<WlanFullmacImplSetApfPacketFilterEnabledRequest, D>
12884 for &WlanFullmacImplSetApfPacketFilterEnabledRequest
12885 {
12886 unsafe fn encode(
12887 self,
12888 encoder: &mut fidl::encoding::Encoder<'_, D>,
12889 offset: usize,
12890 mut depth: fidl::encoding::Depth,
12891 ) -> fidl::Result<()> {
12892 encoder.debug_check_bounds::<WlanFullmacImplSetApfPacketFilterEnabledRequest>(offset);
12893 let max_ordinal: u64 = self.max_ordinal_present();
12895 encoder.write_num(max_ordinal, offset);
12896 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
12897 if max_ordinal == 0 {
12899 return Ok(());
12900 }
12901 depth.increment()?;
12902 let envelope_size = 8;
12903 let bytes_len = max_ordinal as usize * envelope_size;
12904 #[allow(unused_variables)]
12905 let offset = encoder.out_of_line_offset(bytes_len);
12906 let mut _prev_end_offset: usize = 0;
12907 if 1 > max_ordinal {
12908 return Ok(());
12909 }
12910
12911 let cur_offset: usize = (1 - 1) * envelope_size;
12914
12915 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12917
12918 fidl::encoding::encode_in_envelope_optional::<bool, D>(
12923 self.enabled.as_ref().map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
12924 encoder,
12925 offset + cur_offset,
12926 depth,
12927 )?;
12928
12929 _prev_end_offset = cur_offset + envelope_size;
12930
12931 Ok(())
12932 }
12933 }
12934
12935 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
12936 for WlanFullmacImplSetApfPacketFilterEnabledRequest
12937 {
12938 #[inline(always)]
12939 fn new_empty() -> Self {
12940 Self::default()
12941 }
12942
12943 unsafe fn decode(
12944 &mut self,
12945 decoder: &mut fidl::encoding::Decoder<'_, D>,
12946 offset: usize,
12947 mut depth: fidl::encoding::Depth,
12948 ) -> fidl::Result<()> {
12949 decoder.debug_check_bounds::<Self>(offset);
12950 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
12951 None => return Err(fidl::Error::NotNullable),
12952 Some(len) => len,
12953 };
12954 if len == 0 {
12956 return Ok(());
12957 };
12958 depth.increment()?;
12959 let envelope_size = 8;
12960 let bytes_len = len * envelope_size;
12961 let offset = decoder.out_of_line_offset(bytes_len)?;
12962 let mut _next_ordinal_to_read = 0;
12964 let mut next_offset = offset;
12965 let end_offset = offset + bytes_len;
12966 _next_ordinal_to_read += 1;
12967 if next_offset >= end_offset {
12968 return Ok(());
12969 }
12970
12971 while _next_ordinal_to_read < 1 {
12973 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12974 _next_ordinal_to_read += 1;
12975 next_offset += envelope_size;
12976 }
12977
12978 let next_out_of_line = decoder.next_out_of_line();
12979 let handles_before = decoder.remaining_handles();
12980 if let Some((inlined, num_bytes, num_handles)) =
12981 fidl::encoding::decode_envelope_header(decoder, next_offset)?
12982 {
12983 let member_inline_size =
12984 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
12985 if inlined != (member_inline_size <= 4) {
12986 return Err(fidl::Error::InvalidInlineBitInEnvelope);
12987 }
12988 let inner_offset;
12989 let mut inner_depth = depth.clone();
12990 if inlined {
12991 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
12992 inner_offset = next_offset;
12993 } else {
12994 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
12995 inner_depth.increment()?;
12996 }
12997 let val_ref = self.enabled.get_or_insert_with(|| fidl::new_empty!(bool, D));
12998 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
12999 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13000 {
13001 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13002 }
13003 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13004 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13005 }
13006 }
13007
13008 next_offset += envelope_size;
13009
13010 while next_offset < end_offset {
13012 _next_ordinal_to_read += 1;
13013 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13014 next_offset += envelope_size;
13015 }
13016
13017 Ok(())
13018 }
13019 }
13020
13021 impl WlanFullmacImplSetKeysRequest {
13022 #[inline(always)]
13023 fn max_ordinal_present(&self) -> u64 {
13024 if let Some(_) = self.key_descriptors {
13025 return 2;
13026 }
13027 if let Some(_) = self.keylist {
13028 return 1;
13029 }
13030 0
13031 }
13032 }
13033
13034 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplSetKeysRequest {
13035 type Borrowed<'a> = &'a Self;
13036 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
13037 value
13038 }
13039 }
13040
13041 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplSetKeysRequest {
13042 type Owned = Self;
13043
13044 #[inline(always)]
13045 fn inline_align(_context: fidl::encoding::Context) -> usize {
13046 8
13047 }
13048
13049 #[inline(always)]
13050 fn inline_size(_context: fidl::encoding::Context) -> usize {
13051 16
13052 }
13053 }
13054
13055 unsafe impl<D: fidl::encoding::ResourceDialect>
13056 fidl::encoding::Encode<WlanFullmacImplSetKeysRequest, D>
13057 for &WlanFullmacImplSetKeysRequest
13058 {
13059 unsafe fn encode(
13060 self,
13061 encoder: &mut fidl::encoding::Encoder<'_, D>,
13062 offset: usize,
13063 mut depth: fidl::encoding::Depth,
13064 ) -> fidl::Result<()> {
13065 encoder.debug_check_bounds::<WlanFullmacImplSetKeysRequest>(offset);
13066 let max_ordinal: u64 = self.max_ordinal_present();
13068 encoder.write_num(max_ordinal, offset);
13069 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
13070 if max_ordinal == 0 {
13072 return Ok(());
13073 }
13074 depth.increment()?;
13075 let envelope_size = 8;
13076 let bytes_len = max_ordinal as usize * envelope_size;
13077 #[allow(unused_variables)]
13078 let offset = encoder.out_of_line_offset(bytes_len);
13079 let mut _prev_end_offset: usize = 0;
13080 if 1 > max_ordinal {
13081 return Ok(());
13082 }
13083
13084 let cur_offset: usize = (1 - 1) * envelope_size;
13087
13088 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
13090
13091 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<fidl_fuchsia_wlan_driver_common::WlanKeyConfig, 4>, D>(
13096 self.keylist.as_ref().map(<fidl::encoding::Vector<fidl_fuchsia_wlan_driver_common::WlanKeyConfig, 4> as fidl::encoding::ValueTypeMarker>::borrow),
13097 encoder, offset + cur_offset, depth
13098 )?;
13099
13100 _prev_end_offset = cur_offset + envelope_size;
13101 if 2 > max_ordinal {
13102 return Ok(());
13103 }
13104
13105 let cur_offset: usize = (2 - 1) * envelope_size;
13108
13109 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
13111
13112 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<fidl_fuchsia_wlan_ieee80211_common::SetKeyDescriptor, 4>, D>(
13117 self.key_descriptors.as_ref().map(<fidl::encoding::Vector<fidl_fuchsia_wlan_ieee80211_common::SetKeyDescriptor, 4> as fidl::encoding::ValueTypeMarker>::borrow),
13118 encoder, offset + cur_offset, depth
13119 )?;
13120
13121 _prev_end_offset = cur_offset + envelope_size;
13122
13123 Ok(())
13124 }
13125 }
13126
13127 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
13128 for WlanFullmacImplSetKeysRequest
13129 {
13130 #[inline(always)]
13131 fn new_empty() -> Self {
13132 Self::default()
13133 }
13134
13135 unsafe fn decode(
13136 &mut self,
13137 decoder: &mut fidl::encoding::Decoder<'_, D>,
13138 offset: usize,
13139 mut depth: fidl::encoding::Depth,
13140 ) -> fidl::Result<()> {
13141 decoder.debug_check_bounds::<Self>(offset);
13142 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
13143 None => return Err(fidl::Error::NotNullable),
13144 Some(len) => len,
13145 };
13146 if len == 0 {
13148 return Ok(());
13149 };
13150 depth.increment()?;
13151 let envelope_size = 8;
13152 let bytes_len = len * envelope_size;
13153 let offset = decoder.out_of_line_offset(bytes_len)?;
13154 let mut _next_ordinal_to_read = 0;
13156 let mut next_offset = offset;
13157 let end_offset = offset + bytes_len;
13158 _next_ordinal_to_read += 1;
13159 if next_offset >= end_offset {
13160 return Ok(());
13161 }
13162
13163 while _next_ordinal_to_read < 1 {
13165 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13166 _next_ordinal_to_read += 1;
13167 next_offset += envelope_size;
13168 }
13169
13170 let next_out_of_line = decoder.next_out_of_line();
13171 let handles_before = decoder.remaining_handles();
13172 if let Some((inlined, num_bytes, num_handles)) =
13173 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13174 {
13175 let member_inline_size = <fidl::encoding::Vector<
13176 fidl_fuchsia_wlan_driver_common::WlanKeyConfig,
13177 4,
13178 > as fidl::encoding::TypeMarker>::inline_size(
13179 decoder.context
13180 );
13181 if inlined != (member_inline_size <= 4) {
13182 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13183 }
13184 let inner_offset;
13185 let mut inner_depth = depth.clone();
13186 if inlined {
13187 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13188 inner_offset = next_offset;
13189 } else {
13190 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13191 inner_depth.increment()?;
13192 }
13193 let val_ref =
13194 self.keylist.get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<fidl_fuchsia_wlan_driver_common::WlanKeyConfig, 4>, D));
13195 fidl::decode!(fidl::encoding::Vector<fidl_fuchsia_wlan_driver_common::WlanKeyConfig, 4>, D, val_ref, decoder, inner_offset, inner_depth)?;
13196 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13197 {
13198 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13199 }
13200 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13201 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13202 }
13203 }
13204
13205 next_offset += envelope_size;
13206 _next_ordinal_to_read += 1;
13207 if next_offset >= end_offset {
13208 return Ok(());
13209 }
13210
13211 while _next_ordinal_to_read < 2 {
13213 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13214 _next_ordinal_to_read += 1;
13215 next_offset += envelope_size;
13216 }
13217
13218 let next_out_of_line = decoder.next_out_of_line();
13219 let handles_before = decoder.remaining_handles();
13220 if let Some((inlined, num_bytes, num_handles)) =
13221 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13222 {
13223 let member_inline_size = <fidl::encoding::Vector<
13224 fidl_fuchsia_wlan_ieee80211_common::SetKeyDescriptor,
13225 4,
13226 > as fidl::encoding::TypeMarker>::inline_size(
13227 decoder.context
13228 );
13229 if inlined != (member_inline_size <= 4) {
13230 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13231 }
13232 let inner_offset;
13233 let mut inner_depth = depth.clone();
13234 if inlined {
13235 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13236 inner_offset = next_offset;
13237 } else {
13238 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13239 inner_depth.increment()?;
13240 }
13241 let val_ref =
13242 self.key_descriptors.get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<fidl_fuchsia_wlan_ieee80211_common::SetKeyDescriptor, 4>, D));
13243 fidl::decode!(fidl::encoding::Vector<fidl_fuchsia_wlan_ieee80211_common::SetKeyDescriptor, 4>, D, val_ref, decoder, inner_offset, inner_depth)?;
13244 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13245 {
13246 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13247 }
13248 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13249 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13250 }
13251 }
13252
13253 next_offset += envelope_size;
13254
13255 while next_offset < end_offset {
13257 _next_ordinal_to_read += 1;
13258 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13259 next_offset += envelope_size;
13260 }
13261
13262 Ok(())
13263 }
13264 }
13265
13266 impl WlanFullmacImplStartBssRequest {
13267 #[inline(always)]
13268 fn max_ordinal_present(&self) -> u64 {
13269 if let Some(_) = self.vendor_ie {
13270 return 7;
13271 }
13272 if let Some(_) = self.rsne {
13273 return 6;
13274 }
13275 if let Some(_) = self.primary {
13276 return 5;
13277 }
13278 if let Some(_) = self.dtim_period {
13279 return 4;
13280 }
13281 if let Some(_) = self.beacon_period {
13282 return 3;
13283 }
13284 if let Some(_) = self.bss_type {
13285 return 2;
13286 }
13287 if let Some(_) = self.ssid {
13288 return 1;
13289 }
13290 0
13291 }
13292 }
13293
13294 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplStartBssRequest {
13295 type Borrowed<'a> = &'a Self;
13296 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
13297 value
13298 }
13299 }
13300
13301 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplStartBssRequest {
13302 type Owned = Self;
13303
13304 #[inline(always)]
13305 fn inline_align(_context: fidl::encoding::Context) -> usize {
13306 8
13307 }
13308
13309 #[inline(always)]
13310 fn inline_size(_context: fidl::encoding::Context) -> usize {
13311 16
13312 }
13313 }
13314
13315 unsafe impl<D: fidl::encoding::ResourceDialect>
13316 fidl::encoding::Encode<WlanFullmacImplStartBssRequest, D>
13317 for &WlanFullmacImplStartBssRequest
13318 {
13319 unsafe fn encode(
13320 self,
13321 encoder: &mut fidl::encoding::Encoder<'_, D>,
13322 offset: usize,
13323 mut depth: fidl::encoding::Depth,
13324 ) -> fidl::Result<()> {
13325 encoder.debug_check_bounds::<WlanFullmacImplStartBssRequest>(offset);
13326 let max_ordinal: u64 = self.max_ordinal_present();
13328 encoder.write_num(max_ordinal, offset);
13329 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
13330 if max_ordinal == 0 {
13332 return Ok(());
13333 }
13334 depth.increment()?;
13335 let envelope_size = 8;
13336 let bytes_len = max_ordinal as usize * envelope_size;
13337 #[allow(unused_variables)]
13338 let offset = encoder.out_of_line_offset(bytes_len);
13339 let mut _prev_end_offset: usize = 0;
13340 if 1 > max_ordinal {
13341 return Ok(());
13342 }
13343
13344 let cur_offset: usize = (1 - 1) * envelope_size;
13347
13348 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
13350
13351 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<u8, 32>, D>(
13356 self.ssid.as_ref().map(
13357 <fidl::encoding::Vector<u8, 32> as fidl::encoding::ValueTypeMarker>::borrow,
13358 ),
13359 encoder,
13360 offset + cur_offset,
13361 depth,
13362 )?;
13363
13364 _prev_end_offset = cur_offset + envelope_size;
13365 if 2 > max_ordinal {
13366 return Ok(());
13367 }
13368
13369 let cur_offset: usize = (2 - 1) * envelope_size;
13372
13373 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
13375
13376 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_ieee80211_common::BssType, D>(
13381 self.bss_type.as_ref().map(<fidl_fuchsia_wlan_ieee80211_common::BssType as fidl::encoding::ValueTypeMarker>::borrow),
13382 encoder, offset + cur_offset, depth
13383 )?;
13384
13385 _prev_end_offset = cur_offset + envelope_size;
13386 if 3 > max_ordinal {
13387 return Ok(());
13388 }
13389
13390 let cur_offset: usize = (3 - 1) * envelope_size;
13393
13394 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
13396
13397 fidl::encoding::encode_in_envelope_optional::<u32, D>(
13402 self.beacon_period.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
13403 encoder,
13404 offset + cur_offset,
13405 depth,
13406 )?;
13407
13408 _prev_end_offset = cur_offset + envelope_size;
13409 if 4 > max_ordinal {
13410 return Ok(());
13411 }
13412
13413 let cur_offset: usize = (4 - 1) * envelope_size;
13416
13417 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
13419
13420 fidl::encoding::encode_in_envelope_optional::<u32, D>(
13425 self.dtim_period.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
13426 encoder,
13427 offset + cur_offset,
13428 depth,
13429 )?;
13430
13431 _prev_end_offset = cur_offset + envelope_size;
13432 if 5 > max_ordinal {
13433 return Ok(());
13434 }
13435
13436 let cur_offset: usize = (5 - 1) * envelope_size;
13439
13440 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
13442
13443 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_ieee80211_common::ChannelNumber, D>(
13448 self.primary.as_ref().map(<fidl_fuchsia_wlan_ieee80211_common::ChannelNumber as fidl::encoding::ValueTypeMarker>::borrow),
13449 encoder, offset + cur_offset, depth
13450 )?;
13451
13452 _prev_end_offset = cur_offset + envelope_size;
13453 if 6 > max_ordinal {
13454 return Ok(());
13455 }
13456
13457 let cur_offset: usize = (6 - 1) * envelope_size;
13460
13461 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
13463
13464 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<u8, 257>, D>(
13469 self.rsne.as_ref().map(
13470 <fidl::encoding::Vector<u8, 257> as fidl::encoding::ValueTypeMarker>::borrow,
13471 ),
13472 encoder,
13473 offset + cur_offset,
13474 depth,
13475 )?;
13476
13477 _prev_end_offset = cur_offset + envelope_size;
13478 if 7 > max_ordinal {
13479 return Ok(());
13480 }
13481
13482 let cur_offset: usize = (7 - 1) * envelope_size;
13485
13486 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
13488
13489 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<u8, 514>, D>(
13494 self.vendor_ie.as_ref().map(
13495 <fidl::encoding::Vector<u8, 514> as fidl::encoding::ValueTypeMarker>::borrow,
13496 ),
13497 encoder,
13498 offset + cur_offset,
13499 depth,
13500 )?;
13501
13502 _prev_end_offset = cur_offset + envelope_size;
13503
13504 Ok(())
13505 }
13506 }
13507
13508 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
13509 for WlanFullmacImplStartBssRequest
13510 {
13511 #[inline(always)]
13512 fn new_empty() -> Self {
13513 Self::default()
13514 }
13515
13516 unsafe fn decode(
13517 &mut self,
13518 decoder: &mut fidl::encoding::Decoder<'_, D>,
13519 offset: usize,
13520 mut depth: fidl::encoding::Depth,
13521 ) -> fidl::Result<()> {
13522 decoder.debug_check_bounds::<Self>(offset);
13523 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
13524 None => return Err(fidl::Error::NotNullable),
13525 Some(len) => len,
13526 };
13527 if len == 0 {
13529 return Ok(());
13530 };
13531 depth.increment()?;
13532 let envelope_size = 8;
13533 let bytes_len = len * envelope_size;
13534 let offset = decoder.out_of_line_offset(bytes_len)?;
13535 let mut _next_ordinal_to_read = 0;
13537 let mut next_offset = offset;
13538 let end_offset = offset + bytes_len;
13539 _next_ordinal_to_read += 1;
13540 if next_offset >= end_offset {
13541 return Ok(());
13542 }
13543
13544 while _next_ordinal_to_read < 1 {
13546 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13547 _next_ordinal_to_read += 1;
13548 next_offset += envelope_size;
13549 }
13550
13551 let next_out_of_line = decoder.next_out_of_line();
13552 let handles_before = decoder.remaining_handles();
13553 if let Some((inlined, num_bytes, num_handles)) =
13554 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13555 {
13556 let member_inline_size =
13557 <fidl::encoding::Vector<u8, 32> as fidl::encoding::TypeMarker>::inline_size(
13558 decoder.context,
13559 );
13560 if inlined != (member_inline_size <= 4) {
13561 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13562 }
13563 let inner_offset;
13564 let mut inner_depth = depth.clone();
13565 if inlined {
13566 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13567 inner_offset = next_offset;
13568 } else {
13569 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13570 inner_depth.increment()?;
13571 }
13572 let val_ref = self
13573 .ssid
13574 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<u8, 32>, D));
13575 fidl::decode!(fidl::encoding::Vector<u8, 32>, D, val_ref, decoder, inner_offset, inner_depth)?;
13576 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13577 {
13578 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13579 }
13580 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13581 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13582 }
13583 }
13584
13585 next_offset += envelope_size;
13586 _next_ordinal_to_read += 1;
13587 if next_offset >= end_offset {
13588 return Ok(());
13589 }
13590
13591 while _next_ordinal_to_read < 2 {
13593 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13594 _next_ordinal_to_read += 1;
13595 next_offset += envelope_size;
13596 }
13597
13598 let next_out_of_line = decoder.next_out_of_line();
13599 let handles_before = decoder.remaining_handles();
13600 if let Some((inlined, num_bytes, num_handles)) =
13601 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13602 {
13603 let member_inline_size = <fidl_fuchsia_wlan_ieee80211_common::BssType as fidl::encoding::TypeMarker>::inline_size(decoder.context);
13604 if inlined != (member_inline_size <= 4) {
13605 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13606 }
13607 let inner_offset;
13608 let mut inner_depth = depth.clone();
13609 if inlined {
13610 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13611 inner_offset = next_offset;
13612 } else {
13613 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13614 inner_depth.increment()?;
13615 }
13616 let val_ref = self.bss_type.get_or_insert_with(|| {
13617 fidl::new_empty!(fidl_fuchsia_wlan_ieee80211_common::BssType, D)
13618 });
13619 fidl::decode!(
13620 fidl_fuchsia_wlan_ieee80211_common::BssType,
13621 D,
13622 val_ref,
13623 decoder,
13624 inner_offset,
13625 inner_depth
13626 )?;
13627 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13628 {
13629 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13630 }
13631 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13632 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13633 }
13634 }
13635
13636 next_offset += envelope_size;
13637 _next_ordinal_to_read += 1;
13638 if next_offset >= end_offset {
13639 return Ok(());
13640 }
13641
13642 while _next_ordinal_to_read < 3 {
13644 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13645 _next_ordinal_to_read += 1;
13646 next_offset += envelope_size;
13647 }
13648
13649 let next_out_of_line = decoder.next_out_of_line();
13650 let handles_before = decoder.remaining_handles();
13651 if let Some((inlined, num_bytes, num_handles)) =
13652 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13653 {
13654 let member_inline_size =
13655 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
13656 if inlined != (member_inline_size <= 4) {
13657 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13658 }
13659 let inner_offset;
13660 let mut inner_depth = depth.clone();
13661 if inlined {
13662 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13663 inner_offset = next_offset;
13664 } else {
13665 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13666 inner_depth.increment()?;
13667 }
13668 let val_ref = self.beacon_period.get_or_insert_with(|| fidl::new_empty!(u32, D));
13669 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
13670 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13671 {
13672 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13673 }
13674 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13675 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13676 }
13677 }
13678
13679 next_offset += envelope_size;
13680 _next_ordinal_to_read += 1;
13681 if next_offset >= end_offset {
13682 return Ok(());
13683 }
13684
13685 while _next_ordinal_to_read < 4 {
13687 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13688 _next_ordinal_to_read += 1;
13689 next_offset += envelope_size;
13690 }
13691
13692 let next_out_of_line = decoder.next_out_of_line();
13693 let handles_before = decoder.remaining_handles();
13694 if let Some((inlined, num_bytes, num_handles)) =
13695 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13696 {
13697 let member_inline_size =
13698 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
13699 if inlined != (member_inline_size <= 4) {
13700 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13701 }
13702 let inner_offset;
13703 let mut inner_depth = depth.clone();
13704 if inlined {
13705 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13706 inner_offset = next_offset;
13707 } else {
13708 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13709 inner_depth.increment()?;
13710 }
13711 let val_ref = self.dtim_period.get_or_insert_with(|| fidl::new_empty!(u32, D));
13712 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
13713 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13714 {
13715 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13716 }
13717 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13718 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13719 }
13720 }
13721
13722 next_offset += envelope_size;
13723 _next_ordinal_to_read += 1;
13724 if next_offset >= end_offset {
13725 return Ok(());
13726 }
13727
13728 while _next_ordinal_to_read < 5 {
13730 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13731 _next_ordinal_to_read += 1;
13732 next_offset += envelope_size;
13733 }
13734
13735 let next_out_of_line = decoder.next_out_of_line();
13736 let handles_before = decoder.remaining_handles();
13737 if let Some((inlined, num_bytes, num_handles)) =
13738 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13739 {
13740 let member_inline_size = <fidl_fuchsia_wlan_ieee80211_common::ChannelNumber as fidl::encoding::TypeMarker>::inline_size(decoder.context);
13741 if inlined != (member_inline_size <= 4) {
13742 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13743 }
13744 let inner_offset;
13745 let mut inner_depth = depth.clone();
13746 if inlined {
13747 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13748 inner_offset = next_offset;
13749 } else {
13750 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13751 inner_depth.increment()?;
13752 }
13753 let val_ref = self.primary.get_or_insert_with(|| {
13754 fidl::new_empty!(fidl_fuchsia_wlan_ieee80211_common::ChannelNumber, D)
13755 });
13756 fidl::decode!(
13757 fidl_fuchsia_wlan_ieee80211_common::ChannelNumber,
13758 D,
13759 val_ref,
13760 decoder,
13761 inner_offset,
13762 inner_depth
13763 )?;
13764 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13765 {
13766 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13767 }
13768 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13769 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13770 }
13771 }
13772
13773 next_offset += envelope_size;
13774 _next_ordinal_to_read += 1;
13775 if next_offset >= end_offset {
13776 return Ok(());
13777 }
13778
13779 while _next_ordinal_to_read < 6 {
13781 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13782 _next_ordinal_to_read += 1;
13783 next_offset += envelope_size;
13784 }
13785
13786 let next_out_of_line = decoder.next_out_of_line();
13787 let handles_before = decoder.remaining_handles();
13788 if let Some((inlined, num_bytes, num_handles)) =
13789 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13790 {
13791 let member_inline_size =
13792 <fidl::encoding::Vector<u8, 257> as fidl::encoding::TypeMarker>::inline_size(
13793 decoder.context,
13794 );
13795 if inlined != (member_inline_size <= 4) {
13796 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13797 }
13798 let inner_offset;
13799 let mut inner_depth = depth.clone();
13800 if inlined {
13801 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13802 inner_offset = next_offset;
13803 } else {
13804 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13805 inner_depth.increment()?;
13806 }
13807 let val_ref = self
13808 .rsne
13809 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<u8, 257>, D));
13810 fidl::decode!(fidl::encoding::Vector<u8, 257>, D, val_ref, decoder, inner_offset, inner_depth)?;
13811 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13812 {
13813 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13814 }
13815 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13816 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13817 }
13818 }
13819
13820 next_offset += envelope_size;
13821 _next_ordinal_to_read += 1;
13822 if next_offset >= end_offset {
13823 return Ok(());
13824 }
13825
13826 while _next_ordinal_to_read < 7 {
13828 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13829 _next_ordinal_to_read += 1;
13830 next_offset += envelope_size;
13831 }
13832
13833 let next_out_of_line = decoder.next_out_of_line();
13834 let handles_before = decoder.remaining_handles();
13835 if let Some((inlined, num_bytes, num_handles)) =
13836 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13837 {
13838 let member_inline_size =
13839 <fidl::encoding::Vector<u8, 514> as fidl::encoding::TypeMarker>::inline_size(
13840 decoder.context,
13841 );
13842 if inlined != (member_inline_size <= 4) {
13843 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13844 }
13845 let inner_offset;
13846 let mut inner_depth = depth.clone();
13847 if inlined {
13848 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13849 inner_offset = next_offset;
13850 } else {
13851 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13852 inner_depth.increment()?;
13853 }
13854 let val_ref = self
13855 .vendor_ie
13856 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<u8, 514>, D));
13857 fidl::decode!(fidl::encoding::Vector<u8, 514>, D, val_ref, decoder, inner_offset, inner_depth)?;
13858 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13859 {
13860 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13861 }
13862 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13863 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13864 }
13865 }
13866
13867 next_offset += envelope_size;
13868
13869 while next_offset < end_offset {
13871 _next_ordinal_to_read += 1;
13872 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13873 next_offset += envelope_size;
13874 }
13875
13876 Ok(())
13877 }
13878 }
13879
13880 impl WlanFullmacImplStartScanRequest {
13881 #[inline(always)]
13882 fn max_ordinal_present(&self) -> u64 {
13883 if let Some(_) = self.max_channel_time {
13884 return 6;
13885 }
13886 if let Some(_) = self.min_channel_time {
13887 return 5;
13888 }
13889 if let Some(_) = self.ssids {
13890 return 4;
13891 }
13892 if let Some(_) = self.channels {
13893 return 3;
13894 }
13895 if let Some(_) = self.scan_type {
13896 return 2;
13897 }
13898 if let Some(_) = self.txn_id {
13899 return 1;
13900 }
13901 0
13902 }
13903 }
13904
13905 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplStartScanRequest {
13906 type Borrowed<'a> = &'a Self;
13907 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
13908 value
13909 }
13910 }
13911
13912 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplStartScanRequest {
13913 type Owned = Self;
13914
13915 #[inline(always)]
13916 fn inline_align(_context: fidl::encoding::Context) -> usize {
13917 8
13918 }
13919
13920 #[inline(always)]
13921 fn inline_size(_context: fidl::encoding::Context) -> usize {
13922 16
13923 }
13924 }
13925
13926 unsafe impl<D: fidl::encoding::ResourceDialect>
13927 fidl::encoding::Encode<WlanFullmacImplStartScanRequest, D>
13928 for &WlanFullmacImplStartScanRequest
13929 {
13930 unsafe fn encode(
13931 self,
13932 encoder: &mut fidl::encoding::Encoder<'_, D>,
13933 offset: usize,
13934 mut depth: fidl::encoding::Depth,
13935 ) -> fidl::Result<()> {
13936 encoder.debug_check_bounds::<WlanFullmacImplStartScanRequest>(offset);
13937 let max_ordinal: u64 = self.max_ordinal_present();
13939 encoder.write_num(max_ordinal, offset);
13940 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
13941 if max_ordinal == 0 {
13943 return Ok(());
13944 }
13945 depth.increment()?;
13946 let envelope_size = 8;
13947 let bytes_len = max_ordinal as usize * envelope_size;
13948 #[allow(unused_variables)]
13949 let offset = encoder.out_of_line_offset(bytes_len);
13950 let mut _prev_end_offset: usize = 0;
13951 if 1 > max_ordinal {
13952 return Ok(());
13953 }
13954
13955 let cur_offset: usize = (1 - 1) * envelope_size;
13958
13959 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
13961
13962 fidl::encoding::encode_in_envelope_optional::<u64, D>(
13967 self.txn_id.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
13968 encoder,
13969 offset + cur_offset,
13970 depth,
13971 )?;
13972
13973 _prev_end_offset = cur_offset + envelope_size;
13974 if 2 > max_ordinal {
13975 return Ok(());
13976 }
13977
13978 let cur_offset: usize = (2 - 1) * envelope_size;
13981
13982 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
13984
13985 fidl::encoding::encode_in_envelope_optional::<WlanScanType, D>(
13990 self.scan_type
13991 .as_ref()
13992 .map(<WlanScanType as fidl::encoding::ValueTypeMarker>::borrow),
13993 encoder,
13994 offset + cur_offset,
13995 depth,
13996 )?;
13997
13998 _prev_end_offset = cur_offset + envelope_size;
13999 if 3 > max_ordinal {
14000 return Ok(());
14001 }
14002
14003 let cur_offset: usize = (3 - 1) * envelope_size;
14006
14007 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
14009
14010 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<fidl_fuchsia_wlan_ieee80211_common::ChannelNumber, 256>, D>(
14015 self.channels.as_ref().map(<fidl::encoding::Vector<fidl_fuchsia_wlan_ieee80211_common::ChannelNumber, 256> as fidl::encoding::ValueTypeMarker>::borrow),
14016 encoder, offset + cur_offset, depth
14017 )?;
14018
14019 _prev_end_offset = cur_offset + envelope_size;
14020 if 4 > max_ordinal {
14021 return Ok(());
14022 }
14023
14024 let cur_offset: usize = (4 - 1) * envelope_size;
14027
14028 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
14030
14031 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<fidl::encoding::Vector<u8, 32>>, D>(
14036 self.ssids.as_ref().map(<fidl::encoding::UnboundedVector<fidl::encoding::Vector<u8, 32>> as fidl::encoding::ValueTypeMarker>::borrow),
14037 encoder, offset + cur_offset, depth
14038 )?;
14039
14040 _prev_end_offset = cur_offset + envelope_size;
14041 if 5 > max_ordinal {
14042 return Ok(());
14043 }
14044
14045 let cur_offset: usize = (5 - 1) * envelope_size;
14048
14049 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
14051
14052 fidl::encoding::encode_in_envelope_optional::<u32, D>(
14057 self.min_channel_time
14058 .as_ref()
14059 .map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
14060 encoder,
14061 offset + cur_offset,
14062 depth,
14063 )?;
14064
14065 _prev_end_offset = cur_offset + envelope_size;
14066 if 6 > max_ordinal {
14067 return Ok(());
14068 }
14069
14070 let cur_offset: usize = (6 - 1) * envelope_size;
14073
14074 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
14076
14077 fidl::encoding::encode_in_envelope_optional::<u32, D>(
14082 self.max_channel_time
14083 .as_ref()
14084 .map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
14085 encoder,
14086 offset + cur_offset,
14087 depth,
14088 )?;
14089
14090 _prev_end_offset = cur_offset + envelope_size;
14091
14092 Ok(())
14093 }
14094 }
14095
14096 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
14097 for WlanFullmacImplStartScanRequest
14098 {
14099 #[inline(always)]
14100 fn new_empty() -> Self {
14101 Self::default()
14102 }
14103
14104 unsafe fn decode(
14105 &mut self,
14106 decoder: &mut fidl::encoding::Decoder<'_, D>,
14107 offset: usize,
14108 mut depth: fidl::encoding::Depth,
14109 ) -> fidl::Result<()> {
14110 decoder.debug_check_bounds::<Self>(offset);
14111 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
14112 None => return Err(fidl::Error::NotNullable),
14113 Some(len) => len,
14114 };
14115 if len == 0 {
14117 return Ok(());
14118 };
14119 depth.increment()?;
14120 let envelope_size = 8;
14121 let bytes_len = len * envelope_size;
14122 let offset = decoder.out_of_line_offset(bytes_len)?;
14123 let mut _next_ordinal_to_read = 0;
14125 let mut next_offset = offset;
14126 let end_offset = offset + bytes_len;
14127 _next_ordinal_to_read += 1;
14128 if next_offset >= end_offset {
14129 return Ok(());
14130 }
14131
14132 while _next_ordinal_to_read < 1 {
14134 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14135 _next_ordinal_to_read += 1;
14136 next_offset += envelope_size;
14137 }
14138
14139 let next_out_of_line = decoder.next_out_of_line();
14140 let handles_before = decoder.remaining_handles();
14141 if let Some((inlined, num_bytes, num_handles)) =
14142 fidl::encoding::decode_envelope_header(decoder, next_offset)?
14143 {
14144 let member_inline_size =
14145 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
14146 if inlined != (member_inline_size <= 4) {
14147 return Err(fidl::Error::InvalidInlineBitInEnvelope);
14148 }
14149 let inner_offset;
14150 let mut inner_depth = depth.clone();
14151 if inlined {
14152 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
14153 inner_offset = next_offset;
14154 } else {
14155 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
14156 inner_depth.increment()?;
14157 }
14158 let val_ref = self.txn_id.get_or_insert_with(|| fidl::new_empty!(u64, D));
14159 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
14160 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
14161 {
14162 return Err(fidl::Error::InvalidNumBytesInEnvelope);
14163 }
14164 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
14165 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
14166 }
14167 }
14168
14169 next_offset += envelope_size;
14170 _next_ordinal_to_read += 1;
14171 if next_offset >= end_offset {
14172 return Ok(());
14173 }
14174
14175 while _next_ordinal_to_read < 2 {
14177 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14178 _next_ordinal_to_read += 1;
14179 next_offset += envelope_size;
14180 }
14181
14182 let next_out_of_line = decoder.next_out_of_line();
14183 let handles_before = decoder.remaining_handles();
14184 if let Some((inlined, num_bytes, num_handles)) =
14185 fidl::encoding::decode_envelope_header(decoder, next_offset)?
14186 {
14187 let member_inline_size =
14188 <WlanScanType as fidl::encoding::TypeMarker>::inline_size(decoder.context);
14189 if inlined != (member_inline_size <= 4) {
14190 return Err(fidl::Error::InvalidInlineBitInEnvelope);
14191 }
14192 let inner_offset;
14193 let mut inner_depth = depth.clone();
14194 if inlined {
14195 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
14196 inner_offset = next_offset;
14197 } else {
14198 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
14199 inner_depth.increment()?;
14200 }
14201 let val_ref =
14202 self.scan_type.get_or_insert_with(|| fidl::new_empty!(WlanScanType, D));
14203 fidl::decode!(WlanScanType, D, val_ref, decoder, inner_offset, inner_depth)?;
14204 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
14205 {
14206 return Err(fidl::Error::InvalidNumBytesInEnvelope);
14207 }
14208 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
14209 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
14210 }
14211 }
14212
14213 next_offset += envelope_size;
14214 _next_ordinal_to_read += 1;
14215 if next_offset >= end_offset {
14216 return Ok(());
14217 }
14218
14219 while _next_ordinal_to_read < 3 {
14221 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14222 _next_ordinal_to_read += 1;
14223 next_offset += envelope_size;
14224 }
14225
14226 let next_out_of_line = decoder.next_out_of_line();
14227 let handles_before = decoder.remaining_handles();
14228 if let Some((inlined, num_bytes, num_handles)) =
14229 fidl::encoding::decode_envelope_header(decoder, next_offset)?
14230 {
14231 let member_inline_size = <fidl::encoding::Vector<
14232 fidl_fuchsia_wlan_ieee80211_common::ChannelNumber,
14233 256,
14234 > as fidl::encoding::TypeMarker>::inline_size(
14235 decoder.context
14236 );
14237 if inlined != (member_inline_size <= 4) {
14238 return Err(fidl::Error::InvalidInlineBitInEnvelope);
14239 }
14240 let inner_offset;
14241 let mut inner_depth = depth.clone();
14242 if inlined {
14243 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
14244 inner_offset = next_offset;
14245 } else {
14246 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
14247 inner_depth.increment()?;
14248 }
14249 let val_ref =
14250 self.channels.get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<fidl_fuchsia_wlan_ieee80211_common::ChannelNumber, 256>, D));
14251 fidl::decode!(fidl::encoding::Vector<fidl_fuchsia_wlan_ieee80211_common::ChannelNumber, 256>, D, val_ref, decoder, inner_offset, inner_depth)?;
14252 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
14253 {
14254 return Err(fidl::Error::InvalidNumBytesInEnvelope);
14255 }
14256 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
14257 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
14258 }
14259 }
14260
14261 next_offset += envelope_size;
14262 _next_ordinal_to_read += 1;
14263 if next_offset >= end_offset {
14264 return Ok(());
14265 }
14266
14267 while _next_ordinal_to_read < 4 {
14269 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14270 _next_ordinal_to_read += 1;
14271 next_offset += envelope_size;
14272 }
14273
14274 let next_out_of_line = decoder.next_out_of_line();
14275 let handles_before = decoder.remaining_handles();
14276 if let Some((inlined, num_bytes, num_handles)) =
14277 fidl::encoding::decode_envelope_header(decoder, next_offset)?
14278 {
14279 let member_inline_size = <fidl::encoding::UnboundedVector<
14280 fidl::encoding::Vector<u8, 32>,
14281 > as fidl::encoding::TypeMarker>::inline_size(
14282 decoder.context
14283 );
14284 if inlined != (member_inline_size <= 4) {
14285 return Err(fidl::Error::InvalidInlineBitInEnvelope);
14286 }
14287 let inner_offset;
14288 let mut inner_depth = depth.clone();
14289 if inlined {
14290 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
14291 inner_offset = next_offset;
14292 } else {
14293 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
14294 inner_depth.increment()?;
14295 }
14296 let val_ref = self.ssids.get_or_insert_with(|| {
14297 fidl::new_empty!(
14298 fidl::encoding::UnboundedVector<fidl::encoding::Vector<u8, 32>>,
14299 D
14300 )
14301 });
14302 fidl::decode!(
14303 fidl::encoding::UnboundedVector<fidl::encoding::Vector<u8, 32>>,
14304 D,
14305 val_ref,
14306 decoder,
14307 inner_offset,
14308 inner_depth
14309 )?;
14310 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
14311 {
14312 return Err(fidl::Error::InvalidNumBytesInEnvelope);
14313 }
14314 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
14315 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
14316 }
14317 }
14318
14319 next_offset += envelope_size;
14320 _next_ordinal_to_read += 1;
14321 if next_offset >= end_offset {
14322 return Ok(());
14323 }
14324
14325 while _next_ordinal_to_read < 5 {
14327 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14328 _next_ordinal_to_read += 1;
14329 next_offset += envelope_size;
14330 }
14331
14332 let next_out_of_line = decoder.next_out_of_line();
14333 let handles_before = decoder.remaining_handles();
14334 if let Some((inlined, num_bytes, num_handles)) =
14335 fidl::encoding::decode_envelope_header(decoder, next_offset)?
14336 {
14337 let member_inline_size =
14338 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
14339 if inlined != (member_inline_size <= 4) {
14340 return Err(fidl::Error::InvalidInlineBitInEnvelope);
14341 }
14342 let inner_offset;
14343 let mut inner_depth = depth.clone();
14344 if inlined {
14345 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
14346 inner_offset = next_offset;
14347 } else {
14348 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
14349 inner_depth.increment()?;
14350 }
14351 let val_ref = self.min_channel_time.get_or_insert_with(|| fidl::new_empty!(u32, D));
14352 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
14353 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
14354 {
14355 return Err(fidl::Error::InvalidNumBytesInEnvelope);
14356 }
14357 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
14358 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
14359 }
14360 }
14361
14362 next_offset += envelope_size;
14363 _next_ordinal_to_read += 1;
14364 if next_offset >= end_offset {
14365 return Ok(());
14366 }
14367
14368 while _next_ordinal_to_read < 6 {
14370 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14371 _next_ordinal_to_read += 1;
14372 next_offset += envelope_size;
14373 }
14374
14375 let next_out_of_line = decoder.next_out_of_line();
14376 let handles_before = decoder.remaining_handles();
14377 if let Some((inlined, num_bytes, num_handles)) =
14378 fidl::encoding::decode_envelope_header(decoder, next_offset)?
14379 {
14380 let member_inline_size =
14381 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
14382 if inlined != (member_inline_size <= 4) {
14383 return Err(fidl::Error::InvalidInlineBitInEnvelope);
14384 }
14385 let inner_offset;
14386 let mut inner_depth = depth.clone();
14387 if inlined {
14388 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
14389 inner_offset = next_offset;
14390 } else {
14391 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
14392 inner_depth.increment()?;
14393 }
14394 let val_ref = self.max_channel_time.get_or_insert_with(|| fidl::new_empty!(u32, D));
14395 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
14396 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
14397 {
14398 return Err(fidl::Error::InvalidNumBytesInEnvelope);
14399 }
14400 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
14401 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
14402 }
14403 }
14404
14405 next_offset += envelope_size;
14406
14407 while next_offset < end_offset {
14409 _next_ordinal_to_read += 1;
14410 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14411 next_offset += envelope_size;
14412 }
14413
14414 Ok(())
14415 }
14416 }
14417
14418 impl WlanFullmacImplStartScheduledScanRequest {
14419 #[inline(always)]
14420 fn max_ordinal_present(&self) -> u64 {
14421 if let Some(_) = self.req {
14422 return 2;
14423 }
14424 if let Some(_) = self.txn_id {
14425 return 1;
14426 }
14427 0
14428 }
14429 }
14430
14431 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplStartScheduledScanRequest {
14432 type Borrowed<'a> = &'a Self;
14433 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
14434 value
14435 }
14436 }
14437
14438 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplStartScheduledScanRequest {
14439 type Owned = Self;
14440
14441 #[inline(always)]
14442 fn inline_align(_context: fidl::encoding::Context) -> usize {
14443 8
14444 }
14445
14446 #[inline(always)]
14447 fn inline_size(_context: fidl::encoding::Context) -> usize {
14448 16
14449 }
14450 }
14451
14452 unsafe impl<D: fidl::encoding::ResourceDialect>
14453 fidl::encoding::Encode<WlanFullmacImplStartScheduledScanRequest, D>
14454 for &WlanFullmacImplStartScheduledScanRequest
14455 {
14456 unsafe fn encode(
14457 self,
14458 encoder: &mut fidl::encoding::Encoder<'_, D>,
14459 offset: usize,
14460 mut depth: fidl::encoding::Depth,
14461 ) -> fidl::Result<()> {
14462 encoder.debug_check_bounds::<WlanFullmacImplStartScheduledScanRequest>(offset);
14463 let max_ordinal: u64 = self.max_ordinal_present();
14465 encoder.write_num(max_ordinal, offset);
14466 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
14467 if max_ordinal == 0 {
14469 return Ok(());
14470 }
14471 depth.increment()?;
14472 let envelope_size = 8;
14473 let bytes_len = max_ordinal as usize * envelope_size;
14474 #[allow(unused_variables)]
14475 let offset = encoder.out_of_line_offset(bytes_len);
14476 let mut _prev_end_offset: usize = 0;
14477 if 1 > max_ordinal {
14478 return Ok(());
14479 }
14480
14481 let cur_offset: usize = (1 - 1) * envelope_size;
14484
14485 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
14487
14488 fidl::encoding::encode_in_envelope_optional::<u64, D>(
14493 self.txn_id.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
14494 encoder,
14495 offset + cur_offset,
14496 depth,
14497 )?;
14498
14499 _prev_end_offset = cur_offset + envelope_size;
14500 if 2 > max_ordinal {
14501 return Ok(());
14502 }
14503
14504 let cur_offset: usize = (2 - 1) * envelope_size;
14507
14508 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
14510
14511 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_common_common::ScheduledScanRequest, D>(
14516 self.req.as_ref().map(<fidl_fuchsia_wlan_common_common::ScheduledScanRequest as fidl::encoding::ValueTypeMarker>::borrow),
14517 encoder, offset + cur_offset, depth
14518 )?;
14519
14520 _prev_end_offset = cur_offset + envelope_size;
14521
14522 Ok(())
14523 }
14524 }
14525
14526 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
14527 for WlanFullmacImplStartScheduledScanRequest
14528 {
14529 #[inline(always)]
14530 fn new_empty() -> Self {
14531 Self::default()
14532 }
14533
14534 unsafe fn decode(
14535 &mut self,
14536 decoder: &mut fidl::encoding::Decoder<'_, D>,
14537 offset: usize,
14538 mut depth: fidl::encoding::Depth,
14539 ) -> fidl::Result<()> {
14540 decoder.debug_check_bounds::<Self>(offset);
14541 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
14542 None => return Err(fidl::Error::NotNullable),
14543 Some(len) => len,
14544 };
14545 if len == 0 {
14547 return Ok(());
14548 };
14549 depth.increment()?;
14550 let envelope_size = 8;
14551 let bytes_len = len * envelope_size;
14552 let offset = decoder.out_of_line_offset(bytes_len)?;
14553 let mut _next_ordinal_to_read = 0;
14555 let mut next_offset = offset;
14556 let end_offset = offset + bytes_len;
14557 _next_ordinal_to_read += 1;
14558 if next_offset >= end_offset {
14559 return Ok(());
14560 }
14561
14562 while _next_ordinal_to_read < 1 {
14564 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14565 _next_ordinal_to_read += 1;
14566 next_offset += envelope_size;
14567 }
14568
14569 let next_out_of_line = decoder.next_out_of_line();
14570 let handles_before = decoder.remaining_handles();
14571 if let Some((inlined, num_bytes, num_handles)) =
14572 fidl::encoding::decode_envelope_header(decoder, next_offset)?
14573 {
14574 let member_inline_size =
14575 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
14576 if inlined != (member_inline_size <= 4) {
14577 return Err(fidl::Error::InvalidInlineBitInEnvelope);
14578 }
14579 let inner_offset;
14580 let mut inner_depth = depth.clone();
14581 if inlined {
14582 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
14583 inner_offset = next_offset;
14584 } else {
14585 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
14586 inner_depth.increment()?;
14587 }
14588 let val_ref = self.txn_id.get_or_insert_with(|| fidl::new_empty!(u64, D));
14589 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
14590 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
14591 {
14592 return Err(fidl::Error::InvalidNumBytesInEnvelope);
14593 }
14594 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
14595 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
14596 }
14597 }
14598
14599 next_offset += envelope_size;
14600 _next_ordinal_to_read += 1;
14601 if next_offset >= end_offset {
14602 return Ok(());
14603 }
14604
14605 while _next_ordinal_to_read < 2 {
14607 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14608 _next_ordinal_to_read += 1;
14609 next_offset += envelope_size;
14610 }
14611
14612 let next_out_of_line = decoder.next_out_of_line();
14613 let handles_before = decoder.remaining_handles();
14614 if let Some((inlined, num_bytes, num_handles)) =
14615 fidl::encoding::decode_envelope_header(decoder, next_offset)?
14616 {
14617 let member_inline_size = <fidl_fuchsia_wlan_common_common::ScheduledScanRequest as fidl::encoding::TypeMarker>::inline_size(decoder.context);
14618 if inlined != (member_inline_size <= 4) {
14619 return Err(fidl::Error::InvalidInlineBitInEnvelope);
14620 }
14621 let inner_offset;
14622 let mut inner_depth = depth.clone();
14623 if inlined {
14624 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
14625 inner_offset = next_offset;
14626 } else {
14627 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
14628 inner_depth.increment()?;
14629 }
14630 let val_ref = self.req.get_or_insert_with(|| {
14631 fidl::new_empty!(fidl_fuchsia_wlan_common_common::ScheduledScanRequest, D)
14632 });
14633 fidl::decode!(
14634 fidl_fuchsia_wlan_common_common::ScheduledScanRequest,
14635 D,
14636 val_ref,
14637 decoder,
14638 inner_offset,
14639 inner_depth
14640 )?;
14641 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
14642 {
14643 return Err(fidl::Error::InvalidNumBytesInEnvelope);
14644 }
14645 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
14646 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
14647 }
14648 }
14649
14650 next_offset += envelope_size;
14651
14652 while next_offset < end_offset {
14654 _next_ordinal_to_read += 1;
14655 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14656 next_offset += envelope_size;
14657 }
14658
14659 Ok(())
14660 }
14661 }
14662
14663 impl WlanFullmacImplStopBssRequest {
14664 #[inline(always)]
14665 fn max_ordinal_present(&self) -> u64 {
14666 if let Some(_) = self.ssid {
14667 return 1;
14668 }
14669 0
14670 }
14671 }
14672
14673 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplStopBssRequest {
14674 type Borrowed<'a> = &'a Self;
14675 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
14676 value
14677 }
14678 }
14679
14680 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplStopBssRequest {
14681 type Owned = Self;
14682
14683 #[inline(always)]
14684 fn inline_align(_context: fidl::encoding::Context) -> usize {
14685 8
14686 }
14687
14688 #[inline(always)]
14689 fn inline_size(_context: fidl::encoding::Context) -> usize {
14690 16
14691 }
14692 }
14693
14694 unsafe impl<D: fidl::encoding::ResourceDialect>
14695 fidl::encoding::Encode<WlanFullmacImplStopBssRequest, D>
14696 for &WlanFullmacImplStopBssRequest
14697 {
14698 unsafe fn encode(
14699 self,
14700 encoder: &mut fidl::encoding::Encoder<'_, D>,
14701 offset: usize,
14702 mut depth: fidl::encoding::Depth,
14703 ) -> fidl::Result<()> {
14704 encoder.debug_check_bounds::<WlanFullmacImplStopBssRequest>(offset);
14705 let max_ordinal: u64 = self.max_ordinal_present();
14707 encoder.write_num(max_ordinal, offset);
14708 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
14709 if max_ordinal == 0 {
14711 return Ok(());
14712 }
14713 depth.increment()?;
14714 let envelope_size = 8;
14715 let bytes_len = max_ordinal as usize * envelope_size;
14716 #[allow(unused_variables)]
14717 let offset = encoder.out_of_line_offset(bytes_len);
14718 let mut _prev_end_offset: usize = 0;
14719 if 1 > max_ordinal {
14720 return Ok(());
14721 }
14722
14723 let cur_offset: usize = (1 - 1) * envelope_size;
14726
14727 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
14729
14730 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<u8, 32>, D>(
14735 self.ssid.as_ref().map(
14736 <fidl::encoding::Vector<u8, 32> as fidl::encoding::ValueTypeMarker>::borrow,
14737 ),
14738 encoder,
14739 offset + cur_offset,
14740 depth,
14741 )?;
14742
14743 _prev_end_offset = cur_offset + envelope_size;
14744
14745 Ok(())
14746 }
14747 }
14748
14749 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
14750 for WlanFullmacImplStopBssRequest
14751 {
14752 #[inline(always)]
14753 fn new_empty() -> Self {
14754 Self::default()
14755 }
14756
14757 unsafe fn decode(
14758 &mut self,
14759 decoder: &mut fidl::encoding::Decoder<'_, D>,
14760 offset: usize,
14761 mut depth: fidl::encoding::Depth,
14762 ) -> fidl::Result<()> {
14763 decoder.debug_check_bounds::<Self>(offset);
14764 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
14765 None => return Err(fidl::Error::NotNullable),
14766 Some(len) => len,
14767 };
14768 if len == 0 {
14770 return Ok(());
14771 };
14772 depth.increment()?;
14773 let envelope_size = 8;
14774 let bytes_len = len * envelope_size;
14775 let offset = decoder.out_of_line_offset(bytes_len)?;
14776 let mut _next_ordinal_to_read = 0;
14778 let mut next_offset = offset;
14779 let end_offset = offset + bytes_len;
14780 _next_ordinal_to_read += 1;
14781 if next_offset >= end_offset {
14782 return Ok(());
14783 }
14784
14785 while _next_ordinal_to_read < 1 {
14787 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14788 _next_ordinal_to_read += 1;
14789 next_offset += envelope_size;
14790 }
14791
14792 let next_out_of_line = decoder.next_out_of_line();
14793 let handles_before = decoder.remaining_handles();
14794 if let Some((inlined, num_bytes, num_handles)) =
14795 fidl::encoding::decode_envelope_header(decoder, next_offset)?
14796 {
14797 let member_inline_size =
14798 <fidl::encoding::Vector<u8, 32> as fidl::encoding::TypeMarker>::inline_size(
14799 decoder.context,
14800 );
14801 if inlined != (member_inline_size <= 4) {
14802 return Err(fidl::Error::InvalidInlineBitInEnvelope);
14803 }
14804 let inner_offset;
14805 let mut inner_depth = depth.clone();
14806 if inlined {
14807 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
14808 inner_offset = next_offset;
14809 } else {
14810 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
14811 inner_depth.increment()?;
14812 }
14813 let val_ref = self
14814 .ssid
14815 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<u8, 32>, D));
14816 fidl::decode!(fidl::encoding::Vector<u8, 32>, D, val_ref, decoder, inner_offset, inner_depth)?;
14817 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
14818 {
14819 return Err(fidl::Error::InvalidNumBytesInEnvelope);
14820 }
14821 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
14822 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
14823 }
14824 }
14825
14826 next_offset += envelope_size;
14827
14828 while next_offset < end_offset {
14830 _next_ordinal_to_read += 1;
14831 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14832 next_offset += envelope_size;
14833 }
14834
14835 Ok(())
14836 }
14837 }
14838
14839 impl WlanFullmacImplStopScheduledScanRequest {
14840 #[inline(always)]
14841 fn max_ordinal_present(&self) -> u64 {
14842 if let Some(_) = self.txn_id {
14843 return 1;
14844 }
14845 0
14846 }
14847 }
14848
14849 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplStopScheduledScanRequest {
14850 type Borrowed<'a> = &'a Self;
14851 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
14852 value
14853 }
14854 }
14855
14856 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplStopScheduledScanRequest {
14857 type Owned = Self;
14858
14859 #[inline(always)]
14860 fn inline_align(_context: fidl::encoding::Context) -> usize {
14861 8
14862 }
14863
14864 #[inline(always)]
14865 fn inline_size(_context: fidl::encoding::Context) -> usize {
14866 16
14867 }
14868 }
14869
14870 unsafe impl<D: fidl::encoding::ResourceDialect>
14871 fidl::encoding::Encode<WlanFullmacImplStopScheduledScanRequest, D>
14872 for &WlanFullmacImplStopScheduledScanRequest
14873 {
14874 unsafe fn encode(
14875 self,
14876 encoder: &mut fidl::encoding::Encoder<'_, D>,
14877 offset: usize,
14878 mut depth: fidl::encoding::Depth,
14879 ) -> fidl::Result<()> {
14880 encoder.debug_check_bounds::<WlanFullmacImplStopScheduledScanRequest>(offset);
14881 let max_ordinal: u64 = self.max_ordinal_present();
14883 encoder.write_num(max_ordinal, offset);
14884 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
14885 if max_ordinal == 0 {
14887 return Ok(());
14888 }
14889 depth.increment()?;
14890 let envelope_size = 8;
14891 let bytes_len = max_ordinal as usize * envelope_size;
14892 #[allow(unused_variables)]
14893 let offset = encoder.out_of_line_offset(bytes_len);
14894 let mut _prev_end_offset: usize = 0;
14895 if 1 > max_ordinal {
14896 return Ok(());
14897 }
14898
14899 let cur_offset: usize = (1 - 1) * envelope_size;
14902
14903 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
14905
14906 fidl::encoding::encode_in_envelope_optional::<u64, D>(
14911 self.txn_id.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
14912 encoder,
14913 offset + cur_offset,
14914 depth,
14915 )?;
14916
14917 _prev_end_offset = cur_offset + envelope_size;
14918
14919 Ok(())
14920 }
14921 }
14922
14923 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
14924 for WlanFullmacImplStopScheduledScanRequest
14925 {
14926 #[inline(always)]
14927 fn new_empty() -> Self {
14928 Self::default()
14929 }
14930
14931 unsafe fn decode(
14932 &mut self,
14933 decoder: &mut fidl::encoding::Decoder<'_, D>,
14934 offset: usize,
14935 mut depth: fidl::encoding::Depth,
14936 ) -> fidl::Result<()> {
14937 decoder.debug_check_bounds::<Self>(offset);
14938 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
14939 None => return Err(fidl::Error::NotNullable),
14940 Some(len) => len,
14941 };
14942 if len == 0 {
14944 return Ok(());
14945 };
14946 depth.increment()?;
14947 let envelope_size = 8;
14948 let bytes_len = len * envelope_size;
14949 let offset = decoder.out_of_line_offset(bytes_len)?;
14950 let mut _next_ordinal_to_read = 0;
14952 let mut next_offset = offset;
14953 let end_offset = offset + bytes_len;
14954 _next_ordinal_to_read += 1;
14955 if next_offset >= end_offset {
14956 return Ok(());
14957 }
14958
14959 while _next_ordinal_to_read < 1 {
14961 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14962 _next_ordinal_to_read += 1;
14963 next_offset += envelope_size;
14964 }
14965
14966 let next_out_of_line = decoder.next_out_of_line();
14967 let handles_before = decoder.remaining_handles();
14968 if let Some((inlined, num_bytes, num_handles)) =
14969 fidl::encoding::decode_envelope_header(decoder, next_offset)?
14970 {
14971 let member_inline_size =
14972 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
14973 if inlined != (member_inline_size <= 4) {
14974 return Err(fidl::Error::InvalidInlineBitInEnvelope);
14975 }
14976 let inner_offset;
14977 let mut inner_depth = depth.clone();
14978 if inlined {
14979 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
14980 inner_offset = next_offset;
14981 } else {
14982 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
14983 inner_depth.increment()?;
14984 }
14985 let val_ref = self.txn_id.get_or_insert_with(|| fidl::new_empty!(u64, D));
14986 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
14987 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
14988 {
14989 return Err(fidl::Error::InvalidNumBytesInEnvelope);
14990 }
14991 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
14992 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
14993 }
14994 }
14995
14996 next_offset += envelope_size;
14997
14998 while next_offset < end_offset {
15000 _next_ordinal_to_read += 1;
15001 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15002 next_offset += envelope_size;
15003 }
15004
15005 Ok(())
15006 }
15007 }
15008
15009 impl WlanFullmacImplGetApfPacketFilterEnabledResponse {
15010 #[inline(always)]
15011 fn max_ordinal_present(&self) -> u64 {
15012 if let Some(_) = self.enabled {
15013 return 1;
15014 }
15015 0
15016 }
15017 }
15018
15019 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplGetApfPacketFilterEnabledResponse {
15020 type Borrowed<'a> = &'a Self;
15021 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
15022 value
15023 }
15024 }
15025
15026 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplGetApfPacketFilterEnabledResponse {
15027 type Owned = Self;
15028
15029 #[inline(always)]
15030 fn inline_align(_context: fidl::encoding::Context) -> usize {
15031 8
15032 }
15033
15034 #[inline(always)]
15035 fn inline_size(_context: fidl::encoding::Context) -> usize {
15036 16
15037 }
15038 }
15039
15040 unsafe impl<D: fidl::encoding::ResourceDialect>
15041 fidl::encoding::Encode<WlanFullmacImplGetApfPacketFilterEnabledResponse, D>
15042 for &WlanFullmacImplGetApfPacketFilterEnabledResponse
15043 {
15044 unsafe fn encode(
15045 self,
15046 encoder: &mut fidl::encoding::Encoder<'_, D>,
15047 offset: usize,
15048 mut depth: fidl::encoding::Depth,
15049 ) -> fidl::Result<()> {
15050 encoder.debug_check_bounds::<WlanFullmacImplGetApfPacketFilterEnabledResponse>(offset);
15051 let max_ordinal: u64 = self.max_ordinal_present();
15053 encoder.write_num(max_ordinal, offset);
15054 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
15055 if max_ordinal == 0 {
15057 return Ok(());
15058 }
15059 depth.increment()?;
15060 let envelope_size = 8;
15061 let bytes_len = max_ordinal as usize * envelope_size;
15062 #[allow(unused_variables)]
15063 let offset = encoder.out_of_line_offset(bytes_len);
15064 let mut _prev_end_offset: usize = 0;
15065 if 1 > max_ordinal {
15066 return Ok(());
15067 }
15068
15069 let cur_offset: usize = (1 - 1) * envelope_size;
15072
15073 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
15075
15076 fidl::encoding::encode_in_envelope_optional::<bool, D>(
15081 self.enabled.as_ref().map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
15082 encoder,
15083 offset + cur_offset,
15084 depth,
15085 )?;
15086
15087 _prev_end_offset = cur_offset + envelope_size;
15088
15089 Ok(())
15090 }
15091 }
15092
15093 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
15094 for WlanFullmacImplGetApfPacketFilterEnabledResponse
15095 {
15096 #[inline(always)]
15097 fn new_empty() -> Self {
15098 Self::default()
15099 }
15100
15101 unsafe fn decode(
15102 &mut self,
15103 decoder: &mut fidl::encoding::Decoder<'_, D>,
15104 offset: usize,
15105 mut depth: fidl::encoding::Depth,
15106 ) -> fidl::Result<()> {
15107 decoder.debug_check_bounds::<Self>(offset);
15108 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
15109 None => return Err(fidl::Error::NotNullable),
15110 Some(len) => len,
15111 };
15112 if len == 0 {
15114 return Ok(());
15115 };
15116 depth.increment()?;
15117 let envelope_size = 8;
15118 let bytes_len = len * envelope_size;
15119 let offset = decoder.out_of_line_offset(bytes_len)?;
15120 let mut _next_ordinal_to_read = 0;
15122 let mut next_offset = offset;
15123 let end_offset = offset + bytes_len;
15124 _next_ordinal_to_read += 1;
15125 if next_offset >= end_offset {
15126 return Ok(());
15127 }
15128
15129 while _next_ordinal_to_read < 1 {
15131 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15132 _next_ordinal_to_read += 1;
15133 next_offset += envelope_size;
15134 }
15135
15136 let next_out_of_line = decoder.next_out_of_line();
15137 let handles_before = decoder.remaining_handles();
15138 if let Some((inlined, num_bytes, num_handles)) =
15139 fidl::encoding::decode_envelope_header(decoder, next_offset)?
15140 {
15141 let member_inline_size =
15142 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
15143 if inlined != (member_inline_size <= 4) {
15144 return Err(fidl::Error::InvalidInlineBitInEnvelope);
15145 }
15146 let inner_offset;
15147 let mut inner_depth = depth.clone();
15148 if inlined {
15149 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
15150 inner_offset = next_offset;
15151 } else {
15152 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
15153 inner_depth.increment()?;
15154 }
15155 let val_ref = self.enabled.get_or_insert_with(|| fidl::new_empty!(bool, D));
15156 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
15157 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
15158 {
15159 return Err(fidl::Error::InvalidNumBytesInEnvelope);
15160 }
15161 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
15162 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
15163 }
15164 }
15165
15166 next_offset += envelope_size;
15167
15168 while next_offset < end_offset {
15170 _next_ordinal_to_read += 1;
15171 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15172 next_offset += envelope_size;
15173 }
15174
15175 Ok(())
15176 }
15177 }
15178
15179 impl WlanFullmacImplGetScheduledScanEnabledResponse {
15180 #[inline(always)]
15181 fn max_ordinal_present(&self) -> u64 {
15182 if let Some(_) = self.active_txn_ids {
15183 return 1;
15184 }
15185 0
15186 }
15187 }
15188
15189 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplGetScheduledScanEnabledResponse {
15190 type Borrowed<'a> = &'a Self;
15191 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
15192 value
15193 }
15194 }
15195
15196 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplGetScheduledScanEnabledResponse {
15197 type Owned = Self;
15198
15199 #[inline(always)]
15200 fn inline_align(_context: fidl::encoding::Context) -> usize {
15201 8
15202 }
15203
15204 #[inline(always)]
15205 fn inline_size(_context: fidl::encoding::Context) -> usize {
15206 16
15207 }
15208 }
15209
15210 unsafe impl<D: fidl::encoding::ResourceDialect>
15211 fidl::encoding::Encode<WlanFullmacImplGetScheduledScanEnabledResponse, D>
15212 for &WlanFullmacImplGetScheduledScanEnabledResponse
15213 {
15214 unsafe fn encode(
15215 self,
15216 encoder: &mut fidl::encoding::Encoder<'_, D>,
15217 offset: usize,
15218 mut depth: fidl::encoding::Depth,
15219 ) -> fidl::Result<()> {
15220 encoder.debug_check_bounds::<WlanFullmacImplGetScheduledScanEnabledResponse>(offset);
15221 let max_ordinal: u64 = self.max_ordinal_present();
15223 encoder.write_num(max_ordinal, offset);
15224 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
15225 if max_ordinal == 0 {
15227 return Ok(());
15228 }
15229 depth.increment()?;
15230 let envelope_size = 8;
15231 let bytes_len = max_ordinal as usize * envelope_size;
15232 #[allow(unused_variables)]
15233 let offset = encoder.out_of_line_offset(bytes_len);
15234 let mut _prev_end_offset: usize = 0;
15235 if 1 > max_ordinal {
15236 return Ok(());
15237 }
15238
15239 let cur_offset: usize = (1 - 1) * envelope_size;
15242
15243 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
15245
15246 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<u64>, D>(
15251 self.active_txn_ids.as_ref().map(<fidl::encoding::UnboundedVector<u64> as fidl::encoding::ValueTypeMarker>::borrow),
15252 encoder, offset + cur_offset, depth
15253 )?;
15254
15255 _prev_end_offset = cur_offset + envelope_size;
15256
15257 Ok(())
15258 }
15259 }
15260
15261 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
15262 for WlanFullmacImplGetScheduledScanEnabledResponse
15263 {
15264 #[inline(always)]
15265 fn new_empty() -> Self {
15266 Self::default()
15267 }
15268
15269 unsafe fn decode(
15270 &mut self,
15271 decoder: &mut fidl::encoding::Decoder<'_, D>,
15272 offset: usize,
15273 mut depth: fidl::encoding::Depth,
15274 ) -> fidl::Result<()> {
15275 decoder.debug_check_bounds::<Self>(offset);
15276 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
15277 None => return Err(fidl::Error::NotNullable),
15278 Some(len) => len,
15279 };
15280 if len == 0 {
15282 return Ok(());
15283 };
15284 depth.increment()?;
15285 let envelope_size = 8;
15286 let bytes_len = len * envelope_size;
15287 let offset = decoder.out_of_line_offset(bytes_len)?;
15288 let mut _next_ordinal_to_read = 0;
15290 let mut next_offset = offset;
15291 let end_offset = offset + bytes_len;
15292 _next_ordinal_to_read += 1;
15293 if next_offset >= end_offset {
15294 return Ok(());
15295 }
15296
15297 while _next_ordinal_to_read < 1 {
15299 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15300 _next_ordinal_to_read += 1;
15301 next_offset += envelope_size;
15302 }
15303
15304 let next_out_of_line = decoder.next_out_of_line();
15305 let handles_before = decoder.remaining_handles();
15306 if let Some((inlined, num_bytes, num_handles)) =
15307 fidl::encoding::decode_envelope_header(decoder, next_offset)?
15308 {
15309 let member_inline_size = <fidl::encoding::UnboundedVector<u64> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
15310 if inlined != (member_inline_size <= 4) {
15311 return Err(fidl::Error::InvalidInlineBitInEnvelope);
15312 }
15313 let inner_offset;
15314 let mut inner_depth = depth.clone();
15315 if inlined {
15316 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
15317 inner_offset = next_offset;
15318 } else {
15319 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
15320 inner_depth.increment()?;
15321 }
15322 let val_ref = self.active_txn_ids.get_or_insert_with(|| {
15323 fidl::new_empty!(fidl::encoding::UnboundedVector<u64>, D)
15324 });
15325 fidl::decode!(
15326 fidl::encoding::UnboundedVector<u64>,
15327 D,
15328 val_ref,
15329 decoder,
15330 inner_offset,
15331 inner_depth
15332 )?;
15333 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
15334 {
15335 return Err(fidl::Error::InvalidNumBytesInEnvelope);
15336 }
15337 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
15338 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
15339 }
15340 }
15341
15342 next_offset += envelope_size;
15343
15344 while next_offset < end_offset {
15346 _next_ordinal_to_read += 1;
15347 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15348 next_offset += envelope_size;
15349 }
15350
15351 Ok(())
15352 }
15353 }
15354
15355 impl WlanFullmacImplQueryApfPacketFilterSupportResponse {
15356 #[inline(always)]
15357 fn max_ordinal_present(&self) -> u64 {
15358 if let Some(_) = self.resp {
15359 return 1;
15360 }
15361 0
15362 }
15363 }
15364
15365 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplQueryApfPacketFilterSupportResponse {
15366 type Borrowed<'a> = &'a Self;
15367 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
15368 value
15369 }
15370 }
15371
15372 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplQueryApfPacketFilterSupportResponse {
15373 type Owned = Self;
15374
15375 #[inline(always)]
15376 fn inline_align(_context: fidl::encoding::Context) -> usize {
15377 8
15378 }
15379
15380 #[inline(always)]
15381 fn inline_size(_context: fidl::encoding::Context) -> usize {
15382 16
15383 }
15384 }
15385
15386 unsafe impl<D: fidl::encoding::ResourceDialect>
15387 fidl::encoding::Encode<WlanFullmacImplQueryApfPacketFilterSupportResponse, D>
15388 for &WlanFullmacImplQueryApfPacketFilterSupportResponse
15389 {
15390 unsafe fn encode(
15391 self,
15392 encoder: &mut fidl::encoding::Encoder<'_, D>,
15393 offset: usize,
15394 mut depth: fidl::encoding::Depth,
15395 ) -> fidl::Result<()> {
15396 encoder
15397 .debug_check_bounds::<WlanFullmacImplQueryApfPacketFilterSupportResponse>(offset);
15398 let max_ordinal: u64 = self.max_ordinal_present();
15400 encoder.write_num(max_ordinal, offset);
15401 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
15402 if max_ordinal == 0 {
15404 return Ok(());
15405 }
15406 depth.increment()?;
15407 let envelope_size = 8;
15408 let bytes_len = max_ordinal as usize * envelope_size;
15409 #[allow(unused_variables)]
15410 let offset = encoder.out_of_line_offset(bytes_len);
15411 let mut _prev_end_offset: usize = 0;
15412 if 1 > max_ordinal {
15413 return Ok(());
15414 }
15415
15416 let cur_offset: usize = (1 - 1) * envelope_size;
15419
15420 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
15422
15423 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_common_common::ApfPacketFilterSupport, D>(
15428 self.resp.as_ref().map(<fidl_fuchsia_wlan_common_common::ApfPacketFilterSupport as fidl::encoding::ValueTypeMarker>::borrow),
15429 encoder, offset + cur_offset, depth
15430 )?;
15431
15432 _prev_end_offset = cur_offset + envelope_size;
15433
15434 Ok(())
15435 }
15436 }
15437
15438 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
15439 for WlanFullmacImplQueryApfPacketFilterSupportResponse
15440 {
15441 #[inline(always)]
15442 fn new_empty() -> Self {
15443 Self::default()
15444 }
15445
15446 unsafe fn decode(
15447 &mut self,
15448 decoder: &mut fidl::encoding::Decoder<'_, D>,
15449 offset: usize,
15450 mut depth: fidl::encoding::Depth,
15451 ) -> fidl::Result<()> {
15452 decoder.debug_check_bounds::<Self>(offset);
15453 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
15454 None => return Err(fidl::Error::NotNullable),
15455 Some(len) => len,
15456 };
15457 if len == 0 {
15459 return Ok(());
15460 };
15461 depth.increment()?;
15462 let envelope_size = 8;
15463 let bytes_len = len * envelope_size;
15464 let offset = decoder.out_of_line_offset(bytes_len)?;
15465 let mut _next_ordinal_to_read = 0;
15467 let mut next_offset = offset;
15468 let end_offset = offset + bytes_len;
15469 _next_ordinal_to_read += 1;
15470 if next_offset >= end_offset {
15471 return Ok(());
15472 }
15473
15474 while _next_ordinal_to_read < 1 {
15476 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15477 _next_ordinal_to_read += 1;
15478 next_offset += envelope_size;
15479 }
15480
15481 let next_out_of_line = decoder.next_out_of_line();
15482 let handles_before = decoder.remaining_handles();
15483 if let Some((inlined, num_bytes, num_handles)) =
15484 fidl::encoding::decode_envelope_header(decoder, next_offset)?
15485 {
15486 let member_inline_size = <fidl_fuchsia_wlan_common_common::ApfPacketFilterSupport as fidl::encoding::TypeMarker>::inline_size(decoder.context);
15487 if inlined != (member_inline_size <= 4) {
15488 return Err(fidl::Error::InvalidInlineBitInEnvelope);
15489 }
15490 let inner_offset;
15491 let mut inner_depth = depth.clone();
15492 if inlined {
15493 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
15494 inner_offset = next_offset;
15495 } else {
15496 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
15497 inner_depth.increment()?;
15498 }
15499 let val_ref = self.resp.get_or_insert_with(|| {
15500 fidl::new_empty!(fidl_fuchsia_wlan_common_common::ApfPacketFilterSupport, D)
15501 });
15502 fidl::decode!(
15503 fidl_fuchsia_wlan_common_common::ApfPacketFilterSupport,
15504 D,
15505 val_ref,
15506 decoder,
15507 inner_offset,
15508 inner_depth
15509 )?;
15510 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
15511 {
15512 return Err(fidl::Error::InvalidNumBytesInEnvelope);
15513 }
15514 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
15515 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
15516 }
15517 }
15518
15519 next_offset += envelope_size;
15520
15521 while next_offset < end_offset {
15523 _next_ordinal_to_read += 1;
15524 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15525 next_offset += envelope_size;
15526 }
15527
15528 Ok(())
15529 }
15530 }
15531
15532 impl WlanFullmacImplQuerySecuritySupportResponse {
15533 #[inline(always)]
15534 fn max_ordinal_present(&self) -> u64 {
15535 if let Some(_) = self.resp {
15536 return 1;
15537 }
15538 0
15539 }
15540 }
15541
15542 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplQuerySecuritySupportResponse {
15543 type Borrowed<'a> = &'a Self;
15544 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
15545 value
15546 }
15547 }
15548
15549 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplQuerySecuritySupportResponse {
15550 type Owned = Self;
15551
15552 #[inline(always)]
15553 fn inline_align(_context: fidl::encoding::Context) -> usize {
15554 8
15555 }
15556
15557 #[inline(always)]
15558 fn inline_size(_context: fidl::encoding::Context) -> usize {
15559 16
15560 }
15561 }
15562
15563 unsafe impl<D: fidl::encoding::ResourceDialect>
15564 fidl::encoding::Encode<WlanFullmacImplQuerySecuritySupportResponse, D>
15565 for &WlanFullmacImplQuerySecuritySupportResponse
15566 {
15567 unsafe fn encode(
15568 self,
15569 encoder: &mut fidl::encoding::Encoder<'_, D>,
15570 offset: usize,
15571 mut depth: fidl::encoding::Depth,
15572 ) -> fidl::Result<()> {
15573 encoder.debug_check_bounds::<WlanFullmacImplQuerySecuritySupportResponse>(offset);
15574 let max_ordinal: u64 = self.max_ordinal_present();
15576 encoder.write_num(max_ordinal, offset);
15577 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
15578 if max_ordinal == 0 {
15580 return Ok(());
15581 }
15582 depth.increment()?;
15583 let envelope_size = 8;
15584 let bytes_len = max_ordinal as usize * envelope_size;
15585 #[allow(unused_variables)]
15586 let offset = encoder.out_of_line_offset(bytes_len);
15587 let mut _prev_end_offset: usize = 0;
15588 if 1 > max_ordinal {
15589 return Ok(());
15590 }
15591
15592 let cur_offset: usize = (1 - 1) * envelope_size;
15595
15596 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
15598
15599 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_common_common::SecuritySupport, D>(
15604 self.resp.as_ref().map(<fidl_fuchsia_wlan_common_common::SecuritySupport as fidl::encoding::ValueTypeMarker>::borrow),
15605 encoder, offset + cur_offset, depth
15606 )?;
15607
15608 _prev_end_offset = cur_offset + envelope_size;
15609
15610 Ok(())
15611 }
15612 }
15613
15614 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
15615 for WlanFullmacImplQuerySecuritySupportResponse
15616 {
15617 #[inline(always)]
15618 fn new_empty() -> Self {
15619 Self::default()
15620 }
15621
15622 unsafe fn decode(
15623 &mut self,
15624 decoder: &mut fidl::encoding::Decoder<'_, D>,
15625 offset: usize,
15626 mut depth: fidl::encoding::Depth,
15627 ) -> fidl::Result<()> {
15628 decoder.debug_check_bounds::<Self>(offset);
15629 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
15630 None => return Err(fidl::Error::NotNullable),
15631 Some(len) => len,
15632 };
15633 if len == 0 {
15635 return Ok(());
15636 };
15637 depth.increment()?;
15638 let envelope_size = 8;
15639 let bytes_len = len * envelope_size;
15640 let offset = decoder.out_of_line_offset(bytes_len)?;
15641 let mut _next_ordinal_to_read = 0;
15643 let mut next_offset = offset;
15644 let end_offset = offset + bytes_len;
15645 _next_ordinal_to_read += 1;
15646 if next_offset >= end_offset {
15647 return Ok(());
15648 }
15649
15650 while _next_ordinal_to_read < 1 {
15652 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15653 _next_ordinal_to_read += 1;
15654 next_offset += envelope_size;
15655 }
15656
15657 let next_out_of_line = decoder.next_out_of_line();
15658 let handles_before = decoder.remaining_handles();
15659 if let Some((inlined, num_bytes, num_handles)) =
15660 fidl::encoding::decode_envelope_header(decoder, next_offset)?
15661 {
15662 let member_inline_size = <fidl_fuchsia_wlan_common_common::SecuritySupport as fidl::encoding::TypeMarker>::inline_size(decoder.context);
15663 if inlined != (member_inline_size <= 4) {
15664 return Err(fidl::Error::InvalidInlineBitInEnvelope);
15665 }
15666 let inner_offset;
15667 let mut inner_depth = depth.clone();
15668 if inlined {
15669 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
15670 inner_offset = next_offset;
15671 } else {
15672 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
15673 inner_depth.increment()?;
15674 }
15675 let val_ref = self.resp.get_or_insert_with(|| {
15676 fidl::new_empty!(fidl_fuchsia_wlan_common_common::SecuritySupport, D)
15677 });
15678 fidl::decode!(
15679 fidl_fuchsia_wlan_common_common::SecuritySupport,
15680 D,
15681 val_ref,
15682 decoder,
15683 inner_offset,
15684 inner_depth
15685 )?;
15686 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
15687 {
15688 return Err(fidl::Error::InvalidNumBytesInEnvelope);
15689 }
15690 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
15691 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
15692 }
15693 }
15694
15695 next_offset += envelope_size;
15696
15697 while next_offset < end_offset {
15699 _next_ordinal_to_read += 1;
15700 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15701 next_offset += envelope_size;
15702 }
15703
15704 Ok(())
15705 }
15706 }
15707
15708 impl WlanFullmacImplQuerySpectrumManagementSupportResponse {
15709 #[inline(always)]
15710 fn max_ordinal_present(&self) -> u64 {
15711 if let Some(_) = self.resp {
15712 return 1;
15713 }
15714 0
15715 }
15716 }
15717
15718 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplQuerySpectrumManagementSupportResponse {
15719 type Borrowed<'a> = &'a Self;
15720 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
15721 value
15722 }
15723 }
15724
15725 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplQuerySpectrumManagementSupportResponse {
15726 type Owned = Self;
15727
15728 #[inline(always)]
15729 fn inline_align(_context: fidl::encoding::Context) -> usize {
15730 8
15731 }
15732
15733 #[inline(always)]
15734 fn inline_size(_context: fidl::encoding::Context) -> usize {
15735 16
15736 }
15737 }
15738
15739 unsafe impl<D: fidl::encoding::ResourceDialect>
15740 fidl::encoding::Encode<WlanFullmacImplQuerySpectrumManagementSupportResponse, D>
15741 for &WlanFullmacImplQuerySpectrumManagementSupportResponse
15742 {
15743 unsafe fn encode(
15744 self,
15745 encoder: &mut fidl::encoding::Encoder<'_, D>,
15746 offset: usize,
15747 mut depth: fidl::encoding::Depth,
15748 ) -> fidl::Result<()> {
15749 encoder.debug_check_bounds::<WlanFullmacImplQuerySpectrumManagementSupportResponse>(
15750 offset,
15751 );
15752 let max_ordinal: u64 = self.max_ordinal_present();
15754 encoder.write_num(max_ordinal, offset);
15755 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
15756 if max_ordinal == 0 {
15758 return Ok(());
15759 }
15760 depth.increment()?;
15761 let envelope_size = 8;
15762 let bytes_len = max_ordinal as usize * envelope_size;
15763 #[allow(unused_variables)]
15764 let offset = encoder.out_of_line_offset(bytes_len);
15765 let mut _prev_end_offset: usize = 0;
15766 if 1 > max_ordinal {
15767 return Ok(());
15768 }
15769
15770 let cur_offset: usize = (1 - 1) * envelope_size;
15773
15774 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
15776
15777 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_common_common::SpectrumManagementSupport, D>(
15782 self.resp.as_ref().map(<fidl_fuchsia_wlan_common_common::SpectrumManagementSupport as fidl::encoding::ValueTypeMarker>::borrow),
15783 encoder, offset + cur_offset, depth
15784 )?;
15785
15786 _prev_end_offset = cur_offset + envelope_size;
15787
15788 Ok(())
15789 }
15790 }
15791
15792 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
15793 for WlanFullmacImplQuerySpectrumManagementSupportResponse
15794 {
15795 #[inline(always)]
15796 fn new_empty() -> Self {
15797 Self::default()
15798 }
15799
15800 unsafe fn decode(
15801 &mut self,
15802 decoder: &mut fidl::encoding::Decoder<'_, D>,
15803 offset: usize,
15804 mut depth: fidl::encoding::Depth,
15805 ) -> fidl::Result<()> {
15806 decoder.debug_check_bounds::<Self>(offset);
15807 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
15808 None => return Err(fidl::Error::NotNullable),
15809 Some(len) => len,
15810 };
15811 if len == 0 {
15813 return Ok(());
15814 };
15815 depth.increment()?;
15816 let envelope_size = 8;
15817 let bytes_len = len * envelope_size;
15818 let offset = decoder.out_of_line_offset(bytes_len)?;
15819 let mut _next_ordinal_to_read = 0;
15821 let mut next_offset = offset;
15822 let end_offset = offset + bytes_len;
15823 _next_ordinal_to_read += 1;
15824 if next_offset >= end_offset {
15825 return Ok(());
15826 }
15827
15828 while _next_ordinal_to_read < 1 {
15830 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15831 _next_ordinal_to_read += 1;
15832 next_offset += envelope_size;
15833 }
15834
15835 let next_out_of_line = decoder.next_out_of_line();
15836 let handles_before = decoder.remaining_handles();
15837 if let Some((inlined, num_bytes, num_handles)) =
15838 fidl::encoding::decode_envelope_header(decoder, next_offset)?
15839 {
15840 let member_inline_size = <fidl_fuchsia_wlan_common_common::SpectrumManagementSupport as fidl::encoding::TypeMarker>::inline_size(decoder.context);
15841 if inlined != (member_inline_size <= 4) {
15842 return Err(fidl::Error::InvalidInlineBitInEnvelope);
15843 }
15844 let inner_offset;
15845 let mut inner_depth = depth.clone();
15846 if inlined {
15847 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
15848 inner_offset = next_offset;
15849 } else {
15850 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
15851 inner_depth.increment()?;
15852 }
15853 let val_ref = self.resp.get_or_insert_with(|| {
15854 fidl::new_empty!(fidl_fuchsia_wlan_common_common::SpectrumManagementSupport, D)
15855 });
15856 fidl::decode!(
15857 fidl_fuchsia_wlan_common_common::SpectrumManagementSupport,
15858 D,
15859 val_ref,
15860 decoder,
15861 inner_offset,
15862 inner_depth
15863 )?;
15864 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
15865 {
15866 return Err(fidl::Error::InvalidNumBytesInEnvelope);
15867 }
15868 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
15869 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
15870 }
15871 }
15872
15873 next_offset += envelope_size;
15874
15875 while next_offset < end_offset {
15877 _next_ordinal_to_read += 1;
15878 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15879 next_offset += envelope_size;
15880 }
15881
15882 Ok(())
15883 }
15884 }
15885
15886 impl WlanFullmacImplQueryTelemetrySupportResponse {
15887 #[inline(always)]
15888 fn max_ordinal_present(&self) -> u64 {
15889 if let Some(_) = self.resp {
15890 return 1;
15891 }
15892 0
15893 }
15894 }
15895
15896 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplQueryTelemetrySupportResponse {
15897 type Borrowed<'a> = &'a Self;
15898 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
15899 value
15900 }
15901 }
15902
15903 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplQueryTelemetrySupportResponse {
15904 type Owned = Self;
15905
15906 #[inline(always)]
15907 fn inline_align(_context: fidl::encoding::Context) -> usize {
15908 8
15909 }
15910
15911 #[inline(always)]
15912 fn inline_size(_context: fidl::encoding::Context) -> usize {
15913 16
15914 }
15915 }
15916
15917 unsafe impl<D: fidl::encoding::ResourceDialect>
15918 fidl::encoding::Encode<WlanFullmacImplQueryTelemetrySupportResponse, D>
15919 for &WlanFullmacImplQueryTelemetrySupportResponse
15920 {
15921 unsafe fn encode(
15922 self,
15923 encoder: &mut fidl::encoding::Encoder<'_, D>,
15924 offset: usize,
15925 mut depth: fidl::encoding::Depth,
15926 ) -> fidl::Result<()> {
15927 encoder.debug_check_bounds::<WlanFullmacImplQueryTelemetrySupportResponse>(offset);
15928 let max_ordinal: u64 = self.max_ordinal_present();
15930 encoder.write_num(max_ordinal, offset);
15931 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
15932 if max_ordinal == 0 {
15934 return Ok(());
15935 }
15936 depth.increment()?;
15937 let envelope_size = 8;
15938 let bytes_len = max_ordinal as usize * envelope_size;
15939 #[allow(unused_variables)]
15940 let offset = encoder.out_of_line_offset(bytes_len);
15941 let mut _prev_end_offset: usize = 0;
15942 if 1 > max_ordinal {
15943 return Ok(());
15944 }
15945
15946 let cur_offset: usize = (1 - 1) * envelope_size;
15949
15950 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
15952
15953 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_stats_common::TelemetrySupport, D>(
15958 self.resp.as_ref().map(<fidl_fuchsia_wlan_stats_common::TelemetrySupport as fidl::encoding::ValueTypeMarker>::borrow),
15959 encoder, offset + cur_offset, depth
15960 )?;
15961
15962 _prev_end_offset = cur_offset + envelope_size;
15963
15964 Ok(())
15965 }
15966 }
15967
15968 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
15969 for WlanFullmacImplQueryTelemetrySupportResponse
15970 {
15971 #[inline(always)]
15972 fn new_empty() -> Self {
15973 Self::default()
15974 }
15975
15976 unsafe fn decode(
15977 &mut self,
15978 decoder: &mut fidl::encoding::Decoder<'_, D>,
15979 offset: usize,
15980 mut depth: fidl::encoding::Depth,
15981 ) -> fidl::Result<()> {
15982 decoder.debug_check_bounds::<Self>(offset);
15983 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
15984 None => return Err(fidl::Error::NotNullable),
15985 Some(len) => len,
15986 };
15987 if len == 0 {
15989 return Ok(());
15990 };
15991 depth.increment()?;
15992 let envelope_size = 8;
15993 let bytes_len = len * envelope_size;
15994 let offset = decoder.out_of_line_offset(bytes_len)?;
15995 let mut _next_ordinal_to_read = 0;
15997 let mut next_offset = offset;
15998 let end_offset = offset + bytes_len;
15999 _next_ordinal_to_read += 1;
16000 if next_offset >= end_offset {
16001 return Ok(());
16002 }
16003
16004 while _next_ordinal_to_read < 1 {
16006 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
16007 _next_ordinal_to_read += 1;
16008 next_offset += envelope_size;
16009 }
16010
16011 let next_out_of_line = decoder.next_out_of_line();
16012 let handles_before = decoder.remaining_handles();
16013 if let Some((inlined, num_bytes, num_handles)) =
16014 fidl::encoding::decode_envelope_header(decoder, next_offset)?
16015 {
16016 let member_inline_size = <fidl_fuchsia_wlan_stats_common::TelemetrySupport as fidl::encoding::TypeMarker>::inline_size(decoder.context);
16017 if inlined != (member_inline_size <= 4) {
16018 return Err(fidl::Error::InvalidInlineBitInEnvelope);
16019 }
16020 let inner_offset;
16021 let mut inner_depth = depth.clone();
16022 if inlined {
16023 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
16024 inner_offset = next_offset;
16025 } else {
16026 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
16027 inner_depth.increment()?;
16028 }
16029 let val_ref = self.resp.get_or_insert_with(|| {
16030 fidl::new_empty!(fidl_fuchsia_wlan_stats_common::TelemetrySupport, D)
16031 });
16032 fidl::decode!(
16033 fidl_fuchsia_wlan_stats_common::TelemetrySupport,
16034 D,
16035 val_ref,
16036 decoder,
16037 inner_offset,
16038 inner_depth
16039 )?;
16040 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
16041 {
16042 return Err(fidl::Error::InvalidNumBytesInEnvelope);
16043 }
16044 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
16045 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
16046 }
16047 }
16048
16049 next_offset += envelope_size;
16050
16051 while next_offset < end_offset {
16053 _next_ordinal_to_read += 1;
16054 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
16055 next_offset += envelope_size;
16056 }
16057
16058 Ok(())
16059 }
16060 }
16061
16062 impl WlanFullmacImplQueryResponse {
16063 #[inline(always)]
16064 fn max_ordinal_present(&self) -> u64 {
16065 if let Some(_) = self.factory_addr {
16066 return 4;
16067 }
16068 if let Some(_) = self.band_caps {
16069 return 3;
16070 }
16071 if let Some(_) = self.role {
16072 return 2;
16073 }
16074 if let Some(_) = self.sta_addr {
16075 return 1;
16076 }
16077 0
16078 }
16079 }
16080
16081 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplQueryResponse {
16082 type Borrowed<'a> = &'a Self;
16083 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
16084 value
16085 }
16086 }
16087
16088 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplQueryResponse {
16089 type Owned = Self;
16090
16091 #[inline(always)]
16092 fn inline_align(_context: fidl::encoding::Context) -> usize {
16093 8
16094 }
16095
16096 #[inline(always)]
16097 fn inline_size(_context: fidl::encoding::Context) -> usize {
16098 16
16099 }
16100 }
16101
16102 unsafe impl<D: fidl::encoding::ResourceDialect>
16103 fidl::encoding::Encode<WlanFullmacImplQueryResponse, D> for &WlanFullmacImplQueryResponse
16104 {
16105 unsafe fn encode(
16106 self,
16107 encoder: &mut fidl::encoding::Encoder<'_, D>,
16108 offset: usize,
16109 mut depth: fidl::encoding::Depth,
16110 ) -> fidl::Result<()> {
16111 encoder.debug_check_bounds::<WlanFullmacImplQueryResponse>(offset);
16112 let max_ordinal: u64 = self.max_ordinal_present();
16114 encoder.write_num(max_ordinal, offset);
16115 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
16116 if max_ordinal == 0 {
16118 return Ok(());
16119 }
16120 depth.increment()?;
16121 let envelope_size = 8;
16122 let bytes_len = max_ordinal as usize * envelope_size;
16123 #[allow(unused_variables)]
16124 let offset = encoder.out_of_line_offset(bytes_len);
16125 let mut _prev_end_offset: usize = 0;
16126 if 1 > max_ordinal {
16127 return Ok(());
16128 }
16129
16130 let cur_offset: usize = (1 - 1) * envelope_size;
16133
16134 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
16136
16137 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
16142 self.sta_addr
16143 .as_ref()
16144 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
16145 encoder,
16146 offset + cur_offset,
16147 depth,
16148 )?;
16149
16150 _prev_end_offset = cur_offset + envelope_size;
16151 if 2 > max_ordinal {
16152 return Ok(());
16153 }
16154
16155 let cur_offset: usize = (2 - 1) * envelope_size;
16158
16159 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
16161
16162 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_common_common::WlanMacRole, D>(
16167 self.role.as_ref().map(<fidl_fuchsia_wlan_common_common::WlanMacRole as fidl::encoding::ValueTypeMarker>::borrow),
16168 encoder, offset + cur_offset, depth
16169 )?;
16170
16171 _prev_end_offset = cur_offset + envelope_size;
16172 if 3 > max_ordinal {
16173 return Ok(());
16174 }
16175
16176 let cur_offset: usize = (3 - 1) * envelope_size;
16179
16180 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
16182
16183 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<BandCapability, 16>, D>(
16188 self.band_caps.as_ref().map(<fidl::encoding::Vector<BandCapability, 16> as fidl::encoding::ValueTypeMarker>::borrow),
16189 encoder, offset + cur_offset, depth
16190 )?;
16191
16192 _prev_end_offset = cur_offset + envelope_size;
16193 if 4 > max_ordinal {
16194 return Ok(());
16195 }
16196
16197 let cur_offset: usize = (4 - 1) * envelope_size;
16200
16201 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
16203
16204 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
16209 self.factory_addr
16210 .as_ref()
16211 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
16212 encoder,
16213 offset + cur_offset,
16214 depth,
16215 )?;
16216
16217 _prev_end_offset = cur_offset + envelope_size;
16218
16219 Ok(())
16220 }
16221 }
16222
16223 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
16224 for WlanFullmacImplQueryResponse
16225 {
16226 #[inline(always)]
16227 fn new_empty() -> Self {
16228 Self::default()
16229 }
16230
16231 unsafe fn decode(
16232 &mut self,
16233 decoder: &mut fidl::encoding::Decoder<'_, D>,
16234 offset: usize,
16235 mut depth: fidl::encoding::Depth,
16236 ) -> fidl::Result<()> {
16237 decoder.debug_check_bounds::<Self>(offset);
16238 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
16239 None => return Err(fidl::Error::NotNullable),
16240 Some(len) => len,
16241 };
16242 if len == 0 {
16244 return Ok(());
16245 };
16246 depth.increment()?;
16247 let envelope_size = 8;
16248 let bytes_len = len * envelope_size;
16249 let offset = decoder.out_of_line_offset(bytes_len)?;
16250 let mut _next_ordinal_to_read = 0;
16252 let mut next_offset = offset;
16253 let end_offset = offset + bytes_len;
16254 _next_ordinal_to_read += 1;
16255 if next_offset >= end_offset {
16256 return Ok(());
16257 }
16258
16259 while _next_ordinal_to_read < 1 {
16261 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
16262 _next_ordinal_to_read += 1;
16263 next_offset += envelope_size;
16264 }
16265
16266 let next_out_of_line = decoder.next_out_of_line();
16267 let handles_before = decoder.remaining_handles();
16268 if let Some((inlined, num_bytes, num_handles)) =
16269 fidl::encoding::decode_envelope_header(decoder, next_offset)?
16270 {
16271 let member_inline_size =
16272 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
16273 decoder.context,
16274 );
16275 if inlined != (member_inline_size <= 4) {
16276 return Err(fidl::Error::InvalidInlineBitInEnvelope);
16277 }
16278 let inner_offset;
16279 let mut inner_depth = depth.clone();
16280 if inlined {
16281 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
16282 inner_offset = next_offset;
16283 } else {
16284 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
16285 inner_depth.increment()?;
16286 }
16287 let val_ref = self
16288 .sta_addr
16289 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
16290 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
16291 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
16292 {
16293 return Err(fidl::Error::InvalidNumBytesInEnvelope);
16294 }
16295 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
16296 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
16297 }
16298 }
16299
16300 next_offset += envelope_size;
16301 _next_ordinal_to_read += 1;
16302 if next_offset >= end_offset {
16303 return Ok(());
16304 }
16305
16306 while _next_ordinal_to_read < 2 {
16308 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
16309 _next_ordinal_to_read += 1;
16310 next_offset += envelope_size;
16311 }
16312
16313 let next_out_of_line = decoder.next_out_of_line();
16314 let handles_before = decoder.remaining_handles();
16315 if let Some((inlined, num_bytes, num_handles)) =
16316 fidl::encoding::decode_envelope_header(decoder, next_offset)?
16317 {
16318 let member_inline_size = <fidl_fuchsia_wlan_common_common::WlanMacRole as fidl::encoding::TypeMarker>::inline_size(decoder.context);
16319 if inlined != (member_inline_size <= 4) {
16320 return Err(fidl::Error::InvalidInlineBitInEnvelope);
16321 }
16322 let inner_offset;
16323 let mut inner_depth = depth.clone();
16324 if inlined {
16325 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
16326 inner_offset = next_offset;
16327 } else {
16328 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
16329 inner_depth.increment()?;
16330 }
16331 let val_ref = self.role.get_or_insert_with(|| {
16332 fidl::new_empty!(fidl_fuchsia_wlan_common_common::WlanMacRole, D)
16333 });
16334 fidl::decode!(
16335 fidl_fuchsia_wlan_common_common::WlanMacRole,
16336 D,
16337 val_ref,
16338 decoder,
16339 inner_offset,
16340 inner_depth
16341 )?;
16342 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
16343 {
16344 return Err(fidl::Error::InvalidNumBytesInEnvelope);
16345 }
16346 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
16347 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
16348 }
16349 }
16350
16351 next_offset += envelope_size;
16352 _next_ordinal_to_read += 1;
16353 if next_offset >= end_offset {
16354 return Ok(());
16355 }
16356
16357 while _next_ordinal_to_read < 3 {
16359 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
16360 _next_ordinal_to_read += 1;
16361 next_offset += envelope_size;
16362 }
16363
16364 let next_out_of_line = decoder.next_out_of_line();
16365 let handles_before = decoder.remaining_handles();
16366 if let Some((inlined, num_bytes, num_handles)) =
16367 fidl::encoding::decode_envelope_header(decoder, next_offset)?
16368 {
16369 let member_inline_size = <fidl::encoding::Vector<BandCapability, 16> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
16370 if inlined != (member_inline_size <= 4) {
16371 return Err(fidl::Error::InvalidInlineBitInEnvelope);
16372 }
16373 let inner_offset;
16374 let mut inner_depth = depth.clone();
16375 if inlined {
16376 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
16377 inner_offset = next_offset;
16378 } else {
16379 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
16380 inner_depth.increment()?;
16381 }
16382 let val_ref = self.band_caps.get_or_insert_with(
16383 || fidl::new_empty!(fidl::encoding::Vector<BandCapability, 16>, D),
16384 );
16385 fidl::decode!(fidl::encoding::Vector<BandCapability, 16>, D, val_ref, decoder, inner_offset, inner_depth)?;
16386 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
16387 {
16388 return Err(fidl::Error::InvalidNumBytesInEnvelope);
16389 }
16390 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
16391 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
16392 }
16393 }
16394
16395 next_offset += envelope_size;
16396 _next_ordinal_to_read += 1;
16397 if next_offset >= end_offset {
16398 return Ok(());
16399 }
16400
16401 while _next_ordinal_to_read < 4 {
16403 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
16404 _next_ordinal_to_read += 1;
16405 next_offset += envelope_size;
16406 }
16407
16408 let next_out_of_line = decoder.next_out_of_line();
16409 let handles_before = decoder.remaining_handles();
16410 if let Some((inlined, num_bytes, num_handles)) =
16411 fidl::encoding::decode_envelope_header(decoder, next_offset)?
16412 {
16413 let member_inline_size =
16414 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
16415 decoder.context,
16416 );
16417 if inlined != (member_inline_size <= 4) {
16418 return Err(fidl::Error::InvalidInlineBitInEnvelope);
16419 }
16420 let inner_offset;
16421 let mut inner_depth = depth.clone();
16422 if inlined {
16423 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
16424 inner_offset = next_offset;
16425 } else {
16426 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
16427 inner_depth.increment()?;
16428 }
16429 let val_ref = self
16430 .factory_addr
16431 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
16432 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
16433 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
16434 {
16435 return Err(fidl::Error::InvalidNumBytesInEnvelope);
16436 }
16437 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
16438 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
16439 }
16440 }
16441
16442 next_offset += envelope_size;
16443
16444 while next_offset < end_offset {
16446 _next_ordinal_to_read += 1;
16447 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
16448 next_offset += envelope_size;
16449 }
16450
16451 Ok(())
16452 }
16453 }
16454
16455 impl WlanFullmacImplReadApfPacketFilterDataResponse {
16456 #[inline(always)]
16457 fn max_ordinal_present(&self) -> u64 {
16458 if let Some(_) = self.memory {
16459 return 1;
16460 }
16461 0
16462 }
16463 }
16464
16465 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplReadApfPacketFilterDataResponse {
16466 type Borrowed<'a> = &'a Self;
16467 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
16468 value
16469 }
16470 }
16471
16472 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplReadApfPacketFilterDataResponse {
16473 type Owned = Self;
16474
16475 #[inline(always)]
16476 fn inline_align(_context: fidl::encoding::Context) -> usize {
16477 8
16478 }
16479
16480 #[inline(always)]
16481 fn inline_size(_context: fidl::encoding::Context) -> usize {
16482 16
16483 }
16484 }
16485
16486 unsafe impl<D: fidl::encoding::ResourceDialect>
16487 fidl::encoding::Encode<WlanFullmacImplReadApfPacketFilterDataResponse, D>
16488 for &WlanFullmacImplReadApfPacketFilterDataResponse
16489 {
16490 unsafe fn encode(
16491 self,
16492 encoder: &mut fidl::encoding::Encoder<'_, D>,
16493 offset: usize,
16494 mut depth: fidl::encoding::Depth,
16495 ) -> fidl::Result<()> {
16496 encoder.debug_check_bounds::<WlanFullmacImplReadApfPacketFilterDataResponse>(offset);
16497 let max_ordinal: u64 = self.max_ordinal_present();
16499 encoder.write_num(max_ordinal, offset);
16500 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
16501 if max_ordinal == 0 {
16503 return Ok(());
16504 }
16505 depth.increment()?;
16506 let envelope_size = 8;
16507 let bytes_len = max_ordinal as usize * envelope_size;
16508 #[allow(unused_variables)]
16509 let offset = encoder.out_of_line_offset(bytes_len);
16510 let mut _prev_end_offset: usize = 0;
16511 if 1 > max_ordinal {
16512 return Ok(());
16513 }
16514
16515 let cur_offset: usize = (1 - 1) * envelope_size;
16518
16519 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
16521
16522 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<u8>, D>(
16527 self.memory.as_ref().map(<fidl::encoding::UnboundedVector<u8> as fidl::encoding::ValueTypeMarker>::borrow),
16528 encoder, offset + cur_offset, depth
16529 )?;
16530
16531 _prev_end_offset = cur_offset + envelope_size;
16532
16533 Ok(())
16534 }
16535 }
16536
16537 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
16538 for WlanFullmacImplReadApfPacketFilterDataResponse
16539 {
16540 #[inline(always)]
16541 fn new_empty() -> Self {
16542 Self::default()
16543 }
16544
16545 unsafe fn decode(
16546 &mut self,
16547 decoder: &mut fidl::encoding::Decoder<'_, D>,
16548 offset: usize,
16549 mut depth: fidl::encoding::Depth,
16550 ) -> fidl::Result<()> {
16551 decoder.debug_check_bounds::<Self>(offset);
16552 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
16553 None => return Err(fidl::Error::NotNullable),
16554 Some(len) => len,
16555 };
16556 if len == 0 {
16558 return Ok(());
16559 };
16560 depth.increment()?;
16561 let envelope_size = 8;
16562 let bytes_len = len * envelope_size;
16563 let offset = decoder.out_of_line_offset(bytes_len)?;
16564 let mut _next_ordinal_to_read = 0;
16566 let mut next_offset = offset;
16567 let end_offset = offset + bytes_len;
16568 _next_ordinal_to_read += 1;
16569 if next_offset >= end_offset {
16570 return Ok(());
16571 }
16572
16573 while _next_ordinal_to_read < 1 {
16575 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
16576 _next_ordinal_to_read += 1;
16577 next_offset += envelope_size;
16578 }
16579
16580 let next_out_of_line = decoder.next_out_of_line();
16581 let handles_before = decoder.remaining_handles();
16582 if let Some((inlined, num_bytes, num_handles)) =
16583 fidl::encoding::decode_envelope_header(decoder, next_offset)?
16584 {
16585 let member_inline_size = <fidl::encoding::UnboundedVector<u8> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
16586 if inlined != (member_inline_size <= 4) {
16587 return Err(fidl::Error::InvalidInlineBitInEnvelope);
16588 }
16589 let inner_offset;
16590 let mut inner_depth = depth.clone();
16591 if inlined {
16592 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
16593 inner_offset = next_offset;
16594 } else {
16595 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
16596 inner_depth.increment()?;
16597 }
16598 let val_ref = self.memory.get_or_insert_with(|| {
16599 fidl::new_empty!(fidl::encoding::UnboundedVector<u8>, D)
16600 });
16601 fidl::decode!(
16602 fidl::encoding::UnboundedVector<u8>,
16603 D,
16604 val_ref,
16605 decoder,
16606 inner_offset,
16607 inner_depth
16608 )?;
16609 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
16610 {
16611 return Err(fidl::Error::InvalidNumBytesInEnvelope);
16612 }
16613 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
16614 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
16615 }
16616 }
16617
16618 next_offset += envelope_size;
16619
16620 while next_offset < end_offset {
16622 _next_ordinal_to_read += 1;
16623 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
16624 next_offset += envelope_size;
16625 }
16626
16627 Ok(())
16628 }
16629 }
16630
16631 impl WlanFullmacOwePublicKey {
16632 #[inline(always)]
16633 fn max_ordinal_present(&self) -> u64 {
16634 if let Some(_) = self.key {
16635 return 2;
16636 }
16637 if let Some(_) = self.group {
16638 return 1;
16639 }
16640 0
16641 }
16642 }
16643
16644 impl fidl::encoding::ValueTypeMarker for WlanFullmacOwePublicKey {
16645 type Borrowed<'a> = &'a Self;
16646 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
16647 value
16648 }
16649 }
16650
16651 unsafe impl fidl::encoding::TypeMarker for WlanFullmacOwePublicKey {
16652 type Owned = Self;
16653
16654 #[inline(always)]
16655 fn inline_align(_context: fidl::encoding::Context) -> usize {
16656 8
16657 }
16658
16659 #[inline(always)]
16660 fn inline_size(_context: fidl::encoding::Context) -> usize {
16661 16
16662 }
16663 }
16664
16665 unsafe impl<D: fidl::encoding::ResourceDialect>
16666 fidl::encoding::Encode<WlanFullmacOwePublicKey, D> for &WlanFullmacOwePublicKey
16667 {
16668 unsafe fn encode(
16669 self,
16670 encoder: &mut fidl::encoding::Encoder<'_, D>,
16671 offset: usize,
16672 mut depth: fidl::encoding::Depth,
16673 ) -> fidl::Result<()> {
16674 encoder.debug_check_bounds::<WlanFullmacOwePublicKey>(offset);
16675 let max_ordinal: u64 = self.max_ordinal_present();
16677 encoder.write_num(max_ordinal, offset);
16678 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
16679 if max_ordinal == 0 {
16681 return Ok(());
16682 }
16683 depth.increment()?;
16684 let envelope_size = 8;
16685 let bytes_len = max_ordinal as usize * envelope_size;
16686 #[allow(unused_variables)]
16687 let offset = encoder.out_of_line_offset(bytes_len);
16688 let mut _prev_end_offset: usize = 0;
16689 if 1 > max_ordinal {
16690 return Ok(());
16691 }
16692
16693 let cur_offset: usize = (1 - 1) * envelope_size;
16696
16697 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
16699
16700 fidl::encoding::encode_in_envelope_optional::<u16, D>(
16705 self.group.as_ref().map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
16706 encoder,
16707 offset + cur_offset,
16708 depth,
16709 )?;
16710
16711 _prev_end_offset = cur_offset + envelope_size;
16712 if 2 > max_ordinal {
16713 return Ok(());
16714 }
16715
16716 let cur_offset: usize = (2 - 1) * envelope_size;
16719
16720 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
16722
16723 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<u8>, D>(
16728 self.key.as_ref().map(<fidl::encoding::UnboundedVector<u8> as fidl::encoding::ValueTypeMarker>::borrow),
16729 encoder, offset + cur_offset, depth
16730 )?;
16731
16732 _prev_end_offset = cur_offset + envelope_size;
16733
16734 Ok(())
16735 }
16736 }
16737
16738 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
16739 for WlanFullmacOwePublicKey
16740 {
16741 #[inline(always)]
16742 fn new_empty() -> Self {
16743 Self::default()
16744 }
16745
16746 unsafe fn decode(
16747 &mut self,
16748 decoder: &mut fidl::encoding::Decoder<'_, D>,
16749 offset: usize,
16750 mut depth: fidl::encoding::Depth,
16751 ) -> fidl::Result<()> {
16752 decoder.debug_check_bounds::<Self>(offset);
16753 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
16754 None => return Err(fidl::Error::NotNullable),
16755 Some(len) => len,
16756 };
16757 if len == 0 {
16759 return Ok(());
16760 };
16761 depth.increment()?;
16762 let envelope_size = 8;
16763 let bytes_len = len * envelope_size;
16764 let offset = decoder.out_of_line_offset(bytes_len)?;
16765 let mut _next_ordinal_to_read = 0;
16767 let mut next_offset = offset;
16768 let end_offset = offset + bytes_len;
16769 _next_ordinal_to_read += 1;
16770 if next_offset >= end_offset {
16771 return Ok(());
16772 }
16773
16774 while _next_ordinal_to_read < 1 {
16776 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
16777 _next_ordinal_to_read += 1;
16778 next_offset += envelope_size;
16779 }
16780
16781 let next_out_of_line = decoder.next_out_of_line();
16782 let handles_before = decoder.remaining_handles();
16783 if let Some((inlined, num_bytes, num_handles)) =
16784 fidl::encoding::decode_envelope_header(decoder, next_offset)?
16785 {
16786 let member_inline_size =
16787 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
16788 if inlined != (member_inline_size <= 4) {
16789 return Err(fidl::Error::InvalidInlineBitInEnvelope);
16790 }
16791 let inner_offset;
16792 let mut inner_depth = depth.clone();
16793 if inlined {
16794 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
16795 inner_offset = next_offset;
16796 } else {
16797 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
16798 inner_depth.increment()?;
16799 }
16800 let val_ref = self.group.get_or_insert_with(|| fidl::new_empty!(u16, D));
16801 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
16802 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
16803 {
16804 return Err(fidl::Error::InvalidNumBytesInEnvelope);
16805 }
16806 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
16807 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
16808 }
16809 }
16810
16811 next_offset += envelope_size;
16812 _next_ordinal_to_read += 1;
16813 if next_offset >= end_offset {
16814 return Ok(());
16815 }
16816
16817 while _next_ordinal_to_read < 2 {
16819 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
16820 _next_ordinal_to_read += 1;
16821 next_offset += envelope_size;
16822 }
16823
16824 let next_out_of_line = decoder.next_out_of_line();
16825 let handles_before = decoder.remaining_handles();
16826 if let Some((inlined, num_bytes, num_handles)) =
16827 fidl::encoding::decode_envelope_header(decoder, next_offset)?
16828 {
16829 let member_inline_size = <fidl::encoding::UnboundedVector<u8> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
16830 if inlined != (member_inline_size <= 4) {
16831 return Err(fidl::Error::InvalidInlineBitInEnvelope);
16832 }
16833 let inner_offset;
16834 let mut inner_depth = depth.clone();
16835 if inlined {
16836 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
16837 inner_offset = next_offset;
16838 } else {
16839 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
16840 inner_depth.increment()?;
16841 }
16842 let val_ref = self.key.get_or_insert_with(|| {
16843 fidl::new_empty!(fidl::encoding::UnboundedVector<u8>, D)
16844 });
16845 fidl::decode!(
16846 fidl::encoding::UnboundedVector<u8>,
16847 D,
16848 val_ref,
16849 decoder,
16850 inner_offset,
16851 inner_depth
16852 )?;
16853 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
16854 {
16855 return Err(fidl::Error::InvalidNumBytesInEnvelope);
16856 }
16857 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
16858 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
16859 }
16860 }
16861
16862 next_offset += envelope_size;
16863
16864 while next_offset < end_offset {
16866 _next_ordinal_to_read += 1;
16867 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
16868 next_offset += envelope_size;
16869 }
16870
16871 Ok(())
16872 }
16873 }
16874}