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, PartialEq)]
653pub struct WlanFullmacImplQuerySecuritySupportResponse {
654 pub resp: fidl_fuchsia_wlan_common__common::SecuritySupport,
655}
656
657impl fidl::Persistable for WlanFullmacImplQuerySecuritySupportResponse {}
658
659#[derive(Clone, Debug, PartialEq)]
660pub struct WlanFullmacImplQuerySpectrumManagementSupportResponse {
661 pub resp: fidl_fuchsia_wlan_common__common::SpectrumManagementSupport,
662}
663
664impl fidl::Persistable for WlanFullmacImplQuerySpectrumManagementSupportResponse {}
665
666#[derive(Clone, Debug, PartialEq)]
667pub struct WlanFullmacImplQueryTelemetrySupportResponse {
668 pub resp: fidl_fuchsia_wlan_stats__common::TelemetrySupport,
669}
670
671impl fidl::Persistable for WlanFullmacImplQueryTelemetrySupportResponse {}
672
673#[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
674pub struct WlanFullmacRssiStats {
675 pub hist: Vec<u64>,
676}
677
678impl fidl::Persistable for WlanFullmacRssiStats {}
679
680#[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
681pub struct WlanFullmacSetKeysResp {
682 pub statuslist: Vec<i32>,
683}
684
685impl fidl::Persistable for WlanFullmacSetKeysResp {}
686
687#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
688#[repr(C)]
689pub struct WlanFullmacSignalReportIndication {
690 pub rssi_dbm: i8,
691 pub snr_db: i8,
692}
693
694impl fidl::Persistable for WlanFullmacSignalReportIndication {}
695
696#[derive(Clone, Debug, Default, PartialEq)]
698pub struct BandCapability {
699 pub band: Option<fidl_fuchsia_wlan_ieee80211__common::WlanBand>,
703 pub basic_rates: Option<Vec<u8>>,
710 pub ht_caps: Option<fidl_fuchsia_wlan_ieee80211__common::HtCapabilities>,
715 pub vht_caps: Option<fidl_fuchsia_wlan_ieee80211__common::VhtCapabilities>,
720 pub operating_channels: Option<Vec<u8>>,
732 #[doc(hidden)]
733 pub __source_breaking: fidl::marker::SourceBreaking,
734}
735
736impl fidl::Persistable for BandCapability {}
737
738#[derive(Clone, Debug, Default, PartialEq)]
741pub struct SaeFrame {
742 pub peer_sta_address: Option<[u8; 6]>,
744 pub status_code: Option<fidl_fuchsia_wlan_ieee80211__common::StatusCode>,
746 pub seq_num: Option<u16>,
748 pub sae_fields: Option<Vec<u8>>,
752 #[doc(hidden)]
753 pub __source_breaking: fidl::marker::SourceBreaking,
754}
755
756impl fidl::Persistable for SaeFrame {}
757
758#[derive(Clone, Debug, Default, PartialEq)]
759pub struct WlanFullmacImplAssocRespRequest {
760 pub peer_sta_address: Option<[u8; 6]>,
761 pub result_code: Option<WlanAssocResult>,
762 pub association_id: Option<u16>,
763 #[doc(hidden)]
764 pub __source_breaking: fidl::marker::SourceBreaking,
765}
766
767impl fidl::Persistable for WlanFullmacImplAssocRespRequest {}
768
769#[derive(Clone, Debug, Default, PartialEq)]
770pub struct WlanFullmacImplAuthRespRequest {
771 pub peer_sta_address: Option<[u8; 6]>,
772 pub result_code: Option<WlanAuthResult>,
773 #[doc(hidden)]
774 pub __source_breaking: fidl::marker::SourceBreaking,
775}
776
777impl fidl::Persistable for WlanFullmacImplAuthRespRequest {}
778
779#[derive(Clone, Debug, Default, PartialEq)]
780pub struct WlanFullmacImplConnectRequest {
781 pub selected_bss: Option<fidl_fuchsia_wlan_common__common::BssDescription>,
782 pub connect_failure_timeout: Option<u32>,
784 pub auth_type: Option<WlanAuthType>,
786 pub sae_password: Option<Vec<u8>>,
789 pub wep_key: Option<fidl_fuchsia_wlan_common__common::WlanKeyConfig>,
792 pub security_ie: Option<Vec<u8>>,
794 pub wep_key_desc: Option<fidl_fuchsia_wlan_ieee80211__common::SetKeyDescriptor>,
797 #[doc(hidden)]
798 pub __source_breaking: fidl::marker::SourceBreaking,
799}
800
801impl fidl::Persistable for WlanFullmacImplConnectRequest {}
802
803#[derive(Clone, Debug, Default, PartialEq)]
804pub struct WlanFullmacImplDeauthRequest {
805 pub peer_sta_address: Option<[u8; 6]>,
806 pub reason_code: Option<fidl_fuchsia_wlan_ieee80211__common::ReasonCode>,
807 #[doc(hidden)]
808 pub __source_breaking: fidl::marker::SourceBreaking,
809}
810
811impl fidl::Persistable for WlanFullmacImplDeauthRequest {}
812
813#[derive(Clone, Debug, Default, PartialEq)]
814pub struct WlanFullmacImplDisassocRequest {
815 pub peer_sta_address: Option<[u8; 6]>,
816 pub reason_code: Option<fidl_fuchsia_wlan_ieee80211__common::ReasonCode>,
817 #[doc(hidden)]
818 pub __source_breaking: fidl::marker::SourceBreaking,
819}
820
821impl fidl::Persistable for WlanFullmacImplDisassocRequest {}
822
823#[derive(Clone, Debug, Default, PartialEq)]
824pub struct WlanFullmacImplEapolTxRequest {
825 pub src_addr: Option<[u8; 6]>,
826 pub dst_addr: Option<[u8; 6]>,
827 pub data: Option<Vec<u8>>,
828 #[doc(hidden)]
829 pub __source_breaking: fidl::marker::SourceBreaking,
830}
831
832impl fidl::Persistable for WlanFullmacImplEapolTxRequest {}
833
834#[derive(Clone, Debug, Default, PartialEq)]
835pub struct WlanFullmacImplIfcAssocIndRequest {
836 pub peer_sta_address: Option<[u8; 6]>,
837 pub listen_interval: Option<u16>,
838 pub ssid: Option<Vec<u8>>,
839 pub rsne: Option<Vec<u8>>,
840 pub vendor_ie: Option<Vec<u8>>,
841 #[doc(hidden)]
842 pub __source_breaking: fidl::marker::SourceBreaking,
843}
844
845impl fidl::Persistable for WlanFullmacImplIfcAssocIndRequest {}
846
847#[derive(Clone, Debug, Default, PartialEq)]
848pub struct WlanFullmacImplIfcAuthIndRequest {
849 pub peer_sta_address: Option<[u8; 6]>,
850 pub auth_type: Option<WlanAuthType>,
851 #[doc(hidden)]
852 pub __source_breaking: fidl::marker::SourceBreaking,
853}
854
855impl fidl::Persistable for WlanFullmacImplIfcAuthIndRequest {}
856
857#[derive(Clone, Debug, Default, PartialEq)]
858pub struct WlanFullmacImplIfcConnectConfRequest {
859 pub peer_sta_address: Option<[u8; 6]>,
860 pub result_code: Option<fidl_fuchsia_wlan_ieee80211__common::StatusCode>,
861 pub association_id: Option<u16>,
862 pub association_ies: Option<Vec<u8>>,
863 #[doc(hidden)]
864 pub __source_breaking: fidl::marker::SourceBreaking,
865}
866
867impl fidl::Persistable for WlanFullmacImplIfcConnectConfRequest {}
868
869#[derive(Clone, Debug, Default, PartialEq)]
870pub struct WlanFullmacImplIfcDeauthConfRequest {
871 pub peer_sta_address: Option<[u8; 6]>,
872 #[doc(hidden)]
873 pub __source_breaking: fidl::marker::SourceBreaking,
874}
875
876impl fidl::Persistable for WlanFullmacImplIfcDeauthConfRequest {}
877
878#[derive(Clone, Debug, Default, PartialEq)]
879pub struct WlanFullmacImplIfcDeauthIndRequest {
880 pub peer_sta_address: Option<[u8; 6]>,
882 pub reason_code: Option<fidl_fuchsia_wlan_ieee80211__common::ReasonCode>,
884 pub locally_initiated: Option<bool>,
887 #[doc(hidden)]
888 pub __source_breaking: fidl::marker::SourceBreaking,
889}
890
891impl fidl::Persistable for WlanFullmacImplIfcDeauthIndRequest {}
892
893#[derive(Clone, Debug, Default, PartialEq)]
894pub struct WlanFullmacImplIfcDisassocConfRequest {
895 pub status: Option<i32>,
903 #[doc(hidden)]
904 pub __source_breaking: fidl::marker::SourceBreaking,
905}
906
907impl fidl::Persistable for WlanFullmacImplIfcDisassocConfRequest {}
908
909#[derive(Clone, Debug, Default, PartialEq)]
910pub struct WlanFullmacImplIfcDisassocIndRequest {
911 pub peer_sta_address: Option<[u8; 6]>,
913 pub reason_code: Option<fidl_fuchsia_wlan_ieee80211__common::ReasonCode>,
915 pub locally_initiated: Option<bool>,
920 #[doc(hidden)]
921 pub __source_breaking: fidl::marker::SourceBreaking,
922}
923
924impl fidl::Persistable for WlanFullmacImplIfcDisassocIndRequest {}
925
926#[derive(Clone, Debug, Default, PartialEq)]
927pub struct WlanFullmacImplIfcEapolConfRequest {
928 pub result_code: Option<EapolTxResult>,
930 pub dst_addr: Option<[u8; 6]>,
935 #[doc(hidden)]
936 pub __source_breaking: fidl::marker::SourceBreaking,
937}
938
939impl fidl::Persistable for WlanFullmacImplIfcEapolConfRequest {}
940
941#[derive(Clone, Debug, Default, PartialEq)]
942pub struct WlanFullmacImplIfcEapolIndRequest {
943 pub src_addr: Option<[u8; 6]>,
945 pub dst_addr: Option<[u8; 6]>,
947 pub data: Option<Vec<u8>>,
949 #[doc(hidden)]
950 pub __source_breaking: fidl::marker::SourceBreaking,
951}
952
953impl fidl::Persistable for WlanFullmacImplIfcEapolIndRequest {}
954
955#[derive(Clone, Debug, Default, PartialEq)]
956pub struct WlanFullmacImplIfcOnPmkAvailableRequest {
957 pub pmk: Option<Vec<u8>>,
959 pub pmkid: Option<Vec<u8>>,
961 #[doc(hidden)]
962 pub __source_breaking: fidl::marker::SourceBreaking,
963}
964
965impl fidl::Persistable for WlanFullmacImplIfcOnPmkAvailableRequest {}
966
967#[derive(Clone, Debug, Default, PartialEq)]
968pub struct WlanFullmacImplIfcOnScanEndRequest {
969 pub txn_id: Option<u64>,
970 pub code: Option<WlanScanResult>,
971 #[doc(hidden)]
972 pub __source_breaking: fidl::marker::SourceBreaking,
973}
974
975impl fidl::Persistable for WlanFullmacImplIfcOnScanEndRequest {}
976
977#[derive(Clone, Debug, Default, PartialEq)]
978pub struct WlanFullmacImplIfcOnScanResultRequest {
979 pub txn_id: Option<u64>,
980 pub timestamp_nanos: Option<i64>,
981 pub bss: Option<fidl_fuchsia_wlan_common__common::BssDescription>,
982 #[doc(hidden)]
983 pub __source_breaking: fidl::marker::SourceBreaking,
984}
985
986impl fidl::Persistable for WlanFullmacImplIfcOnScanResultRequest {}
987
988#[derive(Clone, Debug, Default, PartialEq)]
989pub struct WlanFullmacImplIfcRoamConfRequest {
990 pub selected_bssid: Option<[u8; 6]>,
992 pub status_code: Option<fidl_fuchsia_wlan_ieee80211__common::StatusCode>,
994 pub original_association_maintained: Option<bool>,
999 pub target_bss_authenticated: Option<bool>,
1004 pub association_id: Option<u16>,
1006 pub association_ies: Option<Vec<u8>>,
1008 #[doc(hidden)]
1009 pub __source_breaking: fidl::marker::SourceBreaking,
1010}
1011
1012impl fidl::Persistable for WlanFullmacImplIfcRoamConfRequest {}
1013
1014#[derive(Clone, Debug, Default, PartialEq)]
1015pub struct WlanFullmacImplIfcRoamResultIndRequest {
1016 pub selected_bssid: Option<[u8; 6]>,
1018 pub status_code: Option<fidl_fuchsia_wlan_ieee80211__common::StatusCode>,
1020 pub original_association_maintained: Option<bool>,
1025 pub target_bss_authenticated: Option<bool>,
1030 pub association_id: Option<u16>,
1032 pub association_ies: Option<Vec<u8>>,
1034 #[doc(hidden)]
1035 pub __source_breaking: fidl::marker::SourceBreaking,
1036}
1037
1038impl fidl::Persistable for WlanFullmacImplIfcRoamResultIndRequest {}
1039
1040#[derive(Clone, Debug, Default, PartialEq)]
1041pub struct WlanFullmacImplIfcRoamStartIndRequest {
1042 pub selected_bssid: Option<[u8; 6]>,
1044 pub selected_bss: Option<fidl_fuchsia_wlan_common__common::BssDescription>,
1048 pub original_association_maintained: Option<bool>,
1056 #[doc(hidden)]
1057 pub __source_breaking: fidl::marker::SourceBreaking,
1058}
1059
1060impl fidl::Persistable for WlanFullmacImplIfcRoamStartIndRequest {}
1061
1062#[derive(Clone, Debug, Default, PartialEq)]
1063pub struct WlanFullmacImplIfcSaeHandshakeIndRequest {
1064 pub peer_sta_address: Option<[u8; 6]>,
1065 #[doc(hidden)]
1066 pub __source_breaking: fidl::marker::SourceBreaking,
1067}
1068
1069impl fidl::Persistable for WlanFullmacImplIfcSaeHandshakeIndRequest {}
1070
1071#[derive(Clone, Debug, Default, PartialEq)]
1072pub struct WlanFullmacImplIfcStartConfRequest {
1073 pub result_code: Option<StartResult>,
1075 #[doc(hidden)]
1076 pub __source_breaking: fidl::marker::SourceBreaking,
1077}
1078
1079impl fidl::Persistable for WlanFullmacImplIfcStartConfRequest {}
1080
1081#[derive(Clone, Debug, Default, PartialEq)]
1082pub struct WlanFullmacImplIfcStopConfRequest {
1083 pub result_code: Option<StopResult>,
1085 #[doc(hidden)]
1086 pub __source_breaking: fidl::marker::SourceBreaking,
1087}
1088
1089impl fidl::Persistable for WlanFullmacImplIfcStopConfRequest {}
1090
1091#[derive(Clone, Debug, Default, PartialEq)]
1092pub struct WlanFullmacImplOnLinkStateChangedRequest {
1093 pub online: Option<bool>,
1094 #[doc(hidden)]
1095 pub __source_breaking: fidl::marker::SourceBreaking,
1096}
1097
1098impl fidl::Persistable for WlanFullmacImplOnLinkStateChangedRequest {}
1099
1100#[derive(Clone, Debug, Default, PartialEq)]
1101pub struct WlanFullmacImplReconnectRequest {
1102 pub peer_sta_address: Option<[u8; 6]>,
1103 #[doc(hidden)]
1104 pub __source_breaking: fidl::marker::SourceBreaking,
1105}
1106
1107impl fidl::Persistable for WlanFullmacImplReconnectRequest {}
1108
1109#[derive(Clone, Debug, Default, PartialEq)]
1110pub struct WlanFullmacImplRoamRequest {
1111 pub selected_bss: Option<fidl_fuchsia_wlan_common__common::BssDescription>,
1115 #[doc(hidden)]
1116 pub __source_breaking: fidl::marker::SourceBreaking,
1117}
1118
1119impl fidl::Persistable for WlanFullmacImplRoamRequest {}
1120
1121#[derive(Clone, Debug, Default, PartialEq)]
1122pub struct WlanFullmacImplSaeHandshakeRespRequest {
1123 pub peer_sta_address: Option<[u8; 6]>,
1125 pub status_code: Option<fidl_fuchsia_wlan_ieee80211__common::StatusCode>,
1127 #[doc(hidden)]
1128 pub __source_breaking: fidl::marker::SourceBreaking,
1129}
1130
1131impl fidl::Persistable for WlanFullmacImplSaeHandshakeRespRequest {}
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 WlanFullmacImplQueryResponse {
1201 pub sta_addr: Option<[u8; 6]>,
1203 pub role: Option<fidl_fuchsia_wlan_common__common::WlanMacRole>,
1205 pub band_caps: Option<Vec<BandCapability>>,
1207 pub factory_addr: Option<[u8; 6]>,
1209 #[doc(hidden)]
1210 pub __source_breaking: fidl::marker::SourceBreaking,
1211}
1212
1213impl fidl::Persistable for WlanFullmacImplQueryResponse {}
1214
1215pub mod wlan_fullmac_impl__ordinals {
1216 pub const INIT: u64 = 0x593dfb6cb3f0f1aa;
1217 pub const QUERY: u64 = 0x28ac65f9da3941d4;
1218 pub const QUERY_SECURITY_SUPPORT: u64 = 0x11cf3fa6eeb93f84;
1219 pub const QUERY_SPECTRUM_MANAGEMENT_SUPPORT: u64 = 0x22ae7551d855b83a;
1220 pub const QUERY_TELEMETRY_SUPPORT: u64 = 0x4561479ca560827f;
1221 pub const START_SCAN: u64 = 0x26c17bf595aa161c;
1222 pub const CONNECT: u64 = 0x19eb0322efb07a76;
1223 pub const RECONNECT: u64 = 0x474084c4ef19ee71;
1224 pub const ROAM: u64 = 0x1e35dcc98b124b64;
1225 pub const AUTH_RESP: u64 = 0x5f7ea24b44a4aaeb;
1226 pub const DEAUTH: u64 = 0x112786eccbf12f37;
1227 pub const ASSOC_RESP: u64 = 0x5022ce6b8eefec2f;
1228 pub const DISASSOC: u64 = 0x9c0fc4e8de53e01;
1229 pub const START_BSS: u64 = 0x6922644d6b1d341d;
1230 pub const STOP_BSS: u64 = 0x5aeb9b72e7575268;
1231 pub const SET_KEYS: u64 = 0x20f46b1e039f0985;
1232 pub const EAPOL_TX: u64 = 0x529a2d90fd4c8177;
1233 pub const GET_IFACE_STATS: u64 = 0x505563776ef0392f;
1234 pub const GET_IFACE_HISTOGRAM_STATS: u64 = 0x503d586f30ccf2cd;
1235 pub const GET_SIGNAL_REPORT: u64 = 0x5d93f056e4796bb3;
1236 pub const SAE_HANDSHAKE_RESP: u64 = 0x72cd3a31ae5a54f6;
1237 pub const SAE_FRAME_TX: u64 = 0x4715ad5dc5a6340f;
1238 pub const WMM_STATUS_REQ: u64 = 0x635ecef3beb7a059;
1239 pub const ON_LINK_STATE_CHANGED: u64 = 0x4d896e5b68e488d7;
1240 pub const SET_MAC_ADDRESS: u64 = 0x211a97f6f21ae5f0;
1241}
1242
1243pub mod wlan_fullmac_impl_ifc_ordinals {
1244 pub const ON_SCAN_RESULT: u64 = 0x29aa81dc570f7a3e;
1245 pub const ON_SCAN_END: u64 = 0x7cd8aff80d27073c;
1246 pub const CONNECT_CONF: u64 = 0x3c22c6d80b2a2759;
1247 pub const ROAM_CONF: u64 = 0x368b2a5b903b3f7b;
1248 pub const ROAM_START_IND: u64 = 0x23e1d9368935e7e4;
1249 pub const ROAM_RESULT_IND: u64 = 0x7081c1b1ceea4914;
1250 pub const AUTH_IND: u64 = 0x270e1f8889650d0b;
1251 pub const DEAUTH_CONF: u64 = 0x2c94b0d7258111b7;
1252 pub const DEAUTH_IND: u64 = 0x26cd27cdadd8dbaf;
1253 pub const ASSOC_IND: u64 = 0x3e44529e3dc179ce;
1254 pub const DISASSOC_CONF: u64 = 0x7c713bcd58a76cb3;
1255 pub const DISASSOC_IND: u64 = 0x6667b381b7f3990f;
1256 pub const START_CONF: u64 = 0x3e9b9641f3ddc7fc;
1257 pub const STOP_CONF: u64 = 0x320a5ff227a4e9df;
1258 pub const EAPOL_CONF: u64 = 0x77364db9cc3970ec;
1259 pub const ON_CHANNEL_SWITCH: u64 = 0x21db0b8f71cae647;
1260 pub const SIGNAL_REPORT: u64 = 0x79679fa8789c3d9f;
1261 pub const EAPOL_IND: u64 = 0x3de8ec1eda10d1d0;
1262 pub const ON_PMK_AVAILABLE: u64 = 0x5cedd8d9be28a17e;
1263 pub const SAE_HANDSHAKE_IND: u64 = 0x4f3d53885503a1d8;
1264 pub const SAE_FRAME_RX: u64 = 0x51650906857ed4d4;
1265 pub const ON_WMM_STATUS_RESP: u64 = 0x6823a88bf3ba8b2a;
1266}
1267
1268mod internal {
1269 use super::*;
1270 unsafe impl fidl::encoding::TypeMarker for EapolTxResult {
1271 type Owned = Self;
1272
1273 #[inline(always)]
1274 fn inline_align(_context: fidl::encoding::Context) -> usize {
1275 std::mem::align_of::<u8>()
1276 }
1277
1278 #[inline(always)]
1279 fn inline_size(_context: fidl::encoding::Context) -> usize {
1280 std::mem::size_of::<u8>()
1281 }
1282
1283 #[inline(always)]
1284 fn encode_is_copy() -> bool {
1285 false
1286 }
1287
1288 #[inline(always)]
1289 fn decode_is_copy() -> bool {
1290 false
1291 }
1292 }
1293
1294 impl fidl::encoding::ValueTypeMarker for EapolTxResult {
1295 type Borrowed<'a> = Self;
1296 #[inline(always)]
1297 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1298 *value
1299 }
1300 }
1301
1302 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for EapolTxResult {
1303 #[inline]
1304 unsafe fn encode(
1305 self,
1306 encoder: &mut fidl::encoding::Encoder<'_, D>,
1307 offset: usize,
1308 _depth: fidl::encoding::Depth,
1309 ) -> fidl::Result<()> {
1310 encoder.debug_check_bounds::<Self>(offset);
1311 encoder.write_num(self.into_primitive(), offset);
1312 Ok(())
1313 }
1314 }
1315
1316 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for EapolTxResult {
1317 #[inline(always)]
1318 fn new_empty() -> Self {
1319 Self::unknown()
1320 }
1321
1322 #[inline]
1323 unsafe fn decode(
1324 &mut self,
1325 decoder: &mut fidl::encoding::Decoder<'_, D>,
1326 offset: usize,
1327 _depth: fidl::encoding::Depth,
1328 ) -> fidl::Result<()> {
1329 decoder.debug_check_bounds::<Self>(offset);
1330 let prim = decoder.read_num::<u8>(offset);
1331
1332 *self = Self::from_primitive_allow_unknown(prim);
1333 Ok(())
1334 }
1335 }
1336 unsafe impl fidl::encoding::TypeMarker for StartResult {
1337 type Owned = Self;
1338
1339 #[inline(always)]
1340 fn inline_align(_context: fidl::encoding::Context) -> usize {
1341 std::mem::align_of::<u8>()
1342 }
1343
1344 #[inline(always)]
1345 fn inline_size(_context: fidl::encoding::Context) -> usize {
1346 std::mem::size_of::<u8>()
1347 }
1348
1349 #[inline(always)]
1350 fn encode_is_copy() -> bool {
1351 false
1352 }
1353
1354 #[inline(always)]
1355 fn decode_is_copy() -> bool {
1356 false
1357 }
1358 }
1359
1360 impl fidl::encoding::ValueTypeMarker for StartResult {
1361 type Borrowed<'a> = Self;
1362 #[inline(always)]
1363 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1364 *value
1365 }
1366 }
1367
1368 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for StartResult {
1369 #[inline]
1370 unsafe fn encode(
1371 self,
1372 encoder: &mut fidl::encoding::Encoder<'_, D>,
1373 offset: usize,
1374 _depth: fidl::encoding::Depth,
1375 ) -> fidl::Result<()> {
1376 encoder.debug_check_bounds::<Self>(offset);
1377 encoder.write_num(self.into_primitive(), offset);
1378 Ok(())
1379 }
1380 }
1381
1382 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for StartResult {
1383 #[inline(always)]
1384 fn new_empty() -> Self {
1385 Self::unknown()
1386 }
1387
1388 #[inline]
1389 unsafe fn decode(
1390 &mut self,
1391 decoder: &mut fidl::encoding::Decoder<'_, D>,
1392 offset: usize,
1393 _depth: fidl::encoding::Depth,
1394 ) -> fidl::Result<()> {
1395 decoder.debug_check_bounds::<Self>(offset);
1396 let prim = decoder.read_num::<u8>(offset);
1397
1398 *self = Self::from_primitive_allow_unknown(prim);
1399 Ok(())
1400 }
1401 }
1402 unsafe impl fidl::encoding::TypeMarker for StopResult {
1403 type Owned = Self;
1404
1405 #[inline(always)]
1406 fn inline_align(_context: fidl::encoding::Context) -> usize {
1407 std::mem::align_of::<u8>()
1408 }
1409
1410 #[inline(always)]
1411 fn inline_size(_context: fidl::encoding::Context) -> usize {
1412 std::mem::size_of::<u8>()
1413 }
1414
1415 #[inline(always)]
1416 fn encode_is_copy() -> bool {
1417 false
1418 }
1419
1420 #[inline(always)]
1421 fn decode_is_copy() -> bool {
1422 false
1423 }
1424 }
1425
1426 impl fidl::encoding::ValueTypeMarker for StopResult {
1427 type Borrowed<'a> = Self;
1428 #[inline(always)]
1429 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1430 *value
1431 }
1432 }
1433
1434 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for StopResult {
1435 #[inline]
1436 unsafe fn encode(
1437 self,
1438 encoder: &mut fidl::encoding::Encoder<'_, D>,
1439 offset: usize,
1440 _depth: fidl::encoding::Depth,
1441 ) -> fidl::Result<()> {
1442 encoder.debug_check_bounds::<Self>(offset);
1443 encoder.write_num(self.into_primitive(), offset);
1444 Ok(())
1445 }
1446 }
1447
1448 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for StopResult {
1449 #[inline(always)]
1450 fn new_empty() -> Self {
1451 Self::unknown()
1452 }
1453
1454 #[inline]
1455 unsafe fn decode(
1456 &mut self,
1457 decoder: &mut fidl::encoding::Decoder<'_, D>,
1458 offset: usize,
1459 _depth: fidl::encoding::Depth,
1460 ) -> fidl::Result<()> {
1461 decoder.debug_check_bounds::<Self>(offset);
1462 let prim = decoder.read_num::<u8>(offset);
1463
1464 *self = Self::from_primitive_allow_unknown(prim);
1465 Ok(())
1466 }
1467 }
1468 unsafe impl fidl::encoding::TypeMarker for WlanAssocResult {
1469 type Owned = Self;
1470
1471 #[inline(always)]
1472 fn inline_align(_context: fidl::encoding::Context) -> usize {
1473 std::mem::align_of::<u8>()
1474 }
1475
1476 #[inline(always)]
1477 fn inline_size(_context: fidl::encoding::Context) -> usize {
1478 std::mem::size_of::<u8>()
1479 }
1480
1481 #[inline(always)]
1482 fn encode_is_copy() -> bool {
1483 false
1484 }
1485
1486 #[inline(always)]
1487 fn decode_is_copy() -> bool {
1488 false
1489 }
1490 }
1491
1492 impl fidl::encoding::ValueTypeMarker for WlanAssocResult {
1493 type Borrowed<'a> = Self;
1494 #[inline(always)]
1495 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1496 *value
1497 }
1498 }
1499
1500 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
1501 for WlanAssocResult
1502 {
1503 #[inline]
1504 unsafe fn encode(
1505 self,
1506 encoder: &mut fidl::encoding::Encoder<'_, D>,
1507 offset: usize,
1508 _depth: fidl::encoding::Depth,
1509 ) -> fidl::Result<()> {
1510 encoder.debug_check_bounds::<Self>(offset);
1511 encoder.write_num(self.into_primitive(), offset);
1512 Ok(())
1513 }
1514 }
1515
1516 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for WlanAssocResult {
1517 #[inline(always)]
1518 fn new_empty() -> Self {
1519 Self::unknown()
1520 }
1521
1522 #[inline]
1523 unsafe fn decode(
1524 &mut self,
1525 decoder: &mut fidl::encoding::Decoder<'_, D>,
1526 offset: usize,
1527 _depth: fidl::encoding::Depth,
1528 ) -> fidl::Result<()> {
1529 decoder.debug_check_bounds::<Self>(offset);
1530 let prim = decoder.read_num::<u8>(offset);
1531
1532 *self = Self::from_primitive_allow_unknown(prim);
1533 Ok(())
1534 }
1535 }
1536 unsafe impl fidl::encoding::TypeMarker for WlanAuthResult {
1537 type Owned = Self;
1538
1539 #[inline(always)]
1540 fn inline_align(_context: fidl::encoding::Context) -> usize {
1541 std::mem::align_of::<u8>()
1542 }
1543
1544 #[inline(always)]
1545 fn inline_size(_context: fidl::encoding::Context) -> usize {
1546 std::mem::size_of::<u8>()
1547 }
1548
1549 #[inline(always)]
1550 fn encode_is_copy() -> bool {
1551 false
1552 }
1553
1554 #[inline(always)]
1555 fn decode_is_copy() -> bool {
1556 false
1557 }
1558 }
1559
1560 impl fidl::encoding::ValueTypeMarker for WlanAuthResult {
1561 type Borrowed<'a> = Self;
1562 #[inline(always)]
1563 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1564 *value
1565 }
1566 }
1567
1568 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for WlanAuthResult {
1569 #[inline]
1570 unsafe fn encode(
1571 self,
1572 encoder: &mut fidl::encoding::Encoder<'_, D>,
1573 offset: usize,
1574 _depth: fidl::encoding::Depth,
1575 ) -> fidl::Result<()> {
1576 encoder.debug_check_bounds::<Self>(offset);
1577 encoder.write_num(self.into_primitive(), offset);
1578 Ok(())
1579 }
1580 }
1581
1582 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for WlanAuthResult {
1583 #[inline(always)]
1584 fn new_empty() -> Self {
1585 Self::unknown()
1586 }
1587
1588 #[inline]
1589 unsafe fn decode(
1590 &mut self,
1591 decoder: &mut fidl::encoding::Decoder<'_, D>,
1592 offset: usize,
1593 _depth: fidl::encoding::Depth,
1594 ) -> fidl::Result<()> {
1595 decoder.debug_check_bounds::<Self>(offset);
1596 let prim = decoder.read_num::<u8>(offset);
1597
1598 *self = Self::from_primitive_allow_unknown(prim);
1599 Ok(())
1600 }
1601 }
1602 unsafe impl fidl::encoding::TypeMarker for WlanAuthType {
1603 type Owned = Self;
1604
1605 #[inline(always)]
1606 fn inline_align(_context: fidl::encoding::Context) -> usize {
1607 std::mem::align_of::<u8>()
1608 }
1609
1610 #[inline(always)]
1611 fn inline_size(_context: fidl::encoding::Context) -> usize {
1612 std::mem::size_of::<u8>()
1613 }
1614
1615 #[inline(always)]
1616 fn encode_is_copy() -> bool {
1617 false
1618 }
1619
1620 #[inline(always)]
1621 fn decode_is_copy() -> bool {
1622 false
1623 }
1624 }
1625
1626 impl fidl::encoding::ValueTypeMarker for WlanAuthType {
1627 type Borrowed<'a> = Self;
1628 #[inline(always)]
1629 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1630 *value
1631 }
1632 }
1633
1634 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for WlanAuthType {
1635 #[inline]
1636 unsafe fn encode(
1637 self,
1638 encoder: &mut fidl::encoding::Encoder<'_, D>,
1639 offset: usize,
1640 _depth: fidl::encoding::Depth,
1641 ) -> fidl::Result<()> {
1642 encoder.debug_check_bounds::<Self>(offset);
1643 encoder.write_num(self.into_primitive(), offset);
1644 Ok(())
1645 }
1646 }
1647
1648 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for WlanAuthType {
1649 #[inline(always)]
1650 fn new_empty() -> Self {
1651 Self::unknown()
1652 }
1653
1654 #[inline]
1655 unsafe fn decode(
1656 &mut self,
1657 decoder: &mut fidl::encoding::Decoder<'_, D>,
1658 offset: usize,
1659 _depth: fidl::encoding::Depth,
1660 ) -> fidl::Result<()> {
1661 decoder.debug_check_bounds::<Self>(offset);
1662 let prim = decoder.read_num::<u8>(offset);
1663
1664 *self = Self::from_primitive_allow_unknown(prim);
1665 Ok(())
1666 }
1667 }
1668 unsafe impl fidl::encoding::TypeMarker for WlanScanResult {
1669 type Owned = Self;
1670
1671 #[inline(always)]
1672 fn inline_align(_context: fidl::encoding::Context) -> usize {
1673 std::mem::align_of::<u8>()
1674 }
1675
1676 #[inline(always)]
1677 fn inline_size(_context: fidl::encoding::Context) -> usize {
1678 std::mem::size_of::<u8>()
1679 }
1680
1681 #[inline(always)]
1682 fn encode_is_copy() -> bool {
1683 false
1684 }
1685
1686 #[inline(always)]
1687 fn decode_is_copy() -> bool {
1688 false
1689 }
1690 }
1691
1692 impl fidl::encoding::ValueTypeMarker for WlanScanResult {
1693 type Borrowed<'a> = Self;
1694 #[inline(always)]
1695 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1696 *value
1697 }
1698 }
1699
1700 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for WlanScanResult {
1701 #[inline]
1702 unsafe fn encode(
1703 self,
1704 encoder: &mut fidl::encoding::Encoder<'_, D>,
1705 offset: usize,
1706 _depth: fidl::encoding::Depth,
1707 ) -> fidl::Result<()> {
1708 encoder.debug_check_bounds::<Self>(offset);
1709 encoder.write_num(self.into_primitive(), offset);
1710 Ok(())
1711 }
1712 }
1713
1714 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for WlanScanResult {
1715 #[inline(always)]
1716 fn new_empty() -> Self {
1717 Self::unknown()
1718 }
1719
1720 #[inline]
1721 unsafe fn decode(
1722 &mut self,
1723 decoder: &mut fidl::encoding::Decoder<'_, D>,
1724 offset: usize,
1725 _depth: fidl::encoding::Depth,
1726 ) -> fidl::Result<()> {
1727 decoder.debug_check_bounds::<Self>(offset);
1728 let prim = decoder.read_num::<u8>(offset);
1729
1730 *self = Self::from_primitive_allow_unknown(prim);
1731 Ok(())
1732 }
1733 }
1734 unsafe impl fidl::encoding::TypeMarker for WlanScanType {
1735 type Owned = Self;
1736
1737 #[inline(always)]
1738 fn inline_align(_context: fidl::encoding::Context) -> usize {
1739 std::mem::align_of::<u8>()
1740 }
1741
1742 #[inline(always)]
1743 fn inline_size(_context: fidl::encoding::Context) -> usize {
1744 std::mem::size_of::<u8>()
1745 }
1746
1747 #[inline(always)]
1748 fn encode_is_copy() -> bool {
1749 false
1750 }
1751
1752 #[inline(always)]
1753 fn decode_is_copy() -> bool {
1754 false
1755 }
1756 }
1757
1758 impl fidl::encoding::ValueTypeMarker for WlanScanType {
1759 type Borrowed<'a> = Self;
1760 #[inline(always)]
1761 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1762 *value
1763 }
1764 }
1765
1766 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for WlanScanType {
1767 #[inline]
1768 unsafe fn encode(
1769 self,
1770 encoder: &mut fidl::encoding::Encoder<'_, D>,
1771 offset: usize,
1772 _depth: fidl::encoding::Depth,
1773 ) -> fidl::Result<()> {
1774 encoder.debug_check_bounds::<Self>(offset);
1775 encoder.write_num(self.into_primitive(), offset);
1776 Ok(())
1777 }
1778 }
1779
1780 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for WlanScanType {
1781 #[inline(always)]
1782 fn new_empty() -> Self {
1783 Self::unknown()
1784 }
1785
1786 #[inline]
1787 unsafe fn decode(
1788 &mut self,
1789 decoder: &mut fidl::encoding::Decoder<'_, D>,
1790 offset: usize,
1791 _depth: fidl::encoding::Depth,
1792 ) -> fidl::Result<()> {
1793 decoder.debug_check_bounds::<Self>(offset);
1794 let prim = decoder.read_num::<u8>(offset);
1795
1796 *self = Self::from_primitive_allow_unknown(prim);
1797 Ok(())
1798 }
1799 }
1800
1801 impl fidl::encoding::ValueTypeMarker for WlanFullmacChannelSwitchInfo {
1802 type Borrowed<'a> = &'a Self;
1803 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1804 value
1805 }
1806 }
1807
1808 unsafe impl fidl::encoding::TypeMarker for WlanFullmacChannelSwitchInfo {
1809 type Owned = Self;
1810
1811 #[inline(always)]
1812 fn inline_align(_context: fidl::encoding::Context) -> usize {
1813 1
1814 }
1815
1816 #[inline(always)]
1817 fn inline_size(_context: fidl::encoding::Context) -> usize {
1818 1
1819 }
1820 #[inline(always)]
1821 fn encode_is_copy() -> bool {
1822 true
1823 }
1824
1825 #[inline(always)]
1826 fn decode_is_copy() -> bool {
1827 true
1828 }
1829 }
1830
1831 unsafe impl<D: fidl::encoding::ResourceDialect>
1832 fidl::encoding::Encode<WlanFullmacChannelSwitchInfo, D> for &WlanFullmacChannelSwitchInfo
1833 {
1834 #[inline]
1835 unsafe fn encode(
1836 self,
1837 encoder: &mut fidl::encoding::Encoder<'_, D>,
1838 offset: usize,
1839 _depth: fidl::encoding::Depth,
1840 ) -> fidl::Result<()> {
1841 encoder.debug_check_bounds::<WlanFullmacChannelSwitchInfo>(offset);
1842 unsafe {
1843 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
1845 (buf_ptr as *mut WlanFullmacChannelSwitchInfo)
1846 .write_unaligned((self as *const WlanFullmacChannelSwitchInfo).read());
1847 }
1850 Ok(())
1851 }
1852 }
1853 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<u8, D>>
1854 fidl::encoding::Encode<WlanFullmacChannelSwitchInfo, D> for (T0,)
1855 {
1856 #[inline]
1857 unsafe fn encode(
1858 self,
1859 encoder: &mut fidl::encoding::Encoder<'_, D>,
1860 offset: usize,
1861 depth: fidl::encoding::Depth,
1862 ) -> fidl::Result<()> {
1863 encoder.debug_check_bounds::<WlanFullmacChannelSwitchInfo>(offset);
1864 self.0.encode(encoder, offset + 0, depth)?;
1868 Ok(())
1869 }
1870 }
1871
1872 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1873 for WlanFullmacChannelSwitchInfo
1874 {
1875 #[inline(always)]
1876 fn new_empty() -> Self {
1877 Self { new_channel: fidl::new_empty!(u8, D) }
1878 }
1879
1880 #[inline]
1881 unsafe fn decode(
1882 &mut self,
1883 decoder: &mut fidl::encoding::Decoder<'_, D>,
1884 offset: usize,
1885 _depth: fidl::encoding::Depth,
1886 ) -> fidl::Result<()> {
1887 decoder.debug_check_bounds::<Self>(offset);
1888 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
1889 unsafe {
1892 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 1);
1893 }
1894 Ok(())
1895 }
1896 }
1897
1898 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcOnChannelSwitchRequest {
1899 type Borrowed<'a> = &'a Self;
1900 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1901 value
1902 }
1903 }
1904
1905 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcOnChannelSwitchRequest {
1906 type Owned = Self;
1907
1908 #[inline(always)]
1909 fn inline_align(_context: fidl::encoding::Context) -> usize {
1910 1
1911 }
1912
1913 #[inline(always)]
1914 fn inline_size(_context: fidl::encoding::Context) -> usize {
1915 1
1916 }
1917 #[inline(always)]
1918 fn encode_is_copy() -> bool {
1919 true
1920 }
1921
1922 #[inline(always)]
1923 fn decode_is_copy() -> bool {
1924 true
1925 }
1926 }
1927
1928 unsafe impl<D: fidl::encoding::ResourceDialect>
1929 fidl::encoding::Encode<WlanFullmacImplIfcOnChannelSwitchRequest, D>
1930 for &WlanFullmacImplIfcOnChannelSwitchRequest
1931 {
1932 #[inline]
1933 unsafe fn encode(
1934 self,
1935 encoder: &mut fidl::encoding::Encoder<'_, D>,
1936 offset: usize,
1937 _depth: fidl::encoding::Depth,
1938 ) -> fidl::Result<()> {
1939 encoder.debug_check_bounds::<WlanFullmacImplIfcOnChannelSwitchRequest>(offset);
1940 unsafe {
1941 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
1943 (buf_ptr as *mut WlanFullmacImplIfcOnChannelSwitchRequest).write_unaligned(
1944 (self as *const WlanFullmacImplIfcOnChannelSwitchRequest).read(),
1945 );
1946 }
1949 Ok(())
1950 }
1951 }
1952 unsafe impl<
1953 D: fidl::encoding::ResourceDialect,
1954 T0: fidl::encoding::Encode<WlanFullmacChannelSwitchInfo, D>,
1955 > fidl::encoding::Encode<WlanFullmacImplIfcOnChannelSwitchRequest, D> for (T0,)
1956 {
1957 #[inline]
1958 unsafe fn encode(
1959 self,
1960 encoder: &mut fidl::encoding::Encoder<'_, D>,
1961 offset: usize,
1962 depth: fidl::encoding::Depth,
1963 ) -> fidl::Result<()> {
1964 encoder.debug_check_bounds::<WlanFullmacImplIfcOnChannelSwitchRequest>(offset);
1965 self.0.encode(encoder, offset + 0, depth)?;
1969 Ok(())
1970 }
1971 }
1972
1973 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1974 for WlanFullmacImplIfcOnChannelSwitchRequest
1975 {
1976 #[inline(always)]
1977 fn new_empty() -> Self {
1978 Self { ind: fidl::new_empty!(WlanFullmacChannelSwitchInfo, D) }
1979 }
1980
1981 #[inline]
1982 unsafe fn decode(
1983 &mut self,
1984 decoder: &mut fidl::encoding::Decoder<'_, D>,
1985 offset: usize,
1986 _depth: fidl::encoding::Depth,
1987 ) -> fidl::Result<()> {
1988 decoder.debug_check_bounds::<Self>(offset);
1989 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
1990 unsafe {
1993 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 1);
1994 }
1995 Ok(())
1996 }
1997 }
1998
1999 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcOnWmmStatusRespRequest {
2000 type Borrowed<'a> = &'a Self;
2001 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2002 value
2003 }
2004 }
2005
2006 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcOnWmmStatusRespRequest {
2007 type Owned = Self;
2008
2009 #[inline(always)]
2010 fn inline_align(_context: fidl::encoding::Context) -> usize {
2011 4
2012 }
2013
2014 #[inline(always)]
2015 fn inline_size(_context: fidl::encoding::Context) -> usize {
2016 40
2017 }
2018 }
2019
2020 unsafe impl<D: fidl::encoding::ResourceDialect>
2021 fidl::encoding::Encode<WlanFullmacImplIfcOnWmmStatusRespRequest, D>
2022 for &WlanFullmacImplIfcOnWmmStatusRespRequest
2023 {
2024 #[inline]
2025 unsafe fn encode(
2026 self,
2027 encoder: &mut fidl::encoding::Encoder<'_, D>,
2028 offset: usize,
2029 _depth: fidl::encoding::Depth,
2030 ) -> fidl::Result<()> {
2031 encoder.debug_check_bounds::<WlanFullmacImplIfcOnWmmStatusRespRequest>(offset);
2032 fidl::encoding::Encode::<WlanFullmacImplIfcOnWmmStatusRespRequest, D>::encode(
2034 (
2035 <i32 as fidl::encoding::ValueTypeMarker>::borrow(&self.status),
2036 <fidl_fuchsia_wlan_common__common::WlanWmmParameters as fidl::encoding::ValueTypeMarker>::borrow(&self.wmm_params),
2037 ),
2038 encoder, offset, _depth
2039 )
2040 }
2041 }
2042 unsafe impl<
2043 D: fidl::encoding::ResourceDialect,
2044 T0: fidl::encoding::Encode<i32, D>,
2045 T1: fidl::encoding::Encode<fidl_fuchsia_wlan_common__common::WlanWmmParameters, D>,
2046 > fidl::encoding::Encode<WlanFullmacImplIfcOnWmmStatusRespRequest, D> for (T0, T1)
2047 {
2048 #[inline]
2049 unsafe fn encode(
2050 self,
2051 encoder: &mut fidl::encoding::Encoder<'_, D>,
2052 offset: usize,
2053 depth: fidl::encoding::Depth,
2054 ) -> fidl::Result<()> {
2055 encoder.debug_check_bounds::<WlanFullmacImplIfcOnWmmStatusRespRequest>(offset);
2056 unsafe {
2059 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(36);
2060 (ptr as *mut u32).write_unaligned(0);
2061 }
2062 self.0.encode(encoder, offset + 0, depth)?;
2064 self.1.encode(encoder, offset + 4, depth)?;
2065 Ok(())
2066 }
2067 }
2068
2069 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2070 for WlanFullmacImplIfcOnWmmStatusRespRequest
2071 {
2072 #[inline(always)]
2073 fn new_empty() -> Self {
2074 Self {
2075 status: fidl::new_empty!(i32, D),
2076 wmm_params: fidl::new_empty!(
2077 fidl_fuchsia_wlan_common__common::WlanWmmParameters,
2078 D
2079 ),
2080 }
2081 }
2082
2083 #[inline]
2084 unsafe fn decode(
2085 &mut self,
2086 decoder: &mut fidl::encoding::Decoder<'_, D>,
2087 offset: usize,
2088 _depth: fidl::encoding::Depth,
2089 ) -> fidl::Result<()> {
2090 decoder.debug_check_bounds::<Self>(offset);
2091 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(36) };
2093 let padval = unsafe { (ptr as *const u32).read_unaligned() };
2094 let mask = 0xffff0000u32;
2095 let maskedval = padval & mask;
2096 if maskedval != 0 {
2097 return Err(fidl::Error::NonZeroPadding {
2098 padding_start: offset + 36 + ((mask as u64).trailing_zeros() / 8) as usize,
2099 });
2100 }
2101 fidl::decode!(i32, D, &mut self.status, decoder, offset + 0, _depth)?;
2102 fidl::decode!(
2103 fidl_fuchsia_wlan_common__common::WlanWmmParameters,
2104 D,
2105 &mut self.wmm_params,
2106 decoder,
2107 offset + 4,
2108 _depth
2109 )?;
2110 Ok(())
2111 }
2112 }
2113
2114 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcSaeFrameRxRequest {
2115 type Borrowed<'a> = &'a Self;
2116 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2117 value
2118 }
2119 }
2120
2121 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcSaeFrameRxRequest {
2122 type Owned = Self;
2123
2124 #[inline(always)]
2125 fn inline_align(_context: fidl::encoding::Context) -> usize {
2126 8
2127 }
2128
2129 #[inline(always)]
2130 fn inline_size(_context: fidl::encoding::Context) -> usize {
2131 16
2132 }
2133 }
2134
2135 unsafe impl<D: fidl::encoding::ResourceDialect>
2136 fidl::encoding::Encode<WlanFullmacImplIfcSaeFrameRxRequest, D>
2137 for &WlanFullmacImplIfcSaeFrameRxRequest
2138 {
2139 #[inline]
2140 unsafe fn encode(
2141 self,
2142 encoder: &mut fidl::encoding::Encoder<'_, D>,
2143 offset: usize,
2144 _depth: fidl::encoding::Depth,
2145 ) -> fidl::Result<()> {
2146 encoder.debug_check_bounds::<WlanFullmacImplIfcSaeFrameRxRequest>(offset);
2147 fidl::encoding::Encode::<WlanFullmacImplIfcSaeFrameRxRequest, D>::encode(
2149 (<SaeFrame as fidl::encoding::ValueTypeMarker>::borrow(&self.frame),),
2150 encoder,
2151 offset,
2152 _depth,
2153 )
2154 }
2155 }
2156 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<SaeFrame, D>>
2157 fidl::encoding::Encode<WlanFullmacImplIfcSaeFrameRxRequest, D> for (T0,)
2158 {
2159 #[inline]
2160 unsafe fn encode(
2161 self,
2162 encoder: &mut fidl::encoding::Encoder<'_, D>,
2163 offset: usize,
2164 depth: fidl::encoding::Depth,
2165 ) -> fidl::Result<()> {
2166 encoder.debug_check_bounds::<WlanFullmacImplIfcSaeFrameRxRequest>(offset);
2167 self.0.encode(encoder, offset + 0, depth)?;
2171 Ok(())
2172 }
2173 }
2174
2175 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2176 for WlanFullmacImplIfcSaeFrameRxRequest
2177 {
2178 #[inline(always)]
2179 fn new_empty() -> Self {
2180 Self { frame: fidl::new_empty!(SaeFrame, D) }
2181 }
2182
2183 #[inline]
2184 unsafe fn decode(
2185 &mut self,
2186 decoder: &mut fidl::encoding::Decoder<'_, D>,
2187 offset: usize,
2188 _depth: fidl::encoding::Depth,
2189 ) -> fidl::Result<()> {
2190 decoder.debug_check_bounds::<Self>(offset);
2191 fidl::decode!(SaeFrame, D, &mut self.frame, decoder, offset + 0, _depth)?;
2193 Ok(())
2194 }
2195 }
2196
2197 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcSignalReportRequest {
2198 type Borrowed<'a> = &'a Self;
2199 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2200 value
2201 }
2202 }
2203
2204 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcSignalReportRequest {
2205 type Owned = Self;
2206
2207 #[inline(always)]
2208 fn inline_align(_context: fidl::encoding::Context) -> usize {
2209 1
2210 }
2211
2212 #[inline(always)]
2213 fn inline_size(_context: fidl::encoding::Context) -> usize {
2214 2
2215 }
2216 #[inline(always)]
2217 fn encode_is_copy() -> bool {
2218 true
2219 }
2220
2221 #[inline(always)]
2222 fn decode_is_copy() -> bool {
2223 true
2224 }
2225 }
2226
2227 unsafe impl<D: fidl::encoding::ResourceDialect>
2228 fidl::encoding::Encode<WlanFullmacImplIfcSignalReportRequest, D>
2229 for &WlanFullmacImplIfcSignalReportRequest
2230 {
2231 #[inline]
2232 unsafe fn encode(
2233 self,
2234 encoder: &mut fidl::encoding::Encoder<'_, D>,
2235 offset: usize,
2236 _depth: fidl::encoding::Depth,
2237 ) -> fidl::Result<()> {
2238 encoder.debug_check_bounds::<WlanFullmacImplIfcSignalReportRequest>(offset);
2239 unsafe {
2240 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
2242 (buf_ptr as *mut WlanFullmacImplIfcSignalReportRequest)
2243 .write_unaligned((self as *const WlanFullmacImplIfcSignalReportRequest).read());
2244 }
2247 Ok(())
2248 }
2249 }
2250 unsafe impl<
2251 D: fidl::encoding::ResourceDialect,
2252 T0: fidl::encoding::Encode<WlanFullmacSignalReportIndication, D>,
2253 > fidl::encoding::Encode<WlanFullmacImplIfcSignalReportRequest, D> for (T0,)
2254 {
2255 #[inline]
2256 unsafe fn encode(
2257 self,
2258 encoder: &mut fidl::encoding::Encoder<'_, D>,
2259 offset: usize,
2260 depth: fidl::encoding::Depth,
2261 ) -> fidl::Result<()> {
2262 encoder.debug_check_bounds::<WlanFullmacImplIfcSignalReportRequest>(offset);
2263 self.0.encode(encoder, offset + 0, depth)?;
2267 Ok(())
2268 }
2269 }
2270
2271 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2272 for WlanFullmacImplIfcSignalReportRequest
2273 {
2274 #[inline(always)]
2275 fn new_empty() -> Self {
2276 Self { ind: fidl::new_empty!(WlanFullmacSignalReportIndication, D) }
2277 }
2278
2279 #[inline]
2280 unsafe fn decode(
2281 &mut self,
2282 decoder: &mut fidl::encoding::Decoder<'_, D>,
2283 offset: usize,
2284 _depth: fidl::encoding::Depth,
2285 ) -> fidl::Result<()> {
2286 decoder.debug_check_bounds::<Self>(offset);
2287 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
2288 unsafe {
2291 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 2);
2292 }
2293 Ok(())
2294 }
2295 }
2296
2297 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplSaeFrameTxRequest {
2298 type Borrowed<'a> = &'a Self;
2299 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2300 value
2301 }
2302 }
2303
2304 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplSaeFrameTxRequest {
2305 type Owned = Self;
2306
2307 #[inline(always)]
2308 fn inline_align(_context: fidl::encoding::Context) -> usize {
2309 8
2310 }
2311
2312 #[inline(always)]
2313 fn inline_size(_context: fidl::encoding::Context) -> usize {
2314 16
2315 }
2316 }
2317
2318 unsafe impl<D: fidl::encoding::ResourceDialect>
2319 fidl::encoding::Encode<WlanFullmacImplSaeFrameTxRequest, D>
2320 for &WlanFullmacImplSaeFrameTxRequest
2321 {
2322 #[inline]
2323 unsafe fn encode(
2324 self,
2325 encoder: &mut fidl::encoding::Encoder<'_, D>,
2326 offset: usize,
2327 _depth: fidl::encoding::Depth,
2328 ) -> fidl::Result<()> {
2329 encoder.debug_check_bounds::<WlanFullmacImplSaeFrameTxRequest>(offset);
2330 fidl::encoding::Encode::<WlanFullmacImplSaeFrameTxRequest, D>::encode(
2332 (<SaeFrame as fidl::encoding::ValueTypeMarker>::borrow(&self.frame),),
2333 encoder,
2334 offset,
2335 _depth,
2336 )
2337 }
2338 }
2339 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<SaeFrame, D>>
2340 fidl::encoding::Encode<WlanFullmacImplSaeFrameTxRequest, D> for (T0,)
2341 {
2342 #[inline]
2343 unsafe fn encode(
2344 self,
2345 encoder: &mut fidl::encoding::Encoder<'_, D>,
2346 offset: usize,
2347 depth: fidl::encoding::Depth,
2348 ) -> fidl::Result<()> {
2349 encoder.debug_check_bounds::<WlanFullmacImplSaeFrameTxRequest>(offset);
2350 self.0.encode(encoder, offset + 0, depth)?;
2354 Ok(())
2355 }
2356 }
2357
2358 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2359 for WlanFullmacImplSaeFrameTxRequest
2360 {
2361 #[inline(always)]
2362 fn new_empty() -> Self {
2363 Self { frame: fidl::new_empty!(SaeFrame, D) }
2364 }
2365
2366 #[inline]
2367 unsafe fn decode(
2368 &mut self,
2369 decoder: &mut fidl::encoding::Decoder<'_, D>,
2370 offset: usize,
2371 _depth: fidl::encoding::Depth,
2372 ) -> fidl::Result<()> {
2373 decoder.debug_check_bounds::<Self>(offset);
2374 fidl::decode!(SaeFrame, D, &mut self.frame, decoder, offset + 0, _depth)?;
2376 Ok(())
2377 }
2378 }
2379
2380 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplSetKeysResponse {
2381 type Borrowed<'a> = &'a Self;
2382 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2383 value
2384 }
2385 }
2386
2387 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplSetKeysResponse {
2388 type Owned = Self;
2389
2390 #[inline(always)]
2391 fn inline_align(_context: fidl::encoding::Context) -> usize {
2392 8
2393 }
2394
2395 #[inline(always)]
2396 fn inline_size(_context: fidl::encoding::Context) -> usize {
2397 16
2398 }
2399 }
2400
2401 unsafe impl<D: fidl::encoding::ResourceDialect>
2402 fidl::encoding::Encode<WlanFullmacImplSetKeysResponse, D>
2403 for &WlanFullmacImplSetKeysResponse
2404 {
2405 #[inline]
2406 unsafe fn encode(
2407 self,
2408 encoder: &mut fidl::encoding::Encoder<'_, D>,
2409 offset: usize,
2410 _depth: fidl::encoding::Depth,
2411 ) -> fidl::Result<()> {
2412 encoder.debug_check_bounds::<WlanFullmacImplSetKeysResponse>(offset);
2413 fidl::encoding::Encode::<WlanFullmacImplSetKeysResponse, D>::encode(
2415 (<WlanFullmacSetKeysResp as fidl::encoding::ValueTypeMarker>::borrow(&self.resp),),
2416 encoder,
2417 offset,
2418 _depth,
2419 )
2420 }
2421 }
2422 unsafe impl<
2423 D: fidl::encoding::ResourceDialect,
2424 T0: fidl::encoding::Encode<WlanFullmacSetKeysResp, D>,
2425 > fidl::encoding::Encode<WlanFullmacImplSetKeysResponse, D> for (T0,)
2426 {
2427 #[inline]
2428 unsafe fn encode(
2429 self,
2430 encoder: &mut fidl::encoding::Encoder<'_, D>,
2431 offset: usize,
2432 depth: fidl::encoding::Depth,
2433 ) -> fidl::Result<()> {
2434 encoder.debug_check_bounds::<WlanFullmacImplSetKeysResponse>(offset);
2435 self.0.encode(encoder, offset + 0, depth)?;
2439 Ok(())
2440 }
2441 }
2442
2443 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2444 for WlanFullmacImplSetKeysResponse
2445 {
2446 #[inline(always)]
2447 fn new_empty() -> Self {
2448 Self { resp: fidl::new_empty!(WlanFullmacSetKeysResp, D) }
2449 }
2450
2451 #[inline]
2452 unsafe fn decode(
2453 &mut self,
2454 decoder: &mut fidl::encoding::Decoder<'_, D>,
2455 offset: usize,
2456 _depth: fidl::encoding::Depth,
2457 ) -> fidl::Result<()> {
2458 decoder.debug_check_bounds::<Self>(offset);
2459 fidl::decode!(WlanFullmacSetKeysResp, D, &mut self.resp, decoder, offset + 0, _depth)?;
2461 Ok(())
2462 }
2463 }
2464
2465 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplSetMacAddressRequest {
2466 type Borrowed<'a> = &'a Self;
2467 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2468 value
2469 }
2470 }
2471
2472 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplSetMacAddressRequest {
2473 type Owned = Self;
2474
2475 #[inline(always)]
2476 fn inline_align(_context: fidl::encoding::Context) -> usize {
2477 1
2478 }
2479
2480 #[inline(always)]
2481 fn inline_size(_context: fidl::encoding::Context) -> usize {
2482 6
2483 }
2484 #[inline(always)]
2485 fn encode_is_copy() -> bool {
2486 true
2487 }
2488
2489 #[inline(always)]
2490 fn decode_is_copy() -> bool {
2491 true
2492 }
2493 }
2494
2495 unsafe impl<D: fidl::encoding::ResourceDialect>
2496 fidl::encoding::Encode<WlanFullmacImplSetMacAddressRequest, D>
2497 for &WlanFullmacImplSetMacAddressRequest
2498 {
2499 #[inline]
2500 unsafe fn encode(
2501 self,
2502 encoder: &mut fidl::encoding::Encoder<'_, D>,
2503 offset: usize,
2504 _depth: fidl::encoding::Depth,
2505 ) -> fidl::Result<()> {
2506 encoder.debug_check_bounds::<WlanFullmacImplSetMacAddressRequest>(offset);
2507 unsafe {
2508 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
2510 (buf_ptr as *mut WlanFullmacImplSetMacAddressRequest)
2511 .write_unaligned((self as *const WlanFullmacImplSetMacAddressRequest).read());
2512 }
2515 Ok(())
2516 }
2517 }
2518 unsafe impl<
2519 D: fidl::encoding::ResourceDialect,
2520 T0: fidl::encoding::Encode<fidl::encoding::Array<u8, 6>, D>,
2521 > fidl::encoding::Encode<WlanFullmacImplSetMacAddressRequest, D> for (T0,)
2522 {
2523 #[inline]
2524 unsafe fn encode(
2525 self,
2526 encoder: &mut fidl::encoding::Encoder<'_, D>,
2527 offset: usize,
2528 depth: fidl::encoding::Depth,
2529 ) -> fidl::Result<()> {
2530 encoder.debug_check_bounds::<WlanFullmacImplSetMacAddressRequest>(offset);
2531 self.0.encode(encoder, offset + 0, depth)?;
2535 Ok(())
2536 }
2537 }
2538
2539 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2540 for WlanFullmacImplSetMacAddressRequest
2541 {
2542 #[inline(always)]
2543 fn new_empty() -> Self {
2544 Self { mac_addr: fidl::new_empty!(fidl::encoding::Array<u8, 6>, D) }
2545 }
2546
2547 #[inline]
2548 unsafe fn decode(
2549 &mut self,
2550 decoder: &mut fidl::encoding::Decoder<'_, D>,
2551 offset: usize,
2552 _depth: fidl::encoding::Depth,
2553 ) -> fidl::Result<()> {
2554 decoder.debug_check_bounds::<Self>(offset);
2555 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
2556 unsafe {
2559 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 6);
2560 }
2561 Ok(())
2562 }
2563 }
2564
2565 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplGetIfaceHistogramStatsResponse {
2566 type Borrowed<'a> = &'a Self;
2567 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2568 value
2569 }
2570 }
2571
2572 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplGetIfaceHistogramStatsResponse {
2573 type Owned = Self;
2574
2575 #[inline(always)]
2576 fn inline_align(_context: fidl::encoding::Context) -> usize {
2577 8
2578 }
2579
2580 #[inline(always)]
2581 fn inline_size(_context: fidl::encoding::Context) -> usize {
2582 16
2583 }
2584 }
2585
2586 unsafe impl<D: fidl::encoding::ResourceDialect>
2587 fidl::encoding::Encode<WlanFullmacImplGetIfaceHistogramStatsResponse, D>
2588 for &WlanFullmacImplGetIfaceHistogramStatsResponse
2589 {
2590 #[inline]
2591 unsafe fn encode(
2592 self,
2593 encoder: &mut fidl::encoding::Encoder<'_, D>,
2594 offset: usize,
2595 _depth: fidl::encoding::Depth,
2596 ) -> fidl::Result<()> {
2597 encoder.debug_check_bounds::<WlanFullmacImplGetIfaceHistogramStatsResponse>(offset);
2598 fidl::encoding::Encode::<WlanFullmacImplGetIfaceHistogramStatsResponse, D>::encode(
2600 (
2601 <fidl_fuchsia_wlan_stats__common::IfaceHistogramStats as fidl::encoding::ValueTypeMarker>::borrow(&self.stats),
2602 ),
2603 encoder, offset, _depth
2604 )
2605 }
2606 }
2607 unsafe impl<
2608 D: fidl::encoding::ResourceDialect,
2609 T0: fidl::encoding::Encode<fidl_fuchsia_wlan_stats__common::IfaceHistogramStats, D>,
2610 > fidl::encoding::Encode<WlanFullmacImplGetIfaceHistogramStatsResponse, D> for (T0,)
2611 {
2612 #[inline]
2613 unsafe fn encode(
2614 self,
2615 encoder: &mut fidl::encoding::Encoder<'_, D>,
2616 offset: usize,
2617 depth: fidl::encoding::Depth,
2618 ) -> fidl::Result<()> {
2619 encoder.debug_check_bounds::<WlanFullmacImplGetIfaceHistogramStatsResponse>(offset);
2620 self.0.encode(encoder, offset + 0, depth)?;
2624 Ok(())
2625 }
2626 }
2627
2628 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2629 for WlanFullmacImplGetIfaceHistogramStatsResponse
2630 {
2631 #[inline(always)]
2632 fn new_empty() -> Self {
2633 Self {
2634 stats: fidl::new_empty!(fidl_fuchsia_wlan_stats__common::IfaceHistogramStats, D),
2635 }
2636 }
2637
2638 #[inline]
2639 unsafe fn decode(
2640 &mut self,
2641 decoder: &mut fidl::encoding::Decoder<'_, D>,
2642 offset: usize,
2643 _depth: fidl::encoding::Depth,
2644 ) -> fidl::Result<()> {
2645 decoder.debug_check_bounds::<Self>(offset);
2646 fidl::decode!(
2648 fidl_fuchsia_wlan_stats__common::IfaceHistogramStats,
2649 D,
2650 &mut self.stats,
2651 decoder,
2652 offset + 0,
2653 _depth
2654 )?;
2655 Ok(())
2656 }
2657 }
2658
2659 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplGetIfaceStatsResponse {
2660 type Borrowed<'a> = &'a Self;
2661 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2662 value
2663 }
2664 }
2665
2666 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplGetIfaceStatsResponse {
2667 type Owned = Self;
2668
2669 #[inline(always)]
2670 fn inline_align(_context: fidl::encoding::Context) -> usize {
2671 8
2672 }
2673
2674 #[inline(always)]
2675 fn inline_size(_context: fidl::encoding::Context) -> usize {
2676 16
2677 }
2678 }
2679
2680 unsafe impl<D: fidl::encoding::ResourceDialect>
2681 fidl::encoding::Encode<WlanFullmacImplGetIfaceStatsResponse, D>
2682 for &WlanFullmacImplGetIfaceStatsResponse
2683 {
2684 #[inline]
2685 unsafe fn encode(
2686 self,
2687 encoder: &mut fidl::encoding::Encoder<'_, D>,
2688 offset: usize,
2689 _depth: fidl::encoding::Depth,
2690 ) -> fidl::Result<()> {
2691 encoder.debug_check_bounds::<WlanFullmacImplGetIfaceStatsResponse>(offset);
2692 fidl::encoding::Encode::<WlanFullmacImplGetIfaceStatsResponse, D>::encode(
2694 (
2695 <fidl_fuchsia_wlan_stats__common::IfaceStats as fidl::encoding::ValueTypeMarker>::borrow(&self.stats),
2696 ),
2697 encoder, offset, _depth
2698 )
2699 }
2700 }
2701 unsafe impl<
2702 D: fidl::encoding::ResourceDialect,
2703 T0: fidl::encoding::Encode<fidl_fuchsia_wlan_stats__common::IfaceStats, D>,
2704 > fidl::encoding::Encode<WlanFullmacImplGetIfaceStatsResponse, D> for (T0,)
2705 {
2706 #[inline]
2707 unsafe fn encode(
2708 self,
2709 encoder: &mut fidl::encoding::Encoder<'_, D>,
2710 offset: usize,
2711 depth: fidl::encoding::Depth,
2712 ) -> fidl::Result<()> {
2713 encoder.debug_check_bounds::<WlanFullmacImplGetIfaceStatsResponse>(offset);
2714 self.0.encode(encoder, offset + 0, depth)?;
2718 Ok(())
2719 }
2720 }
2721
2722 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2723 for WlanFullmacImplGetIfaceStatsResponse
2724 {
2725 #[inline(always)]
2726 fn new_empty() -> Self {
2727 Self { stats: fidl::new_empty!(fidl_fuchsia_wlan_stats__common::IfaceStats, D) }
2728 }
2729
2730 #[inline]
2731 unsafe fn decode(
2732 &mut self,
2733 decoder: &mut fidl::encoding::Decoder<'_, D>,
2734 offset: usize,
2735 _depth: fidl::encoding::Depth,
2736 ) -> fidl::Result<()> {
2737 decoder.debug_check_bounds::<Self>(offset);
2738 fidl::decode!(
2740 fidl_fuchsia_wlan_stats__common::IfaceStats,
2741 D,
2742 &mut self.stats,
2743 decoder,
2744 offset + 0,
2745 _depth
2746 )?;
2747 Ok(())
2748 }
2749 }
2750
2751 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplQuerySecuritySupportResponse {
2752 type Borrowed<'a> = &'a Self;
2753 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2754 value
2755 }
2756 }
2757
2758 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplQuerySecuritySupportResponse {
2759 type Owned = Self;
2760
2761 #[inline(always)]
2762 fn inline_align(_context: fidl::encoding::Context) -> usize {
2763 1
2764 }
2765
2766 #[inline(always)]
2767 fn inline_size(_context: fidl::encoding::Context) -> usize {
2768 3
2769 }
2770 }
2771
2772 unsafe impl<D: fidl::encoding::ResourceDialect>
2773 fidl::encoding::Encode<WlanFullmacImplQuerySecuritySupportResponse, D>
2774 for &WlanFullmacImplQuerySecuritySupportResponse
2775 {
2776 #[inline]
2777 unsafe fn encode(
2778 self,
2779 encoder: &mut fidl::encoding::Encoder<'_, D>,
2780 offset: usize,
2781 _depth: fidl::encoding::Depth,
2782 ) -> fidl::Result<()> {
2783 encoder.debug_check_bounds::<WlanFullmacImplQuerySecuritySupportResponse>(offset);
2784 fidl::encoding::Encode::<WlanFullmacImplQuerySecuritySupportResponse, D>::encode(
2786 (
2787 <fidl_fuchsia_wlan_common__common::SecuritySupport as fidl::encoding::ValueTypeMarker>::borrow(&self.resp),
2788 ),
2789 encoder, offset, _depth
2790 )
2791 }
2792 }
2793 unsafe impl<
2794 D: fidl::encoding::ResourceDialect,
2795 T0: fidl::encoding::Encode<fidl_fuchsia_wlan_common__common::SecuritySupport, D>,
2796 > fidl::encoding::Encode<WlanFullmacImplQuerySecuritySupportResponse, D> for (T0,)
2797 {
2798 #[inline]
2799 unsafe fn encode(
2800 self,
2801 encoder: &mut fidl::encoding::Encoder<'_, D>,
2802 offset: usize,
2803 depth: fidl::encoding::Depth,
2804 ) -> fidl::Result<()> {
2805 encoder.debug_check_bounds::<WlanFullmacImplQuerySecuritySupportResponse>(offset);
2806 self.0.encode(encoder, offset + 0, depth)?;
2810 Ok(())
2811 }
2812 }
2813
2814 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2815 for WlanFullmacImplQuerySecuritySupportResponse
2816 {
2817 #[inline(always)]
2818 fn new_empty() -> Self {
2819 Self { resp: fidl::new_empty!(fidl_fuchsia_wlan_common__common::SecuritySupport, D) }
2820 }
2821
2822 #[inline]
2823 unsafe fn decode(
2824 &mut self,
2825 decoder: &mut fidl::encoding::Decoder<'_, D>,
2826 offset: usize,
2827 _depth: fidl::encoding::Depth,
2828 ) -> fidl::Result<()> {
2829 decoder.debug_check_bounds::<Self>(offset);
2830 fidl::decode!(
2832 fidl_fuchsia_wlan_common__common::SecuritySupport,
2833 D,
2834 &mut self.resp,
2835 decoder,
2836 offset + 0,
2837 _depth
2838 )?;
2839 Ok(())
2840 }
2841 }
2842
2843 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplQuerySpectrumManagementSupportResponse {
2844 type Borrowed<'a> = &'a Self;
2845 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2846 value
2847 }
2848 }
2849
2850 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplQuerySpectrumManagementSupportResponse {
2851 type Owned = Self;
2852
2853 #[inline(always)]
2854 fn inline_align(_context: fidl::encoding::Context) -> usize {
2855 1
2856 }
2857
2858 #[inline(always)]
2859 fn inline_size(_context: fidl::encoding::Context) -> usize {
2860 1
2861 }
2862 }
2863
2864 unsafe impl<D: fidl::encoding::ResourceDialect>
2865 fidl::encoding::Encode<WlanFullmacImplQuerySpectrumManagementSupportResponse, D>
2866 for &WlanFullmacImplQuerySpectrumManagementSupportResponse
2867 {
2868 #[inline]
2869 unsafe fn encode(
2870 self,
2871 encoder: &mut fidl::encoding::Encoder<'_, D>,
2872 offset: usize,
2873 _depth: fidl::encoding::Depth,
2874 ) -> fidl::Result<()> {
2875 encoder.debug_check_bounds::<WlanFullmacImplQuerySpectrumManagementSupportResponse>(
2876 offset,
2877 );
2878 fidl::encoding::Encode::<WlanFullmacImplQuerySpectrumManagementSupportResponse, D>::encode(
2880 (
2881 <fidl_fuchsia_wlan_common__common::SpectrumManagementSupport as fidl::encoding::ValueTypeMarker>::borrow(&self.resp),
2882 ),
2883 encoder, offset, _depth
2884 )
2885 }
2886 }
2887 unsafe impl<
2888 D: fidl::encoding::ResourceDialect,
2889 T0: fidl::encoding::Encode<fidl_fuchsia_wlan_common__common::SpectrumManagementSupport, D>,
2890 > fidl::encoding::Encode<WlanFullmacImplQuerySpectrumManagementSupportResponse, D> for (T0,)
2891 {
2892 #[inline]
2893 unsafe fn encode(
2894 self,
2895 encoder: &mut fidl::encoding::Encoder<'_, D>,
2896 offset: usize,
2897 depth: fidl::encoding::Depth,
2898 ) -> fidl::Result<()> {
2899 encoder.debug_check_bounds::<WlanFullmacImplQuerySpectrumManagementSupportResponse>(
2900 offset,
2901 );
2902 self.0.encode(encoder, offset + 0, depth)?;
2906 Ok(())
2907 }
2908 }
2909
2910 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2911 for WlanFullmacImplQuerySpectrumManagementSupportResponse
2912 {
2913 #[inline(always)]
2914 fn new_empty() -> Self {
2915 Self {
2916 resp: fidl::new_empty!(
2917 fidl_fuchsia_wlan_common__common::SpectrumManagementSupport,
2918 D
2919 ),
2920 }
2921 }
2922
2923 #[inline]
2924 unsafe fn decode(
2925 &mut self,
2926 decoder: &mut fidl::encoding::Decoder<'_, D>,
2927 offset: usize,
2928 _depth: fidl::encoding::Depth,
2929 ) -> fidl::Result<()> {
2930 decoder.debug_check_bounds::<Self>(offset);
2931 fidl::decode!(
2933 fidl_fuchsia_wlan_common__common::SpectrumManagementSupport,
2934 D,
2935 &mut self.resp,
2936 decoder,
2937 offset + 0,
2938 _depth
2939 )?;
2940 Ok(())
2941 }
2942 }
2943
2944 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplQueryTelemetrySupportResponse {
2945 type Borrowed<'a> = &'a Self;
2946 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2947 value
2948 }
2949 }
2950
2951 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplQueryTelemetrySupportResponse {
2952 type Owned = Self;
2953
2954 #[inline(always)]
2955 fn inline_align(_context: fidl::encoding::Context) -> usize {
2956 8
2957 }
2958
2959 #[inline(always)]
2960 fn inline_size(_context: fidl::encoding::Context) -> usize {
2961 16
2962 }
2963 }
2964
2965 unsafe impl<D: fidl::encoding::ResourceDialect>
2966 fidl::encoding::Encode<WlanFullmacImplQueryTelemetrySupportResponse, D>
2967 for &WlanFullmacImplQueryTelemetrySupportResponse
2968 {
2969 #[inline]
2970 unsafe fn encode(
2971 self,
2972 encoder: &mut fidl::encoding::Encoder<'_, D>,
2973 offset: usize,
2974 _depth: fidl::encoding::Depth,
2975 ) -> fidl::Result<()> {
2976 encoder.debug_check_bounds::<WlanFullmacImplQueryTelemetrySupportResponse>(offset);
2977 fidl::encoding::Encode::<WlanFullmacImplQueryTelemetrySupportResponse, D>::encode(
2979 (
2980 <fidl_fuchsia_wlan_stats__common::TelemetrySupport as fidl::encoding::ValueTypeMarker>::borrow(&self.resp),
2981 ),
2982 encoder, offset, _depth
2983 )
2984 }
2985 }
2986 unsafe impl<
2987 D: fidl::encoding::ResourceDialect,
2988 T0: fidl::encoding::Encode<fidl_fuchsia_wlan_stats__common::TelemetrySupport, D>,
2989 > fidl::encoding::Encode<WlanFullmacImplQueryTelemetrySupportResponse, D> for (T0,)
2990 {
2991 #[inline]
2992 unsafe fn encode(
2993 self,
2994 encoder: &mut fidl::encoding::Encoder<'_, D>,
2995 offset: usize,
2996 depth: fidl::encoding::Depth,
2997 ) -> fidl::Result<()> {
2998 encoder.debug_check_bounds::<WlanFullmacImplQueryTelemetrySupportResponse>(offset);
2999 self.0.encode(encoder, offset + 0, depth)?;
3003 Ok(())
3004 }
3005 }
3006
3007 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
3008 for WlanFullmacImplQueryTelemetrySupportResponse
3009 {
3010 #[inline(always)]
3011 fn new_empty() -> Self {
3012 Self { resp: fidl::new_empty!(fidl_fuchsia_wlan_stats__common::TelemetrySupport, D) }
3013 }
3014
3015 #[inline]
3016 unsafe fn decode(
3017 &mut self,
3018 decoder: &mut fidl::encoding::Decoder<'_, D>,
3019 offset: usize,
3020 _depth: fidl::encoding::Depth,
3021 ) -> fidl::Result<()> {
3022 decoder.debug_check_bounds::<Self>(offset);
3023 fidl::decode!(
3025 fidl_fuchsia_wlan_stats__common::TelemetrySupport,
3026 D,
3027 &mut self.resp,
3028 decoder,
3029 offset + 0,
3030 _depth
3031 )?;
3032 Ok(())
3033 }
3034 }
3035
3036 impl fidl::encoding::ValueTypeMarker for WlanFullmacRssiStats {
3037 type Borrowed<'a> = &'a Self;
3038 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3039 value
3040 }
3041 }
3042
3043 unsafe impl fidl::encoding::TypeMarker for WlanFullmacRssiStats {
3044 type Owned = Self;
3045
3046 #[inline(always)]
3047 fn inline_align(_context: fidl::encoding::Context) -> usize {
3048 8
3049 }
3050
3051 #[inline(always)]
3052 fn inline_size(_context: fidl::encoding::Context) -> usize {
3053 16
3054 }
3055 }
3056
3057 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<WlanFullmacRssiStats, D>
3058 for &WlanFullmacRssiStats
3059 {
3060 #[inline]
3061 unsafe fn encode(
3062 self,
3063 encoder: &mut fidl::encoding::Encoder<'_, D>,
3064 offset: usize,
3065 _depth: fidl::encoding::Depth,
3066 ) -> fidl::Result<()> {
3067 encoder.debug_check_bounds::<WlanFullmacRssiStats>(offset);
3068 fidl::encoding::Encode::<WlanFullmacRssiStats, D>::encode(
3070 (
3071 <fidl::encoding::UnboundedVector<u64> as fidl::encoding::ValueTypeMarker>::borrow(&self.hist),
3072 ),
3073 encoder, offset, _depth
3074 )
3075 }
3076 }
3077 unsafe impl<
3078 D: fidl::encoding::ResourceDialect,
3079 T0: fidl::encoding::Encode<fidl::encoding::UnboundedVector<u64>, D>,
3080 > fidl::encoding::Encode<WlanFullmacRssiStats, D> for (T0,)
3081 {
3082 #[inline]
3083 unsafe fn encode(
3084 self,
3085 encoder: &mut fidl::encoding::Encoder<'_, D>,
3086 offset: usize,
3087 depth: fidl::encoding::Depth,
3088 ) -> fidl::Result<()> {
3089 encoder.debug_check_bounds::<WlanFullmacRssiStats>(offset);
3090 self.0.encode(encoder, offset + 0, depth)?;
3094 Ok(())
3095 }
3096 }
3097
3098 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for WlanFullmacRssiStats {
3099 #[inline(always)]
3100 fn new_empty() -> Self {
3101 Self { hist: fidl::new_empty!(fidl::encoding::UnboundedVector<u64>, D) }
3102 }
3103
3104 #[inline]
3105 unsafe fn decode(
3106 &mut self,
3107 decoder: &mut fidl::encoding::Decoder<'_, D>,
3108 offset: usize,
3109 _depth: fidl::encoding::Depth,
3110 ) -> fidl::Result<()> {
3111 decoder.debug_check_bounds::<Self>(offset);
3112 fidl::decode!(
3114 fidl::encoding::UnboundedVector<u64>,
3115 D,
3116 &mut self.hist,
3117 decoder,
3118 offset + 0,
3119 _depth
3120 )?;
3121 Ok(())
3122 }
3123 }
3124
3125 impl fidl::encoding::ValueTypeMarker for WlanFullmacSetKeysResp {
3126 type Borrowed<'a> = &'a Self;
3127 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3128 value
3129 }
3130 }
3131
3132 unsafe impl fidl::encoding::TypeMarker for WlanFullmacSetKeysResp {
3133 type Owned = Self;
3134
3135 #[inline(always)]
3136 fn inline_align(_context: fidl::encoding::Context) -> usize {
3137 8
3138 }
3139
3140 #[inline(always)]
3141 fn inline_size(_context: fidl::encoding::Context) -> usize {
3142 16
3143 }
3144 }
3145
3146 unsafe impl<D: fidl::encoding::ResourceDialect>
3147 fidl::encoding::Encode<WlanFullmacSetKeysResp, D> for &WlanFullmacSetKeysResp
3148 {
3149 #[inline]
3150 unsafe fn encode(
3151 self,
3152 encoder: &mut fidl::encoding::Encoder<'_, D>,
3153 offset: usize,
3154 _depth: fidl::encoding::Depth,
3155 ) -> fidl::Result<()> {
3156 encoder.debug_check_bounds::<WlanFullmacSetKeysResp>(offset);
3157 fidl::encoding::Encode::<WlanFullmacSetKeysResp, D>::encode(
3159 (<fidl::encoding::Vector<i32, 4> as fidl::encoding::ValueTypeMarker>::borrow(
3160 &self.statuslist,
3161 ),),
3162 encoder,
3163 offset,
3164 _depth,
3165 )
3166 }
3167 }
3168 unsafe impl<
3169 D: fidl::encoding::ResourceDialect,
3170 T0: fidl::encoding::Encode<fidl::encoding::Vector<i32, 4>, D>,
3171 > fidl::encoding::Encode<WlanFullmacSetKeysResp, D> for (T0,)
3172 {
3173 #[inline]
3174 unsafe fn encode(
3175 self,
3176 encoder: &mut fidl::encoding::Encoder<'_, D>,
3177 offset: usize,
3178 depth: fidl::encoding::Depth,
3179 ) -> fidl::Result<()> {
3180 encoder.debug_check_bounds::<WlanFullmacSetKeysResp>(offset);
3181 self.0.encode(encoder, offset + 0, depth)?;
3185 Ok(())
3186 }
3187 }
3188
3189 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
3190 for WlanFullmacSetKeysResp
3191 {
3192 #[inline(always)]
3193 fn new_empty() -> Self {
3194 Self { statuslist: fidl::new_empty!(fidl::encoding::Vector<i32, 4>, D) }
3195 }
3196
3197 #[inline]
3198 unsafe fn decode(
3199 &mut self,
3200 decoder: &mut fidl::encoding::Decoder<'_, D>,
3201 offset: usize,
3202 _depth: fidl::encoding::Depth,
3203 ) -> fidl::Result<()> {
3204 decoder.debug_check_bounds::<Self>(offset);
3205 fidl::decode!(fidl::encoding::Vector<i32, 4>, D, &mut self.statuslist, decoder, offset + 0, _depth)?;
3207 Ok(())
3208 }
3209 }
3210
3211 impl fidl::encoding::ValueTypeMarker for WlanFullmacSignalReportIndication {
3212 type Borrowed<'a> = &'a Self;
3213 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3214 value
3215 }
3216 }
3217
3218 unsafe impl fidl::encoding::TypeMarker for WlanFullmacSignalReportIndication {
3219 type Owned = Self;
3220
3221 #[inline(always)]
3222 fn inline_align(_context: fidl::encoding::Context) -> usize {
3223 1
3224 }
3225
3226 #[inline(always)]
3227 fn inline_size(_context: fidl::encoding::Context) -> usize {
3228 2
3229 }
3230 #[inline(always)]
3231 fn encode_is_copy() -> bool {
3232 true
3233 }
3234
3235 #[inline(always)]
3236 fn decode_is_copy() -> bool {
3237 true
3238 }
3239 }
3240
3241 unsafe impl<D: fidl::encoding::ResourceDialect>
3242 fidl::encoding::Encode<WlanFullmacSignalReportIndication, D>
3243 for &WlanFullmacSignalReportIndication
3244 {
3245 #[inline]
3246 unsafe fn encode(
3247 self,
3248 encoder: &mut fidl::encoding::Encoder<'_, D>,
3249 offset: usize,
3250 _depth: fidl::encoding::Depth,
3251 ) -> fidl::Result<()> {
3252 encoder.debug_check_bounds::<WlanFullmacSignalReportIndication>(offset);
3253 unsafe {
3254 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
3256 (buf_ptr as *mut WlanFullmacSignalReportIndication)
3257 .write_unaligned((self as *const WlanFullmacSignalReportIndication).read());
3258 }
3261 Ok(())
3262 }
3263 }
3264 unsafe impl<
3265 D: fidl::encoding::ResourceDialect,
3266 T0: fidl::encoding::Encode<i8, D>,
3267 T1: fidl::encoding::Encode<i8, D>,
3268 > fidl::encoding::Encode<WlanFullmacSignalReportIndication, D> for (T0, T1)
3269 {
3270 #[inline]
3271 unsafe fn encode(
3272 self,
3273 encoder: &mut fidl::encoding::Encoder<'_, D>,
3274 offset: usize,
3275 depth: fidl::encoding::Depth,
3276 ) -> fidl::Result<()> {
3277 encoder.debug_check_bounds::<WlanFullmacSignalReportIndication>(offset);
3278 self.0.encode(encoder, offset + 0, depth)?;
3282 self.1.encode(encoder, offset + 1, depth)?;
3283 Ok(())
3284 }
3285 }
3286
3287 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
3288 for WlanFullmacSignalReportIndication
3289 {
3290 #[inline(always)]
3291 fn new_empty() -> Self {
3292 Self { rssi_dbm: fidl::new_empty!(i8, D), snr_db: fidl::new_empty!(i8, D) }
3293 }
3294
3295 #[inline]
3296 unsafe fn decode(
3297 &mut self,
3298 decoder: &mut fidl::encoding::Decoder<'_, D>,
3299 offset: usize,
3300 _depth: fidl::encoding::Depth,
3301 ) -> fidl::Result<()> {
3302 decoder.debug_check_bounds::<Self>(offset);
3303 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
3304 unsafe {
3307 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 2);
3308 }
3309 Ok(())
3310 }
3311 }
3312
3313 impl BandCapability {
3314 #[inline(always)]
3315 fn max_ordinal_present(&self) -> u64 {
3316 if let Some(_) = self.operating_channels {
3317 return 5;
3318 }
3319 if let Some(_) = self.vht_caps {
3320 return 4;
3321 }
3322 if let Some(_) = self.ht_caps {
3323 return 3;
3324 }
3325 if let Some(_) = self.basic_rates {
3326 return 2;
3327 }
3328 if let Some(_) = self.band {
3329 return 1;
3330 }
3331 0
3332 }
3333 }
3334
3335 impl fidl::encoding::ValueTypeMarker for BandCapability {
3336 type Borrowed<'a> = &'a Self;
3337 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3338 value
3339 }
3340 }
3341
3342 unsafe impl fidl::encoding::TypeMarker for BandCapability {
3343 type Owned = Self;
3344
3345 #[inline(always)]
3346 fn inline_align(_context: fidl::encoding::Context) -> usize {
3347 8
3348 }
3349
3350 #[inline(always)]
3351 fn inline_size(_context: fidl::encoding::Context) -> usize {
3352 16
3353 }
3354 }
3355
3356 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<BandCapability, D>
3357 for &BandCapability
3358 {
3359 unsafe fn encode(
3360 self,
3361 encoder: &mut fidl::encoding::Encoder<'_, D>,
3362 offset: usize,
3363 mut depth: fidl::encoding::Depth,
3364 ) -> fidl::Result<()> {
3365 encoder.debug_check_bounds::<BandCapability>(offset);
3366 let max_ordinal: u64 = self.max_ordinal_present();
3368 encoder.write_num(max_ordinal, offset);
3369 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
3370 if max_ordinal == 0 {
3372 return Ok(());
3373 }
3374 depth.increment()?;
3375 let envelope_size = 8;
3376 let bytes_len = max_ordinal as usize * envelope_size;
3377 #[allow(unused_variables)]
3378 let offset = encoder.out_of_line_offset(bytes_len);
3379 let mut _prev_end_offset: usize = 0;
3380 if 1 > max_ordinal {
3381 return Ok(());
3382 }
3383
3384 let cur_offset: usize = (1 - 1) * envelope_size;
3387
3388 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3390
3391 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_ieee80211__common::WlanBand, D>(
3396 self.band.as_ref().map(<fidl_fuchsia_wlan_ieee80211__common::WlanBand as fidl::encoding::ValueTypeMarker>::borrow),
3397 encoder, offset + cur_offset, depth
3398 )?;
3399
3400 _prev_end_offset = cur_offset + envelope_size;
3401 if 2 > max_ordinal {
3402 return Ok(());
3403 }
3404
3405 let cur_offset: usize = (2 - 1) * envelope_size;
3408
3409 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3411
3412 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<u8, 12>, D>(
3417 self.basic_rates.as_ref().map(
3418 <fidl::encoding::Vector<u8, 12> as fidl::encoding::ValueTypeMarker>::borrow,
3419 ),
3420 encoder,
3421 offset + cur_offset,
3422 depth,
3423 )?;
3424
3425 _prev_end_offset = cur_offset + envelope_size;
3426 if 3 > max_ordinal {
3427 return Ok(());
3428 }
3429
3430 let cur_offset: usize = (3 - 1) * envelope_size;
3433
3434 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3436
3437 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_ieee80211__common::HtCapabilities, D>(
3442 self.ht_caps.as_ref().map(<fidl_fuchsia_wlan_ieee80211__common::HtCapabilities as fidl::encoding::ValueTypeMarker>::borrow),
3443 encoder, offset + cur_offset, depth
3444 )?;
3445
3446 _prev_end_offset = cur_offset + envelope_size;
3447 if 4 > max_ordinal {
3448 return Ok(());
3449 }
3450
3451 let cur_offset: usize = (4 - 1) * envelope_size;
3454
3455 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3457
3458 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_ieee80211__common::VhtCapabilities, D>(
3463 self.vht_caps.as_ref().map(<fidl_fuchsia_wlan_ieee80211__common::VhtCapabilities as fidl::encoding::ValueTypeMarker>::borrow),
3464 encoder, offset + cur_offset, depth
3465 )?;
3466
3467 _prev_end_offset = cur_offset + envelope_size;
3468 if 5 > max_ordinal {
3469 return Ok(());
3470 }
3471
3472 let cur_offset: usize = (5 - 1) * envelope_size;
3475
3476 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3478
3479 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<u8, 256>, D>(
3484 self.operating_channels.as_ref().map(
3485 <fidl::encoding::Vector<u8, 256> as fidl::encoding::ValueTypeMarker>::borrow,
3486 ),
3487 encoder,
3488 offset + cur_offset,
3489 depth,
3490 )?;
3491
3492 _prev_end_offset = cur_offset + envelope_size;
3493
3494 Ok(())
3495 }
3496 }
3497
3498 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for BandCapability {
3499 #[inline(always)]
3500 fn new_empty() -> Self {
3501 Self::default()
3502 }
3503
3504 unsafe fn decode(
3505 &mut self,
3506 decoder: &mut fidl::encoding::Decoder<'_, D>,
3507 offset: usize,
3508 mut depth: fidl::encoding::Depth,
3509 ) -> fidl::Result<()> {
3510 decoder.debug_check_bounds::<Self>(offset);
3511 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
3512 None => return Err(fidl::Error::NotNullable),
3513 Some(len) => len,
3514 };
3515 if len == 0 {
3517 return Ok(());
3518 };
3519 depth.increment()?;
3520 let envelope_size = 8;
3521 let bytes_len = len * envelope_size;
3522 let offset = decoder.out_of_line_offset(bytes_len)?;
3523 let mut _next_ordinal_to_read = 0;
3525 let mut next_offset = offset;
3526 let end_offset = offset + bytes_len;
3527 _next_ordinal_to_read += 1;
3528 if next_offset >= end_offset {
3529 return Ok(());
3530 }
3531
3532 while _next_ordinal_to_read < 1 {
3534 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3535 _next_ordinal_to_read += 1;
3536 next_offset += envelope_size;
3537 }
3538
3539 let next_out_of_line = decoder.next_out_of_line();
3540 let handles_before = decoder.remaining_handles();
3541 if let Some((inlined, num_bytes, num_handles)) =
3542 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3543 {
3544 let member_inline_size = <fidl_fuchsia_wlan_ieee80211__common::WlanBand as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3545 if inlined != (member_inline_size <= 4) {
3546 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3547 }
3548 let inner_offset;
3549 let mut inner_depth = depth.clone();
3550 if inlined {
3551 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3552 inner_offset = next_offset;
3553 } else {
3554 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3555 inner_depth.increment()?;
3556 }
3557 let val_ref = self.band.get_or_insert_with(|| {
3558 fidl::new_empty!(fidl_fuchsia_wlan_ieee80211__common::WlanBand, D)
3559 });
3560 fidl::decode!(
3561 fidl_fuchsia_wlan_ieee80211__common::WlanBand,
3562 D,
3563 val_ref,
3564 decoder,
3565 inner_offset,
3566 inner_depth
3567 )?;
3568 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3569 {
3570 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3571 }
3572 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3573 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3574 }
3575 }
3576
3577 next_offset += envelope_size;
3578 _next_ordinal_to_read += 1;
3579 if next_offset >= end_offset {
3580 return Ok(());
3581 }
3582
3583 while _next_ordinal_to_read < 2 {
3585 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3586 _next_ordinal_to_read += 1;
3587 next_offset += envelope_size;
3588 }
3589
3590 let next_out_of_line = decoder.next_out_of_line();
3591 let handles_before = decoder.remaining_handles();
3592 if let Some((inlined, num_bytes, num_handles)) =
3593 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3594 {
3595 let member_inline_size =
3596 <fidl::encoding::Vector<u8, 12> as fidl::encoding::TypeMarker>::inline_size(
3597 decoder.context,
3598 );
3599 if inlined != (member_inline_size <= 4) {
3600 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3601 }
3602 let inner_offset;
3603 let mut inner_depth = depth.clone();
3604 if inlined {
3605 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3606 inner_offset = next_offset;
3607 } else {
3608 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3609 inner_depth.increment()?;
3610 }
3611 let val_ref = self
3612 .basic_rates
3613 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<u8, 12>, D));
3614 fidl::decode!(fidl::encoding::Vector<u8, 12>, D, val_ref, decoder, inner_offset, inner_depth)?;
3615 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3616 {
3617 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3618 }
3619 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3620 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3621 }
3622 }
3623
3624 next_offset += envelope_size;
3625 _next_ordinal_to_read += 1;
3626 if next_offset >= end_offset {
3627 return Ok(());
3628 }
3629
3630 while _next_ordinal_to_read < 3 {
3632 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3633 _next_ordinal_to_read += 1;
3634 next_offset += envelope_size;
3635 }
3636
3637 let next_out_of_line = decoder.next_out_of_line();
3638 let handles_before = decoder.remaining_handles();
3639 if let Some((inlined, num_bytes, num_handles)) =
3640 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3641 {
3642 let member_inline_size = <fidl_fuchsia_wlan_ieee80211__common::HtCapabilities as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3643 if inlined != (member_inline_size <= 4) {
3644 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3645 }
3646 let inner_offset;
3647 let mut inner_depth = depth.clone();
3648 if inlined {
3649 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3650 inner_offset = next_offset;
3651 } else {
3652 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3653 inner_depth.increment()?;
3654 }
3655 let val_ref = self.ht_caps.get_or_insert_with(|| {
3656 fidl::new_empty!(fidl_fuchsia_wlan_ieee80211__common::HtCapabilities, D)
3657 });
3658 fidl::decode!(
3659 fidl_fuchsia_wlan_ieee80211__common::HtCapabilities,
3660 D,
3661 val_ref,
3662 decoder,
3663 inner_offset,
3664 inner_depth
3665 )?;
3666 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3667 {
3668 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3669 }
3670 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3671 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3672 }
3673 }
3674
3675 next_offset += envelope_size;
3676 _next_ordinal_to_read += 1;
3677 if next_offset >= end_offset {
3678 return Ok(());
3679 }
3680
3681 while _next_ordinal_to_read < 4 {
3683 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3684 _next_ordinal_to_read += 1;
3685 next_offset += envelope_size;
3686 }
3687
3688 let next_out_of_line = decoder.next_out_of_line();
3689 let handles_before = decoder.remaining_handles();
3690 if let Some((inlined, num_bytes, num_handles)) =
3691 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3692 {
3693 let member_inline_size = <fidl_fuchsia_wlan_ieee80211__common::VhtCapabilities as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3694 if inlined != (member_inline_size <= 4) {
3695 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3696 }
3697 let inner_offset;
3698 let mut inner_depth = depth.clone();
3699 if inlined {
3700 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3701 inner_offset = next_offset;
3702 } else {
3703 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3704 inner_depth.increment()?;
3705 }
3706 let val_ref = self.vht_caps.get_or_insert_with(|| {
3707 fidl::new_empty!(fidl_fuchsia_wlan_ieee80211__common::VhtCapabilities, D)
3708 });
3709 fidl::decode!(
3710 fidl_fuchsia_wlan_ieee80211__common::VhtCapabilities,
3711 D,
3712 val_ref,
3713 decoder,
3714 inner_offset,
3715 inner_depth
3716 )?;
3717 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3718 {
3719 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3720 }
3721 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3722 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3723 }
3724 }
3725
3726 next_offset += envelope_size;
3727 _next_ordinal_to_read += 1;
3728 if next_offset >= end_offset {
3729 return Ok(());
3730 }
3731
3732 while _next_ordinal_to_read < 5 {
3734 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3735 _next_ordinal_to_read += 1;
3736 next_offset += envelope_size;
3737 }
3738
3739 let next_out_of_line = decoder.next_out_of_line();
3740 let handles_before = decoder.remaining_handles();
3741 if let Some((inlined, num_bytes, num_handles)) =
3742 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3743 {
3744 let member_inline_size =
3745 <fidl::encoding::Vector<u8, 256> as fidl::encoding::TypeMarker>::inline_size(
3746 decoder.context,
3747 );
3748 if inlined != (member_inline_size <= 4) {
3749 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3750 }
3751 let inner_offset;
3752 let mut inner_depth = depth.clone();
3753 if inlined {
3754 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3755 inner_offset = next_offset;
3756 } else {
3757 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3758 inner_depth.increment()?;
3759 }
3760 let val_ref = self
3761 .operating_channels
3762 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<u8, 256>, D));
3763 fidl::decode!(fidl::encoding::Vector<u8, 256>, D, val_ref, decoder, inner_offset, inner_depth)?;
3764 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3765 {
3766 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3767 }
3768 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3769 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3770 }
3771 }
3772
3773 next_offset += envelope_size;
3774
3775 while next_offset < end_offset {
3777 _next_ordinal_to_read += 1;
3778 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3779 next_offset += envelope_size;
3780 }
3781
3782 Ok(())
3783 }
3784 }
3785
3786 impl SaeFrame {
3787 #[inline(always)]
3788 fn max_ordinal_present(&self) -> u64 {
3789 if let Some(_) = self.sae_fields {
3790 return 4;
3791 }
3792 if let Some(_) = self.seq_num {
3793 return 3;
3794 }
3795 if let Some(_) = self.status_code {
3796 return 2;
3797 }
3798 if let Some(_) = self.peer_sta_address {
3799 return 1;
3800 }
3801 0
3802 }
3803 }
3804
3805 impl fidl::encoding::ValueTypeMarker for SaeFrame {
3806 type Borrowed<'a> = &'a Self;
3807 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3808 value
3809 }
3810 }
3811
3812 unsafe impl fidl::encoding::TypeMarker for SaeFrame {
3813 type Owned = Self;
3814
3815 #[inline(always)]
3816 fn inline_align(_context: fidl::encoding::Context) -> usize {
3817 8
3818 }
3819
3820 #[inline(always)]
3821 fn inline_size(_context: fidl::encoding::Context) -> usize {
3822 16
3823 }
3824 }
3825
3826 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<SaeFrame, D> for &SaeFrame {
3827 unsafe fn encode(
3828 self,
3829 encoder: &mut fidl::encoding::Encoder<'_, D>,
3830 offset: usize,
3831 mut depth: fidl::encoding::Depth,
3832 ) -> fidl::Result<()> {
3833 encoder.debug_check_bounds::<SaeFrame>(offset);
3834 let max_ordinal: u64 = self.max_ordinal_present();
3836 encoder.write_num(max_ordinal, offset);
3837 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
3838 if max_ordinal == 0 {
3840 return Ok(());
3841 }
3842 depth.increment()?;
3843 let envelope_size = 8;
3844 let bytes_len = max_ordinal as usize * envelope_size;
3845 #[allow(unused_variables)]
3846 let offset = encoder.out_of_line_offset(bytes_len);
3847 let mut _prev_end_offset: usize = 0;
3848 if 1 > max_ordinal {
3849 return Ok(());
3850 }
3851
3852 let cur_offset: usize = (1 - 1) * envelope_size;
3855
3856 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3858
3859 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
3864 self.peer_sta_address
3865 .as_ref()
3866 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
3867 encoder,
3868 offset + cur_offset,
3869 depth,
3870 )?;
3871
3872 _prev_end_offset = cur_offset + envelope_size;
3873 if 2 > max_ordinal {
3874 return Ok(());
3875 }
3876
3877 let cur_offset: usize = (2 - 1) * envelope_size;
3880
3881 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3883
3884 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_ieee80211__common::StatusCode, D>(
3889 self.status_code.as_ref().map(<fidl_fuchsia_wlan_ieee80211__common::StatusCode as fidl::encoding::ValueTypeMarker>::borrow),
3890 encoder, offset + cur_offset, depth
3891 )?;
3892
3893 _prev_end_offset = cur_offset + envelope_size;
3894 if 3 > max_ordinal {
3895 return Ok(());
3896 }
3897
3898 let cur_offset: usize = (3 - 1) * envelope_size;
3901
3902 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3904
3905 fidl::encoding::encode_in_envelope_optional::<u16, D>(
3910 self.seq_num.as_ref().map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
3911 encoder,
3912 offset + cur_offset,
3913 depth,
3914 )?;
3915
3916 _prev_end_offset = cur_offset + envelope_size;
3917 if 4 > max_ordinal {
3918 return Ok(());
3919 }
3920
3921 let cur_offset: usize = (4 - 1) * envelope_size;
3924
3925 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3927
3928 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<u8>, D>(
3933 self.sae_fields.as_ref().map(<fidl::encoding::UnboundedVector<u8> as fidl::encoding::ValueTypeMarker>::borrow),
3934 encoder, offset + cur_offset, depth
3935 )?;
3936
3937 _prev_end_offset = cur_offset + envelope_size;
3938
3939 Ok(())
3940 }
3941 }
3942
3943 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for SaeFrame {
3944 #[inline(always)]
3945 fn new_empty() -> Self {
3946 Self::default()
3947 }
3948
3949 unsafe fn decode(
3950 &mut self,
3951 decoder: &mut fidl::encoding::Decoder<'_, D>,
3952 offset: usize,
3953 mut depth: fidl::encoding::Depth,
3954 ) -> fidl::Result<()> {
3955 decoder.debug_check_bounds::<Self>(offset);
3956 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
3957 None => return Err(fidl::Error::NotNullable),
3958 Some(len) => len,
3959 };
3960 if len == 0 {
3962 return Ok(());
3963 };
3964 depth.increment()?;
3965 let envelope_size = 8;
3966 let bytes_len = len * envelope_size;
3967 let offset = decoder.out_of_line_offset(bytes_len)?;
3968 let mut _next_ordinal_to_read = 0;
3970 let mut next_offset = offset;
3971 let end_offset = offset + bytes_len;
3972 _next_ordinal_to_read += 1;
3973 if next_offset >= end_offset {
3974 return Ok(());
3975 }
3976
3977 while _next_ordinal_to_read < 1 {
3979 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3980 _next_ordinal_to_read += 1;
3981 next_offset += envelope_size;
3982 }
3983
3984 let next_out_of_line = decoder.next_out_of_line();
3985 let handles_before = decoder.remaining_handles();
3986 if let Some((inlined, num_bytes, num_handles)) =
3987 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3988 {
3989 let member_inline_size =
3990 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
3991 decoder.context,
3992 );
3993 if inlined != (member_inline_size <= 4) {
3994 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3995 }
3996 let inner_offset;
3997 let mut inner_depth = depth.clone();
3998 if inlined {
3999 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4000 inner_offset = next_offset;
4001 } else {
4002 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4003 inner_depth.increment()?;
4004 }
4005 let val_ref = self
4006 .peer_sta_address
4007 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
4008 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
4009 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4010 {
4011 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4012 }
4013 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4014 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4015 }
4016 }
4017
4018 next_offset += envelope_size;
4019 _next_ordinal_to_read += 1;
4020 if next_offset >= end_offset {
4021 return Ok(());
4022 }
4023
4024 while _next_ordinal_to_read < 2 {
4026 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4027 _next_ordinal_to_read += 1;
4028 next_offset += envelope_size;
4029 }
4030
4031 let next_out_of_line = decoder.next_out_of_line();
4032 let handles_before = decoder.remaining_handles();
4033 if let Some((inlined, num_bytes, num_handles)) =
4034 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4035 {
4036 let member_inline_size = <fidl_fuchsia_wlan_ieee80211__common::StatusCode as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4037 if inlined != (member_inline_size <= 4) {
4038 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4039 }
4040 let inner_offset;
4041 let mut inner_depth = depth.clone();
4042 if inlined {
4043 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4044 inner_offset = next_offset;
4045 } else {
4046 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4047 inner_depth.increment()?;
4048 }
4049 let val_ref = self.status_code.get_or_insert_with(|| {
4050 fidl::new_empty!(fidl_fuchsia_wlan_ieee80211__common::StatusCode, D)
4051 });
4052 fidl::decode!(
4053 fidl_fuchsia_wlan_ieee80211__common::StatusCode,
4054 D,
4055 val_ref,
4056 decoder,
4057 inner_offset,
4058 inner_depth
4059 )?;
4060 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4061 {
4062 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4063 }
4064 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4065 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4066 }
4067 }
4068
4069 next_offset += envelope_size;
4070 _next_ordinal_to_read += 1;
4071 if next_offset >= end_offset {
4072 return Ok(());
4073 }
4074
4075 while _next_ordinal_to_read < 3 {
4077 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4078 _next_ordinal_to_read += 1;
4079 next_offset += envelope_size;
4080 }
4081
4082 let next_out_of_line = decoder.next_out_of_line();
4083 let handles_before = decoder.remaining_handles();
4084 if let Some((inlined, num_bytes, num_handles)) =
4085 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4086 {
4087 let member_inline_size =
4088 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4089 if inlined != (member_inline_size <= 4) {
4090 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4091 }
4092 let inner_offset;
4093 let mut inner_depth = depth.clone();
4094 if inlined {
4095 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4096 inner_offset = next_offset;
4097 } else {
4098 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4099 inner_depth.increment()?;
4100 }
4101 let val_ref = self.seq_num.get_or_insert_with(|| fidl::new_empty!(u16, D));
4102 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
4103 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4104 {
4105 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4106 }
4107 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4108 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4109 }
4110 }
4111
4112 next_offset += envelope_size;
4113 _next_ordinal_to_read += 1;
4114 if next_offset >= end_offset {
4115 return Ok(());
4116 }
4117
4118 while _next_ordinal_to_read < 4 {
4120 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4121 _next_ordinal_to_read += 1;
4122 next_offset += envelope_size;
4123 }
4124
4125 let next_out_of_line = decoder.next_out_of_line();
4126 let handles_before = decoder.remaining_handles();
4127 if let Some((inlined, num_bytes, num_handles)) =
4128 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4129 {
4130 let member_inline_size = <fidl::encoding::UnboundedVector<u8> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4131 if inlined != (member_inline_size <= 4) {
4132 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4133 }
4134 let inner_offset;
4135 let mut inner_depth = depth.clone();
4136 if inlined {
4137 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4138 inner_offset = next_offset;
4139 } else {
4140 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4141 inner_depth.increment()?;
4142 }
4143 let val_ref = self.sae_fields.get_or_insert_with(|| {
4144 fidl::new_empty!(fidl::encoding::UnboundedVector<u8>, D)
4145 });
4146 fidl::decode!(
4147 fidl::encoding::UnboundedVector<u8>,
4148 D,
4149 val_ref,
4150 decoder,
4151 inner_offset,
4152 inner_depth
4153 )?;
4154 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4155 {
4156 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4157 }
4158 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4159 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4160 }
4161 }
4162
4163 next_offset += envelope_size;
4164
4165 while next_offset < end_offset {
4167 _next_ordinal_to_read += 1;
4168 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4169 next_offset += envelope_size;
4170 }
4171
4172 Ok(())
4173 }
4174 }
4175
4176 impl WlanFullmacImplAssocRespRequest {
4177 #[inline(always)]
4178 fn max_ordinal_present(&self) -> u64 {
4179 if let Some(_) = self.association_id {
4180 return 3;
4181 }
4182 if let Some(_) = self.result_code {
4183 return 2;
4184 }
4185 if let Some(_) = self.peer_sta_address {
4186 return 1;
4187 }
4188 0
4189 }
4190 }
4191
4192 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplAssocRespRequest {
4193 type Borrowed<'a> = &'a Self;
4194 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4195 value
4196 }
4197 }
4198
4199 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplAssocRespRequest {
4200 type Owned = Self;
4201
4202 #[inline(always)]
4203 fn inline_align(_context: fidl::encoding::Context) -> usize {
4204 8
4205 }
4206
4207 #[inline(always)]
4208 fn inline_size(_context: fidl::encoding::Context) -> usize {
4209 16
4210 }
4211 }
4212
4213 unsafe impl<D: fidl::encoding::ResourceDialect>
4214 fidl::encoding::Encode<WlanFullmacImplAssocRespRequest, D>
4215 for &WlanFullmacImplAssocRespRequest
4216 {
4217 unsafe fn encode(
4218 self,
4219 encoder: &mut fidl::encoding::Encoder<'_, D>,
4220 offset: usize,
4221 mut depth: fidl::encoding::Depth,
4222 ) -> fidl::Result<()> {
4223 encoder.debug_check_bounds::<WlanFullmacImplAssocRespRequest>(offset);
4224 let max_ordinal: u64 = self.max_ordinal_present();
4226 encoder.write_num(max_ordinal, offset);
4227 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
4228 if max_ordinal == 0 {
4230 return Ok(());
4231 }
4232 depth.increment()?;
4233 let envelope_size = 8;
4234 let bytes_len = max_ordinal as usize * envelope_size;
4235 #[allow(unused_variables)]
4236 let offset = encoder.out_of_line_offset(bytes_len);
4237 let mut _prev_end_offset: usize = 0;
4238 if 1 > max_ordinal {
4239 return Ok(());
4240 }
4241
4242 let cur_offset: usize = (1 - 1) * envelope_size;
4245
4246 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4248
4249 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
4254 self.peer_sta_address
4255 .as_ref()
4256 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
4257 encoder,
4258 offset + cur_offset,
4259 depth,
4260 )?;
4261
4262 _prev_end_offset = cur_offset + envelope_size;
4263 if 2 > max_ordinal {
4264 return Ok(());
4265 }
4266
4267 let cur_offset: usize = (2 - 1) * envelope_size;
4270
4271 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4273
4274 fidl::encoding::encode_in_envelope_optional::<WlanAssocResult, D>(
4279 self.result_code
4280 .as_ref()
4281 .map(<WlanAssocResult as fidl::encoding::ValueTypeMarker>::borrow),
4282 encoder,
4283 offset + cur_offset,
4284 depth,
4285 )?;
4286
4287 _prev_end_offset = cur_offset + envelope_size;
4288 if 3 > max_ordinal {
4289 return Ok(());
4290 }
4291
4292 let cur_offset: usize = (3 - 1) * envelope_size;
4295
4296 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4298
4299 fidl::encoding::encode_in_envelope_optional::<u16, D>(
4304 self.association_id.as_ref().map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
4305 encoder,
4306 offset + cur_offset,
4307 depth,
4308 )?;
4309
4310 _prev_end_offset = cur_offset + envelope_size;
4311
4312 Ok(())
4313 }
4314 }
4315
4316 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
4317 for WlanFullmacImplAssocRespRequest
4318 {
4319 #[inline(always)]
4320 fn new_empty() -> Self {
4321 Self::default()
4322 }
4323
4324 unsafe fn decode(
4325 &mut self,
4326 decoder: &mut fidl::encoding::Decoder<'_, D>,
4327 offset: usize,
4328 mut depth: fidl::encoding::Depth,
4329 ) -> fidl::Result<()> {
4330 decoder.debug_check_bounds::<Self>(offset);
4331 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
4332 None => return Err(fidl::Error::NotNullable),
4333 Some(len) => len,
4334 };
4335 if len == 0 {
4337 return Ok(());
4338 };
4339 depth.increment()?;
4340 let envelope_size = 8;
4341 let bytes_len = len * envelope_size;
4342 let offset = decoder.out_of_line_offset(bytes_len)?;
4343 let mut _next_ordinal_to_read = 0;
4345 let mut next_offset = offset;
4346 let end_offset = offset + bytes_len;
4347 _next_ordinal_to_read += 1;
4348 if next_offset >= end_offset {
4349 return Ok(());
4350 }
4351
4352 while _next_ordinal_to_read < 1 {
4354 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4355 _next_ordinal_to_read += 1;
4356 next_offset += envelope_size;
4357 }
4358
4359 let next_out_of_line = decoder.next_out_of_line();
4360 let handles_before = decoder.remaining_handles();
4361 if let Some((inlined, num_bytes, num_handles)) =
4362 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4363 {
4364 let member_inline_size =
4365 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
4366 decoder.context,
4367 );
4368 if inlined != (member_inline_size <= 4) {
4369 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4370 }
4371 let inner_offset;
4372 let mut inner_depth = depth.clone();
4373 if inlined {
4374 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4375 inner_offset = next_offset;
4376 } else {
4377 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4378 inner_depth.increment()?;
4379 }
4380 let val_ref = self
4381 .peer_sta_address
4382 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
4383 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
4384 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4385 {
4386 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4387 }
4388 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4389 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4390 }
4391 }
4392
4393 next_offset += envelope_size;
4394 _next_ordinal_to_read += 1;
4395 if next_offset >= end_offset {
4396 return Ok(());
4397 }
4398
4399 while _next_ordinal_to_read < 2 {
4401 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4402 _next_ordinal_to_read += 1;
4403 next_offset += envelope_size;
4404 }
4405
4406 let next_out_of_line = decoder.next_out_of_line();
4407 let handles_before = decoder.remaining_handles();
4408 if let Some((inlined, num_bytes, num_handles)) =
4409 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4410 {
4411 let member_inline_size =
4412 <WlanAssocResult as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4413 if inlined != (member_inline_size <= 4) {
4414 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4415 }
4416 let inner_offset;
4417 let mut inner_depth = depth.clone();
4418 if inlined {
4419 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4420 inner_offset = next_offset;
4421 } else {
4422 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4423 inner_depth.increment()?;
4424 }
4425 let val_ref =
4426 self.result_code.get_or_insert_with(|| fidl::new_empty!(WlanAssocResult, D));
4427 fidl::decode!(WlanAssocResult, D, val_ref, decoder, inner_offset, inner_depth)?;
4428 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4429 {
4430 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4431 }
4432 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4433 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4434 }
4435 }
4436
4437 next_offset += envelope_size;
4438 _next_ordinal_to_read += 1;
4439 if next_offset >= end_offset {
4440 return Ok(());
4441 }
4442
4443 while _next_ordinal_to_read < 3 {
4445 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4446 _next_ordinal_to_read += 1;
4447 next_offset += envelope_size;
4448 }
4449
4450 let next_out_of_line = decoder.next_out_of_line();
4451 let handles_before = decoder.remaining_handles();
4452 if let Some((inlined, num_bytes, num_handles)) =
4453 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4454 {
4455 let member_inline_size =
4456 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4457 if inlined != (member_inline_size <= 4) {
4458 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4459 }
4460 let inner_offset;
4461 let mut inner_depth = depth.clone();
4462 if inlined {
4463 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4464 inner_offset = next_offset;
4465 } else {
4466 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4467 inner_depth.increment()?;
4468 }
4469 let val_ref = self.association_id.get_or_insert_with(|| fidl::new_empty!(u16, D));
4470 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
4471 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4472 {
4473 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4474 }
4475 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4476 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4477 }
4478 }
4479
4480 next_offset += envelope_size;
4481
4482 while next_offset < end_offset {
4484 _next_ordinal_to_read += 1;
4485 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4486 next_offset += envelope_size;
4487 }
4488
4489 Ok(())
4490 }
4491 }
4492
4493 impl WlanFullmacImplAuthRespRequest {
4494 #[inline(always)]
4495 fn max_ordinal_present(&self) -> u64 {
4496 if let Some(_) = self.result_code {
4497 return 2;
4498 }
4499 if let Some(_) = self.peer_sta_address {
4500 return 1;
4501 }
4502 0
4503 }
4504 }
4505
4506 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplAuthRespRequest {
4507 type Borrowed<'a> = &'a Self;
4508 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4509 value
4510 }
4511 }
4512
4513 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplAuthRespRequest {
4514 type Owned = Self;
4515
4516 #[inline(always)]
4517 fn inline_align(_context: fidl::encoding::Context) -> usize {
4518 8
4519 }
4520
4521 #[inline(always)]
4522 fn inline_size(_context: fidl::encoding::Context) -> usize {
4523 16
4524 }
4525 }
4526
4527 unsafe impl<D: fidl::encoding::ResourceDialect>
4528 fidl::encoding::Encode<WlanFullmacImplAuthRespRequest, D>
4529 for &WlanFullmacImplAuthRespRequest
4530 {
4531 unsafe fn encode(
4532 self,
4533 encoder: &mut fidl::encoding::Encoder<'_, D>,
4534 offset: usize,
4535 mut depth: fidl::encoding::Depth,
4536 ) -> fidl::Result<()> {
4537 encoder.debug_check_bounds::<WlanFullmacImplAuthRespRequest>(offset);
4538 let max_ordinal: u64 = self.max_ordinal_present();
4540 encoder.write_num(max_ordinal, offset);
4541 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
4542 if max_ordinal == 0 {
4544 return Ok(());
4545 }
4546 depth.increment()?;
4547 let envelope_size = 8;
4548 let bytes_len = max_ordinal as usize * envelope_size;
4549 #[allow(unused_variables)]
4550 let offset = encoder.out_of_line_offset(bytes_len);
4551 let mut _prev_end_offset: usize = 0;
4552 if 1 > max_ordinal {
4553 return Ok(());
4554 }
4555
4556 let cur_offset: usize = (1 - 1) * envelope_size;
4559
4560 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4562
4563 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
4568 self.peer_sta_address
4569 .as_ref()
4570 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
4571 encoder,
4572 offset + cur_offset,
4573 depth,
4574 )?;
4575
4576 _prev_end_offset = cur_offset + envelope_size;
4577 if 2 > max_ordinal {
4578 return Ok(());
4579 }
4580
4581 let cur_offset: usize = (2 - 1) * envelope_size;
4584
4585 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4587
4588 fidl::encoding::encode_in_envelope_optional::<WlanAuthResult, D>(
4593 self.result_code
4594 .as_ref()
4595 .map(<WlanAuthResult as fidl::encoding::ValueTypeMarker>::borrow),
4596 encoder,
4597 offset + cur_offset,
4598 depth,
4599 )?;
4600
4601 _prev_end_offset = cur_offset + envelope_size;
4602
4603 Ok(())
4604 }
4605 }
4606
4607 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
4608 for WlanFullmacImplAuthRespRequest
4609 {
4610 #[inline(always)]
4611 fn new_empty() -> Self {
4612 Self::default()
4613 }
4614
4615 unsafe fn decode(
4616 &mut self,
4617 decoder: &mut fidl::encoding::Decoder<'_, D>,
4618 offset: usize,
4619 mut depth: fidl::encoding::Depth,
4620 ) -> fidl::Result<()> {
4621 decoder.debug_check_bounds::<Self>(offset);
4622 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
4623 None => return Err(fidl::Error::NotNullable),
4624 Some(len) => len,
4625 };
4626 if len == 0 {
4628 return Ok(());
4629 };
4630 depth.increment()?;
4631 let envelope_size = 8;
4632 let bytes_len = len * envelope_size;
4633 let offset = decoder.out_of_line_offset(bytes_len)?;
4634 let mut _next_ordinal_to_read = 0;
4636 let mut next_offset = offset;
4637 let end_offset = offset + bytes_len;
4638 _next_ordinal_to_read += 1;
4639 if next_offset >= end_offset {
4640 return Ok(());
4641 }
4642
4643 while _next_ordinal_to_read < 1 {
4645 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4646 _next_ordinal_to_read += 1;
4647 next_offset += envelope_size;
4648 }
4649
4650 let next_out_of_line = decoder.next_out_of_line();
4651 let handles_before = decoder.remaining_handles();
4652 if let Some((inlined, num_bytes, num_handles)) =
4653 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4654 {
4655 let member_inline_size =
4656 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
4657 decoder.context,
4658 );
4659 if inlined != (member_inline_size <= 4) {
4660 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4661 }
4662 let inner_offset;
4663 let mut inner_depth = depth.clone();
4664 if inlined {
4665 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4666 inner_offset = next_offset;
4667 } else {
4668 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4669 inner_depth.increment()?;
4670 }
4671 let val_ref = self
4672 .peer_sta_address
4673 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
4674 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
4675 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4676 {
4677 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4678 }
4679 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4680 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4681 }
4682 }
4683
4684 next_offset += envelope_size;
4685 _next_ordinal_to_read += 1;
4686 if next_offset >= end_offset {
4687 return Ok(());
4688 }
4689
4690 while _next_ordinal_to_read < 2 {
4692 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4693 _next_ordinal_to_read += 1;
4694 next_offset += envelope_size;
4695 }
4696
4697 let next_out_of_line = decoder.next_out_of_line();
4698 let handles_before = decoder.remaining_handles();
4699 if let Some((inlined, num_bytes, num_handles)) =
4700 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4701 {
4702 let member_inline_size =
4703 <WlanAuthResult as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4704 if inlined != (member_inline_size <= 4) {
4705 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4706 }
4707 let inner_offset;
4708 let mut inner_depth = depth.clone();
4709 if inlined {
4710 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4711 inner_offset = next_offset;
4712 } else {
4713 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4714 inner_depth.increment()?;
4715 }
4716 let val_ref =
4717 self.result_code.get_or_insert_with(|| fidl::new_empty!(WlanAuthResult, D));
4718 fidl::decode!(WlanAuthResult, D, val_ref, decoder, inner_offset, inner_depth)?;
4719 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4720 {
4721 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4722 }
4723 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4724 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4725 }
4726 }
4727
4728 next_offset += envelope_size;
4729
4730 while next_offset < end_offset {
4732 _next_ordinal_to_read += 1;
4733 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4734 next_offset += envelope_size;
4735 }
4736
4737 Ok(())
4738 }
4739 }
4740
4741 impl WlanFullmacImplConnectRequest {
4742 #[inline(always)]
4743 fn max_ordinal_present(&self) -> u64 {
4744 if let Some(_) = self.wep_key_desc {
4745 return 7;
4746 }
4747 if let Some(_) = self.security_ie {
4748 return 6;
4749 }
4750 if let Some(_) = self.wep_key {
4751 return 5;
4752 }
4753 if let Some(_) = self.sae_password {
4754 return 4;
4755 }
4756 if let Some(_) = self.auth_type {
4757 return 3;
4758 }
4759 if let Some(_) = self.connect_failure_timeout {
4760 return 2;
4761 }
4762 if let Some(_) = self.selected_bss {
4763 return 1;
4764 }
4765 0
4766 }
4767 }
4768
4769 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplConnectRequest {
4770 type Borrowed<'a> = &'a Self;
4771 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4772 value
4773 }
4774 }
4775
4776 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplConnectRequest {
4777 type Owned = Self;
4778
4779 #[inline(always)]
4780 fn inline_align(_context: fidl::encoding::Context) -> usize {
4781 8
4782 }
4783
4784 #[inline(always)]
4785 fn inline_size(_context: fidl::encoding::Context) -> usize {
4786 16
4787 }
4788 }
4789
4790 unsafe impl<D: fidl::encoding::ResourceDialect>
4791 fidl::encoding::Encode<WlanFullmacImplConnectRequest, D>
4792 for &WlanFullmacImplConnectRequest
4793 {
4794 unsafe fn encode(
4795 self,
4796 encoder: &mut fidl::encoding::Encoder<'_, D>,
4797 offset: usize,
4798 mut depth: fidl::encoding::Depth,
4799 ) -> fidl::Result<()> {
4800 encoder.debug_check_bounds::<WlanFullmacImplConnectRequest>(offset);
4801 let max_ordinal: u64 = self.max_ordinal_present();
4803 encoder.write_num(max_ordinal, offset);
4804 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
4805 if max_ordinal == 0 {
4807 return Ok(());
4808 }
4809 depth.increment()?;
4810 let envelope_size = 8;
4811 let bytes_len = max_ordinal as usize * envelope_size;
4812 #[allow(unused_variables)]
4813 let offset = encoder.out_of_line_offset(bytes_len);
4814 let mut _prev_end_offset: usize = 0;
4815 if 1 > max_ordinal {
4816 return Ok(());
4817 }
4818
4819 let cur_offset: usize = (1 - 1) * envelope_size;
4822
4823 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4825
4826 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_common__common::BssDescription, D>(
4831 self.selected_bss.as_ref().map(<fidl_fuchsia_wlan_common__common::BssDescription as fidl::encoding::ValueTypeMarker>::borrow),
4832 encoder, offset + cur_offset, depth
4833 )?;
4834
4835 _prev_end_offset = cur_offset + envelope_size;
4836 if 2 > max_ordinal {
4837 return Ok(());
4838 }
4839
4840 let cur_offset: usize = (2 - 1) * envelope_size;
4843
4844 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4846
4847 fidl::encoding::encode_in_envelope_optional::<u32, D>(
4852 self.connect_failure_timeout
4853 .as_ref()
4854 .map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
4855 encoder,
4856 offset + cur_offset,
4857 depth,
4858 )?;
4859
4860 _prev_end_offset = cur_offset + envelope_size;
4861 if 3 > max_ordinal {
4862 return Ok(());
4863 }
4864
4865 let cur_offset: usize = (3 - 1) * envelope_size;
4868
4869 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4871
4872 fidl::encoding::encode_in_envelope_optional::<WlanAuthType, D>(
4877 self.auth_type
4878 .as_ref()
4879 .map(<WlanAuthType as fidl::encoding::ValueTypeMarker>::borrow),
4880 encoder,
4881 offset + cur_offset,
4882 depth,
4883 )?;
4884
4885 _prev_end_offset = cur_offset + envelope_size;
4886 if 4 > max_ordinal {
4887 return Ok(());
4888 }
4889
4890 let cur_offset: usize = (4 - 1) * envelope_size;
4893
4894 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4896
4897 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<u8>, D>(
4902 self.sae_password.as_ref().map(<fidl::encoding::UnboundedVector<u8> as fidl::encoding::ValueTypeMarker>::borrow),
4903 encoder, offset + cur_offset, depth
4904 )?;
4905
4906 _prev_end_offset = cur_offset + envelope_size;
4907 if 5 > max_ordinal {
4908 return Ok(());
4909 }
4910
4911 let cur_offset: usize = (5 - 1) * envelope_size;
4914
4915 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4917
4918 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_common__common::WlanKeyConfig, D>(
4923 self.wep_key.as_ref().map(<fidl_fuchsia_wlan_common__common::WlanKeyConfig as fidl::encoding::ValueTypeMarker>::borrow),
4924 encoder, offset + cur_offset, depth
4925 )?;
4926
4927 _prev_end_offset = cur_offset + envelope_size;
4928 if 6 > max_ordinal {
4929 return Ok(());
4930 }
4931
4932 let cur_offset: usize = (6 - 1) * envelope_size;
4935
4936 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4938
4939 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<u8, 257>, D>(
4944 self.security_ie.as_ref().map(
4945 <fidl::encoding::Vector<u8, 257> as fidl::encoding::ValueTypeMarker>::borrow,
4946 ),
4947 encoder,
4948 offset + cur_offset,
4949 depth,
4950 )?;
4951
4952 _prev_end_offset = cur_offset + envelope_size;
4953 if 7 > max_ordinal {
4954 return Ok(());
4955 }
4956
4957 let cur_offset: usize = (7 - 1) * envelope_size;
4960
4961 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4963
4964 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_ieee80211__common::SetKeyDescriptor, D>(
4969 self.wep_key_desc.as_ref().map(<fidl_fuchsia_wlan_ieee80211__common::SetKeyDescriptor as fidl::encoding::ValueTypeMarker>::borrow),
4970 encoder, offset + cur_offset, depth
4971 )?;
4972
4973 _prev_end_offset = cur_offset + envelope_size;
4974
4975 Ok(())
4976 }
4977 }
4978
4979 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
4980 for WlanFullmacImplConnectRequest
4981 {
4982 #[inline(always)]
4983 fn new_empty() -> Self {
4984 Self::default()
4985 }
4986
4987 unsafe fn decode(
4988 &mut self,
4989 decoder: &mut fidl::encoding::Decoder<'_, D>,
4990 offset: usize,
4991 mut depth: fidl::encoding::Depth,
4992 ) -> fidl::Result<()> {
4993 decoder.debug_check_bounds::<Self>(offset);
4994 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
4995 None => return Err(fidl::Error::NotNullable),
4996 Some(len) => len,
4997 };
4998 if len == 0 {
5000 return Ok(());
5001 };
5002 depth.increment()?;
5003 let envelope_size = 8;
5004 let bytes_len = len * envelope_size;
5005 let offset = decoder.out_of_line_offset(bytes_len)?;
5006 let mut _next_ordinal_to_read = 0;
5008 let mut next_offset = offset;
5009 let end_offset = offset + bytes_len;
5010 _next_ordinal_to_read += 1;
5011 if next_offset >= end_offset {
5012 return Ok(());
5013 }
5014
5015 while _next_ordinal_to_read < 1 {
5017 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5018 _next_ordinal_to_read += 1;
5019 next_offset += envelope_size;
5020 }
5021
5022 let next_out_of_line = decoder.next_out_of_line();
5023 let handles_before = decoder.remaining_handles();
5024 if let Some((inlined, num_bytes, num_handles)) =
5025 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5026 {
5027 let member_inline_size = <fidl_fuchsia_wlan_common__common::BssDescription as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5028 if inlined != (member_inline_size <= 4) {
5029 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5030 }
5031 let inner_offset;
5032 let mut inner_depth = depth.clone();
5033 if inlined {
5034 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5035 inner_offset = next_offset;
5036 } else {
5037 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5038 inner_depth.increment()?;
5039 }
5040 let val_ref = self.selected_bss.get_or_insert_with(|| {
5041 fidl::new_empty!(fidl_fuchsia_wlan_common__common::BssDescription, D)
5042 });
5043 fidl::decode!(
5044 fidl_fuchsia_wlan_common__common::BssDescription,
5045 D,
5046 val_ref,
5047 decoder,
5048 inner_offset,
5049 inner_depth
5050 )?;
5051 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5052 {
5053 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5054 }
5055 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5056 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5057 }
5058 }
5059
5060 next_offset += envelope_size;
5061 _next_ordinal_to_read += 1;
5062 if next_offset >= end_offset {
5063 return Ok(());
5064 }
5065
5066 while _next_ordinal_to_read < 2 {
5068 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5069 _next_ordinal_to_read += 1;
5070 next_offset += envelope_size;
5071 }
5072
5073 let next_out_of_line = decoder.next_out_of_line();
5074 let handles_before = decoder.remaining_handles();
5075 if let Some((inlined, num_bytes, num_handles)) =
5076 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5077 {
5078 let member_inline_size =
5079 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5080 if inlined != (member_inline_size <= 4) {
5081 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5082 }
5083 let inner_offset;
5084 let mut inner_depth = depth.clone();
5085 if inlined {
5086 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5087 inner_offset = next_offset;
5088 } else {
5089 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5090 inner_depth.increment()?;
5091 }
5092 let val_ref =
5093 self.connect_failure_timeout.get_or_insert_with(|| fidl::new_empty!(u32, D));
5094 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
5095 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5096 {
5097 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5098 }
5099 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5100 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5101 }
5102 }
5103
5104 next_offset += envelope_size;
5105 _next_ordinal_to_read += 1;
5106 if next_offset >= end_offset {
5107 return Ok(());
5108 }
5109
5110 while _next_ordinal_to_read < 3 {
5112 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5113 _next_ordinal_to_read += 1;
5114 next_offset += envelope_size;
5115 }
5116
5117 let next_out_of_line = decoder.next_out_of_line();
5118 let handles_before = decoder.remaining_handles();
5119 if let Some((inlined, num_bytes, num_handles)) =
5120 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5121 {
5122 let member_inline_size =
5123 <WlanAuthType as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5124 if inlined != (member_inline_size <= 4) {
5125 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5126 }
5127 let inner_offset;
5128 let mut inner_depth = depth.clone();
5129 if inlined {
5130 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5131 inner_offset = next_offset;
5132 } else {
5133 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5134 inner_depth.increment()?;
5135 }
5136 let val_ref =
5137 self.auth_type.get_or_insert_with(|| fidl::new_empty!(WlanAuthType, D));
5138 fidl::decode!(WlanAuthType, D, val_ref, decoder, inner_offset, inner_depth)?;
5139 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5140 {
5141 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5142 }
5143 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5144 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5145 }
5146 }
5147
5148 next_offset += envelope_size;
5149 _next_ordinal_to_read += 1;
5150 if next_offset >= end_offset {
5151 return Ok(());
5152 }
5153
5154 while _next_ordinal_to_read < 4 {
5156 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5157 _next_ordinal_to_read += 1;
5158 next_offset += envelope_size;
5159 }
5160
5161 let next_out_of_line = decoder.next_out_of_line();
5162 let handles_before = decoder.remaining_handles();
5163 if let Some((inlined, num_bytes, num_handles)) =
5164 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5165 {
5166 let member_inline_size = <fidl::encoding::UnboundedVector<u8> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5167 if inlined != (member_inline_size <= 4) {
5168 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5169 }
5170 let inner_offset;
5171 let mut inner_depth = depth.clone();
5172 if inlined {
5173 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5174 inner_offset = next_offset;
5175 } else {
5176 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5177 inner_depth.increment()?;
5178 }
5179 let val_ref = self.sae_password.get_or_insert_with(|| {
5180 fidl::new_empty!(fidl::encoding::UnboundedVector<u8>, D)
5181 });
5182 fidl::decode!(
5183 fidl::encoding::UnboundedVector<u8>,
5184 D,
5185 val_ref,
5186 decoder,
5187 inner_offset,
5188 inner_depth
5189 )?;
5190 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5191 {
5192 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5193 }
5194 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5195 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5196 }
5197 }
5198
5199 next_offset += envelope_size;
5200 _next_ordinal_to_read += 1;
5201 if next_offset >= end_offset {
5202 return Ok(());
5203 }
5204
5205 while _next_ordinal_to_read < 5 {
5207 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5208 _next_ordinal_to_read += 1;
5209 next_offset += envelope_size;
5210 }
5211
5212 let next_out_of_line = decoder.next_out_of_line();
5213 let handles_before = decoder.remaining_handles();
5214 if let Some((inlined, num_bytes, num_handles)) =
5215 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5216 {
5217 let member_inline_size = <fidl_fuchsia_wlan_common__common::WlanKeyConfig as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5218 if inlined != (member_inline_size <= 4) {
5219 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5220 }
5221 let inner_offset;
5222 let mut inner_depth = depth.clone();
5223 if inlined {
5224 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5225 inner_offset = next_offset;
5226 } else {
5227 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5228 inner_depth.increment()?;
5229 }
5230 let val_ref = self.wep_key.get_or_insert_with(|| {
5231 fidl::new_empty!(fidl_fuchsia_wlan_common__common::WlanKeyConfig, D)
5232 });
5233 fidl::decode!(
5234 fidl_fuchsia_wlan_common__common::WlanKeyConfig,
5235 D,
5236 val_ref,
5237 decoder,
5238 inner_offset,
5239 inner_depth
5240 )?;
5241 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5242 {
5243 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5244 }
5245 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5246 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5247 }
5248 }
5249
5250 next_offset += envelope_size;
5251 _next_ordinal_to_read += 1;
5252 if next_offset >= end_offset {
5253 return Ok(());
5254 }
5255
5256 while _next_ordinal_to_read < 6 {
5258 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5259 _next_ordinal_to_read += 1;
5260 next_offset += envelope_size;
5261 }
5262
5263 let next_out_of_line = decoder.next_out_of_line();
5264 let handles_before = decoder.remaining_handles();
5265 if let Some((inlined, num_bytes, num_handles)) =
5266 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5267 {
5268 let member_inline_size =
5269 <fidl::encoding::Vector<u8, 257> as fidl::encoding::TypeMarker>::inline_size(
5270 decoder.context,
5271 );
5272 if inlined != (member_inline_size <= 4) {
5273 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5274 }
5275 let inner_offset;
5276 let mut inner_depth = depth.clone();
5277 if inlined {
5278 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5279 inner_offset = next_offset;
5280 } else {
5281 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5282 inner_depth.increment()?;
5283 }
5284 let val_ref = self
5285 .security_ie
5286 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<u8, 257>, D));
5287 fidl::decode!(fidl::encoding::Vector<u8, 257>, D, val_ref, decoder, inner_offset, inner_depth)?;
5288 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5289 {
5290 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5291 }
5292 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5293 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5294 }
5295 }
5296
5297 next_offset += envelope_size;
5298 _next_ordinal_to_read += 1;
5299 if next_offset >= end_offset {
5300 return Ok(());
5301 }
5302
5303 while _next_ordinal_to_read < 7 {
5305 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5306 _next_ordinal_to_read += 1;
5307 next_offset += envelope_size;
5308 }
5309
5310 let next_out_of_line = decoder.next_out_of_line();
5311 let handles_before = decoder.remaining_handles();
5312 if let Some((inlined, num_bytes, num_handles)) =
5313 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5314 {
5315 let member_inline_size = <fidl_fuchsia_wlan_ieee80211__common::SetKeyDescriptor as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5316 if inlined != (member_inline_size <= 4) {
5317 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5318 }
5319 let inner_offset;
5320 let mut inner_depth = depth.clone();
5321 if inlined {
5322 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5323 inner_offset = next_offset;
5324 } else {
5325 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5326 inner_depth.increment()?;
5327 }
5328 let val_ref = self.wep_key_desc.get_or_insert_with(|| {
5329 fidl::new_empty!(fidl_fuchsia_wlan_ieee80211__common::SetKeyDescriptor, D)
5330 });
5331 fidl::decode!(
5332 fidl_fuchsia_wlan_ieee80211__common::SetKeyDescriptor,
5333 D,
5334 val_ref,
5335 decoder,
5336 inner_offset,
5337 inner_depth
5338 )?;
5339 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5340 {
5341 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5342 }
5343 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5344 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5345 }
5346 }
5347
5348 next_offset += envelope_size;
5349
5350 while next_offset < end_offset {
5352 _next_ordinal_to_read += 1;
5353 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5354 next_offset += envelope_size;
5355 }
5356
5357 Ok(())
5358 }
5359 }
5360
5361 impl WlanFullmacImplDeauthRequest {
5362 #[inline(always)]
5363 fn max_ordinal_present(&self) -> u64 {
5364 if let Some(_) = self.reason_code {
5365 return 2;
5366 }
5367 if let Some(_) = self.peer_sta_address {
5368 return 1;
5369 }
5370 0
5371 }
5372 }
5373
5374 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplDeauthRequest {
5375 type Borrowed<'a> = &'a Self;
5376 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
5377 value
5378 }
5379 }
5380
5381 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplDeauthRequest {
5382 type Owned = Self;
5383
5384 #[inline(always)]
5385 fn inline_align(_context: fidl::encoding::Context) -> usize {
5386 8
5387 }
5388
5389 #[inline(always)]
5390 fn inline_size(_context: fidl::encoding::Context) -> usize {
5391 16
5392 }
5393 }
5394
5395 unsafe impl<D: fidl::encoding::ResourceDialect>
5396 fidl::encoding::Encode<WlanFullmacImplDeauthRequest, D> for &WlanFullmacImplDeauthRequest
5397 {
5398 unsafe fn encode(
5399 self,
5400 encoder: &mut fidl::encoding::Encoder<'_, D>,
5401 offset: usize,
5402 mut depth: fidl::encoding::Depth,
5403 ) -> fidl::Result<()> {
5404 encoder.debug_check_bounds::<WlanFullmacImplDeauthRequest>(offset);
5405 let max_ordinal: u64 = self.max_ordinal_present();
5407 encoder.write_num(max_ordinal, offset);
5408 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
5409 if max_ordinal == 0 {
5411 return Ok(());
5412 }
5413 depth.increment()?;
5414 let envelope_size = 8;
5415 let bytes_len = max_ordinal as usize * envelope_size;
5416 #[allow(unused_variables)]
5417 let offset = encoder.out_of_line_offset(bytes_len);
5418 let mut _prev_end_offset: usize = 0;
5419 if 1 > max_ordinal {
5420 return Ok(());
5421 }
5422
5423 let cur_offset: usize = (1 - 1) * envelope_size;
5426
5427 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5429
5430 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
5435 self.peer_sta_address
5436 .as_ref()
5437 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
5438 encoder,
5439 offset + cur_offset,
5440 depth,
5441 )?;
5442
5443 _prev_end_offset = cur_offset + envelope_size;
5444 if 2 > max_ordinal {
5445 return Ok(());
5446 }
5447
5448 let cur_offset: usize = (2 - 1) * envelope_size;
5451
5452 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5454
5455 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_ieee80211__common::ReasonCode, D>(
5460 self.reason_code.as_ref().map(<fidl_fuchsia_wlan_ieee80211__common::ReasonCode as fidl::encoding::ValueTypeMarker>::borrow),
5461 encoder, offset + cur_offset, depth
5462 )?;
5463
5464 _prev_end_offset = cur_offset + envelope_size;
5465
5466 Ok(())
5467 }
5468 }
5469
5470 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
5471 for WlanFullmacImplDeauthRequest
5472 {
5473 #[inline(always)]
5474 fn new_empty() -> Self {
5475 Self::default()
5476 }
5477
5478 unsafe fn decode(
5479 &mut self,
5480 decoder: &mut fidl::encoding::Decoder<'_, D>,
5481 offset: usize,
5482 mut depth: fidl::encoding::Depth,
5483 ) -> fidl::Result<()> {
5484 decoder.debug_check_bounds::<Self>(offset);
5485 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
5486 None => return Err(fidl::Error::NotNullable),
5487 Some(len) => len,
5488 };
5489 if len == 0 {
5491 return Ok(());
5492 };
5493 depth.increment()?;
5494 let envelope_size = 8;
5495 let bytes_len = len * envelope_size;
5496 let offset = decoder.out_of_line_offset(bytes_len)?;
5497 let mut _next_ordinal_to_read = 0;
5499 let mut next_offset = offset;
5500 let end_offset = offset + bytes_len;
5501 _next_ordinal_to_read += 1;
5502 if next_offset >= end_offset {
5503 return Ok(());
5504 }
5505
5506 while _next_ordinal_to_read < 1 {
5508 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5509 _next_ordinal_to_read += 1;
5510 next_offset += envelope_size;
5511 }
5512
5513 let next_out_of_line = decoder.next_out_of_line();
5514 let handles_before = decoder.remaining_handles();
5515 if let Some((inlined, num_bytes, num_handles)) =
5516 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5517 {
5518 let member_inline_size =
5519 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
5520 decoder.context,
5521 );
5522 if inlined != (member_inline_size <= 4) {
5523 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5524 }
5525 let inner_offset;
5526 let mut inner_depth = depth.clone();
5527 if inlined {
5528 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5529 inner_offset = next_offset;
5530 } else {
5531 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5532 inner_depth.increment()?;
5533 }
5534 let val_ref = self
5535 .peer_sta_address
5536 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
5537 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
5538 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5539 {
5540 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5541 }
5542 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5543 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5544 }
5545 }
5546
5547 next_offset += envelope_size;
5548 _next_ordinal_to_read += 1;
5549 if next_offset >= end_offset {
5550 return Ok(());
5551 }
5552
5553 while _next_ordinal_to_read < 2 {
5555 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5556 _next_ordinal_to_read += 1;
5557 next_offset += envelope_size;
5558 }
5559
5560 let next_out_of_line = decoder.next_out_of_line();
5561 let handles_before = decoder.remaining_handles();
5562 if let Some((inlined, num_bytes, num_handles)) =
5563 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5564 {
5565 let member_inline_size = <fidl_fuchsia_wlan_ieee80211__common::ReasonCode as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5566 if inlined != (member_inline_size <= 4) {
5567 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5568 }
5569 let inner_offset;
5570 let mut inner_depth = depth.clone();
5571 if inlined {
5572 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5573 inner_offset = next_offset;
5574 } else {
5575 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5576 inner_depth.increment()?;
5577 }
5578 let val_ref = self.reason_code.get_or_insert_with(|| {
5579 fidl::new_empty!(fidl_fuchsia_wlan_ieee80211__common::ReasonCode, D)
5580 });
5581 fidl::decode!(
5582 fidl_fuchsia_wlan_ieee80211__common::ReasonCode,
5583 D,
5584 val_ref,
5585 decoder,
5586 inner_offset,
5587 inner_depth
5588 )?;
5589 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5590 {
5591 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5592 }
5593 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5594 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5595 }
5596 }
5597
5598 next_offset += envelope_size;
5599
5600 while next_offset < end_offset {
5602 _next_ordinal_to_read += 1;
5603 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5604 next_offset += envelope_size;
5605 }
5606
5607 Ok(())
5608 }
5609 }
5610
5611 impl WlanFullmacImplDisassocRequest {
5612 #[inline(always)]
5613 fn max_ordinal_present(&self) -> u64 {
5614 if let Some(_) = self.reason_code {
5615 return 2;
5616 }
5617 if let Some(_) = self.peer_sta_address {
5618 return 1;
5619 }
5620 0
5621 }
5622 }
5623
5624 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplDisassocRequest {
5625 type Borrowed<'a> = &'a Self;
5626 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
5627 value
5628 }
5629 }
5630
5631 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplDisassocRequest {
5632 type Owned = Self;
5633
5634 #[inline(always)]
5635 fn inline_align(_context: fidl::encoding::Context) -> usize {
5636 8
5637 }
5638
5639 #[inline(always)]
5640 fn inline_size(_context: fidl::encoding::Context) -> usize {
5641 16
5642 }
5643 }
5644
5645 unsafe impl<D: fidl::encoding::ResourceDialect>
5646 fidl::encoding::Encode<WlanFullmacImplDisassocRequest, D>
5647 for &WlanFullmacImplDisassocRequest
5648 {
5649 unsafe fn encode(
5650 self,
5651 encoder: &mut fidl::encoding::Encoder<'_, D>,
5652 offset: usize,
5653 mut depth: fidl::encoding::Depth,
5654 ) -> fidl::Result<()> {
5655 encoder.debug_check_bounds::<WlanFullmacImplDisassocRequest>(offset);
5656 let max_ordinal: u64 = self.max_ordinal_present();
5658 encoder.write_num(max_ordinal, offset);
5659 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
5660 if max_ordinal == 0 {
5662 return Ok(());
5663 }
5664 depth.increment()?;
5665 let envelope_size = 8;
5666 let bytes_len = max_ordinal as usize * envelope_size;
5667 #[allow(unused_variables)]
5668 let offset = encoder.out_of_line_offset(bytes_len);
5669 let mut _prev_end_offset: usize = 0;
5670 if 1 > max_ordinal {
5671 return Ok(());
5672 }
5673
5674 let cur_offset: usize = (1 - 1) * envelope_size;
5677
5678 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5680
5681 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
5686 self.peer_sta_address
5687 .as_ref()
5688 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
5689 encoder,
5690 offset + cur_offset,
5691 depth,
5692 )?;
5693
5694 _prev_end_offset = cur_offset + envelope_size;
5695 if 2 > max_ordinal {
5696 return Ok(());
5697 }
5698
5699 let cur_offset: usize = (2 - 1) * envelope_size;
5702
5703 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5705
5706 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_ieee80211__common::ReasonCode, D>(
5711 self.reason_code.as_ref().map(<fidl_fuchsia_wlan_ieee80211__common::ReasonCode as fidl::encoding::ValueTypeMarker>::borrow),
5712 encoder, offset + cur_offset, depth
5713 )?;
5714
5715 _prev_end_offset = cur_offset + envelope_size;
5716
5717 Ok(())
5718 }
5719 }
5720
5721 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
5722 for WlanFullmacImplDisassocRequest
5723 {
5724 #[inline(always)]
5725 fn new_empty() -> Self {
5726 Self::default()
5727 }
5728
5729 unsafe fn decode(
5730 &mut self,
5731 decoder: &mut fidl::encoding::Decoder<'_, D>,
5732 offset: usize,
5733 mut depth: fidl::encoding::Depth,
5734 ) -> fidl::Result<()> {
5735 decoder.debug_check_bounds::<Self>(offset);
5736 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
5737 None => return Err(fidl::Error::NotNullable),
5738 Some(len) => len,
5739 };
5740 if len == 0 {
5742 return Ok(());
5743 };
5744 depth.increment()?;
5745 let envelope_size = 8;
5746 let bytes_len = len * envelope_size;
5747 let offset = decoder.out_of_line_offset(bytes_len)?;
5748 let mut _next_ordinal_to_read = 0;
5750 let mut next_offset = offset;
5751 let end_offset = offset + bytes_len;
5752 _next_ordinal_to_read += 1;
5753 if next_offset >= end_offset {
5754 return Ok(());
5755 }
5756
5757 while _next_ordinal_to_read < 1 {
5759 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5760 _next_ordinal_to_read += 1;
5761 next_offset += envelope_size;
5762 }
5763
5764 let next_out_of_line = decoder.next_out_of_line();
5765 let handles_before = decoder.remaining_handles();
5766 if let Some((inlined, num_bytes, num_handles)) =
5767 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5768 {
5769 let member_inline_size =
5770 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
5771 decoder.context,
5772 );
5773 if inlined != (member_inline_size <= 4) {
5774 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5775 }
5776 let inner_offset;
5777 let mut inner_depth = depth.clone();
5778 if inlined {
5779 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5780 inner_offset = next_offset;
5781 } else {
5782 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5783 inner_depth.increment()?;
5784 }
5785 let val_ref = self
5786 .peer_sta_address
5787 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
5788 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
5789 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5790 {
5791 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5792 }
5793 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5794 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5795 }
5796 }
5797
5798 next_offset += envelope_size;
5799 _next_ordinal_to_read += 1;
5800 if next_offset >= end_offset {
5801 return Ok(());
5802 }
5803
5804 while _next_ordinal_to_read < 2 {
5806 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5807 _next_ordinal_to_read += 1;
5808 next_offset += envelope_size;
5809 }
5810
5811 let next_out_of_line = decoder.next_out_of_line();
5812 let handles_before = decoder.remaining_handles();
5813 if let Some((inlined, num_bytes, num_handles)) =
5814 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5815 {
5816 let member_inline_size = <fidl_fuchsia_wlan_ieee80211__common::ReasonCode as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5817 if inlined != (member_inline_size <= 4) {
5818 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5819 }
5820 let inner_offset;
5821 let mut inner_depth = depth.clone();
5822 if inlined {
5823 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5824 inner_offset = next_offset;
5825 } else {
5826 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5827 inner_depth.increment()?;
5828 }
5829 let val_ref = self.reason_code.get_or_insert_with(|| {
5830 fidl::new_empty!(fidl_fuchsia_wlan_ieee80211__common::ReasonCode, D)
5831 });
5832 fidl::decode!(
5833 fidl_fuchsia_wlan_ieee80211__common::ReasonCode,
5834 D,
5835 val_ref,
5836 decoder,
5837 inner_offset,
5838 inner_depth
5839 )?;
5840 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5841 {
5842 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5843 }
5844 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5845 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5846 }
5847 }
5848
5849 next_offset += envelope_size;
5850
5851 while next_offset < end_offset {
5853 _next_ordinal_to_read += 1;
5854 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5855 next_offset += envelope_size;
5856 }
5857
5858 Ok(())
5859 }
5860 }
5861
5862 impl WlanFullmacImplEapolTxRequest {
5863 #[inline(always)]
5864 fn max_ordinal_present(&self) -> u64 {
5865 if let Some(_) = self.data {
5866 return 3;
5867 }
5868 if let Some(_) = self.dst_addr {
5869 return 2;
5870 }
5871 if let Some(_) = self.src_addr {
5872 return 1;
5873 }
5874 0
5875 }
5876 }
5877
5878 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplEapolTxRequest {
5879 type Borrowed<'a> = &'a Self;
5880 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
5881 value
5882 }
5883 }
5884
5885 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplEapolTxRequest {
5886 type Owned = Self;
5887
5888 #[inline(always)]
5889 fn inline_align(_context: fidl::encoding::Context) -> usize {
5890 8
5891 }
5892
5893 #[inline(always)]
5894 fn inline_size(_context: fidl::encoding::Context) -> usize {
5895 16
5896 }
5897 }
5898
5899 unsafe impl<D: fidl::encoding::ResourceDialect>
5900 fidl::encoding::Encode<WlanFullmacImplEapolTxRequest, D>
5901 for &WlanFullmacImplEapolTxRequest
5902 {
5903 unsafe fn encode(
5904 self,
5905 encoder: &mut fidl::encoding::Encoder<'_, D>,
5906 offset: usize,
5907 mut depth: fidl::encoding::Depth,
5908 ) -> fidl::Result<()> {
5909 encoder.debug_check_bounds::<WlanFullmacImplEapolTxRequest>(offset);
5910 let max_ordinal: u64 = self.max_ordinal_present();
5912 encoder.write_num(max_ordinal, offset);
5913 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
5914 if max_ordinal == 0 {
5916 return Ok(());
5917 }
5918 depth.increment()?;
5919 let envelope_size = 8;
5920 let bytes_len = max_ordinal as usize * envelope_size;
5921 #[allow(unused_variables)]
5922 let offset = encoder.out_of_line_offset(bytes_len);
5923 let mut _prev_end_offset: usize = 0;
5924 if 1 > max_ordinal {
5925 return Ok(());
5926 }
5927
5928 let cur_offset: usize = (1 - 1) * envelope_size;
5931
5932 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5934
5935 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
5940 self.src_addr
5941 .as_ref()
5942 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
5943 encoder,
5944 offset + cur_offset,
5945 depth,
5946 )?;
5947
5948 _prev_end_offset = cur_offset + envelope_size;
5949 if 2 > max_ordinal {
5950 return Ok(());
5951 }
5952
5953 let cur_offset: usize = (2 - 1) * envelope_size;
5956
5957 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5959
5960 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
5965 self.dst_addr
5966 .as_ref()
5967 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
5968 encoder,
5969 offset + cur_offset,
5970 depth,
5971 )?;
5972
5973 _prev_end_offset = cur_offset + envelope_size;
5974 if 3 > max_ordinal {
5975 return Ok(());
5976 }
5977
5978 let cur_offset: usize = (3 - 1) * envelope_size;
5981
5982 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5984
5985 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<u8>, D>(
5990 self.data.as_ref().map(<fidl::encoding::UnboundedVector<u8> as fidl::encoding::ValueTypeMarker>::borrow),
5991 encoder, offset + cur_offset, depth
5992 )?;
5993
5994 _prev_end_offset = cur_offset + envelope_size;
5995
5996 Ok(())
5997 }
5998 }
5999
6000 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
6001 for WlanFullmacImplEapolTxRequest
6002 {
6003 #[inline(always)]
6004 fn new_empty() -> Self {
6005 Self::default()
6006 }
6007
6008 unsafe fn decode(
6009 &mut self,
6010 decoder: &mut fidl::encoding::Decoder<'_, D>,
6011 offset: usize,
6012 mut depth: fidl::encoding::Depth,
6013 ) -> fidl::Result<()> {
6014 decoder.debug_check_bounds::<Self>(offset);
6015 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
6016 None => return Err(fidl::Error::NotNullable),
6017 Some(len) => len,
6018 };
6019 if len == 0 {
6021 return Ok(());
6022 };
6023 depth.increment()?;
6024 let envelope_size = 8;
6025 let bytes_len = len * envelope_size;
6026 let offset = decoder.out_of_line_offset(bytes_len)?;
6027 let mut _next_ordinal_to_read = 0;
6029 let mut next_offset = offset;
6030 let end_offset = offset + bytes_len;
6031 _next_ordinal_to_read += 1;
6032 if next_offset >= end_offset {
6033 return Ok(());
6034 }
6035
6036 while _next_ordinal_to_read < 1 {
6038 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6039 _next_ordinal_to_read += 1;
6040 next_offset += envelope_size;
6041 }
6042
6043 let next_out_of_line = decoder.next_out_of_line();
6044 let handles_before = decoder.remaining_handles();
6045 if let Some((inlined, num_bytes, num_handles)) =
6046 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6047 {
6048 let member_inline_size =
6049 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
6050 decoder.context,
6051 );
6052 if inlined != (member_inline_size <= 4) {
6053 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6054 }
6055 let inner_offset;
6056 let mut inner_depth = depth.clone();
6057 if inlined {
6058 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6059 inner_offset = next_offset;
6060 } else {
6061 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6062 inner_depth.increment()?;
6063 }
6064 let val_ref = self
6065 .src_addr
6066 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
6067 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
6068 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6069 {
6070 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6071 }
6072 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6073 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6074 }
6075 }
6076
6077 next_offset += envelope_size;
6078 _next_ordinal_to_read += 1;
6079 if next_offset >= end_offset {
6080 return Ok(());
6081 }
6082
6083 while _next_ordinal_to_read < 2 {
6085 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6086 _next_ordinal_to_read += 1;
6087 next_offset += envelope_size;
6088 }
6089
6090 let next_out_of_line = decoder.next_out_of_line();
6091 let handles_before = decoder.remaining_handles();
6092 if let Some((inlined, num_bytes, num_handles)) =
6093 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6094 {
6095 let member_inline_size =
6096 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
6097 decoder.context,
6098 );
6099 if inlined != (member_inline_size <= 4) {
6100 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6101 }
6102 let inner_offset;
6103 let mut inner_depth = depth.clone();
6104 if inlined {
6105 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6106 inner_offset = next_offset;
6107 } else {
6108 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6109 inner_depth.increment()?;
6110 }
6111 let val_ref = self
6112 .dst_addr
6113 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
6114 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
6115 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6116 {
6117 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6118 }
6119 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6120 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6121 }
6122 }
6123
6124 next_offset += envelope_size;
6125 _next_ordinal_to_read += 1;
6126 if next_offset >= end_offset {
6127 return Ok(());
6128 }
6129
6130 while _next_ordinal_to_read < 3 {
6132 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6133 _next_ordinal_to_read += 1;
6134 next_offset += envelope_size;
6135 }
6136
6137 let next_out_of_line = decoder.next_out_of_line();
6138 let handles_before = decoder.remaining_handles();
6139 if let Some((inlined, num_bytes, num_handles)) =
6140 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6141 {
6142 let member_inline_size = <fidl::encoding::UnboundedVector<u8> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6143 if inlined != (member_inline_size <= 4) {
6144 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6145 }
6146 let inner_offset;
6147 let mut inner_depth = depth.clone();
6148 if inlined {
6149 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6150 inner_offset = next_offset;
6151 } else {
6152 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6153 inner_depth.increment()?;
6154 }
6155 let val_ref = self.data.get_or_insert_with(|| {
6156 fidl::new_empty!(fidl::encoding::UnboundedVector<u8>, D)
6157 });
6158 fidl::decode!(
6159 fidl::encoding::UnboundedVector<u8>,
6160 D,
6161 val_ref,
6162 decoder,
6163 inner_offset,
6164 inner_depth
6165 )?;
6166 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6167 {
6168 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6169 }
6170 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6171 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6172 }
6173 }
6174
6175 next_offset += envelope_size;
6176
6177 while next_offset < end_offset {
6179 _next_ordinal_to_read += 1;
6180 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6181 next_offset += envelope_size;
6182 }
6183
6184 Ok(())
6185 }
6186 }
6187
6188 impl WlanFullmacImplIfcAssocIndRequest {
6189 #[inline(always)]
6190 fn max_ordinal_present(&self) -> u64 {
6191 if let Some(_) = self.vendor_ie {
6192 return 5;
6193 }
6194 if let Some(_) = self.rsne {
6195 return 4;
6196 }
6197 if let Some(_) = self.ssid {
6198 return 3;
6199 }
6200 if let Some(_) = self.listen_interval {
6201 return 2;
6202 }
6203 if let Some(_) = self.peer_sta_address {
6204 return 1;
6205 }
6206 0
6207 }
6208 }
6209
6210 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcAssocIndRequest {
6211 type Borrowed<'a> = &'a Self;
6212 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
6213 value
6214 }
6215 }
6216
6217 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcAssocIndRequest {
6218 type Owned = Self;
6219
6220 #[inline(always)]
6221 fn inline_align(_context: fidl::encoding::Context) -> usize {
6222 8
6223 }
6224
6225 #[inline(always)]
6226 fn inline_size(_context: fidl::encoding::Context) -> usize {
6227 16
6228 }
6229 }
6230
6231 unsafe impl<D: fidl::encoding::ResourceDialect>
6232 fidl::encoding::Encode<WlanFullmacImplIfcAssocIndRequest, D>
6233 for &WlanFullmacImplIfcAssocIndRequest
6234 {
6235 unsafe fn encode(
6236 self,
6237 encoder: &mut fidl::encoding::Encoder<'_, D>,
6238 offset: usize,
6239 mut depth: fidl::encoding::Depth,
6240 ) -> fidl::Result<()> {
6241 encoder.debug_check_bounds::<WlanFullmacImplIfcAssocIndRequest>(offset);
6242 let max_ordinal: u64 = self.max_ordinal_present();
6244 encoder.write_num(max_ordinal, offset);
6245 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
6246 if max_ordinal == 0 {
6248 return Ok(());
6249 }
6250 depth.increment()?;
6251 let envelope_size = 8;
6252 let bytes_len = max_ordinal as usize * envelope_size;
6253 #[allow(unused_variables)]
6254 let offset = encoder.out_of_line_offset(bytes_len);
6255 let mut _prev_end_offset: usize = 0;
6256 if 1 > max_ordinal {
6257 return Ok(());
6258 }
6259
6260 let cur_offset: usize = (1 - 1) * envelope_size;
6263
6264 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6266
6267 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
6272 self.peer_sta_address
6273 .as_ref()
6274 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
6275 encoder,
6276 offset + cur_offset,
6277 depth,
6278 )?;
6279
6280 _prev_end_offset = cur_offset + envelope_size;
6281 if 2 > max_ordinal {
6282 return Ok(());
6283 }
6284
6285 let cur_offset: usize = (2 - 1) * envelope_size;
6288
6289 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6291
6292 fidl::encoding::encode_in_envelope_optional::<u16, D>(
6297 self.listen_interval.as_ref().map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
6298 encoder,
6299 offset + cur_offset,
6300 depth,
6301 )?;
6302
6303 _prev_end_offset = cur_offset + envelope_size;
6304 if 3 > max_ordinal {
6305 return Ok(());
6306 }
6307
6308 let cur_offset: usize = (3 - 1) * envelope_size;
6311
6312 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6314
6315 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<u8, 32>, D>(
6320 self.ssid.as_ref().map(
6321 <fidl::encoding::Vector<u8, 32> as fidl::encoding::ValueTypeMarker>::borrow,
6322 ),
6323 encoder,
6324 offset + cur_offset,
6325 depth,
6326 )?;
6327
6328 _prev_end_offset = cur_offset + envelope_size;
6329 if 4 > max_ordinal {
6330 return Ok(());
6331 }
6332
6333 let cur_offset: usize = (4 - 1) * envelope_size;
6336
6337 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6339
6340 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<u8, 257>, D>(
6345 self.rsne.as_ref().map(
6346 <fidl::encoding::Vector<u8, 257> as fidl::encoding::ValueTypeMarker>::borrow,
6347 ),
6348 encoder,
6349 offset + cur_offset,
6350 depth,
6351 )?;
6352
6353 _prev_end_offset = cur_offset + envelope_size;
6354 if 5 > max_ordinal {
6355 return Ok(());
6356 }
6357
6358 let cur_offset: usize = (5 - 1) * envelope_size;
6361
6362 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6364
6365 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<u8, 514>, D>(
6370 self.vendor_ie.as_ref().map(
6371 <fidl::encoding::Vector<u8, 514> as fidl::encoding::ValueTypeMarker>::borrow,
6372 ),
6373 encoder,
6374 offset + cur_offset,
6375 depth,
6376 )?;
6377
6378 _prev_end_offset = cur_offset + envelope_size;
6379
6380 Ok(())
6381 }
6382 }
6383
6384 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
6385 for WlanFullmacImplIfcAssocIndRequest
6386 {
6387 #[inline(always)]
6388 fn new_empty() -> Self {
6389 Self::default()
6390 }
6391
6392 unsafe fn decode(
6393 &mut self,
6394 decoder: &mut fidl::encoding::Decoder<'_, D>,
6395 offset: usize,
6396 mut depth: fidl::encoding::Depth,
6397 ) -> fidl::Result<()> {
6398 decoder.debug_check_bounds::<Self>(offset);
6399 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
6400 None => return Err(fidl::Error::NotNullable),
6401 Some(len) => len,
6402 };
6403 if len == 0 {
6405 return Ok(());
6406 };
6407 depth.increment()?;
6408 let envelope_size = 8;
6409 let bytes_len = len * envelope_size;
6410 let offset = decoder.out_of_line_offset(bytes_len)?;
6411 let mut _next_ordinal_to_read = 0;
6413 let mut next_offset = offset;
6414 let end_offset = offset + bytes_len;
6415 _next_ordinal_to_read += 1;
6416 if next_offset >= end_offset {
6417 return Ok(());
6418 }
6419
6420 while _next_ordinal_to_read < 1 {
6422 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6423 _next_ordinal_to_read += 1;
6424 next_offset += envelope_size;
6425 }
6426
6427 let next_out_of_line = decoder.next_out_of_line();
6428 let handles_before = decoder.remaining_handles();
6429 if let Some((inlined, num_bytes, num_handles)) =
6430 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6431 {
6432 let member_inline_size =
6433 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
6434 decoder.context,
6435 );
6436 if inlined != (member_inline_size <= 4) {
6437 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6438 }
6439 let inner_offset;
6440 let mut inner_depth = depth.clone();
6441 if inlined {
6442 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6443 inner_offset = next_offset;
6444 } else {
6445 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6446 inner_depth.increment()?;
6447 }
6448 let val_ref = self
6449 .peer_sta_address
6450 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
6451 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
6452 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6453 {
6454 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6455 }
6456 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6457 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6458 }
6459 }
6460
6461 next_offset += envelope_size;
6462 _next_ordinal_to_read += 1;
6463 if next_offset >= end_offset {
6464 return Ok(());
6465 }
6466
6467 while _next_ordinal_to_read < 2 {
6469 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6470 _next_ordinal_to_read += 1;
6471 next_offset += envelope_size;
6472 }
6473
6474 let next_out_of_line = decoder.next_out_of_line();
6475 let handles_before = decoder.remaining_handles();
6476 if let Some((inlined, num_bytes, num_handles)) =
6477 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6478 {
6479 let member_inline_size =
6480 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6481 if inlined != (member_inline_size <= 4) {
6482 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6483 }
6484 let inner_offset;
6485 let mut inner_depth = depth.clone();
6486 if inlined {
6487 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6488 inner_offset = next_offset;
6489 } else {
6490 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6491 inner_depth.increment()?;
6492 }
6493 let val_ref = self.listen_interval.get_or_insert_with(|| fidl::new_empty!(u16, D));
6494 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
6495 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6496 {
6497 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6498 }
6499 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6500 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6501 }
6502 }
6503
6504 next_offset += envelope_size;
6505 _next_ordinal_to_read += 1;
6506 if next_offset >= end_offset {
6507 return Ok(());
6508 }
6509
6510 while _next_ordinal_to_read < 3 {
6512 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6513 _next_ordinal_to_read += 1;
6514 next_offset += envelope_size;
6515 }
6516
6517 let next_out_of_line = decoder.next_out_of_line();
6518 let handles_before = decoder.remaining_handles();
6519 if let Some((inlined, num_bytes, num_handles)) =
6520 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6521 {
6522 let member_inline_size =
6523 <fidl::encoding::Vector<u8, 32> as fidl::encoding::TypeMarker>::inline_size(
6524 decoder.context,
6525 );
6526 if inlined != (member_inline_size <= 4) {
6527 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6528 }
6529 let inner_offset;
6530 let mut inner_depth = depth.clone();
6531 if inlined {
6532 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6533 inner_offset = next_offset;
6534 } else {
6535 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6536 inner_depth.increment()?;
6537 }
6538 let val_ref = self
6539 .ssid
6540 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<u8, 32>, D));
6541 fidl::decode!(fidl::encoding::Vector<u8, 32>, D, val_ref, decoder, inner_offset, inner_depth)?;
6542 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6543 {
6544 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6545 }
6546 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6547 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6548 }
6549 }
6550
6551 next_offset += envelope_size;
6552 _next_ordinal_to_read += 1;
6553 if next_offset >= end_offset {
6554 return Ok(());
6555 }
6556
6557 while _next_ordinal_to_read < 4 {
6559 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6560 _next_ordinal_to_read += 1;
6561 next_offset += envelope_size;
6562 }
6563
6564 let next_out_of_line = decoder.next_out_of_line();
6565 let handles_before = decoder.remaining_handles();
6566 if let Some((inlined, num_bytes, num_handles)) =
6567 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6568 {
6569 let member_inline_size =
6570 <fidl::encoding::Vector<u8, 257> as fidl::encoding::TypeMarker>::inline_size(
6571 decoder.context,
6572 );
6573 if inlined != (member_inline_size <= 4) {
6574 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6575 }
6576 let inner_offset;
6577 let mut inner_depth = depth.clone();
6578 if inlined {
6579 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6580 inner_offset = next_offset;
6581 } else {
6582 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6583 inner_depth.increment()?;
6584 }
6585 let val_ref = self
6586 .rsne
6587 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<u8, 257>, D));
6588 fidl::decode!(fidl::encoding::Vector<u8, 257>, D, val_ref, decoder, inner_offset, inner_depth)?;
6589 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6590 {
6591 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6592 }
6593 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6594 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6595 }
6596 }
6597
6598 next_offset += envelope_size;
6599 _next_ordinal_to_read += 1;
6600 if next_offset >= end_offset {
6601 return Ok(());
6602 }
6603
6604 while _next_ordinal_to_read < 5 {
6606 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6607 _next_ordinal_to_read += 1;
6608 next_offset += envelope_size;
6609 }
6610
6611 let next_out_of_line = decoder.next_out_of_line();
6612 let handles_before = decoder.remaining_handles();
6613 if let Some((inlined, num_bytes, num_handles)) =
6614 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6615 {
6616 let member_inline_size =
6617 <fidl::encoding::Vector<u8, 514> as fidl::encoding::TypeMarker>::inline_size(
6618 decoder.context,
6619 );
6620 if inlined != (member_inline_size <= 4) {
6621 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6622 }
6623 let inner_offset;
6624 let mut inner_depth = depth.clone();
6625 if inlined {
6626 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6627 inner_offset = next_offset;
6628 } else {
6629 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6630 inner_depth.increment()?;
6631 }
6632 let val_ref = self
6633 .vendor_ie
6634 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<u8, 514>, D));
6635 fidl::decode!(fidl::encoding::Vector<u8, 514>, D, val_ref, decoder, inner_offset, inner_depth)?;
6636 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6637 {
6638 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6639 }
6640 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6641 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6642 }
6643 }
6644
6645 next_offset += envelope_size;
6646
6647 while next_offset < end_offset {
6649 _next_ordinal_to_read += 1;
6650 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6651 next_offset += envelope_size;
6652 }
6653
6654 Ok(())
6655 }
6656 }
6657
6658 impl WlanFullmacImplIfcAuthIndRequest {
6659 #[inline(always)]
6660 fn max_ordinal_present(&self) -> u64 {
6661 if let Some(_) = self.auth_type {
6662 return 2;
6663 }
6664 if let Some(_) = self.peer_sta_address {
6665 return 1;
6666 }
6667 0
6668 }
6669 }
6670
6671 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcAuthIndRequest {
6672 type Borrowed<'a> = &'a Self;
6673 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
6674 value
6675 }
6676 }
6677
6678 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcAuthIndRequest {
6679 type Owned = Self;
6680
6681 #[inline(always)]
6682 fn inline_align(_context: fidl::encoding::Context) -> usize {
6683 8
6684 }
6685
6686 #[inline(always)]
6687 fn inline_size(_context: fidl::encoding::Context) -> usize {
6688 16
6689 }
6690 }
6691
6692 unsafe impl<D: fidl::encoding::ResourceDialect>
6693 fidl::encoding::Encode<WlanFullmacImplIfcAuthIndRequest, D>
6694 for &WlanFullmacImplIfcAuthIndRequest
6695 {
6696 unsafe fn encode(
6697 self,
6698 encoder: &mut fidl::encoding::Encoder<'_, D>,
6699 offset: usize,
6700 mut depth: fidl::encoding::Depth,
6701 ) -> fidl::Result<()> {
6702 encoder.debug_check_bounds::<WlanFullmacImplIfcAuthIndRequest>(offset);
6703 let max_ordinal: u64 = self.max_ordinal_present();
6705 encoder.write_num(max_ordinal, offset);
6706 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
6707 if max_ordinal == 0 {
6709 return Ok(());
6710 }
6711 depth.increment()?;
6712 let envelope_size = 8;
6713 let bytes_len = max_ordinal as usize * envelope_size;
6714 #[allow(unused_variables)]
6715 let offset = encoder.out_of_line_offset(bytes_len);
6716 let mut _prev_end_offset: usize = 0;
6717 if 1 > max_ordinal {
6718 return Ok(());
6719 }
6720
6721 let cur_offset: usize = (1 - 1) * envelope_size;
6724
6725 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6727
6728 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
6733 self.peer_sta_address
6734 .as_ref()
6735 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
6736 encoder,
6737 offset + cur_offset,
6738 depth,
6739 )?;
6740
6741 _prev_end_offset = cur_offset + envelope_size;
6742 if 2 > max_ordinal {
6743 return Ok(());
6744 }
6745
6746 let cur_offset: usize = (2 - 1) * envelope_size;
6749
6750 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6752
6753 fidl::encoding::encode_in_envelope_optional::<WlanAuthType, D>(
6758 self.auth_type
6759 .as_ref()
6760 .map(<WlanAuthType as fidl::encoding::ValueTypeMarker>::borrow),
6761 encoder,
6762 offset + cur_offset,
6763 depth,
6764 )?;
6765
6766 _prev_end_offset = cur_offset + envelope_size;
6767
6768 Ok(())
6769 }
6770 }
6771
6772 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
6773 for WlanFullmacImplIfcAuthIndRequest
6774 {
6775 #[inline(always)]
6776 fn new_empty() -> Self {
6777 Self::default()
6778 }
6779
6780 unsafe fn decode(
6781 &mut self,
6782 decoder: &mut fidl::encoding::Decoder<'_, D>,
6783 offset: usize,
6784 mut depth: fidl::encoding::Depth,
6785 ) -> fidl::Result<()> {
6786 decoder.debug_check_bounds::<Self>(offset);
6787 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
6788 None => return Err(fidl::Error::NotNullable),
6789 Some(len) => len,
6790 };
6791 if len == 0 {
6793 return Ok(());
6794 };
6795 depth.increment()?;
6796 let envelope_size = 8;
6797 let bytes_len = len * envelope_size;
6798 let offset = decoder.out_of_line_offset(bytes_len)?;
6799 let mut _next_ordinal_to_read = 0;
6801 let mut next_offset = offset;
6802 let end_offset = offset + bytes_len;
6803 _next_ordinal_to_read += 1;
6804 if next_offset >= end_offset {
6805 return Ok(());
6806 }
6807
6808 while _next_ordinal_to_read < 1 {
6810 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6811 _next_ordinal_to_read += 1;
6812 next_offset += envelope_size;
6813 }
6814
6815 let next_out_of_line = decoder.next_out_of_line();
6816 let handles_before = decoder.remaining_handles();
6817 if let Some((inlined, num_bytes, num_handles)) =
6818 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6819 {
6820 let member_inline_size =
6821 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
6822 decoder.context,
6823 );
6824 if inlined != (member_inline_size <= 4) {
6825 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6826 }
6827 let inner_offset;
6828 let mut inner_depth = depth.clone();
6829 if inlined {
6830 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6831 inner_offset = next_offset;
6832 } else {
6833 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6834 inner_depth.increment()?;
6835 }
6836 let val_ref = self
6837 .peer_sta_address
6838 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
6839 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
6840 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6841 {
6842 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6843 }
6844 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6845 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6846 }
6847 }
6848
6849 next_offset += envelope_size;
6850 _next_ordinal_to_read += 1;
6851 if next_offset >= end_offset {
6852 return Ok(());
6853 }
6854
6855 while _next_ordinal_to_read < 2 {
6857 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6858 _next_ordinal_to_read += 1;
6859 next_offset += envelope_size;
6860 }
6861
6862 let next_out_of_line = decoder.next_out_of_line();
6863 let handles_before = decoder.remaining_handles();
6864 if let Some((inlined, num_bytes, num_handles)) =
6865 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6866 {
6867 let member_inline_size =
6868 <WlanAuthType as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6869 if inlined != (member_inline_size <= 4) {
6870 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6871 }
6872 let inner_offset;
6873 let mut inner_depth = depth.clone();
6874 if inlined {
6875 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6876 inner_offset = next_offset;
6877 } else {
6878 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6879 inner_depth.increment()?;
6880 }
6881 let val_ref =
6882 self.auth_type.get_or_insert_with(|| fidl::new_empty!(WlanAuthType, D));
6883 fidl::decode!(WlanAuthType, D, val_ref, decoder, inner_offset, inner_depth)?;
6884 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6885 {
6886 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6887 }
6888 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6889 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6890 }
6891 }
6892
6893 next_offset += envelope_size;
6894
6895 while next_offset < end_offset {
6897 _next_ordinal_to_read += 1;
6898 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6899 next_offset += envelope_size;
6900 }
6901
6902 Ok(())
6903 }
6904 }
6905
6906 impl WlanFullmacImplIfcConnectConfRequest {
6907 #[inline(always)]
6908 fn max_ordinal_present(&self) -> u64 {
6909 if let Some(_) = self.association_ies {
6910 return 4;
6911 }
6912 if let Some(_) = self.association_id {
6913 return 3;
6914 }
6915 if let Some(_) = self.result_code {
6916 return 2;
6917 }
6918 if let Some(_) = self.peer_sta_address {
6919 return 1;
6920 }
6921 0
6922 }
6923 }
6924
6925 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcConnectConfRequest {
6926 type Borrowed<'a> = &'a Self;
6927 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
6928 value
6929 }
6930 }
6931
6932 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcConnectConfRequest {
6933 type Owned = Self;
6934
6935 #[inline(always)]
6936 fn inline_align(_context: fidl::encoding::Context) -> usize {
6937 8
6938 }
6939
6940 #[inline(always)]
6941 fn inline_size(_context: fidl::encoding::Context) -> usize {
6942 16
6943 }
6944 }
6945
6946 unsafe impl<D: fidl::encoding::ResourceDialect>
6947 fidl::encoding::Encode<WlanFullmacImplIfcConnectConfRequest, D>
6948 for &WlanFullmacImplIfcConnectConfRequest
6949 {
6950 unsafe fn encode(
6951 self,
6952 encoder: &mut fidl::encoding::Encoder<'_, D>,
6953 offset: usize,
6954 mut depth: fidl::encoding::Depth,
6955 ) -> fidl::Result<()> {
6956 encoder.debug_check_bounds::<WlanFullmacImplIfcConnectConfRequest>(offset);
6957 let max_ordinal: u64 = self.max_ordinal_present();
6959 encoder.write_num(max_ordinal, offset);
6960 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
6961 if max_ordinal == 0 {
6963 return Ok(());
6964 }
6965 depth.increment()?;
6966 let envelope_size = 8;
6967 let bytes_len = max_ordinal as usize * envelope_size;
6968 #[allow(unused_variables)]
6969 let offset = encoder.out_of_line_offset(bytes_len);
6970 let mut _prev_end_offset: usize = 0;
6971 if 1 > max_ordinal {
6972 return Ok(());
6973 }
6974
6975 let cur_offset: usize = (1 - 1) * envelope_size;
6978
6979 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6981
6982 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
6987 self.peer_sta_address
6988 .as_ref()
6989 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
6990 encoder,
6991 offset + cur_offset,
6992 depth,
6993 )?;
6994
6995 _prev_end_offset = cur_offset + envelope_size;
6996 if 2 > max_ordinal {
6997 return Ok(());
6998 }
6999
7000 let cur_offset: usize = (2 - 1) * envelope_size;
7003
7004 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7006
7007 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_ieee80211__common::StatusCode, D>(
7012 self.result_code.as_ref().map(<fidl_fuchsia_wlan_ieee80211__common::StatusCode as fidl::encoding::ValueTypeMarker>::borrow),
7013 encoder, offset + cur_offset, depth
7014 )?;
7015
7016 _prev_end_offset = cur_offset + envelope_size;
7017 if 3 > max_ordinal {
7018 return Ok(());
7019 }
7020
7021 let cur_offset: usize = (3 - 1) * envelope_size;
7024
7025 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7027
7028 fidl::encoding::encode_in_envelope_optional::<u16, D>(
7033 self.association_id.as_ref().map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
7034 encoder,
7035 offset + cur_offset,
7036 depth,
7037 )?;
7038
7039 _prev_end_offset = cur_offset + envelope_size;
7040 if 4 > max_ordinal {
7041 return Ok(());
7042 }
7043
7044 let cur_offset: usize = (4 - 1) * envelope_size;
7047
7048 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7050
7051 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<u8>, D>(
7056 self.association_ies.as_ref().map(<fidl::encoding::UnboundedVector<u8> as fidl::encoding::ValueTypeMarker>::borrow),
7057 encoder, offset + cur_offset, depth
7058 )?;
7059
7060 _prev_end_offset = cur_offset + envelope_size;
7061
7062 Ok(())
7063 }
7064 }
7065
7066 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
7067 for WlanFullmacImplIfcConnectConfRequest
7068 {
7069 #[inline(always)]
7070 fn new_empty() -> Self {
7071 Self::default()
7072 }
7073
7074 unsafe fn decode(
7075 &mut self,
7076 decoder: &mut fidl::encoding::Decoder<'_, D>,
7077 offset: usize,
7078 mut depth: fidl::encoding::Depth,
7079 ) -> fidl::Result<()> {
7080 decoder.debug_check_bounds::<Self>(offset);
7081 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
7082 None => return Err(fidl::Error::NotNullable),
7083 Some(len) => len,
7084 };
7085 if len == 0 {
7087 return Ok(());
7088 };
7089 depth.increment()?;
7090 let envelope_size = 8;
7091 let bytes_len = len * envelope_size;
7092 let offset = decoder.out_of_line_offset(bytes_len)?;
7093 let mut _next_ordinal_to_read = 0;
7095 let mut next_offset = offset;
7096 let end_offset = offset + bytes_len;
7097 _next_ordinal_to_read += 1;
7098 if next_offset >= end_offset {
7099 return Ok(());
7100 }
7101
7102 while _next_ordinal_to_read < 1 {
7104 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7105 _next_ordinal_to_read += 1;
7106 next_offset += envelope_size;
7107 }
7108
7109 let next_out_of_line = decoder.next_out_of_line();
7110 let handles_before = decoder.remaining_handles();
7111 if let Some((inlined, num_bytes, num_handles)) =
7112 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7113 {
7114 let member_inline_size =
7115 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
7116 decoder.context,
7117 );
7118 if inlined != (member_inline_size <= 4) {
7119 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7120 }
7121 let inner_offset;
7122 let mut inner_depth = depth.clone();
7123 if inlined {
7124 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7125 inner_offset = next_offset;
7126 } else {
7127 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7128 inner_depth.increment()?;
7129 }
7130 let val_ref = self
7131 .peer_sta_address
7132 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
7133 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
7134 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7135 {
7136 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7137 }
7138 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7139 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7140 }
7141 }
7142
7143 next_offset += envelope_size;
7144 _next_ordinal_to_read += 1;
7145 if next_offset >= end_offset {
7146 return Ok(());
7147 }
7148
7149 while _next_ordinal_to_read < 2 {
7151 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7152 _next_ordinal_to_read += 1;
7153 next_offset += envelope_size;
7154 }
7155
7156 let next_out_of_line = decoder.next_out_of_line();
7157 let handles_before = decoder.remaining_handles();
7158 if let Some((inlined, num_bytes, num_handles)) =
7159 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7160 {
7161 let member_inline_size = <fidl_fuchsia_wlan_ieee80211__common::StatusCode as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7162 if inlined != (member_inline_size <= 4) {
7163 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7164 }
7165 let inner_offset;
7166 let mut inner_depth = depth.clone();
7167 if inlined {
7168 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7169 inner_offset = next_offset;
7170 } else {
7171 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7172 inner_depth.increment()?;
7173 }
7174 let val_ref = self.result_code.get_or_insert_with(|| {
7175 fidl::new_empty!(fidl_fuchsia_wlan_ieee80211__common::StatusCode, D)
7176 });
7177 fidl::decode!(
7178 fidl_fuchsia_wlan_ieee80211__common::StatusCode,
7179 D,
7180 val_ref,
7181 decoder,
7182 inner_offset,
7183 inner_depth
7184 )?;
7185 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7186 {
7187 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7188 }
7189 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7190 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7191 }
7192 }
7193
7194 next_offset += envelope_size;
7195 _next_ordinal_to_read += 1;
7196 if next_offset >= end_offset {
7197 return Ok(());
7198 }
7199
7200 while _next_ordinal_to_read < 3 {
7202 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7203 _next_ordinal_to_read += 1;
7204 next_offset += envelope_size;
7205 }
7206
7207 let next_out_of_line = decoder.next_out_of_line();
7208 let handles_before = decoder.remaining_handles();
7209 if let Some((inlined, num_bytes, num_handles)) =
7210 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7211 {
7212 let member_inline_size =
7213 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7214 if inlined != (member_inline_size <= 4) {
7215 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7216 }
7217 let inner_offset;
7218 let mut inner_depth = depth.clone();
7219 if inlined {
7220 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7221 inner_offset = next_offset;
7222 } else {
7223 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7224 inner_depth.increment()?;
7225 }
7226 let val_ref = self.association_id.get_or_insert_with(|| fidl::new_empty!(u16, D));
7227 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
7228 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7229 {
7230 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7231 }
7232 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7233 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7234 }
7235 }
7236
7237 next_offset += envelope_size;
7238 _next_ordinal_to_read += 1;
7239 if next_offset >= end_offset {
7240 return Ok(());
7241 }
7242
7243 while _next_ordinal_to_read < 4 {
7245 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7246 _next_ordinal_to_read += 1;
7247 next_offset += envelope_size;
7248 }
7249
7250 let next_out_of_line = decoder.next_out_of_line();
7251 let handles_before = decoder.remaining_handles();
7252 if let Some((inlined, num_bytes, num_handles)) =
7253 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7254 {
7255 let member_inline_size = <fidl::encoding::UnboundedVector<u8> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7256 if inlined != (member_inline_size <= 4) {
7257 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7258 }
7259 let inner_offset;
7260 let mut inner_depth = depth.clone();
7261 if inlined {
7262 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7263 inner_offset = next_offset;
7264 } else {
7265 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7266 inner_depth.increment()?;
7267 }
7268 let val_ref = self.association_ies.get_or_insert_with(|| {
7269 fidl::new_empty!(fidl::encoding::UnboundedVector<u8>, D)
7270 });
7271 fidl::decode!(
7272 fidl::encoding::UnboundedVector<u8>,
7273 D,
7274 val_ref,
7275 decoder,
7276 inner_offset,
7277 inner_depth
7278 )?;
7279 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7280 {
7281 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7282 }
7283 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7284 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7285 }
7286 }
7287
7288 next_offset += envelope_size;
7289
7290 while next_offset < end_offset {
7292 _next_ordinal_to_read += 1;
7293 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7294 next_offset += envelope_size;
7295 }
7296
7297 Ok(())
7298 }
7299 }
7300
7301 impl WlanFullmacImplIfcDeauthConfRequest {
7302 #[inline(always)]
7303 fn max_ordinal_present(&self) -> u64 {
7304 if let Some(_) = self.peer_sta_address {
7305 return 1;
7306 }
7307 0
7308 }
7309 }
7310
7311 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcDeauthConfRequest {
7312 type Borrowed<'a> = &'a Self;
7313 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
7314 value
7315 }
7316 }
7317
7318 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcDeauthConfRequest {
7319 type Owned = Self;
7320
7321 #[inline(always)]
7322 fn inline_align(_context: fidl::encoding::Context) -> usize {
7323 8
7324 }
7325
7326 #[inline(always)]
7327 fn inline_size(_context: fidl::encoding::Context) -> usize {
7328 16
7329 }
7330 }
7331
7332 unsafe impl<D: fidl::encoding::ResourceDialect>
7333 fidl::encoding::Encode<WlanFullmacImplIfcDeauthConfRequest, D>
7334 for &WlanFullmacImplIfcDeauthConfRequest
7335 {
7336 unsafe fn encode(
7337 self,
7338 encoder: &mut fidl::encoding::Encoder<'_, D>,
7339 offset: usize,
7340 mut depth: fidl::encoding::Depth,
7341 ) -> fidl::Result<()> {
7342 encoder.debug_check_bounds::<WlanFullmacImplIfcDeauthConfRequest>(offset);
7343 let max_ordinal: u64 = self.max_ordinal_present();
7345 encoder.write_num(max_ordinal, offset);
7346 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
7347 if max_ordinal == 0 {
7349 return Ok(());
7350 }
7351 depth.increment()?;
7352 let envelope_size = 8;
7353 let bytes_len = max_ordinal as usize * envelope_size;
7354 #[allow(unused_variables)]
7355 let offset = encoder.out_of_line_offset(bytes_len);
7356 let mut _prev_end_offset: usize = 0;
7357 if 1 > max_ordinal {
7358 return Ok(());
7359 }
7360
7361 let cur_offset: usize = (1 - 1) * envelope_size;
7364
7365 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7367
7368 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
7373 self.peer_sta_address
7374 .as_ref()
7375 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
7376 encoder,
7377 offset + cur_offset,
7378 depth,
7379 )?;
7380
7381 _prev_end_offset = cur_offset + envelope_size;
7382
7383 Ok(())
7384 }
7385 }
7386
7387 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
7388 for WlanFullmacImplIfcDeauthConfRequest
7389 {
7390 #[inline(always)]
7391 fn new_empty() -> Self {
7392 Self::default()
7393 }
7394
7395 unsafe fn decode(
7396 &mut self,
7397 decoder: &mut fidl::encoding::Decoder<'_, D>,
7398 offset: usize,
7399 mut depth: fidl::encoding::Depth,
7400 ) -> fidl::Result<()> {
7401 decoder.debug_check_bounds::<Self>(offset);
7402 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
7403 None => return Err(fidl::Error::NotNullable),
7404 Some(len) => len,
7405 };
7406 if len == 0 {
7408 return Ok(());
7409 };
7410 depth.increment()?;
7411 let envelope_size = 8;
7412 let bytes_len = len * envelope_size;
7413 let offset = decoder.out_of_line_offset(bytes_len)?;
7414 let mut _next_ordinal_to_read = 0;
7416 let mut next_offset = offset;
7417 let end_offset = offset + bytes_len;
7418 _next_ordinal_to_read += 1;
7419 if next_offset >= end_offset {
7420 return Ok(());
7421 }
7422
7423 while _next_ordinal_to_read < 1 {
7425 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7426 _next_ordinal_to_read += 1;
7427 next_offset += envelope_size;
7428 }
7429
7430 let next_out_of_line = decoder.next_out_of_line();
7431 let handles_before = decoder.remaining_handles();
7432 if let Some((inlined, num_bytes, num_handles)) =
7433 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7434 {
7435 let member_inline_size =
7436 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
7437 decoder.context,
7438 );
7439 if inlined != (member_inline_size <= 4) {
7440 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7441 }
7442 let inner_offset;
7443 let mut inner_depth = depth.clone();
7444 if inlined {
7445 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7446 inner_offset = next_offset;
7447 } else {
7448 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7449 inner_depth.increment()?;
7450 }
7451 let val_ref = self
7452 .peer_sta_address
7453 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
7454 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
7455 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7456 {
7457 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7458 }
7459 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7460 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7461 }
7462 }
7463
7464 next_offset += envelope_size;
7465
7466 while next_offset < end_offset {
7468 _next_ordinal_to_read += 1;
7469 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7470 next_offset += envelope_size;
7471 }
7472
7473 Ok(())
7474 }
7475 }
7476
7477 impl WlanFullmacImplIfcDeauthIndRequest {
7478 #[inline(always)]
7479 fn max_ordinal_present(&self) -> u64 {
7480 if let Some(_) = self.locally_initiated {
7481 return 3;
7482 }
7483 if let Some(_) = self.reason_code {
7484 return 2;
7485 }
7486 if let Some(_) = self.peer_sta_address {
7487 return 1;
7488 }
7489 0
7490 }
7491 }
7492
7493 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcDeauthIndRequest {
7494 type Borrowed<'a> = &'a Self;
7495 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
7496 value
7497 }
7498 }
7499
7500 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcDeauthIndRequest {
7501 type Owned = Self;
7502
7503 #[inline(always)]
7504 fn inline_align(_context: fidl::encoding::Context) -> usize {
7505 8
7506 }
7507
7508 #[inline(always)]
7509 fn inline_size(_context: fidl::encoding::Context) -> usize {
7510 16
7511 }
7512 }
7513
7514 unsafe impl<D: fidl::encoding::ResourceDialect>
7515 fidl::encoding::Encode<WlanFullmacImplIfcDeauthIndRequest, D>
7516 for &WlanFullmacImplIfcDeauthIndRequest
7517 {
7518 unsafe fn encode(
7519 self,
7520 encoder: &mut fidl::encoding::Encoder<'_, D>,
7521 offset: usize,
7522 mut depth: fidl::encoding::Depth,
7523 ) -> fidl::Result<()> {
7524 encoder.debug_check_bounds::<WlanFullmacImplIfcDeauthIndRequest>(offset);
7525 let max_ordinal: u64 = self.max_ordinal_present();
7527 encoder.write_num(max_ordinal, offset);
7528 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
7529 if max_ordinal == 0 {
7531 return Ok(());
7532 }
7533 depth.increment()?;
7534 let envelope_size = 8;
7535 let bytes_len = max_ordinal as usize * envelope_size;
7536 #[allow(unused_variables)]
7537 let offset = encoder.out_of_line_offset(bytes_len);
7538 let mut _prev_end_offset: usize = 0;
7539 if 1 > max_ordinal {
7540 return Ok(());
7541 }
7542
7543 let cur_offset: usize = (1 - 1) * envelope_size;
7546
7547 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7549
7550 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
7555 self.peer_sta_address
7556 .as_ref()
7557 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
7558 encoder,
7559 offset + cur_offset,
7560 depth,
7561 )?;
7562
7563 _prev_end_offset = cur_offset + envelope_size;
7564 if 2 > max_ordinal {
7565 return Ok(());
7566 }
7567
7568 let cur_offset: usize = (2 - 1) * envelope_size;
7571
7572 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7574
7575 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_ieee80211__common::ReasonCode, D>(
7580 self.reason_code.as_ref().map(<fidl_fuchsia_wlan_ieee80211__common::ReasonCode as fidl::encoding::ValueTypeMarker>::borrow),
7581 encoder, offset + cur_offset, depth
7582 )?;
7583
7584 _prev_end_offset = cur_offset + envelope_size;
7585 if 3 > max_ordinal {
7586 return Ok(());
7587 }
7588
7589 let cur_offset: usize = (3 - 1) * envelope_size;
7592
7593 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7595
7596 fidl::encoding::encode_in_envelope_optional::<bool, D>(
7601 self.locally_initiated
7602 .as_ref()
7603 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
7604 encoder,
7605 offset + cur_offset,
7606 depth,
7607 )?;
7608
7609 _prev_end_offset = cur_offset + envelope_size;
7610
7611 Ok(())
7612 }
7613 }
7614
7615 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
7616 for WlanFullmacImplIfcDeauthIndRequest
7617 {
7618 #[inline(always)]
7619 fn new_empty() -> Self {
7620 Self::default()
7621 }
7622
7623 unsafe fn decode(
7624 &mut self,
7625 decoder: &mut fidl::encoding::Decoder<'_, D>,
7626 offset: usize,
7627 mut depth: fidl::encoding::Depth,
7628 ) -> fidl::Result<()> {
7629 decoder.debug_check_bounds::<Self>(offset);
7630 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
7631 None => return Err(fidl::Error::NotNullable),
7632 Some(len) => len,
7633 };
7634 if len == 0 {
7636 return Ok(());
7637 };
7638 depth.increment()?;
7639 let envelope_size = 8;
7640 let bytes_len = len * envelope_size;
7641 let offset = decoder.out_of_line_offset(bytes_len)?;
7642 let mut _next_ordinal_to_read = 0;
7644 let mut next_offset = offset;
7645 let end_offset = offset + bytes_len;
7646 _next_ordinal_to_read += 1;
7647 if next_offset >= end_offset {
7648 return Ok(());
7649 }
7650
7651 while _next_ordinal_to_read < 1 {
7653 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7654 _next_ordinal_to_read += 1;
7655 next_offset += envelope_size;
7656 }
7657
7658 let next_out_of_line = decoder.next_out_of_line();
7659 let handles_before = decoder.remaining_handles();
7660 if let Some((inlined, num_bytes, num_handles)) =
7661 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7662 {
7663 let member_inline_size =
7664 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
7665 decoder.context,
7666 );
7667 if inlined != (member_inline_size <= 4) {
7668 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7669 }
7670 let inner_offset;
7671 let mut inner_depth = depth.clone();
7672 if inlined {
7673 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7674 inner_offset = next_offset;
7675 } else {
7676 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7677 inner_depth.increment()?;
7678 }
7679 let val_ref = self
7680 .peer_sta_address
7681 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
7682 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
7683 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7684 {
7685 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7686 }
7687 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7688 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7689 }
7690 }
7691
7692 next_offset += envelope_size;
7693 _next_ordinal_to_read += 1;
7694 if next_offset >= end_offset {
7695 return Ok(());
7696 }
7697
7698 while _next_ordinal_to_read < 2 {
7700 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7701 _next_ordinal_to_read += 1;
7702 next_offset += envelope_size;
7703 }
7704
7705 let next_out_of_line = decoder.next_out_of_line();
7706 let handles_before = decoder.remaining_handles();
7707 if let Some((inlined, num_bytes, num_handles)) =
7708 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7709 {
7710 let member_inline_size = <fidl_fuchsia_wlan_ieee80211__common::ReasonCode as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7711 if inlined != (member_inline_size <= 4) {
7712 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7713 }
7714 let inner_offset;
7715 let mut inner_depth = depth.clone();
7716 if inlined {
7717 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7718 inner_offset = next_offset;
7719 } else {
7720 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7721 inner_depth.increment()?;
7722 }
7723 let val_ref = self.reason_code.get_or_insert_with(|| {
7724 fidl::new_empty!(fidl_fuchsia_wlan_ieee80211__common::ReasonCode, D)
7725 });
7726 fidl::decode!(
7727 fidl_fuchsia_wlan_ieee80211__common::ReasonCode,
7728 D,
7729 val_ref,
7730 decoder,
7731 inner_offset,
7732 inner_depth
7733 )?;
7734 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7735 {
7736 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7737 }
7738 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7739 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7740 }
7741 }
7742
7743 next_offset += envelope_size;
7744 _next_ordinal_to_read += 1;
7745 if next_offset >= end_offset {
7746 return Ok(());
7747 }
7748
7749 while _next_ordinal_to_read < 3 {
7751 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7752 _next_ordinal_to_read += 1;
7753 next_offset += envelope_size;
7754 }
7755
7756 let next_out_of_line = decoder.next_out_of_line();
7757 let handles_before = decoder.remaining_handles();
7758 if let Some((inlined, num_bytes, num_handles)) =
7759 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7760 {
7761 let member_inline_size =
7762 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7763 if inlined != (member_inline_size <= 4) {
7764 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7765 }
7766 let inner_offset;
7767 let mut inner_depth = depth.clone();
7768 if inlined {
7769 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7770 inner_offset = next_offset;
7771 } else {
7772 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7773 inner_depth.increment()?;
7774 }
7775 let val_ref =
7776 self.locally_initiated.get_or_insert_with(|| fidl::new_empty!(bool, D));
7777 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
7778 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7779 {
7780 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7781 }
7782 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7783 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7784 }
7785 }
7786
7787 next_offset += envelope_size;
7788
7789 while next_offset < end_offset {
7791 _next_ordinal_to_read += 1;
7792 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7793 next_offset += envelope_size;
7794 }
7795
7796 Ok(())
7797 }
7798 }
7799
7800 impl WlanFullmacImplIfcDisassocConfRequest {
7801 #[inline(always)]
7802 fn max_ordinal_present(&self) -> u64 {
7803 if let Some(_) = self.status {
7804 return 1;
7805 }
7806 0
7807 }
7808 }
7809
7810 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcDisassocConfRequest {
7811 type Borrowed<'a> = &'a Self;
7812 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
7813 value
7814 }
7815 }
7816
7817 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcDisassocConfRequest {
7818 type Owned = Self;
7819
7820 #[inline(always)]
7821 fn inline_align(_context: fidl::encoding::Context) -> usize {
7822 8
7823 }
7824
7825 #[inline(always)]
7826 fn inline_size(_context: fidl::encoding::Context) -> usize {
7827 16
7828 }
7829 }
7830
7831 unsafe impl<D: fidl::encoding::ResourceDialect>
7832 fidl::encoding::Encode<WlanFullmacImplIfcDisassocConfRequest, D>
7833 for &WlanFullmacImplIfcDisassocConfRequest
7834 {
7835 unsafe fn encode(
7836 self,
7837 encoder: &mut fidl::encoding::Encoder<'_, D>,
7838 offset: usize,
7839 mut depth: fidl::encoding::Depth,
7840 ) -> fidl::Result<()> {
7841 encoder.debug_check_bounds::<WlanFullmacImplIfcDisassocConfRequest>(offset);
7842 let max_ordinal: u64 = self.max_ordinal_present();
7844 encoder.write_num(max_ordinal, offset);
7845 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
7846 if max_ordinal == 0 {
7848 return Ok(());
7849 }
7850 depth.increment()?;
7851 let envelope_size = 8;
7852 let bytes_len = max_ordinal as usize * envelope_size;
7853 #[allow(unused_variables)]
7854 let offset = encoder.out_of_line_offset(bytes_len);
7855 let mut _prev_end_offset: usize = 0;
7856 if 1 > max_ordinal {
7857 return Ok(());
7858 }
7859
7860 let cur_offset: usize = (1 - 1) * envelope_size;
7863
7864 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7866
7867 fidl::encoding::encode_in_envelope_optional::<i32, D>(
7872 self.status.as_ref().map(<i32 as fidl::encoding::ValueTypeMarker>::borrow),
7873 encoder,
7874 offset + cur_offset,
7875 depth,
7876 )?;
7877
7878 _prev_end_offset = cur_offset + envelope_size;
7879
7880 Ok(())
7881 }
7882 }
7883
7884 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
7885 for WlanFullmacImplIfcDisassocConfRequest
7886 {
7887 #[inline(always)]
7888 fn new_empty() -> Self {
7889 Self::default()
7890 }
7891
7892 unsafe fn decode(
7893 &mut self,
7894 decoder: &mut fidl::encoding::Decoder<'_, D>,
7895 offset: usize,
7896 mut depth: fidl::encoding::Depth,
7897 ) -> fidl::Result<()> {
7898 decoder.debug_check_bounds::<Self>(offset);
7899 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
7900 None => return Err(fidl::Error::NotNullable),
7901 Some(len) => len,
7902 };
7903 if len == 0 {
7905 return Ok(());
7906 };
7907 depth.increment()?;
7908 let envelope_size = 8;
7909 let bytes_len = len * envelope_size;
7910 let offset = decoder.out_of_line_offset(bytes_len)?;
7911 let mut _next_ordinal_to_read = 0;
7913 let mut next_offset = offset;
7914 let end_offset = offset + bytes_len;
7915 _next_ordinal_to_read += 1;
7916 if next_offset >= end_offset {
7917 return Ok(());
7918 }
7919
7920 while _next_ordinal_to_read < 1 {
7922 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7923 _next_ordinal_to_read += 1;
7924 next_offset += envelope_size;
7925 }
7926
7927 let next_out_of_line = decoder.next_out_of_line();
7928 let handles_before = decoder.remaining_handles();
7929 if let Some((inlined, num_bytes, num_handles)) =
7930 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7931 {
7932 let member_inline_size =
7933 <i32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7934 if inlined != (member_inline_size <= 4) {
7935 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7936 }
7937 let inner_offset;
7938 let mut inner_depth = depth.clone();
7939 if inlined {
7940 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7941 inner_offset = next_offset;
7942 } else {
7943 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7944 inner_depth.increment()?;
7945 }
7946 let val_ref = self.status.get_or_insert_with(|| fidl::new_empty!(i32, D));
7947 fidl::decode!(i32, D, val_ref, decoder, inner_offset, inner_depth)?;
7948 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7949 {
7950 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7951 }
7952 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7953 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7954 }
7955 }
7956
7957 next_offset += envelope_size;
7958
7959 while next_offset < end_offset {
7961 _next_ordinal_to_read += 1;
7962 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7963 next_offset += envelope_size;
7964 }
7965
7966 Ok(())
7967 }
7968 }
7969
7970 impl WlanFullmacImplIfcDisassocIndRequest {
7971 #[inline(always)]
7972 fn max_ordinal_present(&self) -> u64 {
7973 if let Some(_) = self.locally_initiated {
7974 return 3;
7975 }
7976 if let Some(_) = self.reason_code {
7977 return 2;
7978 }
7979 if let Some(_) = self.peer_sta_address {
7980 return 1;
7981 }
7982 0
7983 }
7984 }
7985
7986 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcDisassocIndRequest {
7987 type Borrowed<'a> = &'a Self;
7988 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
7989 value
7990 }
7991 }
7992
7993 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcDisassocIndRequest {
7994 type Owned = Self;
7995
7996 #[inline(always)]
7997 fn inline_align(_context: fidl::encoding::Context) -> usize {
7998 8
7999 }
8000
8001 #[inline(always)]
8002 fn inline_size(_context: fidl::encoding::Context) -> usize {
8003 16
8004 }
8005 }
8006
8007 unsafe impl<D: fidl::encoding::ResourceDialect>
8008 fidl::encoding::Encode<WlanFullmacImplIfcDisassocIndRequest, D>
8009 for &WlanFullmacImplIfcDisassocIndRequest
8010 {
8011 unsafe fn encode(
8012 self,
8013 encoder: &mut fidl::encoding::Encoder<'_, D>,
8014 offset: usize,
8015 mut depth: fidl::encoding::Depth,
8016 ) -> fidl::Result<()> {
8017 encoder.debug_check_bounds::<WlanFullmacImplIfcDisassocIndRequest>(offset);
8018 let max_ordinal: u64 = self.max_ordinal_present();
8020 encoder.write_num(max_ordinal, offset);
8021 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
8022 if max_ordinal == 0 {
8024 return Ok(());
8025 }
8026 depth.increment()?;
8027 let envelope_size = 8;
8028 let bytes_len = max_ordinal as usize * envelope_size;
8029 #[allow(unused_variables)]
8030 let offset = encoder.out_of_line_offset(bytes_len);
8031 let mut _prev_end_offset: usize = 0;
8032 if 1 > max_ordinal {
8033 return Ok(());
8034 }
8035
8036 let cur_offset: usize = (1 - 1) * envelope_size;
8039
8040 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8042
8043 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
8048 self.peer_sta_address
8049 .as_ref()
8050 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
8051 encoder,
8052 offset + cur_offset,
8053 depth,
8054 )?;
8055
8056 _prev_end_offset = cur_offset + envelope_size;
8057 if 2 > max_ordinal {
8058 return Ok(());
8059 }
8060
8061 let cur_offset: usize = (2 - 1) * envelope_size;
8064
8065 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8067
8068 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_ieee80211__common::ReasonCode, D>(
8073 self.reason_code.as_ref().map(<fidl_fuchsia_wlan_ieee80211__common::ReasonCode as fidl::encoding::ValueTypeMarker>::borrow),
8074 encoder, offset + cur_offset, depth
8075 )?;
8076
8077 _prev_end_offset = cur_offset + envelope_size;
8078 if 3 > max_ordinal {
8079 return Ok(());
8080 }
8081
8082 let cur_offset: usize = (3 - 1) * envelope_size;
8085
8086 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8088
8089 fidl::encoding::encode_in_envelope_optional::<bool, D>(
8094 self.locally_initiated
8095 .as_ref()
8096 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
8097 encoder,
8098 offset + cur_offset,
8099 depth,
8100 )?;
8101
8102 _prev_end_offset = cur_offset + envelope_size;
8103
8104 Ok(())
8105 }
8106 }
8107
8108 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
8109 for WlanFullmacImplIfcDisassocIndRequest
8110 {
8111 #[inline(always)]
8112 fn new_empty() -> Self {
8113 Self::default()
8114 }
8115
8116 unsafe fn decode(
8117 &mut self,
8118 decoder: &mut fidl::encoding::Decoder<'_, D>,
8119 offset: usize,
8120 mut depth: fidl::encoding::Depth,
8121 ) -> fidl::Result<()> {
8122 decoder.debug_check_bounds::<Self>(offset);
8123 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
8124 None => return Err(fidl::Error::NotNullable),
8125 Some(len) => len,
8126 };
8127 if len == 0 {
8129 return Ok(());
8130 };
8131 depth.increment()?;
8132 let envelope_size = 8;
8133 let bytes_len = len * envelope_size;
8134 let offset = decoder.out_of_line_offset(bytes_len)?;
8135 let mut _next_ordinal_to_read = 0;
8137 let mut next_offset = offset;
8138 let end_offset = offset + bytes_len;
8139 _next_ordinal_to_read += 1;
8140 if next_offset >= end_offset {
8141 return Ok(());
8142 }
8143
8144 while _next_ordinal_to_read < 1 {
8146 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8147 _next_ordinal_to_read += 1;
8148 next_offset += envelope_size;
8149 }
8150
8151 let next_out_of_line = decoder.next_out_of_line();
8152 let handles_before = decoder.remaining_handles();
8153 if let Some((inlined, num_bytes, num_handles)) =
8154 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8155 {
8156 let member_inline_size =
8157 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
8158 decoder.context,
8159 );
8160 if inlined != (member_inline_size <= 4) {
8161 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8162 }
8163 let inner_offset;
8164 let mut inner_depth = depth.clone();
8165 if inlined {
8166 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8167 inner_offset = next_offset;
8168 } else {
8169 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8170 inner_depth.increment()?;
8171 }
8172 let val_ref = self
8173 .peer_sta_address
8174 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
8175 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
8176 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8177 {
8178 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8179 }
8180 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8181 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8182 }
8183 }
8184
8185 next_offset += envelope_size;
8186 _next_ordinal_to_read += 1;
8187 if next_offset >= end_offset {
8188 return Ok(());
8189 }
8190
8191 while _next_ordinal_to_read < 2 {
8193 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8194 _next_ordinal_to_read += 1;
8195 next_offset += envelope_size;
8196 }
8197
8198 let next_out_of_line = decoder.next_out_of_line();
8199 let handles_before = decoder.remaining_handles();
8200 if let Some((inlined, num_bytes, num_handles)) =
8201 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8202 {
8203 let member_inline_size = <fidl_fuchsia_wlan_ieee80211__common::ReasonCode as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8204 if inlined != (member_inline_size <= 4) {
8205 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8206 }
8207 let inner_offset;
8208 let mut inner_depth = depth.clone();
8209 if inlined {
8210 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8211 inner_offset = next_offset;
8212 } else {
8213 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8214 inner_depth.increment()?;
8215 }
8216 let val_ref = self.reason_code.get_or_insert_with(|| {
8217 fidl::new_empty!(fidl_fuchsia_wlan_ieee80211__common::ReasonCode, D)
8218 });
8219 fidl::decode!(
8220 fidl_fuchsia_wlan_ieee80211__common::ReasonCode,
8221 D,
8222 val_ref,
8223 decoder,
8224 inner_offset,
8225 inner_depth
8226 )?;
8227 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8228 {
8229 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8230 }
8231 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8232 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8233 }
8234 }
8235
8236 next_offset += envelope_size;
8237 _next_ordinal_to_read += 1;
8238 if next_offset >= end_offset {
8239 return Ok(());
8240 }
8241
8242 while _next_ordinal_to_read < 3 {
8244 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8245 _next_ordinal_to_read += 1;
8246 next_offset += envelope_size;
8247 }
8248
8249 let next_out_of_line = decoder.next_out_of_line();
8250 let handles_before = decoder.remaining_handles();
8251 if let Some((inlined, num_bytes, num_handles)) =
8252 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8253 {
8254 let member_inline_size =
8255 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8256 if inlined != (member_inline_size <= 4) {
8257 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8258 }
8259 let inner_offset;
8260 let mut inner_depth = depth.clone();
8261 if inlined {
8262 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8263 inner_offset = next_offset;
8264 } else {
8265 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8266 inner_depth.increment()?;
8267 }
8268 let val_ref =
8269 self.locally_initiated.get_or_insert_with(|| fidl::new_empty!(bool, D));
8270 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
8271 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8272 {
8273 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8274 }
8275 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8276 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8277 }
8278 }
8279
8280 next_offset += envelope_size;
8281
8282 while next_offset < end_offset {
8284 _next_ordinal_to_read += 1;
8285 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8286 next_offset += envelope_size;
8287 }
8288
8289 Ok(())
8290 }
8291 }
8292
8293 impl WlanFullmacImplIfcEapolConfRequest {
8294 #[inline(always)]
8295 fn max_ordinal_present(&self) -> u64 {
8296 if let Some(_) = self.dst_addr {
8297 return 2;
8298 }
8299 if let Some(_) = self.result_code {
8300 return 1;
8301 }
8302 0
8303 }
8304 }
8305
8306 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcEapolConfRequest {
8307 type Borrowed<'a> = &'a Self;
8308 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
8309 value
8310 }
8311 }
8312
8313 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcEapolConfRequest {
8314 type Owned = Self;
8315
8316 #[inline(always)]
8317 fn inline_align(_context: fidl::encoding::Context) -> usize {
8318 8
8319 }
8320
8321 #[inline(always)]
8322 fn inline_size(_context: fidl::encoding::Context) -> usize {
8323 16
8324 }
8325 }
8326
8327 unsafe impl<D: fidl::encoding::ResourceDialect>
8328 fidl::encoding::Encode<WlanFullmacImplIfcEapolConfRequest, D>
8329 for &WlanFullmacImplIfcEapolConfRequest
8330 {
8331 unsafe fn encode(
8332 self,
8333 encoder: &mut fidl::encoding::Encoder<'_, D>,
8334 offset: usize,
8335 mut depth: fidl::encoding::Depth,
8336 ) -> fidl::Result<()> {
8337 encoder.debug_check_bounds::<WlanFullmacImplIfcEapolConfRequest>(offset);
8338 let max_ordinal: u64 = self.max_ordinal_present();
8340 encoder.write_num(max_ordinal, offset);
8341 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
8342 if max_ordinal == 0 {
8344 return Ok(());
8345 }
8346 depth.increment()?;
8347 let envelope_size = 8;
8348 let bytes_len = max_ordinal as usize * envelope_size;
8349 #[allow(unused_variables)]
8350 let offset = encoder.out_of_line_offset(bytes_len);
8351 let mut _prev_end_offset: usize = 0;
8352 if 1 > max_ordinal {
8353 return Ok(());
8354 }
8355
8356 let cur_offset: usize = (1 - 1) * envelope_size;
8359
8360 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8362
8363 fidl::encoding::encode_in_envelope_optional::<EapolTxResult, D>(
8368 self.result_code
8369 .as_ref()
8370 .map(<EapolTxResult as fidl::encoding::ValueTypeMarker>::borrow),
8371 encoder,
8372 offset + cur_offset,
8373 depth,
8374 )?;
8375
8376 _prev_end_offset = cur_offset + envelope_size;
8377 if 2 > max_ordinal {
8378 return Ok(());
8379 }
8380
8381 let cur_offset: usize = (2 - 1) * envelope_size;
8384
8385 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8387
8388 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
8393 self.dst_addr
8394 .as_ref()
8395 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
8396 encoder,
8397 offset + cur_offset,
8398 depth,
8399 )?;
8400
8401 _prev_end_offset = cur_offset + envelope_size;
8402
8403 Ok(())
8404 }
8405 }
8406
8407 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
8408 for WlanFullmacImplIfcEapolConfRequest
8409 {
8410 #[inline(always)]
8411 fn new_empty() -> Self {
8412 Self::default()
8413 }
8414
8415 unsafe fn decode(
8416 &mut self,
8417 decoder: &mut fidl::encoding::Decoder<'_, D>,
8418 offset: usize,
8419 mut depth: fidl::encoding::Depth,
8420 ) -> fidl::Result<()> {
8421 decoder.debug_check_bounds::<Self>(offset);
8422 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
8423 None => return Err(fidl::Error::NotNullable),
8424 Some(len) => len,
8425 };
8426 if len == 0 {
8428 return Ok(());
8429 };
8430 depth.increment()?;
8431 let envelope_size = 8;
8432 let bytes_len = len * envelope_size;
8433 let offset = decoder.out_of_line_offset(bytes_len)?;
8434 let mut _next_ordinal_to_read = 0;
8436 let mut next_offset = offset;
8437 let end_offset = offset + bytes_len;
8438 _next_ordinal_to_read += 1;
8439 if next_offset >= end_offset {
8440 return Ok(());
8441 }
8442
8443 while _next_ordinal_to_read < 1 {
8445 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8446 _next_ordinal_to_read += 1;
8447 next_offset += envelope_size;
8448 }
8449
8450 let next_out_of_line = decoder.next_out_of_line();
8451 let handles_before = decoder.remaining_handles();
8452 if let Some((inlined, num_bytes, num_handles)) =
8453 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8454 {
8455 let member_inline_size =
8456 <EapolTxResult as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8457 if inlined != (member_inline_size <= 4) {
8458 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8459 }
8460 let inner_offset;
8461 let mut inner_depth = depth.clone();
8462 if inlined {
8463 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8464 inner_offset = next_offset;
8465 } else {
8466 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8467 inner_depth.increment()?;
8468 }
8469 let val_ref =
8470 self.result_code.get_or_insert_with(|| fidl::new_empty!(EapolTxResult, D));
8471 fidl::decode!(EapolTxResult, D, val_ref, decoder, inner_offset, inner_depth)?;
8472 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8473 {
8474 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8475 }
8476 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8477 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8478 }
8479 }
8480
8481 next_offset += envelope_size;
8482 _next_ordinal_to_read += 1;
8483 if next_offset >= end_offset {
8484 return Ok(());
8485 }
8486
8487 while _next_ordinal_to_read < 2 {
8489 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8490 _next_ordinal_to_read += 1;
8491 next_offset += envelope_size;
8492 }
8493
8494 let next_out_of_line = decoder.next_out_of_line();
8495 let handles_before = decoder.remaining_handles();
8496 if let Some((inlined, num_bytes, num_handles)) =
8497 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8498 {
8499 let member_inline_size =
8500 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
8501 decoder.context,
8502 );
8503 if inlined != (member_inline_size <= 4) {
8504 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8505 }
8506 let inner_offset;
8507 let mut inner_depth = depth.clone();
8508 if inlined {
8509 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8510 inner_offset = next_offset;
8511 } else {
8512 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8513 inner_depth.increment()?;
8514 }
8515 let val_ref = self
8516 .dst_addr
8517 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
8518 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
8519 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8520 {
8521 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8522 }
8523 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8524 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8525 }
8526 }
8527
8528 next_offset += envelope_size;
8529
8530 while next_offset < end_offset {
8532 _next_ordinal_to_read += 1;
8533 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8534 next_offset += envelope_size;
8535 }
8536
8537 Ok(())
8538 }
8539 }
8540
8541 impl WlanFullmacImplIfcEapolIndRequest {
8542 #[inline(always)]
8543 fn max_ordinal_present(&self) -> u64 {
8544 if let Some(_) = self.data {
8545 return 3;
8546 }
8547 if let Some(_) = self.dst_addr {
8548 return 2;
8549 }
8550 if let Some(_) = self.src_addr {
8551 return 1;
8552 }
8553 0
8554 }
8555 }
8556
8557 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcEapolIndRequest {
8558 type Borrowed<'a> = &'a Self;
8559 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
8560 value
8561 }
8562 }
8563
8564 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcEapolIndRequest {
8565 type Owned = Self;
8566
8567 #[inline(always)]
8568 fn inline_align(_context: fidl::encoding::Context) -> usize {
8569 8
8570 }
8571
8572 #[inline(always)]
8573 fn inline_size(_context: fidl::encoding::Context) -> usize {
8574 16
8575 }
8576 }
8577
8578 unsafe impl<D: fidl::encoding::ResourceDialect>
8579 fidl::encoding::Encode<WlanFullmacImplIfcEapolIndRequest, D>
8580 for &WlanFullmacImplIfcEapolIndRequest
8581 {
8582 unsafe fn encode(
8583 self,
8584 encoder: &mut fidl::encoding::Encoder<'_, D>,
8585 offset: usize,
8586 mut depth: fidl::encoding::Depth,
8587 ) -> fidl::Result<()> {
8588 encoder.debug_check_bounds::<WlanFullmacImplIfcEapolIndRequest>(offset);
8589 let max_ordinal: u64 = self.max_ordinal_present();
8591 encoder.write_num(max_ordinal, offset);
8592 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
8593 if max_ordinal == 0 {
8595 return Ok(());
8596 }
8597 depth.increment()?;
8598 let envelope_size = 8;
8599 let bytes_len = max_ordinal as usize * envelope_size;
8600 #[allow(unused_variables)]
8601 let offset = encoder.out_of_line_offset(bytes_len);
8602 let mut _prev_end_offset: usize = 0;
8603 if 1 > max_ordinal {
8604 return Ok(());
8605 }
8606
8607 let cur_offset: usize = (1 - 1) * envelope_size;
8610
8611 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8613
8614 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
8619 self.src_addr
8620 .as_ref()
8621 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
8622 encoder,
8623 offset + cur_offset,
8624 depth,
8625 )?;
8626
8627 _prev_end_offset = cur_offset + envelope_size;
8628 if 2 > max_ordinal {
8629 return Ok(());
8630 }
8631
8632 let cur_offset: usize = (2 - 1) * envelope_size;
8635
8636 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8638
8639 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
8644 self.dst_addr
8645 .as_ref()
8646 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
8647 encoder,
8648 offset + cur_offset,
8649 depth,
8650 )?;
8651
8652 _prev_end_offset = cur_offset + envelope_size;
8653 if 3 > max_ordinal {
8654 return Ok(());
8655 }
8656
8657 let cur_offset: usize = (3 - 1) * envelope_size;
8660
8661 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8663
8664 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<u8>, D>(
8669 self.data.as_ref().map(<fidl::encoding::UnboundedVector<u8> as fidl::encoding::ValueTypeMarker>::borrow),
8670 encoder, offset + cur_offset, depth
8671 )?;
8672
8673 _prev_end_offset = cur_offset + envelope_size;
8674
8675 Ok(())
8676 }
8677 }
8678
8679 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
8680 for WlanFullmacImplIfcEapolIndRequest
8681 {
8682 #[inline(always)]
8683 fn new_empty() -> Self {
8684 Self::default()
8685 }
8686
8687 unsafe fn decode(
8688 &mut self,
8689 decoder: &mut fidl::encoding::Decoder<'_, D>,
8690 offset: usize,
8691 mut depth: fidl::encoding::Depth,
8692 ) -> fidl::Result<()> {
8693 decoder.debug_check_bounds::<Self>(offset);
8694 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
8695 None => return Err(fidl::Error::NotNullable),
8696 Some(len) => len,
8697 };
8698 if len == 0 {
8700 return Ok(());
8701 };
8702 depth.increment()?;
8703 let envelope_size = 8;
8704 let bytes_len = len * envelope_size;
8705 let offset = decoder.out_of_line_offset(bytes_len)?;
8706 let mut _next_ordinal_to_read = 0;
8708 let mut next_offset = offset;
8709 let end_offset = offset + bytes_len;
8710 _next_ordinal_to_read += 1;
8711 if next_offset >= end_offset {
8712 return Ok(());
8713 }
8714
8715 while _next_ordinal_to_read < 1 {
8717 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8718 _next_ordinal_to_read += 1;
8719 next_offset += envelope_size;
8720 }
8721
8722 let next_out_of_line = decoder.next_out_of_line();
8723 let handles_before = decoder.remaining_handles();
8724 if let Some((inlined, num_bytes, num_handles)) =
8725 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8726 {
8727 let member_inline_size =
8728 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
8729 decoder.context,
8730 );
8731 if inlined != (member_inline_size <= 4) {
8732 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8733 }
8734 let inner_offset;
8735 let mut inner_depth = depth.clone();
8736 if inlined {
8737 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8738 inner_offset = next_offset;
8739 } else {
8740 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8741 inner_depth.increment()?;
8742 }
8743 let val_ref = self
8744 .src_addr
8745 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
8746 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
8747 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8748 {
8749 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8750 }
8751 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8752 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8753 }
8754 }
8755
8756 next_offset += envelope_size;
8757 _next_ordinal_to_read += 1;
8758 if next_offset >= end_offset {
8759 return Ok(());
8760 }
8761
8762 while _next_ordinal_to_read < 2 {
8764 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8765 _next_ordinal_to_read += 1;
8766 next_offset += envelope_size;
8767 }
8768
8769 let next_out_of_line = decoder.next_out_of_line();
8770 let handles_before = decoder.remaining_handles();
8771 if let Some((inlined, num_bytes, num_handles)) =
8772 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8773 {
8774 let member_inline_size =
8775 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
8776 decoder.context,
8777 );
8778 if inlined != (member_inline_size <= 4) {
8779 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8780 }
8781 let inner_offset;
8782 let mut inner_depth = depth.clone();
8783 if inlined {
8784 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8785 inner_offset = next_offset;
8786 } else {
8787 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8788 inner_depth.increment()?;
8789 }
8790 let val_ref = self
8791 .dst_addr
8792 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
8793 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
8794 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8795 {
8796 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8797 }
8798 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8799 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8800 }
8801 }
8802
8803 next_offset += envelope_size;
8804 _next_ordinal_to_read += 1;
8805 if next_offset >= end_offset {
8806 return Ok(());
8807 }
8808
8809 while _next_ordinal_to_read < 3 {
8811 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8812 _next_ordinal_to_read += 1;
8813 next_offset += envelope_size;
8814 }
8815
8816 let next_out_of_line = decoder.next_out_of_line();
8817 let handles_before = decoder.remaining_handles();
8818 if let Some((inlined, num_bytes, num_handles)) =
8819 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8820 {
8821 let member_inline_size = <fidl::encoding::UnboundedVector<u8> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8822 if inlined != (member_inline_size <= 4) {
8823 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8824 }
8825 let inner_offset;
8826 let mut inner_depth = depth.clone();
8827 if inlined {
8828 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8829 inner_offset = next_offset;
8830 } else {
8831 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8832 inner_depth.increment()?;
8833 }
8834 let val_ref = self.data.get_or_insert_with(|| {
8835 fidl::new_empty!(fidl::encoding::UnboundedVector<u8>, D)
8836 });
8837 fidl::decode!(
8838 fidl::encoding::UnboundedVector<u8>,
8839 D,
8840 val_ref,
8841 decoder,
8842 inner_offset,
8843 inner_depth
8844 )?;
8845 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8846 {
8847 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8848 }
8849 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8850 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8851 }
8852 }
8853
8854 next_offset += envelope_size;
8855
8856 while next_offset < end_offset {
8858 _next_ordinal_to_read += 1;
8859 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8860 next_offset += envelope_size;
8861 }
8862
8863 Ok(())
8864 }
8865 }
8866
8867 impl WlanFullmacImplIfcOnPmkAvailableRequest {
8868 #[inline(always)]
8869 fn max_ordinal_present(&self) -> u64 {
8870 if let Some(_) = self.pmkid {
8871 return 2;
8872 }
8873 if let Some(_) = self.pmk {
8874 return 1;
8875 }
8876 0
8877 }
8878 }
8879
8880 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcOnPmkAvailableRequest {
8881 type Borrowed<'a> = &'a Self;
8882 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
8883 value
8884 }
8885 }
8886
8887 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcOnPmkAvailableRequest {
8888 type Owned = Self;
8889
8890 #[inline(always)]
8891 fn inline_align(_context: fidl::encoding::Context) -> usize {
8892 8
8893 }
8894
8895 #[inline(always)]
8896 fn inline_size(_context: fidl::encoding::Context) -> usize {
8897 16
8898 }
8899 }
8900
8901 unsafe impl<D: fidl::encoding::ResourceDialect>
8902 fidl::encoding::Encode<WlanFullmacImplIfcOnPmkAvailableRequest, D>
8903 for &WlanFullmacImplIfcOnPmkAvailableRequest
8904 {
8905 unsafe fn encode(
8906 self,
8907 encoder: &mut fidl::encoding::Encoder<'_, D>,
8908 offset: usize,
8909 mut depth: fidl::encoding::Depth,
8910 ) -> fidl::Result<()> {
8911 encoder.debug_check_bounds::<WlanFullmacImplIfcOnPmkAvailableRequest>(offset);
8912 let max_ordinal: u64 = self.max_ordinal_present();
8914 encoder.write_num(max_ordinal, offset);
8915 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
8916 if max_ordinal == 0 {
8918 return Ok(());
8919 }
8920 depth.increment()?;
8921 let envelope_size = 8;
8922 let bytes_len = max_ordinal as usize * envelope_size;
8923 #[allow(unused_variables)]
8924 let offset = encoder.out_of_line_offset(bytes_len);
8925 let mut _prev_end_offset: usize = 0;
8926 if 1 > max_ordinal {
8927 return Ok(());
8928 }
8929
8930 let cur_offset: usize = (1 - 1) * envelope_size;
8933
8934 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8936
8937 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<u8>, D>(
8942 self.pmk.as_ref().map(<fidl::encoding::UnboundedVector<u8> as fidl::encoding::ValueTypeMarker>::borrow),
8943 encoder, offset + cur_offset, depth
8944 )?;
8945
8946 _prev_end_offset = cur_offset + envelope_size;
8947 if 2 > max_ordinal {
8948 return Ok(());
8949 }
8950
8951 let cur_offset: usize = (2 - 1) * envelope_size;
8954
8955 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8957
8958 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<u8>, D>(
8963 self.pmkid.as_ref().map(<fidl::encoding::UnboundedVector<u8> as fidl::encoding::ValueTypeMarker>::borrow),
8964 encoder, offset + cur_offset, depth
8965 )?;
8966
8967 _prev_end_offset = cur_offset + envelope_size;
8968
8969 Ok(())
8970 }
8971 }
8972
8973 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
8974 for WlanFullmacImplIfcOnPmkAvailableRequest
8975 {
8976 #[inline(always)]
8977 fn new_empty() -> Self {
8978 Self::default()
8979 }
8980
8981 unsafe fn decode(
8982 &mut self,
8983 decoder: &mut fidl::encoding::Decoder<'_, D>,
8984 offset: usize,
8985 mut depth: fidl::encoding::Depth,
8986 ) -> fidl::Result<()> {
8987 decoder.debug_check_bounds::<Self>(offset);
8988 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
8989 None => return Err(fidl::Error::NotNullable),
8990 Some(len) => len,
8991 };
8992 if len == 0 {
8994 return Ok(());
8995 };
8996 depth.increment()?;
8997 let envelope_size = 8;
8998 let bytes_len = len * envelope_size;
8999 let offset = decoder.out_of_line_offset(bytes_len)?;
9000 let mut _next_ordinal_to_read = 0;
9002 let mut next_offset = offset;
9003 let end_offset = offset + bytes_len;
9004 _next_ordinal_to_read += 1;
9005 if next_offset >= end_offset {
9006 return Ok(());
9007 }
9008
9009 while _next_ordinal_to_read < 1 {
9011 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9012 _next_ordinal_to_read += 1;
9013 next_offset += envelope_size;
9014 }
9015
9016 let next_out_of_line = decoder.next_out_of_line();
9017 let handles_before = decoder.remaining_handles();
9018 if let Some((inlined, num_bytes, num_handles)) =
9019 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9020 {
9021 let member_inline_size = <fidl::encoding::UnboundedVector<u8> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
9022 if inlined != (member_inline_size <= 4) {
9023 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9024 }
9025 let inner_offset;
9026 let mut inner_depth = depth.clone();
9027 if inlined {
9028 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9029 inner_offset = next_offset;
9030 } else {
9031 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9032 inner_depth.increment()?;
9033 }
9034 let val_ref = self.pmk.get_or_insert_with(|| {
9035 fidl::new_empty!(fidl::encoding::UnboundedVector<u8>, D)
9036 });
9037 fidl::decode!(
9038 fidl::encoding::UnboundedVector<u8>,
9039 D,
9040 val_ref,
9041 decoder,
9042 inner_offset,
9043 inner_depth
9044 )?;
9045 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9046 {
9047 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9048 }
9049 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9050 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9051 }
9052 }
9053
9054 next_offset += envelope_size;
9055 _next_ordinal_to_read += 1;
9056 if next_offset >= end_offset {
9057 return Ok(());
9058 }
9059
9060 while _next_ordinal_to_read < 2 {
9062 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9063 _next_ordinal_to_read += 1;
9064 next_offset += envelope_size;
9065 }
9066
9067 let next_out_of_line = decoder.next_out_of_line();
9068 let handles_before = decoder.remaining_handles();
9069 if let Some((inlined, num_bytes, num_handles)) =
9070 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9071 {
9072 let member_inline_size = <fidl::encoding::UnboundedVector<u8> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
9073 if inlined != (member_inline_size <= 4) {
9074 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9075 }
9076 let inner_offset;
9077 let mut inner_depth = depth.clone();
9078 if inlined {
9079 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9080 inner_offset = next_offset;
9081 } else {
9082 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9083 inner_depth.increment()?;
9084 }
9085 let val_ref = self.pmkid.get_or_insert_with(|| {
9086 fidl::new_empty!(fidl::encoding::UnboundedVector<u8>, D)
9087 });
9088 fidl::decode!(
9089 fidl::encoding::UnboundedVector<u8>,
9090 D,
9091 val_ref,
9092 decoder,
9093 inner_offset,
9094 inner_depth
9095 )?;
9096 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9097 {
9098 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9099 }
9100 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9101 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9102 }
9103 }
9104
9105 next_offset += envelope_size;
9106
9107 while next_offset < end_offset {
9109 _next_ordinal_to_read += 1;
9110 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9111 next_offset += envelope_size;
9112 }
9113
9114 Ok(())
9115 }
9116 }
9117
9118 impl WlanFullmacImplIfcOnScanEndRequest {
9119 #[inline(always)]
9120 fn max_ordinal_present(&self) -> u64 {
9121 if let Some(_) = self.code {
9122 return 2;
9123 }
9124 if let Some(_) = self.txn_id {
9125 return 1;
9126 }
9127 0
9128 }
9129 }
9130
9131 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcOnScanEndRequest {
9132 type Borrowed<'a> = &'a Self;
9133 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
9134 value
9135 }
9136 }
9137
9138 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcOnScanEndRequest {
9139 type Owned = Self;
9140
9141 #[inline(always)]
9142 fn inline_align(_context: fidl::encoding::Context) -> usize {
9143 8
9144 }
9145
9146 #[inline(always)]
9147 fn inline_size(_context: fidl::encoding::Context) -> usize {
9148 16
9149 }
9150 }
9151
9152 unsafe impl<D: fidl::encoding::ResourceDialect>
9153 fidl::encoding::Encode<WlanFullmacImplIfcOnScanEndRequest, D>
9154 for &WlanFullmacImplIfcOnScanEndRequest
9155 {
9156 unsafe fn encode(
9157 self,
9158 encoder: &mut fidl::encoding::Encoder<'_, D>,
9159 offset: usize,
9160 mut depth: fidl::encoding::Depth,
9161 ) -> fidl::Result<()> {
9162 encoder.debug_check_bounds::<WlanFullmacImplIfcOnScanEndRequest>(offset);
9163 let max_ordinal: u64 = self.max_ordinal_present();
9165 encoder.write_num(max_ordinal, offset);
9166 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
9167 if max_ordinal == 0 {
9169 return Ok(());
9170 }
9171 depth.increment()?;
9172 let envelope_size = 8;
9173 let bytes_len = max_ordinal as usize * envelope_size;
9174 #[allow(unused_variables)]
9175 let offset = encoder.out_of_line_offset(bytes_len);
9176 let mut _prev_end_offset: usize = 0;
9177 if 1 > max_ordinal {
9178 return Ok(());
9179 }
9180
9181 let cur_offset: usize = (1 - 1) * envelope_size;
9184
9185 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9187
9188 fidl::encoding::encode_in_envelope_optional::<u64, D>(
9193 self.txn_id.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
9194 encoder,
9195 offset + cur_offset,
9196 depth,
9197 )?;
9198
9199 _prev_end_offset = cur_offset + envelope_size;
9200 if 2 > max_ordinal {
9201 return Ok(());
9202 }
9203
9204 let cur_offset: usize = (2 - 1) * envelope_size;
9207
9208 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9210
9211 fidl::encoding::encode_in_envelope_optional::<WlanScanResult, D>(
9216 self.code.as_ref().map(<WlanScanResult as fidl::encoding::ValueTypeMarker>::borrow),
9217 encoder,
9218 offset + cur_offset,
9219 depth,
9220 )?;
9221
9222 _prev_end_offset = cur_offset + envelope_size;
9223
9224 Ok(())
9225 }
9226 }
9227
9228 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
9229 for WlanFullmacImplIfcOnScanEndRequest
9230 {
9231 #[inline(always)]
9232 fn new_empty() -> Self {
9233 Self::default()
9234 }
9235
9236 unsafe fn decode(
9237 &mut self,
9238 decoder: &mut fidl::encoding::Decoder<'_, D>,
9239 offset: usize,
9240 mut depth: fidl::encoding::Depth,
9241 ) -> fidl::Result<()> {
9242 decoder.debug_check_bounds::<Self>(offset);
9243 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
9244 None => return Err(fidl::Error::NotNullable),
9245 Some(len) => len,
9246 };
9247 if len == 0 {
9249 return Ok(());
9250 };
9251 depth.increment()?;
9252 let envelope_size = 8;
9253 let bytes_len = len * envelope_size;
9254 let offset = decoder.out_of_line_offset(bytes_len)?;
9255 let mut _next_ordinal_to_read = 0;
9257 let mut next_offset = offset;
9258 let end_offset = offset + bytes_len;
9259 _next_ordinal_to_read += 1;
9260 if next_offset >= end_offset {
9261 return Ok(());
9262 }
9263
9264 while _next_ordinal_to_read < 1 {
9266 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9267 _next_ordinal_to_read += 1;
9268 next_offset += envelope_size;
9269 }
9270
9271 let next_out_of_line = decoder.next_out_of_line();
9272 let handles_before = decoder.remaining_handles();
9273 if let Some((inlined, num_bytes, num_handles)) =
9274 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9275 {
9276 let member_inline_size =
9277 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
9278 if inlined != (member_inline_size <= 4) {
9279 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9280 }
9281 let inner_offset;
9282 let mut inner_depth = depth.clone();
9283 if inlined {
9284 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9285 inner_offset = next_offset;
9286 } else {
9287 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9288 inner_depth.increment()?;
9289 }
9290 let val_ref = self.txn_id.get_or_insert_with(|| fidl::new_empty!(u64, D));
9291 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
9292 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9293 {
9294 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9295 }
9296 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9297 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9298 }
9299 }
9300
9301 next_offset += envelope_size;
9302 _next_ordinal_to_read += 1;
9303 if next_offset >= end_offset {
9304 return Ok(());
9305 }
9306
9307 while _next_ordinal_to_read < 2 {
9309 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9310 _next_ordinal_to_read += 1;
9311 next_offset += envelope_size;
9312 }
9313
9314 let next_out_of_line = decoder.next_out_of_line();
9315 let handles_before = decoder.remaining_handles();
9316 if let Some((inlined, num_bytes, num_handles)) =
9317 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9318 {
9319 let member_inline_size =
9320 <WlanScanResult as fidl::encoding::TypeMarker>::inline_size(decoder.context);
9321 if inlined != (member_inline_size <= 4) {
9322 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9323 }
9324 let inner_offset;
9325 let mut inner_depth = depth.clone();
9326 if inlined {
9327 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9328 inner_offset = next_offset;
9329 } else {
9330 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9331 inner_depth.increment()?;
9332 }
9333 let val_ref = self.code.get_or_insert_with(|| fidl::new_empty!(WlanScanResult, D));
9334 fidl::decode!(WlanScanResult, D, val_ref, decoder, inner_offset, inner_depth)?;
9335 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9336 {
9337 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9338 }
9339 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9340 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9341 }
9342 }
9343
9344 next_offset += envelope_size;
9345
9346 while next_offset < end_offset {
9348 _next_ordinal_to_read += 1;
9349 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9350 next_offset += envelope_size;
9351 }
9352
9353 Ok(())
9354 }
9355 }
9356
9357 impl WlanFullmacImplIfcOnScanResultRequest {
9358 #[inline(always)]
9359 fn max_ordinal_present(&self) -> u64 {
9360 if let Some(_) = self.bss {
9361 return 3;
9362 }
9363 if let Some(_) = self.timestamp_nanos {
9364 return 2;
9365 }
9366 if let Some(_) = self.txn_id {
9367 return 1;
9368 }
9369 0
9370 }
9371 }
9372
9373 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcOnScanResultRequest {
9374 type Borrowed<'a> = &'a Self;
9375 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
9376 value
9377 }
9378 }
9379
9380 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcOnScanResultRequest {
9381 type Owned = Self;
9382
9383 #[inline(always)]
9384 fn inline_align(_context: fidl::encoding::Context) -> usize {
9385 8
9386 }
9387
9388 #[inline(always)]
9389 fn inline_size(_context: fidl::encoding::Context) -> usize {
9390 16
9391 }
9392 }
9393
9394 unsafe impl<D: fidl::encoding::ResourceDialect>
9395 fidl::encoding::Encode<WlanFullmacImplIfcOnScanResultRequest, D>
9396 for &WlanFullmacImplIfcOnScanResultRequest
9397 {
9398 unsafe fn encode(
9399 self,
9400 encoder: &mut fidl::encoding::Encoder<'_, D>,
9401 offset: usize,
9402 mut depth: fidl::encoding::Depth,
9403 ) -> fidl::Result<()> {
9404 encoder.debug_check_bounds::<WlanFullmacImplIfcOnScanResultRequest>(offset);
9405 let max_ordinal: u64 = self.max_ordinal_present();
9407 encoder.write_num(max_ordinal, offset);
9408 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
9409 if max_ordinal == 0 {
9411 return Ok(());
9412 }
9413 depth.increment()?;
9414 let envelope_size = 8;
9415 let bytes_len = max_ordinal as usize * envelope_size;
9416 #[allow(unused_variables)]
9417 let offset = encoder.out_of_line_offset(bytes_len);
9418 let mut _prev_end_offset: usize = 0;
9419 if 1 > max_ordinal {
9420 return Ok(());
9421 }
9422
9423 let cur_offset: usize = (1 - 1) * envelope_size;
9426
9427 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9429
9430 fidl::encoding::encode_in_envelope_optional::<u64, D>(
9435 self.txn_id.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
9436 encoder,
9437 offset + cur_offset,
9438 depth,
9439 )?;
9440
9441 _prev_end_offset = cur_offset + envelope_size;
9442 if 2 > max_ordinal {
9443 return Ok(());
9444 }
9445
9446 let cur_offset: usize = (2 - 1) * envelope_size;
9449
9450 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9452
9453 fidl::encoding::encode_in_envelope_optional::<i64, D>(
9458 self.timestamp_nanos.as_ref().map(<i64 as fidl::encoding::ValueTypeMarker>::borrow),
9459 encoder,
9460 offset + cur_offset,
9461 depth,
9462 )?;
9463
9464 _prev_end_offset = cur_offset + envelope_size;
9465 if 3 > max_ordinal {
9466 return Ok(());
9467 }
9468
9469 let cur_offset: usize = (3 - 1) * envelope_size;
9472
9473 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9475
9476 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_common__common::BssDescription, D>(
9481 self.bss.as_ref().map(<fidl_fuchsia_wlan_common__common::BssDescription as fidl::encoding::ValueTypeMarker>::borrow),
9482 encoder, offset + cur_offset, depth
9483 )?;
9484
9485 _prev_end_offset = cur_offset + envelope_size;
9486
9487 Ok(())
9488 }
9489 }
9490
9491 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
9492 for WlanFullmacImplIfcOnScanResultRequest
9493 {
9494 #[inline(always)]
9495 fn new_empty() -> Self {
9496 Self::default()
9497 }
9498
9499 unsafe fn decode(
9500 &mut self,
9501 decoder: &mut fidl::encoding::Decoder<'_, D>,
9502 offset: usize,
9503 mut depth: fidl::encoding::Depth,
9504 ) -> fidl::Result<()> {
9505 decoder.debug_check_bounds::<Self>(offset);
9506 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
9507 None => return Err(fidl::Error::NotNullable),
9508 Some(len) => len,
9509 };
9510 if len == 0 {
9512 return Ok(());
9513 };
9514 depth.increment()?;
9515 let envelope_size = 8;
9516 let bytes_len = len * envelope_size;
9517 let offset = decoder.out_of_line_offset(bytes_len)?;
9518 let mut _next_ordinal_to_read = 0;
9520 let mut next_offset = offset;
9521 let end_offset = offset + bytes_len;
9522 _next_ordinal_to_read += 1;
9523 if next_offset >= end_offset {
9524 return Ok(());
9525 }
9526
9527 while _next_ordinal_to_read < 1 {
9529 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9530 _next_ordinal_to_read += 1;
9531 next_offset += envelope_size;
9532 }
9533
9534 let next_out_of_line = decoder.next_out_of_line();
9535 let handles_before = decoder.remaining_handles();
9536 if let Some((inlined, num_bytes, num_handles)) =
9537 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9538 {
9539 let member_inline_size =
9540 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
9541 if inlined != (member_inline_size <= 4) {
9542 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9543 }
9544 let inner_offset;
9545 let mut inner_depth = depth.clone();
9546 if inlined {
9547 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9548 inner_offset = next_offset;
9549 } else {
9550 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9551 inner_depth.increment()?;
9552 }
9553 let val_ref = self.txn_id.get_or_insert_with(|| fidl::new_empty!(u64, D));
9554 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
9555 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9556 {
9557 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9558 }
9559 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9560 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9561 }
9562 }
9563
9564 next_offset += envelope_size;
9565 _next_ordinal_to_read += 1;
9566 if next_offset >= end_offset {
9567 return Ok(());
9568 }
9569
9570 while _next_ordinal_to_read < 2 {
9572 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9573 _next_ordinal_to_read += 1;
9574 next_offset += envelope_size;
9575 }
9576
9577 let next_out_of_line = decoder.next_out_of_line();
9578 let handles_before = decoder.remaining_handles();
9579 if let Some((inlined, num_bytes, num_handles)) =
9580 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9581 {
9582 let member_inline_size =
9583 <i64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
9584 if inlined != (member_inline_size <= 4) {
9585 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9586 }
9587 let inner_offset;
9588 let mut inner_depth = depth.clone();
9589 if inlined {
9590 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9591 inner_offset = next_offset;
9592 } else {
9593 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9594 inner_depth.increment()?;
9595 }
9596 let val_ref = self.timestamp_nanos.get_or_insert_with(|| fidl::new_empty!(i64, D));
9597 fidl::decode!(i64, D, val_ref, decoder, inner_offset, inner_depth)?;
9598 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9599 {
9600 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9601 }
9602 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9603 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9604 }
9605 }
9606
9607 next_offset += envelope_size;
9608 _next_ordinal_to_read += 1;
9609 if next_offset >= end_offset {
9610 return Ok(());
9611 }
9612
9613 while _next_ordinal_to_read < 3 {
9615 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9616 _next_ordinal_to_read += 1;
9617 next_offset += envelope_size;
9618 }
9619
9620 let next_out_of_line = decoder.next_out_of_line();
9621 let handles_before = decoder.remaining_handles();
9622 if let Some((inlined, num_bytes, num_handles)) =
9623 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9624 {
9625 let member_inline_size = <fidl_fuchsia_wlan_common__common::BssDescription as fidl::encoding::TypeMarker>::inline_size(decoder.context);
9626 if inlined != (member_inline_size <= 4) {
9627 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9628 }
9629 let inner_offset;
9630 let mut inner_depth = depth.clone();
9631 if inlined {
9632 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9633 inner_offset = next_offset;
9634 } else {
9635 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9636 inner_depth.increment()?;
9637 }
9638 let val_ref = self.bss.get_or_insert_with(|| {
9639 fidl::new_empty!(fidl_fuchsia_wlan_common__common::BssDescription, D)
9640 });
9641 fidl::decode!(
9642 fidl_fuchsia_wlan_common__common::BssDescription,
9643 D,
9644 val_ref,
9645 decoder,
9646 inner_offset,
9647 inner_depth
9648 )?;
9649 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9650 {
9651 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9652 }
9653 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9654 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9655 }
9656 }
9657
9658 next_offset += envelope_size;
9659
9660 while next_offset < end_offset {
9662 _next_ordinal_to_read += 1;
9663 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9664 next_offset += envelope_size;
9665 }
9666
9667 Ok(())
9668 }
9669 }
9670
9671 impl WlanFullmacImplIfcRoamConfRequest {
9672 #[inline(always)]
9673 fn max_ordinal_present(&self) -> u64 {
9674 if let Some(_) = self.association_ies {
9675 return 6;
9676 }
9677 if let Some(_) = self.association_id {
9678 return 5;
9679 }
9680 if let Some(_) = self.target_bss_authenticated {
9681 return 4;
9682 }
9683 if let Some(_) = self.original_association_maintained {
9684 return 3;
9685 }
9686 if let Some(_) = self.status_code {
9687 return 2;
9688 }
9689 if let Some(_) = self.selected_bssid {
9690 return 1;
9691 }
9692 0
9693 }
9694 }
9695
9696 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcRoamConfRequest {
9697 type Borrowed<'a> = &'a Self;
9698 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
9699 value
9700 }
9701 }
9702
9703 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcRoamConfRequest {
9704 type Owned = Self;
9705
9706 #[inline(always)]
9707 fn inline_align(_context: fidl::encoding::Context) -> usize {
9708 8
9709 }
9710
9711 #[inline(always)]
9712 fn inline_size(_context: fidl::encoding::Context) -> usize {
9713 16
9714 }
9715 }
9716
9717 unsafe impl<D: fidl::encoding::ResourceDialect>
9718 fidl::encoding::Encode<WlanFullmacImplIfcRoamConfRequest, D>
9719 for &WlanFullmacImplIfcRoamConfRequest
9720 {
9721 unsafe fn encode(
9722 self,
9723 encoder: &mut fidl::encoding::Encoder<'_, D>,
9724 offset: usize,
9725 mut depth: fidl::encoding::Depth,
9726 ) -> fidl::Result<()> {
9727 encoder.debug_check_bounds::<WlanFullmacImplIfcRoamConfRequest>(offset);
9728 let max_ordinal: u64 = self.max_ordinal_present();
9730 encoder.write_num(max_ordinal, offset);
9731 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
9732 if max_ordinal == 0 {
9734 return Ok(());
9735 }
9736 depth.increment()?;
9737 let envelope_size = 8;
9738 let bytes_len = max_ordinal as usize * envelope_size;
9739 #[allow(unused_variables)]
9740 let offset = encoder.out_of_line_offset(bytes_len);
9741 let mut _prev_end_offset: usize = 0;
9742 if 1 > max_ordinal {
9743 return Ok(());
9744 }
9745
9746 let cur_offset: usize = (1 - 1) * envelope_size;
9749
9750 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9752
9753 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
9758 self.selected_bssid
9759 .as_ref()
9760 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
9761 encoder,
9762 offset + cur_offset,
9763 depth,
9764 )?;
9765
9766 _prev_end_offset = cur_offset + envelope_size;
9767 if 2 > max_ordinal {
9768 return Ok(());
9769 }
9770
9771 let cur_offset: usize = (2 - 1) * envelope_size;
9774
9775 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9777
9778 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_ieee80211__common::StatusCode, D>(
9783 self.status_code.as_ref().map(<fidl_fuchsia_wlan_ieee80211__common::StatusCode as fidl::encoding::ValueTypeMarker>::borrow),
9784 encoder, offset + cur_offset, depth
9785 )?;
9786
9787 _prev_end_offset = cur_offset + envelope_size;
9788 if 3 > max_ordinal {
9789 return Ok(());
9790 }
9791
9792 let cur_offset: usize = (3 - 1) * envelope_size;
9795
9796 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9798
9799 fidl::encoding::encode_in_envelope_optional::<bool, D>(
9804 self.original_association_maintained
9805 .as_ref()
9806 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
9807 encoder,
9808 offset + cur_offset,
9809 depth,
9810 )?;
9811
9812 _prev_end_offset = cur_offset + envelope_size;
9813 if 4 > max_ordinal {
9814 return Ok(());
9815 }
9816
9817 let cur_offset: usize = (4 - 1) * envelope_size;
9820
9821 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9823
9824 fidl::encoding::encode_in_envelope_optional::<bool, D>(
9829 self.target_bss_authenticated
9830 .as_ref()
9831 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
9832 encoder,
9833 offset + cur_offset,
9834 depth,
9835 )?;
9836
9837 _prev_end_offset = cur_offset + envelope_size;
9838 if 5 > max_ordinal {
9839 return Ok(());
9840 }
9841
9842 let cur_offset: usize = (5 - 1) * envelope_size;
9845
9846 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9848
9849 fidl::encoding::encode_in_envelope_optional::<u16, D>(
9854 self.association_id.as_ref().map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
9855 encoder,
9856 offset + cur_offset,
9857 depth,
9858 )?;
9859
9860 _prev_end_offset = cur_offset + envelope_size;
9861 if 6 > max_ordinal {
9862 return Ok(());
9863 }
9864
9865 let cur_offset: usize = (6 - 1) * envelope_size;
9868
9869 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9871
9872 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<u8>, D>(
9877 self.association_ies.as_ref().map(<fidl::encoding::UnboundedVector<u8> as fidl::encoding::ValueTypeMarker>::borrow),
9878 encoder, offset + cur_offset, depth
9879 )?;
9880
9881 _prev_end_offset = cur_offset + envelope_size;
9882
9883 Ok(())
9884 }
9885 }
9886
9887 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
9888 for WlanFullmacImplIfcRoamConfRequest
9889 {
9890 #[inline(always)]
9891 fn new_empty() -> Self {
9892 Self::default()
9893 }
9894
9895 unsafe fn decode(
9896 &mut self,
9897 decoder: &mut fidl::encoding::Decoder<'_, D>,
9898 offset: usize,
9899 mut depth: fidl::encoding::Depth,
9900 ) -> fidl::Result<()> {
9901 decoder.debug_check_bounds::<Self>(offset);
9902 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
9903 None => return Err(fidl::Error::NotNullable),
9904 Some(len) => len,
9905 };
9906 if len == 0 {
9908 return Ok(());
9909 };
9910 depth.increment()?;
9911 let envelope_size = 8;
9912 let bytes_len = len * envelope_size;
9913 let offset = decoder.out_of_line_offset(bytes_len)?;
9914 let mut _next_ordinal_to_read = 0;
9916 let mut next_offset = offset;
9917 let end_offset = offset + bytes_len;
9918 _next_ordinal_to_read += 1;
9919 if next_offset >= end_offset {
9920 return Ok(());
9921 }
9922
9923 while _next_ordinal_to_read < 1 {
9925 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9926 _next_ordinal_to_read += 1;
9927 next_offset += envelope_size;
9928 }
9929
9930 let next_out_of_line = decoder.next_out_of_line();
9931 let handles_before = decoder.remaining_handles();
9932 if let Some((inlined, num_bytes, num_handles)) =
9933 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9934 {
9935 let member_inline_size =
9936 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
9937 decoder.context,
9938 );
9939 if inlined != (member_inline_size <= 4) {
9940 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9941 }
9942 let inner_offset;
9943 let mut inner_depth = depth.clone();
9944 if inlined {
9945 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9946 inner_offset = next_offset;
9947 } else {
9948 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9949 inner_depth.increment()?;
9950 }
9951 let val_ref = self
9952 .selected_bssid
9953 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
9954 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
9955 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9956 {
9957 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9958 }
9959 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9960 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9961 }
9962 }
9963
9964 next_offset += envelope_size;
9965 _next_ordinal_to_read += 1;
9966 if next_offset >= end_offset {
9967 return Ok(());
9968 }
9969
9970 while _next_ordinal_to_read < 2 {
9972 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9973 _next_ordinal_to_read += 1;
9974 next_offset += envelope_size;
9975 }
9976
9977 let next_out_of_line = decoder.next_out_of_line();
9978 let handles_before = decoder.remaining_handles();
9979 if let Some((inlined, num_bytes, num_handles)) =
9980 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9981 {
9982 let member_inline_size = <fidl_fuchsia_wlan_ieee80211__common::StatusCode as fidl::encoding::TypeMarker>::inline_size(decoder.context);
9983 if inlined != (member_inline_size <= 4) {
9984 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9985 }
9986 let inner_offset;
9987 let mut inner_depth = depth.clone();
9988 if inlined {
9989 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9990 inner_offset = next_offset;
9991 } else {
9992 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9993 inner_depth.increment()?;
9994 }
9995 let val_ref = self.status_code.get_or_insert_with(|| {
9996 fidl::new_empty!(fidl_fuchsia_wlan_ieee80211__common::StatusCode, D)
9997 });
9998 fidl::decode!(
9999 fidl_fuchsia_wlan_ieee80211__common::StatusCode,
10000 D,
10001 val_ref,
10002 decoder,
10003 inner_offset,
10004 inner_depth
10005 )?;
10006 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10007 {
10008 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10009 }
10010 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10011 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10012 }
10013 }
10014
10015 next_offset += envelope_size;
10016 _next_ordinal_to_read += 1;
10017 if next_offset >= end_offset {
10018 return Ok(());
10019 }
10020
10021 while _next_ordinal_to_read < 3 {
10023 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10024 _next_ordinal_to_read += 1;
10025 next_offset += envelope_size;
10026 }
10027
10028 let next_out_of_line = decoder.next_out_of_line();
10029 let handles_before = decoder.remaining_handles();
10030 if let Some((inlined, num_bytes, num_handles)) =
10031 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10032 {
10033 let member_inline_size =
10034 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
10035 if inlined != (member_inline_size <= 4) {
10036 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10037 }
10038 let inner_offset;
10039 let mut inner_depth = depth.clone();
10040 if inlined {
10041 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10042 inner_offset = next_offset;
10043 } else {
10044 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10045 inner_depth.increment()?;
10046 }
10047 let val_ref = self
10048 .original_association_maintained
10049 .get_or_insert_with(|| fidl::new_empty!(bool, D));
10050 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
10051 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10052 {
10053 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10054 }
10055 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10056 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10057 }
10058 }
10059
10060 next_offset += envelope_size;
10061 _next_ordinal_to_read += 1;
10062 if next_offset >= end_offset {
10063 return Ok(());
10064 }
10065
10066 while _next_ordinal_to_read < 4 {
10068 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10069 _next_ordinal_to_read += 1;
10070 next_offset += envelope_size;
10071 }
10072
10073 let next_out_of_line = decoder.next_out_of_line();
10074 let handles_before = decoder.remaining_handles();
10075 if let Some((inlined, num_bytes, num_handles)) =
10076 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10077 {
10078 let member_inline_size =
10079 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
10080 if inlined != (member_inline_size <= 4) {
10081 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10082 }
10083 let inner_offset;
10084 let mut inner_depth = depth.clone();
10085 if inlined {
10086 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10087 inner_offset = next_offset;
10088 } else {
10089 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10090 inner_depth.increment()?;
10091 }
10092 let val_ref =
10093 self.target_bss_authenticated.get_or_insert_with(|| fidl::new_empty!(bool, D));
10094 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
10095 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10096 {
10097 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10098 }
10099 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10100 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10101 }
10102 }
10103
10104 next_offset += envelope_size;
10105 _next_ordinal_to_read += 1;
10106 if next_offset >= end_offset {
10107 return Ok(());
10108 }
10109
10110 while _next_ordinal_to_read < 5 {
10112 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10113 _next_ordinal_to_read += 1;
10114 next_offset += envelope_size;
10115 }
10116
10117 let next_out_of_line = decoder.next_out_of_line();
10118 let handles_before = decoder.remaining_handles();
10119 if let Some((inlined, num_bytes, num_handles)) =
10120 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10121 {
10122 let member_inline_size =
10123 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
10124 if inlined != (member_inline_size <= 4) {
10125 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10126 }
10127 let inner_offset;
10128 let mut inner_depth = depth.clone();
10129 if inlined {
10130 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10131 inner_offset = next_offset;
10132 } else {
10133 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10134 inner_depth.increment()?;
10135 }
10136 let val_ref = self.association_id.get_or_insert_with(|| fidl::new_empty!(u16, D));
10137 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
10138 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10139 {
10140 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10141 }
10142 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10143 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10144 }
10145 }
10146
10147 next_offset += envelope_size;
10148 _next_ordinal_to_read += 1;
10149 if next_offset >= end_offset {
10150 return Ok(());
10151 }
10152
10153 while _next_ordinal_to_read < 6 {
10155 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10156 _next_ordinal_to_read += 1;
10157 next_offset += envelope_size;
10158 }
10159
10160 let next_out_of_line = decoder.next_out_of_line();
10161 let handles_before = decoder.remaining_handles();
10162 if let Some((inlined, num_bytes, num_handles)) =
10163 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10164 {
10165 let member_inline_size = <fidl::encoding::UnboundedVector<u8> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
10166 if inlined != (member_inline_size <= 4) {
10167 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10168 }
10169 let inner_offset;
10170 let mut inner_depth = depth.clone();
10171 if inlined {
10172 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10173 inner_offset = next_offset;
10174 } else {
10175 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10176 inner_depth.increment()?;
10177 }
10178 let val_ref = self.association_ies.get_or_insert_with(|| {
10179 fidl::new_empty!(fidl::encoding::UnboundedVector<u8>, D)
10180 });
10181 fidl::decode!(
10182 fidl::encoding::UnboundedVector<u8>,
10183 D,
10184 val_ref,
10185 decoder,
10186 inner_offset,
10187 inner_depth
10188 )?;
10189 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10190 {
10191 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10192 }
10193 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10194 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10195 }
10196 }
10197
10198 next_offset += envelope_size;
10199
10200 while next_offset < end_offset {
10202 _next_ordinal_to_read += 1;
10203 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10204 next_offset += envelope_size;
10205 }
10206
10207 Ok(())
10208 }
10209 }
10210
10211 impl WlanFullmacImplIfcRoamResultIndRequest {
10212 #[inline(always)]
10213 fn max_ordinal_present(&self) -> u64 {
10214 if let Some(_) = self.association_ies {
10215 return 6;
10216 }
10217 if let Some(_) = self.association_id {
10218 return 5;
10219 }
10220 if let Some(_) = self.target_bss_authenticated {
10221 return 4;
10222 }
10223 if let Some(_) = self.original_association_maintained {
10224 return 3;
10225 }
10226 if let Some(_) = self.status_code {
10227 return 2;
10228 }
10229 if let Some(_) = self.selected_bssid {
10230 return 1;
10231 }
10232 0
10233 }
10234 }
10235
10236 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcRoamResultIndRequest {
10237 type Borrowed<'a> = &'a Self;
10238 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
10239 value
10240 }
10241 }
10242
10243 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcRoamResultIndRequest {
10244 type Owned = Self;
10245
10246 #[inline(always)]
10247 fn inline_align(_context: fidl::encoding::Context) -> usize {
10248 8
10249 }
10250
10251 #[inline(always)]
10252 fn inline_size(_context: fidl::encoding::Context) -> usize {
10253 16
10254 }
10255 }
10256
10257 unsafe impl<D: fidl::encoding::ResourceDialect>
10258 fidl::encoding::Encode<WlanFullmacImplIfcRoamResultIndRequest, D>
10259 for &WlanFullmacImplIfcRoamResultIndRequest
10260 {
10261 unsafe fn encode(
10262 self,
10263 encoder: &mut fidl::encoding::Encoder<'_, D>,
10264 offset: usize,
10265 mut depth: fidl::encoding::Depth,
10266 ) -> fidl::Result<()> {
10267 encoder.debug_check_bounds::<WlanFullmacImplIfcRoamResultIndRequest>(offset);
10268 let max_ordinal: u64 = self.max_ordinal_present();
10270 encoder.write_num(max_ordinal, offset);
10271 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
10272 if max_ordinal == 0 {
10274 return Ok(());
10275 }
10276 depth.increment()?;
10277 let envelope_size = 8;
10278 let bytes_len = max_ordinal as usize * envelope_size;
10279 #[allow(unused_variables)]
10280 let offset = encoder.out_of_line_offset(bytes_len);
10281 let mut _prev_end_offset: usize = 0;
10282 if 1 > max_ordinal {
10283 return Ok(());
10284 }
10285
10286 let cur_offset: usize = (1 - 1) * envelope_size;
10289
10290 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10292
10293 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
10298 self.selected_bssid
10299 .as_ref()
10300 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
10301 encoder,
10302 offset + cur_offset,
10303 depth,
10304 )?;
10305
10306 _prev_end_offset = cur_offset + envelope_size;
10307 if 2 > max_ordinal {
10308 return Ok(());
10309 }
10310
10311 let cur_offset: usize = (2 - 1) * envelope_size;
10314
10315 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10317
10318 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_ieee80211__common::StatusCode, D>(
10323 self.status_code.as_ref().map(<fidl_fuchsia_wlan_ieee80211__common::StatusCode as fidl::encoding::ValueTypeMarker>::borrow),
10324 encoder, offset + cur_offset, depth
10325 )?;
10326
10327 _prev_end_offset = cur_offset + envelope_size;
10328 if 3 > max_ordinal {
10329 return Ok(());
10330 }
10331
10332 let cur_offset: usize = (3 - 1) * envelope_size;
10335
10336 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10338
10339 fidl::encoding::encode_in_envelope_optional::<bool, D>(
10344 self.original_association_maintained
10345 .as_ref()
10346 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
10347 encoder,
10348 offset + cur_offset,
10349 depth,
10350 )?;
10351
10352 _prev_end_offset = cur_offset + envelope_size;
10353 if 4 > max_ordinal {
10354 return Ok(());
10355 }
10356
10357 let cur_offset: usize = (4 - 1) * envelope_size;
10360
10361 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10363
10364 fidl::encoding::encode_in_envelope_optional::<bool, D>(
10369 self.target_bss_authenticated
10370 .as_ref()
10371 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
10372 encoder,
10373 offset + cur_offset,
10374 depth,
10375 )?;
10376
10377 _prev_end_offset = cur_offset + envelope_size;
10378 if 5 > max_ordinal {
10379 return Ok(());
10380 }
10381
10382 let cur_offset: usize = (5 - 1) * envelope_size;
10385
10386 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10388
10389 fidl::encoding::encode_in_envelope_optional::<u16, D>(
10394 self.association_id.as_ref().map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
10395 encoder,
10396 offset + cur_offset,
10397 depth,
10398 )?;
10399
10400 _prev_end_offset = cur_offset + envelope_size;
10401 if 6 > max_ordinal {
10402 return Ok(());
10403 }
10404
10405 let cur_offset: usize = (6 - 1) * envelope_size;
10408
10409 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10411
10412 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<u8>, D>(
10417 self.association_ies.as_ref().map(<fidl::encoding::UnboundedVector<u8> as fidl::encoding::ValueTypeMarker>::borrow),
10418 encoder, offset + cur_offset, depth
10419 )?;
10420
10421 _prev_end_offset = cur_offset + envelope_size;
10422
10423 Ok(())
10424 }
10425 }
10426
10427 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
10428 for WlanFullmacImplIfcRoamResultIndRequest
10429 {
10430 #[inline(always)]
10431 fn new_empty() -> Self {
10432 Self::default()
10433 }
10434
10435 unsafe fn decode(
10436 &mut self,
10437 decoder: &mut fidl::encoding::Decoder<'_, D>,
10438 offset: usize,
10439 mut depth: fidl::encoding::Depth,
10440 ) -> fidl::Result<()> {
10441 decoder.debug_check_bounds::<Self>(offset);
10442 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
10443 None => return Err(fidl::Error::NotNullable),
10444 Some(len) => len,
10445 };
10446 if len == 0 {
10448 return Ok(());
10449 };
10450 depth.increment()?;
10451 let envelope_size = 8;
10452 let bytes_len = len * envelope_size;
10453 let offset = decoder.out_of_line_offset(bytes_len)?;
10454 let mut _next_ordinal_to_read = 0;
10456 let mut next_offset = offset;
10457 let end_offset = offset + bytes_len;
10458 _next_ordinal_to_read += 1;
10459 if next_offset >= end_offset {
10460 return Ok(());
10461 }
10462
10463 while _next_ordinal_to_read < 1 {
10465 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10466 _next_ordinal_to_read += 1;
10467 next_offset += envelope_size;
10468 }
10469
10470 let next_out_of_line = decoder.next_out_of_line();
10471 let handles_before = decoder.remaining_handles();
10472 if let Some((inlined, num_bytes, num_handles)) =
10473 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10474 {
10475 let member_inline_size =
10476 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
10477 decoder.context,
10478 );
10479 if inlined != (member_inline_size <= 4) {
10480 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10481 }
10482 let inner_offset;
10483 let mut inner_depth = depth.clone();
10484 if inlined {
10485 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10486 inner_offset = next_offset;
10487 } else {
10488 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10489 inner_depth.increment()?;
10490 }
10491 let val_ref = self
10492 .selected_bssid
10493 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
10494 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
10495 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10496 {
10497 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10498 }
10499 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10500 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10501 }
10502 }
10503
10504 next_offset += envelope_size;
10505 _next_ordinal_to_read += 1;
10506 if next_offset >= end_offset {
10507 return Ok(());
10508 }
10509
10510 while _next_ordinal_to_read < 2 {
10512 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10513 _next_ordinal_to_read += 1;
10514 next_offset += envelope_size;
10515 }
10516
10517 let next_out_of_line = decoder.next_out_of_line();
10518 let handles_before = decoder.remaining_handles();
10519 if let Some((inlined, num_bytes, num_handles)) =
10520 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10521 {
10522 let member_inline_size = <fidl_fuchsia_wlan_ieee80211__common::StatusCode as fidl::encoding::TypeMarker>::inline_size(decoder.context);
10523 if inlined != (member_inline_size <= 4) {
10524 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10525 }
10526 let inner_offset;
10527 let mut inner_depth = depth.clone();
10528 if inlined {
10529 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10530 inner_offset = next_offset;
10531 } else {
10532 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10533 inner_depth.increment()?;
10534 }
10535 let val_ref = self.status_code.get_or_insert_with(|| {
10536 fidl::new_empty!(fidl_fuchsia_wlan_ieee80211__common::StatusCode, D)
10537 });
10538 fidl::decode!(
10539 fidl_fuchsia_wlan_ieee80211__common::StatusCode,
10540 D,
10541 val_ref,
10542 decoder,
10543 inner_offset,
10544 inner_depth
10545 )?;
10546 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10547 {
10548 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10549 }
10550 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10551 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10552 }
10553 }
10554
10555 next_offset += envelope_size;
10556 _next_ordinal_to_read += 1;
10557 if next_offset >= end_offset {
10558 return Ok(());
10559 }
10560
10561 while _next_ordinal_to_read < 3 {
10563 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10564 _next_ordinal_to_read += 1;
10565 next_offset += envelope_size;
10566 }
10567
10568 let next_out_of_line = decoder.next_out_of_line();
10569 let handles_before = decoder.remaining_handles();
10570 if let Some((inlined, num_bytes, num_handles)) =
10571 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10572 {
10573 let member_inline_size =
10574 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
10575 if inlined != (member_inline_size <= 4) {
10576 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10577 }
10578 let inner_offset;
10579 let mut inner_depth = depth.clone();
10580 if inlined {
10581 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10582 inner_offset = next_offset;
10583 } else {
10584 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10585 inner_depth.increment()?;
10586 }
10587 let val_ref = self
10588 .original_association_maintained
10589 .get_or_insert_with(|| fidl::new_empty!(bool, D));
10590 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
10591 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10592 {
10593 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10594 }
10595 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10596 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10597 }
10598 }
10599
10600 next_offset += envelope_size;
10601 _next_ordinal_to_read += 1;
10602 if next_offset >= end_offset {
10603 return Ok(());
10604 }
10605
10606 while _next_ordinal_to_read < 4 {
10608 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10609 _next_ordinal_to_read += 1;
10610 next_offset += envelope_size;
10611 }
10612
10613 let next_out_of_line = decoder.next_out_of_line();
10614 let handles_before = decoder.remaining_handles();
10615 if let Some((inlined, num_bytes, num_handles)) =
10616 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10617 {
10618 let member_inline_size =
10619 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
10620 if inlined != (member_inline_size <= 4) {
10621 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10622 }
10623 let inner_offset;
10624 let mut inner_depth = depth.clone();
10625 if inlined {
10626 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10627 inner_offset = next_offset;
10628 } else {
10629 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10630 inner_depth.increment()?;
10631 }
10632 let val_ref =
10633 self.target_bss_authenticated.get_or_insert_with(|| fidl::new_empty!(bool, D));
10634 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
10635 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10636 {
10637 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10638 }
10639 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10640 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10641 }
10642 }
10643
10644 next_offset += envelope_size;
10645 _next_ordinal_to_read += 1;
10646 if next_offset >= end_offset {
10647 return Ok(());
10648 }
10649
10650 while _next_ordinal_to_read < 5 {
10652 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10653 _next_ordinal_to_read += 1;
10654 next_offset += envelope_size;
10655 }
10656
10657 let next_out_of_line = decoder.next_out_of_line();
10658 let handles_before = decoder.remaining_handles();
10659 if let Some((inlined, num_bytes, num_handles)) =
10660 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10661 {
10662 let member_inline_size =
10663 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
10664 if inlined != (member_inline_size <= 4) {
10665 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10666 }
10667 let inner_offset;
10668 let mut inner_depth = depth.clone();
10669 if inlined {
10670 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10671 inner_offset = next_offset;
10672 } else {
10673 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10674 inner_depth.increment()?;
10675 }
10676 let val_ref = self.association_id.get_or_insert_with(|| fidl::new_empty!(u16, D));
10677 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
10678 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10679 {
10680 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10681 }
10682 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10683 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10684 }
10685 }
10686
10687 next_offset += envelope_size;
10688 _next_ordinal_to_read += 1;
10689 if next_offset >= end_offset {
10690 return Ok(());
10691 }
10692
10693 while _next_ordinal_to_read < 6 {
10695 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10696 _next_ordinal_to_read += 1;
10697 next_offset += envelope_size;
10698 }
10699
10700 let next_out_of_line = decoder.next_out_of_line();
10701 let handles_before = decoder.remaining_handles();
10702 if let Some((inlined, num_bytes, num_handles)) =
10703 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10704 {
10705 let member_inline_size = <fidl::encoding::UnboundedVector<u8> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
10706 if inlined != (member_inline_size <= 4) {
10707 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10708 }
10709 let inner_offset;
10710 let mut inner_depth = depth.clone();
10711 if inlined {
10712 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10713 inner_offset = next_offset;
10714 } else {
10715 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10716 inner_depth.increment()?;
10717 }
10718 let val_ref = self.association_ies.get_or_insert_with(|| {
10719 fidl::new_empty!(fidl::encoding::UnboundedVector<u8>, D)
10720 });
10721 fidl::decode!(
10722 fidl::encoding::UnboundedVector<u8>,
10723 D,
10724 val_ref,
10725 decoder,
10726 inner_offset,
10727 inner_depth
10728 )?;
10729 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10730 {
10731 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10732 }
10733 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10734 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10735 }
10736 }
10737
10738 next_offset += envelope_size;
10739
10740 while next_offset < end_offset {
10742 _next_ordinal_to_read += 1;
10743 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10744 next_offset += envelope_size;
10745 }
10746
10747 Ok(())
10748 }
10749 }
10750
10751 impl WlanFullmacImplIfcRoamStartIndRequest {
10752 #[inline(always)]
10753 fn max_ordinal_present(&self) -> u64 {
10754 if let Some(_) = self.original_association_maintained {
10755 return 3;
10756 }
10757 if let Some(_) = self.selected_bss {
10758 return 2;
10759 }
10760 if let Some(_) = self.selected_bssid {
10761 return 1;
10762 }
10763 0
10764 }
10765 }
10766
10767 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcRoamStartIndRequest {
10768 type Borrowed<'a> = &'a Self;
10769 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
10770 value
10771 }
10772 }
10773
10774 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcRoamStartIndRequest {
10775 type Owned = Self;
10776
10777 #[inline(always)]
10778 fn inline_align(_context: fidl::encoding::Context) -> usize {
10779 8
10780 }
10781
10782 #[inline(always)]
10783 fn inline_size(_context: fidl::encoding::Context) -> usize {
10784 16
10785 }
10786 }
10787
10788 unsafe impl<D: fidl::encoding::ResourceDialect>
10789 fidl::encoding::Encode<WlanFullmacImplIfcRoamStartIndRequest, D>
10790 for &WlanFullmacImplIfcRoamStartIndRequest
10791 {
10792 unsafe fn encode(
10793 self,
10794 encoder: &mut fidl::encoding::Encoder<'_, D>,
10795 offset: usize,
10796 mut depth: fidl::encoding::Depth,
10797 ) -> fidl::Result<()> {
10798 encoder.debug_check_bounds::<WlanFullmacImplIfcRoamStartIndRequest>(offset);
10799 let max_ordinal: u64 = self.max_ordinal_present();
10801 encoder.write_num(max_ordinal, offset);
10802 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
10803 if max_ordinal == 0 {
10805 return Ok(());
10806 }
10807 depth.increment()?;
10808 let envelope_size = 8;
10809 let bytes_len = max_ordinal as usize * envelope_size;
10810 #[allow(unused_variables)]
10811 let offset = encoder.out_of_line_offset(bytes_len);
10812 let mut _prev_end_offset: usize = 0;
10813 if 1 > max_ordinal {
10814 return Ok(());
10815 }
10816
10817 let cur_offset: usize = (1 - 1) * envelope_size;
10820
10821 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10823
10824 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
10829 self.selected_bssid
10830 .as_ref()
10831 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
10832 encoder,
10833 offset + cur_offset,
10834 depth,
10835 )?;
10836
10837 _prev_end_offset = cur_offset + envelope_size;
10838 if 2 > max_ordinal {
10839 return Ok(());
10840 }
10841
10842 let cur_offset: usize = (2 - 1) * envelope_size;
10845
10846 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10848
10849 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_common__common::BssDescription, D>(
10854 self.selected_bss.as_ref().map(<fidl_fuchsia_wlan_common__common::BssDescription as fidl::encoding::ValueTypeMarker>::borrow),
10855 encoder, offset + cur_offset, depth
10856 )?;
10857
10858 _prev_end_offset = cur_offset + envelope_size;
10859 if 3 > max_ordinal {
10860 return Ok(());
10861 }
10862
10863 let cur_offset: usize = (3 - 1) * envelope_size;
10866
10867 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10869
10870 fidl::encoding::encode_in_envelope_optional::<bool, D>(
10875 self.original_association_maintained
10876 .as_ref()
10877 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
10878 encoder,
10879 offset + cur_offset,
10880 depth,
10881 )?;
10882
10883 _prev_end_offset = cur_offset + envelope_size;
10884
10885 Ok(())
10886 }
10887 }
10888
10889 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
10890 for WlanFullmacImplIfcRoamStartIndRequest
10891 {
10892 #[inline(always)]
10893 fn new_empty() -> Self {
10894 Self::default()
10895 }
10896
10897 unsafe fn decode(
10898 &mut self,
10899 decoder: &mut fidl::encoding::Decoder<'_, D>,
10900 offset: usize,
10901 mut depth: fidl::encoding::Depth,
10902 ) -> fidl::Result<()> {
10903 decoder.debug_check_bounds::<Self>(offset);
10904 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
10905 None => return Err(fidl::Error::NotNullable),
10906 Some(len) => len,
10907 };
10908 if len == 0 {
10910 return Ok(());
10911 };
10912 depth.increment()?;
10913 let envelope_size = 8;
10914 let bytes_len = len * envelope_size;
10915 let offset = decoder.out_of_line_offset(bytes_len)?;
10916 let mut _next_ordinal_to_read = 0;
10918 let mut next_offset = offset;
10919 let end_offset = offset + bytes_len;
10920 _next_ordinal_to_read += 1;
10921 if next_offset >= end_offset {
10922 return Ok(());
10923 }
10924
10925 while _next_ordinal_to_read < 1 {
10927 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10928 _next_ordinal_to_read += 1;
10929 next_offset += envelope_size;
10930 }
10931
10932 let next_out_of_line = decoder.next_out_of_line();
10933 let handles_before = decoder.remaining_handles();
10934 if let Some((inlined, num_bytes, num_handles)) =
10935 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10936 {
10937 let member_inline_size =
10938 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
10939 decoder.context,
10940 );
10941 if inlined != (member_inline_size <= 4) {
10942 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10943 }
10944 let inner_offset;
10945 let mut inner_depth = depth.clone();
10946 if inlined {
10947 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10948 inner_offset = next_offset;
10949 } else {
10950 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10951 inner_depth.increment()?;
10952 }
10953 let val_ref = self
10954 .selected_bssid
10955 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
10956 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
10957 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10958 {
10959 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10960 }
10961 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10962 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10963 }
10964 }
10965
10966 next_offset += envelope_size;
10967 _next_ordinal_to_read += 1;
10968 if next_offset >= end_offset {
10969 return Ok(());
10970 }
10971
10972 while _next_ordinal_to_read < 2 {
10974 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10975 _next_ordinal_to_read += 1;
10976 next_offset += envelope_size;
10977 }
10978
10979 let next_out_of_line = decoder.next_out_of_line();
10980 let handles_before = decoder.remaining_handles();
10981 if let Some((inlined, num_bytes, num_handles)) =
10982 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10983 {
10984 let member_inline_size = <fidl_fuchsia_wlan_common__common::BssDescription as fidl::encoding::TypeMarker>::inline_size(decoder.context);
10985 if inlined != (member_inline_size <= 4) {
10986 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10987 }
10988 let inner_offset;
10989 let mut inner_depth = depth.clone();
10990 if inlined {
10991 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10992 inner_offset = next_offset;
10993 } else {
10994 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10995 inner_depth.increment()?;
10996 }
10997 let val_ref = self.selected_bss.get_or_insert_with(|| {
10998 fidl::new_empty!(fidl_fuchsia_wlan_common__common::BssDescription, D)
10999 });
11000 fidl::decode!(
11001 fidl_fuchsia_wlan_common__common::BssDescription,
11002 D,
11003 val_ref,
11004 decoder,
11005 inner_offset,
11006 inner_depth
11007 )?;
11008 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
11009 {
11010 return Err(fidl::Error::InvalidNumBytesInEnvelope);
11011 }
11012 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
11013 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
11014 }
11015 }
11016
11017 next_offset += envelope_size;
11018 _next_ordinal_to_read += 1;
11019 if next_offset >= end_offset {
11020 return Ok(());
11021 }
11022
11023 while _next_ordinal_to_read < 3 {
11025 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11026 _next_ordinal_to_read += 1;
11027 next_offset += envelope_size;
11028 }
11029
11030 let next_out_of_line = decoder.next_out_of_line();
11031 let handles_before = decoder.remaining_handles();
11032 if let Some((inlined, num_bytes, num_handles)) =
11033 fidl::encoding::decode_envelope_header(decoder, next_offset)?
11034 {
11035 let member_inline_size =
11036 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
11037 if inlined != (member_inline_size <= 4) {
11038 return Err(fidl::Error::InvalidInlineBitInEnvelope);
11039 }
11040 let inner_offset;
11041 let mut inner_depth = depth.clone();
11042 if inlined {
11043 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
11044 inner_offset = next_offset;
11045 } else {
11046 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
11047 inner_depth.increment()?;
11048 }
11049 let val_ref = self
11050 .original_association_maintained
11051 .get_or_insert_with(|| fidl::new_empty!(bool, D));
11052 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
11053 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
11054 {
11055 return Err(fidl::Error::InvalidNumBytesInEnvelope);
11056 }
11057 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
11058 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
11059 }
11060 }
11061
11062 next_offset += envelope_size;
11063
11064 while next_offset < end_offset {
11066 _next_ordinal_to_read += 1;
11067 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11068 next_offset += envelope_size;
11069 }
11070
11071 Ok(())
11072 }
11073 }
11074
11075 impl WlanFullmacImplIfcSaeHandshakeIndRequest {
11076 #[inline(always)]
11077 fn max_ordinal_present(&self) -> u64 {
11078 if let Some(_) = self.peer_sta_address {
11079 return 1;
11080 }
11081 0
11082 }
11083 }
11084
11085 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcSaeHandshakeIndRequest {
11086 type Borrowed<'a> = &'a Self;
11087 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
11088 value
11089 }
11090 }
11091
11092 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcSaeHandshakeIndRequest {
11093 type Owned = Self;
11094
11095 #[inline(always)]
11096 fn inline_align(_context: fidl::encoding::Context) -> usize {
11097 8
11098 }
11099
11100 #[inline(always)]
11101 fn inline_size(_context: fidl::encoding::Context) -> usize {
11102 16
11103 }
11104 }
11105
11106 unsafe impl<D: fidl::encoding::ResourceDialect>
11107 fidl::encoding::Encode<WlanFullmacImplIfcSaeHandshakeIndRequest, D>
11108 for &WlanFullmacImplIfcSaeHandshakeIndRequest
11109 {
11110 unsafe fn encode(
11111 self,
11112 encoder: &mut fidl::encoding::Encoder<'_, D>,
11113 offset: usize,
11114 mut depth: fidl::encoding::Depth,
11115 ) -> fidl::Result<()> {
11116 encoder.debug_check_bounds::<WlanFullmacImplIfcSaeHandshakeIndRequest>(offset);
11117 let max_ordinal: u64 = self.max_ordinal_present();
11119 encoder.write_num(max_ordinal, offset);
11120 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
11121 if max_ordinal == 0 {
11123 return Ok(());
11124 }
11125 depth.increment()?;
11126 let envelope_size = 8;
11127 let bytes_len = max_ordinal as usize * envelope_size;
11128 #[allow(unused_variables)]
11129 let offset = encoder.out_of_line_offset(bytes_len);
11130 let mut _prev_end_offset: usize = 0;
11131 if 1 > max_ordinal {
11132 return Ok(());
11133 }
11134
11135 let cur_offset: usize = (1 - 1) * envelope_size;
11138
11139 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
11141
11142 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
11147 self.peer_sta_address
11148 .as_ref()
11149 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
11150 encoder,
11151 offset + cur_offset,
11152 depth,
11153 )?;
11154
11155 _prev_end_offset = cur_offset + envelope_size;
11156
11157 Ok(())
11158 }
11159 }
11160
11161 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
11162 for WlanFullmacImplIfcSaeHandshakeIndRequest
11163 {
11164 #[inline(always)]
11165 fn new_empty() -> Self {
11166 Self::default()
11167 }
11168
11169 unsafe fn decode(
11170 &mut self,
11171 decoder: &mut fidl::encoding::Decoder<'_, D>,
11172 offset: usize,
11173 mut depth: fidl::encoding::Depth,
11174 ) -> fidl::Result<()> {
11175 decoder.debug_check_bounds::<Self>(offset);
11176 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
11177 None => return Err(fidl::Error::NotNullable),
11178 Some(len) => len,
11179 };
11180 if len == 0 {
11182 return Ok(());
11183 };
11184 depth.increment()?;
11185 let envelope_size = 8;
11186 let bytes_len = len * envelope_size;
11187 let offset = decoder.out_of_line_offset(bytes_len)?;
11188 let mut _next_ordinal_to_read = 0;
11190 let mut next_offset = offset;
11191 let end_offset = offset + bytes_len;
11192 _next_ordinal_to_read += 1;
11193 if next_offset >= end_offset {
11194 return Ok(());
11195 }
11196
11197 while _next_ordinal_to_read < 1 {
11199 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11200 _next_ordinal_to_read += 1;
11201 next_offset += envelope_size;
11202 }
11203
11204 let next_out_of_line = decoder.next_out_of_line();
11205 let handles_before = decoder.remaining_handles();
11206 if let Some((inlined, num_bytes, num_handles)) =
11207 fidl::encoding::decode_envelope_header(decoder, next_offset)?
11208 {
11209 let member_inline_size =
11210 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
11211 decoder.context,
11212 );
11213 if inlined != (member_inline_size <= 4) {
11214 return Err(fidl::Error::InvalidInlineBitInEnvelope);
11215 }
11216 let inner_offset;
11217 let mut inner_depth = depth.clone();
11218 if inlined {
11219 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
11220 inner_offset = next_offset;
11221 } else {
11222 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
11223 inner_depth.increment()?;
11224 }
11225 let val_ref = self
11226 .peer_sta_address
11227 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
11228 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
11229 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
11230 {
11231 return Err(fidl::Error::InvalidNumBytesInEnvelope);
11232 }
11233 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
11234 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
11235 }
11236 }
11237
11238 next_offset += envelope_size;
11239
11240 while next_offset < end_offset {
11242 _next_ordinal_to_read += 1;
11243 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11244 next_offset += envelope_size;
11245 }
11246
11247 Ok(())
11248 }
11249 }
11250
11251 impl WlanFullmacImplIfcStartConfRequest {
11252 #[inline(always)]
11253 fn max_ordinal_present(&self) -> u64 {
11254 if let Some(_) = self.result_code {
11255 return 1;
11256 }
11257 0
11258 }
11259 }
11260
11261 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcStartConfRequest {
11262 type Borrowed<'a> = &'a Self;
11263 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
11264 value
11265 }
11266 }
11267
11268 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcStartConfRequest {
11269 type Owned = Self;
11270
11271 #[inline(always)]
11272 fn inline_align(_context: fidl::encoding::Context) -> usize {
11273 8
11274 }
11275
11276 #[inline(always)]
11277 fn inline_size(_context: fidl::encoding::Context) -> usize {
11278 16
11279 }
11280 }
11281
11282 unsafe impl<D: fidl::encoding::ResourceDialect>
11283 fidl::encoding::Encode<WlanFullmacImplIfcStartConfRequest, D>
11284 for &WlanFullmacImplIfcStartConfRequest
11285 {
11286 unsafe fn encode(
11287 self,
11288 encoder: &mut fidl::encoding::Encoder<'_, D>,
11289 offset: usize,
11290 mut depth: fidl::encoding::Depth,
11291 ) -> fidl::Result<()> {
11292 encoder.debug_check_bounds::<WlanFullmacImplIfcStartConfRequest>(offset);
11293 let max_ordinal: u64 = self.max_ordinal_present();
11295 encoder.write_num(max_ordinal, offset);
11296 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
11297 if max_ordinal == 0 {
11299 return Ok(());
11300 }
11301 depth.increment()?;
11302 let envelope_size = 8;
11303 let bytes_len = max_ordinal as usize * envelope_size;
11304 #[allow(unused_variables)]
11305 let offset = encoder.out_of_line_offset(bytes_len);
11306 let mut _prev_end_offset: usize = 0;
11307 if 1 > max_ordinal {
11308 return Ok(());
11309 }
11310
11311 let cur_offset: usize = (1 - 1) * envelope_size;
11314
11315 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
11317
11318 fidl::encoding::encode_in_envelope_optional::<StartResult, D>(
11323 self.result_code
11324 .as_ref()
11325 .map(<StartResult as fidl::encoding::ValueTypeMarker>::borrow),
11326 encoder,
11327 offset + cur_offset,
11328 depth,
11329 )?;
11330
11331 _prev_end_offset = cur_offset + envelope_size;
11332
11333 Ok(())
11334 }
11335 }
11336
11337 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
11338 for WlanFullmacImplIfcStartConfRequest
11339 {
11340 #[inline(always)]
11341 fn new_empty() -> Self {
11342 Self::default()
11343 }
11344
11345 unsafe fn decode(
11346 &mut self,
11347 decoder: &mut fidl::encoding::Decoder<'_, D>,
11348 offset: usize,
11349 mut depth: fidl::encoding::Depth,
11350 ) -> fidl::Result<()> {
11351 decoder.debug_check_bounds::<Self>(offset);
11352 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
11353 None => return Err(fidl::Error::NotNullable),
11354 Some(len) => len,
11355 };
11356 if len == 0 {
11358 return Ok(());
11359 };
11360 depth.increment()?;
11361 let envelope_size = 8;
11362 let bytes_len = len * envelope_size;
11363 let offset = decoder.out_of_line_offset(bytes_len)?;
11364 let mut _next_ordinal_to_read = 0;
11366 let mut next_offset = offset;
11367 let end_offset = offset + bytes_len;
11368 _next_ordinal_to_read += 1;
11369 if next_offset >= end_offset {
11370 return Ok(());
11371 }
11372
11373 while _next_ordinal_to_read < 1 {
11375 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11376 _next_ordinal_to_read += 1;
11377 next_offset += envelope_size;
11378 }
11379
11380 let next_out_of_line = decoder.next_out_of_line();
11381 let handles_before = decoder.remaining_handles();
11382 if let Some((inlined, num_bytes, num_handles)) =
11383 fidl::encoding::decode_envelope_header(decoder, next_offset)?
11384 {
11385 let member_inline_size =
11386 <StartResult as fidl::encoding::TypeMarker>::inline_size(decoder.context);
11387 if inlined != (member_inline_size <= 4) {
11388 return Err(fidl::Error::InvalidInlineBitInEnvelope);
11389 }
11390 let inner_offset;
11391 let mut inner_depth = depth.clone();
11392 if inlined {
11393 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
11394 inner_offset = next_offset;
11395 } else {
11396 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
11397 inner_depth.increment()?;
11398 }
11399 let val_ref =
11400 self.result_code.get_or_insert_with(|| fidl::new_empty!(StartResult, D));
11401 fidl::decode!(StartResult, D, val_ref, decoder, inner_offset, inner_depth)?;
11402 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
11403 {
11404 return Err(fidl::Error::InvalidNumBytesInEnvelope);
11405 }
11406 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
11407 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
11408 }
11409 }
11410
11411 next_offset += envelope_size;
11412
11413 while next_offset < end_offset {
11415 _next_ordinal_to_read += 1;
11416 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11417 next_offset += envelope_size;
11418 }
11419
11420 Ok(())
11421 }
11422 }
11423
11424 impl WlanFullmacImplIfcStopConfRequest {
11425 #[inline(always)]
11426 fn max_ordinal_present(&self) -> u64 {
11427 if let Some(_) = self.result_code {
11428 return 1;
11429 }
11430 0
11431 }
11432 }
11433
11434 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcStopConfRequest {
11435 type Borrowed<'a> = &'a Self;
11436 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
11437 value
11438 }
11439 }
11440
11441 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcStopConfRequest {
11442 type Owned = Self;
11443
11444 #[inline(always)]
11445 fn inline_align(_context: fidl::encoding::Context) -> usize {
11446 8
11447 }
11448
11449 #[inline(always)]
11450 fn inline_size(_context: fidl::encoding::Context) -> usize {
11451 16
11452 }
11453 }
11454
11455 unsafe impl<D: fidl::encoding::ResourceDialect>
11456 fidl::encoding::Encode<WlanFullmacImplIfcStopConfRequest, D>
11457 for &WlanFullmacImplIfcStopConfRequest
11458 {
11459 unsafe fn encode(
11460 self,
11461 encoder: &mut fidl::encoding::Encoder<'_, D>,
11462 offset: usize,
11463 mut depth: fidl::encoding::Depth,
11464 ) -> fidl::Result<()> {
11465 encoder.debug_check_bounds::<WlanFullmacImplIfcStopConfRequest>(offset);
11466 let max_ordinal: u64 = self.max_ordinal_present();
11468 encoder.write_num(max_ordinal, offset);
11469 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
11470 if max_ordinal == 0 {
11472 return Ok(());
11473 }
11474 depth.increment()?;
11475 let envelope_size = 8;
11476 let bytes_len = max_ordinal as usize * envelope_size;
11477 #[allow(unused_variables)]
11478 let offset = encoder.out_of_line_offset(bytes_len);
11479 let mut _prev_end_offset: usize = 0;
11480 if 1 > max_ordinal {
11481 return Ok(());
11482 }
11483
11484 let cur_offset: usize = (1 - 1) * envelope_size;
11487
11488 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
11490
11491 fidl::encoding::encode_in_envelope_optional::<StopResult, D>(
11496 self.result_code
11497 .as_ref()
11498 .map(<StopResult as fidl::encoding::ValueTypeMarker>::borrow),
11499 encoder,
11500 offset + cur_offset,
11501 depth,
11502 )?;
11503
11504 _prev_end_offset = cur_offset + envelope_size;
11505
11506 Ok(())
11507 }
11508 }
11509
11510 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
11511 for WlanFullmacImplIfcStopConfRequest
11512 {
11513 #[inline(always)]
11514 fn new_empty() -> Self {
11515 Self::default()
11516 }
11517
11518 unsafe fn decode(
11519 &mut self,
11520 decoder: &mut fidl::encoding::Decoder<'_, D>,
11521 offset: usize,
11522 mut depth: fidl::encoding::Depth,
11523 ) -> fidl::Result<()> {
11524 decoder.debug_check_bounds::<Self>(offset);
11525 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
11526 None => return Err(fidl::Error::NotNullable),
11527 Some(len) => len,
11528 };
11529 if len == 0 {
11531 return Ok(());
11532 };
11533 depth.increment()?;
11534 let envelope_size = 8;
11535 let bytes_len = len * envelope_size;
11536 let offset = decoder.out_of_line_offset(bytes_len)?;
11537 let mut _next_ordinal_to_read = 0;
11539 let mut next_offset = offset;
11540 let end_offset = offset + bytes_len;
11541 _next_ordinal_to_read += 1;
11542 if next_offset >= end_offset {
11543 return Ok(());
11544 }
11545
11546 while _next_ordinal_to_read < 1 {
11548 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11549 _next_ordinal_to_read += 1;
11550 next_offset += envelope_size;
11551 }
11552
11553 let next_out_of_line = decoder.next_out_of_line();
11554 let handles_before = decoder.remaining_handles();
11555 if let Some((inlined, num_bytes, num_handles)) =
11556 fidl::encoding::decode_envelope_header(decoder, next_offset)?
11557 {
11558 let member_inline_size =
11559 <StopResult as fidl::encoding::TypeMarker>::inline_size(decoder.context);
11560 if inlined != (member_inline_size <= 4) {
11561 return Err(fidl::Error::InvalidInlineBitInEnvelope);
11562 }
11563 let inner_offset;
11564 let mut inner_depth = depth.clone();
11565 if inlined {
11566 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
11567 inner_offset = next_offset;
11568 } else {
11569 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
11570 inner_depth.increment()?;
11571 }
11572 let val_ref =
11573 self.result_code.get_or_insert_with(|| fidl::new_empty!(StopResult, D));
11574 fidl::decode!(StopResult, D, val_ref, decoder, inner_offset, inner_depth)?;
11575 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
11576 {
11577 return Err(fidl::Error::InvalidNumBytesInEnvelope);
11578 }
11579 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
11580 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
11581 }
11582 }
11583
11584 next_offset += envelope_size;
11585
11586 while next_offset < end_offset {
11588 _next_ordinal_to_read += 1;
11589 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11590 next_offset += envelope_size;
11591 }
11592
11593 Ok(())
11594 }
11595 }
11596
11597 impl WlanFullmacImplOnLinkStateChangedRequest {
11598 #[inline(always)]
11599 fn max_ordinal_present(&self) -> u64 {
11600 if let Some(_) = self.online {
11601 return 1;
11602 }
11603 0
11604 }
11605 }
11606
11607 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplOnLinkStateChangedRequest {
11608 type Borrowed<'a> = &'a Self;
11609 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
11610 value
11611 }
11612 }
11613
11614 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplOnLinkStateChangedRequest {
11615 type Owned = Self;
11616
11617 #[inline(always)]
11618 fn inline_align(_context: fidl::encoding::Context) -> usize {
11619 8
11620 }
11621
11622 #[inline(always)]
11623 fn inline_size(_context: fidl::encoding::Context) -> usize {
11624 16
11625 }
11626 }
11627
11628 unsafe impl<D: fidl::encoding::ResourceDialect>
11629 fidl::encoding::Encode<WlanFullmacImplOnLinkStateChangedRequest, D>
11630 for &WlanFullmacImplOnLinkStateChangedRequest
11631 {
11632 unsafe fn encode(
11633 self,
11634 encoder: &mut fidl::encoding::Encoder<'_, D>,
11635 offset: usize,
11636 mut depth: fidl::encoding::Depth,
11637 ) -> fidl::Result<()> {
11638 encoder.debug_check_bounds::<WlanFullmacImplOnLinkStateChangedRequest>(offset);
11639 let max_ordinal: u64 = self.max_ordinal_present();
11641 encoder.write_num(max_ordinal, offset);
11642 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
11643 if max_ordinal == 0 {
11645 return Ok(());
11646 }
11647 depth.increment()?;
11648 let envelope_size = 8;
11649 let bytes_len = max_ordinal as usize * envelope_size;
11650 #[allow(unused_variables)]
11651 let offset = encoder.out_of_line_offset(bytes_len);
11652 let mut _prev_end_offset: usize = 0;
11653 if 1 > max_ordinal {
11654 return Ok(());
11655 }
11656
11657 let cur_offset: usize = (1 - 1) * envelope_size;
11660
11661 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
11663
11664 fidl::encoding::encode_in_envelope_optional::<bool, D>(
11669 self.online.as_ref().map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
11670 encoder,
11671 offset + cur_offset,
11672 depth,
11673 )?;
11674
11675 _prev_end_offset = cur_offset + envelope_size;
11676
11677 Ok(())
11678 }
11679 }
11680
11681 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
11682 for WlanFullmacImplOnLinkStateChangedRequest
11683 {
11684 #[inline(always)]
11685 fn new_empty() -> Self {
11686 Self::default()
11687 }
11688
11689 unsafe fn decode(
11690 &mut self,
11691 decoder: &mut fidl::encoding::Decoder<'_, D>,
11692 offset: usize,
11693 mut depth: fidl::encoding::Depth,
11694 ) -> fidl::Result<()> {
11695 decoder.debug_check_bounds::<Self>(offset);
11696 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
11697 None => return Err(fidl::Error::NotNullable),
11698 Some(len) => len,
11699 };
11700 if len == 0 {
11702 return Ok(());
11703 };
11704 depth.increment()?;
11705 let envelope_size = 8;
11706 let bytes_len = len * envelope_size;
11707 let offset = decoder.out_of_line_offset(bytes_len)?;
11708 let mut _next_ordinal_to_read = 0;
11710 let mut next_offset = offset;
11711 let end_offset = offset + bytes_len;
11712 _next_ordinal_to_read += 1;
11713 if next_offset >= end_offset {
11714 return Ok(());
11715 }
11716
11717 while _next_ordinal_to_read < 1 {
11719 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11720 _next_ordinal_to_read += 1;
11721 next_offset += envelope_size;
11722 }
11723
11724 let next_out_of_line = decoder.next_out_of_line();
11725 let handles_before = decoder.remaining_handles();
11726 if let Some((inlined, num_bytes, num_handles)) =
11727 fidl::encoding::decode_envelope_header(decoder, next_offset)?
11728 {
11729 let member_inline_size =
11730 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
11731 if inlined != (member_inline_size <= 4) {
11732 return Err(fidl::Error::InvalidInlineBitInEnvelope);
11733 }
11734 let inner_offset;
11735 let mut inner_depth = depth.clone();
11736 if inlined {
11737 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
11738 inner_offset = next_offset;
11739 } else {
11740 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
11741 inner_depth.increment()?;
11742 }
11743 let val_ref = self.online.get_or_insert_with(|| fidl::new_empty!(bool, D));
11744 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
11745 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
11746 {
11747 return Err(fidl::Error::InvalidNumBytesInEnvelope);
11748 }
11749 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
11750 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
11751 }
11752 }
11753
11754 next_offset += envelope_size;
11755
11756 while next_offset < end_offset {
11758 _next_ordinal_to_read += 1;
11759 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11760 next_offset += envelope_size;
11761 }
11762
11763 Ok(())
11764 }
11765 }
11766
11767 impl WlanFullmacImplReconnectRequest {
11768 #[inline(always)]
11769 fn max_ordinal_present(&self) -> u64 {
11770 if let Some(_) = self.peer_sta_address {
11771 return 1;
11772 }
11773 0
11774 }
11775 }
11776
11777 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplReconnectRequest {
11778 type Borrowed<'a> = &'a Self;
11779 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
11780 value
11781 }
11782 }
11783
11784 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplReconnectRequest {
11785 type Owned = Self;
11786
11787 #[inline(always)]
11788 fn inline_align(_context: fidl::encoding::Context) -> usize {
11789 8
11790 }
11791
11792 #[inline(always)]
11793 fn inline_size(_context: fidl::encoding::Context) -> usize {
11794 16
11795 }
11796 }
11797
11798 unsafe impl<D: fidl::encoding::ResourceDialect>
11799 fidl::encoding::Encode<WlanFullmacImplReconnectRequest, D>
11800 for &WlanFullmacImplReconnectRequest
11801 {
11802 unsafe fn encode(
11803 self,
11804 encoder: &mut fidl::encoding::Encoder<'_, D>,
11805 offset: usize,
11806 mut depth: fidl::encoding::Depth,
11807 ) -> fidl::Result<()> {
11808 encoder.debug_check_bounds::<WlanFullmacImplReconnectRequest>(offset);
11809 let max_ordinal: u64 = self.max_ordinal_present();
11811 encoder.write_num(max_ordinal, offset);
11812 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
11813 if max_ordinal == 0 {
11815 return Ok(());
11816 }
11817 depth.increment()?;
11818 let envelope_size = 8;
11819 let bytes_len = max_ordinal as usize * envelope_size;
11820 #[allow(unused_variables)]
11821 let offset = encoder.out_of_line_offset(bytes_len);
11822 let mut _prev_end_offset: usize = 0;
11823 if 1 > max_ordinal {
11824 return Ok(());
11825 }
11826
11827 let cur_offset: usize = (1 - 1) * envelope_size;
11830
11831 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
11833
11834 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
11839 self.peer_sta_address
11840 .as_ref()
11841 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
11842 encoder,
11843 offset + cur_offset,
11844 depth,
11845 )?;
11846
11847 _prev_end_offset = cur_offset + envelope_size;
11848
11849 Ok(())
11850 }
11851 }
11852
11853 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
11854 for WlanFullmacImplReconnectRequest
11855 {
11856 #[inline(always)]
11857 fn new_empty() -> Self {
11858 Self::default()
11859 }
11860
11861 unsafe fn decode(
11862 &mut self,
11863 decoder: &mut fidl::encoding::Decoder<'_, D>,
11864 offset: usize,
11865 mut depth: fidl::encoding::Depth,
11866 ) -> fidl::Result<()> {
11867 decoder.debug_check_bounds::<Self>(offset);
11868 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
11869 None => return Err(fidl::Error::NotNullable),
11870 Some(len) => len,
11871 };
11872 if len == 0 {
11874 return Ok(());
11875 };
11876 depth.increment()?;
11877 let envelope_size = 8;
11878 let bytes_len = len * envelope_size;
11879 let offset = decoder.out_of_line_offset(bytes_len)?;
11880 let mut _next_ordinal_to_read = 0;
11882 let mut next_offset = offset;
11883 let end_offset = offset + bytes_len;
11884 _next_ordinal_to_read += 1;
11885 if next_offset >= end_offset {
11886 return Ok(());
11887 }
11888
11889 while _next_ordinal_to_read < 1 {
11891 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11892 _next_ordinal_to_read += 1;
11893 next_offset += envelope_size;
11894 }
11895
11896 let next_out_of_line = decoder.next_out_of_line();
11897 let handles_before = decoder.remaining_handles();
11898 if let Some((inlined, num_bytes, num_handles)) =
11899 fidl::encoding::decode_envelope_header(decoder, next_offset)?
11900 {
11901 let member_inline_size =
11902 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
11903 decoder.context,
11904 );
11905 if inlined != (member_inline_size <= 4) {
11906 return Err(fidl::Error::InvalidInlineBitInEnvelope);
11907 }
11908 let inner_offset;
11909 let mut inner_depth = depth.clone();
11910 if inlined {
11911 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
11912 inner_offset = next_offset;
11913 } else {
11914 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
11915 inner_depth.increment()?;
11916 }
11917 let val_ref = self
11918 .peer_sta_address
11919 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
11920 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
11921 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
11922 {
11923 return Err(fidl::Error::InvalidNumBytesInEnvelope);
11924 }
11925 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
11926 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
11927 }
11928 }
11929
11930 next_offset += envelope_size;
11931
11932 while next_offset < end_offset {
11934 _next_ordinal_to_read += 1;
11935 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11936 next_offset += envelope_size;
11937 }
11938
11939 Ok(())
11940 }
11941 }
11942
11943 impl WlanFullmacImplRoamRequest {
11944 #[inline(always)]
11945 fn max_ordinal_present(&self) -> u64 {
11946 if let Some(_) = self.selected_bss {
11947 return 1;
11948 }
11949 0
11950 }
11951 }
11952
11953 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplRoamRequest {
11954 type Borrowed<'a> = &'a Self;
11955 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
11956 value
11957 }
11958 }
11959
11960 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplRoamRequest {
11961 type Owned = Self;
11962
11963 #[inline(always)]
11964 fn inline_align(_context: fidl::encoding::Context) -> usize {
11965 8
11966 }
11967
11968 #[inline(always)]
11969 fn inline_size(_context: fidl::encoding::Context) -> usize {
11970 16
11971 }
11972 }
11973
11974 unsafe impl<D: fidl::encoding::ResourceDialect>
11975 fidl::encoding::Encode<WlanFullmacImplRoamRequest, D> for &WlanFullmacImplRoamRequest
11976 {
11977 unsafe fn encode(
11978 self,
11979 encoder: &mut fidl::encoding::Encoder<'_, D>,
11980 offset: usize,
11981 mut depth: fidl::encoding::Depth,
11982 ) -> fidl::Result<()> {
11983 encoder.debug_check_bounds::<WlanFullmacImplRoamRequest>(offset);
11984 let max_ordinal: u64 = self.max_ordinal_present();
11986 encoder.write_num(max_ordinal, offset);
11987 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
11988 if max_ordinal == 0 {
11990 return Ok(());
11991 }
11992 depth.increment()?;
11993 let envelope_size = 8;
11994 let bytes_len = max_ordinal as usize * envelope_size;
11995 #[allow(unused_variables)]
11996 let offset = encoder.out_of_line_offset(bytes_len);
11997 let mut _prev_end_offset: usize = 0;
11998 if 1 > max_ordinal {
11999 return Ok(());
12000 }
12001
12002 let cur_offset: usize = (1 - 1) * envelope_size;
12005
12006 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12008
12009 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_common__common::BssDescription, D>(
12014 self.selected_bss.as_ref().map(<fidl_fuchsia_wlan_common__common::BssDescription as fidl::encoding::ValueTypeMarker>::borrow),
12015 encoder, offset + cur_offset, depth
12016 )?;
12017
12018 _prev_end_offset = cur_offset + envelope_size;
12019
12020 Ok(())
12021 }
12022 }
12023
12024 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
12025 for WlanFullmacImplRoamRequest
12026 {
12027 #[inline(always)]
12028 fn new_empty() -> Self {
12029 Self::default()
12030 }
12031
12032 unsafe fn decode(
12033 &mut self,
12034 decoder: &mut fidl::encoding::Decoder<'_, D>,
12035 offset: usize,
12036 mut depth: fidl::encoding::Depth,
12037 ) -> fidl::Result<()> {
12038 decoder.debug_check_bounds::<Self>(offset);
12039 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
12040 None => return Err(fidl::Error::NotNullable),
12041 Some(len) => len,
12042 };
12043 if len == 0 {
12045 return Ok(());
12046 };
12047 depth.increment()?;
12048 let envelope_size = 8;
12049 let bytes_len = len * envelope_size;
12050 let offset = decoder.out_of_line_offset(bytes_len)?;
12051 let mut _next_ordinal_to_read = 0;
12053 let mut next_offset = offset;
12054 let end_offset = offset + bytes_len;
12055 _next_ordinal_to_read += 1;
12056 if next_offset >= end_offset {
12057 return Ok(());
12058 }
12059
12060 while _next_ordinal_to_read < 1 {
12062 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12063 _next_ordinal_to_read += 1;
12064 next_offset += envelope_size;
12065 }
12066
12067 let next_out_of_line = decoder.next_out_of_line();
12068 let handles_before = decoder.remaining_handles();
12069 if let Some((inlined, num_bytes, num_handles)) =
12070 fidl::encoding::decode_envelope_header(decoder, next_offset)?
12071 {
12072 let member_inline_size = <fidl_fuchsia_wlan_common__common::BssDescription as fidl::encoding::TypeMarker>::inline_size(decoder.context);
12073 if inlined != (member_inline_size <= 4) {
12074 return Err(fidl::Error::InvalidInlineBitInEnvelope);
12075 }
12076 let inner_offset;
12077 let mut inner_depth = depth.clone();
12078 if inlined {
12079 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
12080 inner_offset = next_offset;
12081 } else {
12082 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
12083 inner_depth.increment()?;
12084 }
12085 let val_ref = self.selected_bss.get_or_insert_with(|| {
12086 fidl::new_empty!(fidl_fuchsia_wlan_common__common::BssDescription, D)
12087 });
12088 fidl::decode!(
12089 fidl_fuchsia_wlan_common__common::BssDescription,
12090 D,
12091 val_ref,
12092 decoder,
12093 inner_offset,
12094 inner_depth
12095 )?;
12096 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
12097 {
12098 return Err(fidl::Error::InvalidNumBytesInEnvelope);
12099 }
12100 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
12101 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
12102 }
12103 }
12104
12105 next_offset += envelope_size;
12106
12107 while next_offset < end_offset {
12109 _next_ordinal_to_read += 1;
12110 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12111 next_offset += envelope_size;
12112 }
12113
12114 Ok(())
12115 }
12116 }
12117
12118 impl WlanFullmacImplSaeHandshakeRespRequest {
12119 #[inline(always)]
12120 fn max_ordinal_present(&self) -> u64 {
12121 if let Some(_) = self.status_code {
12122 return 2;
12123 }
12124 if let Some(_) = self.peer_sta_address {
12125 return 1;
12126 }
12127 0
12128 }
12129 }
12130
12131 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplSaeHandshakeRespRequest {
12132 type Borrowed<'a> = &'a Self;
12133 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
12134 value
12135 }
12136 }
12137
12138 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplSaeHandshakeRespRequest {
12139 type Owned = Self;
12140
12141 #[inline(always)]
12142 fn inline_align(_context: fidl::encoding::Context) -> usize {
12143 8
12144 }
12145
12146 #[inline(always)]
12147 fn inline_size(_context: fidl::encoding::Context) -> usize {
12148 16
12149 }
12150 }
12151
12152 unsafe impl<D: fidl::encoding::ResourceDialect>
12153 fidl::encoding::Encode<WlanFullmacImplSaeHandshakeRespRequest, D>
12154 for &WlanFullmacImplSaeHandshakeRespRequest
12155 {
12156 unsafe fn encode(
12157 self,
12158 encoder: &mut fidl::encoding::Encoder<'_, D>,
12159 offset: usize,
12160 mut depth: fidl::encoding::Depth,
12161 ) -> fidl::Result<()> {
12162 encoder.debug_check_bounds::<WlanFullmacImplSaeHandshakeRespRequest>(offset);
12163 let max_ordinal: u64 = self.max_ordinal_present();
12165 encoder.write_num(max_ordinal, offset);
12166 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
12167 if max_ordinal == 0 {
12169 return Ok(());
12170 }
12171 depth.increment()?;
12172 let envelope_size = 8;
12173 let bytes_len = max_ordinal as usize * envelope_size;
12174 #[allow(unused_variables)]
12175 let offset = encoder.out_of_line_offset(bytes_len);
12176 let mut _prev_end_offset: usize = 0;
12177 if 1 > max_ordinal {
12178 return Ok(());
12179 }
12180
12181 let cur_offset: usize = (1 - 1) * envelope_size;
12184
12185 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12187
12188 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
12193 self.peer_sta_address
12194 .as_ref()
12195 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
12196 encoder,
12197 offset + cur_offset,
12198 depth,
12199 )?;
12200
12201 _prev_end_offset = cur_offset + envelope_size;
12202 if 2 > max_ordinal {
12203 return Ok(());
12204 }
12205
12206 let cur_offset: usize = (2 - 1) * envelope_size;
12209
12210 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12212
12213 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_ieee80211__common::StatusCode, D>(
12218 self.status_code.as_ref().map(<fidl_fuchsia_wlan_ieee80211__common::StatusCode as fidl::encoding::ValueTypeMarker>::borrow),
12219 encoder, offset + cur_offset, depth
12220 )?;
12221
12222 _prev_end_offset = cur_offset + envelope_size;
12223
12224 Ok(())
12225 }
12226 }
12227
12228 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
12229 for WlanFullmacImplSaeHandshakeRespRequest
12230 {
12231 #[inline(always)]
12232 fn new_empty() -> Self {
12233 Self::default()
12234 }
12235
12236 unsafe fn decode(
12237 &mut self,
12238 decoder: &mut fidl::encoding::Decoder<'_, D>,
12239 offset: usize,
12240 mut depth: fidl::encoding::Depth,
12241 ) -> fidl::Result<()> {
12242 decoder.debug_check_bounds::<Self>(offset);
12243 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
12244 None => return Err(fidl::Error::NotNullable),
12245 Some(len) => len,
12246 };
12247 if len == 0 {
12249 return Ok(());
12250 };
12251 depth.increment()?;
12252 let envelope_size = 8;
12253 let bytes_len = len * envelope_size;
12254 let offset = decoder.out_of_line_offset(bytes_len)?;
12255 let mut _next_ordinal_to_read = 0;
12257 let mut next_offset = offset;
12258 let end_offset = offset + bytes_len;
12259 _next_ordinal_to_read += 1;
12260 if next_offset >= end_offset {
12261 return Ok(());
12262 }
12263
12264 while _next_ordinal_to_read < 1 {
12266 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12267 _next_ordinal_to_read += 1;
12268 next_offset += envelope_size;
12269 }
12270
12271 let next_out_of_line = decoder.next_out_of_line();
12272 let handles_before = decoder.remaining_handles();
12273 if let Some((inlined, num_bytes, num_handles)) =
12274 fidl::encoding::decode_envelope_header(decoder, next_offset)?
12275 {
12276 let member_inline_size =
12277 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
12278 decoder.context,
12279 );
12280 if inlined != (member_inline_size <= 4) {
12281 return Err(fidl::Error::InvalidInlineBitInEnvelope);
12282 }
12283 let inner_offset;
12284 let mut inner_depth = depth.clone();
12285 if inlined {
12286 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
12287 inner_offset = next_offset;
12288 } else {
12289 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
12290 inner_depth.increment()?;
12291 }
12292 let val_ref = self
12293 .peer_sta_address
12294 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
12295 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
12296 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
12297 {
12298 return Err(fidl::Error::InvalidNumBytesInEnvelope);
12299 }
12300 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
12301 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
12302 }
12303 }
12304
12305 next_offset += envelope_size;
12306 _next_ordinal_to_read += 1;
12307 if next_offset >= end_offset {
12308 return Ok(());
12309 }
12310
12311 while _next_ordinal_to_read < 2 {
12313 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12314 _next_ordinal_to_read += 1;
12315 next_offset += envelope_size;
12316 }
12317
12318 let next_out_of_line = decoder.next_out_of_line();
12319 let handles_before = decoder.remaining_handles();
12320 if let Some((inlined, num_bytes, num_handles)) =
12321 fidl::encoding::decode_envelope_header(decoder, next_offset)?
12322 {
12323 let member_inline_size = <fidl_fuchsia_wlan_ieee80211__common::StatusCode as fidl::encoding::TypeMarker>::inline_size(decoder.context);
12324 if inlined != (member_inline_size <= 4) {
12325 return Err(fidl::Error::InvalidInlineBitInEnvelope);
12326 }
12327 let inner_offset;
12328 let mut inner_depth = depth.clone();
12329 if inlined {
12330 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
12331 inner_offset = next_offset;
12332 } else {
12333 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
12334 inner_depth.increment()?;
12335 }
12336 let val_ref = self.status_code.get_or_insert_with(|| {
12337 fidl::new_empty!(fidl_fuchsia_wlan_ieee80211__common::StatusCode, D)
12338 });
12339 fidl::decode!(
12340 fidl_fuchsia_wlan_ieee80211__common::StatusCode,
12341 D,
12342 val_ref,
12343 decoder,
12344 inner_offset,
12345 inner_depth
12346 )?;
12347 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
12348 {
12349 return Err(fidl::Error::InvalidNumBytesInEnvelope);
12350 }
12351 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
12352 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
12353 }
12354 }
12355
12356 next_offset += envelope_size;
12357
12358 while next_offset < end_offset {
12360 _next_ordinal_to_read += 1;
12361 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12362 next_offset += envelope_size;
12363 }
12364
12365 Ok(())
12366 }
12367 }
12368
12369 impl WlanFullmacImplSetKeysRequest {
12370 #[inline(always)]
12371 fn max_ordinal_present(&self) -> u64 {
12372 if let Some(_) = self.key_descriptors {
12373 return 2;
12374 }
12375 if let Some(_) = self.keylist {
12376 return 1;
12377 }
12378 0
12379 }
12380 }
12381
12382 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplSetKeysRequest {
12383 type Borrowed<'a> = &'a Self;
12384 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
12385 value
12386 }
12387 }
12388
12389 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplSetKeysRequest {
12390 type Owned = Self;
12391
12392 #[inline(always)]
12393 fn inline_align(_context: fidl::encoding::Context) -> usize {
12394 8
12395 }
12396
12397 #[inline(always)]
12398 fn inline_size(_context: fidl::encoding::Context) -> usize {
12399 16
12400 }
12401 }
12402
12403 unsafe impl<D: fidl::encoding::ResourceDialect>
12404 fidl::encoding::Encode<WlanFullmacImplSetKeysRequest, D>
12405 for &WlanFullmacImplSetKeysRequest
12406 {
12407 unsafe fn encode(
12408 self,
12409 encoder: &mut fidl::encoding::Encoder<'_, D>,
12410 offset: usize,
12411 mut depth: fidl::encoding::Depth,
12412 ) -> fidl::Result<()> {
12413 encoder.debug_check_bounds::<WlanFullmacImplSetKeysRequest>(offset);
12414 let max_ordinal: u64 = self.max_ordinal_present();
12416 encoder.write_num(max_ordinal, offset);
12417 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
12418 if max_ordinal == 0 {
12420 return Ok(());
12421 }
12422 depth.increment()?;
12423 let envelope_size = 8;
12424 let bytes_len = max_ordinal as usize * envelope_size;
12425 #[allow(unused_variables)]
12426 let offset = encoder.out_of_line_offset(bytes_len);
12427 let mut _prev_end_offset: usize = 0;
12428 if 1 > max_ordinal {
12429 return Ok(());
12430 }
12431
12432 let cur_offset: usize = (1 - 1) * envelope_size;
12435
12436 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12438
12439 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<fidl_fuchsia_wlan_common__common::WlanKeyConfig, 4>, D>(
12444 self.keylist.as_ref().map(<fidl::encoding::Vector<fidl_fuchsia_wlan_common__common::WlanKeyConfig, 4> as fidl::encoding::ValueTypeMarker>::borrow),
12445 encoder, offset + cur_offset, depth
12446 )?;
12447
12448 _prev_end_offset = cur_offset + envelope_size;
12449 if 2 > max_ordinal {
12450 return Ok(());
12451 }
12452
12453 let cur_offset: usize = (2 - 1) * envelope_size;
12456
12457 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12459
12460 fidl::encoding::encode_in_envelope_optional::<
12465 fidl::encoding::Vector<fidl_fuchsia_wlan_ieee80211__common::SetKeyDescriptor, 4>,
12466 D,
12467 >(
12468 self.key_descriptors.as_ref().map(
12469 <fidl::encoding::Vector<
12470 fidl_fuchsia_wlan_ieee80211__common::SetKeyDescriptor,
12471 4,
12472 > as fidl::encoding::ValueTypeMarker>::borrow,
12473 ),
12474 encoder,
12475 offset + cur_offset,
12476 depth,
12477 )?;
12478
12479 _prev_end_offset = cur_offset + envelope_size;
12480
12481 Ok(())
12482 }
12483 }
12484
12485 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
12486 for WlanFullmacImplSetKeysRequest
12487 {
12488 #[inline(always)]
12489 fn new_empty() -> Self {
12490 Self::default()
12491 }
12492
12493 unsafe fn decode(
12494 &mut self,
12495 decoder: &mut fidl::encoding::Decoder<'_, D>,
12496 offset: usize,
12497 mut depth: fidl::encoding::Depth,
12498 ) -> fidl::Result<()> {
12499 decoder.debug_check_bounds::<Self>(offset);
12500 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
12501 None => return Err(fidl::Error::NotNullable),
12502 Some(len) => len,
12503 };
12504 if len == 0 {
12506 return Ok(());
12507 };
12508 depth.increment()?;
12509 let envelope_size = 8;
12510 let bytes_len = len * envelope_size;
12511 let offset = decoder.out_of_line_offset(bytes_len)?;
12512 let mut _next_ordinal_to_read = 0;
12514 let mut next_offset = offset;
12515 let end_offset = offset + bytes_len;
12516 _next_ordinal_to_read += 1;
12517 if next_offset >= end_offset {
12518 return Ok(());
12519 }
12520
12521 while _next_ordinal_to_read < 1 {
12523 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12524 _next_ordinal_to_read += 1;
12525 next_offset += envelope_size;
12526 }
12527
12528 let next_out_of_line = decoder.next_out_of_line();
12529 let handles_before = decoder.remaining_handles();
12530 if let Some((inlined, num_bytes, num_handles)) =
12531 fidl::encoding::decode_envelope_header(decoder, next_offset)?
12532 {
12533 let member_inline_size = <fidl::encoding::Vector<
12534 fidl_fuchsia_wlan_common__common::WlanKeyConfig,
12535 4,
12536 > as fidl::encoding::TypeMarker>::inline_size(
12537 decoder.context
12538 );
12539 if inlined != (member_inline_size <= 4) {
12540 return Err(fidl::Error::InvalidInlineBitInEnvelope);
12541 }
12542 let inner_offset;
12543 let mut inner_depth = depth.clone();
12544 if inlined {
12545 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
12546 inner_offset = next_offset;
12547 } else {
12548 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
12549 inner_depth.increment()?;
12550 }
12551 let val_ref =
12552 self.keylist.get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<fidl_fuchsia_wlan_common__common::WlanKeyConfig, 4>, D));
12553 fidl::decode!(fidl::encoding::Vector<fidl_fuchsia_wlan_common__common::WlanKeyConfig, 4>, D, val_ref, decoder, inner_offset, inner_depth)?;
12554 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
12555 {
12556 return Err(fidl::Error::InvalidNumBytesInEnvelope);
12557 }
12558 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
12559 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
12560 }
12561 }
12562
12563 next_offset += envelope_size;
12564 _next_ordinal_to_read += 1;
12565 if next_offset >= end_offset {
12566 return Ok(());
12567 }
12568
12569 while _next_ordinal_to_read < 2 {
12571 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12572 _next_ordinal_to_read += 1;
12573 next_offset += envelope_size;
12574 }
12575
12576 let next_out_of_line = decoder.next_out_of_line();
12577 let handles_before = decoder.remaining_handles();
12578 if let Some((inlined, num_bytes, num_handles)) =
12579 fidl::encoding::decode_envelope_header(decoder, next_offset)?
12580 {
12581 let member_inline_size = <fidl::encoding::Vector<
12582 fidl_fuchsia_wlan_ieee80211__common::SetKeyDescriptor,
12583 4,
12584 > as fidl::encoding::TypeMarker>::inline_size(
12585 decoder.context
12586 );
12587 if inlined != (member_inline_size <= 4) {
12588 return Err(fidl::Error::InvalidInlineBitInEnvelope);
12589 }
12590 let inner_offset;
12591 let mut inner_depth = depth.clone();
12592 if inlined {
12593 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
12594 inner_offset = next_offset;
12595 } else {
12596 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
12597 inner_depth.increment()?;
12598 }
12599 let val_ref =
12600 self.key_descriptors.get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<fidl_fuchsia_wlan_ieee80211__common::SetKeyDescriptor, 4>, D));
12601 fidl::decode!(fidl::encoding::Vector<fidl_fuchsia_wlan_ieee80211__common::SetKeyDescriptor, 4>, D, val_ref, decoder, inner_offset, inner_depth)?;
12602 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
12603 {
12604 return Err(fidl::Error::InvalidNumBytesInEnvelope);
12605 }
12606 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
12607 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
12608 }
12609 }
12610
12611 next_offset += envelope_size;
12612
12613 while next_offset < end_offset {
12615 _next_ordinal_to_read += 1;
12616 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12617 next_offset += envelope_size;
12618 }
12619
12620 Ok(())
12621 }
12622 }
12623
12624 impl WlanFullmacImplStartBssRequest {
12625 #[inline(always)]
12626 fn max_ordinal_present(&self) -> u64 {
12627 if let Some(_) = self.vendor_ie {
12628 return 7;
12629 }
12630 if let Some(_) = self.rsne {
12631 return 6;
12632 }
12633 if let Some(_) = self.channel {
12634 return 5;
12635 }
12636 if let Some(_) = self.dtim_period {
12637 return 4;
12638 }
12639 if let Some(_) = self.beacon_period {
12640 return 3;
12641 }
12642 if let Some(_) = self.bss_type {
12643 return 2;
12644 }
12645 if let Some(_) = self.ssid {
12646 return 1;
12647 }
12648 0
12649 }
12650 }
12651
12652 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplStartBssRequest {
12653 type Borrowed<'a> = &'a Self;
12654 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
12655 value
12656 }
12657 }
12658
12659 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplStartBssRequest {
12660 type Owned = Self;
12661
12662 #[inline(always)]
12663 fn inline_align(_context: fidl::encoding::Context) -> usize {
12664 8
12665 }
12666
12667 #[inline(always)]
12668 fn inline_size(_context: fidl::encoding::Context) -> usize {
12669 16
12670 }
12671 }
12672
12673 unsafe impl<D: fidl::encoding::ResourceDialect>
12674 fidl::encoding::Encode<WlanFullmacImplStartBssRequest, D>
12675 for &WlanFullmacImplStartBssRequest
12676 {
12677 unsafe fn encode(
12678 self,
12679 encoder: &mut fidl::encoding::Encoder<'_, D>,
12680 offset: usize,
12681 mut depth: fidl::encoding::Depth,
12682 ) -> fidl::Result<()> {
12683 encoder.debug_check_bounds::<WlanFullmacImplStartBssRequest>(offset);
12684 let max_ordinal: u64 = self.max_ordinal_present();
12686 encoder.write_num(max_ordinal, offset);
12687 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
12688 if max_ordinal == 0 {
12690 return Ok(());
12691 }
12692 depth.increment()?;
12693 let envelope_size = 8;
12694 let bytes_len = max_ordinal as usize * envelope_size;
12695 #[allow(unused_variables)]
12696 let offset = encoder.out_of_line_offset(bytes_len);
12697 let mut _prev_end_offset: usize = 0;
12698 if 1 > max_ordinal {
12699 return Ok(());
12700 }
12701
12702 let cur_offset: usize = (1 - 1) * envelope_size;
12705
12706 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12708
12709 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<u8, 32>, D>(
12714 self.ssid.as_ref().map(
12715 <fidl::encoding::Vector<u8, 32> as fidl::encoding::ValueTypeMarker>::borrow,
12716 ),
12717 encoder,
12718 offset + cur_offset,
12719 depth,
12720 )?;
12721
12722 _prev_end_offset = cur_offset + envelope_size;
12723 if 2 > max_ordinal {
12724 return Ok(());
12725 }
12726
12727 let cur_offset: usize = (2 - 1) * envelope_size;
12730
12731 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12733
12734 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_common__common::BssType, D>(
12739 self.bss_type.as_ref().map(<fidl_fuchsia_wlan_common__common::BssType as fidl::encoding::ValueTypeMarker>::borrow),
12740 encoder, offset + cur_offset, depth
12741 )?;
12742
12743 _prev_end_offset = cur_offset + envelope_size;
12744 if 3 > max_ordinal {
12745 return Ok(());
12746 }
12747
12748 let cur_offset: usize = (3 - 1) * envelope_size;
12751
12752 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12754
12755 fidl::encoding::encode_in_envelope_optional::<u32, D>(
12760 self.beacon_period.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
12761 encoder,
12762 offset + cur_offset,
12763 depth,
12764 )?;
12765
12766 _prev_end_offset = cur_offset + envelope_size;
12767 if 4 > max_ordinal {
12768 return Ok(());
12769 }
12770
12771 let cur_offset: usize = (4 - 1) * envelope_size;
12774
12775 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12777
12778 fidl::encoding::encode_in_envelope_optional::<u32, D>(
12783 self.dtim_period.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
12784 encoder,
12785 offset + cur_offset,
12786 depth,
12787 )?;
12788
12789 _prev_end_offset = cur_offset + envelope_size;
12790 if 5 > max_ordinal {
12791 return Ok(());
12792 }
12793
12794 let cur_offset: usize = (5 - 1) * envelope_size;
12797
12798 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12800
12801 fidl::encoding::encode_in_envelope_optional::<u8, D>(
12806 self.channel.as_ref().map(<u8 as fidl::encoding::ValueTypeMarker>::borrow),
12807 encoder,
12808 offset + cur_offset,
12809 depth,
12810 )?;
12811
12812 _prev_end_offset = cur_offset + envelope_size;
12813 if 6 > max_ordinal {
12814 return Ok(());
12815 }
12816
12817 let cur_offset: usize = (6 - 1) * envelope_size;
12820
12821 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12823
12824 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<u8, 257>, D>(
12829 self.rsne.as_ref().map(
12830 <fidl::encoding::Vector<u8, 257> as fidl::encoding::ValueTypeMarker>::borrow,
12831 ),
12832 encoder,
12833 offset + cur_offset,
12834 depth,
12835 )?;
12836
12837 _prev_end_offset = cur_offset + envelope_size;
12838 if 7 > max_ordinal {
12839 return Ok(());
12840 }
12841
12842 let cur_offset: usize = (7 - 1) * envelope_size;
12845
12846 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12848
12849 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<u8, 514>, D>(
12854 self.vendor_ie.as_ref().map(
12855 <fidl::encoding::Vector<u8, 514> as fidl::encoding::ValueTypeMarker>::borrow,
12856 ),
12857 encoder,
12858 offset + cur_offset,
12859 depth,
12860 )?;
12861
12862 _prev_end_offset = cur_offset + envelope_size;
12863
12864 Ok(())
12865 }
12866 }
12867
12868 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
12869 for WlanFullmacImplStartBssRequest
12870 {
12871 #[inline(always)]
12872 fn new_empty() -> Self {
12873 Self::default()
12874 }
12875
12876 unsafe fn decode(
12877 &mut self,
12878 decoder: &mut fidl::encoding::Decoder<'_, D>,
12879 offset: usize,
12880 mut depth: fidl::encoding::Depth,
12881 ) -> fidl::Result<()> {
12882 decoder.debug_check_bounds::<Self>(offset);
12883 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
12884 None => return Err(fidl::Error::NotNullable),
12885 Some(len) => len,
12886 };
12887 if len == 0 {
12889 return Ok(());
12890 };
12891 depth.increment()?;
12892 let envelope_size = 8;
12893 let bytes_len = len * envelope_size;
12894 let offset = decoder.out_of_line_offset(bytes_len)?;
12895 let mut _next_ordinal_to_read = 0;
12897 let mut next_offset = offset;
12898 let end_offset = offset + bytes_len;
12899 _next_ordinal_to_read += 1;
12900 if next_offset >= end_offset {
12901 return Ok(());
12902 }
12903
12904 while _next_ordinal_to_read < 1 {
12906 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12907 _next_ordinal_to_read += 1;
12908 next_offset += envelope_size;
12909 }
12910
12911 let next_out_of_line = decoder.next_out_of_line();
12912 let handles_before = decoder.remaining_handles();
12913 if let Some((inlined, num_bytes, num_handles)) =
12914 fidl::encoding::decode_envelope_header(decoder, next_offset)?
12915 {
12916 let member_inline_size =
12917 <fidl::encoding::Vector<u8, 32> as fidl::encoding::TypeMarker>::inline_size(
12918 decoder.context,
12919 );
12920 if inlined != (member_inline_size <= 4) {
12921 return Err(fidl::Error::InvalidInlineBitInEnvelope);
12922 }
12923 let inner_offset;
12924 let mut inner_depth = depth.clone();
12925 if inlined {
12926 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
12927 inner_offset = next_offset;
12928 } else {
12929 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
12930 inner_depth.increment()?;
12931 }
12932 let val_ref = self
12933 .ssid
12934 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<u8, 32>, D));
12935 fidl::decode!(fidl::encoding::Vector<u8, 32>, D, val_ref, decoder, inner_offset, inner_depth)?;
12936 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
12937 {
12938 return Err(fidl::Error::InvalidNumBytesInEnvelope);
12939 }
12940 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
12941 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
12942 }
12943 }
12944
12945 next_offset += envelope_size;
12946 _next_ordinal_to_read += 1;
12947 if next_offset >= end_offset {
12948 return Ok(());
12949 }
12950
12951 while _next_ordinal_to_read < 2 {
12953 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12954 _next_ordinal_to_read += 1;
12955 next_offset += envelope_size;
12956 }
12957
12958 let next_out_of_line = decoder.next_out_of_line();
12959 let handles_before = decoder.remaining_handles();
12960 if let Some((inlined, num_bytes, num_handles)) =
12961 fidl::encoding::decode_envelope_header(decoder, next_offset)?
12962 {
12963 let member_inline_size = <fidl_fuchsia_wlan_common__common::BssType as fidl::encoding::TypeMarker>::inline_size(decoder.context);
12964 if inlined != (member_inline_size <= 4) {
12965 return Err(fidl::Error::InvalidInlineBitInEnvelope);
12966 }
12967 let inner_offset;
12968 let mut inner_depth = depth.clone();
12969 if inlined {
12970 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
12971 inner_offset = next_offset;
12972 } else {
12973 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
12974 inner_depth.increment()?;
12975 }
12976 let val_ref = self.bss_type.get_or_insert_with(|| {
12977 fidl::new_empty!(fidl_fuchsia_wlan_common__common::BssType, D)
12978 });
12979 fidl::decode!(
12980 fidl_fuchsia_wlan_common__common::BssType,
12981 D,
12982 val_ref,
12983 decoder,
12984 inner_offset,
12985 inner_depth
12986 )?;
12987 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
12988 {
12989 return Err(fidl::Error::InvalidNumBytesInEnvelope);
12990 }
12991 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
12992 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
12993 }
12994 }
12995
12996 next_offset += envelope_size;
12997 _next_ordinal_to_read += 1;
12998 if next_offset >= end_offset {
12999 return Ok(());
13000 }
13001
13002 while _next_ordinal_to_read < 3 {
13004 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13005 _next_ordinal_to_read += 1;
13006 next_offset += envelope_size;
13007 }
13008
13009 let next_out_of_line = decoder.next_out_of_line();
13010 let handles_before = decoder.remaining_handles();
13011 if let Some((inlined, num_bytes, num_handles)) =
13012 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13013 {
13014 let member_inline_size =
13015 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
13016 if inlined != (member_inline_size <= 4) {
13017 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13018 }
13019 let inner_offset;
13020 let mut inner_depth = depth.clone();
13021 if inlined {
13022 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13023 inner_offset = next_offset;
13024 } else {
13025 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13026 inner_depth.increment()?;
13027 }
13028 let val_ref = self.beacon_period.get_or_insert_with(|| fidl::new_empty!(u32, D));
13029 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
13030 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13031 {
13032 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13033 }
13034 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13035 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13036 }
13037 }
13038
13039 next_offset += envelope_size;
13040 _next_ordinal_to_read += 1;
13041 if next_offset >= end_offset {
13042 return Ok(());
13043 }
13044
13045 while _next_ordinal_to_read < 4 {
13047 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13048 _next_ordinal_to_read += 1;
13049 next_offset += envelope_size;
13050 }
13051
13052 let next_out_of_line = decoder.next_out_of_line();
13053 let handles_before = decoder.remaining_handles();
13054 if let Some((inlined, num_bytes, num_handles)) =
13055 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13056 {
13057 let member_inline_size =
13058 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
13059 if inlined != (member_inline_size <= 4) {
13060 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13061 }
13062 let inner_offset;
13063 let mut inner_depth = depth.clone();
13064 if inlined {
13065 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13066 inner_offset = next_offset;
13067 } else {
13068 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13069 inner_depth.increment()?;
13070 }
13071 let val_ref = self.dtim_period.get_or_insert_with(|| fidl::new_empty!(u32, D));
13072 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
13073 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13074 {
13075 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13076 }
13077 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13078 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13079 }
13080 }
13081
13082 next_offset += envelope_size;
13083 _next_ordinal_to_read += 1;
13084 if next_offset >= end_offset {
13085 return Ok(());
13086 }
13087
13088 while _next_ordinal_to_read < 5 {
13090 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13091 _next_ordinal_to_read += 1;
13092 next_offset += envelope_size;
13093 }
13094
13095 let next_out_of_line = decoder.next_out_of_line();
13096 let handles_before = decoder.remaining_handles();
13097 if let Some((inlined, num_bytes, num_handles)) =
13098 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13099 {
13100 let member_inline_size =
13101 <u8 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
13102 if inlined != (member_inline_size <= 4) {
13103 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13104 }
13105 let inner_offset;
13106 let mut inner_depth = depth.clone();
13107 if inlined {
13108 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13109 inner_offset = next_offset;
13110 } else {
13111 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13112 inner_depth.increment()?;
13113 }
13114 let val_ref = self.channel.get_or_insert_with(|| fidl::new_empty!(u8, D));
13115 fidl::decode!(u8, D, val_ref, decoder, inner_offset, inner_depth)?;
13116 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13117 {
13118 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13119 }
13120 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13121 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13122 }
13123 }
13124
13125 next_offset += envelope_size;
13126 _next_ordinal_to_read += 1;
13127 if next_offset >= end_offset {
13128 return Ok(());
13129 }
13130
13131 while _next_ordinal_to_read < 6 {
13133 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13134 _next_ordinal_to_read += 1;
13135 next_offset += envelope_size;
13136 }
13137
13138 let next_out_of_line = decoder.next_out_of_line();
13139 let handles_before = decoder.remaining_handles();
13140 if let Some((inlined, num_bytes, num_handles)) =
13141 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13142 {
13143 let member_inline_size =
13144 <fidl::encoding::Vector<u8, 257> as fidl::encoding::TypeMarker>::inline_size(
13145 decoder.context,
13146 );
13147 if inlined != (member_inline_size <= 4) {
13148 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13149 }
13150 let inner_offset;
13151 let mut inner_depth = depth.clone();
13152 if inlined {
13153 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13154 inner_offset = next_offset;
13155 } else {
13156 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13157 inner_depth.increment()?;
13158 }
13159 let val_ref = self
13160 .rsne
13161 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<u8, 257>, D));
13162 fidl::decode!(fidl::encoding::Vector<u8, 257>, D, val_ref, decoder, inner_offset, inner_depth)?;
13163 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13164 {
13165 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13166 }
13167 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13168 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13169 }
13170 }
13171
13172 next_offset += envelope_size;
13173 _next_ordinal_to_read += 1;
13174 if next_offset >= end_offset {
13175 return Ok(());
13176 }
13177
13178 while _next_ordinal_to_read < 7 {
13180 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13181 _next_ordinal_to_read += 1;
13182 next_offset += envelope_size;
13183 }
13184
13185 let next_out_of_line = decoder.next_out_of_line();
13186 let handles_before = decoder.remaining_handles();
13187 if let Some((inlined, num_bytes, num_handles)) =
13188 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13189 {
13190 let member_inline_size =
13191 <fidl::encoding::Vector<u8, 514> as fidl::encoding::TypeMarker>::inline_size(
13192 decoder.context,
13193 );
13194 if inlined != (member_inline_size <= 4) {
13195 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13196 }
13197 let inner_offset;
13198 let mut inner_depth = depth.clone();
13199 if inlined {
13200 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13201 inner_offset = next_offset;
13202 } else {
13203 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13204 inner_depth.increment()?;
13205 }
13206 let val_ref = self
13207 .vendor_ie
13208 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<u8, 514>, D));
13209 fidl::decode!(fidl::encoding::Vector<u8, 514>, D, val_ref, decoder, inner_offset, inner_depth)?;
13210 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13211 {
13212 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13213 }
13214 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13215 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13216 }
13217 }
13218
13219 next_offset += envelope_size;
13220
13221 while next_offset < end_offset {
13223 _next_ordinal_to_read += 1;
13224 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13225 next_offset += envelope_size;
13226 }
13227
13228 Ok(())
13229 }
13230 }
13231
13232 impl WlanFullmacImplStartScanRequest {
13233 #[inline(always)]
13234 fn max_ordinal_present(&self) -> u64 {
13235 if let Some(_) = self.max_channel_time {
13236 return 6;
13237 }
13238 if let Some(_) = self.min_channel_time {
13239 return 5;
13240 }
13241 if let Some(_) = self.ssids {
13242 return 4;
13243 }
13244 if let Some(_) = self.channels {
13245 return 3;
13246 }
13247 if let Some(_) = self.scan_type {
13248 return 2;
13249 }
13250 if let Some(_) = self.txn_id {
13251 return 1;
13252 }
13253 0
13254 }
13255 }
13256
13257 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplStartScanRequest {
13258 type Borrowed<'a> = &'a Self;
13259 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
13260 value
13261 }
13262 }
13263
13264 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplStartScanRequest {
13265 type Owned = Self;
13266
13267 #[inline(always)]
13268 fn inline_align(_context: fidl::encoding::Context) -> usize {
13269 8
13270 }
13271
13272 #[inline(always)]
13273 fn inline_size(_context: fidl::encoding::Context) -> usize {
13274 16
13275 }
13276 }
13277
13278 unsafe impl<D: fidl::encoding::ResourceDialect>
13279 fidl::encoding::Encode<WlanFullmacImplStartScanRequest, D>
13280 for &WlanFullmacImplStartScanRequest
13281 {
13282 unsafe fn encode(
13283 self,
13284 encoder: &mut fidl::encoding::Encoder<'_, D>,
13285 offset: usize,
13286 mut depth: fidl::encoding::Depth,
13287 ) -> fidl::Result<()> {
13288 encoder.debug_check_bounds::<WlanFullmacImplStartScanRequest>(offset);
13289 let max_ordinal: u64 = self.max_ordinal_present();
13291 encoder.write_num(max_ordinal, offset);
13292 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
13293 if max_ordinal == 0 {
13295 return Ok(());
13296 }
13297 depth.increment()?;
13298 let envelope_size = 8;
13299 let bytes_len = max_ordinal as usize * envelope_size;
13300 #[allow(unused_variables)]
13301 let offset = encoder.out_of_line_offset(bytes_len);
13302 let mut _prev_end_offset: usize = 0;
13303 if 1 > max_ordinal {
13304 return Ok(());
13305 }
13306
13307 let cur_offset: usize = (1 - 1) * envelope_size;
13310
13311 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
13313
13314 fidl::encoding::encode_in_envelope_optional::<u64, D>(
13319 self.txn_id.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
13320 encoder,
13321 offset + cur_offset,
13322 depth,
13323 )?;
13324
13325 _prev_end_offset = cur_offset + envelope_size;
13326 if 2 > max_ordinal {
13327 return Ok(());
13328 }
13329
13330 let cur_offset: usize = (2 - 1) * envelope_size;
13333
13334 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
13336
13337 fidl::encoding::encode_in_envelope_optional::<WlanScanType, D>(
13342 self.scan_type
13343 .as_ref()
13344 .map(<WlanScanType as fidl::encoding::ValueTypeMarker>::borrow),
13345 encoder,
13346 offset + cur_offset,
13347 depth,
13348 )?;
13349
13350 _prev_end_offset = cur_offset + envelope_size;
13351 if 3 > max_ordinal {
13352 return Ok(());
13353 }
13354
13355 let cur_offset: usize = (3 - 1) * envelope_size;
13358
13359 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
13361
13362 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<u8, 256>, D>(
13367 self.channels.as_ref().map(
13368 <fidl::encoding::Vector<u8, 256> as fidl::encoding::ValueTypeMarker>::borrow,
13369 ),
13370 encoder,
13371 offset + cur_offset,
13372 depth,
13373 )?;
13374
13375 _prev_end_offset = cur_offset + envelope_size;
13376 if 4 > max_ordinal {
13377 return Ok(());
13378 }
13379
13380 let cur_offset: usize = (4 - 1) * envelope_size;
13383
13384 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
13386
13387 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<fidl::encoding::Vector<u8, 32>>, D>(
13392 self.ssids.as_ref().map(<fidl::encoding::UnboundedVector<fidl::encoding::Vector<u8, 32>> as fidl::encoding::ValueTypeMarker>::borrow),
13393 encoder, offset + cur_offset, depth
13394 )?;
13395
13396 _prev_end_offset = cur_offset + envelope_size;
13397 if 5 > max_ordinal {
13398 return Ok(());
13399 }
13400
13401 let cur_offset: usize = (5 - 1) * envelope_size;
13404
13405 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
13407
13408 fidl::encoding::encode_in_envelope_optional::<u32, D>(
13413 self.min_channel_time
13414 .as_ref()
13415 .map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
13416 encoder,
13417 offset + cur_offset,
13418 depth,
13419 )?;
13420
13421 _prev_end_offset = cur_offset + envelope_size;
13422 if 6 > max_ordinal {
13423 return Ok(());
13424 }
13425
13426 let cur_offset: usize = (6 - 1) * envelope_size;
13429
13430 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
13432
13433 fidl::encoding::encode_in_envelope_optional::<u32, D>(
13438 self.max_channel_time
13439 .as_ref()
13440 .map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
13441 encoder,
13442 offset + cur_offset,
13443 depth,
13444 )?;
13445
13446 _prev_end_offset = cur_offset + envelope_size;
13447
13448 Ok(())
13449 }
13450 }
13451
13452 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
13453 for WlanFullmacImplStartScanRequest
13454 {
13455 #[inline(always)]
13456 fn new_empty() -> Self {
13457 Self::default()
13458 }
13459
13460 unsafe fn decode(
13461 &mut self,
13462 decoder: &mut fidl::encoding::Decoder<'_, D>,
13463 offset: usize,
13464 mut depth: fidl::encoding::Depth,
13465 ) -> fidl::Result<()> {
13466 decoder.debug_check_bounds::<Self>(offset);
13467 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
13468 None => return Err(fidl::Error::NotNullable),
13469 Some(len) => len,
13470 };
13471 if len == 0 {
13473 return Ok(());
13474 };
13475 depth.increment()?;
13476 let envelope_size = 8;
13477 let bytes_len = len * envelope_size;
13478 let offset = decoder.out_of_line_offset(bytes_len)?;
13479 let mut _next_ordinal_to_read = 0;
13481 let mut next_offset = offset;
13482 let end_offset = offset + bytes_len;
13483 _next_ordinal_to_read += 1;
13484 if next_offset >= end_offset {
13485 return Ok(());
13486 }
13487
13488 while _next_ordinal_to_read < 1 {
13490 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13491 _next_ordinal_to_read += 1;
13492 next_offset += envelope_size;
13493 }
13494
13495 let next_out_of_line = decoder.next_out_of_line();
13496 let handles_before = decoder.remaining_handles();
13497 if let Some((inlined, num_bytes, num_handles)) =
13498 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13499 {
13500 let member_inline_size =
13501 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
13502 if inlined != (member_inline_size <= 4) {
13503 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13504 }
13505 let inner_offset;
13506 let mut inner_depth = depth.clone();
13507 if inlined {
13508 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13509 inner_offset = next_offset;
13510 } else {
13511 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13512 inner_depth.increment()?;
13513 }
13514 let val_ref = self.txn_id.get_or_insert_with(|| fidl::new_empty!(u64, D));
13515 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
13516 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13517 {
13518 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13519 }
13520 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13521 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13522 }
13523 }
13524
13525 next_offset += envelope_size;
13526 _next_ordinal_to_read += 1;
13527 if next_offset >= end_offset {
13528 return Ok(());
13529 }
13530
13531 while _next_ordinal_to_read < 2 {
13533 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13534 _next_ordinal_to_read += 1;
13535 next_offset += envelope_size;
13536 }
13537
13538 let next_out_of_line = decoder.next_out_of_line();
13539 let handles_before = decoder.remaining_handles();
13540 if let Some((inlined, num_bytes, num_handles)) =
13541 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13542 {
13543 let member_inline_size =
13544 <WlanScanType as fidl::encoding::TypeMarker>::inline_size(decoder.context);
13545 if inlined != (member_inline_size <= 4) {
13546 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13547 }
13548 let inner_offset;
13549 let mut inner_depth = depth.clone();
13550 if inlined {
13551 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13552 inner_offset = next_offset;
13553 } else {
13554 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13555 inner_depth.increment()?;
13556 }
13557 let val_ref =
13558 self.scan_type.get_or_insert_with(|| fidl::new_empty!(WlanScanType, D));
13559 fidl::decode!(WlanScanType, D, val_ref, decoder, inner_offset, inner_depth)?;
13560 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13561 {
13562 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13563 }
13564 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13565 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13566 }
13567 }
13568
13569 next_offset += envelope_size;
13570 _next_ordinal_to_read += 1;
13571 if next_offset >= end_offset {
13572 return Ok(());
13573 }
13574
13575 while _next_ordinal_to_read < 3 {
13577 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13578 _next_ordinal_to_read += 1;
13579 next_offset += envelope_size;
13580 }
13581
13582 let next_out_of_line = decoder.next_out_of_line();
13583 let handles_before = decoder.remaining_handles();
13584 if let Some((inlined, num_bytes, num_handles)) =
13585 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13586 {
13587 let member_inline_size =
13588 <fidl::encoding::Vector<u8, 256> as fidl::encoding::TypeMarker>::inline_size(
13589 decoder.context,
13590 );
13591 if inlined != (member_inline_size <= 4) {
13592 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13593 }
13594 let inner_offset;
13595 let mut inner_depth = depth.clone();
13596 if inlined {
13597 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13598 inner_offset = next_offset;
13599 } else {
13600 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13601 inner_depth.increment()?;
13602 }
13603 let val_ref = self
13604 .channels
13605 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<u8, 256>, D));
13606 fidl::decode!(fidl::encoding::Vector<u8, 256>, D, val_ref, decoder, inner_offset, inner_depth)?;
13607 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13608 {
13609 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13610 }
13611 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13612 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13613 }
13614 }
13615
13616 next_offset += envelope_size;
13617 _next_ordinal_to_read += 1;
13618 if next_offset >= end_offset {
13619 return Ok(());
13620 }
13621
13622 while _next_ordinal_to_read < 4 {
13624 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13625 _next_ordinal_to_read += 1;
13626 next_offset += envelope_size;
13627 }
13628
13629 let next_out_of_line = decoder.next_out_of_line();
13630 let handles_before = decoder.remaining_handles();
13631 if let Some((inlined, num_bytes, num_handles)) =
13632 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13633 {
13634 let member_inline_size = <fidl::encoding::UnboundedVector<
13635 fidl::encoding::Vector<u8, 32>,
13636 > as fidl::encoding::TypeMarker>::inline_size(
13637 decoder.context
13638 );
13639 if inlined != (member_inline_size <= 4) {
13640 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13641 }
13642 let inner_offset;
13643 let mut inner_depth = depth.clone();
13644 if inlined {
13645 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13646 inner_offset = next_offset;
13647 } else {
13648 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13649 inner_depth.increment()?;
13650 }
13651 let val_ref = self.ssids.get_or_insert_with(|| {
13652 fidl::new_empty!(
13653 fidl::encoding::UnboundedVector<fidl::encoding::Vector<u8, 32>>,
13654 D
13655 )
13656 });
13657 fidl::decode!(
13658 fidl::encoding::UnboundedVector<fidl::encoding::Vector<u8, 32>>,
13659 D,
13660 val_ref,
13661 decoder,
13662 inner_offset,
13663 inner_depth
13664 )?;
13665 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13666 {
13667 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13668 }
13669 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13670 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13671 }
13672 }
13673
13674 next_offset += envelope_size;
13675 _next_ordinal_to_read += 1;
13676 if next_offset >= end_offset {
13677 return Ok(());
13678 }
13679
13680 while _next_ordinal_to_read < 5 {
13682 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13683 _next_ordinal_to_read += 1;
13684 next_offset += envelope_size;
13685 }
13686
13687 let next_out_of_line = decoder.next_out_of_line();
13688 let handles_before = decoder.remaining_handles();
13689 if let Some((inlined, num_bytes, num_handles)) =
13690 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13691 {
13692 let member_inline_size =
13693 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
13694 if inlined != (member_inline_size <= 4) {
13695 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13696 }
13697 let inner_offset;
13698 let mut inner_depth = depth.clone();
13699 if inlined {
13700 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13701 inner_offset = next_offset;
13702 } else {
13703 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13704 inner_depth.increment()?;
13705 }
13706 let val_ref = self.min_channel_time.get_or_insert_with(|| fidl::new_empty!(u32, D));
13707 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
13708 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13709 {
13710 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13711 }
13712 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13713 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13714 }
13715 }
13716
13717 next_offset += envelope_size;
13718 _next_ordinal_to_read += 1;
13719 if next_offset >= end_offset {
13720 return Ok(());
13721 }
13722
13723 while _next_ordinal_to_read < 6 {
13725 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13726 _next_ordinal_to_read += 1;
13727 next_offset += envelope_size;
13728 }
13729
13730 let next_out_of_line = decoder.next_out_of_line();
13731 let handles_before = decoder.remaining_handles();
13732 if let Some((inlined, num_bytes, num_handles)) =
13733 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13734 {
13735 let member_inline_size =
13736 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
13737 if inlined != (member_inline_size <= 4) {
13738 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13739 }
13740 let inner_offset;
13741 let mut inner_depth = depth.clone();
13742 if inlined {
13743 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13744 inner_offset = next_offset;
13745 } else {
13746 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13747 inner_depth.increment()?;
13748 }
13749 let val_ref = self.max_channel_time.get_or_insert_with(|| fidl::new_empty!(u32, D));
13750 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
13751 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13752 {
13753 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13754 }
13755 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13756 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13757 }
13758 }
13759
13760 next_offset += envelope_size;
13761
13762 while next_offset < end_offset {
13764 _next_ordinal_to_read += 1;
13765 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13766 next_offset += envelope_size;
13767 }
13768
13769 Ok(())
13770 }
13771 }
13772
13773 impl WlanFullmacImplStopBssRequest {
13774 #[inline(always)]
13775 fn max_ordinal_present(&self) -> u64 {
13776 if let Some(_) = self.ssid {
13777 return 1;
13778 }
13779 0
13780 }
13781 }
13782
13783 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplStopBssRequest {
13784 type Borrowed<'a> = &'a Self;
13785 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
13786 value
13787 }
13788 }
13789
13790 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplStopBssRequest {
13791 type Owned = Self;
13792
13793 #[inline(always)]
13794 fn inline_align(_context: fidl::encoding::Context) -> usize {
13795 8
13796 }
13797
13798 #[inline(always)]
13799 fn inline_size(_context: fidl::encoding::Context) -> usize {
13800 16
13801 }
13802 }
13803
13804 unsafe impl<D: fidl::encoding::ResourceDialect>
13805 fidl::encoding::Encode<WlanFullmacImplStopBssRequest, D>
13806 for &WlanFullmacImplStopBssRequest
13807 {
13808 unsafe fn encode(
13809 self,
13810 encoder: &mut fidl::encoding::Encoder<'_, D>,
13811 offset: usize,
13812 mut depth: fidl::encoding::Depth,
13813 ) -> fidl::Result<()> {
13814 encoder.debug_check_bounds::<WlanFullmacImplStopBssRequest>(offset);
13815 let max_ordinal: u64 = self.max_ordinal_present();
13817 encoder.write_num(max_ordinal, offset);
13818 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
13819 if max_ordinal == 0 {
13821 return Ok(());
13822 }
13823 depth.increment()?;
13824 let envelope_size = 8;
13825 let bytes_len = max_ordinal as usize * envelope_size;
13826 #[allow(unused_variables)]
13827 let offset = encoder.out_of_line_offset(bytes_len);
13828 let mut _prev_end_offset: usize = 0;
13829 if 1 > max_ordinal {
13830 return Ok(());
13831 }
13832
13833 let cur_offset: usize = (1 - 1) * envelope_size;
13836
13837 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
13839
13840 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<u8, 32>, D>(
13845 self.ssid.as_ref().map(
13846 <fidl::encoding::Vector<u8, 32> as fidl::encoding::ValueTypeMarker>::borrow,
13847 ),
13848 encoder,
13849 offset + cur_offset,
13850 depth,
13851 )?;
13852
13853 _prev_end_offset = cur_offset + envelope_size;
13854
13855 Ok(())
13856 }
13857 }
13858
13859 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
13860 for WlanFullmacImplStopBssRequest
13861 {
13862 #[inline(always)]
13863 fn new_empty() -> Self {
13864 Self::default()
13865 }
13866
13867 unsafe fn decode(
13868 &mut self,
13869 decoder: &mut fidl::encoding::Decoder<'_, D>,
13870 offset: usize,
13871 mut depth: fidl::encoding::Depth,
13872 ) -> fidl::Result<()> {
13873 decoder.debug_check_bounds::<Self>(offset);
13874 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
13875 None => return Err(fidl::Error::NotNullable),
13876 Some(len) => len,
13877 };
13878 if len == 0 {
13880 return Ok(());
13881 };
13882 depth.increment()?;
13883 let envelope_size = 8;
13884 let bytes_len = len * envelope_size;
13885 let offset = decoder.out_of_line_offset(bytes_len)?;
13886 let mut _next_ordinal_to_read = 0;
13888 let mut next_offset = offset;
13889 let end_offset = offset + bytes_len;
13890 _next_ordinal_to_read += 1;
13891 if next_offset >= end_offset {
13892 return Ok(());
13893 }
13894
13895 while _next_ordinal_to_read < 1 {
13897 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13898 _next_ordinal_to_read += 1;
13899 next_offset += envelope_size;
13900 }
13901
13902 let next_out_of_line = decoder.next_out_of_line();
13903 let handles_before = decoder.remaining_handles();
13904 if let Some((inlined, num_bytes, num_handles)) =
13905 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13906 {
13907 let member_inline_size =
13908 <fidl::encoding::Vector<u8, 32> as fidl::encoding::TypeMarker>::inline_size(
13909 decoder.context,
13910 );
13911 if inlined != (member_inline_size <= 4) {
13912 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13913 }
13914 let inner_offset;
13915 let mut inner_depth = depth.clone();
13916 if inlined {
13917 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13918 inner_offset = next_offset;
13919 } else {
13920 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13921 inner_depth.increment()?;
13922 }
13923 let val_ref = self
13924 .ssid
13925 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<u8, 32>, D));
13926 fidl::decode!(fidl::encoding::Vector<u8, 32>, D, val_ref, decoder, inner_offset, inner_depth)?;
13927 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13928 {
13929 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13930 }
13931 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13932 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13933 }
13934 }
13935
13936 next_offset += envelope_size;
13937
13938 while next_offset < end_offset {
13940 _next_ordinal_to_read += 1;
13941 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13942 next_offset += envelope_size;
13943 }
13944
13945 Ok(())
13946 }
13947 }
13948
13949 impl WlanFullmacImplQueryResponse {
13950 #[inline(always)]
13951 fn max_ordinal_present(&self) -> u64 {
13952 if let Some(_) = self.factory_addr {
13953 return 4;
13954 }
13955 if let Some(_) = self.band_caps {
13956 return 3;
13957 }
13958 if let Some(_) = self.role {
13959 return 2;
13960 }
13961 if let Some(_) = self.sta_addr {
13962 return 1;
13963 }
13964 0
13965 }
13966 }
13967
13968 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplQueryResponse {
13969 type Borrowed<'a> = &'a Self;
13970 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
13971 value
13972 }
13973 }
13974
13975 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplQueryResponse {
13976 type Owned = Self;
13977
13978 #[inline(always)]
13979 fn inline_align(_context: fidl::encoding::Context) -> usize {
13980 8
13981 }
13982
13983 #[inline(always)]
13984 fn inline_size(_context: fidl::encoding::Context) -> usize {
13985 16
13986 }
13987 }
13988
13989 unsafe impl<D: fidl::encoding::ResourceDialect>
13990 fidl::encoding::Encode<WlanFullmacImplQueryResponse, D> for &WlanFullmacImplQueryResponse
13991 {
13992 unsafe fn encode(
13993 self,
13994 encoder: &mut fidl::encoding::Encoder<'_, D>,
13995 offset: usize,
13996 mut depth: fidl::encoding::Depth,
13997 ) -> fidl::Result<()> {
13998 encoder.debug_check_bounds::<WlanFullmacImplQueryResponse>(offset);
13999 let max_ordinal: u64 = self.max_ordinal_present();
14001 encoder.write_num(max_ordinal, offset);
14002 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
14003 if max_ordinal == 0 {
14005 return Ok(());
14006 }
14007 depth.increment()?;
14008 let envelope_size = 8;
14009 let bytes_len = max_ordinal as usize * envelope_size;
14010 #[allow(unused_variables)]
14011 let offset = encoder.out_of_line_offset(bytes_len);
14012 let mut _prev_end_offset: usize = 0;
14013 if 1 > max_ordinal {
14014 return Ok(());
14015 }
14016
14017 let cur_offset: usize = (1 - 1) * envelope_size;
14020
14021 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
14023
14024 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
14029 self.sta_addr
14030 .as_ref()
14031 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
14032 encoder,
14033 offset + cur_offset,
14034 depth,
14035 )?;
14036
14037 _prev_end_offset = cur_offset + envelope_size;
14038 if 2 > max_ordinal {
14039 return Ok(());
14040 }
14041
14042 let cur_offset: usize = (2 - 1) * envelope_size;
14045
14046 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
14048
14049 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_common__common::WlanMacRole, D>(
14054 self.role.as_ref().map(<fidl_fuchsia_wlan_common__common::WlanMacRole as fidl::encoding::ValueTypeMarker>::borrow),
14055 encoder, offset + cur_offset, depth
14056 )?;
14057
14058 _prev_end_offset = cur_offset + envelope_size;
14059 if 3 > max_ordinal {
14060 return Ok(());
14061 }
14062
14063 let cur_offset: usize = (3 - 1) * envelope_size;
14066
14067 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
14069
14070 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<BandCapability, 16>, D>(
14075 self.band_caps.as_ref().map(<fidl::encoding::Vector<BandCapability, 16> as fidl::encoding::ValueTypeMarker>::borrow),
14076 encoder, offset + cur_offset, depth
14077 )?;
14078
14079 _prev_end_offset = cur_offset + envelope_size;
14080 if 4 > max_ordinal {
14081 return Ok(());
14082 }
14083
14084 let cur_offset: usize = (4 - 1) * envelope_size;
14087
14088 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
14090
14091 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
14096 self.factory_addr
14097 .as_ref()
14098 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
14099 encoder,
14100 offset + cur_offset,
14101 depth,
14102 )?;
14103
14104 _prev_end_offset = cur_offset + envelope_size;
14105
14106 Ok(())
14107 }
14108 }
14109
14110 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
14111 for WlanFullmacImplQueryResponse
14112 {
14113 #[inline(always)]
14114 fn new_empty() -> Self {
14115 Self::default()
14116 }
14117
14118 unsafe fn decode(
14119 &mut self,
14120 decoder: &mut fidl::encoding::Decoder<'_, D>,
14121 offset: usize,
14122 mut depth: fidl::encoding::Depth,
14123 ) -> fidl::Result<()> {
14124 decoder.debug_check_bounds::<Self>(offset);
14125 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
14126 None => return Err(fidl::Error::NotNullable),
14127 Some(len) => len,
14128 };
14129 if len == 0 {
14131 return Ok(());
14132 };
14133 depth.increment()?;
14134 let envelope_size = 8;
14135 let bytes_len = len * envelope_size;
14136 let offset = decoder.out_of_line_offset(bytes_len)?;
14137 let mut _next_ordinal_to_read = 0;
14139 let mut next_offset = offset;
14140 let end_offset = offset + bytes_len;
14141 _next_ordinal_to_read += 1;
14142 if next_offset >= end_offset {
14143 return Ok(());
14144 }
14145
14146 while _next_ordinal_to_read < 1 {
14148 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14149 _next_ordinal_to_read += 1;
14150 next_offset += envelope_size;
14151 }
14152
14153 let next_out_of_line = decoder.next_out_of_line();
14154 let handles_before = decoder.remaining_handles();
14155 if let Some((inlined, num_bytes, num_handles)) =
14156 fidl::encoding::decode_envelope_header(decoder, next_offset)?
14157 {
14158 let member_inline_size =
14159 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
14160 decoder.context,
14161 );
14162 if inlined != (member_inline_size <= 4) {
14163 return Err(fidl::Error::InvalidInlineBitInEnvelope);
14164 }
14165 let inner_offset;
14166 let mut inner_depth = depth.clone();
14167 if inlined {
14168 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
14169 inner_offset = next_offset;
14170 } else {
14171 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
14172 inner_depth.increment()?;
14173 }
14174 let val_ref = self
14175 .sta_addr
14176 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
14177 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
14178 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
14179 {
14180 return Err(fidl::Error::InvalidNumBytesInEnvelope);
14181 }
14182 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
14183 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
14184 }
14185 }
14186
14187 next_offset += envelope_size;
14188 _next_ordinal_to_read += 1;
14189 if next_offset >= end_offset {
14190 return Ok(());
14191 }
14192
14193 while _next_ordinal_to_read < 2 {
14195 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14196 _next_ordinal_to_read += 1;
14197 next_offset += envelope_size;
14198 }
14199
14200 let next_out_of_line = decoder.next_out_of_line();
14201 let handles_before = decoder.remaining_handles();
14202 if let Some((inlined, num_bytes, num_handles)) =
14203 fidl::encoding::decode_envelope_header(decoder, next_offset)?
14204 {
14205 let member_inline_size = <fidl_fuchsia_wlan_common__common::WlanMacRole as fidl::encoding::TypeMarker>::inline_size(decoder.context);
14206 if inlined != (member_inline_size <= 4) {
14207 return Err(fidl::Error::InvalidInlineBitInEnvelope);
14208 }
14209 let inner_offset;
14210 let mut inner_depth = depth.clone();
14211 if inlined {
14212 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
14213 inner_offset = next_offset;
14214 } else {
14215 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
14216 inner_depth.increment()?;
14217 }
14218 let val_ref = self.role.get_or_insert_with(|| {
14219 fidl::new_empty!(fidl_fuchsia_wlan_common__common::WlanMacRole, D)
14220 });
14221 fidl::decode!(
14222 fidl_fuchsia_wlan_common__common::WlanMacRole,
14223 D,
14224 val_ref,
14225 decoder,
14226 inner_offset,
14227 inner_depth
14228 )?;
14229 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
14230 {
14231 return Err(fidl::Error::InvalidNumBytesInEnvelope);
14232 }
14233 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
14234 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
14235 }
14236 }
14237
14238 next_offset += envelope_size;
14239 _next_ordinal_to_read += 1;
14240 if next_offset >= end_offset {
14241 return Ok(());
14242 }
14243
14244 while _next_ordinal_to_read < 3 {
14246 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14247 _next_ordinal_to_read += 1;
14248 next_offset += envelope_size;
14249 }
14250
14251 let next_out_of_line = decoder.next_out_of_line();
14252 let handles_before = decoder.remaining_handles();
14253 if let Some((inlined, num_bytes, num_handles)) =
14254 fidl::encoding::decode_envelope_header(decoder, next_offset)?
14255 {
14256 let member_inline_size = <fidl::encoding::Vector<BandCapability, 16> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
14257 if inlined != (member_inline_size <= 4) {
14258 return Err(fidl::Error::InvalidInlineBitInEnvelope);
14259 }
14260 let inner_offset;
14261 let mut inner_depth = depth.clone();
14262 if inlined {
14263 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
14264 inner_offset = next_offset;
14265 } else {
14266 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
14267 inner_depth.increment()?;
14268 }
14269 let val_ref = self.band_caps.get_or_insert_with(
14270 || fidl::new_empty!(fidl::encoding::Vector<BandCapability, 16>, D),
14271 );
14272 fidl::decode!(fidl::encoding::Vector<BandCapability, 16>, D, val_ref, decoder, inner_offset, inner_depth)?;
14273 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
14274 {
14275 return Err(fidl::Error::InvalidNumBytesInEnvelope);
14276 }
14277 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
14278 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
14279 }
14280 }
14281
14282 next_offset += envelope_size;
14283 _next_ordinal_to_read += 1;
14284 if next_offset >= end_offset {
14285 return Ok(());
14286 }
14287
14288 while _next_ordinal_to_read < 4 {
14290 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14291 _next_ordinal_to_read += 1;
14292 next_offset += envelope_size;
14293 }
14294
14295 let next_out_of_line = decoder.next_out_of_line();
14296 let handles_before = decoder.remaining_handles();
14297 if let Some((inlined, num_bytes, num_handles)) =
14298 fidl::encoding::decode_envelope_header(decoder, next_offset)?
14299 {
14300 let member_inline_size =
14301 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
14302 decoder.context,
14303 );
14304 if inlined != (member_inline_size <= 4) {
14305 return Err(fidl::Error::InvalidInlineBitInEnvelope);
14306 }
14307 let inner_offset;
14308 let mut inner_depth = depth.clone();
14309 if inlined {
14310 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
14311 inner_offset = next_offset;
14312 } else {
14313 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
14314 inner_depth.increment()?;
14315 }
14316 let val_ref = self
14317 .factory_addr
14318 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
14319 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
14320 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
14321 {
14322 return Err(fidl::Error::InvalidNumBytesInEnvelope);
14323 }
14324 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
14325 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
14326 }
14327 }
14328
14329 next_offset += envelope_size;
14330
14331 while next_offset < end_offset {
14333 _next_ordinal_to_read += 1;
14334 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14335 next_offset += envelope_size;
14336 }
14337
14338 Ok(())
14339 }
14340 }
14341}