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, Debug, PartialEq)]
609pub struct WlanFullmacImplIfcSignalReportRequest {
610 pub ind: WlanFullmacSignalReportIndication,
611}
612
613impl fidl::Persistable for WlanFullmacImplIfcSignalReportRequest {}
614
615#[derive(Clone, Debug, PartialEq)]
616pub struct WlanFullmacImplSaeFrameTxRequest {
617 pub frame: SaeFrame,
618}
619
620impl fidl::Persistable for WlanFullmacImplSaeFrameTxRequest {}
621
622#[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
623pub struct WlanFullmacImplSetKeysResponse {
624 pub resp: WlanFullmacSetKeysResp,
625}
626
627impl fidl::Persistable for WlanFullmacImplSetKeysResponse {}
628
629#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
630#[repr(C)]
631pub struct WlanFullmacImplSetMacAddressRequest {
632 pub mac_addr: [u8; 6],
633}
634
635impl fidl::Persistable for WlanFullmacImplSetMacAddressRequest {}
636
637#[derive(Clone, Debug, PartialEq)]
638pub struct WlanFullmacImplGetIfaceHistogramStatsResponse {
639 pub stats: fidl_fuchsia_wlan_stats_common::IfaceHistogramStats,
640}
641
642impl fidl::Persistable for WlanFullmacImplGetIfaceHistogramStatsResponse {}
643
644#[derive(Clone, Debug, PartialEq)]
645pub struct WlanFullmacImplGetIfaceStatsResponse {
646 pub stats: fidl_fuchsia_wlan_stats_common::IfaceStats,
647}
648
649impl fidl::Persistable for WlanFullmacImplGetIfaceStatsResponse {}
650
651#[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
652pub struct WlanFullmacRssiStats {
653 pub hist: Vec<u64>,
654}
655
656impl fidl::Persistable for WlanFullmacRssiStats {}
657
658#[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
659pub struct WlanFullmacSetKeysResp {
660 pub statuslist: Vec<i32>,
661}
662
663impl fidl::Persistable for WlanFullmacSetKeysResp {}
664
665#[derive(Clone, Debug, Default, PartialEq)]
667pub struct BandCapability {
668 pub band: Option<fidl_fuchsia_wlan_ieee80211_common::WlanBand>,
672 pub basic_rates: Option<Vec<u8>>,
679 pub ht_caps: Option<fidl_fuchsia_wlan_ieee80211_common::HtCapabilities>,
684 pub vht_caps: Option<fidl_fuchsia_wlan_ieee80211_common::VhtCapabilities>,
689 pub primary_channels: Option<Vec<fidl_fuchsia_wlan_ieee80211_common::ChannelNumber>>,
701 #[doc(hidden)]
702 pub __source_breaking: fidl::marker::SourceBreaking,
703}
704
705impl fidl::Persistable for BandCapability {}
706
707#[derive(Clone, Debug, Default, PartialEq)]
710pub struct SaeFrame {
711 pub peer_sta_address: Option<[u8; 6]>,
713 pub status_code: Option<fidl_fuchsia_wlan_ieee80211_common::StatusCode>,
715 pub seq_num: Option<u16>,
717 pub sae_fields: Option<Vec<u8>>,
721 #[doc(hidden)]
722 pub __source_breaking: fidl::marker::SourceBreaking,
723}
724
725impl fidl::Persistable for SaeFrame {}
726
727#[derive(Clone, Debug, Default, PartialEq)]
728pub struct WlanFullmacImplAssocRespRequest {
729 pub peer_sta_address: Option<[u8; 6]>,
730 pub result_code: Option<WlanAssocResult>,
731 pub association_id: Option<u16>,
732 #[doc(hidden)]
733 pub __source_breaking: fidl::marker::SourceBreaking,
734}
735
736impl fidl::Persistable for WlanFullmacImplAssocRespRequest {}
737
738#[derive(Clone, Debug, Default, PartialEq)]
739pub struct WlanFullmacImplAuthRespRequest {
740 pub peer_sta_address: Option<[u8; 6]>,
741 pub result_code: Option<WlanAuthResult>,
742 #[doc(hidden)]
743 pub __source_breaking: fidl::marker::SourceBreaking,
744}
745
746impl fidl::Persistable for WlanFullmacImplAuthRespRequest {}
747
748#[derive(Clone, Debug, Default, PartialEq)]
749pub struct WlanFullmacImplConnectRequest {
750 pub selected_bss: Option<fidl_fuchsia_wlan_ieee80211_common::BssDescription>,
751 pub connect_failure_timeout: Option<u32>,
753 pub auth_type: Option<WlanAuthType>,
755 pub sae_password: Option<Vec<u8>>,
758 pub wep_key: Option<fidl_fuchsia_wlan_driver_common::WlanKeyConfig>,
761 pub security_ie: Option<Vec<u8>>,
763 pub wep_key_desc: Option<fidl_fuchsia_wlan_ieee80211_common::SetKeyDescriptor>,
766 pub owe_public_key: Option<WlanFullmacOwePublicKey>,
769 #[doc(hidden)]
770 pub __source_breaking: fidl::marker::SourceBreaking,
771}
772
773impl fidl::Persistable for WlanFullmacImplConnectRequest {}
774
775#[derive(Clone, Debug, Default, PartialEq)]
776pub struct WlanFullmacImplDeauthRequest {
777 pub peer_sta_address: Option<[u8; 6]>,
778 pub reason_code: Option<fidl_fuchsia_wlan_ieee80211_common::ReasonCode>,
779 #[doc(hidden)]
780 pub __source_breaking: fidl::marker::SourceBreaking,
781}
782
783impl fidl::Persistable for WlanFullmacImplDeauthRequest {}
784
785#[derive(Clone, Debug, Default, PartialEq)]
786pub struct WlanFullmacImplDisassocRequest {
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 WlanFullmacImplDisassocRequest {}
794
795#[derive(Clone, Debug, Default, PartialEq)]
796pub struct WlanFullmacImplEapolTxRequest {
797 pub src_addr: Option<[u8; 6]>,
798 pub dst_addr: Option<[u8; 6]>,
799 pub data: Option<Vec<u8>>,
800 #[doc(hidden)]
801 pub __source_breaking: fidl::marker::SourceBreaking,
802}
803
804impl fidl::Persistable for WlanFullmacImplEapolTxRequest {}
805
806#[derive(Clone, Debug, Default, PartialEq)]
807pub struct WlanFullmacImplIfcAssocIndRequest {
808 pub peer_sta_address: Option<[u8; 6]>,
809 pub listen_interval: Option<u16>,
810 pub ssid: Option<Vec<u8>>,
811 pub rsne: Option<Vec<u8>>,
812 pub vendor_ie: Option<Vec<u8>>,
813 #[doc(hidden)]
814 pub __source_breaking: fidl::marker::SourceBreaking,
815}
816
817impl fidl::Persistable for WlanFullmacImplIfcAssocIndRequest {}
818
819#[derive(Clone, Debug, Default, PartialEq)]
820pub struct WlanFullmacImplIfcAuthIndRequest {
821 pub peer_sta_address: Option<[u8; 6]>,
822 pub auth_type: Option<WlanAuthType>,
823 #[doc(hidden)]
824 pub __source_breaking: fidl::marker::SourceBreaking,
825}
826
827impl fidl::Persistable for WlanFullmacImplIfcAuthIndRequest {}
828
829#[derive(Clone, Debug, Default, PartialEq)]
830pub struct WlanFullmacImplIfcConnectConfRequest {
831 pub peer_sta_address: Option<[u8; 6]>,
832 pub result_code: Option<fidl_fuchsia_wlan_ieee80211_common::StatusCode>,
833 pub association_id: Option<u16>,
834 pub association_ies: Option<Vec<u8>>,
835 #[doc(hidden)]
836 pub __source_breaking: fidl::marker::SourceBreaking,
837}
838
839impl fidl::Persistable for WlanFullmacImplIfcConnectConfRequest {}
840
841#[derive(Clone, Debug, Default, PartialEq)]
842pub struct WlanFullmacImplIfcDeauthConfRequest {
843 pub peer_sta_address: Option<[u8; 6]>,
844 #[doc(hidden)]
845 pub __source_breaking: fidl::marker::SourceBreaking,
846}
847
848impl fidl::Persistable for WlanFullmacImplIfcDeauthConfRequest {}
849
850#[derive(Clone, Debug, Default, PartialEq)]
851pub struct WlanFullmacImplIfcDeauthIndRequest {
852 pub peer_sta_address: Option<[u8; 6]>,
854 pub reason_code: Option<fidl_fuchsia_wlan_ieee80211_common::ReasonCode>,
856 pub locally_initiated: Option<bool>,
859 #[doc(hidden)]
860 pub __source_breaking: fidl::marker::SourceBreaking,
861}
862
863impl fidl::Persistable for WlanFullmacImplIfcDeauthIndRequest {}
864
865#[derive(Clone, Debug, Default, PartialEq)]
866pub struct WlanFullmacImplIfcDisassocConfRequest {
867 pub status: Option<i32>,
875 #[doc(hidden)]
876 pub __source_breaking: fidl::marker::SourceBreaking,
877}
878
879impl fidl::Persistable for WlanFullmacImplIfcDisassocConfRequest {}
880
881#[derive(Clone, Debug, Default, PartialEq)]
882pub struct WlanFullmacImplIfcDisassocIndRequest {
883 pub peer_sta_address: Option<[u8; 6]>,
885 pub reason_code: Option<fidl_fuchsia_wlan_ieee80211_common::ReasonCode>,
887 pub locally_initiated: Option<bool>,
892 #[doc(hidden)]
893 pub __source_breaking: fidl::marker::SourceBreaking,
894}
895
896impl fidl::Persistable for WlanFullmacImplIfcDisassocIndRequest {}
897
898#[derive(Clone, Debug, Default, PartialEq)]
899pub struct WlanFullmacImplIfcEapolConfRequest {
900 pub result_code: Option<EapolTxResult>,
902 pub dst_addr: Option<[u8; 6]>,
907 #[doc(hidden)]
908 pub __source_breaking: fidl::marker::SourceBreaking,
909}
910
911impl fidl::Persistable for WlanFullmacImplIfcEapolConfRequest {}
912
913#[derive(Clone, Debug, Default, PartialEq)]
914pub struct WlanFullmacImplIfcEapolIndRequest {
915 pub src_addr: Option<[u8; 6]>,
917 pub dst_addr: Option<[u8; 6]>,
919 pub data: Option<Vec<u8>>,
921 #[doc(hidden)]
922 pub __source_breaking: fidl::marker::SourceBreaking,
923}
924
925impl fidl::Persistable for WlanFullmacImplIfcEapolIndRequest {}
926
927#[derive(Clone, Debug, Default, PartialEq)]
928pub struct WlanFullmacImplIfcOnPmkAvailableRequest {
929 pub pmk: Option<Vec<u8>>,
931 pub pmkid: Option<Vec<u8>>,
933 #[doc(hidden)]
934 pub __source_breaking: fidl::marker::SourceBreaking,
935}
936
937impl fidl::Persistable for WlanFullmacImplIfcOnPmkAvailableRequest {}
938
939#[derive(Clone, Debug, Default, PartialEq)]
940pub struct WlanFullmacImplIfcOnRssiThresholdBreachedRequest {
941 pub cur_rssi_dbm: Option<i8>,
942 #[doc(hidden)]
943 pub __source_breaking: fidl::marker::SourceBreaking,
944}
945
946impl fidl::Persistable for WlanFullmacImplIfcOnRssiThresholdBreachedRequest {}
947
948#[derive(Clone, Debug, Default, PartialEq)]
949pub struct WlanFullmacImplIfcOnScanEndRequest {
950 pub txn_id: Option<u64>,
951 pub code: Option<WlanScanResult>,
952 #[doc(hidden)]
953 pub __source_breaking: fidl::marker::SourceBreaking,
954}
955
956impl fidl::Persistable for WlanFullmacImplIfcOnScanEndRequest {}
957
958#[derive(Clone, Debug, Default, PartialEq)]
959pub struct WlanFullmacImplIfcOnScanResultRequest {
960 pub txn_id: Option<u64>,
961 pub timestamp_nanos: Option<i64>,
962 pub bss: Option<fidl_fuchsia_wlan_ieee80211_common::BssDescription>,
963 #[doc(hidden)]
964 pub __source_breaking: fidl::marker::SourceBreaking,
965}
966
967impl fidl::Persistable for WlanFullmacImplIfcOnScanResultRequest {}
968
969#[derive(Clone, Debug, Default, PartialEq)]
970pub struct WlanFullmacImplIfcOnScheduledScanMatchesAvailableRequest {
971 pub txn_id: Option<u64>,
972 #[doc(hidden)]
973 pub __source_breaking: fidl::marker::SourceBreaking,
974}
975
976impl fidl::Persistable for WlanFullmacImplIfcOnScheduledScanMatchesAvailableRequest {}
977
978#[derive(Clone, Debug, Default, PartialEq)]
979pub struct WlanFullmacImplIfcOnScheduledScanStoppedByFirmwareRequest {
980 pub txn_id: Option<u64>,
981 #[doc(hidden)]
982 pub __source_breaking: fidl::marker::SourceBreaking,
983}
984
985impl fidl::Persistable for WlanFullmacImplIfcOnScheduledScanStoppedByFirmwareRequest {}
986
987#[derive(Clone, Debug, Default, PartialEq)]
988pub struct WlanFullmacImplIfcRoamConfRequest {
989 pub selected_bssid: Option<[u8; 6]>,
991 pub status_code: Option<fidl_fuchsia_wlan_ieee80211_common::StatusCode>,
993 pub original_association_maintained: Option<bool>,
998 pub target_bss_authenticated: Option<bool>,
1003 pub association_id: Option<u16>,
1005 pub association_ies: Option<Vec<u8>>,
1007 #[doc(hidden)]
1008 pub __source_breaking: fidl::marker::SourceBreaking,
1009}
1010
1011impl fidl::Persistable for WlanFullmacImplIfcRoamConfRequest {}
1012
1013#[derive(Clone, Debug, Default, PartialEq)]
1014pub struct WlanFullmacImplIfcRoamResultIndRequest {
1015 pub selected_bssid: Option<[u8; 6]>,
1017 pub status_code: Option<fidl_fuchsia_wlan_ieee80211_common::StatusCode>,
1019 pub original_association_maintained: Option<bool>,
1024 pub target_bss_authenticated: Option<bool>,
1029 pub association_id: Option<u16>,
1031 pub association_ies: Option<Vec<u8>>,
1033 #[doc(hidden)]
1034 pub __source_breaking: fidl::marker::SourceBreaking,
1035}
1036
1037impl fidl::Persistable for WlanFullmacImplIfcRoamResultIndRequest {}
1038
1039#[derive(Clone, Debug, Default, PartialEq)]
1040pub struct WlanFullmacImplIfcRoamStartIndRequest {
1041 pub selected_bssid: Option<[u8; 6]>,
1043 pub selected_bss: Option<fidl_fuchsia_wlan_ieee80211_common::BssDescription>,
1047 pub original_association_maintained: Option<bool>,
1055 #[doc(hidden)]
1056 pub __source_breaking: fidl::marker::SourceBreaking,
1057}
1058
1059impl fidl::Persistable for WlanFullmacImplIfcRoamStartIndRequest {}
1060
1061#[derive(Clone, Debug, Default, PartialEq)]
1062pub struct WlanFullmacImplIfcSaeHandshakeIndRequest {
1063 pub peer_sta_address: Option<[u8; 6]>,
1064 #[doc(hidden)]
1065 pub __source_breaking: fidl::marker::SourceBreaking,
1066}
1067
1068impl fidl::Persistable for WlanFullmacImplIfcSaeHandshakeIndRequest {}
1069
1070#[derive(Clone, Debug, Default, PartialEq)]
1071pub struct WlanFullmacImplIfcStartConfRequest {
1072 pub result_code: Option<StartResult>,
1074 #[doc(hidden)]
1075 pub __source_breaking: fidl::marker::SourceBreaking,
1076}
1077
1078impl fidl::Persistable for WlanFullmacImplIfcStartConfRequest {}
1079
1080#[derive(Clone, Debug, Default, PartialEq)]
1081pub struct WlanFullmacImplIfcStopConfRequest {
1082 pub result_code: Option<StopResult>,
1084 #[doc(hidden)]
1085 pub __source_breaking: fidl::marker::SourceBreaking,
1086}
1087
1088impl fidl::Persistable for WlanFullmacImplIfcStopConfRequest {}
1089
1090#[derive(Clone, Debug, Default, PartialEq)]
1091pub struct WlanFullmacImplInstallApfPacketFilterRequest {
1092 pub program: Option<Vec<u8>>,
1093 #[doc(hidden)]
1094 pub __source_breaking: fidl::marker::SourceBreaking,
1095}
1096
1097impl fidl::Persistable for WlanFullmacImplInstallApfPacketFilterRequest {}
1098
1099#[derive(Clone, Debug, Default, PartialEq)]
1100pub struct WlanFullmacImplOnLinkStateChangedRequest {
1101 pub online: Option<bool>,
1102 #[doc(hidden)]
1103 pub __source_breaking: fidl::marker::SourceBreaking,
1104}
1105
1106impl fidl::Persistable for WlanFullmacImplOnLinkStateChangedRequest {}
1107
1108#[derive(Clone, Debug, Default, PartialEq)]
1109pub struct WlanFullmacImplReconnectRequest {
1110 pub peer_sta_address: Option<[u8; 6]>,
1111 #[doc(hidden)]
1112 pub __source_breaking: fidl::marker::SourceBreaking,
1113}
1114
1115impl fidl::Persistable for WlanFullmacImplReconnectRequest {}
1116
1117#[derive(Clone, Debug, Default, PartialEq)]
1118pub struct WlanFullmacImplRoamRequest {
1119 pub selected_bss: Option<fidl_fuchsia_wlan_ieee80211_common::BssDescription>,
1123 #[doc(hidden)]
1124 pub __source_breaking: fidl::marker::SourceBreaking,
1125}
1126
1127impl fidl::Persistable for WlanFullmacImplRoamRequest {}
1128
1129#[derive(Clone, Debug, Default, PartialEq)]
1130pub struct WlanFullmacImplSaeHandshakeRespRequest {
1131 pub peer_sta_address: Option<[u8; 6]>,
1133 pub status_code: Option<fidl_fuchsia_wlan_ieee80211_common::StatusCode>,
1135 #[doc(hidden)]
1136 pub __source_breaking: fidl::marker::SourceBreaking,
1137}
1138
1139impl fidl::Persistable for WlanFullmacImplSaeHandshakeRespRequest {}
1140
1141#[derive(Clone, Debug, Default, PartialEq)]
1142pub struct WlanFullmacImplSetApfPacketFilterEnabledRequest {
1143 pub enabled: Option<bool>,
1144 #[doc(hidden)]
1145 pub __source_breaking: fidl::marker::SourceBreaking,
1146}
1147
1148impl fidl::Persistable for WlanFullmacImplSetApfPacketFilterEnabledRequest {}
1149
1150#[derive(Clone, Debug, Default, PartialEq)]
1151pub struct WlanFullmacImplSetKeysRequest {
1152 pub keylist: Option<Vec<fidl_fuchsia_wlan_driver_common::WlanKeyConfig>>,
1153 pub key_descriptors: Option<Vec<fidl_fuchsia_wlan_ieee80211_common::SetKeyDescriptor>>,
1154 #[doc(hidden)]
1155 pub __source_breaking: fidl::marker::SourceBreaking,
1156}
1157
1158impl fidl::Persistable for WlanFullmacImplSetKeysRequest {}
1159
1160#[derive(Clone, Debug, Default, PartialEq)]
1161pub struct WlanFullmacImplStartBssRequest {
1162 pub ssid: Option<Vec<u8>>,
1163 pub bss_type: Option<fidl_fuchsia_wlan_ieee80211_common::BssType>,
1164 pub beacon_period: Option<u32>,
1165 pub dtim_period: Option<u32>,
1166 pub primary: Option<fidl_fuchsia_wlan_ieee80211_common::ChannelNumber>,
1167 pub rsne: Option<Vec<u8>>,
1168 pub vendor_ie: Option<Vec<u8>>,
1169 #[doc(hidden)]
1170 pub __source_breaking: fidl::marker::SourceBreaking,
1171}
1172
1173impl fidl::Persistable for WlanFullmacImplStartBssRequest {}
1174
1175#[derive(Clone, Debug, Default, PartialEq)]
1176pub struct WlanFullmacImplStartRssiMonitorRequest {
1177 pub min_rssi_dbm: Option<i8>,
1178 pub max_rssi_dbm: Option<i8>,
1179 #[doc(hidden)]
1180 pub __source_breaking: fidl::marker::SourceBreaking,
1181}
1182
1183impl fidl::Persistable for WlanFullmacImplStartRssiMonitorRequest {}
1184
1185#[derive(Clone, Debug, Default, PartialEq)]
1186pub struct WlanFullmacImplStartScanRequest {
1187 pub txn_id: Option<u64>,
1189 pub scan_type: Option<WlanScanType>,
1190 pub channels: Option<Vec<fidl_fuchsia_wlan_ieee80211_common::ChannelNumber>>,
1198 pub ssids: Option<Vec<Vec<u8>>>,
1207 pub min_channel_time: Option<u32>,
1209 pub max_channel_time: Option<u32>,
1211 #[doc(hidden)]
1212 pub __source_breaking: fidl::marker::SourceBreaking,
1213}
1214
1215impl fidl::Persistable for WlanFullmacImplStartScanRequest {}
1216
1217#[derive(Clone, Debug, Default, PartialEq)]
1218pub struct WlanFullmacImplStartScheduledScanRequest {
1219 pub txn_id: Option<u64>,
1220 pub req: Option<fidl_fuchsia_wlan_common_common::ScheduledScanRequest>,
1221 #[doc(hidden)]
1222 pub __source_breaking: fidl::marker::SourceBreaking,
1223}
1224
1225impl fidl::Persistable for WlanFullmacImplStartScheduledScanRequest {}
1226
1227#[derive(Clone, Debug, Default, PartialEq)]
1228pub struct WlanFullmacImplStopBssRequest {
1229 pub ssid: Option<Vec<u8>>,
1230 #[doc(hidden)]
1231 pub __source_breaking: fidl::marker::SourceBreaking,
1232}
1233
1234impl fidl::Persistable for WlanFullmacImplStopBssRequest {}
1235
1236#[derive(Clone, Debug, Default, PartialEq)]
1237pub struct WlanFullmacImplStopScheduledScanRequest {
1238 pub txn_id: Option<u64>,
1239 #[doc(hidden)]
1240 pub __source_breaking: fidl::marker::SourceBreaking,
1241}
1242
1243impl fidl::Persistable for WlanFullmacImplStopScheduledScanRequest {}
1244
1245#[derive(Clone, Debug, Default, PartialEq)]
1246pub struct WlanFullmacImplGetApfPacketFilterEnabledResponse {
1247 pub enabled: Option<bool>,
1248 #[doc(hidden)]
1249 pub __source_breaking: fidl::marker::SourceBreaking,
1250}
1251
1252impl fidl::Persistable for WlanFullmacImplGetApfPacketFilterEnabledResponse {}
1253
1254#[derive(Clone, Debug, Default, PartialEq)]
1255pub struct WlanFullmacImplGetScheduledScanEnabledResponse {
1256 pub active_txn_ids: Option<Vec<u64>>,
1257 #[doc(hidden)]
1258 pub __source_breaking: fidl::marker::SourceBreaking,
1259}
1260
1261impl fidl::Persistable for WlanFullmacImplGetScheduledScanEnabledResponse {}
1262
1263#[derive(Clone, Debug, Default, PartialEq)]
1264pub struct WlanFullmacImplQueryApfPacketFilterSupportResponse {
1265 pub resp: Option<fidl_fuchsia_wlan_common_common::ApfPacketFilterSupport>,
1266 #[doc(hidden)]
1267 pub __source_breaking: fidl::marker::SourceBreaking,
1268}
1269
1270impl fidl::Persistable for WlanFullmacImplQueryApfPacketFilterSupportResponse {}
1271
1272#[derive(Clone, Debug, Default, PartialEq)]
1273pub struct WlanFullmacImplQueryRssiMonitorSupportResponse {
1274 pub resp: Option<fidl_fuchsia_wlan_common_common::RssiMonitorSupport>,
1275 #[doc(hidden)]
1276 pub __source_breaking: fidl::marker::SourceBreaking,
1277}
1278
1279impl fidl::Persistable for WlanFullmacImplQueryRssiMonitorSupportResponse {}
1280
1281#[derive(Clone, Debug, Default, PartialEq)]
1282pub struct WlanFullmacImplQuerySecuritySupportResponse {
1283 pub resp: Option<fidl_fuchsia_wlan_common_common::SecuritySupport>,
1284 #[doc(hidden)]
1285 pub __source_breaking: fidl::marker::SourceBreaking,
1286}
1287
1288impl fidl::Persistable for WlanFullmacImplQuerySecuritySupportResponse {}
1289
1290#[derive(Clone, Debug, Default, PartialEq)]
1291pub struct WlanFullmacImplQuerySpectrumManagementSupportResponse {
1292 pub resp: Option<fidl_fuchsia_wlan_common_common::SpectrumManagementSupport>,
1293 #[doc(hidden)]
1294 pub __source_breaking: fidl::marker::SourceBreaking,
1295}
1296
1297impl fidl::Persistable for WlanFullmacImplQuerySpectrumManagementSupportResponse {}
1298
1299#[derive(Clone, Debug, Default, PartialEq)]
1300pub struct WlanFullmacImplQueryTelemetrySupportResponse {
1301 pub resp: Option<fidl_fuchsia_wlan_stats_common::TelemetrySupport>,
1302 #[doc(hidden)]
1303 pub __source_breaking: fidl::marker::SourceBreaking,
1304}
1305
1306impl fidl::Persistable for WlanFullmacImplQueryTelemetrySupportResponse {}
1307
1308#[derive(Clone, Debug, Default, PartialEq)]
1309pub struct WlanFullmacImplQueryResponse {
1310 pub sta_addr: Option<[u8; 6]>,
1312 pub role: Option<fidl_fuchsia_wlan_common_common::WlanMacRole>,
1314 pub band_caps: Option<Vec<BandCapability>>,
1316 pub factory_addr: Option<[u8; 6]>,
1318 #[doc(hidden)]
1319 pub __source_breaking: fidl::marker::SourceBreaking,
1320}
1321
1322impl fidl::Persistable for WlanFullmacImplQueryResponse {}
1323
1324#[derive(Clone, Debug, Default, PartialEq)]
1325pub struct WlanFullmacImplReadApfPacketFilterDataResponse {
1326 pub memory: Option<Vec<u8>>,
1327 #[doc(hidden)]
1328 pub __source_breaking: fidl::marker::SourceBreaking,
1329}
1330
1331impl fidl::Persistable for WlanFullmacImplReadApfPacketFilterDataResponse {}
1332
1333#[derive(Clone, Debug, Default, PartialEq)]
1334pub struct WlanFullmacOwePublicKey {
1335 pub group: Option<u16>,
1336 pub key: Option<Vec<u8>>,
1337 #[doc(hidden)]
1338 pub __source_breaking: fidl::marker::SourceBreaking,
1339}
1340
1341impl fidl::Persistable for WlanFullmacOwePublicKey {}
1342
1343#[derive(Clone, Debug, Default, PartialEq)]
1344pub struct WlanFullmacSignalReportIndication {
1345 pub rssi_dbm: Option<i8>,
1346 pub snr_db: Option<i8>,
1347 pub tx_rate_500kbps: Option<u32>,
1350 pub rx_rate_500kbps: Option<u32>,
1352 #[doc(hidden)]
1353 pub __source_breaking: fidl::marker::SourceBreaking,
1354}
1355
1356impl fidl::Persistable for WlanFullmacSignalReportIndication {}
1357
1358pub mod wlan_fullmac_impl__ordinals {
1359 pub const INIT: u64 = 0x593dfb6cb3f0f1aa;
1360 pub const QUERY: u64 = 0x28ac65f9da3941d4;
1361 pub const QUERY_SECURITY_SUPPORT: u64 = 0x11cf3fa6eeb93f84;
1362 pub const QUERY_SPECTRUM_MANAGEMENT_SUPPORT: u64 = 0x22ae7551d855b83a;
1363 pub const QUERY_TELEMETRY_SUPPORT: u64 = 0x4561479ca560827f;
1364 pub const QUERY_APF_PACKET_FILTER_SUPPORT: u64 = 0x6df8cdf0acd4dfad;
1365 pub const QUERY_RSSI_MONITOR_SUPPORT: u64 = 0x21d21e42d6aa61b5;
1366 pub const START_SCAN: u64 = 0x26c17bf595aa161c;
1367 pub const START_SCHEDULED_SCAN: u64 = 0x67bb4356265682d2;
1368 pub const STOP_SCHEDULED_SCAN: u64 = 0x71bf2a03f2cdc10f;
1369 pub const GET_SCHEDULED_SCAN_ENABLED: u64 = 0x96be6f11648f198;
1370 pub const CONNECT: u64 = 0x19eb0322efb07a76;
1371 pub const RECONNECT: u64 = 0x474084c4ef19ee71;
1372 pub const ROAM: u64 = 0x1e35dcc98b124b64;
1373 pub const AUTH_RESP: u64 = 0x5f7ea24b44a4aaeb;
1374 pub const DEAUTH: u64 = 0x112786eccbf12f37;
1375 pub const ASSOC_RESP: u64 = 0x5022ce6b8eefec2f;
1376 pub const DISASSOC: u64 = 0x9c0fc4e8de53e01;
1377 pub const START_BSS: u64 = 0x6922644d6b1d341d;
1378 pub const STOP_BSS: u64 = 0x5aeb9b72e7575268;
1379 pub const SET_KEYS: u64 = 0x20f46b1e039f0985;
1380 pub const EAPOL_TX: u64 = 0x529a2d90fd4c8177;
1381 pub const GET_IFACE_STATS: u64 = 0x505563776ef0392f;
1382 pub const GET_IFACE_HISTOGRAM_STATS: u64 = 0x503d586f30ccf2cd;
1383 pub const GET_SIGNAL_REPORT: u64 = 0x5d93f056e4796bb3;
1384 pub const SAE_HANDSHAKE_RESP: u64 = 0x72cd3a31ae5a54f6;
1385 pub const SAE_FRAME_TX: u64 = 0x4715ad5dc5a6340f;
1386 pub const WMM_STATUS_REQ: u64 = 0x635ecef3beb7a059;
1387 pub const ON_LINK_STATE_CHANGED: u64 = 0x4d896e5b68e488d7;
1388 pub const SET_MAC_ADDRESS: u64 = 0x211a97f6f21ae5f0;
1389 pub const INSTALL_APF_PACKET_FILTER: u64 = 0x14597eda84122115;
1390 pub const READ_APF_PACKET_FILTER_DATA: u64 = 0x6ddcf8a179553a3c;
1391 pub const SET_APF_PACKET_FILTER_ENABLED: u64 = 0x808792cade97d59;
1392 pub const GET_APF_PACKET_FILTER_ENABLED: u64 = 0x284e1725471e3ae7;
1393 pub const START_RSSI_MONITOR: u64 = 0x5e6e8feead94acec;
1394 pub const STOP_RSSI_MONITOR: u64 = 0x45795dfdd5760880;
1395}
1396
1397pub mod wlan_fullmac_impl_ifc_ordinals {
1398 pub const ON_SCAN_RESULT: u64 = 0x29aa81dc570f7a3e;
1399 pub const ON_SCAN_END: u64 = 0x7cd8aff80d27073c;
1400 pub const ON_SCHEDULED_SCAN_MATCHES_AVAILABLE: u64 = 0x3036cd8b8b35e81b;
1401 pub const ON_SCHEDULED_SCAN_STOPPED_BY_FIRMWARE: u64 = 0x50353be2c3029817;
1402 pub const CONNECT_CONF: u64 = 0x3c22c6d80b2a2759;
1403 pub const ROAM_CONF: u64 = 0x368b2a5b903b3f7b;
1404 pub const ROAM_START_IND: u64 = 0x23e1d9368935e7e4;
1405 pub const ROAM_RESULT_IND: u64 = 0x7081c1b1ceea4914;
1406 pub const AUTH_IND: u64 = 0x270e1f8889650d0b;
1407 pub const DEAUTH_CONF: u64 = 0x2c94b0d7258111b7;
1408 pub const DEAUTH_IND: u64 = 0x26cd27cdadd8dbaf;
1409 pub const ASSOC_IND: u64 = 0x3e44529e3dc179ce;
1410 pub const DISASSOC_CONF: u64 = 0x7c713bcd58a76cb3;
1411 pub const DISASSOC_IND: u64 = 0x6667b381b7f3990f;
1412 pub const START_CONF: u64 = 0x3e9b9641f3ddc7fc;
1413 pub const STOP_CONF: u64 = 0x320a5ff227a4e9df;
1414 pub const EAPOL_CONF: u64 = 0x77364db9cc3970ec;
1415 pub const ON_CHANNEL_SWITCH: u64 = 0x21db0b8f71cae647;
1416 pub const SIGNAL_REPORT: u64 = 0x79679fa8789c3d9f;
1417 pub const ON_RSSI_THRESHOLD_BREACHED: u64 = 0x5ddcf835177124b6;
1418 pub const EAPOL_IND: u64 = 0x3de8ec1eda10d1d0;
1419 pub const ON_PMK_AVAILABLE: u64 = 0x5cedd8d9be28a17e;
1420 pub const SAE_HANDSHAKE_IND: u64 = 0x4f3d53885503a1d8;
1421 pub const SAE_FRAME_RX: u64 = 0x51650906857ed4d4;
1422 pub const ON_WMM_STATUS_RESP: u64 = 0x6823a88bf3ba8b2a;
1423}
1424
1425mod internal {
1426 use super::*;
1427 unsafe impl fidl::encoding::TypeMarker for EapolTxResult {
1428 type Owned = Self;
1429
1430 #[inline(always)]
1431 fn inline_align(_context: fidl::encoding::Context) -> usize {
1432 std::mem::align_of::<u8>()
1433 }
1434
1435 #[inline(always)]
1436 fn inline_size(_context: fidl::encoding::Context) -> usize {
1437 std::mem::size_of::<u8>()
1438 }
1439
1440 #[inline(always)]
1441 fn encode_is_copy() -> bool {
1442 false
1443 }
1444
1445 #[inline(always)]
1446 fn decode_is_copy() -> bool {
1447 false
1448 }
1449 }
1450
1451 impl fidl::encoding::ValueTypeMarker for EapolTxResult {
1452 type Borrowed<'a> = Self;
1453 #[inline(always)]
1454 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1455 *value
1456 }
1457 }
1458
1459 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for EapolTxResult {
1460 #[inline]
1461 unsafe fn encode(
1462 self,
1463 encoder: &mut fidl::encoding::Encoder<'_, D>,
1464 offset: usize,
1465 _depth: fidl::encoding::Depth,
1466 ) -> fidl::Result<()> {
1467 encoder.debug_check_bounds::<Self>(offset);
1468 encoder.write_num(self.into_primitive(), offset);
1469 Ok(())
1470 }
1471 }
1472
1473 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for EapolTxResult {
1474 #[inline(always)]
1475 fn new_empty() -> Self {
1476 Self::unknown()
1477 }
1478
1479 #[inline]
1480 unsafe fn decode(
1481 &mut self,
1482 decoder: &mut fidl::encoding::Decoder<'_, D>,
1483 offset: usize,
1484 _depth: fidl::encoding::Depth,
1485 ) -> fidl::Result<()> {
1486 decoder.debug_check_bounds::<Self>(offset);
1487 let prim = decoder.read_num::<u8>(offset);
1488
1489 *self = Self::from_primitive_allow_unknown(prim);
1490 Ok(())
1491 }
1492 }
1493 unsafe impl fidl::encoding::TypeMarker for StartResult {
1494 type Owned = Self;
1495
1496 #[inline(always)]
1497 fn inline_align(_context: fidl::encoding::Context) -> usize {
1498 std::mem::align_of::<u8>()
1499 }
1500
1501 #[inline(always)]
1502 fn inline_size(_context: fidl::encoding::Context) -> usize {
1503 std::mem::size_of::<u8>()
1504 }
1505
1506 #[inline(always)]
1507 fn encode_is_copy() -> bool {
1508 false
1509 }
1510
1511 #[inline(always)]
1512 fn decode_is_copy() -> bool {
1513 false
1514 }
1515 }
1516
1517 impl fidl::encoding::ValueTypeMarker for StartResult {
1518 type Borrowed<'a> = Self;
1519 #[inline(always)]
1520 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1521 *value
1522 }
1523 }
1524
1525 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for StartResult {
1526 #[inline]
1527 unsafe fn encode(
1528 self,
1529 encoder: &mut fidl::encoding::Encoder<'_, D>,
1530 offset: usize,
1531 _depth: fidl::encoding::Depth,
1532 ) -> fidl::Result<()> {
1533 encoder.debug_check_bounds::<Self>(offset);
1534 encoder.write_num(self.into_primitive(), offset);
1535 Ok(())
1536 }
1537 }
1538
1539 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for StartResult {
1540 #[inline(always)]
1541 fn new_empty() -> Self {
1542 Self::unknown()
1543 }
1544
1545 #[inline]
1546 unsafe fn decode(
1547 &mut self,
1548 decoder: &mut fidl::encoding::Decoder<'_, D>,
1549 offset: usize,
1550 _depth: fidl::encoding::Depth,
1551 ) -> fidl::Result<()> {
1552 decoder.debug_check_bounds::<Self>(offset);
1553 let prim = decoder.read_num::<u8>(offset);
1554
1555 *self = Self::from_primitive_allow_unknown(prim);
1556 Ok(())
1557 }
1558 }
1559 unsafe impl fidl::encoding::TypeMarker for StopResult {
1560 type Owned = Self;
1561
1562 #[inline(always)]
1563 fn inline_align(_context: fidl::encoding::Context) -> usize {
1564 std::mem::align_of::<u8>()
1565 }
1566
1567 #[inline(always)]
1568 fn inline_size(_context: fidl::encoding::Context) -> usize {
1569 std::mem::size_of::<u8>()
1570 }
1571
1572 #[inline(always)]
1573 fn encode_is_copy() -> bool {
1574 false
1575 }
1576
1577 #[inline(always)]
1578 fn decode_is_copy() -> bool {
1579 false
1580 }
1581 }
1582
1583 impl fidl::encoding::ValueTypeMarker for StopResult {
1584 type Borrowed<'a> = Self;
1585 #[inline(always)]
1586 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1587 *value
1588 }
1589 }
1590
1591 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for StopResult {
1592 #[inline]
1593 unsafe fn encode(
1594 self,
1595 encoder: &mut fidl::encoding::Encoder<'_, D>,
1596 offset: usize,
1597 _depth: fidl::encoding::Depth,
1598 ) -> fidl::Result<()> {
1599 encoder.debug_check_bounds::<Self>(offset);
1600 encoder.write_num(self.into_primitive(), offset);
1601 Ok(())
1602 }
1603 }
1604
1605 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for StopResult {
1606 #[inline(always)]
1607 fn new_empty() -> Self {
1608 Self::unknown()
1609 }
1610
1611 #[inline]
1612 unsafe fn decode(
1613 &mut self,
1614 decoder: &mut fidl::encoding::Decoder<'_, D>,
1615 offset: usize,
1616 _depth: fidl::encoding::Depth,
1617 ) -> fidl::Result<()> {
1618 decoder.debug_check_bounds::<Self>(offset);
1619 let prim = decoder.read_num::<u8>(offset);
1620
1621 *self = Self::from_primitive_allow_unknown(prim);
1622 Ok(())
1623 }
1624 }
1625 unsafe impl fidl::encoding::TypeMarker for WlanAssocResult {
1626 type Owned = Self;
1627
1628 #[inline(always)]
1629 fn inline_align(_context: fidl::encoding::Context) -> usize {
1630 std::mem::align_of::<u8>()
1631 }
1632
1633 #[inline(always)]
1634 fn inline_size(_context: fidl::encoding::Context) -> usize {
1635 std::mem::size_of::<u8>()
1636 }
1637
1638 #[inline(always)]
1639 fn encode_is_copy() -> bool {
1640 false
1641 }
1642
1643 #[inline(always)]
1644 fn decode_is_copy() -> bool {
1645 false
1646 }
1647 }
1648
1649 impl fidl::encoding::ValueTypeMarker for WlanAssocResult {
1650 type Borrowed<'a> = Self;
1651 #[inline(always)]
1652 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1653 *value
1654 }
1655 }
1656
1657 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
1658 for WlanAssocResult
1659 {
1660 #[inline]
1661 unsafe fn encode(
1662 self,
1663 encoder: &mut fidl::encoding::Encoder<'_, D>,
1664 offset: usize,
1665 _depth: fidl::encoding::Depth,
1666 ) -> fidl::Result<()> {
1667 encoder.debug_check_bounds::<Self>(offset);
1668 encoder.write_num(self.into_primitive(), offset);
1669 Ok(())
1670 }
1671 }
1672
1673 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for WlanAssocResult {
1674 #[inline(always)]
1675 fn new_empty() -> Self {
1676 Self::unknown()
1677 }
1678
1679 #[inline]
1680 unsafe fn decode(
1681 &mut self,
1682 decoder: &mut fidl::encoding::Decoder<'_, D>,
1683 offset: usize,
1684 _depth: fidl::encoding::Depth,
1685 ) -> fidl::Result<()> {
1686 decoder.debug_check_bounds::<Self>(offset);
1687 let prim = decoder.read_num::<u8>(offset);
1688
1689 *self = Self::from_primitive_allow_unknown(prim);
1690 Ok(())
1691 }
1692 }
1693 unsafe impl fidl::encoding::TypeMarker for WlanAuthResult {
1694 type Owned = Self;
1695
1696 #[inline(always)]
1697 fn inline_align(_context: fidl::encoding::Context) -> usize {
1698 std::mem::align_of::<u8>()
1699 }
1700
1701 #[inline(always)]
1702 fn inline_size(_context: fidl::encoding::Context) -> usize {
1703 std::mem::size_of::<u8>()
1704 }
1705
1706 #[inline(always)]
1707 fn encode_is_copy() -> bool {
1708 false
1709 }
1710
1711 #[inline(always)]
1712 fn decode_is_copy() -> bool {
1713 false
1714 }
1715 }
1716
1717 impl fidl::encoding::ValueTypeMarker for WlanAuthResult {
1718 type Borrowed<'a> = Self;
1719 #[inline(always)]
1720 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1721 *value
1722 }
1723 }
1724
1725 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for WlanAuthResult {
1726 #[inline]
1727 unsafe fn encode(
1728 self,
1729 encoder: &mut fidl::encoding::Encoder<'_, D>,
1730 offset: usize,
1731 _depth: fidl::encoding::Depth,
1732 ) -> fidl::Result<()> {
1733 encoder.debug_check_bounds::<Self>(offset);
1734 encoder.write_num(self.into_primitive(), offset);
1735 Ok(())
1736 }
1737 }
1738
1739 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for WlanAuthResult {
1740 #[inline(always)]
1741 fn new_empty() -> Self {
1742 Self::unknown()
1743 }
1744
1745 #[inline]
1746 unsafe fn decode(
1747 &mut self,
1748 decoder: &mut fidl::encoding::Decoder<'_, D>,
1749 offset: usize,
1750 _depth: fidl::encoding::Depth,
1751 ) -> fidl::Result<()> {
1752 decoder.debug_check_bounds::<Self>(offset);
1753 let prim = decoder.read_num::<u8>(offset);
1754
1755 *self = Self::from_primitive_allow_unknown(prim);
1756 Ok(())
1757 }
1758 }
1759 unsafe impl fidl::encoding::TypeMarker for WlanAuthType {
1760 type Owned = Self;
1761
1762 #[inline(always)]
1763 fn inline_align(_context: fidl::encoding::Context) -> usize {
1764 std::mem::align_of::<u8>()
1765 }
1766
1767 #[inline(always)]
1768 fn inline_size(_context: fidl::encoding::Context) -> usize {
1769 std::mem::size_of::<u8>()
1770 }
1771
1772 #[inline(always)]
1773 fn encode_is_copy() -> bool {
1774 false
1775 }
1776
1777 #[inline(always)]
1778 fn decode_is_copy() -> bool {
1779 false
1780 }
1781 }
1782
1783 impl fidl::encoding::ValueTypeMarker for WlanAuthType {
1784 type Borrowed<'a> = Self;
1785 #[inline(always)]
1786 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1787 *value
1788 }
1789 }
1790
1791 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for WlanAuthType {
1792 #[inline]
1793 unsafe fn encode(
1794 self,
1795 encoder: &mut fidl::encoding::Encoder<'_, D>,
1796 offset: usize,
1797 _depth: fidl::encoding::Depth,
1798 ) -> fidl::Result<()> {
1799 encoder.debug_check_bounds::<Self>(offset);
1800 encoder.write_num(self.into_primitive(), offset);
1801 Ok(())
1802 }
1803 }
1804
1805 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for WlanAuthType {
1806 #[inline(always)]
1807 fn new_empty() -> Self {
1808 Self::unknown()
1809 }
1810
1811 #[inline]
1812 unsafe fn decode(
1813 &mut self,
1814 decoder: &mut fidl::encoding::Decoder<'_, D>,
1815 offset: usize,
1816 _depth: fidl::encoding::Depth,
1817 ) -> fidl::Result<()> {
1818 decoder.debug_check_bounds::<Self>(offset);
1819 let prim = decoder.read_num::<u8>(offset);
1820
1821 *self = Self::from_primitive_allow_unknown(prim);
1822 Ok(())
1823 }
1824 }
1825 unsafe impl fidl::encoding::TypeMarker for WlanScanResult {
1826 type Owned = Self;
1827
1828 #[inline(always)]
1829 fn inline_align(_context: fidl::encoding::Context) -> usize {
1830 std::mem::align_of::<u8>()
1831 }
1832
1833 #[inline(always)]
1834 fn inline_size(_context: fidl::encoding::Context) -> usize {
1835 std::mem::size_of::<u8>()
1836 }
1837
1838 #[inline(always)]
1839 fn encode_is_copy() -> bool {
1840 false
1841 }
1842
1843 #[inline(always)]
1844 fn decode_is_copy() -> bool {
1845 false
1846 }
1847 }
1848
1849 impl fidl::encoding::ValueTypeMarker for WlanScanResult {
1850 type Borrowed<'a> = Self;
1851 #[inline(always)]
1852 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1853 *value
1854 }
1855 }
1856
1857 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for WlanScanResult {
1858 #[inline]
1859 unsafe fn encode(
1860 self,
1861 encoder: &mut fidl::encoding::Encoder<'_, D>,
1862 offset: usize,
1863 _depth: fidl::encoding::Depth,
1864 ) -> fidl::Result<()> {
1865 encoder.debug_check_bounds::<Self>(offset);
1866 encoder.write_num(self.into_primitive(), offset);
1867 Ok(())
1868 }
1869 }
1870
1871 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for WlanScanResult {
1872 #[inline(always)]
1873 fn new_empty() -> Self {
1874 Self::unknown()
1875 }
1876
1877 #[inline]
1878 unsafe fn decode(
1879 &mut self,
1880 decoder: &mut fidl::encoding::Decoder<'_, D>,
1881 offset: usize,
1882 _depth: fidl::encoding::Depth,
1883 ) -> fidl::Result<()> {
1884 decoder.debug_check_bounds::<Self>(offset);
1885 let prim = decoder.read_num::<u8>(offset);
1886
1887 *self = Self::from_primitive_allow_unknown(prim);
1888 Ok(())
1889 }
1890 }
1891 unsafe impl fidl::encoding::TypeMarker for WlanScanType {
1892 type Owned = Self;
1893
1894 #[inline(always)]
1895 fn inline_align(_context: fidl::encoding::Context) -> usize {
1896 std::mem::align_of::<u8>()
1897 }
1898
1899 #[inline(always)]
1900 fn inline_size(_context: fidl::encoding::Context) -> usize {
1901 std::mem::size_of::<u8>()
1902 }
1903
1904 #[inline(always)]
1905 fn encode_is_copy() -> bool {
1906 false
1907 }
1908
1909 #[inline(always)]
1910 fn decode_is_copy() -> bool {
1911 false
1912 }
1913 }
1914
1915 impl fidl::encoding::ValueTypeMarker for WlanScanType {
1916 type Borrowed<'a> = Self;
1917 #[inline(always)]
1918 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1919 *value
1920 }
1921 }
1922
1923 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for WlanScanType {
1924 #[inline]
1925 unsafe fn encode(
1926 self,
1927 encoder: &mut fidl::encoding::Encoder<'_, D>,
1928 offset: usize,
1929 _depth: fidl::encoding::Depth,
1930 ) -> fidl::Result<()> {
1931 encoder.debug_check_bounds::<Self>(offset);
1932 encoder.write_num(self.into_primitive(), offset);
1933 Ok(())
1934 }
1935 }
1936
1937 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for WlanScanType {
1938 #[inline(always)]
1939 fn new_empty() -> Self {
1940 Self::unknown()
1941 }
1942
1943 #[inline]
1944 unsafe fn decode(
1945 &mut self,
1946 decoder: &mut fidl::encoding::Decoder<'_, D>,
1947 offset: usize,
1948 _depth: fidl::encoding::Depth,
1949 ) -> fidl::Result<()> {
1950 decoder.debug_check_bounds::<Self>(offset);
1951 let prim = decoder.read_num::<u8>(offset);
1952
1953 *self = Self::from_primitive_allow_unknown(prim);
1954 Ok(())
1955 }
1956 }
1957
1958 impl fidl::encoding::ValueTypeMarker for WlanFullmacChannelSwitchInfo {
1959 type Borrowed<'a> = &'a Self;
1960 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1961 value
1962 }
1963 }
1964
1965 unsafe impl fidl::encoding::TypeMarker for WlanFullmacChannelSwitchInfo {
1966 type Owned = Self;
1967
1968 #[inline(always)]
1969 fn inline_align(_context: fidl::encoding::Context) -> usize {
1970 4
1971 }
1972
1973 #[inline(always)]
1974 fn inline_size(_context: fidl::encoding::Context) -> usize {
1975 12
1976 }
1977 }
1978
1979 unsafe impl<D: fidl::encoding::ResourceDialect>
1980 fidl::encoding::Encode<WlanFullmacChannelSwitchInfo, D> for &WlanFullmacChannelSwitchInfo
1981 {
1982 #[inline]
1983 unsafe fn encode(
1984 self,
1985 encoder: &mut fidl::encoding::Encoder<'_, D>,
1986 offset: usize,
1987 _depth: fidl::encoding::Depth,
1988 ) -> fidl::Result<()> {
1989 encoder.debug_check_bounds::<WlanFullmacChannelSwitchInfo>(offset);
1990 fidl::encoding::Encode::<WlanFullmacChannelSwitchInfo, D>::encode(
1992 (
1993 <fidl_fuchsia_wlan_ieee80211_common::ChannelNumber as fidl::encoding::ValueTypeMarker>::borrow(&self.new_primary_channel),
1994 <fidl_fuchsia_wlan_ieee80211_common::ChannelBandwidth as fidl::encoding::ValueTypeMarker>::borrow(&self.bandwidth),
1995 <fidl_fuchsia_wlan_ieee80211_common::ChannelNumber as fidl::encoding::ValueTypeMarker>::borrow(&self.vht_secondary_80_channel),
1996 ),
1997 encoder, offset, _depth
1998 )
1999 }
2000 }
2001 unsafe impl<
2002 D: fidl::encoding::ResourceDialect,
2003 T0: fidl::encoding::Encode<fidl_fuchsia_wlan_ieee80211_common::ChannelNumber, D>,
2004 T1: fidl::encoding::Encode<fidl_fuchsia_wlan_ieee80211_common::ChannelBandwidth, D>,
2005 T2: fidl::encoding::Encode<fidl_fuchsia_wlan_ieee80211_common::ChannelNumber, D>,
2006 > fidl::encoding::Encode<WlanFullmacChannelSwitchInfo, D> for (T0, T1, T2)
2007 {
2008 #[inline]
2009 unsafe fn encode(
2010 self,
2011 encoder: &mut fidl::encoding::Encoder<'_, D>,
2012 offset: usize,
2013 depth: fidl::encoding::Depth,
2014 ) -> fidl::Result<()> {
2015 encoder.debug_check_bounds::<WlanFullmacChannelSwitchInfo>(offset);
2016 unsafe {
2019 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(0);
2020 (ptr as *mut u32).write_unaligned(0);
2021 }
2022 unsafe {
2023 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(8);
2024 (ptr as *mut u32).write_unaligned(0);
2025 }
2026 self.0.encode(encoder, offset + 0, depth)?;
2028 self.1.encode(encoder, offset + 4, depth)?;
2029 self.2.encode(encoder, offset + 8, depth)?;
2030 Ok(())
2031 }
2032 }
2033
2034 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2035 for WlanFullmacChannelSwitchInfo
2036 {
2037 #[inline(always)]
2038 fn new_empty() -> Self {
2039 Self {
2040 new_primary_channel: fidl::new_empty!(
2041 fidl_fuchsia_wlan_ieee80211_common::ChannelNumber,
2042 D
2043 ),
2044 bandwidth: fidl::new_empty!(
2045 fidl_fuchsia_wlan_ieee80211_common::ChannelBandwidth,
2046 D
2047 ),
2048 vht_secondary_80_channel: fidl::new_empty!(
2049 fidl_fuchsia_wlan_ieee80211_common::ChannelNumber,
2050 D
2051 ),
2052 }
2053 }
2054
2055 #[inline]
2056 unsafe fn decode(
2057 &mut self,
2058 decoder: &mut fidl::encoding::Decoder<'_, D>,
2059 offset: usize,
2060 _depth: fidl::encoding::Depth,
2061 ) -> fidl::Result<()> {
2062 decoder.debug_check_bounds::<Self>(offset);
2063 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(0) };
2065 let padval = unsafe { (ptr as *const u32).read_unaligned() };
2066 let mask = 0xffff0000u32;
2067 let maskedval = padval & mask;
2068 if maskedval != 0 {
2069 return Err(fidl::Error::NonZeroPadding {
2070 padding_start: offset + 0 + ((mask as u64).trailing_zeros() / 8) as usize,
2071 });
2072 }
2073 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(8) };
2074 let padval = unsafe { (ptr as *const u32).read_unaligned() };
2075 let mask = 0xffff0000u32;
2076 let maskedval = padval & mask;
2077 if maskedval != 0 {
2078 return Err(fidl::Error::NonZeroPadding {
2079 padding_start: offset + 8 + ((mask as u64).trailing_zeros() / 8) as usize,
2080 });
2081 }
2082 fidl::decode!(
2083 fidl_fuchsia_wlan_ieee80211_common::ChannelNumber,
2084 D,
2085 &mut self.new_primary_channel,
2086 decoder,
2087 offset + 0,
2088 _depth
2089 )?;
2090 fidl::decode!(
2091 fidl_fuchsia_wlan_ieee80211_common::ChannelBandwidth,
2092 D,
2093 &mut self.bandwidth,
2094 decoder,
2095 offset + 4,
2096 _depth
2097 )?;
2098 fidl::decode!(
2099 fidl_fuchsia_wlan_ieee80211_common::ChannelNumber,
2100 D,
2101 &mut self.vht_secondary_80_channel,
2102 decoder,
2103 offset + 8,
2104 _depth
2105 )?;
2106 Ok(())
2107 }
2108 }
2109
2110 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcOnChannelSwitchRequest {
2111 type Borrowed<'a> = &'a Self;
2112 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2113 value
2114 }
2115 }
2116
2117 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcOnChannelSwitchRequest {
2118 type Owned = Self;
2119
2120 #[inline(always)]
2121 fn inline_align(_context: fidl::encoding::Context) -> usize {
2122 4
2123 }
2124
2125 #[inline(always)]
2126 fn inline_size(_context: fidl::encoding::Context) -> usize {
2127 12
2128 }
2129 }
2130
2131 unsafe impl<D: fidl::encoding::ResourceDialect>
2132 fidl::encoding::Encode<WlanFullmacImplIfcOnChannelSwitchRequest, D>
2133 for &WlanFullmacImplIfcOnChannelSwitchRequest
2134 {
2135 #[inline]
2136 unsafe fn encode(
2137 self,
2138 encoder: &mut fidl::encoding::Encoder<'_, D>,
2139 offset: usize,
2140 _depth: fidl::encoding::Depth,
2141 ) -> fidl::Result<()> {
2142 encoder.debug_check_bounds::<WlanFullmacImplIfcOnChannelSwitchRequest>(offset);
2143 fidl::encoding::Encode::<WlanFullmacImplIfcOnChannelSwitchRequest, D>::encode(
2145 (<WlanFullmacChannelSwitchInfo as fidl::encoding::ValueTypeMarker>::borrow(
2146 &self.ind,
2147 ),),
2148 encoder,
2149 offset,
2150 _depth,
2151 )
2152 }
2153 }
2154 unsafe impl<
2155 D: fidl::encoding::ResourceDialect,
2156 T0: fidl::encoding::Encode<WlanFullmacChannelSwitchInfo, D>,
2157 > fidl::encoding::Encode<WlanFullmacImplIfcOnChannelSwitchRequest, D> for (T0,)
2158 {
2159 #[inline]
2160 unsafe fn encode(
2161 self,
2162 encoder: &mut fidl::encoding::Encoder<'_, D>,
2163 offset: usize,
2164 depth: fidl::encoding::Depth,
2165 ) -> fidl::Result<()> {
2166 encoder.debug_check_bounds::<WlanFullmacImplIfcOnChannelSwitchRequest>(offset);
2167 self.0.encode(encoder, offset + 0, depth)?;
2171 Ok(())
2172 }
2173 }
2174
2175 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2176 for WlanFullmacImplIfcOnChannelSwitchRequest
2177 {
2178 #[inline(always)]
2179 fn new_empty() -> Self {
2180 Self { ind: fidl::new_empty!(WlanFullmacChannelSwitchInfo, D) }
2181 }
2182
2183 #[inline]
2184 unsafe fn decode(
2185 &mut self,
2186 decoder: &mut fidl::encoding::Decoder<'_, D>,
2187 offset: usize,
2188 _depth: fidl::encoding::Depth,
2189 ) -> fidl::Result<()> {
2190 decoder.debug_check_bounds::<Self>(offset);
2191 fidl::decode!(
2193 WlanFullmacChannelSwitchInfo,
2194 D,
2195 &mut self.ind,
2196 decoder,
2197 offset + 0,
2198 _depth
2199 )?;
2200 Ok(())
2201 }
2202 }
2203
2204 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcOnWmmStatusRespRequest {
2205 type Borrowed<'a> = &'a Self;
2206 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2207 value
2208 }
2209 }
2210
2211 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcOnWmmStatusRespRequest {
2212 type Owned = Self;
2213
2214 #[inline(always)]
2215 fn inline_align(_context: fidl::encoding::Context) -> usize {
2216 4
2217 }
2218
2219 #[inline(always)]
2220 fn inline_size(_context: fidl::encoding::Context) -> usize {
2221 40
2222 }
2223 }
2224
2225 unsafe impl<D: fidl::encoding::ResourceDialect>
2226 fidl::encoding::Encode<WlanFullmacImplIfcOnWmmStatusRespRequest, D>
2227 for &WlanFullmacImplIfcOnWmmStatusRespRequest
2228 {
2229 #[inline]
2230 unsafe fn encode(
2231 self,
2232 encoder: &mut fidl::encoding::Encoder<'_, D>,
2233 offset: usize,
2234 _depth: fidl::encoding::Depth,
2235 ) -> fidl::Result<()> {
2236 encoder.debug_check_bounds::<WlanFullmacImplIfcOnWmmStatusRespRequest>(offset);
2237 fidl::encoding::Encode::<WlanFullmacImplIfcOnWmmStatusRespRequest, D>::encode(
2239 (
2240 <i32 as fidl::encoding::ValueTypeMarker>::borrow(&self.status),
2241 <fidl_fuchsia_wlan_driver_common::WlanWmmParameters as fidl::encoding::ValueTypeMarker>::borrow(&self.wmm_params),
2242 ),
2243 encoder, offset, _depth
2244 )
2245 }
2246 }
2247 unsafe impl<
2248 D: fidl::encoding::ResourceDialect,
2249 T0: fidl::encoding::Encode<i32, D>,
2250 T1: fidl::encoding::Encode<fidl_fuchsia_wlan_driver_common::WlanWmmParameters, D>,
2251 > fidl::encoding::Encode<WlanFullmacImplIfcOnWmmStatusRespRequest, D> for (T0, T1)
2252 {
2253 #[inline]
2254 unsafe fn encode(
2255 self,
2256 encoder: &mut fidl::encoding::Encoder<'_, D>,
2257 offset: usize,
2258 depth: fidl::encoding::Depth,
2259 ) -> fidl::Result<()> {
2260 encoder.debug_check_bounds::<WlanFullmacImplIfcOnWmmStatusRespRequest>(offset);
2261 unsafe {
2264 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(36);
2265 (ptr as *mut u32).write_unaligned(0);
2266 }
2267 self.0.encode(encoder, offset + 0, depth)?;
2269 self.1.encode(encoder, offset + 4, depth)?;
2270 Ok(())
2271 }
2272 }
2273
2274 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2275 for WlanFullmacImplIfcOnWmmStatusRespRequest
2276 {
2277 #[inline(always)]
2278 fn new_empty() -> Self {
2279 Self {
2280 status: fidl::new_empty!(i32, D),
2281 wmm_params: fidl::new_empty!(fidl_fuchsia_wlan_driver_common::WlanWmmParameters, D),
2282 }
2283 }
2284
2285 #[inline]
2286 unsafe fn decode(
2287 &mut self,
2288 decoder: &mut fidl::encoding::Decoder<'_, D>,
2289 offset: usize,
2290 _depth: fidl::encoding::Depth,
2291 ) -> fidl::Result<()> {
2292 decoder.debug_check_bounds::<Self>(offset);
2293 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(36) };
2295 let padval = unsafe { (ptr as *const u32).read_unaligned() };
2296 let mask = 0xffff0000u32;
2297 let maskedval = padval & mask;
2298 if maskedval != 0 {
2299 return Err(fidl::Error::NonZeroPadding {
2300 padding_start: offset + 36 + ((mask as u64).trailing_zeros() / 8) as usize,
2301 });
2302 }
2303 fidl::decode!(i32, D, &mut self.status, decoder, offset + 0, _depth)?;
2304 fidl::decode!(
2305 fidl_fuchsia_wlan_driver_common::WlanWmmParameters,
2306 D,
2307 &mut self.wmm_params,
2308 decoder,
2309 offset + 4,
2310 _depth
2311 )?;
2312 Ok(())
2313 }
2314 }
2315
2316 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcSaeFrameRxRequest {
2317 type Borrowed<'a> = &'a Self;
2318 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2319 value
2320 }
2321 }
2322
2323 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcSaeFrameRxRequest {
2324 type Owned = Self;
2325
2326 #[inline(always)]
2327 fn inline_align(_context: fidl::encoding::Context) -> usize {
2328 8
2329 }
2330
2331 #[inline(always)]
2332 fn inline_size(_context: fidl::encoding::Context) -> usize {
2333 16
2334 }
2335 }
2336
2337 unsafe impl<D: fidl::encoding::ResourceDialect>
2338 fidl::encoding::Encode<WlanFullmacImplIfcSaeFrameRxRequest, D>
2339 for &WlanFullmacImplIfcSaeFrameRxRequest
2340 {
2341 #[inline]
2342 unsafe fn encode(
2343 self,
2344 encoder: &mut fidl::encoding::Encoder<'_, D>,
2345 offset: usize,
2346 _depth: fidl::encoding::Depth,
2347 ) -> fidl::Result<()> {
2348 encoder.debug_check_bounds::<WlanFullmacImplIfcSaeFrameRxRequest>(offset);
2349 fidl::encoding::Encode::<WlanFullmacImplIfcSaeFrameRxRequest, D>::encode(
2351 (<SaeFrame as fidl::encoding::ValueTypeMarker>::borrow(&self.frame),),
2352 encoder,
2353 offset,
2354 _depth,
2355 )
2356 }
2357 }
2358 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<SaeFrame, D>>
2359 fidl::encoding::Encode<WlanFullmacImplIfcSaeFrameRxRequest, D> for (T0,)
2360 {
2361 #[inline]
2362 unsafe fn encode(
2363 self,
2364 encoder: &mut fidl::encoding::Encoder<'_, D>,
2365 offset: usize,
2366 depth: fidl::encoding::Depth,
2367 ) -> fidl::Result<()> {
2368 encoder.debug_check_bounds::<WlanFullmacImplIfcSaeFrameRxRequest>(offset);
2369 self.0.encode(encoder, offset + 0, depth)?;
2373 Ok(())
2374 }
2375 }
2376
2377 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2378 for WlanFullmacImplIfcSaeFrameRxRequest
2379 {
2380 #[inline(always)]
2381 fn new_empty() -> Self {
2382 Self { frame: fidl::new_empty!(SaeFrame, D) }
2383 }
2384
2385 #[inline]
2386 unsafe fn decode(
2387 &mut self,
2388 decoder: &mut fidl::encoding::Decoder<'_, D>,
2389 offset: usize,
2390 _depth: fidl::encoding::Depth,
2391 ) -> fidl::Result<()> {
2392 decoder.debug_check_bounds::<Self>(offset);
2393 fidl::decode!(SaeFrame, D, &mut self.frame, decoder, offset + 0, _depth)?;
2395 Ok(())
2396 }
2397 }
2398
2399 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcSignalReportRequest {
2400 type Borrowed<'a> = &'a Self;
2401 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2402 value
2403 }
2404 }
2405
2406 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcSignalReportRequest {
2407 type Owned = Self;
2408
2409 #[inline(always)]
2410 fn inline_align(_context: fidl::encoding::Context) -> usize {
2411 8
2412 }
2413
2414 #[inline(always)]
2415 fn inline_size(_context: fidl::encoding::Context) -> usize {
2416 16
2417 }
2418 }
2419
2420 unsafe impl<D: fidl::encoding::ResourceDialect>
2421 fidl::encoding::Encode<WlanFullmacImplIfcSignalReportRequest, D>
2422 for &WlanFullmacImplIfcSignalReportRequest
2423 {
2424 #[inline]
2425 unsafe fn encode(
2426 self,
2427 encoder: &mut fidl::encoding::Encoder<'_, D>,
2428 offset: usize,
2429 _depth: fidl::encoding::Depth,
2430 ) -> fidl::Result<()> {
2431 encoder.debug_check_bounds::<WlanFullmacImplIfcSignalReportRequest>(offset);
2432 fidl::encoding::Encode::<WlanFullmacImplIfcSignalReportRequest, D>::encode(
2434 (<WlanFullmacSignalReportIndication as fidl::encoding::ValueTypeMarker>::borrow(
2435 &self.ind,
2436 ),),
2437 encoder,
2438 offset,
2439 _depth,
2440 )
2441 }
2442 }
2443 unsafe impl<
2444 D: fidl::encoding::ResourceDialect,
2445 T0: fidl::encoding::Encode<WlanFullmacSignalReportIndication, D>,
2446 > fidl::encoding::Encode<WlanFullmacImplIfcSignalReportRequest, D> for (T0,)
2447 {
2448 #[inline]
2449 unsafe fn encode(
2450 self,
2451 encoder: &mut fidl::encoding::Encoder<'_, D>,
2452 offset: usize,
2453 depth: fidl::encoding::Depth,
2454 ) -> fidl::Result<()> {
2455 encoder.debug_check_bounds::<WlanFullmacImplIfcSignalReportRequest>(offset);
2456 self.0.encode(encoder, offset + 0, depth)?;
2460 Ok(())
2461 }
2462 }
2463
2464 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2465 for WlanFullmacImplIfcSignalReportRequest
2466 {
2467 #[inline(always)]
2468 fn new_empty() -> Self {
2469 Self { ind: fidl::new_empty!(WlanFullmacSignalReportIndication, D) }
2470 }
2471
2472 #[inline]
2473 unsafe fn decode(
2474 &mut self,
2475 decoder: &mut fidl::encoding::Decoder<'_, D>,
2476 offset: usize,
2477 _depth: fidl::encoding::Depth,
2478 ) -> fidl::Result<()> {
2479 decoder.debug_check_bounds::<Self>(offset);
2480 fidl::decode!(
2482 WlanFullmacSignalReportIndication,
2483 D,
2484 &mut self.ind,
2485 decoder,
2486 offset + 0,
2487 _depth
2488 )?;
2489 Ok(())
2490 }
2491 }
2492
2493 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplSaeFrameTxRequest {
2494 type Borrowed<'a> = &'a Self;
2495 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2496 value
2497 }
2498 }
2499
2500 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplSaeFrameTxRequest {
2501 type Owned = Self;
2502
2503 #[inline(always)]
2504 fn inline_align(_context: fidl::encoding::Context) -> usize {
2505 8
2506 }
2507
2508 #[inline(always)]
2509 fn inline_size(_context: fidl::encoding::Context) -> usize {
2510 16
2511 }
2512 }
2513
2514 unsafe impl<D: fidl::encoding::ResourceDialect>
2515 fidl::encoding::Encode<WlanFullmacImplSaeFrameTxRequest, D>
2516 for &WlanFullmacImplSaeFrameTxRequest
2517 {
2518 #[inline]
2519 unsafe fn encode(
2520 self,
2521 encoder: &mut fidl::encoding::Encoder<'_, D>,
2522 offset: usize,
2523 _depth: fidl::encoding::Depth,
2524 ) -> fidl::Result<()> {
2525 encoder.debug_check_bounds::<WlanFullmacImplSaeFrameTxRequest>(offset);
2526 fidl::encoding::Encode::<WlanFullmacImplSaeFrameTxRequest, D>::encode(
2528 (<SaeFrame as fidl::encoding::ValueTypeMarker>::borrow(&self.frame),),
2529 encoder,
2530 offset,
2531 _depth,
2532 )
2533 }
2534 }
2535 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<SaeFrame, D>>
2536 fidl::encoding::Encode<WlanFullmacImplSaeFrameTxRequest, D> for (T0,)
2537 {
2538 #[inline]
2539 unsafe fn encode(
2540 self,
2541 encoder: &mut fidl::encoding::Encoder<'_, D>,
2542 offset: usize,
2543 depth: fidl::encoding::Depth,
2544 ) -> fidl::Result<()> {
2545 encoder.debug_check_bounds::<WlanFullmacImplSaeFrameTxRequest>(offset);
2546 self.0.encode(encoder, offset + 0, depth)?;
2550 Ok(())
2551 }
2552 }
2553
2554 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2555 for WlanFullmacImplSaeFrameTxRequest
2556 {
2557 #[inline(always)]
2558 fn new_empty() -> Self {
2559 Self { frame: fidl::new_empty!(SaeFrame, D) }
2560 }
2561
2562 #[inline]
2563 unsafe fn decode(
2564 &mut self,
2565 decoder: &mut fidl::encoding::Decoder<'_, D>,
2566 offset: usize,
2567 _depth: fidl::encoding::Depth,
2568 ) -> fidl::Result<()> {
2569 decoder.debug_check_bounds::<Self>(offset);
2570 fidl::decode!(SaeFrame, D, &mut self.frame, decoder, offset + 0, _depth)?;
2572 Ok(())
2573 }
2574 }
2575
2576 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplSetKeysResponse {
2577 type Borrowed<'a> = &'a Self;
2578 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2579 value
2580 }
2581 }
2582
2583 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplSetKeysResponse {
2584 type Owned = Self;
2585
2586 #[inline(always)]
2587 fn inline_align(_context: fidl::encoding::Context) -> usize {
2588 8
2589 }
2590
2591 #[inline(always)]
2592 fn inline_size(_context: fidl::encoding::Context) -> usize {
2593 16
2594 }
2595 }
2596
2597 unsafe impl<D: fidl::encoding::ResourceDialect>
2598 fidl::encoding::Encode<WlanFullmacImplSetKeysResponse, D>
2599 for &WlanFullmacImplSetKeysResponse
2600 {
2601 #[inline]
2602 unsafe fn encode(
2603 self,
2604 encoder: &mut fidl::encoding::Encoder<'_, D>,
2605 offset: usize,
2606 _depth: fidl::encoding::Depth,
2607 ) -> fidl::Result<()> {
2608 encoder.debug_check_bounds::<WlanFullmacImplSetKeysResponse>(offset);
2609 fidl::encoding::Encode::<WlanFullmacImplSetKeysResponse, D>::encode(
2611 (<WlanFullmacSetKeysResp as fidl::encoding::ValueTypeMarker>::borrow(&self.resp),),
2612 encoder,
2613 offset,
2614 _depth,
2615 )
2616 }
2617 }
2618 unsafe impl<
2619 D: fidl::encoding::ResourceDialect,
2620 T0: fidl::encoding::Encode<WlanFullmacSetKeysResp, D>,
2621 > fidl::encoding::Encode<WlanFullmacImplSetKeysResponse, D> for (T0,)
2622 {
2623 #[inline]
2624 unsafe fn encode(
2625 self,
2626 encoder: &mut fidl::encoding::Encoder<'_, D>,
2627 offset: usize,
2628 depth: fidl::encoding::Depth,
2629 ) -> fidl::Result<()> {
2630 encoder.debug_check_bounds::<WlanFullmacImplSetKeysResponse>(offset);
2631 self.0.encode(encoder, offset + 0, depth)?;
2635 Ok(())
2636 }
2637 }
2638
2639 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2640 for WlanFullmacImplSetKeysResponse
2641 {
2642 #[inline(always)]
2643 fn new_empty() -> Self {
2644 Self { resp: fidl::new_empty!(WlanFullmacSetKeysResp, D) }
2645 }
2646
2647 #[inline]
2648 unsafe fn decode(
2649 &mut self,
2650 decoder: &mut fidl::encoding::Decoder<'_, D>,
2651 offset: usize,
2652 _depth: fidl::encoding::Depth,
2653 ) -> fidl::Result<()> {
2654 decoder.debug_check_bounds::<Self>(offset);
2655 fidl::decode!(WlanFullmacSetKeysResp, D, &mut self.resp, decoder, offset + 0, _depth)?;
2657 Ok(())
2658 }
2659 }
2660
2661 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplSetMacAddressRequest {
2662 type Borrowed<'a> = &'a Self;
2663 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2664 value
2665 }
2666 }
2667
2668 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplSetMacAddressRequest {
2669 type Owned = Self;
2670
2671 #[inline(always)]
2672 fn inline_align(_context: fidl::encoding::Context) -> usize {
2673 1
2674 }
2675
2676 #[inline(always)]
2677 fn inline_size(_context: fidl::encoding::Context) -> usize {
2678 6
2679 }
2680 #[inline(always)]
2681 fn encode_is_copy() -> bool {
2682 true
2683 }
2684
2685 #[inline(always)]
2686 fn decode_is_copy() -> bool {
2687 true
2688 }
2689 }
2690
2691 unsafe impl<D: fidl::encoding::ResourceDialect>
2692 fidl::encoding::Encode<WlanFullmacImplSetMacAddressRequest, D>
2693 for &WlanFullmacImplSetMacAddressRequest
2694 {
2695 #[inline]
2696 unsafe fn encode(
2697 self,
2698 encoder: &mut fidl::encoding::Encoder<'_, D>,
2699 offset: usize,
2700 _depth: fidl::encoding::Depth,
2701 ) -> fidl::Result<()> {
2702 encoder.debug_check_bounds::<WlanFullmacImplSetMacAddressRequest>(offset);
2703 unsafe {
2704 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
2706 (buf_ptr as *mut WlanFullmacImplSetMacAddressRequest)
2707 .write_unaligned((self as *const WlanFullmacImplSetMacAddressRequest).read());
2708 }
2711 Ok(())
2712 }
2713 }
2714 unsafe impl<
2715 D: fidl::encoding::ResourceDialect,
2716 T0: fidl::encoding::Encode<fidl::encoding::Array<u8, 6>, D>,
2717 > fidl::encoding::Encode<WlanFullmacImplSetMacAddressRequest, D> for (T0,)
2718 {
2719 #[inline]
2720 unsafe fn encode(
2721 self,
2722 encoder: &mut fidl::encoding::Encoder<'_, D>,
2723 offset: usize,
2724 depth: fidl::encoding::Depth,
2725 ) -> fidl::Result<()> {
2726 encoder.debug_check_bounds::<WlanFullmacImplSetMacAddressRequest>(offset);
2727 self.0.encode(encoder, offset + 0, depth)?;
2731 Ok(())
2732 }
2733 }
2734
2735 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2736 for WlanFullmacImplSetMacAddressRequest
2737 {
2738 #[inline(always)]
2739 fn new_empty() -> Self {
2740 Self { mac_addr: fidl::new_empty!(fidl::encoding::Array<u8, 6>, D) }
2741 }
2742
2743 #[inline]
2744 unsafe fn decode(
2745 &mut self,
2746 decoder: &mut fidl::encoding::Decoder<'_, D>,
2747 offset: usize,
2748 _depth: fidl::encoding::Depth,
2749 ) -> fidl::Result<()> {
2750 decoder.debug_check_bounds::<Self>(offset);
2751 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
2752 unsafe {
2755 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 6);
2756 }
2757 Ok(())
2758 }
2759 }
2760
2761 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplGetIfaceHistogramStatsResponse {
2762 type Borrowed<'a> = &'a Self;
2763 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2764 value
2765 }
2766 }
2767
2768 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplGetIfaceHistogramStatsResponse {
2769 type Owned = Self;
2770
2771 #[inline(always)]
2772 fn inline_align(_context: fidl::encoding::Context) -> usize {
2773 8
2774 }
2775
2776 #[inline(always)]
2777 fn inline_size(_context: fidl::encoding::Context) -> usize {
2778 16
2779 }
2780 }
2781
2782 unsafe impl<D: fidl::encoding::ResourceDialect>
2783 fidl::encoding::Encode<WlanFullmacImplGetIfaceHistogramStatsResponse, D>
2784 for &WlanFullmacImplGetIfaceHistogramStatsResponse
2785 {
2786 #[inline]
2787 unsafe fn encode(
2788 self,
2789 encoder: &mut fidl::encoding::Encoder<'_, D>,
2790 offset: usize,
2791 _depth: fidl::encoding::Depth,
2792 ) -> fidl::Result<()> {
2793 encoder.debug_check_bounds::<WlanFullmacImplGetIfaceHistogramStatsResponse>(offset);
2794 fidl::encoding::Encode::<WlanFullmacImplGetIfaceHistogramStatsResponse, D>::encode(
2796 (
2797 <fidl_fuchsia_wlan_stats_common::IfaceHistogramStats as fidl::encoding::ValueTypeMarker>::borrow(&self.stats),
2798 ),
2799 encoder, offset, _depth
2800 )
2801 }
2802 }
2803 unsafe impl<
2804 D: fidl::encoding::ResourceDialect,
2805 T0: fidl::encoding::Encode<fidl_fuchsia_wlan_stats_common::IfaceHistogramStats, D>,
2806 > fidl::encoding::Encode<WlanFullmacImplGetIfaceHistogramStatsResponse, D> for (T0,)
2807 {
2808 #[inline]
2809 unsafe fn encode(
2810 self,
2811 encoder: &mut fidl::encoding::Encoder<'_, D>,
2812 offset: usize,
2813 depth: fidl::encoding::Depth,
2814 ) -> fidl::Result<()> {
2815 encoder.debug_check_bounds::<WlanFullmacImplGetIfaceHistogramStatsResponse>(offset);
2816 self.0.encode(encoder, offset + 0, depth)?;
2820 Ok(())
2821 }
2822 }
2823
2824 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2825 for WlanFullmacImplGetIfaceHistogramStatsResponse
2826 {
2827 #[inline(always)]
2828 fn new_empty() -> Self {
2829 Self { stats: fidl::new_empty!(fidl_fuchsia_wlan_stats_common::IfaceHistogramStats, D) }
2830 }
2831
2832 #[inline]
2833 unsafe fn decode(
2834 &mut self,
2835 decoder: &mut fidl::encoding::Decoder<'_, D>,
2836 offset: usize,
2837 _depth: fidl::encoding::Depth,
2838 ) -> fidl::Result<()> {
2839 decoder.debug_check_bounds::<Self>(offset);
2840 fidl::decode!(
2842 fidl_fuchsia_wlan_stats_common::IfaceHistogramStats,
2843 D,
2844 &mut self.stats,
2845 decoder,
2846 offset + 0,
2847 _depth
2848 )?;
2849 Ok(())
2850 }
2851 }
2852
2853 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplGetIfaceStatsResponse {
2854 type Borrowed<'a> = &'a Self;
2855 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2856 value
2857 }
2858 }
2859
2860 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplGetIfaceStatsResponse {
2861 type Owned = Self;
2862
2863 #[inline(always)]
2864 fn inline_align(_context: fidl::encoding::Context) -> usize {
2865 8
2866 }
2867
2868 #[inline(always)]
2869 fn inline_size(_context: fidl::encoding::Context) -> usize {
2870 16
2871 }
2872 }
2873
2874 unsafe impl<D: fidl::encoding::ResourceDialect>
2875 fidl::encoding::Encode<WlanFullmacImplGetIfaceStatsResponse, D>
2876 for &WlanFullmacImplGetIfaceStatsResponse
2877 {
2878 #[inline]
2879 unsafe fn encode(
2880 self,
2881 encoder: &mut fidl::encoding::Encoder<'_, D>,
2882 offset: usize,
2883 _depth: fidl::encoding::Depth,
2884 ) -> fidl::Result<()> {
2885 encoder.debug_check_bounds::<WlanFullmacImplGetIfaceStatsResponse>(offset);
2886 fidl::encoding::Encode::<WlanFullmacImplGetIfaceStatsResponse, D>::encode(
2888 (
2889 <fidl_fuchsia_wlan_stats_common::IfaceStats as fidl::encoding::ValueTypeMarker>::borrow(&self.stats),
2890 ),
2891 encoder, offset, _depth
2892 )
2893 }
2894 }
2895 unsafe impl<
2896 D: fidl::encoding::ResourceDialect,
2897 T0: fidl::encoding::Encode<fidl_fuchsia_wlan_stats_common::IfaceStats, D>,
2898 > fidl::encoding::Encode<WlanFullmacImplGetIfaceStatsResponse, D> for (T0,)
2899 {
2900 #[inline]
2901 unsafe fn encode(
2902 self,
2903 encoder: &mut fidl::encoding::Encoder<'_, D>,
2904 offset: usize,
2905 depth: fidl::encoding::Depth,
2906 ) -> fidl::Result<()> {
2907 encoder.debug_check_bounds::<WlanFullmacImplGetIfaceStatsResponse>(offset);
2908 self.0.encode(encoder, offset + 0, depth)?;
2912 Ok(())
2913 }
2914 }
2915
2916 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2917 for WlanFullmacImplGetIfaceStatsResponse
2918 {
2919 #[inline(always)]
2920 fn new_empty() -> Self {
2921 Self { stats: fidl::new_empty!(fidl_fuchsia_wlan_stats_common::IfaceStats, D) }
2922 }
2923
2924 #[inline]
2925 unsafe fn decode(
2926 &mut self,
2927 decoder: &mut fidl::encoding::Decoder<'_, D>,
2928 offset: usize,
2929 _depth: fidl::encoding::Depth,
2930 ) -> fidl::Result<()> {
2931 decoder.debug_check_bounds::<Self>(offset);
2932 fidl::decode!(
2934 fidl_fuchsia_wlan_stats_common::IfaceStats,
2935 D,
2936 &mut self.stats,
2937 decoder,
2938 offset + 0,
2939 _depth
2940 )?;
2941 Ok(())
2942 }
2943 }
2944
2945 impl fidl::encoding::ValueTypeMarker for WlanFullmacRssiStats {
2946 type Borrowed<'a> = &'a Self;
2947 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2948 value
2949 }
2950 }
2951
2952 unsafe impl fidl::encoding::TypeMarker for WlanFullmacRssiStats {
2953 type Owned = Self;
2954
2955 #[inline(always)]
2956 fn inline_align(_context: fidl::encoding::Context) -> usize {
2957 8
2958 }
2959
2960 #[inline(always)]
2961 fn inline_size(_context: fidl::encoding::Context) -> usize {
2962 16
2963 }
2964 }
2965
2966 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<WlanFullmacRssiStats, D>
2967 for &WlanFullmacRssiStats
2968 {
2969 #[inline]
2970 unsafe fn encode(
2971 self,
2972 encoder: &mut fidl::encoding::Encoder<'_, D>,
2973 offset: usize,
2974 _depth: fidl::encoding::Depth,
2975 ) -> fidl::Result<()> {
2976 encoder.debug_check_bounds::<WlanFullmacRssiStats>(offset);
2977 fidl::encoding::Encode::<WlanFullmacRssiStats, D>::encode(
2979 (
2980 <fidl::encoding::UnboundedVector<u64> as fidl::encoding::ValueTypeMarker>::borrow(&self.hist),
2981 ),
2982 encoder, offset, _depth
2983 )
2984 }
2985 }
2986 unsafe impl<
2987 D: fidl::encoding::ResourceDialect,
2988 T0: fidl::encoding::Encode<fidl::encoding::UnboundedVector<u64>, D>,
2989 > fidl::encoding::Encode<WlanFullmacRssiStats, D> for (T0,)
2990 {
2991 #[inline]
2992 unsafe fn encode(
2993 self,
2994 encoder: &mut fidl::encoding::Encoder<'_, D>,
2995 offset: usize,
2996 depth: fidl::encoding::Depth,
2997 ) -> fidl::Result<()> {
2998 encoder.debug_check_bounds::<WlanFullmacRssiStats>(offset);
2999 self.0.encode(encoder, offset + 0, depth)?;
3003 Ok(())
3004 }
3005 }
3006
3007 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for WlanFullmacRssiStats {
3008 #[inline(always)]
3009 fn new_empty() -> Self {
3010 Self { hist: fidl::new_empty!(fidl::encoding::UnboundedVector<u64>, D) }
3011 }
3012
3013 #[inline]
3014 unsafe fn decode(
3015 &mut self,
3016 decoder: &mut fidl::encoding::Decoder<'_, D>,
3017 offset: usize,
3018 _depth: fidl::encoding::Depth,
3019 ) -> fidl::Result<()> {
3020 decoder.debug_check_bounds::<Self>(offset);
3021 fidl::decode!(
3023 fidl::encoding::UnboundedVector<u64>,
3024 D,
3025 &mut self.hist,
3026 decoder,
3027 offset + 0,
3028 _depth
3029 )?;
3030 Ok(())
3031 }
3032 }
3033
3034 impl fidl::encoding::ValueTypeMarker for WlanFullmacSetKeysResp {
3035 type Borrowed<'a> = &'a Self;
3036 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3037 value
3038 }
3039 }
3040
3041 unsafe impl fidl::encoding::TypeMarker for WlanFullmacSetKeysResp {
3042 type Owned = Self;
3043
3044 #[inline(always)]
3045 fn inline_align(_context: fidl::encoding::Context) -> usize {
3046 8
3047 }
3048
3049 #[inline(always)]
3050 fn inline_size(_context: fidl::encoding::Context) -> usize {
3051 16
3052 }
3053 }
3054
3055 unsafe impl<D: fidl::encoding::ResourceDialect>
3056 fidl::encoding::Encode<WlanFullmacSetKeysResp, D> for &WlanFullmacSetKeysResp
3057 {
3058 #[inline]
3059 unsafe fn encode(
3060 self,
3061 encoder: &mut fidl::encoding::Encoder<'_, D>,
3062 offset: usize,
3063 _depth: fidl::encoding::Depth,
3064 ) -> fidl::Result<()> {
3065 encoder.debug_check_bounds::<WlanFullmacSetKeysResp>(offset);
3066 fidl::encoding::Encode::<WlanFullmacSetKeysResp, D>::encode(
3068 (<fidl::encoding::Vector<i32, 4> as fidl::encoding::ValueTypeMarker>::borrow(
3069 &self.statuslist,
3070 ),),
3071 encoder,
3072 offset,
3073 _depth,
3074 )
3075 }
3076 }
3077 unsafe impl<
3078 D: fidl::encoding::ResourceDialect,
3079 T0: fidl::encoding::Encode<fidl::encoding::Vector<i32, 4>, D>,
3080 > fidl::encoding::Encode<WlanFullmacSetKeysResp, D> for (T0,)
3081 {
3082 #[inline]
3083 unsafe fn encode(
3084 self,
3085 encoder: &mut fidl::encoding::Encoder<'_, D>,
3086 offset: usize,
3087 depth: fidl::encoding::Depth,
3088 ) -> fidl::Result<()> {
3089 encoder.debug_check_bounds::<WlanFullmacSetKeysResp>(offset);
3090 self.0.encode(encoder, offset + 0, depth)?;
3094 Ok(())
3095 }
3096 }
3097
3098 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
3099 for WlanFullmacSetKeysResp
3100 {
3101 #[inline(always)]
3102 fn new_empty() -> Self {
3103 Self { statuslist: fidl::new_empty!(fidl::encoding::Vector<i32, 4>, D) }
3104 }
3105
3106 #[inline]
3107 unsafe fn decode(
3108 &mut self,
3109 decoder: &mut fidl::encoding::Decoder<'_, D>,
3110 offset: usize,
3111 _depth: fidl::encoding::Depth,
3112 ) -> fidl::Result<()> {
3113 decoder.debug_check_bounds::<Self>(offset);
3114 fidl::decode!(fidl::encoding::Vector<i32, 4>, D, &mut self.statuslist, decoder, offset + 0, _depth)?;
3116 Ok(())
3117 }
3118 }
3119
3120 impl BandCapability {
3121 #[inline(always)]
3122 fn max_ordinal_present(&self) -> u64 {
3123 if let Some(_) = self.primary_channels {
3124 return 5;
3125 }
3126 if let Some(_) = self.vht_caps {
3127 return 4;
3128 }
3129 if let Some(_) = self.ht_caps {
3130 return 3;
3131 }
3132 if let Some(_) = self.basic_rates {
3133 return 2;
3134 }
3135 if let Some(_) = self.band {
3136 return 1;
3137 }
3138 0
3139 }
3140 }
3141
3142 impl fidl::encoding::ValueTypeMarker for BandCapability {
3143 type Borrowed<'a> = &'a Self;
3144 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3145 value
3146 }
3147 }
3148
3149 unsafe impl fidl::encoding::TypeMarker for BandCapability {
3150 type Owned = Self;
3151
3152 #[inline(always)]
3153 fn inline_align(_context: fidl::encoding::Context) -> usize {
3154 8
3155 }
3156
3157 #[inline(always)]
3158 fn inline_size(_context: fidl::encoding::Context) -> usize {
3159 16
3160 }
3161 }
3162
3163 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<BandCapability, D>
3164 for &BandCapability
3165 {
3166 unsafe fn encode(
3167 self,
3168 encoder: &mut fidl::encoding::Encoder<'_, D>,
3169 offset: usize,
3170 mut depth: fidl::encoding::Depth,
3171 ) -> fidl::Result<()> {
3172 encoder.debug_check_bounds::<BandCapability>(offset);
3173 let max_ordinal: u64 = self.max_ordinal_present();
3175 encoder.write_num(max_ordinal, offset);
3176 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
3177 if max_ordinal == 0 {
3179 return Ok(());
3180 }
3181 depth.increment()?;
3182 let envelope_size = 8;
3183 let bytes_len = max_ordinal as usize * envelope_size;
3184 #[allow(unused_variables)]
3185 let offset = encoder.out_of_line_offset(bytes_len);
3186 let mut _prev_end_offset: usize = 0;
3187 if 1 > max_ordinal {
3188 return Ok(());
3189 }
3190
3191 let cur_offset: usize = (1 - 1) * envelope_size;
3194
3195 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3197
3198 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_ieee80211_common::WlanBand, D>(
3203 self.band.as_ref().map(<fidl_fuchsia_wlan_ieee80211_common::WlanBand as fidl::encoding::ValueTypeMarker>::borrow),
3204 encoder, offset + cur_offset, depth
3205 )?;
3206
3207 _prev_end_offset = cur_offset + envelope_size;
3208 if 2 > max_ordinal {
3209 return Ok(());
3210 }
3211
3212 let cur_offset: usize = (2 - 1) * envelope_size;
3215
3216 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3218
3219 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<u8, 12>, D>(
3224 self.basic_rates.as_ref().map(
3225 <fidl::encoding::Vector<u8, 12> as fidl::encoding::ValueTypeMarker>::borrow,
3226 ),
3227 encoder,
3228 offset + cur_offset,
3229 depth,
3230 )?;
3231
3232 _prev_end_offset = cur_offset + envelope_size;
3233 if 3 > max_ordinal {
3234 return Ok(());
3235 }
3236
3237 let cur_offset: usize = (3 - 1) * envelope_size;
3240
3241 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3243
3244 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_ieee80211_common::HtCapabilities, D>(
3249 self.ht_caps.as_ref().map(<fidl_fuchsia_wlan_ieee80211_common::HtCapabilities as fidl::encoding::ValueTypeMarker>::borrow),
3250 encoder, offset + cur_offset, depth
3251 )?;
3252
3253 _prev_end_offset = cur_offset + envelope_size;
3254 if 4 > max_ordinal {
3255 return Ok(());
3256 }
3257
3258 let cur_offset: usize = (4 - 1) * envelope_size;
3261
3262 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3264
3265 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_ieee80211_common::VhtCapabilities, D>(
3270 self.vht_caps.as_ref().map(<fidl_fuchsia_wlan_ieee80211_common::VhtCapabilities as fidl::encoding::ValueTypeMarker>::borrow),
3271 encoder, offset + cur_offset, depth
3272 )?;
3273
3274 _prev_end_offset = cur_offset + envelope_size;
3275 if 5 > max_ordinal {
3276 return Ok(());
3277 }
3278
3279 let cur_offset: usize = (5 - 1) * envelope_size;
3282
3283 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3285
3286 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<fidl_fuchsia_wlan_ieee80211_common::ChannelNumber, 256>, D>(
3291 self.primary_channels.as_ref().map(<fidl::encoding::Vector<fidl_fuchsia_wlan_ieee80211_common::ChannelNumber, 256> as fidl::encoding::ValueTypeMarker>::borrow),
3292 encoder, offset + cur_offset, depth
3293 )?;
3294
3295 _prev_end_offset = cur_offset + envelope_size;
3296
3297 Ok(())
3298 }
3299 }
3300
3301 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for BandCapability {
3302 #[inline(always)]
3303 fn new_empty() -> Self {
3304 Self::default()
3305 }
3306
3307 unsafe fn decode(
3308 &mut self,
3309 decoder: &mut fidl::encoding::Decoder<'_, D>,
3310 offset: usize,
3311 mut depth: fidl::encoding::Depth,
3312 ) -> fidl::Result<()> {
3313 decoder.debug_check_bounds::<Self>(offset);
3314 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
3315 None => return Err(fidl::Error::NotNullable),
3316 Some(len) => len,
3317 };
3318 if len == 0 {
3320 return Ok(());
3321 };
3322 depth.increment()?;
3323 let envelope_size = 8;
3324 let bytes_len = len * envelope_size;
3325 let offset = decoder.out_of_line_offset(bytes_len)?;
3326 let mut _next_ordinal_to_read = 0;
3328 let mut next_offset = offset;
3329 let end_offset = offset + bytes_len;
3330 _next_ordinal_to_read += 1;
3331 if next_offset >= end_offset {
3332 return Ok(());
3333 }
3334
3335 while _next_ordinal_to_read < 1 {
3337 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3338 _next_ordinal_to_read += 1;
3339 next_offset += envelope_size;
3340 }
3341
3342 let next_out_of_line = decoder.next_out_of_line();
3343 let handles_before = decoder.remaining_handles();
3344 if let Some((inlined, num_bytes, num_handles)) =
3345 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3346 {
3347 let member_inline_size = <fidl_fuchsia_wlan_ieee80211_common::WlanBand as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3348 if inlined != (member_inline_size <= 4) {
3349 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3350 }
3351 let inner_offset;
3352 let mut inner_depth = depth.clone();
3353 if inlined {
3354 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3355 inner_offset = next_offset;
3356 } else {
3357 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3358 inner_depth.increment()?;
3359 }
3360 let val_ref = self.band.get_or_insert_with(|| {
3361 fidl::new_empty!(fidl_fuchsia_wlan_ieee80211_common::WlanBand, D)
3362 });
3363 fidl::decode!(
3364 fidl_fuchsia_wlan_ieee80211_common::WlanBand,
3365 D,
3366 val_ref,
3367 decoder,
3368 inner_offset,
3369 inner_depth
3370 )?;
3371 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3372 {
3373 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3374 }
3375 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3376 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3377 }
3378 }
3379
3380 next_offset += envelope_size;
3381 _next_ordinal_to_read += 1;
3382 if next_offset >= end_offset {
3383 return Ok(());
3384 }
3385
3386 while _next_ordinal_to_read < 2 {
3388 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3389 _next_ordinal_to_read += 1;
3390 next_offset += envelope_size;
3391 }
3392
3393 let next_out_of_line = decoder.next_out_of_line();
3394 let handles_before = decoder.remaining_handles();
3395 if let Some((inlined, num_bytes, num_handles)) =
3396 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3397 {
3398 let member_inline_size =
3399 <fidl::encoding::Vector<u8, 12> as fidl::encoding::TypeMarker>::inline_size(
3400 decoder.context,
3401 );
3402 if inlined != (member_inline_size <= 4) {
3403 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3404 }
3405 let inner_offset;
3406 let mut inner_depth = depth.clone();
3407 if inlined {
3408 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3409 inner_offset = next_offset;
3410 } else {
3411 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3412 inner_depth.increment()?;
3413 }
3414 let val_ref = self
3415 .basic_rates
3416 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<u8, 12>, D));
3417 fidl::decode!(fidl::encoding::Vector<u8, 12>, D, val_ref, decoder, inner_offset, inner_depth)?;
3418 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3419 {
3420 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3421 }
3422 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3423 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3424 }
3425 }
3426
3427 next_offset += envelope_size;
3428 _next_ordinal_to_read += 1;
3429 if next_offset >= end_offset {
3430 return Ok(());
3431 }
3432
3433 while _next_ordinal_to_read < 3 {
3435 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3436 _next_ordinal_to_read += 1;
3437 next_offset += envelope_size;
3438 }
3439
3440 let next_out_of_line = decoder.next_out_of_line();
3441 let handles_before = decoder.remaining_handles();
3442 if let Some((inlined, num_bytes, num_handles)) =
3443 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3444 {
3445 let member_inline_size = <fidl_fuchsia_wlan_ieee80211_common::HtCapabilities as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3446 if inlined != (member_inline_size <= 4) {
3447 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3448 }
3449 let inner_offset;
3450 let mut inner_depth = depth.clone();
3451 if inlined {
3452 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3453 inner_offset = next_offset;
3454 } else {
3455 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3456 inner_depth.increment()?;
3457 }
3458 let val_ref = self.ht_caps.get_or_insert_with(|| {
3459 fidl::new_empty!(fidl_fuchsia_wlan_ieee80211_common::HtCapabilities, D)
3460 });
3461 fidl::decode!(
3462 fidl_fuchsia_wlan_ieee80211_common::HtCapabilities,
3463 D,
3464 val_ref,
3465 decoder,
3466 inner_offset,
3467 inner_depth
3468 )?;
3469 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3470 {
3471 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3472 }
3473 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3474 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3475 }
3476 }
3477
3478 next_offset += envelope_size;
3479 _next_ordinal_to_read += 1;
3480 if next_offset >= end_offset {
3481 return Ok(());
3482 }
3483
3484 while _next_ordinal_to_read < 4 {
3486 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3487 _next_ordinal_to_read += 1;
3488 next_offset += envelope_size;
3489 }
3490
3491 let next_out_of_line = decoder.next_out_of_line();
3492 let handles_before = decoder.remaining_handles();
3493 if let Some((inlined, num_bytes, num_handles)) =
3494 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3495 {
3496 let member_inline_size = <fidl_fuchsia_wlan_ieee80211_common::VhtCapabilities as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3497 if inlined != (member_inline_size <= 4) {
3498 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3499 }
3500 let inner_offset;
3501 let mut inner_depth = depth.clone();
3502 if inlined {
3503 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3504 inner_offset = next_offset;
3505 } else {
3506 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3507 inner_depth.increment()?;
3508 }
3509 let val_ref = self.vht_caps.get_or_insert_with(|| {
3510 fidl::new_empty!(fidl_fuchsia_wlan_ieee80211_common::VhtCapabilities, D)
3511 });
3512 fidl::decode!(
3513 fidl_fuchsia_wlan_ieee80211_common::VhtCapabilities,
3514 D,
3515 val_ref,
3516 decoder,
3517 inner_offset,
3518 inner_depth
3519 )?;
3520 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3521 {
3522 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3523 }
3524 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3525 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3526 }
3527 }
3528
3529 next_offset += envelope_size;
3530 _next_ordinal_to_read += 1;
3531 if next_offset >= end_offset {
3532 return Ok(());
3533 }
3534
3535 while _next_ordinal_to_read < 5 {
3537 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3538 _next_ordinal_to_read += 1;
3539 next_offset += envelope_size;
3540 }
3541
3542 let next_out_of_line = decoder.next_out_of_line();
3543 let handles_before = decoder.remaining_handles();
3544 if let Some((inlined, num_bytes, num_handles)) =
3545 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3546 {
3547 let member_inline_size = <fidl::encoding::Vector<
3548 fidl_fuchsia_wlan_ieee80211_common::ChannelNumber,
3549 256,
3550 > as fidl::encoding::TypeMarker>::inline_size(
3551 decoder.context
3552 );
3553 if inlined != (member_inline_size <= 4) {
3554 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3555 }
3556 let inner_offset;
3557 let mut inner_depth = depth.clone();
3558 if inlined {
3559 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3560 inner_offset = next_offset;
3561 } else {
3562 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3563 inner_depth.increment()?;
3564 }
3565 let val_ref =
3566 self.primary_channels.get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<fidl_fuchsia_wlan_ieee80211_common::ChannelNumber, 256>, D));
3567 fidl::decode!(fidl::encoding::Vector<fidl_fuchsia_wlan_ieee80211_common::ChannelNumber, 256>, D, val_ref, decoder, inner_offset, inner_depth)?;
3568 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3569 {
3570 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3571 }
3572 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3573 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3574 }
3575 }
3576
3577 next_offset += envelope_size;
3578
3579 while next_offset < end_offset {
3581 _next_ordinal_to_read += 1;
3582 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3583 next_offset += envelope_size;
3584 }
3585
3586 Ok(())
3587 }
3588 }
3589
3590 impl SaeFrame {
3591 #[inline(always)]
3592 fn max_ordinal_present(&self) -> u64 {
3593 if let Some(_) = self.sae_fields {
3594 return 4;
3595 }
3596 if let Some(_) = self.seq_num {
3597 return 3;
3598 }
3599 if let Some(_) = self.status_code {
3600 return 2;
3601 }
3602 if let Some(_) = self.peer_sta_address {
3603 return 1;
3604 }
3605 0
3606 }
3607 }
3608
3609 impl fidl::encoding::ValueTypeMarker for SaeFrame {
3610 type Borrowed<'a> = &'a Self;
3611 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3612 value
3613 }
3614 }
3615
3616 unsafe impl fidl::encoding::TypeMarker for SaeFrame {
3617 type Owned = Self;
3618
3619 #[inline(always)]
3620 fn inline_align(_context: fidl::encoding::Context) -> usize {
3621 8
3622 }
3623
3624 #[inline(always)]
3625 fn inline_size(_context: fidl::encoding::Context) -> usize {
3626 16
3627 }
3628 }
3629
3630 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<SaeFrame, D> for &SaeFrame {
3631 unsafe fn encode(
3632 self,
3633 encoder: &mut fidl::encoding::Encoder<'_, D>,
3634 offset: usize,
3635 mut depth: fidl::encoding::Depth,
3636 ) -> fidl::Result<()> {
3637 encoder.debug_check_bounds::<SaeFrame>(offset);
3638 let max_ordinal: u64 = self.max_ordinal_present();
3640 encoder.write_num(max_ordinal, offset);
3641 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
3642 if max_ordinal == 0 {
3644 return Ok(());
3645 }
3646 depth.increment()?;
3647 let envelope_size = 8;
3648 let bytes_len = max_ordinal as usize * envelope_size;
3649 #[allow(unused_variables)]
3650 let offset = encoder.out_of_line_offset(bytes_len);
3651 let mut _prev_end_offset: usize = 0;
3652 if 1 > max_ordinal {
3653 return Ok(());
3654 }
3655
3656 let cur_offset: usize = (1 - 1) * envelope_size;
3659
3660 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3662
3663 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
3668 self.peer_sta_address
3669 .as_ref()
3670 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
3671 encoder,
3672 offset + cur_offset,
3673 depth,
3674 )?;
3675
3676 _prev_end_offset = cur_offset + envelope_size;
3677 if 2 > max_ordinal {
3678 return Ok(());
3679 }
3680
3681 let cur_offset: usize = (2 - 1) * envelope_size;
3684
3685 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3687
3688 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_ieee80211_common::StatusCode, D>(
3693 self.status_code.as_ref().map(<fidl_fuchsia_wlan_ieee80211_common::StatusCode as fidl::encoding::ValueTypeMarker>::borrow),
3694 encoder, offset + cur_offset, depth
3695 )?;
3696
3697 _prev_end_offset = cur_offset + envelope_size;
3698 if 3 > max_ordinal {
3699 return Ok(());
3700 }
3701
3702 let cur_offset: usize = (3 - 1) * envelope_size;
3705
3706 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3708
3709 fidl::encoding::encode_in_envelope_optional::<u16, D>(
3714 self.seq_num.as_ref().map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
3715 encoder,
3716 offset + cur_offset,
3717 depth,
3718 )?;
3719
3720 _prev_end_offset = cur_offset + envelope_size;
3721 if 4 > max_ordinal {
3722 return Ok(());
3723 }
3724
3725 let cur_offset: usize = (4 - 1) * envelope_size;
3728
3729 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3731
3732 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<u8>, D>(
3737 self.sae_fields.as_ref().map(<fidl::encoding::UnboundedVector<u8> as fidl::encoding::ValueTypeMarker>::borrow),
3738 encoder, offset + cur_offset, depth
3739 )?;
3740
3741 _prev_end_offset = cur_offset + envelope_size;
3742
3743 Ok(())
3744 }
3745 }
3746
3747 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for SaeFrame {
3748 #[inline(always)]
3749 fn new_empty() -> Self {
3750 Self::default()
3751 }
3752
3753 unsafe fn decode(
3754 &mut self,
3755 decoder: &mut fidl::encoding::Decoder<'_, D>,
3756 offset: usize,
3757 mut depth: fidl::encoding::Depth,
3758 ) -> fidl::Result<()> {
3759 decoder.debug_check_bounds::<Self>(offset);
3760 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
3761 None => return Err(fidl::Error::NotNullable),
3762 Some(len) => len,
3763 };
3764 if len == 0 {
3766 return Ok(());
3767 };
3768 depth.increment()?;
3769 let envelope_size = 8;
3770 let bytes_len = len * envelope_size;
3771 let offset = decoder.out_of_line_offset(bytes_len)?;
3772 let mut _next_ordinal_to_read = 0;
3774 let mut next_offset = offset;
3775 let end_offset = offset + bytes_len;
3776 _next_ordinal_to_read += 1;
3777 if next_offset >= end_offset {
3778 return Ok(());
3779 }
3780
3781 while _next_ordinal_to_read < 1 {
3783 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3784 _next_ordinal_to_read += 1;
3785 next_offset += envelope_size;
3786 }
3787
3788 let next_out_of_line = decoder.next_out_of_line();
3789 let handles_before = decoder.remaining_handles();
3790 if let Some((inlined, num_bytes, num_handles)) =
3791 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3792 {
3793 let member_inline_size =
3794 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
3795 decoder.context,
3796 );
3797 if inlined != (member_inline_size <= 4) {
3798 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3799 }
3800 let inner_offset;
3801 let mut inner_depth = depth.clone();
3802 if inlined {
3803 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3804 inner_offset = next_offset;
3805 } else {
3806 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3807 inner_depth.increment()?;
3808 }
3809 let val_ref = self
3810 .peer_sta_address
3811 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
3812 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
3813 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3814 {
3815 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3816 }
3817 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3818 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3819 }
3820 }
3821
3822 next_offset += envelope_size;
3823 _next_ordinal_to_read += 1;
3824 if next_offset >= end_offset {
3825 return Ok(());
3826 }
3827
3828 while _next_ordinal_to_read < 2 {
3830 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3831 _next_ordinal_to_read += 1;
3832 next_offset += envelope_size;
3833 }
3834
3835 let next_out_of_line = decoder.next_out_of_line();
3836 let handles_before = decoder.remaining_handles();
3837 if let Some((inlined, num_bytes, num_handles)) =
3838 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3839 {
3840 let member_inline_size = <fidl_fuchsia_wlan_ieee80211_common::StatusCode as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3841 if inlined != (member_inline_size <= 4) {
3842 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3843 }
3844 let inner_offset;
3845 let mut inner_depth = depth.clone();
3846 if inlined {
3847 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3848 inner_offset = next_offset;
3849 } else {
3850 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3851 inner_depth.increment()?;
3852 }
3853 let val_ref = self.status_code.get_or_insert_with(|| {
3854 fidl::new_empty!(fidl_fuchsia_wlan_ieee80211_common::StatusCode, D)
3855 });
3856 fidl::decode!(
3857 fidl_fuchsia_wlan_ieee80211_common::StatusCode,
3858 D,
3859 val_ref,
3860 decoder,
3861 inner_offset,
3862 inner_depth
3863 )?;
3864 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3865 {
3866 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3867 }
3868 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3869 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3870 }
3871 }
3872
3873 next_offset += envelope_size;
3874 _next_ordinal_to_read += 1;
3875 if next_offset >= end_offset {
3876 return Ok(());
3877 }
3878
3879 while _next_ordinal_to_read < 3 {
3881 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3882 _next_ordinal_to_read += 1;
3883 next_offset += envelope_size;
3884 }
3885
3886 let next_out_of_line = decoder.next_out_of_line();
3887 let handles_before = decoder.remaining_handles();
3888 if let Some((inlined, num_bytes, num_handles)) =
3889 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3890 {
3891 let member_inline_size =
3892 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3893 if inlined != (member_inline_size <= 4) {
3894 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3895 }
3896 let inner_offset;
3897 let mut inner_depth = depth.clone();
3898 if inlined {
3899 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3900 inner_offset = next_offset;
3901 } else {
3902 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3903 inner_depth.increment()?;
3904 }
3905 let val_ref = self.seq_num.get_or_insert_with(|| fidl::new_empty!(u16, D));
3906 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
3907 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3908 {
3909 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3910 }
3911 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3912 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3913 }
3914 }
3915
3916 next_offset += envelope_size;
3917 _next_ordinal_to_read += 1;
3918 if next_offset >= end_offset {
3919 return Ok(());
3920 }
3921
3922 while _next_ordinal_to_read < 4 {
3924 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3925 _next_ordinal_to_read += 1;
3926 next_offset += envelope_size;
3927 }
3928
3929 let next_out_of_line = decoder.next_out_of_line();
3930 let handles_before = decoder.remaining_handles();
3931 if let Some((inlined, num_bytes, num_handles)) =
3932 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3933 {
3934 let member_inline_size = <fidl::encoding::UnboundedVector<u8> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3935 if inlined != (member_inline_size <= 4) {
3936 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3937 }
3938 let inner_offset;
3939 let mut inner_depth = depth.clone();
3940 if inlined {
3941 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3942 inner_offset = next_offset;
3943 } else {
3944 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3945 inner_depth.increment()?;
3946 }
3947 let val_ref = self.sae_fields.get_or_insert_with(|| {
3948 fidl::new_empty!(fidl::encoding::UnboundedVector<u8>, D)
3949 });
3950 fidl::decode!(
3951 fidl::encoding::UnboundedVector<u8>,
3952 D,
3953 val_ref,
3954 decoder,
3955 inner_offset,
3956 inner_depth
3957 )?;
3958 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3959 {
3960 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3961 }
3962 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3963 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3964 }
3965 }
3966
3967 next_offset += envelope_size;
3968
3969 while next_offset < end_offset {
3971 _next_ordinal_to_read += 1;
3972 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3973 next_offset += envelope_size;
3974 }
3975
3976 Ok(())
3977 }
3978 }
3979
3980 impl WlanFullmacImplAssocRespRequest {
3981 #[inline(always)]
3982 fn max_ordinal_present(&self) -> u64 {
3983 if let Some(_) = self.association_id {
3984 return 3;
3985 }
3986 if let Some(_) = self.result_code {
3987 return 2;
3988 }
3989 if let Some(_) = self.peer_sta_address {
3990 return 1;
3991 }
3992 0
3993 }
3994 }
3995
3996 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplAssocRespRequest {
3997 type Borrowed<'a> = &'a Self;
3998 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3999 value
4000 }
4001 }
4002
4003 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplAssocRespRequest {
4004 type Owned = Self;
4005
4006 #[inline(always)]
4007 fn inline_align(_context: fidl::encoding::Context) -> usize {
4008 8
4009 }
4010
4011 #[inline(always)]
4012 fn inline_size(_context: fidl::encoding::Context) -> usize {
4013 16
4014 }
4015 }
4016
4017 unsafe impl<D: fidl::encoding::ResourceDialect>
4018 fidl::encoding::Encode<WlanFullmacImplAssocRespRequest, D>
4019 for &WlanFullmacImplAssocRespRequest
4020 {
4021 unsafe fn encode(
4022 self,
4023 encoder: &mut fidl::encoding::Encoder<'_, D>,
4024 offset: usize,
4025 mut depth: fidl::encoding::Depth,
4026 ) -> fidl::Result<()> {
4027 encoder.debug_check_bounds::<WlanFullmacImplAssocRespRequest>(offset);
4028 let max_ordinal: u64 = self.max_ordinal_present();
4030 encoder.write_num(max_ordinal, offset);
4031 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
4032 if max_ordinal == 0 {
4034 return Ok(());
4035 }
4036 depth.increment()?;
4037 let envelope_size = 8;
4038 let bytes_len = max_ordinal as usize * envelope_size;
4039 #[allow(unused_variables)]
4040 let offset = encoder.out_of_line_offset(bytes_len);
4041 let mut _prev_end_offset: usize = 0;
4042 if 1 > max_ordinal {
4043 return Ok(());
4044 }
4045
4046 let cur_offset: usize = (1 - 1) * envelope_size;
4049
4050 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4052
4053 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
4058 self.peer_sta_address
4059 .as_ref()
4060 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
4061 encoder,
4062 offset + cur_offset,
4063 depth,
4064 )?;
4065
4066 _prev_end_offset = cur_offset + envelope_size;
4067 if 2 > max_ordinal {
4068 return Ok(());
4069 }
4070
4071 let cur_offset: usize = (2 - 1) * envelope_size;
4074
4075 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4077
4078 fidl::encoding::encode_in_envelope_optional::<WlanAssocResult, D>(
4083 self.result_code
4084 .as_ref()
4085 .map(<WlanAssocResult as fidl::encoding::ValueTypeMarker>::borrow),
4086 encoder,
4087 offset + cur_offset,
4088 depth,
4089 )?;
4090
4091 _prev_end_offset = cur_offset + envelope_size;
4092 if 3 > max_ordinal {
4093 return Ok(());
4094 }
4095
4096 let cur_offset: usize = (3 - 1) * envelope_size;
4099
4100 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4102
4103 fidl::encoding::encode_in_envelope_optional::<u16, D>(
4108 self.association_id.as_ref().map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
4109 encoder,
4110 offset + cur_offset,
4111 depth,
4112 )?;
4113
4114 _prev_end_offset = cur_offset + envelope_size;
4115
4116 Ok(())
4117 }
4118 }
4119
4120 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
4121 for WlanFullmacImplAssocRespRequest
4122 {
4123 #[inline(always)]
4124 fn new_empty() -> Self {
4125 Self::default()
4126 }
4127
4128 unsafe fn decode(
4129 &mut self,
4130 decoder: &mut fidl::encoding::Decoder<'_, D>,
4131 offset: usize,
4132 mut depth: fidl::encoding::Depth,
4133 ) -> fidl::Result<()> {
4134 decoder.debug_check_bounds::<Self>(offset);
4135 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
4136 None => return Err(fidl::Error::NotNullable),
4137 Some(len) => len,
4138 };
4139 if len == 0 {
4141 return Ok(());
4142 };
4143 depth.increment()?;
4144 let envelope_size = 8;
4145 let bytes_len = len * envelope_size;
4146 let offset = decoder.out_of_line_offset(bytes_len)?;
4147 let mut _next_ordinal_to_read = 0;
4149 let mut next_offset = offset;
4150 let end_offset = offset + bytes_len;
4151 _next_ordinal_to_read += 1;
4152 if next_offset >= end_offset {
4153 return Ok(());
4154 }
4155
4156 while _next_ordinal_to_read < 1 {
4158 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4159 _next_ordinal_to_read += 1;
4160 next_offset += envelope_size;
4161 }
4162
4163 let next_out_of_line = decoder.next_out_of_line();
4164 let handles_before = decoder.remaining_handles();
4165 if let Some((inlined, num_bytes, num_handles)) =
4166 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4167 {
4168 let member_inline_size =
4169 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
4170 decoder.context,
4171 );
4172 if inlined != (member_inline_size <= 4) {
4173 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4174 }
4175 let inner_offset;
4176 let mut inner_depth = depth.clone();
4177 if inlined {
4178 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4179 inner_offset = next_offset;
4180 } else {
4181 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4182 inner_depth.increment()?;
4183 }
4184 let val_ref = self
4185 .peer_sta_address
4186 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
4187 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
4188 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4189 {
4190 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4191 }
4192 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4193 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4194 }
4195 }
4196
4197 next_offset += envelope_size;
4198 _next_ordinal_to_read += 1;
4199 if next_offset >= end_offset {
4200 return Ok(());
4201 }
4202
4203 while _next_ordinal_to_read < 2 {
4205 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4206 _next_ordinal_to_read += 1;
4207 next_offset += envelope_size;
4208 }
4209
4210 let next_out_of_line = decoder.next_out_of_line();
4211 let handles_before = decoder.remaining_handles();
4212 if let Some((inlined, num_bytes, num_handles)) =
4213 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4214 {
4215 let member_inline_size =
4216 <WlanAssocResult as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4217 if inlined != (member_inline_size <= 4) {
4218 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4219 }
4220 let inner_offset;
4221 let mut inner_depth = depth.clone();
4222 if inlined {
4223 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4224 inner_offset = next_offset;
4225 } else {
4226 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4227 inner_depth.increment()?;
4228 }
4229 let val_ref =
4230 self.result_code.get_or_insert_with(|| fidl::new_empty!(WlanAssocResult, D));
4231 fidl::decode!(WlanAssocResult, D, val_ref, decoder, inner_offset, inner_depth)?;
4232 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4233 {
4234 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4235 }
4236 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4237 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4238 }
4239 }
4240
4241 next_offset += envelope_size;
4242 _next_ordinal_to_read += 1;
4243 if next_offset >= end_offset {
4244 return Ok(());
4245 }
4246
4247 while _next_ordinal_to_read < 3 {
4249 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4250 _next_ordinal_to_read += 1;
4251 next_offset += envelope_size;
4252 }
4253
4254 let next_out_of_line = decoder.next_out_of_line();
4255 let handles_before = decoder.remaining_handles();
4256 if let Some((inlined, num_bytes, num_handles)) =
4257 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4258 {
4259 let member_inline_size =
4260 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4261 if inlined != (member_inline_size <= 4) {
4262 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4263 }
4264 let inner_offset;
4265 let mut inner_depth = depth.clone();
4266 if inlined {
4267 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4268 inner_offset = next_offset;
4269 } else {
4270 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4271 inner_depth.increment()?;
4272 }
4273 let val_ref = self.association_id.get_or_insert_with(|| fidl::new_empty!(u16, D));
4274 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
4275 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4276 {
4277 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4278 }
4279 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4280 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4281 }
4282 }
4283
4284 next_offset += envelope_size;
4285
4286 while next_offset < end_offset {
4288 _next_ordinal_to_read += 1;
4289 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4290 next_offset += envelope_size;
4291 }
4292
4293 Ok(())
4294 }
4295 }
4296
4297 impl WlanFullmacImplAuthRespRequest {
4298 #[inline(always)]
4299 fn max_ordinal_present(&self) -> u64 {
4300 if let Some(_) = self.result_code {
4301 return 2;
4302 }
4303 if let Some(_) = self.peer_sta_address {
4304 return 1;
4305 }
4306 0
4307 }
4308 }
4309
4310 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplAuthRespRequest {
4311 type Borrowed<'a> = &'a Self;
4312 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4313 value
4314 }
4315 }
4316
4317 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplAuthRespRequest {
4318 type Owned = Self;
4319
4320 #[inline(always)]
4321 fn inline_align(_context: fidl::encoding::Context) -> usize {
4322 8
4323 }
4324
4325 #[inline(always)]
4326 fn inline_size(_context: fidl::encoding::Context) -> usize {
4327 16
4328 }
4329 }
4330
4331 unsafe impl<D: fidl::encoding::ResourceDialect>
4332 fidl::encoding::Encode<WlanFullmacImplAuthRespRequest, D>
4333 for &WlanFullmacImplAuthRespRequest
4334 {
4335 unsafe fn encode(
4336 self,
4337 encoder: &mut fidl::encoding::Encoder<'_, D>,
4338 offset: usize,
4339 mut depth: fidl::encoding::Depth,
4340 ) -> fidl::Result<()> {
4341 encoder.debug_check_bounds::<WlanFullmacImplAuthRespRequest>(offset);
4342 let max_ordinal: u64 = self.max_ordinal_present();
4344 encoder.write_num(max_ordinal, offset);
4345 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
4346 if max_ordinal == 0 {
4348 return Ok(());
4349 }
4350 depth.increment()?;
4351 let envelope_size = 8;
4352 let bytes_len = max_ordinal as usize * envelope_size;
4353 #[allow(unused_variables)]
4354 let offset = encoder.out_of_line_offset(bytes_len);
4355 let mut _prev_end_offset: usize = 0;
4356 if 1 > max_ordinal {
4357 return Ok(());
4358 }
4359
4360 let cur_offset: usize = (1 - 1) * envelope_size;
4363
4364 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4366
4367 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
4372 self.peer_sta_address
4373 .as_ref()
4374 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
4375 encoder,
4376 offset + cur_offset,
4377 depth,
4378 )?;
4379
4380 _prev_end_offset = cur_offset + envelope_size;
4381 if 2 > max_ordinal {
4382 return Ok(());
4383 }
4384
4385 let cur_offset: usize = (2 - 1) * envelope_size;
4388
4389 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4391
4392 fidl::encoding::encode_in_envelope_optional::<WlanAuthResult, D>(
4397 self.result_code
4398 .as_ref()
4399 .map(<WlanAuthResult as fidl::encoding::ValueTypeMarker>::borrow),
4400 encoder,
4401 offset + cur_offset,
4402 depth,
4403 )?;
4404
4405 _prev_end_offset = cur_offset + envelope_size;
4406
4407 Ok(())
4408 }
4409 }
4410
4411 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
4412 for WlanFullmacImplAuthRespRequest
4413 {
4414 #[inline(always)]
4415 fn new_empty() -> Self {
4416 Self::default()
4417 }
4418
4419 unsafe fn decode(
4420 &mut self,
4421 decoder: &mut fidl::encoding::Decoder<'_, D>,
4422 offset: usize,
4423 mut depth: fidl::encoding::Depth,
4424 ) -> fidl::Result<()> {
4425 decoder.debug_check_bounds::<Self>(offset);
4426 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
4427 None => return Err(fidl::Error::NotNullable),
4428 Some(len) => len,
4429 };
4430 if len == 0 {
4432 return Ok(());
4433 };
4434 depth.increment()?;
4435 let envelope_size = 8;
4436 let bytes_len = len * envelope_size;
4437 let offset = decoder.out_of_line_offset(bytes_len)?;
4438 let mut _next_ordinal_to_read = 0;
4440 let mut next_offset = offset;
4441 let end_offset = offset + bytes_len;
4442 _next_ordinal_to_read += 1;
4443 if next_offset >= end_offset {
4444 return Ok(());
4445 }
4446
4447 while _next_ordinal_to_read < 1 {
4449 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4450 _next_ordinal_to_read += 1;
4451 next_offset += envelope_size;
4452 }
4453
4454 let next_out_of_line = decoder.next_out_of_line();
4455 let handles_before = decoder.remaining_handles();
4456 if let Some((inlined, num_bytes, num_handles)) =
4457 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4458 {
4459 let member_inline_size =
4460 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
4461 decoder.context,
4462 );
4463 if inlined != (member_inline_size <= 4) {
4464 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4465 }
4466 let inner_offset;
4467 let mut inner_depth = depth.clone();
4468 if inlined {
4469 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4470 inner_offset = next_offset;
4471 } else {
4472 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4473 inner_depth.increment()?;
4474 }
4475 let val_ref = self
4476 .peer_sta_address
4477 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
4478 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
4479 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4480 {
4481 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4482 }
4483 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4484 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4485 }
4486 }
4487
4488 next_offset += envelope_size;
4489 _next_ordinal_to_read += 1;
4490 if next_offset >= end_offset {
4491 return Ok(());
4492 }
4493
4494 while _next_ordinal_to_read < 2 {
4496 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4497 _next_ordinal_to_read += 1;
4498 next_offset += envelope_size;
4499 }
4500
4501 let next_out_of_line = decoder.next_out_of_line();
4502 let handles_before = decoder.remaining_handles();
4503 if let Some((inlined, num_bytes, num_handles)) =
4504 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4505 {
4506 let member_inline_size =
4507 <WlanAuthResult as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4508 if inlined != (member_inline_size <= 4) {
4509 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4510 }
4511 let inner_offset;
4512 let mut inner_depth = depth.clone();
4513 if inlined {
4514 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4515 inner_offset = next_offset;
4516 } else {
4517 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4518 inner_depth.increment()?;
4519 }
4520 let val_ref =
4521 self.result_code.get_or_insert_with(|| fidl::new_empty!(WlanAuthResult, D));
4522 fidl::decode!(WlanAuthResult, D, val_ref, decoder, inner_offset, inner_depth)?;
4523 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4524 {
4525 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4526 }
4527 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4528 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4529 }
4530 }
4531
4532 next_offset += envelope_size;
4533
4534 while next_offset < end_offset {
4536 _next_ordinal_to_read += 1;
4537 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4538 next_offset += envelope_size;
4539 }
4540
4541 Ok(())
4542 }
4543 }
4544
4545 impl WlanFullmacImplConnectRequest {
4546 #[inline(always)]
4547 fn max_ordinal_present(&self) -> u64 {
4548 if let Some(_) = self.owe_public_key {
4549 return 8;
4550 }
4551 if let Some(_) = self.wep_key_desc {
4552 return 7;
4553 }
4554 if let Some(_) = self.security_ie {
4555 return 6;
4556 }
4557 if let Some(_) = self.wep_key {
4558 return 5;
4559 }
4560 if let Some(_) = self.sae_password {
4561 return 4;
4562 }
4563 if let Some(_) = self.auth_type {
4564 return 3;
4565 }
4566 if let Some(_) = self.connect_failure_timeout {
4567 return 2;
4568 }
4569 if let Some(_) = self.selected_bss {
4570 return 1;
4571 }
4572 0
4573 }
4574 }
4575
4576 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplConnectRequest {
4577 type Borrowed<'a> = &'a Self;
4578 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4579 value
4580 }
4581 }
4582
4583 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplConnectRequest {
4584 type Owned = Self;
4585
4586 #[inline(always)]
4587 fn inline_align(_context: fidl::encoding::Context) -> usize {
4588 8
4589 }
4590
4591 #[inline(always)]
4592 fn inline_size(_context: fidl::encoding::Context) -> usize {
4593 16
4594 }
4595 }
4596
4597 unsafe impl<D: fidl::encoding::ResourceDialect>
4598 fidl::encoding::Encode<WlanFullmacImplConnectRequest, D>
4599 for &WlanFullmacImplConnectRequest
4600 {
4601 unsafe fn encode(
4602 self,
4603 encoder: &mut fidl::encoding::Encoder<'_, D>,
4604 offset: usize,
4605 mut depth: fidl::encoding::Depth,
4606 ) -> fidl::Result<()> {
4607 encoder.debug_check_bounds::<WlanFullmacImplConnectRequest>(offset);
4608 let max_ordinal: u64 = self.max_ordinal_present();
4610 encoder.write_num(max_ordinal, offset);
4611 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
4612 if max_ordinal == 0 {
4614 return Ok(());
4615 }
4616 depth.increment()?;
4617 let envelope_size = 8;
4618 let bytes_len = max_ordinal as usize * envelope_size;
4619 #[allow(unused_variables)]
4620 let offset = encoder.out_of_line_offset(bytes_len);
4621 let mut _prev_end_offset: usize = 0;
4622 if 1 > max_ordinal {
4623 return Ok(());
4624 }
4625
4626 let cur_offset: usize = (1 - 1) * envelope_size;
4629
4630 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4632
4633 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_ieee80211_common::BssDescription, D>(
4638 self.selected_bss.as_ref().map(<fidl_fuchsia_wlan_ieee80211_common::BssDescription as fidl::encoding::ValueTypeMarker>::borrow),
4639 encoder, offset + cur_offset, depth
4640 )?;
4641
4642 _prev_end_offset = cur_offset + envelope_size;
4643 if 2 > max_ordinal {
4644 return Ok(());
4645 }
4646
4647 let cur_offset: usize = (2 - 1) * envelope_size;
4650
4651 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4653
4654 fidl::encoding::encode_in_envelope_optional::<u32, D>(
4659 self.connect_failure_timeout
4660 .as_ref()
4661 .map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
4662 encoder,
4663 offset + cur_offset,
4664 depth,
4665 )?;
4666
4667 _prev_end_offset = cur_offset + envelope_size;
4668 if 3 > max_ordinal {
4669 return Ok(());
4670 }
4671
4672 let cur_offset: usize = (3 - 1) * envelope_size;
4675
4676 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4678
4679 fidl::encoding::encode_in_envelope_optional::<WlanAuthType, D>(
4684 self.auth_type
4685 .as_ref()
4686 .map(<WlanAuthType as fidl::encoding::ValueTypeMarker>::borrow),
4687 encoder,
4688 offset + cur_offset,
4689 depth,
4690 )?;
4691
4692 _prev_end_offset = cur_offset + envelope_size;
4693 if 4 > max_ordinal {
4694 return Ok(());
4695 }
4696
4697 let cur_offset: usize = (4 - 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::encoding::UnboundedVector<u8>, D>(
4709 self.sae_password.as_ref().map(<fidl::encoding::UnboundedVector<u8> as fidl::encoding::ValueTypeMarker>::borrow),
4710 encoder, offset + cur_offset, depth
4711 )?;
4712
4713 _prev_end_offset = cur_offset + envelope_size;
4714 if 5 > max_ordinal {
4715 return Ok(());
4716 }
4717
4718 let cur_offset: usize = (5 - 1) * envelope_size;
4721
4722 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4724
4725 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_driver_common::WlanKeyConfig, D>(
4730 self.wep_key.as_ref().map(<fidl_fuchsia_wlan_driver_common::WlanKeyConfig as fidl::encoding::ValueTypeMarker>::borrow),
4731 encoder, offset + cur_offset, depth
4732 )?;
4733
4734 _prev_end_offset = cur_offset + envelope_size;
4735 if 6 > max_ordinal {
4736 return Ok(());
4737 }
4738
4739 let cur_offset: usize = (6 - 1) * envelope_size;
4742
4743 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4745
4746 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<u8, 257>, D>(
4751 self.security_ie.as_ref().map(
4752 <fidl::encoding::Vector<u8, 257> as fidl::encoding::ValueTypeMarker>::borrow,
4753 ),
4754 encoder,
4755 offset + cur_offset,
4756 depth,
4757 )?;
4758
4759 _prev_end_offset = cur_offset + envelope_size;
4760 if 7 > max_ordinal {
4761 return Ok(());
4762 }
4763
4764 let cur_offset: usize = (7 - 1) * envelope_size;
4767
4768 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4770
4771 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_ieee80211_common::SetKeyDescriptor, D>(
4776 self.wep_key_desc.as_ref().map(<fidl_fuchsia_wlan_ieee80211_common::SetKeyDescriptor as fidl::encoding::ValueTypeMarker>::borrow),
4777 encoder, offset + cur_offset, depth
4778 )?;
4779
4780 _prev_end_offset = cur_offset + envelope_size;
4781 if 8 > max_ordinal {
4782 return Ok(());
4783 }
4784
4785 let cur_offset: usize = (8 - 1) * envelope_size;
4788
4789 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4791
4792 fidl::encoding::encode_in_envelope_optional::<WlanFullmacOwePublicKey, D>(
4797 self.owe_public_key
4798 .as_ref()
4799 .map(<WlanFullmacOwePublicKey as fidl::encoding::ValueTypeMarker>::borrow),
4800 encoder,
4801 offset + cur_offset,
4802 depth,
4803 )?;
4804
4805 _prev_end_offset = cur_offset + envelope_size;
4806
4807 Ok(())
4808 }
4809 }
4810
4811 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
4812 for WlanFullmacImplConnectRequest
4813 {
4814 #[inline(always)]
4815 fn new_empty() -> Self {
4816 Self::default()
4817 }
4818
4819 unsafe fn decode(
4820 &mut self,
4821 decoder: &mut fidl::encoding::Decoder<'_, D>,
4822 offset: usize,
4823 mut depth: fidl::encoding::Depth,
4824 ) -> fidl::Result<()> {
4825 decoder.debug_check_bounds::<Self>(offset);
4826 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
4827 None => return Err(fidl::Error::NotNullable),
4828 Some(len) => len,
4829 };
4830 if len == 0 {
4832 return Ok(());
4833 };
4834 depth.increment()?;
4835 let envelope_size = 8;
4836 let bytes_len = len * envelope_size;
4837 let offset = decoder.out_of_line_offset(bytes_len)?;
4838 let mut _next_ordinal_to_read = 0;
4840 let mut next_offset = offset;
4841 let end_offset = offset + bytes_len;
4842 _next_ordinal_to_read += 1;
4843 if next_offset >= end_offset {
4844 return Ok(());
4845 }
4846
4847 while _next_ordinal_to_read < 1 {
4849 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4850 _next_ordinal_to_read += 1;
4851 next_offset += envelope_size;
4852 }
4853
4854 let next_out_of_line = decoder.next_out_of_line();
4855 let handles_before = decoder.remaining_handles();
4856 if let Some((inlined, num_bytes, num_handles)) =
4857 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4858 {
4859 let member_inline_size = <fidl_fuchsia_wlan_ieee80211_common::BssDescription as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4860 if inlined != (member_inline_size <= 4) {
4861 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4862 }
4863 let inner_offset;
4864 let mut inner_depth = depth.clone();
4865 if inlined {
4866 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4867 inner_offset = next_offset;
4868 } else {
4869 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4870 inner_depth.increment()?;
4871 }
4872 let val_ref = self.selected_bss.get_or_insert_with(|| {
4873 fidl::new_empty!(fidl_fuchsia_wlan_ieee80211_common::BssDescription, D)
4874 });
4875 fidl::decode!(
4876 fidl_fuchsia_wlan_ieee80211_common::BssDescription,
4877 D,
4878 val_ref,
4879 decoder,
4880 inner_offset,
4881 inner_depth
4882 )?;
4883 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4884 {
4885 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4886 }
4887 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4888 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4889 }
4890 }
4891
4892 next_offset += envelope_size;
4893 _next_ordinal_to_read += 1;
4894 if next_offset >= end_offset {
4895 return Ok(());
4896 }
4897
4898 while _next_ordinal_to_read < 2 {
4900 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4901 _next_ordinal_to_read += 1;
4902 next_offset += envelope_size;
4903 }
4904
4905 let next_out_of_line = decoder.next_out_of_line();
4906 let handles_before = decoder.remaining_handles();
4907 if let Some((inlined, num_bytes, num_handles)) =
4908 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4909 {
4910 let member_inline_size =
4911 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4912 if inlined != (member_inline_size <= 4) {
4913 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4914 }
4915 let inner_offset;
4916 let mut inner_depth = depth.clone();
4917 if inlined {
4918 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4919 inner_offset = next_offset;
4920 } else {
4921 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4922 inner_depth.increment()?;
4923 }
4924 let val_ref =
4925 self.connect_failure_timeout.get_or_insert_with(|| fidl::new_empty!(u32, D));
4926 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
4927 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4928 {
4929 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4930 }
4931 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4932 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4933 }
4934 }
4935
4936 next_offset += envelope_size;
4937 _next_ordinal_to_read += 1;
4938 if next_offset >= end_offset {
4939 return Ok(());
4940 }
4941
4942 while _next_ordinal_to_read < 3 {
4944 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4945 _next_ordinal_to_read += 1;
4946 next_offset += envelope_size;
4947 }
4948
4949 let next_out_of_line = decoder.next_out_of_line();
4950 let handles_before = decoder.remaining_handles();
4951 if let Some((inlined, num_bytes, num_handles)) =
4952 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4953 {
4954 let member_inline_size =
4955 <WlanAuthType as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4956 if inlined != (member_inline_size <= 4) {
4957 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4958 }
4959 let inner_offset;
4960 let mut inner_depth = depth.clone();
4961 if inlined {
4962 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4963 inner_offset = next_offset;
4964 } else {
4965 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4966 inner_depth.increment()?;
4967 }
4968 let val_ref =
4969 self.auth_type.get_or_insert_with(|| fidl::new_empty!(WlanAuthType, D));
4970 fidl::decode!(WlanAuthType, D, val_ref, decoder, inner_offset, inner_depth)?;
4971 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4972 {
4973 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4974 }
4975 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4976 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4977 }
4978 }
4979
4980 next_offset += envelope_size;
4981 _next_ordinal_to_read += 1;
4982 if next_offset >= end_offset {
4983 return Ok(());
4984 }
4985
4986 while _next_ordinal_to_read < 4 {
4988 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4989 _next_ordinal_to_read += 1;
4990 next_offset += envelope_size;
4991 }
4992
4993 let next_out_of_line = decoder.next_out_of_line();
4994 let handles_before = decoder.remaining_handles();
4995 if let Some((inlined, num_bytes, num_handles)) =
4996 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4997 {
4998 let member_inline_size = <fidl::encoding::UnboundedVector<u8> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4999 if inlined != (member_inline_size <= 4) {
5000 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5001 }
5002 let inner_offset;
5003 let mut inner_depth = depth.clone();
5004 if inlined {
5005 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5006 inner_offset = next_offset;
5007 } else {
5008 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5009 inner_depth.increment()?;
5010 }
5011 let val_ref = self.sae_password.get_or_insert_with(|| {
5012 fidl::new_empty!(fidl::encoding::UnboundedVector<u8>, D)
5013 });
5014 fidl::decode!(
5015 fidl::encoding::UnboundedVector<u8>,
5016 D,
5017 val_ref,
5018 decoder,
5019 inner_offset,
5020 inner_depth
5021 )?;
5022 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5023 {
5024 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5025 }
5026 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5027 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5028 }
5029 }
5030
5031 next_offset += envelope_size;
5032 _next_ordinal_to_read += 1;
5033 if next_offset >= end_offset {
5034 return Ok(());
5035 }
5036
5037 while _next_ordinal_to_read < 5 {
5039 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5040 _next_ordinal_to_read += 1;
5041 next_offset += envelope_size;
5042 }
5043
5044 let next_out_of_line = decoder.next_out_of_line();
5045 let handles_before = decoder.remaining_handles();
5046 if let Some((inlined, num_bytes, num_handles)) =
5047 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5048 {
5049 let member_inline_size = <fidl_fuchsia_wlan_driver_common::WlanKeyConfig as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5050 if inlined != (member_inline_size <= 4) {
5051 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5052 }
5053 let inner_offset;
5054 let mut inner_depth = depth.clone();
5055 if inlined {
5056 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5057 inner_offset = next_offset;
5058 } else {
5059 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5060 inner_depth.increment()?;
5061 }
5062 let val_ref = self.wep_key.get_or_insert_with(|| {
5063 fidl::new_empty!(fidl_fuchsia_wlan_driver_common::WlanKeyConfig, D)
5064 });
5065 fidl::decode!(
5066 fidl_fuchsia_wlan_driver_common::WlanKeyConfig,
5067 D,
5068 val_ref,
5069 decoder,
5070 inner_offset,
5071 inner_depth
5072 )?;
5073 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5074 {
5075 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5076 }
5077 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5078 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5079 }
5080 }
5081
5082 next_offset += envelope_size;
5083 _next_ordinal_to_read += 1;
5084 if next_offset >= end_offset {
5085 return Ok(());
5086 }
5087
5088 while _next_ordinal_to_read < 6 {
5090 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5091 _next_ordinal_to_read += 1;
5092 next_offset += envelope_size;
5093 }
5094
5095 let next_out_of_line = decoder.next_out_of_line();
5096 let handles_before = decoder.remaining_handles();
5097 if let Some((inlined, num_bytes, num_handles)) =
5098 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5099 {
5100 let member_inline_size =
5101 <fidl::encoding::Vector<u8, 257> as fidl::encoding::TypeMarker>::inline_size(
5102 decoder.context,
5103 );
5104 if inlined != (member_inline_size <= 4) {
5105 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5106 }
5107 let inner_offset;
5108 let mut inner_depth = depth.clone();
5109 if inlined {
5110 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5111 inner_offset = next_offset;
5112 } else {
5113 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5114 inner_depth.increment()?;
5115 }
5116 let val_ref = self
5117 .security_ie
5118 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<u8, 257>, D));
5119 fidl::decode!(fidl::encoding::Vector<u8, 257>, D, val_ref, decoder, inner_offset, inner_depth)?;
5120 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5121 {
5122 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5123 }
5124 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5125 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5126 }
5127 }
5128
5129 next_offset += envelope_size;
5130 _next_ordinal_to_read += 1;
5131 if next_offset >= end_offset {
5132 return Ok(());
5133 }
5134
5135 while _next_ordinal_to_read < 7 {
5137 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5138 _next_ordinal_to_read += 1;
5139 next_offset += envelope_size;
5140 }
5141
5142 let next_out_of_line = decoder.next_out_of_line();
5143 let handles_before = decoder.remaining_handles();
5144 if let Some((inlined, num_bytes, num_handles)) =
5145 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5146 {
5147 let member_inline_size = <fidl_fuchsia_wlan_ieee80211_common::SetKeyDescriptor as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5148 if inlined != (member_inline_size <= 4) {
5149 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5150 }
5151 let inner_offset;
5152 let mut inner_depth = depth.clone();
5153 if inlined {
5154 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5155 inner_offset = next_offset;
5156 } else {
5157 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5158 inner_depth.increment()?;
5159 }
5160 let val_ref = self.wep_key_desc.get_or_insert_with(|| {
5161 fidl::new_empty!(fidl_fuchsia_wlan_ieee80211_common::SetKeyDescriptor, D)
5162 });
5163 fidl::decode!(
5164 fidl_fuchsia_wlan_ieee80211_common::SetKeyDescriptor,
5165 D,
5166 val_ref,
5167 decoder,
5168 inner_offset,
5169 inner_depth
5170 )?;
5171 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5172 {
5173 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5174 }
5175 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5176 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5177 }
5178 }
5179
5180 next_offset += envelope_size;
5181 _next_ordinal_to_read += 1;
5182 if next_offset >= end_offset {
5183 return Ok(());
5184 }
5185
5186 while _next_ordinal_to_read < 8 {
5188 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5189 _next_ordinal_to_read += 1;
5190 next_offset += envelope_size;
5191 }
5192
5193 let next_out_of_line = decoder.next_out_of_line();
5194 let handles_before = decoder.remaining_handles();
5195 if let Some((inlined, num_bytes, num_handles)) =
5196 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5197 {
5198 let member_inline_size =
5199 <WlanFullmacOwePublicKey as fidl::encoding::TypeMarker>::inline_size(
5200 decoder.context,
5201 );
5202 if inlined != (member_inline_size <= 4) {
5203 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5204 }
5205 let inner_offset;
5206 let mut inner_depth = depth.clone();
5207 if inlined {
5208 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5209 inner_offset = next_offset;
5210 } else {
5211 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5212 inner_depth.increment()?;
5213 }
5214 let val_ref = self
5215 .owe_public_key
5216 .get_or_insert_with(|| fidl::new_empty!(WlanFullmacOwePublicKey, D));
5217 fidl::decode!(
5218 WlanFullmacOwePublicKey,
5219 D,
5220 val_ref,
5221 decoder,
5222 inner_offset,
5223 inner_depth
5224 )?;
5225 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5226 {
5227 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5228 }
5229 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5230 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5231 }
5232 }
5233
5234 next_offset += envelope_size;
5235
5236 while next_offset < end_offset {
5238 _next_ordinal_to_read += 1;
5239 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5240 next_offset += envelope_size;
5241 }
5242
5243 Ok(())
5244 }
5245 }
5246
5247 impl WlanFullmacImplDeauthRequest {
5248 #[inline(always)]
5249 fn max_ordinal_present(&self) -> u64 {
5250 if let Some(_) = self.reason_code {
5251 return 2;
5252 }
5253 if let Some(_) = self.peer_sta_address {
5254 return 1;
5255 }
5256 0
5257 }
5258 }
5259
5260 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplDeauthRequest {
5261 type Borrowed<'a> = &'a Self;
5262 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
5263 value
5264 }
5265 }
5266
5267 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplDeauthRequest {
5268 type Owned = Self;
5269
5270 #[inline(always)]
5271 fn inline_align(_context: fidl::encoding::Context) -> usize {
5272 8
5273 }
5274
5275 #[inline(always)]
5276 fn inline_size(_context: fidl::encoding::Context) -> usize {
5277 16
5278 }
5279 }
5280
5281 unsafe impl<D: fidl::encoding::ResourceDialect>
5282 fidl::encoding::Encode<WlanFullmacImplDeauthRequest, D> for &WlanFullmacImplDeauthRequest
5283 {
5284 unsafe fn encode(
5285 self,
5286 encoder: &mut fidl::encoding::Encoder<'_, D>,
5287 offset: usize,
5288 mut depth: fidl::encoding::Depth,
5289 ) -> fidl::Result<()> {
5290 encoder.debug_check_bounds::<WlanFullmacImplDeauthRequest>(offset);
5291 let max_ordinal: u64 = self.max_ordinal_present();
5293 encoder.write_num(max_ordinal, offset);
5294 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
5295 if max_ordinal == 0 {
5297 return Ok(());
5298 }
5299 depth.increment()?;
5300 let envelope_size = 8;
5301 let bytes_len = max_ordinal as usize * envelope_size;
5302 #[allow(unused_variables)]
5303 let offset = encoder.out_of_line_offset(bytes_len);
5304 let mut _prev_end_offset: usize = 0;
5305 if 1 > max_ordinal {
5306 return Ok(());
5307 }
5308
5309 let cur_offset: usize = (1 - 1) * envelope_size;
5312
5313 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5315
5316 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
5321 self.peer_sta_address
5322 .as_ref()
5323 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
5324 encoder,
5325 offset + cur_offset,
5326 depth,
5327 )?;
5328
5329 _prev_end_offset = cur_offset + envelope_size;
5330 if 2 > max_ordinal {
5331 return Ok(());
5332 }
5333
5334 let cur_offset: usize = (2 - 1) * envelope_size;
5337
5338 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5340
5341 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_ieee80211_common::ReasonCode, D>(
5346 self.reason_code.as_ref().map(<fidl_fuchsia_wlan_ieee80211_common::ReasonCode as fidl::encoding::ValueTypeMarker>::borrow),
5347 encoder, offset + cur_offset, depth
5348 )?;
5349
5350 _prev_end_offset = cur_offset + envelope_size;
5351
5352 Ok(())
5353 }
5354 }
5355
5356 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
5357 for WlanFullmacImplDeauthRequest
5358 {
5359 #[inline(always)]
5360 fn new_empty() -> Self {
5361 Self::default()
5362 }
5363
5364 unsafe fn decode(
5365 &mut self,
5366 decoder: &mut fidl::encoding::Decoder<'_, D>,
5367 offset: usize,
5368 mut depth: fidl::encoding::Depth,
5369 ) -> fidl::Result<()> {
5370 decoder.debug_check_bounds::<Self>(offset);
5371 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
5372 None => return Err(fidl::Error::NotNullable),
5373 Some(len) => len,
5374 };
5375 if len == 0 {
5377 return Ok(());
5378 };
5379 depth.increment()?;
5380 let envelope_size = 8;
5381 let bytes_len = len * envelope_size;
5382 let offset = decoder.out_of_line_offset(bytes_len)?;
5383 let mut _next_ordinal_to_read = 0;
5385 let mut next_offset = offset;
5386 let end_offset = offset + bytes_len;
5387 _next_ordinal_to_read += 1;
5388 if next_offset >= end_offset {
5389 return Ok(());
5390 }
5391
5392 while _next_ordinal_to_read < 1 {
5394 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5395 _next_ordinal_to_read += 1;
5396 next_offset += envelope_size;
5397 }
5398
5399 let next_out_of_line = decoder.next_out_of_line();
5400 let handles_before = decoder.remaining_handles();
5401 if let Some((inlined, num_bytes, num_handles)) =
5402 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5403 {
5404 let member_inline_size =
5405 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
5406 decoder.context,
5407 );
5408 if inlined != (member_inline_size <= 4) {
5409 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5410 }
5411 let inner_offset;
5412 let mut inner_depth = depth.clone();
5413 if inlined {
5414 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5415 inner_offset = next_offset;
5416 } else {
5417 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5418 inner_depth.increment()?;
5419 }
5420 let val_ref = self
5421 .peer_sta_address
5422 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
5423 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
5424 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5425 {
5426 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5427 }
5428 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5429 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5430 }
5431 }
5432
5433 next_offset += envelope_size;
5434 _next_ordinal_to_read += 1;
5435 if next_offset >= end_offset {
5436 return Ok(());
5437 }
5438
5439 while _next_ordinal_to_read < 2 {
5441 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5442 _next_ordinal_to_read += 1;
5443 next_offset += envelope_size;
5444 }
5445
5446 let next_out_of_line = decoder.next_out_of_line();
5447 let handles_before = decoder.remaining_handles();
5448 if let Some((inlined, num_bytes, num_handles)) =
5449 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5450 {
5451 let member_inline_size = <fidl_fuchsia_wlan_ieee80211_common::ReasonCode as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5452 if inlined != (member_inline_size <= 4) {
5453 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5454 }
5455 let inner_offset;
5456 let mut inner_depth = depth.clone();
5457 if inlined {
5458 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5459 inner_offset = next_offset;
5460 } else {
5461 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5462 inner_depth.increment()?;
5463 }
5464 let val_ref = self.reason_code.get_or_insert_with(|| {
5465 fidl::new_empty!(fidl_fuchsia_wlan_ieee80211_common::ReasonCode, D)
5466 });
5467 fidl::decode!(
5468 fidl_fuchsia_wlan_ieee80211_common::ReasonCode,
5469 D,
5470 val_ref,
5471 decoder,
5472 inner_offset,
5473 inner_depth
5474 )?;
5475 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5476 {
5477 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5478 }
5479 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5480 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5481 }
5482 }
5483
5484 next_offset += envelope_size;
5485
5486 while next_offset < end_offset {
5488 _next_ordinal_to_read += 1;
5489 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5490 next_offset += envelope_size;
5491 }
5492
5493 Ok(())
5494 }
5495 }
5496
5497 impl WlanFullmacImplDisassocRequest {
5498 #[inline(always)]
5499 fn max_ordinal_present(&self) -> u64 {
5500 if let Some(_) = self.reason_code {
5501 return 2;
5502 }
5503 if let Some(_) = self.peer_sta_address {
5504 return 1;
5505 }
5506 0
5507 }
5508 }
5509
5510 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplDisassocRequest {
5511 type Borrowed<'a> = &'a Self;
5512 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
5513 value
5514 }
5515 }
5516
5517 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplDisassocRequest {
5518 type Owned = Self;
5519
5520 #[inline(always)]
5521 fn inline_align(_context: fidl::encoding::Context) -> usize {
5522 8
5523 }
5524
5525 #[inline(always)]
5526 fn inline_size(_context: fidl::encoding::Context) -> usize {
5527 16
5528 }
5529 }
5530
5531 unsafe impl<D: fidl::encoding::ResourceDialect>
5532 fidl::encoding::Encode<WlanFullmacImplDisassocRequest, D>
5533 for &WlanFullmacImplDisassocRequest
5534 {
5535 unsafe fn encode(
5536 self,
5537 encoder: &mut fidl::encoding::Encoder<'_, D>,
5538 offset: usize,
5539 mut depth: fidl::encoding::Depth,
5540 ) -> fidl::Result<()> {
5541 encoder.debug_check_bounds::<WlanFullmacImplDisassocRequest>(offset);
5542 let max_ordinal: u64 = self.max_ordinal_present();
5544 encoder.write_num(max_ordinal, offset);
5545 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
5546 if max_ordinal == 0 {
5548 return Ok(());
5549 }
5550 depth.increment()?;
5551 let envelope_size = 8;
5552 let bytes_len = max_ordinal as usize * envelope_size;
5553 #[allow(unused_variables)]
5554 let offset = encoder.out_of_line_offset(bytes_len);
5555 let mut _prev_end_offset: usize = 0;
5556 if 1 > max_ordinal {
5557 return Ok(());
5558 }
5559
5560 let cur_offset: usize = (1 - 1) * envelope_size;
5563
5564 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5566
5567 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
5572 self.peer_sta_address
5573 .as_ref()
5574 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
5575 encoder,
5576 offset + cur_offset,
5577 depth,
5578 )?;
5579
5580 _prev_end_offset = cur_offset + envelope_size;
5581 if 2 > max_ordinal {
5582 return Ok(());
5583 }
5584
5585 let cur_offset: usize = (2 - 1) * envelope_size;
5588
5589 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5591
5592 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_ieee80211_common::ReasonCode, D>(
5597 self.reason_code.as_ref().map(<fidl_fuchsia_wlan_ieee80211_common::ReasonCode as fidl::encoding::ValueTypeMarker>::borrow),
5598 encoder, offset + cur_offset, depth
5599 )?;
5600
5601 _prev_end_offset = cur_offset + envelope_size;
5602
5603 Ok(())
5604 }
5605 }
5606
5607 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
5608 for WlanFullmacImplDisassocRequest
5609 {
5610 #[inline(always)]
5611 fn new_empty() -> Self {
5612 Self::default()
5613 }
5614
5615 unsafe fn decode(
5616 &mut self,
5617 decoder: &mut fidl::encoding::Decoder<'_, D>,
5618 offset: usize,
5619 mut depth: fidl::encoding::Depth,
5620 ) -> fidl::Result<()> {
5621 decoder.debug_check_bounds::<Self>(offset);
5622 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
5623 None => return Err(fidl::Error::NotNullable),
5624 Some(len) => len,
5625 };
5626 if len == 0 {
5628 return Ok(());
5629 };
5630 depth.increment()?;
5631 let envelope_size = 8;
5632 let bytes_len = len * envelope_size;
5633 let offset = decoder.out_of_line_offset(bytes_len)?;
5634 let mut _next_ordinal_to_read = 0;
5636 let mut next_offset = offset;
5637 let end_offset = offset + bytes_len;
5638 _next_ordinal_to_read += 1;
5639 if next_offset >= end_offset {
5640 return Ok(());
5641 }
5642
5643 while _next_ordinal_to_read < 1 {
5645 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5646 _next_ordinal_to_read += 1;
5647 next_offset += envelope_size;
5648 }
5649
5650 let next_out_of_line = decoder.next_out_of_line();
5651 let handles_before = decoder.remaining_handles();
5652 if let Some((inlined, num_bytes, num_handles)) =
5653 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5654 {
5655 let member_inline_size =
5656 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
5657 decoder.context,
5658 );
5659 if inlined != (member_inline_size <= 4) {
5660 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5661 }
5662 let inner_offset;
5663 let mut inner_depth = depth.clone();
5664 if inlined {
5665 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5666 inner_offset = next_offset;
5667 } else {
5668 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5669 inner_depth.increment()?;
5670 }
5671 let val_ref = self
5672 .peer_sta_address
5673 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
5674 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
5675 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5676 {
5677 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5678 }
5679 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5680 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5681 }
5682 }
5683
5684 next_offset += envelope_size;
5685 _next_ordinal_to_read += 1;
5686 if next_offset >= end_offset {
5687 return Ok(());
5688 }
5689
5690 while _next_ordinal_to_read < 2 {
5692 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5693 _next_ordinal_to_read += 1;
5694 next_offset += envelope_size;
5695 }
5696
5697 let next_out_of_line = decoder.next_out_of_line();
5698 let handles_before = decoder.remaining_handles();
5699 if let Some((inlined, num_bytes, num_handles)) =
5700 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5701 {
5702 let member_inline_size = <fidl_fuchsia_wlan_ieee80211_common::ReasonCode as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5703 if inlined != (member_inline_size <= 4) {
5704 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5705 }
5706 let inner_offset;
5707 let mut inner_depth = depth.clone();
5708 if inlined {
5709 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5710 inner_offset = next_offset;
5711 } else {
5712 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5713 inner_depth.increment()?;
5714 }
5715 let val_ref = self.reason_code.get_or_insert_with(|| {
5716 fidl::new_empty!(fidl_fuchsia_wlan_ieee80211_common::ReasonCode, D)
5717 });
5718 fidl::decode!(
5719 fidl_fuchsia_wlan_ieee80211_common::ReasonCode,
5720 D,
5721 val_ref,
5722 decoder,
5723 inner_offset,
5724 inner_depth
5725 )?;
5726 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5727 {
5728 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5729 }
5730 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5731 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5732 }
5733 }
5734
5735 next_offset += envelope_size;
5736
5737 while next_offset < end_offset {
5739 _next_ordinal_to_read += 1;
5740 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5741 next_offset += envelope_size;
5742 }
5743
5744 Ok(())
5745 }
5746 }
5747
5748 impl WlanFullmacImplEapolTxRequest {
5749 #[inline(always)]
5750 fn max_ordinal_present(&self) -> u64 {
5751 if let Some(_) = self.data {
5752 return 3;
5753 }
5754 if let Some(_) = self.dst_addr {
5755 return 2;
5756 }
5757 if let Some(_) = self.src_addr {
5758 return 1;
5759 }
5760 0
5761 }
5762 }
5763
5764 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplEapolTxRequest {
5765 type Borrowed<'a> = &'a Self;
5766 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
5767 value
5768 }
5769 }
5770
5771 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplEapolTxRequest {
5772 type Owned = Self;
5773
5774 #[inline(always)]
5775 fn inline_align(_context: fidl::encoding::Context) -> usize {
5776 8
5777 }
5778
5779 #[inline(always)]
5780 fn inline_size(_context: fidl::encoding::Context) -> usize {
5781 16
5782 }
5783 }
5784
5785 unsafe impl<D: fidl::encoding::ResourceDialect>
5786 fidl::encoding::Encode<WlanFullmacImplEapolTxRequest, D>
5787 for &WlanFullmacImplEapolTxRequest
5788 {
5789 unsafe fn encode(
5790 self,
5791 encoder: &mut fidl::encoding::Encoder<'_, D>,
5792 offset: usize,
5793 mut depth: fidl::encoding::Depth,
5794 ) -> fidl::Result<()> {
5795 encoder.debug_check_bounds::<WlanFullmacImplEapolTxRequest>(offset);
5796 let max_ordinal: u64 = self.max_ordinal_present();
5798 encoder.write_num(max_ordinal, offset);
5799 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
5800 if max_ordinal == 0 {
5802 return Ok(());
5803 }
5804 depth.increment()?;
5805 let envelope_size = 8;
5806 let bytes_len = max_ordinal as usize * envelope_size;
5807 #[allow(unused_variables)]
5808 let offset = encoder.out_of_line_offset(bytes_len);
5809 let mut _prev_end_offset: usize = 0;
5810 if 1 > max_ordinal {
5811 return Ok(());
5812 }
5813
5814 let cur_offset: usize = (1 - 1) * envelope_size;
5817
5818 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5820
5821 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
5826 self.src_addr
5827 .as_ref()
5828 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
5829 encoder,
5830 offset + cur_offset,
5831 depth,
5832 )?;
5833
5834 _prev_end_offset = cur_offset + envelope_size;
5835 if 2 > max_ordinal {
5836 return Ok(());
5837 }
5838
5839 let cur_offset: usize = (2 - 1) * envelope_size;
5842
5843 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5845
5846 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
5851 self.dst_addr
5852 .as_ref()
5853 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
5854 encoder,
5855 offset + cur_offset,
5856 depth,
5857 )?;
5858
5859 _prev_end_offset = cur_offset + envelope_size;
5860 if 3 > max_ordinal {
5861 return Ok(());
5862 }
5863
5864 let cur_offset: usize = (3 - 1) * envelope_size;
5867
5868 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5870
5871 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<u8>, D>(
5876 self.data.as_ref().map(<fidl::encoding::UnboundedVector<u8> as fidl::encoding::ValueTypeMarker>::borrow),
5877 encoder, offset + cur_offset, depth
5878 )?;
5879
5880 _prev_end_offset = cur_offset + envelope_size;
5881
5882 Ok(())
5883 }
5884 }
5885
5886 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
5887 for WlanFullmacImplEapolTxRequest
5888 {
5889 #[inline(always)]
5890 fn new_empty() -> Self {
5891 Self::default()
5892 }
5893
5894 unsafe fn decode(
5895 &mut self,
5896 decoder: &mut fidl::encoding::Decoder<'_, D>,
5897 offset: usize,
5898 mut depth: fidl::encoding::Depth,
5899 ) -> fidl::Result<()> {
5900 decoder.debug_check_bounds::<Self>(offset);
5901 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
5902 None => return Err(fidl::Error::NotNullable),
5903 Some(len) => len,
5904 };
5905 if len == 0 {
5907 return Ok(());
5908 };
5909 depth.increment()?;
5910 let envelope_size = 8;
5911 let bytes_len = len * envelope_size;
5912 let offset = decoder.out_of_line_offset(bytes_len)?;
5913 let mut _next_ordinal_to_read = 0;
5915 let mut next_offset = offset;
5916 let end_offset = offset + bytes_len;
5917 _next_ordinal_to_read += 1;
5918 if next_offset >= end_offset {
5919 return Ok(());
5920 }
5921
5922 while _next_ordinal_to_read < 1 {
5924 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5925 _next_ordinal_to_read += 1;
5926 next_offset += envelope_size;
5927 }
5928
5929 let next_out_of_line = decoder.next_out_of_line();
5930 let handles_before = decoder.remaining_handles();
5931 if let Some((inlined, num_bytes, num_handles)) =
5932 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5933 {
5934 let member_inline_size =
5935 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
5936 decoder.context,
5937 );
5938 if inlined != (member_inline_size <= 4) {
5939 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5940 }
5941 let inner_offset;
5942 let mut inner_depth = depth.clone();
5943 if inlined {
5944 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5945 inner_offset = next_offset;
5946 } else {
5947 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5948 inner_depth.increment()?;
5949 }
5950 let val_ref = self
5951 .src_addr
5952 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
5953 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
5954 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5955 {
5956 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5957 }
5958 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5959 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5960 }
5961 }
5962
5963 next_offset += envelope_size;
5964 _next_ordinal_to_read += 1;
5965 if next_offset >= end_offset {
5966 return Ok(());
5967 }
5968
5969 while _next_ordinal_to_read < 2 {
5971 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5972 _next_ordinal_to_read += 1;
5973 next_offset += envelope_size;
5974 }
5975
5976 let next_out_of_line = decoder.next_out_of_line();
5977 let handles_before = decoder.remaining_handles();
5978 if let Some((inlined, num_bytes, num_handles)) =
5979 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5980 {
5981 let member_inline_size =
5982 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
5983 decoder.context,
5984 );
5985 if inlined != (member_inline_size <= 4) {
5986 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5987 }
5988 let inner_offset;
5989 let mut inner_depth = depth.clone();
5990 if inlined {
5991 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5992 inner_offset = next_offset;
5993 } else {
5994 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5995 inner_depth.increment()?;
5996 }
5997 let val_ref = self
5998 .dst_addr
5999 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
6000 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
6001 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6002 {
6003 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6004 }
6005 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6006 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6007 }
6008 }
6009
6010 next_offset += envelope_size;
6011 _next_ordinal_to_read += 1;
6012 if next_offset >= end_offset {
6013 return Ok(());
6014 }
6015
6016 while _next_ordinal_to_read < 3 {
6018 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6019 _next_ordinal_to_read += 1;
6020 next_offset += envelope_size;
6021 }
6022
6023 let next_out_of_line = decoder.next_out_of_line();
6024 let handles_before = decoder.remaining_handles();
6025 if let Some((inlined, num_bytes, num_handles)) =
6026 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6027 {
6028 let member_inline_size = <fidl::encoding::UnboundedVector<u8> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6029 if inlined != (member_inline_size <= 4) {
6030 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6031 }
6032 let inner_offset;
6033 let mut inner_depth = depth.clone();
6034 if inlined {
6035 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6036 inner_offset = next_offset;
6037 } else {
6038 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6039 inner_depth.increment()?;
6040 }
6041 let val_ref = self.data.get_or_insert_with(|| {
6042 fidl::new_empty!(fidl::encoding::UnboundedVector<u8>, D)
6043 });
6044 fidl::decode!(
6045 fidl::encoding::UnboundedVector<u8>,
6046 D,
6047 val_ref,
6048 decoder,
6049 inner_offset,
6050 inner_depth
6051 )?;
6052 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6053 {
6054 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6055 }
6056 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6057 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6058 }
6059 }
6060
6061 next_offset += envelope_size;
6062
6063 while next_offset < end_offset {
6065 _next_ordinal_to_read += 1;
6066 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6067 next_offset += envelope_size;
6068 }
6069
6070 Ok(())
6071 }
6072 }
6073
6074 impl WlanFullmacImplIfcAssocIndRequest {
6075 #[inline(always)]
6076 fn max_ordinal_present(&self) -> u64 {
6077 if let Some(_) = self.vendor_ie {
6078 return 5;
6079 }
6080 if let Some(_) = self.rsne {
6081 return 4;
6082 }
6083 if let Some(_) = self.ssid {
6084 return 3;
6085 }
6086 if let Some(_) = self.listen_interval {
6087 return 2;
6088 }
6089 if let Some(_) = self.peer_sta_address {
6090 return 1;
6091 }
6092 0
6093 }
6094 }
6095
6096 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcAssocIndRequest {
6097 type Borrowed<'a> = &'a Self;
6098 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
6099 value
6100 }
6101 }
6102
6103 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcAssocIndRequest {
6104 type Owned = Self;
6105
6106 #[inline(always)]
6107 fn inline_align(_context: fidl::encoding::Context) -> usize {
6108 8
6109 }
6110
6111 #[inline(always)]
6112 fn inline_size(_context: fidl::encoding::Context) -> usize {
6113 16
6114 }
6115 }
6116
6117 unsafe impl<D: fidl::encoding::ResourceDialect>
6118 fidl::encoding::Encode<WlanFullmacImplIfcAssocIndRequest, D>
6119 for &WlanFullmacImplIfcAssocIndRequest
6120 {
6121 unsafe fn encode(
6122 self,
6123 encoder: &mut fidl::encoding::Encoder<'_, D>,
6124 offset: usize,
6125 mut depth: fidl::encoding::Depth,
6126 ) -> fidl::Result<()> {
6127 encoder.debug_check_bounds::<WlanFullmacImplIfcAssocIndRequest>(offset);
6128 let max_ordinal: u64 = self.max_ordinal_present();
6130 encoder.write_num(max_ordinal, offset);
6131 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
6132 if max_ordinal == 0 {
6134 return Ok(());
6135 }
6136 depth.increment()?;
6137 let envelope_size = 8;
6138 let bytes_len = max_ordinal as usize * envelope_size;
6139 #[allow(unused_variables)]
6140 let offset = encoder.out_of_line_offset(bytes_len);
6141 let mut _prev_end_offset: usize = 0;
6142 if 1 > max_ordinal {
6143 return Ok(());
6144 }
6145
6146 let cur_offset: usize = (1 - 1) * envelope_size;
6149
6150 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6152
6153 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
6158 self.peer_sta_address
6159 .as_ref()
6160 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
6161 encoder,
6162 offset + cur_offset,
6163 depth,
6164 )?;
6165
6166 _prev_end_offset = cur_offset + envelope_size;
6167 if 2 > max_ordinal {
6168 return Ok(());
6169 }
6170
6171 let cur_offset: usize = (2 - 1) * envelope_size;
6174
6175 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6177
6178 fidl::encoding::encode_in_envelope_optional::<u16, D>(
6183 self.listen_interval.as_ref().map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
6184 encoder,
6185 offset + cur_offset,
6186 depth,
6187 )?;
6188
6189 _prev_end_offset = cur_offset + envelope_size;
6190 if 3 > max_ordinal {
6191 return Ok(());
6192 }
6193
6194 let cur_offset: usize = (3 - 1) * envelope_size;
6197
6198 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6200
6201 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<u8, 32>, D>(
6206 self.ssid.as_ref().map(
6207 <fidl::encoding::Vector<u8, 32> as fidl::encoding::ValueTypeMarker>::borrow,
6208 ),
6209 encoder,
6210 offset + cur_offset,
6211 depth,
6212 )?;
6213
6214 _prev_end_offset = cur_offset + envelope_size;
6215 if 4 > max_ordinal {
6216 return Ok(());
6217 }
6218
6219 let cur_offset: usize = (4 - 1) * envelope_size;
6222
6223 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6225
6226 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<u8, 257>, D>(
6231 self.rsne.as_ref().map(
6232 <fidl::encoding::Vector<u8, 257> as fidl::encoding::ValueTypeMarker>::borrow,
6233 ),
6234 encoder,
6235 offset + cur_offset,
6236 depth,
6237 )?;
6238
6239 _prev_end_offset = cur_offset + envelope_size;
6240 if 5 > max_ordinal {
6241 return Ok(());
6242 }
6243
6244 let cur_offset: usize = (5 - 1) * envelope_size;
6247
6248 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6250
6251 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<u8, 514>, D>(
6256 self.vendor_ie.as_ref().map(
6257 <fidl::encoding::Vector<u8, 514> as fidl::encoding::ValueTypeMarker>::borrow,
6258 ),
6259 encoder,
6260 offset + cur_offset,
6261 depth,
6262 )?;
6263
6264 _prev_end_offset = cur_offset + envelope_size;
6265
6266 Ok(())
6267 }
6268 }
6269
6270 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
6271 for WlanFullmacImplIfcAssocIndRequest
6272 {
6273 #[inline(always)]
6274 fn new_empty() -> Self {
6275 Self::default()
6276 }
6277
6278 unsafe fn decode(
6279 &mut self,
6280 decoder: &mut fidl::encoding::Decoder<'_, D>,
6281 offset: usize,
6282 mut depth: fidl::encoding::Depth,
6283 ) -> fidl::Result<()> {
6284 decoder.debug_check_bounds::<Self>(offset);
6285 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
6286 None => return Err(fidl::Error::NotNullable),
6287 Some(len) => len,
6288 };
6289 if len == 0 {
6291 return Ok(());
6292 };
6293 depth.increment()?;
6294 let envelope_size = 8;
6295 let bytes_len = len * envelope_size;
6296 let offset = decoder.out_of_line_offset(bytes_len)?;
6297 let mut _next_ordinal_to_read = 0;
6299 let mut next_offset = offset;
6300 let end_offset = offset + bytes_len;
6301 _next_ordinal_to_read += 1;
6302 if next_offset >= end_offset {
6303 return Ok(());
6304 }
6305
6306 while _next_ordinal_to_read < 1 {
6308 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6309 _next_ordinal_to_read += 1;
6310 next_offset += envelope_size;
6311 }
6312
6313 let next_out_of_line = decoder.next_out_of_line();
6314 let handles_before = decoder.remaining_handles();
6315 if let Some((inlined, num_bytes, num_handles)) =
6316 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6317 {
6318 let member_inline_size =
6319 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
6320 decoder.context,
6321 );
6322 if inlined != (member_inline_size <= 4) {
6323 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6324 }
6325 let inner_offset;
6326 let mut inner_depth = depth.clone();
6327 if inlined {
6328 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6329 inner_offset = next_offset;
6330 } else {
6331 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6332 inner_depth.increment()?;
6333 }
6334 let val_ref = self
6335 .peer_sta_address
6336 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
6337 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
6338 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6339 {
6340 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6341 }
6342 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6343 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6344 }
6345 }
6346
6347 next_offset += envelope_size;
6348 _next_ordinal_to_read += 1;
6349 if next_offset >= end_offset {
6350 return Ok(());
6351 }
6352
6353 while _next_ordinal_to_read < 2 {
6355 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6356 _next_ordinal_to_read += 1;
6357 next_offset += envelope_size;
6358 }
6359
6360 let next_out_of_line = decoder.next_out_of_line();
6361 let handles_before = decoder.remaining_handles();
6362 if let Some((inlined, num_bytes, num_handles)) =
6363 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6364 {
6365 let member_inline_size =
6366 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6367 if inlined != (member_inline_size <= 4) {
6368 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6369 }
6370 let inner_offset;
6371 let mut inner_depth = depth.clone();
6372 if inlined {
6373 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6374 inner_offset = next_offset;
6375 } else {
6376 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6377 inner_depth.increment()?;
6378 }
6379 let val_ref = self.listen_interval.get_or_insert_with(|| fidl::new_empty!(u16, D));
6380 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
6381 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6382 {
6383 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6384 }
6385 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6386 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6387 }
6388 }
6389
6390 next_offset += envelope_size;
6391 _next_ordinal_to_read += 1;
6392 if next_offset >= end_offset {
6393 return Ok(());
6394 }
6395
6396 while _next_ordinal_to_read < 3 {
6398 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6399 _next_ordinal_to_read += 1;
6400 next_offset += envelope_size;
6401 }
6402
6403 let next_out_of_line = decoder.next_out_of_line();
6404 let handles_before = decoder.remaining_handles();
6405 if let Some((inlined, num_bytes, num_handles)) =
6406 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6407 {
6408 let member_inline_size =
6409 <fidl::encoding::Vector<u8, 32> as fidl::encoding::TypeMarker>::inline_size(
6410 decoder.context,
6411 );
6412 if inlined != (member_inline_size <= 4) {
6413 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6414 }
6415 let inner_offset;
6416 let mut inner_depth = depth.clone();
6417 if inlined {
6418 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6419 inner_offset = next_offset;
6420 } else {
6421 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6422 inner_depth.increment()?;
6423 }
6424 let val_ref = self
6425 .ssid
6426 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<u8, 32>, D));
6427 fidl::decode!(fidl::encoding::Vector<u8, 32>, D, val_ref, decoder, inner_offset, inner_depth)?;
6428 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6429 {
6430 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6431 }
6432 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6433 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6434 }
6435 }
6436
6437 next_offset += envelope_size;
6438 _next_ordinal_to_read += 1;
6439 if next_offset >= end_offset {
6440 return Ok(());
6441 }
6442
6443 while _next_ordinal_to_read < 4 {
6445 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6446 _next_ordinal_to_read += 1;
6447 next_offset += envelope_size;
6448 }
6449
6450 let next_out_of_line = decoder.next_out_of_line();
6451 let handles_before = decoder.remaining_handles();
6452 if let Some((inlined, num_bytes, num_handles)) =
6453 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6454 {
6455 let member_inline_size =
6456 <fidl::encoding::Vector<u8, 257> as fidl::encoding::TypeMarker>::inline_size(
6457 decoder.context,
6458 );
6459 if inlined != (member_inline_size <= 4) {
6460 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6461 }
6462 let inner_offset;
6463 let mut inner_depth = depth.clone();
6464 if inlined {
6465 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6466 inner_offset = next_offset;
6467 } else {
6468 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6469 inner_depth.increment()?;
6470 }
6471 let val_ref = self
6472 .rsne
6473 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<u8, 257>, D));
6474 fidl::decode!(fidl::encoding::Vector<u8, 257>, D, val_ref, decoder, inner_offset, inner_depth)?;
6475 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6476 {
6477 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6478 }
6479 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6480 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6481 }
6482 }
6483
6484 next_offset += envelope_size;
6485 _next_ordinal_to_read += 1;
6486 if next_offset >= end_offset {
6487 return Ok(());
6488 }
6489
6490 while _next_ordinal_to_read < 5 {
6492 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6493 _next_ordinal_to_read += 1;
6494 next_offset += envelope_size;
6495 }
6496
6497 let next_out_of_line = decoder.next_out_of_line();
6498 let handles_before = decoder.remaining_handles();
6499 if let Some((inlined, num_bytes, num_handles)) =
6500 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6501 {
6502 let member_inline_size =
6503 <fidl::encoding::Vector<u8, 514> as fidl::encoding::TypeMarker>::inline_size(
6504 decoder.context,
6505 );
6506 if inlined != (member_inline_size <= 4) {
6507 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6508 }
6509 let inner_offset;
6510 let mut inner_depth = depth.clone();
6511 if inlined {
6512 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6513 inner_offset = next_offset;
6514 } else {
6515 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6516 inner_depth.increment()?;
6517 }
6518 let val_ref = self
6519 .vendor_ie
6520 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<u8, 514>, D));
6521 fidl::decode!(fidl::encoding::Vector<u8, 514>, D, val_ref, decoder, inner_offset, inner_depth)?;
6522 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6523 {
6524 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6525 }
6526 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6527 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6528 }
6529 }
6530
6531 next_offset += envelope_size;
6532
6533 while next_offset < end_offset {
6535 _next_ordinal_to_read += 1;
6536 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6537 next_offset += envelope_size;
6538 }
6539
6540 Ok(())
6541 }
6542 }
6543
6544 impl WlanFullmacImplIfcAuthIndRequest {
6545 #[inline(always)]
6546 fn max_ordinal_present(&self) -> u64 {
6547 if let Some(_) = self.auth_type {
6548 return 2;
6549 }
6550 if let Some(_) = self.peer_sta_address {
6551 return 1;
6552 }
6553 0
6554 }
6555 }
6556
6557 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcAuthIndRequest {
6558 type Borrowed<'a> = &'a Self;
6559 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
6560 value
6561 }
6562 }
6563
6564 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcAuthIndRequest {
6565 type Owned = Self;
6566
6567 #[inline(always)]
6568 fn inline_align(_context: fidl::encoding::Context) -> usize {
6569 8
6570 }
6571
6572 #[inline(always)]
6573 fn inline_size(_context: fidl::encoding::Context) -> usize {
6574 16
6575 }
6576 }
6577
6578 unsafe impl<D: fidl::encoding::ResourceDialect>
6579 fidl::encoding::Encode<WlanFullmacImplIfcAuthIndRequest, D>
6580 for &WlanFullmacImplIfcAuthIndRequest
6581 {
6582 unsafe fn encode(
6583 self,
6584 encoder: &mut fidl::encoding::Encoder<'_, D>,
6585 offset: usize,
6586 mut depth: fidl::encoding::Depth,
6587 ) -> fidl::Result<()> {
6588 encoder.debug_check_bounds::<WlanFullmacImplIfcAuthIndRequest>(offset);
6589 let max_ordinal: u64 = self.max_ordinal_present();
6591 encoder.write_num(max_ordinal, offset);
6592 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
6593 if max_ordinal == 0 {
6595 return Ok(());
6596 }
6597 depth.increment()?;
6598 let envelope_size = 8;
6599 let bytes_len = max_ordinal as usize * envelope_size;
6600 #[allow(unused_variables)]
6601 let offset = encoder.out_of_line_offset(bytes_len);
6602 let mut _prev_end_offset: usize = 0;
6603 if 1 > max_ordinal {
6604 return Ok(());
6605 }
6606
6607 let cur_offset: usize = (1 - 1) * envelope_size;
6610
6611 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6613
6614 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
6619 self.peer_sta_address
6620 .as_ref()
6621 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
6622 encoder,
6623 offset + cur_offset,
6624 depth,
6625 )?;
6626
6627 _prev_end_offset = cur_offset + envelope_size;
6628 if 2 > max_ordinal {
6629 return Ok(());
6630 }
6631
6632 let cur_offset: usize = (2 - 1) * envelope_size;
6635
6636 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6638
6639 fidl::encoding::encode_in_envelope_optional::<WlanAuthType, D>(
6644 self.auth_type
6645 .as_ref()
6646 .map(<WlanAuthType as fidl::encoding::ValueTypeMarker>::borrow),
6647 encoder,
6648 offset + cur_offset,
6649 depth,
6650 )?;
6651
6652 _prev_end_offset = cur_offset + envelope_size;
6653
6654 Ok(())
6655 }
6656 }
6657
6658 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
6659 for WlanFullmacImplIfcAuthIndRequest
6660 {
6661 #[inline(always)]
6662 fn new_empty() -> Self {
6663 Self::default()
6664 }
6665
6666 unsafe fn decode(
6667 &mut self,
6668 decoder: &mut fidl::encoding::Decoder<'_, D>,
6669 offset: usize,
6670 mut depth: fidl::encoding::Depth,
6671 ) -> fidl::Result<()> {
6672 decoder.debug_check_bounds::<Self>(offset);
6673 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
6674 None => return Err(fidl::Error::NotNullable),
6675 Some(len) => len,
6676 };
6677 if len == 0 {
6679 return Ok(());
6680 };
6681 depth.increment()?;
6682 let envelope_size = 8;
6683 let bytes_len = len * envelope_size;
6684 let offset = decoder.out_of_line_offset(bytes_len)?;
6685 let mut _next_ordinal_to_read = 0;
6687 let mut next_offset = offset;
6688 let end_offset = offset + bytes_len;
6689 _next_ordinal_to_read += 1;
6690 if next_offset >= end_offset {
6691 return Ok(());
6692 }
6693
6694 while _next_ordinal_to_read < 1 {
6696 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6697 _next_ordinal_to_read += 1;
6698 next_offset += envelope_size;
6699 }
6700
6701 let next_out_of_line = decoder.next_out_of_line();
6702 let handles_before = decoder.remaining_handles();
6703 if let Some((inlined, num_bytes, num_handles)) =
6704 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6705 {
6706 let member_inline_size =
6707 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
6708 decoder.context,
6709 );
6710 if inlined != (member_inline_size <= 4) {
6711 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6712 }
6713 let inner_offset;
6714 let mut inner_depth = depth.clone();
6715 if inlined {
6716 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6717 inner_offset = next_offset;
6718 } else {
6719 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6720 inner_depth.increment()?;
6721 }
6722 let val_ref = self
6723 .peer_sta_address
6724 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
6725 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
6726 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6727 {
6728 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6729 }
6730 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6731 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6732 }
6733 }
6734
6735 next_offset += envelope_size;
6736 _next_ordinal_to_read += 1;
6737 if next_offset >= end_offset {
6738 return Ok(());
6739 }
6740
6741 while _next_ordinal_to_read < 2 {
6743 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6744 _next_ordinal_to_read += 1;
6745 next_offset += envelope_size;
6746 }
6747
6748 let next_out_of_line = decoder.next_out_of_line();
6749 let handles_before = decoder.remaining_handles();
6750 if let Some((inlined, num_bytes, num_handles)) =
6751 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6752 {
6753 let member_inline_size =
6754 <WlanAuthType as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6755 if inlined != (member_inline_size <= 4) {
6756 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6757 }
6758 let inner_offset;
6759 let mut inner_depth = depth.clone();
6760 if inlined {
6761 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6762 inner_offset = next_offset;
6763 } else {
6764 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6765 inner_depth.increment()?;
6766 }
6767 let val_ref =
6768 self.auth_type.get_or_insert_with(|| fidl::new_empty!(WlanAuthType, D));
6769 fidl::decode!(WlanAuthType, D, val_ref, decoder, inner_offset, inner_depth)?;
6770 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6771 {
6772 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6773 }
6774 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6775 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6776 }
6777 }
6778
6779 next_offset += envelope_size;
6780
6781 while next_offset < end_offset {
6783 _next_ordinal_to_read += 1;
6784 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6785 next_offset += envelope_size;
6786 }
6787
6788 Ok(())
6789 }
6790 }
6791
6792 impl WlanFullmacImplIfcConnectConfRequest {
6793 #[inline(always)]
6794 fn max_ordinal_present(&self) -> u64 {
6795 if let Some(_) = self.association_ies {
6796 return 4;
6797 }
6798 if let Some(_) = self.association_id {
6799 return 3;
6800 }
6801 if let Some(_) = self.result_code {
6802 return 2;
6803 }
6804 if let Some(_) = self.peer_sta_address {
6805 return 1;
6806 }
6807 0
6808 }
6809 }
6810
6811 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcConnectConfRequest {
6812 type Borrowed<'a> = &'a Self;
6813 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
6814 value
6815 }
6816 }
6817
6818 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcConnectConfRequest {
6819 type Owned = Self;
6820
6821 #[inline(always)]
6822 fn inline_align(_context: fidl::encoding::Context) -> usize {
6823 8
6824 }
6825
6826 #[inline(always)]
6827 fn inline_size(_context: fidl::encoding::Context) -> usize {
6828 16
6829 }
6830 }
6831
6832 unsafe impl<D: fidl::encoding::ResourceDialect>
6833 fidl::encoding::Encode<WlanFullmacImplIfcConnectConfRequest, D>
6834 for &WlanFullmacImplIfcConnectConfRequest
6835 {
6836 unsafe fn encode(
6837 self,
6838 encoder: &mut fidl::encoding::Encoder<'_, D>,
6839 offset: usize,
6840 mut depth: fidl::encoding::Depth,
6841 ) -> fidl::Result<()> {
6842 encoder.debug_check_bounds::<WlanFullmacImplIfcConnectConfRequest>(offset);
6843 let max_ordinal: u64 = self.max_ordinal_present();
6845 encoder.write_num(max_ordinal, offset);
6846 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
6847 if max_ordinal == 0 {
6849 return Ok(());
6850 }
6851 depth.increment()?;
6852 let envelope_size = 8;
6853 let bytes_len = max_ordinal as usize * envelope_size;
6854 #[allow(unused_variables)]
6855 let offset = encoder.out_of_line_offset(bytes_len);
6856 let mut _prev_end_offset: usize = 0;
6857 if 1 > max_ordinal {
6858 return Ok(());
6859 }
6860
6861 let cur_offset: usize = (1 - 1) * envelope_size;
6864
6865 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6867
6868 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
6873 self.peer_sta_address
6874 .as_ref()
6875 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
6876 encoder,
6877 offset + cur_offset,
6878 depth,
6879 )?;
6880
6881 _prev_end_offset = cur_offset + envelope_size;
6882 if 2 > max_ordinal {
6883 return Ok(());
6884 }
6885
6886 let cur_offset: usize = (2 - 1) * envelope_size;
6889
6890 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6892
6893 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_ieee80211_common::StatusCode, D>(
6898 self.result_code.as_ref().map(<fidl_fuchsia_wlan_ieee80211_common::StatusCode as fidl::encoding::ValueTypeMarker>::borrow),
6899 encoder, offset + cur_offset, depth
6900 )?;
6901
6902 _prev_end_offset = cur_offset + envelope_size;
6903 if 3 > max_ordinal {
6904 return Ok(());
6905 }
6906
6907 let cur_offset: usize = (3 - 1) * envelope_size;
6910
6911 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6913
6914 fidl::encoding::encode_in_envelope_optional::<u16, D>(
6919 self.association_id.as_ref().map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
6920 encoder,
6921 offset + cur_offset,
6922 depth,
6923 )?;
6924
6925 _prev_end_offset = cur_offset + envelope_size;
6926 if 4 > max_ordinal {
6927 return Ok(());
6928 }
6929
6930 let cur_offset: usize = (4 - 1) * envelope_size;
6933
6934 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6936
6937 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<u8>, D>(
6942 self.association_ies.as_ref().map(<fidl::encoding::UnboundedVector<u8> as fidl::encoding::ValueTypeMarker>::borrow),
6943 encoder, offset + cur_offset, depth
6944 )?;
6945
6946 _prev_end_offset = cur_offset + envelope_size;
6947
6948 Ok(())
6949 }
6950 }
6951
6952 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
6953 for WlanFullmacImplIfcConnectConfRequest
6954 {
6955 #[inline(always)]
6956 fn new_empty() -> Self {
6957 Self::default()
6958 }
6959
6960 unsafe fn decode(
6961 &mut self,
6962 decoder: &mut fidl::encoding::Decoder<'_, D>,
6963 offset: usize,
6964 mut depth: fidl::encoding::Depth,
6965 ) -> fidl::Result<()> {
6966 decoder.debug_check_bounds::<Self>(offset);
6967 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
6968 None => return Err(fidl::Error::NotNullable),
6969 Some(len) => len,
6970 };
6971 if len == 0 {
6973 return Ok(());
6974 };
6975 depth.increment()?;
6976 let envelope_size = 8;
6977 let bytes_len = len * envelope_size;
6978 let offset = decoder.out_of_line_offset(bytes_len)?;
6979 let mut _next_ordinal_to_read = 0;
6981 let mut next_offset = offset;
6982 let end_offset = offset + bytes_len;
6983 _next_ordinal_to_read += 1;
6984 if next_offset >= end_offset {
6985 return Ok(());
6986 }
6987
6988 while _next_ordinal_to_read < 1 {
6990 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6991 _next_ordinal_to_read += 1;
6992 next_offset += envelope_size;
6993 }
6994
6995 let next_out_of_line = decoder.next_out_of_line();
6996 let handles_before = decoder.remaining_handles();
6997 if let Some((inlined, num_bytes, num_handles)) =
6998 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6999 {
7000 let member_inline_size =
7001 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
7002 decoder.context,
7003 );
7004 if inlined != (member_inline_size <= 4) {
7005 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7006 }
7007 let inner_offset;
7008 let mut inner_depth = depth.clone();
7009 if inlined {
7010 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7011 inner_offset = next_offset;
7012 } else {
7013 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7014 inner_depth.increment()?;
7015 }
7016 let val_ref = self
7017 .peer_sta_address
7018 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
7019 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
7020 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7021 {
7022 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7023 }
7024 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7025 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7026 }
7027 }
7028
7029 next_offset += envelope_size;
7030 _next_ordinal_to_read += 1;
7031 if next_offset >= end_offset {
7032 return Ok(());
7033 }
7034
7035 while _next_ordinal_to_read < 2 {
7037 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7038 _next_ordinal_to_read += 1;
7039 next_offset += envelope_size;
7040 }
7041
7042 let next_out_of_line = decoder.next_out_of_line();
7043 let handles_before = decoder.remaining_handles();
7044 if let Some((inlined, num_bytes, num_handles)) =
7045 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7046 {
7047 let member_inline_size = <fidl_fuchsia_wlan_ieee80211_common::StatusCode as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7048 if inlined != (member_inline_size <= 4) {
7049 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7050 }
7051 let inner_offset;
7052 let mut inner_depth = depth.clone();
7053 if inlined {
7054 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7055 inner_offset = next_offset;
7056 } else {
7057 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7058 inner_depth.increment()?;
7059 }
7060 let val_ref = self.result_code.get_or_insert_with(|| {
7061 fidl::new_empty!(fidl_fuchsia_wlan_ieee80211_common::StatusCode, D)
7062 });
7063 fidl::decode!(
7064 fidl_fuchsia_wlan_ieee80211_common::StatusCode,
7065 D,
7066 val_ref,
7067 decoder,
7068 inner_offset,
7069 inner_depth
7070 )?;
7071 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7072 {
7073 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7074 }
7075 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7076 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7077 }
7078 }
7079
7080 next_offset += envelope_size;
7081 _next_ordinal_to_read += 1;
7082 if next_offset >= end_offset {
7083 return Ok(());
7084 }
7085
7086 while _next_ordinal_to_read < 3 {
7088 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7089 _next_ordinal_to_read += 1;
7090 next_offset += envelope_size;
7091 }
7092
7093 let next_out_of_line = decoder.next_out_of_line();
7094 let handles_before = decoder.remaining_handles();
7095 if let Some((inlined, num_bytes, num_handles)) =
7096 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7097 {
7098 let member_inline_size =
7099 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7100 if inlined != (member_inline_size <= 4) {
7101 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7102 }
7103 let inner_offset;
7104 let mut inner_depth = depth.clone();
7105 if inlined {
7106 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7107 inner_offset = next_offset;
7108 } else {
7109 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7110 inner_depth.increment()?;
7111 }
7112 let val_ref = self.association_id.get_or_insert_with(|| fidl::new_empty!(u16, D));
7113 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
7114 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7115 {
7116 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7117 }
7118 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7119 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7120 }
7121 }
7122
7123 next_offset += envelope_size;
7124 _next_ordinal_to_read += 1;
7125 if next_offset >= end_offset {
7126 return Ok(());
7127 }
7128
7129 while _next_ordinal_to_read < 4 {
7131 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7132 _next_ordinal_to_read += 1;
7133 next_offset += envelope_size;
7134 }
7135
7136 let next_out_of_line = decoder.next_out_of_line();
7137 let handles_before = decoder.remaining_handles();
7138 if let Some((inlined, num_bytes, num_handles)) =
7139 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7140 {
7141 let member_inline_size = <fidl::encoding::UnboundedVector<u8> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7142 if inlined != (member_inline_size <= 4) {
7143 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7144 }
7145 let inner_offset;
7146 let mut inner_depth = depth.clone();
7147 if inlined {
7148 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7149 inner_offset = next_offset;
7150 } else {
7151 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7152 inner_depth.increment()?;
7153 }
7154 let val_ref = self.association_ies.get_or_insert_with(|| {
7155 fidl::new_empty!(fidl::encoding::UnboundedVector<u8>, D)
7156 });
7157 fidl::decode!(
7158 fidl::encoding::UnboundedVector<u8>,
7159 D,
7160 val_ref,
7161 decoder,
7162 inner_offset,
7163 inner_depth
7164 )?;
7165 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7166 {
7167 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7168 }
7169 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7170 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7171 }
7172 }
7173
7174 next_offset += envelope_size;
7175
7176 while next_offset < end_offset {
7178 _next_ordinal_to_read += 1;
7179 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7180 next_offset += envelope_size;
7181 }
7182
7183 Ok(())
7184 }
7185 }
7186
7187 impl WlanFullmacImplIfcDeauthConfRequest {
7188 #[inline(always)]
7189 fn max_ordinal_present(&self) -> u64 {
7190 if let Some(_) = self.peer_sta_address {
7191 return 1;
7192 }
7193 0
7194 }
7195 }
7196
7197 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcDeauthConfRequest {
7198 type Borrowed<'a> = &'a Self;
7199 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
7200 value
7201 }
7202 }
7203
7204 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcDeauthConfRequest {
7205 type Owned = Self;
7206
7207 #[inline(always)]
7208 fn inline_align(_context: fidl::encoding::Context) -> usize {
7209 8
7210 }
7211
7212 #[inline(always)]
7213 fn inline_size(_context: fidl::encoding::Context) -> usize {
7214 16
7215 }
7216 }
7217
7218 unsafe impl<D: fidl::encoding::ResourceDialect>
7219 fidl::encoding::Encode<WlanFullmacImplIfcDeauthConfRequest, D>
7220 for &WlanFullmacImplIfcDeauthConfRequest
7221 {
7222 unsafe fn encode(
7223 self,
7224 encoder: &mut fidl::encoding::Encoder<'_, D>,
7225 offset: usize,
7226 mut depth: fidl::encoding::Depth,
7227 ) -> fidl::Result<()> {
7228 encoder.debug_check_bounds::<WlanFullmacImplIfcDeauthConfRequest>(offset);
7229 let max_ordinal: u64 = self.max_ordinal_present();
7231 encoder.write_num(max_ordinal, offset);
7232 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
7233 if max_ordinal == 0 {
7235 return Ok(());
7236 }
7237 depth.increment()?;
7238 let envelope_size = 8;
7239 let bytes_len = max_ordinal as usize * envelope_size;
7240 #[allow(unused_variables)]
7241 let offset = encoder.out_of_line_offset(bytes_len);
7242 let mut _prev_end_offset: usize = 0;
7243 if 1 > max_ordinal {
7244 return Ok(());
7245 }
7246
7247 let cur_offset: usize = (1 - 1) * envelope_size;
7250
7251 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7253
7254 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
7259 self.peer_sta_address
7260 .as_ref()
7261 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
7262 encoder,
7263 offset + cur_offset,
7264 depth,
7265 )?;
7266
7267 _prev_end_offset = cur_offset + envelope_size;
7268
7269 Ok(())
7270 }
7271 }
7272
7273 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
7274 for WlanFullmacImplIfcDeauthConfRequest
7275 {
7276 #[inline(always)]
7277 fn new_empty() -> Self {
7278 Self::default()
7279 }
7280
7281 unsafe fn decode(
7282 &mut self,
7283 decoder: &mut fidl::encoding::Decoder<'_, D>,
7284 offset: usize,
7285 mut depth: fidl::encoding::Depth,
7286 ) -> fidl::Result<()> {
7287 decoder.debug_check_bounds::<Self>(offset);
7288 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
7289 None => return Err(fidl::Error::NotNullable),
7290 Some(len) => len,
7291 };
7292 if len == 0 {
7294 return Ok(());
7295 };
7296 depth.increment()?;
7297 let envelope_size = 8;
7298 let bytes_len = len * envelope_size;
7299 let offset = decoder.out_of_line_offset(bytes_len)?;
7300 let mut _next_ordinal_to_read = 0;
7302 let mut next_offset = offset;
7303 let end_offset = offset + bytes_len;
7304 _next_ordinal_to_read += 1;
7305 if next_offset >= end_offset {
7306 return Ok(());
7307 }
7308
7309 while _next_ordinal_to_read < 1 {
7311 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7312 _next_ordinal_to_read += 1;
7313 next_offset += envelope_size;
7314 }
7315
7316 let next_out_of_line = decoder.next_out_of_line();
7317 let handles_before = decoder.remaining_handles();
7318 if let Some((inlined, num_bytes, num_handles)) =
7319 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7320 {
7321 let member_inline_size =
7322 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
7323 decoder.context,
7324 );
7325 if inlined != (member_inline_size <= 4) {
7326 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7327 }
7328 let inner_offset;
7329 let mut inner_depth = depth.clone();
7330 if inlined {
7331 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7332 inner_offset = next_offset;
7333 } else {
7334 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7335 inner_depth.increment()?;
7336 }
7337 let val_ref = self
7338 .peer_sta_address
7339 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
7340 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
7341 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7342 {
7343 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7344 }
7345 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7346 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7347 }
7348 }
7349
7350 next_offset += envelope_size;
7351
7352 while next_offset < end_offset {
7354 _next_ordinal_to_read += 1;
7355 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7356 next_offset += envelope_size;
7357 }
7358
7359 Ok(())
7360 }
7361 }
7362
7363 impl WlanFullmacImplIfcDeauthIndRequest {
7364 #[inline(always)]
7365 fn max_ordinal_present(&self) -> u64 {
7366 if let Some(_) = self.locally_initiated {
7367 return 3;
7368 }
7369 if let Some(_) = self.reason_code {
7370 return 2;
7371 }
7372 if let Some(_) = self.peer_sta_address {
7373 return 1;
7374 }
7375 0
7376 }
7377 }
7378
7379 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcDeauthIndRequest {
7380 type Borrowed<'a> = &'a Self;
7381 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
7382 value
7383 }
7384 }
7385
7386 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcDeauthIndRequest {
7387 type Owned = Self;
7388
7389 #[inline(always)]
7390 fn inline_align(_context: fidl::encoding::Context) -> usize {
7391 8
7392 }
7393
7394 #[inline(always)]
7395 fn inline_size(_context: fidl::encoding::Context) -> usize {
7396 16
7397 }
7398 }
7399
7400 unsafe impl<D: fidl::encoding::ResourceDialect>
7401 fidl::encoding::Encode<WlanFullmacImplIfcDeauthIndRequest, D>
7402 for &WlanFullmacImplIfcDeauthIndRequest
7403 {
7404 unsafe fn encode(
7405 self,
7406 encoder: &mut fidl::encoding::Encoder<'_, D>,
7407 offset: usize,
7408 mut depth: fidl::encoding::Depth,
7409 ) -> fidl::Result<()> {
7410 encoder.debug_check_bounds::<WlanFullmacImplIfcDeauthIndRequest>(offset);
7411 let max_ordinal: u64 = self.max_ordinal_present();
7413 encoder.write_num(max_ordinal, offset);
7414 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
7415 if max_ordinal == 0 {
7417 return Ok(());
7418 }
7419 depth.increment()?;
7420 let envelope_size = 8;
7421 let bytes_len = max_ordinal as usize * envelope_size;
7422 #[allow(unused_variables)]
7423 let offset = encoder.out_of_line_offset(bytes_len);
7424 let mut _prev_end_offset: usize = 0;
7425 if 1 > max_ordinal {
7426 return Ok(());
7427 }
7428
7429 let cur_offset: usize = (1 - 1) * envelope_size;
7432
7433 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7435
7436 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
7441 self.peer_sta_address
7442 .as_ref()
7443 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
7444 encoder,
7445 offset + cur_offset,
7446 depth,
7447 )?;
7448
7449 _prev_end_offset = cur_offset + envelope_size;
7450 if 2 > max_ordinal {
7451 return Ok(());
7452 }
7453
7454 let cur_offset: usize = (2 - 1) * envelope_size;
7457
7458 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7460
7461 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_ieee80211_common::ReasonCode, D>(
7466 self.reason_code.as_ref().map(<fidl_fuchsia_wlan_ieee80211_common::ReasonCode as fidl::encoding::ValueTypeMarker>::borrow),
7467 encoder, offset + cur_offset, depth
7468 )?;
7469
7470 _prev_end_offset = cur_offset + envelope_size;
7471 if 3 > max_ordinal {
7472 return Ok(());
7473 }
7474
7475 let cur_offset: usize = (3 - 1) * envelope_size;
7478
7479 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7481
7482 fidl::encoding::encode_in_envelope_optional::<bool, D>(
7487 self.locally_initiated
7488 .as_ref()
7489 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
7490 encoder,
7491 offset + cur_offset,
7492 depth,
7493 )?;
7494
7495 _prev_end_offset = cur_offset + envelope_size;
7496
7497 Ok(())
7498 }
7499 }
7500
7501 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
7502 for WlanFullmacImplIfcDeauthIndRequest
7503 {
7504 #[inline(always)]
7505 fn new_empty() -> Self {
7506 Self::default()
7507 }
7508
7509 unsafe fn decode(
7510 &mut self,
7511 decoder: &mut fidl::encoding::Decoder<'_, D>,
7512 offset: usize,
7513 mut depth: fidl::encoding::Depth,
7514 ) -> fidl::Result<()> {
7515 decoder.debug_check_bounds::<Self>(offset);
7516 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
7517 None => return Err(fidl::Error::NotNullable),
7518 Some(len) => len,
7519 };
7520 if len == 0 {
7522 return Ok(());
7523 };
7524 depth.increment()?;
7525 let envelope_size = 8;
7526 let bytes_len = len * envelope_size;
7527 let offset = decoder.out_of_line_offset(bytes_len)?;
7528 let mut _next_ordinal_to_read = 0;
7530 let mut next_offset = offset;
7531 let end_offset = offset + bytes_len;
7532 _next_ordinal_to_read += 1;
7533 if next_offset >= end_offset {
7534 return Ok(());
7535 }
7536
7537 while _next_ordinal_to_read < 1 {
7539 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7540 _next_ordinal_to_read += 1;
7541 next_offset += envelope_size;
7542 }
7543
7544 let next_out_of_line = decoder.next_out_of_line();
7545 let handles_before = decoder.remaining_handles();
7546 if let Some((inlined, num_bytes, num_handles)) =
7547 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7548 {
7549 let member_inline_size =
7550 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
7551 decoder.context,
7552 );
7553 if inlined != (member_inline_size <= 4) {
7554 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7555 }
7556 let inner_offset;
7557 let mut inner_depth = depth.clone();
7558 if inlined {
7559 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7560 inner_offset = next_offset;
7561 } else {
7562 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7563 inner_depth.increment()?;
7564 }
7565 let val_ref = self
7566 .peer_sta_address
7567 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
7568 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
7569 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7570 {
7571 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7572 }
7573 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7574 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7575 }
7576 }
7577
7578 next_offset += envelope_size;
7579 _next_ordinal_to_read += 1;
7580 if next_offset >= end_offset {
7581 return Ok(());
7582 }
7583
7584 while _next_ordinal_to_read < 2 {
7586 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7587 _next_ordinal_to_read += 1;
7588 next_offset += envelope_size;
7589 }
7590
7591 let next_out_of_line = decoder.next_out_of_line();
7592 let handles_before = decoder.remaining_handles();
7593 if let Some((inlined, num_bytes, num_handles)) =
7594 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7595 {
7596 let member_inline_size = <fidl_fuchsia_wlan_ieee80211_common::ReasonCode as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7597 if inlined != (member_inline_size <= 4) {
7598 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7599 }
7600 let inner_offset;
7601 let mut inner_depth = depth.clone();
7602 if inlined {
7603 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7604 inner_offset = next_offset;
7605 } else {
7606 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7607 inner_depth.increment()?;
7608 }
7609 let val_ref = self.reason_code.get_or_insert_with(|| {
7610 fidl::new_empty!(fidl_fuchsia_wlan_ieee80211_common::ReasonCode, D)
7611 });
7612 fidl::decode!(
7613 fidl_fuchsia_wlan_ieee80211_common::ReasonCode,
7614 D,
7615 val_ref,
7616 decoder,
7617 inner_offset,
7618 inner_depth
7619 )?;
7620 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7621 {
7622 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7623 }
7624 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7625 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7626 }
7627 }
7628
7629 next_offset += envelope_size;
7630 _next_ordinal_to_read += 1;
7631 if next_offset >= end_offset {
7632 return Ok(());
7633 }
7634
7635 while _next_ordinal_to_read < 3 {
7637 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7638 _next_ordinal_to_read += 1;
7639 next_offset += envelope_size;
7640 }
7641
7642 let next_out_of_line = decoder.next_out_of_line();
7643 let handles_before = decoder.remaining_handles();
7644 if let Some((inlined, num_bytes, num_handles)) =
7645 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7646 {
7647 let member_inline_size =
7648 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7649 if inlined != (member_inline_size <= 4) {
7650 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7651 }
7652 let inner_offset;
7653 let mut inner_depth = depth.clone();
7654 if inlined {
7655 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7656 inner_offset = next_offset;
7657 } else {
7658 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7659 inner_depth.increment()?;
7660 }
7661 let val_ref =
7662 self.locally_initiated.get_or_insert_with(|| fidl::new_empty!(bool, D));
7663 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
7664 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7665 {
7666 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7667 }
7668 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7669 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7670 }
7671 }
7672
7673 next_offset += envelope_size;
7674
7675 while next_offset < end_offset {
7677 _next_ordinal_to_read += 1;
7678 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7679 next_offset += envelope_size;
7680 }
7681
7682 Ok(())
7683 }
7684 }
7685
7686 impl WlanFullmacImplIfcDisassocConfRequest {
7687 #[inline(always)]
7688 fn max_ordinal_present(&self) -> u64 {
7689 if let Some(_) = self.status {
7690 return 1;
7691 }
7692 0
7693 }
7694 }
7695
7696 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcDisassocConfRequest {
7697 type Borrowed<'a> = &'a Self;
7698 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
7699 value
7700 }
7701 }
7702
7703 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcDisassocConfRequest {
7704 type Owned = Self;
7705
7706 #[inline(always)]
7707 fn inline_align(_context: fidl::encoding::Context) -> usize {
7708 8
7709 }
7710
7711 #[inline(always)]
7712 fn inline_size(_context: fidl::encoding::Context) -> usize {
7713 16
7714 }
7715 }
7716
7717 unsafe impl<D: fidl::encoding::ResourceDialect>
7718 fidl::encoding::Encode<WlanFullmacImplIfcDisassocConfRequest, D>
7719 for &WlanFullmacImplIfcDisassocConfRequest
7720 {
7721 unsafe fn encode(
7722 self,
7723 encoder: &mut fidl::encoding::Encoder<'_, D>,
7724 offset: usize,
7725 mut depth: fidl::encoding::Depth,
7726 ) -> fidl::Result<()> {
7727 encoder.debug_check_bounds::<WlanFullmacImplIfcDisassocConfRequest>(offset);
7728 let max_ordinal: u64 = self.max_ordinal_present();
7730 encoder.write_num(max_ordinal, offset);
7731 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
7732 if max_ordinal == 0 {
7734 return Ok(());
7735 }
7736 depth.increment()?;
7737 let envelope_size = 8;
7738 let bytes_len = max_ordinal as usize * envelope_size;
7739 #[allow(unused_variables)]
7740 let offset = encoder.out_of_line_offset(bytes_len);
7741 let mut _prev_end_offset: usize = 0;
7742 if 1 > max_ordinal {
7743 return Ok(());
7744 }
7745
7746 let cur_offset: usize = (1 - 1) * envelope_size;
7749
7750 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7752
7753 fidl::encoding::encode_in_envelope_optional::<i32, D>(
7758 self.status.as_ref().map(<i32 as fidl::encoding::ValueTypeMarker>::borrow),
7759 encoder,
7760 offset + cur_offset,
7761 depth,
7762 )?;
7763
7764 _prev_end_offset = cur_offset + envelope_size;
7765
7766 Ok(())
7767 }
7768 }
7769
7770 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
7771 for WlanFullmacImplIfcDisassocConfRequest
7772 {
7773 #[inline(always)]
7774 fn new_empty() -> Self {
7775 Self::default()
7776 }
7777
7778 unsafe fn decode(
7779 &mut self,
7780 decoder: &mut fidl::encoding::Decoder<'_, D>,
7781 offset: usize,
7782 mut depth: fidl::encoding::Depth,
7783 ) -> fidl::Result<()> {
7784 decoder.debug_check_bounds::<Self>(offset);
7785 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
7786 None => return Err(fidl::Error::NotNullable),
7787 Some(len) => len,
7788 };
7789 if len == 0 {
7791 return Ok(());
7792 };
7793 depth.increment()?;
7794 let envelope_size = 8;
7795 let bytes_len = len * envelope_size;
7796 let offset = decoder.out_of_line_offset(bytes_len)?;
7797 let mut _next_ordinal_to_read = 0;
7799 let mut next_offset = offset;
7800 let end_offset = offset + bytes_len;
7801 _next_ordinal_to_read += 1;
7802 if next_offset >= end_offset {
7803 return Ok(());
7804 }
7805
7806 while _next_ordinal_to_read < 1 {
7808 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7809 _next_ordinal_to_read += 1;
7810 next_offset += envelope_size;
7811 }
7812
7813 let next_out_of_line = decoder.next_out_of_line();
7814 let handles_before = decoder.remaining_handles();
7815 if let Some((inlined, num_bytes, num_handles)) =
7816 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7817 {
7818 let member_inline_size =
7819 <i32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7820 if inlined != (member_inline_size <= 4) {
7821 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7822 }
7823 let inner_offset;
7824 let mut inner_depth = depth.clone();
7825 if inlined {
7826 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7827 inner_offset = next_offset;
7828 } else {
7829 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7830 inner_depth.increment()?;
7831 }
7832 let val_ref = self.status.get_or_insert_with(|| fidl::new_empty!(i32, D));
7833 fidl::decode!(i32, D, val_ref, decoder, inner_offset, inner_depth)?;
7834 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7835 {
7836 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7837 }
7838 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7839 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7840 }
7841 }
7842
7843 next_offset += envelope_size;
7844
7845 while next_offset < end_offset {
7847 _next_ordinal_to_read += 1;
7848 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7849 next_offset += envelope_size;
7850 }
7851
7852 Ok(())
7853 }
7854 }
7855
7856 impl WlanFullmacImplIfcDisassocIndRequest {
7857 #[inline(always)]
7858 fn max_ordinal_present(&self) -> u64 {
7859 if let Some(_) = self.locally_initiated {
7860 return 3;
7861 }
7862 if let Some(_) = self.reason_code {
7863 return 2;
7864 }
7865 if let Some(_) = self.peer_sta_address {
7866 return 1;
7867 }
7868 0
7869 }
7870 }
7871
7872 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcDisassocIndRequest {
7873 type Borrowed<'a> = &'a Self;
7874 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
7875 value
7876 }
7877 }
7878
7879 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcDisassocIndRequest {
7880 type Owned = Self;
7881
7882 #[inline(always)]
7883 fn inline_align(_context: fidl::encoding::Context) -> usize {
7884 8
7885 }
7886
7887 #[inline(always)]
7888 fn inline_size(_context: fidl::encoding::Context) -> usize {
7889 16
7890 }
7891 }
7892
7893 unsafe impl<D: fidl::encoding::ResourceDialect>
7894 fidl::encoding::Encode<WlanFullmacImplIfcDisassocIndRequest, D>
7895 for &WlanFullmacImplIfcDisassocIndRequest
7896 {
7897 unsafe fn encode(
7898 self,
7899 encoder: &mut fidl::encoding::Encoder<'_, D>,
7900 offset: usize,
7901 mut depth: fidl::encoding::Depth,
7902 ) -> fidl::Result<()> {
7903 encoder.debug_check_bounds::<WlanFullmacImplIfcDisassocIndRequest>(offset);
7904 let max_ordinal: u64 = self.max_ordinal_present();
7906 encoder.write_num(max_ordinal, offset);
7907 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
7908 if max_ordinal == 0 {
7910 return Ok(());
7911 }
7912 depth.increment()?;
7913 let envelope_size = 8;
7914 let bytes_len = max_ordinal as usize * envelope_size;
7915 #[allow(unused_variables)]
7916 let offset = encoder.out_of_line_offset(bytes_len);
7917 let mut _prev_end_offset: usize = 0;
7918 if 1 > max_ordinal {
7919 return Ok(());
7920 }
7921
7922 let cur_offset: usize = (1 - 1) * envelope_size;
7925
7926 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7928
7929 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
7934 self.peer_sta_address
7935 .as_ref()
7936 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
7937 encoder,
7938 offset + cur_offset,
7939 depth,
7940 )?;
7941
7942 _prev_end_offset = cur_offset + envelope_size;
7943 if 2 > max_ordinal {
7944 return Ok(());
7945 }
7946
7947 let cur_offset: usize = (2 - 1) * envelope_size;
7950
7951 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7953
7954 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_ieee80211_common::ReasonCode, D>(
7959 self.reason_code.as_ref().map(<fidl_fuchsia_wlan_ieee80211_common::ReasonCode as fidl::encoding::ValueTypeMarker>::borrow),
7960 encoder, offset + cur_offset, depth
7961 )?;
7962
7963 _prev_end_offset = cur_offset + envelope_size;
7964 if 3 > max_ordinal {
7965 return Ok(());
7966 }
7967
7968 let cur_offset: usize = (3 - 1) * envelope_size;
7971
7972 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7974
7975 fidl::encoding::encode_in_envelope_optional::<bool, D>(
7980 self.locally_initiated
7981 .as_ref()
7982 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
7983 encoder,
7984 offset + cur_offset,
7985 depth,
7986 )?;
7987
7988 _prev_end_offset = cur_offset + envelope_size;
7989
7990 Ok(())
7991 }
7992 }
7993
7994 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
7995 for WlanFullmacImplIfcDisassocIndRequest
7996 {
7997 #[inline(always)]
7998 fn new_empty() -> Self {
7999 Self::default()
8000 }
8001
8002 unsafe fn decode(
8003 &mut self,
8004 decoder: &mut fidl::encoding::Decoder<'_, D>,
8005 offset: usize,
8006 mut depth: fidl::encoding::Depth,
8007 ) -> fidl::Result<()> {
8008 decoder.debug_check_bounds::<Self>(offset);
8009 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
8010 None => return Err(fidl::Error::NotNullable),
8011 Some(len) => len,
8012 };
8013 if len == 0 {
8015 return Ok(());
8016 };
8017 depth.increment()?;
8018 let envelope_size = 8;
8019 let bytes_len = len * envelope_size;
8020 let offset = decoder.out_of_line_offset(bytes_len)?;
8021 let mut _next_ordinal_to_read = 0;
8023 let mut next_offset = offset;
8024 let end_offset = offset + bytes_len;
8025 _next_ordinal_to_read += 1;
8026 if next_offset >= end_offset {
8027 return Ok(());
8028 }
8029
8030 while _next_ordinal_to_read < 1 {
8032 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8033 _next_ordinal_to_read += 1;
8034 next_offset += envelope_size;
8035 }
8036
8037 let next_out_of_line = decoder.next_out_of_line();
8038 let handles_before = decoder.remaining_handles();
8039 if let Some((inlined, num_bytes, num_handles)) =
8040 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8041 {
8042 let member_inline_size =
8043 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
8044 decoder.context,
8045 );
8046 if inlined != (member_inline_size <= 4) {
8047 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8048 }
8049 let inner_offset;
8050 let mut inner_depth = depth.clone();
8051 if inlined {
8052 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8053 inner_offset = next_offset;
8054 } else {
8055 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8056 inner_depth.increment()?;
8057 }
8058 let val_ref = self
8059 .peer_sta_address
8060 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
8061 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
8062 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8063 {
8064 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8065 }
8066 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8067 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8068 }
8069 }
8070
8071 next_offset += envelope_size;
8072 _next_ordinal_to_read += 1;
8073 if next_offset >= end_offset {
8074 return Ok(());
8075 }
8076
8077 while _next_ordinal_to_read < 2 {
8079 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8080 _next_ordinal_to_read += 1;
8081 next_offset += envelope_size;
8082 }
8083
8084 let next_out_of_line = decoder.next_out_of_line();
8085 let handles_before = decoder.remaining_handles();
8086 if let Some((inlined, num_bytes, num_handles)) =
8087 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8088 {
8089 let member_inline_size = <fidl_fuchsia_wlan_ieee80211_common::ReasonCode as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8090 if inlined != (member_inline_size <= 4) {
8091 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8092 }
8093 let inner_offset;
8094 let mut inner_depth = depth.clone();
8095 if inlined {
8096 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8097 inner_offset = next_offset;
8098 } else {
8099 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8100 inner_depth.increment()?;
8101 }
8102 let val_ref = self.reason_code.get_or_insert_with(|| {
8103 fidl::new_empty!(fidl_fuchsia_wlan_ieee80211_common::ReasonCode, D)
8104 });
8105 fidl::decode!(
8106 fidl_fuchsia_wlan_ieee80211_common::ReasonCode,
8107 D,
8108 val_ref,
8109 decoder,
8110 inner_offset,
8111 inner_depth
8112 )?;
8113 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8114 {
8115 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8116 }
8117 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8118 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8119 }
8120 }
8121
8122 next_offset += envelope_size;
8123 _next_ordinal_to_read += 1;
8124 if next_offset >= end_offset {
8125 return Ok(());
8126 }
8127
8128 while _next_ordinal_to_read < 3 {
8130 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8131 _next_ordinal_to_read += 1;
8132 next_offset += envelope_size;
8133 }
8134
8135 let next_out_of_line = decoder.next_out_of_line();
8136 let handles_before = decoder.remaining_handles();
8137 if let Some((inlined, num_bytes, num_handles)) =
8138 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8139 {
8140 let member_inline_size =
8141 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8142 if inlined != (member_inline_size <= 4) {
8143 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8144 }
8145 let inner_offset;
8146 let mut inner_depth = depth.clone();
8147 if inlined {
8148 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8149 inner_offset = next_offset;
8150 } else {
8151 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8152 inner_depth.increment()?;
8153 }
8154 let val_ref =
8155 self.locally_initiated.get_or_insert_with(|| fidl::new_empty!(bool, D));
8156 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
8157 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8158 {
8159 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8160 }
8161 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8162 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8163 }
8164 }
8165
8166 next_offset += envelope_size;
8167
8168 while next_offset < end_offset {
8170 _next_ordinal_to_read += 1;
8171 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8172 next_offset += envelope_size;
8173 }
8174
8175 Ok(())
8176 }
8177 }
8178
8179 impl WlanFullmacImplIfcEapolConfRequest {
8180 #[inline(always)]
8181 fn max_ordinal_present(&self) -> u64 {
8182 if let Some(_) = self.dst_addr {
8183 return 2;
8184 }
8185 if let Some(_) = self.result_code {
8186 return 1;
8187 }
8188 0
8189 }
8190 }
8191
8192 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcEapolConfRequest {
8193 type Borrowed<'a> = &'a Self;
8194 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
8195 value
8196 }
8197 }
8198
8199 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcEapolConfRequest {
8200 type Owned = Self;
8201
8202 #[inline(always)]
8203 fn inline_align(_context: fidl::encoding::Context) -> usize {
8204 8
8205 }
8206
8207 #[inline(always)]
8208 fn inline_size(_context: fidl::encoding::Context) -> usize {
8209 16
8210 }
8211 }
8212
8213 unsafe impl<D: fidl::encoding::ResourceDialect>
8214 fidl::encoding::Encode<WlanFullmacImplIfcEapolConfRequest, D>
8215 for &WlanFullmacImplIfcEapolConfRequest
8216 {
8217 unsafe fn encode(
8218 self,
8219 encoder: &mut fidl::encoding::Encoder<'_, D>,
8220 offset: usize,
8221 mut depth: fidl::encoding::Depth,
8222 ) -> fidl::Result<()> {
8223 encoder.debug_check_bounds::<WlanFullmacImplIfcEapolConfRequest>(offset);
8224 let max_ordinal: u64 = self.max_ordinal_present();
8226 encoder.write_num(max_ordinal, offset);
8227 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
8228 if max_ordinal == 0 {
8230 return Ok(());
8231 }
8232 depth.increment()?;
8233 let envelope_size = 8;
8234 let bytes_len = max_ordinal as usize * envelope_size;
8235 #[allow(unused_variables)]
8236 let offset = encoder.out_of_line_offset(bytes_len);
8237 let mut _prev_end_offset: usize = 0;
8238 if 1 > max_ordinal {
8239 return Ok(());
8240 }
8241
8242 let cur_offset: usize = (1 - 1) * envelope_size;
8245
8246 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8248
8249 fidl::encoding::encode_in_envelope_optional::<EapolTxResult, D>(
8254 self.result_code
8255 .as_ref()
8256 .map(<EapolTxResult as fidl::encoding::ValueTypeMarker>::borrow),
8257 encoder,
8258 offset + cur_offset,
8259 depth,
8260 )?;
8261
8262 _prev_end_offset = cur_offset + envelope_size;
8263 if 2 > max_ordinal {
8264 return Ok(());
8265 }
8266
8267 let cur_offset: usize = (2 - 1) * envelope_size;
8270
8271 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8273
8274 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
8279 self.dst_addr
8280 .as_ref()
8281 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
8282 encoder,
8283 offset + cur_offset,
8284 depth,
8285 )?;
8286
8287 _prev_end_offset = cur_offset + envelope_size;
8288
8289 Ok(())
8290 }
8291 }
8292
8293 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
8294 for WlanFullmacImplIfcEapolConfRequest
8295 {
8296 #[inline(always)]
8297 fn new_empty() -> Self {
8298 Self::default()
8299 }
8300
8301 unsafe fn decode(
8302 &mut self,
8303 decoder: &mut fidl::encoding::Decoder<'_, D>,
8304 offset: usize,
8305 mut depth: fidl::encoding::Depth,
8306 ) -> fidl::Result<()> {
8307 decoder.debug_check_bounds::<Self>(offset);
8308 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
8309 None => return Err(fidl::Error::NotNullable),
8310 Some(len) => len,
8311 };
8312 if len == 0 {
8314 return Ok(());
8315 };
8316 depth.increment()?;
8317 let envelope_size = 8;
8318 let bytes_len = len * envelope_size;
8319 let offset = decoder.out_of_line_offset(bytes_len)?;
8320 let mut _next_ordinal_to_read = 0;
8322 let mut next_offset = offset;
8323 let end_offset = offset + bytes_len;
8324 _next_ordinal_to_read += 1;
8325 if next_offset >= end_offset {
8326 return Ok(());
8327 }
8328
8329 while _next_ordinal_to_read < 1 {
8331 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8332 _next_ordinal_to_read += 1;
8333 next_offset += envelope_size;
8334 }
8335
8336 let next_out_of_line = decoder.next_out_of_line();
8337 let handles_before = decoder.remaining_handles();
8338 if let Some((inlined, num_bytes, num_handles)) =
8339 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8340 {
8341 let member_inline_size =
8342 <EapolTxResult as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8343 if inlined != (member_inline_size <= 4) {
8344 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8345 }
8346 let inner_offset;
8347 let mut inner_depth = depth.clone();
8348 if inlined {
8349 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8350 inner_offset = next_offset;
8351 } else {
8352 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8353 inner_depth.increment()?;
8354 }
8355 let val_ref =
8356 self.result_code.get_or_insert_with(|| fidl::new_empty!(EapolTxResult, D));
8357 fidl::decode!(EapolTxResult, D, val_ref, decoder, inner_offset, inner_depth)?;
8358 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8359 {
8360 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8361 }
8362 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8363 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8364 }
8365 }
8366
8367 next_offset += envelope_size;
8368 _next_ordinal_to_read += 1;
8369 if next_offset >= end_offset {
8370 return Ok(());
8371 }
8372
8373 while _next_ordinal_to_read < 2 {
8375 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8376 _next_ordinal_to_read += 1;
8377 next_offset += envelope_size;
8378 }
8379
8380 let next_out_of_line = decoder.next_out_of_line();
8381 let handles_before = decoder.remaining_handles();
8382 if let Some((inlined, num_bytes, num_handles)) =
8383 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8384 {
8385 let member_inline_size =
8386 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
8387 decoder.context,
8388 );
8389 if inlined != (member_inline_size <= 4) {
8390 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8391 }
8392 let inner_offset;
8393 let mut inner_depth = depth.clone();
8394 if inlined {
8395 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8396 inner_offset = next_offset;
8397 } else {
8398 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8399 inner_depth.increment()?;
8400 }
8401 let val_ref = self
8402 .dst_addr
8403 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
8404 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
8405 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8406 {
8407 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8408 }
8409 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8410 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8411 }
8412 }
8413
8414 next_offset += envelope_size;
8415
8416 while next_offset < end_offset {
8418 _next_ordinal_to_read += 1;
8419 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8420 next_offset += envelope_size;
8421 }
8422
8423 Ok(())
8424 }
8425 }
8426
8427 impl WlanFullmacImplIfcEapolIndRequest {
8428 #[inline(always)]
8429 fn max_ordinal_present(&self) -> u64 {
8430 if let Some(_) = self.data {
8431 return 3;
8432 }
8433 if let Some(_) = self.dst_addr {
8434 return 2;
8435 }
8436 if let Some(_) = self.src_addr {
8437 return 1;
8438 }
8439 0
8440 }
8441 }
8442
8443 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcEapolIndRequest {
8444 type Borrowed<'a> = &'a Self;
8445 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
8446 value
8447 }
8448 }
8449
8450 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcEapolIndRequest {
8451 type Owned = Self;
8452
8453 #[inline(always)]
8454 fn inline_align(_context: fidl::encoding::Context) -> usize {
8455 8
8456 }
8457
8458 #[inline(always)]
8459 fn inline_size(_context: fidl::encoding::Context) -> usize {
8460 16
8461 }
8462 }
8463
8464 unsafe impl<D: fidl::encoding::ResourceDialect>
8465 fidl::encoding::Encode<WlanFullmacImplIfcEapolIndRequest, D>
8466 for &WlanFullmacImplIfcEapolIndRequest
8467 {
8468 unsafe fn encode(
8469 self,
8470 encoder: &mut fidl::encoding::Encoder<'_, D>,
8471 offset: usize,
8472 mut depth: fidl::encoding::Depth,
8473 ) -> fidl::Result<()> {
8474 encoder.debug_check_bounds::<WlanFullmacImplIfcEapolIndRequest>(offset);
8475 let max_ordinal: u64 = self.max_ordinal_present();
8477 encoder.write_num(max_ordinal, offset);
8478 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
8479 if max_ordinal == 0 {
8481 return Ok(());
8482 }
8483 depth.increment()?;
8484 let envelope_size = 8;
8485 let bytes_len = max_ordinal as usize * envelope_size;
8486 #[allow(unused_variables)]
8487 let offset = encoder.out_of_line_offset(bytes_len);
8488 let mut _prev_end_offset: usize = 0;
8489 if 1 > max_ordinal {
8490 return Ok(());
8491 }
8492
8493 let cur_offset: usize = (1 - 1) * envelope_size;
8496
8497 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8499
8500 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
8505 self.src_addr
8506 .as_ref()
8507 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
8508 encoder,
8509 offset + cur_offset,
8510 depth,
8511 )?;
8512
8513 _prev_end_offset = cur_offset + envelope_size;
8514 if 2 > max_ordinal {
8515 return Ok(());
8516 }
8517
8518 let cur_offset: usize = (2 - 1) * envelope_size;
8521
8522 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8524
8525 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
8530 self.dst_addr
8531 .as_ref()
8532 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
8533 encoder,
8534 offset + cur_offset,
8535 depth,
8536 )?;
8537
8538 _prev_end_offset = cur_offset + envelope_size;
8539 if 3 > max_ordinal {
8540 return Ok(());
8541 }
8542
8543 let cur_offset: usize = (3 - 1) * envelope_size;
8546
8547 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8549
8550 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<u8>, D>(
8555 self.data.as_ref().map(<fidl::encoding::UnboundedVector<u8> as fidl::encoding::ValueTypeMarker>::borrow),
8556 encoder, offset + cur_offset, depth
8557 )?;
8558
8559 _prev_end_offset = cur_offset + envelope_size;
8560
8561 Ok(())
8562 }
8563 }
8564
8565 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
8566 for WlanFullmacImplIfcEapolIndRequest
8567 {
8568 #[inline(always)]
8569 fn new_empty() -> Self {
8570 Self::default()
8571 }
8572
8573 unsafe fn decode(
8574 &mut self,
8575 decoder: &mut fidl::encoding::Decoder<'_, D>,
8576 offset: usize,
8577 mut depth: fidl::encoding::Depth,
8578 ) -> fidl::Result<()> {
8579 decoder.debug_check_bounds::<Self>(offset);
8580 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
8581 None => return Err(fidl::Error::NotNullable),
8582 Some(len) => len,
8583 };
8584 if len == 0 {
8586 return Ok(());
8587 };
8588 depth.increment()?;
8589 let envelope_size = 8;
8590 let bytes_len = len * envelope_size;
8591 let offset = decoder.out_of_line_offset(bytes_len)?;
8592 let mut _next_ordinal_to_read = 0;
8594 let mut next_offset = offset;
8595 let end_offset = offset + bytes_len;
8596 _next_ordinal_to_read += 1;
8597 if next_offset >= end_offset {
8598 return Ok(());
8599 }
8600
8601 while _next_ordinal_to_read < 1 {
8603 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8604 _next_ordinal_to_read += 1;
8605 next_offset += envelope_size;
8606 }
8607
8608 let next_out_of_line = decoder.next_out_of_line();
8609 let handles_before = decoder.remaining_handles();
8610 if let Some((inlined, num_bytes, num_handles)) =
8611 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8612 {
8613 let member_inline_size =
8614 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
8615 decoder.context,
8616 );
8617 if inlined != (member_inline_size <= 4) {
8618 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8619 }
8620 let inner_offset;
8621 let mut inner_depth = depth.clone();
8622 if inlined {
8623 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8624 inner_offset = next_offset;
8625 } else {
8626 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8627 inner_depth.increment()?;
8628 }
8629 let val_ref = self
8630 .src_addr
8631 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
8632 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
8633 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8634 {
8635 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8636 }
8637 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8638 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8639 }
8640 }
8641
8642 next_offset += envelope_size;
8643 _next_ordinal_to_read += 1;
8644 if next_offset >= end_offset {
8645 return Ok(());
8646 }
8647
8648 while _next_ordinal_to_read < 2 {
8650 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8651 _next_ordinal_to_read += 1;
8652 next_offset += envelope_size;
8653 }
8654
8655 let next_out_of_line = decoder.next_out_of_line();
8656 let handles_before = decoder.remaining_handles();
8657 if let Some((inlined, num_bytes, num_handles)) =
8658 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8659 {
8660 let member_inline_size =
8661 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
8662 decoder.context,
8663 );
8664 if inlined != (member_inline_size <= 4) {
8665 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8666 }
8667 let inner_offset;
8668 let mut inner_depth = depth.clone();
8669 if inlined {
8670 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8671 inner_offset = next_offset;
8672 } else {
8673 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8674 inner_depth.increment()?;
8675 }
8676 let val_ref = self
8677 .dst_addr
8678 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
8679 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
8680 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8681 {
8682 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8683 }
8684 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8685 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8686 }
8687 }
8688
8689 next_offset += envelope_size;
8690 _next_ordinal_to_read += 1;
8691 if next_offset >= end_offset {
8692 return Ok(());
8693 }
8694
8695 while _next_ordinal_to_read < 3 {
8697 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8698 _next_ordinal_to_read += 1;
8699 next_offset += envelope_size;
8700 }
8701
8702 let next_out_of_line = decoder.next_out_of_line();
8703 let handles_before = decoder.remaining_handles();
8704 if let Some((inlined, num_bytes, num_handles)) =
8705 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8706 {
8707 let member_inline_size = <fidl::encoding::UnboundedVector<u8> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8708 if inlined != (member_inline_size <= 4) {
8709 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8710 }
8711 let inner_offset;
8712 let mut inner_depth = depth.clone();
8713 if inlined {
8714 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8715 inner_offset = next_offset;
8716 } else {
8717 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8718 inner_depth.increment()?;
8719 }
8720 let val_ref = self.data.get_or_insert_with(|| {
8721 fidl::new_empty!(fidl::encoding::UnboundedVector<u8>, D)
8722 });
8723 fidl::decode!(
8724 fidl::encoding::UnboundedVector<u8>,
8725 D,
8726 val_ref,
8727 decoder,
8728 inner_offset,
8729 inner_depth
8730 )?;
8731 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8732 {
8733 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8734 }
8735 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8736 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8737 }
8738 }
8739
8740 next_offset += envelope_size;
8741
8742 while next_offset < end_offset {
8744 _next_ordinal_to_read += 1;
8745 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8746 next_offset += envelope_size;
8747 }
8748
8749 Ok(())
8750 }
8751 }
8752
8753 impl WlanFullmacImplIfcOnPmkAvailableRequest {
8754 #[inline(always)]
8755 fn max_ordinal_present(&self) -> u64 {
8756 if let Some(_) = self.pmkid {
8757 return 2;
8758 }
8759 if let Some(_) = self.pmk {
8760 return 1;
8761 }
8762 0
8763 }
8764 }
8765
8766 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcOnPmkAvailableRequest {
8767 type Borrowed<'a> = &'a Self;
8768 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
8769 value
8770 }
8771 }
8772
8773 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcOnPmkAvailableRequest {
8774 type Owned = Self;
8775
8776 #[inline(always)]
8777 fn inline_align(_context: fidl::encoding::Context) -> usize {
8778 8
8779 }
8780
8781 #[inline(always)]
8782 fn inline_size(_context: fidl::encoding::Context) -> usize {
8783 16
8784 }
8785 }
8786
8787 unsafe impl<D: fidl::encoding::ResourceDialect>
8788 fidl::encoding::Encode<WlanFullmacImplIfcOnPmkAvailableRequest, D>
8789 for &WlanFullmacImplIfcOnPmkAvailableRequest
8790 {
8791 unsafe fn encode(
8792 self,
8793 encoder: &mut fidl::encoding::Encoder<'_, D>,
8794 offset: usize,
8795 mut depth: fidl::encoding::Depth,
8796 ) -> fidl::Result<()> {
8797 encoder.debug_check_bounds::<WlanFullmacImplIfcOnPmkAvailableRequest>(offset);
8798 let max_ordinal: u64 = self.max_ordinal_present();
8800 encoder.write_num(max_ordinal, offset);
8801 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
8802 if max_ordinal == 0 {
8804 return Ok(());
8805 }
8806 depth.increment()?;
8807 let envelope_size = 8;
8808 let bytes_len = max_ordinal as usize * envelope_size;
8809 #[allow(unused_variables)]
8810 let offset = encoder.out_of_line_offset(bytes_len);
8811 let mut _prev_end_offset: usize = 0;
8812 if 1 > max_ordinal {
8813 return Ok(());
8814 }
8815
8816 let cur_offset: usize = (1 - 1) * envelope_size;
8819
8820 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8822
8823 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<u8>, D>(
8828 self.pmk.as_ref().map(<fidl::encoding::UnboundedVector<u8> as fidl::encoding::ValueTypeMarker>::borrow),
8829 encoder, offset + cur_offset, depth
8830 )?;
8831
8832 _prev_end_offset = cur_offset + envelope_size;
8833 if 2 > max_ordinal {
8834 return Ok(());
8835 }
8836
8837 let cur_offset: usize = (2 - 1) * envelope_size;
8840
8841 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8843
8844 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<u8>, D>(
8849 self.pmkid.as_ref().map(<fidl::encoding::UnboundedVector<u8> as fidl::encoding::ValueTypeMarker>::borrow),
8850 encoder, offset + cur_offset, depth
8851 )?;
8852
8853 _prev_end_offset = cur_offset + envelope_size;
8854
8855 Ok(())
8856 }
8857 }
8858
8859 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
8860 for WlanFullmacImplIfcOnPmkAvailableRequest
8861 {
8862 #[inline(always)]
8863 fn new_empty() -> Self {
8864 Self::default()
8865 }
8866
8867 unsafe fn decode(
8868 &mut self,
8869 decoder: &mut fidl::encoding::Decoder<'_, D>,
8870 offset: usize,
8871 mut depth: fidl::encoding::Depth,
8872 ) -> fidl::Result<()> {
8873 decoder.debug_check_bounds::<Self>(offset);
8874 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
8875 None => return Err(fidl::Error::NotNullable),
8876 Some(len) => len,
8877 };
8878 if len == 0 {
8880 return Ok(());
8881 };
8882 depth.increment()?;
8883 let envelope_size = 8;
8884 let bytes_len = len * envelope_size;
8885 let offset = decoder.out_of_line_offset(bytes_len)?;
8886 let mut _next_ordinal_to_read = 0;
8888 let mut next_offset = offset;
8889 let end_offset = offset + bytes_len;
8890 _next_ordinal_to_read += 1;
8891 if next_offset >= end_offset {
8892 return Ok(());
8893 }
8894
8895 while _next_ordinal_to_read < 1 {
8897 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8898 _next_ordinal_to_read += 1;
8899 next_offset += envelope_size;
8900 }
8901
8902 let next_out_of_line = decoder.next_out_of_line();
8903 let handles_before = decoder.remaining_handles();
8904 if let Some((inlined, num_bytes, num_handles)) =
8905 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8906 {
8907 let member_inline_size = <fidl::encoding::UnboundedVector<u8> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8908 if inlined != (member_inline_size <= 4) {
8909 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8910 }
8911 let inner_offset;
8912 let mut inner_depth = depth.clone();
8913 if inlined {
8914 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8915 inner_offset = next_offset;
8916 } else {
8917 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8918 inner_depth.increment()?;
8919 }
8920 let val_ref = self.pmk.get_or_insert_with(|| {
8921 fidl::new_empty!(fidl::encoding::UnboundedVector<u8>, D)
8922 });
8923 fidl::decode!(
8924 fidl::encoding::UnboundedVector<u8>,
8925 D,
8926 val_ref,
8927 decoder,
8928 inner_offset,
8929 inner_depth
8930 )?;
8931 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8932 {
8933 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8934 }
8935 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8936 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8937 }
8938 }
8939
8940 next_offset += envelope_size;
8941 _next_ordinal_to_read += 1;
8942 if next_offset >= end_offset {
8943 return Ok(());
8944 }
8945
8946 while _next_ordinal_to_read < 2 {
8948 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8949 _next_ordinal_to_read += 1;
8950 next_offset += envelope_size;
8951 }
8952
8953 let next_out_of_line = decoder.next_out_of_line();
8954 let handles_before = decoder.remaining_handles();
8955 if let Some((inlined, num_bytes, num_handles)) =
8956 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8957 {
8958 let member_inline_size = <fidl::encoding::UnboundedVector<u8> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8959 if inlined != (member_inline_size <= 4) {
8960 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8961 }
8962 let inner_offset;
8963 let mut inner_depth = depth.clone();
8964 if inlined {
8965 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8966 inner_offset = next_offset;
8967 } else {
8968 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8969 inner_depth.increment()?;
8970 }
8971 let val_ref = self.pmkid.get_or_insert_with(|| {
8972 fidl::new_empty!(fidl::encoding::UnboundedVector<u8>, D)
8973 });
8974 fidl::decode!(
8975 fidl::encoding::UnboundedVector<u8>,
8976 D,
8977 val_ref,
8978 decoder,
8979 inner_offset,
8980 inner_depth
8981 )?;
8982 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8983 {
8984 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8985 }
8986 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8987 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8988 }
8989 }
8990
8991 next_offset += envelope_size;
8992
8993 while next_offset < end_offset {
8995 _next_ordinal_to_read += 1;
8996 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8997 next_offset += envelope_size;
8998 }
8999
9000 Ok(())
9001 }
9002 }
9003
9004 impl WlanFullmacImplIfcOnRssiThresholdBreachedRequest {
9005 #[inline(always)]
9006 fn max_ordinal_present(&self) -> u64 {
9007 if let Some(_) = self.cur_rssi_dbm {
9008 return 1;
9009 }
9010 0
9011 }
9012 }
9013
9014 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcOnRssiThresholdBreachedRequest {
9015 type Borrowed<'a> = &'a Self;
9016 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
9017 value
9018 }
9019 }
9020
9021 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcOnRssiThresholdBreachedRequest {
9022 type Owned = Self;
9023
9024 #[inline(always)]
9025 fn inline_align(_context: fidl::encoding::Context) -> usize {
9026 8
9027 }
9028
9029 #[inline(always)]
9030 fn inline_size(_context: fidl::encoding::Context) -> usize {
9031 16
9032 }
9033 }
9034
9035 unsafe impl<D: fidl::encoding::ResourceDialect>
9036 fidl::encoding::Encode<WlanFullmacImplIfcOnRssiThresholdBreachedRequest, D>
9037 for &WlanFullmacImplIfcOnRssiThresholdBreachedRequest
9038 {
9039 unsafe fn encode(
9040 self,
9041 encoder: &mut fidl::encoding::Encoder<'_, D>,
9042 offset: usize,
9043 mut depth: fidl::encoding::Depth,
9044 ) -> fidl::Result<()> {
9045 encoder.debug_check_bounds::<WlanFullmacImplIfcOnRssiThresholdBreachedRequest>(offset);
9046 let max_ordinal: u64 = self.max_ordinal_present();
9048 encoder.write_num(max_ordinal, offset);
9049 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
9050 if max_ordinal == 0 {
9052 return Ok(());
9053 }
9054 depth.increment()?;
9055 let envelope_size = 8;
9056 let bytes_len = max_ordinal as usize * envelope_size;
9057 #[allow(unused_variables)]
9058 let offset = encoder.out_of_line_offset(bytes_len);
9059 let mut _prev_end_offset: usize = 0;
9060 if 1 > max_ordinal {
9061 return Ok(());
9062 }
9063
9064 let cur_offset: usize = (1 - 1) * envelope_size;
9067
9068 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9070
9071 fidl::encoding::encode_in_envelope_optional::<i8, D>(
9076 self.cur_rssi_dbm.as_ref().map(<i8 as fidl::encoding::ValueTypeMarker>::borrow),
9077 encoder,
9078 offset + cur_offset,
9079 depth,
9080 )?;
9081
9082 _prev_end_offset = cur_offset + envelope_size;
9083
9084 Ok(())
9085 }
9086 }
9087
9088 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
9089 for WlanFullmacImplIfcOnRssiThresholdBreachedRequest
9090 {
9091 #[inline(always)]
9092 fn new_empty() -> Self {
9093 Self::default()
9094 }
9095
9096 unsafe fn decode(
9097 &mut self,
9098 decoder: &mut fidl::encoding::Decoder<'_, D>,
9099 offset: usize,
9100 mut depth: fidl::encoding::Depth,
9101 ) -> fidl::Result<()> {
9102 decoder.debug_check_bounds::<Self>(offset);
9103 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
9104 None => return Err(fidl::Error::NotNullable),
9105 Some(len) => len,
9106 };
9107 if len == 0 {
9109 return Ok(());
9110 };
9111 depth.increment()?;
9112 let envelope_size = 8;
9113 let bytes_len = len * envelope_size;
9114 let offset = decoder.out_of_line_offset(bytes_len)?;
9115 let mut _next_ordinal_to_read = 0;
9117 let mut next_offset = offset;
9118 let end_offset = offset + bytes_len;
9119 _next_ordinal_to_read += 1;
9120 if next_offset >= end_offset {
9121 return Ok(());
9122 }
9123
9124 while _next_ordinal_to_read < 1 {
9126 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9127 _next_ordinal_to_read += 1;
9128 next_offset += envelope_size;
9129 }
9130
9131 let next_out_of_line = decoder.next_out_of_line();
9132 let handles_before = decoder.remaining_handles();
9133 if let Some((inlined, num_bytes, num_handles)) =
9134 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9135 {
9136 let member_inline_size =
9137 <i8 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
9138 if inlined != (member_inline_size <= 4) {
9139 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9140 }
9141 let inner_offset;
9142 let mut inner_depth = depth.clone();
9143 if inlined {
9144 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9145 inner_offset = next_offset;
9146 } else {
9147 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9148 inner_depth.increment()?;
9149 }
9150 let val_ref = self.cur_rssi_dbm.get_or_insert_with(|| fidl::new_empty!(i8, D));
9151 fidl::decode!(i8, D, val_ref, decoder, inner_offset, inner_depth)?;
9152 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9153 {
9154 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9155 }
9156 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9157 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9158 }
9159 }
9160
9161 next_offset += envelope_size;
9162
9163 while next_offset < end_offset {
9165 _next_ordinal_to_read += 1;
9166 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9167 next_offset += envelope_size;
9168 }
9169
9170 Ok(())
9171 }
9172 }
9173
9174 impl WlanFullmacImplIfcOnScanEndRequest {
9175 #[inline(always)]
9176 fn max_ordinal_present(&self) -> u64 {
9177 if let Some(_) = self.code {
9178 return 2;
9179 }
9180 if let Some(_) = self.txn_id {
9181 return 1;
9182 }
9183 0
9184 }
9185 }
9186
9187 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcOnScanEndRequest {
9188 type Borrowed<'a> = &'a Self;
9189 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
9190 value
9191 }
9192 }
9193
9194 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcOnScanEndRequest {
9195 type Owned = Self;
9196
9197 #[inline(always)]
9198 fn inline_align(_context: fidl::encoding::Context) -> usize {
9199 8
9200 }
9201
9202 #[inline(always)]
9203 fn inline_size(_context: fidl::encoding::Context) -> usize {
9204 16
9205 }
9206 }
9207
9208 unsafe impl<D: fidl::encoding::ResourceDialect>
9209 fidl::encoding::Encode<WlanFullmacImplIfcOnScanEndRequest, D>
9210 for &WlanFullmacImplIfcOnScanEndRequest
9211 {
9212 unsafe fn encode(
9213 self,
9214 encoder: &mut fidl::encoding::Encoder<'_, D>,
9215 offset: usize,
9216 mut depth: fidl::encoding::Depth,
9217 ) -> fidl::Result<()> {
9218 encoder.debug_check_bounds::<WlanFullmacImplIfcOnScanEndRequest>(offset);
9219 let max_ordinal: u64 = self.max_ordinal_present();
9221 encoder.write_num(max_ordinal, offset);
9222 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
9223 if max_ordinal == 0 {
9225 return Ok(());
9226 }
9227 depth.increment()?;
9228 let envelope_size = 8;
9229 let bytes_len = max_ordinal as usize * envelope_size;
9230 #[allow(unused_variables)]
9231 let offset = encoder.out_of_line_offset(bytes_len);
9232 let mut _prev_end_offset: usize = 0;
9233 if 1 > max_ordinal {
9234 return Ok(());
9235 }
9236
9237 let cur_offset: usize = (1 - 1) * envelope_size;
9240
9241 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9243
9244 fidl::encoding::encode_in_envelope_optional::<u64, D>(
9249 self.txn_id.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
9250 encoder,
9251 offset + cur_offset,
9252 depth,
9253 )?;
9254
9255 _prev_end_offset = cur_offset + envelope_size;
9256 if 2 > max_ordinal {
9257 return Ok(());
9258 }
9259
9260 let cur_offset: usize = (2 - 1) * envelope_size;
9263
9264 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9266
9267 fidl::encoding::encode_in_envelope_optional::<WlanScanResult, D>(
9272 self.code.as_ref().map(<WlanScanResult as fidl::encoding::ValueTypeMarker>::borrow),
9273 encoder,
9274 offset + cur_offset,
9275 depth,
9276 )?;
9277
9278 _prev_end_offset = cur_offset + envelope_size;
9279
9280 Ok(())
9281 }
9282 }
9283
9284 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
9285 for WlanFullmacImplIfcOnScanEndRequest
9286 {
9287 #[inline(always)]
9288 fn new_empty() -> Self {
9289 Self::default()
9290 }
9291
9292 unsafe fn decode(
9293 &mut self,
9294 decoder: &mut fidl::encoding::Decoder<'_, D>,
9295 offset: usize,
9296 mut depth: fidl::encoding::Depth,
9297 ) -> fidl::Result<()> {
9298 decoder.debug_check_bounds::<Self>(offset);
9299 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
9300 None => return Err(fidl::Error::NotNullable),
9301 Some(len) => len,
9302 };
9303 if len == 0 {
9305 return Ok(());
9306 };
9307 depth.increment()?;
9308 let envelope_size = 8;
9309 let bytes_len = len * envelope_size;
9310 let offset = decoder.out_of_line_offset(bytes_len)?;
9311 let mut _next_ordinal_to_read = 0;
9313 let mut next_offset = offset;
9314 let end_offset = offset + bytes_len;
9315 _next_ordinal_to_read += 1;
9316 if next_offset >= end_offset {
9317 return Ok(());
9318 }
9319
9320 while _next_ordinal_to_read < 1 {
9322 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9323 _next_ordinal_to_read += 1;
9324 next_offset += envelope_size;
9325 }
9326
9327 let next_out_of_line = decoder.next_out_of_line();
9328 let handles_before = decoder.remaining_handles();
9329 if let Some((inlined, num_bytes, num_handles)) =
9330 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9331 {
9332 let member_inline_size =
9333 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
9334 if inlined != (member_inline_size <= 4) {
9335 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9336 }
9337 let inner_offset;
9338 let mut inner_depth = depth.clone();
9339 if inlined {
9340 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9341 inner_offset = next_offset;
9342 } else {
9343 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9344 inner_depth.increment()?;
9345 }
9346 let val_ref = self.txn_id.get_or_insert_with(|| fidl::new_empty!(u64, D));
9347 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
9348 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9349 {
9350 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9351 }
9352 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9353 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9354 }
9355 }
9356
9357 next_offset += envelope_size;
9358 _next_ordinal_to_read += 1;
9359 if next_offset >= end_offset {
9360 return Ok(());
9361 }
9362
9363 while _next_ordinal_to_read < 2 {
9365 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9366 _next_ordinal_to_read += 1;
9367 next_offset += envelope_size;
9368 }
9369
9370 let next_out_of_line = decoder.next_out_of_line();
9371 let handles_before = decoder.remaining_handles();
9372 if let Some((inlined, num_bytes, num_handles)) =
9373 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9374 {
9375 let member_inline_size =
9376 <WlanScanResult as fidl::encoding::TypeMarker>::inline_size(decoder.context);
9377 if inlined != (member_inline_size <= 4) {
9378 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9379 }
9380 let inner_offset;
9381 let mut inner_depth = depth.clone();
9382 if inlined {
9383 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9384 inner_offset = next_offset;
9385 } else {
9386 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9387 inner_depth.increment()?;
9388 }
9389 let val_ref = self.code.get_or_insert_with(|| fidl::new_empty!(WlanScanResult, D));
9390 fidl::decode!(WlanScanResult, D, val_ref, decoder, inner_offset, inner_depth)?;
9391 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9392 {
9393 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9394 }
9395 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9396 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9397 }
9398 }
9399
9400 next_offset += envelope_size;
9401
9402 while next_offset < end_offset {
9404 _next_ordinal_to_read += 1;
9405 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9406 next_offset += envelope_size;
9407 }
9408
9409 Ok(())
9410 }
9411 }
9412
9413 impl WlanFullmacImplIfcOnScanResultRequest {
9414 #[inline(always)]
9415 fn max_ordinal_present(&self) -> u64 {
9416 if let Some(_) = self.bss {
9417 return 3;
9418 }
9419 if let Some(_) = self.timestamp_nanos {
9420 return 2;
9421 }
9422 if let Some(_) = self.txn_id {
9423 return 1;
9424 }
9425 0
9426 }
9427 }
9428
9429 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcOnScanResultRequest {
9430 type Borrowed<'a> = &'a Self;
9431 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
9432 value
9433 }
9434 }
9435
9436 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcOnScanResultRequest {
9437 type Owned = Self;
9438
9439 #[inline(always)]
9440 fn inline_align(_context: fidl::encoding::Context) -> usize {
9441 8
9442 }
9443
9444 #[inline(always)]
9445 fn inline_size(_context: fidl::encoding::Context) -> usize {
9446 16
9447 }
9448 }
9449
9450 unsafe impl<D: fidl::encoding::ResourceDialect>
9451 fidl::encoding::Encode<WlanFullmacImplIfcOnScanResultRequest, D>
9452 for &WlanFullmacImplIfcOnScanResultRequest
9453 {
9454 unsafe fn encode(
9455 self,
9456 encoder: &mut fidl::encoding::Encoder<'_, D>,
9457 offset: usize,
9458 mut depth: fidl::encoding::Depth,
9459 ) -> fidl::Result<()> {
9460 encoder.debug_check_bounds::<WlanFullmacImplIfcOnScanResultRequest>(offset);
9461 let max_ordinal: u64 = self.max_ordinal_present();
9463 encoder.write_num(max_ordinal, offset);
9464 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
9465 if max_ordinal == 0 {
9467 return Ok(());
9468 }
9469 depth.increment()?;
9470 let envelope_size = 8;
9471 let bytes_len = max_ordinal as usize * envelope_size;
9472 #[allow(unused_variables)]
9473 let offset = encoder.out_of_line_offset(bytes_len);
9474 let mut _prev_end_offset: usize = 0;
9475 if 1 > max_ordinal {
9476 return Ok(());
9477 }
9478
9479 let cur_offset: usize = (1 - 1) * envelope_size;
9482
9483 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9485
9486 fidl::encoding::encode_in_envelope_optional::<u64, D>(
9491 self.txn_id.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
9492 encoder,
9493 offset + cur_offset,
9494 depth,
9495 )?;
9496
9497 _prev_end_offset = cur_offset + envelope_size;
9498 if 2 > max_ordinal {
9499 return Ok(());
9500 }
9501
9502 let cur_offset: usize = (2 - 1) * envelope_size;
9505
9506 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9508
9509 fidl::encoding::encode_in_envelope_optional::<i64, D>(
9514 self.timestamp_nanos.as_ref().map(<i64 as fidl::encoding::ValueTypeMarker>::borrow),
9515 encoder,
9516 offset + cur_offset,
9517 depth,
9518 )?;
9519
9520 _prev_end_offset = cur_offset + envelope_size;
9521 if 3 > max_ordinal {
9522 return Ok(());
9523 }
9524
9525 let cur_offset: usize = (3 - 1) * envelope_size;
9528
9529 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9531
9532 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_ieee80211_common::BssDescription, D>(
9537 self.bss.as_ref().map(<fidl_fuchsia_wlan_ieee80211_common::BssDescription as fidl::encoding::ValueTypeMarker>::borrow),
9538 encoder, offset + cur_offset, depth
9539 )?;
9540
9541 _prev_end_offset = cur_offset + envelope_size;
9542
9543 Ok(())
9544 }
9545 }
9546
9547 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
9548 for WlanFullmacImplIfcOnScanResultRequest
9549 {
9550 #[inline(always)]
9551 fn new_empty() -> Self {
9552 Self::default()
9553 }
9554
9555 unsafe fn decode(
9556 &mut self,
9557 decoder: &mut fidl::encoding::Decoder<'_, D>,
9558 offset: usize,
9559 mut depth: fidl::encoding::Depth,
9560 ) -> fidl::Result<()> {
9561 decoder.debug_check_bounds::<Self>(offset);
9562 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
9563 None => return Err(fidl::Error::NotNullable),
9564 Some(len) => len,
9565 };
9566 if len == 0 {
9568 return Ok(());
9569 };
9570 depth.increment()?;
9571 let envelope_size = 8;
9572 let bytes_len = len * envelope_size;
9573 let offset = decoder.out_of_line_offset(bytes_len)?;
9574 let mut _next_ordinal_to_read = 0;
9576 let mut next_offset = offset;
9577 let end_offset = offset + bytes_len;
9578 _next_ordinal_to_read += 1;
9579 if next_offset >= end_offset {
9580 return Ok(());
9581 }
9582
9583 while _next_ordinal_to_read < 1 {
9585 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9586 _next_ordinal_to_read += 1;
9587 next_offset += envelope_size;
9588 }
9589
9590 let next_out_of_line = decoder.next_out_of_line();
9591 let handles_before = decoder.remaining_handles();
9592 if let Some((inlined, num_bytes, num_handles)) =
9593 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9594 {
9595 let member_inline_size =
9596 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
9597 if inlined != (member_inline_size <= 4) {
9598 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9599 }
9600 let inner_offset;
9601 let mut inner_depth = depth.clone();
9602 if inlined {
9603 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9604 inner_offset = next_offset;
9605 } else {
9606 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9607 inner_depth.increment()?;
9608 }
9609 let val_ref = self.txn_id.get_or_insert_with(|| fidl::new_empty!(u64, D));
9610 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
9611 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9612 {
9613 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9614 }
9615 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9616 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9617 }
9618 }
9619
9620 next_offset += envelope_size;
9621 _next_ordinal_to_read += 1;
9622 if next_offset >= end_offset {
9623 return Ok(());
9624 }
9625
9626 while _next_ordinal_to_read < 2 {
9628 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9629 _next_ordinal_to_read += 1;
9630 next_offset += envelope_size;
9631 }
9632
9633 let next_out_of_line = decoder.next_out_of_line();
9634 let handles_before = decoder.remaining_handles();
9635 if let Some((inlined, num_bytes, num_handles)) =
9636 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9637 {
9638 let member_inline_size =
9639 <i64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
9640 if inlined != (member_inline_size <= 4) {
9641 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9642 }
9643 let inner_offset;
9644 let mut inner_depth = depth.clone();
9645 if inlined {
9646 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9647 inner_offset = next_offset;
9648 } else {
9649 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9650 inner_depth.increment()?;
9651 }
9652 let val_ref = self.timestamp_nanos.get_or_insert_with(|| fidl::new_empty!(i64, D));
9653 fidl::decode!(i64, D, val_ref, decoder, inner_offset, inner_depth)?;
9654 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9655 {
9656 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9657 }
9658 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9659 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9660 }
9661 }
9662
9663 next_offset += envelope_size;
9664 _next_ordinal_to_read += 1;
9665 if next_offset >= end_offset {
9666 return Ok(());
9667 }
9668
9669 while _next_ordinal_to_read < 3 {
9671 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9672 _next_ordinal_to_read += 1;
9673 next_offset += envelope_size;
9674 }
9675
9676 let next_out_of_line = decoder.next_out_of_line();
9677 let handles_before = decoder.remaining_handles();
9678 if let Some((inlined, num_bytes, num_handles)) =
9679 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9680 {
9681 let member_inline_size = <fidl_fuchsia_wlan_ieee80211_common::BssDescription as fidl::encoding::TypeMarker>::inline_size(decoder.context);
9682 if inlined != (member_inline_size <= 4) {
9683 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9684 }
9685 let inner_offset;
9686 let mut inner_depth = depth.clone();
9687 if inlined {
9688 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9689 inner_offset = next_offset;
9690 } else {
9691 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9692 inner_depth.increment()?;
9693 }
9694 let val_ref = self.bss.get_or_insert_with(|| {
9695 fidl::new_empty!(fidl_fuchsia_wlan_ieee80211_common::BssDescription, D)
9696 });
9697 fidl::decode!(
9698 fidl_fuchsia_wlan_ieee80211_common::BssDescription,
9699 D,
9700 val_ref,
9701 decoder,
9702 inner_offset,
9703 inner_depth
9704 )?;
9705 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9706 {
9707 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9708 }
9709 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9710 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9711 }
9712 }
9713
9714 next_offset += envelope_size;
9715
9716 while next_offset < end_offset {
9718 _next_ordinal_to_read += 1;
9719 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9720 next_offset += envelope_size;
9721 }
9722
9723 Ok(())
9724 }
9725 }
9726
9727 impl WlanFullmacImplIfcOnScheduledScanMatchesAvailableRequest {
9728 #[inline(always)]
9729 fn max_ordinal_present(&self) -> u64 {
9730 if let Some(_) = self.txn_id {
9731 return 1;
9732 }
9733 0
9734 }
9735 }
9736
9737 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcOnScheduledScanMatchesAvailableRequest {
9738 type Borrowed<'a> = &'a Self;
9739 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
9740 value
9741 }
9742 }
9743
9744 unsafe impl fidl::encoding::TypeMarker
9745 for WlanFullmacImplIfcOnScheduledScanMatchesAvailableRequest
9746 {
9747 type Owned = Self;
9748
9749 #[inline(always)]
9750 fn inline_align(_context: fidl::encoding::Context) -> usize {
9751 8
9752 }
9753
9754 #[inline(always)]
9755 fn inline_size(_context: fidl::encoding::Context) -> usize {
9756 16
9757 }
9758 }
9759
9760 unsafe impl<D: fidl::encoding::ResourceDialect>
9761 fidl::encoding::Encode<WlanFullmacImplIfcOnScheduledScanMatchesAvailableRequest, D>
9762 for &WlanFullmacImplIfcOnScheduledScanMatchesAvailableRequest
9763 {
9764 unsafe fn encode(
9765 self,
9766 encoder: &mut fidl::encoding::Encoder<'_, D>,
9767 offset: usize,
9768 mut depth: fidl::encoding::Depth,
9769 ) -> fidl::Result<()> {
9770 encoder.debug_check_bounds::<WlanFullmacImplIfcOnScheduledScanMatchesAvailableRequest>(
9771 offset,
9772 );
9773 let max_ordinal: u64 = self.max_ordinal_present();
9775 encoder.write_num(max_ordinal, offset);
9776 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
9777 if max_ordinal == 0 {
9779 return Ok(());
9780 }
9781 depth.increment()?;
9782 let envelope_size = 8;
9783 let bytes_len = max_ordinal as usize * envelope_size;
9784 #[allow(unused_variables)]
9785 let offset = encoder.out_of_line_offset(bytes_len);
9786 let mut _prev_end_offset: usize = 0;
9787 if 1 > max_ordinal {
9788 return Ok(());
9789 }
9790
9791 let cur_offset: usize = (1 - 1) * envelope_size;
9794
9795 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9797
9798 fidl::encoding::encode_in_envelope_optional::<u64, D>(
9803 self.txn_id.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
9804 encoder,
9805 offset + cur_offset,
9806 depth,
9807 )?;
9808
9809 _prev_end_offset = cur_offset + envelope_size;
9810
9811 Ok(())
9812 }
9813 }
9814
9815 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
9816 for WlanFullmacImplIfcOnScheduledScanMatchesAvailableRequest
9817 {
9818 #[inline(always)]
9819 fn new_empty() -> Self {
9820 Self::default()
9821 }
9822
9823 unsafe fn decode(
9824 &mut self,
9825 decoder: &mut fidl::encoding::Decoder<'_, D>,
9826 offset: usize,
9827 mut depth: fidl::encoding::Depth,
9828 ) -> fidl::Result<()> {
9829 decoder.debug_check_bounds::<Self>(offset);
9830 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
9831 None => return Err(fidl::Error::NotNullable),
9832 Some(len) => len,
9833 };
9834 if len == 0 {
9836 return Ok(());
9837 };
9838 depth.increment()?;
9839 let envelope_size = 8;
9840 let bytes_len = len * envelope_size;
9841 let offset = decoder.out_of_line_offset(bytes_len)?;
9842 let mut _next_ordinal_to_read = 0;
9844 let mut next_offset = offset;
9845 let end_offset = offset + bytes_len;
9846 _next_ordinal_to_read += 1;
9847 if next_offset >= end_offset {
9848 return Ok(());
9849 }
9850
9851 while _next_ordinal_to_read < 1 {
9853 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9854 _next_ordinal_to_read += 1;
9855 next_offset += envelope_size;
9856 }
9857
9858 let next_out_of_line = decoder.next_out_of_line();
9859 let handles_before = decoder.remaining_handles();
9860 if let Some((inlined, num_bytes, num_handles)) =
9861 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9862 {
9863 let member_inline_size =
9864 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
9865 if inlined != (member_inline_size <= 4) {
9866 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9867 }
9868 let inner_offset;
9869 let mut inner_depth = depth.clone();
9870 if inlined {
9871 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9872 inner_offset = next_offset;
9873 } else {
9874 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9875 inner_depth.increment()?;
9876 }
9877 let val_ref = self.txn_id.get_or_insert_with(|| fidl::new_empty!(u64, D));
9878 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
9879 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9880 {
9881 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9882 }
9883 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9884 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9885 }
9886 }
9887
9888 next_offset += envelope_size;
9889
9890 while next_offset < end_offset {
9892 _next_ordinal_to_read += 1;
9893 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9894 next_offset += envelope_size;
9895 }
9896
9897 Ok(())
9898 }
9899 }
9900
9901 impl WlanFullmacImplIfcOnScheduledScanStoppedByFirmwareRequest {
9902 #[inline(always)]
9903 fn max_ordinal_present(&self) -> u64 {
9904 if let Some(_) = self.txn_id {
9905 return 1;
9906 }
9907 0
9908 }
9909 }
9910
9911 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcOnScheduledScanStoppedByFirmwareRequest {
9912 type Borrowed<'a> = &'a Self;
9913 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
9914 value
9915 }
9916 }
9917
9918 unsafe impl fidl::encoding::TypeMarker
9919 for WlanFullmacImplIfcOnScheduledScanStoppedByFirmwareRequest
9920 {
9921 type Owned = Self;
9922
9923 #[inline(always)]
9924 fn inline_align(_context: fidl::encoding::Context) -> usize {
9925 8
9926 }
9927
9928 #[inline(always)]
9929 fn inline_size(_context: fidl::encoding::Context) -> usize {
9930 16
9931 }
9932 }
9933
9934 unsafe impl<D: fidl::encoding::ResourceDialect>
9935 fidl::encoding::Encode<WlanFullmacImplIfcOnScheduledScanStoppedByFirmwareRequest, D>
9936 for &WlanFullmacImplIfcOnScheduledScanStoppedByFirmwareRequest
9937 {
9938 unsafe fn encode(
9939 self,
9940 encoder: &mut fidl::encoding::Encoder<'_, D>,
9941 offset: usize,
9942 mut depth: fidl::encoding::Depth,
9943 ) -> fidl::Result<()> {
9944 encoder
9945 .debug_check_bounds::<WlanFullmacImplIfcOnScheduledScanStoppedByFirmwareRequest>(
9946 offset,
9947 );
9948 let max_ordinal: u64 = self.max_ordinal_present();
9950 encoder.write_num(max_ordinal, offset);
9951 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
9952 if max_ordinal == 0 {
9954 return Ok(());
9955 }
9956 depth.increment()?;
9957 let envelope_size = 8;
9958 let bytes_len = max_ordinal as usize * envelope_size;
9959 #[allow(unused_variables)]
9960 let offset = encoder.out_of_line_offset(bytes_len);
9961 let mut _prev_end_offset: usize = 0;
9962 if 1 > max_ordinal {
9963 return Ok(());
9964 }
9965
9966 let cur_offset: usize = (1 - 1) * envelope_size;
9969
9970 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9972
9973 fidl::encoding::encode_in_envelope_optional::<u64, D>(
9978 self.txn_id.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
9979 encoder,
9980 offset + cur_offset,
9981 depth,
9982 )?;
9983
9984 _prev_end_offset = cur_offset + envelope_size;
9985
9986 Ok(())
9987 }
9988 }
9989
9990 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
9991 for WlanFullmacImplIfcOnScheduledScanStoppedByFirmwareRequest
9992 {
9993 #[inline(always)]
9994 fn new_empty() -> Self {
9995 Self::default()
9996 }
9997
9998 unsafe fn decode(
9999 &mut self,
10000 decoder: &mut fidl::encoding::Decoder<'_, D>,
10001 offset: usize,
10002 mut depth: fidl::encoding::Depth,
10003 ) -> fidl::Result<()> {
10004 decoder.debug_check_bounds::<Self>(offset);
10005 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
10006 None => return Err(fidl::Error::NotNullable),
10007 Some(len) => len,
10008 };
10009 if len == 0 {
10011 return Ok(());
10012 };
10013 depth.increment()?;
10014 let envelope_size = 8;
10015 let bytes_len = len * envelope_size;
10016 let offset = decoder.out_of_line_offset(bytes_len)?;
10017 let mut _next_ordinal_to_read = 0;
10019 let mut next_offset = offset;
10020 let end_offset = offset + bytes_len;
10021 _next_ordinal_to_read += 1;
10022 if next_offset >= end_offset {
10023 return Ok(());
10024 }
10025
10026 while _next_ordinal_to_read < 1 {
10028 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10029 _next_ordinal_to_read += 1;
10030 next_offset += envelope_size;
10031 }
10032
10033 let next_out_of_line = decoder.next_out_of_line();
10034 let handles_before = decoder.remaining_handles();
10035 if let Some((inlined, num_bytes, num_handles)) =
10036 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10037 {
10038 let member_inline_size =
10039 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
10040 if inlined != (member_inline_size <= 4) {
10041 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10042 }
10043 let inner_offset;
10044 let mut inner_depth = depth.clone();
10045 if inlined {
10046 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10047 inner_offset = next_offset;
10048 } else {
10049 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10050 inner_depth.increment()?;
10051 }
10052 let val_ref = self.txn_id.get_or_insert_with(|| fidl::new_empty!(u64, D));
10053 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
10054 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10055 {
10056 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10057 }
10058 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10059 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10060 }
10061 }
10062
10063 next_offset += envelope_size;
10064
10065 while next_offset < end_offset {
10067 _next_ordinal_to_read += 1;
10068 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10069 next_offset += envelope_size;
10070 }
10071
10072 Ok(())
10073 }
10074 }
10075
10076 impl WlanFullmacImplIfcRoamConfRequest {
10077 #[inline(always)]
10078 fn max_ordinal_present(&self) -> u64 {
10079 if let Some(_) = self.association_ies {
10080 return 6;
10081 }
10082 if let Some(_) = self.association_id {
10083 return 5;
10084 }
10085 if let Some(_) = self.target_bss_authenticated {
10086 return 4;
10087 }
10088 if let Some(_) = self.original_association_maintained {
10089 return 3;
10090 }
10091 if let Some(_) = self.status_code {
10092 return 2;
10093 }
10094 if let Some(_) = self.selected_bssid {
10095 return 1;
10096 }
10097 0
10098 }
10099 }
10100
10101 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcRoamConfRequest {
10102 type Borrowed<'a> = &'a Self;
10103 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
10104 value
10105 }
10106 }
10107
10108 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcRoamConfRequest {
10109 type Owned = Self;
10110
10111 #[inline(always)]
10112 fn inline_align(_context: fidl::encoding::Context) -> usize {
10113 8
10114 }
10115
10116 #[inline(always)]
10117 fn inline_size(_context: fidl::encoding::Context) -> usize {
10118 16
10119 }
10120 }
10121
10122 unsafe impl<D: fidl::encoding::ResourceDialect>
10123 fidl::encoding::Encode<WlanFullmacImplIfcRoamConfRequest, D>
10124 for &WlanFullmacImplIfcRoamConfRequest
10125 {
10126 unsafe fn encode(
10127 self,
10128 encoder: &mut fidl::encoding::Encoder<'_, D>,
10129 offset: usize,
10130 mut depth: fidl::encoding::Depth,
10131 ) -> fidl::Result<()> {
10132 encoder.debug_check_bounds::<WlanFullmacImplIfcRoamConfRequest>(offset);
10133 let max_ordinal: u64 = self.max_ordinal_present();
10135 encoder.write_num(max_ordinal, offset);
10136 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
10137 if max_ordinal == 0 {
10139 return Ok(());
10140 }
10141 depth.increment()?;
10142 let envelope_size = 8;
10143 let bytes_len = max_ordinal as usize * envelope_size;
10144 #[allow(unused_variables)]
10145 let offset = encoder.out_of_line_offset(bytes_len);
10146 let mut _prev_end_offset: usize = 0;
10147 if 1 > max_ordinal {
10148 return Ok(());
10149 }
10150
10151 let cur_offset: usize = (1 - 1) * envelope_size;
10154
10155 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10157
10158 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
10163 self.selected_bssid
10164 .as_ref()
10165 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
10166 encoder,
10167 offset + cur_offset,
10168 depth,
10169 )?;
10170
10171 _prev_end_offset = cur_offset + envelope_size;
10172 if 2 > max_ordinal {
10173 return Ok(());
10174 }
10175
10176 let cur_offset: usize = (2 - 1) * envelope_size;
10179
10180 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10182
10183 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_ieee80211_common::StatusCode, D>(
10188 self.status_code.as_ref().map(<fidl_fuchsia_wlan_ieee80211_common::StatusCode as fidl::encoding::ValueTypeMarker>::borrow),
10189 encoder, offset + cur_offset, depth
10190 )?;
10191
10192 _prev_end_offset = cur_offset + envelope_size;
10193 if 3 > max_ordinal {
10194 return Ok(());
10195 }
10196
10197 let cur_offset: usize = (3 - 1) * envelope_size;
10200
10201 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10203
10204 fidl::encoding::encode_in_envelope_optional::<bool, D>(
10209 self.original_association_maintained
10210 .as_ref()
10211 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
10212 encoder,
10213 offset + cur_offset,
10214 depth,
10215 )?;
10216
10217 _prev_end_offset = cur_offset + envelope_size;
10218 if 4 > max_ordinal {
10219 return Ok(());
10220 }
10221
10222 let cur_offset: usize = (4 - 1) * envelope_size;
10225
10226 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10228
10229 fidl::encoding::encode_in_envelope_optional::<bool, D>(
10234 self.target_bss_authenticated
10235 .as_ref()
10236 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
10237 encoder,
10238 offset + cur_offset,
10239 depth,
10240 )?;
10241
10242 _prev_end_offset = cur_offset + envelope_size;
10243 if 5 > max_ordinal {
10244 return Ok(());
10245 }
10246
10247 let cur_offset: usize = (5 - 1) * envelope_size;
10250
10251 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10253
10254 fidl::encoding::encode_in_envelope_optional::<u16, D>(
10259 self.association_id.as_ref().map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
10260 encoder,
10261 offset + cur_offset,
10262 depth,
10263 )?;
10264
10265 _prev_end_offset = cur_offset + envelope_size;
10266 if 6 > max_ordinal {
10267 return Ok(());
10268 }
10269
10270 let cur_offset: usize = (6 - 1) * envelope_size;
10273
10274 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10276
10277 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<u8>, D>(
10282 self.association_ies.as_ref().map(<fidl::encoding::UnboundedVector<u8> as fidl::encoding::ValueTypeMarker>::borrow),
10283 encoder, offset + cur_offset, depth
10284 )?;
10285
10286 _prev_end_offset = cur_offset + envelope_size;
10287
10288 Ok(())
10289 }
10290 }
10291
10292 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
10293 for WlanFullmacImplIfcRoamConfRequest
10294 {
10295 #[inline(always)]
10296 fn new_empty() -> Self {
10297 Self::default()
10298 }
10299
10300 unsafe fn decode(
10301 &mut self,
10302 decoder: &mut fidl::encoding::Decoder<'_, D>,
10303 offset: usize,
10304 mut depth: fidl::encoding::Depth,
10305 ) -> fidl::Result<()> {
10306 decoder.debug_check_bounds::<Self>(offset);
10307 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
10308 None => return Err(fidl::Error::NotNullable),
10309 Some(len) => len,
10310 };
10311 if len == 0 {
10313 return Ok(());
10314 };
10315 depth.increment()?;
10316 let envelope_size = 8;
10317 let bytes_len = len * envelope_size;
10318 let offset = decoder.out_of_line_offset(bytes_len)?;
10319 let mut _next_ordinal_to_read = 0;
10321 let mut next_offset = offset;
10322 let end_offset = offset + bytes_len;
10323 _next_ordinal_to_read += 1;
10324 if next_offset >= end_offset {
10325 return Ok(());
10326 }
10327
10328 while _next_ordinal_to_read < 1 {
10330 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10331 _next_ordinal_to_read += 1;
10332 next_offset += envelope_size;
10333 }
10334
10335 let next_out_of_line = decoder.next_out_of_line();
10336 let handles_before = decoder.remaining_handles();
10337 if let Some((inlined, num_bytes, num_handles)) =
10338 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10339 {
10340 let member_inline_size =
10341 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
10342 decoder.context,
10343 );
10344 if inlined != (member_inline_size <= 4) {
10345 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10346 }
10347 let inner_offset;
10348 let mut inner_depth = depth.clone();
10349 if inlined {
10350 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10351 inner_offset = next_offset;
10352 } else {
10353 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10354 inner_depth.increment()?;
10355 }
10356 let val_ref = self
10357 .selected_bssid
10358 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
10359 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
10360 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10361 {
10362 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10363 }
10364 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10365 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10366 }
10367 }
10368
10369 next_offset += envelope_size;
10370 _next_ordinal_to_read += 1;
10371 if next_offset >= end_offset {
10372 return Ok(());
10373 }
10374
10375 while _next_ordinal_to_read < 2 {
10377 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10378 _next_ordinal_to_read += 1;
10379 next_offset += envelope_size;
10380 }
10381
10382 let next_out_of_line = decoder.next_out_of_line();
10383 let handles_before = decoder.remaining_handles();
10384 if let Some((inlined, num_bytes, num_handles)) =
10385 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10386 {
10387 let member_inline_size = <fidl_fuchsia_wlan_ieee80211_common::StatusCode as fidl::encoding::TypeMarker>::inline_size(decoder.context);
10388 if inlined != (member_inline_size <= 4) {
10389 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10390 }
10391 let inner_offset;
10392 let mut inner_depth = depth.clone();
10393 if inlined {
10394 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10395 inner_offset = next_offset;
10396 } else {
10397 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10398 inner_depth.increment()?;
10399 }
10400 let val_ref = self.status_code.get_or_insert_with(|| {
10401 fidl::new_empty!(fidl_fuchsia_wlan_ieee80211_common::StatusCode, D)
10402 });
10403 fidl::decode!(
10404 fidl_fuchsia_wlan_ieee80211_common::StatusCode,
10405 D,
10406 val_ref,
10407 decoder,
10408 inner_offset,
10409 inner_depth
10410 )?;
10411 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10412 {
10413 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10414 }
10415 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10416 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10417 }
10418 }
10419
10420 next_offset += envelope_size;
10421 _next_ordinal_to_read += 1;
10422 if next_offset >= end_offset {
10423 return Ok(());
10424 }
10425
10426 while _next_ordinal_to_read < 3 {
10428 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10429 _next_ordinal_to_read += 1;
10430 next_offset += envelope_size;
10431 }
10432
10433 let next_out_of_line = decoder.next_out_of_line();
10434 let handles_before = decoder.remaining_handles();
10435 if let Some((inlined, num_bytes, num_handles)) =
10436 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10437 {
10438 let member_inline_size =
10439 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
10440 if inlined != (member_inline_size <= 4) {
10441 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10442 }
10443 let inner_offset;
10444 let mut inner_depth = depth.clone();
10445 if inlined {
10446 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10447 inner_offset = next_offset;
10448 } else {
10449 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10450 inner_depth.increment()?;
10451 }
10452 let val_ref = self
10453 .original_association_maintained
10454 .get_or_insert_with(|| fidl::new_empty!(bool, D));
10455 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
10456 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10457 {
10458 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10459 }
10460 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10461 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10462 }
10463 }
10464
10465 next_offset += envelope_size;
10466 _next_ordinal_to_read += 1;
10467 if next_offset >= end_offset {
10468 return Ok(());
10469 }
10470
10471 while _next_ordinal_to_read < 4 {
10473 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10474 _next_ordinal_to_read += 1;
10475 next_offset += envelope_size;
10476 }
10477
10478 let next_out_of_line = decoder.next_out_of_line();
10479 let handles_before = decoder.remaining_handles();
10480 if let Some((inlined, num_bytes, num_handles)) =
10481 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10482 {
10483 let member_inline_size =
10484 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
10485 if inlined != (member_inline_size <= 4) {
10486 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10487 }
10488 let inner_offset;
10489 let mut inner_depth = depth.clone();
10490 if inlined {
10491 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10492 inner_offset = next_offset;
10493 } else {
10494 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10495 inner_depth.increment()?;
10496 }
10497 let val_ref =
10498 self.target_bss_authenticated.get_or_insert_with(|| fidl::new_empty!(bool, D));
10499 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
10500 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10501 {
10502 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10503 }
10504 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10505 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10506 }
10507 }
10508
10509 next_offset += envelope_size;
10510 _next_ordinal_to_read += 1;
10511 if next_offset >= end_offset {
10512 return Ok(());
10513 }
10514
10515 while _next_ordinal_to_read < 5 {
10517 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10518 _next_ordinal_to_read += 1;
10519 next_offset += envelope_size;
10520 }
10521
10522 let next_out_of_line = decoder.next_out_of_line();
10523 let handles_before = decoder.remaining_handles();
10524 if let Some((inlined, num_bytes, num_handles)) =
10525 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10526 {
10527 let member_inline_size =
10528 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
10529 if inlined != (member_inline_size <= 4) {
10530 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10531 }
10532 let inner_offset;
10533 let mut inner_depth = depth.clone();
10534 if inlined {
10535 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10536 inner_offset = next_offset;
10537 } else {
10538 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10539 inner_depth.increment()?;
10540 }
10541 let val_ref = self.association_id.get_or_insert_with(|| fidl::new_empty!(u16, D));
10542 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
10543 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10544 {
10545 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10546 }
10547 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10548 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10549 }
10550 }
10551
10552 next_offset += envelope_size;
10553 _next_ordinal_to_read += 1;
10554 if next_offset >= end_offset {
10555 return Ok(());
10556 }
10557
10558 while _next_ordinal_to_read < 6 {
10560 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10561 _next_ordinal_to_read += 1;
10562 next_offset += envelope_size;
10563 }
10564
10565 let next_out_of_line = decoder.next_out_of_line();
10566 let handles_before = decoder.remaining_handles();
10567 if let Some((inlined, num_bytes, num_handles)) =
10568 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10569 {
10570 let member_inline_size = <fidl::encoding::UnboundedVector<u8> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
10571 if inlined != (member_inline_size <= 4) {
10572 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10573 }
10574 let inner_offset;
10575 let mut inner_depth = depth.clone();
10576 if inlined {
10577 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10578 inner_offset = next_offset;
10579 } else {
10580 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10581 inner_depth.increment()?;
10582 }
10583 let val_ref = self.association_ies.get_or_insert_with(|| {
10584 fidl::new_empty!(fidl::encoding::UnboundedVector<u8>, D)
10585 });
10586 fidl::decode!(
10587 fidl::encoding::UnboundedVector<u8>,
10588 D,
10589 val_ref,
10590 decoder,
10591 inner_offset,
10592 inner_depth
10593 )?;
10594 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10595 {
10596 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10597 }
10598 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10599 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10600 }
10601 }
10602
10603 next_offset += envelope_size;
10604
10605 while next_offset < end_offset {
10607 _next_ordinal_to_read += 1;
10608 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10609 next_offset += envelope_size;
10610 }
10611
10612 Ok(())
10613 }
10614 }
10615
10616 impl WlanFullmacImplIfcRoamResultIndRequest {
10617 #[inline(always)]
10618 fn max_ordinal_present(&self) -> u64 {
10619 if let Some(_) = self.association_ies {
10620 return 6;
10621 }
10622 if let Some(_) = self.association_id {
10623 return 5;
10624 }
10625 if let Some(_) = self.target_bss_authenticated {
10626 return 4;
10627 }
10628 if let Some(_) = self.original_association_maintained {
10629 return 3;
10630 }
10631 if let Some(_) = self.status_code {
10632 return 2;
10633 }
10634 if let Some(_) = self.selected_bssid {
10635 return 1;
10636 }
10637 0
10638 }
10639 }
10640
10641 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcRoamResultIndRequest {
10642 type Borrowed<'a> = &'a Self;
10643 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
10644 value
10645 }
10646 }
10647
10648 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcRoamResultIndRequest {
10649 type Owned = Self;
10650
10651 #[inline(always)]
10652 fn inline_align(_context: fidl::encoding::Context) -> usize {
10653 8
10654 }
10655
10656 #[inline(always)]
10657 fn inline_size(_context: fidl::encoding::Context) -> usize {
10658 16
10659 }
10660 }
10661
10662 unsafe impl<D: fidl::encoding::ResourceDialect>
10663 fidl::encoding::Encode<WlanFullmacImplIfcRoamResultIndRequest, D>
10664 for &WlanFullmacImplIfcRoamResultIndRequest
10665 {
10666 unsafe fn encode(
10667 self,
10668 encoder: &mut fidl::encoding::Encoder<'_, D>,
10669 offset: usize,
10670 mut depth: fidl::encoding::Depth,
10671 ) -> fidl::Result<()> {
10672 encoder.debug_check_bounds::<WlanFullmacImplIfcRoamResultIndRequest>(offset);
10673 let max_ordinal: u64 = self.max_ordinal_present();
10675 encoder.write_num(max_ordinal, offset);
10676 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
10677 if max_ordinal == 0 {
10679 return Ok(());
10680 }
10681 depth.increment()?;
10682 let envelope_size = 8;
10683 let bytes_len = max_ordinal as usize * envelope_size;
10684 #[allow(unused_variables)]
10685 let offset = encoder.out_of_line_offset(bytes_len);
10686 let mut _prev_end_offset: usize = 0;
10687 if 1 > max_ordinal {
10688 return Ok(());
10689 }
10690
10691 let cur_offset: usize = (1 - 1) * envelope_size;
10694
10695 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10697
10698 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
10703 self.selected_bssid
10704 .as_ref()
10705 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
10706 encoder,
10707 offset + cur_offset,
10708 depth,
10709 )?;
10710
10711 _prev_end_offset = cur_offset + envelope_size;
10712 if 2 > max_ordinal {
10713 return Ok(());
10714 }
10715
10716 let cur_offset: usize = (2 - 1) * envelope_size;
10719
10720 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10722
10723 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_ieee80211_common::StatusCode, D>(
10728 self.status_code.as_ref().map(<fidl_fuchsia_wlan_ieee80211_common::StatusCode as fidl::encoding::ValueTypeMarker>::borrow),
10729 encoder, offset + cur_offset, depth
10730 )?;
10731
10732 _prev_end_offset = cur_offset + envelope_size;
10733 if 3 > max_ordinal {
10734 return Ok(());
10735 }
10736
10737 let cur_offset: usize = (3 - 1) * envelope_size;
10740
10741 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10743
10744 fidl::encoding::encode_in_envelope_optional::<bool, D>(
10749 self.original_association_maintained
10750 .as_ref()
10751 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
10752 encoder,
10753 offset + cur_offset,
10754 depth,
10755 )?;
10756
10757 _prev_end_offset = cur_offset + envelope_size;
10758 if 4 > max_ordinal {
10759 return Ok(());
10760 }
10761
10762 let cur_offset: usize = (4 - 1) * envelope_size;
10765
10766 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10768
10769 fidl::encoding::encode_in_envelope_optional::<bool, D>(
10774 self.target_bss_authenticated
10775 .as_ref()
10776 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
10777 encoder,
10778 offset + cur_offset,
10779 depth,
10780 )?;
10781
10782 _prev_end_offset = cur_offset + envelope_size;
10783 if 5 > max_ordinal {
10784 return Ok(());
10785 }
10786
10787 let cur_offset: usize = (5 - 1) * envelope_size;
10790
10791 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10793
10794 fidl::encoding::encode_in_envelope_optional::<u16, D>(
10799 self.association_id.as_ref().map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
10800 encoder,
10801 offset + cur_offset,
10802 depth,
10803 )?;
10804
10805 _prev_end_offset = cur_offset + envelope_size;
10806 if 6 > max_ordinal {
10807 return Ok(());
10808 }
10809
10810 let cur_offset: usize = (6 - 1) * envelope_size;
10813
10814 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10816
10817 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<u8>, D>(
10822 self.association_ies.as_ref().map(<fidl::encoding::UnboundedVector<u8> as fidl::encoding::ValueTypeMarker>::borrow),
10823 encoder, offset + cur_offset, depth
10824 )?;
10825
10826 _prev_end_offset = cur_offset + envelope_size;
10827
10828 Ok(())
10829 }
10830 }
10831
10832 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
10833 for WlanFullmacImplIfcRoamResultIndRequest
10834 {
10835 #[inline(always)]
10836 fn new_empty() -> Self {
10837 Self::default()
10838 }
10839
10840 unsafe fn decode(
10841 &mut self,
10842 decoder: &mut fidl::encoding::Decoder<'_, D>,
10843 offset: usize,
10844 mut depth: fidl::encoding::Depth,
10845 ) -> fidl::Result<()> {
10846 decoder.debug_check_bounds::<Self>(offset);
10847 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
10848 None => return Err(fidl::Error::NotNullable),
10849 Some(len) => len,
10850 };
10851 if len == 0 {
10853 return Ok(());
10854 };
10855 depth.increment()?;
10856 let envelope_size = 8;
10857 let bytes_len = len * envelope_size;
10858 let offset = decoder.out_of_line_offset(bytes_len)?;
10859 let mut _next_ordinal_to_read = 0;
10861 let mut next_offset = offset;
10862 let end_offset = offset + bytes_len;
10863 _next_ordinal_to_read += 1;
10864 if next_offset >= end_offset {
10865 return Ok(());
10866 }
10867
10868 while _next_ordinal_to_read < 1 {
10870 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10871 _next_ordinal_to_read += 1;
10872 next_offset += envelope_size;
10873 }
10874
10875 let next_out_of_line = decoder.next_out_of_line();
10876 let handles_before = decoder.remaining_handles();
10877 if let Some((inlined, num_bytes, num_handles)) =
10878 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10879 {
10880 let member_inline_size =
10881 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
10882 decoder.context,
10883 );
10884 if inlined != (member_inline_size <= 4) {
10885 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10886 }
10887 let inner_offset;
10888 let mut inner_depth = depth.clone();
10889 if inlined {
10890 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10891 inner_offset = next_offset;
10892 } else {
10893 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10894 inner_depth.increment()?;
10895 }
10896 let val_ref = self
10897 .selected_bssid
10898 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
10899 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
10900 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10901 {
10902 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10903 }
10904 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10905 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10906 }
10907 }
10908
10909 next_offset += envelope_size;
10910 _next_ordinal_to_read += 1;
10911 if next_offset >= end_offset {
10912 return Ok(());
10913 }
10914
10915 while _next_ordinal_to_read < 2 {
10917 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10918 _next_ordinal_to_read += 1;
10919 next_offset += envelope_size;
10920 }
10921
10922 let next_out_of_line = decoder.next_out_of_line();
10923 let handles_before = decoder.remaining_handles();
10924 if let Some((inlined, num_bytes, num_handles)) =
10925 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10926 {
10927 let member_inline_size = <fidl_fuchsia_wlan_ieee80211_common::StatusCode as fidl::encoding::TypeMarker>::inline_size(decoder.context);
10928 if inlined != (member_inline_size <= 4) {
10929 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10930 }
10931 let inner_offset;
10932 let mut inner_depth = depth.clone();
10933 if inlined {
10934 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10935 inner_offset = next_offset;
10936 } else {
10937 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10938 inner_depth.increment()?;
10939 }
10940 let val_ref = self.status_code.get_or_insert_with(|| {
10941 fidl::new_empty!(fidl_fuchsia_wlan_ieee80211_common::StatusCode, D)
10942 });
10943 fidl::decode!(
10944 fidl_fuchsia_wlan_ieee80211_common::StatusCode,
10945 D,
10946 val_ref,
10947 decoder,
10948 inner_offset,
10949 inner_depth
10950 )?;
10951 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10952 {
10953 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10954 }
10955 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10956 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10957 }
10958 }
10959
10960 next_offset += envelope_size;
10961 _next_ordinal_to_read += 1;
10962 if next_offset >= end_offset {
10963 return Ok(());
10964 }
10965
10966 while _next_ordinal_to_read < 3 {
10968 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10969 _next_ordinal_to_read += 1;
10970 next_offset += envelope_size;
10971 }
10972
10973 let next_out_of_line = decoder.next_out_of_line();
10974 let handles_before = decoder.remaining_handles();
10975 if let Some((inlined, num_bytes, num_handles)) =
10976 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10977 {
10978 let member_inline_size =
10979 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
10980 if inlined != (member_inline_size <= 4) {
10981 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10982 }
10983 let inner_offset;
10984 let mut inner_depth = depth.clone();
10985 if inlined {
10986 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10987 inner_offset = next_offset;
10988 } else {
10989 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10990 inner_depth.increment()?;
10991 }
10992 let val_ref = self
10993 .original_association_maintained
10994 .get_or_insert_with(|| fidl::new_empty!(bool, D));
10995 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
10996 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10997 {
10998 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10999 }
11000 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
11001 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
11002 }
11003 }
11004
11005 next_offset += envelope_size;
11006 _next_ordinal_to_read += 1;
11007 if next_offset >= end_offset {
11008 return Ok(());
11009 }
11010
11011 while _next_ordinal_to_read < 4 {
11013 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11014 _next_ordinal_to_read += 1;
11015 next_offset += envelope_size;
11016 }
11017
11018 let next_out_of_line = decoder.next_out_of_line();
11019 let handles_before = decoder.remaining_handles();
11020 if let Some((inlined, num_bytes, num_handles)) =
11021 fidl::encoding::decode_envelope_header(decoder, next_offset)?
11022 {
11023 let member_inline_size =
11024 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
11025 if inlined != (member_inline_size <= 4) {
11026 return Err(fidl::Error::InvalidInlineBitInEnvelope);
11027 }
11028 let inner_offset;
11029 let mut inner_depth = depth.clone();
11030 if inlined {
11031 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
11032 inner_offset = next_offset;
11033 } else {
11034 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
11035 inner_depth.increment()?;
11036 }
11037 let val_ref =
11038 self.target_bss_authenticated.get_or_insert_with(|| fidl::new_empty!(bool, D));
11039 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
11040 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
11041 {
11042 return Err(fidl::Error::InvalidNumBytesInEnvelope);
11043 }
11044 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
11045 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
11046 }
11047 }
11048
11049 next_offset += envelope_size;
11050 _next_ordinal_to_read += 1;
11051 if next_offset >= end_offset {
11052 return Ok(());
11053 }
11054
11055 while _next_ordinal_to_read < 5 {
11057 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11058 _next_ordinal_to_read += 1;
11059 next_offset += envelope_size;
11060 }
11061
11062 let next_out_of_line = decoder.next_out_of_line();
11063 let handles_before = decoder.remaining_handles();
11064 if let Some((inlined, num_bytes, num_handles)) =
11065 fidl::encoding::decode_envelope_header(decoder, next_offset)?
11066 {
11067 let member_inline_size =
11068 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
11069 if inlined != (member_inline_size <= 4) {
11070 return Err(fidl::Error::InvalidInlineBitInEnvelope);
11071 }
11072 let inner_offset;
11073 let mut inner_depth = depth.clone();
11074 if inlined {
11075 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
11076 inner_offset = next_offset;
11077 } else {
11078 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
11079 inner_depth.increment()?;
11080 }
11081 let val_ref = self.association_id.get_or_insert_with(|| fidl::new_empty!(u16, D));
11082 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
11083 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
11084 {
11085 return Err(fidl::Error::InvalidNumBytesInEnvelope);
11086 }
11087 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
11088 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
11089 }
11090 }
11091
11092 next_offset += envelope_size;
11093 _next_ordinal_to_read += 1;
11094 if next_offset >= end_offset {
11095 return Ok(());
11096 }
11097
11098 while _next_ordinal_to_read < 6 {
11100 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11101 _next_ordinal_to_read += 1;
11102 next_offset += envelope_size;
11103 }
11104
11105 let next_out_of_line = decoder.next_out_of_line();
11106 let handles_before = decoder.remaining_handles();
11107 if let Some((inlined, num_bytes, num_handles)) =
11108 fidl::encoding::decode_envelope_header(decoder, next_offset)?
11109 {
11110 let member_inline_size = <fidl::encoding::UnboundedVector<u8> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
11111 if inlined != (member_inline_size <= 4) {
11112 return Err(fidl::Error::InvalidInlineBitInEnvelope);
11113 }
11114 let inner_offset;
11115 let mut inner_depth = depth.clone();
11116 if inlined {
11117 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
11118 inner_offset = next_offset;
11119 } else {
11120 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
11121 inner_depth.increment()?;
11122 }
11123 let val_ref = self.association_ies.get_or_insert_with(|| {
11124 fidl::new_empty!(fidl::encoding::UnboundedVector<u8>, D)
11125 });
11126 fidl::decode!(
11127 fidl::encoding::UnboundedVector<u8>,
11128 D,
11129 val_ref,
11130 decoder,
11131 inner_offset,
11132 inner_depth
11133 )?;
11134 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
11135 {
11136 return Err(fidl::Error::InvalidNumBytesInEnvelope);
11137 }
11138 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
11139 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
11140 }
11141 }
11142
11143 next_offset += envelope_size;
11144
11145 while next_offset < end_offset {
11147 _next_ordinal_to_read += 1;
11148 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11149 next_offset += envelope_size;
11150 }
11151
11152 Ok(())
11153 }
11154 }
11155
11156 impl WlanFullmacImplIfcRoamStartIndRequest {
11157 #[inline(always)]
11158 fn max_ordinal_present(&self) -> u64 {
11159 if let Some(_) = self.original_association_maintained {
11160 return 3;
11161 }
11162 if let Some(_) = self.selected_bss {
11163 return 2;
11164 }
11165 if let Some(_) = self.selected_bssid {
11166 return 1;
11167 }
11168 0
11169 }
11170 }
11171
11172 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcRoamStartIndRequest {
11173 type Borrowed<'a> = &'a Self;
11174 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
11175 value
11176 }
11177 }
11178
11179 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcRoamStartIndRequest {
11180 type Owned = Self;
11181
11182 #[inline(always)]
11183 fn inline_align(_context: fidl::encoding::Context) -> usize {
11184 8
11185 }
11186
11187 #[inline(always)]
11188 fn inline_size(_context: fidl::encoding::Context) -> usize {
11189 16
11190 }
11191 }
11192
11193 unsafe impl<D: fidl::encoding::ResourceDialect>
11194 fidl::encoding::Encode<WlanFullmacImplIfcRoamStartIndRequest, D>
11195 for &WlanFullmacImplIfcRoamStartIndRequest
11196 {
11197 unsafe fn encode(
11198 self,
11199 encoder: &mut fidl::encoding::Encoder<'_, D>,
11200 offset: usize,
11201 mut depth: fidl::encoding::Depth,
11202 ) -> fidl::Result<()> {
11203 encoder.debug_check_bounds::<WlanFullmacImplIfcRoamStartIndRequest>(offset);
11204 let max_ordinal: u64 = self.max_ordinal_present();
11206 encoder.write_num(max_ordinal, offset);
11207 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
11208 if max_ordinal == 0 {
11210 return Ok(());
11211 }
11212 depth.increment()?;
11213 let envelope_size = 8;
11214 let bytes_len = max_ordinal as usize * envelope_size;
11215 #[allow(unused_variables)]
11216 let offset = encoder.out_of_line_offset(bytes_len);
11217 let mut _prev_end_offset: usize = 0;
11218 if 1 > max_ordinal {
11219 return Ok(());
11220 }
11221
11222 let cur_offset: usize = (1 - 1) * envelope_size;
11225
11226 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
11228
11229 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
11234 self.selected_bssid
11235 .as_ref()
11236 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
11237 encoder,
11238 offset + cur_offset,
11239 depth,
11240 )?;
11241
11242 _prev_end_offset = cur_offset + envelope_size;
11243 if 2 > max_ordinal {
11244 return Ok(());
11245 }
11246
11247 let cur_offset: usize = (2 - 1) * envelope_size;
11250
11251 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
11253
11254 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_ieee80211_common::BssDescription, D>(
11259 self.selected_bss.as_ref().map(<fidl_fuchsia_wlan_ieee80211_common::BssDescription as fidl::encoding::ValueTypeMarker>::borrow),
11260 encoder, offset + cur_offset, depth
11261 )?;
11262
11263 _prev_end_offset = cur_offset + envelope_size;
11264 if 3 > max_ordinal {
11265 return Ok(());
11266 }
11267
11268 let cur_offset: usize = (3 - 1) * envelope_size;
11271
11272 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
11274
11275 fidl::encoding::encode_in_envelope_optional::<bool, D>(
11280 self.original_association_maintained
11281 .as_ref()
11282 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
11283 encoder,
11284 offset + cur_offset,
11285 depth,
11286 )?;
11287
11288 _prev_end_offset = cur_offset + envelope_size;
11289
11290 Ok(())
11291 }
11292 }
11293
11294 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
11295 for WlanFullmacImplIfcRoamStartIndRequest
11296 {
11297 #[inline(always)]
11298 fn new_empty() -> Self {
11299 Self::default()
11300 }
11301
11302 unsafe fn decode(
11303 &mut self,
11304 decoder: &mut fidl::encoding::Decoder<'_, D>,
11305 offset: usize,
11306 mut depth: fidl::encoding::Depth,
11307 ) -> fidl::Result<()> {
11308 decoder.debug_check_bounds::<Self>(offset);
11309 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
11310 None => return Err(fidl::Error::NotNullable),
11311 Some(len) => len,
11312 };
11313 if len == 0 {
11315 return Ok(());
11316 };
11317 depth.increment()?;
11318 let envelope_size = 8;
11319 let bytes_len = len * envelope_size;
11320 let offset = decoder.out_of_line_offset(bytes_len)?;
11321 let mut _next_ordinal_to_read = 0;
11323 let mut next_offset = offset;
11324 let end_offset = offset + bytes_len;
11325 _next_ordinal_to_read += 1;
11326 if next_offset >= end_offset {
11327 return Ok(());
11328 }
11329
11330 while _next_ordinal_to_read < 1 {
11332 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11333 _next_ordinal_to_read += 1;
11334 next_offset += envelope_size;
11335 }
11336
11337 let next_out_of_line = decoder.next_out_of_line();
11338 let handles_before = decoder.remaining_handles();
11339 if let Some((inlined, num_bytes, num_handles)) =
11340 fidl::encoding::decode_envelope_header(decoder, next_offset)?
11341 {
11342 let member_inline_size =
11343 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
11344 decoder.context,
11345 );
11346 if inlined != (member_inline_size <= 4) {
11347 return Err(fidl::Error::InvalidInlineBitInEnvelope);
11348 }
11349 let inner_offset;
11350 let mut inner_depth = depth.clone();
11351 if inlined {
11352 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
11353 inner_offset = next_offset;
11354 } else {
11355 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
11356 inner_depth.increment()?;
11357 }
11358 let val_ref = self
11359 .selected_bssid
11360 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
11361 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
11362 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
11363 {
11364 return Err(fidl::Error::InvalidNumBytesInEnvelope);
11365 }
11366 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
11367 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
11368 }
11369 }
11370
11371 next_offset += envelope_size;
11372 _next_ordinal_to_read += 1;
11373 if next_offset >= end_offset {
11374 return Ok(());
11375 }
11376
11377 while _next_ordinal_to_read < 2 {
11379 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11380 _next_ordinal_to_read += 1;
11381 next_offset += envelope_size;
11382 }
11383
11384 let next_out_of_line = decoder.next_out_of_line();
11385 let handles_before = decoder.remaining_handles();
11386 if let Some((inlined, num_bytes, num_handles)) =
11387 fidl::encoding::decode_envelope_header(decoder, next_offset)?
11388 {
11389 let member_inline_size = <fidl_fuchsia_wlan_ieee80211_common::BssDescription as fidl::encoding::TypeMarker>::inline_size(decoder.context);
11390 if inlined != (member_inline_size <= 4) {
11391 return Err(fidl::Error::InvalidInlineBitInEnvelope);
11392 }
11393 let inner_offset;
11394 let mut inner_depth = depth.clone();
11395 if inlined {
11396 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
11397 inner_offset = next_offset;
11398 } else {
11399 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
11400 inner_depth.increment()?;
11401 }
11402 let val_ref = self.selected_bss.get_or_insert_with(|| {
11403 fidl::new_empty!(fidl_fuchsia_wlan_ieee80211_common::BssDescription, D)
11404 });
11405 fidl::decode!(
11406 fidl_fuchsia_wlan_ieee80211_common::BssDescription,
11407 D,
11408 val_ref,
11409 decoder,
11410 inner_offset,
11411 inner_depth
11412 )?;
11413 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
11414 {
11415 return Err(fidl::Error::InvalidNumBytesInEnvelope);
11416 }
11417 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
11418 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
11419 }
11420 }
11421
11422 next_offset += envelope_size;
11423 _next_ordinal_to_read += 1;
11424 if next_offset >= end_offset {
11425 return Ok(());
11426 }
11427
11428 while _next_ordinal_to_read < 3 {
11430 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11431 _next_ordinal_to_read += 1;
11432 next_offset += envelope_size;
11433 }
11434
11435 let next_out_of_line = decoder.next_out_of_line();
11436 let handles_before = decoder.remaining_handles();
11437 if let Some((inlined, num_bytes, num_handles)) =
11438 fidl::encoding::decode_envelope_header(decoder, next_offset)?
11439 {
11440 let member_inline_size =
11441 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
11442 if inlined != (member_inline_size <= 4) {
11443 return Err(fidl::Error::InvalidInlineBitInEnvelope);
11444 }
11445 let inner_offset;
11446 let mut inner_depth = depth.clone();
11447 if inlined {
11448 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
11449 inner_offset = next_offset;
11450 } else {
11451 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
11452 inner_depth.increment()?;
11453 }
11454 let val_ref = self
11455 .original_association_maintained
11456 .get_or_insert_with(|| fidl::new_empty!(bool, D));
11457 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
11458 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
11459 {
11460 return Err(fidl::Error::InvalidNumBytesInEnvelope);
11461 }
11462 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
11463 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
11464 }
11465 }
11466
11467 next_offset += envelope_size;
11468
11469 while next_offset < end_offset {
11471 _next_ordinal_to_read += 1;
11472 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11473 next_offset += envelope_size;
11474 }
11475
11476 Ok(())
11477 }
11478 }
11479
11480 impl WlanFullmacImplIfcSaeHandshakeIndRequest {
11481 #[inline(always)]
11482 fn max_ordinal_present(&self) -> u64 {
11483 if let Some(_) = self.peer_sta_address {
11484 return 1;
11485 }
11486 0
11487 }
11488 }
11489
11490 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcSaeHandshakeIndRequest {
11491 type Borrowed<'a> = &'a Self;
11492 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
11493 value
11494 }
11495 }
11496
11497 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcSaeHandshakeIndRequest {
11498 type Owned = Self;
11499
11500 #[inline(always)]
11501 fn inline_align(_context: fidl::encoding::Context) -> usize {
11502 8
11503 }
11504
11505 #[inline(always)]
11506 fn inline_size(_context: fidl::encoding::Context) -> usize {
11507 16
11508 }
11509 }
11510
11511 unsafe impl<D: fidl::encoding::ResourceDialect>
11512 fidl::encoding::Encode<WlanFullmacImplIfcSaeHandshakeIndRequest, D>
11513 for &WlanFullmacImplIfcSaeHandshakeIndRequest
11514 {
11515 unsafe fn encode(
11516 self,
11517 encoder: &mut fidl::encoding::Encoder<'_, D>,
11518 offset: usize,
11519 mut depth: fidl::encoding::Depth,
11520 ) -> fidl::Result<()> {
11521 encoder.debug_check_bounds::<WlanFullmacImplIfcSaeHandshakeIndRequest>(offset);
11522 let max_ordinal: u64 = self.max_ordinal_present();
11524 encoder.write_num(max_ordinal, offset);
11525 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
11526 if max_ordinal == 0 {
11528 return Ok(());
11529 }
11530 depth.increment()?;
11531 let envelope_size = 8;
11532 let bytes_len = max_ordinal as usize * envelope_size;
11533 #[allow(unused_variables)]
11534 let offset = encoder.out_of_line_offset(bytes_len);
11535 let mut _prev_end_offset: usize = 0;
11536 if 1 > max_ordinal {
11537 return Ok(());
11538 }
11539
11540 let cur_offset: usize = (1 - 1) * envelope_size;
11543
11544 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
11546
11547 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
11552 self.peer_sta_address
11553 .as_ref()
11554 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
11555 encoder,
11556 offset + cur_offset,
11557 depth,
11558 )?;
11559
11560 _prev_end_offset = cur_offset + envelope_size;
11561
11562 Ok(())
11563 }
11564 }
11565
11566 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
11567 for WlanFullmacImplIfcSaeHandshakeIndRequest
11568 {
11569 #[inline(always)]
11570 fn new_empty() -> Self {
11571 Self::default()
11572 }
11573
11574 unsafe fn decode(
11575 &mut self,
11576 decoder: &mut fidl::encoding::Decoder<'_, D>,
11577 offset: usize,
11578 mut depth: fidl::encoding::Depth,
11579 ) -> fidl::Result<()> {
11580 decoder.debug_check_bounds::<Self>(offset);
11581 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
11582 None => return Err(fidl::Error::NotNullable),
11583 Some(len) => len,
11584 };
11585 if len == 0 {
11587 return Ok(());
11588 };
11589 depth.increment()?;
11590 let envelope_size = 8;
11591 let bytes_len = len * envelope_size;
11592 let offset = decoder.out_of_line_offset(bytes_len)?;
11593 let mut _next_ordinal_to_read = 0;
11595 let mut next_offset = offset;
11596 let end_offset = offset + bytes_len;
11597 _next_ordinal_to_read += 1;
11598 if next_offset >= end_offset {
11599 return Ok(());
11600 }
11601
11602 while _next_ordinal_to_read < 1 {
11604 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11605 _next_ordinal_to_read += 1;
11606 next_offset += envelope_size;
11607 }
11608
11609 let next_out_of_line = decoder.next_out_of_line();
11610 let handles_before = decoder.remaining_handles();
11611 if let Some((inlined, num_bytes, num_handles)) =
11612 fidl::encoding::decode_envelope_header(decoder, next_offset)?
11613 {
11614 let member_inline_size =
11615 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
11616 decoder.context,
11617 );
11618 if inlined != (member_inline_size <= 4) {
11619 return Err(fidl::Error::InvalidInlineBitInEnvelope);
11620 }
11621 let inner_offset;
11622 let mut inner_depth = depth.clone();
11623 if inlined {
11624 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
11625 inner_offset = next_offset;
11626 } else {
11627 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
11628 inner_depth.increment()?;
11629 }
11630 let val_ref = self
11631 .peer_sta_address
11632 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
11633 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
11634 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
11635 {
11636 return Err(fidl::Error::InvalidNumBytesInEnvelope);
11637 }
11638 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
11639 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
11640 }
11641 }
11642
11643 next_offset += envelope_size;
11644
11645 while next_offset < end_offset {
11647 _next_ordinal_to_read += 1;
11648 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11649 next_offset += envelope_size;
11650 }
11651
11652 Ok(())
11653 }
11654 }
11655
11656 impl WlanFullmacImplIfcStartConfRequest {
11657 #[inline(always)]
11658 fn max_ordinal_present(&self) -> u64 {
11659 if let Some(_) = self.result_code {
11660 return 1;
11661 }
11662 0
11663 }
11664 }
11665
11666 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcStartConfRequest {
11667 type Borrowed<'a> = &'a Self;
11668 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
11669 value
11670 }
11671 }
11672
11673 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcStartConfRequest {
11674 type Owned = Self;
11675
11676 #[inline(always)]
11677 fn inline_align(_context: fidl::encoding::Context) -> usize {
11678 8
11679 }
11680
11681 #[inline(always)]
11682 fn inline_size(_context: fidl::encoding::Context) -> usize {
11683 16
11684 }
11685 }
11686
11687 unsafe impl<D: fidl::encoding::ResourceDialect>
11688 fidl::encoding::Encode<WlanFullmacImplIfcStartConfRequest, D>
11689 for &WlanFullmacImplIfcStartConfRequest
11690 {
11691 unsafe fn encode(
11692 self,
11693 encoder: &mut fidl::encoding::Encoder<'_, D>,
11694 offset: usize,
11695 mut depth: fidl::encoding::Depth,
11696 ) -> fidl::Result<()> {
11697 encoder.debug_check_bounds::<WlanFullmacImplIfcStartConfRequest>(offset);
11698 let max_ordinal: u64 = self.max_ordinal_present();
11700 encoder.write_num(max_ordinal, offset);
11701 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
11702 if max_ordinal == 0 {
11704 return Ok(());
11705 }
11706 depth.increment()?;
11707 let envelope_size = 8;
11708 let bytes_len = max_ordinal as usize * envelope_size;
11709 #[allow(unused_variables)]
11710 let offset = encoder.out_of_line_offset(bytes_len);
11711 let mut _prev_end_offset: usize = 0;
11712 if 1 > max_ordinal {
11713 return Ok(());
11714 }
11715
11716 let cur_offset: usize = (1 - 1) * envelope_size;
11719
11720 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
11722
11723 fidl::encoding::encode_in_envelope_optional::<StartResult, D>(
11728 self.result_code
11729 .as_ref()
11730 .map(<StartResult as fidl::encoding::ValueTypeMarker>::borrow),
11731 encoder,
11732 offset + cur_offset,
11733 depth,
11734 )?;
11735
11736 _prev_end_offset = cur_offset + envelope_size;
11737
11738 Ok(())
11739 }
11740 }
11741
11742 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
11743 for WlanFullmacImplIfcStartConfRequest
11744 {
11745 #[inline(always)]
11746 fn new_empty() -> Self {
11747 Self::default()
11748 }
11749
11750 unsafe fn decode(
11751 &mut self,
11752 decoder: &mut fidl::encoding::Decoder<'_, D>,
11753 offset: usize,
11754 mut depth: fidl::encoding::Depth,
11755 ) -> fidl::Result<()> {
11756 decoder.debug_check_bounds::<Self>(offset);
11757 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
11758 None => return Err(fidl::Error::NotNullable),
11759 Some(len) => len,
11760 };
11761 if len == 0 {
11763 return Ok(());
11764 };
11765 depth.increment()?;
11766 let envelope_size = 8;
11767 let bytes_len = len * envelope_size;
11768 let offset = decoder.out_of_line_offset(bytes_len)?;
11769 let mut _next_ordinal_to_read = 0;
11771 let mut next_offset = offset;
11772 let end_offset = offset + bytes_len;
11773 _next_ordinal_to_read += 1;
11774 if next_offset >= end_offset {
11775 return Ok(());
11776 }
11777
11778 while _next_ordinal_to_read < 1 {
11780 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11781 _next_ordinal_to_read += 1;
11782 next_offset += envelope_size;
11783 }
11784
11785 let next_out_of_line = decoder.next_out_of_line();
11786 let handles_before = decoder.remaining_handles();
11787 if let Some((inlined, num_bytes, num_handles)) =
11788 fidl::encoding::decode_envelope_header(decoder, next_offset)?
11789 {
11790 let member_inline_size =
11791 <StartResult as fidl::encoding::TypeMarker>::inline_size(decoder.context);
11792 if inlined != (member_inline_size <= 4) {
11793 return Err(fidl::Error::InvalidInlineBitInEnvelope);
11794 }
11795 let inner_offset;
11796 let mut inner_depth = depth.clone();
11797 if inlined {
11798 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
11799 inner_offset = next_offset;
11800 } else {
11801 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
11802 inner_depth.increment()?;
11803 }
11804 let val_ref =
11805 self.result_code.get_or_insert_with(|| fidl::new_empty!(StartResult, D));
11806 fidl::decode!(StartResult, D, val_ref, decoder, inner_offset, inner_depth)?;
11807 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
11808 {
11809 return Err(fidl::Error::InvalidNumBytesInEnvelope);
11810 }
11811 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
11812 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
11813 }
11814 }
11815
11816 next_offset += envelope_size;
11817
11818 while next_offset < end_offset {
11820 _next_ordinal_to_read += 1;
11821 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11822 next_offset += envelope_size;
11823 }
11824
11825 Ok(())
11826 }
11827 }
11828
11829 impl WlanFullmacImplIfcStopConfRequest {
11830 #[inline(always)]
11831 fn max_ordinal_present(&self) -> u64 {
11832 if let Some(_) = self.result_code {
11833 return 1;
11834 }
11835 0
11836 }
11837 }
11838
11839 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcStopConfRequest {
11840 type Borrowed<'a> = &'a Self;
11841 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
11842 value
11843 }
11844 }
11845
11846 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcStopConfRequest {
11847 type Owned = Self;
11848
11849 #[inline(always)]
11850 fn inline_align(_context: fidl::encoding::Context) -> usize {
11851 8
11852 }
11853
11854 #[inline(always)]
11855 fn inline_size(_context: fidl::encoding::Context) -> usize {
11856 16
11857 }
11858 }
11859
11860 unsafe impl<D: fidl::encoding::ResourceDialect>
11861 fidl::encoding::Encode<WlanFullmacImplIfcStopConfRequest, D>
11862 for &WlanFullmacImplIfcStopConfRequest
11863 {
11864 unsafe fn encode(
11865 self,
11866 encoder: &mut fidl::encoding::Encoder<'_, D>,
11867 offset: usize,
11868 mut depth: fidl::encoding::Depth,
11869 ) -> fidl::Result<()> {
11870 encoder.debug_check_bounds::<WlanFullmacImplIfcStopConfRequest>(offset);
11871 let max_ordinal: u64 = self.max_ordinal_present();
11873 encoder.write_num(max_ordinal, offset);
11874 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
11875 if max_ordinal == 0 {
11877 return Ok(());
11878 }
11879 depth.increment()?;
11880 let envelope_size = 8;
11881 let bytes_len = max_ordinal as usize * envelope_size;
11882 #[allow(unused_variables)]
11883 let offset = encoder.out_of_line_offset(bytes_len);
11884 let mut _prev_end_offset: usize = 0;
11885 if 1 > max_ordinal {
11886 return Ok(());
11887 }
11888
11889 let cur_offset: usize = (1 - 1) * envelope_size;
11892
11893 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
11895
11896 fidl::encoding::encode_in_envelope_optional::<StopResult, D>(
11901 self.result_code
11902 .as_ref()
11903 .map(<StopResult as fidl::encoding::ValueTypeMarker>::borrow),
11904 encoder,
11905 offset + cur_offset,
11906 depth,
11907 )?;
11908
11909 _prev_end_offset = cur_offset + envelope_size;
11910
11911 Ok(())
11912 }
11913 }
11914
11915 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
11916 for WlanFullmacImplIfcStopConfRequest
11917 {
11918 #[inline(always)]
11919 fn new_empty() -> Self {
11920 Self::default()
11921 }
11922
11923 unsafe fn decode(
11924 &mut self,
11925 decoder: &mut fidl::encoding::Decoder<'_, D>,
11926 offset: usize,
11927 mut depth: fidl::encoding::Depth,
11928 ) -> fidl::Result<()> {
11929 decoder.debug_check_bounds::<Self>(offset);
11930 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
11931 None => return Err(fidl::Error::NotNullable),
11932 Some(len) => len,
11933 };
11934 if len == 0 {
11936 return Ok(());
11937 };
11938 depth.increment()?;
11939 let envelope_size = 8;
11940 let bytes_len = len * envelope_size;
11941 let offset = decoder.out_of_line_offset(bytes_len)?;
11942 let mut _next_ordinal_to_read = 0;
11944 let mut next_offset = offset;
11945 let end_offset = offset + bytes_len;
11946 _next_ordinal_to_read += 1;
11947 if next_offset >= end_offset {
11948 return Ok(());
11949 }
11950
11951 while _next_ordinal_to_read < 1 {
11953 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11954 _next_ordinal_to_read += 1;
11955 next_offset += envelope_size;
11956 }
11957
11958 let next_out_of_line = decoder.next_out_of_line();
11959 let handles_before = decoder.remaining_handles();
11960 if let Some((inlined, num_bytes, num_handles)) =
11961 fidl::encoding::decode_envelope_header(decoder, next_offset)?
11962 {
11963 let member_inline_size =
11964 <StopResult as fidl::encoding::TypeMarker>::inline_size(decoder.context);
11965 if inlined != (member_inline_size <= 4) {
11966 return Err(fidl::Error::InvalidInlineBitInEnvelope);
11967 }
11968 let inner_offset;
11969 let mut inner_depth = depth.clone();
11970 if inlined {
11971 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
11972 inner_offset = next_offset;
11973 } else {
11974 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
11975 inner_depth.increment()?;
11976 }
11977 let val_ref =
11978 self.result_code.get_or_insert_with(|| fidl::new_empty!(StopResult, D));
11979 fidl::decode!(StopResult, D, val_ref, decoder, inner_offset, inner_depth)?;
11980 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
11981 {
11982 return Err(fidl::Error::InvalidNumBytesInEnvelope);
11983 }
11984 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
11985 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
11986 }
11987 }
11988
11989 next_offset += envelope_size;
11990
11991 while next_offset < end_offset {
11993 _next_ordinal_to_read += 1;
11994 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11995 next_offset += envelope_size;
11996 }
11997
11998 Ok(())
11999 }
12000 }
12001
12002 impl WlanFullmacImplInstallApfPacketFilterRequest {
12003 #[inline(always)]
12004 fn max_ordinal_present(&self) -> u64 {
12005 if let Some(_) = self.program {
12006 return 1;
12007 }
12008 0
12009 }
12010 }
12011
12012 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplInstallApfPacketFilterRequest {
12013 type Borrowed<'a> = &'a Self;
12014 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
12015 value
12016 }
12017 }
12018
12019 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplInstallApfPacketFilterRequest {
12020 type Owned = Self;
12021
12022 #[inline(always)]
12023 fn inline_align(_context: fidl::encoding::Context) -> usize {
12024 8
12025 }
12026
12027 #[inline(always)]
12028 fn inline_size(_context: fidl::encoding::Context) -> usize {
12029 16
12030 }
12031 }
12032
12033 unsafe impl<D: fidl::encoding::ResourceDialect>
12034 fidl::encoding::Encode<WlanFullmacImplInstallApfPacketFilterRequest, D>
12035 for &WlanFullmacImplInstallApfPacketFilterRequest
12036 {
12037 unsafe fn encode(
12038 self,
12039 encoder: &mut fidl::encoding::Encoder<'_, D>,
12040 offset: usize,
12041 mut depth: fidl::encoding::Depth,
12042 ) -> fidl::Result<()> {
12043 encoder.debug_check_bounds::<WlanFullmacImplInstallApfPacketFilterRequest>(offset);
12044 let max_ordinal: u64 = self.max_ordinal_present();
12046 encoder.write_num(max_ordinal, offset);
12047 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
12048 if max_ordinal == 0 {
12050 return Ok(());
12051 }
12052 depth.increment()?;
12053 let envelope_size = 8;
12054 let bytes_len = max_ordinal as usize * envelope_size;
12055 #[allow(unused_variables)]
12056 let offset = encoder.out_of_line_offset(bytes_len);
12057 let mut _prev_end_offset: usize = 0;
12058 if 1 > max_ordinal {
12059 return Ok(());
12060 }
12061
12062 let cur_offset: usize = (1 - 1) * envelope_size;
12065
12066 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12068
12069 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<u8>, D>(
12074 self.program.as_ref().map(<fidl::encoding::UnboundedVector<u8> as fidl::encoding::ValueTypeMarker>::borrow),
12075 encoder, offset + cur_offset, depth
12076 )?;
12077
12078 _prev_end_offset = cur_offset + envelope_size;
12079
12080 Ok(())
12081 }
12082 }
12083
12084 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
12085 for WlanFullmacImplInstallApfPacketFilterRequest
12086 {
12087 #[inline(always)]
12088 fn new_empty() -> Self {
12089 Self::default()
12090 }
12091
12092 unsafe fn decode(
12093 &mut self,
12094 decoder: &mut fidl::encoding::Decoder<'_, D>,
12095 offset: usize,
12096 mut depth: fidl::encoding::Depth,
12097 ) -> fidl::Result<()> {
12098 decoder.debug_check_bounds::<Self>(offset);
12099 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
12100 None => return Err(fidl::Error::NotNullable),
12101 Some(len) => len,
12102 };
12103 if len == 0 {
12105 return Ok(());
12106 };
12107 depth.increment()?;
12108 let envelope_size = 8;
12109 let bytes_len = len * envelope_size;
12110 let offset = decoder.out_of_line_offset(bytes_len)?;
12111 let mut _next_ordinal_to_read = 0;
12113 let mut next_offset = offset;
12114 let end_offset = offset + bytes_len;
12115 _next_ordinal_to_read += 1;
12116 if next_offset >= end_offset {
12117 return Ok(());
12118 }
12119
12120 while _next_ordinal_to_read < 1 {
12122 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12123 _next_ordinal_to_read += 1;
12124 next_offset += envelope_size;
12125 }
12126
12127 let next_out_of_line = decoder.next_out_of_line();
12128 let handles_before = decoder.remaining_handles();
12129 if let Some((inlined, num_bytes, num_handles)) =
12130 fidl::encoding::decode_envelope_header(decoder, next_offset)?
12131 {
12132 let member_inline_size = <fidl::encoding::UnboundedVector<u8> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
12133 if inlined != (member_inline_size <= 4) {
12134 return Err(fidl::Error::InvalidInlineBitInEnvelope);
12135 }
12136 let inner_offset;
12137 let mut inner_depth = depth.clone();
12138 if inlined {
12139 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
12140 inner_offset = next_offset;
12141 } else {
12142 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
12143 inner_depth.increment()?;
12144 }
12145 let val_ref = self.program.get_or_insert_with(|| {
12146 fidl::new_empty!(fidl::encoding::UnboundedVector<u8>, D)
12147 });
12148 fidl::decode!(
12149 fidl::encoding::UnboundedVector<u8>,
12150 D,
12151 val_ref,
12152 decoder,
12153 inner_offset,
12154 inner_depth
12155 )?;
12156 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
12157 {
12158 return Err(fidl::Error::InvalidNumBytesInEnvelope);
12159 }
12160 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
12161 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
12162 }
12163 }
12164
12165 next_offset += envelope_size;
12166
12167 while next_offset < end_offset {
12169 _next_ordinal_to_read += 1;
12170 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12171 next_offset += envelope_size;
12172 }
12173
12174 Ok(())
12175 }
12176 }
12177
12178 impl WlanFullmacImplOnLinkStateChangedRequest {
12179 #[inline(always)]
12180 fn max_ordinal_present(&self) -> u64 {
12181 if let Some(_) = self.online {
12182 return 1;
12183 }
12184 0
12185 }
12186 }
12187
12188 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplOnLinkStateChangedRequest {
12189 type Borrowed<'a> = &'a Self;
12190 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
12191 value
12192 }
12193 }
12194
12195 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplOnLinkStateChangedRequest {
12196 type Owned = Self;
12197
12198 #[inline(always)]
12199 fn inline_align(_context: fidl::encoding::Context) -> usize {
12200 8
12201 }
12202
12203 #[inline(always)]
12204 fn inline_size(_context: fidl::encoding::Context) -> usize {
12205 16
12206 }
12207 }
12208
12209 unsafe impl<D: fidl::encoding::ResourceDialect>
12210 fidl::encoding::Encode<WlanFullmacImplOnLinkStateChangedRequest, D>
12211 for &WlanFullmacImplOnLinkStateChangedRequest
12212 {
12213 unsafe fn encode(
12214 self,
12215 encoder: &mut fidl::encoding::Encoder<'_, D>,
12216 offset: usize,
12217 mut depth: fidl::encoding::Depth,
12218 ) -> fidl::Result<()> {
12219 encoder.debug_check_bounds::<WlanFullmacImplOnLinkStateChangedRequest>(offset);
12220 let max_ordinal: u64 = self.max_ordinal_present();
12222 encoder.write_num(max_ordinal, offset);
12223 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
12224 if max_ordinal == 0 {
12226 return Ok(());
12227 }
12228 depth.increment()?;
12229 let envelope_size = 8;
12230 let bytes_len = max_ordinal as usize * envelope_size;
12231 #[allow(unused_variables)]
12232 let offset = encoder.out_of_line_offset(bytes_len);
12233 let mut _prev_end_offset: usize = 0;
12234 if 1 > max_ordinal {
12235 return Ok(());
12236 }
12237
12238 let cur_offset: usize = (1 - 1) * envelope_size;
12241
12242 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12244
12245 fidl::encoding::encode_in_envelope_optional::<bool, D>(
12250 self.online.as_ref().map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
12251 encoder,
12252 offset + cur_offset,
12253 depth,
12254 )?;
12255
12256 _prev_end_offset = cur_offset + envelope_size;
12257
12258 Ok(())
12259 }
12260 }
12261
12262 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
12263 for WlanFullmacImplOnLinkStateChangedRequest
12264 {
12265 #[inline(always)]
12266 fn new_empty() -> Self {
12267 Self::default()
12268 }
12269
12270 unsafe fn decode(
12271 &mut self,
12272 decoder: &mut fidl::encoding::Decoder<'_, D>,
12273 offset: usize,
12274 mut depth: fidl::encoding::Depth,
12275 ) -> fidl::Result<()> {
12276 decoder.debug_check_bounds::<Self>(offset);
12277 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
12278 None => return Err(fidl::Error::NotNullable),
12279 Some(len) => len,
12280 };
12281 if len == 0 {
12283 return Ok(());
12284 };
12285 depth.increment()?;
12286 let envelope_size = 8;
12287 let bytes_len = len * envelope_size;
12288 let offset = decoder.out_of_line_offset(bytes_len)?;
12289 let mut _next_ordinal_to_read = 0;
12291 let mut next_offset = offset;
12292 let end_offset = offset + bytes_len;
12293 _next_ordinal_to_read += 1;
12294 if next_offset >= end_offset {
12295 return Ok(());
12296 }
12297
12298 while _next_ordinal_to_read < 1 {
12300 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12301 _next_ordinal_to_read += 1;
12302 next_offset += envelope_size;
12303 }
12304
12305 let next_out_of_line = decoder.next_out_of_line();
12306 let handles_before = decoder.remaining_handles();
12307 if let Some((inlined, num_bytes, num_handles)) =
12308 fidl::encoding::decode_envelope_header(decoder, next_offset)?
12309 {
12310 let member_inline_size =
12311 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
12312 if inlined != (member_inline_size <= 4) {
12313 return Err(fidl::Error::InvalidInlineBitInEnvelope);
12314 }
12315 let inner_offset;
12316 let mut inner_depth = depth.clone();
12317 if inlined {
12318 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
12319 inner_offset = next_offset;
12320 } else {
12321 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
12322 inner_depth.increment()?;
12323 }
12324 let val_ref = self.online.get_or_insert_with(|| fidl::new_empty!(bool, D));
12325 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
12326 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
12327 {
12328 return Err(fidl::Error::InvalidNumBytesInEnvelope);
12329 }
12330 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
12331 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
12332 }
12333 }
12334
12335 next_offset += envelope_size;
12336
12337 while next_offset < end_offset {
12339 _next_ordinal_to_read += 1;
12340 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12341 next_offset += envelope_size;
12342 }
12343
12344 Ok(())
12345 }
12346 }
12347
12348 impl WlanFullmacImplReconnectRequest {
12349 #[inline(always)]
12350 fn max_ordinal_present(&self) -> u64 {
12351 if let Some(_) = self.peer_sta_address {
12352 return 1;
12353 }
12354 0
12355 }
12356 }
12357
12358 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplReconnectRequest {
12359 type Borrowed<'a> = &'a Self;
12360 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
12361 value
12362 }
12363 }
12364
12365 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplReconnectRequest {
12366 type Owned = Self;
12367
12368 #[inline(always)]
12369 fn inline_align(_context: fidl::encoding::Context) -> usize {
12370 8
12371 }
12372
12373 #[inline(always)]
12374 fn inline_size(_context: fidl::encoding::Context) -> usize {
12375 16
12376 }
12377 }
12378
12379 unsafe impl<D: fidl::encoding::ResourceDialect>
12380 fidl::encoding::Encode<WlanFullmacImplReconnectRequest, D>
12381 for &WlanFullmacImplReconnectRequest
12382 {
12383 unsafe fn encode(
12384 self,
12385 encoder: &mut fidl::encoding::Encoder<'_, D>,
12386 offset: usize,
12387 mut depth: fidl::encoding::Depth,
12388 ) -> fidl::Result<()> {
12389 encoder.debug_check_bounds::<WlanFullmacImplReconnectRequest>(offset);
12390 let max_ordinal: u64 = self.max_ordinal_present();
12392 encoder.write_num(max_ordinal, offset);
12393 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
12394 if max_ordinal == 0 {
12396 return Ok(());
12397 }
12398 depth.increment()?;
12399 let envelope_size = 8;
12400 let bytes_len = max_ordinal as usize * envelope_size;
12401 #[allow(unused_variables)]
12402 let offset = encoder.out_of_line_offset(bytes_len);
12403 let mut _prev_end_offset: usize = 0;
12404 if 1 > max_ordinal {
12405 return Ok(());
12406 }
12407
12408 let cur_offset: usize = (1 - 1) * envelope_size;
12411
12412 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12414
12415 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
12420 self.peer_sta_address
12421 .as_ref()
12422 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
12423 encoder,
12424 offset + cur_offset,
12425 depth,
12426 )?;
12427
12428 _prev_end_offset = cur_offset + envelope_size;
12429
12430 Ok(())
12431 }
12432 }
12433
12434 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
12435 for WlanFullmacImplReconnectRequest
12436 {
12437 #[inline(always)]
12438 fn new_empty() -> Self {
12439 Self::default()
12440 }
12441
12442 unsafe fn decode(
12443 &mut self,
12444 decoder: &mut fidl::encoding::Decoder<'_, D>,
12445 offset: usize,
12446 mut depth: fidl::encoding::Depth,
12447 ) -> fidl::Result<()> {
12448 decoder.debug_check_bounds::<Self>(offset);
12449 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
12450 None => return Err(fidl::Error::NotNullable),
12451 Some(len) => len,
12452 };
12453 if len == 0 {
12455 return Ok(());
12456 };
12457 depth.increment()?;
12458 let envelope_size = 8;
12459 let bytes_len = len * envelope_size;
12460 let offset = decoder.out_of_line_offset(bytes_len)?;
12461 let mut _next_ordinal_to_read = 0;
12463 let mut next_offset = offset;
12464 let end_offset = offset + bytes_len;
12465 _next_ordinal_to_read += 1;
12466 if next_offset >= end_offset {
12467 return Ok(());
12468 }
12469
12470 while _next_ordinal_to_read < 1 {
12472 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12473 _next_ordinal_to_read += 1;
12474 next_offset += envelope_size;
12475 }
12476
12477 let next_out_of_line = decoder.next_out_of_line();
12478 let handles_before = decoder.remaining_handles();
12479 if let Some((inlined, num_bytes, num_handles)) =
12480 fidl::encoding::decode_envelope_header(decoder, next_offset)?
12481 {
12482 let member_inline_size =
12483 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
12484 decoder.context,
12485 );
12486 if inlined != (member_inline_size <= 4) {
12487 return Err(fidl::Error::InvalidInlineBitInEnvelope);
12488 }
12489 let inner_offset;
12490 let mut inner_depth = depth.clone();
12491 if inlined {
12492 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
12493 inner_offset = next_offset;
12494 } else {
12495 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
12496 inner_depth.increment()?;
12497 }
12498 let val_ref = self
12499 .peer_sta_address
12500 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
12501 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
12502 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
12503 {
12504 return Err(fidl::Error::InvalidNumBytesInEnvelope);
12505 }
12506 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
12507 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
12508 }
12509 }
12510
12511 next_offset += envelope_size;
12512
12513 while next_offset < end_offset {
12515 _next_ordinal_to_read += 1;
12516 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12517 next_offset += envelope_size;
12518 }
12519
12520 Ok(())
12521 }
12522 }
12523
12524 impl WlanFullmacImplRoamRequest {
12525 #[inline(always)]
12526 fn max_ordinal_present(&self) -> u64 {
12527 if let Some(_) = self.selected_bss {
12528 return 1;
12529 }
12530 0
12531 }
12532 }
12533
12534 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplRoamRequest {
12535 type Borrowed<'a> = &'a Self;
12536 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
12537 value
12538 }
12539 }
12540
12541 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplRoamRequest {
12542 type Owned = Self;
12543
12544 #[inline(always)]
12545 fn inline_align(_context: fidl::encoding::Context) -> usize {
12546 8
12547 }
12548
12549 #[inline(always)]
12550 fn inline_size(_context: fidl::encoding::Context) -> usize {
12551 16
12552 }
12553 }
12554
12555 unsafe impl<D: fidl::encoding::ResourceDialect>
12556 fidl::encoding::Encode<WlanFullmacImplRoamRequest, D> for &WlanFullmacImplRoamRequest
12557 {
12558 unsafe fn encode(
12559 self,
12560 encoder: &mut fidl::encoding::Encoder<'_, D>,
12561 offset: usize,
12562 mut depth: fidl::encoding::Depth,
12563 ) -> fidl::Result<()> {
12564 encoder.debug_check_bounds::<WlanFullmacImplRoamRequest>(offset);
12565 let max_ordinal: u64 = self.max_ordinal_present();
12567 encoder.write_num(max_ordinal, offset);
12568 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
12569 if max_ordinal == 0 {
12571 return Ok(());
12572 }
12573 depth.increment()?;
12574 let envelope_size = 8;
12575 let bytes_len = max_ordinal as usize * envelope_size;
12576 #[allow(unused_variables)]
12577 let offset = encoder.out_of_line_offset(bytes_len);
12578 let mut _prev_end_offset: usize = 0;
12579 if 1 > max_ordinal {
12580 return Ok(());
12581 }
12582
12583 let cur_offset: usize = (1 - 1) * envelope_size;
12586
12587 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12589
12590 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_ieee80211_common::BssDescription, D>(
12595 self.selected_bss.as_ref().map(<fidl_fuchsia_wlan_ieee80211_common::BssDescription as fidl::encoding::ValueTypeMarker>::borrow),
12596 encoder, offset + cur_offset, depth
12597 )?;
12598
12599 _prev_end_offset = cur_offset + envelope_size;
12600
12601 Ok(())
12602 }
12603 }
12604
12605 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
12606 for WlanFullmacImplRoamRequest
12607 {
12608 #[inline(always)]
12609 fn new_empty() -> Self {
12610 Self::default()
12611 }
12612
12613 unsafe fn decode(
12614 &mut self,
12615 decoder: &mut fidl::encoding::Decoder<'_, D>,
12616 offset: usize,
12617 mut depth: fidl::encoding::Depth,
12618 ) -> fidl::Result<()> {
12619 decoder.debug_check_bounds::<Self>(offset);
12620 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
12621 None => return Err(fidl::Error::NotNullable),
12622 Some(len) => len,
12623 };
12624 if len == 0 {
12626 return Ok(());
12627 };
12628 depth.increment()?;
12629 let envelope_size = 8;
12630 let bytes_len = len * envelope_size;
12631 let offset = decoder.out_of_line_offset(bytes_len)?;
12632 let mut _next_ordinal_to_read = 0;
12634 let mut next_offset = offset;
12635 let end_offset = offset + bytes_len;
12636 _next_ordinal_to_read += 1;
12637 if next_offset >= end_offset {
12638 return Ok(());
12639 }
12640
12641 while _next_ordinal_to_read < 1 {
12643 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12644 _next_ordinal_to_read += 1;
12645 next_offset += envelope_size;
12646 }
12647
12648 let next_out_of_line = decoder.next_out_of_line();
12649 let handles_before = decoder.remaining_handles();
12650 if let Some((inlined, num_bytes, num_handles)) =
12651 fidl::encoding::decode_envelope_header(decoder, next_offset)?
12652 {
12653 let member_inline_size = <fidl_fuchsia_wlan_ieee80211_common::BssDescription as fidl::encoding::TypeMarker>::inline_size(decoder.context);
12654 if inlined != (member_inline_size <= 4) {
12655 return Err(fidl::Error::InvalidInlineBitInEnvelope);
12656 }
12657 let inner_offset;
12658 let mut inner_depth = depth.clone();
12659 if inlined {
12660 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
12661 inner_offset = next_offset;
12662 } else {
12663 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
12664 inner_depth.increment()?;
12665 }
12666 let val_ref = self.selected_bss.get_or_insert_with(|| {
12667 fidl::new_empty!(fidl_fuchsia_wlan_ieee80211_common::BssDescription, D)
12668 });
12669 fidl::decode!(
12670 fidl_fuchsia_wlan_ieee80211_common::BssDescription,
12671 D,
12672 val_ref,
12673 decoder,
12674 inner_offset,
12675 inner_depth
12676 )?;
12677 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
12678 {
12679 return Err(fidl::Error::InvalidNumBytesInEnvelope);
12680 }
12681 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
12682 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
12683 }
12684 }
12685
12686 next_offset += envelope_size;
12687
12688 while next_offset < end_offset {
12690 _next_ordinal_to_read += 1;
12691 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12692 next_offset += envelope_size;
12693 }
12694
12695 Ok(())
12696 }
12697 }
12698
12699 impl WlanFullmacImplSaeHandshakeRespRequest {
12700 #[inline(always)]
12701 fn max_ordinal_present(&self) -> u64 {
12702 if let Some(_) = self.status_code {
12703 return 2;
12704 }
12705 if let Some(_) = self.peer_sta_address {
12706 return 1;
12707 }
12708 0
12709 }
12710 }
12711
12712 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplSaeHandshakeRespRequest {
12713 type Borrowed<'a> = &'a Self;
12714 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
12715 value
12716 }
12717 }
12718
12719 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplSaeHandshakeRespRequest {
12720 type Owned = Self;
12721
12722 #[inline(always)]
12723 fn inline_align(_context: fidl::encoding::Context) -> usize {
12724 8
12725 }
12726
12727 #[inline(always)]
12728 fn inline_size(_context: fidl::encoding::Context) -> usize {
12729 16
12730 }
12731 }
12732
12733 unsafe impl<D: fidl::encoding::ResourceDialect>
12734 fidl::encoding::Encode<WlanFullmacImplSaeHandshakeRespRequest, D>
12735 for &WlanFullmacImplSaeHandshakeRespRequest
12736 {
12737 unsafe fn encode(
12738 self,
12739 encoder: &mut fidl::encoding::Encoder<'_, D>,
12740 offset: usize,
12741 mut depth: fidl::encoding::Depth,
12742 ) -> fidl::Result<()> {
12743 encoder.debug_check_bounds::<WlanFullmacImplSaeHandshakeRespRequest>(offset);
12744 let max_ordinal: u64 = self.max_ordinal_present();
12746 encoder.write_num(max_ordinal, offset);
12747 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
12748 if max_ordinal == 0 {
12750 return Ok(());
12751 }
12752 depth.increment()?;
12753 let envelope_size = 8;
12754 let bytes_len = max_ordinal as usize * envelope_size;
12755 #[allow(unused_variables)]
12756 let offset = encoder.out_of_line_offset(bytes_len);
12757 let mut _prev_end_offset: usize = 0;
12758 if 1 > max_ordinal {
12759 return Ok(());
12760 }
12761
12762 let cur_offset: usize = (1 - 1) * envelope_size;
12765
12766 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12768
12769 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
12774 self.peer_sta_address
12775 .as_ref()
12776 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
12777 encoder,
12778 offset + cur_offset,
12779 depth,
12780 )?;
12781
12782 _prev_end_offset = cur_offset + envelope_size;
12783 if 2 > max_ordinal {
12784 return Ok(());
12785 }
12786
12787 let cur_offset: usize = (2 - 1) * envelope_size;
12790
12791 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12793
12794 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_ieee80211_common::StatusCode, D>(
12799 self.status_code.as_ref().map(<fidl_fuchsia_wlan_ieee80211_common::StatusCode as fidl::encoding::ValueTypeMarker>::borrow),
12800 encoder, offset + cur_offset, depth
12801 )?;
12802
12803 _prev_end_offset = cur_offset + envelope_size;
12804
12805 Ok(())
12806 }
12807 }
12808
12809 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
12810 for WlanFullmacImplSaeHandshakeRespRequest
12811 {
12812 #[inline(always)]
12813 fn new_empty() -> Self {
12814 Self::default()
12815 }
12816
12817 unsafe fn decode(
12818 &mut self,
12819 decoder: &mut fidl::encoding::Decoder<'_, D>,
12820 offset: usize,
12821 mut depth: fidl::encoding::Depth,
12822 ) -> fidl::Result<()> {
12823 decoder.debug_check_bounds::<Self>(offset);
12824 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
12825 None => return Err(fidl::Error::NotNullable),
12826 Some(len) => len,
12827 };
12828 if len == 0 {
12830 return Ok(());
12831 };
12832 depth.increment()?;
12833 let envelope_size = 8;
12834 let bytes_len = len * envelope_size;
12835 let offset = decoder.out_of_line_offset(bytes_len)?;
12836 let mut _next_ordinal_to_read = 0;
12838 let mut next_offset = offset;
12839 let end_offset = offset + bytes_len;
12840 _next_ordinal_to_read += 1;
12841 if next_offset >= end_offset {
12842 return Ok(());
12843 }
12844
12845 while _next_ordinal_to_read < 1 {
12847 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12848 _next_ordinal_to_read += 1;
12849 next_offset += envelope_size;
12850 }
12851
12852 let next_out_of_line = decoder.next_out_of_line();
12853 let handles_before = decoder.remaining_handles();
12854 if let Some((inlined, num_bytes, num_handles)) =
12855 fidl::encoding::decode_envelope_header(decoder, next_offset)?
12856 {
12857 let member_inline_size =
12858 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
12859 decoder.context,
12860 );
12861 if inlined != (member_inline_size <= 4) {
12862 return Err(fidl::Error::InvalidInlineBitInEnvelope);
12863 }
12864 let inner_offset;
12865 let mut inner_depth = depth.clone();
12866 if inlined {
12867 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
12868 inner_offset = next_offset;
12869 } else {
12870 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
12871 inner_depth.increment()?;
12872 }
12873 let val_ref = self
12874 .peer_sta_address
12875 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
12876 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
12877 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
12878 {
12879 return Err(fidl::Error::InvalidNumBytesInEnvelope);
12880 }
12881 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
12882 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
12883 }
12884 }
12885
12886 next_offset += envelope_size;
12887 _next_ordinal_to_read += 1;
12888 if next_offset >= end_offset {
12889 return Ok(());
12890 }
12891
12892 while _next_ordinal_to_read < 2 {
12894 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12895 _next_ordinal_to_read += 1;
12896 next_offset += envelope_size;
12897 }
12898
12899 let next_out_of_line = decoder.next_out_of_line();
12900 let handles_before = decoder.remaining_handles();
12901 if let Some((inlined, num_bytes, num_handles)) =
12902 fidl::encoding::decode_envelope_header(decoder, next_offset)?
12903 {
12904 let member_inline_size = <fidl_fuchsia_wlan_ieee80211_common::StatusCode as fidl::encoding::TypeMarker>::inline_size(decoder.context);
12905 if inlined != (member_inline_size <= 4) {
12906 return Err(fidl::Error::InvalidInlineBitInEnvelope);
12907 }
12908 let inner_offset;
12909 let mut inner_depth = depth.clone();
12910 if inlined {
12911 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
12912 inner_offset = next_offset;
12913 } else {
12914 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
12915 inner_depth.increment()?;
12916 }
12917 let val_ref = self.status_code.get_or_insert_with(|| {
12918 fidl::new_empty!(fidl_fuchsia_wlan_ieee80211_common::StatusCode, D)
12919 });
12920 fidl::decode!(
12921 fidl_fuchsia_wlan_ieee80211_common::StatusCode,
12922 D,
12923 val_ref,
12924 decoder,
12925 inner_offset,
12926 inner_depth
12927 )?;
12928 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
12929 {
12930 return Err(fidl::Error::InvalidNumBytesInEnvelope);
12931 }
12932 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
12933 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
12934 }
12935 }
12936
12937 next_offset += envelope_size;
12938
12939 while next_offset < end_offset {
12941 _next_ordinal_to_read += 1;
12942 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12943 next_offset += envelope_size;
12944 }
12945
12946 Ok(())
12947 }
12948 }
12949
12950 impl WlanFullmacImplSetApfPacketFilterEnabledRequest {
12951 #[inline(always)]
12952 fn max_ordinal_present(&self) -> u64 {
12953 if let Some(_) = self.enabled {
12954 return 1;
12955 }
12956 0
12957 }
12958 }
12959
12960 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplSetApfPacketFilterEnabledRequest {
12961 type Borrowed<'a> = &'a Self;
12962 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
12963 value
12964 }
12965 }
12966
12967 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplSetApfPacketFilterEnabledRequest {
12968 type Owned = Self;
12969
12970 #[inline(always)]
12971 fn inline_align(_context: fidl::encoding::Context) -> usize {
12972 8
12973 }
12974
12975 #[inline(always)]
12976 fn inline_size(_context: fidl::encoding::Context) -> usize {
12977 16
12978 }
12979 }
12980
12981 unsafe impl<D: fidl::encoding::ResourceDialect>
12982 fidl::encoding::Encode<WlanFullmacImplSetApfPacketFilterEnabledRequest, D>
12983 for &WlanFullmacImplSetApfPacketFilterEnabledRequest
12984 {
12985 unsafe fn encode(
12986 self,
12987 encoder: &mut fidl::encoding::Encoder<'_, D>,
12988 offset: usize,
12989 mut depth: fidl::encoding::Depth,
12990 ) -> fidl::Result<()> {
12991 encoder.debug_check_bounds::<WlanFullmacImplSetApfPacketFilterEnabledRequest>(offset);
12992 let max_ordinal: u64 = self.max_ordinal_present();
12994 encoder.write_num(max_ordinal, offset);
12995 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
12996 if max_ordinal == 0 {
12998 return Ok(());
12999 }
13000 depth.increment()?;
13001 let envelope_size = 8;
13002 let bytes_len = max_ordinal as usize * envelope_size;
13003 #[allow(unused_variables)]
13004 let offset = encoder.out_of_line_offset(bytes_len);
13005 let mut _prev_end_offset: usize = 0;
13006 if 1 > max_ordinal {
13007 return Ok(());
13008 }
13009
13010 let cur_offset: usize = (1 - 1) * envelope_size;
13013
13014 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
13016
13017 fidl::encoding::encode_in_envelope_optional::<bool, D>(
13022 self.enabled.as_ref().map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
13023 encoder,
13024 offset + cur_offset,
13025 depth,
13026 )?;
13027
13028 _prev_end_offset = cur_offset + envelope_size;
13029
13030 Ok(())
13031 }
13032 }
13033
13034 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
13035 for WlanFullmacImplSetApfPacketFilterEnabledRequest
13036 {
13037 #[inline(always)]
13038 fn new_empty() -> Self {
13039 Self::default()
13040 }
13041
13042 unsafe fn decode(
13043 &mut self,
13044 decoder: &mut fidl::encoding::Decoder<'_, D>,
13045 offset: usize,
13046 mut depth: fidl::encoding::Depth,
13047 ) -> fidl::Result<()> {
13048 decoder.debug_check_bounds::<Self>(offset);
13049 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
13050 None => return Err(fidl::Error::NotNullable),
13051 Some(len) => len,
13052 };
13053 if len == 0 {
13055 return Ok(());
13056 };
13057 depth.increment()?;
13058 let envelope_size = 8;
13059 let bytes_len = len * envelope_size;
13060 let offset = decoder.out_of_line_offset(bytes_len)?;
13061 let mut _next_ordinal_to_read = 0;
13063 let mut next_offset = offset;
13064 let end_offset = offset + bytes_len;
13065 _next_ordinal_to_read += 1;
13066 if next_offset >= end_offset {
13067 return Ok(());
13068 }
13069
13070 while _next_ordinal_to_read < 1 {
13072 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13073 _next_ordinal_to_read += 1;
13074 next_offset += envelope_size;
13075 }
13076
13077 let next_out_of_line = decoder.next_out_of_line();
13078 let handles_before = decoder.remaining_handles();
13079 if let Some((inlined, num_bytes, num_handles)) =
13080 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13081 {
13082 let member_inline_size =
13083 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
13084 if inlined != (member_inline_size <= 4) {
13085 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13086 }
13087 let inner_offset;
13088 let mut inner_depth = depth.clone();
13089 if inlined {
13090 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13091 inner_offset = next_offset;
13092 } else {
13093 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13094 inner_depth.increment()?;
13095 }
13096 let val_ref = self.enabled.get_or_insert_with(|| fidl::new_empty!(bool, D));
13097 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
13098 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13099 {
13100 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13101 }
13102 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13103 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13104 }
13105 }
13106
13107 next_offset += envelope_size;
13108
13109 while next_offset < end_offset {
13111 _next_ordinal_to_read += 1;
13112 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13113 next_offset += envelope_size;
13114 }
13115
13116 Ok(())
13117 }
13118 }
13119
13120 impl WlanFullmacImplSetKeysRequest {
13121 #[inline(always)]
13122 fn max_ordinal_present(&self) -> u64 {
13123 if let Some(_) = self.key_descriptors {
13124 return 2;
13125 }
13126 if let Some(_) = self.keylist {
13127 return 1;
13128 }
13129 0
13130 }
13131 }
13132
13133 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplSetKeysRequest {
13134 type Borrowed<'a> = &'a Self;
13135 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
13136 value
13137 }
13138 }
13139
13140 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplSetKeysRequest {
13141 type Owned = Self;
13142
13143 #[inline(always)]
13144 fn inline_align(_context: fidl::encoding::Context) -> usize {
13145 8
13146 }
13147
13148 #[inline(always)]
13149 fn inline_size(_context: fidl::encoding::Context) -> usize {
13150 16
13151 }
13152 }
13153
13154 unsafe impl<D: fidl::encoding::ResourceDialect>
13155 fidl::encoding::Encode<WlanFullmacImplSetKeysRequest, D>
13156 for &WlanFullmacImplSetKeysRequest
13157 {
13158 unsafe fn encode(
13159 self,
13160 encoder: &mut fidl::encoding::Encoder<'_, D>,
13161 offset: usize,
13162 mut depth: fidl::encoding::Depth,
13163 ) -> fidl::Result<()> {
13164 encoder.debug_check_bounds::<WlanFullmacImplSetKeysRequest>(offset);
13165 let max_ordinal: u64 = self.max_ordinal_present();
13167 encoder.write_num(max_ordinal, offset);
13168 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
13169 if max_ordinal == 0 {
13171 return Ok(());
13172 }
13173 depth.increment()?;
13174 let envelope_size = 8;
13175 let bytes_len = max_ordinal as usize * envelope_size;
13176 #[allow(unused_variables)]
13177 let offset = encoder.out_of_line_offset(bytes_len);
13178 let mut _prev_end_offset: usize = 0;
13179 if 1 > max_ordinal {
13180 return Ok(());
13181 }
13182
13183 let cur_offset: usize = (1 - 1) * envelope_size;
13186
13187 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
13189
13190 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<fidl_fuchsia_wlan_driver_common::WlanKeyConfig, 4>, D>(
13195 self.keylist.as_ref().map(<fidl::encoding::Vector<fidl_fuchsia_wlan_driver_common::WlanKeyConfig, 4> as fidl::encoding::ValueTypeMarker>::borrow),
13196 encoder, offset + cur_offset, depth
13197 )?;
13198
13199 _prev_end_offset = cur_offset + envelope_size;
13200 if 2 > max_ordinal {
13201 return Ok(());
13202 }
13203
13204 let cur_offset: usize = (2 - 1) * envelope_size;
13207
13208 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
13210
13211 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<fidl_fuchsia_wlan_ieee80211_common::SetKeyDescriptor, 4>, D>(
13216 self.key_descriptors.as_ref().map(<fidl::encoding::Vector<fidl_fuchsia_wlan_ieee80211_common::SetKeyDescriptor, 4> as fidl::encoding::ValueTypeMarker>::borrow),
13217 encoder, offset + cur_offset, depth
13218 )?;
13219
13220 _prev_end_offset = cur_offset + envelope_size;
13221
13222 Ok(())
13223 }
13224 }
13225
13226 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
13227 for WlanFullmacImplSetKeysRequest
13228 {
13229 #[inline(always)]
13230 fn new_empty() -> Self {
13231 Self::default()
13232 }
13233
13234 unsafe fn decode(
13235 &mut self,
13236 decoder: &mut fidl::encoding::Decoder<'_, D>,
13237 offset: usize,
13238 mut depth: fidl::encoding::Depth,
13239 ) -> fidl::Result<()> {
13240 decoder.debug_check_bounds::<Self>(offset);
13241 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
13242 None => return Err(fidl::Error::NotNullable),
13243 Some(len) => len,
13244 };
13245 if len == 0 {
13247 return Ok(());
13248 };
13249 depth.increment()?;
13250 let envelope_size = 8;
13251 let bytes_len = len * envelope_size;
13252 let offset = decoder.out_of_line_offset(bytes_len)?;
13253 let mut _next_ordinal_to_read = 0;
13255 let mut next_offset = offset;
13256 let end_offset = offset + bytes_len;
13257 _next_ordinal_to_read += 1;
13258 if next_offset >= end_offset {
13259 return Ok(());
13260 }
13261
13262 while _next_ordinal_to_read < 1 {
13264 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13265 _next_ordinal_to_read += 1;
13266 next_offset += envelope_size;
13267 }
13268
13269 let next_out_of_line = decoder.next_out_of_line();
13270 let handles_before = decoder.remaining_handles();
13271 if let Some((inlined, num_bytes, num_handles)) =
13272 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13273 {
13274 let member_inline_size = <fidl::encoding::Vector<
13275 fidl_fuchsia_wlan_driver_common::WlanKeyConfig,
13276 4,
13277 > as fidl::encoding::TypeMarker>::inline_size(
13278 decoder.context
13279 );
13280 if inlined != (member_inline_size <= 4) {
13281 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13282 }
13283 let inner_offset;
13284 let mut inner_depth = depth.clone();
13285 if inlined {
13286 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13287 inner_offset = next_offset;
13288 } else {
13289 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13290 inner_depth.increment()?;
13291 }
13292 let val_ref =
13293 self.keylist.get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<fidl_fuchsia_wlan_driver_common::WlanKeyConfig, 4>, D));
13294 fidl::decode!(fidl::encoding::Vector<fidl_fuchsia_wlan_driver_common::WlanKeyConfig, 4>, D, val_ref, decoder, inner_offset, inner_depth)?;
13295 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13296 {
13297 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13298 }
13299 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13300 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13301 }
13302 }
13303
13304 next_offset += envelope_size;
13305 _next_ordinal_to_read += 1;
13306 if next_offset >= end_offset {
13307 return Ok(());
13308 }
13309
13310 while _next_ordinal_to_read < 2 {
13312 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13313 _next_ordinal_to_read += 1;
13314 next_offset += envelope_size;
13315 }
13316
13317 let next_out_of_line = decoder.next_out_of_line();
13318 let handles_before = decoder.remaining_handles();
13319 if let Some((inlined, num_bytes, num_handles)) =
13320 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13321 {
13322 let member_inline_size = <fidl::encoding::Vector<
13323 fidl_fuchsia_wlan_ieee80211_common::SetKeyDescriptor,
13324 4,
13325 > as fidl::encoding::TypeMarker>::inline_size(
13326 decoder.context
13327 );
13328 if inlined != (member_inline_size <= 4) {
13329 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13330 }
13331 let inner_offset;
13332 let mut inner_depth = depth.clone();
13333 if inlined {
13334 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13335 inner_offset = next_offset;
13336 } else {
13337 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13338 inner_depth.increment()?;
13339 }
13340 let val_ref =
13341 self.key_descriptors.get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<fidl_fuchsia_wlan_ieee80211_common::SetKeyDescriptor, 4>, D));
13342 fidl::decode!(fidl::encoding::Vector<fidl_fuchsia_wlan_ieee80211_common::SetKeyDescriptor, 4>, D, val_ref, decoder, inner_offset, inner_depth)?;
13343 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13344 {
13345 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13346 }
13347 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13348 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13349 }
13350 }
13351
13352 next_offset += envelope_size;
13353
13354 while next_offset < end_offset {
13356 _next_ordinal_to_read += 1;
13357 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13358 next_offset += envelope_size;
13359 }
13360
13361 Ok(())
13362 }
13363 }
13364
13365 impl WlanFullmacImplStartBssRequest {
13366 #[inline(always)]
13367 fn max_ordinal_present(&self) -> u64 {
13368 if let Some(_) = self.vendor_ie {
13369 return 7;
13370 }
13371 if let Some(_) = self.rsne {
13372 return 6;
13373 }
13374 if let Some(_) = self.primary {
13375 return 5;
13376 }
13377 if let Some(_) = self.dtim_period {
13378 return 4;
13379 }
13380 if let Some(_) = self.beacon_period {
13381 return 3;
13382 }
13383 if let Some(_) = self.bss_type {
13384 return 2;
13385 }
13386 if let Some(_) = self.ssid {
13387 return 1;
13388 }
13389 0
13390 }
13391 }
13392
13393 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplStartBssRequest {
13394 type Borrowed<'a> = &'a Self;
13395 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
13396 value
13397 }
13398 }
13399
13400 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplStartBssRequest {
13401 type Owned = Self;
13402
13403 #[inline(always)]
13404 fn inline_align(_context: fidl::encoding::Context) -> usize {
13405 8
13406 }
13407
13408 #[inline(always)]
13409 fn inline_size(_context: fidl::encoding::Context) -> usize {
13410 16
13411 }
13412 }
13413
13414 unsafe impl<D: fidl::encoding::ResourceDialect>
13415 fidl::encoding::Encode<WlanFullmacImplStartBssRequest, D>
13416 for &WlanFullmacImplStartBssRequest
13417 {
13418 unsafe fn encode(
13419 self,
13420 encoder: &mut fidl::encoding::Encoder<'_, D>,
13421 offset: usize,
13422 mut depth: fidl::encoding::Depth,
13423 ) -> fidl::Result<()> {
13424 encoder.debug_check_bounds::<WlanFullmacImplStartBssRequest>(offset);
13425 let max_ordinal: u64 = self.max_ordinal_present();
13427 encoder.write_num(max_ordinal, offset);
13428 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
13429 if max_ordinal == 0 {
13431 return Ok(());
13432 }
13433 depth.increment()?;
13434 let envelope_size = 8;
13435 let bytes_len = max_ordinal as usize * envelope_size;
13436 #[allow(unused_variables)]
13437 let offset = encoder.out_of_line_offset(bytes_len);
13438 let mut _prev_end_offset: usize = 0;
13439 if 1 > max_ordinal {
13440 return Ok(());
13441 }
13442
13443 let cur_offset: usize = (1 - 1) * envelope_size;
13446
13447 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
13449
13450 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<u8, 32>, D>(
13455 self.ssid.as_ref().map(
13456 <fidl::encoding::Vector<u8, 32> as fidl::encoding::ValueTypeMarker>::borrow,
13457 ),
13458 encoder,
13459 offset + cur_offset,
13460 depth,
13461 )?;
13462
13463 _prev_end_offset = cur_offset + envelope_size;
13464 if 2 > max_ordinal {
13465 return Ok(());
13466 }
13467
13468 let cur_offset: usize = (2 - 1) * envelope_size;
13471
13472 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
13474
13475 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_ieee80211_common::BssType, D>(
13480 self.bss_type.as_ref().map(<fidl_fuchsia_wlan_ieee80211_common::BssType as fidl::encoding::ValueTypeMarker>::borrow),
13481 encoder, offset + cur_offset, depth
13482 )?;
13483
13484 _prev_end_offset = cur_offset + envelope_size;
13485 if 3 > max_ordinal {
13486 return Ok(());
13487 }
13488
13489 let cur_offset: usize = (3 - 1) * envelope_size;
13492
13493 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
13495
13496 fidl::encoding::encode_in_envelope_optional::<u32, D>(
13501 self.beacon_period.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
13502 encoder,
13503 offset + cur_offset,
13504 depth,
13505 )?;
13506
13507 _prev_end_offset = cur_offset + envelope_size;
13508 if 4 > max_ordinal {
13509 return Ok(());
13510 }
13511
13512 let cur_offset: usize = (4 - 1) * envelope_size;
13515
13516 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
13518
13519 fidl::encoding::encode_in_envelope_optional::<u32, D>(
13524 self.dtim_period.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
13525 encoder,
13526 offset + cur_offset,
13527 depth,
13528 )?;
13529
13530 _prev_end_offset = cur_offset + envelope_size;
13531 if 5 > max_ordinal {
13532 return Ok(());
13533 }
13534
13535 let cur_offset: usize = (5 - 1) * envelope_size;
13538
13539 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
13541
13542 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_ieee80211_common::ChannelNumber, D>(
13547 self.primary.as_ref().map(<fidl_fuchsia_wlan_ieee80211_common::ChannelNumber as fidl::encoding::ValueTypeMarker>::borrow),
13548 encoder, offset + cur_offset, depth
13549 )?;
13550
13551 _prev_end_offset = cur_offset + envelope_size;
13552 if 6 > max_ordinal {
13553 return Ok(());
13554 }
13555
13556 let cur_offset: usize = (6 - 1) * envelope_size;
13559
13560 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
13562
13563 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<u8, 257>, D>(
13568 self.rsne.as_ref().map(
13569 <fidl::encoding::Vector<u8, 257> as fidl::encoding::ValueTypeMarker>::borrow,
13570 ),
13571 encoder,
13572 offset + cur_offset,
13573 depth,
13574 )?;
13575
13576 _prev_end_offset = cur_offset + envelope_size;
13577 if 7 > max_ordinal {
13578 return Ok(());
13579 }
13580
13581 let cur_offset: usize = (7 - 1) * envelope_size;
13584
13585 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
13587
13588 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<u8, 514>, D>(
13593 self.vendor_ie.as_ref().map(
13594 <fidl::encoding::Vector<u8, 514> as fidl::encoding::ValueTypeMarker>::borrow,
13595 ),
13596 encoder,
13597 offset + cur_offset,
13598 depth,
13599 )?;
13600
13601 _prev_end_offset = cur_offset + envelope_size;
13602
13603 Ok(())
13604 }
13605 }
13606
13607 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
13608 for WlanFullmacImplStartBssRequest
13609 {
13610 #[inline(always)]
13611 fn new_empty() -> Self {
13612 Self::default()
13613 }
13614
13615 unsafe fn decode(
13616 &mut self,
13617 decoder: &mut fidl::encoding::Decoder<'_, D>,
13618 offset: usize,
13619 mut depth: fidl::encoding::Depth,
13620 ) -> fidl::Result<()> {
13621 decoder.debug_check_bounds::<Self>(offset);
13622 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
13623 None => return Err(fidl::Error::NotNullable),
13624 Some(len) => len,
13625 };
13626 if len == 0 {
13628 return Ok(());
13629 };
13630 depth.increment()?;
13631 let envelope_size = 8;
13632 let bytes_len = len * envelope_size;
13633 let offset = decoder.out_of_line_offset(bytes_len)?;
13634 let mut _next_ordinal_to_read = 0;
13636 let mut next_offset = offset;
13637 let end_offset = offset + bytes_len;
13638 _next_ordinal_to_read += 1;
13639 if next_offset >= end_offset {
13640 return Ok(());
13641 }
13642
13643 while _next_ordinal_to_read < 1 {
13645 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13646 _next_ordinal_to_read += 1;
13647 next_offset += envelope_size;
13648 }
13649
13650 let next_out_of_line = decoder.next_out_of_line();
13651 let handles_before = decoder.remaining_handles();
13652 if let Some((inlined, num_bytes, num_handles)) =
13653 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13654 {
13655 let member_inline_size =
13656 <fidl::encoding::Vector<u8, 32> as fidl::encoding::TypeMarker>::inline_size(
13657 decoder.context,
13658 );
13659 if inlined != (member_inline_size <= 4) {
13660 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13661 }
13662 let inner_offset;
13663 let mut inner_depth = depth.clone();
13664 if inlined {
13665 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13666 inner_offset = next_offset;
13667 } else {
13668 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13669 inner_depth.increment()?;
13670 }
13671 let val_ref = self
13672 .ssid
13673 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<u8, 32>, D));
13674 fidl::decode!(fidl::encoding::Vector<u8, 32>, D, val_ref, decoder, inner_offset, inner_depth)?;
13675 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13676 {
13677 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13678 }
13679 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13680 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13681 }
13682 }
13683
13684 next_offset += envelope_size;
13685 _next_ordinal_to_read += 1;
13686 if next_offset >= end_offset {
13687 return Ok(());
13688 }
13689
13690 while _next_ordinal_to_read < 2 {
13692 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13693 _next_ordinal_to_read += 1;
13694 next_offset += envelope_size;
13695 }
13696
13697 let next_out_of_line = decoder.next_out_of_line();
13698 let handles_before = decoder.remaining_handles();
13699 if let Some((inlined, num_bytes, num_handles)) =
13700 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13701 {
13702 let member_inline_size = <fidl_fuchsia_wlan_ieee80211_common::BssType as fidl::encoding::TypeMarker>::inline_size(decoder.context);
13703 if inlined != (member_inline_size <= 4) {
13704 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13705 }
13706 let inner_offset;
13707 let mut inner_depth = depth.clone();
13708 if inlined {
13709 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13710 inner_offset = next_offset;
13711 } else {
13712 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13713 inner_depth.increment()?;
13714 }
13715 let val_ref = self.bss_type.get_or_insert_with(|| {
13716 fidl::new_empty!(fidl_fuchsia_wlan_ieee80211_common::BssType, D)
13717 });
13718 fidl::decode!(
13719 fidl_fuchsia_wlan_ieee80211_common::BssType,
13720 D,
13721 val_ref,
13722 decoder,
13723 inner_offset,
13724 inner_depth
13725 )?;
13726 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13727 {
13728 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13729 }
13730 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13731 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13732 }
13733 }
13734
13735 next_offset += envelope_size;
13736 _next_ordinal_to_read += 1;
13737 if next_offset >= end_offset {
13738 return Ok(());
13739 }
13740
13741 while _next_ordinal_to_read < 3 {
13743 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13744 _next_ordinal_to_read += 1;
13745 next_offset += envelope_size;
13746 }
13747
13748 let next_out_of_line = decoder.next_out_of_line();
13749 let handles_before = decoder.remaining_handles();
13750 if let Some((inlined, num_bytes, num_handles)) =
13751 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13752 {
13753 let member_inline_size =
13754 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
13755 if inlined != (member_inline_size <= 4) {
13756 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13757 }
13758 let inner_offset;
13759 let mut inner_depth = depth.clone();
13760 if inlined {
13761 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13762 inner_offset = next_offset;
13763 } else {
13764 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13765 inner_depth.increment()?;
13766 }
13767 let val_ref = self.beacon_period.get_or_insert_with(|| fidl::new_empty!(u32, D));
13768 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
13769 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13770 {
13771 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13772 }
13773 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13774 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13775 }
13776 }
13777
13778 next_offset += envelope_size;
13779 _next_ordinal_to_read += 1;
13780 if next_offset >= end_offset {
13781 return Ok(());
13782 }
13783
13784 while _next_ordinal_to_read < 4 {
13786 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13787 _next_ordinal_to_read += 1;
13788 next_offset += envelope_size;
13789 }
13790
13791 let next_out_of_line = decoder.next_out_of_line();
13792 let handles_before = decoder.remaining_handles();
13793 if let Some((inlined, num_bytes, num_handles)) =
13794 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13795 {
13796 let member_inline_size =
13797 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
13798 if inlined != (member_inline_size <= 4) {
13799 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13800 }
13801 let inner_offset;
13802 let mut inner_depth = depth.clone();
13803 if inlined {
13804 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13805 inner_offset = next_offset;
13806 } else {
13807 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13808 inner_depth.increment()?;
13809 }
13810 let val_ref = self.dtim_period.get_or_insert_with(|| fidl::new_empty!(u32, D));
13811 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
13812 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13813 {
13814 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13815 }
13816 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13817 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13818 }
13819 }
13820
13821 next_offset += envelope_size;
13822 _next_ordinal_to_read += 1;
13823 if next_offset >= end_offset {
13824 return Ok(());
13825 }
13826
13827 while _next_ordinal_to_read < 5 {
13829 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13830 _next_ordinal_to_read += 1;
13831 next_offset += envelope_size;
13832 }
13833
13834 let next_out_of_line = decoder.next_out_of_line();
13835 let handles_before = decoder.remaining_handles();
13836 if let Some((inlined, num_bytes, num_handles)) =
13837 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13838 {
13839 let member_inline_size = <fidl_fuchsia_wlan_ieee80211_common::ChannelNumber as fidl::encoding::TypeMarker>::inline_size(decoder.context);
13840 if inlined != (member_inline_size <= 4) {
13841 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13842 }
13843 let inner_offset;
13844 let mut inner_depth = depth.clone();
13845 if inlined {
13846 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13847 inner_offset = next_offset;
13848 } else {
13849 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13850 inner_depth.increment()?;
13851 }
13852 let val_ref = self.primary.get_or_insert_with(|| {
13853 fidl::new_empty!(fidl_fuchsia_wlan_ieee80211_common::ChannelNumber, D)
13854 });
13855 fidl::decode!(
13856 fidl_fuchsia_wlan_ieee80211_common::ChannelNumber,
13857 D,
13858 val_ref,
13859 decoder,
13860 inner_offset,
13861 inner_depth
13862 )?;
13863 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13864 {
13865 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13866 }
13867 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13868 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13869 }
13870 }
13871
13872 next_offset += envelope_size;
13873 _next_ordinal_to_read += 1;
13874 if next_offset >= end_offset {
13875 return Ok(());
13876 }
13877
13878 while _next_ordinal_to_read < 6 {
13880 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13881 _next_ordinal_to_read += 1;
13882 next_offset += envelope_size;
13883 }
13884
13885 let next_out_of_line = decoder.next_out_of_line();
13886 let handles_before = decoder.remaining_handles();
13887 if let Some((inlined, num_bytes, num_handles)) =
13888 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13889 {
13890 let member_inline_size =
13891 <fidl::encoding::Vector<u8, 257> as fidl::encoding::TypeMarker>::inline_size(
13892 decoder.context,
13893 );
13894 if inlined != (member_inline_size <= 4) {
13895 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13896 }
13897 let inner_offset;
13898 let mut inner_depth = depth.clone();
13899 if inlined {
13900 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13901 inner_offset = next_offset;
13902 } else {
13903 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13904 inner_depth.increment()?;
13905 }
13906 let val_ref = self
13907 .rsne
13908 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<u8, 257>, D));
13909 fidl::decode!(fidl::encoding::Vector<u8, 257>, D, val_ref, decoder, inner_offset, inner_depth)?;
13910 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13911 {
13912 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13913 }
13914 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13915 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13916 }
13917 }
13918
13919 next_offset += envelope_size;
13920 _next_ordinal_to_read += 1;
13921 if next_offset >= end_offset {
13922 return Ok(());
13923 }
13924
13925 while _next_ordinal_to_read < 7 {
13927 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13928 _next_ordinal_to_read += 1;
13929 next_offset += envelope_size;
13930 }
13931
13932 let next_out_of_line = decoder.next_out_of_line();
13933 let handles_before = decoder.remaining_handles();
13934 if let Some((inlined, num_bytes, num_handles)) =
13935 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13936 {
13937 let member_inline_size =
13938 <fidl::encoding::Vector<u8, 514> as fidl::encoding::TypeMarker>::inline_size(
13939 decoder.context,
13940 );
13941 if inlined != (member_inline_size <= 4) {
13942 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13943 }
13944 let inner_offset;
13945 let mut inner_depth = depth.clone();
13946 if inlined {
13947 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13948 inner_offset = next_offset;
13949 } else {
13950 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13951 inner_depth.increment()?;
13952 }
13953 let val_ref = self
13954 .vendor_ie
13955 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<u8, 514>, D));
13956 fidl::decode!(fidl::encoding::Vector<u8, 514>, D, val_ref, decoder, inner_offset, inner_depth)?;
13957 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13958 {
13959 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13960 }
13961 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13962 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13963 }
13964 }
13965
13966 next_offset += envelope_size;
13967
13968 while next_offset < end_offset {
13970 _next_ordinal_to_read += 1;
13971 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13972 next_offset += envelope_size;
13973 }
13974
13975 Ok(())
13976 }
13977 }
13978
13979 impl WlanFullmacImplStartRssiMonitorRequest {
13980 #[inline(always)]
13981 fn max_ordinal_present(&self) -> u64 {
13982 if let Some(_) = self.max_rssi_dbm {
13983 return 2;
13984 }
13985 if let Some(_) = self.min_rssi_dbm {
13986 return 1;
13987 }
13988 0
13989 }
13990 }
13991
13992 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplStartRssiMonitorRequest {
13993 type Borrowed<'a> = &'a Self;
13994 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
13995 value
13996 }
13997 }
13998
13999 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplStartRssiMonitorRequest {
14000 type Owned = Self;
14001
14002 #[inline(always)]
14003 fn inline_align(_context: fidl::encoding::Context) -> usize {
14004 8
14005 }
14006
14007 #[inline(always)]
14008 fn inline_size(_context: fidl::encoding::Context) -> usize {
14009 16
14010 }
14011 }
14012
14013 unsafe impl<D: fidl::encoding::ResourceDialect>
14014 fidl::encoding::Encode<WlanFullmacImplStartRssiMonitorRequest, D>
14015 for &WlanFullmacImplStartRssiMonitorRequest
14016 {
14017 unsafe fn encode(
14018 self,
14019 encoder: &mut fidl::encoding::Encoder<'_, D>,
14020 offset: usize,
14021 mut depth: fidl::encoding::Depth,
14022 ) -> fidl::Result<()> {
14023 encoder.debug_check_bounds::<WlanFullmacImplStartRssiMonitorRequest>(offset);
14024 let max_ordinal: u64 = self.max_ordinal_present();
14026 encoder.write_num(max_ordinal, offset);
14027 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
14028 if max_ordinal == 0 {
14030 return Ok(());
14031 }
14032 depth.increment()?;
14033 let envelope_size = 8;
14034 let bytes_len = max_ordinal as usize * envelope_size;
14035 #[allow(unused_variables)]
14036 let offset = encoder.out_of_line_offset(bytes_len);
14037 let mut _prev_end_offset: usize = 0;
14038 if 1 > max_ordinal {
14039 return Ok(());
14040 }
14041
14042 let cur_offset: usize = (1 - 1) * envelope_size;
14045
14046 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
14048
14049 fidl::encoding::encode_in_envelope_optional::<i8, D>(
14054 self.min_rssi_dbm.as_ref().map(<i8 as fidl::encoding::ValueTypeMarker>::borrow),
14055 encoder,
14056 offset + cur_offset,
14057 depth,
14058 )?;
14059
14060 _prev_end_offset = cur_offset + envelope_size;
14061 if 2 > max_ordinal {
14062 return Ok(());
14063 }
14064
14065 let cur_offset: usize = (2 - 1) * envelope_size;
14068
14069 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
14071
14072 fidl::encoding::encode_in_envelope_optional::<i8, D>(
14077 self.max_rssi_dbm.as_ref().map(<i8 as fidl::encoding::ValueTypeMarker>::borrow),
14078 encoder,
14079 offset + cur_offset,
14080 depth,
14081 )?;
14082
14083 _prev_end_offset = cur_offset + envelope_size;
14084
14085 Ok(())
14086 }
14087 }
14088
14089 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
14090 for WlanFullmacImplStartRssiMonitorRequest
14091 {
14092 #[inline(always)]
14093 fn new_empty() -> Self {
14094 Self::default()
14095 }
14096
14097 unsafe fn decode(
14098 &mut self,
14099 decoder: &mut fidl::encoding::Decoder<'_, D>,
14100 offset: usize,
14101 mut depth: fidl::encoding::Depth,
14102 ) -> fidl::Result<()> {
14103 decoder.debug_check_bounds::<Self>(offset);
14104 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
14105 None => return Err(fidl::Error::NotNullable),
14106 Some(len) => len,
14107 };
14108 if len == 0 {
14110 return Ok(());
14111 };
14112 depth.increment()?;
14113 let envelope_size = 8;
14114 let bytes_len = len * envelope_size;
14115 let offset = decoder.out_of_line_offset(bytes_len)?;
14116 let mut _next_ordinal_to_read = 0;
14118 let mut next_offset = offset;
14119 let end_offset = offset + bytes_len;
14120 _next_ordinal_to_read += 1;
14121 if next_offset >= end_offset {
14122 return Ok(());
14123 }
14124
14125 while _next_ordinal_to_read < 1 {
14127 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14128 _next_ordinal_to_read += 1;
14129 next_offset += envelope_size;
14130 }
14131
14132 let next_out_of_line = decoder.next_out_of_line();
14133 let handles_before = decoder.remaining_handles();
14134 if let Some((inlined, num_bytes, num_handles)) =
14135 fidl::encoding::decode_envelope_header(decoder, next_offset)?
14136 {
14137 let member_inline_size =
14138 <i8 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
14139 if inlined != (member_inline_size <= 4) {
14140 return Err(fidl::Error::InvalidInlineBitInEnvelope);
14141 }
14142 let inner_offset;
14143 let mut inner_depth = depth.clone();
14144 if inlined {
14145 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
14146 inner_offset = next_offset;
14147 } else {
14148 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
14149 inner_depth.increment()?;
14150 }
14151 let val_ref = self.min_rssi_dbm.get_or_insert_with(|| fidl::new_empty!(i8, D));
14152 fidl::decode!(i8, D, val_ref, decoder, inner_offset, inner_depth)?;
14153 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
14154 {
14155 return Err(fidl::Error::InvalidNumBytesInEnvelope);
14156 }
14157 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
14158 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
14159 }
14160 }
14161
14162 next_offset += envelope_size;
14163 _next_ordinal_to_read += 1;
14164 if next_offset >= end_offset {
14165 return Ok(());
14166 }
14167
14168 while _next_ordinal_to_read < 2 {
14170 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14171 _next_ordinal_to_read += 1;
14172 next_offset += envelope_size;
14173 }
14174
14175 let next_out_of_line = decoder.next_out_of_line();
14176 let handles_before = decoder.remaining_handles();
14177 if let Some((inlined, num_bytes, num_handles)) =
14178 fidl::encoding::decode_envelope_header(decoder, next_offset)?
14179 {
14180 let member_inline_size =
14181 <i8 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
14182 if inlined != (member_inline_size <= 4) {
14183 return Err(fidl::Error::InvalidInlineBitInEnvelope);
14184 }
14185 let inner_offset;
14186 let mut inner_depth = depth.clone();
14187 if inlined {
14188 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
14189 inner_offset = next_offset;
14190 } else {
14191 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
14192 inner_depth.increment()?;
14193 }
14194 let val_ref = self.max_rssi_dbm.get_or_insert_with(|| fidl::new_empty!(i8, D));
14195 fidl::decode!(i8, D, val_ref, decoder, inner_offset, inner_depth)?;
14196 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
14197 {
14198 return Err(fidl::Error::InvalidNumBytesInEnvelope);
14199 }
14200 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
14201 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
14202 }
14203 }
14204
14205 next_offset += envelope_size;
14206
14207 while next_offset < end_offset {
14209 _next_ordinal_to_read += 1;
14210 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14211 next_offset += envelope_size;
14212 }
14213
14214 Ok(())
14215 }
14216 }
14217
14218 impl WlanFullmacImplStartScanRequest {
14219 #[inline(always)]
14220 fn max_ordinal_present(&self) -> u64 {
14221 if let Some(_) = self.max_channel_time {
14222 return 6;
14223 }
14224 if let Some(_) = self.min_channel_time {
14225 return 5;
14226 }
14227 if let Some(_) = self.ssids {
14228 return 4;
14229 }
14230 if let Some(_) = self.channels {
14231 return 3;
14232 }
14233 if let Some(_) = self.scan_type {
14234 return 2;
14235 }
14236 if let Some(_) = self.txn_id {
14237 return 1;
14238 }
14239 0
14240 }
14241 }
14242
14243 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplStartScanRequest {
14244 type Borrowed<'a> = &'a Self;
14245 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
14246 value
14247 }
14248 }
14249
14250 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplStartScanRequest {
14251 type Owned = Self;
14252
14253 #[inline(always)]
14254 fn inline_align(_context: fidl::encoding::Context) -> usize {
14255 8
14256 }
14257
14258 #[inline(always)]
14259 fn inline_size(_context: fidl::encoding::Context) -> usize {
14260 16
14261 }
14262 }
14263
14264 unsafe impl<D: fidl::encoding::ResourceDialect>
14265 fidl::encoding::Encode<WlanFullmacImplStartScanRequest, D>
14266 for &WlanFullmacImplStartScanRequest
14267 {
14268 unsafe fn encode(
14269 self,
14270 encoder: &mut fidl::encoding::Encoder<'_, D>,
14271 offset: usize,
14272 mut depth: fidl::encoding::Depth,
14273 ) -> fidl::Result<()> {
14274 encoder.debug_check_bounds::<WlanFullmacImplStartScanRequest>(offset);
14275 let max_ordinal: u64 = self.max_ordinal_present();
14277 encoder.write_num(max_ordinal, offset);
14278 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
14279 if max_ordinal == 0 {
14281 return Ok(());
14282 }
14283 depth.increment()?;
14284 let envelope_size = 8;
14285 let bytes_len = max_ordinal as usize * envelope_size;
14286 #[allow(unused_variables)]
14287 let offset = encoder.out_of_line_offset(bytes_len);
14288 let mut _prev_end_offset: usize = 0;
14289 if 1 > max_ordinal {
14290 return Ok(());
14291 }
14292
14293 let cur_offset: usize = (1 - 1) * envelope_size;
14296
14297 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
14299
14300 fidl::encoding::encode_in_envelope_optional::<u64, D>(
14305 self.txn_id.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
14306 encoder,
14307 offset + cur_offset,
14308 depth,
14309 )?;
14310
14311 _prev_end_offset = cur_offset + envelope_size;
14312 if 2 > max_ordinal {
14313 return Ok(());
14314 }
14315
14316 let cur_offset: usize = (2 - 1) * envelope_size;
14319
14320 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
14322
14323 fidl::encoding::encode_in_envelope_optional::<WlanScanType, D>(
14328 self.scan_type
14329 .as_ref()
14330 .map(<WlanScanType as fidl::encoding::ValueTypeMarker>::borrow),
14331 encoder,
14332 offset + cur_offset,
14333 depth,
14334 )?;
14335
14336 _prev_end_offset = cur_offset + envelope_size;
14337 if 3 > max_ordinal {
14338 return Ok(());
14339 }
14340
14341 let cur_offset: usize = (3 - 1) * envelope_size;
14344
14345 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
14347
14348 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<fidl_fuchsia_wlan_ieee80211_common::ChannelNumber, 256>, D>(
14353 self.channels.as_ref().map(<fidl::encoding::Vector<fidl_fuchsia_wlan_ieee80211_common::ChannelNumber, 256> as fidl::encoding::ValueTypeMarker>::borrow),
14354 encoder, offset + cur_offset, depth
14355 )?;
14356
14357 _prev_end_offset = cur_offset + envelope_size;
14358 if 4 > max_ordinal {
14359 return Ok(());
14360 }
14361
14362 let cur_offset: usize = (4 - 1) * envelope_size;
14365
14366 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
14368
14369 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<fidl::encoding::Vector<u8, 32>>, D>(
14374 self.ssids.as_ref().map(<fidl::encoding::UnboundedVector<fidl::encoding::Vector<u8, 32>> as fidl::encoding::ValueTypeMarker>::borrow),
14375 encoder, offset + cur_offset, depth
14376 )?;
14377
14378 _prev_end_offset = cur_offset + envelope_size;
14379 if 5 > max_ordinal {
14380 return Ok(());
14381 }
14382
14383 let cur_offset: usize = (5 - 1) * envelope_size;
14386
14387 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
14389
14390 fidl::encoding::encode_in_envelope_optional::<u32, D>(
14395 self.min_channel_time
14396 .as_ref()
14397 .map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
14398 encoder,
14399 offset + cur_offset,
14400 depth,
14401 )?;
14402
14403 _prev_end_offset = cur_offset + envelope_size;
14404 if 6 > max_ordinal {
14405 return Ok(());
14406 }
14407
14408 let cur_offset: usize = (6 - 1) * envelope_size;
14411
14412 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
14414
14415 fidl::encoding::encode_in_envelope_optional::<u32, D>(
14420 self.max_channel_time
14421 .as_ref()
14422 .map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
14423 encoder,
14424 offset + cur_offset,
14425 depth,
14426 )?;
14427
14428 _prev_end_offset = cur_offset + envelope_size;
14429
14430 Ok(())
14431 }
14432 }
14433
14434 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
14435 for WlanFullmacImplStartScanRequest
14436 {
14437 #[inline(always)]
14438 fn new_empty() -> Self {
14439 Self::default()
14440 }
14441
14442 unsafe fn decode(
14443 &mut self,
14444 decoder: &mut fidl::encoding::Decoder<'_, D>,
14445 offset: usize,
14446 mut depth: fidl::encoding::Depth,
14447 ) -> fidl::Result<()> {
14448 decoder.debug_check_bounds::<Self>(offset);
14449 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
14450 None => return Err(fidl::Error::NotNullable),
14451 Some(len) => len,
14452 };
14453 if len == 0 {
14455 return Ok(());
14456 };
14457 depth.increment()?;
14458 let envelope_size = 8;
14459 let bytes_len = len * envelope_size;
14460 let offset = decoder.out_of_line_offset(bytes_len)?;
14461 let mut _next_ordinal_to_read = 0;
14463 let mut next_offset = offset;
14464 let end_offset = offset + bytes_len;
14465 _next_ordinal_to_read += 1;
14466 if next_offset >= end_offset {
14467 return Ok(());
14468 }
14469
14470 while _next_ordinal_to_read < 1 {
14472 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14473 _next_ordinal_to_read += 1;
14474 next_offset += envelope_size;
14475 }
14476
14477 let next_out_of_line = decoder.next_out_of_line();
14478 let handles_before = decoder.remaining_handles();
14479 if let Some((inlined, num_bytes, num_handles)) =
14480 fidl::encoding::decode_envelope_header(decoder, next_offset)?
14481 {
14482 let member_inline_size =
14483 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
14484 if inlined != (member_inline_size <= 4) {
14485 return Err(fidl::Error::InvalidInlineBitInEnvelope);
14486 }
14487 let inner_offset;
14488 let mut inner_depth = depth.clone();
14489 if inlined {
14490 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
14491 inner_offset = next_offset;
14492 } else {
14493 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
14494 inner_depth.increment()?;
14495 }
14496 let val_ref = self.txn_id.get_or_insert_with(|| fidl::new_empty!(u64, D));
14497 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
14498 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
14499 {
14500 return Err(fidl::Error::InvalidNumBytesInEnvelope);
14501 }
14502 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
14503 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
14504 }
14505 }
14506
14507 next_offset += envelope_size;
14508 _next_ordinal_to_read += 1;
14509 if next_offset >= end_offset {
14510 return Ok(());
14511 }
14512
14513 while _next_ordinal_to_read < 2 {
14515 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14516 _next_ordinal_to_read += 1;
14517 next_offset += envelope_size;
14518 }
14519
14520 let next_out_of_line = decoder.next_out_of_line();
14521 let handles_before = decoder.remaining_handles();
14522 if let Some((inlined, num_bytes, num_handles)) =
14523 fidl::encoding::decode_envelope_header(decoder, next_offset)?
14524 {
14525 let member_inline_size =
14526 <WlanScanType as fidl::encoding::TypeMarker>::inline_size(decoder.context);
14527 if inlined != (member_inline_size <= 4) {
14528 return Err(fidl::Error::InvalidInlineBitInEnvelope);
14529 }
14530 let inner_offset;
14531 let mut inner_depth = depth.clone();
14532 if inlined {
14533 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
14534 inner_offset = next_offset;
14535 } else {
14536 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
14537 inner_depth.increment()?;
14538 }
14539 let val_ref =
14540 self.scan_type.get_or_insert_with(|| fidl::new_empty!(WlanScanType, D));
14541 fidl::decode!(WlanScanType, D, val_ref, decoder, inner_offset, inner_depth)?;
14542 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
14543 {
14544 return Err(fidl::Error::InvalidNumBytesInEnvelope);
14545 }
14546 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
14547 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
14548 }
14549 }
14550
14551 next_offset += envelope_size;
14552 _next_ordinal_to_read += 1;
14553 if next_offset >= end_offset {
14554 return Ok(());
14555 }
14556
14557 while _next_ordinal_to_read < 3 {
14559 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14560 _next_ordinal_to_read += 1;
14561 next_offset += envelope_size;
14562 }
14563
14564 let next_out_of_line = decoder.next_out_of_line();
14565 let handles_before = decoder.remaining_handles();
14566 if let Some((inlined, num_bytes, num_handles)) =
14567 fidl::encoding::decode_envelope_header(decoder, next_offset)?
14568 {
14569 let member_inline_size = <fidl::encoding::Vector<
14570 fidl_fuchsia_wlan_ieee80211_common::ChannelNumber,
14571 256,
14572 > as fidl::encoding::TypeMarker>::inline_size(
14573 decoder.context
14574 );
14575 if inlined != (member_inline_size <= 4) {
14576 return Err(fidl::Error::InvalidInlineBitInEnvelope);
14577 }
14578 let inner_offset;
14579 let mut inner_depth = depth.clone();
14580 if inlined {
14581 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
14582 inner_offset = next_offset;
14583 } else {
14584 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
14585 inner_depth.increment()?;
14586 }
14587 let val_ref =
14588 self.channels.get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<fidl_fuchsia_wlan_ieee80211_common::ChannelNumber, 256>, D));
14589 fidl::decode!(fidl::encoding::Vector<fidl_fuchsia_wlan_ieee80211_common::ChannelNumber, 256>, 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 < 4 {
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::encoding::UnboundedVector<
14618 fidl::encoding::Vector<u8, 32>,
14619 > as fidl::encoding::TypeMarker>::inline_size(
14620 decoder.context
14621 );
14622 if inlined != (member_inline_size <= 4) {
14623 return Err(fidl::Error::InvalidInlineBitInEnvelope);
14624 }
14625 let inner_offset;
14626 let mut inner_depth = depth.clone();
14627 if inlined {
14628 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
14629 inner_offset = next_offset;
14630 } else {
14631 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
14632 inner_depth.increment()?;
14633 }
14634 let val_ref = self.ssids.get_or_insert_with(|| {
14635 fidl::new_empty!(
14636 fidl::encoding::UnboundedVector<fidl::encoding::Vector<u8, 32>>,
14637 D
14638 )
14639 });
14640 fidl::decode!(
14641 fidl::encoding::UnboundedVector<fidl::encoding::Vector<u8, 32>>,
14642 D,
14643 val_ref,
14644 decoder,
14645 inner_offset,
14646 inner_depth
14647 )?;
14648 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
14649 {
14650 return Err(fidl::Error::InvalidNumBytesInEnvelope);
14651 }
14652 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
14653 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
14654 }
14655 }
14656
14657 next_offset += envelope_size;
14658 _next_ordinal_to_read += 1;
14659 if next_offset >= end_offset {
14660 return Ok(());
14661 }
14662
14663 while _next_ordinal_to_read < 5 {
14665 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14666 _next_ordinal_to_read += 1;
14667 next_offset += envelope_size;
14668 }
14669
14670 let next_out_of_line = decoder.next_out_of_line();
14671 let handles_before = decoder.remaining_handles();
14672 if let Some((inlined, num_bytes, num_handles)) =
14673 fidl::encoding::decode_envelope_header(decoder, next_offset)?
14674 {
14675 let member_inline_size =
14676 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
14677 if inlined != (member_inline_size <= 4) {
14678 return Err(fidl::Error::InvalidInlineBitInEnvelope);
14679 }
14680 let inner_offset;
14681 let mut inner_depth = depth.clone();
14682 if inlined {
14683 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
14684 inner_offset = next_offset;
14685 } else {
14686 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
14687 inner_depth.increment()?;
14688 }
14689 let val_ref = self.min_channel_time.get_or_insert_with(|| fidl::new_empty!(u32, D));
14690 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
14691 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
14692 {
14693 return Err(fidl::Error::InvalidNumBytesInEnvelope);
14694 }
14695 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
14696 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
14697 }
14698 }
14699
14700 next_offset += envelope_size;
14701 _next_ordinal_to_read += 1;
14702 if next_offset >= end_offset {
14703 return Ok(());
14704 }
14705
14706 while _next_ordinal_to_read < 6 {
14708 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14709 _next_ordinal_to_read += 1;
14710 next_offset += envelope_size;
14711 }
14712
14713 let next_out_of_line = decoder.next_out_of_line();
14714 let handles_before = decoder.remaining_handles();
14715 if let Some((inlined, num_bytes, num_handles)) =
14716 fidl::encoding::decode_envelope_header(decoder, next_offset)?
14717 {
14718 let member_inline_size =
14719 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
14720 if inlined != (member_inline_size <= 4) {
14721 return Err(fidl::Error::InvalidInlineBitInEnvelope);
14722 }
14723 let inner_offset;
14724 let mut inner_depth = depth.clone();
14725 if inlined {
14726 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
14727 inner_offset = next_offset;
14728 } else {
14729 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
14730 inner_depth.increment()?;
14731 }
14732 let val_ref = self.max_channel_time.get_or_insert_with(|| fidl::new_empty!(u32, D));
14733 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
14734 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
14735 {
14736 return Err(fidl::Error::InvalidNumBytesInEnvelope);
14737 }
14738 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
14739 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
14740 }
14741 }
14742
14743 next_offset += envelope_size;
14744
14745 while next_offset < end_offset {
14747 _next_ordinal_to_read += 1;
14748 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14749 next_offset += envelope_size;
14750 }
14751
14752 Ok(())
14753 }
14754 }
14755
14756 impl WlanFullmacImplStartScheduledScanRequest {
14757 #[inline(always)]
14758 fn max_ordinal_present(&self) -> u64 {
14759 if let Some(_) = self.req {
14760 return 2;
14761 }
14762 if let Some(_) = self.txn_id {
14763 return 1;
14764 }
14765 0
14766 }
14767 }
14768
14769 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplStartScheduledScanRequest {
14770 type Borrowed<'a> = &'a Self;
14771 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
14772 value
14773 }
14774 }
14775
14776 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplStartScheduledScanRequest {
14777 type Owned = Self;
14778
14779 #[inline(always)]
14780 fn inline_align(_context: fidl::encoding::Context) -> usize {
14781 8
14782 }
14783
14784 #[inline(always)]
14785 fn inline_size(_context: fidl::encoding::Context) -> usize {
14786 16
14787 }
14788 }
14789
14790 unsafe impl<D: fidl::encoding::ResourceDialect>
14791 fidl::encoding::Encode<WlanFullmacImplStartScheduledScanRequest, D>
14792 for &WlanFullmacImplStartScheduledScanRequest
14793 {
14794 unsafe fn encode(
14795 self,
14796 encoder: &mut fidl::encoding::Encoder<'_, D>,
14797 offset: usize,
14798 mut depth: fidl::encoding::Depth,
14799 ) -> fidl::Result<()> {
14800 encoder.debug_check_bounds::<WlanFullmacImplStartScheduledScanRequest>(offset);
14801 let max_ordinal: u64 = self.max_ordinal_present();
14803 encoder.write_num(max_ordinal, offset);
14804 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
14805 if max_ordinal == 0 {
14807 return Ok(());
14808 }
14809 depth.increment()?;
14810 let envelope_size = 8;
14811 let bytes_len = max_ordinal as usize * envelope_size;
14812 #[allow(unused_variables)]
14813 let offset = encoder.out_of_line_offset(bytes_len);
14814 let mut _prev_end_offset: usize = 0;
14815 if 1 > max_ordinal {
14816 return Ok(());
14817 }
14818
14819 let cur_offset: usize = (1 - 1) * envelope_size;
14822
14823 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
14825
14826 fidl::encoding::encode_in_envelope_optional::<u64, D>(
14831 self.txn_id.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
14832 encoder,
14833 offset + cur_offset,
14834 depth,
14835 )?;
14836
14837 _prev_end_offset = cur_offset + envelope_size;
14838 if 2 > max_ordinal {
14839 return Ok(());
14840 }
14841
14842 let cur_offset: usize = (2 - 1) * envelope_size;
14845
14846 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
14848
14849 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_common_common::ScheduledScanRequest, D>(
14854 self.req.as_ref().map(<fidl_fuchsia_wlan_common_common::ScheduledScanRequest as fidl::encoding::ValueTypeMarker>::borrow),
14855 encoder, offset + cur_offset, depth
14856 )?;
14857
14858 _prev_end_offset = cur_offset + envelope_size;
14859
14860 Ok(())
14861 }
14862 }
14863
14864 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
14865 for WlanFullmacImplStartScheduledScanRequest
14866 {
14867 #[inline(always)]
14868 fn new_empty() -> Self {
14869 Self::default()
14870 }
14871
14872 unsafe fn decode(
14873 &mut self,
14874 decoder: &mut fidl::encoding::Decoder<'_, D>,
14875 offset: usize,
14876 mut depth: fidl::encoding::Depth,
14877 ) -> fidl::Result<()> {
14878 decoder.debug_check_bounds::<Self>(offset);
14879 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
14880 None => return Err(fidl::Error::NotNullable),
14881 Some(len) => len,
14882 };
14883 if len == 0 {
14885 return Ok(());
14886 };
14887 depth.increment()?;
14888 let envelope_size = 8;
14889 let bytes_len = len * envelope_size;
14890 let offset = decoder.out_of_line_offset(bytes_len)?;
14891 let mut _next_ordinal_to_read = 0;
14893 let mut next_offset = offset;
14894 let end_offset = offset + bytes_len;
14895 _next_ordinal_to_read += 1;
14896 if next_offset >= end_offset {
14897 return Ok(());
14898 }
14899
14900 while _next_ordinal_to_read < 1 {
14902 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14903 _next_ordinal_to_read += 1;
14904 next_offset += envelope_size;
14905 }
14906
14907 let next_out_of_line = decoder.next_out_of_line();
14908 let handles_before = decoder.remaining_handles();
14909 if let Some((inlined, num_bytes, num_handles)) =
14910 fidl::encoding::decode_envelope_header(decoder, next_offset)?
14911 {
14912 let member_inline_size =
14913 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
14914 if inlined != (member_inline_size <= 4) {
14915 return Err(fidl::Error::InvalidInlineBitInEnvelope);
14916 }
14917 let inner_offset;
14918 let mut inner_depth = depth.clone();
14919 if inlined {
14920 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
14921 inner_offset = next_offset;
14922 } else {
14923 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
14924 inner_depth.increment()?;
14925 }
14926 let val_ref = self.txn_id.get_or_insert_with(|| fidl::new_empty!(u64, D));
14927 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
14928 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
14929 {
14930 return Err(fidl::Error::InvalidNumBytesInEnvelope);
14931 }
14932 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
14933 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
14934 }
14935 }
14936
14937 next_offset += envelope_size;
14938 _next_ordinal_to_read += 1;
14939 if next_offset >= end_offset {
14940 return Ok(());
14941 }
14942
14943 while _next_ordinal_to_read < 2 {
14945 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14946 _next_ordinal_to_read += 1;
14947 next_offset += envelope_size;
14948 }
14949
14950 let next_out_of_line = decoder.next_out_of_line();
14951 let handles_before = decoder.remaining_handles();
14952 if let Some((inlined, num_bytes, num_handles)) =
14953 fidl::encoding::decode_envelope_header(decoder, next_offset)?
14954 {
14955 let member_inline_size = <fidl_fuchsia_wlan_common_common::ScheduledScanRequest as fidl::encoding::TypeMarker>::inline_size(decoder.context);
14956 if inlined != (member_inline_size <= 4) {
14957 return Err(fidl::Error::InvalidInlineBitInEnvelope);
14958 }
14959 let inner_offset;
14960 let mut inner_depth = depth.clone();
14961 if inlined {
14962 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
14963 inner_offset = next_offset;
14964 } else {
14965 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
14966 inner_depth.increment()?;
14967 }
14968 let val_ref = self.req.get_or_insert_with(|| {
14969 fidl::new_empty!(fidl_fuchsia_wlan_common_common::ScheduledScanRequest, D)
14970 });
14971 fidl::decode!(
14972 fidl_fuchsia_wlan_common_common::ScheduledScanRequest,
14973 D,
14974 val_ref,
14975 decoder,
14976 inner_offset,
14977 inner_depth
14978 )?;
14979 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
14980 {
14981 return Err(fidl::Error::InvalidNumBytesInEnvelope);
14982 }
14983 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
14984 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
14985 }
14986 }
14987
14988 next_offset += envelope_size;
14989
14990 while next_offset < end_offset {
14992 _next_ordinal_to_read += 1;
14993 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14994 next_offset += envelope_size;
14995 }
14996
14997 Ok(())
14998 }
14999 }
15000
15001 impl WlanFullmacImplStopBssRequest {
15002 #[inline(always)]
15003 fn max_ordinal_present(&self) -> u64 {
15004 if let Some(_) = self.ssid {
15005 return 1;
15006 }
15007 0
15008 }
15009 }
15010
15011 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplStopBssRequest {
15012 type Borrowed<'a> = &'a Self;
15013 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
15014 value
15015 }
15016 }
15017
15018 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplStopBssRequest {
15019 type Owned = Self;
15020
15021 #[inline(always)]
15022 fn inline_align(_context: fidl::encoding::Context) -> usize {
15023 8
15024 }
15025
15026 #[inline(always)]
15027 fn inline_size(_context: fidl::encoding::Context) -> usize {
15028 16
15029 }
15030 }
15031
15032 unsafe impl<D: fidl::encoding::ResourceDialect>
15033 fidl::encoding::Encode<WlanFullmacImplStopBssRequest, D>
15034 for &WlanFullmacImplStopBssRequest
15035 {
15036 unsafe fn encode(
15037 self,
15038 encoder: &mut fidl::encoding::Encoder<'_, D>,
15039 offset: usize,
15040 mut depth: fidl::encoding::Depth,
15041 ) -> fidl::Result<()> {
15042 encoder.debug_check_bounds::<WlanFullmacImplStopBssRequest>(offset);
15043 let max_ordinal: u64 = self.max_ordinal_present();
15045 encoder.write_num(max_ordinal, offset);
15046 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
15047 if max_ordinal == 0 {
15049 return Ok(());
15050 }
15051 depth.increment()?;
15052 let envelope_size = 8;
15053 let bytes_len = max_ordinal as usize * envelope_size;
15054 #[allow(unused_variables)]
15055 let offset = encoder.out_of_line_offset(bytes_len);
15056 let mut _prev_end_offset: usize = 0;
15057 if 1 > max_ordinal {
15058 return Ok(());
15059 }
15060
15061 let cur_offset: usize = (1 - 1) * envelope_size;
15064
15065 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
15067
15068 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<u8, 32>, D>(
15073 self.ssid.as_ref().map(
15074 <fidl::encoding::Vector<u8, 32> as fidl::encoding::ValueTypeMarker>::borrow,
15075 ),
15076 encoder,
15077 offset + cur_offset,
15078 depth,
15079 )?;
15080
15081 _prev_end_offset = cur_offset + envelope_size;
15082
15083 Ok(())
15084 }
15085 }
15086
15087 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
15088 for WlanFullmacImplStopBssRequest
15089 {
15090 #[inline(always)]
15091 fn new_empty() -> Self {
15092 Self::default()
15093 }
15094
15095 unsafe fn decode(
15096 &mut self,
15097 decoder: &mut fidl::encoding::Decoder<'_, D>,
15098 offset: usize,
15099 mut depth: fidl::encoding::Depth,
15100 ) -> fidl::Result<()> {
15101 decoder.debug_check_bounds::<Self>(offset);
15102 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
15103 None => return Err(fidl::Error::NotNullable),
15104 Some(len) => len,
15105 };
15106 if len == 0 {
15108 return Ok(());
15109 };
15110 depth.increment()?;
15111 let envelope_size = 8;
15112 let bytes_len = len * envelope_size;
15113 let offset = decoder.out_of_line_offset(bytes_len)?;
15114 let mut _next_ordinal_to_read = 0;
15116 let mut next_offset = offset;
15117 let end_offset = offset + bytes_len;
15118 _next_ordinal_to_read += 1;
15119 if next_offset >= end_offset {
15120 return Ok(());
15121 }
15122
15123 while _next_ordinal_to_read < 1 {
15125 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15126 _next_ordinal_to_read += 1;
15127 next_offset += envelope_size;
15128 }
15129
15130 let next_out_of_line = decoder.next_out_of_line();
15131 let handles_before = decoder.remaining_handles();
15132 if let Some((inlined, num_bytes, num_handles)) =
15133 fidl::encoding::decode_envelope_header(decoder, next_offset)?
15134 {
15135 let member_inline_size =
15136 <fidl::encoding::Vector<u8, 32> as fidl::encoding::TypeMarker>::inline_size(
15137 decoder.context,
15138 );
15139 if inlined != (member_inline_size <= 4) {
15140 return Err(fidl::Error::InvalidInlineBitInEnvelope);
15141 }
15142 let inner_offset;
15143 let mut inner_depth = depth.clone();
15144 if inlined {
15145 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
15146 inner_offset = next_offset;
15147 } else {
15148 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
15149 inner_depth.increment()?;
15150 }
15151 let val_ref = self
15152 .ssid
15153 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<u8, 32>, D));
15154 fidl::decode!(fidl::encoding::Vector<u8, 32>, D, val_ref, decoder, inner_offset, inner_depth)?;
15155 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
15156 {
15157 return Err(fidl::Error::InvalidNumBytesInEnvelope);
15158 }
15159 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
15160 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
15161 }
15162 }
15163
15164 next_offset += envelope_size;
15165
15166 while next_offset < end_offset {
15168 _next_ordinal_to_read += 1;
15169 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15170 next_offset += envelope_size;
15171 }
15172
15173 Ok(())
15174 }
15175 }
15176
15177 impl WlanFullmacImplStopScheduledScanRequest {
15178 #[inline(always)]
15179 fn max_ordinal_present(&self) -> u64 {
15180 if let Some(_) = self.txn_id {
15181 return 1;
15182 }
15183 0
15184 }
15185 }
15186
15187 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplStopScheduledScanRequest {
15188 type Borrowed<'a> = &'a Self;
15189 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
15190 value
15191 }
15192 }
15193
15194 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplStopScheduledScanRequest {
15195 type Owned = Self;
15196
15197 #[inline(always)]
15198 fn inline_align(_context: fidl::encoding::Context) -> usize {
15199 8
15200 }
15201
15202 #[inline(always)]
15203 fn inline_size(_context: fidl::encoding::Context) -> usize {
15204 16
15205 }
15206 }
15207
15208 unsafe impl<D: fidl::encoding::ResourceDialect>
15209 fidl::encoding::Encode<WlanFullmacImplStopScheduledScanRequest, D>
15210 for &WlanFullmacImplStopScheduledScanRequest
15211 {
15212 unsafe fn encode(
15213 self,
15214 encoder: &mut fidl::encoding::Encoder<'_, D>,
15215 offset: usize,
15216 mut depth: fidl::encoding::Depth,
15217 ) -> fidl::Result<()> {
15218 encoder.debug_check_bounds::<WlanFullmacImplStopScheduledScanRequest>(offset);
15219 let max_ordinal: u64 = self.max_ordinal_present();
15221 encoder.write_num(max_ordinal, offset);
15222 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
15223 if max_ordinal == 0 {
15225 return Ok(());
15226 }
15227 depth.increment()?;
15228 let envelope_size = 8;
15229 let bytes_len = max_ordinal as usize * envelope_size;
15230 #[allow(unused_variables)]
15231 let offset = encoder.out_of_line_offset(bytes_len);
15232 let mut _prev_end_offset: usize = 0;
15233 if 1 > max_ordinal {
15234 return Ok(());
15235 }
15236
15237 let cur_offset: usize = (1 - 1) * envelope_size;
15240
15241 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
15243
15244 fidl::encoding::encode_in_envelope_optional::<u64, D>(
15249 self.txn_id.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
15250 encoder,
15251 offset + cur_offset,
15252 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 WlanFullmacImplStopScheduledScanRequest
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 =
15310 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
15311 if inlined != (member_inline_size <= 4) {
15312 return Err(fidl::Error::InvalidInlineBitInEnvelope);
15313 }
15314 let inner_offset;
15315 let mut inner_depth = depth.clone();
15316 if inlined {
15317 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
15318 inner_offset = next_offset;
15319 } else {
15320 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
15321 inner_depth.increment()?;
15322 }
15323 let val_ref = self.txn_id.get_or_insert_with(|| fidl::new_empty!(u64, D));
15324 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
15325 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
15326 {
15327 return Err(fidl::Error::InvalidNumBytesInEnvelope);
15328 }
15329 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
15330 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
15331 }
15332 }
15333
15334 next_offset += envelope_size;
15335
15336 while next_offset < end_offset {
15338 _next_ordinal_to_read += 1;
15339 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15340 next_offset += envelope_size;
15341 }
15342
15343 Ok(())
15344 }
15345 }
15346
15347 impl WlanFullmacImplGetApfPacketFilterEnabledResponse {
15348 #[inline(always)]
15349 fn max_ordinal_present(&self) -> u64 {
15350 if let Some(_) = self.enabled {
15351 return 1;
15352 }
15353 0
15354 }
15355 }
15356
15357 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplGetApfPacketFilterEnabledResponse {
15358 type Borrowed<'a> = &'a Self;
15359 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
15360 value
15361 }
15362 }
15363
15364 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplGetApfPacketFilterEnabledResponse {
15365 type Owned = Self;
15366
15367 #[inline(always)]
15368 fn inline_align(_context: fidl::encoding::Context) -> usize {
15369 8
15370 }
15371
15372 #[inline(always)]
15373 fn inline_size(_context: fidl::encoding::Context) -> usize {
15374 16
15375 }
15376 }
15377
15378 unsafe impl<D: fidl::encoding::ResourceDialect>
15379 fidl::encoding::Encode<WlanFullmacImplGetApfPacketFilterEnabledResponse, D>
15380 for &WlanFullmacImplGetApfPacketFilterEnabledResponse
15381 {
15382 unsafe fn encode(
15383 self,
15384 encoder: &mut fidl::encoding::Encoder<'_, D>,
15385 offset: usize,
15386 mut depth: fidl::encoding::Depth,
15387 ) -> fidl::Result<()> {
15388 encoder.debug_check_bounds::<WlanFullmacImplGetApfPacketFilterEnabledResponse>(offset);
15389 let max_ordinal: u64 = self.max_ordinal_present();
15391 encoder.write_num(max_ordinal, offset);
15392 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
15393 if max_ordinal == 0 {
15395 return Ok(());
15396 }
15397 depth.increment()?;
15398 let envelope_size = 8;
15399 let bytes_len = max_ordinal as usize * envelope_size;
15400 #[allow(unused_variables)]
15401 let offset = encoder.out_of_line_offset(bytes_len);
15402 let mut _prev_end_offset: usize = 0;
15403 if 1 > max_ordinal {
15404 return Ok(());
15405 }
15406
15407 let cur_offset: usize = (1 - 1) * envelope_size;
15410
15411 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
15413
15414 fidl::encoding::encode_in_envelope_optional::<bool, D>(
15419 self.enabled.as_ref().map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
15420 encoder,
15421 offset + cur_offset,
15422 depth,
15423 )?;
15424
15425 _prev_end_offset = cur_offset + envelope_size;
15426
15427 Ok(())
15428 }
15429 }
15430
15431 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
15432 for WlanFullmacImplGetApfPacketFilterEnabledResponse
15433 {
15434 #[inline(always)]
15435 fn new_empty() -> Self {
15436 Self::default()
15437 }
15438
15439 unsafe fn decode(
15440 &mut self,
15441 decoder: &mut fidl::encoding::Decoder<'_, D>,
15442 offset: usize,
15443 mut depth: fidl::encoding::Depth,
15444 ) -> fidl::Result<()> {
15445 decoder.debug_check_bounds::<Self>(offset);
15446 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
15447 None => return Err(fidl::Error::NotNullable),
15448 Some(len) => len,
15449 };
15450 if len == 0 {
15452 return Ok(());
15453 };
15454 depth.increment()?;
15455 let envelope_size = 8;
15456 let bytes_len = len * envelope_size;
15457 let offset = decoder.out_of_line_offset(bytes_len)?;
15458 let mut _next_ordinal_to_read = 0;
15460 let mut next_offset = offset;
15461 let end_offset = offset + bytes_len;
15462 _next_ordinal_to_read += 1;
15463 if next_offset >= end_offset {
15464 return Ok(());
15465 }
15466
15467 while _next_ordinal_to_read < 1 {
15469 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15470 _next_ordinal_to_read += 1;
15471 next_offset += envelope_size;
15472 }
15473
15474 let next_out_of_line = decoder.next_out_of_line();
15475 let handles_before = decoder.remaining_handles();
15476 if let Some((inlined, num_bytes, num_handles)) =
15477 fidl::encoding::decode_envelope_header(decoder, next_offset)?
15478 {
15479 let member_inline_size =
15480 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
15481 if inlined != (member_inline_size <= 4) {
15482 return Err(fidl::Error::InvalidInlineBitInEnvelope);
15483 }
15484 let inner_offset;
15485 let mut inner_depth = depth.clone();
15486 if inlined {
15487 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
15488 inner_offset = next_offset;
15489 } else {
15490 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
15491 inner_depth.increment()?;
15492 }
15493 let val_ref = self.enabled.get_or_insert_with(|| fidl::new_empty!(bool, D));
15494 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
15495 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
15496 {
15497 return Err(fidl::Error::InvalidNumBytesInEnvelope);
15498 }
15499 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
15500 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
15501 }
15502 }
15503
15504 next_offset += envelope_size;
15505
15506 while next_offset < end_offset {
15508 _next_ordinal_to_read += 1;
15509 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15510 next_offset += envelope_size;
15511 }
15512
15513 Ok(())
15514 }
15515 }
15516
15517 impl WlanFullmacImplGetScheduledScanEnabledResponse {
15518 #[inline(always)]
15519 fn max_ordinal_present(&self) -> u64 {
15520 if let Some(_) = self.active_txn_ids {
15521 return 1;
15522 }
15523 0
15524 }
15525 }
15526
15527 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplGetScheduledScanEnabledResponse {
15528 type Borrowed<'a> = &'a Self;
15529 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
15530 value
15531 }
15532 }
15533
15534 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplGetScheduledScanEnabledResponse {
15535 type Owned = Self;
15536
15537 #[inline(always)]
15538 fn inline_align(_context: fidl::encoding::Context) -> usize {
15539 8
15540 }
15541
15542 #[inline(always)]
15543 fn inline_size(_context: fidl::encoding::Context) -> usize {
15544 16
15545 }
15546 }
15547
15548 unsafe impl<D: fidl::encoding::ResourceDialect>
15549 fidl::encoding::Encode<WlanFullmacImplGetScheduledScanEnabledResponse, D>
15550 for &WlanFullmacImplGetScheduledScanEnabledResponse
15551 {
15552 unsafe fn encode(
15553 self,
15554 encoder: &mut fidl::encoding::Encoder<'_, D>,
15555 offset: usize,
15556 mut depth: fidl::encoding::Depth,
15557 ) -> fidl::Result<()> {
15558 encoder.debug_check_bounds::<WlanFullmacImplGetScheduledScanEnabledResponse>(offset);
15559 let max_ordinal: u64 = self.max_ordinal_present();
15561 encoder.write_num(max_ordinal, offset);
15562 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
15563 if max_ordinal == 0 {
15565 return Ok(());
15566 }
15567 depth.increment()?;
15568 let envelope_size = 8;
15569 let bytes_len = max_ordinal as usize * envelope_size;
15570 #[allow(unused_variables)]
15571 let offset = encoder.out_of_line_offset(bytes_len);
15572 let mut _prev_end_offset: usize = 0;
15573 if 1 > max_ordinal {
15574 return Ok(());
15575 }
15576
15577 let cur_offset: usize = (1 - 1) * envelope_size;
15580
15581 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
15583
15584 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<u64>, D>(
15589 self.active_txn_ids.as_ref().map(<fidl::encoding::UnboundedVector<u64> as fidl::encoding::ValueTypeMarker>::borrow),
15590 encoder, offset + cur_offset, depth
15591 )?;
15592
15593 _prev_end_offset = cur_offset + envelope_size;
15594
15595 Ok(())
15596 }
15597 }
15598
15599 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
15600 for WlanFullmacImplGetScheduledScanEnabledResponse
15601 {
15602 #[inline(always)]
15603 fn new_empty() -> Self {
15604 Self::default()
15605 }
15606
15607 unsafe fn decode(
15608 &mut self,
15609 decoder: &mut fidl::encoding::Decoder<'_, D>,
15610 offset: usize,
15611 mut depth: fidl::encoding::Depth,
15612 ) -> fidl::Result<()> {
15613 decoder.debug_check_bounds::<Self>(offset);
15614 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
15615 None => return Err(fidl::Error::NotNullable),
15616 Some(len) => len,
15617 };
15618 if len == 0 {
15620 return Ok(());
15621 };
15622 depth.increment()?;
15623 let envelope_size = 8;
15624 let bytes_len = len * envelope_size;
15625 let offset = decoder.out_of_line_offset(bytes_len)?;
15626 let mut _next_ordinal_to_read = 0;
15628 let mut next_offset = offset;
15629 let end_offset = offset + bytes_len;
15630 _next_ordinal_to_read += 1;
15631 if next_offset >= end_offset {
15632 return Ok(());
15633 }
15634
15635 while _next_ordinal_to_read < 1 {
15637 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15638 _next_ordinal_to_read += 1;
15639 next_offset += envelope_size;
15640 }
15641
15642 let next_out_of_line = decoder.next_out_of_line();
15643 let handles_before = decoder.remaining_handles();
15644 if let Some((inlined, num_bytes, num_handles)) =
15645 fidl::encoding::decode_envelope_header(decoder, next_offset)?
15646 {
15647 let member_inline_size = <fidl::encoding::UnboundedVector<u64> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
15648 if inlined != (member_inline_size <= 4) {
15649 return Err(fidl::Error::InvalidInlineBitInEnvelope);
15650 }
15651 let inner_offset;
15652 let mut inner_depth = depth.clone();
15653 if inlined {
15654 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
15655 inner_offset = next_offset;
15656 } else {
15657 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
15658 inner_depth.increment()?;
15659 }
15660 let val_ref = self.active_txn_ids.get_or_insert_with(|| {
15661 fidl::new_empty!(fidl::encoding::UnboundedVector<u64>, D)
15662 });
15663 fidl::decode!(
15664 fidl::encoding::UnboundedVector<u64>,
15665 D,
15666 val_ref,
15667 decoder,
15668 inner_offset,
15669 inner_depth
15670 )?;
15671 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
15672 {
15673 return Err(fidl::Error::InvalidNumBytesInEnvelope);
15674 }
15675 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
15676 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
15677 }
15678 }
15679
15680 next_offset += envelope_size;
15681
15682 while next_offset < end_offset {
15684 _next_ordinal_to_read += 1;
15685 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15686 next_offset += envelope_size;
15687 }
15688
15689 Ok(())
15690 }
15691 }
15692
15693 impl WlanFullmacImplQueryApfPacketFilterSupportResponse {
15694 #[inline(always)]
15695 fn max_ordinal_present(&self) -> u64 {
15696 if let Some(_) = self.resp {
15697 return 1;
15698 }
15699 0
15700 }
15701 }
15702
15703 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplQueryApfPacketFilterSupportResponse {
15704 type Borrowed<'a> = &'a Self;
15705 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
15706 value
15707 }
15708 }
15709
15710 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplQueryApfPacketFilterSupportResponse {
15711 type Owned = Self;
15712
15713 #[inline(always)]
15714 fn inline_align(_context: fidl::encoding::Context) -> usize {
15715 8
15716 }
15717
15718 #[inline(always)]
15719 fn inline_size(_context: fidl::encoding::Context) -> usize {
15720 16
15721 }
15722 }
15723
15724 unsafe impl<D: fidl::encoding::ResourceDialect>
15725 fidl::encoding::Encode<WlanFullmacImplQueryApfPacketFilterSupportResponse, D>
15726 for &WlanFullmacImplQueryApfPacketFilterSupportResponse
15727 {
15728 unsafe fn encode(
15729 self,
15730 encoder: &mut fidl::encoding::Encoder<'_, D>,
15731 offset: usize,
15732 mut depth: fidl::encoding::Depth,
15733 ) -> fidl::Result<()> {
15734 encoder
15735 .debug_check_bounds::<WlanFullmacImplQueryApfPacketFilterSupportResponse>(offset);
15736 let max_ordinal: u64 = self.max_ordinal_present();
15738 encoder.write_num(max_ordinal, offset);
15739 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
15740 if max_ordinal == 0 {
15742 return Ok(());
15743 }
15744 depth.increment()?;
15745 let envelope_size = 8;
15746 let bytes_len = max_ordinal as usize * envelope_size;
15747 #[allow(unused_variables)]
15748 let offset = encoder.out_of_line_offset(bytes_len);
15749 let mut _prev_end_offset: usize = 0;
15750 if 1 > max_ordinal {
15751 return Ok(());
15752 }
15753
15754 let cur_offset: usize = (1 - 1) * envelope_size;
15757
15758 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
15760
15761 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_common_common::ApfPacketFilterSupport, D>(
15766 self.resp.as_ref().map(<fidl_fuchsia_wlan_common_common::ApfPacketFilterSupport as fidl::encoding::ValueTypeMarker>::borrow),
15767 encoder, offset + cur_offset, depth
15768 )?;
15769
15770 _prev_end_offset = cur_offset + envelope_size;
15771
15772 Ok(())
15773 }
15774 }
15775
15776 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
15777 for WlanFullmacImplQueryApfPacketFilterSupportResponse
15778 {
15779 #[inline(always)]
15780 fn new_empty() -> Self {
15781 Self::default()
15782 }
15783
15784 unsafe fn decode(
15785 &mut self,
15786 decoder: &mut fidl::encoding::Decoder<'_, D>,
15787 offset: usize,
15788 mut depth: fidl::encoding::Depth,
15789 ) -> fidl::Result<()> {
15790 decoder.debug_check_bounds::<Self>(offset);
15791 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
15792 None => return Err(fidl::Error::NotNullable),
15793 Some(len) => len,
15794 };
15795 if len == 0 {
15797 return Ok(());
15798 };
15799 depth.increment()?;
15800 let envelope_size = 8;
15801 let bytes_len = len * envelope_size;
15802 let offset = decoder.out_of_line_offset(bytes_len)?;
15803 let mut _next_ordinal_to_read = 0;
15805 let mut next_offset = offset;
15806 let end_offset = offset + bytes_len;
15807 _next_ordinal_to_read += 1;
15808 if next_offset >= end_offset {
15809 return Ok(());
15810 }
15811
15812 while _next_ordinal_to_read < 1 {
15814 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15815 _next_ordinal_to_read += 1;
15816 next_offset += envelope_size;
15817 }
15818
15819 let next_out_of_line = decoder.next_out_of_line();
15820 let handles_before = decoder.remaining_handles();
15821 if let Some((inlined, num_bytes, num_handles)) =
15822 fidl::encoding::decode_envelope_header(decoder, next_offset)?
15823 {
15824 let member_inline_size = <fidl_fuchsia_wlan_common_common::ApfPacketFilterSupport as fidl::encoding::TypeMarker>::inline_size(decoder.context);
15825 if inlined != (member_inline_size <= 4) {
15826 return Err(fidl::Error::InvalidInlineBitInEnvelope);
15827 }
15828 let inner_offset;
15829 let mut inner_depth = depth.clone();
15830 if inlined {
15831 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
15832 inner_offset = next_offset;
15833 } else {
15834 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
15835 inner_depth.increment()?;
15836 }
15837 let val_ref = self.resp.get_or_insert_with(|| {
15838 fidl::new_empty!(fidl_fuchsia_wlan_common_common::ApfPacketFilterSupport, D)
15839 });
15840 fidl::decode!(
15841 fidl_fuchsia_wlan_common_common::ApfPacketFilterSupport,
15842 D,
15843 val_ref,
15844 decoder,
15845 inner_offset,
15846 inner_depth
15847 )?;
15848 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
15849 {
15850 return Err(fidl::Error::InvalidNumBytesInEnvelope);
15851 }
15852 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
15853 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
15854 }
15855 }
15856
15857 next_offset += envelope_size;
15858
15859 while next_offset < end_offset {
15861 _next_ordinal_to_read += 1;
15862 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15863 next_offset += envelope_size;
15864 }
15865
15866 Ok(())
15867 }
15868 }
15869
15870 impl WlanFullmacImplQueryRssiMonitorSupportResponse {
15871 #[inline(always)]
15872 fn max_ordinal_present(&self) -> u64 {
15873 if let Some(_) = self.resp {
15874 return 1;
15875 }
15876 0
15877 }
15878 }
15879
15880 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplQueryRssiMonitorSupportResponse {
15881 type Borrowed<'a> = &'a Self;
15882 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
15883 value
15884 }
15885 }
15886
15887 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplQueryRssiMonitorSupportResponse {
15888 type Owned = Self;
15889
15890 #[inline(always)]
15891 fn inline_align(_context: fidl::encoding::Context) -> usize {
15892 8
15893 }
15894
15895 #[inline(always)]
15896 fn inline_size(_context: fidl::encoding::Context) -> usize {
15897 16
15898 }
15899 }
15900
15901 unsafe impl<D: fidl::encoding::ResourceDialect>
15902 fidl::encoding::Encode<WlanFullmacImplQueryRssiMonitorSupportResponse, D>
15903 for &WlanFullmacImplQueryRssiMonitorSupportResponse
15904 {
15905 unsafe fn encode(
15906 self,
15907 encoder: &mut fidl::encoding::Encoder<'_, D>,
15908 offset: usize,
15909 mut depth: fidl::encoding::Depth,
15910 ) -> fidl::Result<()> {
15911 encoder.debug_check_bounds::<WlanFullmacImplQueryRssiMonitorSupportResponse>(offset);
15912 let max_ordinal: u64 = self.max_ordinal_present();
15914 encoder.write_num(max_ordinal, offset);
15915 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
15916 if max_ordinal == 0 {
15918 return Ok(());
15919 }
15920 depth.increment()?;
15921 let envelope_size = 8;
15922 let bytes_len = max_ordinal as usize * envelope_size;
15923 #[allow(unused_variables)]
15924 let offset = encoder.out_of_line_offset(bytes_len);
15925 let mut _prev_end_offset: usize = 0;
15926 if 1 > max_ordinal {
15927 return Ok(());
15928 }
15929
15930 let cur_offset: usize = (1 - 1) * envelope_size;
15933
15934 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
15936
15937 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_common_common::RssiMonitorSupport, D>(
15942 self.resp.as_ref().map(<fidl_fuchsia_wlan_common_common::RssiMonitorSupport as fidl::encoding::ValueTypeMarker>::borrow),
15943 encoder, offset + cur_offset, depth
15944 )?;
15945
15946 _prev_end_offset = cur_offset + envelope_size;
15947
15948 Ok(())
15949 }
15950 }
15951
15952 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
15953 for WlanFullmacImplQueryRssiMonitorSupportResponse
15954 {
15955 #[inline(always)]
15956 fn new_empty() -> Self {
15957 Self::default()
15958 }
15959
15960 unsafe fn decode(
15961 &mut self,
15962 decoder: &mut fidl::encoding::Decoder<'_, D>,
15963 offset: usize,
15964 mut depth: fidl::encoding::Depth,
15965 ) -> fidl::Result<()> {
15966 decoder.debug_check_bounds::<Self>(offset);
15967 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
15968 None => return Err(fidl::Error::NotNullable),
15969 Some(len) => len,
15970 };
15971 if len == 0 {
15973 return Ok(());
15974 };
15975 depth.increment()?;
15976 let envelope_size = 8;
15977 let bytes_len = len * envelope_size;
15978 let offset = decoder.out_of_line_offset(bytes_len)?;
15979 let mut _next_ordinal_to_read = 0;
15981 let mut next_offset = offset;
15982 let end_offset = offset + bytes_len;
15983 _next_ordinal_to_read += 1;
15984 if next_offset >= end_offset {
15985 return Ok(());
15986 }
15987
15988 while _next_ordinal_to_read < 1 {
15990 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15991 _next_ordinal_to_read += 1;
15992 next_offset += envelope_size;
15993 }
15994
15995 let next_out_of_line = decoder.next_out_of_line();
15996 let handles_before = decoder.remaining_handles();
15997 if let Some((inlined, num_bytes, num_handles)) =
15998 fidl::encoding::decode_envelope_header(decoder, next_offset)?
15999 {
16000 let member_inline_size = <fidl_fuchsia_wlan_common_common::RssiMonitorSupport as fidl::encoding::TypeMarker>::inline_size(decoder.context);
16001 if inlined != (member_inline_size <= 4) {
16002 return Err(fidl::Error::InvalidInlineBitInEnvelope);
16003 }
16004 let inner_offset;
16005 let mut inner_depth = depth.clone();
16006 if inlined {
16007 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
16008 inner_offset = next_offset;
16009 } else {
16010 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
16011 inner_depth.increment()?;
16012 }
16013 let val_ref = self.resp.get_or_insert_with(|| {
16014 fidl::new_empty!(fidl_fuchsia_wlan_common_common::RssiMonitorSupport, D)
16015 });
16016 fidl::decode!(
16017 fidl_fuchsia_wlan_common_common::RssiMonitorSupport,
16018 D,
16019 val_ref,
16020 decoder,
16021 inner_offset,
16022 inner_depth
16023 )?;
16024 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
16025 {
16026 return Err(fidl::Error::InvalidNumBytesInEnvelope);
16027 }
16028 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
16029 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
16030 }
16031 }
16032
16033 next_offset += envelope_size;
16034
16035 while next_offset < end_offset {
16037 _next_ordinal_to_read += 1;
16038 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
16039 next_offset += envelope_size;
16040 }
16041
16042 Ok(())
16043 }
16044 }
16045
16046 impl WlanFullmacImplQuerySecuritySupportResponse {
16047 #[inline(always)]
16048 fn max_ordinal_present(&self) -> u64 {
16049 if let Some(_) = self.resp {
16050 return 1;
16051 }
16052 0
16053 }
16054 }
16055
16056 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplQuerySecuritySupportResponse {
16057 type Borrowed<'a> = &'a Self;
16058 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
16059 value
16060 }
16061 }
16062
16063 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplQuerySecuritySupportResponse {
16064 type Owned = Self;
16065
16066 #[inline(always)]
16067 fn inline_align(_context: fidl::encoding::Context) -> usize {
16068 8
16069 }
16070
16071 #[inline(always)]
16072 fn inline_size(_context: fidl::encoding::Context) -> usize {
16073 16
16074 }
16075 }
16076
16077 unsafe impl<D: fidl::encoding::ResourceDialect>
16078 fidl::encoding::Encode<WlanFullmacImplQuerySecuritySupportResponse, D>
16079 for &WlanFullmacImplQuerySecuritySupportResponse
16080 {
16081 unsafe fn encode(
16082 self,
16083 encoder: &mut fidl::encoding::Encoder<'_, D>,
16084 offset: usize,
16085 mut depth: fidl::encoding::Depth,
16086 ) -> fidl::Result<()> {
16087 encoder.debug_check_bounds::<WlanFullmacImplQuerySecuritySupportResponse>(offset);
16088 let max_ordinal: u64 = self.max_ordinal_present();
16090 encoder.write_num(max_ordinal, offset);
16091 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
16092 if max_ordinal == 0 {
16094 return Ok(());
16095 }
16096 depth.increment()?;
16097 let envelope_size = 8;
16098 let bytes_len = max_ordinal as usize * envelope_size;
16099 #[allow(unused_variables)]
16100 let offset = encoder.out_of_line_offset(bytes_len);
16101 let mut _prev_end_offset: usize = 0;
16102 if 1 > max_ordinal {
16103 return Ok(());
16104 }
16105
16106 let cur_offset: usize = (1 - 1) * envelope_size;
16109
16110 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
16112
16113 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_common_common::SecuritySupport, D>(
16118 self.resp.as_ref().map(<fidl_fuchsia_wlan_common_common::SecuritySupport as fidl::encoding::ValueTypeMarker>::borrow),
16119 encoder, offset + cur_offset, depth
16120 )?;
16121
16122 _prev_end_offset = cur_offset + envelope_size;
16123
16124 Ok(())
16125 }
16126 }
16127
16128 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
16129 for WlanFullmacImplQuerySecuritySupportResponse
16130 {
16131 #[inline(always)]
16132 fn new_empty() -> Self {
16133 Self::default()
16134 }
16135
16136 unsafe fn decode(
16137 &mut self,
16138 decoder: &mut fidl::encoding::Decoder<'_, D>,
16139 offset: usize,
16140 mut depth: fidl::encoding::Depth,
16141 ) -> fidl::Result<()> {
16142 decoder.debug_check_bounds::<Self>(offset);
16143 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
16144 None => return Err(fidl::Error::NotNullable),
16145 Some(len) => len,
16146 };
16147 if len == 0 {
16149 return Ok(());
16150 };
16151 depth.increment()?;
16152 let envelope_size = 8;
16153 let bytes_len = len * envelope_size;
16154 let offset = decoder.out_of_line_offset(bytes_len)?;
16155 let mut _next_ordinal_to_read = 0;
16157 let mut next_offset = offset;
16158 let end_offset = offset + bytes_len;
16159 _next_ordinal_to_read += 1;
16160 if next_offset >= end_offset {
16161 return Ok(());
16162 }
16163
16164 while _next_ordinal_to_read < 1 {
16166 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
16167 _next_ordinal_to_read += 1;
16168 next_offset += envelope_size;
16169 }
16170
16171 let next_out_of_line = decoder.next_out_of_line();
16172 let handles_before = decoder.remaining_handles();
16173 if let Some((inlined, num_bytes, num_handles)) =
16174 fidl::encoding::decode_envelope_header(decoder, next_offset)?
16175 {
16176 let member_inline_size = <fidl_fuchsia_wlan_common_common::SecuritySupport as fidl::encoding::TypeMarker>::inline_size(decoder.context);
16177 if inlined != (member_inline_size <= 4) {
16178 return Err(fidl::Error::InvalidInlineBitInEnvelope);
16179 }
16180 let inner_offset;
16181 let mut inner_depth = depth.clone();
16182 if inlined {
16183 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
16184 inner_offset = next_offset;
16185 } else {
16186 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
16187 inner_depth.increment()?;
16188 }
16189 let val_ref = self.resp.get_or_insert_with(|| {
16190 fidl::new_empty!(fidl_fuchsia_wlan_common_common::SecuritySupport, D)
16191 });
16192 fidl::decode!(
16193 fidl_fuchsia_wlan_common_common::SecuritySupport,
16194 D,
16195 val_ref,
16196 decoder,
16197 inner_offset,
16198 inner_depth
16199 )?;
16200 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
16201 {
16202 return Err(fidl::Error::InvalidNumBytesInEnvelope);
16203 }
16204 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
16205 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
16206 }
16207 }
16208
16209 next_offset += envelope_size;
16210
16211 while next_offset < end_offset {
16213 _next_ordinal_to_read += 1;
16214 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
16215 next_offset += envelope_size;
16216 }
16217
16218 Ok(())
16219 }
16220 }
16221
16222 impl WlanFullmacImplQuerySpectrumManagementSupportResponse {
16223 #[inline(always)]
16224 fn max_ordinal_present(&self) -> u64 {
16225 if let Some(_) = self.resp {
16226 return 1;
16227 }
16228 0
16229 }
16230 }
16231
16232 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplQuerySpectrumManagementSupportResponse {
16233 type Borrowed<'a> = &'a Self;
16234 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
16235 value
16236 }
16237 }
16238
16239 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplQuerySpectrumManagementSupportResponse {
16240 type Owned = Self;
16241
16242 #[inline(always)]
16243 fn inline_align(_context: fidl::encoding::Context) -> usize {
16244 8
16245 }
16246
16247 #[inline(always)]
16248 fn inline_size(_context: fidl::encoding::Context) -> usize {
16249 16
16250 }
16251 }
16252
16253 unsafe impl<D: fidl::encoding::ResourceDialect>
16254 fidl::encoding::Encode<WlanFullmacImplQuerySpectrumManagementSupportResponse, D>
16255 for &WlanFullmacImplQuerySpectrumManagementSupportResponse
16256 {
16257 unsafe fn encode(
16258 self,
16259 encoder: &mut fidl::encoding::Encoder<'_, D>,
16260 offset: usize,
16261 mut depth: fidl::encoding::Depth,
16262 ) -> fidl::Result<()> {
16263 encoder.debug_check_bounds::<WlanFullmacImplQuerySpectrumManagementSupportResponse>(
16264 offset,
16265 );
16266 let max_ordinal: u64 = self.max_ordinal_present();
16268 encoder.write_num(max_ordinal, offset);
16269 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
16270 if max_ordinal == 0 {
16272 return Ok(());
16273 }
16274 depth.increment()?;
16275 let envelope_size = 8;
16276 let bytes_len = max_ordinal as usize * envelope_size;
16277 #[allow(unused_variables)]
16278 let offset = encoder.out_of_line_offset(bytes_len);
16279 let mut _prev_end_offset: usize = 0;
16280 if 1 > max_ordinal {
16281 return Ok(());
16282 }
16283
16284 let cur_offset: usize = (1 - 1) * envelope_size;
16287
16288 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
16290
16291 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_common_common::SpectrumManagementSupport, D>(
16296 self.resp.as_ref().map(<fidl_fuchsia_wlan_common_common::SpectrumManagementSupport as fidl::encoding::ValueTypeMarker>::borrow),
16297 encoder, offset + cur_offset, depth
16298 )?;
16299
16300 _prev_end_offset = cur_offset + envelope_size;
16301
16302 Ok(())
16303 }
16304 }
16305
16306 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
16307 for WlanFullmacImplQuerySpectrumManagementSupportResponse
16308 {
16309 #[inline(always)]
16310 fn new_empty() -> Self {
16311 Self::default()
16312 }
16313
16314 unsafe fn decode(
16315 &mut self,
16316 decoder: &mut fidl::encoding::Decoder<'_, D>,
16317 offset: usize,
16318 mut depth: fidl::encoding::Depth,
16319 ) -> fidl::Result<()> {
16320 decoder.debug_check_bounds::<Self>(offset);
16321 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
16322 None => return Err(fidl::Error::NotNullable),
16323 Some(len) => len,
16324 };
16325 if len == 0 {
16327 return Ok(());
16328 };
16329 depth.increment()?;
16330 let envelope_size = 8;
16331 let bytes_len = len * envelope_size;
16332 let offset = decoder.out_of_line_offset(bytes_len)?;
16333 let mut _next_ordinal_to_read = 0;
16335 let mut next_offset = offset;
16336 let end_offset = offset + bytes_len;
16337 _next_ordinal_to_read += 1;
16338 if next_offset >= end_offset {
16339 return Ok(());
16340 }
16341
16342 while _next_ordinal_to_read < 1 {
16344 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
16345 _next_ordinal_to_read += 1;
16346 next_offset += envelope_size;
16347 }
16348
16349 let next_out_of_line = decoder.next_out_of_line();
16350 let handles_before = decoder.remaining_handles();
16351 if let Some((inlined, num_bytes, num_handles)) =
16352 fidl::encoding::decode_envelope_header(decoder, next_offset)?
16353 {
16354 let member_inline_size = <fidl_fuchsia_wlan_common_common::SpectrumManagementSupport as fidl::encoding::TypeMarker>::inline_size(decoder.context);
16355 if inlined != (member_inline_size <= 4) {
16356 return Err(fidl::Error::InvalidInlineBitInEnvelope);
16357 }
16358 let inner_offset;
16359 let mut inner_depth = depth.clone();
16360 if inlined {
16361 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
16362 inner_offset = next_offset;
16363 } else {
16364 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
16365 inner_depth.increment()?;
16366 }
16367 let val_ref = self.resp.get_or_insert_with(|| {
16368 fidl::new_empty!(fidl_fuchsia_wlan_common_common::SpectrumManagementSupport, D)
16369 });
16370 fidl::decode!(
16371 fidl_fuchsia_wlan_common_common::SpectrumManagementSupport,
16372 D,
16373 val_ref,
16374 decoder,
16375 inner_offset,
16376 inner_depth
16377 )?;
16378 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
16379 {
16380 return Err(fidl::Error::InvalidNumBytesInEnvelope);
16381 }
16382 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
16383 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
16384 }
16385 }
16386
16387 next_offset += envelope_size;
16388
16389 while next_offset < end_offset {
16391 _next_ordinal_to_read += 1;
16392 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
16393 next_offset += envelope_size;
16394 }
16395
16396 Ok(())
16397 }
16398 }
16399
16400 impl WlanFullmacImplQueryTelemetrySupportResponse {
16401 #[inline(always)]
16402 fn max_ordinal_present(&self) -> u64 {
16403 if let Some(_) = self.resp {
16404 return 1;
16405 }
16406 0
16407 }
16408 }
16409
16410 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplQueryTelemetrySupportResponse {
16411 type Borrowed<'a> = &'a Self;
16412 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
16413 value
16414 }
16415 }
16416
16417 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplQueryTelemetrySupportResponse {
16418 type Owned = Self;
16419
16420 #[inline(always)]
16421 fn inline_align(_context: fidl::encoding::Context) -> usize {
16422 8
16423 }
16424
16425 #[inline(always)]
16426 fn inline_size(_context: fidl::encoding::Context) -> usize {
16427 16
16428 }
16429 }
16430
16431 unsafe impl<D: fidl::encoding::ResourceDialect>
16432 fidl::encoding::Encode<WlanFullmacImplQueryTelemetrySupportResponse, D>
16433 for &WlanFullmacImplQueryTelemetrySupportResponse
16434 {
16435 unsafe fn encode(
16436 self,
16437 encoder: &mut fidl::encoding::Encoder<'_, D>,
16438 offset: usize,
16439 mut depth: fidl::encoding::Depth,
16440 ) -> fidl::Result<()> {
16441 encoder.debug_check_bounds::<WlanFullmacImplQueryTelemetrySupportResponse>(offset);
16442 let max_ordinal: u64 = self.max_ordinal_present();
16444 encoder.write_num(max_ordinal, offset);
16445 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
16446 if max_ordinal == 0 {
16448 return Ok(());
16449 }
16450 depth.increment()?;
16451 let envelope_size = 8;
16452 let bytes_len = max_ordinal as usize * envelope_size;
16453 #[allow(unused_variables)]
16454 let offset = encoder.out_of_line_offset(bytes_len);
16455 let mut _prev_end_offset: usize = 0;
16456 if 1 > max_ordinal {
16457 return Ok(());
16458 }
16459
16460 let cur_offset: usize = (1 - 1) * envelope_size;
16463
16464 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
16466
16467 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_stats_common::TelemetrySupport, D>(
16472 self.resp.as_ref().map(<fidl_fuchsia_wlan_stats_common::TelemetrySupport as fidl::encoding::ValueTypeMarker>::borrow),
16473 encoder, offset + cur_offset, depth
16474 )?;
16475
16476 _prev_end_offset = cur_offset + envelope_size;
16477
16478 Ok(())
16479 }
16480 }
16481
16482 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
16483 for WlanFullmacImplQueryTelemetrySupportResponse
16484 {
16485 #[inline(always)]
16486 fn new_empty() -> Self {
16487 Self::default()
16488 }
16489
16490 unsafe fn decode(
16491 &mut self,
16492 decoder: &mut fidl::encoding::Decoder<'_, D>,
16493 offset: usize,
16494 mut depth: fidl::encoding::Depth,
16495 ) -> fidl::Result<()> {
16496 decoder.debug_check_bounds::<Self>(offset);
16497 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
16498 None => return Err(fidl::Error::NotNullable),
16499 Some(len) => len,
16500 };
16501 if len == 0 {
16503 return Ok(());
16504 };
16505 depth.increment()?;
16506 let envelope_size = 8;
16507 let bytes_len = len * envelope_size;
16508 let offset = decoder.out_of_line_offset(bytes_len)?;
16509 let mut _next_ordinal_to_read = 0;
16511 let mut next_offset = offset;
16512 let end_offset = offset + bytes_len;
16513 _next_ordinal_to_read += 1;
16514 if next_offset >= end_offset {
16515 return Ok(());
16516 }
16517
16518 while _next_ordinal_to_read < 1 {
16520 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
16521 _next_ordinal_to_read += 1;
16522 next_offset += envelope_size;
16523 }
16524
16525 let next_out_of_line = decoder.next_out_of_line();
16526 let handles_before = decoder.remaining_handles();
16527 if let Some((inlined, num_bytes, num_handles)) =
16528 fidl::encoding::decode_envelope_header(decoder, next_offset)?
16529 {
16530 let member_inline_size = <fidl_fuchsia_wlan_stats_common::TelemetrySupport as fidl::encoding::TypeMarker>::inline_size(decoder.context);
16531 if inlined != (member_inline_size <= 4) {
16532 return Err(fidl::Error::InvalidInlineBitInEnvelope);
16533 }
16534 let inner_offset;
16535 let mut inner_depth = depth.clone();
16536 if inlined {
16537 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
16538 inner_offset = next_offset;
16539 } else {
16540 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
16541 inner_depth.increment()?;
16542 }
16543 let val_ref = self.resp.get_or_insert_with(|| {
16544 fidl::new_empty!(fidl_fuchsia_wlan_stats_common::TelemetrySupport, D)
16545 });
16546 fidl::decode!(
16547 fidl_fuchsia_wlan_stats_common::TelemetrySupport,
16548 D,
16549 val_ref,
16550 decoder,
16551 inner_offset,
16552 inner_depth
16553 )?;
16554 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
16555 {
16556 return Err(fidl::Error::InvalidNumBytesInEnvelope);
16557 }
16558 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
16559 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
16560 }
16561 }
16562
16563 next_offset += envelope_size;
16564
16565 while next_offset < end_offset {
16567 _next_ordinal_to_read += 1;
16568 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
16569 next_offset += envelope_size;
16570 }
16571
16572 Ok(())
16573 }
16574 }
16575
16576 impl WlanFullmacImplQueryResponse {
16577 #[inline(always)]
16578 fn max_ordinal_present(&self) -> u64 {
16579 if let Some(_) = self.factory_addr {
16580 return 4;
16581 }
16582 if let Some(_) = self.band_caps {
16583 return 3;
16584 }
16585 if let Some(_) = self.role {
16586 return 2;
16587 }
16588 if let Some(_) = self.sta_addr {
16589 return 1;
16590 }
16591 0
16592 }
16593 }
16594
16595 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplQueryResponse {
16596 type Borrowed<'a> = &'a Self;
16597 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
16598 value
16599 }
16600 }
16601
16602 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplQueryResponse {
16603 type Owned = Self;
16604
16605 #[inline(always)]
16606 fn inline_align(_context: fidl::encoding::Context) -> usize {
16607 8
16608 }
16609
16610 #[inline(always)]
16611 fn inline_size(_context: fidl::encoding::Context) -> usize {
16612 16
16613 }
16614 }
16615
16616 unsafe impl<D: fidl::encoding::ResourceDialect>
16617 fidl::encoding::Encode<WlanFullmacImplQueryResponse, D> for &WlanFullmacImplQueryResponse
16618 {
16619 unsafe fn encode(
16620 self,
16621 encoder: &mut fidl::encoding::Encoder<'_, D>,
16622 offset: usize,
16623 mut depth: fidl::encoding::Depth,
16624 ) -> fidl::Result<()> {
16625 encoder.debug_check_bounds::<WlanFullmacImplQueryResponse>(offset);
16626 let max_ordinal: u64 = self.max_ordinal_present();
16628 encoder.write_num(max_ordinal, offset);
16629 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
16630 if max_ordinal == 0 {
16632 return Ok(());
16633 }
16634 depth.increment()?;
16635 let envelope_size = 8;
16636 let bytes_len = max_ordinal as usize * envelope_size;
16637 #[allow(unused_variables)]
16638 let offset = encoder.out_of_line_offset(bytes_len);
16639 let mut _prev_end_offset: usize = 0;
16640 if 1 > max_ordinal {
16641 return Ok(());
16642 }
16643
16644 let cur_offset: usize = (1 - 1) * envelope_size;
16647
16648 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
16650
16651 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
16656 self.sta_addr
16657 .as_ref()
16658 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
16659 encoder,
16660 offset + cur_offset,
16661 depth,
16662 )?;
16663
16664 _prev_end_offset = cur_offset + envelope_size;
16665 if 2 > max_ordinal {
16666 return Ok(());
16667 }
16668
16669 let cur_offset: usize = (2 - 1) * envelope_size;
16672
16673 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
16675
16676 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_common_common::WlanMacRole, D>(
16681 self.role.as_ref().map(<fidl_fuchsia_wlan_common_common::WlanMacRole as fidl::encoding::ValueTypeMarker>::borrow),
16682 encoder, offset + cur_offset, depth
16683 )?;
16684
16685 _prev_end_offset = cur_offset + envelope_size;
16686 if 3 > max_ordinal {
16687 return Ok(());
16688 }
16689
16690 let cur_offset: usize = (3 - 1) * envelope_size;
16693
16694 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
16696
16697 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<BandCapability, 16>, D>(
16702 self.band_caps.as_ref().map(<fidl::encoding::Vector<BandCapability, 16> as fidl::encoding::ValueTypeMarker>::borrow),
16703 encoder, offset + cur_offset, depth
16704 )?;
16705
16706 _prev_end_offset = cur_offset + envelope_size;
16707 if 4 > max_ordinal {
16708 return Ok(());
16709 }
16710
16711 let cur_offset: usize = (4 - 1) * envelope_size;
16714
16715 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
16717
16718 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
16723 self.factory_addr
16724 .as_ref()
16725 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
16726 encoder,
16727 offset + cur_offset,
16728 depth,
16729 )?;
16730
16731 _prev_end_offset = cur_offset + envelope_size;
16732
16733 Ok(())
16734 }
16735 }
16736
16737 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
16738 for WlanFullmacImplQueryResponse
16739 {
16740 #[inline(always)]
16741 fn new_empty() -> Self {
16742 Self::default()
16743 }
16744
16745 unsafe fn decode(
16746 &mut self,
16747 decoder: &mut fidl::encoding::Decoder<'_, D>,
16748 offset: usize,
16749 mut depth: fidl::encoding::Depth,
16750 ) -> fidl::Result<()> {
16751 decoder.debug_check_bounds::<Self>(offset);
16752 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
16753 None => return Err(fidl::Error::NotNullable),
16754 Some(len) => len,
16755 };
16756 if len == 0 {
16758 return Ok(());
16759 };
16760 depth.increment()?;
16761 let envelope_size = 8;
16762 let bytes_len = len * envelope_size;
16763 let offset = decoder.out_of_line_offset(bytes_len)?;
16764 let mut _next_ordinal_to_read = 0;
16766 let mut next_offset = offset;
16767 let end_offset = offset + bytes_len;
16768 _next_ordinal_to_read += 1;
16769 if next_offset >= end_offset {
16770 return Ok(());
16771 }
16772
16773 while _next_ordinal_to_read < 1 {
16775 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
16776 _next_ordinal_to_read += 1;
16777 next_offset += envelope_size;
16778 }
16779
16780 let next_out_of_line = decoder.next_out_of_line();
16781 let handles_before = decoder.remaining_handles();
16782 if let Some((inlined, num_bytes, num_handles)) =
16783 fidl::encoding::decode_envelope_header(decoder, next_offset)?
16784 {
16785 let member_inline_size =
16786 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
16787 decoder.context,
16788 );
16789 if inlined != (member_inline_size <= 4) {
16790 return Err(fidl::Error::InvalidInlineBitInEnvelope);
16791 }
16792 let inner_offset;
16793 let mut inner_depth = depth.clone();
16794 if inlined {
16795 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
16796 inner_offset = next_offset;
16797 } else {
16798 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
16799 inner_depth.increment()?;
16800 }
16801 let val_ref = self
16802 .sta_addr
16803 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
16804 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
16805 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
16806 {
16807 return Err(fidl::Error::InvalidNumBytesInEnvelope);
16808 }
16809 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
16810 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
16811 }
16812 }
16813
16814 next_offset += envelope_size;
16815 _next_ordinal_to_read += 1;
16816 if next_offset >= end_offset {
16817 return Ok(());
16818 }
16819
16820 while _next_ordinal_to_read < 2 {
16822 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
16823 _next_ordinal_to_read += 1;
16824 next_offset += envelope_size;
16825 }
16826
16827 let next_out_of_line = decoder.next_out_of_line();
16828 let handles_before = decoder.remaining_handles();
16829 if let Some((inlined, num_bytes, num_handles)) =
16830 fidl::encoding::decode_envelope_header(decoder, next_offset)?
16831 {
16832 let member_inline_size = <fidl_fuchsia_wlan_common_common::WlanMacRole as fidl::encoding::TypeMarker>::inline_size(decoder.context);
16833 if inlined != (member_inline_size <= 4) {
16834 return Err(fidl::Error::InvalidInlineBitInEnvelope);
16835 }
16836 let inner_offset;
16837 let mut inner_depth = depth.clone();
16838 if inlined {
16839 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
16840 inner_offset = next_offset;
16841 } else {
16842 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
16843 inner_depth.increment()?;
16844 }
16845 let val_ref = self.role.get_or_insert_with(|| {
16846 fidl::new_empty!(fidl_fuchsia_wlan_common_common::WlanMacRole, D)
16847 });
16848 fidl::decode!(
16849 fidl_fuchsia_wlan_common_common::WlanMacRole,
16850 D,
16851 val_ref,
16852 decoder,
16853 inner_offset,
16854 inner_depth
16855 )?;
16856 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
16857 {
16858 return Err(fidl::Error::InvalidNumBytesInEnvelope);
16859 }
16860 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
16861 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
16862 }
16863 }
16864
16865 next_offset += envelope_size;
16866 _next_ordinal_to_read += 1;
16867 if next_offset >= end_offset {
16868 return Ok(());
16869 }
16870
16871 while _next_ordinal_to_read < 3 {
16873 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
16874 _next_ordinal_to_read += 1;
16875 next_offset += envelope_size;
16876 }
16877
16878 let next_out_of_line = decoder.next_out_of_line();
16879 let handles_before = decoder.remaining_handles();
16880 if let Some((inlined, num_bytes, num_handles)) =
16881 fidl::encoding::decode_envelope_header(decoder, next_offset)?
16882 {
16883 let member_inline_size = <fidl::encoding::Vector<BandCapability, 16> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
16884 if inlined != (member_inline_size <= 4) {
16885 return Err(fidl::Error::InvalidInlineBitInEnvelope);
16886 }
16887 let inner_offset;
16888 let mut inner_depth = depth.clone();
16889 if inlined {
16890 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
16891 inner_offset = next_offset;
16892 } else {
16893 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
16894 inner_depth.increment()?;
16895 }
16896 let val_ref = self.band_caps.get_or_insert_with(
16897 || fidl::new_empty!(fidl::encoding::Vector<BandCapability, 16>, D),
16898 );
16899 fidl::decode!(fidl::encoding::Vector<BandCapability, 16>, D, val_ref, decoder, inner_offset, inner_depth)?;
16900 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
16901 {
16902 return Err(fidl::Error::InvalidNumBytesInEnvelope);
16903 }
16904 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
16905 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
16906 }
16907 }
16908
16909 next_offset += envelope_size;
16910 _next_ordinal_to_read += 1;
16911 if next_offset >= end_offset {
16912 return Ok(());
16913 }
16914
16915 while _next_ordinal_to_read < 4 {
16917 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
16918 _next_ordinal_to_read += 1;
16919 next_offset += envelope_size;
16920 }
16921
16922 let next_out_of_line = decoder.next_out_of_line();
16923 let handles_before = decoder.remaining_handles();
16924 if let Some((inlined, num_bytes, num_handles)) =
16925 fidl::encoding::decode_envelope_header(decoder, next_offset)?
16926 {
16927 let member_inline_size =
16928 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
16929 decoder.context,
16930 );
16931 if inlined != (member_inline_size <= 4) {
16932 return Err(fidl::Error::InvalidInlineBitInEnvelope);
16933 }
16934 let inner_offset;
16935 let mut inner_depth = depth.clone();
16936 if inlined {
16937 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
16938 inner_offset = next_offset;
16939 } else {
16940 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
16941 inner_depth.increment()?;
16942 }
16943 let val_ref = self
16944 .factory_addr
16945 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
16946 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
16947 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
16948 {
16949 return Err(fidl::Error::InvalidNumBytesInEnvelope);
16950 }
16951 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
16952 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
16953 }
16954 }
16955
16956 next_offset += envelope_size;
16957
16958 while next_offset < end_offset {
16960 _next_ordinal_to_read += 1;
16961 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
16962 next_offset += envelope_size;
16963 }
16964
16965 Ok(())
16966 }
16967 }
16968
16969 impl WlanFullmacImplReadApfPacketFilterDataResponse {
16970 #[inline(always)]
16971 fn max_ordinal_present(&self) -> u64 {
16972 if let Some(_) = self.memory {
16973 return 1;
16974 }
16975 0
16976 }
16977 }
16978
16979 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplReadApfPacketFilterDataResponse {
16980 type Borrowed<'a> = &'a Self;
16981 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
16982 value
16983 }
16984 }
16985
16986 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplReadApfPacketFilterDataResponse {
16987 type Owned = Self;
16988
16989 #[inline(always)]
16990 fn inline_align(_context: fidl::encoding::Context) -> usize {
16991 8
16992 }
16993
16994 #[inline(always)]
16995 fn inline_size(_context: fidl::encoding::Context) -> usize {
16996 16
16997 }
16998 }
16999
17000 unsafe impl<D: fidl::encoding::ResourceDialect>
17001 fidl::encoding::Encode<WlanFullmacImplReadApfPacketFilterDataResponse, D>
17002 for &WlanFullmacImplReadApfPacketFilterDataResponse
17003 {
17004 unsafe fn encode(
17005 self,
17006 encoder: &mut fidl::encoding::Encoder<'_, D>,
17007 offset: usize,
17008 mut depth: fidl::encoding::Depth,
17009 ) -> fidl::Result<()> {
17010 encoder.debug_check_bounds::<WlanFullmacImplReadApfPacketFilterDataResponse>(offset);
17011 let max_ordinal: u64 = self.max_ordinal_present();
17013 encoder.write_num(max_ordinal, offset);
17014 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
17015 if max_ordinal == 0 {
17017 return Ok(());
17018 }
17019 depth.increment()?;
17020 let envelope_size = 8;
17021 let bytes_len = max_ordinal as usize * envelope_size;
17022 #[allow(unused_variables)]
17023 let offset = encoder.out_of_line_offset(bytes_len);
17024 let mut _prev_end_offset: usize = 0;
17025 if 1 > max_ordinal {
17026 return Ok(());
17027 }
17028
17029 let cur_offset: usize = (1 - 1) * envelope_size;
17032
17033 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
17035
17036 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<u8>, D>(
17041 self.memory.as_ref().map(<fidl::encoding::UnboundedVector<u8> as fidl::encoding::ValueTypeMarker>::borrow),
17042 encoder, offset + cur_offset, depth
17043 )?;
17044
17045 _prev_end_offset = cur_offset + envelope_size;
17046
17047 Ok(())
17048 }
17049 }
17050
17051 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
17052 for WlanFullmacImplReadApfPacketFilterDataResponse
17053 {
17054 #[inline(always)]
17055 fn new_empty() -> Self {
17056 Self::default()
17057 }
17058
17059 unsafe fn decode(
17060 &mut self,
17061 decoder: &mut fidl::encoding::Decoder<'_, D>,
17062 offset: usize,
17063 mut depth: fidl::encoding::Depth,
17064 ) -> fidl::Result<()> {
17065 decoder.debug_check_bounds::<Self>(offset);
17066 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
17067 None => return Err(fidl::Error::NotNullable),
17068 Some(len) => len,
17069 };
17070 if len == 0 {
17072 return Ok(());
17073 };
17074 depth.increment()?;
17075 let envelope_size = 8;
17076 let bytes_len = len * envelope_size;
17077 let offset = decoder.out_of_line_offset(bytes_len)?;
17078 let mut _next_ordinal_to_read = 0;
17080 let mut next_offset = offset;
17081 let end_offset = offset + bytes_len;
17082 _next_ordinal_to_read += 1;
17083 if next_offset >= end_offset {
17084 return Ok(());
17085 }
17086
17087 while _next_ordinal_to_read < 1 {
17089 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
17090 _next_ordinal_to_read += 1;
17091 next_offset += envelope_size;
17092 }
17093
17094 let next_out_of_line = decoder.next_out_of_line();
17095 let handles_before = decoder.remaining_handles();
17096 if let Some((inlined, num_bytes, num_handles)) =
17097 fidl::encoding::decode_envelope_header(decoder, next_offset)?
17098 {
17099 let member_inline_size = <fidl::encoding::UnboundedVector<u8> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
17100 if inlined != (member_inline_size <= 4) {
17101 return Err(fidl::Error::InvalidInlineBitInEnvelope);
17102 }
17103 let inner_offset;
17104 let mut inner_depth = depth.clone();
17105 if inlined {
17106 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
17107 inner_offset = next_offset;
17108 } else {
17109 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
17110 inner_depth.increment()?;
17111 }
17112 let val_ref = self.memory.get_or_insert_with(|| {
17113 fidl::new_empty!(fidl::encoding::UnboundedVector<u8>, D)
17114 });
17115 fidl::decode!(
17116 fidl::encoding::UnboundedVector<u8>,
17117 D,
17118 val_ref,
17119 decoder,
17120 inner_offset,
17121 inner_depth
17122 )?;
17123 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
17124 {
17125 return Err(fidl::Error::InvalidNumBytesInEnvelope);
17126 }
17127 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
17128 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
17129 }
17130 }
17131
17132 next_offset += envelope_size;
17133
17134 while next_offset < end_offset {
17136 _next_ordinal_to_read += 1;
17137 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
17138 next_offset += envelope_size;
17139 }
17140
17141 Ok(())
17142 }
17143 }
17144
17145 impl WlanFullmacOwePublicKey {
17146 #[inline(always)]
17147 fn max_ordinal_present(&self) -> u64 {
17148 if let Some(_) = self.key {
17149 return 2;
17150 }
17151 if let Some(_) = self.group {
17152 return 1;
17153 }
17154 0
17155 }
17156 }
17157
17158 impl fidl::encoding::ValueTypeMarker for WlanFullmacOwePublicKey {
17159 type Borrowed<'a> = &'a Self;
17160 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
17161 value
17162 }
17163 }
17164
17165 unsafe impl fidl::encoding::TypeMarker for WlanFullmacOwePublicKey {
17166 type Owned = Self;
17167
17168 #[inline(always)]
17169 fn inline_align(_context: fidl::encoding::Context) -> usize {
17170 8
17171 }
17172
17173 #[inline(always)]
17174 fn inline_size(_context: fidl::encoding::Context) -> usize {
17175 16
17176 }
17177 }
17178
17179 unsafe impl<D: fidl::encoding::ResourceDialect>
17180 fidl::encoding::Encode<WlanFullmacOwePublicKey, D> for &WlanFullmacOwePublicKey
17181 {
17182 unsafe fn encode(
17183 self,
17184 encoder: &mut fidl::encoding::Encoder<'_, D>,
17185 offset: usize,
17186 mut depth: fidl::encoding::Depth,
17187 ) -> fidl::Result<()> {
17188 encoder.debug_check_bounds::<WlanFullmacOwePublicKey>(offset);
17189 let max_ordinal: u64 = self.max_ordinal_present();
17191 encoder.write_num(max_ordinal, offset);
17192 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
17193 if max_ordinal == 0 {
17195 return Ok(());
17196 }
17197 depth.increment()?;
17198 let envelope_size = 8;
17199 let bytes_len = max_ordinal as usize * envelope_size;
17200 #[allow(unused_variables)]
17201 let offset = encoder.out_of_line_offset(bytes_len);
17202 let mut _prev_end_offset: usize = 0;
17203 if 1 > max_ordinal {
17204 return Ok(());
17205 }
17206
17207 let cur_offset: usize = (1 - 1) * envelope_size;
17210
17211 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
17213
17214 fidl::encoding::encode_in_envelope_optional::<u16, D>(
17219 self.group.as_ref().map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
17220 encoder,
17221 offset + cur_offset,
17222 depth,
17223 )?;
17224
17225 _prev_end_offset = cur_offset + envelope_size;
17226 if 2 > max_ordinal {
17227 return Ok(());
17228 }
17229
17230 let cur_offset: usize = (2 - 1) * envelope_size;
17233
17234 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
17236
17237 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<u8>, D>(
17242 self.key.as_ref().map(<fidl::encoding::UnboundedVector<u8> as fidl::encoding::ValueTypeMarker>::borrow),
17243 encoder, offset + cur_offset, depth
17244 )?;
17245
17246 _prev_end_offset = cur_offset + envelope_size;
17247
17248 Ok(())
17249 }
17250 }
17251
17252 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
17253 for WlanFullmacOwePublicKey
17254 {
17255 #[inline(always)]
17256 fn new_empty() -> Self {
17257 Self::default()
17258 }
17259
17260 unsafe fn decode(
17261 &mut self,
17262 decoder: &mut fidl::encoding::Decoder<'_, D>,
17263 offset: usize,
17264 mut depth: fidl::encoding::Depth,
17265 ) -> fidl::Result<()> {
17266 decoder.debug_check_bounds::<Self>(offset);
17267 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
17268 None => return Err(fidl::Error::NotNullable),
17269 Some(len) => len,
17270 };
17271 if len == 0 {
17273 return Ok(());
17274 };
17275 depth.increment()?;
17276 let envelope_size = 8;
17277 let bytes_len = len * envelope_size;
17278 let offset = decoder.out_of_line_offset(bytes_len)?;
17279 let mut _next_ordinal_to_read = 0;
17281 let mut next_offset = offset;
17282 let end_offset = offset + bytes_len;
17283 _next_ordinal_to_read += 1;
17284 if next_offset >= end_offset {
17285 return Ok(());
17286 }
17287
17288 while _next_ordinal_to_read < 1 {
17290 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
17291 _next_ordinal_to_read += 1;
17292 next_offset += envelope_size;
17293 }
17294
17295 let next_out_of_line = decoder.next_out_of_line();
17296 let handles_before = decoder.remaining_handles();
17297 if let Some((inlined, num_bytes, num_handles)) =
17298 fidl::encoding::decode_envelope_header(decoder, next_offset)?
17299 {
17300 let member_inline_size =
17301 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
17302 if inlined != (member_inline_size <= 4) {
17303 return Err(fidl::Error::InvalidInlineBitInEnvelope);
17304 }
17305 let inner_offset;
17306 let mut inner_depth = depth.clone();
17307 if inlined {
17308 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
17309 inner_offset = next_offset;
17310 } else {
17311 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
17312 inner_depth.increment()?;
17313 }
17314 let val_ref = self.group.get_or_insert_with(|| fidl::new_empty!(u16, D));
17315 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
17316 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
17317 {
17318 return Err(fidl::Error::InvalidNumBytesInEnvelope);
17319 }
17320 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
17321 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
17322 }
17323 }
17324
17325 next_offset += envelope_size;
17326 _next_ordinal_to_read += 1;
17327 if next_offset >= end_offset {
17328 return Ok(());
17329 }
17330
17331 while _next_ordinal_to_read < 2 {
17333 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
17334 _next_ordinal_to_read += 1;
17335 next_offset += envelope_size;
17336 }
17337
17338 let next_out_of_line = decoder.next_out_of_line();
17339 let handles_before = decoder.remaining_handles();
17340 if let Some((inlined, num_bytes, num_handles)) =
17341 fidl::encoding::decode_envelope_header(decoder, next_offset)?
17342 {
17343 let member_inline_size = <fidl::encoding::UnboundedVector<u8> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
17344 if inlined != (member_inline_size <= 4) {
17345 return Err(fidl::Error::InvalidInlineBitInEnvelope);
17346 }
17347 let inner_offset;
17348 let mut inner_depth = depth.clone();
17349 if inlined {
17350 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
17351 inner_offset = next_offset;
17352 } else {
17353 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
17354 inner_depth.increment()?;
17355 }
17356 let val_ref = self.key.get_or_insert_with(|| {
17357 fidl::new_empty!(fidl::encoding::UnboundedVector<u8>, D)
17358 });
17359 fidl::decode!(
17360 fidl::encoding::UnboundedVector<u8>,
17361 D,
17362 val_ref,
17363 decoder,
17364 inner_offset,
17365 inner_depth
17366 )?;
17367 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
17368 {
17369 return Err(fidl::Error::InvalidNumBytesInEnvelope);
17370 }
17371 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
17372 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
17373 }
17374 }
17375
17376 next_offset += envelope_size;
17377
17378 while next_offset < end_offset {
17380 _next_ordinal_to_read += 1;
17381 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
17382 next_offset += envelope_size;
17383 }
17384
17385 Ok(())
17386 }
17387 }
17388
17389 impl WlanFullmacSignalReportIndication {
17390 #[inline(always)]
17391 fn max_ordinal_present(&self) -> u64 {
17392 if let Some(_) = self.rx_rate_500kbps {
17393 return 4;
17394 }
17395 if let Some(_) = self.tx_rate_500kbps {
17396 return 3;
17397 }
17398 if let Some(_) = self.snr_db {
17399 return 2;
17400 }
17401 if let Some(_) = self.rssi_dbm {
17402 return 1;
17403 }
17404 0
17405 }
17406 }
17407
17408 impl fidl::encoding::ValueTypeMarker for WlanFullmacSignalReportIndication {
17409 type Borrowed<'a> = &'a Self;
17410 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
17411 value
17412 }
17413 }
17414
17415 unsafe impl fidl::encoding::TypeMarker for WlanFullmacSignalReportIndication {
17416 type Owned = Self;
17417
17418 #[inline(always)]
17419 fn inline_align(_context: fidl::encoding::Context) -> usize {
17420 8
17421 }
17422
17423 #[inline(always)]
17424 fn inline_size(_context: fidl::encoding::Context) -> usize {
17425 16
17426 }
17427 }
17428
17429 unsafe impl<D: fidl::encoding::ResourceDialect>
17430 fidl::encoding::Encode<WlanFullmacSignalReportIndication, D>
17431 for &WlanFullmacSignalReportIndication
17432 {
17433 unsafe fn encode(
17434 self,
17435 encoder: &mut fidl::encoding::Encoder<'_, D>,
17436 offset: usize,
17437 mut depth: fidl::encoding::Depth,
17438 ) -> fidl::Result<()> {
17439 encoder.debug_check_bounds::<WlanFullmacSignalReportIndication>(offset);
17440 let max_ordinal: u64 = self.max_ordinal_present();
17442 encoder.write_num(max_ordinal, offset);
17443 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
17444 if max_ordinal == 0 {
17446 return Ok(());
17447 }
17448 depth.increment()?;
17449 let envelope_size = 8;
17450 let bytes_len = max_ordinal as usize * envelope_size;
17451 #[allow(unused_variables)]
17452 let offset = encoder.out_of_line_offset(bytes_len);
17453 let mut _prev_end_offset: usize = 0;
17454 if 1 > max_ordinal {
17455 return Ok(());
17456 }
17457
17458 let cur_offset: usize = (1 - 1) * envelope_size;
17461
17462 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
17464
17465 fidl::encoding::encode_in_envelope_optional::<i8, D>(
17470 self.rssi_dbm.as_ref().map(<i8 as fidl::encoding::ValueTypeMarker>::borrow),
17471 encoder,
17472 offset + cur_offset,
17473 depth,
17474 )?;
17475
17476 _prev_end_offset = cur_offset + envelope_size;
17477 if 2 > max_ordinal {
17478 return Ok(());
17479 }
17480
17481 let cur_offset: usize = (2 - 1) * envelope_size;
17484
17485 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
17487
17488 fidl::encoding::encode_in_envelope_optional::<i8, D>(
17493 self.snr_db.as_ref().map(<i8 as fidl::encoding::ValueTypeMarker>::borrow),
17494 encoder,
17495 offset + cur_offset,
17496 depth,
17497 )?;
17498
17499 _prev_end_offset = cur_offset + envelope_size;
17500 if 3 > max_ordinal {
17501 return Ok(());
17502 }
17503
17504 let cur_offset: usize = (3 - 1) * envelope_size;
17507
17508 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
17510
17511 fidl::encoding::encode_in_envelope_optional::<u32, D>(
17516 self.tx_rate_500kbps.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
17517 encoder,
17518 offset + cur_offset,
17519 depth,
17520 )?;
17521
17522 _prev_end_offset = cur_offset + envelope_size;
17523 if 4 > max_ordinal {
17524 return Ok(());
17525 }
17526
17527 let cur_offset: usize = (4 - 1) * envelope_size;
17530
17531 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
17533
17534 fidl::encoding::encode_in_envelope_optional::<u32, D>(
17539 self.rx_rate_500kbps.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
17540 encoder,
17541 offset + cur_offset,
17542 depth,
17543 )?;
17544
17545 _prev_end_offset = cur_offset + envelope_size;
17546
17547 Ok(())
17548 }
17549 }
17550
17551 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
17552 for WlanFullmacSignalReportIndication
17553 {
17554 #[inline(always)]
17555 fn new_empty() -> Self {
17556 Self::default()
17557 }
17558
17559 unsafe fn decode(
17560 &mut self,
17561 decoder: &mut fidl::encoding::Decoder<'_, D>,
17562 offset: usize,
17563 mut depth: fidl::encoding::Depth,
17564 ) -> fidl::Result<()> {
17565 decoder.debug_check_bounds::<Self>(offset);
17566 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
17567 None => return Err(fidl::Error::NotNullable),
17568 Some(len) => len,
17569 };
17570 if len == 0 {
17572 return Ok(());
17573 };
17574 depth.increment()?;
17575 let envelope_size = 8;
17576 let bytes_len = len * envelope_size;
17577 let offset = decoder.out_of_line_offset(bytes_len)?;
17578 let mut _next_ordinal_to_read = 0;
17580 let mut next_offset = offset;
17581 let end_offset = offset + bytes_len;
17582 _next_ordinal_to_read += 1;
17583 if next_offset >= end_offset {
17584 return Ok(());
17585 }
17586
17587 while _next_ordinal_to_read < 1 {
17589 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
17590 _next_ordinal_to_read += 1;
17591 next_offset += envelope_size;
17592 }
17593
17594 let next_out_of_line = decoder.next_out_of_line();
17595 let handles_before = decoder.remaining_handles();
17596 if let Some((inlined, num_bytes, num_handles)) =
17597 fidl::encoding::decode_envelope_header(decoder, next_offset)?
17598 {
17599 let member_inline_size =
17600 <i8 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
17601 if inlined != (member_inline_size <= 4) {
17602 return Err(fidl::Error::InvalidInlineBitInEnvelope);
17603 }
17604 let inner_offset;
17605 let mut inner_depth = depth.clone();
17606 if inlined {
17607 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
17608 inner_offset = next_offset;
17609 } else {
17610 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
17611 inner_depth.increment()?;
17612 }
17613 let val_ref = self.rssi_dbm.get_or_insert_with(|| fidl::new_empty!(i8, D));
17614 fidl::decode!(i8, D, val_ref, decoder, inner_offset, inner_depth)?;
17615 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
17616 {
17617 return Err(fidl::Error::InvalidNumBytesInEnvelope);
17618 }
17619 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
17620 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
17621 }
17622 }
17623
17624 next_offset += envelope_size;
17625 _next_ordinal_to_read += 1;
17626 if next_offset >= end_offset {
17627 return Ok(());
17628 }
17629
17630 while _next_ordinal_to_read < 2 {
17632 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
17633 _next_ordinal_to_read += 1;
17634 next_offset += envelope_size;
17635 }
17636
17637 let next_out_of_line = decoder.next_out_of_line();
17638 let handles_before = decoder.remaining_handles();
17639 if let Some((inlined, num_bytes, num_handles)) =
17640 fidl::encoding::decode_envelope_header(decoder, next_offset)?
17641 {
17642 let member_inline_size =
17643 <i8 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
17644 if inlined != (member_inline_size <= 4) {
17645 return Err(fidl::Error::InvalidInlineBitInEnvelope);
17646 }
17647 let inner_offset;
17648 let mut inner_depth = depth.clone();
17649 if inlined {
17650 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
17651 inner_offset = next_offset;
17652 } else {
17653 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
17654 inner_depth.increment()?;
17655 }
17656 let val_ref = self.snr_db.get_or_insert_with(|| fidl::new_empty!(i8, D));
17657 fidl::decode!(i8, D, val_ref, decoder, inner_offset, inner_depth)?;
17658 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
17659 {
17660 return Err(fidl::Error::InvalidNumBytesInEnvelope);
17661 }
17662 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
17663 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
17664 }
17665 }
17666
17667 next_offset += envelope_size;
17668 _next_ordinal_to_read += 1;
17669 if next_offset >= end_offset {
17670 return Ok(());
17671 }
17672
17673 while _next_ordinal_to_read < 3 {
17675 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
17676 _next_ordinal_to_read += 1;
17677 next_offset += envelope_size;
17678 }
17679
17680 let next_out_of_line = decoder.next_out_of_line();
17681 let handles_before = decoder.remaining_handles();
17682 if let Some((inlined, num_bytes, num_handles)) =
17683 fidl::encoding::decode_envelope_header(decoder, next_offset)?
17684 {
17685 let member_inline_size =
17686 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
17687 if inlined != (member_inline_size <= 4) {
17688 return Err(fidl::Error::InvalidInlineBitInEnvelope);
17689 }
17690 let inner_offset;
17691 let mut inner_depth = depth.clone();
17692 if inlined {
17693 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
17694 inner_offset = next_offset;
17695 } else {
17696 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
17697 inner_depth.increment()?;
17698 }
17699 let val_ref = self.tx_rate_500kbps.get_or_insert_with(|| fidl::new_empty!(u32, D));
17700 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
17701 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
17702 {
17703 return Err(fidl::Error::InvalidNumBytesInEnvelope);
17704 }
17705 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
17706 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
17707 }
17708 }
17709
17710 next_offset += envelope_size;
17711 _next_ordinal_to_read += 1;
17712 if next_offset >= end_offset {
17713 return Ok(());
17714 }
17715
17716 while _next_ordinal_to_read < 4 {
17718 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
17719 _next_ordinal_to_read += 1;
17720 next_offset += envelope_size;
17721 }
17722
17723 let next_out_of_line = decoder.next_out_of_line();
17724 let handles_before = decoder.remaining_handles();
17725 if let Some((inlined, num_bytes, num_handles)) =
17726 fidl::encoding::decode_envelope_header(decoder, next_offset)?
17727 {
17728 let member_inline_size =
17729 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
17730 if inlined != (member_inline_size <= 4) {
17731 return Err(fidl::Error::InvalidInlineBitInEnvelope);
17732 }
17733 let inner_offset;
17734 let mut inner_depth = depth.clone();
17735 if inlined {
17736 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
17737 inner_offset = next_offset;
17738 } else {
17739 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
17740 inner_depth.increment()?;
17741 }
17742 let val_ref = self.rx_rate_500kbps.get_or_insert_with(|| fidl::new_empty!(u32, D));
17743 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
17744 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
17745 {
17746 return Err(fidl::Error::InvalidNumBytesInEnvelope);
17747 }
17748 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
17749 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
17750 }
17751 }
17752
17753 next_offset += envelope_size;
17754
17755 while next_offset < end_offset {
17757 _next_ordinal_to_read += 1;
17758 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
17759 next_offset += envelope_size;
17760 }
17761
17762 Ok(())
17763 }
17764 }
17765}