1#![warn(clippy::all)]
4#![allow(unused_parens, unused_mut, unused_imports, nonstandard_style)]
5
6use bitflags::bitflags;
7use fidl::encoding::{MessageBufFor, ProxyChannelBox, ResourceDialect};
8use futures::future::{self, MaybeDone, TryFutureExt};
9use zx_status;
10
11pub const WLAN_MAX_KEYLIST_SIZE: u32 = 4;
12
13pub const WLAN_VIE_MAX_LEN: u32 = 514;
16
17#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
18pub enum EapolTxResult {
19 Success,
20 TransmissionFailure,
21 #[doc(hidden)]
22 __SourceBreaking {
23 unknown_ordinal: u8,
24 },
25}
26
27#[macro_export]
29macro_rules! EapolTxResultUnknown {
30 () => {
31 _
32 };
33}
34
35impl EapolTxResult {
36 #[inline]
37 pub fn from_primitive(prim: u8) -> Option<Self> {
38 match prim {
39 0 => Some(Self::Success),
40 1 => Some(Self::TransmissionFailure),
41 _ => None,
42 }
43 }
44
45 #[inline]
46 pub fn from_primitive_allow_unknown(prim: u8) -> Self {
47 match prim {
48 0 => Self::Success,
49 1 => Self::TransmissionFailure,
50 unknown_ordinal => Self::__SourceBreaking { unknown_ordinal },
51 }
52 }
53
54 #[inline]
55 pub fn unknown() -> Self {
56 Self::__SourceBreaking { unknown_ordinal: 0xff }
57 }
58
59 #[inline]
60 pub const fn into_primitive(self) -> u8 {
61 match self {
62 Self::Success => 0,
63 Self::TransmissionFailure => 1,
64 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
65 }
66 }
67
68 #[inline]
69 pub fn is_unknown(&self) -> bool {
70 match self {
71 Self::__SourceBreaking { unknown_ordinal: _ } => true,
72 _ => false,
73 }
74 }
75}
76
77#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
78pub enum StartResult {
79 Success,
80 BssAlreadyStartedOrJoined,
81 ResetRequiredBeforeStart,
82 NotSupported,
83 #[doc(hidden)]
84 __SourceBreaking {
85 unknown_ordinal: u8,
86 },
87}
88
89#[macro_export]
91macro_rules! StartResultUnknown {
92 () => {
93 _
94 };
95}
96
97impl StartResult {
98 #[inline]
99 pub fn from_primitive(prim: u8) -> Option<Self> {
100 match prim {
101 0 => Some(Self::Success),
102 1 => Some(Self::BssAlreadyStartedOrJoined),
103 2 => Some(Self::ResetRequiredBeforeStart),
104 3 => Some(Self::NotSupported),
105 _ => None,
106 }
107 }
108
109 #[inline]
110 pub fn from_primitive_allow_unknown(prim: u8) -> Self {
111 match prim {
112 0 => Self::Success,
113 1 => Self::BssAlreadyStartedOrJoined,
114 2 => Self::ResetRequiredBeforeStart,
115 3 => Self::NotSupported,
116 unknown_ordinal => Self::__SourceBreaking { unknown_ordinal },
117 }
118 }
119
120 #[inline]
121 pub fn unknown() -> Self {
122 Self::__SourceBreaking { unknown_ordinal: 0xff }
123 }
124
125 #[inline]
126 pub const fn into_primitive(self) -> u8 {
127 match self {
128 Self::Success => 0,
129 Self::BssAlreadyStartedOrJoined => 1,
130 Self::ResetRequiredBeforeStart => 2,
131 Self::NotSupported => 3,
132 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
133 }
134 }
135
136 #[inline]
137 pub fn is_unknown(&self) -> bool {
138 match self {
139 Self::__SourceBreaking { unknown_ordinal: _ } => true,
140 _ => false,
141 }
142 }
143}
144
145#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
146pub enum StopResult {
147 Success,
148 BssAlreadyStopped,
149 InternalError,
150 #[doc(hidden)]
151 __SourceBreaking {
152 unknown_ordinal: u8,
153 },
154}
155
156#[macro_export]
158macro_rules! StopResultUnknown {
159 () => {
160 _
161 };
162}
163
164impl StopResult {
165 #[inline]
166 pub fn from_primitive(prim: u8) -> Option<Self> {
167 match prim {
168 0 => Some(Self::Success),
169 1 => Some(Self::BssAlreadyStopped),
170 2 => Some(Self::InternalError),
171 _ => None,
172 }
173 }
174
175 #[inline]
176 pub fn from_primitive_allow_unknown(prim: u8) -> Self {
177 match prim {
178 0 => Self::Success,
179 1 => Self::BssAlreadyStopped,
180 2 => Self::InternalError,
181 unknown_ordinal => Self::__SourceBreaking { unknown_ordinal },
182 }
183 }
184
185 #[inline]
186 pub fn unknown() -> Self {
187 Self::__SourceBreaking { unknown_ordinal: 0xff }
188 }
189
190 #[inline]
191 pub const fn into_primitive(self) -> u8 {
192 match self {
193 Self::Success => 0,
194 Self::BssAlreadyStopped => 1,
195 Self::InternalError => 2,
196 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
197 }
198 }
199
200 #[inline]
201 pub fn is_unknown(&self) -> bool {
202 match self {
203 Self::__SourceBreaking { unknown_ordinal: _ } => true,
204 _ => false,
205 }
206 }
207}
208
209#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
210pub enum WlanAssocResult {
211 Success,
212 RefusedReasonUnspecified,
213 RefusedNotAuthenticated,
214 RefusedCapabilitiesMismatch,
215 RefusedExternalReason,
216 RefusedApOutOfMemory,
217 RefusedBasicRatesMismatch,
218 RejectedEmergencyServicesNotSupported,
219 RefusedTemporarily,
220 #[doc(hidden)]
221 __SourceBreaking {
222 unknown_ordinal: u8,
223 },
224}
225
226#[macro_export]
228macro_rules! WlanAssocResultUnknown {
229 () => {
230 _
231 };
232}
233
234impl WlanAssocResult {
235 #[inline]
236 pub fn from_primitive(prim: u8) -> Option<Self> {
237 match prim {
238 0 => Some(Self::Success),
239 1 => Some(Self::RefusedReasonUnspecified),
240 2 => Some(Self::RefusedNotAuthenticated),
241 3 => Some(Self::RefusedCapabilitiesMismatch),
242 4 => Some(Self::RefusedExternalReason),
243 5 => Some(Self::RefusedApOutOfMemory),
244 6 => Some(Self::RefusedBasicRatesMismatch),
245 7 => Some(Self::RejectedEmergencyServicesNotSupported),
246 8 => Some(Self::RefusedTemporarily),
247 _ => None,
248 }
249 }
250
251 #[inline]
252 pub fn from_primitive_allow_unknown(prim: u8) -> Self {
253 match prim {
254 0 => Self::Success,
255 1 => Self::RefusedReasonUnspecified,
256 2 => Self::RefusedNotAuthenticated,
257 3 => Self::RefusedCapabilitiesMismatch,
258 4 => Self::RefusedExternalReason,
259 5 => Self::RefusedApOutOfMemory,
260 6 => Self::RefusedBasicRatesMismatch,
261 7 => Self::RejectedEmergencyServicesNotSupported,
262 8 => Self::RefusedTemporarily,
263 unknown_ordinal => Self::__SourceBreaking { unknown_ordinal },
264 }
265 }
266
267 #[inline]
268 pub fn unknown() -> Self {
269 Self::__SourceBreaking { unknown_ordinal: 0xff }
270 }
271
272 #[inline]
273 pub const fn into_primitive(self) -> u8 {
274 match self {
275 Self::Success => 0,
276 Self::RefusedReasonUnspecified => 1,
277 Self::RefusedNotAuthenticated => 2,
278 Self::RefusedCapabilitiesMismatch => 3,
279 Self::RefusedExternalReason => 4,
280 Self::RefusedApOutOfMemory => 5,
281 Self::RefusedBasicRatesMismatch => 6,
282 Self::RejectedEmergencyServicesNotSupported => 7,
283 Self::RefusedTemporarily => 8,
284 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
285 }
286 }
287
288 #[inline]
289 pub fn is_unknown(&self) -> bool {
290 match self {
291 Self::__SourceBreaking { unknown_ordinal: _ } => true,
292 _ => false,
293 }
294 }
295}
296
297#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
298pub enum WlanAuthResult {
299 Success,
300 Refused,
301 AntiCloggingTokenRequired,
302 FiniteCyclicGroupNotSupported,
303 Rejected,
304 FailureTimeout,
305 #[doc(hidden)]
306 __SourceBreaking {
307 unknown_ordinal: u8,
308 },
309}
310
311#[macro_export]
313macro_rules! WlanAuthResultUnknown {
314 () => {
315 _
316 };
317}
318
319impl WlanAuthResult {
320 #[inline]
321 pub fn from_primitive(prim: u8) -> Option<Self> {
322 match prim {
323 0 => Some(Self::Success),
324 1 => Some(Self::Refused),
325 2 => Some(Self::AntiCloggingTokenRequired),
326 3 => Some(Self::FiniteCyclicGroupNotSupported),
327 4 => Some(Self::Rejected),
328 5 => Some(Self::FailureTimeout),
329 _ => None,
330 }
331 }
332
333 #[inline]
334 pub fn from_primitive_allow_unknown(prim: u8) -> Self {
335 match prim {
336 0 => Self::Success,
337 1 => Self::Refused,
338 2 => Self::AntiCloggingTokenRequired,
339 3 => Self::FiniteCyclicGroupNotSupported,
340 4 => Self::Rejected,
341 5 => Self::FailureTimeout,
342 unknown_ordinal => Self::__SourceBreaking { unknown_ordinal },
343 }
344 }
345
346 #[inline]
347 pub fn unknown() -> Self {
348 Self::__SourceBreaking { unknown_ordinal: 0xff }
349 }
350
351 #[inline]
352 pub const fn into_primitive(self) -> u8 {
353 match self {
354 Self::Success => 0,
355 Self::Refused => 1,
356 Self::AntiCloggingTokenRequired => 2,
357 Self::FiniteCyclicGroupNotSupported => 3,
358 Self::Rejected => 4,
359 Self::FailureTimeout => 5,
360 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
361 }
362 }
363
364 #[inline]
365 pub fn is_unknown(&self) -> bool {
366 match self {
367 Self::__SourceBreaking { unknown_ordinal: _ } => true,
368 _ => false,
369 }
370 }
371}
372
373#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
374pub enum WlanAuthType {
375 OpenSystem,
376 SharedKey,
377 FastBssTransition,
378 Sae,
379 #[doc(hidden)]
380 __SourceBreaking {
381 unknown_ordinal: u8,
382 },
383}
384
385#[macro_export]
387macro_rules! WlanAuthTypeUnknown {
388 () => {
389 _
390 };
391}
392
393impl WlanAuthType {
394 #[inline]
395 pub fn from_primitive(prim: u8) -> Option<Self> {
396 match prim {
397 1 => Some(Self::OpenSystem),
398 2 => Some(Self::SharedKey),
399 3 => Some(Self::FastBssTransition),
400 4 => Some(Self::Sae),
401 _ => None,
402 }
403 }
404
405 #[inline]
406 pub fn from_primitive_allow_unknown(prim: u8) -> Self {
407 match prim {
408 1 => Self::OpenSystem,
409 2 => Self::SharedKey,
410 3 => Self::FastBssTransition,
411 4 => Self::Sae,
412 unknown_ordinal => Self::__SourceBreaking { unknown_ordinal },
413 }
414 }
415
416 #[inline]
417 pub fn unknown() -> Self {
418 Self::__SourceBreaking { unknown_ordinal: 0xff }
419 }
420
421 #[inline]
422 pub const fn into_primitive(self) -> u8 {
423 match self {
424 Self::OpenSystem => 1,
425 Self::SharedKey => 2,
426 Self::FastBssTransition => 3,
427 Self::Sae => 4,
428 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
429 }
430 }
431
432 #[inline]
433 pub fn is_unknown(&self) -> bool {
434 match self {
435 Self::__SourceBreaking { unknown_ordinal: _ } => true,
436 _ => false,
437 }
438 }
439}
440
441#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
442pub enum WlanScanResult {
443 Success,
444 NotSupported,
445 InvalidArgs,
446 InternalError,
447 ShouldWait,
448 CanceledByDriverOrFirmware,
449 #[doc(hidden)]
450 __SourceBreaking {
451 unknown_ordinal: u8,
452 },
453}
454
455#[macro_export]
457macro_rules! WlanScanResultUnknown {
458 () => {
459 _
460 };
461}
462
463impl WlanScanResult {
464 #[inline]
465 pub fn from_primitive(prim: u8) -> Option<Self> {
466 match prim {
467 0 => Some(Self::Success),
468 1 => Some(Self::NotSupported),
469 2 => Some(Self::InvalidArgs),
470 3 => Some(Self::InternalError),
471 4 => Some(Self::ShouldWait),
472 5 => Some(Self::CanceledByDriverOrFirmware),
473 _ => None,
474 }
475 }
476
477 #[inline]
478 pub fn from_primitive_allow_unknown(prim: u8) -> Self {
479 match prim {
480 0 => Self::Success,
481 1 => Self::NotSupported,
482 2 => Self::InvalidArgs,
483 3 => Self::InternalError,
484 4 => Self::ShouldWait,
485 5 => Self::CanceledByDriverOrFirmware,
486 unknown_ordinal => Self::__SourceBreaking { unknown_ordinal },
487 }
488 }
489
490 #[inline]
491 pub fn unknown() -> Self {
492 Self::__SourceBreaking { unknown_ordinal: 0xff }
493 }
494
495 #[inline]
496 pub const fn into_primitive(self) -> u8 {
497 match self {
498 Self::Success => 0,
499 Self::NotSupported => 1,
500 Self::InvalidArgs => 2,
501 Self::InternalError => 3,
502 Self::ShouldWait => 4,
503 Self::CanceledByDriverOrFirmware => 5,
504 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
505 }
506 }
507
508 #[inline]
509 pub fn is_unknown(&self) -> bool {
510 match self {
511 Self::__SourceBreaking { unknown_ordinal: _ } => true,
512 _ => false,
513 }
514 }
515}
516
517#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
518pub enum WlanScanType {
519 Active,
520 Passive,
521 #[doc(hidden)]
522 __SourceBreaking {
523 unknown_ordinal: u8,
524 },
525}
526
527#[macro_export]
529macro_rules! WlanScanTypeUnknown {
530 () => {
531 _
532 };
533}
534
535impl WlanScanType {
536 #[inline]
537 pub fn from_primitive(prim: u8) -> Option<Self> {
538 match prim {
539 1 => Some(Self::Active),
540 2 => Some(Self::Passive),
541 _ => None,
542 }
543 }
544
545 #[inline]
546 pub fn from_primitive_allow_unknown(prim: u8) -> Self {
547 match prim {
548 1 => Self::Active,
549 2 => Self::Passive,
550 unknown_ordinal => Self::__SourceBreaking { unknown_ordinal },
551 }
552 }
553
554 #[inline]
555 pub fn unknown() -> Self {
556 Self::__SourceBreaking { unknown_ordinal: 0xff }
557 }
558
559 #[inline]
560 pub const fn into_primitive(self) -> u8 {
561 match self {
562 Self::Active => 1,
563 Self::Passive => 2,
564 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
565 }
566 }
567
568 #[inline]
569 pub fn is_unknown(&self) -> bool {
570 match self {
571 Self::__SourceBreaking { unknown_ordinal: _ } => true,
572 _ => false,
573 }
574 }
575}
576
577#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
578#[repr(C)]
579pub struct WlanFullmacChannelSwitchInfo {
580 pub new_channel: u8,
581}
582
583impl fidl::Persistable for WlanFullmacChannelSwitchInfo {}
584
585#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
586#[repr(C)]
587pub struct WlanFullmacImplIfcOnChannelSwitchRequest {
588 pub ind: WlanFullmacChannelSwitchInfo,
589}
590
591impl fidl::Persistable for WlanFullmacImplIfcOnChannelSwitchRequest {}
592
593#[derive(Clone, Debug, PartialEq)]
594pub struct WlanFullmacImplIfcOnWmmStatusRespRequest {
595 pub status: i32,
596 pub wmm_params: fidl_fuchsia_wlan_common__common::WlanWmmParameters,
597}
598
599impl fidl::Persistable for WlanFullmacImplIfcOnWmmStatusRespRequest {}
600
601#[derive(Clone, Debug, PartialEq)]
602pub struct WlanFullmacImplIfcSaeFrameRxRequest {
603 pub frame: SaeFrame,
604}
605
606impl fidl::Persistable for WlanFullmacImplIfcSaeFrameRxRequest {}
607
608#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
609#[repr(C)]
610pub struct WlanFullmacImplIfcSignalReportRequest {
611 pub ind: WlanFullmacSignalReportIndication,
612}
613
614impl fidl::Persistable for WlanFullmacImplIfcSignalReportRequest {}
615
616#[derive(Clone, Debug, PartialEq)]
617pub struct WlanFullmacImplSaeFrameTxRequest {
618 pub frame: SaeFrame,
619}
620
621impl fidl::Persistable for WlanFullmacImplSaeFrameTxRequest {}
622
623#[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
624pub struct WlanFullmacImplSetKeysResponse {
625 pub resp: WlanFullmacSetKeysResp,
626}
627
628impl fidl::Persistable for WlanFullmacImplSetKeysResponse {}
629
630#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
631#[repr(C)]
632pub struct WlanFullmacImplSetMacAddressRequest {
633 pub mac_addr: [u8; 6],
634}
635
636impl fidl::Persistable for WlanFullmacImplSetMacAddressRequest {}
637
638#[derive(Clone, Debug, PartialEq)]
639pub struct WlanFullmacImplGetIfaceHistogramStatsResponse {
640 pub stats: fidl_fuchsia_wlan_stats__common::IfaceHistogramStats,
641}
642
643impl fidl::Persistable for WlanFullmacImplGetIfaceHistogramStatsResponse {}
644
645#[derive(Clone, Debug, PartialEq)]
646pub struct WlanFullmacImplGetIfaceStatsResponse {
647 pub stats: fidl_fuchsia_wlan_stats__common::IfaceStats,
648}
649
650impl fidl::Persistable for WlanFullmacImplGetIfaceStatsResponse {}
651
652#[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
653pub struct WlanFullmacRssiStats {
654 pub hist: Vec<u64>,
655}
656
657impl fidl::Persistable for WlanFullmacRssiStats {}
658
659#[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
660pub struct WlanFullmacSetKeysResp {
661 pub statuslist: Vec<i32>,
662}
663
664impl fidl::Persistable for WlanFullmacSetKeysResp {}
665
666#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
667#[repr(C)]
668pub struct WlanFullmacSignalReportIndication {
669 pub rssi_dbm: i8,
670 pub snr_db: i8,
671}
672
673impl fidl::Persistable for WlanFullmacSignalReportIndication {}
674
675#[derive(Clone, Debug, Default, PartialEq)]
677pub struct BandCapability {
678 pub band: Option<fidl_fuchsia_wlan_ieee80211__common::WlanBand>,
682 pub basic_rates: Option<Vec<u8>>,
689 pub ht_caps: Option<fidl_fuchsia_wlan_ieee80211__common::HtCapabilities>,
694 pub vht_caps: Option<fidl_fuchsia_wlan_ieee80211__common::VhtCapabilities>,
699 pub operating_channels: Option<Vec<u8>>,
711 #[doc(hidden)]
712 pub __source_breaking: fidl::marker::SourceBreaking,
713}
714
715impl fidl::Persistable for BandCapability {}
716
717#[derive(Clone, Debug, Default, PartialEq)]
720pub struct SaeFrame {
721 pub peer_sta_address: Option<[u8; 6]>,
723 pub status_code: Option<fidl_fuchsia_wlan_ieee80211__common::StatusCode>,
725 pub seq_num: Option<u16>,
727 pub sae_fields: Option<Vec<u8>>,
731 #[doc(hidden)]
732 pub __source_breaking: fidl::marker::SourceBreaking,
733}
734
735impl fidl::Persistable for SaeFrame {}
736
737#[derive(Clone, Debug, Default, PartialEq)]
738pub struct WlanFullmacImplAssocRespRequest {
739 pub peer_sta_address: Option<[u8; 6]>,
740 pub result_code: Option<WlanAssocResult>,
741 pub association_id: Option<u16>,
742 #[doc(hidden)]
743 pub __source_breaking: fidl::marker::SourceBreaking,
744}
745
746impl fidl::Persistable for WlanFullmacImplAssocRespRequest {}
747
748#[derive(Clone, Debug, Default, PartialEq)]
749pub struct WlanFullmacImplAuthRespRequest {
750 pub peer_sta_address: Option<[u8; 6]>,
751 pub result_code: Option<WlanAuthResult>,
752 #[doc(hidden)]
753 pub __source_breaking: fidl::marker::SourceBreaking,
754}
755
756impl fidl::Persistable for WlanFullmacImplAuthRespRequest {}
757
758#[derive(Clone, Debug, Default, PartialEq)]
759pub struct WlanFullmacImplConnectRequest {
760 pub selected_bss: Option<fidl_fuchsia_wlan_common__common::BssDescription>,
761 pub connect_failure_timeout: Option<u32>,
763 pub auth_type: Option<WlanAuthType>,
765 pub sae_password: Option<Vec<u8>>,
768 pub wep_key: Option<fidl_fuchsia_wlan_common__common::WlanKeyConfig>,
771 pub security_ie: Option<Vec<u8>>,
773 pub wep_key_desc: Option<fidl_fuchsia_wlan_ieee80211__common::SetKeyDescriptor>,
776 pub owe_public_key: Option<WlanFullmacOwePublicKey>,
779 #[doc(hidden)]
780 pub __source_breaking: fidl::marker::SourceBreaking,
781}
782
783impl fidl::Persistable for WlanFullmacImplConnectRequest {}
784
785#[derive(Clone, Debug, Default, PartialEq)]
786pub struct WlanFullmacImplDeauthRequest {
787 pub peer_sta_address: Option<[u8; 6]>,
788 pub reason_code: Option<fidl_fuchsia_wlan_ieee80211__common::ReasonCode>,
789 #[doc(hidden)]
790 pub __source_breaking: fidl::marker::SourceBreaking,
791}
792
793impl fidl::Persistable for WlanFullmacImplDeauthRequest {}
794
795#[derive(Clone, Debug, Default, PartialEq)]
796pub struct WlanFullmacImplDisassocRequest {
797 pub peer_sta_address: Option<[u8; 6]>,
798 pub reason_code: Option<fidl_fuchsia_wlan_ieee80211__common::ReasonCode>,
799 #[doc(hidden)]
800 pub __source_breaking: fidl::marker::SourceBreaking,
801}
802
803impl fidl::Persistable for WlanFullmacImplDisassocRequest {}
804
805#[derive(Clone, Debug, Default, PartialEq)]
806pub struct WlanFullmacImplEapolTxRequest {
807 pub src_addr: Option<[u8; 6]>,
808 pub dst_addr: Option<[u8; 6]>,
809 pub data: Option<Vec<u8>>,
810 #[doc(hidden)]
811 pub __source_breaking: fidl::marker::SourceBreaking,
812}
813
814impl fidl::Persistable for WlanFullmacImplEapolTxRequest {}
815
816#[derive(Clone, Debug, Default, PartialEq)]
817pub struct WlanFullmacImplIfcAssocIndRequest {
818 pub peer_sta_address: Option<[u8; 6]>,
819 pub listen_interval: Option<u16>,
820 pub ssid: Option<Vec<u8>>,
821 pub rsne: Option<Vec<u8>>,
822 pub vendor_ie: Option<Vec<u8>>,
823 #[doc(hidden)]
824 pub __source_breaking: fidl::marker::SourceBreaking,
825}
826
827impl fidl::Persistable for WlanFullmacImplIfcAssocIndRequest {}
828
829#[derive(Clone, Debug, Default, PartialEq)]
830pub struct WlanFullmacImplIfcAuthIndRequest {
831 pub peer_sta_address: Option<[u8; 6]>,
832 pub auth_type: Option<WlanAuthType>,
833 #[doc(hidden)]
834 pub __source_breaking: fidl::marker::SourceBreaking,
835}
836
837impl fidl::Persistable for WlanFullmacImplIfcAuthIndRequest {}
838
839#[derive(Clone, Debug, Default, PartialEq)]
840pub struct WlanFullmacImplIfcConnectConfRequest {
841 pub peer_sta_address: Option<[u8; 6]>,
842 pub result_code: Option<fidl_fuchsia_wlan_ieee80211__common::StatusCode>,
843 pub association_id: Option<u16>,
844 pub association_ies: Option<Vec<u8>>,
845 #[doc(hidden)]
846 pub __source_breaking: fidl::marker::SourceBreaking,
847}
848
849impl fidl::Persistable for WlanFullmacImplIfcConnectConfRequest {}
850
851#[derive(Clone, Debug, Default, PartialEq)]
852pub struct WlanFullmacImplIfcDeauthConfRequest {
853 pub peer_sta_address: Option<[u8; 6]>,
854 #[doc(hidden)]
855 pub __source_breaking: fidl::marker::SourceBreaking,
856}
857
858impl fidl::Persistable for WlanFullmacImplIfcDeauthConfRequest {}
859
860#[derive(Clone, Debug, Default, PartialEq)]
861pub struct WlanFullmacImplIfcDeauthIndRequest {
862 pub peer_sta_address: Option<[u8; 6]>,
864 pub reason_code: Option<fidl_fuchsia_wlan_ieee80211__common::ReasonCode>,
866 pub locally_initiated: Option<bool>,
869 #[doc(hidden)]
870 pub __source_breaking: fidl::marker::SourceBreaking,
871}
872
873impl fidl::Persistable for WlanFullmacImplIfcDeauthIndRequest {}
874
875#[derive(Clone, Debug, Default, PartialEq)]
876pub struct WlanFullmacImplIfcDisassocConfRequest {
877 pub status: Option<i32>,
885 #[doc(hidden)]
886 pub __source_breaking: fidl::marker::SourceBreaking,
887}
888
889impl fidl::Persistable for WlanFullmacImplIfcDisassocConfRequest {}
890
891#[derive(Clone, Debug, Default, PartialEq)]
892pub struct WlanFullmacImplIfcDisassocIndRequest {
893 pub peer_sta_address: Option<[u8; 6]>,
895 pub reason_code: Option<fidl_fuchsia_wlan_ieee80211__common::ReasonCode>,
897 pub locally_initiated: Option<bool>,
902 #[doc(hidden)]
903 pub __source_breaking: fidl::marker::SourceBreaking,
904}
905
906impl fidl::Persistable for WlanFullmacImplIfcDisassocIndRequest {}
907
908#[derive(Clone, Debug, Default, PartialEq)]
909pub struct WlanFullmacImplIfcEapolConfRequest {
910 pub result_code: Option<EapolTxResult>,
912 pub dst_addr: Option<[u8; 6]>,
917 #[doc(hidden)]
918 pub __source_breaking: fidl::marker::SourceBreaking,
919}
920
921impl fidl::Persistable for WlanFullmacImplIfcEapolConfRequest {}
922
923#[derive(Clone, Debug, Default, PartialEq)]
924pub struct WlanFullmacImplIfcEapolIndRequest {
925 pub src_addr: Option<[u8; 6]>,
927 pub dst_addr: Option<[u8; 6]>,
929 pub data: Option<Vec<u8>>,
931 #[doc(hidden)]
932 pub __source_breaking: fidl::marker::SourceBreaking,
933}
934
935impl fidl::Persistable for WlanFullmacImplIfcEapolIndRequest {}
936
937#[derive(Clone, Debug, Default, PartialEq)]
938pub struct WlanFullmacImplIfcOnPmkAvailableRequest {
939 pub pmk: Option<Vec<u8>>,
941 pub pmkid: Option<Vec<u8>>,
943 #[doc(hidden)]
944 pub __source_breaking: fidl::marker::SourceBreaking,
945}
946
947impl fidl::Persistable for WlanFullmacImplIfcOnPmkAvailableRequest {}
948
949#[derive(Clone, Debug, Default, PartialEq)]
950pub struct WlanFullmacImplIfcOnScanEndRequest {
951 pub txn_id: Option<u64>,
952 pub code: Option<WlanScanResult>,
953 #[doc(hidden)]
954 pub __source_breaking: fidl::marker::SourceBreaking,
955}
956
957impl fidl::Persistable for WlanFullmacImplIfcOnScanEndRequest {}
958
959#[derive(Clone, Debug, Default, PartialEq)]
960pub struct WlanFullmacImplIfcOnScanResultRequest {
961 pub txn_id: Option<u64>,
962 pub timestamp_nanos: Option<i64>,
963 pub bss: Option<fidl_fuchsia_wlan_common__common::BssDescription>,
964 #[doc(hidden)]
965 pub __source_breaking: fidl::marker::SourceBreaking,
966}
967
968impl fidl::Persistable for WlanFullmacImplIfcOnScanResultRequest {}
969
970#[derive(Clone, Debug, Default, PartialEq)]
971pub struct WlanFullmacImplIfcRoamConfRequest {
972 pub selected_bssid: Option<[u8; 6]>,
974 pub status_code: Option<fidl_fuchsia_wlan_ieee80211__common::StatusCode>,
976 pub original_association_maintained: Option<bool>,
981 pub target_bss_authenticated: Option<bool>,
986 pub association_id: Option<u16>,
988 pub association_ies: Option<Vec<u8>>,
990 #[doc(hidden)]
991 pub __source_breaking: fidl::marker::SourceBreaking,
992}
993
994impl fidl::Persistable for WlanFullmacImplIfcRoamConfRequest {}
995
996#[derive(Clone, Debug, Default, PartialEq)]
997pub struct WlanFullmacImplIfcRoamResultIndRequest {
998 pub selected_bssid: Option<[u8; 6]>,
1000 pub status_code: Option<fidl_fuchsia_wlan_ieee80211__common::StatusCode>,
1002 pub original_association_maintained: Option<bool>,
1007 pub target_bss_authenticated: Option<bool>,
1012 pub association_id: Option<u16>,
1014 pub association_ies: Option<Vec<u8>>,
1016 #[doc(hidden)]
1017 pub __source_breaking: fidl::marker::SourceBreaking,
1018}
1019
1020impl fidl::Persistable for WlanFullmacImplIfcRoamResultIndRequest {}
1021
1022#[derive(Clone, Debug, Default, PartialEq)]
1023pub struct WlanFullmacImplIfcRoamStartIndRequest {
1024 pub selected_bssid: Option<[u8; 6]>,
1026 pub selected_bss: Option<fidl_fuchsia_wlan_common__common::BssDescription>,
1030 pub original_association_maintained: Option<bool>,
1038 #[doc(hidden)]
1039 pub __source_breaking: fidl::marker::SourceBreaking,
1040}
1041
1042impl fidl::Persistable for WlanFullmacImplIfcRoamStartIndRequest {}
1043
1044#[derive(Clone, Debug, Default, PartialEq)]
1045pub struct WlanFullmacImplIfcSaeHandshakeIndRequest {
1046 pub peer_sta_address: Option<[u8; 6]>,
1047 #[doc(hidden)]
1048 pub __source_breaking: fidl::marker::SourceBreaking,
1049}
1050
1051impl fidl::Persistable for WlanFullmacImplIfcSaeHandshakeIndRequest {}
1052
1053#[derive(Clone, Debug, Default, PartialEq)]
1054pub struct WlanFullmacImplIfcStartConfRequest {
1055 pub result_code: Option<StartResult>,
1057 #[doc(hidden)]
1058 pub __source_breaking: fidl::marker::SourceBreaking,
1059}
1060
1061impl fidl::Persistable for WlanFullmacImplIfcStartConfRequest {}
1062
1063#[derive(Clone, Debug, Default, PartialEq)]
1064pub struct WlanFullmacImplIfcStopConfRequest {
1065 pub result_code: Option<StopResult>,
1067 #[doc(hidden)]
1068 pub __source_breaking: fidl::marker::SourceBreaking,
1069}
1070
1071impl fidl::Persistable for WlanFullmacImplIfcStopConfRequest {}
1072
1073#[derive(Clone, Debug, Default, PartialEq)]
1074pub struct WlanFullmacImplInstallApfPacketFilterRequest {
1075 pub program: Option<Vec<u8>>,
1076 #[doc(hidden)]
1077 pub __source_breaking: fidl::marker::SourceBreaking,
1078}
1079
1080impl fidl::Persistable for WlanFullmacImplInstallApfPacketFilterRequest {}
1081
1082#[derive(Clone, Debug, Default, PartialEq)]
1083pub struct WlanFullmacImplOnLinkStateChangedRequest {
1084 pub online: Option<bool>,
1085 #[doc(hidden)]
1086 pub __source_breaking: fidl::marker::SourceBreaking,
1087}
1088
1089impl fidl::Persistable for WlanFullmacImplOnLinkStateChangedRequest {}
1090
1091#[derive(Clone, Debug, Default, PartialEq)]
1092pub struct WlanFullmacImplReconnectRequest {
1093 pub peer_sta_address: Option<[u8; 6]>,
1094 #[doc(hidden)]
1095 pub __source_breaking: fidl::marker::SourceBreaking,
1096}
1097
1098impl fidl::Persistable for WlanFullmacImplReconnectRequest {}
1099
1100#[derive(Clone, Debug, Default, PartialEq)]
1101pub struct WlanFullmacImplRoamRequest {
1102 pub selected_bss: Option<fidl_fuchsia_wlan_common__common::BssDescription>,
1106 #[doc(hidden)]
1107 pub __source_breaking: fidl::marker::SourceBreaking,
1108}
1109
1110impl fidl::Persistable for WlanFullmacImplRoamRequest {}
1111
1112#[derive(Clone, Debug, Default, PartialEq)]
1113pub struct WlanFullmacImplSaeHandshakeRespRequest {
1114 pub peer_sta_address: Option<[u8; 6]>,
1116 pub status_code: Option<fidl_fuchsia_wlan_ieee80211__common::StatusCode>,
1118 #[doc(hidden)]
1119 pub __source_breaking: fidl::marker::SourceBreaking,
1120}
1121
1122impl fidl::Persistable for WlanFullmacImplSaeHandshakeRespRequest {}
1123
1124#[derive(Clone, Debug, Default, PartialEq)]
1125pub struct WlanFullmacImplSetApfPacketFilterEnabledRequest {
1126 pub enabled: Option<bool>,
1127 #[doc(hidden)]
1128 pub __source_breaking: fidl::marker::SourceBreaking,
1129}
1130
1131impl fidl::Persistable for WlanFullmacImplSetApfPacketFilterEnabledRequest {}
1132
1133#[derive(Clone, Debug, Default, PartialEq)]
1134pub struct WlanFullmacImplSetKeysRequest {
1135 pub keylist: Option<Vec<fidl_fuchsia_wlan_common__common::WlanKeyConfig>>,
1136 pub key_descriptors: Option<Vec<fidl_fuchsia_wlan_ieee80211__common::SetKeyDescriptor>>,
1137 #[doc(hidden)]
1138 pub __source_breaking: fidl::marker::SourceBreaking,
1139}
1140
1141impl fidl::Persistable for WlanFullmacImplSetKeysRequest {}
1142
1143#[derive(Clone, Debug, Default, PartialEq)]
1144pub struct WlanFullmacImplStartBssRequest {
1145 pub ssid: Option<Vec<u8>>,
1146 pub bss_type: Option<fidl_fuchsia_wlan_common__common::BssType>,
1147 pub beacon_period: Option<u32>,
1148 pub dtim_period: Option<u32>,
1149 pub channel: Option<u8>,
1150 pub rsne: Option<Vec<u8>>,
1151 pub vendor_ie: Option<Vec<u8>>,
1152 #[doc(hidden)]
1153 pub __source_breaking: fidl::marker::SourceBreaking,
1154}
1155
1156impl fidl::Persistable for WlanFullmacImplStartBssRequest {}
1157
1158#[derive(Clone, Debug, Default, PartialEq)]
1159pub struct WlanFullmacImplStartScanRequest {
1160 pub txn_id: Option<u64>,
1162 pub scan_type: Option<WlanScanType>,
1163 pub channels: Option<Vec<u8>>,
1171 pub ssids: Option<Vec<Vec<u8>>>,
1180 pub min_channel_time: Option<u32>,
1182 pub max_channel_time: Option<u32>,
1184 #[doc(hidden)]
1185 pub __source_breaking: fidl::marker::SourceBreaking,
1186}
1187
1188impl fidl::Persistable for WlanFullmacImplStartScanRequest {}
1189
1190#[derive(Clone, Debug, Default, PartialEq)]
1191pub struct WlanFullmacImplStopBssRequest {
1192 pub ssid: Option<Vec<u8>>,
1193 #[doc(hidden)]
1194 pub __source_breaking: fidl::marker::SourceBreaking,
1195}
1196
1197impl fidl::Persistable for WlanFullmacImplStopBssRequest {}
1198
1199#[derive(Clone, Debug, Default, PartialEq)]
1200pub struct WlanFullmacImplGetApfPacketFilterEnabledResponse {
1201 pub enabled: Option<bool>,
1202 #[doc(hidden)]
1203 pub __source_breaking: fidl::marker::SourceBreaking,
1204}
1205
1206impl fidl::Persistable for WlanFullmacImplGetApfPacketFilterEnabledResponse {}
1207
1208#[derive(Clone, Debug, Default, PartialEq)]
1209pub struct WlanFullmacImplQueryApfPacketFilterSupportResponse {
1210 pub resp: Option<fidl_fuchsia_wlan_common__common::ApfPacketFilterSupport>,
1211 #[doc(hidden)]
1212 pub __source_breaking: fidl::marker::SourceBreaking,
1213}
1214
1215impl fidl::Persistable for WlanFullmacImplQueryApfPacketFilterSupportResponse {}
1216
1217#[derive(Clone, Debug, Default, PartialEq)]
1218pub struct WlanFullmacImplQuerySecuritySupportResponse {
1219 pub resp: Option<fidl_fuchsia_wlan_common__common::SecuritySupport>,
1220 #[doc(hidden)]
1221 pub __source_breaking: fidl::marker::SourceBreaking,
1222}
1223
1224impl fidl::Persistable for WlanFullmacImplQuerySecuritySupportResponse {}
1225
1226#[derive(Clone, Debug, Default, PartialEq)]
1227pub struct WlanFullmacImplQuerySpectrumManagementSupportResponse {
1228 pub resp: Option<fidl_fuchsia_wlan_common__common::SpectrumManagementSupport>,
1229 #[doc(hidden)]
1230 pub __source_breaking: fidl::marker::SourceBreaking,
1231}
1232
1233impl fidl::Persistable for WlanFullmacImplQuerySpectrumManagementSupportResponse {}
1234
1235#[derive(Clone, Debug, Default, PartialEq)]
1236pub struct WlanFullmacImplQueryTelemetrySupportResponse {
1237 pub resp: Option<fidl_fuchsia_wlan_stats__common::TelemetrySupport>,
1238 #[doc(hidden)]
1239 pub __source_breaking: fidl::marker::SourceBreaking,
1240}
1241
1242impl fidl::Persistable for WlanFullmacImplQueryTelemetrySupportResponse {}
1243
1244#[derive(Clone, Debug, Default, PartialEq)]
1245pub struct WlanFullmacImplQueryResponse {
1246 pub sta_addr: Option<[u8; 6]>,
1248 pub role: Option<fidl_fuchsia_wlan_common__common::WlanMacRole>,
1250 pub band_caps: Option<Vec<BandCapability>>,
1252 pub factory_addr: Option<[u8; 6]>,
1254 #[doc(hidden)]
1255 pub __source_breaking: fidl::marker::SourceBreaking,
1256}
1257
1258impl fidl::Persistable for WlanFullmacImplQueryResponse {}
1259
1260#[derive(Clone, Debug, Default, PartialEq)]
1261pub struct WlanFullmacImplReadApfPacketFilterDataResponse {
1262 pub memory: Option<Vec<u8>>,
1263 #[doc(hidden)]
1264 pub __source_breaking: fidl::marker::SourceBreaking,
1265}
1266
1267impl fidl::Persistable for WlanFullmacImplReadApfPacketFilterDataResponse {}
1268
1269#[derive(Clone, Debug, Default, PartialEq)]
1270pub struct WlanFullmacOwePublicKey {
1271 pub group: Option<u16>,
1272 pub key: Option<Vec<u8>>,
1273 #[doc(hidden)]
1274 pub __source_breaking: fidl::marker::SourceBreaking,
1275}
1276
1277impl fidl::Persistable for WlanFullmacOwePublicKey {}
1278
1279pub mod wlan_fullmac_impl__ordinals {
1280 pub const INIT: u64 = 0x593dfb6cb3f0f1aa;
1281 pub const QUERY: u64 = 0x28ac65f9da3941d4;
1282 pub const QUERY_SECURITY_SUPPORT: u64 = 0x11cf3fa6eeb93f84;
1283 pub const QUERY_SPECTRUM_MANAGEMENT_SUPPORT: u64 = 0x22ae7551d855b83a;
1284 pub const QUERY_TELEMETRY_SUPPORT: u64 = 0x4561479ca560827f;
1285 pub const QUERY_APF_PACKET_FILTER_SUPPORT: u64 = 0x6df8cdf0acd4dfad;
1286 pub const START_SCAN: u64 = 0x26c17bf595aa161c;
1287 pub const CONNECT: u64 = 0x19eb0322efb07a76;
1288 pub const RECONNECT: u64 = 0x474084c4ef19ee71;
1289 pub const ROAM: u64 = 0x1e35dcc98b124b64;
1290 pub const AUTH_RESP: u64 = 0x5f7ea24b44a4aaeb;
1291 pub const DEAUTH: u64 = 0x112786eccbf12f37;
1292 pub const ASSOC_RESP: u64 = 0x5022ce6b8eefec2f;
1293 pub const DISASSOC: u64 = 0x9c0fc4e8de53e01;
1294 pub const START_BSS: u64 = 0x6922644d6b1d341d;
1295 pub const STOP_BSS: u64 = 0x5aeb9b72e7575268;
1296 pub const SET_KEYS: u64 = 0x20f46b1e039f0985;
1297 pub const EAPOL_TX: u64 = 0x529a2d90fd4c8177;
1298 pub const GET_IFACE_STATS: u64 = 0x505563776ef0392f;
1299 pub const GET_IFACE_HISTOGRAM_STATS: u64 = 0x503d586f30ccf2cd;
1300 pub const GET_SIGNAL_REPORT: u64 = 0x5d93f056e4796bb3;
1301 pub const SAE_HANDSHAKE_RESP: u64 = 0x72cd3a31ae5a54f6;
1302 pub const SAE_FRAME_TX: u64 = 0x4715ad5dc5a6340f;
1303 pub const WMM_STATUS_REQ: u64 = 0x635ecef3beb7a059;
1304 pub const ON_LINK_STATE_CHANGED: u64 = 0x4d896e5b68e488d7;
1305 pub const SET_MAC_ADDRESS: u64 = 0x211a97f6f21ae5f0;
1306 pub const INSTALL_APF_PACKET_FILTER: u64 = 0x14597eda84122115;
1307 pub const READ_APF_PACKET_FILTER_DATA: u64 = 0x6ddcf8a179553a3c;
1308 pub const SET_APF_PACKET_FILTER_ENABLED: u64 = 0x808792cade97d59;
1309 pub const GET_APF_PACKET_FILTER_ENABLED: u64 = 0x284e1725471e3ae7;
1310}
1311
1312pub mod wlan_fullmac_impl_ifc_ordinals {
1313 pub const ON_SCAN_RESULT: u64 = 0x29aa81dc570f7a3e;
1314 pub const ON_SCAN_END: u64 = 0x7cd8aff80d27073c;
1315 pub const CONNECT_CONF: u64 = 0x3c22c6d80b2a2759;
1316 pub const ROAM_CONF: u64 = 0x368b2a5b903b3f7b;
1317 pub const ROAM_START_IND: u64 = 0x23e1d9368935e7e4;
1318 pub const ROAM_RESULT_IND: u64 = 0x7081c1b1ceea4914;
1319 pub const AUTH_IND: u64 = 0x270e1f8889650d0b;
1320 pub const DEAUTH_CONF: u64 = 0x2c94b0d7258111b7;
1321 pub const DEAUTH_IND: u64 = 0x26cd27cdadd8dbaf;
1322 pub const ASSOC_IND: u64 = 0x3e44529e3dc179ce;
1323 pub const DISASSOC_CONF: u64 = 0x7c713bcd58a76cb3;
1324 pub const DISASSOC_IND: u64 = 0x6667b381b7f3990f;
1325 pub const START_CONF: u64 = 0x3e9b9641f3ddc7fc;
1326 pub const STOP_CONF: u64 = 0x320a5ff227a4e9df;
1327 pub const EAPOL_CONF: u64 = 0x77364db9cc3970ec;
1328 pub const ON_CHANNEL_SWITCH: u64 = 0x21db0b8f71cae647;
1329 pub const SIGNAL_REPORT: u64 = 0x79679fa8789c3d9f;
1330 pub const EAPOL_IND: u64 = 0x3de8ec1eda10d1d0;
1331 pub const ON_PMK_AVAILABLE: u64 = 0x5cedd8d9be28a17e;
1332 pub const SAE_HANDSHAKE_IND: u64 = 0x4f3d53885503a1d8;
1333 pub const SAE_FRAME_RX: u64 = 0x51650906857ed4d4;
1334 pub const ON_WMM_STATUS_RESP: u64 = 0x6823a88bf3ba8b2a;
1335}
1336
1337mod internal {
1338 use super::*;
1339 unsafe impl fidl::encoding::TypeMarker for EapolTxResult {
1340 type Owned = Self;
1341
1342 #[inline(always)]
1343 fn inline_align(_context: fidl::encoding::Context) -> usize {
1344 std::mem::align_of::<u8>()
1345 }
1346
1347 #[inline(always)]
1348 fn inline_size(_context: fidl::encoding::Context) -> usize {
1349 std::mem::size_of::<u8>()
1350 }
1351
1352 #[inline(always)]
1353 fn encode_is_copy() -> bool {
1354 false
1355 }
1356
1357 #[inline(always)]
1358 fn decode_is_copy() -> bool {
1359 false
1360 }
1361 }
1362
1363 impl fidl::encoding::ValueTypeMarker for EapolTxResult {
1364 type Borrowed<'a> = Self;
1365 #[inline(always)]
1366 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1367 *value
1368 }
1369 }
1370
1371 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for EapolTxResult {
1372 #[inline]
1373 unsafe fn encode(
1374 self,
1375 encoder: &mut fidl::encoding::Encoder<'_, D>,
1376 offset: usize,
1377 _depth: fidl::encoding::Depth,
1378 ) -> fidl::Result<()> {
1379 encoder.debug_check_bounds::<Self>(offset);
1380 encoder.write_num(self.into_primitive(), offset);
1381 Ok(())
1382 }
1383 }
1384
1385 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for EapolTxResult {
1386 #[inline(always)]
1387 fn new_empty() -> Self {
1388 Self::unknown()
1389 }
1390
1391 #[inline]
1392 unsafe fn decode(
1393 &mut self,
1394 decoder: &mut fidl::encoding::Decoder<'_, D>,
1395 offset: usize,
1396 _depth: fidl::encoding::Depth,
1397 ) -> fidl::Result<()> {
1398 decoder.debug_check_bounds::<Self>(offset);
1399 let prim = decoder.read_num::<u8>(offset);
1400
1401 *self = Self::from_primitive_allow_unknown(prim);
1402 Ok(())
1403 }
1404 }
1405 unsafe impl fidl::encoding::TypeMarker for StartResult {
1406 type Owned = Self;
1407
1408 #[inline(always)]
1409 fn inline_align(_context: fidl::encoding::Context) -> usize {
1410 std::mem::align_of::<u8>()
1411 }
1412
1413 #[inline(always)]
1414 fn inline_size(_context: fidl::encoding::Context) -> usize {
1415 std::mem::size_of::<u8>()
1416 }
1417
1418 #[inline(always)]
1419 fn encode_is_copy() -> bool {
1420 false
1421 }
1422
1423 #[inline(always)]
1424 fn decode_is_copy() -> bool {
1425 false
1426 }
1427 }
1428
1429 impl fidl::encoding::ValueTypeMarker for StartResult {
1430 type Borrowed<'a> = Self;
1431 #[inline(always)]
1432 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1433 *value
1434 }
1435 }
1436
1437 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for StartResult {
1438 #[inline]
1439 unsafe fn encode(
1440 self,
1441 encoder: &mut fidl::encoding::Encoder<'_, D>,
1442 offset: usize,
1443 _depth: fidl::encoding::Depth,
1444 ) -> fidl::Result<()> {
1445 encoder.debug_check_bounds::<Self>(offset);
1446 encoder.write_num(self.into_primitive(), offset);
1447 Ok(())
1448 }
1449 }
1450
1451 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for StartResult {
1452 #[inline(always)]
1453 fn new_empty() -> Self {
1454 Self::unknown()
1455 }
1456
1457 #[inline]
1458 unsafe fn decode(
1459 &mut self,
1460 decoder: &mut fidl::encoding::Decoder<'_, D>,
1461 offset: usize,
1462 _depth: fidl::encoding::Depth,
1463 ) -> fidl::Result<()> {
1464 decoder.debug_check_bounds::<Self>(offset);
1465 let prim = decoder.read_num::<u8>(offset);
1466
1467 *self = Self::from_primitive_allow_unknown(prim);
1468 Ok(())
1469 }
1470 }
1471 unsafe impl fidl::encoding::TypeMarker for StopResult {
1472 type Owned = Self;
1473
1474 #[inline(always)]
1475 fn inline_align(_context: fidl::encoding::Context) -> usize {
1476 std::mem::align_of::<u8>()
1477 }
1478
1479 #[inline(always)]
1480 fn inline_size(_context: fidl::encoding::Context) -> usize {
1481 std::mem::size_of::<u8>()
1482 }
1483
1484 #[inline(always)]
1485 fn encode_is_copy() -> bool {
1486 false
1487 }
1488
1489 #[inline(always)]
1490 fn decode_is_copy() -> bool {
1491 false
1492 }
1493 }
1494
1495 impl fidl::encoding::ValueTypeMarker for StopResult {
1496 type Borrowed<'a> = Self;
1497 #[inline(always)]
1498 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1499 *value
1500 }
1501 }
1502
1503 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for StopResult {
1504 #[inline]
1505 unsafe fn encode(
1506 self,
1507 encoder: &mut fidl::encoding::Encoder<'_, D>,
1508 offset: usize,
1509 _depth: fidl::encoding::Depth,
1510 ) -> fidl::Result<()> {
1511 encoder.debug_check_bounds::<Self>(offset);
1512 encoder.write_num(self.into_primitive(), offset);
1513 Ok(())
1514 }
1515 }
1516
1517 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for StopResult {
1518 #[inline(always)]
1519 fn new_empty() -> Self {
1520 Self::unknown()
1521 }
1522
1523 #[inline]
1524 unsafe fn decode(
1525 &mut self,
1526 decoder: &mut fidl::encoding::Decoder<'_, D>,
1527 offset: usize,
1528 _depth: fidl::encoding::Depth,
1529 ) -> fidl::Result<()> {
1530 decoder.debug_check_bounds::<Self>(offset);
1531 let prim = decoder.read_num::<u8>(offset);
1532
1533 *self = Self::from_primitive_allow_unknown(prim);
1534 Ok(())
1535 }
1536 }
1537 unsafe impl fidl::encoding::TypeMarker for WlanAssocResult {
1538 type Owned = Self;
1539
1540 #[inline(always)]
1541 fn inline_align(_context: fidl::encoding::Context) -> usize {
1542 std::mem::align_of::<u8>()
1543 }
1544
1545 #[inline(always)]
1546 fn inline_size(_context: fidl::encoding::Context) -> usize {
1547 std::mem::size_of::<u8>()
1548 }
1549
1550 #[inline(always)]
1551 fn encode_is_copy() -> bool {
1552 false
1553 }
1554
1555 #[inline(always)]
1556 fn decode_is_copy() -> bool {
1557 false
1558 }
1559 }
1560
1561 impl fidl::encoding::ValueTypeMarker for WlanAssocResult {
1562 type Borrowed<'a> = Self;
1563 #[inline(always)]
1564 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1565 *value
1566 }
1567 }
1568
1569 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
1570 for WlanAssocResult
1571 {
1572 #[inline]
1573 unsafe fn encode(
1574 self,
1575 encoder: &mut fidl::encoding::Encoder<'_, D>,
1576 offset: usize,
1577 _depth: fidl::encoding::Depth,
1578 ) -> fidl::Result<()> {
1579 encoder.debug_check_bounds::<Self>(offset);
1580 encoder.write_num(self.into_primitive(), offset);
1581 Ok(())
1582 }
1583 }
1584
1585 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for WlanAssocResult {
1586 #[inline(always)]
1587 fn new_empty() -> Self {
1588 Self::unknown()
1589 }
1590
1591 #[inline]
1592 unsafe fn decode(
1593 &mut self,
1594 decoder: &mut fidl::encoding::Decoder<'_, D>,
1595 offset: usize,
1596 _depth: fidl::encoding::Depth,
1597 ) -> fidl::Result<()> {
1598 decoder.debug_check_bounds::<Self>(offset);
1599 let prim = decoder.read_num::<u8>(offset);
1600
1601 *self = Self::from_primitive_allow_unknown(prim);
1602 Ok(())
1603 }
1604 }
1605 unsafe impl fidl::encoding::TypeMarker for WlanAuthResult {
1606 type Owned = Self;
1607
1608 #[inline(always)]
1609 fn inline_align(_context: fidl::encoding::Context) -> usize {
1610 std::mem::align_of::<u8>()
1611 }
1612
1613 #[inline(always)]
1614 fn inline_size(_context: fidl::encoding::Context) -> usize {
1615 std::mem::size_of::<u8>()
1616 }
1617
1618 #[inline(always)]
1619 fn encode_is_copy() -> bool {
1620 false
1621 }
1622
1623 #[inline(always)]
1624 fn decode_is_copy() -> bool {
1625 false
1626 }
1627 }
1628
1629 impl fidl::encoding::ValueTypeMarker for WlanAuthResult {
1630 type Borrowed<'a> = Self;
1631 #[inline(always)]
1632 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1633 *value
1634 }
1635 }
1636
1637 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for WlanAuthResult {
1638 #[inline]
1639 unsafe fn encode(
1640 self,
1641 encoder: &mut fidl::encoding::Encoder<'_, D>,
1642 offset: usize,
1643 _depth: fidl::encoding::Depth,
1644 ) -> fidl::Result<()> {
1645 encoder.debug_check_bounds::<Self>(offset);
1646 encoder.write_num(self.into_primitive(), offset);
1647 Ok(())
1648 }
1649 }
1650
1651 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for WlanAuthResult {
1652 #[inline(always)]
1653 fn new_empty() -> Self {
1654 Self::unknown()
1655 }
1656
1657 #[inline]
1658 unsafe fn decode(
1659 &mut self,
1660 decoder: &mut fidl::encoding::Decoder<'_, D>,
1661 offset: usize,
1662 _depth: fidl::encoding::Depth,
1663 ) -> fidl::Result<()> {
1664 decoder.debug_check_bounds::<Self>(offset);
1665 let prim = decoder.read_num::<u8>(offset);
1666
1667 *self = Self::from_primitive_allow_unknown(prim);
1668 Ok(())
1669 }
1670 }
1671 unsafe impl fidl::encoding::TypeMarker for WlanAuthType {
1672 type Owned = Self;
1673
1674 #[inline(always)]
1675 fn inline_align(_context: fidl::encoding::Context) -> usize {
1676 std::mem::align_of::<u8>()
1677 }
1678
1679 #[inline(always)]
1680 fn inline_size(_context: fidl::encoding::Context) -> usize {
1681 std::mem::size_of::<u8>()
1682 }
1683
1684 #[inline(always)]
1685 fn encode_is_copy() -> bool {
1686 false
1687 }
1688
1689 #[inline(always)]
1690 fn decode_is_copy() -> bool {
1691 false
1692 }
1693 }
1694
1695 impl fidl::encoding::ValueTypeMarker for WlanAuthType {
1696 type Borrowed<'a> = Self;
1697 #[inline(always)]
1698 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1699 *value
1700 }
1701 }
1702
1703 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for WlanAuthType {
1704 #[inline]
1705 unsafe fn encode(
1706 self,
1707 encoder: &mut fidl::encoding::Encoder<'_, D>,
1708 offset: usize,
1709 _depth: fidl::encoding::Depth,
1710 ) -> fidl::Result<()> {
1711 encoder.debug_check_bounds::<Self>(offset);
1712 encoder.write_num(self.into_primitive(), offset);
1713 Ok(())
1714 }
1715 }
1716
1717 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for WlanAuthType {
1718 #[inline(always)]
1719 fn new_empty() -> Self {
1720 Self::unknown()
1721 }
1722
1723 #[inline]
1724 unsafe fn decode(
1725 &mut self,
1726 decoder: &mut fidl::encoding::Decoder<'_, D>,
1727 offset: usize,
1728 _depth: fidl::encoding::Depth,
1729 ) -> fidl::Result<()> {
1730 decoder.debug_check_bounds::<Self>(offset);
1731 let prim = decoder.read_num::<u8>(offset);
1732
1733 *self = Self::from_primitive_allow_unknown(prim);
1734 Ok(())
1735 }
1736 }
1737 unsafe impl fidl::encoding::TypeMarker for WlanScanResult {
1738 type Owned = Self;
1739
1740 #[inline(always)]
1741 fn inline_align(_context: fidl::encoding::Context) -> usize {
1742 std::mem::align_of::<u8>()
1743 }
1744
1745 #[inline(always)]
1746 fn inline_size(_context: fidl::encoding::Context) -> usize {
1747 std::mem::size_of::<u8>()
1748 }
1749
1750 #[inline(always)]
1751 fn encode_is_copy() -> bool {
1752 false
1753 }
1754
1755 #[inline(always)]
1756 fn decode_is_copy() -> bool {
1757 false
1758 }
1759 }
1760
1761 impl fidl::encoding::ValueTypeMarker for WlanScanResult {
1762 type Borrowed<'a> = Self;
1763 #[inline(always)]
1764 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1765 *value
1766 }
1767 }
1768
1769 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for WlanScanResult {
1770 #[inline]
1771 unsafe fn encode(
1772 self,
1773 encoder: &mut fidl::encoding::Encoder<'_, D>,
1774 offset: usize,
1775 _depth: fidl::encoding::Depth,
1776 ) -> fidl::Result<()> {
1777 encoder.debug_check_bounds::<Self>(offset);
1778 encoder.write_num(self.into_primitive(), offset);
1779 Ok(())
1780 }
1781 }
1782
1783 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for WlanScanResult {
1784 #[inline(always)]
1785 fn new_empty() -> Self {
1786 Self::unknown()
1787 }
1788
1789 #[inline]
1790 unsafe fn decode(
1791 &mut self,
1792 decoder: &mut fidl::encoding::Decoder<'_, D>,
1793 offset: usize,
1794 _depth: fidl::encoding::Depth,
1795 ) -> fidl::Result<()> {
1796 decoder.debug_check_bounds::<Self>(offset);
1797 let prim = decoder.read_num::<u8>(offset);
1798
1799 *self = Self::from_primitive_allow_unknown(prim);
1800 Ok(())
1801 }
1802 }
1803 unsafe impl fidl::encoding::TypeMarker for WlanScanType {
1804 type Owned = Self;
1805
1806 #[inline(always)]
1807 fn inline_align(_context: fidl::encoding::Context) -> usize {
1808 std::mem::align_of::<u8>()
1809 }
1810
1811 #[inline(always)]
1812 fn inline_size(_context: fidl::encoding::Context) -> usize {
1813 std::mem::size_of::<u8>()
1814 }
1815
1816 #[inline(always)]
1817 fn encode_is_copy() -> bool {
1818 false
1819 }
1820
1821 #[inline(always)]
1822 fn decode_is_copy() -> bool {
1823 false
1824 }
1825 }
1826
1827 impl fidl::encoding::ValueTypeMarker for WlanScanType {
1828 type Borrowed<'a> = Self;
1829 #[inline(always)]
1830 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1831 *value
1832 }
1833 }
1834
1835 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for WlanScanType {
1836 #[inline]
1837 unsafe fn encode(
1838 self,
1839 encoder: &mut fidl::encoding::Encoder<'_, D>,
1840 offset: usize,
1841 _depth: fidl::encoding::Depth,
1842 ) -> fidl::Result<()> {
1843 encoder.debug_check_bounds::<Self>(offset);
1844 encoder.write_num(self.into_primitive(), offset);
1845 Ok(())
1846 }
1847 }
1848
1849 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for WlanScanType {
1850 #[inline(always)]
1851 fn new_empty() -> Self {
1852 Self::unknown()
1853 }
1854
1855 #[inline]
1856 unsafe fn decode(
1857 &mut self,
1858 decoder: &mut fidl::encoding::Decoder<'_, D>,
1859 offset: usize,
1860 _depth: fidl::encoding::Depth,
1861 ) -> fidl::Result<()> {
1862 decoder.debug_check_bounds::<Self>(offset);
1863 let prim = decoder.read_num::<u8>(offset);
1864
1865 *self = Self::from_primitive_allow_unknown(prim);
1866 Ok(())
1867 }
1868 }
1869
1870 impl fidl::encoding::ValueTypeMarker for WlanFullmacChannelSwitchInfo {
1871 type Borrowed<'a> = &'a Self;
1872 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1873 value
1874 }
1875 }
1876
1877 unsafe impl fidl::encoding::TypeMarker for WlanFullmacChannelSwitchInfo {
1878 type Owned = Self;
1879
1880 #[inline(always)]
1881 fn inline_align(_context: fidl::encoding::Context) -> usize {
1882 1
1883 }
1884
1885 #[inline(always)]
1886 fn inline_size(_context: fidl::encoding::Context) -> usize {
1887 1
1888 }
1889 #[inline(always)]
1890 fn encode_is_copy() -> bool {
1891 true
1892 }
1893
1894 #[inline(always)]
1895 fn decode_is_copy() -> bool {
1896 true
1897 }
1898 }
1899
1900 unsafe impl<D: fidl::encoding::ResourceDialect>
1901 fidl::encoding::Encode<WlanFullmacChannelSwitchInfo, D> for &WlanFullmacChannelSwitchInfo
1902 {
1903 #[inline]
1904 unsafe fn encode(
1905 self,
1906 encoder: &mut fidl::encoding::Encoder<'_, D>,
1907 offset: usize,
1908 _depth: fidl::encoding::Depth,
1909 ) -> fidl::Result<()> {
1910 encoder.debug_check_bounds::<WlanFullmacChannelSwitchInfo>(offset);
1911 unsafe {
1912 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
1914 (buf_ptr as *mut WlanFullmacChannelSwitchInfo)
1915 .write_unaligned((self as *const WlanFullmacChannelSwitchInfo).read());
1916 }
1919 Ok(())
1920 }
1921 }
1922 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<u8, D>>
1923 fidl::encoding::Encode<WlanFullmacChannelSwitchInfo, D> for (T0,)
1924 {
1925 #[inline]
1926 unsafe fn encode(
1927 self,
1928 encoder: &mut fidl::encoding::Encoder<'_, D>,
1929 offset: usize,
1930 depth: fidl::encoding::Depth,
1931 ) -> fidl::Result<()> {
1932 encoder.debug_check_bounds::<WlanFullmacChannelSwitchInfo>(offset);
1933 self.0.encode(encoder, offset + 0, depth)?;
1937 Ok(())
1938 }
1939 }
1940
1941 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1942 for WlanFullmacChannelSwitchInfo
1943 {
1944 #[inline(always)]
1945 fn new_empty() -> Self {
1946 Self { new_channel: fidl::new_empty!(u8, D) }
1947 }
1948
1949 #[inline]
1950 unsafe fn decode(
1951 &mut self,
1952 decoder: &mut fidl::encoding::Decoder<'_, D>,
1953 offset: usize,
1954 _depth: fidl::encoding::Depth,
1955 ) -> fidl::Result<()> {
1956 decoder.debug_check_bounds::<Self>(offset);
1957 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
1958 unsafe {
1961 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 1);
1962 }
1963 Ok(())
1964 }
1965 }
1966
1967 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcOnChannelSwitchRequest {
1968 type Borrowed<'a> = &'a Self;
1969 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1970 value
1971 }
1972 }
1973
1974 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcOnChannelSwitchRequest {
1975 type Owned = Self;
1976
1977 #[inline(always)]
1978 fn inline_align(_context: fidl::encoding::Context) -> usize {
1979 1
1980 }
1981
1982 #[inline(always)]
1983 fn inline_size(_context: fidl::encoding::Context) -> usize {
1984 1
1985 }
1986 #[inline(always)]
1987 fn encode_is_copy() -> bool {
1988 true
1989 }
1990
1991 #[inline(always)]
1992 fn decode_is_copy() -> bool {
1993 true
1994 }
1995 }
1996
1997 unsafe impl<D: fidl::encoding::ResourceDialect>
1998 fidl::encoding::Encode<WlanFullmacImplIfcOnChannelSwitchRequest, D>
1999 for &WlanFullmacImplIfcOnChannelSwitchRequest
2000 {
2001 #[inline]
2002 unsafe fn encode(
2003 self,
2004 encoder: &mut fidl::encoding::Encoder<'_, D>,
2005 offset: usize,
2006 _depth: fidl::encoding::Depth,
2007 ) -> fidl::Result<()> {
2008 encoder.debug_check_bounds::<WlanFullmacImplIfcOnChannelSwitchRequest>(offset);
2009 unsafe {
2010 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
2012 (buf_ptr as *mut WlanFullmacImplIfcOnChannelSwitchRequest).write_unaligned(
2013 (self as *const WlanFullmacImplIfcOnChannelSwitchRequest).read(),
2014 );
2015 }
2018 Ok(())
2019 }
2020 }
2021 unsafe impl<
2022 D: fidl::encoding::ResourceDialect,
2023 T0: fidl::encoding::Encode<WlanFullmacChannelSwitchInfo, D>,
2024 > fidl::encoding::Encode<WlanFullmacImplIfcOnChannelSwitchRequest, D> for (T0,)
2025 {
2026 #[inline]
2027 unsafe fn encode(
2028 self,
2029 encoder: &mut fidl::encoding::Encoder<'_, D>,
2030 offset: usize,
2031 depth: fidl::encoding::Depth,
2032 ) -> fidl::Result<()> {
2033 encoder.debug_check_bounds::<WlanFullmacImplIfcOnChannelSwitchRequest>(offset);
2034 self.0.encode(encoder, offset + 0, depth)?;
2038 Ok(())
2039 }
2040 }
2041
2042 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2043 for WlanFullmacImplIfcOnChannelSwitchRequest
2044 {
2045 #[inline(always)]
2046 fn new_empty() -> Self {
2047 Self { ind: fidl::new_empty!(WlanFullmacChannelSwitchInfo, D) }
2048 }
2049
2050 #[inline]
2051 unsafe fn decode(
2052 &mut self,
2053 decoder: &mut fidl::encoding::Decoder<'_, D>,
2054 offset: usize,
2055 _depth: fidl::encoding::Depth,
2056 ) -> fidl::Result<()> {
2057 decoder.debug_check_bounds::<Self>(offset);
2058 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
2059 unsafe {
2062 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 1);
2063 }
2064 Ok(())
2065 }
2066 }
2067
2068 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcOnWmmStatusRespRequest {
2069 type Borrowed<'a> = &'a Self;
2070 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2071 value
2072 }
2073 }
2074
2075 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcOnWmmStatusRespRequest {
2076 type Owned = Self;
2077
2078 #[inline(always)]
2079 fn inline_align(_context: fidl::encoding::Context) -> usize {
2080 4
2081 }
2082
2083 #[inline(always)]
2084 fn inline_size(_context: fidl::encoding::Context) -> usize {
2085 40
2086 }
2087 }
2088
2089 unsafe impl<D: fidl::encoding::ResourceDialect>
2090 fidl::encoding::Encode<WlanFullmacImplIfcOnWmmStatusRespRequest, D>
2091 for &WlanFullmacImplIfcOnWmmStatusRespRequest
2092 {
2093 #[inline]
2094 unsafe fn encode(
2095 self,
2096 encoder: &mut fidl::encoding::Encoder<'_, D>,
2097 offset: usize,
2098 _depth: fidl::encoding::Depth,
2099 ) -> fidl::Result<()> {
2100 encoder.debug_check_bounds::<WlanFullmacImplIfcOnWmmStatusRespRequest>(offset);
2101 fidl::encoding::Encode::<WlanFullmacImplIfcOnWmmStatusRespRequest, D>::encode(
2103 (
2104 <i32 as fidl::encoding::ValueTypeMarker>::borrow(&self.status),
2105 <fidl_fuchsia_wlan_common__common::WlanWmmParameters as fidl::encoding::ValueTypeMarker>::borrow(&self.wmm_params),
2106 ),
2107 encoder, offset, _depth
2108 )
2109 }
2110 }
2111 unsafe impl<
2112 D: fidl::encoding::ResourceDialect,
2113 T0: fidl::encoding::Encode<i32, D>,
2114 T1: fidl::encoding::Encode<fidl_fuchsia_wlan_common__common::WlanWmmParameters, D>,
2115 > fidl::encoding::Encode<WlanFullmacImplIfcOnWmmStatusRespRequest, D> for (T0, T1)
2116 {
2117 #[inline]
2118 unsafe fn encode(
2119 self,
2120 encoder: &mut fidl::encoding::Encoder<'_, D>,
2121 offset: usize,
2122 depth: fidl::encoding::Depth,
2123 ) -> fidl::Result<()> {
2124 encoder.debug_check_bounds::<WlanFullmacImplIfcOnWmmStatusRespRequest>(offset);
2125 unsafe {
2128 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(36);
2129 (ptr as *mut u32).write_unaligned(0);
2130 }
2131 self.0.encode(encoder, offset + 0, depth)?;
2133 self.1.encode(encoder, offset + 4, depth)?;
2134 Ok(())
2135 }
2136 }
2137
2138 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2139 for WlanFullmacImplIfcOnWmmStatusRespRequest
2140 {
2141 #[inline(always)]
2142 fn new_empty() -> Self {
2143 Self {
2144 status: fidl::new_empty!(i32, D),
2145 wmm_params: fidl::new_empty!(
2146 fidl_fuchsia_wlan_common__common::WlanWmmParameters,
2147 D
2148 ),
2149 }
2150 }
2151
2152 #[inline]
2153 unsafe fn decode(
2154 &mut self,
2155 decoder: &mut fidl::encoding::Decoder<'_, D>,
2156 offset: usize,
2157 _depth: fidl::encoding::Depth,
2158 ) -> fidl::Result<()> {
2159 decoder.debug_check_bounds::<Self>(offset);
2160 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(36) };
2162 let padval = unsafe { (ptr as *const u32).read_unaligned() };
2163 let mask = 0xffff0000u32;
2164 let maskedval = padval & mask;
2165 if maskedval != 0 {
2166 return Err(fidl::Error::NonZeroPadding {
2167 padding_start: offset + 36 + ((mask as u64).trailing_zeros() / 8) as usize,
2168 });
2169 }
2170 fidl::decode!(i32, D, &mut self.status, decoder, offset + 0, _depth)?;
2171 fidl::decode!(
2172 fidl_fuchsia_wlan_common__common::WlanWmmParameters,
2173 D,
2174 &mut self.wmm_params,
2175 decoder,
2176 offset + 4,
2177 _depth
2178 )?;
2179 Ok(())
2180 }
2181 }
2182
2183 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcSaeFrameRxRequest {
2184 type Borrowed<'a> = &'a Self;
2185 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2186 value
2187 }
2188 }
2189
2190 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcSaeFrameRxRequest {
2191 type Owned = Self;
2192
2193 #[inline(always)]
2194 fn inline_align(_context: fidl::encoding::Context) -> usize {
2195 8
2196 }
2197
2198 #[inline(always)]
2199 fn inline_size(_context: fidl::encoding::Context) -> usize {
2200 16
2201 }
2202 }
2203
2204 unsafe impl<D: fidl::encoding::ResourceDialect>
2205 fidl::encoding::Encode<WlanFullmacImplIfcSaeFrameRxRequest, D>
2206 for &WlanFullmacImplIfcSaeFrameRxRequest
2207 {
2208 #[inline]
2209 unsafe fn encode(
2210 self,
2211 encoder: &mut fidl::encoding::Encoder<'_, D>,
2212 offset: usize,
2213 _depth: fidl::encoding::Depth,
2214 ) -> fidl::Result<()> {
2215 encoder.debug_check_bounds::<WlanFullmacImplIfcSaeFrameRxRequest>(offset);
2216 fidl::encoding::Encode::<WlanFullmacImplIfcSaeFrameRxRequest, D>::encode(
2218 (<SaeFrame as fidl::encoding::ValueTypeMarker>::borrow(&self.frame),),
2219 encoder,
2220 offset,
2221 _depth,
2222 )
2223 }
2224 }
2225 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<SaeFrame, D>>
2226 fidl::encoding::Encode<WlanFullmacImplIfcSaeFrameRxRequest, D> for (T0,)
2227 {
2228 #[inline]
2229 unsafe fn encode(
2230 self,
2231 encoder: &mut fidl::encoding::Encoder<'_, D>,
2232 offset: usize,
2233 depth: fidl::encoding::Depth,
2234 ) -> fidl::Result<()> {
2235 encoder.debug_check_bounds::<WlanFullmacImplIfcSaeFrameRxRequest>(offset);
2236 self.0.encode(encoder, offset + 0, depth)?;
2240 Ok(())
2241 }
2242 }
2243
2244 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2245 for WlanFullmacImplIfcSaeFrameRxRequest
2246 {
2247 #[inline(always)]
2248 fn new_empty() -> Self {
2249 Self { frame: fidl::new_empty!(SaeFrame, D) }
2250 }
2251
2252 #[inline]
2253 unsafe fn decode(
2254 &mut self,
2255 decoder: &mut fidl::encoding::Decoder<'_, D>,
2256 offset: usize,
2257 _depth: fidl::encoding::Depth,
2258 ) -> fidl::Result<()> {
2259 decoder.debug_check_bounds::<Self>(offset);
2260 fidl::decode!(SaeFrame, D, &mut self.frame, decoder, offset + 0, _depth)?;
2262 Ok(())
2263 }
2264 }
2265
2266 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcSignalReportRequest {
2267 type Borrowed<'a> = &'a Self;
2268 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2269 value
2270 }
2271 }
2272
2273 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcSignalReportRequest {
2274 type Owned = Self;
2275
2276 #[inline(always)]
2277 fn inline_align(_context: fidl::encoding::Context) -> usize {
2278 1
2279 }
2280
2281 #[inline(always)]
2282 fn inline_size(_context: fidl::encoding::Context) -> usize {
2283 2
2284 }
2285 #[inline(always)]
2286 fn encode_is_copy() -> bool {
2287 true
2288 }
2289
2290 #[inline(always)]
2291 fn decode_is_copy() -> bool {
2292 true
2293 }
2294 }
2295
2296 unsafe impl<D: fidl::encoding::ResourceDialect>
2297 fidl::encoding::Encode<WlanFullmacImplIfcSignalReportRequest, D>
2298 for &WlanFullmacImplIfcSignalReportRequest
2299 {
2300 #[inline]
2301 unsafe fn encode(
2302 self,
2303 encoder: &mut fidl::encoding::Encoder<'_, D>,
2304 offset: usize,
2305 _depth: fidl::encoding::Depth,
2306 ) -> fidl::Result<()> {
2307 encoder.debug_check_bounds::<WlanFullmacImplIfcSignalReportRequest>(offset);
2308 unsafe {
2309 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
2311 (buf_ptr as *mut WlanFullmacImplIfcSignalReportRequest)
2312 .write_unaligned((self as *const WlanFullmacImplIfcSignalReportRequest).read());
2313 }
2316 Ok(())
2317 }
2318 }
2319 unsafe impl<
2320 D: fidl::encoding::ResourceDialect,
2321 T0: fidl::encoding::Encode<WlanFullmacSignalReportIndication, D>,
2322 > fidl::encoding::Encode<WlanFullmacImplIfcSignalReportRequest, D> for (T0,)
2323 {
2324 #[inline]
2325 unsafe fn encode(
2326 self,
2327 encoder: &mut fidl::encoding::Encoder<'_, D>,
2328 offset: usize,
2329 depth: fidl::encoding::Depth,
2330 ) -> fidl::Result<()> {
2331 encoder.debug_check_bounds::<WlanFullmacImplIfcSignalReportRequest>(offset);
2332 self.0.encode(encoder, offset + 0, depth)?;
2336 Ok(())
2337 }
2338 }
2339
2340 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2341 for WlanFullmacImplIfcSignalReportRequest
2342 {
2343 #[inline(always)]
2344 fn new_empty() -> Self {
2345 Self { ind: fidl::new_empty!(WlanFullmacSignalReportIndication, D) }
2346 }
2347
2348 #[inline]
2349 unsafe fn decode(
2350 &mut self,
2351 decoder: &mut fidl::encoding::Decoder<'_, D>,
2352 offset: usize,
2353 _depth: fidl::encoding::Depth,
2354 ) -> fidl::Result<()> {
2355 decoder.debug_check_bounds::<Self>(offset);
2356 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
2357 unsafe {
2360 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 2);
2361 }
2362 Ok(())
2363 }
2364 }
2365
2366 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplSaeFrameTxRequest {
2367 type Borrowed<'a> = &'a Self;
2368 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2369 value
2370 }
2371 }
2372
2373 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplSaeFrameTxRequest {
2374 type Owned = Self;
2375
2376 #[inline(always)]
2377 fn inline_align(_context: fidl::encoding::Context) -> usize {
2378 8
2379 }
2380
2381 #[inline(always)]
2382 fn inline_size(_context: fidl::encoding::Context) -> usize {
2383 16
2384 }
2385 }
2386
2387 unsafe impl<D: fidl::encoding::ResourceDialect>
2388 fidl::encoding::Encode<WlanFullmacImplSaeFrameTxRequest, D>
2389 for &WlanFullmacImplSaeFrameTxRequest
2390 {
2391 #[inline]
2392 unsafe fn encode(
2393 self,
2394 encoder: &mut fidl::encoding::Encoder<'_, D>,
2395 offset: usize,
2396 _depth: fidl::encoding::Depth,
2397 ) -> fidl::Result<()> {
2398 encoder.debug_check_bounds::<WlanFullmacImplSaeFrameTxRequest>(offset);
2399 fidl::encoding::Encode::<WlanFullmacImplSaeFrameTxRequest, D>::encode(
2401 (<SaeFrame as fidl::encoding::ValueTypeMarker>::borrow(&self.frame),),
2402 encoder,
2403 offset,
2404 _depth,
2405 )
2406 }
2407 }
2408 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<SaeFrame, D>>
2409 fidl::encoding::Encode<WlanFullmacImplSaeFrameTxRequest, D> for (T0,)
2410 {
2411 #[inline]
2412 unsafe fn encode(
2413 self,
2414 encoder: &mut fidl::encoding::Encoder<'_, D>,
2415 offset: usize,
2416 depth: fidl::encoding::Depth,
2417 ) -> fidl::Result<()> {
2418 encoder.debug_check_bounds::<WlanFullmacImplSaeFrameTxRequest>(offset);
2419 self.0.encode(encoder, offset + 0, depth)?;
2423 Ok(())
2424 }
2425 }
2426
2427 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2428 for WlanFullmacImplSaeFrameTxRequest
2429 {
2430 #[inline(always)]
2431 fn new_empty() -> Self {
2432 Self { frame: fidl::new_empty!(SaeFrame, D) }
2433 }
2434
2435 #[inline]
2436 unsafe fn decode(
2437 &mut self,
2438 decoder: &mut fidl::encoding::Decoder<'_, D>,
2439 offset: usize,
2440 _depth: fidl::encoding::Depth,
2441 ) -> fidl::Result<()> {
2442 decoder.debug_check_bounds::<Self>(offset);
2443 fidl::decode!(SaeFrame, D, &mut self.frame, decoder, offset + 0, _depth)?;
2445 Ok(())
2446 }
2447 }
2448
2449 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplSetKeysResponse {
2450 type Borrowed<'a> = &'a Self;
2451 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2452 value
2453 }
2454 }
2455
2456 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplSetKeysResponse {
2457 type Owned = Self;
2458
2459 #[inline(always)]
2460 fn inline_align(_context: fidl::encoding::Context) -> usize {
2461 8
2462 }
2463
2464 #[inline(always)]
2465 fn inline_size(_context: fidl::encoding::Context) -> usize {
2466 16
2467 }
2468 }
2469
2470 unsafe impl<D: fidl::encoding::ResourceDialect>
2471 fidl::encoding::Encode<WlanFullmacImplSetKeysResponse, D>
2472 for &WlanFullmacImplSetKeysResponse
2473 {
2474 #[inline]
2475 unsafe fn encode(
2476 self,
2477 encoder: &mut fidl::encoding::Encoder<'_, D>,
2478 offset: usize,
2479 _depth: fidl::encoding::Depth,
2480 ) -> fidl::Result<()> {
2481 encoder.debug_check_bounds::<WlanFullmacImplSetKeysResponse>(offset);
2482 fidl::encoding::Encode::<WlanFullmacImplSetKeysResponse, D>::encode(
2484 (<WlanFullmacSetKeysResp as fidl::encoding::ValueTypeMarker>::borrow(&self.resp),),
2485 encoder,
2486 offset,
2487 _depth,
2488 )
2489 }
2490 }
2491 unsafe impl<
2492 D: fidl::encoding::ResourceDialect,
2493 T0: fidl::encoding::Encode<WlanFullmacSetKeysResp, D>,
2494 > fidl::encoding::Encode<WlanFullmacImplSetKeysResponse, D> for (T0,)
2495 {
2496 #[inline]
2497 unsafe fn encode(
2498 self,
2499 encoder: &mut fidl::encoding::Encoder<'_, D>,
2500 offset: usize,
2501 depth: fidl::encoding::Depth,
2502 ) -> fidl::Result<()> {
2503 encoder.debug_check_bounds::<WlanFullmacImplSetKeysResponse>(offset);
2504 self.0.encode(encoder, offset + 0, depth)?;
2508 Ok(())
2509 }
2510 }
2511
2512 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2513 for WlanFullmacImplSetKeysResponse
2514 {
2515 #[inline(always)]
2516 fn new_empty() -> Self {
2517 Self { resp: fidl::new_empty!(WlanFullmacSetKeysResp, D) }
2518 }
2519
2520 #[inline]
2521 unsafe fn decode(
2522 &mut self,
2523 decoder: &mut fidl::encoding::Decoder<'_, D>,
2524 offset: usize,
2525 _depth: fidl::encoding::Depth,
2526 ) -> fidl::Result<()> {
2527 decoder.debug_check_bounds::<Self>(offset);
2528 fidl::decode!(WlanFullmacSetKeysResp, D, &mut self.resp, decoder, offset + 0, _depth)?;
2530 Ok(())
2531 }
2532 }
2533
2534 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplSetMacAddressRequest {
2535 type Borrowed<'a> = &'a Self;
2536 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2537 value
2538 }
2539 }
2540
2541 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplSetMacAddressRequest {
2542 type Owned = Self;
2543
2544 #[inline(always)]
2545 fn inline_align(_context: fidl::encoding::Context) -> usize {
2546 1
2547 }
2548
2549 #[inline(always)]
2550 fn inline_size(_context: fidl::encoding::Context) -> usize {
2551 6
2552 }
2553 #[inline(always)]
2554 fn encode_is_copy() -> bool {
2555 true
2556 }
2557
2558 #[inline(always)]
2559 fn decode_is_copy() -> bool {
2560 true
2561 }
2562 }
2563
2564 unsafe impl<D: fidl::encoding::ResourceDialect>
2565 fidl::encoding::Encode<WlanFullmacImplSetMacAddressRequest, D>
2566 for &WlanFullmacImplSetMacAddressRequest
2567 {
2568 #[inline]
2569 unsafe fn encode(
2570 self,
2571 encoder: &mut fidl::encoding::Encoder<'_, D>,
2572 offset: usize,
2573 _depth: fidl::encoding::Depth,
2574 ) -> fidl::Result<()> {
2575 encoder.debug_check_bounds::<WlanFullmacImplSetMacAddressRequest>(offset);
2576 unsafe {
2577 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
2579 (buf_ptr as *mut WlanFullmacImplSetMacAddressRequest)
2580 .write_unaligned((self as *const WlanFullmacImplSetMacAddressRequest).read());
2581 }
2584 Ok(())
2585 }
2586 }
2587 unsafe impl<
2588 D: fidl::encoding::ResourceDialect,
2589 T0: fidl::encoding::Encode<fidl::encoding::Array<u8, 6>, D>,
2590 > fidl::encoding::Encode<WlanFullmacImplSetMacAddressRequest, D> for (T0,)
2591 {
2592 #[inline]
2593 unsafe fn encode(
2594 self,
2595 encoder: &mut fidl::encoding::Encoder<'_, D>,
2596 offset: usize,
2597 depth: fidl::encoding::Depth,
2598 ) -> fidl::Result<()> {
2599 encoder.debug_check_bounds::<WlanFullmacImplSetMacAddressRequest>(offset);
2600 self.0.encode(encoder, offset + 0, depth)?;
2604 Ok(())
2605 }
2606 }
2607
2608 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2609 for WlanFullmacImplSetMacAddressRequest
2610 {
2611 #[inline(always)]
2612 fn new_empty() -> Self {
2613 Self { mac_addr: fidl::new_empty!(fidl::encoding::Array<u8, 6>, D) }
2614 }
2615
2616 #[inline]
2617 unsafe fn decode(
2618 &mut self,
2619 decoder: &mut fidl::encoding::Decoder<'_, D>,
2620 offset: usize,
2621 _depth: fidl::encoding::Depth,
2622 ) -> fidl::Result<()> {
2623 decoder.debug_check_bounds::<Self>(offset);
2624 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
2625 unsafe {
2628 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 6);
2629 }
2630 Ok(())
2631 }
2632 }
2633
2634 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplGetIfaceHistogramStatsResponse {
2635 type Borrowed<'a> = &'a Self;
2636 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2637 value
2638 }
2639 }
2640
2641 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplGetIfaceHistogramStatsResponse {
2642 type Owned = Self;
2643
2644 #[inline(always)]
2645 fn inline_align(_context: fidl::encoding::Context) -> usize {
2646 8
2647 }
2648
2649 #[inline(always)]
2650 fn inline_size(_context: fidl::encoding::Context) -> usize {
2651 16
2652 }
2653 }
2654
2655 unsafe impl<D: fidl::encoding::ResourceDialect>
2656 fidl::encoding::Encode<WlanFullmacImplGetIfaceHistogramStatsResponse, D>
2657 for &WlanFullmacImplGetIfaceHistogramStatsResponse
2658 {
2659 #[inline]
2660 unsafe fn encode(
2661 self,
2662 encoder: &mut fidl::encoding::Encoder<'_, D>,
2663 offset: usize,
2664 _depth: fidl::encoding::Depth,
2665 ) -> fidl::Result<()> {
2666 encoder.debug_check_bounds::<WlanFullmacImplGetIfaceHistogramStatsResponse>(offset);
2667 fidl::encoding::Encode::<WlanFullmacImplGetIfaceHistogramStatsResponse, D>::encode(
2669 (
2670 <fidl_fuchsia_wlan_stats__common::IfaceHistogramStats as fidl::encoding::ValueTypeMarker>::borrow(&self.stats),
2671 ),
2672 encoder, offset, _depth
2673 )
2674 }
2675 }
2676 unsafe impl<
2677 D: fidl::encoding::ResourceDialect,
2678 T0: fidl::encoding::Encode<fidl_fuchsia_wlan_stats__common::IfaceHistogramStats, D>,
2679 > fidl::encoding::Encode<WlanFullmacImplGetIfaceHistogramStatsResponse, D> for (T0,)
2680 {
2681 #[inline]
2682 unsafe fn encode(
2683 self,
2684 encoder: &mut fidl::encoding::Encoder<'_, D>,
2685 offset: usize,
2686 depth: fidl::encoding::Depth,
2687 ) -> fidl::Result<()> {
2688 encoder.debug_check_bounds::<WlanFullmacImplGetIfaceHistogramStatsResponse>(offset);
2689 self.0.encode(encoder, offset + 0, depth)?;
2693 Ok(())
2694 }
2695 }
2696
2697 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2698 for WlanFullmacImplGetIfaceHistogramStatsResponse
2699 {
2700 #[inline(always)]
2701 fn new_empty() -> Self {
2702 Self {
2703 stats: fidl::new_empty!(fidl_fuchsia_wlan_stats__common::IfaceHistogramStats, D),
2704 }
2705 }
2706
2707 #[inline]
2708 unsafe fn decode(
2709 &mut self,
2710 decoder: &mut fidl::encoding::Decoder<'_, D>,
2711 offset: usize,
2712 _depth: fidl::encoding::Depth,
2713 ) -> fidl::Result<()> {
2714 decoder.debug_check_bounds::<Self>(offset);
2715 fidl::decode!(
2717 fidl_fuchsia_wlan_stats__common::IfaceHistogramStats,
2718 D,
2719 &mut self.stats,
2720 decoder,
2721 offset + 0,
2722 _depth
2723 )?;
2724 Ok(())
2725 }
2726 }
2727
2728 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplGetIfaceStatsResponse {
2729 type Borrowed<'a> = &'a Self;
2730 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2731 value
2732 }
2733 }
2734
2735 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplGetIfaceStatsResponse {
2736 type Owned = Self;
2737
2738 #[inline(always)]
2739 fn inline_align(_context: fidl::encoding::Context) -> usize {
2740 8
2741 }
2742
2743 #[inline(always)]
2744 fn inline_size(_context: fidl::encoding::Context) -> usize {
2745 16
2746 }
2747 }
2748
2749 unsafe impl<D: fidl::encoding::ResourceDialect>
2750 fidl::encoding::Encode<WlanFullmacImplGetIfaceStatsResponse, D>
2751 for &WlanFullmacImplGetIfaceStatsResponse
2752 {
2753 #[inline]
2754 unsafe fn encode(
2755 self,
2756 encoder: &mut fidl::encoding::Encoder<'_, D>,
2757 offset: usize,
2758 _depth: fidl::encoding::Depth,
2759 ) -> fidl::Result<()> {
2760 encoder.debug_check_bounds::<WlanFullmacImplGetIfaceStatsResponse>(offset);
2761 fidl::encoding::Encode::<WlanFullmacImplGetIfaceStatsResponse, D>::encode(
2763 (
2764 <fidl_fuchsia_wlan_stats__common::IfaceStats as fidl::encoding::ValueTypeMarker>::borrow(&self.stats),
2765 ),
2766 encoder, offset, _depth
2767 )
2768 }
2769 }
2770 unsafe impl<
2771 D: fidl::encoding::ResourceDialect,
2772 T0: fidl::encoding::Encode<fidl_fuchsia_wlan_stats__common::IfaceStats, D>,
2773 > fidl::encoding::Encode<WlanFullmacImplGetIfaceStatsResponse, D> for (T0,)
2774 {
2775 #[inline]
2776 unsafe fn encode(
2777 self,
2778 encoder: &mut fidl::encoding::Encoder<'_, D>,
2779 offset: usize,
2780 depth: fidl::encoding::Depth,
2781 ) -> fidl::Result<()> {
2782 encoder.debug_check_bounds::<WlanFullmacImplGetIfaceStatsResponse>(offset);
2783 self.0.encode(encoder, offset + 0, depth)?;
2787 Ok(())
2788 }
2789 }
2790
2791 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2792 for WlanFullmacImplGetIfaceStatsResponse
2793 {
2794 #[inline(always)]
2795 fn new_empty() -> Self {
2796 Self { stats: fidl::new_empty!(fidl_fuchsia_wlan_stats__common::IfaceStats, D) }
2797 }
2798
2799 #[inline]
2800 unsafe fn decode(
2801 &mut self,
2802 decoder: &mut fidl::encoding::Decoder<'_, D>,
2803 offset: usize,
2804 _depth: fidl::encoding::Depth,
2805 ) -> fidl::Result<()> {
2806 decoder.debug_check_bounds::<Self>(offset);
2807 fidl::decode!(
2809 fidl_fuchsia_wlan_stats__common::IfaceStats,
2810 D,
2811 &mut self.stats,
2812 decoder,
2813 offset + 0,
2814 _depth
2815 )?;
2816 Ok(())
2817 }
2818 }
2819
2820 impl fidl::encoding::ValueTypeMarker for WlanFullmacRssiStats {
2821 type Borrowed<'a> = &'a Self;
2822 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2823 value
2824 }
2825 }
2826
2827 unsafe impl fidl::encoding::TypeMarker for WlanFullmacRssiStats {
2828 type Owned = Self;
2829
2830 #[inline(always)]
2831 fn inline_align(_context: fidl::encoding::Context) -> usize {
2832 8
2833 }
2834
2835 #[inline(always)]
2836 fn inline_size(_context: fidl::encoding::Context) -> usize {
2837 16
2838 }
2839 }
2840
2841 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<WlanFullmacRssiStats, D>
2842 for &WlanFullmacRssiStats
2843 {
2844 #[inline]
2845 unsafe fn encode(
2846 self,
2847 encoder: &mut fidl::encoding::Encoder<'_, D>,
2848 offset: usize,
2849 _depth: fidl::encoding::Depth,
2850 ) -> fidl::Result<()> {
2851 encoder.debug_check_bounds::<WlanFullmacRssiStats>(offset);
2852 fidl::encoding::Encode::<WlanFullmacRssiStats, D>::encode(
2854 (
2855 <fidl::encoding::UnboundedVector<u64> as fidl::encoding::ValueTypeMarker>::borrow(&self.hist),
2856 ),
2857 encoder, offset, _depth
2858 )
2859 }
2860 }
2861 unsafe impl<
2862 D: fidl::encoding::ResourceDialect,
2863 T0: fidl::encoding::Encode<fidl::encoding::UnboundedVector<u64>, D>,
2864 > fidl::encoding::Encode<WlanFullmacRssiStats, D> for (T0,)
2865 {
2866 #[inline]
2867 unsafe fn encode(
2868 self,
2869 encoder: &mut fidl::encoding::Encoder<'_, D>,
2870 offset: usize,
2871 depth: fidl::encoding::Depth,
2872 ) -> fidl::Result<()> {
2873 encoder.debug_check_bounds::<WlanFullmacRssiStats>(offset);
2874 self.0.encode(encoder, offset + 0, depth)?;
2878 Ok(())
2879 }
2880 }
2881
2882 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for WlanFullmacRssiStats {
2883 #[inline(always)]
2884 fn new_empty() -> Self {
2885 Self { hist: fidl::new_empty!(fidl::encoding::UnboundedVector<u64>, D) }
2886 }
2887
2888 #[inline]
2889 unsafe fn decode(
2890 &mut self,
2891 decoder: &mut fidl::encoding::Decoder<'_, D>,
2892 offset: usize,
2893 _depth: fidl::encoding::Depth,
2894 ) -> fidl::Result<()> {
2895 decoder.debug_check_bounds::<Self>(offset);
2896 fidl::decode!(
2898 fidl::encoding::UnboundedVector<u64>,
2899 D,
2900 &mut self.hist,
2901 decoder,
2902 offset + 0,
2903 _depth
2904 )?;
2905 Ok(())
2906 }
2907 }
2908
2909 impl fidl::encoding::ValueTypeMarker for WlanFullmacSetKeysResp {
2910 type Borrowed<'a> = &'a Self;
2911 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2912 value
2913 }
2914 }
2915
2916 unsafe impl fidl::encoding::TypeMarker for WlanFullmacSetKeysResp {
2917 type Owned = Self;
2918
2919 #[inline(always)]
2920 fn inline_align(_context: fidl::encoding::Context) -> usize {
2921 8
2922 }
2923
2924 #[inline(always)]
2925 fn inline_size(_context: fidl::encoding::Context) -> usize {
2926 16
2927 }
2928 }
2929
2930 unsafe impl<D: fidl::encoding::ResourceDialect>
2931 fidl::encoding::Encode<WlanFullmacSetKeysResp, D> for &WlanFullmacSetKeysResp
2932 {
2933 #[inline]
2934 unsafe fn encode(
2935 self,
2936 encoder: &mut fidl::encoding::Encoder<'_, D>,
2937 offset: usize,
2938 _depth: fidl::encoding::Depth,
2939 ) -> fidl::Result<()> {
2940 encoder.debug_check_bounds::<WlanFullmacSetKeysResp>(offset);
2941 fidl::encoding::Encode::<WlanFullmacSetKeysResp, D>::encode(
2943 (<fidl::encoding::Vector<i32, 4> as fidl::encoding::ValueTypeMarker>::borrow(
2944 &self.statuslist,
2945 ),),
2946 encoder,
2947 offset,
2948 _depth,
2949 )
2950 }
2951 }
2952 unsafe impl<
2953 D: fidl::encoding::ResourceDialect,
2954 T0: fidl::encoding::Encode<fidl::encoding::Vector<i32, 4>, D>,
2955 > fidl::encoding::Encode<WlanFullmacSetKeysResp, D> for (T0,)
2956 {
2957 #[inline]
2958 unsafe fn encode(
2959 self,
2960 encoder: &mut fidl::encoding::Encoder<'_, D>,
2961 offset: usize,
2962 depth: fidl::encoding::Depth,
2963 ) -> fidl::Result<()> {
2964 encoder.debug_check_bounds::<WlanFullmacSetKeysResp>(offset);
2965 self.0.encode(encoder, offset + 0, depth)?;
2969 Ok(())
2970 }
2971 }
2972
2973 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2974 for WlanFullmacSetKeysResp
2975 {
2976 #[inline(always)]
2977 fn new_empty() -> Self {
2978 Self { statuslist: fidl::new_empty!(fidl::encoding::Vector<i32, 4>, D) }
2979 }
2980
2981 #[inline]
2982 unsafe fn decode(
2983 &mut self,
2984 decoder: &mut fidl::encoding::Decoder<'_, D>,
2985 offset: usize,
2986 _depth: fidl::encoding::Depth,
2987 ) -> fidl::Result<()> {
2988 decoder.debug_check_bounds::<Self>(offset);
2989 fidl::decode!(fidl::encoding::Vector<i32, 4>, D, &mut self.statuslist, decoder, offset + 0, _depth)?;
2991 Ok(())
2992 }
2993 }
2994
2995 impl fidl::encoding::ValueTypeMarker for WlanFullmacSignalReportIndication {
2996 type Borrowed<'a> = &'a Self;
2997 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2998 value
2999 }
3000 }
3001
3002 unsafe impl fidl::encoding::TypeMarker for WlanFullmacSignalReportIndication {
3003 type Owned = Self;
3004
3005 #[inline(always)]
3006 fn inline_align(_context: fidl::encoding::Context) -> usize {
3007 1
3008 }
3009
3010 #[inline(always)]
3011 fn inline_size(_context: fidl::encoding::Context) -> usize {
3012 2
3013 }
3014 #[inline(always)]
3015 fn encode_is_copy() -> bool {
3016 true
3017 }
3018
3019 #[inline(always)]
3020 fn decode_is_copy() -> bool {
3021 true
3022 }
3023 }
3024
3025 unsafe impl<D: fidl::encoding::ResourceDialect>
3026 fidl::encoding::Encode<WlanFullmacSignalReportIndication, D>
3027 for &WlanFullmacSignalReportIndication
3028 {
3029 #[inline]
3030 unsafe fn encode(
3031 self,
3032 encoder: &mut fidl::encoding::Encoder<'_, D>,
3033 offset: usize,
3034 _depth: fidl::encoding::Depth,
3035 ) -> fidl::Result<()> {
3036 encoder.debug_check_bounds::<WlanFullmacSignalReportIndication>(offset);
3037 unsafe {
3038 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
3040 (buf_ptr as *mut WlanFullmacSignalReportIndication)
3041 .write_unaligned((self as *const WlanFullmacSignalReportIndication).read());
3042 }
3045 Ok(())
3046 }
3047 }
3048 unsafe impl<
3049 D: fidl::encoding::ResourceDialect,
3050 T0: fidl::encoding::Encode<i8, D>,
3051 T1: fidl::encoding::Encode<i8, D>,
3052 > fidl::encoding::Encode<WlanFullmacSignalReportIndication, D> for (T0, T1)
3053 {
3054 #[inline]
3055 unsafe fn encode(
3056 self,
3057 encoder: &mut fidl::encoding::Encoder<'_, D>,
3058 offset: usize,
3059 depth: fidl::encoding::Depth,
3060 ) -> fidl::Result<()> {
3061 encoder.debug_check_bounds::<WlanFullmacSignalReportIndication>(offset);
3062 self.0.encode(encoder, offset + 0, depth)?;
3066 self.1.encode(encoder, offset + 1, depth)?;
3067 Ok(())
3068 }
3069 }
3070
3071 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
3072 for WlanFullmacSignalReportIndication
3073 {
3074 #[inline(always)]
3075 fn new_empty() -> Self {
3076 Self { rssi_dbm: fidl::new_empty!(i8, D), snr_db: fidl::new_empty!(i8, D) }
3077 }
3078
3079 #[inline]
3080 unsafe fn decode(
3081 &mut self,
3082 decoder: &mut fidl::encoding::Decoder<'_, D>,
3083 offset: usize,
3084 _depth: fidl::encoding::Depth,
3085 ) -> fidl::Result<()> {
3086 decoder.debug_check_bounds::<Self>(offset);
3087 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
3088 unsafe {
3091 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 2);
3092 }
3093 Ok(())
3094 }
3095 }
3096
3097 impl BandCapability {
3098 #[inline(always)]
3099 fn max_ordinal_present(&self) -> u64 {
3100 if let Some(_) = self.operating_channels {
3101 return 5;
3102 }
3103 if let Some(_) = self.vht_caps {
3104 return 4;
3105 }
3106 if let Some(_) = self.ht_caps {
3107 return 3;
3108 }
3109 if let Some(_) = self.basic_rates {
3110 return 2;
3111 }
3112 if let Some(_) = self.band {
3113 return 1;
3114 }
3115 0
3116 }
3117 }
3118
3119 impl fidl::encoding::ValueTypeMarker for BandCapability {
3120 type Borrowed<'a> = &'a Self;
3121 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3122 value
3123 }
3124 }
3125
3126 unsafe impl fidl::encoding::TypeMarker for BandCapability {
3127 type Owned = Self;
3128
3129 #[inline(always)]
3130 fn inline_align(_context: fidl::encoding::Context) -> usize {
3131 8
3132 }
3133
3134 #[inline(always)]
3135 fn inline_size(_context: fidl::encoding::Context) -> usize {
3136 16
3137 }
3138 }
3139
3140 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<BandCapability, D>
3141 for &BandCapability
3142 {
3143 unsafe fn encode(
3144 self,
3145 encoder: &mut fidl::encoding::Encoder<'_, D>,
3146 offset: usize,
3147 mut depth: fidl::encoding::Depth,
3148 ) -> fidl::Result<()> {
3149 encoder.debug_check_bounds::<BandCapability>(offset);
3150 let max_ordinal: u64 = self.max_ordinal_present();
3152 encoder.write_num(max_ordinal, offset);
3153 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
3154 if max_ordinal == 0 {
3156 return Ok(());
3157 }
3158 depth.increment()?;
3159 let envelope_size = 8;
3160 let bytes_len = max_ordinal as usize * envelope_size;
3161 #[allow(unused_variables)]
3162 let offset = encoder.out_of_line_offset(bytes_len);
3163 let mut _prev_end_offset: usize = 0;
3164 if 1 > max_ordinal {
3165 return Ok(());
3166 }
3167
3168 let cur_offset: usize = (1 - 1) * envelope_size;
3171
3172 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3174
3175 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_ieee80211__common::WlanBand, D>(
3180 self.band.as_ref().map(<fidl_fuchsia_wlan_ieee80211__common::WlanBand as fidl::encoding::ValueTypeMarker>::borrow),
3181 encoder, offset + cur_offset, depth
3182 )?;
3183
3184 _prev_end_offset = cur_offset + envelope_size;
3185 if 2 > max_ordinal {
3186 return Ok(());
3187 }
3188
3189 let cur_offset: usize = (2 - 1) * envelope_size;
3192
3193 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3195
3196 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<u8, 12>, D>(
3201 self.basic_rates.as_ref().map(
3202 <fidl::encoding::Vector<u8, 12> as fidl::encoding::ValueTypeMarker>::borrow,
3203 ),
3204 encoder,
3205 offset + cur_offset,
3206 depth,
3207 )?;
3208
3209 _prev_end_offset = cur_offset + envelope_size;
3210 if 3 > max_ordinal {
3211 return Ok(());
3212 }
3213
3214 let cur_offset: usize = (3 - 1) * envelope_size;
3217
3218 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3220
3221 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_ieee80211__common::HtCapabilities, D>(
3226 self.ht_caps.as_ref().map(<fidl_fuchsia_wlan_ieee80211__common::HtCapabilities as fidl::encoding::ValueTypeMarker>::borrow),
3227 encoder, offset + cur_offset, depth
3228 )?;
3229
3230 _prev_end_offset = cur_offset + envelope_size;
3231 if 4 > max_ordinal {
3232 return Ok(());
3233 }
3234
3235 let cur_offset: usize = (4 - 1) * envelope_size;
3238
3239 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3241
3242 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_ieee80211__common::VhtCapabilities, D>(
3247 self.vht_caps.as_ref().map(<fidl_fuchsia_wlan_ieee80211__common::VhtCapabilities as fidl::encoding::ValueTypeMarker>::borrow),
3248 encoder, offset + cur_offset, depth
3249 )?;
3250
3251 _prev_end_offset = cur_offset + envelope_size;
3252 if 5 > max_ordinal {
3253 return Ok(());
3254 }
3255
3256 let cur_offset: usize = (5 - 1) * envelope_size;
3259
3260 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3262
3263 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<u8, 256>, D>(
3268 self.operating_channels.as_ref().map(
3269 <fidl::encoding::Vector<u8, 256> as fidl::encoding::ValueTypeMarker>::borrow,
3270 ),
3271 encoder,
3272 offset + cur_offset,
3273 depth,
3274 )?;
3275
3276 _prev_end_offset = cur_offset + envelope_size;
3277
3278 Ok(())
3279 }
3280 }
3281
3282 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for BandCapability {
3283 #[inline(always)]
3284 fn new_empty() -> Self {
3285 Self::default()
3286 }
3287
3288 unsafe fn decode(
3289 &mut self,
3290 decoder: &mut fidl::encoding::Decoder<'_, D>,
3291 offset: usize,
3292 mut depth: fidl::encoding::Depth,
3293 ) -> fidl::Result<()> {
3294 decoder.debug_check_bounds::<Self>(offset);
3295 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
3296 None => return Err(fidl::Error::NotNullable),
3297 Some(len) => len,
3298 };
3299 if len == 0 {
3301 return Ok(());
3302 };
3303 depth.increment()?;
3304 let envelope_size = 8;
3305 let bytes_len = len * envelope_size;
3306 let offset = decoder.out_of_line_offset(bytes_len)?;
3307 let mut _next_ordinal_to_read = 0;
3309 let mut next_offset = offset;
3310 let end_offset = offset + bytes_len;
3311 _next_ordinal_to_read += 1;
3312 if next_offset >= end_offset {
3313 return Ok(());
3314 }
3315
3316 while _next_ordinal_to_read < 1 {
3318 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3319 _next_ordinal_to_read += 1;
3320 next_offset += envelope_size;
3321 }
3322
3323 let next_out_of_line = decoder.next_out_of_line();
3324 let handles_before = decoder.remaining_handles();
3325 if let Some((inlined, num_bytes, num_handles)) =
3326 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3327 {
3328 let member_inline_size = <fidl_fuchsia_wlan_ieee80211__common::WlanBand as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3329 if inlined != (member_inline_size <= 4) {
3330 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3331 }
3332 let inner_offset;
3333 let mut inner_depth = depth.clone();
3334 if inlined {
3335 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3336 inner_offset = next_offset;
3337 } else {
3338 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3339 inner_depth.increment()?;
3340 }
3341 let val_ref = self.band.get_or_insert_with(|| {
3342 fidl::new_empty!(fidl_fuchsia_wlan_ieee80211__common::WlanBand, D)
3343 });
3344 fidl::decode!(
3345 fidl_fuchsia_wlan_ieee80211__common::WlanBand,
3346 D,
3347 val_ref,
3348 decoder,
3349 inner_offset,
3350 inner_depth
3351 )?;
3352 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3353 {
3354 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3355 }
3356 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3357 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3358 }
3359 }
3360
3361 next_offset += envelope_size;
3362 _next_ordinal_to_read += 1;
3363 if next_offset >= end_offset {
3364 return Ok(());
3365 }
3366
3367 while _next_ordinal_to_read < 2 {
3369 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3370 _next_ordinal_to_read += 1;
3371 next_offset += envelope_size;
3372 }
3373
3374 let next_out_of_line = decoder.next_out_of_line();
3375 let handles_before = decoder.remaining_handles();
3376 if let Some((inlined, num_bytes, num_handles)) =
3377 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3378 {
3379 let member_inline_size =
3380 <fidl::encoding::Vector<u8, 12> as fidl::encoding::TypeMarker>::inline_size(
3381 decoder.context,
3382 );
3383 if inlined != (member_inline_size <= 4) {
3384 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3385 }
3386 let inner_offset;
3387 let mut inner_depth = depth.clone();
3388 if inlined {
3389 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3390 inner_offset = next_offset;
3391 } else {
3392 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3393 inner_depth.increment()?;
3394 }
3395 let val_ref = self
3396 .basic_rates
3397 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<u8, 12>, D));
3398 fidl::decode!(fidl::encoding::Vector<u8, 12>, D, val_ref, decoder, inner_offset, inner_depth)?;
3399 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3400 {
3401 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3402 }
3403 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3404 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3405 }
3406 }
3407
3408 next_offset += envelope_size;
3409 _next_ordinal_to_read += 1;
3410 if next_offset >= end_offset {
3411 return Ok(());
3412 }
3413
3414 while _next_ordinal_to_read < 3 {
3416 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3417 _next_ordinal_to_read += 1;
3418 next_offset += envelope_size;
3419 }
3420
3421 let next_out_of_line = decoder.next_out_of_line();
3422 let handles_before = decoder.remaining_handles();
3423 if let Some((inlined, num_bytes, num_handles)) =
3424 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3425 {
3426 let member_inline_size = <fidl_fuchsia_wlan_ieee80211__common::HtCapabilities as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3427 if inlined != (member_inline_size <= 4) {
3428 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3429 }
3430 let inner_offset;
3431 let mut inner_depth = depth.clone();
3432 if inlined {
3433 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3434 inner_offset = next_offset;
3435 } else {
3436 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3437 inner_depth.increment()?;
3438 }
3439 let val_ref = self.ht_caps.get_or_insert_with(|| {
3440 fidl::new_empty!(fidl_fuchsia_wlan_ieee80211__common::HtCapabilities, D)
3441 });
3442 fidl::decode!(
3443 fidl_fuchsia_wlan_ieee80211__common::HtCapabilities,
3444 D,
3445 val_ref,
3446 decoder,
3447 inner_offset,
3448 inner_depth
3449 )?;
3450 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3451 {
3452 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3453 }
3454 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3455 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3456 }
3457 }
3458
3459 next_offset += envelope_size;
3460 _next_ordinal_to_read += 1;
3461 if next_offset >= end_offset {
3462 return Ok(());
3463 }
3464
3465 while _next_ordinal_to_read < 4 {
3467 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3468 _next_ordinal_to_read += 1;
3469 next_offset += envelope_size;
3470 }
3471
3472 let next_out_of_line = decoder.next_out_of_line();
3473 let handles_before = decoder.remaining_handles();
3474 if let Some((inlined, num_bytes, num_handles)) =
3475 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3476 {
3477 let member_inline_size = <fidl_fuchsia_wlan_ieee80211__common::VhtCapabilities as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3478 if inlined != (member_inline_size <= 4) {
3479 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3480 }
3481 let inner_offset;
3482 let mut inner_depth = depth.clone();
3483 if inlined {
3484 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3485 inner_offset = next_offset;
3486 } else {
3487 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3488 inner_depth.increment()?;
3489 }
3490 let val_ref = self.vht_caps.get_or_insert_with(|| {
3491 fidl::new_empty!(fidl_fuchsia_wlan_ieee80211__common::VhtCapabilities, D)
3492 });
3493 fidl::decode!(
3494 fidl_fuchsia_wlan_ieee80211__common::VhtCapabilities,
3495 D,
3496 val_ref,
3497 decoder,
3498 inner_offset,
3499 inner_depth
3500 )?;
3501 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3502 {
3503 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3504 }
3505 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3506 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3507 }
3508 }
3509
3510 next_offset += envelope_size;
3511 _next_ordinal_to_read += 1;
3512 if next_offset >= end_offset {
3513 return Ok(());
3514 }
3515
3516 while _next_ordinal_to_read < 5 {
3518 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3519 _next_ordinal_to_read += 1;
3520 next_offset += envelope_size;
3521 }
3522
3523 let next_out_of_line = decoder.next_out_of_line();
3524 let handles_before = decoder.remaining_handles();
3525 if let Some((inlined, num_bytes, num_handles)) =
3526 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3527 {
3528 let member_inline_size =
3529 <fidl::encoding::Vector<u8, 256> as fidl::encoding::TypeMarker>::inline_size(
3530 decoder.context,
3531 );
3532 if inlined != (member_inline_size <= 4) {
3533 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3534 }
3535 let inner_offset;
3536 let mut inner_depth = depth.clone();
3537 if inlined {
3538 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3539 inner_offset = next_offset;
3540 } else {
3541 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3542 inner_depth.increment()?;
3543 }
3544 let val_ref = self
3545 .operating_channels
3546 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<u8, 256>, D));
3547 fidl::decode!(fidl::encoding::Vector<u8, 256>, D, val_ref, decoder, inner_offset, inner_depth)?;
3548 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3549 {
3550 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3551 }
3552 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3553 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3554 }
3555 }
3556
3557 next_offset += envelope_size;
3558
3559 while next_offset < end_offset {
3561 _next_ordinal_to_read += 1;
3562 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3563 next_offset += envelope_size;
3564 }
3565
3566 Ok(())
3567 }
3568 }
3569
3570 impl SaeFrame {
3571 #[inline(always)]
3572 fn max_ordinal_present(&self) -> u64 {
3573 if let Some(_) = self.sae_fields {
3574 return 4;
3575 }
3576 if let Some(_) = self.seq_num {
3577 return 3;
3578 }
3579 if let Some(_) = self.status_code {
3580 return 2;
3581 }
3582 if let Some(_) = self.peer_sta_address {
3583 return 1;
3584 }
3585 0
3586 }
3587 }
3588
3589 impl fidl::encoding::ValueTypeMarker for SaeFrame {
3590 type Borrowed<'a> = &'a Self;
3591 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3592 value
3593 }
3594 }
3595
3596 unsafe impl fidl::encoding::TypeMarker for SaeFrame {
3597 type Owned = Self;
3598
3599 #[inline(always)]
3600 fn inline_align(_context: fidl::encoding::Context) -> usize {
3601 8
3602 }
3603
3604 #[inline(always)]
3605 fn inline_size(_context: fidl::encoding::Context) -> usize {
3606 16
3607 }
3608 }
3609
3610 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<SaeFrame, D> for &SaeFrame {
3611 unsafe fn encode(
3612 self,
3613 encoder: &mut fidl::encoding::Encoder<'_, D>,
3614 offset: usize,
3615 mut depth: fidl::encoding::Depth,
3616 ) -> fidl::Result<()> {
3617 encoder.debug_check_bounds::<SaeFrame>(offset);
3618 let max_ordinal: u64 = self.max_ordinal_present();
3620 encoder.write_num(max_ordinal, offset);
3621 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
3622 if max_ordinal == 0 {
3624 return Ok(());
3625 }
3626 depth.increment()?;
3627 let envelope_size = 8;
3628 let bytes_len = max_ordinal as usize * envelope_size;
3629 #[allow(unused_variables)]
3630 let offset = encoder.out_of_line_offset(bytes_len);
3631 let mut _prev_end_offset: usize = 0;
3632 if 1 > max_ordinal {
3633 return Ok(());
3634 }
3635
3636 let cur_offset: usize = (1 - 1) * envelope_size;
3639
3640 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3642
3643 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
3648 self.peer_sta_address
3649 .as_ref()
3650 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
3651 encoder,
3652 offset + cur_offset,
3653 depth,
3654 )?;
3655
3656 _prev_end_offset = cur_offset + envelope_size;
3657 if 2 > max_ordinal {
3658 return Ok(());
3659 }
3660
3661 let cur_offset: usize = (2 - 1) * envelope_size;
3664
3665 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3667
3668 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_ieee80211__common::StatusCode, D>(
3673 self.status_code.as_ref().map(<fidl_fuchsia_wlan_ieee80211__common::StatusCode as fidl::encoding::ValueTypeMarker>::borrow),
3674 encoder, offset + cur_offset, depth
3675 )?;
3676
3677 _prev_end_offset = cur_offset + envelope_size;
3678 if 3 > max_ordinal {
3679 return Ok(());
3680 }
3681
3682 let cur_offset: usize = (3 - 1) * envelope_size;
3685
3686 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3688
3689 fidl::encoding::encode_in_envelope_optional::<u16, D>(
3694 self.seq_num.as_ref().map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
3695 encoder,
3696 offset + cur_offset,
3697 depth,
3698 )?;
3699
3700 _prev_end_offset = cur_offset + envelope_size;
3701 if 4 > max_ordinal {
3702 return Ok(());
3703 }
3704
3705 let cur_offset: usize = (4 - 1) * envelope_size;
3708
3709 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3711
3712 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<u8>, D>(
3717 self.sae_fields.as_ref().map(<fidl::encoding::UnboundedVector<u8> as fidl::encoding::ValueTypeMarker>::borrow),
3718 encoder, offset + cur_offset, depth
3719 )?;
3720
3721 _prev_end_offset = cur_offset + envelope_size;
3722
3723 Ok(())
3724 }
3725 }
3726
3727 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for SaeFrame {
3728 #[inline(always)]
3729 fn new_empty() -> Self {
3730 Self::default()
3731 }
3732
3733 unsafe fn decode(
3734 &mut self,
3735 decoder: &mut fidl::encoding::Decoder<'_, D>,
3736 offset: usize,
3737 mut depth: fidl::encoding::Depth,
3738 ) -> fidl::Result<()> {
3739 decoder.debug_check_bounds::<Self>(offset);
3740 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
3741 None => return Err(fidl::Error::NotNullable),
3742 Some(len) => len,
3743 };
3744 if len == 0 {
3746 return Ok(());
3747 };
3748 depth.increment()?;
3749 let envelope_size = 8;
3750 let bytes_len = len * envelope_size;
3751 let offset = decoder.out_of_line_offset(bytes_len)?;
3752 let mut _next_ordinal_to_read = 0;
3754 let mut next_offset = offset;
3755 let end_offset = offset + bytes_len;
3756 _next_ordinal_to_read += 1;
3757 if next_offset >= end_offset {
3758 return Ok(());
3759 }
3760
3761 while _next_ordinal_to_read < 1 {
3763 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3764 _next_ordinal_to_read += 1;
3765 next_offset += envelope_size;
3766 }
3767
3768 let next_out_of_line = decoder.next_out_of_line();
3769 let handles_before = decoder.remaining_handles();
3770 if let Some((inlined, num_bytes, num_handles)) =
3771 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3772 {
3773 let member_inline_size =
3774 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
3775 decoder.context,
3776 );
3777 if inlined != (member_inline_size <= 4) {
3778 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3779 }
3780 let inner_offset;
3781 let mut inner_depth = depth.clone();
3782 if inlined {
3783 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3784 inner_offset = next_offset;
3785 } else {
3786 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3787 inner_depth.increment()?;
3788 }
3789 let val_ref = self
3790 .peer_sta_address
3791 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
3792 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
3793 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3794 {
3795 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3796 }
3797 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3798 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3799 }
3800 }
3801
3802 next_offset += envelope_size;
3803 _next_ordinal_to_read += 1;
3804 if next_offset >= end_offset {
3805 return Ok(());
3806 }
3807
3808 while _next_ordinal_to_read < 2 {
3810 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3811 _next_ordinal_to_read += 1;
3812 next_offset += envelope_size;
3813 }
3814
3815 let next_out_of_line = decoder.next_out_of_line();
3816 let handles_before = decoder.remaining_handles();
3817 if let Some((inlined, num_bytes, num_handles)) =
3818 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3819 {
3820 let member_inline_size = <fidl_fuchsia_wlan_ieee80211__common::StatusCode as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3821 if inlined != (member_inline_size <= 4) {
3822 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3823 }
3824 let inner_offset;
3825 let mut inner_depth = depth.clone();
3826 if inlined {
3827 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3828 inner_offset = next_offset;
3829 } else {
3830 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3831 inner_depth.increment()?;
3832 }
3833 let val_ref = self.status_code.get_or_insert_with(|| {
3834 fidl::new_empty!(fidl_fuchsia_wlan_ieee80211__common::StatusCode, D)
3835 });
3836 fidl::decode!(
3837 fidl_fuchsia_wlan_ieee80211__common::StatusCode,
3838 D,
3839 val_ref,
3840 decoder,
3841 inner_offset,
3842 inner_depth
3843 )?;
3844 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3845 {
3846 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3847 }
3848 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3849 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3850 }
3851 }
3852
3853 next_offset += envelope_size;
3854 _next_ordinal_to_read += 1;
3855 if next_offset >= end_offset {
3856 return Ok(());
3857 }
3858
3859 while _next_ordinal_to_read < 3 {
3861 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3862 _next_ordinal_to_read += 1;
3863 next_offset += envelope_size;
3864 }
3865
3866 let next_out_of_line = decoder.next_out_of_line();
3867 let handles_before = decoder.remaining_handles();
3868 if let Some((inlined, num_bytes, num_handles)) =
3869 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3870 {
3871 let member_inline_size =
3872 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3873 if inlined != (member_inline_size <= 4) {
3874 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3875 }
3876 let inner_offset;
3877 let mut inner_depth = depth.clone();
3878 if inlined {
3879 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3880 inner_offset = next_offset;
3881 } else {
3882 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3883 inner_depth.increment()?;
3884 }
3885 let val_ref = self.seq_num.get_or_insert_with(|| fidl::new_empty!(u16, D));
3886 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
3887 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3888 {
3889 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3890 }
3891 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3892 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3893 }
3894 }
3895
3896 next_offset += envelope_size;
3897 _next_ordinal_to_read += 1;
3898 if next_offset >= end_offset {
3899 return Ok(());
3900 }
3901
3902 while _next_ordinal_to_read < 4 {
3904 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3905 _next_ordinal_to_read += 1;
3906 next_offset += envelope_size;
3907 }
3908
3909 let next_out_of_line = decoder.next_out_of_line();
3910 let handles_before = decoder.remaining_handles();
3911 if let Some((inlined, num_bytes, num_handles)) =
3912 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3913 {
3914 let member_inline_size = <fidl::encoding::UnboundedVector<u8> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3915 if inlined != (member_inline_size <= 4) {
3916 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3917 }
3918 let inner_offset;
3919 let mut inner_depth = depth.clone();
3920 if inlined {
3921 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3922 inner_offset = next_offset;
3923 } else {
3924 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3925 inner_depth.increment()?;
3926 }
3927 let val_ref = self.sae_fields.get_or_insert_with(|| {
3928 fidl::new_empty!(fidl::encoding::UnboundedVector<u8>, D)
3929 });
3930 fidl::decode!(
3931 fidl::encoding::UnboundedVector<u8>,
3932 D,
3933 val_ref,
3934 decoder,
3935 inner_offset,
3936 inner_depth
3937 )?;
3938 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3939 {
3940 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3941 }
3942 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3943 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3944 }
3945 }
3946
3947 next_offset += envelope_size;
3948
3949 while next_offset < end_offset {
3951 _next_ordinal_to_read += 1;
3952 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3953 next_offset += envelope_size;
3954 }
3955
3956 Ok(())
3957 }
3958 }
3959
3960 impl WlanFullmacImplAssocRespRequest {
3961 #[inline(always)]
3962 fn max_ordinal_present(&self) -> u64 {
3963 if let Some(_) = self.association_id {
3964 return 3;
3965 }
3966 if let Some(_) = self.result_code {
3967 return 2;
3968 }
3969 if let Some(_) = self.peer_sta_address {
3970 return 1;
3971 }
3972 0
3973 }
3974 }
3975
3976 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplAssocRespRequest {
3977 type Borrowed<'a> = &'a Self;
3978 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3979 value
3980 }
3981 }
3982
3983 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplAssocRespRequest {
3984 type Owned = Self;
3985
3986 #[inline(always)]
3987 fn inline_align(_context: fidl::encoding::Context) -> usize {
3988 8
3989 }
3990
3991 #[inline(always)]
3992 fn inline_size(_context: fidl::encoding::Context) -> usize {
3993 16
3994 }
3995 }
3996
3997 unsafe impl<D: fidl::encoding::ResourceDialect>
3998 fidl::encoding::Encode<WlanFullmacImplAssocRespRequest, D>
3999 for &WlanFullmacImplAssocRespRequest
4000 {
4001 unsafe fn encode(
4002 self,
4003 encoder: &mut fidl::encoding::Encoder<'_, D>,
4004 offset: usize,
4005 mut depth: fidl::encoding::Depth,
4006 ) -> fidl::Result<()> {
4007 encoder.debug_check_bounds::<WlanFullmacImplAssocRespRequest>(offset);
4008 let max_ordinal: u64 = self.max_ordinal_present();
4010 encoder.write_num(max_ordinal, offset);
4011 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
4012 if max_ordinal == 0 {
4014 return Ok(());
4015 }
4016 depth.increment()?;
4017 let envelope_size = 8;
4018 let bytes_len = max_ordinal as usize * envelope_size;
4019 #[allow(unused_variables)]
4020 let offset = encoder.out_of_line_offset(bytes_len);
4021 let mut _prev_end_offset: usize = 0;
4022 if 1 > max_ordinal {
4023 return Ok(());
4024 }
4025
4026 let cur_offset: usize = (1 - 1) * envelope_size;
4029
4030 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4032
4033 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
4038 self.peer_sta_address
4039 .as_ref()
4040 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
4041 encoder,
4042 offset + cur_offset,
4043 depth,
4044 )?;
4045
4046 _prev_end_offset = cur_offset + envelope_size;
4047 if 2 > max_ordinal {
4048 return Ok(());
4049 }
4050
4051 let cur_offset: usize = (2 - 1) * envelope_size;
4054
4055 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4057
4058 fidl::encoding::encode_in_envelope_optional::<WlanAssocResult, D>(
4063 self.result_code
4064 .as_ref()
4065 .map(<WlanAssocResult as fidl::encoding::ValueTypeMarker>::borrow),
4066 encoder,
4067 offset + cur_offset,
4068 depth,
4069 )?;
4070
4071 _prev_end_offset = cur_offset + envelope_size;
4072 if 3 > max_ordinal {
4073 return Ok(());
4074 }
4075
4076 let cur_offset: usize = (3 - 1) * envelope_size;
4079
4080 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4082
4083 fidl::encoding::encode_in_envelope_optional::<u16, D>(
4088 self.association_id.as_ref().map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
4089 encoder,
4090 offset + cur_offset,
4091 depth,
4092 )?;
4093
4094 _prev_end_offset = cur_offset + envelope_size;
4095
4096 Ok(())
4097 }
4098 }
4099
4100 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
4101 for WlanFullmacImplAssocRespRequest
4102 {
4103 #[inline(always)]
4104 fn new_empty() -> Self {
4105 Self::default()
4106 }
4107
4108 unsafe fn decode(
4109 &mut self,
4110 decoder: &mut fidl::encoding::Decoder<'_, D>,
4111 offset: usize,
4112 mut depth: fidl::encoding::Depth,
4113 ) -> fidl::Result<()> {
4114 decoder.debug_check_bounds::<Self>(offset);
4115 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
4116 None => return Err(fidl::Error::NotNullable),
4117 Some(len) => len,
4118 };
4119 if len == 0 {
4121 return Ok(());
4122 };
4123 depth.increment()?;
4124 let envelope_size = 8;
4125 let bytes_len = len * envelope_size;
4126 let offset = decoder.out_of_line_offset(bytes_len)?;
4127 let mut _next_ordinal_to_read = 0;
4129 let mut next_offset = offset;
4130 let end_offset = offset + bytes_len;
4131 _next_ordinal_to_read += 1;
4132 if next_offset >= end_offset {
4133 return Ok(());
4134 }
4135
4136 while _next_ordinal_to_read < 1 {
4138 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4139 _next_ordinal_to_read += 1;
4140 next_offset += envelope_size;
4141 }
4142
4143 let next_out_of_line = decoder.next_out_of_line();
4144 let handles_before = decoder.remaining_handles();
4145 if let Some((inlined, num_bytes, num_handles)) =
4146 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4147 {
4148 let member_inline_size =
4149 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
4150 decoder.context,
4151 );
4152 if inlined != (member_inline_size <= 4) {
4153 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4154 }
4155 let inner_offset;
4156 let mut inner_depth = depth.clone();
4157 if inlined {
4158 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4159 inner_offset = next_offset;
4160 } else {
4161 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4162 inner_depth.increment()?;
4163 }
4164 let val_ref = self
4165 .peer_sta_address
4166 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
4167 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
4168 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4169 {
4170 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4171 }
4172 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4173 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4174 }
4175 }
4176
4177 next_offset += envelope_size;
4178 _next_ordinal_to_read += 1;
4179 if next_offset >= end_offset {
4180 return Ok(());
4181 }
4182
4183 while _next_ordinal_to_read < 2 {
4185 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4186 _next_ordinal_to_read += 1;
4187 next_offset += envelope_size;
4188 }
4189
4190 let next_out_of_line = decoder.next_out_of_line();
4191 let handles_before = decoder.remaining_handles();
4192 if let Some((inlined, num_bytes, num_handles)) =
4193 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4194 {
4195 let member_inline_size =
4196 <WlanAssocResult as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4197 if inlined != (member_inline_size <= 4) {
4198 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4199 }
4200 let inner_offset;
4201 let mut inner_depth = depth.clone();
4202 if inlined {
4203 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4204 inner_offset = next_offset;
4205 } else {
4206 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4207 inner_depth.increment()?;
4208 }
4209 let val_ref =
4210 self.result_code.get_or_insert_with(|| fidl::new_empty!(WlanAssocResult, D));
4211 fidl::decode!(WlanAssocResult, D, val_ref, decoder, inner_offset, inner_depth)?;
4212 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4213 {
4214 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4215 }
4216 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4217 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4218 }
4219 }
4220
4221 next_offset += envelope_size;
4222 _next_ordinal_to_read += 1;
4223 if next_offset >= end_offset {
4224 return Ok(());
4225 }
4226
4227 while _next_ordinal_to_read < 3 {
4229 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4230 _next_ordinal_to_read += 1;
4231 next_offset += envelope_size;
4232 }
4233
4234 let next_out_of_line = decoder.next_out_of_line();
4235 let handles_before = decoder.remaining_handles();
4236 if let Some((inlined, num_bytes, num_handles)) =
4237 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4238 {
4239 let member_inline_size =
4240 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4241 if inlined != (member_inline_size <= 4) {
4242 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4243 }
4244 let inner_offset;
4245 let mut inner_depth = depth.clone();
4246 if inlined {
4247 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4248 inner_offset = next_offset;
4249 } else {
4250 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4251 inner_depth.increment()?;
4252 }
4253 let val_ref = self.association_id.get_or_insert_with(|| fidl::new_empty!(u16, D));
4254 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
4255 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4256 {
4257 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4258 }
4259 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4260 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4261 }
4262 }
4263
4264 next_offset += envelope_size;
4265
4266 while next_offset < end_offset {
4268 _next_ordinal_to_read += 1;
4269 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4270 next_offset += envelope_size;
4271 }
4272
4273 Ok(())
4274 }
4275 }
4276
4277 impl WlanFullmacImplAuthRespRequest {
4278 #[inline(always)]
4279 fn max_ordinal_present(&self) -> u64 {
4280 if let Some(_) = self.result_code {
4281 return 2;
4282 }
4283 if let Some(_) = self.peer_sta_address {
4284 return 1;
4285 }
4286 0
4287 }
4288 }
4289
4290 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplAuthRespRequest {
4291 type Borrowed<'a> = &'a Self;
4292 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4293 value
4294 }
4295 }
4296
4297 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplAuthRespRequest {
4298 type Owned = Self;
4299
4300 #[inline(always)]
4301 fn inline_align(_context: fidl::encoding::Context) -> usize {
4302 8
4303 }
4304
4305 #[inline(always)]
4306 fn inline_size(_context: fidl::encoding::Context) -> usize {
4307 16
4308 }
4309 }
4310
4311 unsafe impl<D: fidl::encoding::ResourceDialect>
4312 fidl::encoding::Encode<WlanFullmacImplAuthRespRequest, D>
4313 for &WlanFullmacImplAuthRespRequest
4314 {
4315 unsafe fn encode(
4316 self,
4317 encoder: &mut fidl::encoding::Encoder<'_, D>,
4318 offset: usize,
4319 mut depth: fidl::encoding::Depth,
4320 ) -> fidl::Result<()> {
4321 encoder.debug_check_bounds::<WlanFullmacImplAuthRespRequest>(offset);
4322 let max_ordinal: u64 = self.max_ordinal_present();
4324 encoder.write_num(max_ordinal, offset);
4325 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
4326 if max_ordinal == 0 {
4328 return Ok(());
4329 }
4330 depth.increment()?;
4331 let envelope_size = 8;
4332 let bytes_len = max_ordinal as usize * envelope_size;
4333 #[allow(unused_variables)]
4334 let offset = encoder.out_of_line_offset(bytes_len);
4335 let mut _prev_end_offset: usize = 0;
4336 if 1 > max_ordinal {
4337 return Ok(());
4338 }
4339
4340 let cur_offset: usize = (1 - 1) * envelope_size;
4343
4344 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4346
4347 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
4352 self.peer_sta_address
4353 .as_ref()
4354 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
4355 encoder,
4356 offset + cur_offset,
4357 depth,
4358 )?;
4359
4360 _prev_end_offset = cur_offset + envelope_size;
4361 if 2 > max_ordinal {
4362 return Ok(());
4363 }
4364
4365 let cur_offset: usize = (2 - 1) * envelope_size;
4368
4369 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4371
4372 fidl::encoding::encode_in_envelope_optional::<WlanAuthResult, D>(
4377 self.result_code
4378 .as_ref()
4379 .map(<WlanAuthResult as fidl::encoding::ValueTypeMarker>::borrow),
4380 encoder,
4381 offset + cur_offset,
4382 depth,
4383 )?;
4384
4385 _prev_end_offset = cur_offset + envelope_size;
4386
4387 Ok(())
4388 }
4389 }
4390
4391 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
4392 for WlanFullmacImplAuthRespRequest
4393 {
4394 #[inline(always)]
4395 fn new_empty() -> Self {
4396 Self::default()
4397 }
4398
4399 unsafe fn decode(
4400 &mut self,
4401 decoder: &mut fidl::encoding::Decoder<'_, D>,
4402 offset: usize,
4403 mut depth: fidl::encoding::Depth,
4404 ) -> fidl::Result<()> {
4405 decoder.debug_check_bounds::<Self>(offset);
4406 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
4407 None => return Err(fidl::Error::NotNullable),
4408 Some(len) => len,
4409 };
4410 if len == 0 {
4412 return Ok(());
4413 };
4414 depth.increment()?;
4415 let envelope_size = 8;
4416 let bytes_len = len * envelope_size;
4417 let offset = decoder.out_of_line_offset(bytes_len)?;
4418 let mut _next_ordinal_to_read = 0;
4420 let mut next_offset = offset;
4421 let end_offset = offset + bytes_len;
4422 _next_ordinal_to_read += 1;
4423 if next_offset >= end_offset {
4424 return Ok(());
4425 }
4426
4427 while _next_ordinal_to_read < 1 {
4429 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4430 _next_ordinal_to_read += 1;
4431 next_offset += envelope_size;
4432 }
4433
4434 let next_out_of_line = decoder.next_out_of_line();
4435 let handles_before = decoder.remaining_handles();
4436 if let Some((inlined, num_bytes, num_handles)) =
4437 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4438 {
4439 let member_inline_size =
4440 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
4441 decoder.context,
4442 );
4443 if inlined != (member_inline_size <= 4) {
4444 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4445 }
4446 let inner_offset;
4447 let mut inner_depth = depth.clone();
4448 if inlined {
4449 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4450 inner_offset = next_offset;
4451 } else {
4452 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4453 inner_depth.increment()?;
4454 }
4455 let val_ref = self
4456 .peer_sta_address
4457 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
4458 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
4459 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4460 {
4461 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4462 }
4463 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4464 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4465 }
4466 }
4467
4468 next_offset += envelope_size;
4469 _next_ordinal_to_read += 1;
4470 if next_offset >= end_offset {
4471 return Ok(());
4472 }
4473
4474 while _next_ordinal_to_read < 2 {
4476 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4477 _next_ordinal_to_read += 1;
4478 next_offset += envelope_size;
4479 }
4480
4481 let next_out_of_line = decoder.next_out_of_line();
4482 let handles_before = decoder.remaining_handles();
4483 if let Some((inlined, num_bytes, num_handles)) =
4484 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4485 {
4486 let member_inline_size =
4487 <WlanAuthResult as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4488 if inlined != (member_inline_size <= 4) {
4489 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4490 }
4491 let inner_offset;
4492 let mut inner_depth = depth.clone();
4493 if inlined {
4494 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4495 inner_offset = next_offset;
4496 } else {
4497 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4498 inner_depth.increment()?;
4499 }
4500 let val_ref =
4501 self.result_code.get_or_insert_with(|| fidl::new_empty!(WlanAuthResult, D));
4502 fidl::decode!(WlanAuthResult, D, val_ref, decoder, inner_offset, inner_depth)?;
4503 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4504 {
4505 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4506 }
4507 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4508 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4509 }
4510 }
4511
4512 next_offset += envelope_size;
4513
4514 while next_offset < end_offset {
4516 _next_ordinal_to_read += 1;
4517 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4518 next_offset += envelope_size;
4519 }
4520
4521 Ok(())
4522 }
4523 }
4524
4525 impl WlanFullmacImplConnectRequest {
4526 #[inline(always)]
4527 fn max_ordinal_present(&self) -> u64 {
4528 if let Some(_) = self.owe_public_key {
4529 return 8;
4530 }
4531 if let Some(_) = self.wep_key_desc {
4532 return 7;
4533 }
4534 if let Some(_) = self.security_ie {
4535 return 6;
4536 }
4537 if let Some(_) = self.wep_key {
4538 return 5;
4539 }
4540 if let Some(_) = self.sae_password {
4541 return 4;
4542 }
4543 if let Some(_) = self.auth_type {
4544 return 3;
4545 }
4546 if let Some(_) = self.connect_failure_timeout {
4547 return 2;
4548 }
4549 if let Some(_) = self.selected_bss {
4550 return 1;
4551 }
4552 0
4553 }
4554 }
4555
4556 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplConnectRequest {
4557 type Borrowed<'a> = &'a Self;
4558 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4559 value
4560 }
4561 }
4562
4563 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplConnectRequest {
4564 type Owned = Self;
4565
4566 #[inline(always)]
4567 fn inline_align(_context: fidl::encoding::Context) -> usize {
4568 8
4569 }
4570
4571 #[inline(always)]
4572 fn inline_size(_context: fidl::encoding::Context) -> usize {
4573 16
4574 }
4575 }
4576
4577 unsafe impl<D: fidl::encoding::ResourceDialect>
4578 fidl::encoding::Encode<WlanFullmacImplConnectRequest, D>
4579 for &WlanFullmacImplConnectRequest
4580 {
4581 unsafe fn encode(
4582 self,
4583 encoder: &mut fidl::encoding::Encoder<'_, D>,
4584 offset: usize,
4585 mut depth: fidl::encoding::Depth,
4586 ) -> fidl::Result<()> {
4587 encoder.debug_check_bounds::<WlanFullmacImplConnectRequest>(offset);
4588 let max_ordinal: u64 = self.max_ordinal_present();
4590 encoder.write_num(max_ordinal, offset);
4591 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
4592 if max_ordinal == 0 {
4594 return Ok(());
4595 }
4596 depth.increment()?;
4597 let envelope_size = 8;
4598 let bytes_len = max_ordinal as usize * envelope_size;
4599 #[allow(unused_variables)]
4600 let offset = encoder.out_of_line_offset(bytes_len);
4601 let mut _prev_end_offset: usize = 0;
4602 if 1 > max_ordinal {
4603 return Ok(());
4604 }
4605
4606 let cur_offset: usize = (1 - 1) * envelope_size;
4609
4610 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4612
4613 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_common__common::BssDescription, D>(
4618 self.selected_bss.as_ref().map(<fidl_fuchsia_wlan_common__common::BssDescription as fidl::encoding::ValueTypeMarker>::borrow),
4619 encoder, offset + cur_offset, depth
4620 )?;
4621
4622 _prev_end_offset = cur_offset + envelope_size;
4623 if 2 > max_ordinal {
4624 return Ok(());
4625 }
4626
4627 let cur_offset: usize = (2 - 1) * envelope_size;
4630
4631 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4633
4634 fidl::encoding::encode_in_envelope_optional::<u32, D>(
4639 self.connect_failure_timeout
4640 .as_ref()
4641 .map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
4642 encoder,
4643 offset + cur_offset,
4644 depth,
4645 )?;
4646
4647 _prev_end_offset = cur_offset + envelope_size;
4648 if 3 > max_ordinal {
4649 return Ok(());
4650 }
4651
4652 let cur_offset: usize = (3 - 1) * envelope_size;
4655
4656 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4658
4659 fidl::encoding::encode_in_envelope_optional::<WlanAuthType, D>(
4664 self.auth_type
4665 .as_ref()
4666 .map(<WlanAuthType as fidl::encoding::ValueTypeMarker>::borrow),
4667 encoder,
4668 offset + cur_offset,
4669 depth,
4670 )?;
4671
4672 _prev_end_offset = cur_offset + envelope_size;
4673 if 4 > max_ordinal {
4674 return Ok(());
4675 }
4676
4677 let cur_offset: usize = (4 - 1) * envelope_size;
4680
4681 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4683
4684 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<u8>, D>(
4689 self.sae_password.as_ref().map(<fidl::encoding::UnboundedVector<u8> as fidl::encoding::ValueTypeMarker>::borrow),
4690 encoder, offset + cur_offset, depth
4691 )?;
4692
4693 _prev_end_offset = cur_offset + envelope_size;
4694 if 5 > max_ordinal {
4695 return Ok(());
4696 }
4697
4698 let cur_offset: usize = (5 - 1) * envelope_size;
4701
4702 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4704
4705 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_common__common::WlanKeyConfig, D>(
4710 self.wep_key.as_ref().map(<fidl_fuchsia_wlan_common__common::WlanKeyConfig as fidl::encoding::ValueTypeMarker>::borrow),
4711 encoder, offset + cur_offset, depth
4712 )?;
4713
4714 _prev_end_offset = cur_offset + envelope_size;
4715 if 6 > max_ordinal {
4716 return Ok(());
4717 }
4718
4719 let cur_offset: usize = (6 - 1) * envelope_size;
4722
4723 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4725
4726 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<u8, 257>, D>(
4731 self.security_ie.as_ref().map(
4732 <fidl::encoding::Vector<u8, 257> as fidl::encoding::ValueTypeMarker>::borrow,
4733 ),
4734 encoder,
4735 offset + cur_offset,
4736 depth,
4737 )?;
4738
4739 _prev_end_offset = cur_offset + envelope_size;
4740 if 7 > max_ordinal {
4741 return Ok(());
4742 }
4743
4744 let cur_offset: usize = (7 - 1) * envelope_size;
4747
4748 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4750
4751 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_ieee80211__common::SetKeyDescriptor, D>(
4756 self.wep_key_desc.as_ref().map(<fidl_fuchsia_wlan_ieee80211__common::SetKeyDescriptor as fidl::encoding::ValueTypeMarker>::borrow),
4757 encoder, offset + cur_offset, depth
4758 )?;
4759
4760 _prev_end_offset = cur_offset + envelope_size;
4761 if 8 > max_ordinal {
4762 return Ok(());
4763 }
4764
4765 let cur_offset: usize = (8 - 1) * envelope_size;
4768
4769 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4771
4772 fidl::encoding::encode_in_envelope_optional::<WlanFullmacOwePublicKey, D>(
4777 self.owe_public_key
4778 .as_ref()
4779 .map(<WlanFullmacOwePublicKey as fidl::encoding::ValueTypeMarker>::borrow),
4780 encoder,
4781 offset + cur_offset,
4782 depth,
4783 )?;
4784
4785 _prev_end_offset = cur_offset + envelope_size;
4786
4787 Ok(())
4788 }
4789 }
4790
4791 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
4792 for WlanFullmacImplConnectRequest
4793 {
4794 #[inline(always)]
4795 fn new_empty() -> Self {
4796 Self::default()
4797 }
4798
4799 unsafe fn decode(
4800 &mut self,
4801 decoder: &mut fidl::encoding::Decoder<'_, D>,
4802 offset: usize,
4803 mut depth: fidl::encoding::Depth,
4804 ) -> fidl::Result<()> {
4805 decoder.debug_check_bounds::<Self>(offset);
4806 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
4807 None => return Err(fidl::Error::NotNullable),
4808 Some(len) => len,
4809 };
4810 if len == 0 {
4812 return Ok(());
4813 };
4814 depth.increment()?;
4815 let envelope_size = 8;
4816 let bytes_len = len * envelope_size;
4817 let offset = decoder.out_of_line_offset(bytes_len)?;
4818 let mut _next_ordinal_to_read = 0;
4820 let mut next_offset = offset;
4821 let end_offset = offset + bytes_len;
4822 _next_ordinal_to_read += 1;
4823 if next_offset >= end_offset {
4824 return Ok(());
4825 }
4826
4827 while _next_ordinal_to_read < 1 {
4829 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4830 _next_ordinal_to_read += 1;
4831 next_offset += envelope_size;
4832 }
4833
4834 let next_out_of_line = decoder.next_out_of_line();
4835 let handles_before = decoder.remaining_handles();
4836 if let Some((inlined, num_bytes, num_handles)) =
4837 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4838 {
4839 let member_inline_size = <fidl_fuchsia_wlan_common__common::BssDescription as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4840 if inlined != (member_inline_size <= 4) {
4841 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4842 }
4843 let inner_offset;
4844 let mut inner_depth = depth.clone();
4845 if inlined {
4846 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4847 inner_offset = next_offset;
4848 } else {
4849 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4850 inner_depth.increment()?;
4851 }
4852 let val_ref = self.selected_bss.get_or_insert_with(|| {
4853 fidl::new_empty!(fidl_fuchsia_wlan_common__common::BssDescription, D)
4854 });
4855 fidl::decode!(
4856 fidl_fuchsia_wlan_common__common::BssDescription,
4857 D,
4858 val_ref,
4859 decoder,
4860 inner_offset,
4861 inner_depth
4862 )?;
4863 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4864 {
4865 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4866 }
4867 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4868 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4869 }
4870 }
4871
4872 next_offset += envelope_size;
4873 _next_ordinal_to_read += 1;
4874 if next_offset >= end_offset {
4875 return Ok(());
4876 }
4877
4878 while _next_ordinal_to_read < 2 {
4880 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4881 _next_ordinal_to_read += 1;
4882 next_offset += envelope_size;
4883 }
4884
4885 let next_out_of_line = decoder.next_out_of_line();
4886 let handles_before = decoder.remaining_handles();
4887 if let Some((inlined, num_bytes, num_handles)) =
4888 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4889 {
4890 let member_inline_size =
4891 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4892 if inlined != (member_inline_size <= 4) {
4893 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4894 }
4895 let inner_offset;
4896 let mut inner_depth = depth.clone();
4897 if inlined {
4898 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4899 inner_offset = next_offset;
4900 } else {
4901 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4902 inner_depth.increment()?;
4903 }
4904 let val_ref =
4905 self.connect_failure_timeout.get_or_insert_with(|| fidl::new_empty!(u32, D));
4906 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
4907 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4908 {
4909 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4910 }
4911 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4912 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4913 }
4914 }
4915
4916 next_offset += envelope_size;
4917 _next_ordinal_to_read += 1;
4918 if next_offset >= end_offset {
4919 return Ok(());
4920 }
4921
4922 while _next_ordinal_to_read < 3 {
4924 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4925 _next_ordinal_to_read += 1;
4926 next_offset += envelope_size;
4927 }
4928
4929 let next_out_of_line = decoder.next_out_of_line();
4930 let handles_before = decoder.remaining_handles();
4931 if let Some((inlined, num_bytes, num_handles)) =
4932 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4933 {
4934 let member_inline_size =
4935 <WlanAuthType as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4936 if inlined != (member_inline_size <= 4) {
4937 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4938 }
4939 let inner_offset;
4940 let mut inner_depth = depth.clone();
4941 if inlined {
4942 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4943 inner_offset = next_offset;
4944 } else {
4945 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4946 inner_depth.increment()?;
4947 }
4948 let val_ref =
4949 self.auth_type.get_or_insert_with(|| fidl::new_empty!(WlanAuthType, D));
4950 fidl::decode!(WlanAuthType, D, val_ref, decoder, inner_offset, inner_depth)?;
4951 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4952 {
4953 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4954 }
4955 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4956 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4957 }
4958 }
4959
4960 next_offset += envelope_size;
4961 _next_ordinal_to_read += 1;
4962 if next_offset >= end_offset {
4963 return Ok(());
4964 }
4965
4966 while _next_ordinal_to_read < 4 {
4968 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4969 _next_ordinal_to_read += 1;
4970 next_offset += envelope_size;
4971 }
4972
4973 let next_out_of_line = decoder.next_out_of_line();
4974 let handles_before = decoder.remaining_handles();
4975 if let Some((inlined, num_bytes, num_handles)) =
4976 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4977 {
4978 let member_inline_size = <fidl::encoding::UnboundedVector<u8> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4979 if inlined != (member_inline_size <= 4) {
4980 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4981 }
4982 let inner_offset;
4983 let mut inner_depth = depth.clone();
4984 if inlined {
4985 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4986 inner_offset = next_offset;
4987 } else {
4988 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4989 inner_depth.increment()?;
4990 }
4991 let val_ref = self.sae_password.get_or_insert_with(|| {
4992 fidl::new_empty!(fidl::encoding::UnboundedVector<u8>, D)
4993 });
4994 fidl::decode!(
4995 fidl::encoding::UnboundedVector<u8>,
4996 D,
4997 val_ref,
4998 decoder,
4999 inner_offset,
5000 inner_depth
5001 )?;
5002 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5003 {
5004 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5005 }
5006 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5007 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5008 }
5009 }
5010
5011 next_offset += envelope_size;
5012 _next_ordinal_to_read += 1;
5013 if next_offset >= end_offset {
5014 return Ok(());
5015 }
5016
5017 while _next_ordinal_to_read < 5 {
5019 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5020 _next_ordinal_to_read += 1;
5021 next_offset += envelope_size;
5022 }
5023
5024 let next_out_of_line = decoder.next_out_of_line();
5025 let handles_before = decoder.remaining_handles();
5026 if let Some((inlined, num_bytes, num_handles)) =
5027 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5028 {
5029 let member_inline_size = <fidl_fuchsia_wlan_common__common::WlanKeyConfig as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5030 if inlined != (member_inline_size <= 4) {
5031 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5032 }
5033 let inner_offset;
5034 let mut inner_depth = depth.clone();
5035 if inlined {
5036 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5037 inner_offset = next_offset;
5038 } else {
5039 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5040 inner_depth.increment()?;
5041 }
5042 let val_ref = self.wep_key.get_or_insert_with(|| {
5043 fidl::new_empty!(fidl_fuchsia_wlan_common__common::WlanKeyConfig, D)
5044 });
5045 fidl::decode!(
5046 fidl_fuchsia_wlan_common__common::WlanKeyConfig,
5047 D,
5048 val_ref,
5049 decoder,
5050 inner_offset,
5051 inner_depth
5052 )?;
5053 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5054 {
5055 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5056 }
5057 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5058 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5059 }
5060 }
5061
5062 next_offset += envelope_size;
5063 _next_ordinal_to_read += 1;
5064 if next_offset >= end_offset {
5065 return Ok(());
5066 }
5067
5068 while _next_ordinal_to_read < 6 {
5070 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5071 _next_ordinal_to_read += 1;
5072 next_offset += envelope_size;
5073 }
5074
5075 let next_out_of_line = decoder.next_out_of_line();
5076 let handles_before = decoder.remaining_handles();
5077 if let Some((inlined, num_bytes, num_handles)) =
5078 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5079 {
5080 let member_inline_size =
5081 <fidl::encoding::Vector<u8, 257> as fidl::encoding::TypeMarker>::inline_size(
5082 decoder.context,
5083 );
5084 if inlined != (member_inline_size <= 4) {
5085 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5086 }
5087 let inner_offset;
5088 let mut inner_depth = depth.clone();
5089 if inlined {
5090 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5091 inner_offset = next_offset;
5092 } else {
5093 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5094 inner_depth.increment()?;
5095 }
5096 let val_ref = self
5097 .security_ie
5098 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<u8, 257>, D));
5099 fidl::decode!(fidl::encoding::Vector<u8, 257>, D, val_ref, decoder, inner_offset, inner_depth)?;
5100 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5101 {
5102 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5103 }
5104 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5105 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5106 }
5107 }
5108
5109 next_offset += envelope_size;
5110 _next_ordinal_to_read += 1;
5111 if next_offset >= end_offset {
5112 return Ok(());
5113 }
5114
5115 while _next_ordinal_to_read < 7 {
5117 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5118 _next_ordinal_to_read += 1;
5119 next_offset += envelope_size;
5120 }
5121
5122 let next_out_of_line = decoder.next_out_of_line();
5123 let handles_before = decoder.remaining_handles();
5124 if let Some((inlined, num_bytes, num_handles)) =
5125 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5126 {
5127 let member_inline_size = <fidl_fuchsia_wlan_ieee80211__common::SetKeyDescriptor as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5128 if inlined != (member_inline_size <= 4) {
5129 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5130 }
5131 let inner_offset;
5132 let mut inner_depth = depth.clone();
5133 if inlined {
5134 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5135 inner_offset = next_offset;
5136 } else {
5137 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5138 inner_depth.increment()?;
5139 }
5140 let val_ref = self.wep_key_desc.get_or_insert_with(|| {
5141 fidl::new_empty!(fidl_fuchsia_wlan_ieee80211__common::SetKeyDescriptor, D)
5142 });
5143 fidl::decode!(
5144 fidl_fuchsia_wlan_ieee80211__common::SetKeyDescriptor,
5145 D,
5146 val_ref,
5147 decoder,
5148 inner_offset,
5149 inner_depth
5150 )?;
5151 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5152 {
5153 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5154 }
5155 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5156 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5157 }
5158 }
5159
5160 next_offset += envelope_size;
5161 _next_ordinal_to_read += 1;
5162 if next_offset >= end_offset {
5163 return Ok(());
5164 }
5165
5166 while _next_ordinal_to_read < 8 {
5168 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5169 _next_ordinal_to_read += 1;
5170 next_offset += envelope_size;
5171 }
5172
5173 let next_out_of_line = decoder.next_out_of_line();
5174 let handles_before = decoder.remaining_handles();
5175 if let Some((inlined, num_bytes, num_handles)) =
5176 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5177 {
5178 let member_inline_size =
5179 <WlanFullmacOwePublicKey as fidl::encoding::TypeMarker>::inline_size(
5180 decoder.context,
5181 );
5182 if inlined != (member_inline_size <= 4) {
5183 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5184 }
5185 let inner_offset;
5186 let mut inner_depth = depth.clone();
5187 if inlined {
5188 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5189 inner_offset = next_offset;
5190 } else {
5191 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5192 inner_depth.increment()?;
5193 }
5194 let val_ref = self
5195 .owe_public_key
5196 .get_or_insert_with(|| fidl::new_empty!(WlanFullmacOwePublicKey, D));
5197 fidl::decode!(
5198 WlanFullmacOwePublicKey,
5199 D,
5200 val_ref,
5201 decoder,
5202 inner_offset,
5203 inner_depth
5204 )?;
5205 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5206 {
5207 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5208 }
5209 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5210 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5211 }
5212 }
5213
5214 next_offset += envelope_size;
5215
5216 while next_offset < end_offset {
5218 _next_ordinal_to_read += 1;
5219 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5220 next_offset += envelope_size;
5221 }
5222
5223 Ok(())
5224 }
5225 }
5226
5227 impl WlanFullmacImplDeauthRequest {
5228 #[inline(always)]
5229 fn max_ordinal_present(&self) -> u64 {
5230 if let Some(_) = self.reason_code {
5231 return 2;
5232 }
5233 if let Some(_) = self.peer_sta_address {
5234 return 1;
5235 }
5236 0
5237 }
5238 }
5239
5240 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplDeauthRequest {
5241 type Borrowed<'a> = &'a Self;
5242 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
5243 value
5244 }
5245 }
5246
5247 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplDeauthRequest {
5248 type Owned = Self;
5249
5250 #[inline(always)]
5251 fn inline_align(_context: fidl::encoding::Context) -> usize {
5252 8
5253 }
5254
5255 #[inline(always)]
5256 fn inline_size(_context: fidl::encoding::Context) -> usize {
5257 16
5258 }
5259 }
5260
5261 unsafe impl<D: fidl::encoding::ResourceDialect>
5262 fidl::encoding::Encode<WlanFullmacImplDeauthRequest, D> for &WlanFullmacImplDeauthRequest
5263 {
5264 unsafe fn encode(
5265 self,
5266 encoder: &mut fidl::encoding::Encoder<'_, D>,
5267 offset: usize,
5268 mut depth: fidl::encoding::Depth,
5269 ) -> fidl::Result<()> {
5270 encoder.debug_check_bounds::<WlanFullmacImplDeauthRequest>(offset);
5271 let max_ordinal: u64 = self.max_ordinal_present();
5273 encoder.write_num(max_ordinal, offset);
5274 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
5275 if max_ordinal == 0 {
5277 return Ok(());
5278 }
5279 depth.increment()?;
5280 let envelope_size = 8;
5281 let bytes_len = max_ordinal as usize * envelope_size;
5282 #[allow(unused_variables)]
5283 let offset = encoder.out_of_line_offset(bytes_len);
5284 let mut _prev_end_offset: usize = 0;
5285 if 1 > max_ordinal {
5286 return Ok(());
5287 }
5288
5289 let cur_offset: usize = (1 - 1) * envelope_size;
5292
5293 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5295
5296 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
5301 self.peer_sta_address
5302 .as_ref()
5303 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
5304 encoder,
5305 offset + cur_offset,
5306 depth,
5307 )?;
5308
5309 _prev_end_offset = cur_offset + envelope_size;
5310 if 2 > max_ordinal {
5311 return Ok(());
5312 }
5313
5314 let cur_offset: usize = (2 - 1) * envelope_size;
5317
5318 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5320
5321 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_ieee80211__common::ReasonCode, D>(
5326 self.reason_code.as_ref().map(<fidl_fuchsia_wlan_ieee80211__common::ReasonCode as fidl::encoding::ValueTypeMarker>::borrow),
5327 encoder, offset + cur_offset, depth
5328 )?;
5329
5330 _prev_end_offset = cur_offset + envelope_size;
5331
5332 Ok(())
5333 }
5334 }
5335
5336 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
5337 for WlanFullmacImplDeauthRequest
5338 {
5339 #[inline(always)]
5340 fn new_empty() -> Self {
5341 Self::default()
5342 }
5343
5344 unsafe fn decode(
5345 &mut self,
5346 decoder: &mut fidl::encoding::Decoder<'_, D>,
5347 offset: usize,
5348 mut depth: fidl::encoding::Depth,
5349 ) -> fidl::Result<()> {
5350 decoder.debug_check_bounds::<Self>(offset);
5351 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
5352 None => return Err(fidl::Error::NotNullable),
5353 Some(len) => len,
5354 };
5355 if len == 0 {
5357 return Ok(());
5358 };
5359 depth.increment()?;
5360 let envelope_size = 8;
5361 let bytes_len = len * envelope_size;
5362 let offset = decoder.out_of_line_offset(bytes_len)?;
5363 let mut _next_ordinal_to_read = 0;
5365 let mut next_offset = offset;
5366 let end_offset = offset + bytes_len;
5367 _next_ordinal_to_read += 1;
5368 if next_offset >= end_offset {
5369 return Ok(());
5370 }
5371
5372 while _next_ordinal_to_read < 1 {
5374 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5375 _next_ordinal_to_read += 1;
5376 next_offset += envelope_size;
5377 }
5378
5379 let next_out_of_line = decoder.next_out_of_line();
5380 let handles_before = decoder.remaining_handles();
5381 if let Some((inlined, num_bytes, num_handles)) =
5382 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5383 {
5384 let member_inline_size =
5385 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
5386 decoder.context,
5387 );
5388 if inlined != (member_inline_size <= 4) {
5389 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5390 }
5391 let inner_offset;
5392 let mut inner_depth = depth.clone();
5393 if inlined {
5394 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5395 inner_offset = next_offset;
5396 } else {
5397 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5398 inner_depth.increment()?;
5399 }
5400 let val_ref = self
5401 .peer_sta_address
5402 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
5403 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
5404 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5405 {
5406 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5407 }
5408 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5409 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5410 }
5411 }
5412
5413 next_offset += envelope_size;
5414 _next_ordinal_to_read += 1;
5415 if next_offset >= end_offset {
5416 return Ok(());
5417 }
5418
5419 while _next_ordinal_to_read < 2 {
5421 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5422 _next_ordinal_to_read += 1;
5423 next_offset += envelope_size;
5424 }
5425
5426 let next_out_of_line = decoder.next_out_of_line();
5427 let handles_before = decoder.remaining_handles();
5428 if let Some((inlined, num_bytes, num_handles)) =
5429 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5430 {
5431 let member_inline_size = <fidl_fuchsia_wlan_ieee80211__common::ReasonCode as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5432 if inlined != (member_inline_size <= 4) {
5433 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5434 }
5435 let inner_offset;
5436 let mut inner_depth = depth.clone();
5437 if inlined {
5438 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5439 inner_offset = next_offset;
5440 } else {
5441 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5442 inner_depth.increment()?;
5443 }
5444 let val_ref = self.reason_code.get_or_insert_with(|| {
5445 fidl::new_empty!(fidl_fuchsia_wlan_ieee80211__common::ReasonCode, D)
5446 });
5447 fidl::decode!(
5448 fidl_fuchsia_wlan_ieee80211__common::ReasonCode,
5449 D,
5450 val_ref,
5451 decoder,
5452 inner_offset,
5453 inner_depth
5454 )?;
5455 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5456 {
5457 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5458 }
5459 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5460 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5461 }
5462 }
5463
5464 next_offset += envelope_size;
5465
5466 while next_offset < end_offset {
5468 _next_ordinal_to_read += 1;
5469 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5470 next_offset += envelope_size;
5471 }
5472
5473 Ok(())
5474 }
5475 }
5476
5477 impl WlanFullmacImplDisassocRequest {
5478 #[inline(always)]
5479 fn max_ordinal_present(&self) -> u64 {
5480 if let Some(_) = self.reason_code {
5481 return 2;
5482 }
5483 if let Some(_) = self.peer_sta_address {
5484 return 1;
5485 }
5486 0
5487 }
5488 }
5489
5490 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplDisassocRequest {
5491 type Borrowed<'a> = &'a Self;
5492 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
5493 value
5494 }
5495 }
5496
5497 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplDisassocRequest {
5498 type Owned = Self;
5499
5500 #[inline(always)]
5501 fn inline_align(_context: fidl::encoding::Context) -> usize {
5502 8
5503 }
5504
5505 #[inline(always)]
5506 fn inline_size(_context: fidl::encoding::Context) -> usize {
5507 16
5508 }
5509 }
5510
5511 unsafe impl<D: fidl::encoding::ResourceDialect>
5512 fidl::encoding::Encode<WlanFullmacImplDisassocRequest, D>
5513 for &WlanFullmacImplDisassocRequest
5514 {
5515 unsafe fn encode(
5516 self,
5517 encoder: &mut fidl::encoding::Encoder<'_, D>,
5518 offset: usize,
5519 mut depth: fidl::encoding::Depth,
5520 ) -> fidl::Result<()> {
5521 encoder.debug_check_bounds::<WlanFullmacImplDisassocRequest>(offset);
5522 let max_ordinal: u64 = self.max_ordinal_present();
5524 encoder.write_num(max_ordinal, offset);
5525 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
5526 if max_ordinal == 0 {
5528 return Ok(());
5529 }
5530 depth.increment()?;
5531 let envelope_size = 8;
5532 let bytes_len = max_ordinal as usize * envelope_size;
5533 #[allow(unused_variables)]
5534 let offset = encoder.out_of_line_offset(bytes_len);
5535 let mut _prev_end_offset: usize = 0;
5536 if 1 > max_ordinal {
5537 return Ok(());
5538 }
5539
5540 let cur_offset: usize = (1 - 1) * envelope_size;
5543
5544 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5546
5547 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
5552 self.peer_sta_address
5553 .as_ref()
5554 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
5555 encoder,
5556 offset + cur_offset,
5557 depth,
5558 )?;
5559
5560 _prev_end_offset = cur_offset + envelope_size;
5561 if 2 > max_ordinal {
5562 return Ok(());
5563 }
5564
5565 let cur_offset: usize = (2 - 1) * envelope_size;
5568
5569 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5571
5572 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_ieee80211__common::ReasonCode, D>(
5577 self.reason_code.as_ref().map(<fidl_fuchsia_wlan_ieee80211__common::ReasonCode as fidl::encoding::ValueTypeMarker>::borrow),
5578 encoder, offset + cur_offset, depth
5579 )?;
5580
5581 _prev_end_offset = cur_offset + envelope_size;
5582
5583 Ok(())
5584 }
5585 }
5586
5587 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
5588 for WlanFullmacImplDisassocRequest
5589 {
5590 #[inline(always)]
5591 fn new_empty() -> Self {
5592 Self::default()
5593 }
5594
5595 unsafe fn decode(
5596 &mut self,
5597 decoder: &mut fidl::encoding::Decoder<'_, D>,
5598 offset: usize,
5599 mut depth: fidl::encoding::Depth,
5600 ) -> fidl::Result<()> {
5601 decoder.debug_check_bounds::<Self>(offset);
5602 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
5603 None => return Err(fidl::Error::NotNullable),
5604 Some(len) => len,
5605 };
5606 if len == 0 {
5608 return Ok(());
5609 };
5610 depth.increment()?;
5611 let envelope_size = 8;
5612 let bytes_len = len * envelope_size;
5613 let offset = decoder.out_of_line_offset(bytes_len)?;
5614 let mut _next_ordinal_to_read = 0;
5616 let mut next_offset = offset;
5617 let end_offset = offset + bytes_len;
5618 _next_ordinal_to_read += 1;
5619 if next_offset >= end_offset {
5620 return Ok(());
5621 }
5622
5623 while _next_ordinal_to_read < 1 {
5625 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5626 _next_ordinal_to_read += 1;
5627 next_offset += envelope_size;
5628 }
5629
5630 let next_out_of_line = decoder.next_out_of_line();
5631 let handles_before = decoder.remaining_handles();
5632 if let Some((inlined, num_bytes, num_handles)) =
5633 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5634 {
5635 let member_inline_size =
5636 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
5637 decoder.context,
5638 );
5639 if inlined != (member_inline_size <= 4) {
5640 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5641 }
5642 let inner_offset;
5643 let mut inner_depth = depth.clone();
5644 if inlined {
5645 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5646 inner_offset = next_offset;
5647 } else {
5648 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5649 inner_depth.increment()?;
5650 }
5651 let val_ref = self
5652 .peer_sta_address
5653 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
5654 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
5655 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5656 {
5657 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5658 }
5659 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5660 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5661 }
5662 }
5663
5664 next_offset += envelope_size;
5665 _next_ordinal_to_read += 1;
5666 if next_offset >= end_offset {
5667 return Ok(());
5668 }
5669
5670 while _next_ordinal_to_read < 2 {
5672 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5673 _next_ordinal_to_read += 1;
5674 next_offset += envelope_size;
5675 }
5676
5677 let next_out_of_line = decoder.next_out_of_line();
5678 let handles_before = decoder.remaining_handles();
5679 if let Some((inlined, num_bytes, num_handles)) =
5680 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5681 {
5682 let member_inline_size = <fidl_fuchsia_wlan_ieee80211__common::ReasonCode as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5683 if inlined != (member_inline_size <= 4) {
5684 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5685 }
5686 let inner_offset;
5687 let mut inner_depth = depth.clone();
5688 if inlined {
5689 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5690 inner_offset = next_offset;
5691 } else {
5692 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5693 inner_depth.increment()?;
5694 }
5695 let val_ref = self.reason_code.get_or_insert_with(|| {
5696 fidl::new_empty!(fidl_fuchsia_wlan_ieee80211__common::ReasonCode, D)
5697 });
5698 fidl::decode!(
5699 fidl_fuchsia_wlan_ieee80211__common::ReasonCode,
5700 D,
5701 val_ref,
5702 decoder,
5703 inner_offset,
5704 inner_depth
5705 )?;
5706 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5707 {
5708 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5709 }
5710 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5711 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5712 }
5713 }
5714
5715 next_offset += envelope_size;
5716
5717 while next_offset < end_offset {
5719 _next_ordinal_to_read += 1;
5720 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5721 next_offset += envelope_size;
5722 }
5723
5724 Ok(())
5725 }
5726 }
5727
5728 impl WlanFullmacImplEapolTxRequest {
5729 #[inline(always)]
5730 fn max_ordinal_present(&self) -> u64 {
5731 if let Some(_) = self.data {
5732 return 3;
5733 }
5734 if let Some(_) = self.dst_addr {
5735 return 2;
5736 }
5737 if let Some(_) = self.src_addr {
5738 return 1;
5739 }
5740 0
5741 }
5742 }
5743
5744 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplEapolTxRequest {
5745 type Borrowed<'a> = &'a Self;
5746 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
5747 value
5748 }
5749 }
5750
5751 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplEapolTxRequest {
5752 type Owned = Self;
5753
5754 #[inline(always)]
5755 fn inline_align(_context: fidl::encoding::Context) -> usize {
5756 8
5757 }
5758
5759 #[inline(always)]
5760 fn inline_size(_context: fidl::encoding::Context) -> usize {
5761 16
5762 }
5763 }
5764
5765 unsafe impl<D: fidl::encoding::ResourceDialect>
5766 fidl::encoding::Encode<WlanFullmacImplEapolTxRequest, D>
5767 for &WlanFullmacImplEapolTxRequest
5768 {
5769 unsafe fn encode(
5770 self,
5771 encoder: &mut fidl::encoding::Encoder<'_, D>,
5772 offset: usize,
5773 mut depth: fidl::encoding::Depth,
5774 ) -> fidl::Result<()> {
5775 encoder.debug_check_bounds::<WlanFullmacImplEapolTxRequest>(offset);
5776 let max_ordinal: u64 = self.max_ordinal_present();
5778 encoder.write_num(max_ordinal, offset);
5779 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
5780 if max_ordinal == 0 {
5782 return Ok(());
5783 }
5784 depth.increment()?;
5785 let envelope_size = 8;
5786 let bytes_len = max_ordinal as usize * envelope_size;
5787 #[allow(unused_variables)]
5788 let offset = encoder.out_of_line_offset(bytes_len);
5789 let mut _prev_end_offset: usize = 0;
5790 if 1 > max_ordinal {
5791 return Ok(());
5792 }
5793
5794 let cur_offset: usize = (1 - 1) * envelope_size;
5797
5798 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5800
5801 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
5806 self.src_addr
5807 .as_ref()
5808 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
5809 encoder,
5810 offset + cur_offset,
5811 depth,
5812 )?;
5813
5814 _prev_end_offset = cur_offset + envelope_size;
5815 if 2 > max_ordinal {
5816 return Ok(());
5817 }
5818
5819 let cur_offset: usize = (2 - 1) * envelope_size;
5822
5823 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5825
5826 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
5831 self.dst_addr
5832 .as_ref()
5833 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
5834 encoder,
5835 offset + cur_offset,
5836 depth,
5837 )?;
5838
5839 _prev_end_offset = cur_offset + envelope_size;
5840 if 3 > max_ordinal {
5841 return Ok(());
5842 }
5843
5844 let cur_offset: usize = (3 - 1) * envelope_size;
5847
5848 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5850
5851 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<u8>, D>(
5856 self.data.as_ref().map(<fidl::encoding::UnboundedVector<u8> as fidl::encoding::ValueTypeMarker>::borrow),
5857 encoder, offset + cur_offset, depth
5858 )?;
5859
5860 _prev_end_offset = cur_offset + envelope_size;
5861
5862 Ok(())
5863 }
5864 }
5865
5866 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
5867 for WlanFullmacImplEapolTxRequest
5868 {
5869 #[inline(always)]
5870 fn new_empty() -> Self {
5871 Self::default()
5872 }
5873
5874 unsafe fn decode(
5875 &mut self,
5876 decoder: &mut fidl::encoding::Decoder<'_, D>,
5877 offset: usize,
5878 mut depth: fidl::encoding::Depth,
5879 ) -> fidl::Result<()> {
5880 decoder.debug_check_bounds::<Self>(offset);
5881 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
5882 None => return Err(fidl::Error::NotNullable),
5883 Some(len) => len,
5884 };
5885 if len == 0 {
5887 return Ok(());
5888 };
5889 depth.increment()?;
5890 let envelope_size = 8;
5891 let bytes_len = len * envelope_size;
5892 let offset = decoder.out_of_line_offset(bytes_len)?;
5893 let mut _next_ordinal_to_read = 0;
5895 let mut next_offset = offset;
5896 let end_offset = offset + bytes_len;
5897 _next_ordinal_to_read += 1;
5898 if next_offset >= end_offset {
5899 return Ok(());
5900 }
5901
5902 while _next_ordinal_to_read < 1 {
5904 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5905 _next_ordinal_to_read += 1;
5906 next_offset += envelope_size;
5907 }
5908
5909 let next_out_of_line = decoder.next_out_of_line();
5910 let handles_before = decoder.remaining_handles();
5911 if let Some((inlined, num_bytes, num_handles)) =
5912 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5913 {
5914 let member_inline_size =
5915 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
5916 decoder.context,
5917 );
5918 if inlined != (member_inline_size <= 4) {
5919 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5920 }
5921 let inner_offset;
5922 let mut inner_depth = depth.clone();
5923 if inlined {
5924 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5925 inner_offset = next_offset;
5926 } else {
5927 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5928 inner_depth.increment()?;
5929 }
5930 let val_ref = self
5931 .src_addr
5932 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
5933 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
5934 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5935 {
5936 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5937 }
5938 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5939 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5940 }
5941 }
5942
5943 next_offset += envelope_size;
5944 _next_ordinal_to_read += 1;
5945 if next_offset >= end_offset {
5946 return Ok(());
5947 }
5948
5949 while _next_ordinal_to_read < 2 {
5951 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5952 _next_ordinal_to_read += 1;
5953 next_offset += envelope_size;
5954 }
5955
5956 let next_out_of_line = decoder.next_out_of_line();
5957 let handles_before = decoder.remaining_handles();
5958 if let Some((inlined, num_bytes, num_handles)) =
5959 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5960 {
5961 let member_inline_size =
5962 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
5963 decoder.context,
5964 );
5965 if inlined != (member_inline_size <= 4) {
5966 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5967 }
5968 let inner_offset;
5969 let mut inner_depth = depth.clone();
5970 if inlined {
5971 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5972 inner_offset = next_offset;
5973 } else {
5974 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5975 inner_depth.increment()?;
5976 }
5977 let val_ref = self
5978 .dst_addr
5979 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
5980 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
5981 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5982 {
5983 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5984 }
5985 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5986 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5987 }
5988 }
5989
5990 next_offset += envelope_size;
5991 _next_ordinal_to_read += 1;
5992 if next_offset >= end_offset {
5993 return Ok(());
5994 }
5995
5996 while _next_ordinal_to_read < 3 {
5998 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5999 _next_ordinal_to_read += 1;
6000 next_offset += envelope_size;
6001 }
6002
6003 let next_out_of_line = decoder.next_out_of_line();
6004 let handles_before = decoder.remaining_handles();
6005 if let Some((inlined, num_bytes, num_handles)) =
6006 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6007 {
6008 let member_inline_size = <fidl::encoding::UnboundedVector<u8> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6009 if inlined != (member_inline_size <= 4) {
6010 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6011 }
6012 let inner_offset;
6013 let mut inner_depth = depth.clone();
6014 if inlined {
6015 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6016 inner_offset = next_offset;
6017 } else {
6018 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6019 inner_depth.increment()?;
6020 }
6021 let val_ref = self.data.get_or_insert_with(|| {
6022 fidl::new_empty!(fidl::encoding::UnboundedVector<u8>, D)
6023 });
6024 fidl::decode!(
6025 fidl::encoding::UnboundedVector<u8>,
6026 D,
6027 val_ref,
6028 decoder,
6029 inner_offset,
6030 inner_depth
6031 )?;
6032 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6033 {
6034 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6035 }
6036 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6037 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6038 }
6039 }
6040
6041 next_offset += envelope_size;
6042
6043 while next_offset < end_offset {
6045 _next_ordinal_to_read += 1;
6046 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6047 next_offset += envelope_size;
6048 }
6049
6050 Ok(())
6051 }
6052 }
6053
6054 impl WlanFullmacImplIfcAssocIndRequest {
6055 #[inline(always)]
6056 fn max_ordinal_present(&self) -> u64 {
6057 if let Some(_) = self.vendor_ie {
6058 return 5;
6059 }
6060 if let Some(_) = self.rsne {
6061 return 4;
6062 }
6063 if let Some(_) = self.ssid {
6064 return 3;
6065 }
6066 if let Some(_) = self.listen_interval {
6067 return 2;
6068 }
6069 if let Some(_) = self.peer_sta_address {
6070 return 1;
6071 }
6072 0
6073 }
6074 }
6075
6076 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcAssocIndRequest {
6077 type Borrowed<'a> = &'a Self;
6078 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
6079 value
6080 }
6081 }
6082
6083 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcAssocIndRequest {
6084 type Owned = Self;
6085
6086 #[inline(always)]
6087 fn inline_align(_context: fidl::encoding::Context) -> usize {
6088 8
6089 }
6090
6091 #[inline(always)]
6092 fn inline_size(_context: fidl::encoding::Context) -> usize {
6093 16
6094 }
6095 }
6096
6097 unsafe impl<D: fidl::encoding::ResourceDialect>
6098 fidl::encoding::Encode<WlanFullmacImplIfcAssocIndRequest, D>
6099 for &WlanFullmacImplIfcAssocIndRequest
6100 {
6101 unsafe fn encode(
6102 self,
6103 encoder: &mut fidl::encoding::Encoder<'_, D>,
6104 offset: usize,
6105 mut depth: fidl::encoding::Depth,
6106 ) -> fidl::Result<()> {
6107 encoder.debug_check_bounds::<WlanFullmacImplIfcAssocIndRequest>(offset);
6108 let max_ordinal: u64 = self.max_ordinal_present();
6110 encoder.write_num(max_ordinal, offset);
6111 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
6112 if max_ordinal == 0 {
6114 return Ok(());
6115 }
6116 depth.increment()?;
6117 let envelope_size = 8;
6118 let bytes_len = max_ordinal as usize * envelope_size;
6119 #[allow(unused_variables)]
6120 let offset = encoder.out_of_line_offset(bytes_len);
6121 let mut _prev_end_offset: usize = 0;
6122 if 1 > max_ordinal {
6123 return Ok(());
6124 }
6125
6126 let cur_offset: usize = (1 - 1) * envelope_size;
6129
6130 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6132
6133 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
6138 self.peer_sta_address
6139 .as_ref()
6140 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
6141 encoder,
6142 offset + cur_offset,
6143 depth,
6144 )?;
6145
6146 _prev_end_offset = cur_offset + envelope_size;
6147 if 2 > max_ordinal {
6148 return Ok(());
6149 }
6150
6151 let cur_offset: usize = (2 - 1) * envelope_size;
6154
6155 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6157
6158 fidl::encoding::encode_in_envelope_optional::<u16, D>(
6163 self.listen_interval.as_ref().map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
6164 encoder,
6165 offset + cur_offset,
6166 depth,
6167 )?;
6168
6169 _prev_end_offset = cur_offset + envelope_size;
6170 if 3 > max_ordinal {
6171 return Ok(());
6172 }
6173
6174 let cur_offset: usize = (3 - 1) * envelope_size;
6177
6178 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6180
6181 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<u8, 32>, D>(
6186 self.ssid.as_ref().map(
6187 <fidl::encoding::Vector<u8, 32> as fidl::encoding::ValueTypeMarker>::borrow,
6188 ),
6189 encoder,
6190 offset + cur_offset,
6191 depth,
6192 )?;
6193
6194 _prev_end_offset = cur_offset + envelope_size;
6195 if 4 > max_ordinal {
6196 return Ok(());
6197 }
6198
6199 let cur_offset: usize = (4 - 1) * envelope_size;
6202
6203 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6205
6206 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<u8, 257>, D>(
6211 self.rsne.as_ref().map(
6212 <fidl::encoding::Vector<u8, 257> as fidl::encoding::ValueTypeMarker>::borrow,
6213 ),
6214 encoder,
6215 offset + cur_offset,
6216 depth,
6217 )?;
6218
6219 _prev_end_offset = cur_offset + envelope_size;
6220 if 5 > max_ordinal {
6221 return Ok(());
6222 }
6223
6224 let cur_offset: usize = (5 - 1) * envelope_size;
6227
6228 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6230
6231 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<u8, 514>, D>(
6236 self.vendor_ie.as_ref().map(
6237 <fidl::encoding::Vector<u8, 514> as fidl::encoding::ValueTypeMarker>::borrow,
6238 ),
6239 encoder,
6240 offset + cur_offset,
6241 depth,
6242 )?;
6243
6244 _prev_end_offset = cur_offset + envelope_size;
6245
6246 Ok(())
6247 }
6248 }
6249
6250 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
6251 for WlanFullmacImplIfcAssocIndRequest
6252 {
6253 #[inline(always)]
6254 fn new_empty() -> Self {
6255 Self::default()
6256 }
6257
6258 unsafe fn decode(
6259 &mut self,
6260 decoder: &mut fidl::encoding::Decoder<'_, D>,
6261 offset: usize,
6262 mut depth: fidl::encoding::Depth,
6263 ) -> fidl::Result<()> {
6264 decoder.debug_check_bounds::<Self>(offset);
6265 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
6266 None => return Err(fidl::Error::NotNullable),
6267 Some(len) => len,
6268 };
6269 if len == 0 {
6271 return Ok(());
6272 };
6273 depth.increment()?;
6274 let envelope_size = 8;
6275 let bytes_len = len * envelope_size;
6276 let offset = decoder.out_of_line_offset(bytes_len)?;
6277 let mut _next_ordinal_to_read = 0;
6279 let mut next_offset = offset;
6280 let end_offset = offset + bytes_len;
6281 _next_ordinal_to_read += 1;
6282 if next_offset >= end_offset {
6283 return Ok(());
6284 }
6285
6286 while _next_ordinal_to_read < 1 {
6288 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6289 _next_ordinal_to_read += 1;
6290 next_offset += envelope_size;
6291 }
6292
6293 let next_out_of_line = decoder.next_out_of_line();
6294 let handles_before = decoder.remaining_handles();
6295 if let Some((inlined, num_bytes, num_handles)) =
6296 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6297 {
6298 let member_inline_size =
6299 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
6300 decoder.context,
6301 );
6302 if inlined != (member_inline_size <= 4) {
6303 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6304 }
6305 let inner_offset;
6306 let mut inner_depth = depth.clone();
6307 if inlined {
6308 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6309 inner_offset = next_offset;
6310 } else {
6311 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6312 inner_depth.increment()?;
6313 }
6314 let val_ref = self
6315 .peer_sta_address
6316 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
6317 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
6318 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6319 {
6320 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6321 }
6322 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6323 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6324 }
6325 }
6326
6327 next_offset += envelope_size;
6328 _next_ordinal_to_read += 1;
6329 if next_offset >= end_offset {
6330 return Ok(());
6331 }
6332
6333 while _next_ordinal_to_read < 2 {
6335 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6336 _next_ordinal_to_read += 1;
6337 next_offset += envelope_size;
6338 }
6339
6340 let next_out_of_line = decoder.next_out_of_line();
6341 let handles_before = decoder.remaining_handles();
6342 if let Some((inlined, num_bytes, num_handles)) =
6343 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6344 {
6345 let member_inline_size =
6346 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6347 if inlined != (member_inline_size <= 4) {
6348 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6349 }
6350 let inner_offset;
6351 let mut inner_depth = depth.clone();
6352 if inlined {
6353 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6354 inner_offset = next_offset;
6355 } else {
6356 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6357 inner_depth.increment()?;
6358 }
6359 let val_ref = self.listen_interval.get_or_insert_with(|| fidl::new_empty!(u16, D));
6360 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
6361 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6362 {
6363 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6364 }
6365 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6366 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6367 }
6368 }
6369
6370 next_offset += envelope_size;
6371 _next_ordinal_to_read += 1;
6372 if next_offset >= end_offset {
6373 return Ok(());
6374 }
6375
6376 while _next_ordinal_to_read < 3 {
6378 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6379 _next_ordinal_to_read += 1;
6380 next_offset += envelope_size;
6381 }
6382
6383 let next_out_of_line = decoder.next_out_of_line();
6384 let handles_before = decoder.remaining_handles();
6385 if let Some((inlined, num_bytes, num_handles)) =
6386 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6387 {
6388 let member_inline_size =
6389 <fidl::encoding::Vector<u8, 32> as fidl::encoding::TypeMarker>::inline_size(
6390 decoder.context,
6391 );
6392 if inlined != (member_inline_size <= 4) {
6393 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6394 }
6395 let inner_offset;
6396 let mut inner_depth = depth.clone();
6397 if inlined {
6398 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6399 inner_offset = next_offset;
6400 } else {
6401 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6402 inner_depth.increment()?;
6403 }
6404 let val_ref = self
6405 .ssid
6406 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<u8, 32>, D));
6407 fidl::decode!(fidl::encoding::Vector<u8, 32>, D, val_ref, decoder, inner_offset, inner_depth)?;
6408 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6409 {
6410 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6411 }
6412 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6413 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6414 }
6415 }
6416
6417 next_offset += envelope_size;
6418 _next_ordinal_to_read += 1;
6419 if next_offset >= end_offset {
6420 return Ok(());
6421 }
6422
6423 while _next_ordinal_to_read < 4 {
6425 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6426 _next_ordinal_to_read += 1;
6427 next_offset += envelope_size;
6428 }
6429
6430 let next_out_of_line = decoder.next_out_of_line();
6431 let handles_before = decoder.remaining_handles();
6432 if let Some((inlined, num_bytes, num_handles)) =
6433 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6434 {
6435 let member_inline_size =
6436 <fidl::encoding::Vector<u8, 257> as fidl::encoding::TypeMarker>::inline_size(
6437 decoder.context,
6438 );
6439 if inlined != (member_inline_size <= 4) {
6440 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6441 }
6442 let inner_offset;
6443 let mut inner_depth = depth.clone();
6444 if inlined {
6445 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6446 inner_offset = next_offset;
6447 } else {
6448 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6449 inner_depth.increment()?;
6450 }
6451 let val_ref = self
6452 .rsne
6453 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<u8, 257>, D));
6454 fidl::decode!(fidl::encoding::Vector<u8, 257>, D, val_ref, decoder, inner_offset, inner_depth)?;
6455 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6456 {
6457 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6458 }
6459 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6460 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6461 }
6462 }
6463
6464 next_offset += envelope_size;
6465 _next_ordinal_to_read += 1;
6466 if next_offset >= end_offset {
6467 return Ok(());
6468 }
6469
6470 while _next_ordinal_to_read < 5 {
6472 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6473 _next_ordinal_to_read += 1;
6474 next_offset += envelope_size;
6475 }
6476
6477 let next_out_of_line = decoder.next_out_of_line();
6478 let handles_before = decoder.remaining_handles();
6479 if let Some((inlined, num_bytes, num_handles)) =
6480 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6481 {
6482 let member_inline_size =
6483 <fidl::encoding::Vector<u8, 514> as fidl::encoding::TypeMarker>::inline_size(
6484 decoder.context,
6485 );
6486 if inlined != (member_inline_size <= 4) {
6487 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6488 }
6489 let inner_offset;
6490 let mut inner_depth = depth.clone();
6491 if inlined {
6492 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6493 inner_offset = next_offset;
6494 } else {
6495 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6496 inner_depth.increment()?;
6497 }
6498 let val_ref = self
6499 .vendor_ie
6500 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<u8, 514>, D));
6501 fidl::decode!(fidl::encoding::Vector<u8, 514>, D, val_ref, decoder, inner_offset, inner_depth)?;
6502 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6503 {
6504 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6505 }
6506 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6507 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6508 }
6509 }
6510
6511 next_offset += envelope_size;
6512
6513 while next_offset < end_offset {
6515 _next_ordinal_to_read += 1;
6516 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6517 next_offset += envelope_size;
6518 }
6519
6520 Ok(())
6521 }
6522 }
6523
6524 impl WlanFullmacImplIfcAuthIndRequest {
6525 #[inline(always)]
6526 fn max_ordinal_present(&self) -> u64 {
6527 if let Some(_) = self.auth_type {
6528 return 2;
6529 }
6530 if let Some(_) = self.peer_sta_address {
6531 return 1;
6532 }
6533 0
6534 }
6535 }
6536
6537 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcAuthIndRequest {
6538 type Borrowed<'a> = &'a Self;
6539 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
6540 value
6541 }
6542 }
6543
6544 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcAuthIndRequest {
6545 type Owned = Self;
6546
6547 #[inline(always)]
6548 fn inline_align(_context: fidl::encoding::Context) -> usize {
6549 8
6550 }
6551
6552 #[inline(always)]
6553 fn inline_size(_context: fidl::encoding::Context) -> usize {
6554 16
6555 }
6556 }
6557
6558 unsafe impl<D: fidl::encoding::ResourceDialect>
6559 fidl::encoding::Encode<WlanFullmacImplIfcAuthIndRequest, D>
6560 for &WlanFullmacImplIfcAuthIndRequest
6561 {
6562 unsafe fn encode(
6563 self,
6564 encoder: &mut fidl::encoding::Encoder<'_, D>,
6565 offset: usize,
6566 mut depth: fidl::encoding::Depth,
6567 ) -> fidl::Result<()> {
6568 encoder.debug_check_bounds::<WlanFullmacImplIfcAuthIndRequest>(offset);
6569 let max_ordinal: u64 = self.max_ordinal_present();
6571 encoder.write_num(max_ordinal, offset);
6572 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
6573 if max_ordinal == 0 {
6575 return Ok(());
6576 }
6577 depth.increment()?;
6578 let envelope_size = 8;
6579 let bytes_len = max_ordinal as usize * envelope_size;
6580 #[allow(unused_variables)]
6581 let offset = encoder.out_of_line_offset(bytes_len);
6582 let mut _prev_end_offset: usize = 0;
6583 if 1 > max_ordinal {
6584 return Ok(());
6585 }
6586
6587 let cur_offset: usize = (1 - 1) * envelope_size;
6590
6591 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6593
6594 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
6599 self.peer_sta_address
6600 .as_ref()
6601 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
6602 encoder,
6603 offset + cur_offset,
6604 depth,
6605 )?;
6606
6607 _prev_end_offset = cur_offset + envelope_size;
6608 if 2 > max_ordinal {
6609 return Ok(());
6610 }
6611
6612 let cur_offset: usize = (2 - 1) * envelope_size;
6615
6616 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6618
6619 fidl::encoding::encode_in_envelope_optional::<WlanAuthType, D>(
6624 self.auth_type
6625 .as_ref()
6626 .map(<WlanAuthType as fidl::encoding::ValueTypeMarker>::borrow),
6627 encoder,
6628 offset + cur_offset,
6629 depth,
6630 )?;
6631
6632 _prev_end_offset = cur_offset + envelope_size;
6633
6634 Ok(())
6635 }
6636 }
6637
6638 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
6639 for WlanFullmacImplIfcAuthIndRequest
6640 {
6641 #[inline(always)]
6642 fn new_empty() -> Self {
6643 Self::default()
6644 }
6645
6646 unsafe fn decode(
6647 &mut self,
6648 decoder: &mut fidl::encoding::Decoder<'_, D>,
6649 offset: usize,
6650 mut depth: fidl::encoding::Depth,
6651 ) -> fidl::Result<()> {
6652 decoder.debug_check_bounds::<Self>(offset);
6653 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
6654 None => return Err(fidl::Error::NotNullable),
6655 Some(len) => len,
6656 };
6657 if len == 0 {
6659 return Ok(());
6660 };
6661 depth.increment()?;
6662 let envelope_size = 8;
6663 let bytes_len = len * envelope_size;
6664 let offset = decoder.out_of_line_offset(bytes_len)?;
6665 let mut _next_ordinal_to_read = 0;
6667 let mut next_offset = offset;
6668 let end_offset = offset + bytes_len;
6669 _next_ordinal_to_read += 1;
6670 if next_offset >= end_offset {
6671 return Ok(());
6672 }
6673
6674 while _next_ordinal_to_read < 1 {
6676 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6677 _next_ordinal_to_read += 1;
6678 next_offset += envelope_size;
6679 }
6680
6681 let next_out_of_line = decoder.next_out_of_line();
6682 let handles_before = decoder.remaining_handles();
6683 if let Some((inlined, num_bytes, num_handles)) =
6684 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6685 {
6686 let member_inline_size =
6687 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
6688 decoder.context,
6689 );
6690 if inlined != (member_inline_size <= 4) {
6691 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6692 }
6693 let inner_offset;
6694 let mut inner_depth = depth.clone();
6695 if inlined {
6696 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6697 inner_offset = next_offset;
6698 } else {
6699 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6700 inner_depth.increment()?;
6701 }
6702 let val_ref = self
6703 .peer_sta_address
6704 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
6705 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
6706 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6707 {
6708 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6709 }
6710 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6711 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6712 }
6713 }
6714
6715 next_offset += envelope_size;
6716 _next_ordinal_to_read += 1;
6717 if next_offset >= end_offset {
6718 return Ok(());
6719 }
6720
6721 while _next_ordinal_to_read < 2 {
6723 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6724 _next_ordinal_to_read += 1;
6725 next_offset += envelope_size;
6726 }
6727
6728 let next_out_of_line = decoder.next_out_of_line();
6729 let handles_before = decoder.remaining_handles();
6730 if let Some((inlined, num_bytes, num_handles)) =
6731 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6732 {
6733 let member_inline_size =
6734 <WlanAuthType as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6735 if inlined != (member_inline_size <= 4) {
6736 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6737 }
6738 let inner_offset;
6739 let mut inner_depth = depth.clone();
6740 if inlined {
6741 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6742 inner_offset = next_offset;
6743 } else {
6744 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6745 inner_depth.increment()?;
6746 }
6747 let val_ref =
6748 self.auth_type.get_or_insert_with(|| fidl::new_empty!(WlanAuthType, D));
6749 fidl::decode!(WlanAuthType, D, val_ref, decoder, inner_offset, inner_depth)?;
6750 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6751 {
6752 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6753 }
6754 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6755 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6756 }
6757 }
6758
6759 next_offset += envelope_size;
6760
6761 while next_offset < end_offset {
6763 _next_ordinal_to_read += 1;
6764 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6765 next_offset += envelope_size;
6766 }
6767
6768 Ok(())
6769 }
6770 }
6771
6772 impl WlanFullmacImplIfcConnectConfRequest {
6773 #[inline(always)]
6774 fn max_ordinal_present(&self) -> u64 {
6775 if let Some(_) = self.association_ies {
6776 return 4;
6777 }
6778 if let Some(_) = self.association_id {
6779 return 3;
6780 }
6781 if let Some(_) = self.result_code {
6782 return 2;
6783 }
6784 if let Some(_) = self.peer_sta_address {
6785 return 1;
6786 }
6787 0
6788 }
6789 }
6790
6791 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcConnectConfRequest {
6792 type Borrowed<'a> = &'a Self;
6793 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
6794 value
6795 }
6796 }
6797
6798 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcConnectConfRequest {
6799 type Owned = Self;
6800
6801 #[inline(always)]
6802 fn inline_align(_context: fidl::encoding::Context) -> usize {
6803 8
6804 }
6805
6806 #[inline(always)]
6807 fn inline_size(_context: fidl::encoding::Context) -> usize {
6808 16
6809 }
6810 }
6811
6812 unsafe impl<D: fidl::encoding::ResourceDialect>
6813 fidl::encoding::Encode<WlanFullmacImplIfcConnectConfRequest, D>
6814 for &WlanFullmacImplIfcConnectConfRequest
6815 {
6816 unsafe fn encode(
6817 self,
6818 encoder: &mut fidl::encoding::Encoder<'_, D>,
6819 offset: usize,
6820 mut depth: fidl::encoding::Depth,
6821 ) -> fidl::Result<()> {
6822 encoder.debug_check_bounds::<WlanFullmacImplIfcConnectConfRequest>(offset);
6823 let max_ordinal: u64 = self.max_ordinal_present();
6825 encoder.write_num(max_ordinal, offset);
6826 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
6827 if max_ordinal == 0 {
6829 return Ok(());
6830 }
6831 depth.increment()?;
6832 let envelope_size = 8;
6833 let bytes_len = max_ordinal as usize * envelope_size;
6834 #[allow(unused_variables)]
6835 let offset = encoder.out_of_line_offset(bytes_len);
6836 let mut _prev_end_offset: usize = 0;
6837 if 1 > max_ordinal {
6838 return Ok(());
6839 }
6840
6841 let cur_offset: usize = (1 - 1) * envelope_size;
6844
6845 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6847
6848 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
6853 self.peer_sta_address
6854 .as_ref()
6855 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
6856 encoder,
6857 offset + cur_offset,
6858 depth,
6859 )?;
6860
6861 _prev_end_offset = cur_offset + envelope_size;
6862 if 2 > max_ordinal {
6863 return Ok(());
6864 }
6865
6866 let cur_offset: usize = (2 - 1) * envelope_size;
6869
6870 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6872
6873 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_ieee80211__common::StatusCode, D>(
6878 self.result_code.as_ref().map(<fidl_fuchsia_wlan_ieee80211__common::StatusCode as fidl::encoding::ValueTypeMarker>::borrow),
6879 encoder, offset + cur_offset, depth
6880 )?;
6881
6882 _prev_end_offset = cur_offset + envelope_size;
6883 if 3 > max_ordinal {
6884 return Ok(());
6885 }
6886
6887 let cur_offset: usize = (3 - 1) * envelope_size;
6890
6891 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6893
6894 fidl::encoding::encode_in_envelope_optional::<u16, D>(
6899 self.association_id.as_ref().map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
6900 encoder,
6901 offset + cur_offset,
6902 depth,
6903 )?;
6904
6905 _prev_end_offset = cur_offset + envelope_size;
6906 if 4 > max_ordinal {
6907 return Ok(());
6908 }
6909
6910 let cur_offset: usize = (4 - 1) * envelope_size;
6913
6914 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6916
6917 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<u8>, D>(
6922 self.association_ies.as_ref().map(<fidl::encoding::UnboundedVector<u8> as fidl::encoding::ValueTypeMarker>::borrow),
6923 encoder, offset + cur_offset, depth
6924 )?;
6925
6926 _prev_end_offset = cur_offset + envelope_size;
6927
6928 Ok(())
6929 }
6930 }
6931
6932 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
6933 for WlanFullmacImplIfcConnectConfRequest
6934 {
6935 #[inline(always)]
6936 fn new_empty() -> Self {
6937 Self::default()
6938 }
6939
6940 unsafe fn decode(
6941 &mut self,
6942 decoder: &mut fidl::encoding::Decoder<'_, D>,
6943 offset: usize,
6944 mut depth: fidl::encoding::Depth,
6945 ) -> fidl::Result<()> {
6946 decoder.debug_check_bounds::<Self>(offset);
6947 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
6948 None => return Err(fidl::Error::NotNullable),
6949 Some(len) => len,
6950 };
6951 if len == 0 {
6953 return Ok(());
6954 };
6955 depth.increment()?;
6956 let envelope_size = 8;
6957 let bytes_len = len * envelope_size;
6958 let offset = decoder.out_of_line_offset(bytes_len)?;
6959 let mut _next_ordinal_to_read = 0;
6961 let mut next_offset = offset;
6962 let end_offset = offset + bytes_len;
6963 _next_ordinal_to_read += 1;
6964 if next_offset >= end_offset {
6965 return Ok(());
6966 }
6967
6968 while _next_ordinal_to_read < 1 {
6970 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6971 _next_ordinal_to_read += 1;
6972 next_offset += envelope_size;
6973 }
6974
6975 let next_out_of_line = decoder.next_out_of_line();
6976 let handles_before = decoder.remaining_handles();
6977 if let Some((inlined, num_bytes, num_handles)) =
6978 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6979 {
6980 let member_inline_size =
6981 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
6982 decoder.context,
6983 );
6984 if inlined != (member_inline_size <= 4) {
6985 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6986 }
6987 let inner_offset;
6988 let mut inner_depth = depth.clone();
6989 if inlined {
6990 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6991 inner_offset = next_offset;
6992 } else {
6993 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6994 inner_depth.increment()?;
6995 }
6996 let val_ref = self
6997 .peer_sta_address
6998 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
6999 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
7000 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7001 {
7002 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7003 }
7004 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7005 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7006 }
7007 }
7008
7009 next_offset += envelope_size;
7010 _next_ordinal_to_read += 1;
7011 if next_offset >= end_offset {
7012 return Ok(());
7013 }
7014
7015 while _next_ordinal_to_read < 2 {
7017 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7018 _next_ordinal_to_read += 1;
7019 next_offset += envelope_size;
7020 }
7021
7022 let next_out_of_line = decoder.next_out_of_line();
7023 let handles_before = decoder.remaining_handles();
7024 if let Some((inlined, num_bytes, num_handles)) =
7025 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7026 {
7027 let member_inline_size = <fidl_fuchsia_wlan_ieee80211__common::StatusCode as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7028 if inlined != (member_inline_size <= 4) {
7029 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7030 }
7031 let inner_offset;
7032 let mut inner_depth = depth.clone();
7033 if inlined {
7034 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7035 inner_offset = next_offset;
7036 } else {
7037 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7038 inner_depth.increment()?;
7039 }
7040 let val_ref = self.result_code.get_or_insert_with(|| {
7041 fidl::new_empty!(fidl_fuchsia_wlan_ieee80211__common::StatusCode, D)
7042 });
7043 fidl::decode!(
7044 fidl_fuchsia_wlan_ieee80211__common::StatusCode,
7045 D,
7046 val_ref,
7047 decoder,
7048 inner_offset,
7049 inner_depth
7050 )?;
7051 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7052 {
7053 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7054 }
7055 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7056 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7057 }
7058 }
7059
7060 next_offset += envelope_size;
7061 _next_ordinal_to_read += 1;
7062 if next_offset >= end_offset {
7063 return Ok(());
7064 }
7065
7066 while _next_ordinal_to_read < 3 {
7068 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7069 _next_ordinal_to_read += 1;
7070 next_offset += envelope_size;
7071 }
7072
7073 let next_out_of_line = decoder.next_out_of_line();
7074 let handles_before = decoder.remaining_handles();
7075 if let Some((inlined, num_bytes, num_handles)) =
7076 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7077 {
7078 let member_inline_size =
7079 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7080 if inlined != (member_inline_size <= 4) {
7081 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7082 }
7083 let inner_offset;
7084 let mut inner_depth = depth.clone();
7085 if inlined {
7086 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7087 inner_offset = next_offset;
7088 } else {
7089 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7090 inner_depth.increment()?;
7091 }
7092 let val_ref = self.association_id.get_or_insert_with(|| fidl::new_empty!(u16, D));
7093 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
7094 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7095 {
7096 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7097 }
7098 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7099 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7100 }
7101 }
7102
7103 next_offset += envelope_size;
7104 _next_ordinal_to_read += 1;
7105 if next_offset >= end_offset {
7106 return Ok(());
7107 }
7108
7109 while _next_ordinal_to_read < 4 {
7111 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7112 _next_ordinal_to_read += 1;
7113 next_offset += envelope_size;
7114 }
7115
7116 let next_out_of_line = decoder.next_out_of_line();
7117 let handles_before = decoder.remaining_handles();
7118 if let Some((inlined, num_bytes, num_handles)) =
7119 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7120 {
7121 let member_inline_size = <fidl::encoding::UnboundedVector<u8> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7122 if inlined != (member_inline_size <= 4) {
7123 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7124 }
7125 let inner_offset;
7126 let mut inner_depth = depth.clone();
7127 if inlined {
7128 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7129 inner_offset = next_offset;
7130 } else {
7131 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7132 inner_depth.increment()?;
7133 }
7134 let val_ref = self.association_ies.get_or_insert_with(|| {
7135 fidl::new_empty!(fidl::encoding::UnboundedVector<u8>, D)
7136 });
7137 fidl::decode!(
7138 fidl::encoding::UnboundedVector<u8>,
7139 D,
7140 val_ref,
7141 decoder,
7142 inner_offset,
7143 inner_depth
7144 )?;
7145 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7146 {
7147 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7148 }
7149 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7150 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7151 }
7152 }
7153
7154 next_offset += envelope_size;
7155
7156 while next_offset < end_offset {
7158 _next_ordinal_to_read += 1;
7159 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7160 next_offset += envelope_size;
7161 }
7162
7163 Ok(())
7164 }
7165 }
7166
7167 impl WlanFullmacImplIfcDeauthConfRequest {
7168 #[inline(always)]
7169 fn max_ordinal_present(&self) -> u64 {
7170 if let Some(_) = self.peer_sta_address {
7171 return 1;
7172 }
7173 0
7174 }
7175 }
7176
7177 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcDeauthConfRequest {
7178 type Borrowed<'a> = &'a Self;
7179 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
7180 value
7181 }
7182 }
7183
7184 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcDeauthConfRequest {
7185 type Owned = Self;
7186
7187 #[inline(always)]
7188 fn inline_align(_context: fidl::encoding::Context) -> usize {
7189 8
7190 }
7191
7192 #[inline(always)]
7193 fn inline_size(_context: fidl::encoding::Context) -> usize {
7194 16
7195 }
7196 }
7197
7198 unsafe impl<D: fidl::encoding::ResourceDialect>
7199 fidl::encoding::Encode<WlanFullmacImplIfcDeauthConfRequest, D>
7200 for &WlanFullmacImplIfcDeauthConfRequest
7201 {
7202 unsafe fn encode(
7203 self,
7204 encoder: &mut fidl::encoding::Encoder<'_, D>,
7205 offset: usize,
7206 mut depth: fidl::encoding::Depth,
7207 ) -> fidl::Result<()> {
7208 encoder.debug_check_bounds::<WlanFullmacImplIfcDeauthConfRequest>(offset);
7209 let max_ordinal: u64 = self.max_ordinal_present();
7211 encoder.write_num(max_ordinal, offset);
7212 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
7213 if max_ordinal == 0 {
7215 return Ok(());
7216 }
7217 depth.increment()?;
7218 let envelope_size = 8;
7219 let bytes_len = max_ordinal as usize * envelope_size;
7220 #[allow(unused_variables)]
7221 let offset = encoder.out_of_line_offset(bytes_len);
7222 let mut _prev_end_offset: usize = 0;
7223 if 1 > max_ordinal {
7224 return Ok(());
7225 }
7226
7227 let cur_offset: usize = (1 - 1) * envelope_size;
7230
7231 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7233
7234 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
7239 self.peer_sta_address
7240 .as_ref()
7241 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
7242 encoder,
7243 offset + cur_offset,
7244 depth,
7245 )?;
7246
7247 _prev_end_offset = cur_offset + envelope_size;
7248
7249 Ok(())
7250 }
7251 }
7252
7253 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
7254 for WlanFullmacImplIfcDeauthConfRequest
7255 {
7256 #[inline(always)]
7257 fn new_empty() -> Self {
7258 Self::default()
7259 }
7260
7261 unsafe fn decode(
7262 &mut self,
7263 decoder: &mut fidl::encoding::Decoder<'_, D>,
7264 offset: usize,
7265 mut depth: fidl::encoding::Depth,
7266 ) -> fidl::Result<()> {
7267 decoder.debug_check_bounds::<Self>(offset);
7268 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
7269 None => return Err(fidl::Error::NotNullable),
7270 Some(len) => len,
7271 };
7272 if len == 0 {
7274 return Ok(());
7275 };
7276 depth.increment()?;
7277 let envelope_size = 8;
7278 let bytes_len = len * envelope_size;
7279 let offset = decoder.out_of_line_offset(bytes_len)?;
7280 let mut _next_ordinal_to_read = 0;
7282 let mut next_offset = offset;
7283 let end_offset = offset + bytes_len;
7284 _next_ordinal_to_read += 1;
7285 if next_offset >= end_offset {
7286 return Ok(());
7287 }
7288
7289 while _next_ordinal_to_read < 1 {
7291 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7292 _next_ordinal_to_read += 1;
7293 next_offset += envelope_size;
7294 }
7295
7296 let next_out_of_line = decoder.next_out_of_line();
7297 let handles_before = decoder.remaining_handles();
7298 if let Some((inlined, num_bytes, num_handles)) =
7299 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7300 {
7301 let member_inline_size =
7302 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
7303 decoder.context,
7304 );
7305 if inlined != (member_inline_size <= 4) {
7306 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7307 }
7308 let inner_offset;
7309 let mut inner_depth = depth.clone();
7310 if inlined {
7311 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7312 inner_offset = next_offset;
7313 } else {
7314 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7315 inner_depth.increment()?;
7316 }
7317 let val_ref = self
7318 .peer_sta_address
7319 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
7320 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
7321 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7322 {
7323 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7324 }
7325 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7326 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7327 }
7328 }
7329
7330 next_offset += envelope_size;
7331
7332 while next_offset < end_offset {
7334 _next_ordinal_to_read += 1;
7335 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7336 next_offset += envelope_size;
7337 }
7338
7339 Ok(())
7340 }
7341 }
7342
7343 impl WlanFullmacImplIfcDeauthIndRequest {
7344 #[inline(always)]
7345 fn max_ordinal_present(&self) -> u64 {
7346 if let Some(_) = self.locally_initiated {
7347 return 3;
7348 }
7349 if let Some(_) = self.reason_code {
7350 return 2;
7351 }
7352 if let Some(_) = self.peer_sta_address {
7353 return 1;
7354 }
7355 0
7356 }
7357 }
7358
7359 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcDeauthIndRequest {
7360 type Borrowed<'a> = &'a Self;
7361 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
7362 value
7363 }
7364 }
7365
7366 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcDeauthIndRequest {
7367 type Owned = Self;
7368
7369 #[inline(always)]
7370 fn inline_align(_context: fidl::encoding::Context) -> usize {
7371 8
7372 }
7373
7374 #[inline(always)]
7375 fn inline_size(_context: fidl::encoding::Context) -> usize {
7376 16
7377 }
7378 }
7379
7380 unsafe impl<D: fidl::encoding::ResourceDialect>
7381 fidl::encoding::Encode<WlanFullmacImplIfcDeauthIndRequest, D>
7382 for &WlanFullmacImplIfcDeauthIndRequest
7383 {
7384 unsafe fn encode(
7385 self,
7386 encoder: &mut fidl::encoding::Encoder<'_, D>,
7387 offset: usize,
7388 mut depth: fidl::encoding::Depth,
7389 ) -> fidl::Result<()> {
7390 encoder.debug_check_bounds::<WlanFullmacImplIfcDeauthIndRequest>(offset);
7391 let max_ordinal: u64 = self.max_ordinal_present();
7393 encoder.write_num(max_ordinal, offset);
7394 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
7395 if max_ordinal == 0 {
7397 return Ok(());
7398 }
7399 depth.increment()?;
7400 let envelope_size = 8;
7401 let bytes_len = max_ordinal as usize * envelope_size;
7402 #[allow(unused_variables)]
7403 let offset = encoder.out_of_line_offset(bytes_len);
7404 let mut _prev_end_offset: usize = 0;
7405 if 1 > max_ordinal {
7406 return Ok(());
7407 }
7408
7409 let cur_offset: usize = (1 - 1) * envelope_size;
7412
7413 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7415
7416 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
7421 self.peer_sta_address
7422 .as_ref()
7423 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
7424 encoder,
7425 offset + cur_offset,
7426 depth,
7427 )?;
7428
7429 _prev_end_offset = cur_offset + envelope_size;
7430 if 2 > max_ordinal {
7431 return Ok(());
7432 }
7433
7434 let cur_offset: usize = (2 - 1) * envelope_size;
7437
7438 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7440
7441 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_ieee80211__common::ReasonCode, D>(
7446 self.reason_code.as_ref().map(<fidl_fuchsia_wlan_ieee80211__common::ReasonCode as fidl::encoding::ValueTypeMarker>::borrow),
7447 encoder, offset + cur_offset, depth
7448 )?;
7449
7450 _prev_end_offset = cur_offset + envelope_size;
7451 if 3 > max_ordinal {
7452 return Ok(());
7453 }
7454
7455 let cur_offset: usize = (3 - 1) * envelope_size;
7458
7459 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7461
7462 fidl::encoding::encode_in_envelope_optional::<bool, D>(
7467 self.locally_initiated
7468 .as_ref()
7469 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
7470 encoder,
7471 offset + cur_offset,
7472 depth,
7473 )?;
7474
7475 _prev_end_offset = cur_offset + envelope_size;
7476
7477 Ok(())
7478 }
7479 }
7480
7481 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
7482 for WlanFullmacImplIfcDeauthIndRequest
7483 {
7484 #[inline(always)]
7485 fn new_empty() -> Self {
7486 Self::default()
7487 }
7488
7489 unsafe fn decode(
7490 &mut self,
7491 decoder: &mut fidl::encoding::Decoder<'_, D>,
7492 offset: usize,
7493 mut depth: fidl::encoding::Depth,
7494 ) -> fidl::Result<()> {
7495 decoder.debug_check_bounds::<Self>(offset);
7496 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
7497 None => return Err(fidl::Error::NotNullable),
7498 Some(len) => len,
7499 };
7500 if len == 0 {
7502 return Ok(());
7503 };
7504 depth.increment()?;
7505 let envelope_size = 8;
7506 let bytes_len = len * envelope_size;
7507 let offset = decoder.out_of_line_offset(bytes_len)?;
7508 let mut _next_ordinal_to_read = 0;
7510 let mut next_offset = offset;
7511 let end_offset = offset + bytes_len;
7512 _next_ordinal_to_read += 1;
7513 if next_offset >= end_offset {
7514 return Ok(());
7515 }
7516
7517 while _next_ordinal_to_read < 1 {
7519 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7520 _next_ordinal_to_read += 1;
7521 next_offset += envelope_size;
7522 }
7523
7524 let next_out_of_line = decoder.next_out_of_line();
7525 let handles_before = decoder.remaining_handles();
7526 if let Some((inlined, num_bytes, num_handles)) =
7527 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7528 {
7529 let member_inline_size =
7530 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
7531 decoder.context,
7532 );
7533 if inlined != (member_inline_size <= 4) {
7534 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7535 }
7536 let inner_offset;
7537 let mut inner_depth = depth.clone();
7538 if inlined {
7539 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7540 inner_offset = next_offset;
7541 } else {
7542 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7543 inner_depth.increment()?;
7544 }
7545 let val_ref = self
7546 .peer_sta_address
7547 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
7548 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
7549 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7550 {
7551 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7552 }
7553 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7554 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7555 }
7556 }
7557
7558 next_offset += envelope_size;
7559 _next_ordinal_to_read += 1;
7560 if next_offset >= end_offset {
7561 return Ok(());
7562 }
7563
7564 while _next_ordinal_to_read < 2 {
7566 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7567 _next_ordinal_to_read += 1;
7568 next_offset += envelope_size;
7569 }
7570
7571 let next_out_of_line = decoder.next_out_of_line();
7572 let handles_before = decoder.remaining_handles();
7573 if let Some((inlined, num_bytes, num_handles)) =
7574 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7575 {
7576 let member_inline_size = <fidl_fuchsia_wlan_ieee80211__common::ReasonCode as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7577 if inlined != (member_inline_size <= 4) {
7578 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7579 }
7580 let inner_offset;
7581 let mut inner_depth = depth.clone();
7582 if inlined {
7583 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7584 inner_offset = next_offset;
7585 } else {
7586 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7587 inner_depth.increment()?;
7588 }
7589 let val_ref = self.reason_code.get_or_insert_with(|| {
7590 fidl::new_empty!(fidl_fuchsia_wlan_ieee80211__common::ReasonCode, D)
7591 });
7592 fidl::decode!(
7593 fidl_fuchsia_wlan_ieee80211__common::ReasonCode,
7594 D,
7595 val_ref,
7596 decoder,
7597 inner_offset,
7598 inner_depth
7599 )?;
7600 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7601 {
7602 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7603 }
7604 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7605 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7606 }
7607 }
7608
7609 next_offset += envelope_size;
7610 _next_ordinal_to_read += 1;
7611 if next_offset >= end_offset {
7612 return Ok(());
7613 }
7614
7615 while _next_ordinal_to_read < 3 {
7617 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7618 _next_ordinal_to_read += 1;
7619 next_offset += envelope_size;
7620 }
7621
7622 let next_out_of_line = decoder.next_out_of_line();
7623 let handles_before = decoder.remaining_handles();
7624 if let Some((inlined, num_bytes, num_handles)) =
7625 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7626 {
7627 let member_inline_size =
7628 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7629 if inlined != (member_inline_size <= 4) {
7630 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7631 }
7632 let inner_offset;
7633 let mut inner_depth = depth.clone();
7634 if inlined {
7635 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7636 inner_offset = next_offset;
7637 } else {
7638 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7639 inner_depth.increment()?;
7640 }
7641 let val_ref =
7642 self.locally_initiated.get_or_insert_with(|| fidl::new_empty!(bool, D));
7643 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
7644 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7645 {
7646 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7647 }
7648 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7649 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7650 }
7651 }
7652
7653 next_offset += envelope_size;
7654
7655 while next_offset < end_offset {
7657 _next_ordinal_to_read += 1;
7658 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7659 next_offset += envelope_size;
7660 }
7661
7662 Ok(())
7663 }
7664 }
7665
7666 impl WlanFullmacImplIfcDisassocConfRequest {
7667 #[inline(always)]
7668 fn max_ordinal_present(&self) -> u64 {
7669 if let Some(_) = self.status {
7670 return 1;
7671 }
7672 0
7673 }
7674 }
7675
7676 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcDisassocConfRequest {
7677 type Borrowed<'a> = &'a Self;
7678 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
7679 value
7680 }
7681 }
7682
7683 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcDisassocConfRequest {
7684 type Owned = Self;
7685
7686 #[inline(always)]
7687 fn inline_align(_context: fidl::encoding::Context) -> usize {
7688 8
7689 }
7690
7691 #[inline(always)]
7692 fn inline_size(_context: fidl::encoding::Context) -> usize {
7693 16
7694 }
7695 }
7696
7697 unsafe impl<D: fidl::encoding::ResourceDialect>
7698 fidl::encoding::Encode<WlanFullmacImplIfcDisassocConfRequest, D>
7699 for &WlanFullmacImplIfcDisassocConfRequest
7700 {
7701 unsafe fn encode(
7702 self,
7703 encoder: &mut fidl::encoding::Encoder<'_, D>,
7704 offset: usize,
7705 mut depth: fidl::encoding::Depth,
7706 ) -> fidl::Result<()> {
7707 encoder.debug_check_bounds::<WlanFullmacImplIfcDisassocConfRequest>(offset);
7708 let max_ordinal: u64 = self.max_ordinal_present();
7710 encoder.write_num(max_ordinal, offset);
7711 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
7712 if max_ordinal == 0 {
7714 return Ok(());
7715 }
7716 depth.increment()?;
7717 let envelope_size = 8;
7718 let bytes_len = max_ordinal as usize * envelope_size;
7719 #[allow(unused_variables)]
7720 let offset = encoder.out_of_line_offset(bytes_len);
7721 let mut _prev_end_offset: usize = 0;
7722 if 1 > max_ordinal {
7723 return Ok(());
7724 }
7725
7726 let cur_offset: usize = (1 - 1) * envelope_size;
7729
7730 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7732
7733 fidl::encoding::encode_in_envelope_optional::<i32, D>(
7738 self.status.as_ref().map(<i32 as fidl::encoding::ValueTypeMarker>::borrow),
7739 encoder,
7740 offset + cur_offset,
7741 depth,
7742 )?;
7743
7744 _prev_end_offset = cur_offset + envelope_size;
7745
7746 Ok(())
7747 }
7748 }
7749
7750 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
7751 for WlanFullmacImplIfcDisassocConfRequest
7752 {
7753 #[inline(always)]
7754 fn new_empty() -> Self {
7755 Self::default()
7756 }
7757
7758 unsafe fn decode(
7759 &mut self,
7760 decoder: &mut fidl::encoding::Decoder<'_, D>,
7761 offset: usize,
7762 mut depth: fidl::encoding::Depth,
7763 ) -> fidl::Result<()> {
7764 decoder.debug_check_bounds::<Self>(offset);
7765 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
7766 None => return Err(fidl::Error::NotNullable),
7767 Some(len) => len,
7768 };
7769 if len == 0 {
7771 return Ok(());
7772 };
7773 depth.increment()?;
7774 let envelope_size = 8;
7775 let bytes_len = len * envelope_size;
7776 let offset = decoder.out_of_line_offset(bytes_len)?;
7777 let mut _next_ordinal_to_read = 0;
7779 let mut next_offset = offset;
7780 let end_offset = offset + bytes_len;
7781 _next_ordinal_to_read += 1;
7782 if next_offset >= end_offset {
7783 return Ok(());
7784 }
7785
7786 while _next_ordinal_to_read < 1 {
7788 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7789 _next_ordinal_to_read += 1;
7790 next_offset += envelope_size;
7791 }
7792
7793 let next_out_of_line = decoder.next_out_of_line();
7794 let handles_before = decoder.remaining_handles();
7795 if let Some((inlined, num_bytes, num_handles)) =
7796 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7797 {
7798 let member_inline_size =
7799 <i32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7800 if inlined != (member_inline_size <= 4) {
7801 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7802 }
7803 let inner_offset;
7804 let mut inner_depth = depth.clone();
7805 if inlined {
7806 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7807 inner_offset = next_offset;
7808 } else {
7809 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7810 inner_depth.increment()?;
7811 }
7812 let val_ref = self.status.get_or_insert_with(|| fidl::new_empty!(i32, D));
7813 fidl::decode!(i32, D, val_ref, decoder, inner_offset, inner_depth)?;
7814 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7815 {
7816 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7817 }
7818 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7819 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7820 }
7821 }
7822
7823 next_offset += envelope_size;
7824
7825 while next_offset < end_offset {
7827 _next_ordinal_to_read += 1;
7828 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7829 next_offset += envelope_size;
7830 }
7831
7832 Ok(())
7833 }
7834 }
7835
7836 impl WlanFullmacImplIfcDisassocIndRequest {
7837 #[inline(always)]
7838 fn max_ordinal_present(&self) -> u64 {
7839 if let Some(_) = self.locally_initiated {
7840 return 3;
7841 }
7842 if let Some(_) = self.reason_code {
7843 return 2;
7844 }
7845 if let Some(_) = self.peer_sta_address {
7846 return 1;
7847 }
7848 0
7849 }
7850 }
7851
7852 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcDisassocIndRequest {
7853 type Borrowed<'a> = &'a Self;
7854 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
7855 value
7856 }
7857 }
7858
7859 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcDisassocIndRequest {
7860 type Owned = Self;
7861
7862 #[inline(always)]
7863 fn inline_align(_context: fidl::encoding::Context) -> usize {
7864 8
7865 }
7866
7867 #[inline(always)]
7868 fn inline_size(_context: fidl::encoding::Context) -> usize {
7869 16
7870 }
7871 }
7872
7873 unsafe impl<D: fidl::encoding::ResourceDialect>
7874 fidl::encoding::Encode<WlanFullmacImplIfcDisassocIndRequest, D>
7875 for &WlanFullmacImplIfcDisassocIndRequest
7876 {
7877 unsafe fn encode(
7878 self,
7879 encoder: &mut fidl::encoding::Encoder<'_, D>,
7880 offset: usize,
7881 mut depth: fidl::encoding::Depth,
7882 ) -> fidl::Result<()> {
7883 encoder.debug_check_bounds::<WlanFullmacImplIfcDisassocIndRequest>(offset);
7884 let max_ordinal: u64 = self.max_ordinal_present();
7886 encoder.write_num(max_ordinal, offset);
7887 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
7888 if max_ordinal == 0 {
7890 return Ok(());
7891 }
7892 depth.increment()?;
7893 let envelope_size = 8;
7894 let bytes_len = max_ordinal as usize * envelope_size;
7895 #[allow(unused_variables)]
7896 let offset = encoder.out_of_line_offset(bytes_len);
7897 let mut _prev_end_offset: usize = 0;
7898 if 1 > max_ordinal {
7899 return Ok(());
7900 }
7901
7902 let cur_offset: usize = (1 - 1) * envelope_size;
7905
7906 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7908
7909 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
7914 self.peer_sta_address
7915 .as_ref()
7916 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
7917 encoder,
7918 offset + cur_offset,
7919 depth,
7920 )?;
7921
7922 _prev_end_offset = cur_offset + envelope_size;
7923 if 2 > max_ordinal {
7924 return Ok(());
7925 }
7926
7927 let cur_offset: usize = (2 - 1) * envelope_size;
7930
7931 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7933
7934 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_ieee80211__common::ReasonCode, D>(
7939 self.reason_code.as_ref().map(<fidl_fuchsia_wlan_ieee80211__common::ReasonCode as fidl::encoding::ValueTypeMarker>::borrow),
7940 encoder, offset + cur_offset, depth
7941 )?;
7942
7943 _prev_end_offset = cur_offset + envelope_size;
7944 if 3 > max_ordinal {
7945 return Ok(());
7946 }
7947
7948 let cur_offset: usize = (3 - 1) * envelope_size;
7951
7952 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7954
7955 fidl::encoding::encode_in_envelope_optional::<bool, D>(
7960 self.locally_initiated
7961 .as_ref()
7962 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
7963 encoder,
7964 offset + cur_offset,
7965 depth,
7966 )?;
7967
7968 _prev_end_offset = cur_offset + envelope_size;
7969
7970 Ok(())
7971 }
7972 }
7973
7974 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
7975 for WlanFullmacImplIfcDisassocIndRequest
7976 {
7977 #[inline(always)]
7978 fn new_empty() -> Self {
7979 Self::default()
7980 }
7981
7982 unsafe fn decode(
7983 &mut self,
7984 decoder: &mut fidl::encoding::Decoder<'_, D>,
7985 offset: usize,
7986 mut depth: fidl::encoding::Depth,
7987 ) -> fidl::Result<()> {
7988 decoder.debug_check_bounds::<Self>(offset);
7989 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
7990 None => return Err(fidl::Error::NotNullable),
7991 Some(len) => len,
7992 };
7993 if len == 0 {
7995 return Ok(());
7996 };
7997 depth.increment()?;
7998 let envelope_size = 8;
7999 let bytes_len = len * envelope_size;
8000 let offset = decoder.out_of_line_offset(bytes_len)?;
8001 let mut _next_ordinal_to_read = 0;
8003 let mut next_offset = offset;
8004 let end_offset = offset + bytes_len;
8005 _next_ordinal_to_read += 1;
8006 if next_offset >= end_offset {
8007 return Ok(());
8008 }
8009
8010 while _next_ordinal_to_read < 1 {
8012 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8013 _next_ordinal_to_read += 1;
8014 next_offset += envelope_size;
8015 }
8016
8017 let next_out_of_line = decoder.next_out_of_line();
8018 let handles_before = decoder.remaining_handles();
8019 if let Some((inlined, num_bytes, num_handles)) =
8020 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8021 {
8022 let member_inline_size =
8023 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
8024 decoder.context,
8025 );
8026 if inlined != (member_inline_size <= 4) {
8027 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8028 }
8029 let inner_offset;
8030 let mut inner_depth = depth.clone();
8031 if inlined {
8032 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8033 inner_offset = next_offset;
8034 } else {
8035 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8036 inner_depth.increment()?;
8037 }
8038 let val_ref = self
8039 .peer_sta_address
8040 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
8041 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
8042 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8043 {
8044 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8045 }
8046 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8047 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8048 }
8049 }
8050
8051 next_offset += envelope_size;
8052 _next_ordinal_to_read += 1;
8053 if next_offset >= end_offset {
8054 return Ok(());
8055 }
8056
8057 while _next_ordinal_to_read < 2 {
8059 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8060 _next_ordinal_to_read += 1;
8061 next_offset += envelope_size;
8062 }
8063
8064 let next_out_of_line = decoder.next_out_of_line();
8065 let handles_before = decoder.remaining_handles();
8066 if let Some((inlined, num_bytes, num_handles)) =
8067 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8068 {
8069 let member_inline_size = <fidl_fuchsia_wlan_ieee80211__common::ReasonCode as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8070 if inlined != (member_inline_size <= 4) {
8071 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8072 }
8073 let inner_offset;
8074 let mut inner_depth = depth.clone();
8075 if inlined {
8076 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8077 inner_offset = next_offset;
8078 } else {
8079 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8080 inner_depth.increment()?;
8081 }
8082 let val_ref = self.reason_code.get_or_insert_with(|| {
8083 fidl::new_empty!(fidl_fuchsia_wlan_ieee80211__common::ReasonCode, D)
8084 });
8085 fidl::decode!(
8086 fidl_fuchsia_wlan_ieee80211__common::ReasonCode,
8087 D,
8088 val_ref,
8089 decoder,
8090 inner_offset,
8091 inner_depth
8092 )?;
8093 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8094 {
8095 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8096 }
8097 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8098 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8099 }
8100 }
8101
8102 next_offset += envelope_size;
8103 _next_ordinal_to_read += 1;
8104 if next_offset >= end_offset {
8105 return Ok(());
8106 }
8107
8108 while _next_ordinal_to_read < 3 {
8110 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8111 _next_ordinal_to_read += 1;
8112 next_offset += envelope_size;
8113 }
8114
8115 let next_out_of_line = decoder.next_out_of_line();
8116 let handles_before = decoder.remaining_handles();
8117 if let Some((inlined, num_bytes, num_handles)) =
8118 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8119 {
8120 let member_inline_size =
8121 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8122 if inlined != (member_inline_size <= 4) {
8123 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8124 }
8125 let inner_offset;
8126 let mut inner_depth = depth.clone();
8127 if inlined {
8128 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8129 inner_offset = next_offset;
8130 } else {
8131 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8132 inner_depth.increment()?;
8133 }
8134 let val_ref =
8135 self.locally_initiated.get_or_insert_with(|| fidl::new_empty!(bool, D));
8136 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
8137 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8138 {
8139 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8140 }
8141 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8142 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8143 }
8144 }
8145
8146 next_offset += envelope_size;
8147
8148 while next_offset < end_offset {
8150 _next_ordinal_to_read += 1;
8151 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8152 next_offset += envelope_size;
8153 }
8154
8155 Ok(())
8156 }
8157 }
8158
8159 impl WlanFullmacImplIfcEapolConfRequest {
8160 #[inline(always)]
8161 fn max_ordinal_present(&self) -> u64 {
8162 if let Some(_) = self.dst_addr {
8163 return 2;
8164 }
8165 if let Some(_) = self.result_code {
8166 return 1;
8167 }
8168 0
8169 }
8170 }
8171
8172 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcEapolConfRequest {
8173 type Borrowed<'a> = &'a Self;
8174 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
8175 value
8176 }
8177 }
8178
8179 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcEapolConfRequest {
8180 type Owned = Self;
8181
8182 #[inline(always)]
8183 fn inline_align(_context: fidl::encoding::Context) -> usize {
8184 8
8185 }
8186
8187 #[inline(always)]
8188 fn inline_size(_context: fidl::encoding::Context) -> usize {
8189 16
8190 }
8191 }
8192
8193 unsafe impl<D: fidl::encoding::ResourceDialect>
8194 fidl::encoding::Encode<WlanFullmacImplIfcEapolConfRequest, D>
8195 for &WlanFullmacImplIfcEapolConfRequest
8196 {
8197 unsafe fn encode(
8198 self,
8199 encoder: &mut fidl::encoding::Encoder<'_, D>,
8200 offset: usize,
8201 mut depth: fidl::encoding::Depth,
8202 ) -> fidl::Result<()> {
8203 encoder.debug_check_bounds::<WlanFullmacImplIfcEapolConfRequest>(offset);
8204 let max_ordinal: u64 = self.max_ordinal_present();
8206 encoder.write_num(max_ordinal, offset);
8207 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
8208 if max_ordinal == 0 {
8210 return Ok(());
8211 }
8212 depth.increment()?;
8213 let envelope_size = 8;
8214 let bytes_len = max_ordinal as usize * envelope_size;
8215 #[allow(unused_variables)]
8216 let offset = encoder.out_of_line_offset(bytes_len);
8217 let mut _prev_end_offset: usize = 0;
8218 if 1 > max_ordinal {
8219 return Ok(());
8220 }
8221
8222 let cur_offset: usize = (1 - 1) * envelope_size;
8225
8226 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8228
8229 fidl::encoding::encode_in_envelope_optional::<EapolTxResult, D>(
8234 self.result_code
8235 .as_ref()
8236 .map(<EapolTxResult as fidl::encoding::ValueTypeMarker>::borrow),
8237 encoder,
8238 offset + cur_offset,
8239 depth,
8240 )?;
8241
8242 _prev_end_offset = cur_offset + envelope_size;
8243 if 2 > max_ordinal {
8244 return Ok(());
8245 }
8246
8247 let cur_offset: usize = (2 - 1) * envelope_size;
8250
8251 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8253
8254 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
8259 self.dst_addr
8260 .as_ref()
8261 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
8262 encoder,
8263 offset + cur_offset,
8264 depth,
8265 )?;
8266
8267 _prev_end_offset = cur_offset + envelope_size;
8268
8269 Ok(())
8270 }
8271 }
8272
8273 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
8274 for WlanFullmacImplIfcEapolConfRequest
8275 {
8276 #[inline(always)]
8277 fn new_empty() -> Self {
8278 Self::default()
8279 }
8280
8281 unsafe fn decode(
8282 &mut self,
8283 decoder: &mut fidl::encoding::Decoder<'_, D>,
8284 offset: usize,
8285 mut depth: fidl::encoding::Depth,
8286 ) -> fidl::Result<()> {
8287 decoder.debug_check_bounds::<Self>(offset);
8288 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
8289 None => return Err(fidl::Error::NotNullable),
8290 Some(len) => len,
8291 };
8292 if len == 0 {
8294 return Ok(());
8295 };
8296 depth.increment()?;
8297 let envelope_size = 8;
8298 let bytes_len = len * envelope_size;
8299 let offset = decoder.out_of_line_offset(bytes_len)?;
8300 let mut _next_ordinal_to_read = 0;
8302 let mut next_offset = offset;
8303 let end_offset = offset + bytes_len;
8304 _next_ordinal_to_read += 1;
8305 if next_offset >= end_offset {
8306 return Ok(());
8307 }
8308
8309 while _next_ordinal_to_read < 1 {
8311 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8312 _next_ordinal_to_read += 1;
8313 next_offset += envelope_size;
8314 }
8315
8316 let next_out_of_line = decoder.next_out_of_line();
8317 let handles_before = decoder.remaining_handles();
8318 if let Some((inlined, num_bytes, num_handles)) =
8319 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8320 {
8321 let member_inline_size =
8322 <EapolTxResult as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8323 if inlined != (member_inline_size <= 4) {
8324 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8325 }
8326 let inner_offset;
8327 let mut inner_depth = depth.clone();
8328 if inlined {
8329 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8330 inner_offset = next_offset;
8331 } else {
8332 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8333 inner_depth.increment()?;
8334 }
8335 let val_ref =
8336 self.result_code.get_or_insert_with(|| fidl::new_empty!(EapolTxResult, D));
8337 fidl::decode!(EapolTxResult, D, val_ref, decoder, inner_offset, inner_depth)?;
8338 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8339 {
8340 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8341 }
8342 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8343 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8344 }
8345 }
8346
8347 next_offset += envelope_size;
8348 _next_ordinal_to_read += 1;
8349 if next_offset >= end_offset {
8350 return Ok(());
8351 }
8352
8353 while _next_ordinal_to_read < 2 {
8355 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8356 _next_ordinal_to_read += 1;
8357 next_offset += envelope_size;
8358 }
8359
8360 let next_out_of_line = decoder.next_out_of_line();
8361 let handles_before = decoder.remaining_handles();
8362 if let Some((inlined, num_bytes, num_handles)) =
8363 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8364 {
8365 let member_inline_size =
8366 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
8367 decoder.context,
8368 );
8369 if inlined != (member_inline_size <= 4) {
8370 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8371 }
8372 let inner_offset;
8373 let mut inner_depth = depth.clone();
8374 if inlined {
8375 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8376 inner_offset = next_offset;
8377 } else {
8378 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8379 inner_depth.increment()?;
8380 }
8381 let val_ref = self
8382 .dst_addr
8383 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
8384 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
8385 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8386 {
8387 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8388 }
8389 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8390 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8391 }
8392 }
8393
8394 next_offset += envelope_size;
8395
8396 while next_offset < end_offset {
8398 _next_ordinal_to_read += 1;
8399 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8400 next_offset += envelope_size;
8401 }
8402
8403 Ok(())
8404 }
8405 }
8406
8407 impl WlanFullmacImplIfcEapolIndRequest {
8408 #[inline(always)]
8409 fn max_ordinal_present(&self) -> u64 {
8410 if let Some(_) = self.data {
8411 return 3;
8412 }
8413 if let Some(_) = self.dst_addr {
8414 return 2;
8415 }
8416 if let Some(_) = self.src_addr {
8417 return 1;
8418 }
8419 0
8420 }
8421 }
8422
8423 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcEapolIndRequest {
8424 type Borrowed<'a> = &'a Self;
8425 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
8426 value
8427 }
8428 }
8429
8430 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcEapolIndRequest {
8431 type Owned = Self;
8432
8433 #[inline(always)]
8434 fn inline_align(_context: fidl::encoding::Context) -> usize {
8435 8
8436 }
8437
8438 #[inline(always)]
8439 fn inline_size(_context: fidl::encoding::Context) -> usize {
8440 16
8441 }
8442 }
8443
8444 unsafe impl<D: fidl::encoding::ResourceDialect>
8445 fidl::encoding::Encode<WlanFullmacImplIfcEapolIndRequest, D>
8446 for &WlanFullmacImplIfcEapolIndRequest
8447 {
8448 unsafe fn encode(
8449 self,
8450 encoder: &mut fidl::encoding::Encoder<'_, D>,
8451 offset: usize,
8452 mut depth: fidl::encoding::Depth,
8453 ) -> fidl::Result<()> {
8454 encoder.debug_check_bounds::<WlanFullmacImplIfcEapolIndRequest>(offset);
8455 let max_ordinal: u64 = self.max_ordinal_present();
8457 encoder.write_num(max_ordinal, offset);
8458 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
8459 if max_ordinal == 0 {
8461 return Ok(());
8462 }
8463 depth.increment()?;
8464 let envelope_size = 8;
8465 let bytes_len = max_ordinal as usize * envelope_size;
8466 #[allow(unused_variables)]
8467 let offset = encoder.out_of_line_offset(bytes_len);
8468 let mut _prev_end_offset: usize = 0;
8469 if 1 > max_ordinal {
8470 return Ok(());
8471 }
8472
8473 let cur_offset: usize = (1 - 1) * envelope_size;
8476
8477 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8479
8480 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
8485 self.src_addr
8486 .as_ref()
8487 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
8488 encoder,
8489 offset + cur_offset,
8490 depth,
8491 )?;
8492
8493 _prev_end_offset = cur_offset + envelope_size;
8494 if 2 > max_ordinal {
8495 return Ok(());
8496 }
8497
8498 let cur_offset: usize = (2 - 1) * envelope_size;
8501
8502 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8504
8505 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
8510 self.dst_addr
8511 .as_ref()
8512 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
8513 encoder,
8514 offset + cur_offset,
8515 depth,
8516 )?;
8517
8518 _prev_end_offset = cur_offset + envelope_size;
8519 if 3 > max_ordinal {
8520 return Ok(());
8521 }
8522
8523 let cur_offset: usize = (3 - 1) * envelope_size;
8526
8527 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8529
8530 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<u8>, D>(
8535 self.data.as_ref().map(<fidl::encoding::UnboundedVector<u8> as fidl::encoding::ValueTypeMarker>::borrow),
8536 encoder, offset + cur_offset, depth
8537 )?;
8538
8539 _prev_end_offset = cur_offset + envelope_size;
8540
8541 Ok(())
8542 }
8543 }
8544
8545 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
8546 for WlanFullmacImplIfcEapolIndRequest
8547 {
8548 #[inline(always)]
8549 fn new_empty() -> Self {
8550 Self::default()
8551 }
8552
8553 unsafe fn decode(
8554 &mut self,
8555 decoder: &mut fidl::encoding::Decoder<'_, D>,
8556 offset: usize,
8557 mut depth: fidl::encoding::Depth,
8558 ) -> fidl::Result<()> {
8559 decoder.debug_check_bounds::<Self>(offset);
8560 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
8561 None => return Err(fidl::Error::NotNullable),
8562 Some(len) => len,
8563 };
8564 if len == 0 {
8566 return Ok(());
8567 };
8568 depth.increment()?;
8569 let envelope_size = 8;
8570 let bytes_len = len * envelope_size;
8571 let offset = decoder.out_of_line_offset(bytes_len)?;
8572 let mut _next_ordinal_to_read = 0;
8574 let mut next_offset = offset;
8575 let end_offset = offset + bytes_len;
8576 _next_ordinal_to_read += 1;
8577 if next_offset >= end_offset {
8578 return Ok(());
8579 }
8580
8581 while _next_ordinal_to_read < 1 {
8583 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8584 _next_ordinal_to_read += 1;
8585 next_offset += envelope_size;
8586 }
8587
8588 let next_out_of_line = decoder.next_out_of_line();
8589 let handles_before = decoder.remaining_handles();
8590 if let Some((inlined, num_bytes, num_handles)) =
8591 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8592 {
8593 let member_inline_size =
8594 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
8595 decoder.context,
8596 );
8597 if inlined != (member_inline_size <= 4) {
8598 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8599 }
8600 let inner_offset;
8601 let mut inner_depth = depth.clone();
8602 if inlined {
8603 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8604 inner_offset = next_offset;
8605 } else {
8606 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8607 inner_depth.increment()?;
8608 }
8609 let val_ref = self
8610 .src_addr
8611 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
8612 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
8613 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8614 {
8615 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8616 }
8617 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8618 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8619 }
8620 }
8621
8622 next_offset += envelope_size;
8623 _next_ordinal_to_read += 1;
8624 if next_offset >= end_offset {
8625 return Ok(());
8626 }
8627
8628 while _next_ordinal_to_read < 2 {
8630 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8631 _next_ordinal_to_read += 1;
8632 next_offset += envelope_size;
8633 }
8634
8635 let next_out_of_line = decoder.next_out_of_line();
8636 let handles_before = decoder.remaining_handles();
8637 if let Some((inlined, num_bytes, num_handles)) =
8638 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8639 {
8640 let member_inline_size =
8641 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
8642 decoder.context,
8643 );
8644 if inlined != (member_inline_size <= 4) {
8645 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8646 }
8647 let inner_offset;
8648 let mut inner_depth = depth.clone();
8649 if inlined {
8650 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8651 inner_offset = next_offset;
8652 } else {
8653 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8654 inner_depth.increment()?;
8655 }
8656 let val_ref = self
8657 .dst_addr
8658 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
8659 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
8660 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8661 {
8662 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8663 }
8664 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8665 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8666 }
8667 }
8668
8669 next_offset += envelope_size;
8670 _next_ordinal_to_read += 1;
8671 if next_offset >= end_offset {
8672 return Ok(());
8673 }
8674
8675 while _next_ordinal_to_read < 3 {
8677 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8678 _next_ordinal_to_read += 1;
8679 next_offset += envelope_size;
8680 }
8681
8682 let next_out_of_line = decoder.next_out_of_line();
8683 let handles_before = decoder.remaining_handles();
8684 if let Some((inlined, num_bytes, num_handles)) =
8685 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8686 {
8687 let member_inline_size = <fidl::encoding::UnboundedVector<u8> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8688 if inlined != (member_inline_size <= 4) {
8689 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8690 }
8691 let inner_offset;
8692 let mut inner_depth = depth.clone();
8693 if inlined {
8694 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8695 inner_offset = next_offset;
8696 } else {
8697 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8698 inner_depth.increment()?;
8699 }
8700 let val_ref = self.data.get_or_insert_with(|| {
8701 fidl::new_empty!(fidl::encoding::UnboundedVector<u8>, D)
8702 });
8703 fidl::decode!(
8704 fidl::encoding::UnboundedVector<u8>,
8705 D,
8706 val_ref,
8707 decoder,
8708 inner_offset,
8709 inner_depth
8710 )?;
8711 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8712 {
8713 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8714 }
8715 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8716 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8717 }
8718 }
8719
8720 next_offset += envelope_size;
8721
8722 while next_offset < end_offset {
8724 _next_ordinal_to_read += 1;
8725 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8726 next_offset += envelope_size;
8727 }
8728
8729 Ok(())
8730 }
8731 }
8732
8733 impl WlanFullmacImplIfcOnPmkAvailableRequest {
8734 #[inline(always)]
8735 fn max_ordinal_present(&self) -> u64 {
8736 if let Some(_) = self.pmkid {
8737 return 2;
8738 }
8739 if let Some(_) = self.pmk {
8740 return 1;
8741 }
8742 0
8743 }
8744 }
8745
8746 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcOnPmkAvailableRequest {
8747 type Borrowed<'a> = &'a Self;
8748 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
8749 value
8750 }
8751 }
8752
8753 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcOnPmkAvailableRequest {
8754 type Owned = Self;
8755
8756 #[inline(always)]
8757 fn inline_align(_context: fidl::encoding::Context) -> usize {
8758 8
8759 }
8760
8761 #[inline(always)]
8762 fn inline_size(_context: fidl::encoding::Context) -> usize {
8763 16
8764 }
8765 }
8766
8767 unsafe impl<D: fidl::encoding::ResourceDialect>
8768 fidl::encoding::Encode<WlanFullmacImplIfcOnPmkAvailableRequest, D>
8769 for &WlanFullmacImplIfcOnPmkAvailableRequest
8770 {
8771 unsafe fn encode(
8772 self,
8773 encoder: &mut fidl::encoding::Encoder<'_, D>,
8774 offset: usize,
8775 mut depth: fidl::encoding::Depth,
8776 ) -> fidl::Result<()> {
8777 encoder.debug_check_bounds::<WlanFullmacImplIfcOnPmkAvailableRequest>(offset);
8778 let max_ordinal: u64 = self.max_ordinal_present();
8780 encoder.write_num(max_ordinal, offset);
8781 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
8782 if max_ordinal == 0 {
8784 return Ok(());
8785 }
8786 depth.increment()?;
8787 let envelope_size = 8;
8788 let bytes_len = max_ordinal as usize * envelope_size;
8789 #[allow(unused_variables)]
8790 let offset = encoder.out_of_line_offset(bytes_len);
8791 let mut _prev_end_offset: usize = 0;
8792 if 1 > max_ordinal {
8793 return Ok(());
8794 }
8795
8796 let cur_offset: usize = (1 - 1) * envelope_size;
8799
8800 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8802
8803 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<u8>, D>(
8808 self.pmk.as_ref().map(<fidl::encoding::UnboundedVector<u8> as fidl::encoding::ValueTypeMarker>::borrow),
8809 encoder, offset + cur_offset, depth
8810 )?;
8811
8812 _prev_end_offset = cur_offset + envelope_size;
8813 if 2 > max_ordinal {
8814 return Ok(());
8815 }
8816
8817 let cur_offset: usize = (2 - 1) * envelope_size;
8820
8821 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8823
8824 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<u8>, D>(
8829 self.pmkid.as_ref().map(<fidl::encoding::UnboundedVector<u8> as fidl::encoding::ValueTypeMarker>::borrow),
8830 encoder, offset + cur_offset, depth
8831 )?;
8832
8833 _prev_end_offset = cur_offset + envelope_size;
8834
8835 Ok(())
8836 }
8837 }
8838
8839 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
8840 for WlanFullmacImplIfcOnPmkAvailableRequest
8841 {
8842 #[inline(always)]
8843 fn new_empty() -> Self {
8844 Self::default()
8845 }
8846
8847 unsafe fn decode(
8848 &mut self,
8849 decoder: &mut fidl::encoding::Decoder<'_, D>,
8850 offset: usize,
8851 mut depth: fidl::encoding::Depth,
8852 ) -> fidl::Result<()> {
8853 decoder.debug_check_bounds::<Self>(offset);
8854 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
8855 None => return Err(fidl::Error::NotNullable),
8856 Some(len) => len,
8857 };
8858 if len == 0 {
8860 return Ok(());
8861 };
8862 depth.increment()?;
8863 let envelope_size = 8;
8864 let bytes_len = len * envelope_size;
8865 let offset = decoder.out_of_line_offset(bytes_len)?;
8866 let mut _next_ordinal_to_read = 0;
8868 let mut next_offset = offset;
8869 let end_offset = offset + bytes_len;
8870 _next_ordinal_to_read += 1;
8871 if next_offset >= end_offset {
8872 return Ok(());
8873 }
8874
8875 while _next_ordinal_to_read < 1 {
8877 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8878 _next_ordinal_to_read += 1;
8879 next_offset += envelope_size;
8880 }
8881
8882 let next_out_of_line = decoder.next_out_of_line();
8883 let handles_before = decoder.remaining_handles();
8884 if let Some((inlined, num_bytes, num_handles)) =
8885 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8886 {
8887 let member_inline_size = <fidl::encoding::UnboundedVector<u8> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8888 if inlined != (member_inline_size <= 4) {
8889 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8890 }
8891 let inner_offset;
8892 let mut inner_depth = depth.clone();
8893 if inlined {
8894 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8895 inner_offset = next_offset;
8896 } else {
8897 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8898 inner_depth.increment()?;
8899 }
8900 let val_ref = self.pmk.get_or_insert_with(|| {
8901 fidl::new_empty!(fidl::encoding::UnboundedVector<u8>, D)
8902 });
8903 fidl::decode!(
8904 fidl::encoding::UnboundedVector<u8>,
8905 D,
8906 val_ref,
8907 decoder,
8908 inner_offset,
8909 inner_depth
8910 )?;
8911 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8912 {
8913 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8914 }
8915 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8916 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8917 }
8918 }
8919
8920 next_offset += envelope_size;
8921 _next_ordinal_to_read += 1;
8922 if next_offset >= end_offset {
8923 return Ok(());
8924 }
8925
8926 while _next_ordinal_to_read < 2 {
8928 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8929 _next_ordinal_to_read += 1;
8930 next_offset += envelope_size;
8931 }
8932
8933 let next_out_of_line = decoder.next_out_of_line();
8934 let handles_before = decoder.remaining_handles();
8935 if let Some((inlined, num_bytes, num_handles)) =
8936 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8937 {
8938 let member_inline_size = <fidl::encoding::UnboundedVector<u8> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8939 if inlined != (member_inline_size <= 4) {
8940 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8941 }
8942 let inner_offset;
8943 let mut inner_depth = depth.clone();
8944 if inlined {
8945 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8946 inner_offset = next_offset;
8947 } else {
8948 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8949 inner_depth.increment()?;
8950 }
8951 let val_ref = self.pmkid.get_or_insert_with(|| {
8952 fidl::new_empty!(fidl::encoding::UnboundedVector<u8>, D)
8953 });
8954 fidl::decode!(
8955 fidl::encoding::UnboundedVector<u8>,
8956 D,
8957 val_ref,
8958 decoder,
8959 inner_offset,
8960 inner_depth
8961 )?;
8962 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8963 {
8964 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8965 }
8966 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8967 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8968 }
8969 }
8970
8971 next_offset += envelope_size;
8972
8973 while next_offset < end_offset {
8975 _next_ordinal_to_read += 1;
8976 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8977 next_offset += envelope_size;
8978 }
8979
8980 Ok(())
8981 }
8982 }
8983
8984 impl WlanFullmacImplIfcOnScanEndRequest {
8985 #[inline(always)]
8986 fn max_ordinal_present(&self) -> u64 {
8987 if let Some(_) = self.code {
8988 return 2;
8989 }
8990 if let Some(_) = self.txn_id {
8991 return 1;
8992 }
8993 0
8994 }
8995 }
8996
8997 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcOnScanEndRequest {
8998 type Borrowed<'a> = &'a Self;
8999 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
9000 value
9001 }
9002 }
9003
9004 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcOnScanEndRequest {
9005 type Owned = Self;
9006
9007 #[inline(always)]
9008 fn inline_align(_context: fidl::encoding::Context) -> usize {
9009 8
9010 }
9011
9012 #[inline(always)]
9013 fn inline_size(_context: fidl::encoding::Context) -> usize {
9014 16
9015 }
9016 }
9017
9018 unsafe impl<D: fidl::encoding::ResourceDialect>
9019 fidl::encoding::Encode<WlanFullmacImplIfcOnScanEndRequest, D>
9020 for &WlanFullmacImplIfcOnScanEndRequest
9021 {
9022 unsafe fn encode(
9023 self,
9024 encoder: &mut fidl::encoding::Encoder<'_, D>,
9025 offset: usize,
9026 mut depth: fidl::encoding::Depth,
9027 ) -> fidl::Result<()> {
9028 encoder.debug_check_bounds::<WlanFullmacImplIfcOnScanEndRequest>(offset);
9029 let max_ordinal: u64 = self.max_ordinal_present();
9031 encoder.write_num(max_ordinal, offset);
9032 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
9033 if max_ordinal == 0 {
9035 return Ok(());
9036 }
9037 depth.increment()?;
9038 let envelope_size = 8;
9039 let bytes_len = max_ordinal as usize * envelope_size;
9040 #[allow(unused_variables)]
9041 let offset = encoder.out_of_line_offset(bytes_len);
9042 let mut _prev_end_offset: usize = 0;
9043 if 1 > max_ordinal {
9044 return Ok(());
9045 }
9046
9047 let cur_offset: usize = (1 - 1) * envelope_size;
9050
9051 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9053
9054 fidl::encoding::encode_in_envelope_optional::<u64, D>(
9059 self.txn_id.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
9060 encoder,
9061 offset + cur_offset,
9062 depth,
9063 )?;
9064
9065 _prev_end_offset = cur_offset + envelope_size;
9066 if 2 > max_ordinal {
9067 return Ok(());
9068 }
9069
9070 let cur_offset: usize = (2 - 1) * envelope_size;
9073
9074 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9076
9077 fidl::encoding::encode_in_envelope_optional::<WlanScanResult, D>(
9082 self.code.as_ref().map(<WlanScanResult as fidl::encoding::ValueTypeMarker>::borrow),
9083 encoder,
9084 offset + cur_offset,
9085 depth,
9086 )?;
9087
9088 _prev_end_offset = cur_offset + envelope_size;
9089
9090 Ok(())
9091 }
9092 }
9093
9094 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
9095 for WlanFullmacImplIfcOnScanEndRequest
9096 {
9097 #[inline(always)]
9098 fn new_empty() -> Self {
9099 Self::default()
9100 }
9101
9102 unsafe fn decode(
9103 &mut self,
9104 decoder: &mut fidl::encoding::Decoder<'_, D>,
9105 offset: usize,
9106 mut depth: fidl::encoding::Depth,
9107 ) -> fidl::Result<()> {
9108 decoder.debug_check_bounds::<Self>(offset);
9109 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
9110 None => return Err(fidl::Error::NotNullable),
9111 Some(len) => len,
9112 };
9113 if len == 0 {
9115 return Ok(());
9116 };
9117 depth.increment()?;
9118 let envelope_size = 8;
9119 let bytes_len = len * envelope_size;
9120 let offset = decoder.out_of_line_offset(bytes_len)?;
9121 let mut _next_ordinal_to_read = 0;
9123 let mut next_offset = offset;
9124 let end_offset = offset + bytes_len;
9125 _next_ordinal_to_read += 1;
9126 if next_offset >= end_offset {
9127 return Ok(());
9128 }
9129
9130 while _next_ordinal_to_read < 1 {
9132 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9133 _next_ordinal_to_read += 1;
9134 next_offset += envelope_size;
9135 }
9136
9137 let next_out_of_line = decoder.next_out_of_line();
9138 let handles_before = decoder.remaining_handles();
9139 if let Some((inlined, num_bytes, num_handles)) =
9140 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9141 {
9142 let member_inline_size =
9143 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
9144 if inlined != (member_inline_size <= 4) {
9145 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9146 }
9147 let inner_offset;
9148 let mut inner_depth = depth.clone();
9149 if inlined {
9150 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9151 inner_offset = next_offset;
9152 } else {
9153 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9154 inner_depth.increment()?;
9155 }
9156 let val_ref = self.txn_id.get_or_insert_with(|| fidl::new_empty!(u64, D));
9157 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
9158 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9159 {
9160 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9161 }
9162 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9163 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9164 }
9165 }
9166
9167 next_offset += envelope_size;
9168 _next_ordinal_to_read += 1;
9169 if next_offset >= end_offset {
9170 return Ok(());
9171 }
9172
9173 while _next_ordinal_to_read < 2 {
9175 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9176 _next_ordinal_to_read += 1;
9177 next_offset += envelope_size;
9178 }
9179
9180 let next_out_of_line = decoder.next_out_of_line();
9181 let handles_before = decoder.remaining_handles();
9182 if let Some((inlined, num_bytes, num_handles)) =
9183 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9184 {
9185 let member_inline_size =
9186 <WlanScanResult as fidl::encoding::TypeMarker>::inline_size(decoder.context);
9187 if inlined != (member_inline_size <= 4) {
9188 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9189 }
9190 let inner_offset;
9191 let mut inner_depth = depth.clone();
9192 if inlined {
9193 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9194 inner_offset = next_offset;
9195 } else {
9196 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9197 inner_depth.increment()?;
9198 }
9199 let val_ref = self.code.get_or_insert_with(|| fidl::new_empty!(WlanScanResult, D));
9200 fidl::decode!(WlanScanResult, D, val_ref, decoder, inner_offset, inner_depth)?;
9201 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9202 {
9203 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9204 }
9205 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9206 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9207 }
9208 }
9209
9210 next_offset += envelope_size;
9211
9212 while next_offset < end_offset {
9214 _next_ordinal_to_read += 1;
9215 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9216 next_offset += envelope_size;
9217 }
9218
9219 Ok(())
9220 }
9221 }
9222
9223 impl WlanFullmacImplIfcOnScanResultRequest {
9224 #[inline(always)]
9225 fn max_ordinal_present(&self) -> u64 {
9226 if let Some(_) = self.bss {
9227 return 3;
9228 }
9229 if let Some(_) = self.timestamp_nanos {
9230 return 2;
9231 }
9232 if let Some(_) = self.txn_id {
9233 return 1;
9234 }
9235 0
9236 }
9237 }
9238
9239 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcOnScanResultRequest {
9240 type Borrowed<'a> = &'a Self;
9241 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
9242 value
9243 }
9244 }
9245
9246 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcOnScanResultRequest {
9247 type Owned = Self;
9248
9249 #[inline(always)]
9250 fn inline_align(_context: fidl::encoding::Context) -> usize {
9251 8
9252 }
9253
9254 #[inline(always)]
9255 fn inline_size(_context: fidl::encoding::Context) -> usize {
9256 16
9257 }
9258 }
9259
9260 unsafe impl<D: fidl::encoding::ResourceDialect>
9261 fidl::encoding::Encode<WlanFullmacImplIfcOnScanResultRequest, D>
9262 for &WlanFullmacImplIfcOnScanResultRequest
9263 {
9264 unsafe fn encode(
9265 self,
9266 encoder: &mut fidl::encoding::Encoder<'_, D>,
9267 offset: usize,
9268 mut depth: fidl::encoding::Depth,
9269 ) -> fidl::Result<()> {
9270 encoder.debug_check_bounds::<WlanFullmacImplIfcOnScanResultRequest>(offset);
9271 let max_ordinal: u64 = self.max_ordinal_present();
9273 encoder.write_num(max_ordinal, offset);
9274 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
9275 if max_ordinal == 0 {
9277 return Ok(());
9278 }
9279 depth.increment()?;
9280 let envelope_size = 8;
9281 let bytes_len = max_ordinal as usize * envelope_size;
9282 #[allow(unused_variables)]
9283 let offset = encoder.out_of_line_offset(bytes_len);
9284 let mut _prev_end_offset: usize = 0;
9285 if 1 > max_ordinal {
9286 return Ok(());
9287 }
9288
9289 let cur_offset: usize = (1 - 1) * envelope_size;
9292
9293 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9295
9296 fidl::encoding::encode_in_envelope_optional::<u64, D>(
9301 self.txn_id.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
9302 encoder,
9303 offset + cur_offset,
9304 depth,
9305 )?;
9306
9307 _prev_end_offset = cur_offset + envelope_size;
9308 if 2 > max_ordinal {
9309 return Ok(());
9310 }
9311
9312 let cur_offset: usize = (2 - 1) * envelope_size;
9315
9316 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9318
9319 fidl::encoding::encode_in_envelope_optional::<i64, D>(
9324 self.timestamp_nanos.as_ref().map(<i64 as fidl::encoding::ValueTypeMarker>::borrow),
9325 encoder,
9326 offset + cur_offset,
9327 depth,
9328 )?;
9329
9330 _prev_end_offset = cur_offset + envelope_size;
9331 if 3 > max_ordinal {
9332 return Ok(());
9333 }
9334
9335 let cur_offset: usize = (3 - 1) * envelope_size;
9338
9339 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9341
9342 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_common__common::BssDescription, D>(
9347 self.bss.as_ref().map(<fidl_fuchsia_wlan_common__common::BssDescription as fidl::encoding::ValueTypeMarker>::borrow),
9348 encoder, offset + cur_offset, depth
9349 )?;
9350
9351 _prev_end_offset = cur_offset + envelope_size;
9352
9353 Ok(())
9354 }
9355 }
9356
9357 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
9358 for WlanFullmacImplIfcOnScanResultRequest
9359 {
9360 #[inline(always)]
9361 fn new_empty() -> Self {
9362 Self::default()
9363 }
9364
9365 unsafe fn decode(
9366 &mut self,
9367 decoder: &mut fidl::encoding::Decoder<'_, D>,
9368 offset: usize,
9369 mut depth: fidl::encoding::Depth,
9370 ) -> fidl::Result<()> {
9371 decoder.debug_check_bounds::<Self>(offset);
9372 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
9373 None => return Err(fidl::Error::NotNullable),
9374 Some(len) => len,
9375 };
9376 if len == 0 {
9378 return Ok(());
9379 };
9380 depth.increment()?;
9381 let envelope_size = 8;
9382 let bytes_len = len * envelope_size;
9383 let offset = decoder.out_of_line_offset(bytes_len)?;
9384 let mut _next_ordinal_to_read = 0;
9386 let mut next_offset = offset;
9387 let end_offset = offset + bytes_len;
9388 _next_ordinal_to_read += 1;
9389 if next_offset >= end_offset {
9390 return Ok(());
9391 }
9392
9393 while _next_ordinal_to_read < 1 {
9395 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9396 _next_ordinal_to_read += 1;
9397 next_offset += envelope_size;
9398 }
9399
9400 let next_out_of_line = decoder.next_out_of_line();
9401 let handles_before = decoder.remaining_handles();
9402 if let Some((inlined, num_bytes, num_handles)) =
9403 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9404 {
9405 let member_inline_size =
9406 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
9407 if inlined != (member_inline_size <= 4) {
9408 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9409 }
9410 let inner_offset;
9411 let mut inner_depth = depth.clone();
9412 if inlined {
9413 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9414 inner_offset = next_offset;
9415 } else {
9416 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9417 inner_depth.increment()?;
9418 }
9419 let val_ref = self.txn_id.get_or_insert_with(|| fidl::new_empty!(u64, D));
9420 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
9421 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9422 {
9423 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9424 }
9425 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9426 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9427 }
9428 }
9429
9430 next_offset += envelope_size;
9431 _next_ordinal_to_read += 1;
9432 if next_offset >= end_offset {
9433 return Ok(());
9434 }
9435
9436 while _next_ordinal_to_read < 2 {
9438 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9439 _next_ordinal_to_read += 1;
9440 next_offset += envelope_size;
9441 }
9442
9443 let next_out_of_line = decoder.next_out_of_line();
9444 let handles_before = decoder.remaining_handles();
9445 if let Some((inlined, num_bytes, num_handles)) =
9446 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9447 {
9448 let member_inline_size =
9449 <i64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
9450 if inlined != (member_inline_size <= 4) {
9451 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9452 }
9453 let inner_offset;
9454 let mut inner_depth = depth.clone();
9455 if inlined {
9456 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9457 inner_offset = next_offset;
9458 } else {
9459 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9460 inner_depth.increment()?;
9461 }
9462 let val_ref = self.timestamp_nanos.get_or_insert_with(|| fidl::new_empty!(i64, D));
9463 fidl::decode!(i64, D, val_ref, decoder, inner_offset, inner_depth)?;
9464 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9465 {
9466 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9467 }
9468 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9469 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9470 }
9471 }
9472
9473 next_offset += envelope_size;
9474 _next_ordinal_to_read += 1;
9475 if next_offset >= end_offset {
9476 return Ok(());
9477 }
9478
9479 while _next_ordinal_to_read < 3 {
9481 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9482 _next_ordinal_to_read += 1;
9483 next_offset += envelope_size;
9484 }
9485
9486 let next_out_of_line = decoder.next_out_of_line();
9487 let handles_before = decoder.remaining_handles();
9488 if let Some((inlined, num_bytes, num_handles)) =
9489 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9490 {
9491 let member_inline_size = <fidl_fuchsia_wlan_common__common::BssDescription as fidl::encoding::TypeMarker>::inline_size(decoder.context);
9492 if inlined != (member_inline_size <= 4) {
9493 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9494 }
9495 let inner_offset;
9496 let mut inner_depth = depth.clone();
9497 if inlined {
9498 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9499 inner_offset = next_offset;
9500 } else {
9501 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9502 inner_depth.increment()?;
9503 }
9504 let val_ref = self.bss.get_or_insert_with(|| {
9505 fidl::new_empty!(fidl_fuchsia_wlan_common__common::BssDescription, D)
9506 });
9507 fidl::decode!(
9508 fidl_fuchsia_wlan_common__common::BssDescription,
9509 D,
9510 val_ref,
9511 decoder,
9512 inner_offset,
9513 inner_depth
9514 )?;
9515 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9516 {
9517 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9518 }
9519 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9520 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9521 }
9522 }
9523
9524 next_offset += envelope_size;
9525
9526 while next_offset < end_offset {
9528 _next_ordinal_to_read += 1;
9529 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9530 next_offset += envelope_size;
9531 }
9532
9533 Ok(())
9534 }
9535 }
9536
9537 impl WlanFullmacImplIfcRoamConfRequest {
9538 #[inline(always)]
9539 fn max_ordinal_present(&self) -> u64 {
9540 if let Some(_) = self.association_ies {
9541 return 6;
9542 }
9543 if let Some(_) = self.association_id {
9544 return 5;
9545 }
9546 if let Some(_) = self.target_bss_authenticated {
9547 return 4;
9548 }
9549 if let Some(_) = self.original_association_maintained {
9550 return 3;
9551 }
9552 if let Some(_) = self.status_code {
9553 return 2;
9554 }
9555 if let Some(_) = self.selected_bssid {
9556 return 1;
9557 }
9558 0
9559 }
9560 }
9561
9562 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcRoamConfRequest {
9563 type Borrowed<'a> = &'a Self;
9564 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
9565 value
9566 }
9567 }
9568
9569 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcRoamConfRequest {
9570 type Owned = Self;
9571
9572 #[inline(always)]
9573 fn inline_align(_context: fidl::encoding::Context) -> usize {
9574 8
9575 }
9576
9577 #[inline(always)]
9578 fn inline_size(_context: fidl::encoding::Context) -> usize {
9579 16
9580 }
9581 }
9582
9583 unsafe impl<D: fidl::encoding::ResourceDialect>
9584 fidl::encoding::Encode<WlanFullmacImplIfcRoamConfRequest, D>
9585 for &WlanFullmacImplIfcRoamConfRequest
9586 {
9587 unsafe fn encode(
9588 self,
9589 encoder: &mut fidl::encoding::Encoder<'_, D>,
9590 offset: usize,
9591 mut depth: fidl::encoding::Depth,
9592 ) -> fidl::Result<()> {
9593 encoder.debug_check_bounds::<WlanFullmacImplIfcRoamConfRequest>(offset);
9594 let max_ordinal: u64 = self.max_ordinal_present();
9596 encoder.write_num(max_ordinal, offset);
9597 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
9598 if max_ordinal == 0 {
9600 return Ok(());
9601 }
9602 depth.increment()?;
9603 let envelope_size = 8;
9604 let bytes_len = max_ordinal as usize * envelope_size;
9605 #[allow(unused_variables)]
9606 let offset = encoder.out_of_line_offset(bytes_len);
9607 let mut _prev_end_offset: usize = 0;
9608 if 1 > max_ordinal {
9609 return Ok(());
9610 }
9611
9612 let cur_offset: usize = (1 - 1) * envelope_size;
9615
9616 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9618
9619 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
9624 self.selected_bssid
9625 .as_ref()
9626 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
9627 encoder,
9628 offset + cur_offset,
9629 depth,
9630 )?;
9631
9632 _prev_end_offset = cur_offset + envelope_size;
9633 if 2 > max_ordinal {
9634 return Ok(());
9635 }
9636
9637 let cur_offset: usize = (2 - 1) * envelope_size;
9640
9641 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9643
9644 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_ieee80211__common::StatusCode, D>(
9649 self.status_code.as_ref().map(<fidl_fuchsia_wlan_ieee80211__common::StatusCode as fidl::encoding::ValueTypeMarker>::borrow),
9650 encoder, offset + cur_offset, depth
9651 )?;
9652
9653 _prev_end_offset = cur_offset + envelope_size;
9654 if 3 > max_ordinal {
9655 return Ok(());
9656 }
9657
9658 let cur_offset: usize = (3 - 1) * envelope_size;
9661
9662 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9664
9665 fidl::encoding::encode_in_envelope_optional::<bool, D>(
9670 self.original_association_maintained
9671 .as_ref()
9672 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
9673 encoder,
9674 offset + cur_offset,
9675 depth,
9676 )?;
9677
9678 _prev_end_offset = cur_offset + envelope_size;
9679 if 4 > max_ordinal {
9680 return Ok(());
9681 }
9682
9683 let cur_offset: usize = (4 - 1) * envelope_size;
9686
9687 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9689
9690 fidl::encoding::encode_in_envelope_optional::<bool, D>(
9695 self.target_bss_authenticated
9696 .as_ref()
9697 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
9698 encoder,
9699 offset + cur_offset,
9700 depth,
9701 )?;
9702
9703 _prev_end_offset = cur_offset + envelope_size;
9704 if 5 > max_ordinal {
9705 return Ok(());
9706 }
9707
9708 let cur_offset: usize = (5 - 1) * envelope_size;
9711
9712 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9714
9715 fidl::encoding::encode_in_envelope_optional::<u16, D>(
9720 self.association_id.as_ref().map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
9721 encoder,
9722 offset + cur_offset,
9723 depth,
9724 )?;
9725
9726 _prev_end_offset = cur_offset + envelope_size;
9727 if 6 > max_ordinal {
9728 return Ok(());
9729 }
9730
9731 let cur_offset: usize = (6 - 1) * envelope_size;
9734
9735 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9737
9738 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<u8>, D>(
9743 self.association_ies.as_ref().map(<fidl::encoding::UnboundedVector<u8> as fidl::encoding::ValueTypeMarker>::borrow),
9744 encoder, offset + cur_offset, depth
9745 )?;
9746
9747 _prev_end_offset = cur_offset + envelope_size;
9748
9749 Ok(())
9750 }
9751 }
9752
9753 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
9754 for WlanFullmacImplIfcRoamConfRequest
9755 {
9756 #[inline(always)]
9757 fn new_empty() -> Self {
9758 Self::default()
9759 }
9760
9761 unsafe fn decode(
9762 &mut self,
9763 decoder: &mut fidl::encoding::Decoder<'_, D>,
9764 offset: usize,
9765 mut depth: fidl::encoding::Depth,
9766 ) -> fidl::Result<()> {
9767 decoder.debug_check_bounds::<Self>(offset);
9768 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
9769 None => return Err(fidl::Error::NotNullable),
9770 Some(len) => len,
9771 };
9772 if len == 0 {
9774 return Ok(());
9775 };
9776 depth.increment()?;
9777 let envelope_size = 8;
9778 let bytes_len = len * envelope_size;
9779 let offset = decoder.out_of_line_offset(bytes_len)?;
9780 let mut _next_ordinal_to_read = 0;
9782 let mut next_offset = offset;
9783 let end_offset = offset + bytes_len;
9784 _next_ordinal_to_read += 1;
9785 if next_offset >= end_offset {
9786 return Ok(());
9787 }
9788
9789 while _next_ordinal_to_read < 1 {
9791 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9792 _next_ordinal_to_read += 1;
9793 next_offset += envelope_size;
9794 }
9795
9796 let next_out_of_line = decoder.next_out_of_line();
9797 let handles_before = decoder.remaining_handles();
9798 if let Some((inlined, num_bytes, num_handles)) =
9799 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9800 {
9801 let member_inline_size =
9802 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
9803 decoder.context,
9804 );
9805 if inlined != (member_inline_size <= 4) {
9806 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9807 }
9808 let inner_offset;
9809 let mut inner_depth = depth.clone();
9810 if inlined {
9811 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9812 inner_offset = next_offset;
9813 } else {
9814 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9815 inner_depth.increment()?;
9816 }
9817 let val_ref = self
9818 .selected_bssid
9819 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
9820 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
9821 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9822 {
9823 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9824 }
9825 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9826 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9827 }
9828 }
9829
9830 next_offset += envelope_size;
9831 _next_ordinal_to_read += 1;
9832 if next_offset >= end_offset {
9833 return Ok(());
9834 }
9835
9836 while _next_ordinal_to_read < 2 {
9838 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9839 _next_ordinal_to_read += 1;
9840 next_offset += envelope_size;
9841 }
9842
9843 let next_out_of_line = decoder.next_out_of_line();
9844 let handles_before = decoder.remaining_handles();
9845 if let Some((inlined, num_bytes, num_handles)) =
9846 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9847 {
9848 let member_inline_size = <fidl_fuchsia_wlan_ieee80211__common::StatusCode as fidl::encoding::TypeMarker>::inline_size(decoder.context);
9849 if inlined != (member_inline_size <= 4) {
9850 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9851 }
9852 let inner_offset;
9853 let mut inner_depth = depth.clone();
9854 if inlined {
9855 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9856 inner_offset = next_offset;
9857 } else {
9858 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9859 inner_depth.increment()?;
9860 }
9861 let val_ref = self.status_code.get_or_insert_with(|| {
9862 fidl::new_empty!(fidl_fuchsia_wlan_ieee80211__common::StatusCode, D)
9863 });
9864 fidl::decode!(
9865 fidl_fuchsia_wlan_ieee80211__common::StatusCode,
9866 D,
9867 val_ref,
9868 decoder,
9869 inner_offset,
9870 inner_depth
9871 )?;
9872 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9873 {
9874 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9875 }
9876 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9877 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9878 }
9879 }
9880
9881 next_offset += envelope_size;
9882 _next_ordinal_to_read += 1;
9883 if next_offset >= end_offset {
9884 return Ok(());
9885 }
9886
9887 while _next_ordinal_to_read < 3 {
9889 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9890 _next_ordinal_to_read += 1;
9891 next_offset += envelope_size;
9892 }
9893
9894 let next_out_of_line = decoder.next_out_of_line();
9895 let handles_before = decoder.remaining_handles();
9896 if let Some((inlined, num_bytes, num_handles)) =
9897 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9898 {
9899 let member_inline_size =
9900 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
9901 if inlined != (member_inline_size <= 4) {
9902 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9903 }
9904 let inner_offset;
9905 let mut inner_depth = depth.clone();
9906 if inlined {
9907 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9908 inner_offset = next_offset;
9909 } else {
9910 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9911 inner_depth.increment()?;
9912 }
9913 let val_ref = self
9914 .original_association_maintained
9915 .get_or_insert_with(|| fidl::new_empty!(bool, D));
9916 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
9917 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9918 {
9919 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9920 }
9921 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9922 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9923 }
9924 }
9925
9926 next_offset += envelope_size;
9927 _next_ordinal_to_read += 1;
9928 if next_offset >= end_offset {
9929 return Ok(());
9930 }
9931
9932 while _next_ordinal_to_read < 4 {
9934 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9935 _next_ordinal_to_read += 1;
9936 next_offset += envelope_size;
9937 }
9938
9939 let next_out_of_line = decoder.next_out_of_line();
9940 let handles_before = decoder.remaining_handles();
9941 if let Some((inlined, num_bytes, num_handles)) =
9942 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9943 {
9944 let member_inline_size =
9945 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
9946 if inlined != (member_inline_size <= 4) {
9947 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9948 }
9949 let inner_offset;
9950 let mut inner_depth = depth.clone();
9951 if inlined {
9952 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9953 inner_offset = next_offset;
9954 } else {
9955 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9956 inner_depth.increment()?;
9957 }
9958 let val_ref =
9959 self.target_bss_authenticated.get_or_insert_with(|| fidl::new_empty!(bool, D));
9960 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
9961 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9962 {
9963 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9964 }
9965 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9966 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9967 }
9968 }
9969
9970 next_offset += envelope_size;
9971 _next_ordinal_to_read += 1;
9972 if next_offset >= end_offset {
9973 return Ok(());
9974 }
9975
9976 while _next_ordinal_to_read < 5 {
9978 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9979 _next_ordinal_to_read += 1;
9980 next_offset += envelope_size;
9981 }
9982
9983 let next_out_of_line = decoder.next_out_of_line();
9984 let handles_before = decoder.remaining_handles();
9985 if let Some((inlined, num_bytes, num_handles)) =
9986 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9987 {
9988 let member_inline_size =
9989 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
9990 if inlined != (member_inline_size <= 4) {
9991 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9992 }
9993 let inner_offset;
9994 let mut inner_depth = depth.clone();
9995 if inlined {
9996 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9997 inner_offset = next_offset;
9998 } else {
9999 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10000 inner_depth.increment()?;
10001 }
10002 let val_ref = self.association_id.get_or_insert_with(|| fidl::new_empty!(u16, D));
10003 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
10004 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10005 {
10006 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10007 }
10008 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10009 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10010 }
10011 }
10012
10013 next_offset += envelope_size;
10014 _next_ordinal_to_read += 1;
10015 if next_offset >= end_offset {
10016 return Ok(());
10017 }
10018
10019 while _next_ordinal_to_read < 6 {
10021 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10022 _next_ordinal_to_read += 1;
10023 next_offset += envelope_size;
10024 }
10025
10026 let next_out_of_line = decoder.next_out_of_line();
10027 let handles_before = decoder.remaining_handles();
10028 if let Some((inlined, num_bytes, num_handles)) =
10029 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10030 {
10031 let member_inline_size = <fidl::encoding::UnboundedVector<u8> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
10032 if inlined != (member_inline_size <= 4) {
10033 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10034 }
10035 let inner_offset;
10036 let mut inner_depth = depth.clone();
10037 if inlined {
10038 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10039 inner_offset = next_offset;
10040 } else {
10041 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10042 inner_depth.increment()?;
10043 }
10044 let val_ref = self.association_ies.get_or_insert_with(|| {
10045 fidl::new_empty!(fidl::encoding::UnboundedVector<u8>, D)
10046 });
10047 fidl::decode!(
10048 fidl::encoding::UnboundedVector<u8>,
10049 D,
10050 val_ref,
10051 decoder,
10052 inner_offset,
10053 inner_depth
10054 )?;
10055 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10056 {
10057 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10058 }
10059 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10060 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10061 }
10062 }
10063
10064 next_offset += envelope_size;
10065
10066 while next_offset < end_offset {
10068 _next_ordinal_to_read += 1;
10069 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10070 next_offset += envelope_size;
10071 }
10072
10073 Ok(())
10074 }
10075 }
10076
10077 impl WlanFullmacImplIfcRoamResultIndRequest {
10078 #[inline(always)]
10079 fn max_ordinal_present(&self) -> u64 {
10080 if let Some(_) = self.association_ies {
10081 return 6;
10082 }
10083 if let Some(_) = self.association_id {
10084 return 5;
10085 }
10086 if let Some(_) = self.target_bss_authenticated {
10087 return 4;
10088 }
10089 if let Some(_) = self.original_association_maintained {
10090 return 3;
10091 }
10092 if let Some(_) = self.status_code {
10093 return 2;
10094 }
10095 if let Some(_) = self.selected_bssid {
10096 return 1;
10097 }
10098 0
10099 }
10100 }
10101
10102 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcRoamResultIndRequest {
10103 type Borrowed<'a> = &'a Self;
10104 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
10105 value
10106 }
10107 }
10108
10109 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcRoamResultIndRequest {
10110 type Owned = Self;
10111
10112 #[inline(always)]
10113 fn inline_align(_context: fidl::encoding::Context) -> usize {
10114 8
10115 }
10116
10117 #[inline(always)]
10118 fn inline_size(_context: fidl::encoding::Context) -> usize {
10119 16
10120 }
10121 }
10122
10123 unsafe impl<D: fidl::encoding::ResourceDialect>
10124 fidl::encoding::Encode<WlanFullmacImplIfcRoamResultIndRequest, D>
10125 for &WlanFullmacImplIfcRoamResultIndRequest
10126 {
10127 unsafe fn encode(
10128 self,
10129 encoder: &mut fidl::encoding::Encoder<'_, D>,
10130 offset: usize,
10131 mut depth: fidl::encoding::Depth,
10132 ) -> fidl::Result<()> {
10133 encoder.debug_check_bounds::<WlanFullmacImplIfcRoamResultIndRequest>(offset);
10134 let max_ordinal: u64 = self.max_ordinal_present();
10136 encoder.write_num(max_ordinal, offset);
10137 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
10138 if max_ordinal == 0 {
10140 return Ok(());
10141 }
10142 depth.increment()?;
10143 let envelope_size = 8;
10144 let bytes_len = max_ordinal as usize * envelope_size;
10145 #[allow(unused_variables)]
10146 let offset = encoder.out_of_line_offset(bytes_len);
10147 let mut _prev_end_offset: usize = 0;
10148 if 1 > max_ordinal {
10149 return Ok(());
10150 }
10151
10152 let cur_offset: usize = (1 - 1) * envelope_size;
10155
10156 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10158
10159 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
10164 self.selected_bssid
10165 .as_ref()
10166 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
10167 encoder,
10168 offset + cur_offset,
10169 depth,
10170 )?;
10171
10172 _prev_end_offset = cur_offset + envelope_size;
10173 if 2 > max_ordinal {
10174 return Ok(());
10175 }
10176
10177 let cur_offset: usize = (2 - 1) * envelope_size;
10180
10181 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10183
10184 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_ieee80211__common::StatusCode, D>(
10189 self.status_code.as_ref().map(<fidl_fuchsia_wlan_ieee80211__common::StatusCode as fidl::encoding::ValueTypeMarker>::borrow),
10190 encoder, offset + cur_offset, depth
10191 )?;
10192
10193 _prev_end_offset = cur_offset + envelope_size;
10194 if 3 > max_ordinal {
10195 return Ok(());
10196 }
10197
10198 let cur_offset: usize = (3 - 1) * envelope_size;
10201
10202 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10204
10205 fidl::encoding::encode_in_envelope_optional::<bool, D>(
10210 self.original_association_maintained
10211 .as_ref()
10212 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
10213 encoder,
10214 offset + cur_offset,
10215 depth,
10216 )?;
10217
10218 _prev_end_offset = cur_offset + envelope_size;
10219 if 4 > max_ordinal {
10220 return Ok(());
10221 }
10222
10223 let cur_offset: usize = (4 - 1) * envelope_size;
10226
10227 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10229
10230 fidl::encoding::encode_in_envelope_optional::<bool, D>(
10235 self.target_bss_authenticated
10236 .as_ref()
10237 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
10238 encoder,
10239 offset + cur_offset,
10240 depth,
10241 )?;
10242
10243 _prev_end_offset = cur_offset + envelope_size;
10244 if 5 > max_ordinal {
10245 return Ok(());
10246 }
10247
10248 let cur_offset: usize = (5 - 1) * envelope_size;
10251
10252 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10254
10255 fidl::encoding::encode_in_envelope_optional::<u16, D>(
10260 self.association_id.as_ref().map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
10261 encoder,
10262 offset + cur_offset,
10263 depth,
10264 )?;
10265
10266 _prev_end_offset = cur_offset + envelope_size;
10267 if 6 > max_ordinal {
10268 return Ok(());
10269 }
10270
10271 let cur_offset: usize = (6 - 1) * envelope_size;
10274
10275 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10277
10278 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<u8>, D>(
10283 self.association_ies.as_ref().map(<fidl::encoding::UnboundedVector<u8> as fidl::encoding::ValueTypeMarker>::borrow),
10284 encoder, offset + cur_offset, depth
10285 )?;
10286
10287 _prev_end_offset = cur_offset + envelope_size;
10288
10289 Ok(())
10290 }
10291 }
10292
10293 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
10294 for WlanFullmacImplIfcRoamResultIndRequest
10295 {
10296 #[inline(always)]
10297 fn new_empty() -> Self {
10298 Self::default()
10299 }
10300
10301 unsafe fn decode(
10302 &mut self,
10303 decoder: &mut fidl::encoding::Decoder<'_, D>,
10304 offset: usize,
10305 mut depth: fidl::encoding::Depth,
10306 ) -> fidl::Result<()> {
10307 decoder.debug_check_bounds::<Self>(offset);
10308 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
10309 None => return Err(fidl::Error::NotNullable),
10310 Some(len) => len,
10311 };
10312 if len == 0 {
10314 return Ok(());
10315 };
10316 depth.increment()?;
10317 let envelope_size = 8;
10318 let bytes_len = len * envelope_size;
10319 let offset = decoder.out_of_line_offset(bytes_len)?;
10320 let mut _next_ordinal_to_read = 0;
10322 let mut next_offset = offset;
10323 let end_offset = offset + bytes_len;
10324 _next_ordinal_to_read += 1;
10325 if next_offset >= end_offset {
10326 return Ok(());
10327 }
10328
10329 while _next_ordinal_to_read < 1 {
10331 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10332 _next_ordinal_to_read += 1;
10333 next_offset += envelope_size;
10334 }
10335
10336 let next_out_of_line = decoder.next_out_of_line();
10337 let handles_before = decoder.remaining_handles();
10338 if let Some((inlined, num_bytes, num_handles)) =
10339 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10340 {
10341 let member_inline_size =
10342 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
10343 decoder.context,
10344 );
10345 if inlined != (member_inline_size <= 4) {
10346 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10347 }
10348 let inner_offset;
10349 let mut inner_depth = depth.clone();
10350 if inlined {
10351 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10352 inner_offset = next_offset;
10353 } else {
10354 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10355 inner_depth.increment()?;
10356 }
10357 let val_ref = self
10358 .selected_bssid
10359 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
10360 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
10361 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10362 {
10363 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10364 }
10365 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10366 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10367 }
10368 }
10369
10370 next_offset += envelope_size;
10371 _next_ordinal_to_read += 1;
10372 if next_offset >= end_offset {
10373 return Ok(());
10374 }
10375
10376 while _next_ordinal_to_read < 2 {
10378 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10379 _next_ordinal_to_read += 1;
10380 next_offset += envelope_size;
10381 }
10382
10383 let next_out_of_line = decoder.next_out_of_line();
10384 let handles_before = decoder.remaining_handles();
10385 if let Some((inlined, num_bytes, num_handles)) =
10386 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10387 {
10388 let member_inline_size = <fidl_fuchsia_wlan_ieee80211__common::StatusCode as fidl::encoding::TypeMarker>::inline_size(decoder.context);
10389 if inlined != (member_inline_size <= 4) {
10390 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10391 }
10392 let inner_offset;
10393 let mut inner_depth = depth.clone();
10394 if inlined {
10395 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10396 inner_offset = next_offset;
10397 } else {
10398 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10399 inner_depth.increment()?;
10400 }
10401 let val_ref = self.status_code.get_or_insert_with(|| {
10402 fidl::new_empty!(fidl_fuchsia_wlan_ieee80211__common::StatusCode, D)
10403 });
10404 fidl::decode!(
10405 fidl_fuchsia_wlan_ieee80211__common::StatusCode,
10406 D,
10407 val_ref,
10408 decoder,
10409 inner_offset,
10410 inner_depth
10411 )?;
10412 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10413 {
10414 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10415 }
10416 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10417 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10418 }
10419 }
10420
10421 next_offset += envelope_size;
10422 _next_ordinal_to_read += 1;
10423 if next_offset >= end_offset {
10424 return Ok(());
10425 }
10426
10427 while _next_ordinal_to_read < 3 {
10429 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10430 _next_ordinal_to_read += 1;
10431 next_offset += envelope_size;
10432 }
10433
10434 let next_out_of_line = decoder.next_out_of_line();
10435 let handles_before = decoder.remaining_handles();
10436 if let Some((inlined, num_bytes, num_handles)) =
10437 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10438 {
10439 let member_inline_size =
10440 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
10441 if inlined != (member_inline_size <= 4) {
10442 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10443 }
10444 let inner_offset;
10445 let mut inner_depth = depth.clone();
10446 if inlined {
10447 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10448 inner_offset = next_offset;
10449 } else {
10450 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10451 inner_depth.increment()?;
10452 }
10453 let val_ref = self
10454 .original_association_maintained
10455 .get_or_insert_with(|| fidl::new_empty!(bool, D));
10456 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
10457 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10458 {
10459 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10460 }
10461 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10462 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10463 }
10464 }
10465
10466 next_offset += envelope_size;
10467 _next_ordinal_to_read += 1;
10468 if next_offset >= end_offset {
10469 return Ok(());
10470 }
10471
10472 while _next_ordinal_to_read < 4 {
10474 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10475 _next_ordinal_to_read += 1;
10476 next_offset += envelope_size;
10477 }
10478
10479 let next_out_of_line = decoder.next_out_of_line();
10480 let handles_before = decoder.remaining_handles();
10481 if let Some((inlined, num_bytes, num_handles)) =
10482 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10483 {
10484 let member_inline_size =
10485 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
10486 if inlined != (member_inline_size <= 4) {
10487 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10488 }
10489 let inner_offset;
10490 let mut inner_depth = depth.clone();
10491 if inlined {
10492 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10493 inner_offset = next_offset;
10494 } else {
10495 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10496 inner_depth.increment()?;
10497 }
10498 let val_ref =
10499 self.target_bss_authenticated.get_or_insert_with(|| fidl::new_empty!(bool, D));
10500 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
10501 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10502 {
10503 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10504 }
10505 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10506 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10507 }
10508 }
10509
10510 next_offset += envelope_size;
10511 _next_ordinal_to_read += 1;
10512 if next_offset >= end_offset {
10513 return Ok(());
10514 }
10515
10516 while _next_ordinal_to_read < 5 {
10518 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10519 _next_ordinal_to_read += 1;
10520 next_offset += envelope_size;
10521 }
10522
10523 let next_out_of_line = decoder.next_out_of_line();
10524 let handles_before = decoder.remaining_handles();
10525 if let Some((inlined, num_bytes, num_handles)) =
10526 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10527 {
10528 let member_inline_size =
10529 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
10530 if inlined != (member_inline_size <= 4) {
10531 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10532 }
10533 let inner_offset;
10534 let mut inner_depth = depth.clone();
10535 if inlined {
10536 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10537 inner_offset = next_offset;
10538 } else {
10539 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10540 inner_depth.increment()?;
10541 }
10542 let val_ref = self.association_id.get_or_insert_with(|| fidl::new_empty!(u16, D));
10543 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
10544 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10545 {
10546 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10547 }
10548 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10549 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10550 }
10551 }
10552
10553 next_offset += envelope_size;
10554 _next_ordinal_to_read += 1;
10555 if next_offset >= end_offset {
10556 return Ok(());
10557 }
10558
10559 while _next_ordinal_to_read < 6 {
10561 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10562 _next_ordinal_to_read += 1;
10563 next_offset += envelope_size;
10564 }
10565
10566 let next_out_of_line = decoder.next_out_of_line();
10567 let handles_before = decoder.remaining_handles();
10568 if let Some((inlined, num_bytes, num_handles)) =
10569 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10570 {
10571 let member_inline_size = <fidl::encoding::UnboundedVector<u8> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
10572 if inlined != (member_inline_size <= 4) {
10573 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10574 }
10575 let inner_offset;
10576 let mut inner_depth = depth.clone();
10577 if inlined {
10578 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10579 inner_offset = next_offset;
10580 } else {
10581 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10582 inner_depth.increment()?;
10583 }
10584 let val_ref = self.association_ies.get_or_insert_with(|| {
10585 fidl::new_empty!(fidl::encoding::UnboundedVector<u8>, D)
10586 });
10587 fidl::decode!(
10588 fidl::encoding::UnboundedVector<u8>,
10589 D,
10590 val_ref,
10591 decoder,
10592 inner_offset,
10593 inner_depth
10594 )?;
10595 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10596 {
10597 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10598 }
10599 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10600 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10601 }
10602 }
10603
10604 next_offset += envelope_size;
10605
10606 while next_offset < end_offset {
10608 _next_ordinal_to_read += 1;
10609 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10610 next_offset += envelope_size;
10611 }
10612
10613 Ok(())
10614 }
10615 }
10616
10617 impl WlanFullmacImplIfcRoamStartIndRequest {
10618 #[inline(always)]
10619 fn max_ordinal_present(&self) -> u64 {
10620 if let Some(_) = self.original_association_maintained {
10621 return 3;
10622 }
10623 if let Some(_) = self.selected_bss {
10624 return 2;
10625 }
10626 if let Some(_) = self.selected_bssid {
10627 return 1;
10628 }
10629 0
10630 }
10631 }
10632
10633 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcRoamStartIndRequest {
10634 type Borrowed<'a> = &'a Self;
10635 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
10636 value
10637 }
10638 }
10639
10640 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcRoamStartIndRequest {
10641 type Owned = Self;
10642
10643 #[inline(always)]
10644 fn inline_align(_context: fidl::encoding::Context) -> usize {
10645 8
10646 }
10647
10648 #[inline(always)]
10649 fn inline_size(_context: fidl::encoding::Context) -> usize {
10650 16
10651 }
10652 }
10653
10654 unsafe impl<D: fidl::encoding::ResourceDialect>
10655 fidl::encoding::Encode<WlanFullmacImplIfcRoamStartIndRequest, D>
10656 for &WlanFullmacImplIfcRoamStartIndRequest
10657 {
10658 unsafe fn encode(
10659 self,
10660 encoder: &mut fidl::encoding::Encoder<'_, D>,
10661 offset: usize,
10662 mut depth: fidl::encoding::Depth,
10663 ) -> fidl::Result<()> {
10664 encoder.debug_check_bounds::<WlanFullmacImplIfcRoamStartIndRequest>(offset);
10665 let max_ordinal: u64 = self.max_ordinal_present();
10667 encoder.write_num(max_ordinal, offset);
10668 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
10669 if max_ordinal == 0 {
10671 return Ok(());
10672 }
10673 depth.increment()?;
10674 let envelope_size = 8;
10675 let bytes_len = max_ordinal as usize * envelope_size;
10676 #[allow(unused_variables)]
10677 let offset = encoder.out_of_line_offset(bytes_len);
10678 let mut _prev_end_offset: usize = 0;
10679 if 1 > max_ordinal {
10680 return Ok(());
10681 }
10682
10683 let cur_offset: usize = (1 - 1) * envelope_size;
10686
10687 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10689
10690 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
10695 self.selected_bssid
10696 .as_ref()
10697 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
10698 encoder,
10699 offset + cur_offset,
10700 depth,
10701 )?;
10702
10703 _prev_end_offset = cur_offset + envelope_size;
10704 if 2 > max_ordinal {
10705 return Ok(());
10706 }
10707
10708 let cur_offset: usize = (2 - 1) * envelope_size;
10711
10712 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10714
10715 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_common__common::BssDescription, D>(
10720 self.selected_bss.as_ref().map(<fidl_fuchsia_wlan_common__common::BssDescription as fidl::encoding::ValueTypeMarker>::borrow),
10721 encoder, offset + cur_offset, depth
10722 )?;
10723
10724 _prev_end_offset = cur_offset + envelope_size;
10725 if 3 > max_ordinal {
10726 return Ok(());
10727 }
10728
10729 let cur_offset: usize = (3 - 1) * envelope_size;
10732
10733 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10735
10736 fidl::encoding::encode_in_envelope_optional::<bool, D>(
10741 self.original_association_maintained
10742 .as_ref()
10743 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
10744 encoder,
10745 offset + cur_offset,
10746 depth,
10747 )?;
10748
10749 _prev_end_offset = cur_offset + envelope_size;
10750
10751 Ok(())
10752 }
10753 }
10754
10755 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
10756 for WlanFullmacImplIfcRoamStartIndRequest
10757 {
10758 #[inline(always)]
10759 fn new_empty() -> Self {
10760 Self::default()
10761 }
10762
10763 unsafe fn decode(
10764 &mut self,
10765 decoder: &mut fidl::encoding::Decoder<'_, D>,
10766 offset: usize,
10767 mut depth: fidl::encoding::Depth,
10768 ) -> fidl::Result<()> {
10769 decoder.debug_check_bounds::<Self>(offset);
10770 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
10771 None => return Err(fidl::Error::NotNullable),
10772 Some(len) => len,
10773 };
10774 if len == 0 {
10776 return Ok(());
10777 };
10778 depth.increment()?;
10779 let envelope_size = 8;
10780 let bytes_len = len * envelope_size;
10781 let offset = decoder.out_of_line_offset(bytes_len)?;
10782 let mut _next_ordinal_to_read = 0;
10784 let mut next_offset = offset;
10785 let end_offset = offset + bytes_len;
10786 _next_ordinal_to_read += 1;
10787 if next_offset >= end_offset {
10788 return Ok(());
10789 }
10790
10791 while _next_ordinal_to_read < 1 {
10793 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10794 _next_ordinal_to_read += 1;
10795 next_offset += envelope_size;
10796 }
10797
10798 let next_out_of_line = decoder.next_out_of_line();
10799 let handles_before = decoder.remaining_handles();
10800 if let Some((inlined, num_bytes, num_handles)) =
10801 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10802 {
10803 let member_inline_size =
10804 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
10805 decoder.context,
10806 );
10807 if inlined != (member_inline_size <= 4) {
10808 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10809 }
10810 let inner_offset;
10811 let mut inner_depth = depth.clone();
10812 if inlined {
10813 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10814 inner_offset = next_offset;
10815 } else {
10816 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10817 inner_depth.increment()?;
10818 }
10819 let val_ref = self
10820 .selected_bssid
10821 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
10822 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
10823 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10824 {
10825 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10826 }
10827 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10828 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10829 }
10830 }
10831
10832 next_offset += envelope_size;
10833 _next_ordinal_to_read += 1;
10834 if next_offset >= end_offset {
10835 return Ok(());
10836 }
10837
10838 while _next_ordinal_to_read < 2 {
10840 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10841 _next_ordinal_to_read += 1;
10842 next_offset += envelope_size;
10843 }
10844
10845 let next_out_of_line = decoder.next_out_of_line();
10846 let handles_before = decoder.remaining_handles();
10847 if let Some((inlined, num_bytes, num_handles)) =
10848 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10849 {
10850 let member_inline_size = <fidl_fuchsia_wlan_common__common::BssDescription as fidl::encoding::TypeMarker>::inline_size(decoder.context);
10851 if inlined != (member_inline_size <= 4) {
10852 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10853 }
10854 let inner_offset;
10855 let mut inner_depth = depth.clone();
10856 if inlined {
10857 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10858 inner_offset = next_offset;
10859 } else {
10860 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10861 inner_depth.increment()?;
10862 }
10863 let val_ref = self.selected_bss.get_or_insert_with(|| {
10864 fidl::new_empty!(fidl_fuchsia_wlan_common__common::BssDescription, D)
10865 });
10866 fidl::decode!(
10867 fidl_fuchsia_wlan_common__common::BssDescription,
10868 D,
10869 val_ref,
10870 decoder,
10871 inner_offset,
10872 inner_depth
10873 )?;
10874 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10875 {
10876 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10877 }
10878 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10879 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10880 }
10881 }
10882
10883 next_offset += envelope_size;
10884 _next_ordinal_to_read += 1;
10885 if next_offset >= end_offset {
10886 return Ok(());
10887 }
10888
10889 while _next_ordinal_to_read < 3 {
10891 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10892 _next_ordinal_to_read += 1;
10893 next_offset += envelope_size;
10894 }
10895
10896 let next_out_of_line = decoder.next_out_of_line();
10897 let handles_before = decoder.remaining_handles();
10898 if let Some((inlined, num_bytes, num_handles)) =
10899 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10900 {
10901 let member_inline_size =
10902 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
10903 if inlined != (member_inline_size <= 4) {
10904 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10905 }
10906 let inner_offset;
10907 let mut inner_depth = depth.clone();
10908 if inlined {
10909 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10910 inner_offset = next_offset;
10911 } else {
10912 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10913 inner_depth.increment()?;
10914 }
10915 let val_ref = self
10916 .original_association_maintained
10917 .get_or_insert_with(|| fidl::new_empty!(bool, D));
10918 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
10919 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10920 {
10921 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10922 }
10923 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10924 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10925 }
10926 }
10927
10928 next_offset += envelope_size;
10929
10930 while next_offset < end_offset {
10932 _next_ordinal_to_read += 1;
10933 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10934 next_offset += envelope_size;
10935 }
10936
10937 Ok(())
10938 }
10939 }
10940
10941 impl WlanFullmacImplIfcSaeHandshakeIndRequest {
10942 #[inline(always)]
10943 fn max_ordinal_present(&self) -> u64 {
10944 if let Some(_) = self.peer_sta_address {
10945 return 1;
10946 }
10947 0
10948 }
10949 }
10950
10951 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcSaeHandshakeIndRequest {
10952 type Borrowed<'a> = &'a Self;
10953 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
10954 value
10955 }
10956 }
10957
10958 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcSaeHandshakeIndRequest {
10959 type Owned = Self;
10960
10961 #[inline(always)]
10962 fn inline_align(_context: fidl::encoding::Context) -> usize {
10963 8
10964 }
10965
10966 #[inline(always)]
10967 fn inline_size(_context: fidl::encoding::Context) -> usize {
10968 16
10969 }
10970 }
10971
10972 unsafe impl<D: fidl::encoding::ResourceDialect>
10973 fidl::encoding::Encode<WlanFullmacImplIfcSaeHandshakeIndRequest, D>
10974 for &WlanFullmacImplIfcSaeHandshakeIndRequest
10975 {
10976 unsafe fn encode(
10977 self,
10978 encoder: &mut fidl::encoding::Encoder<'_, D>,
10979 offset: usize,
10980 mut depth: fidl::encoding::Depth,
10981 ) -> fidl::Result<()> {
10982 encoder.debug_check_bounds::<WlanFullmacImplIfcSaeHandshakeIndRequest>(offset);
10983 let max_ordinal: u64 = self.max_ordinal_present();
10985 encoder.write_num(max_ordinal, offset);
10986 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
10987 if max_ordinal == 0 {
10989 return Ok(());
10990 }
10991 depth.increment()?;
10992 let envelope_size = 8;
10993 let bytes_len = max_ordinal as usize * envelope_size;
10994 #[allow(unused_variables)]
10995 let offset = encoder.out_of_line_offset(bytes_len);
10996 let mut _prev_end_offset: usize = 0;
10997 if 1 > max_ordinal {
10998 return Ok(());
10999 }
11000
11001 let cur_offset: usize = (1 - 1) * envelope_size;
11004
11005 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
11007
11008 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
11013 self.peer_sta_address
11014 .as_ref()
11015 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
11016 encoder,
11017 offset + cur_offset,
11018 depth,
11019 )?;
11020
11021 _prev_end_offset = cur_offset + envelope_size;
11022
11023 Ok(())
11024 }
11025 }
11026
11027 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
11028 for WlanFullmacImplIfcSaeHandshakeIndRequest
11029 {
11030 #[inline(always)]
11031 fn new_empty() -> Self {
11032 Self::default()
11033 }
11034
11035 unsafe fn decode(
11036 &mut self,
11037 decoder: &mut fidl::encoding::Decoder<'_, D>,
11038 offset: usize,
11039 mut depth: fidl::encoding::Depth,
11040 ) -> fidl::Result<()> {
11041 decoder.debug_check_bounds::<Self>(offset);
11042 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
11043 None => return Err(fidl::Error::NotNullable),
11044 Some(len) => len,
11045 };
11046 if len == 0 {
11048 return Ok(());
11049 };
11050 depth.increment()?;
11051 let envelope_size = 8;
11052 let bytes_len = len * envelope_size;
11053 let offset = decoder.out_of_line_offset(bytes_len)?;
11054 let mut _next_ordinal_to_read = 0;
11056 let mut next_offset = offset;
11057 let end_offset = offset + bytes_len;
11058 _next_ordinal_to_read += 1;
11059 if next_offset >= end_offset {
11060 return Ok(());
11061 }
11062
11063 while _next_ordinal_to_read < 1 {
11065 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11066 _next_ordinal_to_read += 1;
11067 next_offset += envelope_size;
11068 }
11069
11070 let next_out_of_line = decoder.next_out_of_line();
11071 let handles_before = decoder.remaining_handles();
11072 if let Some((inlined, num_bytes, num_handles)) =
11073 fidl::encoding::decode_envelope_header(decoder, next_offset)?
11074 {
11075 let member_inline_size =
11076 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
11077 decoder.context,
11078 );
11079 if inlined != (member_inline_size <= 4) {
11080 return Err(fidl::Error::InvalidInlineBitInEnvelope);
11081 }
11082 let inner_offset;
11083 let mut inner_depth = depth.clone();
11084 if inlined {
11085 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
11086 inner_offset = next_offset;
11087 } else {
11088 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
11089 inner_depth.increment()?;
11090 }
11091 let val_ref = self
11092 .peer_sta_address
11093 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
11094 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
11095 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
11096 {
11097 return Err(fidl::Error::InvalidNumBytesInEnvelope);
11098 }
11099 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
11100 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
11101 }
11102 }
11103
11104 next_offset += envelope_size;
11105
11106 while next_offset < end_offset {
11108 _next_ordinal_to_read += 1;
11109 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11110 next_offset += envelope_size;
11111 }
11112
11113 Ok(())
11114 }
11115 }
11116
11117 impl WlanFullmacImplIfcStartConfRequest {
11118 #[inline(always)]
11119 fn max_ordinal_present(&self) -> u64 {
11120 if let Some(_) = self.result_code {
11121 return 1;
11122 }
11123 0
11124 }
11125 }
11126
11127 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcStartConfRequest {
11128 type Borrowed<'a> = &'a Self;
11129 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
11130 value
11131 }
11132 }
11133
11134 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcStartConfRequest {
11135 type Owned = Self;
11136
11137 #[inline(always)]
11138 fn inline_align(_context: fidl::encoding::Context) -> usize {
11139 8
11140 }
11141
11142 #[inline(always)]
11143 fn inline_size(_context: fidl::encoding::Context) -> usize {
11144 16
11145 }
11146 }
11147
11148 unsafe impl<D: fidl::encoding::ResourceDialect>
11149 fidl::encoding::Encode<WlanFullmacImplIfcStartConfRequest, D>
11150 for &WlanFullmacImplIfcStartConfRequest
11151 {
11152 unsafe fn encode(
11153 self,
11154 encoder: &mut fidl::encoding::Encoder<'_, D>,
11155 offset: usize,
11156 mut depth: fidl::encoding::Depth,
11157 ) -> fidl::Result<()> {
11158 encoder.debug_check_bounds::<WlanFullmacImplIfcStartConfRequest>(offset);
11159 let max_ordinal: u64 = self.max_ordinal_present();
11161 encoder.write_num(max_ordinal, offset);
11162 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
11163 if max_ordinal == 0 {
11165 return Ok(());
11166 }
11167 depth.increment()?;
11168 let envelope_size = 8;
11169 let bytes_len = max_ordinal as usize * envelope_size;
11170 #[allow(unused_variables)]
11171 let offset = encoder.out_of_line_offset(bytes_len);
11172 let mut _prev_end_offset: usize = 0;
11173 if 1 > max_ordinal {
11174 return Ok(());
11175 }
11176
11177 let cur_offset: usize = (1 - 1) * envelope_size;
11180
11181 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
11183
11184 fidl::encoding::encode_in_envelope_optional::<StartResult, D>(
11189 self.result_code
11190 .as_ref()
11191 .map(<StartResult as fidl::encoding::ValueTypeMarker>::borrow),
11192 encoder,
11193 offset + cur_offset,
11194 depth,
11195 )?;
11196
11197 _prev_end_offset = cur_offset + envelope_size;
11198
11199 Ok(())
11200 }
11201 }
11202
11203 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
11204 for WlanFullmacImplIfcStartConfRequest
11205 {
11206 #[inline(always)]
11207 fn new_empty() -> Self {
11208 Self::default()
11209 }
11210
11211 unsafe fn decode(
11212 &mut self,
11213 decoder: &mut fidl::encoding::Decoder<'_, D>,
11214 offset: usize,
11215 mut depth: fidl::encoding::Depth,
11216 ) -> fidl::Result<()> {
11217 decoder.debug_check_bounds::<Self>(offset);
11218 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
11219 None => return Err(fidl::Error::NotNullable),
11220 Some(len) => len,
11221 };
11222 if len == 0 {
11224 return Ok(());
11225 };
11226 depth.increment()?;
11227 let envelope_size = 8;
11228 let bytes_len = len * envelope_size;
11229 let offset = decoder.out_of_line_offset(bytes_len)?;
11230 let mut _next_ordinal_to_read = 0;
11232 let mut next_offset = offset;
11233 let end_offset = offset + bytes_len;
11234 _next_ordinal_to_read += 1;
11235 if next_offset >= end_offset {
11236 return Ok(());
11237 }
11238
11239 while _next_ordinal_to_read < 1 {
11241 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11242 _next_ordinal_to_read += 1;
11243 next_offset += envelope_size;
11244 }
11245
11246 let next_out_of_line = decoder.next_out_of_line();
11247 let handles_before = decoder.remaining_handles();
11248 if let Some((inlined, num_bytes, num_handles)) =
11249 fidl::encoding::decode_envelope_header(decoder, next_offset)?
11250 {
11251 let member_inline_size =
11252 <StartResult as fidl::encoding::TypeMarker>::inline_size(decoder.context);
11253 if inlined != (member_inline_size <= 4) {
11254 return Err(fidl::Error::InvalidInlineBitInEnvelope);
11255 }
11256 let inner_offset;
11257 let mut inner_depth = depth.clone();
11258 if inlined {
11259 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
11260 inner_offset = next_offset;
11261 } else {
11262 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
11263 inner_depth.increment()?;
11264 }
11265 let val_ref =
11266 self.result_code.get_or_insert_with(|| fidl::new_empty!(StartResult, D));
11267 fidl::decode!(StartResult, D, val_ref, decoder, inner_offset, inner_depth)?;
11268 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
11269 {
11270 return Err(fidl::Error::InvalidNumBytesInEnvelope);
11271 }
11272 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
11273 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
11274 }
11275 }
11276
11277 next_offset += envelope_size;
11278
11279 while next_offset < end_offset {
11281 _next_ordinal_to_read += 1;
11282 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11283 next_offset += envelope_size;
11284 }
11285
11286 Ok(())
11287 }
11288 }
11289
11290 impl WlanFullmacImplIfcStopConfRequest {
11291 #[inline(always)]
11292 fn max_ordinal_present(&self) -> u64 {
11293 if let Some(_) = self.result_code {
11294 return 1;
11295 }
11296 0
11297 }
11298 }
11299
11300 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcStopConfRequest {
11301 type Borrowed<'a> = &'a Self;
11302 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
11303 value
11304 }
11305 }
11306
11307 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcStopConfRequest {
11308 type Owned = Self;
11309
11310 #[inline(always)]
11311 fn inline_align(_context: fidl::encoding::Context) -> usize {
11312 8
11313 }
11314
11315 #[inline(always)]
11316 fn inline_size(_context: fidl::encoding::Context) -> usize {
11317 16
11318 }
11319 }
11320
11321 unsafe impl<D: fidl::encoding::ResourceDialect>
11322 fidl::encoding::Encode<WlanFullmacImplIfcStopConfRequest, D>
11323 for &WlanFullmacImplIfcStopConfRequest
11324 {
11325 unsafe fn encode(
11326 self,
11327 encoder: &mut fidl::encoding::Encoder<'_, D>,
11328 offset: usize,
11329 mut depth: fidl::encoding::Depth,
11330 ) -> fidl::Result<()> {
11331 encoder.debug_check_bounds::<WlanFullmacImplIfcStopConfRequest>(offset);
11332 let max_ordinal: u64 = self.max_ordinal_present();
11334 encoder.write_num(max_ordinal, offset);
11335 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
11336 if max_ordinal == 0 {
11338 return Ok(());
11339 }
11340 depth.increment()?;
11341 let envelope_size = 8;
11342 let bytes_len = max_ordinal as usize * envelope_size;
11343 #[allow(unused_variables)]
11344 let offset = encoder.out_of_line_offset(bytes_len);
11345 let mut _prev_end_offset: usize = 0;
11346 if 1 > max_ordinal {
11347 return Ok(());
11348 }
11349
11350 let cur_offset: usize = (1 - 1) * envelope_size;
11353
11354 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
11356
11357 fidl::encoding::encode_in_envelope_optional::<StopResult, D>(
11362 self.result_code
11363 .as_ref()
11364 .map(<StopResult as fidl::encoding::ValueTypeMarker>::borrow),
11365 encoder,
11366 offset + cur_offset,
11367 depth,
11368 )?;
11369
11370 _prev_end_offset = cur_offset + envelope_size;
11371
11372 Ok(())
11373 }
11374 }
11375
11376 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
11377 for WlanFullmacImplIfcStopConfRequest
11378 {
11379 #[inline(always)]
11380 fn new_empty() -> Self {
11381 Self::default()
11382 }
11383
11384 unsafe fn decode(
11385 &mut self,
11386 decoder: &mut fidl::encoding::Decoder<'_, D>,
11387 offset: usize,
11388 mut depth: fidl::encoding::Depth,
11389 ) -> fidl::Result<()> {
11390 decoder.debug_check_bounds::<Self>(offset);
11391 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
11392 None => return Err(fidl::Error::NotNullable),
11393 Some(len) => len,
11394 };
11395 if len == 0 {
11397 return Ok(());
11398 };
11399 depth.increment()?;
11400 let envelope_size = 8;
11401 let bytes_len = len * envelope_size;
11402 let offset = decoder.out_of_line_offset(bytes_len)?;
11403 let mut _next_ordinal_to_read = 0;
11405 let mut next_offset = offset;
11406 let end_offset = offset + bytes_len;
11407 _next_ordinal_to_read += 1;
11408 if next_offset >= end_offset {
11409 return Ok(());
11410 }
11411
11412 while _next_ordinal_to_read < 1 {
11414 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11415 _next_ordinal_to_read += 1;
11416 next_offset += envelope_size;
11417 }
11418
11419 let next_out_of_line = decoder.next_out_of_line();
11420 let handles_before = decoder.remaining_handles();
11421 if let Some((inlined, num_bytes, num_handles)) =
11422 fidl::encoding::decode_envelope_header(decoder, next_offset)?
11423 {
11424 let member_inline_size =
11425 <StopResult as fidl::encoding::TypeMarker>::inline_size(decoder.context);
11426 if inlined != (member_inline_size <= 4) {
11427 return Err(fidl::Error::InvalidInlineBitInEnvelope);
11428 }
11429 let inner_offset;
11430 let mut inner_depth = depth.clone();
11431 if inlined {
11432 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
11433 inner_offset = next_offset;
11434 } else {
11435 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
11436 inner_depth.increment()?;
11437 }
11438 let val_ref =
11439 self.result_code.get_or_insert_with(|| fidl::new_empty!(StopResult, D));
11440 fidl::decode!(StopResult, D, val_ref, decoder, inner_offset, inner_depth)?;
11441 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
11442 {
11443 return Err(fidl::Error::InvalidNumBytesInEnvelope);
11444 }
11445 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
11446 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
11447 }
11448 }
11449
11450 next_offset += envelope_size;
11451
11452 while next_offset < end_offset {
11454 _next_ordinal_to_read += 1;
11455 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11456 next_offset += envelope_size;
11457 }
11458
11459 Ok(())
11460 }
11461 }
11462
11463 impl WlanFullmacImplInstallApfPacketFilterRequest {
11464 #[inline(always)]
11465 fn max_ordinal_present(&self) -> u64 {
11466 if let Some(_) = self.program {
11467 return 1;
11468 }
11469 0
11470 }
11471 }
11472
11473 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplInstallApfPacketFilterRequest {
11474 type Borrowed<'a> = &'a Self;
11475 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
11476 value
11477 }
11478 }
11479
11480 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplInstallApfPacketFilterRequest {
11481 type Owned = Self;
11482
11483 #[inline(always)]
11484 fn inline_align(_context: fidl::encoding::Context) -> usize {
11485 8
11486 }
11487
11488 #[inline(always)]
11489 fn inline_size(_context: fidl::encoding::Context) -> usize {
11490 16
11491 }
11492 }
11493
11494 unsafe impl<D: fidl::encoding::ResourceDialect>
11495 fidl::encoding::Encode<WlanFullmacImplInstallApfPacketFilterRequest, D>
11496 for &WlanFullmacImplInstallApfPacketFilterRequest
11497 {
11498 unsafe fn encode(
11499 self,
11500 encoder: &mut fidl::encoding::Encoder<'_, D>,
11501 offset: usize,
11502 mut depth: fidl::encoding::Depth,
11503 ) -> fidl::Result<()> {
11504 encoder.debug_check_bounds::<WlanFullmacImplInstallApfPacketFilterRequest>(offset);
11505 let max_ordinal: u64 = self.max_ordinal_present();
11507 encoder.write_num(max_ordinal, offset);
11508 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
11509 if max_ordinal == 0 {
11511 return Ok(());
11512 }
11513 depth.increment()?;
11514 let envelope_size = 8;
11515 let bytes_len = max_ordinal as usize * envelope_size;
11516 #[allow(unused_variables)]
11517 let offset = encoder.out_of_line_offset(bytes_len);
11518 let mut _prev_end_offset: usize = 0;
11519 if 1 > max_ordinal {
11520 return Ok(());
11521 }
11522
11523 let cur_offset: usize = (1 - 1) * envelope_size;
11526
11527 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
11529
11530 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<u8>, D>(
11535 self.program.as_ref().map(<fidl::encoding::UnboundedVector<u8> as fidl::encoding::ValueTypeMarker>::borrow),
11536 encoder, offset + cur_offset, depth
11537 )?;
11538
11539 _prev_end_offset = cur_offset + envelope_size;
11540
11541 Ok(())
11542 }
11543 }
11544
11545 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
11546 for WlanFullmacImplInstallApfPacketFilterRequest
11547 {
11548 #[inline(always)]
11549 fn new_empty() -> Self {
11550 Self::default()
11551 }
11552
11553 unsafe fn decode(
11554 &mut self,
11555 decoder: &mut fidl::encoding::Decoder<'_, D>,
11556 offset: usize,
11557 mut depth: fidl::encoding::Depth,
11558 ) -> fidl::Result<()> {
11559 decoder.debug_check_bounds::<Self>(offset);
11560 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
11561 None => return Err(fidl::Error::NotNullable),
11562 Some(len) => len,
11563 };
11564 if len == 0 {
11566 return Ok(());
11567 };
11568 depth.increment()?;
11569 let envelope_size = 8;
11570 let bytes_len = len * envelope_size;
11571 let offset = decoder.out_of_line_offset(bytes_len)?;
11572 let mut _next_ordinal_to_read = 0;
11574 let mut next_offset = offset;
11575 let end_offset = offset + bytes_len;
11576 _next_ordinal_to_read += 1;
11577 if next_offset >= end_offset {
11578 return Ok(());
11579 }
11580
11581 while _next_ordinal_to_read < 1 {
11583 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11584 _next_ordinal_to_read += 1;
11585 next_offset += envelope_size;
11586 }
11587
11588 let next_out_of_line = decoder.next_out_of_line();
11589 let handles_before = decoder.remaining_handles();
11590 if let Some((inlined, num_bytes, num_handles)) =
11591 fidl::encoding::decode_envelope_header(decoder, next_offset)?
11592 {
11593 let member_inline_size = <fidl::encoding::UnboundedVector<u8> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
11594 if inlined != (member_inline_size <= 4) {
11595 return Err(fidl::Error::InvalidInlineBitInEnvelope);
11596 }
11597 let inner_offset;
11598 let mut inner_depth = depth.clone();
11599 if inlined {
11600 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
11601 inner_offset = next_offset;
11602 } else {
11603 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
11604 inner_depth.increment()?;
11605 }
11606 let val_ref = self.program.get_or_insert_with(|| {
11607 fidl::new_empty!(fidl::encoding::UnboundedVector<u8>, D)
11608 });
11609 fidl::decode!(
11610 fidl::encoding::UnboundedVector<u8>,
11611 D,
11612 val_ref,
11613 decoder,
11614 inner_offset,
11615 inner_depth
11616 )?;
11617 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
11618 {
11619 return Err(fidl::Error::InvalidNumBytesInEnvelope);
11620 }
11621 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
11622 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
11623 }
11624 }
11625
11626 next_offset += envelope_size;
11627
11628 while next_offset < end_offset {
11630 _next_ordinal_to_read += 1;
11631 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11632 next_offset += envelope_size;
11633 }
11634
11635 Ok(())
11636 }
11637 }
11638
11639 impl WlanFullmacImplOnLinkStateChangedRequest {
11640 #[inline(always)]
11641 fn max_ordinal_present(&self) -> u64 {
11642 if let Some(_) = self.online {
11643 return 1;
11644 }
11645 0
11646 }
11647 }
11648
11649 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplOnLinkStateChangedRequest {
11650 type Borrowed<'a> = &'a Self;
11651 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
11652 value
11653 }
11654 }
11655
11656 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplOnLinkStateChangedRequest {
11657 type Owned = Self;
11658
11659 #[inline(always)]
11660 fn inline_align(_context: fidl::encoding::Context) -> usize {
11661 8
11662 }
11663
11664 #[inline(always)]
11665 fn inline_size(_context: fidl::encoding::Context) -> usize {
11666 16
11667 }
11668 }
11669
11670 unsafe impl<D: fidl::encoding::ResourceDialect>
11671 fidl::encoding::Encode<WlanFullmacImplOnLinkStateChangedRequest, D>
11672 for &WlanFullmacImplOnLinkStateChangedRequest
11673 {
11674 unsafe fn encode(
11675 self,
11676 encoder: &mut fidl::encoding::Encoder<'_, D>,
11677 offset: usize,
11678 mut depth: fidl::encoding::Depth,
11679 ) -> fidl::Result<()> {
11680 encoder.debug_check_bounds::<WlanFullmacImplOnLinkStateChangedRequest>(offset);
11681 let max_ordinal: u64 = self.max_ordinal_present();
11683 encoder.write_num(max_ordinal, offset);
11684 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
11685 if max_ordinal == 0 {
11687 return Ok(());
11688 }
11689 depth.increment()?;
11690 let envelope_size = 8;
11691 let bytes_len = max_ordinal as usize * envelope_size;
11692 #[allow(unused_variables)]
11693 let offset = encoder.out_of_line_offset(bytes_len);
11694 let mut _prev_end_offset: usize = 0;
11695 if 1 > max_ordinal {
11696 return Ok(());
11697 }
11698
11699 let cur_offset: usize = (1 - 1) * envelope_size;
11702
11703 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
11705
11706 fidl::encoding::encode_in_envelope_optional::<bool, D>(
11711 self.online.as_ref().map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
11712 encoder,
11713 offset + cur_offset,
11714 depth,
11715 )?;
11716
11717 _prev_end_offset = cur_offset + envelope_size;
11718
11719 Ok(())
11720 }
11721 }
11722
11723 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
11724 for WlanFullmacImplOnLinkStateChangedRequest
11725 {
11726 #[inline(always)]
11727 fn new_empty() -> Self {
11728 Self::default()
11729 }
11730
11731 unsafe fn decode(
11732 &mut self,
11733 decoder: &mut fidl::encoding::Decoder<'_, D>,
11734 offset: usize,
11735 mut depth: fidl::encoding::Depth,
11736 ) -> fidl::Result<()> {
11737 decoder.debug_check_bounds::<Self>(offset);
11738 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
11739 None => return Err(fidl::Error::NotNullable),
11740 Some(len) => len,
11741 };
11742 if len == 0 {
11744 return Ok(());
11745 };
11746 depth.increment()?;
11747 let envelope_size = 8;
11748 let bytes_len = len * envelope_size;
11749 let offset = decoder.out_of_line_offset(bytes_len)?;
11750 let mut _next_ordinal_to_read = 0;
11752 let mut next_offset = offset;
11753 let end_offset = offset + bytes_len;
11754 _next_ordinal_to_read += 1;
11755 if next_offset >= end_offset {
11756 return Ok(());
11757 }
11758
11759 while _next_ordinal_to_read < 1 {
11761 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11762 _next_ordinal_to_read += 1;
11763 next_offset += envelope_size;
11764 }
11765
11766 let next_out_of_line = decoder.next_out_of_line();
11767 let handles_before = decoder.remaining_handles();
11768 if let Some((inlined, num_bytes, num_handles)) =
11769 fidl::encoding::decode_envelope_header(decoder, next_offset)?
11770 {
11771 let member_inline_size =
11772 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
11773 if inlined != (member_inline_size <= 4) {
11774 return Err(fidl::Error::InvalidInlineBitInEnvelope);
11775 }
11776 let inner_offset;
11777 let mut inner_depth = depth.clone();
11778 if inlined {
11779 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
11780 inner_offset = next_offset;
11781 } else {
11782 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
11783 inner_depth.increment()?;
11784 }
11785 let val_ref = self.online.get_or_insert_with(|| fidl::new_empty!(bool, D));
11786 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
11787 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
11788 {
11789 return Err(fidl::Error::InvalidNumBytesInEnvelope);
11790 }
11791 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
11792 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
11793 }
11794 }
11795
11796 next_offset += envelope_size;
11797
11798 while next_offset < end_offset {
11800 _next_ordinal_to_read += 1;
11801 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11802 next_offset += envelope_size;
11803 }
11804
11805 Ok(())
11806 }
11807 }
11808
11809 impl WlanFullmacImplReconnectRequest {
11810 #[inline(always)]
11811 fn max_ordinal_present(&self) -> u64 {
11812 if let Some(_) = self.peer_sta_address {
11813 return 1;
11814 }
11815 0
11816 }
11817 }
11818
11819 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplReconnectRequest {
11820 type Borrowed<'a> = &'a Self;
11821 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
11822 value
11823 }
11824 }
11825
11826 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplReconnectRequest {
11827 type Owned = Self;
11828
11829 #[inline(always)]
11830 fn inline_align(_context: fidl::encoding::Context) -> usize {
11831 8
11832 }
11833
11834 #[inline(always)]
11835 fn inline_size(_context: fidl::encoding::Context) -> usize {
11836 16
11837 }
11838 }
11839
11840 unsafe impl<D: fidl::encoding::ResourceDialect>
11841 fidl::encoding::Encode<WlanFullmacImplReconnectRequest, D>
11842 for &WlanFullmacImplReconnectRequest
11843 {
11844 unsafe fn encode(
11845 self,
11846 encoder: &mut fidl::encoding::Encoder<'_, D>,
11847 offset: usize,
11848 mut depth: fidl::encoding::Depth,
11849 ) -> fidl::Result<()> {
11850 encoder.debug_check_bounds::<WlanFullmacImplReconnectRequest>(offset);
11851 let max_ordinal: u64 = self.max_ordinal_present();
11853 encoder.write_num(max_ordinal, offset);
11854 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
11855 if max_ordinal == 0 {
11857 return Ok(());
11858 }
11859 depth.increment()?;
11860 let envelope_size = 8;
11861 let bytes_len = max_ordinal as usize * envelope_size;
11862 #[allow(unused_variables)]
11863 let offset = encoder.out_of_line_offset(bytes_len);
11864 let mut _prev_end_offset: usize = 0;
11865 if 1 > max_ordinal {
11866 return Ok(());
11867 }
11868
11869 let cur_offset: usize = (1 - 1) * envelope_size;
11872
11873 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
11875
11876 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
11881 self.peer_sta_address
11882 .as_ref()
11883 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
11884 encoder,
11885 offset + cur_offset,
11886 depth,
11887 )?;
11888
11889 _prev_end_offset = cur_offset + envelope_size;
11890
11891 Ok(())
11892 }
11893 }
11894
11895 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
11896 for WlanFullmacImplReconnectRequest
11897 {
11898 #[inline(always)]
11899 fn new_empty() -> Self {
11900 Self::default()
11901 }
11902
11903 unsafe fn decode(
11904 &mut self,
11905 decoder: &mut fidl::encoding::Decoder<'_, D>,
11906 offset: usize,
11907 mut depth: fidl::encoding::Depth,
11908 ) -> fidl::Result<()> {
11909 decoder.debug_check_bounds::<Self>(offset);
11910 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
11911 None => return Err(fidl::Error::NotNullable),
11912 Some(len) => len,
11913 };
11914 if len == 0 {
11916 return Ok(());
11917 };
11918 depth.increment()?;
11919 let envelope_size = 8;
11920 let bytes_len = len * envelope_size;
11921 let offset = decoder.out_of_line_offset(bytes_len)?;
11922 let mut _next_ordinal_to_read = 0;
11924 let mut next_offset = offset;
11925 let end_offset = offset + bytes_len;
11926 _next_ordinal_to_read += 1;
11927 if next_offset >= end_offset {
11928 return Ok(());
11929 }
11930
11931 while _next_ordinal_to_read < 1 {
11933 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11934 _next_ordinal_to_read += 1;
11935 next_offset += envelope_size;
11936 }
11937
11938 let next_out_of_line = decoder.next_out_of_line();
11939 let handles_before = decoder.remaining_handles();
11940 if let Some((inlined, num_bytes, num_handles)) =
11941 fidl::encoding::decode_envelope_header(decoder, next_offset)?
11942 {
11943 let member_inline_size =
11944 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
11945 decoder.context,
11946 );
11947 if inlined != (member_inline_size <= 4) {
11948 return Err(fidl::Error::InvalidInlineBitInEnvelope);
11949 }
11950 let inner_offset;
11951 let mut inner_depth = depth.clone();
11952 if inlined {
11953 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
11954 inner_offset = next_offset;
11955 } else {
11956 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
11957 inner_depth.increment()?;
11958 }
11959 let val_ref = self
11960 .peer_sta_address
11961 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
11962 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
11963 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
11964 {
11965 return Err(fidl::Error::InvalidNumBytesInEnvelope);
11966 }
11967 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
11968 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
11969 }
11970 }
11971
11972 next_offset += envelope_size;
11973
11974 while next_offset < end_offset {
11976 _next_ordinal_to_read += 1;
11977 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11978 next_offset += envelope_size;
11979 }
11980
11981 Ok(())
11982 }
11983 }
11984
11985 impl WlanFullmacImplRoamRequest {
11986 #[inline(always)]
11987 fn max_ordinal_present(&self) -> u64 {
11988 if let Some(_) = self.selected_bss {
11989 return 1;
11990 }
11991 0
11992 }
11993 }
11994
11995 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplRoamRequest {
11996 type Borrowed<'a> = &'a Self;
11997 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
11998 value
11999 }
12000 }
12001
12002 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplRoamRequest {
12003 type Owned = Self;
12004
12005 #[inline(always)]
12006 fn inline_align(_context: fidl::encoding::Context) -> usize {
12007 8
12008 }
12009
12010 #[inline(always)]
12011 fn inline_size(_context: fidl::encoding::Context) -> usize {
12012 16
12013 }
12014 }
12015
12016 unsafe impl<D: fidl::encoding::ResourceDialect>
12017 fidl::encoding::Encode<WlanFullmacImplRoamRequest, D> for &WlanFullmacImplRoamRequest
12018 {
12019 unsafe fn encode(
12020 self,
12021 encoder: &mut fidl::encoding::Encoder<'_, D>,
12022 offset: usize,
12023 mut depth: fidl::encoding::Depth,
12024 ) -> fidl::Result<()> {
12025 encoder.debug_check_bounds::<WlanFullmacImplRoamRequest>(offset);
12026 let max_ordinal: u64 = self.max_ordinal_present();
12028 encoder.write_num(max_ordinal, offset);
12029 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
12030 if max_ordinal == 0 {
12032 return Ok(());
12033 }
12034 depth.increment()?;
12035 let envelope_size = 8;
12036 let bytes_len = max_ordinal as usize * envelope_size;
12037 #[allow(unused_variables)]
12038 let offset = encoder.out_of_line_offset(bytes_len);
12039 let mut _prev_end_offset: usize = 0;
12040 if 1 > max_ordinal {
12041 return Ok(());
12042 }
12043
12044 let cur_offset: usize = (1 - 1) * envelope_size;
12047
12048 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12050
12051 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_common__common::BssDescription, D>(
12056 self.selected_bss.as_ref().map(<fidl_fuchsia_wlan_common__common::BssDescription as fidl::encoding::ValueTypeMarker>::borrow),
12057 encoder, offset + cur_offset, depth
12058 )?;
12059
12060 _prev_end_offset = cur_offset + envelope_size;
12061
12062 Ok(())
12063 }
12064 }
12065
12066 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
12067 for WlanFullmacImplRoamRequest
12068 {
12069 #[inline(always)]
12070 fn new_empty() -> Self {
12071 Self::default()
12072 }
12073
12074 unsafe fn decode(
12075 &mut self,
12076 decoder: &mut fidl::encoding::Decoder<'_, D>,
12077 offset: usize,
12078 mut depth: fidl::encoding::Depth,
12079 ) -> fidl::Result<()> {
12080 decoder.debug_check_bounds::<Self>(offset);
12081 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
12082 None => return Err(fidl::Error::NotNullable),
12083 Some(len) => len,
12084 };
12085 if len == 0 {
12087 return Ok(());
12088 };
12089 depth.increment()?;
12090 let envelope_size = 8;
12091 let bytes_len = len * envelope_size;
12092 let offset = decoder.out_of_line_offset(bytes_len)?;
12093 let mut _next_ordinal_to_read = 0;
12095 let mut next_offset = offset;
12096 let end_offset = offset + bytes_len;
12097 _next_ordinal_to_read += 1;
12098 if next_offset >= end_offset {
12099 return Ok(());
12100 }
12101
12102 while _next_ordinal_to_read < 1 {
12104 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12105 _next_ordinal_to_read += 1;
12106 next_offset += envelope_size;
12107 }
12108
12109 let next_out_of_line = decoder.next_out_of_line();
12110 let handles_before = decoder.remaining_handles();
12111 if let Some((inlined, num_bytes, num_handles)) =
12112 fidl::encoding::decode_envelope_header(decoder, next_offset)?
12113 {
12114 let member_inline_size = <fidl_fuchsia_wlan_common__common::BssDescription as fidl::encoding::TypeMarker>::inline_size(decoder.context);
12115 if inlined != (member_inline_size <= 4) {
12116 return Err(fidl::Error::InvalidInlineBitInEnvelope);
12117 }
12118 let inner_offset;
12119 let mut inner_depth = depth.clone();
12120 if inlined {
12121 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
12122 inner_offset = next_offset;
12123 } else {
12124 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
12125 inner_depth.increment()?;
12126 }
12127 let val_ref = self.selected_bss.get_or_insert_with(|| {
12128 fidl::new_empty!(fidl_fuchsia_wlan_common__common::BssDescription, D)
12129 });
12130 fidl::decode!(
12131 fidl_fuchsia_wlan_common__common::BssDescription,
12132 D,
12133 val_ref,
12134 decoder,
12135 inner_offset,
12136 inner_depth
12137 )?;
12138 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
12139 {
12140 return Err(fidl::Error::InvalidNumBytesInEnvelope);
12141 }
12142 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
12143 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
12144 }
12145 }
12146
12147 next_offset += envelope_size;
12148
12149 while next_offset < end_offset {
12151 _next_ordinal_to_read += 1;
12152 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12153 next_offset += envelope_size;
12154 }
12155
12156 Ok(())
12157 }
12158 }
12159
12160 impl WlanFullmacImplSaeHandshakeRespRequest {
12161 #[inline(always)]
12162 fn max_ordinal_present(&self) -> u64 {
12163 if let Some(_) = self.status_code {
12164 return 2;
12165 }
12166 if let Some(_) = self.peer_sta_address {
12167 return 1;
12168 }
12169 0
12170 }
12171 }
12172
12173 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplSaeHandshakeRespRequest {
12174 type Borrowed<'a> = &'a Self;
12175 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
12176 value
12177 }
12178 }
12179
12180 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplSaeHandshakeRespRequest {
12181 type Owned = Self;
12182
12183 #[inline(always)]
12184 fn inline_align(_context: fidl::encoding::Context) -> usize {
12185 8
12186 }
12187
12188 #[inline(always)]
12189 fn inline_size(_context: fidl::encoding::Context) -> usize {
12190 16
12191 }
12192 }
12193
12194 unsafe impl<D: fidl::encoding::ResourceDialect>
12195 fidl::encoding::Encode<WlanFullmacImplSaeHandshakeRespRequest, D>
12196 for &WlanFullmacImplSaeHandshakeRespRequest
12197 {
12198 unsafe fn encode(
12199 self,
12200 encoder: &mut fidl::encoding::Encoder<'_, D>,
12201 offset: usize,
12202 mut depth: fidl::encoding::Depth,
12203 ) -> fidl::Result<()> {
12204 encoder.debug_check_bounds::<WlanFullmacImplSaeHandshakeRespRequest>(offset);
12205 let max_ordinal: u64 = self.max_ordinal_present();
12207 encoder.write_num(max_ordinal, offset);
12208 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
12209 if max_ordinal == 0 {
12211 return Ok(());
12212 }
12213 depth.increment()?;
12214 let envelope_size = 8;
12215 let bytes_len = max_ordinal as usize * envelope_size;
12216 #[allow(unused_variables)]
12217 let offset = encoder.out_of_line_offset(bytes_len);
12218 let mut _prev_end_offset: usize = 0;
12219 if 1 > max_ordinal {
12220 return Ok(());
12221 }
12222
12223 let cur_offset: usize = (1 - 1) * envelope_size;
12226
12227 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12229
12230 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
12235 self.peer_sta_address
12236 .as_ref()
12237 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
12238 encoder,
12239 offset + cur_offset,
12240 depth,
12241 )?;
12242
12243 _prev_end_offset = cur_offset + envelope_size;
12244 if 2 > max_ordinal {
12245 return Ok(());
12246 }
12247
12248 let cur_offset: usize = (2 - 1) * envelope_size;
12251
12252 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12254
12255 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_ieee80211__common::StatusCode, D>(
12260 self.status_code.as_ref().map(<fidl_fuchsia_wlan_ieee80211__common::StatusCode as fidl::encoding::ValueTypeMarker>::borrow),
12261 encoder, offset + cur_offset, depth
12262 )?;
12263
12264 _prev_end_offset = cur_offset + envelope_size;
12265
12266 Ok(())
12267 }
12268 }
12269
12270 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
12271 for WlanFullmacImplSaeHandshakeRespRequest
12272 {
12273 #[inline(always)]
12274 fn new_empty() -> Self {
12275 Self::default()
12276 }
12277
12278 unsafe fn decode(
12279 &mut self,
12280 decoder: &mut fidl::encoding::Decoder<'_, D>,
12281 offset: usize,
12282 mut depth: fidl::encoding::Depth,
12283 ) -> fidl::Result<()> {
12284 decoder.debug_check_bounds::<Self>(offset);
12285 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
12286 None => return Err(fidl::Error::NotNullable),
12287 Some(len) => len,
12288 };
12289 if len == 0 {
12291 return Ok(());
12292 };
12293 depth.increment()?;
12294 let envelope_size = 8;
12295 let bytes_len = len * envelope_size;
12296 let offset = decoder.out_of_line_offset(bytes_len)?;
12297 let mut _next_ordinal_to_read = 0;
12299 let mut next_offset = offset;
12300 let end_offset = offset + bytes_len;
12301 _next_ordinal_to_read += 1;
12302 if next_offset >= end_offset {
12303 return Ok(());
12304 }
12305
12306 while _next_ordinal_to_read < 1 {
12308 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12309 _next_ordinal_to_read += 1;
12310 next_offset += envelope_size;
12311 }
12312
12313 let next_out_of_line = decoder.next_out_of_line();
12314 let handles_before = decoder.remaining_handles();
12315 if let Some((inlined, num_bytes, num_handles)) =
12316 fidl::encoding::decode_envelope_header(decoder, next_offset)?
12317 {
12318 let member_inline_size =
12319 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
12320 decoder.context,
12321 );
12322 if inlined != (member_inline_size <= 4) {
12323 return Err(fidl::Error::InvalidInlineBitInEnvelope);
12324 }
12325 let inner_offset;
12326 let mut inner_depth = depth.clone();
12327 if inlined {
12328 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
12329 inner_offset = next_offset;
12330 } else {
12331 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
12332 inner_depth.increment()?;
12333 }
12334 let val_ref = self
12335 .peer_sta_address
12336 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
12337 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
12338 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
12339 {
12340 return Err(fidl::Error::InvalidNumBytesInEnvelope);
12341 }
12342 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
12343 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
12344 }
12345 }
12346
12347 next_offset += envelope_size;
12348 _next_ordinal_to_read += 1;
12349 if next_offset >= end_offset {
12350 return Ok(());
12351 }
12352
12353 while _next_ordinal_to_read < 2 {
12355 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12356 _next_ordinal_to_read += 1;
12357 next_offset += envelope_size;
12358 }
12359
12360 let next_out_of_line = decoder.next_out_of_line();
12361 let handles_before = decoder.remaining_handles();
12362 if let Some((inlined, num_bytes, num_handles)) =
12363 fidl::encoding::decode_envelope_header(decoder, next_offset)?
12364 {
12365 let member_inline_size = <fidl_fuchsia_wlan_ieee80211__common::StatusCode as fidl::encoding::TypeMarker>::inline_size(decoder.context);
12366 if inlined != (member_inline_size <= 4) {
12367 return Err(fidl::Error::InvalidInlineBitInEnvelope);
12368 }
12369 let inner_offset;
12370 let mut inner_depth = depth.clone();
12371 if inlined {
12372 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
12373 inner_offset = next_offset;
12374 } else {
12375 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
12376 inner_depth.increment()?;
12377 }
12378 let val_ref = self.status_code.get_or_insert_with(|| {
12379 fidl::new_empty!(fidl_fuchsia_wlan_ieee80211__common::StatusCode, D)
12380 });
12381 fidl::decode!(
12382 fidl_fuchsia_wlan_ieee80211__common::StatusCode,
12383 D,
12384 val_ref,
12385 decoder,
12386 inner_offset,
12387 inner_depth
12388 )?;
12389 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
12390 {
12391 return Err(fidl::Error::InvalidNumBytesInEnvelope);
12392 }
12393 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
12394 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
12395 }
12396 }
12397
12398 next_offset += envelope_size;
12399
12400 while next_offset < end_offset {
12402 _next_ordinal_to_read += 1;
12403 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12404 next_offset += envelope_size;
12405 }
12406
12407 Ok(())
12408 }
12409 }
12410
12411 impl WlanFullmacImplSetApfPacketFilterEnabledRequest {
12412 #[inline(always)]
12413 fn max_ordinal_present(&self) -> u64 {
12414 if let Some(_) = self.enabled {
12415 return 1;
12416 }
12417 0
12418 }
12419 }
12420
12421 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplSetApfPacketFilterEnabledRequest {
12422 type Borrowed<'a> = &'a Self;
12423 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
12424 value
12425 }
12426 }
12427
12428 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplSetApfPacketFilterEnabledRequest {
12429 type Owned = Self;
12430
12431 #[inline(always)]
12432 fn inline_align(_context: fidl::encoding::Context) -> usize {
12433 8
12434 }
12435
12436 #[inline(always)]
12437 fn inline_size(_context: fidl::encoding::Context) -> usize {
12438 16
12439 }
12440 }
12441
12442 unsafe impl<D: fidl::encoding::ResourceDialect>
12443 fidl::encoding::Encode<WlanFullmacImplSetApfPacketFilterEnabledRequest, D>
12444 for &WlanFullmacImplSetApfPacketFilterEnabledRequest
12445 {
12446 unsafe fn encode(
12447 self,
12448 encoder: &mut fidl::encoding::Encoder<'_, D>,
12449 offset: usize,
12450 mut depth: fidl::encoding::Depth,
12451 ) -> fidl::Result<()> {
12452 encoder.debug_check_bounds::<WlanFullmacImplSetApfPacketFilterEnabledRequest>(offset);
12453 let max_ordinal: u64 = self.max_ordinal_present();
12455 encoder.write_num(max_ordinal, offset);
12456 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
12457 if max_ordinal == 0 {
12459 return Ok(());
12460 }
12461 depth.increment()?;
12462 let envelope_size = 8;
12463 let bytes_len = max_ordinal as usize * envelope_size;
12464 #[allow(unused_variables)]
12465 let offset = encoder.out_of_line_offset(bytes_len);
12466 let mut _prev_end_offset: usize = 0;
12467 if 1 > max_ordinal {
12468 return Ok(());
12469 }
12470
12471 let cur_offset: usize = (1 - 1) * envelope_size;
12474
12475 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12477
12478 fidl::encoding::encode_in_envelope_optional::<bool, D>(
12483 self.enabled.as_ref().map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
12484 encoder,
12485 offset + cur_offset,
12486 depth,
12487 )?;
12488
12489 _prev_end_offset = cur_offset + envelope_size;
12490
12491 Ok(())
12492 }
12493 }
12494
12495 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
12496 for WlanFullmacImplSetApfPacketFilterEnabledRequest
12497 {
12498 #[inline(always)]
12499 fn new_empty() -> Self {
12500 Self::default()
12501 }
12502
12503 unsafe fn decode(
12504 &mut self,
12505 decoder: &mut fidl::encoding::Decoder<'_, D>,
12506 offset: usize,
12507 mut depth: fidl::encoding::Depth,
12508 ) -> fidl::Result<()> {
12509 decoder.debug_check_bounds::<Self>(offset);
12510 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
12511 None => return Err(fidl::Error::NotNullable),
12512 Some(len) => len,
12513 };
12514 if len == 0 {
12516 return Ok(());
12517 };
12518 depth.increment()?;
12519 let envelope_size = 8;
12520 let bytes_len = len * envelope_size;
12521 let offset = decoder.out_of_line_offset(bytes_len)?;
12522 let mut _next_ordinal_to_read = 0;
12524 let mut next_offset = offset;
12525 let end_offset = offset + bytes_len;
12526 _next_ordinal_to_read += 1;
12527 if next_offset >= end_offset {
12528 return Ok(());
12529 }
12530
12531 while _next_ordinal_to_read < 1 {
12533 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12534 _next_ordinal_to_read += 1;
12535 next_offset += envelope_size;
12536 }
12537
12538 let next_out_of_line = decoder.next_out_of_line();
12539 let handles_before = decoder.remaining_handles();
12540 if let Some((inlined, num_bytes, num_handles)) =
12541 fidl::encoding::decode_envelope_header(decoder, next_offset)?
12542 {
12543 let member_inline_size =
12544 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
12545 if inlined != (member_inline_size <= 4) {
12546 return Err(fidl::Error::InvalidInlineBitInEnvelope);
12547 }
12548 let inner_offset;
12549 let mut inner_depth = depth.clone();
12550 if inlined {
12551 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
12552 inner_offset = next_offset;
12553 } else {
12554 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
12555 inner_depth.increment()?;
12556 }
12557 let val_ref = self.enabled.get_or_insert_with(|| fidl::new_empty!(bool, D));
12558 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
12559 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
12560 {
12561 return Err(fidl::Error::InvalidNumBytesInEnvelope);
12562 }
12563 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
12564 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
12565 }
12566 }
12567
12568 next_offset += envelope_size;
12569
12570 while next_offset < end_offset {
12572 _next_ordinal_to_read += 1;
12573 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12574 next_offset += envelope_size;
12575 }
12576
12577 Ok(())
12578 }
12579 }
12580
12581 impl WlanFullmacImplSetKeysRequest {
12582 #[inline(always)]
12583 fn max_ordinal_present(&self) -> u64 {
12584 if let Some(_) = self.key_descriptors {
12585 return 2;
12586 }
12587 if let Some(_) = self.keylist {
12588 return 1;
12589 }
12590 0
12591 }
12592 }
12593
12594 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplSetKeysRequest {
12595 type Borrowed<'a> = &'a Self;
12596 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
12597 value
12598 }
12599 }
12600
12601 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplSetKeysRequest {
12602 type Owned = Self;
12603
12604 #[inline(always)]
12605 fn inline_align(_context: fidl::encoding::Context) -> usize {
12606 8
12607 }
12608
12609 #[inline(always)]
12610 fn inline_size(_context: fidl::encoding::Context) -> usize {
12611 16
12612 }
12613 }
12614
12615 unsafe impl<D: fidl::encoding::ResourceDialect>
12616 fidl::encoding::Encode<WlanFullmacImplSetKeysRequest, D>
12617 for &WlanFullmacImplSetKeysRequest
12618 {
12619 unsafe fn encode(
12620 self,
12621 encoder: &mut fidl::encoding::Encoder<'_, D>,
12622 offset: usize,
12623 mut depth: fidl::encoding::Depth,
12624 ) -> fidl::Result<()> {
12625 encoder.debug_check_bounds::<WlanFullmacImplSetKeysRequest>(offset);
12626 let max_ordinal: u64 = self.max_ordinal_present();
12628 encoder.write_num(max_ordinal, offset);
12629 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
12630 if max_ordinal == 0 {
12632 return Ok(());
12633 }
12634 depth.increment()?;
12635 let envelope_size = 8;
12636 let bytes_len = max_ordinal as usize * envelope_size;
12637 #[allow(unused_variables)]
12638 let offset = encoder.out_of_line_offset(bytes_len);
12639 let mut _prev_end_offset: usize = 0;
12640 if 1 > max_ordinal {
12641 return Ok(());
12642 }
12643
12644 let cur_offset: usize = (1 - 1) * envelope_size;
12647
12648 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12650
12651 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<fidl_fuchsia_wlan_common__common::WlanKeyConfig, 4>, D>(
12656 self.keylist.as_ref().map(<fidl::encoding::Vector<fidl_fuchsia_wlan_common__common::WlanKeyConfig, 4> as fidl::encoding::ValueTypeMarker>::borrow),
12657 encoder, offset + cur_offset, depth
12658 )?;
12659
12660 _prev_end_offset = cur_offset + envelope_size;
12661 if 2 > max_ordinal {
12662 return Ok(());
12663 }
12664
12665 let cur_offset: usize = (2 - 1) * envelope_size;
12668
12669 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12671
12672 fidl::encoding::encode_in_envelope_optional::<
12677 fidl::encoding::Vector<fidl_fuchsia_wlan_ieee80211__common::SetKeyDescriptor, 4>,
12678 D,
12679 >(
12680 self.key_descriptors.as_ref().map(
12681 <fidl::encoding::Vector<
12682 fidl_fuchsia_wlan_ieee80211__common::SetKeyDescriptor,
12683 4,
12684 > as fidl::encoding::ValueTypeMarker>::borrow,
12685 ),
12686 encoder,
12687 offset + cur_offset,
12688 depth,
12689 )?;
12690
12691 _prev_end_offset = cur_offset + envelope_size;
12692
12693 Ok(())
12694 }
12695 }
12696
12697 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
12698 for WlanFullmacImplSetKeysRequest
12699 {
12700 #[inline(always)]
12701 fn new_empty() -> Self {
12702 Self::default()
12703 }
12704
12705 unsafe fn decode(
12706 &mut self,
12707 decoder: &mut fidl::encoding::Decoder<'_, D>,
12708 offset: usize,
12709 mut depth: fidl::encoding::Depth,
12710 ) -> fidl::Result<()> {
12711 decoder.debug_check_bounds::<Self>(offset);
12712 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
12713 None => return Err(fidl::Error::NotNullable),
12714 Some(len) => len,
12715 };
12716 if len == 0 {
12718 return Ok(());
12719 };
12720 depth.increment()?;
12721 let envelope_size = 8;
12722 let bytes_len = len * envelope_size;
12723 let offset = decoder.out_of_line_offset(bytes_len)?;
12724 let mut _next_ordinal_to_read = 0;
12726 let mut next_offset = offset;
12727 let end_offset = offset + bytes_len;
12728 _next_ordinal_to_read += 1;
12729 if next_offset >= end_offset {
12730 return Ok(());
12731 }
12732
12733 while _next_ordinal_to_read < 1 {
12735 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12736 _next_ordinal_to_read += 1;
12737 next_offset += envelope_size;
12738 }
12739
12740 let next_out_of_line = decoder.next_out_of_line();
12741 let handles_before = decoder.remaining_handles();
12742 if let Some((inlined, num_bytes, num_handles)) =
12743 fidl::encoding::decode_envelope_header(decoder, next_offset)?
12744 {
12745 let member_inline_size = <fidl::encoding::Vector<
12746 fidl_fuchsia_wlan_common__common::WlanKeyConfig,
12747 4,
12748 > as fidl::encoding::TypeMarker>::inline_size(
12749 decoder.context
12750 );
12751 if inlined != (member_inline_size <= 4) {
12752 return Err(fidl::Error::InvalidInlineBitInEnvelope);
12753 }
12754 let inner_offset;
12755 let mut inner_depth = depth.clone();
12756 if inlined {
12757 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
12758 inner_offset = next_offset;
12759 } else {
12760 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
12761 inner_depth.increment()?;
12762 }
12763 let val_ref =
12764 self.keylist.get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<fidl_fuchsia_wlan_common__common::WlanKeyConfig, 4>, D));
12765 fidl::decode!(fidl::encoding::Vector<fidl_fuchsia_wlan_common__common::WlanKeyConfig, 4>, D, val_ref, decoder, inner_offset, inner_depth)?;
12766 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
12767 {
12768 return Err(fidl::Error::InvalidNumBytesInEnvelope);
12769 }
12770 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
12771 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
12772 }
12773 }
12774
12775 next_offset += envelope_size;
12776 _next_ordinal_to_read += 1;
12777 if next_offset >= end_offset {
12778 return Ok(());
12779 }
12780
12781 while _next_ordinal_to_read < 2 {
12783 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12784 _next_ordinal_to_read += 1;
12785 next_offset += envelope_size;
12786 }
12787
12788 let next_out_of_line = decoder.next_out_of_line();
12789 let handles_before = decoder.remaining_handles();
12790 if let Some((inlined, num_bytes, num_handles)) =
12791 fidl::encoding::decode_envelope_header(decoder, next_offset)?
12792 {
12793 let member_inline_size = <fidl::encoding::Vector<
12794 fidl_fuchsia_wlan_ieee80211__common::SetKeyDescriptor,
12795 4,
12796 > as fidl::encoding::TypeMarker>::inline_size(
12797 decoder.context
12798 );
12799 if inlined != (member_inline_size <= 4) {
12800 return Err(fidl::Error::InvalidInlineBitInEnvelope);
12801 }
12802 let inner_offset;
12803 let mut inner_depth = depth.clone();
12804 if inlined {
12805 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
12806 inner_offset = next_offset;
12807 } else {
12808 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
12809 inner_depth.increment()?;
12810 }
12811 let val_ref =
12812 self.key_descriptors.get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<fidl_fuchsia_wlan_ieee80211__common::SetKeyDescriptor, 4>, D));
12813 fidl::decode!(fidl::encoding::Vector<fidl_fuchsia_wlan_ieee80211__common::SetKeyDescriptor, 4>, D, val_ref, decoder, inner_offset, inner_depth)?;
12814 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
12815 {
12816 return Err(fidl::Error::InvalidNumBytesInEnvelope);
12817 }
12818 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
12819 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
12820 }
12821 }
12822
12823 next_offset += envelope_size;
12824
12825 while next_offset < end_offset {
12827 _next_ordinal_to_read += 1;
12828 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12829 next_offset += envelope_size;
12830 }
12831
12832 Ok(())
12833 }
12834 }
12835
12836 impl WlanFullmacImplStartBssRequest {
12837 #[inline(always)]
12838 fn max_ordinal_present(&self) -> u64 {
12839 if let Some(_) = self.vendor_ie {
12840 return 7;
12841 }
12842 if let Some(_) = self.rsne {
12843 return 6;
12844 }
12845 if let Some(_) = self.channel {
12846 return 5;
12847 }
12848 if let Some(_) = self.dtim_period {
12849 return 4;
12850 }
12851 if let Some(_) = self.beacon_period {
12852 return 3;
12853 }
12854 if let Some(_) = self.bss_type {
12855 return 2;
12856 }
12857 if let Some(_) = self.ssid {
12858 return 1;
12859 }
12860 0
12861 }
12862 }
12863
12864 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplStartBssRequest {
12865 type Borrowed<'a> = &'a Self;
12866 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
12867 value
12868 }
12869 }
12870
12871 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplStartBssRequest {
12872 type Owned = Self;
12873
12874 #[inline(always)]
12875 fn inline_align(_context: fidl::encoding::Context) -> usize {
12876 8
12877 }
12878
12879 #[inline(always)]
12880 fn inline_size(_context: fidl::encoding::Context) -> usize {
12881 16
12882 }
12883 }
12884
12885 unsafe impl<D: fidl::encoding::ResourceDialect>
12886 fidl::encoding::Encode<WlanFullmacImplStartBssRequest, D>
12887 for &WlanFullmacImplStartBssRequest
12888 {
12889 unsafe fn encode(
12890 self,
12891 encoder: &mut fidl::encoding::Encoder<'_, D>,
12892 offset: usize,
12893 mut depth: fidl::encoding::Depth,
12894 ) -> fidl::Result<()> {
12895 encoder.debug_check_bounds::<WlanFullmacImplStartBssRequest>(offset);
12896 let max_ordinal: u64 = self.max_ordinal_present();
12898 encoder.write_num(max_ordinal, offset);
12899 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
12900 if max_ordinal == 0 {
12902 return Ok(());
12903 }
12904 depth.increment()?;
12905 let envelope_size = 8;
12906 let bytes_len = max_ordinal as usize * envelope_size;
12907 #[allow(unused_variables)]
12908 let offset = encoder.out_of_line_offset(bytes_len);
12909 let mut _prev_end_offset: usize = 0;
12910 if 1 > max_ordinal {
12911 return Ok(());
12912 }
12913
12914 let cur_offset: usize = (1 - 1) * envelope_size;
12917
12918 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12920
12921 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<u8, 32>, D>(
12926 self.ssid.as_ref().map(
12927 <fidl::encoding::Vector<u8, 32> as fidl::encoding::ValueTypeMarker>::borrow,
12928 ),
12929 encoder,
12930 offset + cur_offset,
12931 depth,
12932 )?;
12933
12934 _prev_end_offset = cur_offset + envelope_size;
12935 if 2 > max_ordinal {
12936 return Ok(());
12937 }
12938
12939 let cur_offset: usize = (2 - 1) * envelope_size;
12942
12943 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12945
12946 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_common__common::BssType, D>(
12951 self.bss_type.as_ref().map(<fidl_fuchsia_wlan_common__common::BssType as fidl::encoding::ValueTypeMarker>::borrow),
12952 encoder, offset + cur_offset, depth
12953 )?;
12954
12955 _prev_end_offset = cur_offset + envelope_size;
12956 if 3 > max_ordinal {
12957 return Ok(());
12958 }
12959
12960 let cur_offset: usize = (3 - 1) * envelope_size;
12963
12964 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12966
12967 fidl::encoding::encode_in_envelope_optional::<u32, D>(
12972 self.beacon_period.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
12973 encoder,
12974 offset + cur_offset,
12975 depth,
12976 )?;
12977
12978 _prev_end_offset = cur_offset + envelope_size;
12979 if 4 > max_ordinal {
12980 return Ok(());
12981 }
12982
12983 let cur_offset: usize = (4 - 1) * envelope_size;
12986
12987 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12989
12990 fidl::encoding::encode_in_envelope_optional::<u32, D>(
12995 self.dtim_period.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
12996 encoder,
12997 offset + cur_offset,
12998 depth,
12999 )?;
13000
13001 _prev_end_offset = cur_offset + envelope_size;
13002 if 5 > max_ordinal {
13003 return Ok(());
13004 }
13005
13006 let cur_offset: usize = (5 - 1) * envelope_size;
13009
13010 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
13012
13013 fidl::encoding::encode_in_envelope_optional::<u8, D>(
13018 self.channel.as_ref().map(<u8 as fidl::encoding::ValueTypeMarker>::borrow),
13019 encoder,
13020 offset + cur_offset,
13021 depth,
13022 )?;
13023
13024 _prev_end_offset = cur_offset + envelope_size;
13025 if 6 > max_ordinal {
13026 return Ok(());
13027 }
13028
13029 let cur_offset: usize = (6 - 1) * envelope_size;
13032
13033 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
13035
13036 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<u8, 257>, D>(
13041 self.rsne.as_ref().map(
13042 <fidl::encoding::Vector<u8, 257> as fidl::encoding::ValueTypeMarker>::borrow,
13043 ),
13044 encoder,
13045 offset + cur_offset,
13046 depth,
13047 )?;
13048
13049 _prev_end_offset = cur_offset + envelope_size;
13050 if 7 > max_ordinal {
13051 return Ok(());
13052 }
13053
13054 let cur_offset: usize = (7 - 1) * envelope_size;
13057
13058 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
13060
13061 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<u8, 514>, D>(
13066 self.vendor_ie.as_ref().map(
13067 <fidl::encoding::Vector<u8, 514> as fidl::encoding::ValueTypeMarker>::borrow,
13068 ),
13069 encoder,
13070 offset + cur_offset,
13071 depth,
13072 )?;
13073
13074 _prev_end_offset = cur_offset + envelope_size;
13075
13076 Ok(())
13077 }
13078 }
13079
13080 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
13081 for WlanFullmacImplStartBssRequest
13082 {
13083 #[inline(always)]
13084 fn new_empty() -> Self {
13085 Self::default()
13086 }
13087
13088 unsafe fn decode(
13089 &mut self,
13090 decoder: &mut fidl::encoding::Decoder<'_, D>,
13091 offset: usize,
13092 mut depth: fidl::encoding::Depth,
13093 ) -> fidl::Result<()> {
13094 decoder.debug_check_bounds::<Self>(offset);
13095 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
13096 None => return Err(fidl::Error::NotNullable),
13097 Some(len) => len,
13098 };
13099 if len == 0 {
13101 return Ok(());
13102 };
13103 depth.increment()?;
13104 let envelope_size = 8;
13105 let bytes_len = len * envelope_size;
13106 let offset = decoder.out_of_line_offset(bytes_len)?;
13107 let mut _next_ordinal_to_read = 0;
13109 let mut next_offset = offset;
13110 let end_offset = offset + bytes_len;
13111 _next_ordinal_to_read += 1;
13112 if next_offset >= end_offset {
13113 return Ok(());
13114 }
13115
13116 while _next_ordinal_to_read < 1 {
13118 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13119 _next_ordinal_to_read += 1;
13120 next_offset += envelope_size;
13121 }
13122
13123 let next_out_of_line = decoder.next_out_of_line();
13124 let handles_before = decoder.remaining_handles();
13125 if let Some((inlined, num_bytes, num_handles)) =
13126 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13127 {
13128 let member_inline_size =
13129 <fidl::encoding::Vector<u8, 32> as fidl::encoding::TypeMarker>::inline_size(
13130 decoder.context,
13131 );
13132 if inlined != (member_inline_size <= 4) {
13133 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13134 }
13135 let inner_offset;
13136 let mut inner_depth = depth.clone();
13137 if inlined {
13138 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13139 inner_offset = next_offset;
13140 } else {
13141 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13142 inner_depth.increment()?;
13143 }
13144 let val_ref = self
13145 .ssid
13146 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<u8, 32>, D));
13147 fidl::decode!(fidl::encoding::Vector<u8, 32>, D, val_ref, decoder, inner_offset, inner_depth)?;
13148 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13149 {
13150 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13151 }
13152 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13153 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13154 }
13155 }
13156
13157 next_offset += envelope_size;
13158 _next_ordinal_to_read += 1;
13159 if next_offset >= end_offset {
13160 return Ok(());
13161 }
13162
13163 while _next_ordinal_to_read < 2 {
13165 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13166 _next_ordinal_to_read += 1;
13167 next_offset += envelope_size;
13168 }
13169
13170 let next_out_of_line = decoder.next_out_of_line();
13171 let handles_before = decoder.remaining_handles();
13172 if let Some((inlined, num_bytes, num_handles)) =
13173 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13174 {
13175 let member_inline_size = <fidl_fuchsia_wlan_common__common::BssType as fidl::encoding::TypeMarker>::inline_size(decoder.context);
13176 if inlined != (member_inline_size <= 4) {
13177 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13178 }
13179 let inner_offset;
13180 let mut inner_depth = depth.clone();
13181 if inlined {
13182 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13183 inner_offset = next_offset;
13184 } else {
13185 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13186 inner_depth.increment()?;
13187 }
13188 let val_ref = self.bss_type.get_or_insert_with(|| {
13189 fidl::new_empty!(fidl_fuchsia_wlan_common__common::BssType, D)
13190 });
13191 fidl::decode!(
13192 fidl_fuchsia_wlan_common__common::BssType,
13193 D,
13194 val_ref,
13195 decoder,
13196 inner_offset,
13197 inner_depth
13198 )?;
13199 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13200 {
13201 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13202 }
13203 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13204 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13205 }
13206 }
13207
13208 next_offset += envelope_size;
13209 _next_ordinal_to_read += 1;
13210 if next_offset >= end_offset {
13211 return Ok(());
13212 }
13213
13214 while _next_ordinal_to_read < 3 {
13216 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13217 _next_ordinal_to_read += 1;
13218 next_offset += envelope_size;
13219 }
13220
13221 let next_out_of_line = decoder.next_out_of_line();
13222 let handles_before = decoder.remaining_handles();
13223 if let Some((inlined, num_bytes, num_handles)) =
13224 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13225 {
13226 let member_inline_size =
13227 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
13228 if inlined != (member_inline_size <= 4) {
13229 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13230 }
13231 let inner_offset;
13232 let mut inner_depth = depth.clone();
13233 if inlined {
13234 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13235 inner_offset = next_offset;
13236 } else {
13237 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13238 inner_depth.increment()?;
13239 }
13240 let val_ref = self.beacon_period.get_or_insert_with(|| fidl::new_empty!(u32, D));
13241 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
13242 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13243 {
13244 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13245 }
13246 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13247 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13248 }
13249 }
13250
13251 next_offset += envelope_size;
13252 _next_ordinal_to_read += 1;
13253 if next_offset >= end_offset {
13254 return Ok(());
13255 }
13256
13257 while _next_ordinal_to_read < 4 {
13259 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13260 _next_ordinal_to_read += 1;
13261 next_offset += envelope_size;
13262 }
13263
13264 let next_out_of_line = decoder.next_out_of_line();
13265 let handles_before = decoder.remaining_handles();
13266 if let Some((inlined, num_bytes, num_handles)) =
13267 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13268 {
13269 let member_inline_size =
13270 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
13271 if inlined != (member_inline_size <= 4) {
13272 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13273 }
13274 let inner_offset;
13275 let mut inner_depth = depth.clone();
13276 if inlined {
13277 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13278 inner_offset = next_offset;
13279 } else {
13280 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13281 inner_depth.increment()?;
13282 }
13283 let val_ref = self.dtim_period.get_or_insert_with(|| fidl::new_empty!(u32, D));
13284 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
13285 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13286 {
13287 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13288 }
13289 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13290 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13291 }
13292 }
13293
13294 next_offset += envelope_size;
13295 _next_ordinal_to_read += 1;
13296 if next_offset >= end_offset {
13297 return Ok(());
13298 }
13299
13300 while _next_ordinal_to_read < 5 {
13302 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13303 _next_ordinal_to_read += 1;
13304 next_offset += envelope_size;
13305 }
13306
13307 let next_out_of_line = decoder.next_out_of_line();
13308 let handles_before = decoder.remaining_handles();
13309 if let Some((inlined, num_bytes, num_handles)) =
13310 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13311 {
13312 let member_inline_size =
13313 <u8 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
13314 if inlined != (member_inline_size <= 4) {
13315 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13316 }
13317 let inner_offset;
13318 let mut inner_depth = depth.clone();
13319 if inlined {
13320 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13321 inner_offset = next_offset;
13322 } else {
13323 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13324 inner_depth.increment()?;
13325 }
13326 let val_ref = self.channel.get_or_insert_with(|| fidl::new_empty!(u8, D));
13327 fidl::decode!(u8, D, val_ref, decoder, inner_offset, inner_depth)?;
13328 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13329 {
13330 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13331 }
13332 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13333 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13334 }
13335 }
13336
13337 next_offset += envelope_size;
13338 _next_ordinal_to_read += 1;
13339 if next_offset >= end_offset {
13340 return Ok(());
13341 }
13342
13343 while _next_ordinal_to_read < 6 {
13345 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13346 _next_ordinal_to_read += 1;
13347 next_offset += envelope_size;
13348 }
13349
13350 let next_out_of_line = decoder.next_out_of_line();
13351 let handles_before = decoder.remaining_handles();
13352 if let Some((inlined, num_bytes, num_handles)) =
13353 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13354 {
13355 let member_inline_size =
13356 <fidl::encoding::Vector<u8, 257> as fidl::encoding::TypeMarker>::inline_size(
13357 decoder.context,
13358 );
13359 if inlined != (member_inline_size <= 4) {
13360 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13361 }
13362 let inner_offset;
13363 let mut inner_depth = depth.clone();
13364 if inlined {
13365 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13366 inner_offset = next_offset;
13367 } else {
13368 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13369 inner_depth.increment()?;
13370 }
13371 let val_ref = self
13372 .rsne
13373 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<u8, 257>, D));
13374 fidl::decode!(fidl::encoding::Vector<u8, 257>, D, val_ref, decoder, inner_offset, inner_depth)?;
13375 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13376 {
13377 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13378 }
13379 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13380 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13381 }
13382 }
13383
13384 next_offset += envelope_size;
13385 _next_ordinal_to_read += 1;
13386 if next_offset >= end_offset {
13387 return Ok(());
13388 }
13389
13390 while _next_ordinal_to_read < 7 {
13392 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13393 _next_ordinal_to_read += 1;
13394 next_offset += envelope_size;
13395 }
13396
13397 let next_out_of_line = decoder.next_out_of_line();
13398 let handles_before = decoder.remaining_handles();
13399 if let Some((inlined, num_bytes, num_handles)) =
13400 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13401 {
13402 let member_inline_size =
13403 <fidl::encoding::Vector<u8, 514> as fidl::encoding::TypeMarker>::inline_size(
13404 decoder.context,
13405 );
13406 if inlined != (member_inline_size <= 4) {
13407 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13408 }
13409 let inner_offset;
13410 let mut inner_depth = depth.clone();
13411 if inlined {
13412 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13413 inner_offset = next_offset;
13414 } else {
13415 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13416 inner_depth.increment()?;
13417 }
13418 let val_ref = self
13419 .vendor_ie
13420 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<u8, 514>, D));
13421 fidl::decode!(fidl::encoding::Vector<u8, 514>, D, val_ref, decoder, inner_offset, inner_depth)?;
13422 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13423 {
13424 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13425 }
13426 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13427 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13428 }
13429 }
13430
13431 next_offset += envelope_size;
13432
13433 while next_offset < end_offset {
13435 _next_ordinal_to_read += 1;
13436 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13437 next_offset += envelope_size;
13438 }
13439
13440 Ok(())
13441 }
13442 }
13443
13444 impl WlanFullmacImplStartScanRequest {
13445 #[inline(always)]
13446 fn max_ordinal_present(&self) -> u64 {
13447 if let Some(_) = self.max_channel_time {
13448 return 6;
13449 }
13450 if let Some(_) = self.min_channel_time {
13451 return 5;
13452 }
13453 if let Some(_) = self.ssids {
13454 return 4;
13455 }
13456 if let Some(_) = self.channels {
13457 return 3;
13458 }
13459 if let Some(_) = self.scan_type {
13460 return 2;
13461 }
13462 if let Some(_) = self.txn_id {
13463 return 1;
13464 }
13465 0
13466 }
13467 }
13468
13469 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplStartScanRequest {
13470 type Borrowed<'a> = &'a Self;
13471 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
13472 value
13473 }
13474 }
13475
13476 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplStartScanRequest {
13477 type Owned = Self;
13478
13479 #[inline(always)]
13480 fn inline_align(_context: fidl::encoding::Context) -> usize {
13481 8
13482 }
13483
13484 #[inline(always)]
13485 fn inline_size(_context: fidl::encoding::Context) -> usize {
13486 16
13487 }
13488 }
13489
13490 unsafe impl<D: fidl::encoding::ResourceDialect>
13491 fidl::encoding::Encode<WlanFullmacImplStartScanRequest, D>
13492 for &WlanFullmacImplStartScanRequest
13493 {
13494 unsafe fn encode(
13495 self,
13496 encoder: &mut fidl::encoding::Encoder<'_, D>,
13497 offset: usize,
13498 mut depth: fidl::encoding::Depth,
13499 ) -> fidl::Result<()> {
13500 encoder.debug_check_bounds::<WlanFullmacImplStartScanRequest>(offset);
13501 let max_ordinal: u64 = self.max_ordinal_present();
13503 encoder.write_num(max_ordinal, offset);
13504 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
13505 if max_ordinal == 0 {
13507 return Ok(());
13508 }
13509 depth.increment()?;
13510 let envelope_size = 8;
13511 let bytes_len = max_ordinal as usize * envelope_size;
13512 #[allow(unused_variables)]
13513 let offset = encoder.out_of_line_offset(bytes_len);
13514 let mut _prev_end_offset: usize = 0;
13515 if 1 > max_ordinal {
13516 return Ok(());
13517 }
13518
13519 let cur_offset: usize = (1 - 1) * envelope_size;
13522
13523 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
13525
13526 fidl::encoding::encode_in_envelope_optional::<u64, D>(
13531 self.txn_id.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
13532 encoder,
13533 offset + cur_offset,
13534 depth,
13535 )?;
13536
13537 _prev_end_offset = cur_offset + envelope_size;
13538 if 2 > max_ordinal {
13539 return Ok(());
13540 }
13541
13542 let cur_offset: usize = (2 - 1) * envelope_size;
13545
13546 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
13548
13549 fidl::encoding::encode_in_envelope_optional::<WlanScanType, D>(
13554 self.scan_type
13555 .as_ref()
13556 .map(<WlanScanType as fidl::encoding::ValueTypeMarker>::borrow),
13557 encoder,
13558 offset + cur_offset,
13559 depth,
13560 )?;
13561
13562 _prev_end_offset = cur_offset + envelope_size;
13563 if 3 > max_ordinal {
13564 return Ok(());
13565 }
13566
13567 let cur_offset: usize = (3 - 1) * envelope_size;
13570
13571 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
13573
13574 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<u8, 256>, D>(
13579 self.channels.as_ref().map(
13580 <fidl::encoding::Vector<u8, 256> as fidl::encoding::ValueTypeMarker>::borrow,
13581 ),
13582 encoder,
13583 offset + cur_offset,
13584 depth,
13585 )?;
13586
13587 _prev_end_offset = cur_offset + envelope_size;
13588 if 4 > max_ordinal {
13589 return Ok(());
13590 }
13591
13592 let cur_offset: usize = (4 - 1) * envelope_size;
13595
13596 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
13598
13599 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<fidl::encoding::Vector<u8, 32>>, D>(
13604 self.ssids.as_ref().map(<fidl::encoding::UnboundedVector<fidl::encoding::Vector<u8, 32>> as fidl::encoding::ValueTypeMarker>::borrow),
13605 encoder, offset + cur_offset, depth
13606 )?;
13607
13608 _prev_end_offset = cur_offset + envelope_size;
13609 if 5 > max_ordinal {
13610 return Ok(());
13611 }
13612
13613 let cur_offset: usize = (5 - 1) * envelope_size;
13616
13617 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
13619
13620 fidl::encoding::encode_in_envelope_optional::<u32, D>(
13625 self.min_channel_time
13626 .as_ref()
13627 .map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
13628 encoder,
13629 offset + cur_offset,
13630 depth,
13631 )?;
13632
13633 _prev_end_offset = cur_offset + envelope_size;
13634 if 6 > max_ordinal {
13635 return Ok(());
13636 }
13637
13638 let cur_offset: usize = (6 - 1) * envelope_size;
13641
13642 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
13644
13645 fidl::encoding::encode_in_envelope_optional::<u32, D>(
13650 self.max_channel_time
13651 .as_ref()
13652 .map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
13653 encoder,
13654 offset + cur_offset,
13655 depth,
13656 )?;
13657
13658 _prev_end_offset = cur_offset + envelope_size;
13659
13660 Ok(())
13661 }
13662 }
13663
13664 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
13665 for WlanFullmacImplStartScanRequest
13666 {
13667 #[inline(always)]
13668 fn new_empty() -> Self {
13669 Self::default()
13670 }
13671
13672 unsafe fn decode(
13673 &mut self,
13674 decoder: &mut fidl::encoding::Decoder<'_, D>,
13675 offset: usize,
13676 mut depth: fidl::encoding::Depth,
13677 ) -> fidl::Result<()> {
13678 decoder.debug_check_bounds::<Self>(offset);
13679 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
13680 None => return Err(fidl::Error::NotNullable),
13681 Some(len) => len,
13682 };
13683 if len == 0 {
13685 return Ok(());
13686 };
13687 depth.increment()?;
13688 let envelope_size = 8;
13689 let bytes_len = len * envelope_size;
13690 let offset = decoder.out_of_line_offset(bytes_len)?;
13691 let mut _next_ordinal_to_read = 0;
13693 let mut next_offset = offset;
13694 let end_offset = offset + bytes_len;
13695 _next_ordinal_to_read += 1;
13696 if next_offset >= end_offset {
13697 return Ok(());
13698 }
13699
13700 while _next_ordinal_to_read < 1 {
13702 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13703 _next_ordinal_to_read += 1;
13704 next_offset += envelope_size;
13705 }
13706
13707 let next_out_of_line = decoder.next_out_of_line();
13708 let handles_before = decoder.remaining_handles();
13709 if let Some((inlined, num_bytes, num_handles)) =
13710 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13711 {
13712 let member_inline_size =
13713 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
13714 if inlined != (member_inline_size <= 4) {
13715 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13716 }
13717 let inner_offset;
13718 let mut inner_depth = depth.clone();
13719 if inlined {
13720 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13721 inner_offset = next_offset;
13722 } else {
13723 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13724 inner_depth.increment()?;
13725 }
13726 let val_ref = self.txn_id.get_or_insert_with(|| fidl::new_empty!(u64, D));
13727 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
13728 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13729 {
13730 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13731 }
13732 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13733 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13734 }
13735 }
13736
13737 next_offset += envelope_size;
13738 _next_ordinal_to_read += 1;
13739 if next_offset >= end_offset {
13740 return Ok(());
13741 }
13742
13743 while _next_ordinal_to_read < 2 {
13745 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13746 _next_ordinal_to_read += 1;
13747 next_offset += envelope_size;
13748 }
13749
13750 let next_out_of_line = decoder.next_out_of_line();
13751 let handles_before = decoder.remaining_handles();
13752 if let Some((inlined, num_bytes, num_handles)) =
13753 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13754 {
13755 let member_inline_size =
13756 <WlanScanType as fidl::encoding::TypeMarker>::inline_size(decoder.context);
13757 if inlined != (member_inline_size <= 4) {
13758 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13759 }
13760 let inner_offset;
13761 let mut inner_depth = depth.clone();
13762 if inlined {
13763 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13764 inner_offset = next_offset;
13765 } else {
13766 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13767 inner_depth.increment()?;
13768 }
13769 let val_ref =
13770 self.scan_type.get_or_insert_with(|| fidl::new_empty!(WlanScanType, D));
13771 fidl::decode!(WlanScanType, D, val_ref, decoder, inner_offset, inner_depth)?;
13772 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13773 {
13774 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13775 }
13776 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13777 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13778 }
13779 }
13780
13781 next_offset += envelope_size;
13782 _next_ordinal_to_read += 1;
13783 if next_offset >= end_offset {
13784 return Ok(());
13785 }
13786
13787 while _next_ordinal_to_read < 3 {
13789 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13790 _next_ordinal_to_read += 1;
13791 next_offset += envelope_size;
13792 }
13793
13794 let next_out_of_line = decoder.next_out_of_line();
13795 let handles_before = decoder.remaining_handles();
13796 if let Some((inlined, num_bytes, num_handles)) =
13797 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13798 {
13799 let member_inline_size =
13800 <fidl::encoding::Vector<u8, 256> as fidl::encoding::TypeMarker>::inline_size(
13801 decoder.context,
13802 );
13803 if inlined != (member_inline_size <= 4) {
13804 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13805 }
13806 let inner_offset;
13807 let mut inner_depth = depth.clone();
13808 if inlined {
13809 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13810 inner_offset = next_offset;
13811 } else {
13812 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13813 inner_depth.increment()?;
13814 }
13815 let val_ref = self
13816 .channels
13817 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<u8, 256>, D));
13818 fidl::decode!(fidl::encoding::Vector<u8, 256>, D, val_ref, decoder, inner_offset, inner_depth)?;
13819 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13820 {
13821 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13822 }
13823 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13824 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13825 }
13826 }
13827
13828 next_offset += envelope_size;
13829 _next_ordinal_to_read += 1;
13830 if next_offset >= end_offset {
13831 return Ok(());
13832 }
13833
13834 while _next_ordinal_to_read < 4 {
13836 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13837 _next_ordinal_to_read += 1;
13838 next_offset += envelope_size;
13839 }
13840
13841 let next_out_of_line = decoder.next_out_of_line();
13842 let handles_before = decoder.remaining_handles();
13843 if let Some((inlined, num_bytes, num_handles)) =
13844 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13845 {
13846 let member_inline_size = <fidl::encoding::UnboundedVector<
13847 fidl::encoding::Vector<u8, 32>,
13848 > as fidl::encoding::TypeMarker>::inline_size(
13849 decoder.context
13850 );
13851 if inlined != (member_inline_size <= 4) {
13852 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13853 }
13854 let inner_offset;
13855 let mut inner_depth = depth.clone();
13856 if inlined {
13857 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13858 inner_offset = next_offset;
13859 } else {
13860 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13861 inner_depth.increment()?;
13862 }
13863 let val_ref = self.ssids.get_or_insert_with(|| {
13864 fidl::new_empty!(
13865 fidl::encoding::UnboundedVector<fidl::encoding::Vector<u8, 32>>,
13866 D
13867 )
13868 });
13869 fidl::decode!(
13870 fidl::encoding::UnboundedVector<fidl::encoding::Vector<u8, 32>>,
13871 D,
13872 val_ref,
13873 decoder,
13874 inner_offset,
13875 inner_depth
13876 )?;
13877 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13878 {
13879 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13880 }
13881 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13882 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13883 }
13884 }
13885
13886 next_offset += envelope_size;
13887 _next_ordinal_to_read += 1;
13888 if next_offset >= end_offset {
13889 return Ok(());
13890 }
13891
13892 while _next_ordinal_to_read < 5 {
13894 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13895 _next_ordinal_to_read += 1;
13896 next_offset += envelope_size;
13897 }
13898
13899 let next_out_of_line = decoder.next_out_of_line();
13900 let handles_before = decoder.remaining_handles();
13901 if let Some((inlined, num_bytes, num_handles)) =
13902 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13903 {
13904 let member_inline_size =
13905 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
13906 if inlined != (member_inline_size <= 4) {
13907 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13908 }
13909 let inner_offset;
13910 let mut inner_depth = depth.clone();
13911 if inlined {
13912 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13913 inner_offset = next_offset;
13914 } else {
13915 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13916 inner_depth.increment()?;
13917 }
13918 let val_ref = self.min_channel_time.get_or_insert_with(|| fidl::new_empty!(u32, D));
13919 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
13920 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13921 {
13922 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13923 }
13924 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13925 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13926 }
13927 }
13928
13929 next_offset += envelope_size;
13930 _next_ordinal_to_read += 1;
13931 if next_offset >= end_offset {
13932 return Ok(());
13933 }
13934
13935 while _next_ordinal_to_read < 6 {
13937 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13938 _next_ordinal_to_read += 1;
13939 next_offset += envelope_size;
13940 }
13941
13942 let next_out_of_line = decoder.next_out_of_line();
13943 let handles_before = decoder.remaining_handles();
13944 if let Some((inlined, num_bytes, num_handles)) =
13945 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13946 {
13947 let member_inline_size =
13948 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
13949 if inlined != (member_inline_size <= 4) {
13950 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13951 }
13952 let inner_offset;
13953 let mut inner_depth = depth.clone();
13954 if inlined {
13955 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13956 inner_offset = next_offset;
13957 } else {
13958 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13959 inner_depth.increment()?;
13960 }
13961 let val_ref = self.max_channel_time.get_or_insert_with(|| fidl::new_empty!(u32, D));
13962 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
13963 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13964 {
13965 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13966 }
13967 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13968 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13969 }
13970 }
13971
13972 next_offset += envelope_size;
13973
13974 while next_offset < end_offset {
13976 _next_ordinal_to_read += 1;
13977 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13978 next_offset += envelope_size;
13979 }
13980
13981 Ok(())
13982 }
13983 }
13984
13985 impl WlanFullmacImplStopBssRequest {
13986 #[inline(always)]
13987 fn max_ordinal_present(&self) -> u64 {
13988 if let Some(_) = self.ssid {
13989 return 1;
13990 }
13991 0
13992 }
13993 }
13994
13995 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplStopBssRequest {
13996 type Borrowed<'a> = &'a Self;
13997 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
13998 value
13999 }
14000 }
14001
14002 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplStopBssRequest {
14003 type Owned = Self;
14004
14005 #[inline(always)]
14006 fn inline_align(_context: fidl::encoding::Context) -> usize {
14007 8
14008 }
14009
14010 #[inline(always)]
14011 fn inline_size(_context: fidl::encoding::Context) -> usize {
14012 16
14013 }
14014 }
14015
14016 unsafe impl<D: fidl::encoding::ResourceDialect>
14017 fidl::encoding::Encode<WlanFullmacImplStopBssRequest, D>
14018 for &WlanFullmacImplStopBssRequest
14019 {
14020 unsafe fn encode(
14021 self,
14022 encoder: &mut fidl::encoding::Encoder<'_, D>,
14023 offset: usize,
14024 mut depth: fidl::encoding::Depth,
14025 ) -> fidl::Result<()> {
14026 encoder.debug_check_bounds::<WlanFullmacImplStopBssRequest>(offset);
14027 let max_ordinal: u64 = self.max_ordinal_present();
14029 encoder.write_num(max_ordinal, offset);
14030 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
14031 if max_ordinal == 0 {
14033 return Ok(());
14034 }
14035 depth.increment()?;
14036 let envelope_size = 8;
14037 let bytes_len = max_ordinal as usize * envelope_size;
14038 #[allow(unused_variables)]
14039 let offset = encoder.out_of_line_offset(bytes_len);
14040 let mut _prev_end_offset: usize = 0;
14041 if 1 > max_ordinal {
14042 return Ok(());
14043 }
14044
14045 let cur_offset: usize = (1 - 1) * envelope_size;
14048
14049 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
14051
14052 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<u8, 32>, D>(
14057 self.ssid.as_ref().map(
14058 <fidl::encoding::Vector<u8, 32> as fidl::encoding::ValueTypeMarker>::borrow,
14059 ),
14060 encoder,
14061 offset + cur_offset,
14062 depth,
14063 )?;
14064
14065 _prev_end_offset = cur_offset + envelope_size;
14066
14067 Ok(())
14068 }
14069 }
14070
14071 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
14072 for WlanFullmacImplStopBssRequest
14073 {
14074 #[inline(always)]
14075 fn new_empty() -> Self {
14076 Self::default()
14077 }
14078
14079 unsafe fn decode(
14080 &mut self,
14081 decoder: &mut fidl::encoding::Decoder<'_, D>,
14082 offset: usize,
14083 mut depth: fidl::encoding::Depth,
14084 ) -> fidl::Result<()> {
14085 decoder.debug_check_bounds::<Self>(offset);
14086 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
14087 None => return Err(fidl::Error::NotNullable),
14088 Some(len) => len,
14089 };
14090 if len == 0 {
14092 return Ok(());
14093 };
14094 depth.increment()?;
14095 let envelope_size = 8;
14096 let bytes_len = len * envelope_size;
14097 let offset = decoder.out_of_line_offset(bytes_len)?;
14098 let mut _next_ordinal_to_read = 0;
14100 let mut next_offset = offset;
14101 let end_offset = offset + bytes_len;
14102 _next_ordinal_to_read += 1;
14103 if next_offset >= end_offset {
14104 return Ok(());
14105 }
14106
14107 while _next_ordinal_to_read < 1 {
14109 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14110 _next_ordinal_to_read += 1;
14111 next_offset += envelope_size;
14112 }
14113
14114 let next_out_of_line = decoder.next_out_of_line();
14115 let handles_before = decoder.remaining_handles();
14116 if let Some((inlined, num_bytes, num_handles)) =
14117 fidl::encoding::decode_envelope_header(decoder, next_offset)?
14118 {
14119 let member_inline_size =
14120 <fidl::encoding::Vector<u8, 32> as fidl::encoding::TypeMarker>::inline_size(
14121 decoder.context,
14122 );
14123 if inlined != (member_inline_size <= 4) {
14124 return Err(fidl::Error::InvalidInlineBitInEnvelope);
14125 }
14126 let inner_offset;
14127 let mut inner_depth = depth.clone();
14128 if inlined {
14129 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
14130 inner_offset = next_offset;
14131 } else {
14132 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
14133 inner_depth.increment()?;
14134 }
14135 let val_ref = self
14136 .ssid
14137 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<u8, 32>, D));
14138 fidl::decode!(fidl::encoding::Vector<u8, 32>, D, val_ref, decoder, inner_offset, inner_depth)?;
14139 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
14140 {
14141 return Err(fidl::Error::InvalidNumBytesInEnvelope);
14142 }
14143 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
14144 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
14145 }
14146 }
14147
14148 next_offset += envelope_size;
14149
14150 while next_offset < end_offset {
14152 _next_ordinal_to_read += 1;
14153 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14154 next_offset += envelope_size;
14155 }
14156
14157 Ok(())
14158 }
14159 }
14160
14161 impl WlanFullmacImplGetApfPacketFilterEnabledResponse {
14162 #[inline(always)]
14163 fn max_ordinal_present(&self) -> u64 {
14164 if let Some(_) = self.enabled {
14165 return 1;
14166 }
14167 0
14168 }
14169 }
14170
14171 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplGetApfPacketFilterEnabledResponse {
14172 type Borrowed<'a> = &'a Self;
14173 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
14174 value
14175 }
14176 }
14177
14178 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplGetApfPacketFilterEnabledResponse {
14179 type Owned = Self;
14180
14181 #[inline(always)]
14182 fn inline_align(_context: fidl::encoding::Context) -> usize {
14183 8
14184 }
14185
14186 #[inline(always)]
14187 fn inline_size(_context: fidl::encoding::Context) -> usize {
14188 16
14189 }
14190 }
14191
14192 unsafe impl<D: fidl::encoding::ResourceDialect>
14193 fidl::encoding::Encode<WlanFullmacImplGetApfPacketFilterEnabledResponse, D>
14194 for &WlanFullmacImplGetApfPacketFilterEnabledResponse
14195 {
14196 unsafe fn encode(
14197 self,
14198 encoder: &mut fidl::encoding::Encoder<'_, D>,
14199 offset: usize,
14200 mut depth: fidl::encoding::Depth,
14201 ) -> fidl::Result<()> {
14202 encoder.debug_check_bounds::<WlanFullmacImplGetApfPacketFilterEnabledResponse>(offset);
14203 let max_ordinal: u64 = self.max_ordinal_present();
14205 encoder.write_num(max_ordinal, offset);
14206 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
14207 if max_ordinal == 0 {
14209 return Ok(());
14210 }
14211 depth.increment()?;
14212 let envelope_size = 8;
14213 let bytes_len = max_ordinal as usize * envelope_size;
14214 #[allow(unused_variables)]
14215 let offset = encoder.out_of_line_offset(bytes_len);
14216 let mut _prev_end_offset: usize = 0;
14217 if 1 > max_ordinal {
14218 return Ok(());
14219 }
14220
14221 let cur_offset: usize = (1 - 1) * envelope_size;
14224
14225 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
14227
14228 fidl::encoding::encode_in_envelope_optional::<bool, D>(
14233 self.enabled.as_ref().map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
14234 encoder,
14235 offset + cur_offset,
14236 depth,
14237 )?;
14238
14239 _prev_end_offset = cur_offset + envelope_size;
14240
14241 Ok(())
14242 }
14243 }
14244
14245 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
14246 for WlanFullmacImplGetApfPacketFilterEnabledResponse
14247 {
14248 #[inline(always)]
14249 fn new_empty() -> Self {
14250 Self::default()
14251 }
14252
14253 unsafe fn decode(
14254 &mut self,
14255 decoder: &mut fidl::encoding::Decoder<'_, D>,
14256 offset: usize,
14257 mut depth: fidl::encoding::Depth,
14258 ) -> fidl::Result<()> {
14259 decoder.debug_check_bounds::<Self>(offset);
14260 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
14261 None => return Err(fidl::Error::NotNullable),
14262 Some(len) => len,
14263 };
14264 if len == 0 {
14266 return Ok(());
14267 };
14268 depth.increment()?;
14269 let envelope_size = 8;
14270 let bytes_len = len * envelope_size;
14271 let offset = decoder.out_of_line_offset(bytes_len)?;
14272 let mut _next_ordinal_to_read = 0;
14274 let mut next_offset = offset;
14275 let end_offset = offset + bytes_len;
14276 _next_ordinal_to_read += 1;
14277 if next_offset >= end_offset {
14278 return Ok(());
14279 }
14280
14281 while _next_ordinal_to_read < 1 {
14283 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14284 _next_ordinal_to_read += 1;
14285 next_offset += envelope_size;
14286 }
14287
14288 let next_out_of_line = decoder.next_out_of_line();
14289 let handles_before = decoder.remaining_handles();
14290 if let Some((inlined, num_bytes, num_handles)) =
14291 fidl::encoding::decode_envelope_header(decoder, next_offset)?
14292 {
14293 let member_inline_size =
14294 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
14295 if inlined != (member_inline_size <= 4) {
14296 return Err(fidl::Error::InvalidInlineBitInEnvelope);
14297 }
14298 let inner_offset;
14299 let mut inner_depth = depth.clone();
14300 if inlined {
14301 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
14302 inner_offset = next_offset;
14303 } else {
14304 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
14305 inner_depth.increment()?;
14306 }
14307 let val_ref = self.enabled.get_or_insert_with(|| fidl::new_empty!(bool, D));
14308 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
14309 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
14310 {
14311 return Err(fidl::Error::InvalidNumBytesInEnvelope);
14312 }
14313 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
14314 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
14315 }
14316 }
14317
14318 next_offset += envelope_size;
14319
14320 while next_offset < end_offset {
14322 _next_ordinal_to_read += 1;
14323 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14324 next_offset += envelope_size;
14325 }
14326
14327 Ok(())
14328 }
14329 }
14330
14331 impl WlanFullmacImplQueryApfPacketFilterSupportResponse {
14332 #[inline(always)]
14333 fn max_ordinal_present(&self) -> u64 {
14334 if let Some(_) = self.resp {
14335 return 1;
14336 }
14337 0
14338 }
14339 }
14340
14341 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplQueryApfPacketFilterSupportResponse {
14342 type Borrowed<'a> = &'a Self;
14343 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
14344 value
14345 }
14346 }
14347
14348 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplQueryApfPacketFilterSupportResponse {
14349 type Owned = Self;
14350
14351 #[inline(always)]
14352 fn inline_align(_context: fidl::encoding::Context) -> usize {
14353 8
14354 }
14355
14356 #[inline(always)]
14357 fn inline_size(_context: fidl::encoding::Context) -> usize {
14358 16
14359 }
14360 }
14361
14362 unsafe impl<D: fidl::encoding::ResourceDialect>
14363 fidl::encoding::Encode<WlanFullmacImplQueryApfPacketFilterSupportResponse, D>
14364 for &WlanFullmacImplQueryApfPacketFilterSupportResponse
14365 {
14366 unsafe fn encode(
14367 self,
14368 encoder: &mut fidl::encoding::Encoder<'_, D>,
14369 offset: usize,
14370 mut depth: fidl::encoding::Depth,
14371 ) -> fidl::Result<()> {
14372 encoder
14373 .debug_check_bounds::<WlanFullmacImplQueryApfPacketFilterSupportResponse>(offset);
14374 let max_ordinal: u64 = self.max_ordinal_present();
14376 encoder.write_num(max_ordinal, offset);
14377 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
14378 if max_ordinal == 0 {
14380 return Ok(());
14381 }
14382 depth.increment()?;
14383 let envelope_size = 8;
14384 let bytes_len = max_ordinal as usize * envelope_size;
14385 #[allow(unused_variables)]
14386 let offset = encoder.out_of_line_offset(bytes_len);
14387 let mut _prev_end_offset: usize = 0;
14388 if 1 > max_ordinal {
14389 return Ok(());
14390 }
14391
14392 let cur_offset: usize = (1 - 1) * envelope_size;
14395
14396 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
14398
14399 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_common__common::ApfPacketFilterSupport, D>(
14404 self.resp.as_ref().map(<fidl_fuchsia_wlan_common__common::ApfPacketFilterSupport as fidl::encoding::ValueTypeMarker>::borrow),
14405 encoder, offset + cur_offset, depth
14406 )?;
14407
14408 _prev_end_offset = cur_offset + envelope_size;
14409
14410 Ok(())
14411 }
14412 }
14413
14414 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
14415 for WlanFullmacImplQueryApfPacketFilterSupportResponse
14416 {
14417 #[inline(always)]
14418 fn new_empty() -> Self {
14419 Self::default()
14420 }
14421
14422 unsafe fn decode(
14423 &mut self,
14424 decoder: &mut fidl::encoding::Decoder<'_, D>,
14425 offset: usize,
14426 mut depth: fidl::encoding::Depth,
14427 ) -> fidl::Result<()> {
14428 decoder.debug_check_bounds::<Self>(offset);
14429 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
14430 None => return Err(fidl::Error::NotNullable),
14431 Some(len) => len,
14432 };
14433 if len == 0 {
14435 return Ok(());
14436 };
14437 depth.increment()?;
14438 let envelope_size = 8;
14439 let bytes_len = len * envelope_size;
14440 let offset = decoder.out_of_line_offset(bytes_len)?;
14441 let mut _next_ordinal_to_read = 0;
14443 let mut next_offset = offset;
14444 let end_offset = offset + bytes_len;
14445 _next_ordinal_to_read += 1;
14446 if next_offset >= end_offset {
14447 return Ok(());
14448 }
14449
14450 while _next_ordinal_to_read < 1 {
14452 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14453 _next_ordinal_to_read += 1;
14454 next_offset += envelope_size;
14455 }
14456
14457 let next_out_of_line = decoder.next_out_of_line();
14458 let handles_before = decoder.remaining_handles();
14459 if let Some((inlined, num_bytes, num_handles)) =
14460 fidl::encoding::decode_envelope_header(decoder, next_offset)?
14461 {
14462 let member_inline_size = <fidl_fuchsia_wlan_common__common::ApfPacketFilterSupport as fidl::encoding::TypeMarker>::inline_size(decoder.context);
14463 if inlined != (member_inline_size <= 4) {
14464 return Err(fidl::Error::InvalidInlineBitInEnvelope);
14465 }
14466 let inner_offset;
14467 let mut inner_depth = depth.clone();
14468 if inlined {
14469 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
14470 inner_offset = next_offset;
14471 } else {
14472 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
14473 inner_depth.increment()?;
14474 }
14475 let val_ref = self.resp.get_or_insert_with(|| {
14476 fidl::new_empty!(fidl_fuchsia_wlan_common__common::ApfPacketFilterSupport, D)
14477 });
14478 fidl::decode!(
14479 fidl_fuchsia_wlan_common__common::ApfPacketFilterSupport,
14480 D,
14481 val_ref,
14482 decoder,
14483 inner_offset,
14484 inner_depth
14485 )?;
14486 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
14487 {
14488 return Err(fidl::Error::InvalidNumBytesInEnvelope);
14489 }
14490 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
14491 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
14492 }
14493 }
14494
14495 next_offset += envelope_size;
14496
14497 while next_offset < end_offset {
14499 _next_ordinal_to_read += 1;
14500 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14501 next_offset += envelope_size;
14502 }
14503
14504 Ok(())
14505 }
14506 }
14507
14508 impl WlanFullmacImplQuerySecuritySupportResponse {
14509 #[inline(always)]
14510 fn max_ordinal_present(&self) -> u64 {
14511 if let Some(_) = self.resp {
14512 return 1;
14513 }
14514 0
14515 }
14516 }
14517
14518 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplQuerySecuritySupportResponse {
14519 type Borrowed<'a> = &'a Self;
14520 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
14521 value
14522 }
14523 }
14524
14525 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplQuerySecuritySupportResponse {
14526 type Owned = Self;
14527
14528 #[inline(always)]
14529 fn inline_align(_context: fidl::encoding::Context) -> usize {
14530 8
14531 }
14532
14533 #[inline(always)]
14534 fn inline_size(_context: fidl::encoding::Context) -> usize {
14535 16
14536 }
14537 }
14538
14539 unsafe impl<D: fidl::encoding::ResourceDialect>
14540 fidl::encoding::Encode<WlanFullmacImplQuerySecuritySupportResponse, D>
14541 for &WlanFullmacImplQuerySecuritySupportResponse
14542 {
14543 unsafe fn encode(
14544 self,
14545 encoder: &mut fidl::encoding::Encoder<'_, D>,
14546 offset: usize,
14547 mut depth: fidl::encoding::Depth,
14548 ) -> fidl::Result<()> {
14549 encoder.debug_check_bounds::<WlanFullmacImplQuerySecuritySupportResponse>(offset);
14550 let max_ordinal: u64 = self.max_ordinal_present();
14552 encoder.write_num(max_ordinal, offset);
14553 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
14554 if max_ordinal == 0 {
14556 return Ok(());
14557 }
14558 depth.increment()?;
14559 let envelope_size = 8;
14560 let bytes_len = max_ordinal as usize * envelope_size;
14561 #[allow(unused_variables)]
14562 let offset = encoder.out_of_line_offset(bytes_len);
14563 let mut _prev_end_offset: usize = 0;
14564 if 1 > max_ordinal {
14565 return Ok(());
14566 }
14567
14568 let cur_offset: usize = (1 - 1) * envelope_size;
14571
14572 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
14574
14575 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_common__common::SecuritySupport, D>(
14580 self.resp.as_ref().map(<fidl_fuchsia_wlan_common__common::SecuritySupport as fidl::encoding::ValueTypeMarker>::borrow),
14581 encoder, offset + cur_offset, depth
14582 )?;
14583
14584 _prev_end_offset = cur_offset + envelope_size;
14585
14586 Ok(())
14587 }
14588 }
14589
14590 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
14591 for WlanFullmacImplQuerySecuritySupportResponse
14592 {
14593 #[inline(always)]
14594 fn new_empty() -> Self {
14595 Self::default()
14596 }
14597
14598 unsafe fn decode(
14599 &mut self,
14600 decoder: &mut fidl::encoding::Decoder<'_, D>,
14601 offset: usize,
14602 mut depth: fidl::encoding::Depth,
14603 ) -> fidl::Result<()> {
14604 decoder.debug_check_bounds::<Self>(offset);
14605 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
14606 None => return Err(fidl::Error::NotNullable),
14607 Some(len) => len,
14608 };
14609 if len == 0 {
14611 return Ok(());
14612 };
14613 depth.increment()?;
14614 let envelope_size = 8;
14615 let bytes_len = len * envelope_size;
14616 let offset = decoder.out_of_line_offset(bytes_len)?;
14617 let mut _next_ordinal_to_read = 0;
14619 let mut next_offset = offset;
14620 let end_offset = offset + bytes_len;
14621 _next_ordinal_to_read += 1;
14622 if next_offset >= end_offset {
14623 return Ok(());
14624 }
14625
14626 while _next_ordinal_to_read < 1 {
14628 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14629 _next_ordinal_to_read += 1;
14630 next_offset += envelope_size;
14631 }
14632
14633 let next_out_of_line = decoder.next_out_of_line();
14634 let handles_before = decoder.remaining_handles();
14635 if let Some((inlined, num_bytes, num_handles)) =
14636 fidl::encoding::decode_envelope_header(decoder, next_offset)?
14637 {
14638 let member_inline_size = <fidl_fuchsia_wlan_common__common::SecuritySupport as fidl::encoding::TypeMarker>::inline_size(decoder.context);
14639 if inlined != (member_inline_size <= 4) {
14640 return Err(fidl::Error::InvalidInlineBitInEnvelope);
14641 }
14642 let inner_offset;
14643 let mut inner_depth = depth.clone();
14644 if inlined {
14645 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
14646 inner_offset = next_offset;
14647 } else {
14648 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
14649 inner_depth.increment()?;
14650 }
14651 let val_ref = self.resp.get_or_insert_with(|| {
14652 fidl::new_empty!(fidl_fuchsia_wlan_common__common::SecuritySupport, D)
14653 });
14654 fidl::decode!(
14655 fidl_fuchsia_wlan_common__common::SecuritySupport,
14656 D,
14657 val_ref,
14658 decoder,
14659 inner_offset,
14660 inner_depth
14661 )?;
14662 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
14663 {
14664 return Err(fidl::Error::InvalidNumBytesInEnvelope);
14665 }
14666 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
14667 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
14668 }
14669 }
14670
14671 next_offset += envelope_size;
14672
14673 while next_offset < end_offset {
14675 _next_ordinal_to_read += 1;
14676 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14677 next_offset += envelope_size;
14678 }
14679
14680 Ok(())
14681 }
14682 }
14683
14684 impl WlanFullmacImplQuerySpectrumManagementSupportResponse {
14685 #[inline(always)]
14686 fn max_ordinal_present(&self) -> u64 {
14687 if let Some(_) = self.resp {
14688 return 1;
14689 }
14690 0
14691 }
14692 }
14693
14694 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplQuerySpectrumManagementSupportResponse {
14695 type Borrowed<'a> = &'a Self;
14696 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
14697 value
14698 }
14699 }
14700
14701 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplQuerySpectrumManagementSupportResponse {
14702 type Owned = Self;
14703
14704 #[inline(always)]
14705 fn inline_align(_context: fidl::encoding::Context) -> usize {
14706 8
14707 }
14708
14709 #[inline(always)]
14710 fn inline_size(_context: fidl::encoding::Context) -> usize {
14711 16
14712 }
14713 }
14714
14715 unsafe impl<D: fidl::encoding::ResourceDialect>
14716 fidl::encoding::Encode<WlanFullmacImplQuerySpectrumManagementSupportResponse, D>
14717 for &WlanFullmacImplQuerySpectrumManagementSupportResponse
14718 {
14719 unsafe fn encode(
14720 self,
14721 encoder: &mut fidl::encoding::Encoder<'_, D>,
14722 offset: usize,
14723 mut depth: fidl::encoding::Depth,
14724 ) -> fidl::Result<()> {
14725 encoder.debug_check_bounds::<WlanFullmacImplQuerySpectrumManagementSupportResponse>(
14726 offset,
14727 );
14728 let max_ordinal: u64 = self.max_ordinal_present();
14730 encoder.write_num(max_ordinal, offset);
14731 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
14732 if max_ordinal == 0 {
14734 return Ok(());
14735 }
14736 depth.increment()?;
14737 let envelope_size = 8;
14738 let bytes_len = max_ordinal as usize * envelope_size;
14739 #[allow(unused_variables)]
14740 let offset = encoder.out_of_line_offset(bytes_len);
14741 let mut _prev_end_offset: usize = 0;
14742 if 1 > max_ordinal {
14743 return Ok(());
14744 }
14745
14746 let cur_offset: usize = (1 - 1) * envelope_size;
14749
14750 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
14752
14753 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_common__common::SpectrumManagementSupport, D>(
14758 self.resp.as_ref().map(<fidl_fuchsia_wlan_common__common::SpectrumManagementSupport as fidl::encoding::ValueTypeMarker>::borrow),
14759 encoder, offset + cur_offset, depth
14760 )?;
14761
14762 _prev_end_offset = cur_offset + envelope_size;
14763
14764 Ok(())
14765 }
14766 }
14767
14768 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
14769 for WlanFullmacImplQuerySpectrumManagementSupportResponse
14770 {
14771 #[inline(always)]
14772 fn new_empty() -> Self {
14773 Self::default()
14774 }
14775
14776 unsafe fn decode(
14777 &mut self,
14778 decoder: &mut fidl::encoding::Decoder<'_, D>,
14779 offset: usize,
14780 mut depth: fidl::encoding::Depth,
14781 ) -> fidl::Result<()> {
14782 decoder.debug_check_bounds::<Self>(offset);
14783 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
14784 None => return Err(fidl::Error::NotNullable),
14785 Some(len) => len,
14786 };
14787 if len == 0 {
14789 return Ok(());
14790 };
14791 depth.increment()?;
14792 let envelope_size = 8;
14793 let bytes_len = len * envelope_size;
14794 let offset = decoder.out_of_line_offset(bytes_len)?;
14795 let mut _next_ordinal_to_read = 0;
14797 let mut next_offset = offset;
14798 let end_offset = offset + bytes_len;
14799 _next_ordinal_to_read += 1;
14800 if next_offset >= end_offset {
14801 return Ok(());
14802 }
14803
14804 while _next_ordinal_to_read < 1 {
14806 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14807 _next_ordinal_to_read += 1;
14808 next_offset += envelope_size;
14809 }
14810
14811 let next_out_of_line = decoder.next_out_of_line();
14812 let handles_before = decoder.remaining_handles();
14813 if let Some((inlined, num_bytes, num_handles)) =
14814 fidl::encoding::decode_envelope_header(decoder, next_offset)?
14815 {
14816 let member_inline_size = <fidl_fuchsia_wlan_common__common::SpectrumManagementSupport as fidl::encoding::TypeMarker>::inline_size(decoder.context);
14817 if inlined != (member_inline_size <= 4) {
14818 return Err(fidl::Error::InvalidInlineBitInEnvelope);
14819 }
14820 let inner_offset;
14821 let mut inner_depth = depth.clone();
14822 if inlined {
14823 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
14824 inner_offset = next_offset;
14825 } else {
14826 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
14827 inner_depth.increment()?;
14828 }
14829 let val_ref = self.resp.get_or_insert_with(|| {
14830 fidl::new_empty!(fidl_fuchsia_wlan_common__common::SpectrumManagementSupport, D)
14831 });
14832 fidl::decode!(
14833 fidl_fuchsia_wlan_common__common::SpectrumManagementSupport,
14834 D,
14835 val_ref,
14836 decoder,
14837 inner_offset,
14838 inner_depth
14839 )?;
14840 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
14841 {
14842 return Err(fidl::Error::InvalidNumBytesInEnvelope);
14843 }
14844 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
14845 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
14846 }
14847 }
14848
14849 next_offset += envelope_size;
14850
14851 while next_offset < end_offset {
14853 _next_ordinal_to_read += 1;
14854 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14855 next_offset += envelope_size;
14856 }
14857
14858 Ok(())
14859 }
14860 }
14861
14862 impl WlanFullmacImplQueryTelemetrySupportResponse {
14863 #[inline(always)]
14864 fn max_ordinal_present(&self) -> u64 {
14865 if let Some(_) = self.resp {
14866 return 1;
14867 }
14868 0
14869 }
14870 }
14871
14872 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplQueryTelemetrySupportResponse {
14873 type Borrowed<'a> = &'a Self;
14874 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
14875 value
14876 }
14877 }
14878
14879 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplQueryTelemetrySupportResponse {
14880 type Owned = Self;
14881
14882 #[inline(always)]
14883 fn inline_align(_context: fidl::encoding::Context) -> usize {
14884 8
14885 }
14886
14887 #[inline(always)]
14888 fn inline_size(_context: fidl::encoding::Context) -> usize {
14889 16
14890 }
14891 }
14892
14893 unsafe impl<D: fidl::encoding::ResourceDialect>
14894 fidl::encoding::Encode<WlanFullmacImplQueryTelemetrySupportResponse, D>
14895 for &WlanFullmacImplQueryTelemetrySupportResponse
14896 {
14897 unsafe fn encode(
14898 self,
14899 encoder: &mut fidl::encoding::Encoder<'_, D>,
14900 offset: usize,
14901 mut depth: fidl::encoding::Depth,
14902 ) -> fidl::Result<()> {
14903 encoder.debug_check_bounds::<WlanFullmacImplQueryTelemetrySupportResponse>(offset);
14904 let max_ordinal: u64 = self.max_ordinal_present();
14906 encoder.write_num(max_ordinal, offset);
14907 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
14908 if max_ordinal == 0 {
14910 return Ok(());
14911 }
14912 depth.increment()?;
14913 let envelope_size = 8;
14914 let bytes_len = max_ordinal as usize * envelope_size;
14915 #[allow(unused_variables)]
14916 let offset = encoder.out_of_line_offset(bytes_len);
14917 let mut _prev_end_offset: usize = 0;
14918 if 1 > max_ordinal {
14919 return Ok(());
14920 }
14921
14922 let cur_offset: usize = (1 - 1) * envelope_size;
14925
14926 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
14928
14929 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_stats__common::TelemetrySupport, D>(
14934 self.resp.as_ref().map(<fidl_fuchsia_wlan_stats__common::TelemetrySupport as fidl::encoding::ValueTypeMarker>::borrow),
14935 encoder, offset + cur_offset, depth
14936 )?;
14937
14938 _prev_end_offset = cur_offset + envelope_size;
14939
14940 Ok(())
14941 }
14942 }
14943
14944 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
14945 for WlanFullmacImplQueryTelemetrySupportResponse
14946 {
14947 #[inline(always)]
14948 fn new_empty() -> Self {
14949 Self::default()
14950 }
14951
14952 unsafe fn decode(
14953 &mut self,
14954 decoder: &mut fidl::encoding::Decoder<'_, D>,
14955 offset: usize,
14956 mut depth: fidl::encoding::Depth,
14957 ) -> fidl::Result<()> {
14958 decoder.debug_check_bounds::<Self>(offset);
14959 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
14960 None => return Err(fidl::Error::NotNullable),
14961 Some(len) => len,
14962 };
14963 if len == 0 {
14965 return Ok(());
14966 };
14967 depth.increment()?;
14968 let envelope_size = 8;
14969 let bytes_len = len * envelope_size;
14970 let offset = decoder.out_of_line_offset(bytes_len)?;
14971 let mut _next_ordinal_to_read = 0;
14973 let mut next_offset = offset;
14974 let end_offset = offset + bytes_len;
14975 _next_ordinal_to_read += 1;
14976 if next_offset >= end_offset {
14977 return Ok(());
14978 }
14979
14980 while _next_ordinal_to_read < 1 {
14982 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14983 _next_ordinal_to_read += 1;
14984 next_offset += envelope_size;
14985 }
14986
14987 let next_out_of_line = decoder.next_out_of_line();
14988 let handles_before = decoder.remaining_handles();
14989 if let Some((inlined, num_bytes, num_handles)) =
14990 fidl::encoding::decode_envelope_header(decoder, next_offset)?
14991 {
14992 let member_inline_size = <fidl_fuchsia_wlan_stats__common::TelemetrySupport as fidl::encoding::TypeMarker>::inline_size(decoder.context);
14993 if inlined != (member_inline_size <= 4) {
14994 return Err(fidl::Error::InvalidInlineBitInEnvelope);
14995 }
14996 let inner_offset;
14997 let mut inner_depth = depth.clone();
14998 if inlined {
14999 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
15000 inner_offset = next_offset;
15001 } else {
15002 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
15003 inner_depth.increment()?;
15004 }
15005 let val_ref = self.resp.get_or_insert_with(|| {
15006 fidl::new_empty!(fidl_fuchsia_wlan_stats__common::TelemetrySupport, D)
15007 });
15008 fidl::decode!(
15009 fidl_fuchsia_wlan_stats__common::TelemetrySupport,
15010 D,
15011 val_ref,
15012 decoder,
15013 inner_offset,
15014 inner_depth
15015 )?;
15016 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
15017 {
15018 return Err(fidl::Error::InvalidNumBytesInEnvelope);
15019 }
15020 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
15021 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
15022 }
15023 }
15024
15025 next_offset += envelope_size;
15026
15027 while next_offset < end_offset {
15029 _next_ordinal_to_read += 1;
15030 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15031 next_offset += envelope_size;
15032 }
15033
15034 Ok(())
15035 }
15036 }
15037
15038 impl WlanFullmacImplQueryResponse {
15039 #[inline(always)]
15040 fn max_ordinal_present(&self) -> u64 {
15041 if let Some(_) = self.factory_addr {
15042 return 4;
15043 }
15044 if let Some(_) = self.band_caps {
15045 return 3;
15046 }
15047 if let Some(_) = self.role {
15048 return 2;
15049 }
15050 if let Some(_) = self.sta_addr {
15051 return 1;
15052 }
15053 0
15054 }
15055 }
15056
15057 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplQueryResponse {
15058 type Borrowed<'a> = &'a Self;
15059 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
15060 value
15061 }
15062 }
15063
15064 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplQueryResponse {
15065 type Owned = Self;
15066
15067 #[inline(always)]
15068 fn inline_align(_context: fidl::encoding::Context) -> usize {
15069 8
15070 }
15071
15072 #[inline(always)]
15073 fn inline_size(_context: fidl::encoding::Context) -> usize {
15074 16
15075 }
15076 }
15077
15078 unsafe impl<D: fidl::encoding::ResourceDialect>
15079 fidl::encoding::Encode<WlanFullmacImplQueryResponse, D> for &WlanFullmacImplQueryResponse
15080 {
15081 unsafe fn encode(
15082 self,
15083 encoder: &mut fidl::encoding::Encoder<'_, D>,
15084 offset: usize,
15085 mut depth: fidl::encoding::Depth,
15086 ) -> fidl::Result<()> {
15087 encoder.debug_check_bounds::<WlanFullmacImplQueryResponse>(offset);
15088 let max_ordinal: u64 = self.max_ordinal_present();
15090 encoder.write_num(max_ordinal, offset);
15091 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
15092 if max_ordinal == 0 {
15094 return Ok(());
15095 }
15096 depth.increment()?;
15097 let envelope_size = 8;
15098 let bytes_len = max_ordinal as usize * envelope_size;
15099 #[allow(unused_variables)]
15100 let offset = encoder.out_of_line_offset(bytes_len);
15101 let mut _prev_end_offset: usize = 0;
15102 if 1 > max_ordinal {
15103 return Ok(());
15104 }
15105
15106 let cur_offset: usize = (1 - 1) * envelope_size;
15109
15110 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
15112
15113 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
15118 self.sta_addr
15119 .as_ref()
15120 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
15121 encoder,
15122 offset + cur_offset,
15123 depth,
15124 )?;
15125
15126 _prev_end_offset = cur_offset + envelope_size;
15127 if 2 > max_ordinal {
15128 return Ok(());
15129 }
15130
15131 let cur_offset: usize = (2 - 1) * envelope_size;
15134
15135 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
15137
15138 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_common__common::WlanMacRole, D>(
15143 self.role.as_ref().map(<fidl_fuchsia_wlan_common__common::WlanMacRole as fidl::encoding::ValueTypeMarker>::borrow),
15144 encoder, offset + cur_offset, depth
15145 )?;
15146
15147 _prev_end_offset = cur_offset + envelope_size;
15148 if 3 > max_ordinal {
15149 return Ok(());
15150 }
15151
15152 let cur_offset: usize = (3 - 1) * envelope_size;
15155
15156 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
15158
15159 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<BandCapability, 16>, D>(
15164 self.band_caps.as_ref().map(<fidl::encoding::Vector<BandCapability, 16> as fidl::encoding::ValueTypeMarker>::borrow),
15165 encoder, offset + cur_offset, depth
15166 )?;
15167
15168 _prev_end_offset = cur_offset + envelope_size;
15169 if 4 > max_ordinal {
15170 return Ok(());
15171 }
15172
15173 let cur_offset: usize = (4 - 1) * envelope_size;
15176
15177 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
15179
15180 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
15185 self.factory_addr
15186 .as_ref()
15187 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
15188 encoder,
15189 offset + cur_offset,
15190 depth,
15191 )?;
15192
15193 _prev_end_offset = cur_offset + envelope_size;
15194
15195 Ok(())
15196 }
15197 }
15198
15199 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
15200 for WlanFullmacImplQueryResponse
15201 {
15202 #[inline(always)]
15203 fn new_empty() -> Self {
15204 Self::default()
15205 }
15206
15207 unsafe fn decode(
15208 &mut self,
15209 decoder: &mut fidl::encoding::Decoder<'_, D>,
15210 offset: usize,
15211 mut depth: fidl::encoding::Depth,
15212 ) -> fidl::Result<()> {
15213 decoder.debug_check_bounds::<Self>(offset);
15214 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
15215 None => return Err(fidl::Error::NotNullable),
15216 Some(len) => len,
15217 };
15218 if len == 0 {
15220 return Ok(());
15221 };
15222 depth.increment()?;
15223 let envelope_size = 8;
15224 let bytes_len = len * envelope_size;
15225 let offset = decoder.out_of_line_offset(bytes_len)?;
15226 let mut _next_ordinal_to_read = 0;
15228 let mut next_offset = offset;
15229 let end_offset = offset + bytes_len;
15230 _next_ordinal_to_read += 1;
15231 if next_offset >= end_offset {
15232 return Ok(());
15233 }
15234
15235 while _next_ordinal_to_read < 1 {
15237 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15238 _next_ordinal_to_read += 1;
15239 next_offset += envelope_size;
15240 }
15241
15242 let next_out_of_line = decoder.next_out_of_line();
15243 let handles_before = decoder.remaining_handles();
15244 if let Some((inlined, num_bytes, num_handles)) =
15245 fidl::encoding::decode_envelope_header(decoder, next_offset)?
15246 {
15247 let member_inline_size =
15248 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
15249 decoder.context,
15250 );
15251 if inlined != (member_inline_size <= 4) {
15252 return Err(fidl::Error::InvalidInlineBitInEnvelope);
15253 }
15254 let inner_offset;
15255 let mut inner_depth = depth.clone();
15256 if inlined {
15257 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
15258 inner_offset = next_offset;
15259 } else {
15260 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
15261 inner_depth.increment()?;
15262 }
15263 let val_ref = self
15264 .sta_addr
15265 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
15266 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
15267 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
15268 {
15269 return Err(fidl::Error::InvalidNumBytesInEnvelope);
15270 }
15271 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
15272 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
15273 }
15274 }
15275
15276 next_offset += envelope_size;
15277 _next_ordinal_to_read += 1;
15278 if next_offset >= end_offset {
15279 return Ok(());
15280 }
15281
15282 while _next_ordinal_to_read < 2 {
15284 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15285 _next_ordinal_to_read += 1;
15286 next_offset += envelope_size;
15287 }
15288
15289 let next_out_of_line = decoder.next_out_of_line();
15290 let handles_before = decoder.remaining_handles();
15291 if let Some((inlined, num_bytes, num_handles)) =
15292 fidl::encoding::decode_envelope_header(decoder, next_offset)?
15293 {
15294 let member_inline_size = <fidl_fuchsia_wlan_common__common::WlanMacRole as fidl::encoding::TypeMarker>::inline_size(decoder.context);
15295 if inlined != (member_inline_size <= 4) {
15296 return Err(fidl::Error::InvalidInlineBitInEnvelope);
15297 }
15298 let inner_offset;
15299 let mut inner_depth = depth.clone();
15300 if inlined {
15301 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
15302 inner_offset = next_offset;
15303 } else {
15304 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
15305 inner_depth.increment()?;
15306 }
15307 let val_ref = self.role.get_or_insert_with(|| {
15308 fidl::new_empty!(fidl_fuchsia_wlan_common__common::WlanMacRole, D)
15309 });
15310 fidl::decode!(
15311 fidl_fuchsia_wlan_common__common::WlanMacRole,
15312 D,
15313 val_ref,
15314 decoder,
15315 inner_offset,
15316 inner_depth
15317 )?;
15318 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
15319 {
15320 return Err(fidl::Error::InvalidNumBytesInEnvelope);
15321 }
15322 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
15323 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
15324 }
15325 }
15326
15327 next_offset += envelope_size;
15328 _next_ordinal_to_read += 1;
15329 if next_offset >= end_offset {
15330 return Ok(());
15331 }
15332
15333 while _next_ordinal_to_read < 3 {
15335 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15336 _next_ordinal_to_read += 1;
15337 next_offset += envelope_size;
15338 }
15339
15340 let next_out_of_line = decoder.next_out_of_line();
15341 let handles_before = decoder.remaining_handles();
15342 if let Some((inlined, num_bytes, num_handles)) =
15343 fidl::encoding::decode_envelope_header(decoder, next_offset)?
15344 {
15345 let member_inline_size = <fidl::encoding::Vector<BandCapability, 16> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
15346 if inlined != (member_inline_size <= 4) {
15347 return Err(fidl::Error::InvalidInlineBitInEnvelope);
15348 }
15349 let inner_offset;
15350 let mut inner_depth = depth.clone();
15351 if inlined {
15352 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
15353 inner_offset = next_offset;
15354 } else {
15355 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
15356 inner_depth.increment()?;
15357 }
15358 let val_ref = self.band_caps.get_or_insert_with(
15359 || fidl::new_empty!(fidl::encoding::Vector<BandCapability, 16>, D),
15360 );
15361 fidl::decode!(fidl::encoding::Vector<BandCapability, 16>, D, val_ref, decoder, inner_offset, inner_depth)?;
15362 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
15363 {
15364 return Err(fidl::Error::InvalidNumBytesInEnvelope);
15365 }
15366 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
15367 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
15368 }
15369 }
15370
15371 next_offset += envelope_size;
15372 _next_ordinal_to_read += 1;
15373 if next_offset >= end_offset {
15374 return Ok(());
15375 }
15376
15377 while _next_ordinal_to_read < 4 {
15379 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15380 _next_ordinal_to_read += 1;
15381 next_offset += envelope_size;
15382 }
15383
15384 let next_out_of_line = decoder.next_out_of_line();
15385 let handles_before = decoder.remaining_handles();
15386 if let Some((inlined, num_bytes, num_handles)) =
15387 fidl::encoding::decode_envelope_header(decoder, next_offset)?
15388 {
15389 let member_inline_size =
15390 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
15391 decoder.context,
15392 );
15393 if inlined != (member_inline_size <= 4) {
15394 return Err(fidl::Error::InvalidInlineBitInEnvelope);
15395 }
15396 let inner_offset;
15397 let mut inner_depth = depth.clone();
15398 if inlined {
15399 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
15400 inner_offset = next_offset;
15401 } else {
15402 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
15403 inner_depth.increment()?;
15404 }
15405 let val_ref = self
15406 .factory_addr
15407 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
15408 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
15409 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
15410 {
15411 return Err(fidl::Error::InvalidNumBytesInEnvelope);
15412 }
15413 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
15414 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
15415 }
15416 }
15417
15418 next_offset += envelope_size;
15419
15420 while next_offset < end_offset {
15422 _next_ordinal_to_read += 1;
15423 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15424 next_offset += envelope_size;
15425 }
15426
15427 Ok(())
15428 }
15429 }
15430
15431 impl WlanFullmacImplReadApfPacketFilterDataResponse {
15432 #[inline(always)]
15433 fn max_ordinal_present(&self) -> u64 {
15434 if let Some(_) = self.memory {
15435 return 1;
15436 }
15437 0
15438 }
15439 }
15440
15441 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplReadApfPacketFilterDataResponse {
15442 type Borrowed<'a> = &'a Self;
15443 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
15444 value
15445 }
15446 }
15447
15448 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplReadApfPacketFilterDataResponse {
15449 type Owned = Self;
15450
15451 #[inline(always)]
15452 fn inline_align(_context: fidl::encoding::Context) -> usize {
15453 8
15454 }
15455
15456 #[inline(always)]
15457 fn inline_size(_context: fidl::encoding::Context) -> usize {
15458 16
15459 }
15460 }
15461
15462 unsafe impl<D: fidl::encoding::ResourceDialect>
15463 fidl::encoding::Encode<WlanFullmacImplReadApfPacketFilterDataResponse, D>
15464 for &WlanFullmacImplReadApfPacketFilterDataResponse
15465 {
15466 unsafe fn encode(
15467 self,
15468 encoder: &mut fidl::encoding::Encoder<'_, D>,
15469 offset: usize,
15470 mut depth: fidl::encoding::Depth,
15471 ) -> fidl::Result<()> {
15472 encoder.debug_check_bounds::<WlanFullmacImplReadApfPacketFilterDataResponse>(offset);
15473 let max_ordinal: u64 = self.max_ordinal_present();
15475 encoder.write_num(max_ordinal, offset);
15476 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
15477 if max_ordinal == 0 {
15479 return Ok(());
15480 }
15481 depth.increment()?;
15482 let envelope_size = 8;
15483 let bytes_len = max_ordinal as usize * envelope_size;
15484 #[allow(unused_variables)]
15485 let offset = encoder.out_of_line_offset(bytes_len);
15486 let mut _prev_end_offset: usize = 0;
15487 if 1 > max_ordinal {
15488 return Ok(());
15489 }
15490
15491 let cur_offset: usize = (1 - 1) * envelope_size;
15494
15495 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
15497
15498 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<u8>, D>(
15503 self.memory.as_ref().map(<fidl::encoding::UnboundedVector<u8> as fidl::encoding::ValueTypeMarker>::borrow),
15504 encoder, offset + cur_offset, depth
15505 )?;
15506
15507 _prev_end_offset = cur_offset + envelope_size;
15508
15509 Ok(())
15510 }
15511 }
15512
15513 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
15514 for WlanFullmacImplReadApfPacketFilterDataResponse
15515 {
15516 #[inline(always)]
15517 fn new_empty() -> Self {
15518 Self::default()
15519 }
15520
15521 unsafe fn decode(
15522 &mut self,
15523 decoder: &mut fidl::encoding::Decoder<'_, D>,
15524 offset: usize,
15525 mut depth: fidl::encoding::Depth,
15526 ) -> fidl::Result<()> {
15527 decoder.debug_check_bounds::<Self>(offset);
15528 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
15529 None => return Err(fidl::Error::NotNullable),
15530 Some(len) => len,
15531 };
15532 if len == 0 {
15534 return Ok(());
15535 };
15536 depth.increment()?;
15537 let envelope_size = 8;
15538 let bytes_len = len * envelope_size;
15539 let offset = decoder.out_of_line_offset(bytes_len)?;
15540 let mut _next_ordinal_to_read = 0;
15542 let mut next_offset = offset;
15543 let end_offset = offset + bytes_len;
15544 _next_ordinal_to_read += 1;
15545 if next_offset >= end_offset {
15546 return Ok(());
15547 }
15548
15549 while _next_ordinal_to_read < 1 {
15551 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15552 _next_ordinal_to_read += 1;
15553 next_offset += envelope_size;
15554 }
15555
15556 let next_out_of_line = decoder.next_out_of_line();
15557 let handles_before = decoder.remaining_handles();
15558 if let Some((inlined, num_bytes, num_handles)) =
15559 fidl::encoding::decode_envelope_header(decoder, next_offset)?
15560 {
15561 let member_inline_size = <fidl::encoding::UnboundedVector<u8> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
15562 if inlined != (member_inline_size <= 4) {
15563 return Err(fidl::Error::InvalidInlineBitInEnvelope);
15564 }
15565 let inner_offset;
15566 let mut inner_depth = depth.clone();
15567 if inlined {
15568 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
15569 inner_offset = next_offset;
15570 } else {
15571 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
15572 inner_depth.increment()?;
15573 }
15574 let val_ref = self.memory.get_or_insert_with(|| {
15575 fidl::new_empty!(fidl::encoding::UnboundedVector<u8>, D)
15576 });
15577 fidl::decode!(
15578 fidl::encoding::UnboundedVector<u8>,
15579 D,
15580 val_ref,
15581 decoder,
15582 inner_offset,
15583 inner_depth
15584 )?;
15585 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
15586 {
15587 return Err(fidl::Error::InvalidNumBytesInEnvelope);
15588 }
15589 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
15590 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
15591 }
15592 }
15593
15594 next_offset += envelope_size;
15595
15596 while next_offset < end_offset {
15598 _next_ordinal_to_read += 1;
15599 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15600 next_offset += envelope_size;
15601 }
15602
15603 Ok(())
15604 }
15605 }
15606
15607 impl WlanFullmacOwePublicKey {
15608 #[inline(always)]
15609 fn max_ordinal_present(&self) -> u64 {
15610 if let Some(_) = self.key {
15611 return 2;
15612 }
15613 if let Some(_) = self.group {
15614 return 1;
15615 }
15616 0
15617 }
15618 }
15619
15620 impl fidl::encoding::ValueTypeMarker for WlanFullmacOwePublicKey {
15621 type Borrowed<'a> = &'a Self;
15622 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
15623 value
15624 }
15625 }
15626
15627 unsafe impl fidl::encoding::TypeMarker for WlanFullmacOwePublicKey {
15628 type Owned = Self;
15629
15630 #[inline(always)]
15631 fn inline_align(_context: fidl::encoding::Context) -> usize {
15632 8
15633 }
15634
15635 #[inline(always)]
15636 fn inline_size(_context: fidl::encoding::Context) -> usize {
15637 16
15638 }
15639 }
15640
15641 unsafe impl<D: fidl::encoding::ResourceDialect>
15642 fidl::encoding::Encode<WlanFullmacOwePublicKey, D> for &WlanFullmacOwePublicKey
15643 {
15644 unsafe fn encode(
15645 self,
15646 encoder: &mut fidl::encoding::Encoder<'_, D>,
15647 offset: usize,
15648 mut depth: fidl::encoding::Depth,
15649 ) -> fidl::Result<()> {
15650 encoder.debug_check_bounds::<WlanFullmacOwePublicKey>(offset);
15651 let max_ordinal: u64 = self.max_ordinal_present();
15653 encoder.write_num(max_ordinal, offset);
15654 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
15655 if max_ordinal == 0 {
15657 return Ok(());
15658 }
15659 depth.increment()?;
15660 let envelope_size = 8;
15661 let bytes_len = max_ordinal as usize * envelope_size;
15662 #[allow(unused_variables)]
15663 let offset = encoder.out_of_line_offset(bytes_len);
15664 let mut _prev_end_offset: usize = 0;
15665 if 1 > max_ordinal {
15666 return Ok(());
15667 }
15668
15669 let cur_offset: usize = (1 - 1) * envelope_size;
15672
15673 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
15675
15676 fidl::encoding::encode_in_envelope_optional::<u16, D>(
15681 self.group.as_ref().map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
15682 encoder,
15683 offset + cur_offset,
15684 depth,
15685 )?;
15686
15687 _prev_end_offset = cur_offset + envelope_size;
15688 if 2 > max_ordinal {
15689 return Ok(());
15690 }
15691
15692 let cur_offset: usize = (2 - 1) * envelope_size;
15695
15696 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
15698
15699 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<u8>, D>(
15704 self.key.as_ref().map(<fidl::encoding::UnboundedVector<u8> as fidl::encoding::ValueTypeMarker>::borrow),
15705 encoder, offset + cur_offset, depth
15706 )?;
15707
15708 _prev_end_offset = cur_offset + envelope_size;
15709
15710 Ok(())
15711 }
15712 }
15713
15714 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
15715 for WlanFullmacOwePublicKey
15716 {
15717 #[inline(always)]
15718 fn new_empty() -> Self {
15719 Self::default()
15720 }
15721
15722 unsafe fn decode(
15723 &mut self,
15724 decoder: &mut fidl::encoding::Decoder<'_, D>,
15725 offset: usize,
15726 mut depth: fidl::encoding::Depth,
15727 ) -> fidl::Result<()> {
15728 decoder.debug_check_bounds::<Self>(offset);
15729 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
15730 None => return Err(fidl::Error::NotNullable),
15731 Some(len) => len,
15732 };
15733 if len == 0 {
15735 return Ok(());
15736 };
15737 depth.increment()?;
15738 let envelope_size = 8;
15739 let bytes_len = len * envelope_size;
15740 let offset = decoder.out_of_line_offset(bytes_len)?;
15741 let mut _next_ordinal_to_read = 0;
15743 let mut next_offset = offset;
15744 let end_offset = offset + bytes_len;
15745 _next_ordinal_to_read += 1;
15746 if next_offset >= end_offset {
15747 return Ok(());
15748 }
15749
15750 while _next_ordinal_to_read < 1 {
15752 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15753 _next_ordinal_to_read += 1;
15754 next_offset += envelope_size;
15755 }
15756
15757 let next_out_of_line = decoder.next_out_of_line();
15758 let handles_before = decoder.remaining_handles();
15759 if let Some((inlined, num_bytes, num_handles)) =
15760 fidl::encoding::decode_envelope_header(decoder, next_offset)?
15761 {
15762 let member_inline_size =
15763 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
15764 if inlined != (member_inline_size <= 4) {
15765 return Err(fidl::Error::InvalidInlineBitInEnvelope);
15766 }
15767 let inner_offset;
15768 let mut inner_depth = depth.clone();
15769 if inlined {
15770 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
15771 inner_offset = next_offset;
15772 } else {
15773 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
15774 inner_depth.increment()?;
15775 }
15776 let val_ref = self.group.get_or_insert_with(|| fidl::new_empty!(u16, D));
15777 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
15778 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
15779 {
15780 return Err(fidl::Error::InvalidNumBytesInEnvelope);
15781 }
15782 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
15783 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
15784 }
15785 }
15786
15787 next_offset += envelope_size;
15788 _next_ordinal_to_read += 1;
15789 if next_offset >= end_offset {
15790 return Ok(());
15791 }
15792
15793 while _next_ordinal_to_read < 2 {
15795 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15796 _next_ordinal_to_read += 1;
15797 next_offset += envelope_size;
15798 }
15799
15800 let next_out_of_line = decoder.next_out_of_line();
15801 let handles_before = decoder.remaining_handles();
15802 if let Some((inlined, num_bytes, num_handles)) =
15803 fidl::encoding::decode_envelope_header(decoder, next_offset)?
15804 {
15805 let member_inline_size = <fidl::encoding::UnboundedVector<u8> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
15806 if inlined != (member_inline_size <= 4) {
15807 return Err(fidl::Error::InvalidInlineBitInEnvelope);
15808 }
15809 let inner_offset;
15810 let mut inner_depth = depth.clone();
15811 if inlined {
15812 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
15813 inner_offset = next_offset;
15814 } else {
15815 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
15816 inner_depth.increment()?;
15817 }
15818 let val_ref = self.key.get_or_insert_with(|| {
15819 fidl::new_empty!(fidl::encoding::UnboundedVector<u8>, D)
15820 });
15821 fidl::decode!(
15822 fidl::encoding::UnboundedVector<u8>,
15823 D,
15824 val_ref,
15825 decoder,
15826 inner_offset,
15827 inner_depth
15828 )?;
15829 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
15830 {
15831 return Err(fidl::Error::InvalidNumBytesInEnvelope);
15832 }
15833 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
15834 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
15835 }
15836 }
15837
15838 next_offset += envelope_size;
15839
15840 while next_offset < end_offset {
15842 _next_ordinal_to_read += 1;
15843 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15844 next_offset += envelope_size;
15845 }
15846
15847 Ok(())
15848 }
15849 }
15850}