1#![warn(clippy::all)]
4#![allow(unused_parens, unused_mut, unused_imports, nonstandard_style)]
5
6use bitflags::bitflags;
7use fidl::encoding::{MessageBufFor, ProxyChannelBox, ResourceDialect};
8use futures::future::{self, MaybeDone, TryFutureExt};
9use zx_status;
10
11pub const WLAN_MAX_KEYLIST_SIZE: u32 = 4;
12
13pub const WLAN_VIE_MAX_LEN: u32 = 514;
16
17#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
18pub enum EapolTxResult {
19 Success,
20 TransmissionFailure,
21 #[doc(hidden)]
22 __SourceBreaking {
23 unknown_ordinal: u8,
24 },
25}
26
27#[macro_export]
29macro_rules! EapolTxResultUnknown {
30 () => {
31 _
32 };
33}
34
35impl EapolTxResult {
36 #[inline]
37 pub fn from_primitive(prim: u8) -> Option<Self> {
38 match prim {
39 0 => Some(Self::Success),
40 1 => Some(Self::TransmissionFailure),
41 _ => None,
42 }
43 }
44
45 #[inline]
46 pub fn from_primitive_allow_unknown(prim: u8) -> Self {
47 match prim {
48 0 => Self::Success,
49 1 => Self::TransmissionFailure,
50 unknown_ordinal => Self::__SourceBreaking { unknown_ordinal },
51 }
52 }
53
54 #[inline]
55 pub fn unknown() -> Self {
56 Self::__SourceBreaking { unknown_ordinal: 0xff }
57 }
58
59 #[inline]
60 pub const fn into_primitive(self) -> u8 {
61 match self {
62 Self::Success => 0,
63 Self::TransmissionFailure => 1,
64 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
65 }
66 }
67
68 #[inline]
69 pub fn is_unknown(&self) -> bool {
70 match self {
71 Self::__SourceBreaking { unknown_ordinal: _ } => true,
72 _ => false,
73 }
74 }
75}
76
77#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
78pub enum StartResult {
79 Success,
80 BssAlreadyStartedOrJoined,
81 ResetRequiredBeforeStart,
82 NotSupported,
83 #[doc(hidden)]
84 __SourceBreaking {
85 unknown_ordinal: u8,
86 },
87}
88
89#[macro_export]
91macro_rules! StartResultUnknown {
92 () => {
93 _
94 };
95}
96
97impl StartResult {
98 #[inline]
99 pub fn from_primitive(prim: u8) -> Option<Self> {
100 match prim {
101 0 => Some(Self::Success),
102 1 => Some(Self::BssAlreadyStartedOrJoined),
103 2 => Some(Self::ResetRequiredBeforeStart),
104 3 => Some(Self::NotSupported),
105 _ => None,
106 }
107 }
108
109 #[inline]
110 pub fn from_primitive_allow_unknown(prim: u8) -> Self {
111 match prim {
112 0 => Self::Success,
113 1 => Self::BssAlreadyStartedOrJoined,
114 2 => Self::ResetRequiredBeforeStart,
115 3 => Self::NotSupported,
116 unknown_ordinal => Self::__SourceBreaking { unknown_ordinal },
117 }
118 }
119
120 #[inline]
121 pub fn unknown() -> Self {
122 Self::__SourceBreaking { unknown_ordinal: 0xff }
123 }
124
125 #[inline]
126 pub const fn into_primitive(self) -> u8 {
127 match self {
128 Self::Success => 0,
129 Self::BssAlreadyStartedOrJoined => 1,
130 Self::ResetRequiredBeforeStart => 2,
131 Self::NotSupported => 3,
132 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
133 }
134 }
135
136 #[inline]
137 pub fn is_unknown(&self) -> bool {
138 match self {
139 Self::__SourceBreaking { unknown_ordinal: _ } => true,
140 _ => false,
141 }
142 }
143}
144
145#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
146pub enum StopResult {
147 Success,
148 BssAlreadyStopped,
149 InternalError,
150 #[doc(hidden)]
151 __SourceBreaking {
152 unknown_ordinal: u8,
153 },
154}
155
156#[macro_export]
158macro_rules! StopResultUnknown {
159 () => {
160 _
161 };
162}
163
164impl StopResult {
165 #[inline]
166 pub fn from_primitive(prim: u8) -> Option<Self> {
167 match prim {
168 0 => Some(Self::Success),
169 1 => Some(Self::BssAlreadyStopped),
170 2 => Some(Self::InternalError),
171 _ => None,
172 }
173 }
174
175 #[inline]
176 pub fn from_primitive_allow_unknown(prim: u8) -> Self {
177 match prim {
178 0 => Self::Success,
179 1 => Self::BssAlreadyStopped,
180 2 => Self::InternalError,
181 unknown_ordinal => Self::__SourceBreaking { unknown_ordinal },
182 }
183 }
184
185 #[inline]
186 pub fn unknown() -> Self {
187 Self::__SourceBreaking { unknown_ordinal: 0xff }
188 }
189
190 #[inline]
191 pub const fn into_primitive(self) -> u8 {
192 match self {
193 Self::Success => 0,
194 Self::BssAlreadyStopped => 1,
195 Self::InternalError => 2,
196 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
197 }
198 }
199
200 #[inline]
201 pub fn is_unknown(&self) -> bool {
202 match self {
203 Self::__SourceBreaking { unknown_ordinal: _ } => true,
204 _ => false,
205 }
206 }
207}
208
209#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
210pub enum WlanAssocResult {
211 Success,
212 RefusedReasonUnspecified,
213 RefusedNotAuthenticated,
214 RefusedCapabilitiesMismatch,
215 RefusedExternalReason,
216 RefusedApOutOfMemory,
217 RefusedBasicRatesMismatch,
218 RejectedEmergencyServicesNotSupported,
219 RefusedTemporarily,
220 #[doc(hidden)]
221 __SourceBreaking {
222 unknown_ordinal: u8,
223 },
224}
225
226#[macro_export]
228macro_rules! WlanAssocResultUnknown {
229 () => {
230 _
231 };
232}
233
234impl WlanAssocResult {
235 #[inline]
236 pub fn from_primitive(prim: u8) -> Option<Self> {
237 match prim {
238 0 => Some(Self::Success),
239 1 => Some(Self::RefusedReasonUnspecified),
240 2 => Some(Self::RefusedNotAuthenticated),
241 3 => Some(Self::RefusedCapabilitiesMismatch),
242 4 => Some(Self::RefusedExternalReason),
243 5 => Some(Self::RefusedApOutOfMemory),
244 6 => Some(Self::RefusedBasicRatesMismatch),
245 7 => Some(Self::RejectedEmergencyServicesNotSupported),
246 8 => Some(Self::RefusedTemporarily),
247 _ => None,
248 }
249 }
250
251 #[inline]
252 pub fn from_primitive_allow_unknown(prim: u8) -> Self {
253 match prim {
254 0 => Self::Success,
255 1 => Self::RefusedReasonUnspecified,
256 2 => Self::RefusedNotAuthenticated,
257 3 => Self::RefusedCapabilitiesMismatch,
258 4 => Self::RefusedExternalReason,
259 5 => Self::RefusedApOutOfMemory,
260 6 => Self::RefusedBasicRatesMismatch,
261 7 => Self::RejectedEmergencyServicesNotSupported,
262 8 => Self::RefusedTemporarily,
263 unknown_ordinal => Self::__SourceBreaking { unknown_ordinal },
264 }
265 }
266
267 #[inline]
268 pub fn unknown() -> Self {
269 Self::__SourceBreaking { unknown_ordinal: 0xff }
270 }
271
272 #[inline]
273 pub const fn into_primitive(self) -> u8 {
274 match self {
275 Self::Success => 0,
276 Self::RefusedReasonUnspecified => 1,
277 Self::RefusedNotAuthenticated => 2,
278 Self::RefusedCapabilitiesMismatch => 3,
279 Self::RefusedExternalReason => 4,
280 Self::RefusedApOutOfMemory => 5,
281 Self::RefusedBasicRatesMismatch => 6,
282 Self::RejectedEmergencyServicesNotSupported => 7,
283 Self::RefusedTemporarily => 8,
284 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
285 }
286 }
287
288 #[inline]
289 pub fn is_unknown(&self) -> bool {
290 match self {
291 Self::__SourceBreaking { unknown_ordinal: _ } => true,
292 _ => false,
293 }
294 }
295}
296
297#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
298pub enum WlanAuthResult {
299 Success,
300 Refused,
301 AntiCloggingTokenRequired,
302 FiniteCyclicGroupNotSupported,
303 Rejected,
304 FailureTimeout,
305 #[doc(hidden)]
306 __SourceBreaking {
307 unknown_ordinal: u8,
308 },
309}
310
311#[macro_export]
313macro_rules! WlanAuthResultUnknown {
314 () => {
315 _
316 };
317}
318
319impl WlanAuthResult {
320 #[inline]
321 pub fn from_primitive(prim: u8) -> Option<Self> {
322 match prim {
323 0 => Some(Self::Success),
324 1 => Some(Self::Refused),
325 2 => Some(Self::AntiCloggingTokenRequired),
326 3 => Some(Self::FiniteCyclicGroupNotSupported),
327 4 => Some(Self::Rejected),
328 5 => Some(Self::FailureTimeout),
329 _ => None,
330 }
331 }
332
333 #[inline]
334 pub fn from_primitive_allow_unknown(prim: u8) -> Self {
335 match prim {
336 0 => Self::Success,
337 1 => Self::Refused,
338 2 => Self::AntiCloggingTokenRequired,
339 3 => Self::FiniteCyclicGroupNotSupported,
340 4 => Self::Rejected,
341 5 => Self::FailureTimeout,
342 unknown_ordinal => Self::__SourceBreaking { unknown_ordinal },
343 }
344 }
345
346 #[inline]
347 pub fn unknown() -> Self {
348 Self::__SourceBreaking { unknown_ordinal: 0xff }
349 }
350
351 #[inline]
352 pub const fn into_primitive(self) -> u8 {
353 match self {
354 Self::Success => 0,
355 Self::Refused => 1,
356 Self::AntiCloggingTokenRequired => 2,
357 Self::FiniteCyclicGroupNotSupported => 3,
358 Self::Rejected => 4,
359 Self::FailureTimeout => 5,
360 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
361 }
362 }
363
364 #[inline]
365 pub fn is_unknown(&self) -> bool {
366 match self {
367 Self::__SourceBreaking { unknown_ordinal: _ } => true,
368 _ => false,
369 }
370 }
371}
372
373#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
374pub enum WlanAuthType {
375 OpenSystem,
376 SharedKey,
377 FastBssTransition,
378 Sae,
379 #[doc(hidden)]
380 __SourceBreaking {
381 unknown_ordinal: u8,
382 },
383}
384
385#[macro_export]
387macro_rules! WlanAuthTypeUnknown {
388 () => {
389 _
390 };
391}
392
393impl WlanAuthType {
394 #[inline]
395 pub fn from_primitive(prim: u8) -> Option<Self> {
396 match prim {
397 1 => Some(Self::OpenSystem),
398 2 => Some(Self::SharedKey),
399 3 => Some(Self::FastBssTransition),
400 4 => Some(Self::Sae),
401 _ => None,
402 }
403 }
404
405 #[inline]
406 pub fn from_primitive_allow_unknown(prim: u8) -> Self {
407 match prim {
408 1 => Self::OpenSystem,
409 2 => Self::SharedKey,
410 3 => Self::FastBssTransition,
411 4 => Self::Sae,
412 unknown_ordinal => Self::__SourceBreaking { unknown_ordinal },
413 }
414 }
415
416 #[inline]
417 pub fn unknown() -> Self {
418 Self::__SourceBreaking { unknown_ordinal: 0xff }
419 }
420
421 #[inline]
422 pub const fn into_primitive(self) -> u8 {
423 match self {
424 Self::OpenSystem => 1,
425 Self::SharedKey => 2,
426 Self::FastBssTransition => 3,
427 Self::Sae => 4,
428 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
429 }
430 }
431
432 #[inline]
433 pub fn is_unknown(&self) -> bool {
434 match self {
435 Self::__SourceBreaking { unknown_ordinal: _ } => true,
436 _ => false,
437 }
438 }
439}
440
441#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
442pub enum WlanScanResult {
443 Success,
444 NotSupported,
445 InvalidArgs,
446 InternalError,
447 ShouldWait,
448 CanceledByDriverOrFirmware,
449 #[doc(hidden)]
450 __SourceBreaking {
451 unknown_ordinal: u8,
452 },
453}
454
455#[macro_export]
457macro_rules! WlanScanResultUnknown {
458 () => {
459 _
460 };
461}
462
463impl WlanScanResult {
464 #[inline]
465 pub fn from_primitive(prim: u8) -> Option<Self> {
466 match prim {
467 0 => Some(Self::Success),
468 1 => Some(Self::NotSupported),
469 2 => Some(Self::InvalidArgs),
470 3 => Some(Self::InternalError),
471 4 => Some(Self::ShouldWait),
472 5 => Some(Self::CanceledByDriverOrFirmware),
473 _ => None,
474 }
475 }
476
477 #[inline]
478 pub fn from_primitive_allow_unknown(prim: u8) -> Self {
479 match prim {
480 0 => Self::Success,
481 1 => Self::NotSupported,
482 2 => Self::InvalidArgs,
483 3 => Self::InternalError,
484 4 => Self::ShouldWait,
485 5 => Self::CanceledByDriverOrFirmware,
486 unknown_ordinal => Self::__SourceBreaking { unknown_ordinal },
487 }
488 }
489
490 #[inline]
491 pub fn unknown() -> Self {
492 Self::__SourceBreaking { unknown_ordinal: 0xff }
493 }
494
495 #[inline]
496 pub const fn into_primitive(self) -> u8 {
497 match self {
498 Self::Success => 0,
499 Self::NotSupported => 1,
500 Self::InvalidArgs => 2,
501 Self::InternalError => 3,
502 Self::ShouldWait => 4,
503 Self::CanceledByDriverOrFirmware => 5,
504 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
505 }
506 }
507
508 #[inline]
509 pub fn is_unknown(&self) -> bool {
510 match self {
511 Self::__SourceBreaking { unknown_ordinal: _ } => true,
512 _ => false,
513 }
514 }
515}
516
517#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
518pub enum WlanScanType {
519 Active,
520 Passive,
521 #[doc(hidden)]
522 __SourceBreaking {
523 unknown_ordinal: u8,
524 },
525}
526
527#[macro_export]
529macro_rules! WlanScanTypeUnknown {
530 () => {
531 _
532 };
533}
534
535impl WlanScanType {
536 #[inline]
537 pub fn from_primitive(prim: u8) -> Option<Self> {
538 match prim {
539 1 => Some(Self::Active),
540 2 => Some(Self::Passive),
541 _ => None,
542 }
543 }
544
545 #[inline]
546 pub fn from_primitive_allow_unknown(prim: u8) -> Self {
547 match prim {
548 1 => Self::Active,
549 2 => Self::Passive,
550 unknown_ordinal => Self::__SourceBreaking { unknown_ordinal },
551 }
552 }
553
554 #[inline]
555 pub fn unknown() -> Self {
556 Self::__SourceBreaking { unknown_ordinal: 0xff }
557 }
558
559 #[inline]
560 pub const fn into_primitive(self) -> u8 {
561 match self {
562 Self::Active => 1,
563 Self::Passive => 2,
564 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
565 }
566 }
567
568 #[inline]
569 pub fn is_unknown(&self) -> bool {
570 match self {
571 Self::__SourceBreaking { unknown_ordinal: _ } => true,
572 _ => false,
573 }
574 }
575}
576
577#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
578#[repr(C)]
579pub struct WlanFullmacChannelSwitchInfo {
580 pub new_channel: u8,
581}
582
583impl fidl::Persistable for WlanFullmacChannelSwitchInfo {}
584
585#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
586#[repr(C)]
587pub struct WlanFullmacImplIfcOnChannelSwitchRequest {
588 pub ind: WlanFullmacChannelSwitchInfo,
589}
590
591impl fidl::Persistable for WlanFullmacImplIfcOnChannelSwitchRequest {}
592
593#[derive(Clone, Debug, PartialEq)]
594pub struct WlanFullmacImplIfcOnWmmStatusRespRequest {
595 pub status: i32,
596 pub wmm_params: fidl_fuchsia_wlan_common__common::WlanWmmParameters,
597}
598
599impl fidl::Persistable for WlanFullmacImplIfcOnWmmStatusRespRequest {}
600
601#[derive(Clone, Debug, PartialEq)]
602pub struct WlanFullmacImplIfcSaeFrameRxRequest {
603 pub frame: SaeFrame,
604}
605
606impl fidl::Persistable for WlanFullmacImplIfcSaeFrameRxRequest {}
607
608#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
609#[repr(C)]
610pub struct WlanFullmacImplIfcSignalReportRequest {
611 pub ind: WlanFullmacSignalReportIndication,
612}
613
614impl fidl::Persistable for WlanFullmacImplIfcSignalReportRequest {}
615
616#[derive(Clone, Debug, PartialEq)]
617pub struct WlanFullmacImplSaeFrameTxRequest {
618 pub frame: SaeFrame,
619}
620
621impl fidl::Persistable for WlanFullmacImplSaeFrameTxRequest {}
622
623#[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
624pub struct WlanFullmacImplSetKeysResponse {
625 pub resp: WlanFullmacSetKeysResp,
626}
627
628impl fidl::Persistable for WlanFullmacImplSetKeysResponse {}
629
630#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
631#[repr(C)]
632pub struct WlanFullmacImplSetMacAddressRequest {
633 pub mac_addr: [u8; 6],
634}
635
636impl fidl::Persistable for WlanFullmacImplSetMacAddressRequest {}
637
638#[derive(Clone, Debug, PartialEq)]
639pub struct WlanFullmacImplGetIfaceHistogramStatsResponse {
640 pub stats: fidl_fuchsia_wlan_stats__common::IfaceHistogramStats,
641}
642
643impl fidl::Persistable for WlanFullmacImplGetIfaceHistogramStatsResponse {}
644
645#[derive(Clone, Debug, PartialEq)]
646pub struct WlanFullmacImplGetIfaceStatsResponse {
647 pub stats: fidl_fuchsia_wlan_stats__common::IfaceStats,
648}
649
650impl fidl::Persistable for WlanFullmacImplGetIfaceStatsResponse {}
651
652#[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
653pub struct WlanFullmacRssiStats {
654 pub hist: Vec<u64>,
655}
656
657impl fidl::Persistable for WlanFullmacRssiStats {}
658
659#[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
660pub struct WlanFullmacSetKeysResp {
661 pub statuslist: Vec<i32>,
662}
663
664impl fidl::Persistable for WlanFullmacSetKeysResp {}
665
666#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
667#[repr(C)]
668pub struct WlanFullmacSignalReportIndication {
669 pub rssi_dbm: i8,
670 pub snr_db: i8,
671}
672
673impl fidl::Persistable for WlanFullmacSignalReportIndication {}
674
675#[derive(Clone, Debug, Default, PartialEq)]
677pub struct BandCapability {
678 pub band: Option<fidl_fuchsia_wlan_ieee80211__common::WlanBand>,
682 pub basic_rates: Option<Vec<u8>>,
689 pub ht_caps: Option<fidl_fuchsia_wlan_ieee80211__common::HtCapabilities>,
694 pub vht_caps: Option<fidl_fuchsia_wlan_ieee80211__common::VhtCapabilities>,
699 pub operating_channels: Option<Vec<u8>>,
711 #[doc(hidden)]
712 pub __source_breaking: fidl::marker::SourceBreaking,
713}
714
715impl fidl::Persistable for BandCapability {}
716
717#[derive(Clone, Debug, Default, PartialEq)]
720pub struct SaeFrame {
721 pub peer_sta_address: Option<[u8; 6]>,
723 pub status_code: Option<fidl_fuchsia_wlan_ieee80211__common::StatusCode>,
725 pub seq_num: Option<u16>,
727 pub sae_fields: Option<Vec<u8>>,
731 #[doc(hidden)]
732 pub __source_breaking: fidl::marker::SourceBreaking,
733}
734
735impl fidl::Persistable for SaeFrame {}
736
737#[derive(Clone, Debug, Default, PartialEq)]
738pub struct WlanFullmacImplAssocRespRequest {
739 pub peer_sta_address: Option<[u8; 6]>,
740 pub result_code: Option<WlanAssocResult>,
741 pub association_id: Option<u16>,
742 #[doc(hidden)]
743 pub __source_breaking: fidl::marker::SourceBreaking,
744}
745
746impl fidl::Persistable for WlanFullmacImplAssocRespRequest {}
747
748#[derive(Clone, Debug, Default, PartialEq)]
749pub struct WlanFullmacImplAuthRespRequest {
750 pub peer_sta_address: Option<[u8; 6]>,
751 pub result_code: Option<WlanAuthResult>,
752 #[doc(hidden)]
753 pub __source_breaking: fidl::marker::SourceBreaking,
754}
755
756impl fidl::Persistable for WlanFullmacImplAuthRespRequest {}
757
758#[derive(Clone, Debug, Default, PartialEq)]
759pub struct WlanFullmacImplConnectRequest {
760 pub selected_bss: Option<fidl_fuchsia_wlan_common__common::BssDescription>,
761 pub connect_failure_timeout: Option<u32>,
763 pub auth_type: Option<WlanAuthType>,
765 pub sae_password: Option<Vec<u8>>,
768 pub wep_key: Option<fidl_fuchsia_wlan_common__common::WlanKeyConfig>,
771 pub security_ie: Option<Vec<u8>>,
773 pub wep_key_desc: Option<fidl_fuchsia_wlan_ieee80211__common::SetKeyDescriptor>,
776 pub owe_public_key: Option<WlanFullmacOwePublicKey>,
779 #[doc(hidden)]
780 pub __source_breaking: fidl::marker::SourceBreaking,
781}
782
783impl fidl::Persistable for WlanFullmacImplConnectRequest {}
784
785#[derive(Clone, Debug, Default, PartialEq)]
786pub struct WlanFullmacImplDeauthRequest {
787 pub peer_sta_address: Option<[u8; 6]>,
788 pub reason_code: Option<fidl_fuchsia_wlan_ieee80211__common::ReasonCode>,
789 #[doc(hidden)]
790 pub __source_breaking: fidl::marker::SourceBreaking,
791}
792
793impl fidl::Persistable for WlanFullmacImplDeauthRequest {}
794
795#[derive(Clone, Debug, Default, PartialEq)]
796pub struct WlanFullmacImplDisassocRequest {
797 pub peer_sta_address: Option<[u8; 6]>,
798 pub reason_code: Option<fidl_fuchsia_wlan_ieee80211__common::ReasonCode>,
799 #[doc(hidden)]
800 pub __source_breaking: fidl::marker::SourceBreaking,
801}
802
803impl fidl::Persistable for WlanFullmacImplDisassocRequest {}
804
805#[derive(Clone, Debug, Default, PartialEq)]
806pub struct WlanFullmacImplEapolTxRequest {
807 pub src_addr: Option<[u8; 6]>,
808 pub dst_addr: Option<[u8; 6]>,
809 pub data: Option<Vec<u8>>,
810 #[doc(hidden)]
811 pub __source_breaking: fidl::marker::SourceBreaking,
812}
813
814impl fidl::Persistable for WlanFullmacImplEapolTxRequest {}
815
816#[derive(Clone, Debug, Default, PartialEq)]
817pub struct WlanFullmacImplIfcAssocIndRequest {
818 pub peer_sta_address: Option<[u8; 6]>,
819 pub listen_interval: Option<u16>,
820 pub ssid: Option<Vec<u8>>,
821 pub rsne: Option<Vec<u8>>,
822 pub vendor_ie: Option<Vec<u8>>,
823 #[doc(hidden)]
824 pub __source_breaking: fidl::marker::SourceBreaking,
825}
826
827impl fidl::Persistable for WlanFullmacImplIfcAssocIndRequest {}
828
829#[derive(Clone, Debug, Default, PartialEq)]
830pub struct WlanFullmacImplIfcAuthIndRequest {
831 pub peer_sta_address: Option<[u8; 6]>,
832 pub auth_type: Option<WlanAuthType>,
833 #[doc(hidden)]
834 pub __source_breaking: fidl::marker::SourceBreaking,
835}
836
837impl fidl::Persistable for WlanFullmacImplIfcAuthIndRequest {}
838
839#[derive(Clone, Debug, Default, PartialEq)]
840pub struct WlanFullmacImplIfcConnectConfRequest {
841 pub peer_sta_address: Option<[u8; 6]>,
842 pub result_code: Option<fidl_fuchsia_wlan_ieee80211__common::StatusCode>,
843 pub association_id: Option<u16>,
844 pub association_ies: Option<Vec<u8>>,
845 #[doc(hidden)]
846 pub __source_breaking: fidl::marker::SourceBreaking,
847}
848
849impl fidl::Persistable for WlanFullmacImplIfcConnectConfRequest {}
850
851#[derive(Clone, Debug, Default, PartialEq)]
852pub struct WlanFullmacImplIfcDeauthConfRequest {
853 pub peer_sta_address: Option<[u8; 6]>,
854 #[doc(hidden)]
855 pub __source_breaking: fidl::marker::SourceBreaking,
856}
857
858impl fidl::Persistable for WlanFullmacImplIfcDeauthConfRequest {}
859
860#[derive(Clone, Debug, Default, PartialEq)]
861pub struct WlanFullmacImplIfcDeauthIndRequest {
862 pub peer_sta_address: Option<[u8; 6]>,
864 pub reason_code: Option<fidl_fuchsia_wlan_ieee80211__common::ReasonCode>,
866 pub locally_initiated: Option<bool>,
869 #[doc(hidden)]
870 pub __source_breaking: fidl::marker::SourceBreaking,
871}
872
873impl fidl::Persistable for WlanFullmacImplIfcDeauthIndRequest {}
874
875#[derive(Clone, Debug, Default, PartialEq)]
876pub struct WlanFullmacImplIfcDisassocConfRequest {
877 pub status: Option<i32>,
885 #[doc(hidden)]
886 pub __source_breaking: fidl::marker::SourceBreaking,
887}
888
889impl fidl::Persistable for WlanFullmacImplIfcDisassocConfRequest {}
890
891#[derive(Clone, Debug, Default, PartialEq)]
892pub struct WlanFullmacImplIfcDisassocIndRequest {
893 pub peer_sta_address: Option<[u8; 6]>,
895 pub reason_code: Option<fidl_fuchsia_wlan_ieee80211__common::ReasonCode>,
897 pub locally_initiated: Option<bool>,
902 #[doc(hidden)]
903 pub __source_breaking: fidl::marker::SourceBreaking,
904}
905
906impl fidl::Persistable for WlanFullmacImplIfcDisassocIndRequest {}
907
908#[derive(Clone, Debug, Default, PartialEq)]
909pub struct WlanFullmacImplIfcEapolConfRequest {
910 pub result_code: Option<EapolTxResult>,
912 pub dst_addr: Option<[u8; 6]>,
917 #[doc(hidden)]
918 pub __source_breaking: fidl::marker::SourceBreaking,
919}
920
921impl fidl::Persistable for WlanFullmacImplIfcEapolConfRequest {}
922
923#[derive(Clone, Debug, Default, PartialEq)]
924pub struct WlanFullmacImplIfcEapolIndRequest {
925 pub src_addr: Option<[u8; 6]>,
927 pub dst_addr: Option<[u8; 6]>,
929 pub data: Option<Vec<u8>>,
931 #[doc(hidden)]
932 pub __source_breaking: fidl::marker::SourceBreaking,
933}
934
935impl fidl::Persistable for WlanFullmacImplIfcEapolIndRequest {}
936
937#[derive(Clone, Debug, Default, PartialEq)]
938pub struct WlanFullmacImplIfcOnPmkAvailableRequest {
939 pub pmk: Option<Vec<u8>>,
941 pub pmkid: Option<Vec<u8>>,
943 #[doc(hidden)]
944 pub __source_breaking: fidl::marker::SourceBreaking,
945}
946
947impl fidl::Persistable for WlanFullmacImplIfcOnPmkAvailableRequest {}
948
949#[derive(Clone, Debug, Default, PartialEq)]
950pub struct WlanFullmacImplIfcOnScanEndRequest {
951 pub txn_id: Option<u64>,
952 pub code: Option<WlanScanResult>,
953 #[doc(hidden)]
954 pub __source_breaking: fidl::marker::SourceBreaking,
955}
956
957impl fidl::Persistable for WlanFullmacImplIfcOnScanEndRequest {}
958
959#[derive(Clone, Debug, Default, PartialEq)]
960pub struct WlanFullmacImplIfcOnScanResultRequest {
961 pub txn_id: Option<u64>,
962 pub timestamp_nanos: Option<i64>,
963 pub bss: Option<fidl_fuchsia_wlan_common__common::BssDescription>,
964 #[doc(hidden)]
965 pub __source_breaking: fidl::marker::SourceBreaking,
966}
967
968impl fidl::Persistable for WlanFullmacImplIfcOnScanResultRequest {}
969
970#[derive(Clone, Debug, Default, PartialEq)]
971pub struct WlanFullmacImplIfcRoamConfRequest {
972 pub selected_bssid: Option<[u8; 6]>,
974 pub status_code: Option<fidl_fuchsia_wlan_ieee80211__common::StatusCode>,
976 pub original_association_maintained: Option<bool>,
981 pub target_bss_authenticated: Option<bool>,
986 pub association_id: Option<u16>,
988 pub association_ies: Option<Vec<u8>>,
990 #[doc(hidden)]
991 pub __source_breaking: fidl::marker::SourceBreaking,
992}
993
994impl fidl::Persistable for WlanFullmacImplIfcRoamConfRequest {}
995
996#[derive(Clone, Debug, Default, PartialEq)]
997pub struct WlanFullmacImplIfcRoamResultIndRequest {
998 pub selected_bssid: Option<[u8; 6]>,
1000 pub status_code: Option<fidl_fuchsia_wlan_ieee80211__common::StatusCode>,
1002 pub original_association_maintained: Option<bool>,
1007 pub target_bss_authenticated: Option<bool>,
1012 pub association_id: Option<u16>,
1014 pub association_ies: Option<Vec<u8>>,
1016 #[doc(hidden)]
1017 pub __source_breaking: fidl::marker::SourceBreaking,
1018}
1019
1020impl fidl::Persistable for WlanFullmacImplIfcRoamResultIndRequest {}
1021
1022#[derive(Clone, Debug, Default, PartialEq)]
1023pub struct WlanFullmacImplIfcRoamStartIndRequest {
1024 pub selected_bssid: Option<[u8; 6]>,
1026 pub selected_bss: Option<fidl_fuchsia_wlan_common__common::BssDescription>,
1030 pub original_association_maintained: Option<bool>,
1038 #[doc(hidden)]
1039 pub __source_breaking: fidl::marker::SourceBreaking,
1040}
1041
1042impl fidl::Persistable for WlanFullmacImplIfcRoamStartIndRequest {}
1043
1044#[derive(Clone, Debug, Default, PartialEq)]
1045pub struct WlanFullmacImplIfcSaeHandshakeIndRequest {
1046 pub peer_sta_address: Option<[u8; 6]>,
1047 #[doc(hidden)]
1048 pub __source_breaking: fidl::marker::SourceBreaking,
1049}
1050
1051impl fidl::Persistable for WlanFullmacImplIfcSaeHandshakeIndRequest {}
1052
1053#[derive(Clone, Debug, Default, PartialEq)]
1054pub struct WlanFullmacImplIfcStartConfRequest {
1055 pub result_code: Option<StartResult>,
1057 #[doc(hidden)]
1058 pub __source_breaking: fidl::marker::SourceBreaking,
1059}
1060
1061impl fidl::Persistable for WlanFullmacImplIfcStartConfRequest {}
1062
1063#[derive(Clone, Debug, Default, PartialEq)]
1064pub struct WlanFullmacImplIfcStopConfRequest {
1065 pub result_code: Option<StopResult>,
1067 #[doc(hidden)]
1068 pub __source_breaking: fidl::marker::SourceBreaking,
1069}
1070
1071impl fidl::Persistable for WlanFullmacImplIfcStopConfRequest {}
1072
1073#[derive(Clone, Debug, Default, PartialEq)]
1074pub struct WlanFullmacImplOnLinkStateChangedRequest {
1075 pub online: Option<bool>,
1076 #[doc(hidden)]
1077 pub __source_breaking: fidl::marker::SourceBreaking,
1078}
1079
1080impl fidl::Persistable for WlanFullmacImplOnLinkStateChangedRequest {}
1081
1082#[derive(Clone, Debug, Default, PartialEq)]
1083pub struct WlanFullmacImplReconnectRequest {
1084 pub peer_sta_address: Option<[u8; 6]>,
1085 #[doc(hidden)]
1086 pub __source_breaking: fidl::marker::SourceBreaking,
1087}
1088
1089impl fidl::Persistable for WlanFullmacImplReconnectRequest {}
1090
1091#[derive(Clone, Debug, Default, PartialEq)]
1092pub struct WlanFullmacImplRoamRequest {
1093 pub selected_bss: Option<fidl_fuchsia_wlan_common__common::BssDescription>,
1097 #[doc(hidden)]
1098 pub __source_breaking: fidl::marker::SourceBreaking,
1099}
1100
1101impl fidl::Persistable for WlanFullmacImplRoamRequest {}
1102
1103#[derive(Clone, Debug, Default, PartialEq)]
1104pub struct WlanFullmacImplSaeHandshakeRespRequest {
1105 pub peer_sta_address: Option<[u8; 6]>,
1107 pub status_code: Option<fidl_fuchsia_wlan_ieee80211__common::StatusCode>,
1109 #[doc(hidden)]
1110 pub __source_breaking: fidl::marker::SourceBreaking,
1111}
1112
1113impl fidl::Persistable for WlanFullmacImplSaeHandshakeRespRequest {}
1114
1115#[derive(Clone, Debug, Default, PartialEq)]
1116pub struct WlanFullmacImplSetKeysRequest {
1117 pub keylist: Option<Vec<fidl_fuchsia_wlan_common__common::WlanKeyConfig>>,
1118 pub key_descriptors: Option<Vec<fidl_fuchsia_wlan_ieee80211__common::SetKeyDescriptor>>,
1119 #[doc(hidden)]
1120 pub __source_breaking: fidl::marker::SourceBreaking,
1121}
1122
1123impl fidl::Persistable for WlanFullmacImplSetKeysRequest {}
1124
1125#[derive(Clone, Debug, Default, PartialEq)]
1126pub struct WlanFullmacImplStartBssRequest {
1127 pub ssid: Option<Vec<u8>>,
1128 pub bss_type: Option<fidl_fuchsia_wlan_common__common::BssType>,
1129 pub beacon_period: Option<u32>,
1130 pub dtim_period: Option<u32>,
1131 pub channel: Option<u8>,
1132 pub rsne: Option<Vec<u8>>,
1133 pub vendor_ie: Option<Vec<u8>>,
1134 #[doc(hidden)]
1135 pub __source_breaking: fidl::marker::SourceBreaking,
1136}
1137
1138impl fidl::Persistable for WlanFullmacImplStartBssRequest {}
1139
1140#[derive(Clone, Debug, Default, PartialEq)]
1141pub struct WlanFullmacImplStartScanRequest {
1142 pub txn_id: Option<u64>,
1144 pub scan_type: Option<WlanScanType>,
1145 pub channels: Option<Vec<u8>>,
1153 pub ssids: Option<Vec<Vec<u8>>>,
1162 pub min_channel_time: Option<u32>,
1164 pub max_channel_time: Option<u32>,
1166 #[doc(hidden)]
1167 pub __source_breaking: fidl::marker::SourceBreaking,
1168}
1169
1170impl fidl::Persistable for WlanFullmacImplStartScanRequest {}
1171
1172#[derive(Clone, Debug, Default, PartialEq)]
1173pub struct WlanFullmacImplStopBssRequest {
1174 pub ssid: Option<Vec<u8>>,
1175 #[doc(hidden)]
1176 pub __source_breaking: fidl::marker::SourceBreaking,
1177}
1178
1179impl fidl::Persistable for WlanFullmacImplStopBssRequest {}
1180
1181#[derive(Clone, Debug, Default, PartialEq)]
1182pub struct WlanFullmacImplQuerySecuritySupportResponse {
1183 pub resp: Option<fidl_fuchsia_wlan_common__common::SecuritySupport>,
1184 #[doc(hidden)]
1185 pub __source_breaking: fidl::marker::SourceBreaking,
1186}
1187
1188impl fidl::Persistable for WlanFullmacImplQuerySecuritySupportResponse {}
1189
1190#[derive(Clone, Debug, Default, PartialEq)]
1191pub struct WlanFullmacImplQuerySpectrumManagementSupportResponse {
1192 pub resp: Option<fidl_fuchsia_wlan_common__common::SpectrumManagementSupport>,
1193 #[doc(hidden)]
1194 pub __source_breaking: fidl::marker::SourceBreaking,
1195}
1196
1197impl fidl::Persistable for WlanFullmacImplQuerySpectrumManagementSupportResponse {}
1198
1199#[derive(Clone, Debug, Default, PartialEq)]
1200pub struct WlanFullmacImplQueryTelemetrySupportResponse {
1201 pub resp: Option<fidl_fuchsia_wlan_stats__common::TelemetrySupport>,
1202 #[doc(hidden)]
1203 pub __source_breaking: fidl::marker::SourceBreaking,
1204}
1205
1206impl fidl::Persistable for WlanFullmacImplQueryTelemetrySupportResponse {}
1207
1208#[derive(Clone, Debug, Default, PartialEq)]
1209pub struct WlanFullmacImplQueryResponse {
1210 pub sta_addr: Option<[u8; 6]>,
1212 pub role: Option<fidl_fuchsia_wlan_common__common::WlanMacRole>,
1214 pub band_caps: Option<Vec<BandCapability>>,
1216 pub factory_addr: Option<[u8; 6]>,
1218 #[doc(hidden)]
1219 pub __source_breaking: fidl::marker::SourceBreaking,
1220}
1221
1222impl fidl::Persistable for WlanFullmacImplQueryResponse {}
1223
1224#[derive(Clone, Debug, Default, PartialEq)]
1225pub struct WlanFullmacOwePublicKey {
1226 pub group: Option<u16>,
1227 pub key: Option<Vec<u8>>,
1228 #[doc(hidden)]
1229 pub __source_breaking: fidl::marker::SourceBreaking,
1230}
1231
1232impl fidl::Persistable for WlanFullmacOwePublicKey {}
1233
1234pub mod wlan_fullmac_impl__ordinals {
1235 pub const INIT: u64 = 0x593dfb6cb3f0f1aa;
1236 pub const QUERY: u64 = 0x28ac65f9da3941d4;
1237 pub const QUERY_SECURITY_SUPPORT: u64 = 0x11cf3fa6eeb93f84;
1238 pub const QUERY_SPECTRUM_MANAGEMENT_SUPPORT: u64 = 0x22ae7551d855b83a;
1239 pub const QUERY_TELEMETRY_SUPPORT: u64 = 0x4561479ca560827f;
1240 pub const START_SCAN: u64 = 0x26c17bf595aa161c;
1241 pub const CONNECT: u64 = 0x19eb0322efb07a76;
1242 pub const RECONNECT: u64 = 0x474084c4ef19ee71;
1243 pub const ROAM: u64 = 0x1e35dcc98b124b64;
1244 pub const AUTH_RESP: u64 = 0x5f7ea24b44a4aaeb;
1245 pub const DEAUTH: u64 = 0x112786eccbf12f37;
1246 pub const ASSOC_RESP: u64 = 0x5022ce6b8eefec2f;
1247 pub const DISASSOC: u64 = 0x9c0fc4e8de53e01;
1248 pub const START_BSS: u64 = 0x6922644d6b1d341d;
1249 pub const STOP_BSS: u64 = 0x5aeb9b72e7575268;
1250 pub const SET_KEYS: u64 = 0x20f46b1e039f0985;
1251 pub const EAPOL_TX: u64 = 0x529a2d90fd4c8177;
1252 pub const GET_IFACE_STATS: u64 = 0x505563776ef0392f;
1253 pub const GET_IFACE_HISTOGRAM_STATS: u64 = 0x503d586f30ccf2cd;
1254 pub const GET_SIGNAL_REPORT: u64 = 0x5d93f056e4796bb3;
1255 pub const SAE_HANDSHAKE_RESP: u64 = 0x72cd3a31ae5a54f6;
1256 pub const SAE_FRAME_TX: u64 = 0x4715ad5dc5a6340f;
1257 pub const WMM_STATUS_REQ: u64 = 0x635ecef3beb7a059;
1258 pub const ON_LINK_STATE_CHANGED: u64 = 0x4d896e5b68e488d7;
1259 pub const SET_MAC_ADDRESS: u64 = 0x211a97f6f21ae5f0;
1260}
1261
1262pub mod wlan_fullmac_impl_ifc_ordinals {
1263 pub const ON_SCAN_RESULT: u64 = 0x29aa81dc570f7a3e;
1264 pub const ON_SCAN_END: u64 = 0x7cd8aff80d27073c;
1265 pub const CONNECT_CONF: u64 = 0x3c22c6d80b2a2759;
1266 pub const ROAM_CONF: u64 = 0x368b2a5b903b3f7b;
1267 pub const ROAM_START_IND: u64 = 0x23e1d9368935e7e4;
1268 pub const ROAM_RESULT_IND: u64 = 0x7081c1b1ceea4914;
1269 pub const AUTH_IND: u64 = 0x270e1f8889650d0b;
1270 pub const DEAUTH_CONF: u64 = 0x2c94b0d7258111b7;
1271 pub const DEAUTH_IND: u64 = 0x26cd27cdadd8dbaf;
1272 pub const ASSOC_IND: u64 = 0x3e44529e3dc179ce;
1273 pub const DISASSOC_CONF: u64 = 0x7c713bcd58a76cb3;
1274 pub const DISASSOC_IND: u64 = 0x6667b381b7f3990f;
1275 pub const START_CONF: u64 = 0x3e9b9641f3ddc7fc;
1276 pub const STOP_CONF: u64 = 0x320a5ff227a4e9df;
1277 pub const EAPOL_CONF: u64 = 0x77364db9cc3970ec;
1278 pub const ON_CHANNEL_SWITCH: u64 = 0x21db0b8f71cae647;
1279 pub const SIGNAL_REPORT: u64 = 0x79679fa8789c3d9f;
1280 pub const EAPOL_IND: u64 = 0x3de8ec1eda10d1d0;
1281 pub const ON_PMK_AVAILABLE: u64 = 0x5cedd8d9be28a17e;
1282 pub const SAE_HANDSHAKE_IND: u64 = 0x4f3d53885503a1d8;
1283 pub const SAE_FRAME_RX: u64 = 0x51650906857ed4d4;
1284 pub const ON_WMM_STATUS_RESP: u64 = 0x6823a88bf3ba8b2a;
1285}
1286
1287mod internal {
1288 use super::*;
1289 unsafe impl fidl::encoding::TypeMarker for EapolTxResult {
1290 type Owned = Self;
1291
1292 #[inline(always)]
1293 fn inline_align(_context: fidl::encoding::Context) -> usize {
1294 std::mem::align_of::<u8>()
1295 }
1296
1297 #[inline(always)]
1298 fn inline_size(_context: fidl::encoding::Context) -> usize {
1299 std::mem::size_of::<u8>()
1300 }
1301
1302 #[inline(always)]
1303 fn encode_is_copy() -> bool {
1304 false
1305 }
1306
1307 #[inline(always)]
1308 fn decode_is_copy() -> bool {
1309 false
1310 }
1311 }
1312
1313 impl fidl::encoding::ValueTypeMarker for EapolTxResult {
1314 type Borrowed<'a> = Self;
1315 #[inline(always)]
1316 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1317 *value
1318 }
1319 }
1320
1321 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for EapolTxResult {
1322 #[inline]
1323 unsafe fn encode(
1324 self,
1325 encoder: &mut fidl::encoding::Encoder<'_, D>,
1326 offset: usize,
1327 _depth: fidl::encoding::Depth,
1328 ) -> fidl::Result<()> {
1329 encoder.debug_check_bounds::<Self>(offset);
1330 encoder.write_num(self.into_primitive(), offset);
1331 Ok(())
1332 }
1333 }
1334
1335 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for EapolTxResult {
1336 #[inline(always)]
1337 fn new_empty() -> Self {
1338 Self::unknown()
1339 }
1340
1341 #[inline]
1342 unsafe fn decode(
1343 &mut self,
1344 decoder: &mut fidl::encoding::Decoder<'_, D>,
1345 offset: usize,
1346 _depth: fidl::encoding::Depth,
1347 ) -> fidl::Result<()> {
1348 decoder.debug_check_bounds::<Self>(offset);
1349 let prim = decoder.read_num::<u8>(offset);
1350
1351 *self = Self::from_primitive_allow_unknown(prim);
1352 Ok(())
1353 }
1354 }
1355 unsafe impl fidl::encoding::TypeMarker for StartResult {
1356 type Owned = Self;
1357
1358 #[inline(always)]
1359 fn inline_align(_context: fidl::encoding::Context) -> usize {
1360 std::mem::align_of::<u8>()
1361 }
1362
1363 #[inline(always)]
1364 fn inline_size(_context: fidl::encoding::Context) -> usize {
1365 std::mem::size_of::<u8>()
1366 }
1367
1368 #[inline(always)]
1369 fn encode_is_copy() -> bool {
1370 false
1371 }
1372
1373 #[inline(always)]
1374 fn decode_is_copy() -> bool {
1375 false
1376 }
1377 }
1378
1379 impl fidl::encoding::ValueTypeMarker for StartResult {
1380 type Borrowed<'a> = Self;
1381 #[inline(always)]
1382 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1383 *value
1384 }
1385 }
1386
1387 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for StartResult {
1388 #[inline]
1389 unsafe fn encode(
1390 self,
1391 encoder: &mut fidl::encoding::Encoder<'_, D>,
1392 offset: usize,
1393 _depth: fidl::encoding::Depth,
1394 ) -> fidl::Result<()> {
1395 encoder.debug_check_bounds::<Self>(offset);
1396 encoder.write_num(self.into_primitive(), offset);
1397 Ok(())
1398 }
1399 }
1400
1401 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for StartResult {
1402 #[inline(always)]
1403 fn new_empty() -> Self {
1404 Self::unknown()
1405 }
1406
1407 #[inline]
1408 unsafe fn decode(
1409 &mut self,
1410 decoder: &mut fidl::encoding::Decoder<'_, D>,
1411 offset: usize,
1412 _depth: fidl::encoding::Depth,
1413 ) -> fidl::Result<()> {
1414 decoder.debug_check_bounds::<Self>(offset);
1415 let prim = decoder.read_num::<u8>(offset);
1416
1417 *self = Self::from_primitive_allow_unknown(prim);
1418 Ok(())
1419 }
1420 }
1421 unsafe impl fidl::encoding::TypeMarker for StopResult {
1422 type Owned = Self;
1423
1424 #[inline(always)]
1425 fn inline_align(_context: fidl::encoding::Context) -> usize {
1426 std::mem::align_of::<u8>()
1427 }
1428
1429 #[inline(always)]
1430 fn inline_size(_context: fidl::encoding::Context) -> usize {
1431 std::mem::size_of::<u8>()
1432 }
1433
1434 #[inline(always)]
1435 fn encode_is_copy() -> bool {
1436 false
1437 }
1438
1439 #[inline(always)]
1440 fn decode_is_copy() -> bool {
1441 false
1442 }
1443 }
1444
1445 impl fidl::encoding::ValueTypeMarker for StopResult {
1446 type Borrowed<'a> = Self;
1447 #[inline(always)]
1448 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1449 *value
1450 }
1451 }
1452
1453 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for StopResult {
1454 #[inline]
1455 unsafe fn encode(
1456 self,
1457 encoder: &mut fidl::encoding::Encoder<'_, D>,
1458 offset: usize,
1459 _depth: fidl::encoding::Depth,
1460 ) -> fidl::Result<()> {
1461 encoder.debug_check_bounds::<Self>(offset);
1462 encoder.write_num(self.into_primitive(), offset);
1463 Ok(())
1464 }
1465 }
1466
1467 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for StopResult {
1468 #[inline(always)]
1469 fn new_empty() -> Self {
1470 Self::unknown()
1471 }
1472
1473 #[inline]
1474 unsafe fn decode(
1475 &mut self,
1476 decoder: &mut fidl::encoding::Decoder<'_, D>,
1477 offset: usize,
1478 _depth: fidl::encoding::Depth,
1479 ) -> fidl::Result<()> {
1480 decoder.debug_check_bounds::<Self>(offset);
1481 let prim = decoder.read_num::<u8>(offset);
1482
1483 *self = Self::from_primitive_allow_unknown(prim);
1484 Ok(())
1485 }
1486 }
1487 unsafe impl fidl::encoding::TypeMarker for WlanAssocResult {
1488 type Owned = Self;
1489
1490 #[inline(always)]
1491 fn inline_align(_context: fidl::encoding::Context) -> usize {
1492 std::mem::align_of::<u8>()
1493 }
1494
1495 #[inline(always)]
1496 fn inline_size(_context: fidl::encoding::Context) -> usize {
1497 std::mem::size_of::<u8>()
1498 }
1499
1500 #[inline(always)]
1501 fn encode_is_copy() -> bool {
1502 false
1503 }
1504
1505 #[inline(always)]
1506 fn decode_is_copy() -> bool {
1507 false
1508 }
1509 }
1510
1511 impl fidl::encoding::ValueTypeMarker for WlanAssocResult {
1512 type Borrowed<'a> = Self;
1513 #[inline(always)]
1514 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1515 *value
1516 }
1517 }
1518
1519 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
1520 for WlanAssocResult
1521 {
1522 #[inline]
1523 unsafe fn encode(
1524 self,
1525 encoder: &mut fidl::encoding::Encoder<'_, D>,
1526 offset: usize,
1527 _depth: fidl::encoding::Depth,
1528 ) -> fidl::Result<()> {
1529 encoder.debug_check_bounds::<Self>(offset);
1530 encoder.write_num(self.into_primitive(), offset);
1531 Ok(())
1532 }
1533 }
1534
1535 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for WlanAssocResult {
1536 #[inline(always)]
1537 fn new_empty() -> Self {
1538 Self::unknown()
1539 }
1540
1541 #[inline]
1542 unsafe fn decode(
1543 &mut self,
1544 decoder: &mut fidl::encoding::Decoder<'_, D>,
1545 offset: usize,
1546 _depth: fidl::encoding::Depth,
1547 ) -> fidl::Result<()> {
1548 decoder.debug_check_bounds::<Self>(offset);
1549 let prim = decoder.read_num::<u8>(offset);
1550
1551 *self = Self::from_primitive_allow_unknown(prim);
1552 Ok(())
1553 }
1554 }
1555 unsafe impl fidl::encoding::TypeMarker for WlanAuthResult {
1556 type Owned = Self;
1557
1558 #[inline(always)]
1559 fn inline_align(_context: fidl::encoding::Context) -> usize {
1560 std::mem::align_of::<u8>()
1561 }
1562
1563 #[inline(always)]
1564 fn inline_size(_context: fidl::encoding::Context) -> usize {
1565 std::mem::size_of::<u8>()
1566 }
1567
1568 #[inline(always)]
1569 fn encode_is_copy() -> bool {
1570 false
1571 }
1572
1573 #[inline(always)]
1574 fn decode_is_copy() -> bool {
1575 false
1576 }
1577 }
1578
1579 impl fidl::encoding::ValueTypeMarker for WlanAuthResult {
1580 type Borrowed<'a> = Self;
1581 #[inline(always)]
1582 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1583 *value
1584 }
1585 }
1586
1587 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for WlanAuthResult {
1588 #[inline]
1589 unsafe fn encode(
1590 self,
1591 encoder: &mut fidl::encoding::Encoder<'_, D>,
1592 offset: usize,
1593 _depth: fidl::encoding::Depth,
1594 ) -> fidl::Result<()> {
1595 encoder.debug_check_bounds::<Self>(offset);
1596 encoder.write_num(self.into_primitive(), offset);
1597 Ok(())
1598 }
1599 }
1600
1601 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for WlanAuthResult {
1602 #[inline(always)]
1603 fn new_empty() -> Self {
1604 Self::unknown()
1605 }
1606
1607 #[inline]
1608 unsafe fn decode(
1609 &mut self,
1610 decoder: &mut fidl::encoding::Decoder<'_, D>,
1611 offset: usize,
1612 _depth: fidl::encoding::Depth,
1613 ) -> fidl::Result<()> {
1614 decoder.debug_check_bounds::<Self>(offset);
1615 let prim = decoder.read_num::<u8>(offset);
1616
1617 *self = Self::from_primitive_allow_unknown(prim);
1618 Ok(())
1619 }
1620 }
1621 unsafe impl fidl::encoding::TypeMarker for WlanAuthType {
1622 type Owned = Self;
1623
1624 #[inline(always)]
1625 fn inline_align(_context: fidl::encoding::Context) -> usize {
1626 std::mem::align_of::<u8>()
1627 }
1628
1629 #[inline(always)]
1630 fn inline_size(_context: fidl::encoding::Context) -> usize {
1631 std::mem::size_of::<u8>()
1632 }
1633
1634 #[inline(always)]
1635 fn encode_is_copy() -> bool {
1636 false
1637 }
1638
1639 #[inline(always)]
1640 fn decode_is_copy() -> bool {
1641 false
1642 }
1643 }
1644
1645 impl fidl::encoding::ValueTypeMarker for WlanAuthType {
1646 type Borrowed<'a> = Self;
1647 #[inline(always)]
1648 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1649 *value
1650 }
1651 }
1652
1653 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for WlanAuthType {
1654 #[inline]
1655 unsafe fn encode(
1656 self,
1657 encoder: &mut fidl::encoding::Encoder<'_, D>,
1658 offset: usize,
1659 _depth: fidl::encoding::Depth,
1660 ) -> fidl::Result<()> {
1661 encoder.debug_check_bounds::<Self>(offset);
1662 encoder.write_num(self.into_primitive(), offset);
1663 Ok(())
1664 }
1665 }
1666
1667 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for WlanAuthType {
1668 #[inline(always)]
1669 fn new_empty() -> Self {
1670 Self::unknown()
1671 }
1672
1673 #[inline]
1674 unsafe fn decode(
1675 &mut self,
1676 decoder: &mut fidl::encoding::Decoder<'_, D>,
1677 offset: usize,
1678 _depth: fidl::encoding::Depth,
1679 ) -> fidl::Result<()> {
1680 decoder.debug_check_bounds::<Self>(offset);
1681 let prim = decoder.read_num::<u8>(offset);
1682
1683 *self = Self::from_primitive_allow_unknown(prim);
1684 Ok(())
1685 }
1686 }
1687 unsafe impl fidl::encoding::TypeMarker for WlanScanResult {
1688 type Owned = Self;
1689
1690 #[inline(always)]
1691 fn inline_align(_context: fidl::encoding::Context) -> usize {
1692 std::mem::align_of::<u8>()
1693 }
1694
1695 #[inline(always)]
1696 fn inline_size(_context: fidl::encoding::Context) -> usize {
1697 std::mem::size_of::<u8>()
1698 }
1699
1700 #[inline(always)]
1701 fn encode_is_copy() -> bool {
1702 false
1703 }
1704
1705 #[inline(always)]
1706 fn decode_is_copy() -> bool {
1707 false
1708 }
1709 }
1710
1711 impl fidl::encoding::ValueTypeMarker for WlanScanResult {
1712 type Borrowed<'a> = Self;
1713 #[inline(always)]
1714 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1715 *value
1716 }
1717 }
1718
1719 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for WlanScanResult {
1720 #[inline]
1721 unsafe fn encode(
1722 self,
1723 encoder: &mut fidl::encoding::Encoder<'_, D>,
1724 offset: usize,
1725 _depth: fidl::encoding::Depth,
1726 ) -> fidl::Result<()> {
1727 encoder.debug_check_bounds::<Self>(offset);
1728 encoder.write_num(self.into_primitive(), offset);
1729 Ok(())
1730 }
1731 }
1732
1733 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for WlanScanResult {
1734 #[inline(always)]
1735 fn new_empty() -> Self {
1736 Self::unknown()
1737 }
1738
1739 #[inline]
1740 unsafe fn decode(
1741 &mut self,
1742 decoder: &mut fidl::encoding::Decoder<'_, D>,
1743 offset: usize,
1744 _depth: fidl::encoding::Depth,
1745 ) -> fidl::Result<()> {
1746 decoder.debug_check_bounds::<Self>(offset);
1747 let prim = decoder.read_num::<u8>(offset);
1748
1749 *self = Self::from_primitive_allow_unknown(prim);
1750 Ok(())
1751 }
1752 }
1753 unsafe impl fidl::encoding::TypeMarker for WlanScanType {
1754 type Owned = Self;
1755
1756 #[inline(always)]
1757 fn inline_align(_context: fidl::encoding::Context) -> usize {
1758 std::mem::align_of::<u8>()
1759 }
1760
1761 #[inline(always)]
1762 fn inline_size(_context: fidl::encoding::Context) -> usize {
1763 std::mem::size_of::<u8>()
1764 }
1765
1766 #[inline(always)]
1767 fn encode_is_copy() -> bool {
1768 false
1769 }
1770
1771 #[inline(always)]
1772 fn decode_is_copy() -> bool {
1773 false
1774 }
1775 }
1776
1777 impl fidl::encoding::ValueTypeMarker for WlanScanType {
1778 type Borrowed<'a> = Self;
1779 #[inline(always)]
1780 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1781 *value
1782 }
1783 }
1784
1785 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for WlanScanType {
1786 #[inline]
1787 unsafe fn encode(
1788 self,
1789 encoder: &mut fidl::encoding::Encoder<'_, D>,
1790 offset: usize,
1791 _depth: fidl::encoding::Depth,
1792 ) -> fidl::Result<()> {
1793 encoder.debug_check_bounds::<Self>(offset);
1794 encoder.write_num(self.into_primitive(), offset);
1795 Ok(())
1796 }
1797 }
1798
1799 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for WlanScanType {
1800 #[inline(always)]
1801 fn new_empty() -> Self {
1802 Self::unknown()
1803 }
1804
1805 #[inline]
1806 unsafe fn decode(
1807 &mut self,
1808 decoder: &mut fidl::encoding::Decoder<'_, D>,
1809 offset: usize,
1810 _depth: fidl::encoding::Depth,
1811 ) -> fidl::Result<()> {
1812 decoder.debug_check_bounds::<Self>(offset);
1813 let prim = decoder.read_num::<u8>(offset);
1814
1815 *self = Self::from_primitive_allow_unknown(prim);
1816 Ok(())
1817 }
1818 }
1819
1820 impl fidl::encoding::ValueTypeMarker for WlanFullmacChannelSwitchInfo {
1821 type Borrowed<'a> = &'a Self;
1822 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1823 value
1824 }
1825 }
1826
1827 unsafe impl fidl::encoding::TypeMarker for WlanFullmacChannelSwitchInfo {
1828 type Owned = Self;
1829
1830 #[inline(always)]
1831 fn inline_align(_context: fidl::encoding::Context) -> usize {
1832 1
1833 }
1834
1835 #[inline(always)]
1836 fn inline_size(_context: fidl::encoding::Context) -> usize {
1837 1
1838 }
1839 #[inline(always)]
1840 fn encode_is_copy() -> bool {
1841 true
1842 }
1843
1844 #[inline(always)]
1845 fn decode_is_copy() -> bool {
1846 true
1847 }
1848 }
1849
1850 unsafe impl<D: fidl::encoding::ResourceDialect>
1851 fidl::encoding::Encode<WlanFullmacChannelSwitchInfo, D> for &WlanFullmacChannelSwitchInfo
1852 {
1853 #[inline]
1854 unsafe fn encode(
1855 self,
1856 encoder: &mut fidl::encoding::Encoder<'_, D>,
1857 offset: usize,
1858 _depth: fidl::encoding::Depth,
1859 ) -> fidl::Result<()> {
1860 encoder.debug_check_bounds::<WlanFullmacChannelSwitchInfo>(offset);
1861 unsafe {
1862 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
1864 (buf_ptr as *mut WlanFullmacChannelSwitchInfo)
1865 .write_unaligned((self as *const WlanFullmacChannelSwitchInfo).read());
1866 }
1869 Ok(())
1870 }
1871 }
1872 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<u8, D>>
1873 fidl::encoding::Encode<WlanFullmacChannelSwitchInfo, D> for (T0,)
1874 {
1875 #[inline]
1876 unsafe fn encode(
1877 self,
1878 encoder: &mut fidl::encoding::Encoder<'_, D>,
1879 offset: usize,
1880 depth: fidl::encoding::Depth,
1881 ) -> fidl::Result<()> {
1882 encoder.debug_check_bounds::<WlanFullmacChannelSwitchInfo>(offset);
1883 self.0.encode(encoder, offset + 0, depth)?;
1887 Ok(())
1888 }
1889 }
1890
1891 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1892 for WlanFullmacChannelSwitchInfo
1893 {
1894 #[inline(always)]
1895 fn new_empty() -> Self {
1896 Self { new_channel: fidl::new_empty!(u8, D) }
1897 }
1898
1899 #[inline]
1900 unsafe fn decode(
1901 &mut self,
1902 decoder: &mut fidl::encoding::Decoder<'_, D>,
1903 offset: usize,
1904 _depth: fidl::encoding::Depth,
1905 ) -> fidl::Result<()> {
1906 decoder.debug_check_bounds::<Self>(offset);
1907 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
1908 unsafe {
1911 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 1);
1912 }
1913 Ok(())
1914 }
1915 }
1916
1917 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcOnChannelSwitchRequest {
1918 type Borrowed<'a> = &'a Self;
1919 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1920 value
1921 }
1922 }
1923
1924 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcOnChannelSwitchRequest {
1925 type Owned = Self;
1926
1927 #[inline(always)]
1928 fn inline_align(_context: fidl::encoding::Context) -> usize {
1929 1
1930 }
1931
1932 #[inline(always)]
1933 fn inline_size(_context: fidl::encoding::Context) -> usize {
1934 1
1935 }
1936 #[inline(always)]
1937 fn encode_is_copy() -> bool {
1938 true
1939 }
1940
1941 #[inline(always)]
1942 fn decode_is_copy() -> bool {
1943 true
1944 }
1945 }
1946
1947 unsafe impl<D: fidl::encoding::ResourceDialect>
1948 fidl::encoding::Encode<WlanFullmacImplIfcOnChannelSwitchRequest, D>
1949 for &WlanFullmacImplIfcOnChannelSwitchRequest
1950 {
1951 #[inline]
1952 unsafe fn encode(
1953 self,
1954 encoder: &mut fidl::encoding::Encoder<'_, D>,
1955 offset: usize,
1956 _depth: fidl::encoding::Depth,
1957 ) -> fidl::Result<()> {
1958 encoder.debug_check_bounds::<WlanFullmacImplIfcOnChannelSwitchRequest>(offset);
1959 unsafe {
1960 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
1962 (buf_ptr as *mut WlanFullmacImplIfcOnChannelSwitchRequest).write_unaligned(
1963 (self as *const WlanFullmacImplIfcOnChannelSwitchRequest).read(),
1964 );
1965 }
1968 Ok(())
1969 }
1970 }
1971 unsafe impl<
1972 D: fidl::encoding::ResourceDialect,
1973 T0: fidl::encoding::Encode<WlanFullmacChannelSwitchInfo, D>,
1974 > fidl::encoding::Encode<WlanFullmacImplIfcOnChannelSwitchRequest, D> for (T0,)
1975 {
1976 #[inline]
1977 unsafe fn encode(
1978 self,
1979 encoder: &mut fidl::encoding::Encoder<'_, D>,
1980 offset: usize,
1981 depth: fidl::encoding::Depth,
1982 ) -> fidl::Result<()> {
1983 encoder.debug_check_bounds::<WlanFullmacImplIfcOnChannelSwitchRequest>(offset);
1984 self.0.encode(encoder, offset + 0, depth)?;
1988 Ok(())
1989 }
1990 }
1991
1992 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1993 for WlanFullmacImplIfcOnChannelSwitchRequest
1994 {
1995 #[inline(always)]
1996 fn new_empty() -> Self {
1997 Self { ind: fidl::new_empty!(WlanFullmacChannelSwitchInfo, D) }
1998 }
1999
2000 #[inline]
2001 unsafe fn decode(
2002 &mut self,
2003 decoder: &mut fidl::encoding::Decoder<'_, D>,
2004 offset: usize,
2005 _depth: fidl::encoding::Depth,
2006 ) -> fidl::Result<()> {
2007 decoder.debug_check_bounds::<Self>(offset);
2008 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
2009 unsafe {
2012 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 1);
2013 }
2014 Ok(())
2015 }
2016 }
2017
2018 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcOnWmmStatusRespRequest {
2019 type Borrowed<'a> = &'a Self;
2020 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2021 value
2022 }
2023 }
2024
2025 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcOnWmmStatusRespRequest {
2026 type Owned = Self;
2027
2028 #[inline(always)]
2029 fn inline_align(_context: fidl::encoding::Context) -> usize {
2030 4
2031 }
2032
2033 #[inline(always)]
2034 fn inline_size(_context: fidl::encoding::Context) -> usize {
2035 40
2036 }
2037 }
2038
2039 unsafe impl<D: fidl::encoding::ResourceDialect>
2040 fidl::encoding::Encode<WlanFullmacImplIfcOnWmmStatusRespRequest, D>
2041 for &WlanFullmacImplIfcOnWmmStatusRespRequest
2042 {
2043 #[inline]
2044 unsafe fn encode(
2045 self,
2046 encoder: &mut fidl::encoding::Encoder<'_, D>,
2047 offset: usize,
2048 _depth: fidl::encoding::Depth,
2049 ) -> fidl::Result<()> {
2050 encoder.debug_check_bounds::<WlanFullmacImplIfcOnWmmStatusRespRequest>(offset);
2051 fidl::encoding::Encode::<WlanFullmacImplIfcOnWmmStatusRespRequest, D>::encode(
2053 (
2054 <i32 as fidl::encoding::ValueTypeMarker>::borrow(&self.status),
2055 <fidl_fuchsia_wlan_common__common::WlanWmmParameters as fidl::encoding::ValueTypeMarker>::borrow(&self.wmm_params),
2056 ),
2057 encoder, offset, _depth
2058 )
2059 }
2060 }
2061 unsafe impl<
2062 D: fidl::encoding::ResourceDialect,
2063 T0: fidl::encoding::Encode<i32, D>,
2064 T1: fidl::encoding::Encode<fidl_fuchsia_wlan_common__common::WlanWmmParameters, D>,
2065 > fidl::encoding::Encode<WlanFullmacImplIfcOnWmmStatusRespRequest, D> for (T0, T1)
2066 {
2067 #[inline]
2068 unsafe fn encode(
2069 self,
2070 encoder: &mut fidl::encoding::Encoder<'_, D>,
2071 offset: usize,
2072 depth: fidl::encoding::Depth,
2073 ) -> fidl::Result<()> {
2074 encoder.debug_check_bounds::<WlanFullmacImplIfcOnWmmStatusRespRequest>(offset);
2075 unsafe {
2078 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(36);
2079 (ptr as *mut u32).write_unaligned(0);
2080 }
2081 self.0.encode(encoder, offset + 0, depth)?;
2083 self.1.encode(encoder, offset + 4, depth)?;
2084 Ok(())
2085 }
2086 }
2087
2088 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2089 for WlanFullmacImplIfcOnWmmStatusRespRequest
2090 {
2091 #[inline(always)]
2092 fn new_empty() -> Self {
2093 Self {
2094 status: fidl::new_empty!(i32, D),
2095 wmm_params: fidl::new_empty!(
2096 fidl_fuchsia_wlan_common__common::WlanWmmParameters,
2097 D
2098 ),
2099 }
2100 }
2101
2102 #[inline]
2103 unsafe fn decode(
2104 &mut self,
2105 decoder: &mut fidl::encoding::Decoder<'_, D>,
2106 offset: usize,
2107 _depth: fidl::encoding::Depth,
2108 ) -> fidl::Result<()> {
2109 decoder.debug_check_bounds::<Self>(offset);
2110 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(36) };
2112 let padval = unsafe { (ptr as *const u32).read_unaligned() };
2113 let mask = 0xffff0000u32;
2114 let maskedval = padval & mask;
2115 if maskedval != 0 {
2116 return Err(fidl::Error::NonZeroPadding {
2117 padding_start: offset + 36 + ((mask as u64).trailing_zeros() / 8) as usize,
2118 });
2119 }
2120 fidl::decode!(i32, D, &mut self.status, decoder, offset + 0, _depth)?;
2121 fidl::decode!(
2122 fidl_fuchsia_wlan_common__common::WlanWmmParameters,
2123 D,
2124 &mut self.wmm_params,
2125 decoder,
2126 offset + 4,
2127 _depth
2128 )?;
2129 Ok(())
2130 }
2131 }
2132
2133 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcSaeFrameRxRequest {
2134 type Borrowed<'a> = &'a Self;
2135 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2136 value
2137 }
2138 }
2139
2140 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcSaeFrameRxRequest {
2141 type Owned = Self;
2142
2143 #[inline(always)]
2144 fn inline_align(_context: fidl::encoding::Context) -> usize {
2145 8
2146 }
2147
2148 #[inline(always)]
2149 fn inline_size(_context: fidl::encoding::Context) -> usize {
2150 16
2151 }
2152 }
2153
2154 unsafe impl<D: fidl::encoding::ResourceDialect>
2155 fidl::encoding::Encode<WlanFullmacImplIfcSaeFrameRxRequest, D>
2156 for &WlanFullmacImplIfcSaeFrameRxRequest
2157 {
2158 #[inline]
2159 unsafe fn encode(
2160 self,
2161 encoder: &mut fidl::encoding::Encoder<'_, D>,
2162 offset: usize,
2163 _depth: fidl::encoding::Depth,
2164 ) -> fidl::Result<()> {
2165 encoder.debug_check_bounds::<WlanFullmacImplIfcSaeFrameRxRequest>(offset);
2166 fidl::encoding::Encode::<WlanFullmacImplIfcSaeFrameRxRequest, D>::encode(
2168 (<SaeFrame as fidl::encoding::ValueTypeMarker>::borrow(&self.frame),),
2169 encoder,
2170 offset,
2171 _depth,
2172 )
2173 }
2174 }
2175 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<SaeFrame, D>>
2176 fidl::encoding::Encode<WlanFullmacImplIfcSaeFrameRxRequest, D> for (T0,)
2177 {
2178 #[inline]
2179 unsafe fn encode(
2180 self,
2181 encoder: &mut fidl::encoding::Encoder<'_, D>,
2182 offset: usize,
2183 depth: fidl::encoding::Depth,
2184 ) -> fidl::Result<()> {
2185 encoder.debug_check_bounds::<WlanFullmacImplIfcSaeFrameRxRequest>(offset);
2186 self.0.encode(encoder, offset + 0, depth)?;
2190 Ok(())
2191 }
2192 }
2193
2194 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2195 for WlanFullmacImplIfcSaeFrameRxRequest
2196 {
2197 #[inline(always)]
2198 fn new_empty() -> Self {
2199 Self { frame: fidl::new_empty!(SaeFrame, D) }
2200 }
2201
2202 #[inline]
2203 unsafe fn decode(
2204 &mut self,
2205 decoder: &mut fidl::encoding::Decoder<'_, D>,
2206 offset: usize,
2207 _depth: fidl::encoding::Depth,
2208 ) -> fidl::Result<()> {
2209 decoder.debug_check_bounds::<Self>(offset);
2210 fidl::decode!(SaeFrame, D, &mut self.frame, decoder, offset + 0, _depth)?;
2212 Ok(())
2213 }
2214 }
2215
2216 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcSignalReportRequest {
2217 type Borrowed<'a> = &'a Self;
2218 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2219 value
2220 }
2221 }
2222
2223 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcSignalReportRequest {
2224 type Owned = Self;
2225
2226 #[inline(always)]
2227 fn inline_align(_context: fidl::encoding::Context) -> usize {
2228 1
2229 }
2230
2231 #[inline(always)]
2232 fn inline_size(_context: fidl::encoding::Context) -> usize {
2233 2
2234 }
2235 #[inline(always)]
2236 fn encode_is_copy() -> bool {
2237 true
2238 }
2239
2240 #[inline(always)]
2241 fn decode_is_copy() -> bool {
2242 true
2243 }
2244 }
2245
2246 unsafe impl<D: fidl::encoding::ResourceDialect>
2247 fidl::encoding::Encode<WlanFullmacImplIfcSignalReportRequest, D>
2248 for &WlanFullmacImplIfcSignalReportRequest
2249 {
2250 #[inline]
2251 unsafe fn encode(
2252 self,
2253 encoder: &mut fidl::encoding::Encoder<'_, D>,
2254 offset: usize,
2255 _depth: fidl::encoding::Depth,
2256 ) -> fidl::Result<()> {
2257 encoder.debug_check_bounds::<WlanFullmacImplIfcSignalReportRequest>(offset);
2258 unsafe {
2259 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
2261 (buf_ptr as *mut WlanFullmacImplIfcSignalReportRequest)
2262 .write_unaligned((self as *const WlanFullmacImplIfcSignalReportRequest).read());
2263 }
2266 Ok(())
2267 }
2268 }
2269 unsafe impl<
2270 D: fidl::encoding::ResourceDialect,
2271 T0: fidl::encoding::Encode<WlanFullmacSignalReportIndication, D>,
2272 > fidl::encoding::Encode<WlanFullmacImplIfcSignalReportRequest, D> for (T0,)
2273 {
2274 #[inline]
2275 unsafe fn encode(
2276 self,
2277 encoder: &mut fidl::encoding::Encoder<'_, D>,
2278 offset: usize,
2279 depth: fidl::encoding::Depth,
2280 ) -> fidl::Result<()> {
2281 encoder.debug_check_bounds::<WlanFullmacImplIfcSignalReportRequest>(offset);
2282 self.0.encode(encoder, offset + 0, depth)?;
2286 Ok(())
2287 }
2288 }
2289
2290 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2291 for WlanFullmacImplIfcSignalReportRequest
2292 {
2293 #[inline(always)]
2294 fn new_empty() -> Self {
2295 Self { ind: fidl::new_empty!(WlanFullmacSignalReportIndication, D) }
2296 }
2297
2298 #[inline]
2299 unsafe fn decode(
2300 &mut self,
2301 decoder: &mut fidl::encoding::Decoder<'_, D>,
2302 offset: usize,
2303 _depth: fidl::encoding::Depth,
2304 ) -> fidl::Result<()> {
2305 decoder.debug_check_bounds::<Self>(offset);
2306 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
2307 unsafe {
2310 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 2);
2311 }
2312 Ok(())
2313 }
2314 }
2315
2316 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplSaeFrameTxRequest {
2317 type Borrowed<'a> = &'a Self;
2318 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2319 value
2320 }
2321 }
2322
2323 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplSaeFrameTxRequest {
2324 type Owned = Self;
2325
2326 #[inline(always)]
2327 fn inline_align(_context: fidl::encoding::Context) -> usize {
2328 8
2329 }
2330
2331 #[inline(always)]
2332 fn inline_size(_context: fidl::encoding::Context) -> usize {
2333 16
2334 }
2335 }
2336
2337 unsafe impl<D: fidl::encoding::ResourceDialect>
2338 fidl::encoding::Encode<WlanFullmacImplSaeFrameTxRequest, D>
2339 for &WlanFullmacImplSaeFrameTxRequest
2340 {
2341 #[inline]
2342 unsafe fn encode(
2343 self,
2344 encoder: &mut fidl::encoding::Encoder<'_, D>,
2345 offset: usize,
2346 _depth: fidl::encoding::Depth,
2347 ) -> fidl::Result<()> {
2348 encoder.debug_check_bounds::<WlanFullmacImplSaeFrameTxRequest>(offset);
2349 fidl::encoding::Encode::<WlanFullmacImplSaeFrameTxRequest, D>::encode(
2351 (<SaeFrame as fidl::encoding::ValueTypeMarker>::borrow(&self.frame),),
2352 encoder,
2353 offset,
2354 _depth,
2355 )
2356 }
2357 }
2358 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<SaeFrame, D>>
2359 fidl::encoding::Encode<WlanFullmacImplSaeFrameTxRequest, D> for (T0,)
2360 {
2361 #[inline]
2362 unsafe fn encode(
2363 self,
2364 encoder: &mut fidl::encoding::Encoder<'_, D>,
2365 offset: usize,
2366 depth: fidl::encoding::Depth,
2367 ) -> fidl::Result<()> {
2368 encoder.debug_check_bounds::<WlanFullmacImplSaeFrameTxRequest>(offset);
2369 self.0.encode(encoder, offset + 0, depth)?;
2373 Ok(())
2374 }
2375 }
2376
2377 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2378 for WlanFullmacImplSaeFrameTxRequest
2379 {
2380 #[inline(always)]
2381 fn new_empty() -> Self {
2382 Self { frame: fidl::new_empty!(SaeFrame, D) }
2383 }
2384
2385 #[inline]
2386 unsafe fn decode(
2387 &mut self,
2388 decoder: &mut fidl::encoding::Decoder<'_, D>,
2389 offset: usize,
2390 _depth: fidl::encoding::Depth,
2391 ) -> fidl::Result<()> {
2392 decoder.debug_check_bounds::<Self>(offset);
2393 fidl::decode!(SaeFrame, D, &mut self.frame, decoder, offset + 0, _depth)?;
2395 Ok(())
2396 }
2397 }
2398
2399 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplSetKeysResponse {
2400 type Borrowed<'a> = &'a Self;
2401 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2402 value
2403 }
2404 }
2405
2406 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplSetKeysResponse {
2407 type Owned = Self;
2408
2409 #[inline(always)]
2410 fn inline_align(_context: fidl::encoding::Context) -> usize {
2411 8
2412 }
2413
2414 #[inline(always)]
2415 fn inline_size(_context: fidl::encoding::Context) -> usize {
2416 16
2417 }
2418 }
2419
2420 unsafe impl<D: fidl::encoding::ResourceDialect>
2421 fidl::encoding::Encode<WlanFullmacImplSetKeysResponse, D>
2422 for &WlanFullmacImplSetKeysResponse
2423 {
2424 #[inline]
2425 unsafe fn encode(
2426 self,
2427 encoder: &mut fidl::encoding::Encoder<'_, D>,
2428 offset: usize,
2429 _depth: fidl::encoding::Depth,
2430 ) -> fidl::Result<()> {
2431 encoder.debug_check_bounds::<WlanFullmacImplSetKeysResponse>(offset);
2432 fidl::encoding::Encode::<WlanFullmacImplSetKeysResponse, D>::encode(
2434 (<WlanFullmacSetKeysResp as fidl::encoding::ValueTypeMarker>::borrow(&self.resp),),
2435 encoder,
2436 offset,
2437 _depth,
2438 )
2439 }
2440 }
2441 unsafe impl<
2442 D: fidl::encoding::ResourceDialect,
2443 T0: fidl::encoding::Encode<WlanFullmacSetKeysResp, D>,
2444 > fidl::encoding::Encode<WlanFullmacImplSetKeysResponse, D> for (T0,)
2445 {
2446 #[inline]
2447 unsafe fn encode(
2448 self,
2449 encoder: &mut fidl::encoding::Encoder<'_, D>,
2450 offset: usize,
2451 depth: fidl::encoding::Depth,
2452 ) -> fidl::Result<()> {
2453 encoder.debug_check_bounds::<WlanFullmacImplSetKeysResponse>(offset);
2454 self.0.encode(encoder, offset + 0, depth)?;
2458 Ok(())
2459 }
2460 }
2461
2462 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2463 for WlanFullmacImplSetKeysResponse
2464 {
2465 #[inline(always)]
2466 fn new_empty() -> Self {
2467 Self { resp: fidl::new_empty!(WlanFullmacSetKeysResp, D) }
2468 }
2469
2470 #[inline]
2471 unsafe fn decode(
2472 &mut self,
2473 decoder: &mut fidl::encoding::Decoder<'_, D>,
2474 offset: usize,
2475 _depth: fidl::encoding::Depth,
2476 ) -> fidl::Result<()> {
2477 decoder.debug_check_bounds::<Self>(offset);
2478 fidl::decode!(WlanFullmacSetKeysResp, D, &mut self.resp, decoder, offset + 0, _depth)?;
2480 Ok(())
2481 }
2482 }
2483
2484 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplSetMacAddressRequest {
2485 type Borrowed<'a> = &'a Self;
2486 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2487 value
2488 }
2489 }
2490
2491 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplSetMacAddressRequest {
2492 type Owned = Self;
2493
2494 #[inline(always)]
2495 fn inline_align(_context: fidl::encoding::Context) -> usize {
2496 1
2497 }
2498
2499 #[inline(always)]
2500 fn inline_size(_context: fidl::encoding::Context) -> usize {
2501 6
2502 }
2503 #[inline(always)]
2504 fn encode_is_copy() -> bool {
2505 true
2506 }
2507
2508 #[inline(always)]
2509 fn decode_is_copy() -> bool {
2510 true
2511 }
2512 }
2513
2514 unsafe impl<D: fidl::encoding::ResourceDialect>
2515 fidl::encoding::Encode<WlanFullmacImplSetMacAddressRequest, D>
2516 for &WlanFullmacImplSetMacAddressRequest
2517 {
2518 #[inline]
2519 unsafe fn encode(
2520 self,
2521 encoder: &mut fidl::encoding::Encoder<'_, D>,
2522 offset: usize,
2523 _depth: fidl::encoding::Depth,
2524 ) -> fidl::Result<()> {
2525 encoder.debug_check_bounds::<WlanFullmacImplSetMacAddressRequest>(offset);
2526 unsafe {
2527 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
2529 (buf_ptr as *mut WlanFullmacImplSetMacAddressRequest)
2530 .write_unaligned((self as *const WlanFullmacImplSetMacAddressRequest).read());
2531 }
2534 Ok(())
2535 }
2536 }
2537 unsafe impl<
2538 D: fidl::encoding::ResourceDialect,
2539 T0: fidl::encoding::Encode<fidl::encoding::Array<u8, 6>, D>,
2540 > fidl::encoding::Encode<WlanFullmacImplSetMacAddressRequest, D> for (T0,)
2541 {
2542 #[inline]
2543 unsafe fn encode(
2544 self,
2545 encoder: &mut fidl::encoding::Encoder<'_, D>,
2546 offset: usize,
2547 depth: fidl::encoding::Depth,
2548 ) -> fidl::Result<()> {
2549 encoder.debug_check_bounds::<WlanFullmacImplSetMacAddressRequest>(offset);
2550 self.0.encode(encoder, offset + 0, depth)?;
2554 Ok(())
2555 }
2556 }
2557
2558 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2559 for WlanFullmacImplSetMacAddressRequest
2560 {
2561 #[inline(always)]
2562 fn new_empty() -> Self {
2563 Self { mac_addr: fidl::new_empty!(fidl::encoding::Array<u8, 6>, D) }
2564 }
2565
2566 #[inline]
2567 unsafe fn decode(
2568 &mut self,
2569 decoder: &mut fidl::encoding::Decoder<'_, D>,
2570 offset: usize,
2571 _depth: fidl::encoding::Depth,
2572 ) -> fidl::Result<()> {
2573 decoder.debug_check_bounds::<Self>(offset);
2574 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
2575 unsafe {
2578 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 6);
2579 }
2580 Ok(())
2581 }
2582 }
2583
2584 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplGetIfaceHistogramStatsResponse {
2585 type Borrowed<'a> = &'a Self;
2586 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2587 value
2588 }
2589 }
2590
2591 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplGetIfaceHistogramStatsResponse {
2592 type Owned = Self;
2593
2594 #[inline(always)]
2595 fn inline_align(_context: fidl::encoding::Context) -> usize {
2596 8
2597 }
2598
2599 #[inline(always)]
2600 fn inline_size(_context: fidl::encoding::Context) -> usize {
2601 16
2602 }
2603 }
2604
2605 unsafe impl<D: fidl::encoding::ResourceDialect>
2606 fidl::encoding::Encode<WlanFullmacImplGetIfaceHistogramStatsResponse, D>
2607 for &WlanFullmacImplGetIfaceHistogramStatsResponse
2608 {
2609 #[inline]
2610 unsafe fn encode(
2611 self,
2612 encoder: &mut fidl::encoding::Encoder<'_, D>,
2613 offset: usize,
2614 _depth: fidl::encoding::Depth,
2615 ) -> fidl::Result<()> {
2616 encoder.debug_check_bounds::<WlanFullmacImplGetIfaceHistogramStatsResponse>(offset);
2617 fidl::encoding::Encode::<WlanFullmacImplGetIfaceHistogramStatsResponse, D>::encode(
2619 (
2620 <fidl_fuchsia_wlan_stats__common::IfaceHistogramStats as fidl::encoding::ValueTypeMarker>::borrow(&self.stats),
2621 ),
2622 encoder, offset, _depth
2623 )
2624 }
2625 }
2626 unsafe impl<
2627 D: fidl::encoding::ResourceDialect,
2628 T0: fidl::encoding::Encode<fidl_fuchsia_wlan_stats__common::IfaceHistogramStats, D>,
2629 > fidl::encoding::Encode<WlanFullmacImplGetIfaceHistogramStatsResponse, D> for (T0,)
2630 {
2631 #[inline]
2632 unsafe fn encode(
2633 self,
2634 encoder: &mut fidl::encoding::Encoder<'_, D>,
2635 offset: usize,
2636 depth: fidl::encoding::Depth,
2637 ) -> fidl::Result<()> {
2638 encoder.debug_check_bounds::<WlanFullmacImplGetIfaceHistogramStatsResponse>(offset);
2639 self.0.encode(encoder, offset + 0, depth)?;
2643 Ok(())
2644 }
2645 }
2646
2647 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2648 for WlanFullmacImplGetIfaceHistogramStatsResponse
2649 {
2650 #[inline(always)]
2651 fn new_empty() -> Self {
2652 Self {
2653 stats: fidl::new_empty!(fidl_fuchsia_wlan_stats__common::IfaceHistogramStats, D),
2654 }
2655 }
2656
2657 #[inline]
2658 unsafe fn decode(
2659 &mut self,
2660 decoder: &mut fidl::encoding::Decoder<'_, D>,
2661 offset: usize,
2662 _depth: fidl::encoding::Depth,
2663 ) -> fidl::Result<()> {
2664 decoder.debug_check_bounds::<Self>(offset);
2665 fidl::decode!(
2667 fidl_fuchsia_wlan_stats__common::IfaceHistogramStats,
2668 D,
2669 &mut self.stats,
2670 decoder,
2671 offset + 0,
2672 _depth
2673 )?;
2674 Ok(())
2675 }
2676 }
2677
2678 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplGetIfaceStatsResponse {
2679 type Borrowed<'a> = &'a Self;
2680 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2681 value
2682 }
2683 }
2684
2685 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplGetIfaceStatsResponse {
2686 type Owned = Self;
2687
2688 #[inline(always)]
2689 fn inline_align(_context: fidl::encoding::Context) -> usize {
2690 8
2691 }
2692
2693 #[inline(always)]
2694 fn inline_size(_context: fidl::encoding::Context) -> usize {
2695 16
2696 }
2697 }
2698
2699 unsafe impl<D: fidl::encoding::ResourceDialect>
2700 fidl::encoding::Encode<WlanFullmacImplGetIfaceStatsResponse, D>
2701 for &WlanFullmacImplGetIfaceStatsResponse
2702 {
2703 #[inline]
2704 unsafe fn encode(
2705 self,
2706 encoder: &mut fidl::encoding::Encoder<'_, D>,
2707 offset: usize,
2708 _depth: fidl::encoding::Depth,
2709 ) -> fidl::Result<()> {
2710 encoder.debug_check_bounds::<WlanFullmacImplGetIfaceStatsResponse>(offset);
2711 fidl::encoding::Encode::<WlanFullmacImplGetIfaceStatsResponse, D>::encode(
2713 (
2714 <fidl_fuchsia_wlan_stats__common::IfaceStats as fidl::encoding::ValueTypeMarker>::borrow(&self.stats),
2715 ),
2716 encoder, offset, _depth
2717 )
2718 }
2719 }
2720 unsafe impl<
2721 D: fidl::encoding::ResourceDialect,
2722 T0: fidl::encoding::Encode<fidl_fuchsia_wlan_stats__common::IfaceStats, D>,
2723 > fidl::encoding::Encode<WlanFullmacImplGetIfaceStatsResponse, D> for (T0,)
2724 {
2725 #[inline]
2726 unsafe fn encode(
2727 self,
2728 encoder: &mut fidl::encoding::Encoder<'_, D>,
2729 offset: usize,
2730 depth: fidl::encoding::Depth,
2731 ) -> fidl::Result<()> {
2732 encoder.debug_check_bounds::<WlanFullmacImplGetIfaceStatsResponse>(offset);
2733 self.0.encode(encoder, offset + 0, depth)?;
2737 Ok(())
2738 }
2739 }
2740
2741 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2742 for WlanFullmacImplGetIfaceStatsResponse
2743 {
2744 #[inline(always)]
2745 fn new_empty() -> Self {
2746 Self { stats: fidl::new_empty!(fidl_fuchsia_wlan_stats__common::IfaceStats, D) }
2747 }
2748
2749 #[inline]
2750 unsafe fn decode(
2751 &mut self,
2752 decoder: &mut fidl::encoding::Decoder<'_, D>,
2753 offset: usize,
2754 _depth: fidl::encoding::Depth,
2755 ) -> fidl::Result<()> {
2756 decoder.debug_check_bounds::<Self>(offset);
2757 fidl::decode!(
2759 fidl_fuchsia_wlan_stats__common::IfaceStats,
2760 D,
2761 &mut self.stats,
2762 decoder,
2763 offset + 0,
2764 _depth
2765 )?;
2766 Ok(())
2767 }
2768 }
2769
2770 impl fidl::encoding::ValueTypeMarker for WlanFullmacRssiStats {
2771 type Borrowed<'a> = &'a Self;
2772 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2773 value
2774 }
2775 }
2776
2777 unsafe impl fidl::encoding::TypeMarker for WlanFullmacRssiStats {
2778 type Owned = Self;
2779
2780 #[inline(always)]
2781 fn inline_align(_context: fidl::encoding::Context) -> usize {
2782 8
2783 }
2784
2785 #[inline(always)]
2786 fn inline_size(_context: fidl::encoding::Context) -> usize {
2787 16
2788 }
2789 }
2790
2791 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<WlanFullmacRssiStats, D>
2792 for &WlanFullmacRssiStats
2793 {
2794 #[inline]
2795 unsafe fn encode(
2796 self,
2797 encoder: &mut fidl::encoding::Encoder<'_, D>,
2798 offset: usize,
2799 _depth: fidl::encoding::Depth,
2800 ) -> fidl::Result<()> {
2801 encoder.debug_check_bounds::<WlanFullmacRssiStats>(offset);
2802 fidl::encoding::Encode::<WlanFullmacRssiStats, D>::encode(
2804 (
2805 <fidl::encoding::UnboundedVector<u64> as fidl::encoding::ValueTypeMarker>::borrow(&self.hist),
2806 ),
2807 encoder, offset, _depth
2808 )
2809 }
2810 }
2811 unsafe impl<
2812 D: fidl::encoding::ResourceDialect,
2813 T0: fidl::encoding::Encode<fidl::encoding::UnboundedVector<u64>, D>,
2814 > fidl::encoding::Encode<WlanFullmacRssiStats, D> for (T0,)
2815 {
2816 #[inline]
2817 unsafe fn encode(
2818 self,
2819 encoder: &mut fidl::encoding::Encoder<'_, D>,
2820 offset: usize,
2821 depth: fidl::encoding::Depth,
2822 ) -> fidl::Result<()> {
2823 encoder.debug_check_bounds::<WlanFullmacRssiStats>(offset);
2824 self.0.encode(encoder, offset + 0, depth)?;
2828 Ok(())
2829 }
2830 }
2831
2832 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for WlanFullmacRssiStats {
2833 #[inline(always)]
2834 fn new_empty() -> Self {
2835 Self { hist: fidl::new_empty!(fidl::encoding::UnboundedVector<u64>, D) }
2836 }
2837
2838 #[inline]
2839 unsafe fn decode(
2840 &mut self,
2841 decoder: &mut fidl::encoding::Decoder<'_, D>,
2842 offset: usize,
2843 _depth: fidl::encoding::Depth,
2844 ) -> fidl::Result<()> {
2845 decoder.debug_check_bounds::<Self>(offset);
2846 fidl::decode!(
2848 fidl::encoding::UnboundedVector<u64>,
2849 D,
2850 &mut self.hist,
2851 decoder,
2852 offset + 0,
2853 _depth
2854 )?;
2855 Ok(())
2856 }
2857 }
2858
2859 impl fidl::encoding::ValueTypeMarker for WlanFullmacSetKeysResp {
2860 type Borrowed<'a> = &'a Self;
2861 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2862 value
2863 }
2864 }
2865
2866 unsafe impl fidl::encoding::TypeMarker for WlanFullmacSetKeysResp {
2867 type Owned = Self;
2868
2869 #[inline(always)]
2870 fn inline_align(_context: fidl::encoding::Context) -> usize {
2871 8
2872 }
2873
2874 #[inline(always)]
2875 fn inline_size(_context: fidl::encoding::Context) -> usize {
2876 16
2877 }
2878 }
2879
2880 unsafe impl<D: fidl::encoding::ResourceDialect>
2881 fidl::encoding::Encode<WlanFullmacSetKeysResp, D> for &WlanFullmacSetKeysResp
2882 {
2883 #[inline]
2884 unsafe fn encode(
2885 self,
2886 encoder: &mut fidl::encoding::Encoder<'_, D>,
2887 offset: usize,
2888 _depth: fidl::encoding::Depth,
2889 ) -> fidl::Result<()> {
2890 encoder.debug_check_bounds::<WlanFullmacSetKeysResp>(offset);
2891 fidl::encoding::Encode::<WlanFullmacSetKeysResp, D>::encode(
2893 (<fidl::encoding::Vector<i32, 4> as fidl::encoding::ValueTypeMarker>::borrow(
2894 &self.statuslist,
2895 ),),
2896 encoder,
2897 offset,
2898 _depth,
2899 )
2900 }
2901 }
2902 unsafe impl<
2903 D: fidl::encoding::ResourceDialect,
2904 T0: fidl::encoding::Encode<fidl::encoding::Vector<i32, 4>, D>,
2905 > fidl::encoding::Encode<WlanFullmacSetKeysResp, D> for (T0,)
2906 {
2907 #[inline]
2908 unsafe fn encode(
2909 self,
2910 encoder: &mut fidl::encoding::Encoder<'_, D>,
2911 offset: usize,
2912 depth: fidl::encoding::Depth,
2913 ) -> fidl::Result<()> {
2914 encoder.debug_check_bounds::<WlanFullmacSetKeysResp>(offset);
2915 self.0.encode(encoder, offset + 0, depth)?;
2919 Ok(())
2920 }
2921 }
2922
2923 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2924 for WlanFullmacSetKeysResp
2925 {
2926 #[inline(always)]
2927 fn new_empty() -> Self {
2928 Self { statuslist: fidl::new_empty!(fidl::encoding::Vector<i32, 4>, D) }
2929 }
2930
2931 #[inline]
2932 unsafe fn decode(
2933 &mut self,
2934 decoder: &mut fidl::encoding::Decoder<'_, D>,
2935 offset: usize,
2936 _depth: fidl::encoding::Depth,
2937 ) -> fidl::Result<()> {
2938 decoder.debug_check_bounds::<Self>(offset);
2939 fidl::decode!(fidl::encoding::Vector<i32, 4>, D, &mut self.statuslist, decoder, offset + 0, _depth)?;
2941 Ok(())
2942 }
2943 }
2944
2945 impl fidl::encoding::ValueTypeMarker for WlanFullmacSignalReportIndication {
2946 type Borrowed<'a> = &'a Self;
2947 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2948 value
2949 }
2950 }
2951
2952 unsafe impl fidl::encoding::TypeMarker for WlanFullmacSignalReportIndication {
2953 type Owned = Self;
2954
2955 #[inline(always)]
2956 fn inline_align(_context: fidl::encoding::Context) -> usize {
2957 1
2958 }
2959
2960 #[inline(always)]
2961 fn inline_size(_context: fidl::encoding::Context) -> usize {
2962 2
2963 }
2964 #[inline(always)]
2965 fn encode_is_copy() -> bool {
2966 true
2967 }
2968
2969 #[inline(always)]
2970 fn decode_is_copy() -> bool {
2971 true
2972 }
2973 }
2974
2975 unsafe impl<D: fidl::encoding::ResourceDialect>
2976 fidl::encoding::Encode<WlanFullmacSignalReportIndication, D>
2977 for &WlanFullmacSignalReportIndication
2978 {
2979 #[inline]
2980 unsafe fn encode(
2981 self,
2982 encoder: &mut fidl::encoding::Encoder<'_, D>,
2983 offset: usize,
2984 _depth: fidl::encoding::Depth,
2985 ) -> fidl::Result<()> {
2986 encoder.debug_check_bounds::<WlanFullmacSignalReportIndication>(offset);
2987 unsafe {
2988 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
2990 (buf_ptr as *mut WlanFullmacSignalReportIndication)
2991 .write_unaligned((self as *const WlanFullmacSignalReportIndication).read());
2992 }
2995 Ok(())
2996 }
2997 }
2998 unsafe impl<
2999 D: fidl::encoding::ResourceDialect,
3000 T0: fidl::encoding::Encode<i8, D>,
3001 T1: fidl::encoding::Encode<i8, D>,
3002 > fidl::encoding::Encode<WlanFullmacSignalReportIndication, D> for (T0, T1)
3003 {
3004 #[inline]
3005 unsafe fn encode(
3006 self,
3007 encoder: &mut fidl::encoding::Encoder<'_, D>,
3008 offset: usize,
3009 depth: fidl::encoding::Depth,
3010 ) -> fidl::Result<()> {
3011 encoder.debug_check_bounds::<WlanFullmacSignalReportIndication>(offset);
3012 self.0.encode(encoder, offset + 0, depth)?;
3016 self.1.encode(encoder, offset + 1, depth)?;
3017 Ok(())
3018 }
3019 }
3020
3021 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
3022 for WlanFullmacSignalReportIndication
3023 {
3024 #[inline(always)]
3025 fn new_empty() -> Self {
3026 Self { rssi_dbm: fidl::new_empty!(i8, D), snr_db: fidl::new_empty!(i8, D) }
3027 }
3028
3029 #[inline]
3030 unsafe fn decode(
3031 &mut self,
3032 decoder: &mut fidl::encoding::Decoder<'_, D>,
3033 offset: usize,
3034 _depth: fidl::encoding::Depth,
3035 ) -> fidl::Result<()> {
3036 decoder.debug_check_bounds::<Self>(offset);
3037 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
3038 unsafe {
3041 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 2);
3042 }
3043 Ok(())
3044 }
3045 }
3046
3047 impl BandCapability {
3048 #[inline(always)]
3049 fn max_ordinal_present(&self) -> u64 {
3050 if let Some(_) = self.operating_channels {
3051 return 5;
3052 }
3053 if let Some(_) = self.vht_caps {
3054 return 4;
3055 }
3056 if let Some(_) = self.ht_caps {
3057 return 3;
3058 }
3059 if let Some(_) = self.basic_rates {
3060 return 2;
3061 }
3062 if let Some(_) = self.band {
3063 return 1;
3064 }
3065 0
3066 }
3067 }
3068
3069 impl fidl::encoding::ValueTypeMarker for BandCapability {
3070 type Borrowed<'a> = &'a Self;
3071 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3072 value
3073 }
3074 }
3075
3076 unsafe impl fidl::encoding::TypeMarker for BandCapability {
3077 type Owned = Self;
3078
3079 #[inline(always)]
3080 fn inline_align(_context: fidl::encoding::Context) -> usize {
3081 8
3082 }
3083
3084 #[inline(always)]
3085 fn inline_size(_context: fidl::encoding::Context) -> usize {
3086 16
3087 }
3088 }
3089
3090 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<BandCapability, D>
3091 for &BandCapability
3092 {
3093 unsafe fn encode(
3094 self,
3095 encoder: &mut fidl::encoding::Encoder<'_, D>,
3096 offset: usize,
3097 mut depth: fidl::encoding::Depth,
3098 ) -> fidl::Result<()> {
3099 encoder.debug_check_bounds::<BandCapability>(offset);
3100 let max_ordinal: u64 = self.max_ordinal_present();
3102 encoder.write_num(max_ordinal, offset);
3103 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
3104 if max_ordinal == 0 {
3106 return Ok(());
3107 }
3108 depth.increment()?;
3109 let envelope_size = 8;
3110 let bytes_len = max_ordinal as usize * envelope_size;
3111 #[allow(unused_variables)]
3112 let offset = encoder.out_of_line_offset(bytes_len);
3113 let mut _prev_end_offset: usize = 0;
3114 if 1 > max_ordinal {
3115 return Ok(());
3116 }
3117
3118 let cur_offset: usize = (1 - 1) * envelope_size;
3121
3122 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3124
3125 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_ieee80211__common::WlanBand, D>(
3130 self.band.as_ref().map(<fidl_fuchsia_wlan_ieee80211__common::WlanBand as fidl::encoding::ValueTypeMarker>::borrow),
3131 encoder, offset + cur_offset, depth
3132 )?;
3133
3134 _prev_end_offset = cur_offset + envelope_size;
3135 if 2 > max_ordinal {
3136 return Ok(());
3137 }
3138
3139 let cur_offset: usize = (2 - 1) * envelope_size;
3142
3143 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3145
3146 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<u8, 12>, D>(
3151 self.basic_rates.as_ref().map(
3152 <fidl::encoding::Vector<u8, 12> as fidl::encoding::ValueTypeMarker>::borrow,
3153 ),
3154 encoder,
3155 offset + cur_offset,
3156 depth,
3157 )?;
3158
3159 _prev_end_offset = cur_offset + envelope_size;
3160 if 3 > max_ordinal {
3161 return Ok(());
3162 }
3163
3164 let cur_offset: usize = (3 - 1) * envelope_size;
3167
3168 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3170
3171 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_ieee80211__common::HtCapabilities, D>(
3176 self.ht_caps.as_ref().map(<fidl_fuchsia_wlan_ieee80211__common::HtCapabilities as fidl::encoding::ValueTypeMarker>::borrow),
3177 encoder, offset + cur_offset, depth
3178 )?;
3179
3180 _prev_end_offset = cur_offset + envelope_size;
3181 if 4 > max_ordinal {
3182 return Ok(());
3183 }
3184
3185 let cur_offset: usize = (4 - 1) * envelope_size;
3188
3189 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3191
3192 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_ieee80211__common::VhtCapabilities, D>(
3197 self.vht_caps.as_ref().map(<fidl_fuchsia_wlan_ieee80211__common::VhtCapabilities as fidl::encoding::ValueTypeMarker>::borrow),
3198 encoder, offset + cur_offset, depth
3199 )?;
3200
3201 _prev_end_offset = cur_offset + envelope_size;
3202 if 5 > max_ordinal {
3203 return Ok(());
3204 }
3205
3206 let cur_offset: usize = (5 - 1) * envelope_size;
3209
3210 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3212
3213 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<u8, 256>, D>(
3218 self.operating_channels.as_ref().map(
3219 <fidl::encoding::Vector<u8, 256> as fidl::encoding::ValueTypeMarker>::borrow,
3220 ),
3221 encoder,
3222 offset + cur_offset,
3223 depth,
3224 )?;
3225
3226 _prev_end_offset = cur_offset + envelope_size;
3227
3228 Ok(())
3229 }
3230 }
3231
3232 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for BandCapability {
3233 #[inline(always)]
3234 fn new_empty() -> Self {
3235 Self::default()
3236 }
3237
3238 unsafe fn decode(
3239 &mut self,
3240 decoder: &mut fidl::encoding::Decoder<'_, D>,
3241 offset: usize,
3242 mut depth: fidl::encoding::Depth,
3243 ) -> fidl::Result<()> {
3244 decoder.debug_check_bounds::<Self>(offset);
3245 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
3246 None => return Err(fidl::Error::NotNullable),
3247 Some(len) => len,
3248 };
3249 if len == 0 {
3251 return Ok(());
3252 };
3253 depth.increment()?;
3254 let envelope_size = 8;
3255 let bytes_len = len * envelope_size;
3256 let offset = decoder.out_of_line_offset(bytes_len)?;
3257 let mut _next_ordinal_to_read = 0;
3259 let mut next_offset = offset;
3260 let end_offset = offset + bytes_len;
3261 _next_ordinal_to_read += 1;
3262 if next_offset >= end_offset {
3263 return Ok(());
3264 }
3265
3266 while _next_ordinal_to_read < 1 {
3268 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3269 _next_ordinal_to_read += 1;
3270 next_offset += envelope_size;
3271 }
3272
3273 let next_out_of_line = decoder.next_out_of_line();
3274 let handles_before = decoder.remaining_handles();
3275 if let Some((inlined, num_bytes, num_handles)) =
3276 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3277 {
3278 let member_inline_size = <fidl_fuchsia_wlan_ieee80211__common::WlanBand as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3279 if inlined != (member_inline_size <= 4) {
3280 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3281 }
3282 let inner_offset;
3283 let mut inner_depth = depth.clone();
3284 if inlined {
3285 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3286 inner_offset = next_offset;
3287 } else {
3288 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3289 inner_depth.increment()?;
3290 }
3291 let val_ref = self.band.get_or_insert_with(|| {
3292 fidl::new_empty!(fidl_fuchsia_wlan_ieee80211__common::WlanBand, D)
3293 });
3294 fidl::decode!(
3295 fidl_fuchsia_wlan_ieee80211__common::WlanBand,
3296 D,
3297 val_ref,
3298 decoder,
3299 inner_offset,
3300 inner_depth
3301 )?;
3302 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3303 {
3304 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3305 }
3306 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3307 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3308 }
3309 }
3310
3311 next_offset += envelope_size;
3312 _next_ordinal_to_read += 1;
3313 if next_offset >= end_offset {
3314 return Ok(());
3315 }
3316
3317 while _next_ordinal_to_read < 2 {
3319 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3320 _next_ordinal_to_read += 1;
3321 next_offset += envelope_size;
3322 }
3323
3324 let next_out_of_line = decoder.next_out_of_line();
3325 let handles_before = decoder.remaining_handles();
3326 if let Some((inlined, num_bytes, num_handles)) =
3327 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3328 {
3329 let member_inline_size =
3330 <fidl::encoding::Vector<u8, 12> as fidl::encoding::TypeMarker>::inline_size(
3331 decoder.context,
3332 );
3333 if inlined != (member_inline_size <= 4) {
3334 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3335 }
3336 let inner_offset;
3337 let mut inner_depth = depth.clone();
3338 if inlined {
3339 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3340 inner_offset = next_offset;
3341 } else {
3342 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3343 inner_depth.increment()?;
3344 }
3345 let val_ref = self
3346 .basic_rates
3347 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<u8, 12>, D));
3348 fidl::decode!(fidl::encoding::Vector<u8, 12>, D, val_ref, decoder, inner_offset, inner_depth)?;
3349 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3350 {
3351 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3352 }
3353 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3354 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3355 }
3356 }
3357
3358 next_offset += envelope_size;
3359 _next_ordinal_to_read += 1;
3360 if next_offset >= end_offset {
3361 return Ok(());
3362 }
3363
3364 while _next_ordinal_to_read < 3 {
3366 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3367 _next_ordinal_to_read += 1;
3368 next_offset += envelope_size;
3369 }
3370
3371 let next_out_of_line = decoder.next_out_of_line();
3372 let handles_before = decoder.remaining_handles();
3373 if let Some((inlined, num_bytes, num_handles)) =
3374 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3375 {
3376 let member_inline_size = <fidl_fuchsia_wlan_ieee80211__common::HtCapabilities as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3377 if inlined != (member_inline_size <= 4) {
3378 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3379 }
3380 let inner_offset;
3381 let mut inner_depth = depth.clone();
3382 if inlined {
3383 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3384 inner_offset = next_offset;
3385 } else {
3386 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3387 inner_depth.increment()?;
3388 }
3389 let val_ref = self.ht_caps.get_or_insert_with(|| {
3390 fidl::new_empty!(fidl_fuchsia_wlan_ieee80211__common::HtCapabilities, D)
3391 });
3392 fidl::decode!(
3393 fidl_fuchsia_wlan_ieee80211__common::HtCapabilities,
3394 D,
3395 val_ref,
3396 decoder,
3397 inner_offset,
3398 inner_depth
3399 )?;
3400 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3401 {
3402 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3403 }
3404 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3405 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3406 }
3407 }
3408
3409 next_offset += envelope_size;
3410 _next_ordinal_to_read += 1;
3411 if next_offset >= end_offset {
3412 return Ok(());
3413 }
3414
3415 while _next_ordinal_to_read < 4 {
3417 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3418 _next_ordinal_to_read += 1;
3419 next_offset += envelope_size;
3420 }
3421
3422 let next_out_of_line = decoder.next_out_of_line();
3423 let handles_before = decoder.remaining_handles();
3424 if let Some((inlined, num_bytes, num_handles)) =
3425 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3426 {
3427 let member_inline_size = <fidl_fuchsia_wlan_ieee80211__common::VhtCapabilities as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3428 if inlined != (member_inline_size <= 4) {
3429 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3430 }
3431 let inner_offset;
3432 let mut inner_depth = depth.clone();
3433 if inlined {
3434 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3435 inner_offset = next_offset;
3436 } else {
3437 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3438 inner_depth.increment()?;
3439 }
3440 let val_ref = self.vht_caps.get_or_insert_with(|| {
3441 fidl::new_empty!(fidl_fuchsia_wlan_ieee80211__common::VhtCapabilities, D)
3442 });
3443 fidl::decode!(
3444 fidl_fuchsia_wlan_ieee80211__common::VhtCapabilities,
3445 D,
3446 val_ref,
3447 decoder,
3448 inner_offset,
3449 inner_depth
3450 )?;
3451 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3452 {
3453 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3454 }
3455 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3456 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3457 }
3458 }
3459
3460 next_offset += envelope_size;
3461 _next_ordinal_to_read += 1;
3462 if next_offset >= end_offset {
3463 return Ok(());
3464 }
3465
3466 while _next_ordinal_to_read < 5 {
3468 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3469 _next_ordinal_to_read += 1;
3470 next_offset += envelope_size;
3471 }
3472
3473 let next_out_of_line = decoder.next_out_of_line();
3474 let handles_before = decoder.remaining_handles();
3475 if let Some((inlined, num_bytes, num_handles)) =
3476 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3477 {
3478 let member_inline_size =
3479 <fidl::encoding::Vector<u8, 256> as fidl::encoding::TypeMarker>::inline_size(
3480 decoder.context,
3481 );
3482 if inlined != (member_inline_size <= 4) {
3483 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3484 }
3485 let inner_offset;
3486 let mut inner_depth = depth.clone();
3487 if inlined {
3488 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3489 inner_offset = next_offset;
3490 } else {
3491 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3492 inner_depth.increment()?;
3493 }
3494 let val_ref = self
3495 .operating_channels
3496 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<u8, 256>, D));
3497 fidl::decode!(fidl::encoding::Vector<u8, 256>, D, val_ref, decoder, inner_offset, inner_depth)?;
3498 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3499 {
3500 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3501 }
3502 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3503 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3504 }
3505 }
3506
3507 next_offset += envelope_size;
3508
3509 while next_offset < end_offset {
3511 _next_ordinal_to_read += 1;
3512 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3513 next_offset += envelope_size;
3514 }
3515
3516 Ok(())
3517 }
3518 }
3519
3520 impl SaeFrame {
3521 #[inline(always)]
3522 fn max_ordinal_present(&self) -> u64 {
3523 if let Some(_) = self.sae_fields {
3524 return 4;
3525 }
3526 if let Some(_) = self.seq_num {
3527 return 3;
3528 }
3529 if let Some(_) = self.status_code {
3530 return 2;
3531 }
3532 if let Some(_) = self.peer_sta_address {
3533 return 1;
3534 }
3535 0
3536 }
3537 }
3538
3539 impl fidl::encoding::ValueTypeMarker for SaeFrame {
3540 type Borrowed<'a> = &'a Self;
3541 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3542 value
3543 }
3544 }
3545
3546 unsafe impl fidl::encoding::TypeMarker for SaeFrame {
3547 type Owned = Self;
3548
3549 #[inline(always)]
3550 fn inline_align(_context: fidl::encoding::Context) -> usize {
3551 8
3552 }
3553
3554 #[inline(always)]
3555 fn inline_size(_context: fidl::encoding::Context) -> usize {
3556 16
3557 }
3558 }
3559
3560 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<SaeFrame, D> for &SaeFrame {
3561 unsafe fn encode(
3562 self,
3563 encoder: &mut fidl::encoding::Encoder<'_, D>,
3564 offset: usize,
3565 mut depth: fidl::encoding::Depth,
3566 ) -> fidl::Result<()> {
3567 encoder.debug_check_bounds::<SaeFrame>(offset);
3568 let max_ordinal: u64 = self.max_ordinal_present();
3570 encoder.write_num(max_ordinal, offset);
3571 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
3572 if max_ordinal == 0 {
3574 return Ok(());
3575 }
3576 depth.increment()?;
3577 let envelope_size = 8;
3578 let bytes_len = max_ordinal as usize * envelope_size;
3579 #[allow(unused_variables)]
3580 let offset = encoder.out_of_line_offset(bytes_len);
3581 let mut _prev_end_offset: usize = 0;
3582 if 1 > max_ordinal {
3583 return Ok(());
3584 }
3585
3586 let cur_offset: usize = (1 - 1) * envelope_size;
3589
3590 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3592
3593 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
3598 self.peer_sta_address
3599 .as_ref()
3600 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
3601 encoder,
3602 offset + cur_offset,
3603 depth,
3604 )?;
3605
3606 _prev_end_offset = cur_offset + envelope_size;
3607 if 2 > max_ordinal {
3608 return Ok(());
3609 }
3610
3611 let cur_offset: usize = (2 - 1) * envelope_size;
3614
3615 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3617
3618 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_ieee80211__common::StatusCode, D>(
3623 self.status_code.as_ref().map(<fidl_fuchsia_wlan_ieee80211__common::StatusCode as fidl::encoding::ValueTypeMarker>::borrow),
3624 encoder, offset + cur_offset, depth
3625 )?;
3626
3627 _prev_end_offset = cur_offset + envelope_size;
3628 if 3 > max_ordinal {
3629 return Ok(());
3630 }
3631
3632 let cur_offset: usize = (3 - 1) * envelope_size;
3635
3636 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3638
3639 fidl::encoding::encode_in_envelope_optional::<u16, D>(
3644 self.seq_num.as_ref().map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
3645 encoder,
3646 offset + cur_offset,
3647 depth,
3648 )?;
3649
3650 _prev_end_offset = cur_offset + envelope_size;
3651 if 4 > max_ordinal {
3652 return Ok(());
3653 }
3654
3655 let cur_offset: usize = (4 - 1) * envelope_size;
3658
3659 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3661
3662 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<u8>, D>(
3667 self.sae_fields.as_ref().map(<fidl::encoding::UnboundedVector<u8> as fidl::encoding::ValueTypeMarker>::borrow),
3668 encoder, offset + cur_offset, depth
3669 )?;
3670
3671 _prev_end_offset = cur_offset + envelope_size;
3672
3673 Ok(())
3674 }
3675 }
3676
3677 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for SaeFrame {
3678 #[inline(always)]
3679 fn new_empty() -> Self {
3680 Self::default()
3681 }
3682
3683 unsafe fn decode(
3684 &mut self,
3685 decoder: &mut fidl::encoding::Decoder<'_, D>,
3686 offset: usize,
3687 mut depth: fidl::encoding::Depth,
3688 ) -> fidl::Result<()> {
3689 decoder.debug_check_bounds::<Self>(offset);
3690 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
3691 None => return Err(fidl::Error::NotNullable),
3692 Some(len) => len,
3693 };
3694 if len == 0 {
3696 return Ok(());
3697 };
3698 depth.increment()?;
3699 let envelope_size = 8;
3700 let bytes_len = len * envelope_size;
3701 let offset = decoder.out_of_line_offset(bytes_len)?;
3702 let mut _next_ordinal_to_read = 0;
3704 let mut next_offset = offset;
3705 let end_offset = offset + bytes_len;
3706 _next_ordinal_to_read += 1;
3707 if next_offset >= end_offset {
3708 return Ok(());
3709 }
3710
3711 while _next_ordinal_to_read < 1 {
3713 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3714 _next_ordinal_to_read += 1;
3715 next_offset += envelope_size;
3716 }
3717
3718 let next_out_of_line = decoder.next_out_of_line();
3719 let handles_before = decoder.remaining_handles();
3720 if let Some((inlined, num_bytes, num_handles)) =
3721 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3722 {
3723 let member_inline_size =
3724 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
3725 decoder.context,
3726 );
3727 if inlined != (member_inline_size <= 4) {
3728 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3729 }
3730 let inner_offset;
3731 let mut inner_depth = depth.clone();
3732 if inlined {
3733 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3734 inner_offset = next_offset;
3735 } else {
3736 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3737 inner_depth.increment()?;
3738 }
3739 let val_ref = self
3740 .peer_sta_address
3741 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
3742 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
3743 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3744 {
3745 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3746 }
3747 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3748 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3749 }
3750 }
3751
3752 next_offset += envelope_size;
3753 _next_ordinal_to_read += 1;
3754 if next_offset >= end_offset {
3755 return Ok(());
3756 }
3757
3758 while _next_ordinal_to_read < 2 {
3760 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3761 _next_ordinal_to_read += 1;
3762 next_offset += envelope_size;
3763 }
3764
3765 let next_out_of_line = decoder.next_out_of_line();
3766 let handles_before = decoder.remaining_handles();
3767 if let Some((inlined, num_bytes, num_handles)) =
3768 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3769 {
3770 let member_inline_size = <fidl_fuchsia_wlan_ieee80211__common::StatusCode as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3771 if inlined != (member_inline_size <= 4) {
3772 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3773 }
3774 let inner_offset;
3775 let mut inner_depth = depth.clone();
3776 if inlined {
3777 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3778 inner_offset = next_offset;
3779 } else {
3780 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3781 inner_depth.increment()?;
3782 }
3783 let val_ref = self.status_code.get_or_insert_with(|| {
3784 fidl::new_empty!(fidl_fuchsia_wlan_ieee80211__common::StatusCode, D)
3785 });
3786 fidl::decode!(
3787 fidl_fuchsia_wlan_ieee80211__common::StatusCode,
3788 D,
3789 val_ref,
3790 decoder,
3791 inner_offset,
3792 inner_depth
3793 )?;
3794 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3795 {
3796 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3797 }
3798 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3799 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3800 }
3801 }
3802
3803 next_offset += envelope_size;
3804 _next_ordinal_to_read += 1;
3805 if next_offset >= end_offset {
3806 return Ok(());
3807 }
3808
3809 while _next_ordinal_to_read < 3 {
3811 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3812 _next_ordinal_to_read += 1;
3813 next_offset += envelope_size;
3814 }
3815
3816 let next_out_of_line = decoder.next_out_of_line();
3817 let handles_before = decoder.remaining_handles();
3818 if let Some((inlined, num_bytes, num_handles)) =
3819 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3820 {
3821 let member_inline_size =
3822 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3823 if inlined != (member_inline_size <= 4) {
3824 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3825 }
3826 let inner_offset;
3827 let mut inner_depth = depth.clone();
3828 if inlined {
3829 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3830 inner_offset = next_offset;
3831 } else {
3832 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3833 inner_depth.increment()?;
3834 }
3835 let val_ref = self.seq_num.get_or_insert_with(|| fidl::new_empty!(u16, D));
3836 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
3837 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3838 {
3839 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3840 }
3841 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3842 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3843 }
3844 }
3845
3846 next_offset += envelope_size;
3847 _next_ordinal_to_read += 1;
3848 if next_offset >= end_offset {
3849 return Ok(());
3850 }
3851
3852 while _next_ordinal_to_read < 4 {
3854 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3855 _next_ordinal_to_read += 1;
3856 next_offset += envelope_size;
3857 }
3858
3859 let next_out_of_line = decoder.next_out_of_line();
3860 let handles_before = decoder.remaining_handles();
3861 if let Some((inlined, num_bytes, num_handles)) =
3862 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3863 {
3864 let member_inline_size = <fidl::encoding::UnboundedVector<u8> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3865 if inlined != (member_inline_size <= 4) {
3866 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3867 }
3868 let inner_offset;
3869 let mut inner_depth = depth.clone();
3870 if inlined {
3871 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3872 inner_offset = next_offset;
3873 } else {
3874 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3875 inner_depth.increment()?;
3876 }
3877 let val_ref = self.sae_fields.get_or_insert_with(|| {
3878 fidl::new_empty!(fidl::encoding::UnboundedVector<u8>, D)
3879 });
3880 fidl::decode!(
3881 fidl::encoding::UnboundedVector<u8>,
3882 D,
3883 val_ref,
3884 decoder,
3885 inner_offset,
3886 inner_depth
3887 )?;
3888 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3889 {
3890 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3891 }
3892 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3893 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3894 }
3895 }
3896
3897 next_offset += envelope_size;
3898
3899 while next_offset < end_offset {
3901 _next_ordinal_to_read += 1;
3902 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3903 next_offset += envelope_size;
3904 }
3905
3906 Ok(())
3907 }
3908 }
3909
3910 impl WlanFullmacImplAssocRespRequest {
3911 #[inline(always)]
3912 fn max_ordinal_present(&self) -> u64 {
3913 if let Some(_) = self.association_id {
3914 return 3;
3915 }
3916 if let Some(_) = self.result_code {
3917 return 2;
3918 }
3919 if let Some(_) = self.peer_sta_address {
3920 return 1;
3921 }
3922 0
3923 }
3924 }
3925
3926 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplAssocRespRequest {
3927 type Borrowed<'a> = &'a Self;
3928 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3929 value
3930 }
3931 }
3932
3933 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplAssocRespRequest {
3934 type Owned = Self;
3935
3936 #[inline(always)]
3937 fn inline_align(_context: fidl::encoding::Context) -> usize {
3938 8
3939 }
3940
3941 #[inline(always)]
3942 fn inline_size(_context: fidl::encoding::Context) -> usize {
3943 16
3944 }
3945 }
3946
3947 unsafe impl<D: fidl::encoding::ResourceDialect>
3948 fidl::encoding::Encode<WlanFullmacImplAssocRespRequest, D>
3949 for &WlanFullmacImplAssocRespRequest
3950 {
3951 unsafe fn encode(
3952 self,
3953 encoder: &mut fidl::encoding::Encoder<'_, D>,
3954 offset: usize,
3955 mut depth: fidl::encoding::Depth,
3956 ) -> fidl::Result<()> {
3957 encoder.debug_check_bounds::<WlanFullmacImplAssocRespRequest>(offset);
3958 let max_ordinal: u64 = self.max_ordinal_present();
3960 encoder.write_num(max_ordinal, offset);
3961 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
3962 if max_ordinal == 0 {
3964 return Ok(());
3965 }
3966 depth.increment()?;
3967 let envelope_size = 8;
3968 let bytes_len = max_ordinal as usize * envelope_size;
3969 #[allow(unused_variables)]
3970 let offset = encoder.out_of_line_offset(bytes_len);
3971 let mut _prev_end_offset: usize = 0;
3972 if 1 > max_ordinal {
3973 return Ok(());
3974 }
3975
3976 let cur_offset: usize = (1 - 1) * envelope_size;
3979
3980 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3982
3983 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
3988 self.peer_sta_address
3989 .as_ref()
3990 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
3991 encoder,
3992 offset + cur_offset,
3993 depth,
3994 )?;
3995
3996 _prev_end_offset = cur_offset + envelope_size;
3997 if 2 > max_ordinal {
3998 return Ok(());
3999 }
4000
4001 let cur_offset: usize = (2 - 1) * envelope_size;
4004
4005 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4007
4008 fidl::encoding::encode_in_envelope_optional::<WlanAssocResult, D>(
4013 self.result_code
4014 .as_ref()
4015 .map(<WlanAssocResult as fidl::encoding::ValueTypeMarker>::borrow),
4016 encoder,
4017 offset + cur_offset,
4018 depth,
4019 )?;
4020
4021 _prev_end_offset = cur_offset + envelope_size;
4022 if 3 > max_ordinal {
4023 return Ok(());
4024 }
4025
4026 let cur_offset: usize = (3 - 1) * envelope_size;
4029
4030 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4032
4033 fidl::encoding::encode_in_envelope_optional::<u16, D>(
4038 self.association_id.as_ref().map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
4039 encoder,
4040 offset + cur_offset,
4041 depth,
4042 )?;
4043
4044 _prev_end_offset = cur_offset + envelope_size;
4045
4046 Ok(())
4047 }
4048 }
4049
4050 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
4051 for WlanFullmacImplAssocRespRequest
4052 {
4053 #[inline(always)]
4054 fn new_empty() -> Self {
4055 Self::default()
4056 }
4057
4058 unsafe fn decode(
4059 &mut self,
4060 decoder: &mut fidl::encoding::Decoder<'_, D>,
4061 offset: usize,
4062 mut depth: fidl::encoding::Depth,
4063 ) -> fidl::Result<()> {
4064 decoder.debug_check_bounds::<Self>(offset);
4065 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
4066 None => return Err(fidl::Error::NotNullable),
4067 Some(len) => len,
4068 };
4069 if len == 0 {
4071 return Ok(());
4072 };
4073 depth.increment()?;
4074 let envelope_size = 8;
4075 let bytes_len = len * envelope_size;
4076 let offset = decoder.out_of_line_offset(bytes_len)?;
4077 let mut _next_ordinal_to_read = 0;
4079 let mut next_offset = offset;
4080 let end_offset = offset + bytes_len;
4081 _next_ordinal_to_read += 1;
4082 if next_offset >= end_offset {
4083 return Ok(());
4084 }
4085
4086 while _next_ordinal_to_read < 1 {
4088 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4089 _next_ordinal_to_read += 1;
4090 next_offset += envelope_size;
4091 }
4092
4093 let next_out_of_line = decoder.next_out_of_line();
4094 let handles_before = decoder.remaining_handles();
4095 if let Some((inlined, num_bytes, num_handles)) =
4096 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4097 {
4098 let member_inline_size =
4099 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
4100 decoder.context,
4101 );
4102 if inlined != (member_inline_size <= 4) {
4103 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4104 }
4105 let inner_offset;
4106 let mut inner_depth = depth.clone();
4107 if inlined {
4108 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4109 inner_offset = next_offset;
4110 } else {
4111 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4112 inner_depth.increment()?;
4113 }
4114 let val_ref = self
4115 .peer_sta_address
4116 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
4117 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
4118 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4119 {
4120 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4121 }
4122 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4123 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4124 }
4125 }
4126
4127 next_offset += envelope_size;
4128 _next_ordinal_to_read += 1;
4129 if next_offset >= end_offset {
4130 return Ok(());
4131 }
4132
4133 while _next_ordinal_to_read < 2 {
4135 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4136 _next_ordinal_to_read += 1;
4137 next_offset += envelope_size;
4138 }
4139
4140 let next_out_of_line = decoder.next_out_of_line();
4141 let handles_before = decoder.remaining_handles();
4142 if let Some((inlined, num_bytes, num_handles)) =
4143 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4144 {
4145 let member_inline_size =
4146 <WlanAssocResult as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4147 if inlined != (member_inline_size <= 4) {
4148 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4149 }
4150 let inner_offset;
4151 let mut inner_depth = depth.clone();
4152 if inlined {
4153 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4154 inner_offset = next_offset;
4155 } else {
4156 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4157 inner_depth.increment()?;
4158 }
4159 let val_ref =
4160 self.result_code.get_or_insert_with(|| fidl::new_empty!(WlanAssocResult, D));
4161 fidl::decode!(WlanAssocResult, D, val_ref, decoder, inner_offset, inner_depth)?;
4162 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4163 {
4164 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4165 }
4166 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4167 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4168 }
4169 }
4170
4171 next_offset += envelope_size;
4172 _next_ordinal_to_read += 1;
4173 if next_offset >= end_offset {
4174 return Ok(());
4175 }
4176
4177 while _next_ordinal_to_read < 3 {
4179 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4180 _next_ordinal_to_read += 1;
4181 next_offset += envelope_size;
4182 }
4183
4184 let next_out_of_line = decoder.next_out_of_line();
4185 let handles_before = decoder.remaining_handles();
4186 if let Some((inlined, num_bytes, num_handles)) =
4187 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4188 {
4189 let member_inline_size =
4190 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4191 if inlined != (member_inline_size <= 4) {
4192 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4193 }
4194 let inner_offset;
4195 let mut inner_depth = depth.clone();
4196 if inlined {
4197 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4198 inner_offset = next_offset;
4199 } else {
4200 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4201 inner_depth.increment()?;
4202 }
4203 let val_ref = self.association_id.get_or_insert_with(|| fidl::new_empty!(u16, D));
4204 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
4205 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4206 {
4207 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4208 }
4209 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4210 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4211 }
4212 }
4213
4214 next_offset += envelope_size;
4215
4216 while next_offset < end_offset {
4218 _next_ordinal_to_read += 1;
4219 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4220 next_offset += envelope_size;
4221 }
4222
4223 Ok(())
4224 }
4225 }
4226
4227 impl WlanFullmacImplAuthRespRequest {
4228 #[inline(always)]
4229 fn max_ordinal_present(&self) -> u64 {
4230 if let Some(_) = self.result_code {
4231 return 2;
4232 }
4233 if let Some(_) = self.peer_sta_address {
4234 return 1;
4235 }
4236 0
4237 }
4238 }
4239
4240 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplAuthRespRequest {
4241 type Borrowed<'a> = &'a Self;
4242 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4243 value
4244 }
4245 }
4246
4247 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplAuthRespRequest {
4248 type Owned = Self;
4249
4250 #[inline(always)]
4251 fn inline_align(_context: fidl::encoding::Context) -> usize {
4252 8
4253 }
4254
4255 #[inline(always)]
4256 fn inline_size(_context: fidl::encoding::Context) -> usize {
4257 16
4258 }
4259 }
4260
4261 unsafe impl<D: fidl::encoding::ResourceDialect>
4262 fidl::encoding::Encode<WlanFullmacImplAuthRespRequest, D>
4263 for &WlanFullmacImplAuthRespRequest
4264 {
4265 unsafe fn encode(
4266 self,
4267 encoder: &mut fidl::encoding::Encoder<'_, D>,
4268 offset: usize,
4269 mut depth: fidl::encoding::Depth,
4270 ) -> fidl::Result<()> {
4271 encoder.debug_check_bounds::<WlanFullmacImplAuthRespRequest>(offset);
4272 let max_ordinal: u64 = self.max_ordinal_present();
4274 encoder.write_num(max_ordinal, offset);
4275 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
4276 if max_ordinal == 0 {
4278 return Ok(());
4279 }
4280 depth.increment()?;
4281 let envelope_size = 8;
4282 let bytes_len = max_ordinal as usize * envelope_size;
4283 #[allow(unused_variables)]
4284 let offset = encoder.out_of_line_offset(bytes_len);
4285 let mut _prev_end_offset: usize = 0;
4286 if 1 > max_ordinal {
4287 return Ok(());
4288 }
4289
4290 let cur_offset: usize = (1 - 1) * envelope_size;
4293
4294 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4296
4297 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
4302 self.peer_sta_address
4303 .as_ref()
4304 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
4305 encoder,
4306 offset + cur_offset,
4307 depth,
4308 )?;
4309
4310 _prev_end_offset = cur_offset + envelope_size;
4311 if 2 > max_ordinal {
4312 return Ok(());
4313 }
4314
4315 let cur_offset: usize = (2 - 1) * envelope_size;
4318
4319 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4321
4322 fidl::encoding::encode_in_envelope_optional::<WlanAuthResult, D>(
4327 self.result_code
4328 .as_ref()
4329 .map(<WlanAuthResult as fidl::encoding::ValueTypeMarker>::borrow),
4330 encoder,
4331 offset + cur_offset,
4332 depth,
4333 )?;
4334
4335 _prev_end_offset = cur_offset + envelope_size;
4336
4337 Ok(())
4338 }
4339 }
4340
4341 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
4342 for WlanFullmacImplAuthRespRequest
4343 {
4344 #[inline(always)]
4345 fn new_empty() -> Self {
4346 Self::default()
4347 }
4348
4349 unsafe fn decode(
4350 &mut self,
4351 decoder: &mut fidl::encoding::Decoder<'_, D>,
4352 offset: usize,
4353 mut depth: fidl::encoding::Depth,
4354 ) -> fidl::Result<()> {
4355 decoder.debug_check_bounds::<Self>(offset);
4356 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
4357 None => return Err(fidl::Error::NotNullable),
4358 Some(len) => len,
4359 };
4360 if len == 0 {
4362 return Ok(());
4363 };
4364 depth.increment()?;
4365 let envelope_size = 8;
4366 let bytes_len = len * envelope_size;
4367 let offset = decoder.out_of_line_offset(bytes_len)?;
4368 let mut _next_ordinal_to_read = 0;
4370 let mut next_offset = offset;
4371 let end_offset = offset + bytes_len;
4372 _next_ordinal_to_read += 1;
4373 if next_offset >= end_offset {
4374 return Ok(());
4375 }
4376
4377 while _next_ordinal_to_read < 1 {
4379 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4380 _next_ordinal_to_read += 1;
4381 next_offset += envelope_size;
4382 }
4383
4384 let next_out_of_line = decoder.next_out_of_line();
4385 let handles_before = decoder.remaining_handles();
4386 if let Some((inlined, num_bytes, num_handles)) =
4387 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4388 {
4389 let member_inline_size =
4390 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
4391 decoder.context,
4392 );
4393 if inlined != (member_inline_size <= 4) {
4394 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4395 }
4396 let inner_offset;
4397 let mut inner_depth = depth.clone();
4398 if inlined {
4399 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4400 inner_offset = next_offset;
4401 } else {
4402 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4403 inner_depth.increment()?;
4404 }
4405 let val_ref = self
4406 .peer_sta_address
4407 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
4408 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
4409 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4410 {
4411 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4412 }
4413 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4414 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4415 }
4416 }
4417
4418 next_offset += envelope_size;
4419 _next_ordinal_to_read += 1;
4420 if next_offset >= end_offset {
4421 return Ok(());
4422 }
4423
4424 while _next_ordinal_to_read < 2 {
4426 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4427 _next_ordinal_to_read += 1;
4428 next_offset += envelope_size;
4429 }
4430
4431 let next_out_of_line = decoder.next_out_of_line();
4432 let handles_before = decoder.remaining_handles();
4433 if let Some((inlined, num_bytes, num_handles)) =
4434 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4435 {
4436 let member_inline_size =
4437 <WlanAuthResult as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4438 if inlined != (member_inline_size <= 4) {
4439 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4440 }
4441 let inner_offset;
4442 let mut inner_depth = depth.clone();
4443 if inlined {
4444 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4445 inner_offset = next_offset;
4446 } else {
4447 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4448 inner_depth.increment()?;
4449 }
4450 let val_ref =
4451 self.result_code.get_or_insert_with(|| fidl::new_empty!(WlanAuthResult, D));
4452 fidl::decode!(WlanAuthResult, D, val_ref, decoder, inner_offset, inner_depth)?;
4453 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4454 {
4455 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4456 }
4457 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4458 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4459 }
4460 }
4461
4462 next_offset += envelope_size;
4463
4464 while next_offset < end_offset {
4466 _next_ordinal_to_read += 1;
4467 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4468 next_offset += envelope_size;
4469 }
4470
4471 Ok(())
4472 }
4473 }
4474
4475 impl WlanFullmacImplConnectRequest {
4476 #[inline(always)]
4477 fn max_ordinal_present(&self) -> u64 {
4478 if let Some(_) = self.owe_public_key {
4479 return 8;
4480 }
4481 if let Some(_) = self.wep_key_desc {
4482 return 7;
4483 }
4484 if let Some(_) = self.security_ie {
4485 return 6;
4486 }
4487 if let Some(_) = self.wep_key {
4488 return 5;
4489 }
4490 if let Some(_) = self.sae_password {
4491 return 4;
4492 }
4493 if let Some(_) = self.auth_type {
4494 return 3;
4495 }
4496 if let Some(_) = self.connect_failure_timeout {
4497 return 2;
4498 }
4499 if let Some(_) = self.selected_bss {
4500 return 1;
4501 }
4502 0
4503 }
4504 }
4505
4506 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplConnectRequest {
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 WlanFullmacImplConnectRequest {
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<WlanFullmacImplConnectRequest, D>
4529 for &WlanFullmacImplConnectRequest
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::<WlanFullmacImplConnectRequest>(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_fuchsia_wlan_common__common::BssDescription, D>(
4568 self.selected_bss.as_ref().map(<fidl_fuchsia_wlan_common__common::BssDescription as fidl::encoding::ValueTypeMarker>::borrow),
4569 encoder, offset + cur_offset, depth
4570 )?;
4571
4572 _prev_end_offset = cur_offset + envelope_size;
4573 if 2 > max_ordinal {
4574 return Ok(());
4575 }
4576
4577 let cur_offset: usize = (2 - 1) * envelope_size;
4580
4581 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4583
4584 fidl::encoding::encode_in_envelope_optional::<u32, D>(
4589 self.connect_failure_timeout
4590 .as_ref()
4591 .map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
4592 encoder,
4593 offset + cur_offset,
4594 depth,
4595 )?;
4596
4597 _prev_end_offset = cur_offset + envelope_size;
4598 if 3 > max_ordinal {
4599 return Ok(());
4600 }
4601
4602 let cur_offset: usize = (3 - 1) * envelope_size;
4605
4606 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4608
4609 fidl::encoding::encode_in_envelope_optional::<WlanAuthType, D>(
4614 self.auth_type
4615 .as_ref()
4616 .map(<WlanAuthType as fidl::encoding::ValueTypeMarker>::borrow),
4617 encoder,
4618 offset + cur_offset,
4619 depth,
4620 )?;
4621
4622 _prev_end_offset = cur_offset + envelope_size;
4623 if 4 > max_ordinal {
4624 return Ok(());
4625 }
4626
4627 let cur_offset: usize = (4 - 1) * envelope_size;
4630
4631 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4633
4634 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<u8>, D>(
4639 self.sae_password.as_ref().map(<fidl::encoding::UnboundedVector<u8> as fidl::encoding::ValueTypeMarker>::borrow),
4640 encoder, offset + cur_offset, depth
4641 )?;
4642
4643 _prev_end_offset = cur_offset + envelope_size;
4644 if 5 > max_ordinal {
4645 return Ok(());
4646 }
4647
4648 let cur_offset: usize = (5 - 1) * envelope_size;
4651
4652 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4654
4655 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_common__common::WlanKeyConfig, D>(
4660 self.wep_key.as_ref().map(<fidl_fuchsia_wlan_common__common::WlanKeyConfig as fidl::encoding::ValueTypeMarker>::borrow),
4661 encoder, offset + cur_offset, depth
4662 )?;
4663
4664 _prev_end_offset = cur_offset + envelope_size;
4665 if 6 > max_ordinal {
4666 return Ok(());
4667 }
4668
4669 let cur_offset: usize = (6 - 1) * envelope_size;
4672
4673 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4675
4676 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<u8, 257>, D>(
4681 self.security_ie.as_ref().map(
4682 <fidl::encoding::Vector<u8, 257> as fidl::encoding::ValueTypeMarker>::borrow,
4683 ),
4684 encoder,
4685 offset + cur_offset,
4686 depth,
4687 )?;
4688
4689 _prev_end_offset = cur_offset + envelope_size;
4690 if 7 > max_ordinal {
4691 return Ok(());
4692 }
4693
4694 let cur_offset: usize = (7 - 1) * envelope_size;
4697
4698 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4700
4701 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_ieee80211__common::SetKeyDescriptor, D>(
4706 self.wep_key_desc.as_ref().map(<fidl_fuchsia_wlan_ieee80211__common::SetKeyDescriptor as fidl::encoding::ValueTypeMarker>::borrow),
4707 encoder, offset + cur_offset, depth
4708 )?;
4709
4710 _prev_end_offset = cur_offset + envelope_size;
4711 if 8 > max_ordinal {
4712 return Ok(());
4713 }
4714
4715 let cur_offset: usize = (8 - 1) * envelope_size;
4718
4719 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4721
4722 fidl::encoding::encode_in_envelope_optional::<WlanFullmacOwePublicKey, D>(
4727 self.owe_public_key
4728 .as_ref()
4729 .map(<WlanFullmacOwePublicKey as fidl::encoding::ValueTypeMarker>::borrow),
4730 encoder,
4731 offset + cur_offset,
4732 depth,
4733 )?;
4734
4735 _prev_end_offset = cur_offset + envelope_size;
4736
4737 Ok(())
4738 }
4739 }
4740
4741 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
4742 for WlanFullmacImplConnectRequest
4743 {
4744 #[inline(always)]
4745 fn new_empty() -> Self {
4746 Self::default()
4747 }
4748
4749 unsafe fn decode(
4750 &mut self,
4751 decoder: &mut fidl::encoding::Decoder<'_, D>,
4752 offset: usize,
4753 mut depth: fidl::encoding::Depth,
4754 ) -> fidl::Result<()> {
4755 decoder.debug_check_bounds::<Self>(offset);
4756 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
4757 None => return Err(fidl::Error::NotNullable),
4758 Some(len) => len,
4759 };
4760 if len == 0 {
4762 return Ok(());
4763 };
4764 depth.increment()?;
4765 let envelope_size = 8;
4766 let bytes_len = len * envelope_size;
4767 let offset = decoder.out_of_line_offset(bytes_len)?;
4768 let mut _next_ordinal_to_read = 0;
4770 let mut next_offset = offset;
4771 let end_offset = offset + bytes_len;
4772 _next_ordinal_to_read += 1;
4773 if next_offset >= end_offset {
4774 return Ok(());
4775 }
4776
4777 while _next_ordinal_to_read < 1 {
4779 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4780 _next_ordinal_to_read += 1;
4781 next_offset += envelope_size;
4782 }
4783
4784 let next_out_of_line = decoder.next_out_of_line();
4785 let handles_before = decoder.remaining_handles();
4786 if let Some((inlined, num_bytes, num_handles)) =
4787 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4788 {
4789 let member_inline_size = <fidl_fuchsia_wlan_common__common::BssDescription as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4790 if inlined != (member_inline_size <= 4) {
4791 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4792 }
4793 let inner_offset;
4794 let mut inner_depth = depth.clone();
4795 if inlined {
4796 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4797 inner_offset = next_offset;
4798 } else {
4799 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4800 inner_depth.increment()?;
4801 }
4802 let val_ref = self.selected_bss.get_or_insert_with(|| {
4803 fidl::new_empty!(fidl_fuchsia_wlan_common__common::BssDescription, D)
4804 });
4805 fidl::decode!(
4806 fidl_fuchsia_wlan_common__common::BssDescription,
4807 D,
4808 val_ref,
4809 decoder,
4810 inner_offset,
4811 inner_depth
4812 )?;
4813 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4814 {
4815 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4816 }
4817 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4818 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4819 }
4820 }
4821
4822 next_offset += envelope_size;
4823 _next_ordinal_to_read += 1;
4824 if next_offset >= end_offset {
4825 return Ok(());
4826 }
4827
4828 while _next_ordinal_to_read < 2 {
4830 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4831 _next_ordinal_to_read += 1;
4832 next_offset += envelope_size;
4833 }
4834
4835 let next_out_of_line = decoder.next_out_of_line();
4836 let handles_before = decoder.remaining_handles();
4837 if let Some((inlined, num_bytes, num_handles)) =
4838 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4839 {
4840 let member_inline_size =
4841 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4842 if inlined != (member_inline_size <= 4) {
4843 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4844 }
4845 let inner_offset;
4846 let mut inner_depth = depth.clone();
4847 if inlined {
4848 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4849 inner_offset = next_offset;
4850 } else {
4851 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4852 inner_depth.increment()?;
4853 }
4854 let val_ref =
4855 self.connect_failure_timeout.get_or_insert_with(|| fidl::new_empty!(u32, D));
4856 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
4857 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4858 {
4859 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4860 }
4861 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4862 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4863 }
4864 }
4865
4866 next_offset += envelope_size;
4867 _next_ordinal_to_read += 1;
4868 if next_offset >= end_offset {
4869 return Ok(());
4870 }
4871
4872 while _next_ordinal_to_read < 3 {
4874 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4875 _next_ordinal_to_read += 1;
4876 next_offset += envelope_size;
4877 }
4878
4879 let next_out_of_line = decoder.next_out_of_line();
4880 let handles_before = decoder.remaining_handles();
4881 if let Some((inlined, num_bytes, num_handles)) =
4882 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4883 {
4884 let member_inline_size =
4885 <WlanAuthType as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4886 if inlined != (member_inline_size <= 4) {
4887 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4888 }
4889 let inner_offset;
4890 let mut inner_depth = depth.clone();
4891 if inlined {
4892 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4893 inner_offset = next_offset;
4894 } else {
4895 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4896 inner_depth.increment()?;
4897 }
4898 let val_ref =
4899 self.auth_type.get_or_insert_with(|| fidl::new_empty!(WlanAuthType, D));
4900 fidl::decode!(WlanAuthType, D, val_ref, decoder, inner_offset, inner_depth)?;
4901 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4902 {
4903 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4904 }
4905 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4906 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4907 }
4908 }
4909
4910 next_offset += envelope_size;
4911 _next_ordinal_to_read += 1;
4912 if next_offset >= end_offset {
4913 return Ok(());
4914 }
4915
4916 while _next_ordinal_to_read < 4 {
4918 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4919 _next_ordinal_to_read += 1;
4920 next_offset += envelope_size;
4921 }
4922
4923 let next_out_of_line = decoder.next_out_of_line();
4924 let handles_before = decoder.remaining_handles();
4925 if let Some((inlined, num_bytes, num_handles)) =
4926 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4927 {
4928 let member_inline_size = <fidl::encoding::UnboundedVector<u8> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4929 if inlined != (member_inline_size <= 4) {
4930 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4931 }
4932 let inner_offset;
4933 let mut inner_depth = depth.clone();
4934 if inlined {
4935 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4936 inner_offset = next_offset;
4937 } else {
4938 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4939 inner_depth.increment()?;
4940 }
4941 let val_ref = self.sae_password.get_or_insert_with(|| {
4942 fidl::new_empty!(fidl::encoding::UnboundedVector<u8>, D)
4943 });
4944 fidl::decode!(
4945 fidl::encoding::UnboundedVector<u8>,
4946 D,
4947 val_ref,
4948 decoder,
4949 inner_offset,
4950 inner_depth
4951 )?;
4952 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4953 {
4954 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4955 }
4956 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4957 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4958 }
4959 }
4960
4961 next_offset += envelope_size;
4962 _next_ordinal_to_read += 1;
4963 if next_offset >= end_offset {
4964 return Ok(());
4965 }
4966
4967 while _next_ordinal_to_read < 5 {
4969 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4970 _next_ordinal_to_read += 1;
4971 next_offset += envelope_size;
4972 }
4973
4974 let next_out_of_line = decoder.next_out_of_line();
4975 let handles_before = decoder.remaining_handles();
4976 if let Some((inlined, num_bytes, num_handles)) =
4977 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4978 {
4979 let member_inline_size = <fidl_fuchsia_wlan_common__common::WlanKeyConfig as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4980 if inlined != (member_inline_size <= 4) {
4981 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4982 }
4983 let inner_offset;
4984 let mut inner_depth = depth.clone();
4985 if inlined {
4986 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4987 inner_offset = next_offset;
4988 } else {
4989 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4990 inner_depth.increment()?;
4991 }
4992 let val_ref = self.wep_key.get_or_insert_with(|| {
4993 fidl::new_empty!(fidl_fuchsia_wlan_common__common::WlanKeyConfig, D)
4994 });
4995 fidl::decode!(
4996 fidl_fuchsia_wlan_common__common::WlanKeyConfig,
4997 D,
4998 val_ref,
4999 decoder,
5000 inner_offset,
5001 inner_depth
5002 )?;
5003 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5004 {
5005 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5006 }
5007 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5008 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5009 }
5010 }
5011
5012 next_offset += envelope_size;
5013 _next_ordinal_to_read += 1;
5014 if next_offset >= end_offset {
5015 return Ok(());
5016 }
5017
5018 while _next_ordinal_to_read < 6 {
5020 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5021 _next_ordinal_to_read += 1;
5022 next_offset += envelope_size;
5023 }
5024
5025 let next_out_of_line = decoder.next_out_of_line();
5026 let handles_before = decoder.remaining_handles();
5027 if let Some((inlined, num_bytes, num_handles)) =
5028 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5029 {
5030 let member_inline_size =
5031 <fidl::encoding::Vector<u8, 257> as fidl::encoding::TypeMarker>::inline_size(
5032 decoder.context,
5033 );
5034 if inlined != (member_inline_size <= 4) {
5035 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5036 }
5037 let inner_offset;
5038 let mut inner_depth = depth.clone();
5039 if inlined {
5040 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5041 inner_offset = next_offset;
5042 } else {
5043 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5044 inner_depth.increment()?;
5045 }
5046 let val_ref = self
5047 .security_ie
5048 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<u8, 257>, D));
5049 fidl::decode!(fidl::encoding::Vector<u8, 257>, D, val_ref, decoder, inner_offset, inner_depth)?;
5050 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5051 {
5052 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5053 }
5054 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5055 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5056 }
5057 }
5058
5059 next_offset += envelope_size;
5060 _next_ordinal_to_read += 1;
5061 if next_offset >= end_offset {
5062 return Ok(());
5063 }
5064
5065 while _next_ordinal_to_read < 7 {
5067 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5068 _next_ordinal_to_read += 1;
5069 next_offset += envelope_size;
5070 }
5071
5072 let next_out_of_line = decoder.next_out_of_line();
5073 let handles_before = decoder.remaining_handles();
5074 if let Some((inlined, num_bytes, num_handles)) =
5075 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5076 {
5077 let member_inline_size = <fidl_fuchsia_wlan_ieee80211__common::SetKeyDescriptor as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5078 if inlined != (member_inline_size <= 4) {
5079 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5080 }
5081 let inner_offset;
5082 let mut inner_depth = depth.clone();
5083 if inlined {
5084 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5085 inner_offset = next_offset;
5086 } else {
5087 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5088 inner_depth.increment()?;
5089 }
5090 let val_ref = self.wep_key_desc.get_or_insert_with(|| {
5091 fidl::new_empty!(fidl_fuchsia_wlan_ieee80211__common::SetKeyDescriptor, D)
5092 });
5093 fidl::decode!(
5094 fidl_fuchsia_wlan_ieee80211__common::SetKeyDescriptor,
5095 D,
5096 val_ref,
5097 decoder,
5098 inner_offset,
5099 inner_depth
5100 )?;
5101 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5102 {
5103 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5104 }
5105 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5106 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5107 }
5108 }
5109
5110 next_offset += envelope_size;
5111 _next_ordinal_to_read += 1;
5112 if next_offset >= end_offset {
5113 return Ok(());
5114 }
5115
5116 while _next_ordinal_to_read < 8 {
5118 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5119 _next_ordinal_to_read += 1;
5120 next_offset += envelope_size;
5121 }
5122
5123 let next_out_of_line = decoder.next_out_of_line();
5124 let handles_before = decoder.remaining_handles();
5125 if let Some((inlined, num_bytes, num_handles)) =
5126 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5127 {
5128 let member_inline_size =
5129 <WlanFullmacOwePublicKey as fidl::encoding::TypeMarker>::inline_size(
5130 decoder.context,
5131 );
5132 if inlined != (member_inline_size <= 4) {
5133 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5134 }
5135 let inner_offset;
5136 let mut inner_depth = depth.clone();
5137 if inlined {
5138 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5139 inner_offset = next_offset;
5140 } else {
5141 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5142 inner_depth.increment()?;
5143 }
5144 let val_ref = self
5145 .owe_public_key
5146 .get_or_insert_with(|| fidl::new_empty!(WlanFullmacOwePublicKey, D));
5147 fidl::decode!(
5148 WlanFullmacOwePublicKey,
5149 D,
5150 val_ref,
5151 decoder,
5152 inner_offset,
5153 inner_depth
5154 )?;
5155 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5156 {
5157 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5158 }
5159 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5160 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5161 }
5162 }
5163
5164 next_offset += envelope_size;
5165
5166 while next_offset < end_offset {
5168 _next_ordinal_to_read += 1;
5169 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5170 next_offset += envelope_size;
5171 }
5172
5173 Ok(())
5174 }
5175 }
5176
5177 impl WlanFullmacImplDeauthRequest {
5178 #[inline(always)]
5179 fn max_ordinal_present(&self) -> u64 {
5180 if let Some(_) = self.reason_code {
5181 return 2;
5182 }
5183 if let Some(_) = self.peer_sta_address {
5184 return 1;
5185 }
5186 0
5187 }
5188 }
5189
5190 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplDeauthRequest {
5191 type Borrowed<'a> = &'a Self;
5192 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
5193 value
5194 }
5195 }
5196
5197 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplDeauthRequest {
5198 type Owned = Self;
5199
5200 #[inline(always)]
5201 fn inline_align(_context: fidl::encoding::Context) -> usize {
5202 8
5203 }
5204
5205 #[inline(always)]
5206 fn inline_size(_context: fidl::encoding::Context) -> usize {
5207 16
5208 }
5209 }
5210
5211 unsafe impl<D: fidl::encoding::ResourceDialect>
5212 fidl::encoding::Encode<WlanFullmacImplDeauthRequest, D> for &WlanFullmacImplDeauthRequest
5213 {
5214 unsafe fn encode(
5215 self,
5216 encoder: &mut fidl::encoding::Encoder<'_, D>,
5217 offset: usize,
5218 mut depth: fidl::encoding::Depth,
5219 ) -> fidl::Result<()> {
5220 encoder.debug_check_bounds::<WlanFullmacImplDeauthRequest>(offset);
5221 let max_ordinal: u64 = self.max_ordinal_present();
5223 encoder.write_num(max_ordinal, offset);
5224 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
5225 if max_ordinal == 0 {
5227 return Ok(());
5228 }
5229 depth.increment()?;
5230 let envelope_size = 8;
5231 let bytes_len = max_ordinal as usize * envelope_size;
5232 #[allow(unused_variables)]
5233 let offset = encoder.out_of_line_offset(bytes_len);
5234 let mut _prev_end_offset: usize = 0;
5235 if 1 > max_ordinal {
5236 return Ok(());
5237 }
5238
5239 let cur_offset: usize = (1 - 1) * envelope_size;
5242
5243 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5245
5246 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
5251 self.peer_sta_address
5252 .as_ref()
5253 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
5254 encoder,
5255 offset + cur_offset,
5256 depth,
5257 )?;
5258
5259 _prev_end_offset = cur_offset + envelope_size;
5260 if 2 > max_ordinal {
5261 return Ok(());
5262 }
5263
5264 let cur_offset: usize = (2 - 1) * envelope_size;
5267
5268 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5270
5271 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_ieee80211__common::ReasonCode, D>(
5276 self.reason_code.as_ref().map(<fidl_fuchsia_wlan_ieee80211__common::ReasonCode as fidl::encoding::ValueTypeMarker>::borrow),
5277 encoder, offset + cur_offset, depth
5278 )?;
5279
5280 _prev_end_offset = cur_offset + envelope_size;
5281
5282 Ok(())
5283 }
5284 }
5285
5286 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
5287 for WlanFullmacImplDeauthRequest
5288 {
5289 #[inline(always)]
5290 fn new_empty() -> Self {
5291 Self::default()
5292 }
5293
5294 unsafe fn decode(
5295 &mut self,
5296 decoder: &mut fidl::encoding::Decoder<'_, D>,
5297 offset: usize,
5298 mut depth: fidl::encoding::Depth,
5299 ) -> fidl::Result<()> {
5300 decoder.debug_check_bounds::<Self>(offset);
5301 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
5302 None => return Err(fidl::Error::NotNullable),
5303 Some(len) => len,
5304 };
5305 if len == 0 {
5307 return Ok(());
5308 };
5309 depth.increment()?;
5310 let envelope_size = 8;
5311 let bytes_len = len * envelope_size;
5312 let offset = decoder.out_of_line_offset(bytes_len)?;
5313 let mut _next_ordinal_to_read = 0;
5315 let mut next_offset = offset;
5316 let end_offset = offset + bytes_len;
5317 _next_ordinal_to_read += 1;
5318 if next_offset >= end_offset {
5319 return Ok(());
5320 }
5321
5322 while _next_ordinal_to_read < 1 {
5324 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5325 _next_ordinal_to_read += 1;
5326 next_offset += envelope_size;
5327 }
5328
5329 let next_out_of_line = decoder.next_out_of_line();
5330 let handles_before = decoder.remaining_handles();
5331 if let Some((inlined, num_bytes, num_handles)) =
5332 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5333 {
5334 let member_inline_size =
5335 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
5336 decoder.context,
5337 );
5338 if inlined != (member_inline_size <= 4) {
5339 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5340 }
5341 let inner_offset;
5342 let mut inner_depth = depth.clone();
5343 if inlined {
5344 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5345 inner_offset = next_offset;
5346 } else {
5347 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5348 inner_depth.increment()?;
5349 }
5350 let val_ref = self
5351 .peer_sta_address
5352 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
5353 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
5354 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5355 {
5356 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5357 }
5358 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5359 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5360 }
5361 }
5362
5363 next_offset += envelope_size;
5364 _next_ordinal_to_read += 1;
5365 if next_offset >= end_offset {
5366 return Ok(());
5367 }
5368
5369 while _next_ordinal_to_read < 2 {
5371 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5372 _next_ordinal_to_read += 1;
5373 next_offset += envelope_size;
5374 }
5375
5376 let next_out_of_line = decoder.next_out_of_line();
5377 let handles_before = decoder.remaining_handles();
5378 if let Some((inlined, num_bytes, num_handles)) =
5379 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5380 {
5381 let member_inline_size = <fidl_fuchsia_wlan_ieee80211__common::ReasonCode as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5382 if inlined != (member_inline_size <= 4) {
5383 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5384 }
5385 let inner_offset;
5386 let mut inner_depth = depth.clone();
5387 if inlined {
5388 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5389 inner_offset = next_offset;
5390 } else {
5391 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5392 inner_depth.increment()?;
5393 }
5394 let val_ref = self.reason_code.get_or_insert_with(|| {
5395 fidl::new_empty!(fidl_fuchsia_wlan_ieee80211__common::ReasonCode, D)
5396 });
5397 fidl::decode!(
5398 fidl_fuchsia_wlan_ieee80211__common::ReasonCode,
5399 D,
5400 val_ref,
5401 decoder,
5402 inner_offset,
5403 inner_depth
5404 )?;
5405 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5406 {
5407 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5408 }
5409 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5410 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5411 }
5412 }
5413
5414 next_offset += envelope_size;
5415
5416 while next_offset < end_offset {
5418 _next_ordinal_to_read += 1;
5419 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5420 next_offset += envelope_size;
5421 }
5422
5423 Ok(())
5424 }
5425 }
5426
5427 impl WlanFullmacImplDisassocRequest {
5428 #[inline(always)]
5429 fn max_ordinal_present(&self) -> u64 {
5430 if let Some(_) = self.reason_code {
5431 return 2;
5432 }
5433 if let Some(_) = self.peer_sta_address {
5434 return 1;
5435 }
5436 0
5437 }
5438 }
5439
5440 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplDisassocRequest {
5441 type Borrowed<'a> = &'a Self;
5442 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
5443 value
5444 }
5445 }
5446
5447 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplDisassocRequest {
5448 type Owned = Self;
5449
5450 #[inline(always)]
5451 fn inline_align(_context: fidl::encoding::Context) -> usize {
5452 8
5453 }
5454
5455 #[inline(always)]
5456 fn inline_size(_context: fidl::encoding::Context) -> usize {
5457 16
5458 }
5459 }
5460
5461 unsafe impl<D: fidl::encoding::ResourceDialect>
5462 fidl::encoding::Encode<WlanFullmacImplDisassocRequest, D>
5463 for &WlanFullmacImplDisassocRequest
5464 {
5465 unsafe fn encode(
5466 self,
5467 encoder: &mut fidl::encoding::Encoder<'_, D>,
5468 offset: usize,
5469 mut depth: fidl::encoding::Depth,
5470 ) -> fidl::Result<()> {
5471 encoder.debug_check_bounds::<WlanFullmacImplDisassocRequest>(offset);
5472 let max_ordinal: u64 = self.max_ordinal_present();
5474 encoder.write_num(max_ordinal, offset);
5475 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
5476 if max_ordinal == 0 {
5478 return Ok(());
5479 }
5480 depth.increment()?;
5481 let envelope_size = 8;
5482 let bytes_len = max_ordinal as usize * envelope_size;
5483 #[allow(unused_variables)]
5484 let offset = encoder.out_of_line_offset(bytes_len);
5485 let mut _prev_end_offset: usize = 0;
5486 if 1 > max_ordinal {
5487 return Ok(());
5488 }
5489
5490 let cur_offset: usize = (1 - 1) * envelope_size;
5493
5494 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5496
5497 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
5502 self.peer_sta_address
5503 .as_ref()
5504 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
5505 encoder,
5506 offset + cur_offset,
5507 depth,
5508 )?;
5509
5510 _prev_end_offset = cur_offset + envelope_size;
5511 if 2 > max_ordinal {
5512 return Ok(());
5513 }
5514
5515 let cur_offset: usize = (2 - 1) * envelope_size;
5518
5519 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5521
5522 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_ieee80211__common::ReasonCode, D>(
5527 self.reason_code.as_ref().map(<fidl_fuchsia_wlan_ieee80211__common::ReasonCode as fidl::encoding::ValueTypeMarker>::borrow),
5528 encoder, offset + cur_offset, depth
5529 )?;
5530
5531 _prev_end_offset = cur_offset + envelope_size;
5532
5533 Ok(())
5534 }
5535 }
5536
5537 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
5538 for WlanFullmacImplDisassocRequest
5539 {
5540 #[inline(always)]
5541 fn new_empty() -> Self {
5542 Self::default()
5543 }
5544
5545 unsafe fn decode(
5546 &mut self,
5547 decoder: &mut fidl::encoding::Decoder<'_, D>,
5548 offset: usize,
5549 mut depth: fidl::encoding::Depth,
5550 ) -> fidl::Result<()> {
5551 decoder.debug_check_bounds::<Self>(offset);
5552 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
5553 None => return Err(fidl::Error::NotNullable),
5554 Some(len) => len,
5555 };
5556 if len == 0 {
5558 return Ok(());
5559 };
5560 depth.increment()?;
5561 let envelope_size = 8;
5562 let bytes_len = len * envelope_size;
5563 let offset = decoder.out_of_line_offset(bytes_len)?;
5564 let mut _next_ordinal_to_read = 0;
5566 let mut next_offset = offset;
5567 let end_offset = offset + bytes_len;
5568 _next_ordinal_to_read += 1;
5569 if next_offset >= end_offset {
5570 return Ok(());
5571 }
5572
5573 while _next_ordinal_to_read < 1 {
5575 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5576 _next_ordinal_to_read += 1;
5577 next_offset += envelope_size;
5578 }
5579
5580 let next_out_of_line = decoder.next_out_of_line();
5581 let handles_before = decoder.remaining_handles();
5582 if let Some((inlined, num_bytes, num_handles)) =
5583 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5584 {
5585 let member_inline_size =
5586 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
5587 decoder.context,
5588 );
5589 if inlined != (member_inline_size <= 4) {
5590 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5591 }
5592 let inner_offset;
5593 let mut inner_depth = depth.clone();
5594 if inlined {
5595 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5596 inner_offset = next_offset;
5597 } else {
5598 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5599 inner_depth.increment()?;
5600 }
5601 let val_ref = self
5602 .peer_sta_address
5603 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
5604 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
5605 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5606 {
5607 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5608 }
5609 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5610 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5611 }
5612 }
5613
5614 next_offset += envelope_size;
5615 _next_ordinal_to_read += 1;
5616 if next_offset >= end_offset {
5617 return Ok(());
5618 }
5619
5620 while _next_ordinal_to_read < 2 {
5622 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5623 _next_ordinal_to_read += 1;
5624 next_offset += envelope_size;
5625 }
5626
5627 let next_out_of_line = decoder.next_out_of_line();
5628 let handles_before = decoder.remaining_handles();
5629 if let Some((inlined, num_bytes, num_handles)) =
5630 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5631 {
5632 let member_inline_size = <fidl_fuchsia_wlan_ieee80211__common::ReasonCode as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5633 if inlined != (member_inline_size <= 4) {
5634 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5635 }
5636 let inner_offset;
5637 let mut inner_depth = depth.clone();
5638 if inlined {
5639 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5640 inner_offset = next_offset;
5641 } else {
5642 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5643 inner_depth.increment()?;
5644 }
5645 let val_ref = self.reason_code.get_or_insert_with(|| {
5646 fidl::new_empty!(fidl_fuchsia_wlan_ieee80211__common::ReasonCode, D)
5647 });
5648 fidl::decode!(
5649 fidl_fuchsia_wlan_ieee80211__common::ReasonCode,
5650 D,
5651 val_ref,
5652 decoder,
5653 inner_offset,
5654 inner_depth
5655 )?;
5656 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5657 {
5658 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5659 }
5660 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5661 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5662 }
5663 }
5664
5665 next_offset += envelope_size;
5666
5667 while next_offset < end_offset {
5669 _next_ordinal_to_read += 1;
5670 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5671 next_offset += envelope_size;
5672 }
5673
5674 Ok(())
5675 }
5676 }
5677
5678 impl WlanFullmacImplEapolTxRequest {
5679 #[inline(always)]
5680 fn max_ordinal_present(&self) -> u64 {
5681 if let Some(_) = self.data {
5682 return 3;
5683 }
5684 if let Some(_) = self.dst_addr {
5685 return 2;
5686 }
5687 if let Some(_) = self.src_addr {
5688 return 1;
5689 }
5690 0
5691 }
5692 }
5693
5694 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplEapolTxRequest {
5695 type Borrowed<'a> = &'a Self;
5696 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
5697 value
5698 }
5699 }
5700
5701 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplEapolTxRequest {
5702 type Owned = Self;
5703
5704 #[inline(always)]
5705 fn inline_align(_context: fidl::encoding::Context) -> usize {
5706 8
5707 }
5708
5709 #[inline(always)]
5710 fn inline_size(_context: fidl::encoding::Context) -> usize {
5711 16
5712 }
5713 }
5714
5715 unsafe impl<D: fidl::encoding::ResourceDialect>
5716 fidl::encoding::Encode<WlanFullmacImplEapolTxRequest, D>
5717 for &WlanFullmacImplEapolTxRequest
5718 {
5719 unsafe fn encode(
5720 self,
5721 encoder: &mut fidl::encoding::Encoder<'_, D>,
5722 offset: usize,
5723 mut depth: fidl::encoding::Depth,
5724 ) -> fidl::Result<()> {
5725 encoder.debug_check_bounds::<WlanFullmacImplEapolTxRequest>(offset);
5726 let max_ordinal: u64 = self.max_ordinal_present();
5728 encoder.write_num(max_ordinal, offset);
5729 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
5730 if max_ordinal == 0 {
5732 return Ok(());
5733 }
5734 depth.increment()?;
5735 let envelope_size = 8;
5736 let bytes_len = max_ordinal as usize * envelope_size;
5737 #[allow(unused_variables)]
5738 let offset = encoder.out_of_line_offset(bytes_len);
5739 let mut _prev_end_offset: usize = 0;
5740 if 1 > max_ordinal {
5741 return Ok(());
5742 }
5743
5744 let cur_offset: usize = (1 - 1) * envelope_size;
5747
5748 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5750
5751 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
5756 self.src_addr
5757 .as_ref()
5758 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
5759 encoder,
5760 offset + cur_offset,
5761 depth,
5762 )?;
5763
5764 _prev_end_offset = cur_offset + envelope_size;
5765 if 2 > max_ordinal {
5766 return Ok(());
5767 }
5768
5769 let cur_offset: usize = (2 - 1) * envelope_size;
5772
5773 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5775
5776 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
5781 self.dst_addr
5782 .as_ref()
5783 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
5784 encoder,
5785 offset + cur_offset,
5786 depth,
5787 )?;
5788
5789 _prev_end_offset = cur_offset + envelope_size;
5790 if 3 > max_ordinal {
5791 return Ok(());
5792 }
5793
5794 let cur_offset: usize = (3 - 1) * envelope_size;
5797
5798 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5800
5801 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<u8>, D>(
5806 self.data.as_ref().map(<fidl::encoding::UnboundedVector<u8> as fidl::encoding::ValueTypeMarker>::borrow),
5807 encoder, offset + cur_offset, depth
5808 )?;
5809
5810 _prev_end_offset = cur_offset + envelope_size;
5811
5812 Ok(())
5813 }
5814 }
5815
5816 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
5817 for WlanFullmacImplEapolTxRequest
5818 {
5819 #[inline(always)]
5820 fn new_empty() -> Self {
5821 Self::default()
5822 }
5823
5824 unsafe fn decode(
5825 &mut self,
5826 decoder: &mut fidl::encoding::Decoder<'_, D>,
5827 offset: usize,
5828 mut depth: fidl::encoding::Depth,
5829 ) -> fidl::Result<()> {
5830 decoder.debug_check_bounds::<Self>(offset);
5831 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
5832 None => return Err(fidl::Error::NotNullable),
5833 Some(len) => len,
5834 };
5835 if len == 0 {
5837 return Ok(());
5838 };
5839 depth.increment()?;
5840 let envelope_size = 8;
5841 let bytes_len = len * envelope_size;
5842 let offset = decoder.out_of_line_offset(bytes_len)?;
5843 let mut _next_ordinal_to_read = 0;
5845 let mut next_offset = offset;
5846 let end_offset = offset + bytes_len;
5847 _next_ordinal_to_read += 1;
5848 if next_offset >= end_offset {
5849 return Ok(());
5850 }
5851
5852 while _next_ordinal_to_read < 1 {
5854 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5855 _next_ordinal_to_read += 1;
5856 next_offset += envelope_size;
5857 }
5858
5859 let next_out_of_line = decoder.next_out_of_line();
5860 let handles_before = decoder.remaining_handles();
5861 if let Some((inlined, num_bytes, num_handles)) =
5862 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5863 {
5864 let member_inline_size =
5865 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
5866 decoder.context,
5867 );
5868 if inlined != (member_inline_size <= 4) {
5869 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5870 }
5871 let inner_offset;
5872 let mut inner_depth = depth.clone();
5873 if inlined {
5874 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5875 inner_offset = next_offset;
5876 } else {
5877 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5878 inner_depth.increment()?;
5879 }
5880 let val_ref = self
5881 .src_addr
5882 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
5883 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
5884 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5885 {
5886 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5887 }
5888 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5889 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5890 }
5891 }
5892
5893 next_offset += envelope_size;
5894 _next_ordinal_to_read += 1;
5895 if next_offset >= end_offset {
5896 return Ok(());
5897 }
5898
5899 while _next_ordinal_to_read < 2 {
5901 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5902 _next_ordinal_to_read += 1;
5903 next_offset += envelope_size;
5904 }
5905
5906 let next_out_of_line = decoder.next_out_of_line();
5907 let handles_before = decoder.remaining_handles();
5908 if let Some((inlined, num_bytes, num_handles)) =
5909 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5910 {
5911 let member_inline_size =
5912 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
5913 decoder.context,
5914 );
5915 if inlined != (member_inline_size <= 4) {
5916 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5917 }
5918 let inner_offset;
5919 let mut inner_depth = depth.clone();
5920 if inlined {
5921 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5922 inner_offset = next_offset;
5923 } else {
5924 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5925 inner_depth.increment()?;
5926 }
5927 let val_ref = self
5928 .dst_addr
5929 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
5930 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
5931 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5932 {
5933 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5934 }
5935 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5936 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5937 }
5938 }
5939
5940 next_offset += envelope_size;
5941 _next_ordinal_to_read += 1;
5942 if next_offset >= end_offset {
5943 return Ok(());
5944 }
5945
5946 while _next_ordinal_to_read < 3 {
5948 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5949 _next_ordinal_to_read += 1;
5950 next_offset += envelope_size;
5951 }
5952
5953 let next_out_of_line = decoder.next_out_of_line();
5954 let handles_before = decoder.remaining_handles();
5955 if let Some((inlined, num_bytes, num_handles)) =
5956 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5957 {
5958 let member_inline_size = <fidl::encoding::UnboundedVector<u8> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5959 if inlined != (member_inline_size <= 4) {
5960 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5961 }
5962 let inner_offset;
5963 let mut inner_depth = depth.clone();
5964 if inlined {
5965 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5966 inner_offset = next_offset;
5967 } else {
5968 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5969 inner_depth.increment()?;
5970 }
5971 let val_ref = self.data.get_or_insert_with(|| {
5972 fidl::new_empty!(fidl::encoding::UnboundedVector<u8>, D)
5973 });
5974 fidl::decode!(
5975 fidl::encoding::UnboundedVector<u8>,
5976 D,
5977 val_ref,
5978 decoder,
5979 inner_offset,
5980 inner_depth
5981 )?;
5982 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5983 {
5984 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5985 }
5986 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5987 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5988 }
5989 }
5990
5991 next_offset += envelope_size;
5992
5993 while next_offset < end_offset {
5995 _next_ordinal_to_read += 1;
5996 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5997 next_offset += envelope_size;
5998 }
5999
6000 Ok(())
6001 }
6002 }
6003
6004 impl WlanFullmacImplIfcAssocIndRequest {
6005 #[inline(always)]
6006 fn max_ordinal_present(&self) -> u64 {
6007 if let Some(_) = self.vendor_ie {
6008 return 5;
6009 }
6010 if let Some(_) = self.rsne {
6011 return 4;
6012 }
6013 if let Some(_) = self.ssid {
6014 return 3;
6015 }
6016 if let Some(_) = self.listen_interval {
6017 return 2;
6018 }
6019 if let Some(_) = self.peer_sta_address {
6020 return 1;
6021 }
6022 0
6023 }
6024 }
6025
6026 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcAssocIndRequest {
6027 type Borrowed<'a> = &'a Self;
6028 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
6029 value
6030 }
6031 }
6032
6033 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcAssocIndRequest {
6034 type Owned = Self;
6035
6036 #[inline(always)]
6037 fn inline_align(_context: fidl::encoding::Context) -> usize {
6038 8
6039 }
6040
6041 #[inline(always)]
6042 fn inline_size(_context: fidl::encoding::Context) -> usize {
6043 16
6044 }
6045 }
6046
6047 unsafe impl<D: fidl::encoding::ResourceDialect>
6048 fidl::encoding::Encode<WlanFullmacImplIfcAssocIndRequest, D>
6049 for &WlanFullmacImplIfcAssocIndRequest
6050 {
6051 unsafe fn encode(
6052 self,
6053 encoder: &mut fidl::encoding::Encoder<'_, D>,
6054 offset: usize,
6055 mut depth: fidl::encoding::Depth,
6056 ) -> fidl::Result<()> {
6057 encoder.debug_check_bounds::<WlanFullmacImplIfcAssocIndRequest>(offset);
6058 let max_ordinal: u64 = self.max_ordinal_present();
6060 encoder.write_num(max_ordinal, offset);
6061 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
6062 if max_ordinal == 0 {
6064 return Ok(());
6065 }
6066 depth.increment()?;
6067 let envelope_size = 8;
6068 let bytes_len = max_ordinal as usize * envelope_size;
6069 #[allow(unused_variables)]
6070 let offset = encoder.out_of_line_offset(bytes_len);
6071 let mut _prev_end_offset: usize = 0;
6072 if 1 > max_ordinal {
6073 return Ok(());
6074 }
6075
6076 let cur_offset: usize = (1 - 1) * envelope_size;
6079
6080 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6082
6083 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
6088 self.peer_sta_address
6089 .as_ref()
6090 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
6091 encoder,
6092 offset + cur_offset,
6093 depth,
6094 )?;
6095
6096 _prev_end_offset = cur_offset + envelope_size;
6097 if 2 > max_ordinal {
6098 return Ok(());
6099 }
6100
6101 let cur_offset: usize = (2 - 1) * envelope_size;
6104
6105 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6107
6108 fidl::encoding::encode_in_envelope_optional::<u16, D>(
6113 self.listen_interval.as_ref().map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
6114 encoder,
6115 offset + cur_offset,
6116 depth,
6117 )?;
6118
6119 _prev_end_offset = cur_offset + envelope_size;
6120 if 3 > max_ordinal {
6121 return Ok(());
6122 }
6123
6124 let cur_offset: usize = (3 - 1) * envelope_size;
6127
6128 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6130
6131 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<u8, 32>, D>(
6136 self.ssid.as_ref().map(
6137 <fidl::encoding::Vector<u8, 32> as fidl::encoding::ValueTypeMarker>::borrow,
6138 ),
6139 encoder,
6140 offset + cur_offset,
6141 depth,
6142 )?;
6143
6144 _prev_end_offset = cur_offset + envelope_size;
6145 if 4 > max_ordinal {
6146 return Ok(());
6147 }
6148
6149 let cur_offset: usize = (4 - 1) * envelope_size;
6152
6153 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6155
6156 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<u8, 257>, D>(
6161 self.rsne.as_ref().map(
6162 <fidl::encoding::Vector<u8, 257> as fidl::encoding::ValueTypeMarker>::borrow,
6163 ),
6164 encoder,
6165 offset + cur_offset,
6166 depth,
6167 )?;
6168
6169 _prev_end_offset = cur_offset + envelope_size;
6170 if 5 > max_ordinal {
6171 return Ok(());
6172 }
6173
6174 let cur_offset: usize = (5 - 1) * envelope_size;
6177
6178 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6180
6181 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<u8, 514>, D>(
6186 self.vendor_ie.as_ref().map(
6187 <fidl::encoding::Vector<u8, 514> as fidl::encoding::ValueTypeMarker>::borrow,
6188 ),
6189 encoder,
6190 offset + cur_offset,
6191 depth,
6192 )?;
6193
6194 _prev_end_offset = cur_offset + envelope_size;
6195
6196 Ok(())
6197 }
6198 }
6199
6200 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
6201 for WlanFullmacImplIfcAssocIndRequest
6202 {
6203 #[inline(always)]
6204 fn new_empty() -> Self {
6205 Self::default()
6206 }
6207
6208 unsafe fn decode(
6209 &mut self,
6210 decoder: &mut fidl::encoding::Decoder<'_, D>,
6211 offset: usize,
6212 mut depth: fidl::encoding::Depth,
6213 ) -> fidl::Result<()> {
6214 decoder.debug_check_bounds::<Self>(offset);
6215 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
6216 None => return Err(fidl::Error::NotNullable),
6217 Some(len) => len,
6218 };
6219 if len == 0 {
6221 return Ok(());
6222 };
6223 depth.increment()?;
6224 let envelope_size = 8;
6225 let bytes_len = len * envelope_size;
6226 let offset = decoder.out_of_line_offset(bytes_len)?;
6227 let mut _next_ordinal_to_read = 0;
6229 let mut next_offset = offset;
6230 let end_offset = offset + bytes_len;
6231 _next_ordinal_to_read += 1;
6232 if next_offset >= end_offset {
6233 return Ok(());
6234 }
6235
6236 while _next_ordinal_to_read < 1 {
6238 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6239 _next_ordinal_to_read += 1;
6240 next_offset += envelope_size;
6241 }
6242
6243 let next_out_of_line = decoder.next_out_of_line();
6244 let handles_before = decoder.remaining_handles();
6245 if let Some((inlined, num_bytes, num_handles)) =
6246 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6247 {
6248 let member_inline_size =
6249 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
6250 decoder.context,
6251 );
6252 if inlined != (member_inline_size <= 4) {
6253 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6254 }
6255 let inner_offset;
6256 let mut inner_depth = depth.clone();
6257 if inlined {
6258 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6259 inner_offset = next_offset;
6260 } else {
6261 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6262 inner_depth.increment()?;
6263 }
6264 let val_ref = self
6265 .peer_sta_address
6266 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
6267 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
6268 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6269 {
6270 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6271 }
6272 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6273 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6274 }
6275 }
6276
6277 next_offset += envelope_size;
6278 _next_ordinal_to_read += 1;
6279 if next_offset >= end_offset {
6280 return Ok(());
6281 }
6282
6283 while _next_ordinal_to_read < 2 {
6285 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6286 _next_ordinal_to_read += 1;
6287 next_offset += envelope_size;
6288 }
6289
6290 let next_out_of_line = decoder.next_out_of_line();
6291 let handles_before = decoder.remaining_handles();
6292 if let Some((inlined, num_bytes, num_handles)) =
6293 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6294 {
6295 let member_inline_size =
6296 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6297 if inlined != (member_inline_size <= 4) {
6298 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6299 }
6300 let inner_offset;
6301 let mut inner_depth = depth.clone();
6302 if inlined {
6303 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6304 inner_offset = next_offset;
6305 } else {
6306 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6307 inner_depth.increment()?;
6308 }
6309 let val_ref = self.listen_interval.get_or_insert_with(|| fidl::new_empty!(u16, D));
6310 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
6311 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6312 {
6313 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6314 }
6315 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6316 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6317 }
6318 }
6319
6320 next_offset += envelope_size;
6321 _next_ordinal_to_read += 1;
6322 if next_offset >= end_offset {
6323 return Ok(());
6324 }
6325
6326 while _next_ordinal_to_read < 3 {
6328 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6329 _next_ordinal_to_read += 1;
6330 next_offset += envelope_size;
6331 }
6332
6333 let next_out_of_line = decoder.next_out_of_line();
6334 let handles_before = decoder.remaining_handles();
6335 if let Some((inlined, num_bytes, num_handles)) =
6336 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6337 {
6338 let member_inline_size =
6339 <fidl::encoding::Vector<u8, 32> as fidl::encoding::TypeMarker>::inline_size(
6340 decoder.context,
6341 );
6342 if inlined != (member_inline_size <= 4) {
6343 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6344 }
6345 let inner_offset;
6346 let mut inner_depth = depth.clone();
6347 if inlined {
6348 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6349 inner_offset = next_offset;
6350 } else {
6351 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6352 inner_depth.increment()?;
6353 }
6354 let val_ref = self
6355 .ssid
6356 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<u8, 32>, D));
6357 fidl::decode!(fidl::encoding::Vector<u8, 32>, D, val_ref, decoder, inner_offset, inner_depth)?;
6358 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6359 {
6360 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6361 }
6362 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6363 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6364 }
6365 }
6366
6367 next_offset += envelope_size;
6368 _next_ordinal_to_read += 1;
6369 if next_offset >= end_offset {
6370 return Ok(());
6371 }
6372
6373 while _next_ordinal_to_read < 4 {
6375 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6376 _next_ordinal_to_read += 1;
6377 next_offset += envelope_size;
6378 }
6379
6380 let next_out_of_line = decoder.next_out_of_line();
6381 let handles_before = decoder.remaining_handles();
6382 if let Some((inlined, num_bytes, num_handles)) =
6383 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6384 {
6385 let member_inline_size =
6386 <fidl::encoding::Vector<u8, 257> as fidl::encoding::TypeMarker>::inline_size(
6387 decoder.context,
6388 );
6389 if inlined != (member_inline_size <= 4) {
6390 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6391 }
6392 let inner_offset;
6393 let mut inner_depth = depth.clone();
6394 if inlined {
6395 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6396 inner_offset = next_offset;
6397 } else {
6398 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6399 inner_depth.increment()?;
6400 }
6401 let val_ref = self
6402 .rsne
6403 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<u8, 257>, D));
6404 fidl::decode!(fidl::encoding::Vector<u8, 257>, D, val_ref, decoder, inner_offset, inner_depth)?;
6405 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6406 {
6407 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6408 }
6409 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6410 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6411 }
6412 }
6413
6414 next_offset += envelope_size;
6415 _next_ordinal_to_read += 1;
6416 if next_offset >= end_offset {
6417 return Ok(());
6418 }
6419
6420 while _next_ordinal_to_read < 5 {
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::Vector<u8, 514> 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 .vendor_ie
6450 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<u8, 514>, D));
6451 fidl::decode!(fidl::encoding::Vector<u8, 514>, 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
6463 while next_offset < end_offset {
6465 _next_ordinal_to_read += 1;
6466 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6467 next_offset += envelope_size;
6468 }
6469
6470 Ok(())
6471 }
6472 }
6473
6474 impl WlanFullmacImplIfcAuthIndRequest {
6475 #[inline(always)]
6476 fn max_ordinal_present(&self) -> u64 {
6477 if let Some(_) = self.auth_type {
6478 return 2;
6479 }
6480 if let Some(_) = self.peer_sta_address {
6481 return 1;
6482 }
6483 0
6484 }
6485 }
6486
6487 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcAuthIndRequest {
6488 type Borrowed<'a> = &'a Self;
6489 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
6490 value
6491 }
6492 }
6493
6494 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcAuthIndRequest {
6495 type Owned = Self;
6496
6497 #[inline(always)]
6498 fn inline_align(_context: fidl::encoding::Context) -> usize {
6499 8
6500 }
6501
6502 #[inline(always)]
6503 fn inline_size(_context: fidl::encoding::Context) -> usize {
6504 16
6505 }
6506 }
6507
6508 unsafe impl<D: fidl::encoding::ResourceDialect>
6509 fidl::encoding::Encode<WlanFullmacImplIfcAuthIndRequest, D>
6510 for &WlanFullmacImplIfcAuthIndRequest
6511 {
6512 unsafe fn encode(
6513 self,
6514 encoder: &mut fidl::encoding::Encoder<'_, D>,
6515 offset: usize,
6516 mut depth: fidl::encoding::Depth,
6517 ) -> fidl::Result<()> {
6518 encoder.debug_check_bounds::<WlanFullmacImplIfcAuthIndRequest>(offset);
6519 let max_ordinal: u64 = self.max_ordinal_present();
6521 encoder.write_num(max_ordinal, offset);
6522 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
6523 if max_ordinal == 0 {
6525 return Ok(());
6526 }
6527 depth.increment()?;
6528 let envelope_size = 8;
6529 let bytes_len = max_ordinal as usize * envelope_size;
6530 #[allow(unused_variables)]
6531 let offset = encoder.out_of_line_offset(bytes_len);
6532 let mut _prev_end_offset: usize = 0;
6533 if 1 > max_ordinal {
6534 return Ok(());
6535 }
6536
6537 let cur_offset: usize = (1 - 1) * envelope_size;
6540
6541 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6543
6544 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
6549 self.peer_sta_address
6550 .as_ref()
6551 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
6552 encoder,
6553 offset + cur_offset,
6554 depth,
6555 )?;
6556
6557 _prev_end_offset = cur_offset + envelope_size;
6558 if 2 > max_ordinal {
6559 return Ok(());
6560 }
6561
6562 let cur_offset: usize = (2 - 1) * envelope_size;
6565
6566 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6568
6569 fidl::encoding::encode_in_envelope_optional::<WlanAuthType, D>(
6574 self.auth_type
6575 .as_ref()
6576 .map(<WlanAuthType as fidl::encoding::ValueTypeMarker>::borrow),
6577 encoder,
6578 offset + cur_offset,
6579 depth,
6580 )?;
6581
6582 _prev_end_offset = cur_offset + envelope_size;
6583
6584 Ok(())
6585 }
6586 }
6587
6588 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
6589 for WlanFullmacImplIfcAuthIndRequest
6590 {
6591 #[inline(always)]
6592 fn new_empty() -> Self {
6593 Self::default()
6594 }
6595
6596 unsafe fn decode(
6597 &mut self,
6598 decoder: &mut fidl::encoding::Decoder<'_, D>,
6599 offset: usize,
6600 mut depth: fidl::encoding::Depth,
6601 ) -> fidl::Result<()> {
6602 decoder.debug_check_bounds::<Self>(offset);
6603 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
6604 None => return Err(fidl::Error::NotNullable),
6605 Some(len) => len,
6606 };
6607 if len == 0 {
6609 return Ok(());
6610 };
6611 depth.increment()?;
6612 let envelope_size = 8;
6613 let bytes_len = len * envelope_size;
6614 let offset = decoder.out_of_line_offset(bytes_len)?;
6615 let mut _next_ordinal_to_read = 0;
6617 let mut next_offset = offset;
6618 let end_offset = offset + bytes_len;
6619 _next_ordinal_to_read += 1;
6620 if next_offset >= end_offset {
6621 return Ok(());
6622 }
6623
6624 while _next_ordinal_to_read < 1 {
6626 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6627 _next_ordinal_to_read += 1;
6628 next_offset += envelope_size;
6629 }
6630
6631 let next_out_of_line = decoder.next_out_of_line();
6632 let handles_before = decoder.remaining_handles();
6633 if let Some((inlined, num_bytes, num_handles)) =
6634 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6635 {
6636 let member_inline_size =
6637 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
6638 decoder.context,
6639 );
6640 if inlined != (member_inline_size <= 4) {
6641 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6642 }
6643 let inner_offset;
6644 let mut inner_depth = depth.clone();
6645 if inlined {
6646 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6647 inner_offset = next_offset;
6648 } else {
6649 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6650 inner_depth.increment()?;
6651 }
6652 let val_ref = self
6653 .peer_sta_address
6654 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
6655 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
6656 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6657 {
6658 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6659 }
6660 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6661 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6662 }
6663 }
6664
6665 next_offset += envelope_size;
6666 _next_ordinal_to_read += 1;
6667 if next_offset >= end_offset {
6668 return Ok(());
6669 }
6670
6671 while _next_ordinal_to_read < 2 {
6673 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6674 _next_ordinal_to_read += 1;
6675 next_offset += envelope_size;
6676 }
6677
6678 let next_out_of_line = decoder.next_out_of_line();
6679 let handles_before = decoder.remaining_handles();
6680 if let Some((inlined, num_bytes, num_handles)) =
6681 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6682 {
6683 let member_inline_size =
6684 <WlanAuthType as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6685 if inlined != (member_inline_size <= 4) {
6686 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6687 }
6688 let inner_offset;
6689 let mut inner_depth = depth.clone();
6690 if inlined {
6691 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6692 inner_offset = next_offset;
6693 } else {
6694 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6695 inner_depth.increment()?;
6696 }
6697 let val_ref =
6698 self.auth_type.get_or_insert_with(|| fidl::new_empty!(WlanAuthType, D));
6699 fidl::decode!(WlanAuthType, D, val_ref, decoder, inner_offset, inner_depth)?;
6700 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6701 {
6702 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6703 }
6704 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6705 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6706 }
6707 }
6708
6709 next_offset += envelope_size;
6710
6711 while next_offset < end_offset {
6713 _next_ordinal_to_read += 1;
6714 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6715 next_offset += envelope_size;
6716 }
6717
6718 Ok(())
6719 }
6720 }
6721
6722 impl WlanFullmacImplIfcConnectConfRequest {
6723 #[inline(always)]
6724 fn max_ordinal_present(&self) -> u64 {
6725 if let Some(_) = self.association_ies {
6726 return 4;
6727 }
6728 if let Some(_) = self.association_id {
6729 return 3;
6730 }
6731 if let Some(_) = self.result_code {
6732 return 2;
6733 }
6734 if let Some(_) = self.peer_sta_address {
6735 return 1;
6736 }
6737 0
6738 }
6739 }
6740
6741 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcConnectConfRequest {
6742 type Borrowed<'a> = &'a Self;
6743 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
6744 value
6745 }
6746 }
6747
6748 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcConnectConfRequest {
6749 type Owned = Self;
6750
6751 #[inline(always)]
6752 fn inline_align(_context: fidl::encoding::Context) -> usize {
6753 8
6754 }
6755
6756 #[inline(always)]
6757 fn inline_size(_context: fidl::encoding::Context) -> usize {
6758 16
6759 }
6760 }
6761
6762 unsafe impl<D: fidl::encoding::ResourceDialect>
6763 fidl::encoding::Encode<WlanFullmacImplIfcConnectConfRequest, D>
6764 for &WlanFullmacImplIfcConnectConfRequest
6765 {
6766 unsafe fn encode(
6767 self,
6768 encoder: &mut fidl::encoding::Encoder<'_, D>,
6769 offset: usize,
6770 mut depth: fidl::encoding::Depth,
6771 ) -> fidl::Result<()> {
6772 encoder.debug_check_bounds::<WlanFullmacImplIfcConnectConfRequest>(offset);
6773 let max_ordinal: u64 = self.max_ordinal_present();
6775 encoder.write_num(max_ordinal, offset);
6776 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
6777 if max_ordinal == 0 {
6779 return Ok(());
6780 }
6781 depth.increment()?;
6782 let envelope_size = 8;
6783 let bytes_len = max_ordinal as usize * envelope_size;
6784 #[allow(unused_variables)]
6785 let offset = encoder.out_of_line_offset(bytes_len);
6786 let mut _prev_end_offset: usize = 0;
6787 if 1 > max_ordinal {
6788 return Ok(());
6789 }
6790
6791 let cur_offset: usize = (1 - 1) * envelope_size;
6794
6795 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6797
6798 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
6803 self.peer_sta_address
6804 .as_ref()
6805 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
6806 encoder,
6807 offset + cur_offset,
6808 depth,
6809 )?;
6810
6811 _prev_end_offset = cur_offset + envelope_size;
6812 if 2 > max_ordinal {
6813 return Ok(());
6814 }
6815
6816 let cur_offset: usize = (2 - 1) * envelope_size;
6819
6820 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6822
6823 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_ieee80211__common::StatusCode, D>(
6828 self.result_code.as_ref().map(<fidl_fuchsia_wlan_ieee80211__common::StatusCode as fidl::encoding::ValueTypeMarker>::borrow),
6829 encoder, offset + cur_offset, depth
6830 )?;
6831
6832 _prev_end_offset = cur_offset + envelope_size;
6833 if 3 > max_ordinal {
6834 return Ok(());
6835 }
6836
6837 let cur_offset: usize = (3 - 1) * envelope_size;
6840
6841 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6843
6844 fidl::encoding::encode_in_envelope_optional::<u16, D>(
6849 self.association_id.as_ref().map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
6850 encoder,
6851 offset + cur_offset,
6852 depth,
6853 )?;
6854
6855 _prev_end_offset = cur_offset + envelope_size;
6856 if 4 > max_ordinal {
6857 return Ok(());
6858 }
6859
6860 let cur_offset: usize = (4 - 1) * envelope_size;
6863
6864 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6866
6867 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<u8>, D>(
6872 self.association_ies.as_ref().map(<fidl::encoding::UnboundedVector<u8> as fidl::encoding::ValueTypeMarker>::borrow),
6873 encoder, offset + cur_offset, depth
6874 )?;
6875
6876 _prev_end_offset = cur_offset + envelope_size;
6877
6878 Ok(())
6879 }
6880 }
6881
6882 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
6883 for WlanFullmacImplIfcConnectConfRequest
6884 {
6885 #[inline(always)]
6886 fn new_empty() -> Self {
6887 Self::default()
6888 }
6889
6890 unsafe fn decode(
6891 &mut self,
6892 decoder: &mut fidl::encoding::Decoder<'_, D>,
6893 offset: usize,
6894 mut depth: fidl::encoding::Depth,
6895 ) -> fidl::Result<()> {
6896 decoder.debug_check_bounds::<Self>(offset);
6897 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
6898 None => return Err(fidl::Error::NotNullable),
6899 Some(len) => len,
6900 };
6901 if len == 0 {
6903 return Ok(());
6904 };
6905 depth.increment()?;
6906 let envelope_size = 8;
6907 let bytes_len = len * envelope_size;
6908 let offset = decoder.out_of_line_offset(bytes_len)?;
6909 let mut _next_ordinal_to_read = 0;
6911 let mut next_offset = offset;
6912 let end_offset = offset + bytes_len;
6913 _next_ordinal_to_read += 1;
6914 if next_offset >= end_offset {
6915 return Ok(());
6916 }
6917
6918 while _next_ordinal_to_read < 1 {
6920 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6921 _next_ordinal_to_read += 1;
6922 next_offset += envelope_size;
6923 }
6924
6925 let next_out_of_line = decoder.next_out_of_line();
6926 let handles_before = decoder.remaining_handles();
6927 if let Some((inlined, num_bytes, num_handles)) =
6928 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6929 {
6930 let member_inline_size =
6931 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
6932 decoder.context,
6933 );
6934 if inlined != (member_inline_size <= 4) {
6935 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6936 }
6937 let inner_offset;
6938 let mut inner_depth = depth.clone();
6939 if inlined {
6940 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6941 inner_offset = next_offset;
6942 } else {
6943 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6944 inner_depth.increment()?;
6945 }
6946 let val_ref = self
6947 .peer_sta_address
6948 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
6949 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
6950 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6951 {
6952 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6953 }
6954 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6955 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6956 }
6957 }
6958
6959 next_offset += envelope_size;
6960 _next_ordinal_to_read += 1;
6961 if next_offset >= end_offset {
6962 return Ok(());
6963 }
6964
6965 while _next_ordinal_to_read < 2 {
6967 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6968 _next_ordinal_to_read += 1;
6969 next_offset += envelope_size;
6970 }
6971
6972 let next_out_of_line = decoder.next_out_of_line();
6973 let handles_before = decoder.remaining_handles();
6974 if let Some((inlined, num_bytes, num_handles)) =
6975 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6976 {
6977 let member_inline_size = <fidl_fuchsia_wlan_ieee80211__common::StatusCode as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6978 if inlined != (member_inline_size <= 4) {
6979 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6980 }
6981 let inner_offset;
6982 let mut inner_depth = depth.clone();
6983 if inlined {
6984 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6985 inner_offset = next_offset;
6986 } else {
6987 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6988 inner_depth.increment()?;
6989 }
6990 let val_ref = self.result_code.get_or_insert_with(|| {
6991 fidl::new_empty!(fidl_fuchsia_wlan_ieee80211__common::StatusCode, D)
6992 });
6993 fidl::decode!(
6994 fidl_fuchsia_wlan_ieee80211__common::StatusCode,
6995 D,
6996 val_ref,
6997 decoder,
6998 inner_offset,
6999 inner_depth
7000 )?;
7001 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7002 {
7003 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7004 }
7005 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7006 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7007 }
7008 }
7009
7010 next_offset += envelope_size;
7011 _next_ordinal_to_read += 1;
7012 if next_offset >= end_offset {
7013 return Ok(());
7014 }
7015
7016 while _next_ordinal_to_read < 3 {
7018 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7019 _next_ordinal_to_read += 1;
7020 next_offset += envelope_size;
7021 }
7022
7023 let next_out_of_line = decoder.next_out_of_line();
7024 let handles_before = decoder.remaining_handles();
7025 if let Some((inlined, num_bytes, num_handles)) =
7026 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7027 {
7028 let member_inline_size =
7029 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7030 if inlined != (member_inline_size <= 4) {
7031 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7032 }
7033 let inner_offset;
7034 let mut inner_depth = depth.clone();
7035 if inlined {
7036 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7037 inner_offset = next_offset;
7038 } else {
7039 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7040 inner_depth.increment()?;
7041 }
7042 let val_ref = self.association_id.get_or_insert_with(|| fidl::new_empty!(u16, D));
7043 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
7044 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7045 {
7046 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7047 }
7048 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7049 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7050 }
7051 }
7052
7053 next_offset += envelope_size;
7054 _next_ordinal_to_read += 1;
7055 if next_offset >= end_offset {
7056 return Ok(());
7057 }
7058
7059 while _next_ordinal_to_read < 4 {
7061 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7062 _next_ordinal_to_read += 1;
7063 next_offset += envelope_size;
7064 }
7065
7066 let next_out_of_line = decoder.next_out_of_line();
7067 let handles_before = decoder.remaining_handles();
7068 if let Some((inlined, num_bytes, num_handles)) =
7069 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7070 {
7071 let member_inline_size = <fidl::encoding::UnboundedVector<u8> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7072 if inlined != (member_inline_size <= 4) {
7073 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7074 }
7075 let inner_offset;
7076 let mut inner_depth = depth.clone();
7077 if inlined {
7078 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7079 inner_offset = next_offset;
7080 } else {
7081 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7082 inner_depth.increment()?;
7083 }
7084 let val_ref = self.association_ies.get_or_insert_with(|| {
7085 fidl::new_empty!(fidl::encoding::UnboundedVector<u8>, D)
7086 });
7087 fidl::decode!(
7088 fidl::encoding::UnboundedVector<u8>,
7089 D,
7090 val_ref,
7091 decoder,
7092 inner_offset,
7093 inner_depth
7094 )?;
7095 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7096 {
7097 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7098 }
7099 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7100 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7101 }
7102 }
7103
7104 next_offset += envelope_size;
7105
7106 while next_offset < end_offset {
7108 _next_ordinal_to_read += 1;
7109 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7110 next_offset += envelope_size;
7111 }
7112
7113 Ok(())
7114 }
7115 }
7116
7117 impl WlanFullmacImplIfcDeauthConfRequest {
7118 #[inline(always)]
7119 fn max_ordinal_present(&self) -> u64 {
7120 if let Some(_) = self.peer_sta_address {
7121 return 1;
7122 }
7123 0
7124 }
7125 }
7126
7127 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcDeauthConfRequest {
7128 type Borrowed<'a> = &'a Self;
7129 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
7130 value
7131 }
7132 }
7133
7134 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcDeauthConfRequest {
7135 type Owned = Self;
7136
7137 #[inline(always)]
7138 fn inline_align(_context: fidl::encoding::Context) -> usize {
7139 8
7140 }
7141
7142 #[inline(always)]
7143 fn inline_size(_context: fidl::encoding::Context) -> usize {
7144 16
7145 }
7146 }
7147
7148 unsafe impl<D: fidl::encoding::ResourceDialect>
7149 fidl::encoding::Encode<WlanFullmacImplIfcDeauthConfRequest, D>
7150 for &WlanFullmacImplIfcDeauthConfRequest
7151 {
7152 unsafe fn encode(
7153 self,
7154 encoder: &mut fidl::encoding::Encoder<'_, D>,
7155 offset: usize,
7156 mut depth: fidl::encoding::Depth,
7157 ) -> fidl::Result<()> {
7158 encoder.debug_check_bounds::<WlanFullmacImplIfcDeauthConfRequest>(offset);
7159 let max_ordinal: u64 = self.max_ordinal_present();
7161 encoder.write_num(max_ordinal, offset);
7162 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
7163 if max_ordinal == 0 {
7165 return Ok(());
7166 }
7167 depth.increment()?;
7168 let envelope_size = 8;
7169 let bytes_len = max_ordinal as usize * envelope_size;
7170 #[allow(unused_variables)]
7171 let offset = encoder.out_of_line_offset(bytes_len);
7172 let mut _prev_end_offset: usize = 0;
7173 if 1 > max_ordinal {
7174 return Ok(());
7175 }
7176
7177 let cur_offset: usize = (1 - 1) * envelope_size;
7180
7181 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7183
7184 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
7189 self.peer_sta_address
7190 .as_ref()
7191 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
7192 encoder,
7193 offset + cur_offset,
7194 depth,
7195 )?;
7196
7197 _prev_end_offset = cur_offset + envelope_size;
7198
7199 Ok(())
7200 }
7201 }
7202
7203 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
7204 for WlanFullmacImplIfcDeauthConfRequest
7205 {
7206 #[inline(always)]
7207 fn new_empty() -> Self {
7208 Self::default()
7209 }
7210
7211 unsafe fn decode(
7212 &mut self,
7213 decoder: &mut fidl::encoding::Decoder<'_, D>,
7214 offset: usize,
7215 mut depth: fidl::encoding::Depth,
7216 ) -> fidl::Result<()> {
7217 decoder.debug_check_bounds::<Self>(offset);
7218 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
7219 None => return Err(fidl::Error::NotNullable),
7220 Some(len) => len,
7221 };
7222 if len == 0 {
7224 return Ok(());
7225 };
7226 depth.increment()?;
7227 let envelope_size = 8;
7228 let bytes_len = len * envelope_size;
7229 let offset = decoder.out_of_line_offset(bytes_len)?;
7230 let mut _next_ordinal_to_read = 0;
7232 let mut next_offset = offset;
7233 let end_offset = offset + bytes_len;
7234 _next_ordinal_to_read += 1;
7235 if next_offset >= end_offset {
7236 return Ok(());
7237 }
7238
7239 while _next_ordinal_to_read < 1 {
7241 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7242 _next_ordinal_to_read += 1;
7243 next_offset += envelope_size;
7244 }
7245
7246 let next_out_of_line = decoder.next_out_of_line();
7247 let handles_before = decoder.remaining_handles();
7248 if let Some((inlined, num_bytes, num_handles)) =
7249 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7250 {
7251 let member_inline_size =
7252 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
7253 decoder.context,
7254 );
7255 if inlined != (member_inline_size <= 4) {
7256 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7257 }
7258 let inner_offset;
7259 let mut inner_depth = depth.clone();
7260 if inlined {
7261 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7262 inner_offset = next_offset;
7263 } else {
7264 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7265 inner_depth.increment()?;
7266 }
7267 let val_ref = self
7268 .peer_sta_address
7269 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
7270 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
7271 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7272 {
7273 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7274 }
7275 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7276 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7277 }
7278 }
7279
7280 next_offset += envelope_size;
7281
7282 while next_offset < end_offset {
7284 _next_ordinal_to_read += 1;
7285 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7286 next_offset += envelope_size;
7287 }
7288
7289 Ok(())
7290 }
7291 }
7292
7293 impl WlanFullmacImplIfcDeauthIndRequest {
7294 #[inline(always)]
7295 fn max_ordinal_present(&self) -> u64 {
7296 if let Some(_) = self.locally_initiated {
7297 return 3;
7298 }
7299 if let Some(_) = self.reason_code {
7300 return 2;
7301 }
7302 if let Some(_) = self.peer_sta_address {
7303 return 1;
7304 }
7305 0
7306 }
7307 }
7308
7309 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcDeauthIndRequest {
7310 type Borrowed<'a> = &'a Self;
7311 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
7312 value
7313 }
7314 }
7315
7316 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcDeauthIndRequest {
7317 type Owned = Self;
7318
7319 #[inline(always)]
7320 fn inline_align(_context: fidl::encoding::Context) -> usize {
7321 8
7322 }
7323
7324 #[inline(always)]
7325 fn inline_size(_context: fidl::encoding::Context) -> usize {
7326 16
7327 }
7328 }
7329
7330 unsafe impl<D: fidl::encoding::ResourceDialect>
7331 fidl::encoding::Encode<WlanFullmacImplIfcDeauthIndRequest, D>
7332 for &WlanFullmacImplIfcDeauthIndRequest
7333 {
7334 unsafe fn encode(
7335 self,
7336 encoder: &mut fidl::encoding::Encoder<'_, D>,
7337 offset: usize,
7338 mut depth: fidl::encoding::Depth,
7339 ) -> fidl::Result<()> {
7340 encoder.debug_check_bounds::<WlanFullmacImplIfcDeauthIndRequest>(offset);
7341 let max_ordinal: u64 = self.max_ordinal_present();
7343 encoder.write_num(max_ordinal, offset);
7344 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
7345 if max_ordinal == 0 {
7347 return Ok(());
7348 }
7349 depth.increment()?;
7350 let envelope_size = 8;
7351 let bytes_len = max_ordinal as usize * envelope_size;
7352 #[allow(unused_variables)]
7353 let offset = encoder.out_of_line_offset(bytes_len);
7354 let mut _prev_end_offset: usize = 0;
7355 if 1 > max_ordinal {
7356 return Ok(());
7357 }
7358
7359 let cur_offset: usize = (1 - 1) * envelope_size;
7362
7363 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7365
7366 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
7371 self.peer_sta_address
7372 .as_ref()
7373 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
7374 encoder,
7375 offset + cur_offset,
7376 depth,
7377 )?;
7378
7379 _prev_end_offset = cur_offset + envelope_size;
7380 if 2 > max_ordinal {
7381 return Ok(());
7382 }
7383
7384 let cur_offset: usize = (2 - 1) * envelope_size;
7387
7388 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7390
7391 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_ieee80211__common::ReasonCode, D>(
7396 self.reason_code.as_ref().map(<fidl_fuchsia_wlan_ieee80211__common::ReasonCode as fidl::encoding::ValueTypeMarker>::borrow),
7397 encoder, offset + cur_offset, depth
7398 )?;
7399
7400 _prev_end_offset = cur_offset + envelope_size;
7401 if 3 > max_ordinal {
7402 return Ok(());
7403 }
7404
7405 let cur_offset: usize = (3 - 1) * envelope_size;
7408
7409 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7411
7412 fidl::encoding::encode_in_envelope_optional::<bool, D>(
7417 self.locally_initiated
7418 .as_ref()
7419 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
7420 encoder,
7421 offset + cur_offset,
7422 depth,
7423 )?;
7424
7425 _prev_end_offset = cur_offset + envelope_size;
7426
7427 Ok(())
7428 }
7429 }
7430
7431 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
7432 for WlanFullmacImplIfcDeauthIndRequest
7433 {
7434 #[inline(always)]
7435 fn new_empty() -> Self {
7436 Self::default()
7437 }
7438
7439 unsafe fn decode(
7440 &mut self,
7441 decoder: &mut fidl::encoding::Decoder<'_, D>,
7442 offset: usize,
7443 mut depth: fidl::encoding::Depth,
7444 ) -> fidl::Result<()> {
7445 decoder.debug_check_bounds::<Self>(offset);
7446 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
7447 None => return Err(fidl::Error::NotNullable),
7448 Some(len) => len,
7449 };
7450 if len == 0 {
7452 return Ok(());
7453 };
7454 depth.increment()?;
7455 let envelope_size = 8;
7456 let bytes_len = len * envelope_size;
7457 let offset = decoder.out_of_line_offset(bytes_len)?;
7458 let mut _next_ordinal_to_read = 0;
7460 let mut next_offset = offset;
7461 let end_offset = offset + bytes_len;
7462 _next_ordinal_to_read += 1;
7463 if next_offset >= end_offset {
7464 return Ok(());
7465 }
7466
7467 while _next_ordinal_to_read < 1 {
7469 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7470 _next_ordinal_to_read += 1;
7471 next_offset += envelope_size;
7472 }
7473
7474 let next_out_of_line = decoder.next_out_of_line();
7475 let handles_before = decoder.remaining_handles();
7476 if let Some((inlined, num_bytes, num_handles)) =
7477 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7478 {
7479 let member_inline_size =
7480 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
7481 decoder.context,
7482 );
7483 if inlined != (member_inline_size <= 4) {
7484 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7485 }
7486 let inner_offset;
7487 let mut inner_depth = depth.clone();
7488 if inlined {
7489 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7490 inner_offset = next_offset;
7491 } else {
7492 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7493 inner_depth.increment()?;
7494 }
7495 let val_ref = self
7496 .peer_sta_address
7497 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
7498 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
7499 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7500 {
7501 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7502 }
7503 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7504 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7505 }
7506 }
7507
7508 next_offset += envelope_size;
7509 _next_ordinal_to_read += 1;
7510 if next_offset >= end_offset {
7511 return Ok(());
7512 }
7513
7514 while _next_ordinal_to_read < 2 {
7516 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7517 _next_ordinal_to_read += 1;
7518 next_offset += envelope_size;
7519 }
7520
7521 let next_out_of_line = decoder.next_out_of_line();
7522 let handles_before = decoder.remaining_handles();
7523 if let Some((inlined, num_bytes, num_handles)) =
7524 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7525 {
7526 let member_inline_size = <fidl_fuchsia_wlan_ieee80211__common::ReasonCode as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7527 if inlined != (member_inline_size <= 4) {
7528 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7529 }
7530 let inner_offset;
7531 let mut inner_depth = depth.clone();
7532 if inlined {
7533 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7534 inner_offset = next_offset;
7535 } else {
7536 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7537 inner_depth.increment()?;
7538 }
7539 let val_ref = self.reason_code.get_or_insert_with(|| {
7540 fidl::new_empty!(fidl_fuchsia_wlan_ieee80211__common::ReasonCode, D)
7541 });
7542 fidl::decode!(
7543 fidl_fuchsia_wlan_ieee80211__common::ReasonCode,
7544 D,
7545 val_ref,
7546 decoder,
7547 inner_offset,
7548 inner_depth
7549 )?;
7550 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7551 {
7552 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7553 }
7554 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7555 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7556 }
7557 }
7558
7559 next_offset += envelope_size;
7560 _next_ordinal_to_read += 1;
7561 if next_offset >= end_offset {
7562 return Ok(());
7563 }
7564
7565 while _next_ordinal_to_read < 3 {
7567 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7568 _next_ordinal_to_read += 1;
7569 next_offset += envelope_size;
7570 }
7571
7572 let next_out_of_line = decoder.next_out_of_line();
7573 let handles_before = decoder.remaining_handles();
7574 if let Some((inlined, num_bytes, num_handles)) =
7575 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7576 {
7577 let member_inline_size =
7578 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7579 if inlined != (member_inline_size <= 4) {
7580 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7581 }
7582 let inner_offset;
7583 let mut inner_depth = depth.clone();
7584 if inlined {
7585 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7586 inner_offset = next_offset;
7587 } else {
7588 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7589 inner_depth.increment()?;
7590 }
7591 let val_ref =
7592 self.locally_initiated.get_or_insert_with(|| fidl::new_empty!(bool, D));
7593 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
7594 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7595 {
7596 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7597 }
7598 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7599 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7600 }
7601 }
7602
7603 next_offset += envelope_size;
7604
7605 while next_offset < end_offset {
7607 _next_ordinal_to_read += 1;
7608 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7609 next_offset += envelope_size;
7610 }
7611
7612 Ok(())
7613 }
7614 }
7615
7616 impl WlanFullmacImplIfcDisassocConfRequest {
7617 #[inline(always)]
7618 fn max_ordinal_present(&self) -> u64 {
7619 if let Some(_) = self.status {
7620 return 1;
7621 }
7622 0
7623 }
7624 }
7625
7626 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcDisassocConfRequest {
7627 type Borrowed<'a> = &'a Self;
7628 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
7629 value
7630 }
7631 }
7632
7633 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcDisassocConfRequest {
7634 type Owned = Self;
7635
7636 #[inline(always)]
7637 fn inline_align(_context: fidl::encoding::Context) -> usize {
7638 8
7639 }
7640
7641 #[inline(always)]
7642 fn inline_size(_context: fidl::encoding::Context) -> usize {
7643 16
7644 }
7645 }
7646
7647 unsafe impl<D: fidl::encoding::ResourceDialect>
7648 fidl::encoding::Encode<WlanFullmacImplIfcDisassocConfRequest, D>
7649 for &WlanFullmacImplIfcDisassocConfRequest
7650 {
7651 unsafe fn encode(
7652 self,
7653 encoder: &mut fidl::encoding::Encoder<'_, D>,
7654 offset: usize,
7655 mut depth: fidl::encoding::Depth,
7656 ) -> fidl::Result<()> {
7657 encoder.debug_check_bounds::<WlanFullmacImplIfcDisassocConfRequest>(offset);
7658 let max_ordinal: u64 = self.max_ordinal_present();
7660 encoder.write_num(max_ordinal, offset);
7661 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
7662 if max_ordinal == 0 {
7664 return Ok(());
7665 }
7666 depth.increment()?;
7667 let envelope_size = 8;
7668 let bytes_len = max_ordinal as usize * envelope_size;
7669 #[allow(unused_variables)]
7670 let offset = encoder.out_of_line_offset(bytes_len);
7671 let mut _prev_end_offset: usize = 0;
7672 if 1 > max_ordinal {
7673 return Ok(());
7674 }
7675
7676 let cur_offset: usize = (1 - 1) * envelope_size;
7679
7680 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7682
7683 fidl::encoding::encode_in_envelope_optional::<i32, D>(
7688 self.status.as_ref().map(<i32 as fidl::encoding::ValueTypeMarker>::borrow),
7689 encoder,
7690 offset + cur_offset,
7691 depth,
7692 )?;
7693
7694 _prev_end_offset = cur_offset + envelope_size;
7695
7696 Ok(())
7697 }
7698 }
7699
7700 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
7701 for WlanFullmacImplIfcDisassocConfRequest
7702 {
7703 #[inline(always)]
7704 fn new_empty() -> Self {
7705 Self::default()
7706 }
7707
7708 unsafe fn decode(
7709 &mut self,
7710 decoder: &mut fidl::encoding::Decoder<'_, D>,
7711 offset: usize,
7712 mut depth: fidl::encoding::Depth,
7713 ) -> fidl::Result<()> {
7714 decoder.debug_check_bounds::<Self>(offset);
7715 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
7716 None => return Err(fidl::Error::NotNullable),
7717 Some(len) => len,
7718 };
7719 if len == 0 {
7721 return Ok(());
7722 };
7723 depth.increment()?;
7724 let envelope_size = 8;
7725 let bytes_len = len * envelope_size;
7726 let offset = decoder.out_of_line_offset(bytes_len)?;
7727 let mut _next_ordinal_to_read = 0;
7729 let mut next_offset = offset;
7730 let end_offset = offset + bytes_len;
7731 _next_ordinal_to_read += 1;
7732 if next_offset >= end_offset {
7733 return Ok(());
7734 }
7735
7736 while _next_ordinal_to_read < 1 {
7738 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7739 _next_ordinal_to_read += 1;
7740 next_offset += envelope_size;
7741 }
7742
7743 let next_out_of_line = decoder.next_out_of_line();
7744 let handles_before = decoder.remaining_handles();
7745 if let Some((inlined, num_bytes, num_handles)) =
7746 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7747 {
7748 let member_inline_size =
7749 <i32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7750 if inlined != (member_inline_size <= 4) {
7751 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7752 }
7753 let inner_offset;
7754 let mut inner_depth = depth.clone();
7755 if inlined {
7756 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7757 inner_offset = next_offset;
7758 } else {
7759 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7760 inner_depth.increment()?;
7761 }
7762 let val_ref = self.status.get_or_insert_with(|| fidl::new_empty!(i32, D));
7763 fidl::decode!(i32, D, val_ref, decoder, inner_offset, inner_depth)?;
7764 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7765 {
7766 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7767 }
7768 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7769 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7770 }
7771 }
7772
7773 next_offset += envelope_size;
7774
7775 while next_offset < end_offset {
7777 _next_ordinal_to_read += 1;
7778 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7779 next_offset += envelope_size;
7780 }
7781
7782 Ok(())
7783 }
7784 }
7785
7786 impl WlanFullmacImplIfcDisassocIndRequest {
7787 #[inline(always)]
7788 fn max_ordinal_present(&self) -> u64 {
7789 if let Some(_) = self.locally_initiated {
7790 return 3;
7791 }
7792 if let Some(_) = self.reason_code {
7793 return 2;
7794 }
7795 if let Some(_) = self.peer_sta_address {
7796 return 1;
7797 }
7798 0
7799 }
7800 }
7801
7802 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcDisassocIndRequest {
7803 type Borrowed<'a> = &'a Self;
7804 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
7805 value
7806 }
7807 }
7808
7809 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcDisassocIndRequest {
7810 type Owned = Self;
7811
7812 #[inline(always)]
7813 fn inline_align(_context: fidl::encoding::Context) -> usize {
7814 8
7815 }
7816
7817 #[inline(always)]
7818 fn inline_size(_context: fidl::encoding::Context) -> usize {
7819 16
7820 }
7821 }
7822
7823 unsafe impl<D: fidl::encoding::ResourceDialect>
7824 fidl::encoding::Encode<WlanFullmacImplIfcDisassocIndRequest, D>
7825 for &WlanFullmacImplIfcDisassocIndRequest
7826 {
7827 unsafe fn encode(
7828 self,
7829 encoder: &mut fidl::encoding::Encoder<'_, D>,
7830 offset: usize,
7831 mut depth: fidl::encoding::Depth,
7832 ) -> fidl::Result<()> {
7833 encoder.debug_check_bounds::<WlanFullmacImplIfcDisassocIndRequest>(offset);
7834 let max_ordinal: u64 = self.max_ordinal_present();
7836 encoder.write_num(max_ordinal, offset);
7837 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
7838 if max_ordinal == 0 {
7840 return Ok(());
7841 }
7842 depth.increment()?;
7843 let envelope_size = 8;
7844 let bytes_len = max_ordinal as usize * envelope_size;
7845 #[allow(unused_variables)]
7846 let offset = encoder.out_of_line_offset(bytes_len);
7847 let mut _prev_end_offset: usize = 0;
7848 if 1 > max_ordinal {
7849 return Ok(());
7850 }
7851
7852 let cur_offset: usize = (1 - 1) * envelope_size;
7855
7856 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7858
7859 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
7864 self.peer_sta_address
7865 .as_ref()
7866 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
7867 encoder,
7868 offset + cur_offset,
7869 depth,
7870 )?;
7871
7872 _prev_end_offset = cur_offset + envelope_size;
7873 if 2 > max_ordinal {
7874 return Ok(());
7875 }
7876
7877 let cur_offset: usize = (2 - 1) * envelope_size;
7880
7881 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7883
7884 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_ieee80211__common::ReasonCode, D>(
7889 self.reason_code.as_ref().map(<fidl_fuchsia_wlan_ieee80211__common::ReasonCode as fidl::encoding::ValueTypeMarker>::borrow),
7890 encoder, offset + cur_offset, depth
7891 )?;
7892
7893 _prev_end_offset = cur_offset + envelope_size;
7894 if 3 > max_ordinal {
7895 return Ok(());
7896 }
7897
7898 let cur_offset: usize = (3 - 1) * envelope_size;
7901
7902 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7904
7905 fidl::encoding::encode_in_envelope_optional::<bool, D>(
7910 self.locally_initiated
7911 .as_ref()
7912 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
7913 encoder,
7914 offset + cur_offset,
7915 depth,
7916 )?;
7917
7918 _prev_end_offset = cur_offset + envelope_size;
7919
7920 Ok(())
7921 }
7922 }
7923
7924 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
7925 for WlanFullmacImplIfcDisassocIndRequest
7926 {
7927 #[inline(always)]
7928 fn new_empty() -> Self {
7929 Self::default()
7930 }
7931
7932 unsafe fn decode(
7933 &mut self,
7934 decoder: &mut fidl::encoding::Decoder<'_, D>,
7935 offset: usize,
7936 mut depth: fidl::encoding::Depth,
7937 ) -> fidl::Result<()> {
7938 decoder.debug_check_bounds::<Self>(offset);
7939 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
7940 None => return Err(fidl::Error::NotNullable),
7941 Some(len) => len,
7942 };
7943 if len == 0 {
7945 return Ok(());
7946 };
7947 depth.increment()?;
7948 let envelope_size = 8;
7949 let bytes_len = len * envelope_size;
7950 let offset = decoder.out_of_line_offset(bytes_len)?;
7951 let mut _next_ordinal_to_read = 0;
7953 let mut next_offset = offset;
7954 let end_offset = offset + bytes_len;
7955 _next_ordinal_to_read += 1;
7956 if next_offset >= end_offset {
7957 return Ok(());
7958 }
7959
7960 while _next_ordinal_to_read < 1 {
7962 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7963 _next_ordinal_to_read += 1;
7964 next_offset += envelope_size;
7965 }
7966
7967 let next_out_of_line = decoder.next_out_of_line();
7968 let handles_before = decoder.remaining_handles();
7969 if let Some((inlined, num_bytes, num_handles)) =
7970 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7971 {
7972 let member_inline_size =
7973 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
7974 decoder.context,
7975 );
7976 if inlined != (member_inline_size <= 4) {
7977 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7978 }
7979 let inner_offset;
7980 let mut inner_depth = depth.clone();
7981 if inlined {
7982 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7983 inner_offset = next_offset;
7984 } else {
7985 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7986 inner_depth.increment()?;
7987 }
7988 let val_ref = self
7989 .peer_sta_address
7990 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
7991 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
7992 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7993 {
7994 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7995 }
7996 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7997 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7998 }
7999 }
8000
8001 next_offset += envelope_size;
8002 _next_ordinal_to_read += 1;
8003 if next_offset >= end_offset {
8004 return Ok(());
8005 }
8006
8007 while _next_ordinal_to_read < 2 {
8009 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8010 _next_ordinal_to_read += 1;
8011 next_offset += envelope_size;
8012 }
8013
8014 let next_out_of_line = decoder.next_out_of_line();
8015 let handles_before = decoder.remaining_handles();
8016 if let Some((inlined, num_bytes, num_handles)) =
8017 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8018 {
8019 let member_inline_size = <fidl_fuchsia_wlan_ieee80211__common::ReasonCode as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8020 if inlined != (member_inline_size <= 4) {
8021 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8022 }
8023 let inner_offset;
8024 let mut inner_depth = depth.clone();
8025 if inlined {
8026 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8027 inner_offset = next_offset;
8028 } else {
8029 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8030 inner_depth.increment()?;
8031 }
8032 let val_ref = self.reason_code.get_or_insert_with(|| {
8033 fidl::new_empty!(fidl_fuchsia_wlan_ieee80211__common::ReasonCode, D)
8034 });
8035 fidl::decode!(
8036 fidl_fuchsia_wlan_ieee80211__common::ReasonCode,
8037 D,
8038 val_ref,
8039 decoder,
8040 inner_offset,
8041 inner_depth
8042 )?;
8043 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8044 {
8045 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8046 }
8047 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8048 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8049 }
8050 }
8051
8052 next_offset += envelope_size;
8053 _next_ordinal_to_read += 1;
8054 if next_offset >= end_offset {
8055 return Ok(());
8056 }
8057
8058 while _next_ordinal_to_read < 3 {
8060 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8061 _next_ordinal_to_read += 1;
8062 next_offset += envelope_size;
8063 }
8064
8065 let next_out_of_line = decoder.next_out_of_line();
8066 let handles_before = decoder.remaining_handles();
8067 if let Some((inlined, num_bytes, num_handles)) =
8068 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8069 {
8070 let member_inline_size =
8071 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8072 if inlined != (member_inline_size <= 4) {
8073 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8074 }
8075 let inner_offset;
8076 let mut inner_depth = depth.clone();
8077 if inlined {
8078 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8079 inner_offset = next_offset;
8080 } else {
8081 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8082 inner_depth.increment()?;
8083 }
8084 let val_ref =
8085 self.locally_initiated.get_or_insert_with(|| fidl::new_empty!(bool, D));
8086 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
8087 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8088 {
8089 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8090 }
8091 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8092 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8093 }
8094 }
8095
8096 next_offset += envelope_size;
8097
8098 while next_offset < end_offset {
8100 _next_ordinal_to_read += 1;
8101 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8102 next_offset += envelope_size;
8103 }
8104
8105 Ok(())
8106 }
8107 }
8108
8109 impl WlanFullmacImplIfcEapolConfRequest {
8110 #[inline(always)]
8111 fn max_ordinal_present(&self) -> u64 {
8112 if let Some(_) = self.dst_addr {
8113 return 2;
8114 }
8115 if let Some(_) = self.result_code {
8116 return 1;
8117 }
8118 0
8119 }
8120 }
8121
8122 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcEapolConfRequest {
8123 type Borrowed<'a> = &'a Self;
8124 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
8125 value
8126 }
8127 }
8128
8129 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcEapolConfRequest {
8130 type Owned = Self;
8131
8132 #[inline(always)]
8133 fn inline_align(_context: fidl::encoding::Context) -> usize {
8134 8
8135 }
8136
8137 #[inline(always)]
8138 fn inline_size(_context: fidl::encoding::Context) -> usize {
8139 16
8140 }
8141 }
8142
8143 unsafe impl<D: fidl::encoding::ResourceDialect>
8144 fidl::encoding::Encode<WlanFullmacImplIfcEapolConfRequest, D>
8145 for &WlanFullmacImplIfcEapolConfRequest
8146 {
8147 unsafe fn encode(
8148 self,
8149 encoder: &mut fidl::encoding::Encoder<'_, D>,
8150 offset: usize,
8151 mut depth: fidl::encoding::Depth,
8152 ) -> fidl::Result<()> {
8153 encoder.debug_check_bounds::<WlanFullmacImplIfcEapolConfRequest>(offset);
8154 let max_ordinal: u64 = self.max_ordinal_present();
8156 encoder.write_num(max_ordinal, offset);
8157 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
8158 if max_ordinal == 0 {
8160 return Ok(());
8161 }
8162 depth.increment()?;
8163 let envelope_size = 8;
8164 let bytes_len = max_ordinal as usize * envelope_size;
8165 #[allow(unused_variables)]
8166 let offset = encoder.out_of_line_offset(bytes_len);
8167 let mut _prev_end_offset: usize = 0;
8168 if 1 > max_ordinal {
8169 return Ok(());
8170 }
8171
8172 let cur_offset: usize = (1 - 1) * envelope_size;
8175
8176 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8178
8179 fidl::encoding::encode_in_envelope_optional::<EapolTxResult, D>(
8184 self.result_code
8185 .as_ref()
8186 .map(<EapolTxResult as fidl::encoding::ValueTypeMarker>::borrow),
8187 encoder,
8188 offset + cur_offset,
8189 depth,
8190 )?;
8191
8192 _prev_end_offset = cur_offset + envelope_size;
8193 if 2 > max_ordinal {
8194 return Ok(());
8195 }
8196
8197 let cur_offset: usize = (2 - 1) * envelope_size;
8200
8201 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8203
8204 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
8209 self.dst_addr
8210 .as_ref()
8211 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
8212 encoder,
8213 offset + cur_offset,
8214 depth,
8215 )?;
8216
8217 _prev_end_offset = cur_offset + envelope_size;
8218
8219 Ok(())
8220 }
8221 }
8222
8223 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
8224 for WlanFullmacImplIfcEapolConfRequest
8225 {
8226 #[inline(always)]
8227 fn new_empty() -> Self {
8228 Self::default()
8229 }
8230
8231 unsafe fn decode(
8232 &mut self,
8233 decoder: &mut fidl::encoding::Decoder<'_, D>,
8234 offset: usize,
8235 mut depth: fidl::encoding::Depth,
8236 ) -> fidl::Result<()> {
8237 decoder.debug_check_bounds::<Self>(offset);
8238 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
8239 None => return Err(fidl::Error::NotNullable),
8240 Some(len) => len,
8241 };
8242 if len == 0 {
8244 return Ok(());
8245 };
8246 depth.increment()?;
8247 let envelope_size = 8;
8248 let bytes_len = len * envelope_size;
8249 let offset = decoder.out_of_line_offset(bytes_len)?;
8250 let mut _next_ordinal_to_read = 0;
8252 let mut next_offset = offset;
8253 let end_offset = offset + bytes_len;
8254 _next_ordinal_to_read += 1;
8255 if next_offset >= end_offset {
8256 return Ok(());
8257 }
8258
8259 while _next_ordinal_to_read < 1 {
8261 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8262 _next_ordinal_to_read += 1;
8263 next_offset += envelope_size;
8264 }
8265
8266 let next_out_of_line = decoder.next_out_of_line();
8267 let handles_before = decoder.remaining_handles();
8268 if let Some((inlined, num_bytes, num_handles)) =
8269 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8270 {
8271 let member_inline_size =
8272 <EapolTxResult as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8273 if inlined != (member_inline_size <= 4) {
8274 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8275 }
8276 let inner_offset;
8277 let mut inner_depth = depth.clone();
8278 if inlined {
8279 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8280 inner_offset = next_offset;
8281 } else {
8282 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8283 inner_depth.increment()?;
8284 }
8285 let val_ref =
8286 self.result_code.get_or_insert_with(|| fidl::new_empty!(EapolTxResult, D));
8287 fidl::decode!(EapolTxResult, D, val_ref, decoder, inner_offset, inner_depth)?;
8288 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8289 {
8290 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8291 }
8292 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8293 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8294 }
8295 }
8296
8297 next_offset += envelope_size;
8298 _next_ordinal_to_read += 1;
8299 if next_offset >= end_offset {
8300 return Ok(());
8301 }
8302
8303 while _next_ordinal_to_read < 2 {
8305 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8306 _next_ordinal_to_read += 1;
8307 next_offset += envelope_size;
8308 }
8309
8310 let next_out_of_line = decoder.next_out_of_line();
8311 let handles_before = decoder.remaining_handles();
8312 if let Some((inlined, num_bytes, num_handles)) =
8313 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8314 {
8315 let member_inline_size =
8316 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
8317 decoder.context,
8318 );
8319 if inlined != (member_inline_size <= 4) {
8320 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8321 }
8322 let inner_offset;
8323 let mut inner_depth = depth.clone();
8324 if inlined {
8325 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8326 inner_offset = next_offset;
8327 } else {
8328 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8329 inner_depth.increment()?;
8330 }
8331 let val_ref = self
8332 .dst_addr
8333 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
8334 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
8335 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8336 {
8337 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8338 }
8339 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8340 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8341 }
8342 }
8343
8344 next_offset += envelope_size;
8345
8346 while next_offset < end_offset {
8348 _next_ordinal_to_read += 1;
8349 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8350 next_offset += envelope_size;
8351 }
8352
8353 Ok(())
8354 }
8355 }
8356
8357 impl WlanFullmacImplIfcEapolIndRequest {
8358 #[inline(always)]
8359 fn max_ordinal_present(&self) -> u64 {
8360 if let Some(_) = self.data {
8361 return 3;
8362 }
8363 if let Some(_) = self.dst_addr {
8364 return 2;
8365 }
8366 if let Some(_) = self.src_addr {
8367 return 1;
8368 }
8369 0
8370 }
8371 }
8372
8373 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcEapolIndRequest {
8374 type Borrowed<'a> = &'a Self;
8375 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
8376 value
8377 }
8378 }
8379
8380 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcEapolIndRequest {
8381 type Owned = Self;
8382
8383 #[inline(always)]
8384 fn inline_align(_context: fidl::encoding::Context) -> usize {
8385 8
8386 }
8387
8388 #[inline(always)]
8389 fn inline_size(_context: fidl::encoding::Context) -> usize {
8390 16
8391 }
8392 }
8393
8394 unsafe impl<D: fidl::encoding::ResourceDialect>
8395 fidl::encoding::Encode<WlanFullmacImplIfcEapolIndRequest, D>
8396 for &WlanFullmacImplIfcEapolIndRequest
8397 {
8398 unsafe fn encode(
8399 self,
8400 encoder: &mut fidl::encoding::Encoder<'_, D>,
8401 offset: usize,
8402 mut depth: fidl::encoding::Depth,
8403 ) -> fidl::Result<()> {
8404 encoder.debug_check_bounds::<WlanFullmacImplIfcEapolIndRequest>(offset);
8405 let max_ordinal: u64 = self.max_ordinal_present();
8407 encoder.write_num(max_ordinal, offset);
8408 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
8409 if max_ordinal == 0 {
8411 return Ok(());
8412 }
8413 depth.increment()?;
8414 let envelope_size = 8;
8415 let bytes_len = max_ordinal as usize * envelope_size;
8416 #[allow(unused_variables)]
8417 let offset = encoder.out_of_line_offset(bytes_len);
8418 let mut _prev_end_offset: usize = 0;
8419 if 1 > max_ordinal {
8420 return Ok(());
8421 }
8422
8423 let cur_offset: usize = (1 - 1) * envelope_size;
8426
8427 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8429
8430 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
8435 self.src_addr
8436 .as_ref()
8437 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
8438 encoder,
8439 offset + cur_offset,
8440 depth,
8441 )?;
8442
8443 _prev_end_offset = cur_offset + envelope_size;
8444 if 2 > max_ordinal {
8445 return Ok(());
8446 }
8447
8448 let cur_offset: usize = (2 - 1) * envelope_size;
8451
8452 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8454
8455 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
8460 self.dst_addr
8461 .as_ref()
8462 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
8463 encoder,
8464 offset + cur_offset,
8465 depth,
8466 )?;
8467
8468 _prev_end_offset = cur_offset + envelope_size;
8469 if 3 > max_ordinal {
8470 return Ok(());
8471 }
8472
8473 let cur_offset: usize = (3 - 1) * envelope_size;
8476
8477 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8479
8480 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<u8>, D>(
8485 self.data.as_ref().map(<fidl::encoding::UnboundedVector<u8> as fidl::encoding::ValueTypeMarker>::borrow),
8486 encoder, offset + cur_offset, depth
8487 )?;
8488
8489 _prev_end_offset = cur_offset + envelope_size;
8490
8491 Ok(())
8492 }
8493 }
8494
8495 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
8496 for WlanFullmacImplIfcEapolIndRequest
8497 {
8498 #[inline(always)]
8499 fn new_empty() -> Self {
8500 Self::default()
8501 }
8502
8503 unsafe fn decode(
8504 &mut self,
8505 decoder: &mut fidl::encoding::Decoder<'_, D>,
8506 offset: usize,
8507 mut depth: fidl::encoding::Depth,
8508 ) -> fidl::Result<()> {
8509 decoder.debug_check_bounds::<Self>(offset);
8510 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
8511 None => return Err(fidl::Error::NotNullable),
8512 Some(len) => len,
8513 };
8514 if len == 0 {
8516 return Ok(());
8517 };
8518 depth.increment()?;
8519 let envelope_size = 8;
8520 let bytes_len = len * envelope_size;
8521 let offset = decoder.out_of_line_offset(bytes_len)?;
8522 let mut _next_ordinal_to_read = 0;
8524 let mut next_offset = offset;
8525 let end_offset = offset + bytes_len;
8526 _next_ordinal_to_read += 1;
8527 if next_offset >= end_offset {
8528 return Ok(());
8529 }
8530
8531 while _next_ordinal_to_read < 1 {
8533 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8534 _next_ordinal_to_read += 1;
8535 next_offset += envelope_size;
8536 }
8537
8538 let next_out_of_line = decoder.next_out_of_line();
8539 let handles_before = decoder.remaining_handles();
8540 if let Some((inlined, num_bytes, num_handles)) =
8541 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8542 {
8543 let member_inline_size =
8544 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
8545 decoder.context,
8546 );
8547 if inlined != (member_inline_size <= 4) {
8548 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8549 }
8550 let inner_offset;
8551 let mut inner_depth = depth.clone();
8552 if inlined {
8553 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8554 inner_offset = next_offset;
8555 } else {
8556 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8557 inner_depth.increment()?;
8558 }
8559 let val_ref = self
8560 .src_addr
8561 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
8562 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
8563 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8564 {
8565 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8566 }
8567 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8568 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8569 }
8570 }
8571
8572 next_offset += envelope_size;
8573 _next_ordinal_to_read += 1;
8574 if next_offset >= end_offset {
8575 return Ok(());
8576 }
8577
8578 while _next_ordinal_to_read < 2 {
8580 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8581 _next_ordinal_to_read += 1;
8582 next_offset += envelope_size;
8583 }
8584
8585 let next_out_of_line = decoder.next_out_of_line();
8586 let handles_before = decoder.remaining_handles();
8587 if let Some((inlined, num_bytes, num_handles)) =
8588 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8589 {
8590 let member_inline_size =
8591 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
8592 decoder.context,
8593 );
8594 if inlined != (member_inline_size <= 4) {
8595 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8596 }
8597 let inner_offset;
8598 let mut inner_depth = depth.clone();
8599 if inlined {
8600 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8601 inner_offset = next_offset;
8602 } else {
8603 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8604 inner_depth.increment()?;
8605 }
8606 let val_ref = self
8607 .dst_addr
8608 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
8609 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
8610 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8611 {
8612 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8613 }
8614 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8615 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8616 }
8617 }
8618
8619 next_offset += envelope_size;
8620 _next_ordinal_to_read += 1;
8621 if next_offset >= end_offset {
8622 return Ok(());
8623 }
8624
8625 while _next_ordinal_to_read < 3 {
8627 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8628 _next_ordinal_to_read += 1;
8629 next_offset += envelope_size;
8630 }
8631
8632 let next_out_of_line = decoder.next_out_of_line();
8633 let handles_before = decoder.remaining_handles();
8634 if let Some((inlined, num_bytes, num_handles)) =
8635 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8636 {
8637 let member_inline_size = <fidl::encoding::UnboundedVector<u8> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8638 if inlined != (member_inline_size <= 4) {
8639 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8640 }
8641 let inner_offset;
8642 let mut inner_depth = depth.clone();
8643 if inlined {
8644 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8645 inner_offset = next_offset;
8646 } else {
8647 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8648 inner_depth.increment()?;
8649 }
8650 let val_ref = self.data.get_or_insert_with(|| {
8651 fidl::new_empty!(fidl::encoding::UnboundedVector<u8>, D)
8652 });
8653 fidl::decode!(
8654 fidl::encoding::UnboundedVector<u8>,
8655 D,
8656 val_ref,
8657 decoder,
8658 inner_offset,
8659 inner_depth
8660 )?;
8661 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8662 {
8663 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8664 }
8665 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8666 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8667 }
8668 }
8669
8670 next_offset += envelope_size;
8671
8672 while next_offset < end_offset {
8674 _next_ordinal_to_read += 1;
8675 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8676 next_offset += envelope_size;
8677 }
8678
8679 Ok(())
8680 }
8681 }
8682
8683 impl WlanFullmacImplIfcOnPmkAvailableRequest {
8684 #[inline(always)]
8685 fn max_ordinal_present(&self) -> u64 {
8686 if let Some(_) = self.pmkid {
8687 return 2;
8688 }
8689 if let Some(_) = self.pmk {
8690 return 1;
8691 }
8692 0
8693 }
8694 }
8695
8696 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcOnPmkAvailableRequest {
8697 type Borrowed<'a> = &'a Self;
8698 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
8699 value
8700 }
8701 }
8702
8703 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcOnPmkAvailableRequest {
8704 type Owned = Self;
8705
8706 #[inline(always)]
8707 fn inline_align(_context: fidl::encoding::Context) -> usize {
8708 8
8709 }
8710
8711 #[inline(always)]
8712 fn inline_size(_context: fidl::encoding::Context) -> usize {
8713 16
8714 }
8715 }
8716
8717 unsafe impl<D: fidl::encoding::ResourceDialect>
8718 fidl::encoding::Encode<WlanFullmacImplIfcOnPmkAvailableRequest, D>
8719 for &WlanFullmacImplIfcOnPmkAvailableRequest
8720 {
8721 unsafe fn encode(
8722 self,
8723 encoder: &mut fidl::encoding::Encoder<'_, D>,
8724 offset: usize,
8725 mut depth: fidl::encoding::Depth,
8726 ) -> fidl::Result<()> {
8727 encoder.debug_check_bounds::<WlanFullmacImplIfcOnPmkAvailableRequest>(offset);
8728 let max_ordinal: u64 = self.max_ordinal_present();
8730 encoder.write_num(max_ordinal, offset);
8731 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
8732 if max_ordinal == 0 {
8734 return Ok(());
8735 }
8736 depth.increment()?;
8737 let envelope_size = 8;
8738 let bytes_len = max_ordinal as usize * envelope_size;
8739 #[allow(unused_variables)]
8740 let offset = encoder.out_of_line_offset(bytes_len);
8741 let mut _prev_end_offset: usize = 0;
8742 if 1 > max_ordinal {
8743 return Ok(());
8744 }
8745
8746 let cur_offset: usize = (1 - 1) * envelope_size;
8749
8750 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8752
8753 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<u8>, D>(
8758 self.pmk.as_ref().map(<fidl::encoding::UnboundedVector<u8> as fidl::encoding::ValueTypeMarker>::borrow),
8759 encoder, offset + cur_offset, depth
8760 )?;
8761
8762 _prev_end_offset = cur_offset + envelope_size;
8763 if 2 > max_ordinal {
8764 return Ok(());
8765 }
8766
8767 let cur_offset: usize = (2 - 1) * envelope_size;
8770
8771 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8773
8774 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<u8>, D>(
8779 self.pmkid.as_ref().map(<fidl::encoding::UnboundedVector<u8> as fidl::encoding::ValueTypeMarker>::borrow),
8780 encoder, offset + cur_offset, depth
8781 )?;
8782
8783 _prev_end_offset = cur_offset + envelope_size;
8784
8785 Ok(())
8786 }
8787 }
8788
8789 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
8790 for WlanFullmacImplIfcOnPmkAvailableRequest
8791 {
8792 #[inline(always)]
8793 fn new_empty() -> Self {
8794 Self::default()
8795 }
8796
8797 unsafe fn decode(
8798 &mut self,
8799 decoder: &mut fidl::encoding::Decoder<'_, D>,
8800 offset: usize,
8801 mut depth: fidl::encoding::Depth,
8802 ) -> fidl::Result<()> {
8803 decoder.debug_check_bounds::<Self>(offset);
8804 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
8805 None => return Err(fidl::Error::NotNullable),
8806 Some(len) => len,
8807 };
8808 if len == 0 {
8810 return Ok(());
8811 };
8812 depth.increment()?;
8813 let envelope_size = 8;
8814 let bytes_len = len * envelope_size;
8815 let offset = decoder.out_of_line_offset(bytes_len)?;
8816 let mut _next_ordinal_to_read = 0;
8818 let mut next_offset = offset;
8819 let end_offset = offset + bytes_len;
8820 _next_ordinal_to_read += 1;
8821 if next_offset >= end_offset {
8822 return Ok(());
8823 }
8824
8825 while _next_ordinal_to_read < 1 {
8827 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8828 _next_ordinal_to_read += 1;
8829 next_offset += envelope_size;
8830 }
8831
8832 let next_out_of_line = decoder.next_out_of_line();
8833 let handles_before = decoder.remaining_handles();
8834 if let Some((inlined, num_bytes, num_handles)) =
8835 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8836 {
8837 let member_inline_size = <fidl::encoding::UnboundedVector<u8> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8838 if inlined != (member_inline_size <= 4) {
8839 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8840 }
8841 let inner_offset;
8842 let mut inner_depth = depth.clone();
8843 if inlined {
8844 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8845 inner_offset = next_offset;
8846 } else {
8847 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8848 inner_depth.increment()?;
8849 }
8850 let val_ref = self.pmk.get_or_insert_with(|| {
8851 fidl::new_empty!(fidl::encoding::UnboundedVector<u8>, D)
8852 });
8853 fidl::decode!(
8854 fidl::encoding::UnboundedVector<u8>,
8855 D,
8856 val_ref,
8857 decoder,
8858 inner_offset,
8859 inner_depth
8860 )?;
8861 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8862 {
8863 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8864 }
8865 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8866 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8867 }
8868 }
8869
8870 next_offset += envelope_size;
8871 _next_ordinal_to_read += 1;
8872 if next_offset >= end_offset {
8873 return Ok(());
8874 }
8875
8876 while _next_ordinal_to_read < 2 {
8878 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8879 _next_ordinal_to_read += 1;
8880 next_offset += envelope_size;
8881 }
8882
8883 let next_out_of_line = decoder.next_out_of_line();
8884 let handles_before = decoder.remaining_handles();
8885 if let Some((inlined, num_bytes, num_handles)) =
8886 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8887 {
8888 let member_inline_size = <fidl::encoding::UnboundedVector<u8> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8889 if inlined != (member_inline_size <= 4) {
8890 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8891 }
8892 let inner_offset;
8893 let mut inner_depth = depth.clone();
8894 if inlined {
8895 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8896 inner_offset = next_offset;
8897 } else {
8898 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8899 inner_depth.increment()?;
8900 }
8901 let val_ref = self.pmkid.get_or_insert_with(|| {
8902 fidl::new_empty!(fidl::encoding::UnboundedVector<u8>, D)
8903 });
8904 fidl::decode!(
8905 fidl::encoding::UnboundedVector<u8>,
8906 D,
8907 val_ref,
8908 decoder,
8909 inner_offset,
8910 inner_depth
8911 )?;
8912 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8913 {
8914 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8915 }
8916 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8917 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8918 }
8919 }
8920
8921 next_offset += envelope_size;
8922
8923 while next_offset < end_offset {
8925 _next_ordinal_to_read += 1;
8926 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8927 next_offset += envelope_size;
8928 }
8929
8930 Ok(())
8931 }
8932 }
8933
8934 impl WlanFullmacImplIfcOnScanEndRequest {
8935 #[inline(always)]
8936 fn max_ordinal_present(&self) -> u64 {
8937 if let Some(_) = self.code {
8938 return 2;
8939 }
8940 if let Some(_) = self.txn_id {
8941 return 1;
8942 }
8943 0
8944 }
8945 }
8946
8947 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcOnScanEndRequest {
8948 type Borrowed<'a> = &'a Self;
8949 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
8950 value
8951 }
8952 }
8953
8954 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcOnScanEndRequest {
8955 type Owned = Self;
8956
8957 #[inline(always)]
8958 fn inline_align(_context: fidl::encoding::Context) -> usize {
8959 8
8960 }
8961
8962 #[inline(always)]
8963 fn inline_size(_context: fidl::encoding::Context) -> usize {
8964 16
8965 }
8966 }
8967
8968 unsafe impl<D: fidl::encoding::ResourceDialect>
8969 fidl::encoding::Encode<WlanFullmacImplIfcOnScanEndRequest, D>
8970 for &WlanFullmacImplIfcOnScanEndRequest
8971 {
8972 unsafe fn encode(
8973 self,
8974 encoder: &mut fidl::encoding::Encoder<'_, D>,
8975 offset: usize,
8976 mut depth: fidl::encoding::Depth,
8977 ) -> fidl::Result<()> {
8978 encoder.debug_check_bounds::<WlanFullmacImplIfcOnScanEndRequest>(offset);
8979 let max_ordinal: u64 = self.max_ordinal_present();
8981 encoder.write_num(max_ordinal, offset);
8982 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
8983 if max_ordinal == 0 {
8985 return Ok(());
8986 }
8987 depth.increment()?;
8988 let envelope_size = 8;
8989 let bytes_len = max_ordinal as usize * envelope_size;
8990 #[allow(unused_variables)]
8991 let offset = encoder.out_of_line_offset(bytes_len);
8992 let mut _prev_end_offset: usize = 0;
8993 if 1 > max_ordinal {
8994 return Ok(());
8995 }
8996
8997 let cur_offset: usize = (1 - 1) * envelope_size;
9000
9001 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9003
9004 fidl::encoding::encode_in_envelope_optional::<u64, D>(
9009 self.txn_id.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
9010 encoder,
9011 offset + cur_offset,
9012 depth,
9013 )?;
9014
9015 _prev_end_offset = cur_offset + envelope_size;
9016 if 2 > max_ordinal {
9017 return Ok(());
9018 }
9019
9020 let cur_offset: usize = (2 - 1) * envelope_size;
9023
9024 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9026
9027 fidl::encoding::encode_in_envelope_optional::<WlanScanResult, D>(
9032 self.code.as_ref().map(<WlanScanResult as fidl::encoding::ValueTypeMarker>::borrow),
9033 encoder,
9034 offset + cur_offset,
9035 depth,
9036 )?;
9037
9038 _prev_end_offset = cur_offset + envelope_size;
9039
9040 Ok(())
9041 }
9042 }
9043
9044 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
9045 for WlanFullmacImplIfcOnScanEndRequest
9046 {
9047 #[inline(always)]
9048 fn new_empty() -> Self {
9049 Self::default()
9050 }
9051
9052 unsafe fn decode(
9053 &mut self,
9054 decoder: &mut fidl::encoding::Decoder<'_, D>,
9055 offset: usize,
9056 mut depth: fidl::encoding::Depth,
9057 ) -> fidl::Result<()> {
9058 decoder.debug_check_bounds::<Self>(offset);
9059 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
9060 None => return Err(fidl::Error::NotNullable),
9061 Some(len) => len,
9062 };
9063 if len == 0 {
9065 return Ok(());
9066 };
9067 depth.increment()?;
9068 let envelope_size = 8;
9069 let bytes_len = len * envelope_size;
9070 let offset = decoder.out_of_line_offset(bytes_len)?;
9071 let mut _next_ordinal_to_read = 0;
9073 let mut next_offset = offset;
9074 let end_offset = offset + bytes_len;
9075 _next_ordinal_to_read += 1;
9076 if next_offset >= end_offset {
9077 return Ok(());
9078 }
9079
9080 while _next_ordinal_to_read < 1 {
9082 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9083 _next_ordinal_to_read += 1;
9084 next_offset += envelope_size;
9085 }
9086
9087 let next_out_of_line = decoder.next_out_of_line();
9088 let handles_before = decoder.remaining_handles();
9089 if let Some((inlined, num_bytes, num_handles)) =
9090 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9091 {
9092 let member_inline_size =
9093 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
9094 if inlined != (member_inline_size <= 4) {
9095 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9096 }
9097 let inner_offset;
9098 let mut inner_depth = depth.clone();
9099 if inlined {
9100 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9101 inner_offset = next_offset;
9102 } else {
9103 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9104 inner_depth.increment()?;
9105 }
9106 let val_ref = self.txn_id.get_or_insert_with(|| fidl::new_empty!(u64, D));
9107 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
9108 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9109 {
9110 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9111 }
9112 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9113 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9114 }
9115 }
9116
9117 next_offset += envelope_size;
9118 _next_ordinal_to_read += 1;
9119 if next_offset >= end_offset {
9120 return Ok(());
9121 }
9122
9123 while _next_ordinal_to_read < 2 {
9125 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9126 _next_ordinal_to_read += 1;
9127 next_offset += envelope_size;
9128 }
9129
9130 let next_out_of_line = decoder.next_out_of_line();
9131 let handles_before = decoder.remaining_handles();
9132 if let Some((inlined, num_bytes, num_handles)) =
9133 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9134 {
9135 let member_inline_size =
9136 <WlanScanResult as fidl::encoding::TypeMarker>::inline_size(decoder.context);
9137 if inlined != (member_inline_size <= 4) {
9138 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9139 }
9140 let inner_offset;
9141 let mut inner_depth = depth.clone();
9142 if inlined {
9143 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9144 inner_offset = next_offset;
9145 } else {
9146 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9147 inner_depth.increment()?;
9148 }
9149 let val_ref = self.code.get_or_insert_with(|| fidl::new_empty!(WlanScanResult, D));
9150 fidl::decode!(WlanScanResult, D, val_ref, decoder, inner_offset, inner_depth)?;
9151 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9152 {
9153 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9154 }
9155 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9156 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9157 }
9158 }
9159
9160 next_offset += envelope_size;
9161
9162 while next_offset < end_offset {
9164 _next_ordinal_to_read += 1;
9165 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9166 next_offset += envelope_size;
9167 }
9168
9169 Ok(())
9170 }
9171 }
9172
9173 impl WlanFullmacImplIfcOnScanResultRequest {
9174 #[inline(always)]
9175 fn max_ordinal_present(&self) -> u64 {
9176 if let Some(_) = self.bss {
9177 return 3;
9178 }
9179 if let Some(_) = self.timestamp_nanos {
9180 return 2;
9181 }
9182 if let Some(_) = self.txn_id {
9183 return 1;
9184 }
9185 0
9186 }
9187 }
9188
9189 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcOnScanResultRequest {
9190 type Borrowed<'a> = &'a Self;
9191 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
9192 value
9193 }
9194 }
9195
9196 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcOnScanResultRequest {
9197 type Owned = Self;
9198
9199 #[inline(always)]
9200 fn inline_align(_context: fidl::encoding::Context) -> usize {
9201 8
9202 }
9203
9204 #[inline(always)]
9205 fn inline_size(_context: fidl::encoding::Context) -> usize {
9206 16
9207 }
9208 }
9209
9210 unsafe impl<D: fidl::encoding::ResourceDialect>
9211 fidl::encoding::Encode<WlanFullmacImplIfcOnScanResultRequest, D>
9212 for &WlanFullmacImplIfcOnScanResultRequest
9213 {
9214 unsafe fn encode(
9215 self,
9216 encoder: &mut fidl::encoding::Encoder<'_, D>,
9217 offset: usize,
9218 mut depth: fidl::encoding::Depth,
9219 ) -> fidl::Result<()> {
9220 encoder.debug_check_bounds::<WlanFullmacImplIfcOnScanResultRequest>(offset);
9221 let max_ordinal: u64 = self.max_ordinal_present();
9223 encoder.write_num(max_ordinal, offset);
9224 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
9225 if max_ordinal == 0 {
9227 return Ok(());
9228 }
9229 depth.increment()?;
9230 let envelope_size = 8;
9231 let bytes_len = max_ordinal as usize * envelope_size;
9232 #[allow(unused_variables)]
9233 let offset = encoder.out_of_line_offset(bytes_len);
9234 let mut _prev_end_offset: usize = 0;
9235 if 1 > max_ordinal {
9236 return Ok(());
9237 }
9238
9239 let cur_offset: usize = (1 - 1) * envelope_size;
9242
9243 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9245
9246 fidl::encoding::encode_in_envelope_optional::<u64, D>(
9251 self.txn_id.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
9252 encoder,
9253 offset + cur_offset,
9254 depth,
9255 )?;
9256
9257 _prev_end_offset = cur_offset + envelope_size;
9258 if 2 > max_ordinal {
9259 return Ok(());
9260 }
9261
9262 let cur_offset: usize = (2 - 1) * envelope_size;
9265
9266 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9268
9269 fidl::encoding::encode_in_envelope_optional::<i64, D>(
9274 self.timestamp_nanos.as_ref().map(<i64 as fidl::encoding::ValueTypeMarker>::borrow),
9275 encoder,
9276 offset + cur_offset,
9277 depth,
9278 )?;
9279
9280 _prev_end_offset = cur_offset + envelope_size;
9281 if 3 > max_ordinal {
9282 return Ok(());
9283 }
9284
9285 let cur_offset: usize = (3 - 1) * envelope_size;
9288
9289 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9291
9292 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_common__common::BssDescription, D>(
9297 self.bss.as_ref().map(<fidl_fuchsia_wlan_common__common::BssDescription as fidl::encoding::ValueTypeMarker>::borrow),
9298 encoder, offset + cur_offset, depth
9299 )?;
9300
9301 _prev_end_offset = cur_offset + envelope_size;
9302
9303 Ok(())
9304 }
9305 }
9306
9307 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
9308 for WlanFullmacImplIfcOnScanResultRequest
9309 {
9310 #[inline(always)]
9311 fn new_empty() -> Self {
9312 Self::default()
9313 }
9314
9315 unsafe fn decode(
9316 &mut self,
9317 decoder: &mut fidl::encoding::Decoder<'_, D>,
9318 offset: usize,
9319 mut depth: fidl::encoding::Depth,
9320 ) -> fidl::Result<()> {
9321 decoder.debug_check_bounds::<Self>(offset);
9322 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
9323 None => return Err(fidl::Error::NotNullable),
9324 Some(len) => len,
9325 };
9326 if len == 0 {
9328 return Ok(());
9329 };
9330 depth.increment()?;
9331 let envelope_size = 8;
9332 let bytes_len = len * envelope_size;
9333 let offset = decoder.out_of_line_offset(bytes_len)?;
9334 let mut _next_ordinal_to_read = 0;
9336 let mut next_offset = offset;
9337 let end_offset = offset + bytes_len;
9338 _next_ordinal_to_read += 1;
9339 if next_offset >= end_offset {
9340 return Ok(());
9341 }
9342
9343 while _next_ordinal_to_read < 1 {
9345 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9346 _next_ordinal_to_read += 1;
9347 next_offset += envelope_size;
9348 }
9349
9350 let next_out_of_line = decoder.next_out_of_line();
9351 let handles_before = decoder.remaining_handles();
9352 if let Some((inlined, num_bytes, num_handles)) =
9353 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9354 {
9355 let member_inline_size =
9356 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
9357 if inlined != (member_inline_size <= 4) {
9358 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9359 }
9360 let inner_offset;
9361 let mut inner_depth = depth.clone();
9362 if inlined {
9363 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9364 inner_offset = next_offset;
9365 } else {
9366 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9367 inner_depth.increment()?;
9368 }
9369 let val_ref = self.txn_id.get_or_insert_with(|| fidl::new_empty!(u64, D));
9370 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
9371 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9372 {
9373 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9374 }
9375 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9376 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9377 }
9378 }
9379
9380 next_offset += envelope_size;
9381 _next_ordinal_to_read += 1;
9382 if next_offset >= end_offset {
9383 return Ok(());
9384 }
9385
9386 while _next_ordinal_to_read < 2 {
9388 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9389 _next_ordinal_to_read += 1;
9390 next_offset += envelope_size;
9391 }
9392
9393 let next_out_of_line = decoder.next_out_of_line();
9394 let handles_before = decoder.remaining_handles();
9395 if let Some((inlined, num_bytes, num_handles)) =
9396 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9397 {
9398 let member_inline_size =
9399 <i64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
9400 if inlined != (member_inline_size <= 4) {
9401 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9402 }
9403 let inner_offset;
9404 let mut inner_depth = depth.clone();
9405 if inlined {
9406 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9407 inner_offset = next_offset;
9408 } else {
9409 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9410 inner_depth.increment()?;
9411 }
9412 let val_ref = self.timestamp_nanos.get_or_insert_with(|| fidl::new_empty!(i64, D));
9413 fidl::decode!(i64, D, val_ref, decoder, inner_offset, inner_depth)?;
9414 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9415 {
9416 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9417 }
9418 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9419 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9420 }
9421 }
9422
9423 next_offset += envelope_size;
9424 _next_ordinal_to_read += 1;
9425 if next_offset >= end_offset {
9426 return Ok(());
9427 }
9428
9429 while _next_ordinal_to_read < 3 {
9431 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9432 _next_ordinal_to_read += 1;
9433 next_offset += envelope_size;
9434 }
9435
9436 let next_out_of_line = decoder.next_out_of_line();
9437 let handles_before = decoder.remaining_handles();
9438 if let Some((inlined, num_bytes, num_handles)) =
9439 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9440 {
9441 let member_inline_size = <fidl_fuchsia_wlan_common__common::BssDescription as fidl::encoding::TypeMarker>::inline_size(decoder.context);
9442 if inlined != (member_inline_size <= 4) {
9443 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9444 }
9445 let inner_offset;
9446 let mut inner_depth = depth.clone();
9447 if inlined {
9448 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9449 inner_offset = next_offset;
9450 } else {
9451 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9452 inner_depth.increment()?;
9453 }
9454 let val_ref = self.bss.get_or_insert_with(|| {
9455 fidl::new_empty!(fidl_fuchsia_wlan_common__common::BssDescription, D)
9456 });
9457 fidl::decode!(
9458 fidl_fuchsia_wlan_common__common::BssDescription,
9459 D,
9460 val_ref,
9461 decoder,
9462 inner_offset,
9463 inner_depth
9464 )?;
9465 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9466 {
9467 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9468 }
9469 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9470 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9471 }
9472 }
9473
9474 next_offset += envelope_size;
9475
9476 while next_offset < end_offset {
9478 _next_ordinal_to_read += 1;
9479 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9480 next_offset += envelope_size;
9481 }
9482
9483 Ok(())
9484 }
9485 }
9486
9487 impl WlanFullmacImplIfcRoamConfRequest {
9488 #[inline(always)]
9489 fn max_ordinal_present(&self) -> u64 {
9490 if let Some(_) = self.association_ies {
9491 return 6;
9492 }
9493 if let Some(_) = self.association_id {
9494 return 5;
9495 }
9496 if let Some(_) = self.target_bss_authenticated {
9497 return 4;
9498 }
9499 if let Some(_) = self.original_association_maintained {
9500 return 3;
9501 }
9502 if let Some(_) = self.status_code {
9503 return 2;
9504 }
9505 if let Some(_) = self.selected_bssid {
9506 return 1;
9507 }
9508 0
9509 }
9510 }
9511
9512 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcRoamConfRequest {
9513 type Borrowed<'a> = &'a Self;
9514 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
9515 value
9516 }
9517 }
9518
9519 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcRoamConfRequest {
9520 type Owned = Self;
9521
9522 #[inline(always)]
9523 fn inline_align(_context: fidl::encoding::Context) -> usize {
9524 8
9525 }
9526
9527 #[inline(always)]
9528 fn inline_size(_context: fidl::encoding::Context) -> usize {
9529 16
9530 }
9531 }
9532
9533 unsafe impl<D: fidl::encoding::ResourceDialect>
9534 fidl::encoding::Encode<WlanFullmacImplIfcRoamConfRequest, D>
9535 for &WlanFullmacImplIfcRoamConfRequest
9536 {
9537 unsafe fn encode(
9538 self,
9539 encoder: &mut fidl::encoding::Encoder<'_, D>,
9540 offset: usize,
9541 mut depth: fidl::encoding::Depth,
9542 ) -> fidl::Result<()> {
9543 encoder.debug_check_bounds::<WlanFullmacImplIfcRoamConfRequest>(offset);
9544 let max_ordinal: u64 = self.max_ordinal_present();
9546 encoder.write_num(max_ordinal, offset);
9547 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
9548 if max_ordinal == 0 {
9550 return Ok(());
9551 }
9552 depth.increment()?;
9553 let envelope_size = 8;
9554 let bytes_len = max_ordinal as usize * envelope_size;
9555 #[allow(unused_variables)]
9556 let offset = encoder.out_of_line_offset(bytes_len);
9557 let mut _prev_end_offset: usize = 0;
9558 if 1 > max_ordinal {
9559 return Ok(());
9560 }
9561
9562 let cur_offset: usize = (1 - 1) * envelope_size;
9565
9566 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9568
9569 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
9574 self.selected_bssid
9575 .as_ref()
9576 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
9577 encoder,
9578 offset + cur_offset,
9579 depth,
9580 )?;
9581
9582 _prev_end_offset = cur_offset + envelope_size;
9583 if 2 > max_ordinal {
9584 return Ok(());
9585 }
9586
9587 let cur_offset: usize = (2 - 1) * envelope_size;
9590
9591 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9593
9594 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_ieee80211__common::StatusCode, D>(
9599 self.status_code.as_ref().map(<fidl_fuchsia_wlan_ieee80211__common::StatusCode as fidl::encoding::ValueTypeMarker>::borrow),
9600 encoder, offset + cur_offset, depth
9601 )?;
9602
9603 _prev_end_offset = cur_offset + envelope_size;
9604 if 3 > max_ordinal {
9605 return Ok(());
9606 }
9607
9608 let cur_offset: usize = (3 - 1) * envelope_size;
9611
9612 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9614
9615 fidl::encoding::encode_in_envelope_optional::<bool, D>(
9620 self.original_association_maintained
9621 .as_ref()
9622 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
9623 encoder,
9624 offset + cur_offset,
9625 depth,
9626 )?;
9627
9628 _prev_end_offset = cur_offset + envelope_size;
9629 if 4 > max_ordinal {
9630 return Ok(());
9631 }
9632
9633 let cur_offset: usize = (4 - 1) * envelope_size;
9636
9637 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9639
9640 fidl::encoding::encode_in_envelope_optional::<bool, D>(
9645 self.target_bss_authenticated
9646 .as_ref()
9647 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
9648 encoder,
9649 offset + cur_offset,
9650 depth,
9651 )?;
9652
9653 _prev_end_offset = cur_offset + envelope_size;
9654 if 5 > max_ordinal {
9655 return Ok(());
9656 }
9657
9658 let cur_offset: usize = (5 - 1) * envelope_size;
9661
9662 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9664
9665 fidl::encoding::encode_in_envelope_optional::<u16, D>(
9670 self.association_id.as_ref().map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
9671 encoder,
9672 offset + cur_offset,
9673 depth,
9674 )?;
9675
9676 _prev_end_offset = cur_offset + envelope_size;
9677 if 6 > max_ordinal {
9678 return Ok(());
9679 }
9680
9681 let cur_offset: usize = (6 - 1) * envelope_size;
9684
9685 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9687
9688 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<u8>, D>(
9693 self.association_ies.as_ref().map(<fidl::encoding::UnboundedVector<u8> as fidl::encoding::ValueTypeMarker>::borrow),
9694 encoder, offset + cur_offset, depth
9695 )?;
9696
9697 _prev_end_offset = cur_offset + envelope_size;
9698
9699 Ok(())
9700 }
9701 }
9702
9703 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
9704 for WlanFullmacImplIfcRoamConfRequest
9705 {
9706 #[inline(always)]
9707 fn new_empty() -> Self {
9708 Self::default()
9709 }
9710
9711 unsafe fn decode(
9712 &mut self,
9713 decoder: &mut fidl::encoding::Decoder<'_, D>,
9714 offset: usize,
9715 mut depth: fidl::encoding::Depth,
9716 ) -> fidl::Result<()> {
9717 decoder.debug_check_bounds::<Self>(offset);
9718 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
9719 None => return Err(fidl::Error::NotNullable),
9720 Some(len) => len,
9721 };
9722 if len == 0 {
9724 return Ok(());
9725 };
9726 depth.increment()?;
9727 let envelope_size = 8;
9728 let bytes_len = len * envelope_size;
9729 let offset = decoder.out_of_line_offset(bytes_len)?;
9730 let mut _next_ordinal_to_read = 0;
9732 let mut next_offset = offset;
9733 let end_offset = offset + bytes_len;
9734 _next_ordinal_to_read += 1;
9735 if next_offset >= end_offset {
9736 return Ok(());
9737 }
9738
9739 while _next_ordinal_to_read < 1 {
9741 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9742 _next_ordinal_to_read += 1;
9743 next_offset += envelope_size;
9744 }
9745
9746 let next_out_of_line = decoder.next_out_of_line();
9747 let handles_before = decoder.remaining_handles();
9748 if let Some((inlined, num_bytes, num_handles)) =
9749 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9750 {
9751 let member_inline_size =
9752 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
9753 decoder.context,
9754 );
9755 if inlined != (member_inline_size <= 4) {
9756 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9757 }
9758 let inner_offset;
9759 let mut inner_depth = depth.clone();
9760 if inlined {
9761 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9762 inner_offset = next_offset;
9763 } else {
9764 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9765 inner_depth.increment()?;
9766 }
9767 let val_ref = self
9768 .selected_bssid
9769 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
9770 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
9771 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9772 {
9773 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9774 }
9775 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9776 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9777 }
9778 }
9779
9780 next_offset += envelope_size;
9781 _next_ordinal_to_read += 1;
9782 if next_offset >= end_offset {
9783 return Ok(());
9784 }
9785
9786 while _next_ordinal_to_read < 2 {
9788 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9789 _next_ordinal_to_read += 1;
9790 next_offset += envelope_size;
9791 }
9792
9793 let next_out_of_line = decoder.next_out_of_line();
9794 let handles_before = decoder.remaining_handles();
9795 if let Some((inlined, num_bytes, num_handles)) =
9796 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9797 {
9798 let member_inline_size = <fidl_fuchsia_wlan_ieee80211__common::StatusCode as fidl::encoding::TypeMarker>::inline_size(decoder.context);
9799 if inlined != (member_inline_size <= 4) {
9800 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9801 }
9802 let inner_offset;
9803 let mut inner_depth = depth.clone();
9804 if inlined {
9805 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9806 inner_offset = next_offset;
9807 } else {
9808 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9809 inner_depth.increment()?;
9810 }
9811 let val_ref = self.status_code.get_or_insert_with(|| {
9812 fidl::new_empty!(fidl_fuchsia_wlan_ieee80211__common::StatusCode, D)
9813 });
9814 fidl::decode!(
9815 fidl_fuchsia_wlan_ieee80211__common::StatusCode,
9816 D,
9817 val_ref,
9818 decoder,
9819 inner_offset,
9820 inner_depth
9821 )?;
9822 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9823 {
9824 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9825 }
9826 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9827 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9828 }
9829 }
9830
9831 next_offset += envelope_size;
9832 _next_ordinal_to_read += 1;
9833 if next_offset >= end_offset {
9834 return Ok(());
9835 }
9836
9837 while _next_ordinal_to_read < 3 {
9839 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9840 _next_ordinal_to_read += 1;
9841 next_offset += envelope_size;
9842 }
9843
9844 let next_out_of_line = decoder.next_out_of_line();
9845 let handles_before = decoder.remaining_handles();
9846 if let Some((inlined, num_bytes, num_handles)) =
9847 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9848 {
9849 let member_inline_size =
9850 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
9851 if inlined != (member_inline_size <= 4) {
9852 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9853 }
9854 let inner_offset;
9855 let mut inner_depth = depth.clone();
9856 if inlined {
9857 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9858 inner_offset = next_offset;
9859 } else {
9860 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9861 inner_depth.increment()?;
9862 }
9863 let val_ref = self
9864 .original_association_maintained
9865 .get_or_insert_with(|| fidl::new_empty!(bool, D));
9866 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
9867 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9868 {
9869 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9870 }
9871 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9872 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9873 }
9874 }
9875
9876 next_offset += envelope_size;
9877 _next_ordinal_to_read += 1;
9878 if next_offset >= end_offset {
9879 return Ok(());
9880 }
9881
9882 while _next_ordinal_to_read < 4 {
9884 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9885 _next_ordinal_to_read += 1;
9886 next_offset += envelope_size;
9887 }
9888
9889 let next_out_of_line = decoder.next_out_of_line();
9890 let handles_before = decoder.remaining_handles();
9891 if let Some((inlined, num_bytes, num_handles)) =
9892 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9893 {
9894 let member_inline_size =
9895 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
9896 if inlined != (member_inline_size <= 4) {
9897 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9898 }
9899 let inner_offset;
9900 let mut inner_depth = depth.clone();
9901 if inlined {
9902 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9903 inner_offset = next_offset;
9904 } else {
9905 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9906 inner_depth.increment()?;
9907 }
9908 let val_ref =
9909 self.target_bss_authenticated.get_or_insert_with(|| fidl::new_empty!(bool, D));
9910 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
9911 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9912 {
9913 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9914 }
9915 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9916 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9917 }
9918 }
9919
9920 next_offset += envelope_size;
9921 _next_ordinal_to_read += 1;
9922 if next_offset >= end_offset {
9923 return Ok(());
9924 }
9925
9926 while _next_ordinal_to_read < 5 {
9928 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9929 _next_ordinal_to_read += 1;
9930 next_offset += envelope_size;
9931 }
9932
9933 let next_out_of_line = decoder.next_out_of_line();
9934 let handles_before = decoder.remaining_handles();
9935 if let Some((inlined, num_bytes, num_handles)) =
9936 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9937 {
9938 let member_inline_size =
9939 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
9940 if inlined != (member_inline_size <= 4) {
9941 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9942 }
9943 let inner_offset;
9944 let mut inner_depth = depth.clone();
9945 if inlined {
9946 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9947 inner_offset = next_offset;
9948 } else {
9949 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9950 inner_depth.increment()?;
9951 }
9952 let val_ref = self.association_id.get_or_insert_with(|| fidl::new_empty!(u16, D));
9953 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
9954 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9955 {
9956 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9957 }
9958 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9959 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9960 }
9961 }
9962
9963 next_offset += envelope_size;
9964 _next_ordinal_to_read += 1;
9965 if next_offset >= end_offset {
9966 return Ok(());
9967 }
9968
9969 while _next_ordinal_to_read < 6 {
9971 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9972 _next_ordinal_to_read += 1;
9973 next_offset += envelope_size;
9974 }
9975
9976 let next_out_of_line = decoder.next_out_of_line();
9977 let handles_before = decoder.remaining_handles();
9978 if let Some((inlined, num_bytes, num_handles)) =
9979 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9980 {
9981 let member_inline_size = <fidl::encoding::UnboundedVector<u8> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
9982 if inlined != (member_inline_size <= 4) {
9983 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9984 }
9985 let inner_offset;
9986 let mut inner_depth = depth.clone();
9987 if inlined {
9988 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9989 inner_offset = next_offset;
9990 } else {
9991 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9992 inner_depth.increment()?;
9993 }
9994 let val_ref = self.association_ies.get_or_insert_with(|| {
9995 fidl::new_empty!(fidl::encoding::UnboundedVector<u8>, D)
9996 });
9997 fidl::decode!(
9998 fidl::encoding::UnboundedVector<u8>,
9999 D,
10000 val_ref,
10001 decoder,
10002 inner_offset,
10003 inner_depth
10004 )?;
10005 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10006 {
10007 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10008 }
10009 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10010 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10011 }
10012 }
10013
10014 next_offset += envelope_size;
10015
10016 while next_offset < end_offset {
10018 _next_ordinal_to_read += 1;
10019 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10020 next_offset += envelope_size;
10021 }
10022
10023 Ok(())
10024 }
10025 }
10026
10027 impl WlanFullmacImplIfcRoamResultIndRequest {
10028 #[inline(always)]
10029 fn max_ordinal_present(&self) -> u64 {
10030 if let Some(_) = self.association_ies {
10031 return 6;
10032 }
10033 if let Some(_) = self.association_id {
10034 return 5;
10035 }
10036 if let Some(_) = self.target_bss_authenticated {
10037 return 4;
10038 }
10039 if let Some(_) = self.original_association_maintained {
10040 return 3;
10041 }
10042 if let Some(_) = self.status_code {
10043 return 2;
10044 }
10045 if let Some(_) = self.selected_bssid {
10046 return 1;
10047 }
10048 0
10049 }
10050 }
10051
10052 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcRoamResultIndRequest {
10053 type Borrowed<'a> = &'a Self;
10054 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
10055 value
10056 }
10057 }
10058
10059 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcRoamResultIndRequest {
10060 type Owned = Self;
10061
10062 #[inline(always)]
10063 fn inline_align(_context: fidl::encoding::Context) -> usize {
10064 8
10065 }
10066
10067 #[inline(always)]
10068 fn inline_size(_context: fidl::encoding::Context) -> usize {
10069 16
10070 }
10071 }
10072
10073 unsafe impl<D: fidl::encoding::ResourceDialect>
10074 fidl::encoding::Encode<WlanFullmacImplIfcRoamResultIndRequest, D>
10075 for &WlanFullmacImplIfcRoamResultIndRequest
10076 {
10077 unsafe fn encode(
10078 self,
10079 encoder: &mut fidl::encoding::Encoder<'_, D>,
10080 offset: usize,
10081 mut depth: fidl::encoding::Depth,
10082 ) -> fidl::Result<()> {
10083 encoder.debug_check_bounds::<WlanFullmacImplIfcRoamResultIndRequest>(offset);
10084 let max_ordinal: u64 = self.max_ordinal_present();
10086 encoder.write_num(max_ordinal, offset);
10087 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
10088 if max_ordinal == 0 {
10090 return Ok(());
10091 }
10092 depth.increment()?;
10093 let envelope_size = 8;
10094 let bytes_len = max_ordinal as usize * envelope_size;
10095 #[allow(unused_variables)]
10096 let offset = encoder.out_of_line_offset(bytes_len);
10097 let mut _prev_end_offset: usize = 0;
10098 if 1 > max_ordinal {
10099 return Ok(());
10100 }
10101
10102 let cur_offset: usize = (1 - 1) * envelope_size;
10105
10106 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10108
10109 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
10114 self.selected_bssid
10115 .as_ref()
10116 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
10117 encoder,
10118 offset + cur_offset,
10119 depth,
10120 )?;
10121
10122 _prev_end_offset = cur_offset + envelope_size;
10123 if 2 > max_ordinal {
10124 return Ok(());
10125 }
10126
10127 let cur_offset: usize = (2 - 1) * envelope_size;
10130
10131 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10133
10134 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_ieee80211__common::StatusCode, D>(
10139 self.status_code.as_ref().map(<fidl_fuchsia_wlan_ieee80211__common::StatusCode as fidl::encoding::ValueTypeMarker>::borrow),
10140 encoder, offset + cur_offset, depth
10141 )?;
10142
10143 _prev_end_offset = cur_offset + envelope_size;
10144 if 3 > max_ordinal {
10145 return Ok(());
10146 }
10147
10148 let cur_offset: usize = (3 - 1) * envelope_size;
10151
10152 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10154
10155 fidl::encoding::encode_in_envelope_optional::<bool, D>(
10160 self.original_association_maintained
10161 .as_ref()
10162 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
10163 encoder,
10164 offset + cur_offset,
10165 depth,
10166 )?;
10167
10168 _prev_end_offset = cur_offset + envelope_size;
10169 if 4 > max_ordinal {
10170 return Ok(());
10171 }
10172
10173 let cur_offset: usize = (4 - 1) * envelope_size;
10176
10177 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10179
10180 fidl::encoding::encode_in_envelope_optional::<bool, D>(
10185 self.target_bss_authenticated
10186 .as_ref()
10187 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
10188 encoder,
10189 offset + cur_offset,
10190 depth,
10191 )?;
10192
10193 _prev_end_offset = cur_offset + envelope_size;
10194 if 5 > max_ordinal {
10195 return Ok(());
10196 }
10197
10198 let cur_offset: usize = (5 - 1) * envelope_size;
10201
10202 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10204
10205 fidl::encoding::encode_in_envelope_optional::<u16, D>(
10210 self.association_id.as_ref().map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
10211 encoder,
10212 offset + cur_offset,
10213 depth,
10214 )?;
10215
10216 _prev_end_offset = cur_offset + envelope_size;
10217 if 6 > max_ordinal {
10218 return Ok(());
10219 }
10220
10221 let cur_offset: usize = (6 - 1) * envelope_size;
10224
10225 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10227
10228 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<u8>, D>(
10233 self.association_ies.as_ref().map(<fidl::encoding::UnboundedVector<u8> as fidl::encoding::ValueTypeMarker>::borrow),
10234 encoder, offset + cur_offset, depth
10235 )?;
10236
10237 _prev_end_offset = cur_offset + envelope_size;
10238
10239 Ok(())
10240 }
10241 }
10242
10243 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
10244 for WlanFullmacImplIfcRoamResultIndRequest
10245 {
10246 #[inline(always)]
10247 fn new_empty() -> Self {
10248 Self::default()
10249 }
10250
10251 unsafe fn decode(
10252 &mut self,
10253 decoder: &mut fidl::encoding::Decoder<'_, D>,
10254 offset: usize,
10255 mut depth: fidl::encoding::Depth,
10256 ) -> fidl::Result<()> {
10257 decoder.debug_check_bounds::<Self>(offset);
10258 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
10259 None => return Err(fidl::Error::NotNullable),
10260 Some(len) => len,
10261 };
10262 if len == 0 {
10264 return Ok(());
10265 };
10266 depth.increment()?;
10267 let envelope_size = 8;
10268 let bytes_len = len * envelope_size;
10269 let offset = decoder.out_of_line_offset(bytes_len)?;
10270 let mut _next_ordinal_to_read = 0;
10272 let mut next_offset = offset;
10273 let end_offset = offset + bytes_len;
10274 _next_ordinal_to_read += 1;
10275 if next_offset >= end_offset {
10276 return Ok(());
10277 }
10278
10279 while _next_ordinal_to_read < 1 {
10281 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10282 _next_ordinal_to_read += 1;
10283 next_offset += envelope_size;
10284 }
10285
10286 let next_out_of_line = decoder.next_out_of_line();
10287 let handles_before = decoder.remaining_handles();
10288 if let Some((inlined, num_bytes, num_handles)) =
10289 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10290 {
10291 let member_inline_size =
10292 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
10293 decoder.context,
10294 );
10295 if inlined != (member_inline_size <= 4) {
10296 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10297 }
10298 let inner_offset;
10299 let mut inner_depth = depth.clone();
10300 if inlined {
10301 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10302 inner_offset = next_offset;
10303 } else {
10304 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10305 inner_depth.increment()?;
10306 }
10307 let val_ref = self
10308 .selected_bssid
10309 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
10310 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
10311 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10312 {
10313 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10314 }
10315 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10316 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10317 }
10318 }
10319
10320 next_offset += envelope_size;
10321 _next_ordinal_to_read += 1;
10322 if next_offset >= end_offset {
10323 return Ok(());
10324 }
10325
10326 while _next_ordinal_to_read < 2 {
10328 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10329 _next_ordinal_to_read += 1;
10330 next_offset += envelope_size;
10331 }
10332
10333 let next_out_of_line = decoder.next_out_of_line();
10334 let handles_before = decoder.remaining_handles();
10335 if let Some((inlined, num_bytes, num_handles)) =
10336 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10337 {
10338 let member_inline_size = <fidl_fuchsia_wlan_ieee80211__common::StatusCode as fidl::encoding::TypeMarker>::inline_size(decoder.context);
10339 if inlined != (member_inline_size <= 4) {
10340 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10341 }
10342 let inner_offset;
10343 let mut inner_depth = depth.clone();
10344 if inlined {
10345 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10346 inner_offset = next_offset;
10347 } else {
10348 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10349 inner_depth.increment()?;
10350 }
10351 let val_ref = self.status_code.get_or_insert_with(|| {
10352 fidl::new_empty!(fidl_fuchsia_wlan_ieee80211__common::StatusCode, D)
10353 });
10354 fidl::decode!(
10355 fidl_fuchsia_wlan_ieee80211__common::StatusCode,
10356 D,
10357 val_ref,
10358 decoder,
10359 inner_offset,
10360 inner_depth
10361 )?;
10362 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10363 {
10364 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10365 }
10366 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10367 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10368 }
10369 }
10370
10371 next_offset += envelope_size;
10372 _next_ordinal_to_read += 1;
10373 if next_offset >= end_offset {
10374 return Ok(());
10375 }
10376
10377 while _next_ordinal_to_read < 3 {
10379 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10380 _next_ordinal_to_read += 1;
10381 next_offset += envelope_size;
10382 }
10383
10384 let next_out_of_line = decoder.next_out_of_line();
10385 let handles_before = decoder.remaining_handles();
10386 if let Some((inlined, num_bytes, num_handles)) =
10387 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10388 {
10389 let member_inline_size =
10390 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
10391 if inlined != (member_inline_size <= 4) {
10392 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10393 }
10394 let inner_offset;
10395 let mut inner_depth = depth.clone();
10396 if inlined {
10397 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10398 inner_offset = next_offset;
10399 } else {
10400 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10401 inner_depth.increment()?;
10402 }
10403 let val_ref = self
10404 .original_association_maintained
10405 .get_or_insert_with(|| fidl::new_empty!(bool, D));
10406 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
10407 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10408 {
10409 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10410 }
10411 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10412 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10413 }
10414 }
10415
10416 next_offset += envelope_size;
10417 _next_ordinal_to_read += 1;
10418 if next_offset >= end_offset {
10419 return Ok(());
10420 }
10421
10422 while _next_ordinal_to_read < 4 {
10424 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10425 _next_ordinal_to_read += 1;
10426 next_offset += envelope_size;
10427 }
10428
10429 let next_out_of_line = decoder.next_out_of_line();
10430 let handles_before = decoder.remaining_handles();
10431 if let Some((inlined, num_bytes, num_handles)) =
10432 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10433 {
10434 let member_inline_size =
10435 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
10436 if inlined != (member_inline_size <= 4) {
10437 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10438 }
10439 let inner_offset;
10440 let mut inner_depth = depth.clone();
10441 if inlined {
10442 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10443 inner_offset = next_offset;
10444 } else {
10445 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10446 inner_depth.increment()?;
10447 }
10448 let val_ref =
10449 self.target_bss_authenticated.get_or_insert_with(|| fidl::new_empty!(bool, D));
10450 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
10451 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10452 {
10453 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10454 }
10455 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10456 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10457 }
10458 }
10459
10460 next_offset += envelope_size;
10461 _next_ordinal_to_read += 1;
10462 if next_offset >= end_offset {
10463 return Ok(());
10464 }
10465
10466 while _next_ordinal_to_read < 5 {
10468 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10469 _next_ordinal_to_read += 1;
10470 next_offset += envelope_size;
10471 }
10472
10473 let next_out_of_line = decoder.next_out_of_line();
10474 let handles_before = decoder.remaining_handles();
10475 if let Some((inlined, num_bytes, num_handles)) =
10476 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10477 {
10478 let member_inline_size =
10479 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
10480 if inlined != (member_inline_size <= 4) {
10481 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10482 }
10483 let inner_offset;
10484 let mut inner_depth = depth.clone();
10485 if inlined {
10486 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10487 inner_offset = next_offset;
10488 } else {
10489 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10490 inner_depth.increment()?;
10491 }
10492 let val_ref = self.association_id.get_or_insert_with(|| fidl::new_empty!(u16, D));
10493 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
10494 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10495 {
10496 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10497 }
10498 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10499 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10500 }
10501 }
10502
10503 next_offset += envelope_size;
10504 _next_ordinal_to_read += 1;
10505 if next_offset >= end_offset {
10506 return Ok(());
10507 }
10508
10509 while _next_ordinal_to_read < 6 {
10511 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10512 _next_ordinal_to_read += 1;
10513 next_offset += envelope_size;
10514 }
10515
10516 let next_out_of_line = decoder.next_out_of_line();
10517 let handles_before = decoder.remaining_handles();
10518 if let Some((inlined, num_bytes, num_handles)) =
10519 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10520 {
10521 let member_inline_size = <fidl::encoding::UnboundedVector<u8> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
10522 if inlined != (member_inline_size <= 4) {
10523 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10524 }
10525 let inner_offset;
10526 let mut inner_depth = depth.clone();
10527 if inlined {
10528 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10529 inner_offset = next_offset;
10530 } else {
10531 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10532 inner_depth.increment()?;
10533 }
10534 let val_ref = self.association_ies.get_or_insert_with(|| {
10535 fidl::new_empty!(fidl::encoding::UnboundedVector<u8>, D)
10536 });
10537 fidl::decode!(
10538 fidl::encoding::UnboundedVector<u8>,
10539 D,
10540 val_ref,
10541 decoder,
10542 inner_offset,
10543 inner_depth
10544 )?;
10545 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10546 {
10547 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10548 }
10549 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10550 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10551 }
10552 }
10553
10554 next_offset += envelope_size;
10555
10556 while next_offset < end_offset {
10558 _next_ordinal_to_read += 1;
10559 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10560 next_offset += envelope_size;
10561 }
10562
10563 Ok(())
10564 }
10565 }
10566
10567 impl WlanFullmacImplIfcRoamStartIndRequest {
10568 #[inline(always)]
10569 fn max_ordinal_present(&self) -> u64 {
10570 if let Some(_) = self.original_association_maintained {
10571 return 3;
10572 }
10573 if let Some(_) = self.selected_bss {
10574 return 2;
10575 }
10576 if let Some(_) = self.selected_bssid {
10577 return 1;
10578 }
10579 0
10580 }
10581 }
10582
10583 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcRoamStartIndRequest {
10584 type Borrowed<'a> = &'a Self;
10585 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
10586 value
10587 }
10588 }
10589
10590 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcRoamStartIndRequest {
10591 type Owned = Self;
10592
10593 #[inline(always)]
10594 fn inline_align(_context: fidl::encoding::Context) -> usize {
10595 8
10596 }
10597
10598 #[inline(always)]
10599 fn inline_size(_context: fidl::encoding::Context) -> usize {
10600 16
10601 }
10602 }
10603
10604 unsafe impl<D: fidl::encoding::ResourceDialect>
10605 fidl::encoding::Encode<WlanFullmacImplIfcRoamStartIndRequest, D>
10606 for &WlanFullmacImplIfcRoamStartIndRequest
10607 {
10608 unsafe fn encode(
10609 self,
10610 encoder: &mut fidl::encoding::Encoder<'_, D>,
10611 offset: usize,
10612 mut depth: fidl::encoding::Depth,
10613 ) -> fidl::Result<()> {
10614 encoder.debug_check_bounds::<WlanFullmacImplIfcRoamStartIndRequest>(offset);
10615 let max_ordinal: u64 = self.max_ordinal_present();
10617 encoder.write_num(max_ordinal, offset);
10618 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
10619 if max_ordinal == 0 {
10621 return Ok(());
10622 }
10623 depth.increment()?;
10624 let envelope_size = 8;
10625 let bytes_len = max_ordinal as usize * envelope_size;
10626 #[allow(unused_variables)]
10627 let offset = encoder.out_of_line_offset(bytes_len);
10628 let mut _prev_end_offset: usize = 0;
10629 if 1 > max_ordinal {
10630 return Ok(());
10631 }
10632
10633 let cur_offset: usize = (1 - 1) * envelope_size;
10636
10637 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10639
10640 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
10645 self.selected_bssid
10646 .as_ref()
10647 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
10648 encoder,
10649 offset + cur_offset,
10650 depth,
10651 )?;
10652
10653 _prev_end_offset = cur_offset + envelope_size;
10654 if 2 > max_ordinal {
10655 return Ok(());
10656 }
10657
10658 let cur_offset: usize = (2 - 1) * envelope_size;
10661
10662 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10664
10665 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_common__common::BssDescription, D>(
10670 self.selected_bss.as_ref().map(<fidl_fuchsia_wlan_common__common::BssDescription as fidl::encoding::ValueTypeMarker>::borrow),
10671 encoder, offset + cur_offset, depth
10672 )?;
10673
10674 _prev_end_offset = cur_offset + envelope_size;
10675 if 3 > max_ordinal {
10676 return Ok(());
10677 }
10678
10679 let cur_offset: usize = (3 - 1) * envelope_size;
10682
10683 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10685
10686 fidl::encoding::encode_in_envelope_optional::<bool, D>(
10691 self.original_association_maintained
10692 .as_ref()
10693 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
10694 encoder,
10695 offset + cur_offset,
10696 depth,
10697 )?;
10698
10699 _prev_end_offset = cur_offset + envelope_size;
10700
10701 Ok(())
10702 }
10703 }
10704
10705 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
10706 for WlanFullmacImplIfcRoamStartIndRequest
10707 {
10708 #[inline(always)]
10709 fn new_empty() -> Self {
10710 Self::default()
10711 }
10712
10713 unsafe fn decode(
10714 &mut self,
10715 decoder: &mut fidl::encoding::Decoder<'_, D>,
10716 offset: usize,
10717 mut depth: fidl::encoding::Depth,
10718 ) -> fidl::Result<()> {
10719 decoder.debug_check_bounds::<Self>(offset);
10720 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
10721 None => return Err(fidl::Error::NotNullable),
10722 Some(len) => len,
10723 };
10724 if len == 0 {
10726 return Ok(());
10727 };
10728 depth.increment()?;
10729 let envelope_size = 8;
10730 let bytes_len = len * envelope_size;
10731 let offset = decoder.out_of_line_offset(bytes_len)?;
10732 let mut _next_ordinal_to_read = 0;
10734 let mut next_offset = offset;
10735 let end_offset = offset + bytes_len;
10736 _next_ordinal_to_read += 1;
10737 if next_offset >= end_offset {
10738 return Ok(());
10739 }
10740
10741 while _next_ordinal_to_read < 1 {
10743 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10744 _next_ordinal_to_read += 1;
10745 next_offset += envelope_size;
10746 }
10747
10748 let next_out_of_line = decoder.next_out_of_line();
10749 let handles_before = decoder.remaining_handles();
10750 if let Some((inlined, num_bytes, num_handles)) =
10751 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10752 {
10753 let member_inline_size =
10754 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
10755 decoder.context,
10756 );
10757 if inlined != (member_inline_size <= 4) {
10758 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10759 }
10760 let inner_offset;
10761 let mut inner_depth = depth.clone();
10762 if inlined {
10763 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10764 inner_offset = next_offset;
10765 } else {
10766 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10767 inner_depth.increment()?;
10768 }
10769 let val_ref = self
10770 .selected_bssid
10771 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
10772 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
10773 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10774 {
10775 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10776 }
10777 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10778 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10779 }
10780 }
10781
10782 next_offset += envelope_size;
10783 _next_ordinal_to_read += 1;
10784 if next_offset >= end_offset {
10785 return Ok(());
10786 }
10787
10788 while _next_ordinal_to_read < 2 {
10790 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10791 _next_ordinal_to_read += 1;
10792 next_offset += envelope_size;
10793 }
10794
10795 let next_out_of_line = decoder.next_out_of_line();
10796 let handles_before = decoder.remaining_handles();
10797 if let Some((inlined, num_bytes, num_handles)) =
10798 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10799 {
10800 let member_inline_size = <fidl_fuchsia_wlan_common__common::BssDescription as fidl::encoding::TypeMarker>::inline_size(decoder.context);
10801 if inlined != (member_inline_size <= 4) {
10802 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10803 }
10804 let inner_offset;
10805 let mut inner_depth = depth.clone();
10806 if inlined {
10807 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10808 inner_offset = next_offset;
10809 } else {
10810 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10811 inner_depth.increment()?;
10812 }
10813 let val_ref = self.selected_bss.get_or_insert_with(|| {
10814 fidl::new_empty!(fidl_fuchsia_wlan_common__common::BssDescription, D)
10815 });
10816 fidl::decode!(
10817 fidl_fuchsia_wlan_common__common::BssDescription,
10818 D,
10819 val_ref,
10820 decoder,
10821 inner_offset,
10822 inner_depth
10823 )?;
10824 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10825 {
10826 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10827 }
10828 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10829 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10830 }
10831 }
10832
10833 next_offset += envelope_size;
10834 _next_ordinal_to_read += 1;
10835 if next_offset >= end_offset {
10836 return Ok(());
10837 }
10838
10839 while _next_ordinal_to_read < 3 {
10841 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10842 _next_ordinal_to_read += 1;
10843 next_offset += envelope_size;
10844 }
10845
10846 let next_out_of_line = decoder.next_out_of_line();
10847 let handles_before = decoder.remaining_handles();
10848 if let Some((inlined, num_bytes, num_handles)) =
10849 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10850 {
10851 let member_inline_size =
10852 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
10853 if inlined != (member_inline_size <= 4) {
10854 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10855 }
10856 let inner_offset;
10857 let mut inner_depth = depth.clone();
10858 if inlined {
10859 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10860 inner_offset = next_offset;
10861 } else {
10862 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10863 inner_depth.increment()?;
10864 }
10865 let val_ref = self
10866 .original_association_maintained
10867 .get_or_insert_with(|| fidl::new_empty!(bool, D));
10868 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
10869 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10870 {
10871 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10872 }
10873 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10874 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10875 }
10876 }
10877
10878 next_offset += envelope_size;
10879
10880 while next_offset < end_offset {
10882 _next_ordinal_to_read += 1;
10883 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10884 next_offset += envelope_size;
10885 }
10886
10887 Ok(())
10888 }
10889 }
10890
10891 impl WlanFullmacImplIfcSaeHandshakeIndRequest {
10892 #[inline(always)]
10893 fn max_ordinal_present(&self) -> u64 {
10894 if let Some(_) = self.peer_sta_address {
10895 return 1;
10896 }
10897 0
10898 }
10899 }
10900
10901 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcSaeHandshakeIndRequest {
10902 type Borrowed<'a> = &'a Self;
10903 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
10904 value
10905 }
10906 }
10907
10908 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcSaeHandshakeIndRequest {
10909 type Owned = Self;
10910
10911 #[inline(always)]
10912 fn inline_align(_context: fidl::encoding::Context) -> usize {
10913 8
10914 }
10915
10916 #[inline(always)]
10917 fn inline_size(_context: fidl::encoding::Context) -> usize {
10918 16
10919 }
10920 }
10921
10922 unsafe impl<D: fidl::encoding::ResourceDialect>
10923 fidl::encoding::Encode<WlanFullmacImplIfcSaeHandshakeIndRequest, D>
10924 for &WlanFullmacImplIfcSaeHandshakeIndRequest
10925 {
10926 unsafe fn encode(
10927 self,
10928 encoder: &mut fidl::encoding::Encoder<'_, D>,
10929 offset: usize,
10930 mut depth: fidl::encoding::Depth,
10931 ) -> fidl::Result<()> {
10932 encoder.debug_check_bounds::<WlanFullmacImplIfcSaeHandshakeIndRequest>(offset);
10933 let max_ordinal: u64 = self.max_ordinal_present();
10935 encoder.write_num(max_ordinal, offset);
10936 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
10937 if max_ordinal == 0 {
10939 return Ok(());
10940 }
10941 depth.increment()?;
10942 let envelope_size = 8;
10943 let bytes_len = max_ordinal as usize * envelope_size;
10944 #[allow(unused_variables)]
10945 let offset = encoder.out_of_line_offset(bytes_len);
10946 let mut _prev_end_offset: usize = 0;
10947 if 1 > max_ordinal {
10948 return Ok(());
10949 }
10950
10951 let cur_offset: usize = (1 - 1) * envelope_size;
10954
10955 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10957
10958 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
10963 self.peer_sta_address
10964 .as_ref()
10965 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
10966 encoder,
10967 offset + cur_offset,
10968 depth,
10969 )?;
10970
10971 _prev_end_offset = cur_offset + envelope_size;
10972
10973 Ok(())
10974 }
10975 }
10976
10977 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
10978 for WlanFullmacImplIfcSaeHandshakeIndRequest
10979 {
10980 #[inline(always)]
10981 fn new_empty() -> Self {
10982 Self::default()
10983 }
10984
10985 unsafe fn decode(
10986 &mut self,
10987 decoder: &mut fidl::encoding::Decoder<'_, D>,
10988 offset: usize,
10989 mut depth: fidl::encoding::Depth,
10990 ) -> fidl::Result<()> {
10991 decoder.debug_check_bounds::<Self>(offset);
10992 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
10993 None => return Err(fidl::Error::NotNullable),
10994 Some(len) => len,
10995 };
10996 if len == 0 {
10998 return Ok(());
10999 };
11000 depth.increment()?;
11001 let envelope_size = 8;
11002 let bytes_len = len * envelope_size;
11003 let offset = decoder.out_of_line_offset(bytes_len)?;
11004 let mut _next_ordinal_to_read = 0;
11006 let mut next_offset = offset;
11007 let end_offset = offset + bytes_len;
11008 _next_ordinal_to_read += 1;
11009 if next_offset >= end_offset {
11010 return Ok(());
11011 }
11012
11013 while _next_ordinal_to_read < 1 {
11015 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11016 _next_ordinal_to_read += 1;
11017 next_offset += envelope_size;
11018 }
11019
11020 let next_out_of_line = decoder.next_out_of_line();
11021 let handles_before = decoder.remaining_handles();
11022 if let Some((inlined, num_bytes, num_handles)) =
11023 fidl::encoding::decode_envelope_header(decoder, next_offset)?
11024 {
11025 let member_inline_size =
11026 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
11027 decoder.context,
11028 );
11029 if inlined != (member_inline_size <= 4) {
11030 return Err(fidl::Error::InvalidInlineBitInEnvelope);
11031 }
11032 let inner_offset;
11033 let mut inner_depth = depth.clone();
11034 if inlined {
11035 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
11036 inner_offset = next_offset;
11037 } else {
11038 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
11039 inner_depth.increment()?;
11040 }
11041 let val_ref = self
11042 .peer_sta_address
11043 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
11044 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
11045 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
11046 {
11047 return Err(fidl::Error::InvalidNumBytesInEnvelope);
11048 }
11049 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
11050 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
11051 }
11052 }
11053
11054 next_offset += envelope_size;
11055
11056 while next_offset < end_offset {
11058 _next_ordinal_to_read += 1;
11059 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11060 next_offset += envelope_size;
11061 }
11062
11063 Ok(())
11064 }
11065 }
11066
11067 impl WlanFullmacImplIfcStartConfRequest {
11068 #[inline(always)]
11069 fn max_ordinal_present(&self) -> u64 {
11070 if let Some(_) = self.result_code {
11071 return 1;
11072 }
11073 0
11074 }
11075 }
11076
11077 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcStartConfRequest {
11078 type Borrowed<'a> = &'a Self;
11079 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
11080 value
11081 }
11082 }
11083
11084 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcStartConfRequest {
11085 type Owned = Self;
11086
11087 #[inline(always)]
11088 fn inline_align(_context: fidl::encoding::Context) -> usize {
11089 8
11090 }
11091
11092 #[inline(always)]
11093 fn inline_size(_context: fidl::encoding::Context) -> usize {
11094 16
11095 }
11096 }
11097
11098 unsafe impl<D: fidl::encoding::ResourceDialect>
11099 fidl::encoding::Encode<WlanFullmacImplIfcStartConfRequest, D>
11100 for &WlanFullmacImplIfcStartConfRequest
11101 {
11102 unsafe fn encode(
11103 self,
11104 encoder: &mut fidl::encoding::Encoder<'_, D>,
11105 offset: usize,
11106 mut depth: fidl::encoding::Depth,
11107 ) -> fidl::Result<()> {
11108 encoder.debug_check_bounds::<WlanFullmacImplIfcStartConfRequest>(offset);
11109 let max_ordinal: u64 = self.max_ordinal_present();
11111 encoder.write_num(max_ordinal, offset);
11112 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
11113 if max_ordinal == 0 {
11115 return Ok(());
11116 }
11117 depth.increment()?;
11118 let envelope_size = 8;
11119 let bytes_len = max_ordinal as usize * envelope_size;
11120 #[allow(unused_variables)]
11121 let offset = encoder.out_of_line_offset(bytes_len);
11122 let mut _prev_end_offset: usize = 0;
11123 if 1 > max_ordinal {
11124 return Ok(());
11125 }
11126
11127 let cur_offset: usize = (1 - 1) * envelope_size;
11130
11131 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
11133
11134 fidl::encoding::encode_in_envelope_optional::<StartResult, D>(
11139 self.result_code
11140 .as_ref()
11141 .map(<StartResult as fidl::encoding::ValueTypeMarker>::borrow),
11142 encoder,
11143 offset + cur_offset,
11144 depth,
11145 )?;
11146
11147 _prev_end_offset = cur_offset + envelope_size;
11148
11149 Ok(())
11150 }
11151 }
11152
11153 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
11154 for WlanFullmacImplIfcStartConfRequest
11155 {
11156 #[inline(always)]
11157 fn new_empty() -> Self {
11158 Self::default()
11159 }
11160
11161 unsafe fn decode(
11162 &mut self,
11163 decoder: &mut fidl::encoding::Decoder<'_, D>,
11164 offset: usize,
11165 mut depth: fidl::encoding::Depth,
11166 ) -> fidl::Result<()> {
11167 decoder.debug_check_bounds::<Self>(offset);
11168 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
11169 None => return Err(fidl::Error::NotNullable),
11170 Some(len) => len,
11171 };
11172 if len == 0 {
11174 return Ok(());
11175 };
11176 depth.increment()?;
11177 let envelope_size = 8;
11178 let bytes_len = len * envelope_size;
11179 let offset = decoder.out_of_line_offset(bytes_len)?;
11180 let mut _next_ordinal_to_read = 0;
11182 let mut next_offset = offset;
11183 let end_offset = offset + bytes_len;
11184 _next_ordinal_to_read += 1;
11185 if next_offset >= end_offset {
11186 return Ok(());
11187 }
11188
11189 while _next_ordinal_to_read < 1 {
11191 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11192 _next_ordinal_to_read += 1;
11193 next_offset += envelope_size;
11194 }
11195
11196 let next_out_of_line = decoder.next_out_of_line();
11197 let handles_before = decoder.remaining_handles();
11198 if let Some((inlined, num_bytes, num_handles)) =
11199 fidl::encoding::decode_envelope_header(decoder, next_offset)?
11200 {
11201 let member_inline_size =
11202 <StartResult as fidl::encoding::TypeMarker>::inline_size(decoder.context);
11203 if inlined != (member_inline_size <= 4) {
11204 return Err(fidl::Error::InvalidInlineBitInEnvelope);
11205 }
11206 let inner_offset;
11207 let mut inner_depth = depth.clone();
11208 if inlined {
11209 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
11210 inner_offset = next_offset;
11211 } else {
11212 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
11213 inner_depth.increment()?;
11214 }
11215 let val_ref =
11216 self.result_code.get_or_insert_with(|| fidl::new_empty!(StartResult, D));
11217 fidl::decode!(StartResult, D, val_ref, decoder, inner_offset, inner_depth)?;
11218 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
11219 {
11220 return Err(fidl::Error::InvalidNumBytesInEnvelope);
11221 }
11222 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
11223 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
11224 }
11225 }
11226
11227 next_offset += envelope_size;
11228
11229 while next_offset < end_offset {
11231 _next_ordinal_to_read += 1;
11232 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11233 next_offset += envelope_size;
11234 }
11235
11236 Ok(())
11237 }
11238 }
11239
11240 impl WlanFullmacImplIfcStopConfRequest {
11241 #[inline(always)]
11242 fn max_ordinal_present(&self) -> u64 {
11243 if let Some(_) = self.result_code {
11244 return 1;
11245 }
11246 0
11247 }
11248 }
11249
11250 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcStopConfRequest {
11251 type Borrowed<'a> = &'a Self;
11252 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
11253 value
11254 }
11255 }
11256
11257 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcStopConfRequest {
11258 type Owned = Self;
11259
11260 #[inline(always)]
11261 fn inline_align(_context: fidl::encoding::Context) -> usize {
11262 8
11263 }
11264
11265 #[inline(always)]
11266 fn inline_size(_context: fidl::encoding::Context) -> usize {
11267 16
11268 }
11269 }
11270
11271 unsafe impl<D: fidl::encoding::ResourceDialect>
11272 fidl::encoding::Encode<WlanFullmacImplIfcStopConfRequest, D>
11273 for &WlanFullmacImplIfcStopConfRequest
11274 {
11275 unsafe fn encode(
11276 self,
11277 encoder: &mut fidl::encoding::Encoder<'_, D>,
11278 offset: usize,
11279 mut depth: fidl::encoding::Depth,
11280 ) -> fidl::Result<()> {
11281 encoder.debug_check_bounds::<WlanFullmacImplIfcStopConfRequest>(offset);
11282 let max_ordinal: u64 = self.max_ordinal_present();
11284 encoder.write_num(max_ordinal, offset);
11285 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
11286 if max_ordinal == 0 {
11288 return Ok(());
11289 }
11290 depth.increment()?;
11291 let envelope_size = 8;
11292 let bytes_len = max_ordinal as usize * envelope_size;
11293 #[allow(unused_variables)]
11294 let offset = encoder.out_of_line_offset(bytes_len);
11295 let mut _prev_end_offset: usize = 0;
11296 if 1 > max_ordinal {
11297 return Ok(());
11298 }
11299
11300 let cur_offset: usize = (1 - 1) * envelope_size;
11303
11304 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
11306
11307 fidl::encoding::encode_in_envelope_optional::<StopResult, D>(
11312 self.result_code
11313 .as_ref()
11314 .map(<StopResult as fidl::encoding::ValueTypeMarker>::borrow),
11315 encoder,
11316 offset + cur_offset,
11317 depth,
11318 )?;
11319
11320 _prev_end_offset = cur_offset + envelope_size;
11321
11322 Ok(())
11323 }
11324 }
11325
11326 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
11327 for WlanFullmacImplIfcStopConfRequest
11328 {
11329 #[inline(always)]
11330 fn new_empty() -> Self {
11331 Self::default()
11332 }
11333
11334 unsafe fn decode(
11335 &mut self,
11336 decoder: &mut fidl::encoding::Decoder<'_, D>,
11337 offset: usize,
11338 mut depth: fidl::encoding::Depth,
11339 ) -> fidl::Result<()> {
11340 decoder.debug_check_bounds::<Self>(offset);
11341 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
11342 None => return Err(fidl::Error::NotNullable),
11343 Some(len) => len,
11344 };
11345 if len == 0 {
11347 return Ok(());
11348 };
11349 depth.increment()?;
11350 let envelope_size = 8;
11351 let bytes_len = len * envelope_size;
11352 let offset = decoder.out_of_line_offset(bytes_len)?;
11353 let mut _next_ordinal_to_read = 0;
11355 let mut next_offset = offset;
11356 let end_offset = offset + bytes_len;
11357 _next_ordinal_to_read += 1;
11358 if next_offset >= end_offset {
11359 return Ok(());
11360 }
11361
11362 while _next_ordinal_to_read < 1 {
11364 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11365 _next_ordinal_to_read += 1;
11366 next_offset += envelope_size;
11367 }
11368
11369 let next_out_of_line = decoder.next_out_of_line();
11370 let handles_before = decoder.remaining_handles();
11371 if let Some((inlined, num_bytes, num_handles)) =
11372 fidl::encoding::decode_envelope_header(decoder, next_offset)?
11373 {
11374 let member_inline_size =
11375 <StopResult as fidl::encoding::TypeMarker>::inline_size(decoder.context);
11376 if inlined != (member_inline_size <= 4) {
11377 return Err(fidl::Error::InvalidInlineBitInEnvelope);
11378 }
11379 let inner_offset;
11380 let mut inner_depth = depth.clone();
11381 if inlined {
11382 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
11383 inner_offset = next_offset;
11384 } else {
11385 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
11386 inner_depth.increment()?;
11387 }
11388 let val_ref =
11389 self.result_code.get_or_insert_with(|| fidl::new_empty!(StopResult, D));
11390 fidl::decode!(StopResult, D, val_ref, decoder, inner_offset, inner_depth)?;
11391 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
11392 {
11393 return Err(fidl::Error::InvalidNumBytesInEnvelope);
11394 }
11395 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
11396 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
11397 }
11398 }
11399
11400 next_offset += envelope_size;
11401
11402 while next_offset < end_offset {
11404 _next_ordinal_to_read += 1;
11405 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11406 next_offset += envelope_size;
11407 }
11408
11409 Ok(())
11410 }
11411 }
11412
11413 impl WlanFullmacImplOnLinkStateChangedRequest {
11414 #[inline(always)]
11415 fn max_ordinal_present(&self) -> u64 {
11416 if let Some(_) = self.online {
11417 return 1;
11418 }
11419 0
11420 }
11421 }
11422
11423 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplOnLinkStateChangedRequest {
11424 type Borrowed<'a> = &'a Self;
11425 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
11426 value
11427 }
11428 }
11429
11430 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplOnLinkStateChangedRequest {
11431 type Owned = Self;
11432
11433 #[inline(always)]
11434 fn inline_align(_context: fidl::encoding::Context) -> usize {
11435 8
11436 }
11437
11438 #[inline(always)]
11439 fn inline_size(_context: fidl::encoding::Context) -> usize {
11440 16
11441 }
11442 }
11443
11444 unsafe impl<D: fidl::encoding::ResourceDialect>
11445 fidl::encoding::Encode<WlanFullmacImplOnLinkStateChangedRequest, D>
11446 for &WlanFullmacImplOnLinkStateChangedRequest
11447 {
11448 unsafe fn encode(
11449 self,
11450 encoder: &mut fidl::encoding::Encoder<'_, D>,
11451 offset: usize,
11452 mut depth: fidl::encoding::Depth,
11453 ) -> fidl::Result<()> {
11454 encoder.debug_check_bounds::<WlanFullmacImplOnLinkStateChangedRequest>(offset);
11455 let max_ordinal: u64 = self.max_ordinal_present();
11457 encoder.write_num(max_ordinal, offset);
11458 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
11459 if max_ordinal == 0 {
11461 return Ok(());
11462 }
11463 depth.increment()?;
11464 let envelope_size = 8;
11465 let bytes_len = max_ordinal as usize * envelope_size;
11466 #[allow(unused_variables)]
11467 let offset = encoder.out_of_line_offset(bytes_len);
11468 let mut _prev_end_offset: usize = 0;
11469 if 1 > max_ordinal {
11470 return Ok(());
11471 }
11472
11473 let cur_offset: usize = (1 - 1) * envelope_size;
11476
11477 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
11479
11480 fidl::encoding::encode_in_envelope_optional::<bool, D>(
11485 self.online.as_ref().map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
11486 encoder,
11487 offset + cur_offset,
11488 depth,
11489 )?;
11490
11491 _prev_end_offset = cur_offset + envelope_size;
11492
11493 Ok(())
11494 }
11495 }
11496
11497 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
11498 for WlanFullmacImplOnLinkStateChangedRequest
11499 {
11500 #[inline(always)]
11501 fn new_empty() -> Self {
11502 Self::default()
11503 }
11504
11505 unsafe fn decode(
11506 &mut self,
11507 decoder: &mut fidl::encoding::Decoder<'_, D>,
11508 offset: usize,
11509 mut depth: fidl::encoding::Depth,
11510 ) -> fidl::Result<()> {
11511 decoder.debug_check_bounds::<Self>(offset);
11512 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
11513 None => return Err(fidl::Error::NotNullable),
11514 Some(len) => len,
11515 };
11516 if len == 0 {
11518 return Ok(());
11519 };
11520 depth.increment()?;
11521 let envelope_size = 8;
11522 let bytes_len = len * envelope_size;
11523 let offset = decoder.out_of_line_offset(bytes_len)?;
11524 let mut _next_ordinal_to_read = 0;
11526 let mut next_offset = offset;
11527 let end_offset = offset + bytes_len;
11528 _next_ordinal_to_read += 1;
11529 if next_offset >= end_offset {
11530 return Ok(());
11531 }
11532
11533 while _next_ordinal_to_read < 1 {
11535 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11536 _next_ordinal_to_read += 1;
11537 next_offset += envelope_size;
11538 }
11539
11540 let next_out_of_line = decoder.next_out_of_line();
11541 let handles_before = decoder.remaining_handles();
11542 if let Some((inlined, num_bytes, num_handles)) =
11543 fidl::encoding::decode_envelope_header(decoder, next_offset)?
11544 {
11545 let member_inline_size =
11546 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
11547 if inlined != (member_inline_size <= 4) {
11548 return Err(fidl::Error::InvalidInlineBitInEnvelope);
11549 }
11550 let inner_offset;
11551 let mut inner_depth = depth.clone();
11552 if inlined {
11553 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
11554 inner_offset = next_offset;
11555 } else {
11556 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
11557 inner_depth.increment()?;
11558 }
11559 let val_ref = self.online.get_or_insert_with(|| fidl::new_empty!(bool, D));
11560 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
11561 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
11562 {
11563 return Err(fidl::Error::InvalidNumBytesInEnvelope);
11564 }
11565 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
11566 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
11567 }
11568 }
11569
11570 next_offset += envelope_size;
11571
11572 while next_offset < end_offset {
11574 _next_ordinal_to_read += 1;
11575 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11576 next_offset += envelope_size;
11577 }
11578
11579 Ok(())
11580 }
11581 }
11582
11583 impl WlanFullmacImplReconnectRequest {
11584 #[inline(always)]
11585 fn max_ordinal_present(&self) -> u64 {
11586 if let Some(_) = self.peer_sta_address {
11587 return 1;
11588 }
11589 0
11590 }
11591 }
11592
11593 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplReconnectRequest {
11594 type Borrowed<'a> = &'a Self;
11595 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
11596 value
11597 }
11598 }
11599
11600 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplReconnectRequest {
11601 type Owned = Self;
11602
11603 #[inline(always)]
11604 fn inline_align(_context: fidl::encoding::Context) -> usize {
11605 8
11606 }
11607
11608 #[inline(always)]
11609 fn inline_size(_context: fidl::encoding::Context) -> usize {
11610 16
11611 }
11612 }
11613
11614 unsafe impl<D: fidl::encoding::ResourceDialect>
11615 fidl::encoding::Encode<WlanFullmacImplReconnectRequest, D>
11616 for &WlanFullmacImplReconnectRequest
11617 {
11618 unsafe fn encode(
11619 self,
11620 encoder: &mut fidl::encoding::Encoder<'_, D>,
11621 offset: usize,
11622 mut depth: fidl::encoding::Depth,
11623 ) -> fidl::Result<()> {
11624 encoder.debug_check_bounds::<WlanFullmacImplReconnectRequest>(offset);
11625 let max_ordinal: u64 = self.max_ordinal_present();
11627 encoder.write_num(max_ordinal, offset);
11628 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
11629 if max_ordinal == 0 {
11631 return Ok(());
11632 }
11633 depth.increment()?;
11634 let envelope_size = 8;
11635 let bytes_len = max_ordinal as usize * envelope_size;
11636 #[allow(unused_variables)]
11637 let offset = encoder.out_of_line_offset(bytes_len);
11638 let mut _prev_end_offset: usize = 0;
11639 if 1 > max_ordinal {
11640 return Ok(());
11641 }
11642
11643 let cur_offset: usize = (1 - 1) * envelope_size;
11646
11647 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
11649
11650 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
11655 self.peer_sta_address
11656 .as_ref()
11657 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
11658 encoder,
11659 offset + cur_offset,
11660 depth,
11661 )?;
11662
11663 _prev_end_offset = cur_offset + envelope_size;
11664
11665 Ok(())
11666 }
11667 }
11668
11669 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
11670 for WlanFullmacImplReconnectRequest
11671 {
11672 #[inline(always)]
11673 fn new_empty() -> Self {
11674 Self::default()
11675 }
11676
11677 unsafe fn decode(
11678 &mut self,
11679 decoder: &mut fidl::encoding::Decoder<'_, D>,
11680 offset: usize,
11681 mut depth: fidl::encoding::Depth,
11682 ) -> fidl::Result<()> {
11683 decoder.debug_check_bounds::<Self>(offset);
11684 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
11685 None => return Err(fidl::Error::NotNullable),
11686 Some(len) => len,
11687 };
11688 if len == 0 {
11690 return Ok(());
11691 };
11692 depth.increment()?;
11693 let envelope_size = 8;
11694 let bytes_len = len * envelope_size;
11695 let offset = decoder.out_of_line_offset(bytes_len)?;
11696 let mut _next_ordinal_to_read = 0;
11698 let mut next_offset = offset;
11699 let end_offset = offset + bytes_len;
11700 _next_ordinal_to_read += 1;
11701 if next_offset >= end_offset {
11702 return Ok(());
11703 }
11704
11705 while _next_ordinal_to_read < 1 {
11707 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11708 _next_ordinal_to_read += 1;
11709 next_offset += envelope_size;
11710 }
11711
11712 let next_out_of_line = decoder.next_out_of_line();
11713 let handles_before = decoder.remaining_handles();
11714 if let Some((inlined, num_bytes, num_handles)) =
11715 fidl::encoding::decode_envelope_header(decoder, next_offset)?
11716 {
11717 let member_inline_size =
11718 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
11719 decoder.context,
11720 );
11721 if inlined != (member_inline_size <= 4) {
11722 return Err(fidl::Error::InvalidInlineBitInEnvelope);
11723 }
11724 let inner_offset;
11725 let mut inner_depth = depth.clone();
11726 if inlined {
11727 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
11728 inner_offset = next_offset;
11729 } else {
11730 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
11731 inner_depth.increment()?;
11732 }
11733 let val_ref = self
11734 .peer_sta_address
11735 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
11736 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
11737 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
11738 {
11739 return Err(fidl::Error::InvalidNumBytesInEnvelope);
11740 }
11741 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
11742 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
11743 }
11744 }
11745
11746 next_offset += envelope_size;
11747
11748 while next_offset < end_offset {
11750 _next_ordinal_to_read += 1;
11751 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11752 next_offset += envelope_size;
11753 }
11754
11755 Ok(())
11756 }
11757 }
11758
11759 impl WlanFullmacImplRoamRequest {
11760 #[inline(always)]
11761 fn max_ordinal_present(&self) -> u64 {
11762 if let Some(_) = self.selected_bss {
11763 return 1;
11764 }
11765 0
11766 }
11767 }
11768
11769 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplRoamRequest {
11770 type Borrowed<'a> = &'a Self;
11771 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
11772 value
11773 }
11774 }
11775
11776 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplRoamRequest {
11777 type Owned = Self;
11778
11779 #[inline(always)]
11780 fn inline_align(_context: fidl::encoding::Context) -> usize {
11781 8
11782 }
11783
11784 #[inline(always)]
11785 fn inline_size(_context: fidl::encoding::Context) -> usize {
11786 16
11787 }
11788 }
11789
11790 unsafe impl<D: fidl::encoding::ResourceDialect>
11791 fidl::encoding::Encode<WlanFullmacImplRoamRequest, D> for &WlanFullmacImplRoamRequest
11792 {
11793 unsafe fn encode(
11794 self,
11795 encoder: &mut fidl::encoding::Encoder<'_, D>,
11796 offset: usize,
11797 mut depth: fidl::encoding::Depth,
11798 ) -> fidl::Result<()> {
11799 encoder.debug_check_bounds::<WlanFullmacImplRoamRequest>(offset);
11800 let max_ordinal: u64 = self.max_ordinal_present();
11802 encoder.write_num(max_ordinal, offset);
11803 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
11804 if max_ordinal == 0 {
11806 return Ok(());
11807 }
11808 depth.increment()?;
11809 let envelope_size = 8;
11810 let bytes_len = max_ordinal as usize * envelope_size;
11811 #[allow(unused_variables)]
11812 let offset = encoder.out_of_line_offset(bytes_len);
11813 let mut _prev_end_offset: usize = 0;
11814 if 1 > max_ordinal {
11815 return Ok(());
11816 }
11817
11818 let cur_offset: usize = (1 - 1) * envelope_size;
11821
11822 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
11824
11825 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_common__common::BssDescription, D>(
11830 self.selected_bss.as_ref().map(<fidl_fuchsia_wlan_common__common::BssDescription as fidl::encoding::ValueTypeMarker>::borrow),
11831 encoder, offset + cur_offset, depth
11832 )?;
11833
11834 _prev_end_offset = cur_offset + envelope_size;
11835
11836 Ok(())
11837 }
11838 }
11839
11840 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
11841 for WlanFullmacImplRoamRequest
11842 {
11843 #[inline(always)]
11844 fn new_empty() -> Self {
11845 Self::default()
11846 }
11847
11848 unsafe fn decode(
11849 &mut self,
11850 decoder: &mut fidl::encoding::Decoder<'_, D>,
11851 offset: usize,
11852 mut depth: fidl::encoding::Depth,
11853 ) -> fidl::Result<()> {
11854 decoder.debug_check_bounds::<Self>(offset);
11855 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
11856 None => return Err(fidl::Error::NotNullable),
11857 Some(len) => len,
11858 };
11859 if len == 0 {
11861 return Ok(());
11862 };
11863 depth.increment()?;
11864 let envelope_size = 8;
11865 let bytes_len = len * envelope_size;
11866 let offset = decoder.out_of_line_offset(bytes_len)?;
11867 let mut _next_ordinal_to_read = 0;
11869 let mut next_offset = offset;
11870 let end_offset = offset + bytes_len;
11871 _next_ordinal_to_read += 1;
11872 if next_offset >= end_offset {
11873 return Ok(());
11874 }
11875
11876 while _next_ordinal_to_read < 1 {
11878 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11879 _next_ordinal_to_read += 1;
11880 next_offset += envelope_size;
11881 }
11882
11883 let next_out_of_line = decoder.next_out_of_line();
11884 let handles_before = decoder.remaining_handles();
11885 if let Some((inlined, num_bytes, num_handles)) =
11886 fidl::encoding::decode_envelope_header(decoder, next_offset)?
11887 {
11888 let member_inline_size = <fidl_fuchsia_wlan_common__common::BssDescription as fidl::encoding::TypeMarker>::inline_size(decoder.context);
11889 if inlined != (member_inline_size <= 4) {
11890 return Err(fidl::Error::InvalidInlineBitInEnvelope);
11891 }
11892 let inner_offset;
11893 let mut inner_depth = depth.clone();
11894 if inlined {
11895 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
11896 inner_offset = next_offset;
11897 } else {
11898 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
11899 inner_depth.increment()?;
11900 }
11901 let val_ref = self.selected_bss.get_or_insert_with(|| {
11902 fidl::new_empty!(fidl_fuchsia_wlan_common__common::BssDescription, D)
11903 });
11904 fidl::decode!(
11905 fidl_fuchsia_wlan_common__common::BssDescription,
11906 D,
11907 val_ref,
11908 decoder,
11909 inner_offset,
11910 inner_depth
11911 )?;
11912 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
11913 {
11914 return Err(fidl::Error::InvalidNumBytesInEnvelope);
11915 }
11916 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
11917 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
11918 }
11919 }
11920
11921 next_offset += envelope_size;
11922
11923 while next_offset < end_offset {
11925 _next_ordinal_to_read += 1;
11926 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11927 next_offset += envelope_size;
11928 }
11929
11930 Ok(())
11931 }
11932 }
11933
11934 impl WlanFullmacImplSaeHandshakeRespRequest {
11935 #[inline(always)]
11936 fn max_ordinal_present(&self) -> u64 {
11937 if let Some(_) = self.status_code {
11938 return 2;
11939 }
11940 if let Some(_) = self.peer_sta_address {
11941 return 1;
11942 }
11943 0
11944 }
11945 }
11946
11947 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplSaeHandshakeRespRequest {
11948 type Borrowed<'a> = &'a Self;
11949 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
11950 value
11951 }
11952 }
11953
11954 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplSaeHandshakeRespRequest {
11955 type Owned = Self;
11956
11957 #[inline(always)]
11958 fn inline_align(_context: fidl::encoding::Context) -> usize {
11959 8
11960 }
11961
11962 #[inline(always)]
11963 fn inline_size(_context: fidl::encoding::Context) -> usize {
11964 16
11965 }
11966 }
11967
11968 unsafe impl<D: fidl::encoding::ResourceDialect>
11969 fidl::encoding::Encode<WlanFullmacImplSaeHandshakeRespRequest, D>
11970 for &WlanFullmacImplSaeHandshakeRespRequest
11971 {
11972 unsafe fn encode(
11973 self,
11974 encoder: &mut fidl::encoding::Encoder<'_, D>,
11975 offset: usize,
11976 mut depth: fidl::encoding::Depth,
11977 ) -> fidl::Result<()> {
11978 encoder.debug_check_bounds::<WlanFullmacImplSaeHandshakeRespRequest>(offset);
11979 let max_ordinal: u64 = self.max_ordinal_present();
11981 encoder.write_num(max_ordinal, offset);
11982 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
11983 if max_ordinal == 0 {
11985 return Ok(());
11986 }
11987 depth.increment()?;
11988 let envelope_size = 8;
11989 let bytes_len = max_ordinal as usize * envelope_size;
11990 #[allow(unused_variables)]
11991 let offset = encoder.out_of_line_offset(bytes_len);
11992 let mut _prev_end_offset: usize = 0;
11993 if 1 > max_ordinal {
11994 return Ok(());
11995 }
11996
11997 let cur_offset: usize = (1 - 1) * envelope_size;
12000
12001 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12003
12004 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
12009 self.peer_sta_address
12010 .as_ref()
12011 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
12012 encoder,
12013 offset + cur_offset,
12014 depth,
12015 )?;
12016
12017 _prev_end_offset = cur_offset + envelope_size;
12018 if 2 > max_ordinal {
12019 return Ok(());
12020 }
12021
12022 let cur_offset: usize = (2 - 1) * envelope_size;
12025
12026 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12028
12029 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_ieee80211__common::StatusCode, D>(
12034 self.status_code.as_ref().map(<fidl_fuchsia_wlan_ieee80211__common::StatusCode as fidl::encoding::ValueTypeMarker>::borrow),
12035 encoder, offset + cur_offset, depth
12036 )?;
12037
12038 _prev_end_offset = cur_offset + envelope_size;
12039
12040 Ok(())
12041 }
12042 }
12043
12044 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
12045 for WlanFullmacImplSaeHandshakeRespRequest
12046 {
12047 #[inline(always)]
12048 fn new_empty() -> Self {
12049 Self::default()
12050 }
12051
12052 unsafe fn decode(
12053 &mut self,
12054 decoder: &mut fidl::encoding::Decoder<'_, D>,
12055 offset: usize,
12056 mut depth: fidl::encoding::Depth,
12057 ) -> fidl::Result<()> {
12058 decoder.debug_check_bounds::<Self>(offset);
12059 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
12060 None => return Err(fidl::Error::NotNullable),
12061 Some(len) => len,
12062 };
12063 if len == 0 {
12065 return Ok(());
12066 };
12067 depth.increment()?;
12068 let envelope_size = 8;
12069 let bytes_len = len * envelope_size;
12070 let offset = decoder.out_of_line_offset(bytes_len)?;
12071 let mut _next_ordinal_to_read = 0;
12073 let mut next_offset = offset;
12074 let end_offset = offset + bytes_len;
12075 _next_ordinal_to_read += 1;
12076 if next_offset >= end_offset {
12077 return Ok(());
12078 }
12079
12080 while _next_ordinal_to_read < 1 {
12082 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12083 _next_ordinal_to_read += 1;
12084 next_offset += envelope_size;
12085 }
12086
12087 let next_out_of_line = decoder.next_out_of_line();
12088 let handles_before = decoder.remaining_handles();
12089 if let Some((inlined, num_bytes, num_handles)) =
12090 fidl::encoding::decode_envelope_header(decoder, next_offset)?
12091 {
12092 let member_inline_size =
12093 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
12094 decoder.context,
12095 );
12096 if inlined != (member_inline_size <= 4) {
12097 return Err(fidl::Error::InvalidInlineBitInEnvelope);
12098 }
12099 let inner_offset;
12100 let mut inner_depth = depth.clone();
12101 if inlined {
12102 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
12103 inner_offset = next_offset;
12104 } else {
12105 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
12106 inner_depth.increment()?;
12107 }
12108 let val_ref = self
12109 .peer_sta_address
12110 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
12111 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
12112 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
12113 {
12114 return Err(fidl::Error::InvalidNumBytesInEnvelope);
12115 }
12116 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
12117 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
12118 }
12119 }
12120
12121 next_offset += envelope_size;
12122 _next_ordinal_to_read += 1;
12123 if next_offset >= end_offset {
12124 return Ok(());
12125 }
12126
12127 while _next_ordinal_to_read < 2 {
12129 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12130 _next_ordinal_to_read += 1;
12131 next_offset += envelope_size;
12132 }
12133
12134 let next_out_of_line = decoder.next_out_of_line();
12135 let handles_before = decoder.remaining_handles();
12136 if let Some((inlined, num_bytes, num_handles)) =
12137 fidl::encoding::decode_envelope_header(decoder, next_offset)?
12138 {
12139 let member_inline_size = <fidl_fuchsia_wlan_ieee80211__common::StatusCode as fidl::encoding::TypeMarker>::inline_size(decoder.context);
12140 if inlined != (member_inline_size <= 4) {
12141 return Err(fidl::Error::InvalidInlineBitInEnvelope);
12142 }
12143 let inner_offset;
12144 let mut inner_depth = depth.clone();
12145 if inlined {
12146 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
12147 inner_offset = next_offset;
12148 } else {
12149 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
12150 inner_depth.increment()?;
12151 }
12152 let val_ref = self.status_code.get_or_insert_with(|| {
12153 fidl::new_empty!(fidl_fuchsia_wlan_ieee80211__common::StatusCode, D)
12154 });
12155 fidl::decode!(
12156 fidl_fuchsia_wlan_ieee80211__common::StatusCode,
12157 D,
12158 val_ref,
12159 decoder,
12160 inner_offset,
12161 inner_depth
12162 )?;
12163 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
12164 {
12165 return Err(fidl::Error::InvalidNumBytesInEnvelope);
12166 }
12167 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
12168 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
12169 }
12170 }
12171
12172 next_offset += envelope_size;
12173
12174 while next_offset < end_offset {
12176 _next_ordinal_to_read += 1;
12177 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12178 next_offset += envelope_size;
12179 }
12180
12181 Ok(())
12182 }
12183 }
12184
12185 impl WlanFullmacImplSetKeysRequest {
12186 #[inline(always)]
12187 fn max_ordinal_present(&self) -> u64 {
12188 if let Some(_) = self.key_descriptors {
12189 return 2;
12190 }
12191 if let Some(_) = self.keylist {
12192 return 1;
12193 }
12194 0
12195 }
12196 }
12197
12198 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplSetKeysRequest {
12199 type Borrowed<'a> = &'a Self;
12200 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
12201 value
12202 }
12203 }
12204
12205 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplSetKeysRequest {
12206 type Owned = Self;
12207
12208 #[inline(always)]
12209 fn inline_align(_context: fidl::encoding::Context) -> usize {
12210 8
12211 }
12212
12213 #[inline(always)]
12214 fn inline_size(_context: fidl::encoding::Context) -> usize {
12215 16
12216 }
12217 }
12218
12219 unsafe impl<D: fidl::encoding::ResourceDialect>
12220 fidl::encoding::Encode<WlanFullmacImplSetKeysRequest, D>
12221 for &WlanFullmacImplSetKeysRequest
12222 {
12223 unsafe fn encode(
12224 self,
12225 encoder: &mut fidl::encoding::Encoder<'_, D>,
12226 offset: usize,
12227 mut depth: fidl::encoding::Depth,
12228 ) -> fidl::Result<()> {
12229 encoder.debug_check_bounds::<WlanFullmacImplSetKeysRequest>(offset);
12230 let max_ordinal: u64 = self.max_ordinal_present();
12232 encoder.write_num(max_ordinal, offset);
12233 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
12234 if max_ordinal == 0 {
12236 return Ok(());
12237 }
12238 depth.increment()?;
12239 let envelope_size = 8;
12240 let bytes_len = max_ordinal as usize * envelope_size;
12241 #[allow(unused_variables)]
12242 let offset = encoder.out_of_line_offset(bytes_len);
12243 let mut _prev_end_offset: usize = 0;
12244 if 1 > max_ordinal {
12245 return Ok(());
12246 }
12247
12248 let cur_offset: usize = (1 - 1) * envelope_size;
12251
12252 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12254
12255 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<fidl_fuchsia_wlan_common__common::WlanKeyConfig, 4>, D>(
12260 self.keylist.as_ref().map(<fidl::encoding::Vector<fidl_fuchsia_wlan_common__common::WlanKeyConfig, 4> as fidl::encoding::ValueTypeMarker>::borrow),
12261 encoder, offset + cur_offset, depth
12262 )?;
12263
12264 _prev_end_offset = cur_offset + envelope_size;
12265 if 2 > max_ordinal {
12266 return Ok(());
12267 }
12268
12269 let cur_offset: usize = (2 - 1) * envelope_size;
12272
12273 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12275
12276 fidl::encoding::encode_in_envelope_optional::<
12281 fidl::encoding::Vector<fidl_fuchsia_wlan_ieee80211__common::SetKeyDescriptor, 4>,
12282 D,
12283 >(
12284 self.key_descriptors.as_ref().map(
12285 <fidl::encoding::Vector<
12286 fidl_fuchsia_wlan_ieee80211__common::SetKeyDescriptor,
12287 4,
12288 > as fidl::encoding::ValueTypeMarker>::borrow,
12289 ),
12290 encoder,
12291 offset + cur_offset,
12292 depth,
12293 )?;
12294
12295 _prev_end_offset = cur_offset + envelope_size;
12296
12297 Ok(())
12298 }
12299 }
12300
12301 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
12302 for WlanFullmacImplSetKeysRequest
12303 {
12304 #[inline(always)]
12305 fn new_empty() -> Self {
12306 Self::default()
12307 }
12308
12309 unsafe fn decode(
12310 &mut self,
12311 decoder: &mut fidl::encoding::Decoder<'_, D>,
12312 offset: usize,
12313 mut depth: fidl::encoding::Depth,
12314 ) -> fidl::Result<()> {
12315 decoder.debug_check_bounds::<Self>(offset);
12316 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
12317 None => return Err(fidl::Error::NotNullable),
12318 Some(len) => len,
12319 };
12320 if len == 0 {
12322 return Ok(());
12323 };
12324 depth.increment()?;
12325 let envelope_size = 8;
12326 let bytes_len = len * envelope_size;
12327 let offset = decoder.out_of_line_offset(bytes_len)?;
12328 let mut _next_ordinal_to_read = 0;
12330 let mut next_offset = offset;
12331 let end_offset = offset + bytes_len;
12332 _next_ordinal_to_read += 1;
12333 if next_offset >= end_offset {
12334 return Ok(());
12335 }
12336
12337 while _next_ordinal_to_read < 1 {
12339 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12340 _next_ordinal_to_read += 1;
12341 next_offset += envelope_size;
12342 }
12343
12344 let next_out_of_line = decoder.next_out_of_line();
12345 let handles_before = decoder.remaining_handles();
12346 if let Some((inlined, num_bytes, num_handles)) =
12347 fidl::encoding::decode_envelope_header(decoder, next_offset)?
12348 {
12349 let member_inline_size = <fidl::encoding::Vector<
12350 fidl_fuchsia_wlan_common__common::WlanKeyConfig,
12351 4,
12352 > as fidl::encoding::TypeMarker>::inline_size(
12353 decoder.context
12354 );
12355 if inlined != (member_inline_size <= 4) {
12356 return Err(fidl::Error::InvalidInlineBitInEnvelope);
12357 }
12358 let inner_offset;
12359 let mut inner_depth = depth.clone();
12360 if inlined {
12361 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
12362 inner_offset = next_offset;
12363 } else {
12364 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
12365 inner_depth.increment()?;
12366 }
12367 let val_ref =
12368 self.keylist.get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<fidl_fuchsia_wlan_common__common::WlanKeyConfig, 4>, D));
12369 fidl::decode!(fidl::encoding::Vector<fidl_fuchsia_wlan_common__common::WlanKeyConfig, 4>, D, val_ref, decoder, inner_offset, inner_depth)?;
12370 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
12371 {
12372 return Err(fidl::Error::InvalidNumBytesInEnvelope);
12373 }
12374 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
12375 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
12376 }
12377 }
12378
12379 next_offset += envelope_size;
12380 _next_ordinal_to_read += 1;
12381 if next_offset >= end_offset {
12382 return Ok(());
12383 }
12384
12385 while _next_ordinal_to_read < 2 {
12387 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12388 _next_ordinal_to_read += 1;
12389 next_offset += envelope_size;
12390 }
12391
12392 let next_out_of_line = decoder.next_out_of_line();
12393 let handles_before = decoder.remaining_handles();
12394 if let Some((inlined, num_bytes, num_handles)) =
12395 fidl::encoding::decode_envelope_header(decoder, next_offset)?
12396 {
12397 let member_inline_size = <fidl::encoding::Vector<
12398 fidl_fuchsia_wlan_ieee80211__common::SetKeyDescriptor,
12399 4,
12400 > as fidl::encoding::TypeMarker>::inline_size(
12401 decoder.context
12402 );
12403 if inlined != (member_inline_size <= 4) {
12404 return Err(fidl::Error::InvalidInlineBitInEnvelope);
12405 }
12406 let inner_offset;
12407 let mut inner_depth = depth.clone();
12408 if inlined {
12409 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
12410 inner_offset = next_offset;
12411 } else {
12412 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
12413 inner_depth.increment()?;
12414 }
12415 let val_ref =
12416 self.key_descriptors.get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<fidl_fuchsia_wlan_ieee80211__common::SetKeyDescriptor, 4>, D));
12417 fidl::decode!(fidl::encoding::Vector<fidl_fuchsia_wlan_ieee80211__common::SetKeyDescriptor, 4>, D, val_ref, decoder, inner_offset, inner_depth)?;
12418 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
12419 {
12420 return Err(fidl::Error::InvalidNumBytesInEnvelope);
12421 }
12422 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
12423 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
12424 }
12425 }
12426
12427 next_offset += envelope_size;
12428
12429 while next_offset < end_offset {
12431 _next_ordinal_to_read += 1;
12432 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12433 next_offset += envelope_size;
12434 }
12435
12436 Ok(())
12437 }
12438 }
12439
12440 impl WlanFullmacImplStartBssRequest {
12441 #[inline(always)]
12442 fn max_ordinal_present(&self) -> u64 {
12443 if let Some(_) = self.vendor_ie {
12444 return 7;
12445 }
12446 if let Some(_) = self.rsne {
12447 return 6;
12448 }
12449 if let Some(_) = self.channel {
12450 return 5;
12451 }
12452 if let Some(_) = self.dtim_period {
12453 return 4;
12454 }
12455 if let Some(_) = self.beacon_period {
12456 return 3;
12457 }
12458 if let Some(_) = self.bss_type {
12459 return 2;
12460 }
12461 if let Some(_) = self.ssid {
12462 return 1;
12463 }
12464 0
12465 }
12466 }
12467
12468 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplStartBssRequest {
12469 type Borrowed<'a> = &'a Self;
12470 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
12471 value
12472 }
12473 }
12474
12475 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplStartBssRequest {
12476 type Owned = Self;
12477
12478 #[inline(always)]
12479 fn inline_align(_context: fidl::encoding::Context) -> usize {
12480 8
12481 }
12482
12483 #[inline(always)]
12484 fn inline_size(_context: fidl::encoding::Context) -> usize {
12485 16
12486 }
12487 }
12488
12489 unsafe impl<D: fidl::encoding::ResourceDialect>
12490 fidl::encoding::Encode<WlanFullmacImplStartBssRequest, D>
12491 for &WlanFullmacImplStartBssRequest
12492 {
12493 unsafe fn encode(
12494 self,
12495 encoder: &mut fidl::encoding::Encoder<'_, D>,
12496 offset: usize,
12497 mut depth: fidl::encoding::Depth,
12498 ) -> fidl::Result<()> {
12499 encoder.debug_check_bounds::<WlanFullmacImplStartBssRequest>(offset);
12500 let max_ordinal: u64 = self.max_ordinal_present();
12502 encoder.write_num(max_ordinal, offset);
12503 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
12504 if max_ordinal == 0 {
12506 return Ok(());
12507 }
12508 depth.increment()?;
12509 let envelope_size = 8;
12510 let bytes_len = max_ordinal as usize * envelope_size;
12511 #[allow(unused_variables)]
12512 let offset = encoder.out_of_line_offset(bytes_len);
12513 let mut _prev_end_offset: usize = 0;
12514 if 1 > max_ordinal {
12515 return Ok(());
12516 }
12517
12518 let cur_offset: usize = (1 - 1) * envelope_size;
12521
12522 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12524
12525 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<u8, 32>, D>(
12530 self.ssid.as_ref().map(
12531 <fidl::encoding::Vector<u8, 32> as fidl::encoding::ValueTypeMarker>::borrow,
12532 ),
12533 encoder,
12534 offset + cur_offset,
12535 depth,
12536 )?;
12537
12538 _prev_end_offset = cur_offset + envelope_size;
12539 if 2 > max_ordinal {
12540 return Ok(());
12541 }
12542
12543 let cur_offset: usize = (2 - 1) * envelope_size;
12546
12547 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12549
12550 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_common__common::BssType, D>(
12555 self.bss_type.as_ref().map(<fidl_fuchsia_wlan_common__common::BssType as fidl::encoding::ValueTypeMarker>::borrow),
12556 encoder, offset + cur_offset, depth
12557 )?;
12558
12559 _prev_end_offset = cur_offset + envelope_size;
12560 if 3 > max_ordinal {
12561 return Ok(());
12562 }
12563
12564 let cur_offset: usize = (3 - 1) * envelope_size;
12567
12568 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12570
12571 fidl::encoding::encode_in_envelope_optional::<u32, D>(
12576 self.beacon_period.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
12577 encoder,
12578 offset + cur_offset,
12579 depth,
12580 )?;
12581
12582 _prev_end_offset = cur_offset + envelope_size;
12583 if 4 > max_ordinal {
12584 return Ok(());
12585 }
12586
12587 let cur_offset: usize = (4 - 1) * envelope_size;
12590
12591 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12593
12594 fidl::encoding::encode_in_envelope_optional::<u32, D>(
12599 self.dtim_period.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
12600 encoder,
12601 offset + cur_offset,
12602 depth,
12603 )?;
12604
12605 _prev_end_offset = cur_offset + envelope_size;
12606 if 5 > max_ordinal {
12607 return Ok(());
12608 }
12609
12610 let cur_offset: usize = (5 - 1) * envelope_size;
12613
12614 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12616
12617 fidl::encoding::encode_in_envelope_optional::<u8, D>(
12622 self.channel.as_ref().map(<u8 as fidl::encoding::ValueTypeMarker>::borrow),
12623 encoder,
12624 offset + cur_offset,
12625 depth,
12626 )?;
12627
12628 _prev_end_offset = cur_offset + envelope_size;
12629 if 6 > max_ordinal {
12630 return Ok(());
12631 }
12632
12633 let cur_offset: usize = (6 - 1) * envelope_size;
12636
12637 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12639
12640 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<u8, 257>, D>(
12645 self.rsne.as_ref().map(
12646 <fidl::encoding::Vector<u8, 257> as fidl::encoding::ValueTypeMarker>::borrow,
12647 ),
12648 encoder,
12649 offset + cur_offset,
12650 depth,
12651 )?;
12652
12653 _prev_end_offset = cur_offset + envelope_size;
12654 if 7 > max_ordinal {
12655 return Ok(());
12656 }
12657
12658 let cur_offset: usize = (7 - 1) * envelope_size;
12661
12662 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12664
12665 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<u8, 514>, D>(
12670 self.vendor_ie.as_ref().map(
12671 <fidl::encoding::Vector<u8, 514> as fidl::encoding::ValueTypeMarker>::borrow,
12672 ),
12673 encoder,
12674 offset + cur_offset,
12675 depth,
12676 )?;
12677
12678 _prev_end_offset = cur_offset + envelope_size;
12679
12680 Ok(())
12681 }
12682 }
12683
12684 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
12685 for WlanFullmacImplStartBssRequest
12686 {
12687 #[inline(always)]
12688 fn new_empty() -> Self {
12689 Self::default()
12690 }
12691
12692 unsafe fn decode(
12693 &mut self,
12694 decoder: &mut fidl::encoding::Decoder<'_, D>,
12695 offset: usize,
12696 mut depth: fidl::encoding::Depth,
12697 ) -> fidl::Result<()> {
12698 decoder.debug_check_bounds::<Self>(offset);
12699 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
12700 None => return Err(fidl::Error::NotNullable),
12701 Some(len) => len,
12702 };
12703 if len == 0 {
12705 return Ok(());
12706 };
12707 depth.increment()?;
12708 let envelope_size = 8;
12709 let bytes_len = len * envelope_size;
12710 let offset = decoder.out_of_line_offset(bytes_len)?;
12711 let mut _next_ordinal_to_read = 0;
12713 let mut next_offset = offset;
12714 let end_offset = offset + bytes_len;
12715 _next_ordinal_to_read += 1;
12716 if next_offset >= end_offset {
12717 return Ok(());
12718 }
12719
12720 while _next_ordinal_to_read < 1 {
12722 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12723 _next_ordinal_to_read += 1;
12724 next_offset += envelope_size;
12725 }
12726
12727 let next_out_of_line = decoder.next_out_of_line();
12728 let handles_before = decoder.remaining_handles();
12729 if let Some((inlined, num_bytes, num_handles)) =
12730 fidl::encoding::decode_envelope_header(decoder, next_offset)?
12731 {
12732 let member_inline_size =
12733 <fidl::encoding::Vector<u8, 32> as fidl::encoding::TypeMarker>::inline_size(
12734 decoder.context,
12735 );
12736 if inlined != (member_inline_size <= 4) {
12737 return Err(fidl::Error::InvalidInlineBitInEnvelope);
12738 }
12739 let inner_offset;
12740 let mut inner_depth = depth.clone();
12741 if inlined {
12742 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
12743 inner_offset = next_offset;
12744 } else {
12745 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
12746 inner_depth.increment()?;
12747 }
12748 let val_ref = self
12749 .ssid
12750 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<u8, 32>, D));
12751 fidl::decode!(fidl::encoding::Vector<u8, 32>, D, val_ref, decoder, inner_offset, inner_depth)?;
12752 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
12753 {
12754 return Err(fidl::Error::InvalidNumBytesInEnvelope);
12755 }
12756 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
12757 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
12758 }
12759 }
12760
12761 next_offset += envelope_size;
12762 _next_ordinal_to_read += 1;
12763 if next_offset >= end_offset {
12764 return Ok(());
12765 }
12766
12767 while _next_ordinal_to_read < 2 {
12769 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12770 _next_ordinal_to_read += 1;
12771 next_offset += envelope_size;
12772 }
12773
12774 let next_out_of_line = decoder.next_out_of_line();
12775 let handles_before = decoder.remaining_handles();
12776 if let Some((inlined, num_bytes, num_handles)) =
12777 fidl::encoding::decode_envelope_header(decoder, next_offset)?
12778 {
12779 let member_inline_size = <fidl_fuchsia_wlan_common__common::BssType as fidl::encoding::TypeMarker>::inline_size(decoder.context);
12780 if inlined != (member_inline_size <= 4) {
12781 return Err(fidl::Error::InvalidInlineBitInEnvelope);
12782 }
12783 let inner_offset;
12784 let mut inner_depth = depth.clone();
12785 if inlined {
12786 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
12787 inner_offset = next_offset;
12788 } else {
12789 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
12790 inner_depth.increment()?;
12791 }
12792 let val_ref = self.bss_type.get_or_insert_with(|| {
12793 fidl::new_empty!(fidl_fuchsia_wlan_common__common::BssType, D)
12794 });
12795 fidl::decode!(
12796 fidl_fuchsia_wlan_common__common::BssType,
12797 D,
12798 val_ref,
12799 decoder,
12800 inner_offset,
12801 inner_depth
12802 )?;
12803 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
12804 {
12805 return Err(fidl::Error::InvalidNumBytesInEnvelope);
12806 }
12807 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
12808 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
12809 }
12810 }
12811
12812 next_offset += envelope_size;
12813 _next_ordinal_to_read += 1;
12814 if next_offset >= end_offset {
12815 return Ok(());
12816 }
12817
12818 while _next_ordinal_to_read < 3 {
12820 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12821 _next_ordinal_to_read += 1;
12822 next_offset += envelope_size;
12823 }
12824
12825 let next_out_of_line = decoder.next_out_of_line();
12826 let handles_before = decoder.remaining_handles();
12827 if let Some((inlined, num_bytes, num_handles)) =
12828 fidl::encoding::decode_envelope_header(decoder, next_offset)?
12829 {
12830 let member_inline_size =
12831 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
12832 if inlined != (member_inline_size <= 4) {
12833 return Err(fidl::Error::InvalidInlineBitInEnvelope);
12834 }
12835 let inner_offset;
12836 let mut inner_depth = depth.clone();
12837 if inlined {
12838 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
12839 inner_offset = next_offset;
12840 } else {
12841 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
12842 inner_depth.increment()?;
12843 }
12844 let val_ref = self.beacon_period.get_or_insert_with(|| fidl::new_empty!(u32, D));
12845 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
12846 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
12847 {
12848 return Err(fidl::Error::InvalidNumBytesInEnvelope);
12849 }
12850 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
12851 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
12852 }
12853 }
12854
12855 next_offset += envelope_size;
12856 _next_ordinal_to_read += 1;
12857 if next_offset >= end_offset {
12858 return Ok(());
12859 }
12860
12861 while _next_ordinal_to_read < 4 {
12863 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12864 _next_ordinal_to_read += 1;
12865 next_offset += envelope_size;
12866 }
12867
12868 let next_out_of_line = decoder.next_out_of_line();
12869 let handles_before = decoder.remaining_handles();
12870 if let Some((inlined, num_bytes, num_handles)) =
12871 fidl::encoding::decode_envelope_header(decoder, next_offset)?
12872 {
12873 let member_inline_size =
12874 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
12875 if inlined != (member_inline_size <= 4) {
12876 return Err(fidl::Error::InvalidInlineBitInEnvelope);
12877 }
12878 let inner_offset;
12879 let mut inner_depth = depth.clone();
12880 if inlined {
12881 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
12882 inner_offset = next_offset;
12883 } else {
12884 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
12885 inner_depth.increment()?;
12886 }
12887 let val_ref = self.dtim_period.get_or_insert_with(|| fidl::new_empty!(u32, D));
12888 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
12889 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
12890 {
12891 return Err(fidl::Error::InvalidNumBytesInEnvelope);
12892 }
12893 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
12894 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
12895 }
12896 }
12897
12898 next_offset += envelope_size;
12899 _next_ordinal_to_read += 1;
12900 if next_offset >= end_offset {
12901 return Ok(());
12902 }
12903
12904 while _next_ordinal_to_read < 5 {
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 <u8 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
12918 if inlined != (member_inline_size <= 4) {
12919 return Err(fidl::Error::InvalidInlineBitInEnvelope);
12920 }
12921 let inner_offset;
12922 let mut inner_depth = depth.clone();
12923 if inlined {
12924 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
12925 inner_offset = next_offset;
12926 } else {
12927 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
12928 inner_depth.increment()?;
12929 }
12930 let val_ref = self.channel.get_or_insert_with(|| fidl::new_empty!(u8, D));
12931 fidl::decode!(u8, D, val_ref, decoder, inner_offset, inner_depth)?;
12932 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
12933 {
12934 return Err(fidl::Error::InvalidNumBytesInEnvelope);
12935 }
12936 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
12937 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
12938 }
12939 }
12940
12941 next_offset += envelope_size;
12942 _next_ordinal_to_read += 1;
12943 if next_offset >= end_offset {
12944 return Ok(());
12945 }
12946
12947 while _next_ordinal_to_read < 6 {
12949 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12950 _next_ordinal_to_read += 1;
12951 next_offset += envelope_size;
12952 }
12953
12954 let next_out_of_line = decoder.next_out_of_line();
12955 let handles_before = decoder.remaining_handles();
12956 if let Some((inlined, num_bytes, num_handles)) =
12957 fidl::encoding::decode_envelope_header(decoder, next_offset)?
12958 {
12959 let member_inline_size =
12960 <fidl::encoding::Vector<u8, 257> as fidl::encoding::TypeMarker>::inline_size(
12961 decoder.context,
12962 );
12963 if inlined != (member_inline_size <= 4) {
12964 return Err(fidl::Error::InvalidInlineBitInEnvelope);
12965 }
12966 let inner_offset;
12967 let mut inner_depth = depth.clone();
12968 if inlined {
12969 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
12970 inner_offset = next_offset;
12971 } else {
12972 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
12973 inner_depth.increment()?;
12974 }
12975 let val_ref = self
12976 .rsne
12977 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<u8, 257>, D));
12978 fidl::decode!(fidl::encoding::Vector<u8, 257>, D, val_ref, decoder, inner_offset, inner_depth)?;
12979 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
12980 {
12981 return Err(fidl::Error::InvalidNumBytesInEnvelope);
12982 }
12983 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
12984 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
12985 }
12986 }
12987
12988 next_offset += envelope_size;
12989 _next_ordinal_to_read += 1;
12990 if next_offset >= end_offset {
12991 return Ok(());
12992 }
12993
12994 while _next_ordinal_to_read < 7 {
12996 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12997 _next_ordinal_to_read += 1;
12998 next_offset += envelope_size;
12999 }
13000
13001 let next_out_of_line = decoder.next_out_of_line();
13002 let handles_before = decoder.remaining_handles();
13003 if let Some((inlined, num_bytes, num_handles)) =
13004 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13005 {
13006 let member_inline_size =
13007 <fidl::encoding::Vector<u8, 514> as fidl::encoding::TypeMarker>::inline_size(
13008 decoder.context,
13009 );
13010 if inlined != (member_inline_size <= 4) {
13011 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13012 }
13013 let inner_offset;
13014 let mut inner_depth = depth.clone();
13015 if inlined {
13016 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13017 inner_offset = next_offset;
13018 } else {
13019 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13020 inner_depth.increment()?;
13021 }
13022 let val_ref = self
13023 .vendor_ie
13024 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<u8, 514>, D));
13025 fidl::decode!(fidl::encoding::Vector<u8, 514>, D, val_ref, decoder, inner_offset, inner_depth)?;
13026 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13027 {
13028 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13029 }
13030 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13031 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13032 }
13033 }
13034
13035 next_offset += envelope_size;
13036
13037 while next_offset < end_offset {
13039 _next_ordinal_to_read += 1;
13040 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13041 next_offset += envelope_size;
13042 }
13043
13044 Ok(())
13045 }
13046 }
13047
13048 impl WlanFullmacImplStartScanRequest {
13049 #[inline(always)]
13050 fn max_ordinal_present(&self) -> u64 {
13051 if let Some(_) = self.max_channel_time {
13052 return 6;
13053 }
13054 if let Some(_) = self.min_channel_time {
13055 return 5;
13056 }
13057 if let Some(_) = self.ssids {
13058 return 4;
13059 }
13060 if let Some(_) = self.channels {
13061 return 3;
13062 }
13063 if let Some(_) = self.scan_type {
13064 return 2;
13065 }
13066 if let Some(_) = self.txn_id {
13067 return 1;
13068 }
13069 0
13070 }
13071 }
13072
13073 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplStartScanRequest {
13074 type Borrowed<'a> = &'a Self;
13075 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
13076 value
13077 }
13078 }
13079
13080 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplStartScanRequest {
13081 type Owned = Self;
13082
13083 #[inline(always)]
13084 fn inline_align(_context: fidl::encoding::Context) -> usize {
13085 8
13086 }
13087
13088 #[inline(always)]
13089 fn inline_size(_context: fidl::encoding::Context) -> usize {
13090 16
13091 }
13092 }
13093
13094 unsafe impl<D: fidl::encoding::ResourceDialect>
13095 fidl::encoding::Encode<WlanFullmacImplStartScanRequest, D>
13096 for &WlanFullmacImplStartScanRequest
13097 {
13098 unsafe fn encode(
13099 self,
13100 encoder: &mut fidl::encoding::Encoder<'_, D>,
13101 offset: usize,
13102 mut depth: fidl::encoding::Depth,
13103 ) -> fidl::Result<()> {
13104 encoder.debug_check_bounds::<WlanFullmacImplStartScanRequest>(offset);
13105 let max_ordinal: u64 = self.max_ordinal_present();
13107 encoder.write_num(max_ordinal, offset);
13108 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
13109 if max_ordinal == 0 {
13111 return Ok(());
13112 }
13113 depth.increment()?;
13114 let envelope_size = 8;
13115 let bytes_len = max_ordinal as usize * envelope_size;
13116 #[allow(unused_variables)]
13117 let offset = encoder.out_of_line_offset(bytes_len);
13118 let mut _prev_end_offset: usize = 0;
13119 if 1 > max_ordinal {
13120 return Ok(());
13121 }
13122
13123 let cur_offset: usize = (1 - 1) * envelope_size;
13126
13127 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
13129
13130 fidl::encoding::encode_in_envelope_optional::<u64, D>(
13135 self.txn_id.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
13136 encoder,
13137 offset + cur_offset,
13138 depth,
13139 )?;
13140
13141 _prev_end_offset = cur_offset + envelope_size;
13142 if 2 > max_ordinal {
13143 return Ok(());
13144 }
13145
13146 let cur_offset: usize = (2 - 1) * envelope_size;
13149
13150 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
13152
13153 fidl::encoding::encode_in_envelope_optional::<WlanScanType, D>(
13158 self.scan_type
13159 .as_ref()
13160 .map(<WlanScanType as fidl::encoding::ValueTypeMarker>::borrow),
13161 encoder,
13162 offset + cur_offset,
13163 depth,
13164 )?;
13165
13166 _prev_end_offset = cur_offset + envelope_size;
13167 if 3 > max_ordinal {
13168 return Ok(());
13169 }
13170
13171 let cur_offset: usize = (3 - 1) * envelope_size;
13174
13175 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
13177
13178 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<u8, 256>, D>(
13183 self.channels.as_ref().map(
13184 <fidl::encoding::Vector<u8, 256> as fidl::encoding::ValueTypeMarker>::borrow,
13185 ),
13186 encoder,
13187 offset + cur_offset,
13188 depth,
13189 )?;
13190
13191 _prev_end_offset = cur_offset + envelope_size;
13192 if 4 > max_ordinal {
13193 return Ok(());
13194 }
13195
13196 let cur_offset: usize = (4 - 1) * envelope_size;
13199
13200 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
13202
13203 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<fidl::encoding::Vector<u8, 32>>, D>(
13208 self.ssids.as_ref().map(<fidl::encoding::UnboundedVector<fidl::encoding::Vector<u8, 32>> as fidl::encoding::ValueTypeMarker>::borrow),
13209 encoder, offset + cur_offset, depth
13210 )?;
13211
13212 _prev_end_offset = cur_offset + envelope_size;
13213 if 5 > max_ordinal {
13214 return Ok(());
13215 }
13216
13217 let cur_offset: usize = (5 - 1) * envelope_size;
13220
13221 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
13223
13224 fidl::encoding::encode_in_envelope_optional::<u32, D>(
13229 self.min_channel_time
13230 .as_ref()
13231 .map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
13232 encoder,
13233 offset + cur_offset,
13234 depth,
13235 )?;
13236
13237 _prev_end_offset = cur_offset + envelope_size;
13238 if 6 > max_ordinal {
13239 return Ok(());
13240 }
13241
13242 let cur_offset: usize = (6 - 1) * envelope_size;
13245
13246 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
13248
13249 fidl::encoding::encode_in_envelope_optional::<u32, D>(
13254 self.max_channel_time
13255 .as_ref()
13256 .map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
13257 encoder,
13258 offset + cur_offset,
13259 depth,
13260 )?;
13261
13262 _prev_end_offset = cur_offset + envelope_size;
13263
13264 Ok(())
13265 }
13266 }
13267
13268 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
13269 for WlanFullmacImplStartScanRequest
13270 {
13271 #[inline(always)]
13272 fn new_empty() -> Self {
13273 Self::default()
13274 }
13275
13276 unsafe fn decode(
13277 &mut self,
13278 decoder: &mut fidl::encoding::Decoder<'_, D>,
13279 offset: usize,
13280 mut depth: fidl::encoding::Depth,
13281 ) -> fidl::Result<()> {
13282 decoder.debug_check_bounds::<Self>(offset);
13283 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
13284 None => return Err(fidl::Error::NotNullable),
13285 Some(len) => len,
13286 };
13287 if len == 0 {
13289 return Ok(());
13290 };
13291 depth.increment()?;
13292 let envelope_size = 8;
13293 let bytes_len = len * envelope_size;
13294 let offset = decoder.out_of_line_offset(bytes_len)?;
13295 let mut _next_ordinal_to_read = 0;
13297 let mut next_offset = offset;
13298 let end_offset = offset + bytes_len;
13299 _next_ordinal_to_read += 1;
13300 if next_offset >= end_offset {
13301 return Ok(());
13302 }
13303
13304 while _next_ordinal_to_read < 1 {
13306 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13307 _next_ordinal_to_read += 1;
13308 next_offset += envelope_size;
13309 }
13310
13311 let next_out_of_line = decoder.next_out_of_line();
13312 let handles_before = decoder.remaining_handles();
13313 if let Some((inlined, num_bytes, num_handles)) =
13314 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13315 {
13316 let member_inline_size =
13317 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
13318 if inlined != (member_inline_size <= 4) {
13319 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13320 }
13321 let inner_offset;
13322 let mut inner_depth = depth.clone();
13323 if inlined {
13324 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13325 inner_offset = next_offset;
13326 } else {
13327 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13328 inner_depth.increment()?;
13329 }
13330 let val_ref = self.txn_id.get_or_insert_with(|| fidl::new_empty!(u64, D));
13331 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
13332 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13333 {
13334 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13335 }
13336 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13337 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13338 }
13339 }
13340
13341 next_offset += envelope_size;
13342 _next_ordinal_to_read += 1;
13343 if next_offset >= end_offset {
13344 return Ok(());
13345 }
13346
13347 while _next_ordinal_to_read < 2 {
13349 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13350 _next_ordinal_to_read += 1;
13351 next_offset += envelope_size;
13352 }
13353
13354 let next_out_of_line = decoder.next_out_of_line();
13355 let handles_before = decoder.remaining_handles();
13356 if let Some((inlined, num_bytes, num_handles)) =
13357 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13358 {
13359 let member_inline_size =
13360 <WlanScanType as fidl::encoding::TypeMarker>::inline_size(decoder.context);
13361 if inlined != (member_inline_size <= 4) {
13362 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13363 }
13364 let inner_offset;
13365 let mut inner_depth = depth.clone();
13366 if inlined {
13367 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13368 inner_offset = next_offset;
13369 } else {
13370 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13371 inner_depth.increment()?;
13372 }
13373 let val_ref =
13374 self.scan_type.get_or_insert_with(|| fidl::new_empty!(WlanScanType, D));
13375 fidl::decode!(WlanScanType, D, val_ref, decoder, inner_offset, inner_depth)?;
13376 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13377 {
13378 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13379 }
13380 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13381 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13382 }
13383 }
13384
13385 next_offset += envelope_size;
13386 _next_ordinal_to_read += 1;
13387 if next_offset >= end_offset {
13388 return Ok(());
13389 }
13390
13391 while _next_ordinal_to_read < 3 {
13393 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13394 _next_ordinal_to_read += 1;
13395 next_offset += envelope_size;
13396 }
13397
13398 let next_out_of_line = decoder.next_out_of_line();
13399 let handles_before = decoder.remaining_handles();
13400 if let Some((inlined, num_bytes, num_handles)) =
13401 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13402 {
13403 let member_inline_size =
13404 <fidl::encoding::Vector<u8, 256> as fidl::encoding::TypeMarker>::inline_size(
13405 decoder.context,
13406 );
13407 if inlined != (member_inline_size <= 4) {
13408 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13409 }
13410 let inner_offset;
13411 let mut inner_depth = depth.clone();
13412 if inlined {
13413 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13414 inner_offset = next_offset;
13415 } else {
13416 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13417 inner_depth.increment()?;
13418 }
13419 let val_ref = self
13420 .channels
13421 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<u8, 256>, D));
13422 fidl::decode!(fidl::encoding::Vector<u8, 256>, D, val_ref, decoder, inner_offset, inner_depth)?;
13423 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13424 {
13425 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13426 }
13427 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13428 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13429 }
13430 }
13431
13432 next_offset += envelope_size;
13433 _next_ordinal_to_read += 1;
13434 if next_offset >= end_offset {
13435 return Ok(());
13436 }
13437
13438 while _next_ordinal_to_read < 4 {
13440 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13441 _next_ordinal_to_read += 1;
13442 next_offset += envelope_size;
13443 }
13444
13445 let next_out_of_line = decoder.next_out_of_line();
13446 let handles_before = decoder.remaining_handles();
13447 if let Some((inlined, num_bytes, num_handles)) =
13448 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13449 {
13450 let member_inline_size = <fidl::encoding::UnboundedVector<
13451 fidl::encoding::Vector<u8, 32>,
13452 > as fidl::encoding::TypeMarker>::inline_size(
13453 decoder.context
13454 );
13455 if inlined != (member_inline_size <= 4) {
13456 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13457 }
13458 let inner_offset;
13459 let mut inner_depth = depth.clone();
13460 if inlined {
13461 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13462 inner_offset = next_offset;
13463 } else {
13464 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13465 inner_depth.increment()?;
13466 }
13467 let val_ref = self.ssids.get_or_insert_with(|| {
13468 fidl::new_empty!(
13469 fidl::encoding::UnboundedVector<fidl::encoding::Vector<u8, 32>>,
13470 D
13471 )
13472 });
13473 fidl::decode!(
13474 fidl::encoding::UnboundedVector<fidl::encoding::Vector<u8, 32>>,
13475 D,
13476 val_ref,
13477 decoder,
13478 inner_offset,
13479 inner_depth
13480 )?;
13481 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13482 {
13483 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13484 }
13485 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13486 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13487 }
13488 }
13489
13490 next_offset += envelope_size;
13491 _next_ordinal_to_read += 1;
13492 if next_offset >= end_offset {
13493 return Ok(());
13494 }
13495
13496 while _next_ordinal_to_read < 5 {
13498 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13499 _next_ordinal_to_read += 1;
13500 next_offset += envelope_size;
13501 }
13502
13503 let next_out_of_line = decoder.next_out_of_line();
13504 let handles_before = decoder.remaining_handles();
13505 if let Some((inlined, num_bytes, num_handles)) =
13506 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13507 {
13508 let member_inline_size =
13509 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
13510 if inlined != (member_inline_size <= 4) {
13511 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13512 }
13513 let inner_offset;
13514 let mut inner_depth = depth.clone();
13515 if inlined {
13516 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13517 inner_offset = next_offset;
13518 } else {
13519 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13520 inner_depth.increment()?;
13521 }
13522 let val_ref = self.min_channel_time.get_or_insert_with(|| fidl::new_empty!(u32, D));
13523 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
13524 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13525 {
13526 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13527 }
13528 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13529 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13530 }
13531 }
13532
13533 next_offset += envelope_size;
13534 _next_ordinal_to_read += 1;
13535 if next_offset >= end_offset {
13536 return Ok(());
13537 }
13538
13539 while _next_ordinal_to_read < 6 {
13541 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13542 _next_ordinal_to_read += 1;
13543 next_offset += envelope_size;
13544 }
13545
13546 let next_out_of_line = decoder.next_out_of_line();
13547 let handles_before = decoder.remaining_handles();
13548 if let Some((inlined, num_bytes, num_handles)) =
13549 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13550 {
13551 let member_inline_size =
13552 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
13553 if inlined != (member_inline_size <= 4) {
13554 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13555 }
13556 let inner_offset;
13557 let mut inner_depth = depth.clone();
13558 if inlined {
13559 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13560 inner_offset = next_offset;
13561 } else {
13562 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13563 inner_depth.increment()?;
13564 }
13565 let val_ref = self.max_channel_time.get_or_insert_with(|| fidl::new_empty!(u32, D));
13566 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
13567 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13568 {
13569 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13570 }
13571 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13572 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13573 }
13574 }
13575
13576 next_offset += envelope_size;
13577
13578 while next_offset < end_offset {
13580 _next_ordinal_to_read += 1;
13581 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13582 next_offset += envelope_size;
13583 }
13584
13585 Ok(())
13586 }
13587 }
13588
13589 impl WlanFullmacImplStopBssRequest {
13590 #[inline(always)]
13591 fn max_ordinal_present(&self) -> u64 {
13592 if let Some(_) = self.ssid {
13593 return 1;
13594 }
13595 0
13596 }
13597 }
13598
13599 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplStopBssRequest {
13600 type Borrowed<'a> = &'a Self;
13601 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
13602 value
13603 }
13604 }
13605
13606 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplStopBssRequest {
13607 type Owned = Self;
13608
13609 #[inline(always)]
13610 fn inline_align(_context: fidl::encoding::Context) -> usize {
13611 8
13612 }
13613
13614 #[inline(always)]
13615 fn inline_size(_context: fidl::encoding::Context) -> usize {
13616 16
13617 }
13618 }
13619
13620 unsafe impl<D: fidl::encoding::ResourceDialect>
13621 fidl::encoding::Encode<WlanFullmacImplStopBssRequest, D>
13622 for &WlanFullmacImplStopBssRequest
13623 {
13624 unsafe fn encode(
13625 self,
13626 encoder: &mut fidl::encoding::Encoder<'_, D>,
13627 offset: usize,
13628 mut depth: fidl::encoding::Depth,
13629 ) -> fidl::Result<()> {
13630 encoder.debug_check_bounds::<WlanFullmacImplStopBssRequest>(offset);
13631 let max_ordinal: u64 = self.max_ordinal_present();
13633 encoder.write_num(max_ordinal, offset);
13634 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
13635 if max_ordinal == 0 {
13637 return Ok(());
13638 }
13639 depth.increment()?;
13640 let envelope_size = 8;
13641 let bytes_len = max_ordinal as usize * envelope_size;
13642 #[allow(unused_variables)]
13643 let offset = encoder.out_of_line_offset(bytes_len);
13644 let mut _prev_end_offset: usize = 0;
13645 if 1 > max_ordinal {
13646 return Ok(());
13647 }
13648
13649 let cur_offset: usize = (1 - 1) * envelope_size;
13652
13653 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
13655
13656 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<u8, 32>, D>(
13661 self.ssid.as_ref().map(
13662 <fidl::encoding::Vector<u8, 32> as fidl::encoding::ValueTypeMarker>::borrow,
13663 ),
13664 encoder,
13665 offset + cur_offset,
13666 depth,
13667 )?;
13668
13669 _prev_end_offset = cur_offset + envelope_size;
13670
13671 Ok(())
13672 }
13673 }
13674
13675 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
13676 for WlanFullmacImplStopBssRequest
13677 {
13678 #[inline(always)]
13679 fn new_empty() -> Self {
13680 Self::default()
13681 }
13682
13683 unsafe fn decode(
13684 &mut self,
13685 decoder: &mut fidl::encoding::Decoder<'_, D>,
13686 offset: usize,
13687 mut depth: fidl::encoding::Depth,
13688 ) -> fidl::Result<()> {
13689 decoder.debug_check_bounds::<Self>(offset);
13690 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
13691 None => return Err(fidl::Error::NotNullable),
13692 Some(len) => len,
13693 };
13694 if len == 0 {
13696 return Ok(());
13697 };
13698 depth.increment()?;
13699 let envelope_size = 8;
13700 let bytes_len = len * envelope_size;
13701 let offset = decoder.out_of_line_offset(bytes_len)?;
13702 let mut _next_ordinal_to_read = 0;
13704 let mut next_offset = offset;
13705 let end_offset = offset + bytes_len;
13706 _next_ordinal_to_read += 1;
13707 if next_offset >= end_offset {
13708 return Ok(());
13709 }
13710
13711 while _next_ordinal_to_read < 1 {
13713 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13714 _next_ordinal_to_read += 1;
13715 next_offset += envelope_size;
13716 }
13717
13718 let next_out_of_line = decoder.next_out_of_line();
13719 let handles_before = decoder.remaining_handles();
13720 if let Some((inlined, num_bytes, num_handles)) =
13721 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13722 {
13723 let member_inline_size =
13724 <fidl::encoding::Vector<u8, 32> as fidl::encoding::TypeMarker>::inline_size(
13725 decoder.context,
13726 );
13727 if inlined != (member_inline_size <= 4) {
13728 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13729 }
13730 let inner_offset;
13731 let mut inner_depth = depth.clone();
13732 if inlined {
13733 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13734 inner_offset = next_offset;
13735 } else {
13736 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13737 inner_depth.increment()?;
13738 }
13739 let val_ref = self
13740 .ssid
13741 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<u8, 32>, D));
13742 fidl::decode!(fidl::encoding::Vector<u8, 32>, D, val_ref, decoder, inner_offset, inner_depth)?;
13743 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13744 {
13745 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13746 }
13747 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13748 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13749 }
13750 }
13751
13752 next_offset += envelope_size;
13753
13754 while next_offset < end_offset {
13756 _next_ordinal_to_read += 1;
13757 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13758 next_offset += envelope_size;
13759 }
13760
13761 Ok(())
13762 }
13763 }
13764
13765 impl WlanFullmacImplQuerySecuritySupportResponse {
13766 #[inline(always)]
13767 fn max_ordinal_present(&self) -> u64 {
13768 if let Some(_) = self.resp {
13769 return 1;
13770 }
13771 0
13772 }
13773 }
13774
13775 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplQuerySecuritySupportResponse {
13776 type Borrowed<'a> = &'a Self;
13777 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
13778 value
13779 }
13780 }
13781
13782 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplQuerySecuritySupportResponse {
13783 type Owned = Self;
13784
13785 #[inline(always)]
13786 fn inline_align(_context: fidl::encoding::Context) -> usize {
13787 8
13788 }
13789
13790 #[inline(always)]
13791 fn inline_size(_context: fidl::encoding::Context) -> usize {
13792 16
13793 }
13794 }
13795
13796 unsafe impl<D: fidl::encoding::ResourceDialect>
13797 fidl::encoding::Encode<WlanFullmacImplQuerySecuritySupportResponse, D>
13798 for &WlanFullmacImplQuerySecuritySupportResponse
13799 {
13800 unsafe fn encode(
13801 self,
13802 encoder: &mut fidl::encoding::Encoder<'_, D>,
13803 offset: usize,
13804 mut depth: fidl::encoding::Depth,
13805 ) -> fidl::Result<()> {
13806 encoder.debug_check_bounds::<WlanFullmacImplQuerySecuritySupportResponse>(offset);
13807 let max_ordinal: u64 = self.max_ordinal_present();
13809 encoder.write_num(max_ordinal, offset);
13810 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
13811 if max_ordinal == 0 {
13813 return Ok(());
13814 }
13815 depth.increment()?;
13816 let envelope_size = 8;
13817 let bytes_len = max_ordinal as usize * envelope_size;
13818 #[allow(unused_variables)]
13819 let offset = encoder.out_of_line_offset(bytes_len);
13820 let mut _prev_end_offset: usize = 0;
13821 if 1 > max_ordinal {
13822 return Ok(());
13823 }
13824
13825 let cur_offset: usize = (1 - 1) * envelope_size;
13828
13829 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
13831
13832 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_common__common::SecuritySupport, D>(
13837 self.resp.as_ref().map(<fidl_fuchsia_wlan_common__common::SecuritySupport as fidl::encoding::ValueTypeMarker>::borrow),
13838 encoder, offset + cur_offset, depth
13839 )?;
13840
13841 _prev_end_offset = cur_offset + envelope_size;
13842
13843 Ok(())
13844 }
13845 }
13846
13847 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
13848 for WlanFullmacImplQuerySecuritySupportResponse
13849 {
13850 #[inline(always)]
13851 fn new_empty() -> Self {
13852 Self::default()
13853 }
13854
13855 unsafe fn decode(
13856 &mut self,
13857 decoder: &mut fidl::encoding::Decoder<'_, D>,
13858 offset: usize,
13859 mut depth: fidl::encoding::Depth,
13860 ) -> fidl::Result<()> {
13861 decoder.debug_check_bounds::<Self>(offset);
13862 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
13863 None => return Err(fidl::Error::NotNullable),
13864 Some(len) => len,
13865 };
13866 if len == 0 {
13868 return Ok(());
13869 };
13870 depth.increment()?;
13871 let envelope_size = 8;
13872 let bytes_len = len * envelope_size;
13873 let offset = decoder.out_of_line_offset(bytes_len)?;
13874 let mut _next_ordinal_to_read = 0;
13876 let mut next_offset = offset;
13877 let end_offset = offset + bytes_len;
13878 _next_ordinal_to_read += 1;
13879 if next_offset >= end_offset {
13880 return Ok(());
13881 }
13882
13883 while _next_ordinal_to_read < 1 {
13885 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13886 _next_ordinal_to_read += 1;
13887 next_offset += envelope_size;
13888 }
13889
13890 let next_out_of_line = decoder.next_out_of_line();
13891 let handles_before = decoder.remaining_handles();
13892 if let Some((inlined, num_bytes, num_handles)) =
13893 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13894 {
13895 let member_inline_size = <fidl_fuchsia_wlan_common__common::SecuritySupport as fidl::encoding::TypeMarker>::inline_size(decoder.context);
13896 if inlined != (member_inline_size <= 4) {
13897 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13898 }
13899 let inner_offset;
13900 let mut inner_depth = depth.clone();
13901 if inlined {
13902 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13903 inner_offset = next_offset;
13904 } else {
13905 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13906 inner_depth.increment()?;
13907 }
13908 let val_ref = self.resp.get_or_insert_with(|| {
13909 fidl::new_empty!(fidl_fuchsia_wlan_common__common::SecuritySupport, D)
13910 });
13911 fidl::decode!(
13912 fidl_fuchsia_wlan_common__common::SecuritySupport,
13913 D,
13914 val_ref,
13915 decoder,
13916 inner_offset,
13917 inner_depth
13918 )?;
13919 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13920 {
13921 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13922 }
13923 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13924 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13925 }
13926 }
13927
13928 next_offset += envelope_size;
13929
13930 while next_offset < end_offset {
13932 _next_ordinal_to_read += 1;
13933 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13934 next_offset += envelope_size;
13935 }
13936
13937 Ok(())
13938 }
13939 }
13940
13941 impl WlanFullmacImplQuerySpectrumManagementSupportResponse {
13942 #[inline(always)]
13943 fn max_ordinal_present(&self) -> u64 {
13944 if let Some(_) = self.resp {
13945 return 1;
13946 }
13947 0
13948 }
13949 }
13950
13951 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplQuerySpectrumManagementSupportResponse {
13952 type Borrowed<'a> = &'a Self;
13953 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
13954 value
13955 }
13956 }
13957
13958 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplQuerySpectrumManagementSupportResponse {
13959 type Owned = Self;
13960
13961 #[inline(always)]
13962 fn inline_align(_context: fidl::encoding::Context) -> usize {
13963 8
13964 }
13965
13966 #[inline(always)]
13967 fn inline_size(_context: fidl::encoding::Context) -> usize {
13968 16
13969 }
13970 }
13971
13972 unsafe impl<D: fidl::encoding::ResourceDialect>
13973 fidl::encoding::Encode<WlanFullmacImplQuerySpectrumManagementSupportResponse, D>
13974 for &WlanFullmacImplQuerySpectrumManagementSupportResponse
13975 {
13976 unsafe fn encode(
13977 self,
13978 encoder: &mut fidl::encoding::Encoder<'_, D>,
13979 offset: usize,
13980 mut depth: fidl::encoding::Depth,
13981 ) -> fidl::Result<()> {
13982 encoder.debug_check_bounds::<WlanFullmacImplQuerySpectrumManagementSupportResponse>(
13983 offset,
13984 );
13985 let max_ordinal: u64 = self.max_ordinal_present();
13987 encoder.write_num(max_ordinal, offset);
13988 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
13989 if max_ordinal == 0 {
13991 return Ok(());
13992 }
13993 depth.increment()?;
13994 let envelope_size = 8;
13995 let bytes_len = max_ordinal as usize * envelope_size;
13996 #[allow(unused_variables)]
13997 let offset = encoder.out_of_line_offset(bytes_len);
13998 let mut _prev_end_offset: usize = 0;
13999 if 1 > max_ordinal {
14000 return Ok(());
14001 }
14002
14003 let cur_offset: usize = (1 - 1) * envelope_size;
14006
14007 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
14009
14010 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_common__common::SpectrumManagementSupport, D>(
14015 self.resp.as_ref().map(<fidl_fuchsia_wlan_common__common::SpectrumManagementSupport as fidl::encoding::ValueTypeMarker>::borrow),
14016 encoder, offset + cur_offset, depth
14017 )?;
14018
14019 _prev_end_offset = cur_offset + envelope_size;
14020
14021 Ok(())
14022 }
14023 }
14024
14025 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
14026 for WlanFullmacImplQuerySpectrumManagementSupportResponse
14027 {
14028 #[inline(always)]
14029 fn new_empty() -> Self {
14030 Self::default()
14031 }
14032
14033 unsafe fn decode(
14034 &mut self,
14035 decoder: &mut fidl::encoding::Decoder<'_, D>,
14036 offset: usize,
14037 mut depth: fidl::encoding::Depth,
14038 ) -> fidl::Result<()> {
14039 decoder.debug_check_bounds::<Self>(offset);
14040 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
14041 None => return Err(fidl::Error::NotNullable),
14042 Some(len) => len,
14043 };
14044 if len == 0 {
14046 return Ok(());
14047 };
14048 depth.increment()?;
14049 let envelope_size = 8;
14050 let bytes_len = len * envelope_size;
14051 let offset = decoder.out_of_line_offset(bytes_len)?;
14052 let mut _next_ordinal_to_read = 0;
14054 let mut next_offset = offset;
14055 let end_offset = offset + bytes_len;
14056 _next_ordinal_to_read += 1;
14057 if next_offset >= end_offset {
14058 return Ok(());
14059 }
14060
14061 while _next_ordinal_to_read < 1 {
14063 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14064 _next_ordinal_to_read += 1;
14065 next_offset += envelope_size;
14066 }
14067
14068 let next_out_of_line = decoder.next_out_of_line();
14069 let handles_before = decoder.remaining_handles();
14070 if let Some((inlined, num_bytes, num_handles)) =
14071 fidl::encoding::decode_envelope_header(decoder, next_offset)?
14072 {
14073 let member_inline_size = <fidl_fuchsia_wlan_common__common::SpectrumManagementSupport as fidl::encoding::TypeMarker>::inline_size(decoder.context);
14074 if inlined != (member_inline_size <= 4) {
14075 return Err(fidl::Error::InvalidInlineBitInEnvelope);
14076 }
14077 let inner_offset;
14078 let mut inner_depth = depth.clone();
14079 if inlined {
14080 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
14081 inner_offset = next_offset;
14082 } else {
14083 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
14084 inner_depth.increment()?;
14085 }
14086 let val_ref = self.resp.get_or_insert_with(|| {
14087 fidl::new_empty!(fidl_fuchsia_wlan_common__common::SpectrumManagementSupport, D)
14088 });
14089 fidl::decode!(
14090 fidl_fuchsia_wlan_common__common::SpectrumManagementSupport,
14091 D,
14092 val_ref,
14093 decoder,
14094 inner_offset,
14095 inner_depth
14096 )?;
14097 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
14098 {
14099 return Err(fidl::Error::InvalidNumBytesInEnvelope);
14100 }
14101 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
14102 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
14103 }
14104 }
14105
14106 next_offset += envelope_size;
14107
14108 while next_offset < end_offset {
14110 _next_ordinal_to_read += 1;
14111 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14112 next_offset += envelope_size;
14113 }
14114
14115 Ok(())
14116 }
14117 }
14118
14119 impl WlanFullmacImplQueryTelemetrySupportResponse {
14120 #[inline(always)]
14121 fn max_ordinal_present(&self) -> u64 {
14122 if let Some(_) = self.resp {
14123 return 1;
14124 }
14125 0
14126 }
14127 }
14128
14129 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplQueryTelemetrySupportResponse {
14130 type Borrowed<'a> = &'a Self;
14131 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
14132 value
14133 }
14134 }
14135
14136 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplQueryTelemetrySupportResponse {
14137 type Owned = Self;
14138
14139 #[inline(always)]
14140 fn inline_align(_context: fidl::encoding::Context) -> usize {
14141 8
14142 }
14143
14144 #[inline(always)]
14145 fn inline_size(_context: fidl::encoding::Context) -> usize {
14146 16
14147 }
14148 }
14149
14150 unsafe impl<D: fidl::encoding::ResourceDialect>
14151 fidl::encoding::Encode<WlanFullmacImplQueryTelemetrySupportResponse, D>
14152 for &WlanFullmacImplQueryTelemetrySupportResponse
14153 {
14154 unsafe fn encode(
14155 self,
14156 encoder: &mut fidl::encoding::Encoder<'_, D>,
14157 offset: usize,
14158 mut depth: fidl::encoding::Depth,
14159 ) -> fidl::Result<()> {
14160 encoder.debug_check_bounds::<WlanFullmacImplQueryTelemetrySupportResponse>(offset);
14161 let max_ordinal: u64 = self.max_ordinal_present();
14163 encoder.write_num(max_ordinal, offset);
14164 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
14165 if max_ordinal == 0 {
14167 return Ok(());
14168 }
14169 depth.increment()?;
14170 let envelope_size = 8;
14171 let bytes_len = max_ordinal as usize * envelope_size;
14172 #[allow(unused_variables)]
14173 let offset = encoder.out_of_line_offset(bytes_len);
14174 let mut _prev_end_offset: usize = 0;
14175 if 1 > max_ordinal {
14176 return Ok(());
14177 }
14178
14179 let cur_offset: usize = (1 - 1) * envelope_size;
14182
14183 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
14185
14186 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_stats__common::TelemetrySupport, D>(
14191 self.resp.as_ref().map(<fidl_fuchsia_wlan_stats__common::TelemetrySupport as fidl::encoding::ValueTypeMarker>::borrow),
14192 encoder, offset + cur_offset, depth
14193 )?;
14194
14195 _prev_end_offset = cur_offset + envelope_size;
14196
14197 Ok(())
14198 }
14199 }
14200
14201 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
14202 for WlanFullmacImplQueryTelemetrySupportResponse
14203 {
14204 #[inline(always)]
14205 fn new_empty() -> Self {
14206 Self::default()
14207 }
14208
14209 unsafe fn decode(
14210 &mut self,
14211 decoder: &mut fidl::encoding::Decoder<'_, D>,
14212 offset: usize,
14213 mut depth: fidl::encoding::Depth,
14214 ) -> fidl::Result<()> {
14215 decoder.debug_check_bounds::<Self>(offset);
14216 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
14217 None => return Err(fidl::Error::NotNullable),
14218 Some(len) => len,
14219 };
14220 if len == 0 {
14222 return Ok(());
14223 };
14224 depth.increment()?;
14225 let envelope_size = 8;
14226 let bytes_len = len * envelope_size;
14227 let offset = decoder.out_of_line_offset(bytes_len)?;
14228 let mut _next_ordinal_to_read = 0;
14230 let mut next_offset = offset;
14231 let end_offset = offset + bytes_len;
14232 _next_ordinal_to_read += 1;
14233 if next_offset >= end_offset {
14234 return Ok(());
14235 }
14236
14237 while _next_ordinal_to_read < 1 {
14239 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14240 _next_ordinal_to_read += 1;
14241 next_offset += envelope_size;
14242 }
14243
14244 let next_out_of_line = decoder.next_out_of_line();
14245 let handles_before = decoder.remaining_handles();
14246 if let Some((inlined, num_bytes, num_handles)) =
14247 fidl::encoding::decode_envelope_header(decoder, next_offset)?
14248 {
14249 let member_inline_size = <fidl_fuchsia_wlan_stats__common::TelemetrySupport as fidl::encoding::TypeMarker>::inline_size(decoder.context);
14250 if inlined != (member_inline_size <= 4) {
14251 return Err(fidl::Error::InvalidInlineBitInEnvelope);
14252 }
14253 let inner_offset;
14254 let mut inner_depth = depth.clone();
14255 if inlined {
14256 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
14257 inner_offset = next_offset;
14258 } else {
14259 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
14260 inner_depth.increment()?;
14261 }
14262 let val_ref = self.resp.get_or_insert_with(|| {
14263 fidl::new_empty!(fidl_fuchsia_wlan_stats__common::TelemetrySupport, D)
14264 });
14265 fidl::decode!(
14266 fidl_fuchsia_wlan_stats__common::TelemetrySupport,
14267 D,
14268 val_ref,
14269 decoder,
14270 inner_offset,
14271 inner_depth
14272 )?;
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
14284 while next_offset < end_offset {
14286 _next_ordinal_to_read += 1;
14287 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14288 next_offset += envelope_size;
14289 }
14290
14291 Ok(())
14292 }
14293 }
14294
14295 impl WlanFullmacImplQueryResponse {
14296 #[inline(always)]
14297 fn max_ordinal_present(&self) -> u64 {
14298 if let Some(_) = self.factory_addr {
14299 return 4;
14300 }
14301 if let Some(_) = self.band_caps {
14302 return 3;
14303 }
14304 if let Some(_) = self.role {
14305 return 2;
14306 }
14307 if let Some(_) = self.sta_addr {
14308 return 1;
14309 }
14310 0
14311 }
14312 }
14313
14314 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplQueryResponse {
14315 type Borrowed<'a> = &'a Self;
14316 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
14317 value
14318 }
14319 }
14320
14321 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplQueryResponse {
14322 type Owned = Self;
14323
14324 #[inline(always)]
14325 fn inline_align(_context: fidl::encoding::Context) -> usize {
14326 8
14327 }
14328
14329 #[inline(always)]
14330 fn inline_size(_context: fidl::encoding::Context) -> usize {
14331 16
14332 }
14333 }
14334
14335 unsafe impl<D: fidl::encoding::ResourceDialect>
14336 fidl::encoding::Encode<WlanFullmacImplQueryResponse, D> for &WlanFullmacImplQueryResponse
14337 {
14338 unsafe fn encode(
14339 self,
14340 encoder: &mut fidl::encoding::Encoder<'_, D>,
14341 offset: usize,
14342 mut depth: fidl::encoding::Depth,
14343 ) -> fidl::Result<()> {
14344 encoder.debug_check_bounds::<WlanFullmacImplQueryResponse>(offset);
14345 let max_ordinal: u64 = self.max_ordinal_present();
14347 encoder.write_num(max_ordinal, offset);
14348 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
14349 if max_ordinal == 0 {
14351 return Ok(());
14352 }
14353 depth.increment()?;
14354 let envelope_size = 8;
14355 let bytes_len = max_ordinal as usize * envelope_size;
14356 #[allow(unused_variables)]
14357 let offset = encoder.out_of_line_offset(bytes_len);
14358 let mut _prev_end_offset: usize = 0;
14359 if 1 > max_ordinal {
14360 return Ok(());
14361 }
14362
14363 let cur_offset: usize = (1 - 1) * envelope_size;
14366
14367 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
14369
14370 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
14375 self.sta_addr
14376 .as_ref()
14377 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
14378 encoder,
14379 offset + cur_offset,
14380 depth,
14381 )?;
14382
14383 _prev_end_offset = cur_offset + envelope_size;
14384 if 2 > max_ordinal {
14385 return Ok(());
14386 }
14387
14388 let cur_offset: usize = (2 - 1) * envelope_size;
14391
14392 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
14394
14395 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_common__common::WlanMacRole, D>(
14400 self.role.as_ref().map(<fidl_fuchsia_wlan_common__common::WlanMacRole as fidl::encoding::ValueTypeMarker>::borrow),
14401 encoder, offset + cur_offset, depth
14402 )?;
14403
14404 _prev_end_offset = cur_offset + envelope_size;
14405 if 3 > max_ordinal {
14406 return Ok(());
14407 }
14408
14409 let cur_offset: usize = (3 - 1) * envelope_size;
14412
14413 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
14415
14416 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<BandCapability, 16>, D>(
14421 self.band_caps.as_ref().map(<fidl::encoding::Vector<BandCapability, 16> as fidl::encoding::ValueTypeMarker>::borrow),
14422 encoder, offset + cur_offset, depth
14423 )?;
14424
14425 _prev_end_offset = cur_offset + envelope_size;
14426 if 4 > max_ordinal {
14427 return Ok(());
14428 }
14429
14430 let cur_offset: usize = (4 - 1) * envelope_size;
14433
14434 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
14436
14437 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
14442 self.factory_addr
14443 .as_ref()
14444 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
14445 encoder,
14446 offset + cur_offset,
14447 depth,
14448 )?;
14449
14450 _prev_end_offset = cur_offset + envelope_size;
14451
14452 Ok(())
14453 }
14454 }
14455
14456 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
14457 for WlanFullmacImplQueryResponse
14458 {
14459 #[inline(always)]
14460 fn new_empty() -> Self {
14461 Self::default()
14462 }
14463
14464 unsafe fn decode(
14465 &mut self,
14466 decoder: &mut fidl::encoding::Decoder<'_, D>,
14467 offset: usize,
14468 mut depth: fidl::encoding::Depth,
14469 ) -> fidl::Result<()> {
14470 decoder.debug_check_bounds::<Self>(offset);
14471 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
14472 None => return Err(fidl::Error::NotNullable),
14473 Some(len) => len,
14474 };
14475 if len == 0 {
14477 return Ok(());
14478 };
14479 depth.increment()?;
14480 let envelope_size = 8;
14481 let bytes_len = len * envelope_size;
14482 let offset = decoder.out_of_line_offset(bytes_len)?;
14483 let mut _next_ordinal_to_read = 0;
14485 let mut next_offset = offset;
14486 let end_offset = offset + bytes_len;
14487 _next_ordinal_to_read += 1;
14488 if next_offset >= end_offset {
14489 return Ok(());
14490 }
14491
14492 while _next_ordinal_to_read < 1 {
14494 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14495 _next_ordinal_to_read += 1;
14496 next_offset += envelope_size;
14497 }
14498
14499 let next_out_of_line = decoder.next_out_of_line();
14500 let handles_before = decoder.remaining_handles();
14501 if let Some((inlined, num_bytes, num_handles)) =
14502 fidl::encoding::decode_envelope_header(decoder, next_offset)?
14503 {
14504 let member_inline_size =
14505 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
14506 decoder.context,
14507 );
14508 if inlined != (member_inline_size <= 4) {
14509 return Err(fidl::Error::InvalidInlineBitInEnvelope);
14510 }
14511 let inner_offset;
14512 let mut inner_depth = depth.clone();
14513 if inlined {
14514 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
14515 inner_offset = next_offset;
14516 } else {
14517 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
14518 inner_depth.increment()?;
14519 }
14520 let val_ref = self
14521 .sta_addr
14522 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
14523 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
14524 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
14525 {
14526 return Err(fidl::Error::InvalidNumBytesInEnvelope);
14527 }
14528 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
14529 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
14530 }
14531 }
14532
14533 next_offset += envelope_size;
14534 _next_ordinal_to_read += 1;
14535 if next_offset >= end_offset {
14536 return Ok(());
14537 }
14538
14539 while _next_ordinal_to_read < 2 {
14541 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14542 _next_ordinal_to_read += 1;
14543 next_offset += envelope_size;
14544 }
14545
14546 let next_out_of_line = decoder.next_out_of_line();
14547 let handles_before = decoder.remaining_handles();
14548 if let Some((inlined, num_bytes, num_handles)) =
14549 fidl::encoding::decode_envelope_header(decoder, next_offset)?
14550 {
14551 let member_inline_size = <fidl_fuchsia_wlan_common__common::WlanMacRole as fidl::encoding::TypeMarker>::inline_size(decoder.context);
14552 if inlined != (member_inline_size <= 4) {
14553 return Err(fidl::Error::InvalidInlineBitInEnvelope);
14554 }
14555 let inner_offset;
14556 let mut inner_depth = depth.clone();
14557 if inlined {
14558 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
14559 inner_offset = next_offset;
14560 } else {
14561 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
14562 inner_depth.increment()?;
14563 }
14564 let val_ref = self.role.get_or_insert_with(|| {
14565 fidl::new_empty!(fidl_fuchsia_wlan_common__common::WlanMacRole, D)
14566 });
14567 fidl::decode!(
14568 fidl_fuchsia_wlan_common__common::WlanMacRole,
14569 D,
14570 val_ref,
14571 decoder,
14572 inner_offset,
14573 inner_depth
14574 )?;
14575 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
14576 {
14577 return Err(fidl::Error::InvalidNumBytesInEnvelope);
14578 }
14579 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
14580 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
14581 }
14582 }
14583
14584 next_offset += envelope_size;
14585 _next_ordinal_to_read += 1;
14586 if next_offset >= end_offset {
14587 return Ok(());
14588 }
14589
14590 while _next_ordinal_to_read < 3 {
14592 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14593 _next_ordinal_to_read += 1;
14594 next_offset += envelope_size;
14595 }
14596
14597 let next_out_of_line = decoder.next_out_of_line();
14598 let handles_before = decoder.remaining_handles();
14599 if let Some((inlined, num_bytes, num_handles)) =
14600 fidl::encoding::decode_envelope_header(decoder, next_offset)?
14601 {
14602 let member_inline_size = <fidl::encoding::Vector<BandCapability, 16> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
14603 if inlined != (member_inline_size <= 4) {
14604 return Err(fidl::Error::InvalidInlineBitInEnvelope);
14605 }
14606 let inner_offset;
14607 let mut inner_depth = depth.clone();
14608 if inlined {
14609 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
14610 inner_offset = next_offset;
14611 } else {
14612 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
14613 inner_depth.increment()?;
14614 }
14615 let val_ref = self.band_caps.get_or_insert_with(
14616 || fidl::new_empty!(fidl::encoding::Vector<BandCapability, 16>, D),
14617 );
14618 fidl::decode!(fidl::encoding::Vector<BandCapability, 16>, D, val_ref, decoder, inner_offset, inner_depth)?;
14619 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
14620 {
14621 return Err(fidl::Error::InvalidNumBytesInEnvelope);
14622 }
14623 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
14624 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
14625 }
14626 }
14627
14628 next_offset += envelope_size;
14629 _next_ordinal_to_read += 1;
14630 if next_offset >= end_offset {
14631 return Ok(());
14632 }
14633
14634 while _next_ordinal_to_read < 4 {
14636 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14637 _next_ordinal_to_read += 1;
14638 next_offset += envelope_size;
14639 }
14640
14641 let next_out_of_line = decoder.next_out_of_line();
14642 let handles_before = decoder.remaining_handles();
14643 if let Some((inlined, num_bytes, num_handles)) =
14644 fidl::encoding::decode_envelope_header(decoder, next_offset)?
14645 {
14646 let member_inline_size =
14647 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
14648 decoder.context,
14649 );
14650 if inlined != (member_inline_size <= 4) {
14651 return Err(fidl::Error::InvalidInlineBitInEnvelope);
14652 }
14653 let inner_offset;
14654 let mut inner_depth = depth.clone();
14655 if inlined {
14656 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
14657 inner_offset = next_offset;
14658 } else {
14659 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
14660 inner_depth.increment()?;
14661 }
14662 let val_ref = self
14663 .factory_addr
14664 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
14665 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
14666 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
14667 {
14668 return Err(fidl::Error::InvalidNumBytesInEnvelope);
14669 }
14670 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
14671 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
14672 }
14673 }
14674
14675 next_offset += envelope_size;
14676
14677 while next_offset < end_offset {
14679 _next_ordinal_to_read += 1;
14680 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14681 next_offset += envelope_size;
14682 }
14683
14684 Ok(())
14685 }
14686 }
14687
14688 impl WlanFullmacOwePublicKey {
14689 #[inline(always)]
14690 fn max_ordinal_present(&self) -> u64 {
14691 if let Some(_) = self.key {
14692 return 2;
14693 }
14694 if let Some(_) = self.group {
14695 return 1;
14696 }
14697 0
14698 }
14699 }
14700
14701 impl fidl::encoding::ValueTypeMarker for WlanFullmacOwePublicKey {
14702 type Borrowed<'a> = &'a Self;
14703 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
14704 value
14705 }
14706 }
14707
14708 unsafe impl fidl::encoding::TypeMarker for WlanFullmacOwePublicKey {
14709 type Owned = Self;
14710
14711 #[inline(always)]
14712 fn inline_align(_context: fidl::encoding::Context) -> usize {
14713 8
14714 }
14715
14716 #[inline(always)]
14717 fn inline_size(_context: fidl::encoding::Context) -> usize {
14718 16
14719 }
14720 }
14721
14722 unsafe impl<D: fidl::encoding::ResourceDialect>
14723 fidl::encoding::Encode<WlanFullmacOwePublicKey, D> for &WlanFullmacOwePublicKey
14724 {
14725 unsafe fn encode(
14726 self,
14727 encoder: &mut fidl::encoding::Encoder<'_, D>,
14728 offset: usize,
14729 mut depth: fidl::encoding::Depth,
14730 ) -> fidl::Result<()> {
14731 encoder.debug_check_bounds::<WlanFullmacOwePublicKey>(offset);
14732 let max_ordinal: u64 = self.max_ordinal_present();
14734 encoder.write_num(max_ordinal, offset);
14735 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
14736 if max_ordinal == 0 {
14738 return Ok(());
14739 }
14740 depth.increment()?;
14741 let envelope_size = 8;
14742 let bytes_len = max_ordinal as usize * envelope_size;
14743 #[allow(unused_variables)]
14744 let offset = encoder.out_of_line_offset(bytes_len);
14745 let mut _prev_end_offset: usize = 0;
14746 if 1 > max_ordinal {
14747 return Ok(());
14748 }
14749
14750 let cur_offset: usize = (1 - 1) * envelope_size;
14753
14754 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
14756
14757 fidl::encoding::encode_in_envelope_optional::<u16, D>(
14762 self.group.as_ref().map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
14763 encoder,
14764 offset + cur_offset,
14765 depth,
14766 )?;
14767
14768 _prev_end_offset = cur_offset + envelope_size;
14769 if 2 > max_ordinal {
14770 return Ok(());
14771 }
14772
14773 let cur_offset: usize = (2 - 1) * envelope_size;
14776
14777 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
14779
14780 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<u8>, D>(
14785 self.key.as_ref().map(<fidl::encoding::UnboundedVector<u8> as fidl::encoding::ValueTypeMarker>::borrow),
14786 encoder, offset + cur_offset, depth
14787 )?;
14788
14789 _prev_end_offset = cur_offset + envelope_size;
14790
14791 Ok(())
14792 }
14793 }
14794
14795 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
14796 for WlanFullmacOwePublicKey
14797 {
14798 #[inline(always)]
14799 fn new_empty() -> Self {
14800 Self::default()
14801 }
14802
14803 unsafe fn decode(
14804 &mut self,
14805 decoder: &mut fidl::encoding::Decoder<'_, D>,
14806 offset: usize,
14807 mut depth: fidl::encoding::Depth,
14808 ) -> fidl::Result<()> {
14809 decoder.debug_check_bounds::<Self>(offset);
14810 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
14811 None => return Err(fidl::Error::NotNullable),
14812 Some(len) => len,
14813 };
14814 if len == 0 {
14816 return Ok(());
14817 };
14818 depth.increment()?;
14819 let envelope_size = 8;
14820 let bytes_len = len * envelope_size;
14821 let offset = decoder.out_of_line_offset(bytes_len)?;
14822 let mut _next_ordinal_to_read = 0;
14824 let mut next_offset = offset;
14825 let end_offset = offset + bytes_len;
14826 _next_ordinal_to_read += 1;
14827 if next_offset >= end_offset {
14828 return Ok(());
14829 }
14830
14831 while _next_ordinal_to_read < 1 {
14833 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14834 _next_ordinal_to_read += 1;
14835 next_offset += envelope_size;
14836 }
14837
14838 let next_out_of_line = decoder.next_out_of_line();
14839 let handles_before = decoder.remaining_handles();
14840 if let Some((inlined, num_bytes, num_handles)) =
14841 fidl::encoding::decode_envelope_header(decoder, next_offset)?
14842 {
14843 let member_inline_size =
14844 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
14845 if inlined != (member_inline_size <= 4) {
14846 return Err(fidl::Error::InvalidInlineBitInEnvelope);
14847 }
14848 let inner_offset;
14849 let mut inner_depth = depth.clone();
14850 if inlined {
14851 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
14852 inner_offset = next_offset;
14853 } else {
14854 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
14855 inner_depth.increment()?;
14856 }
14857 let val_ref = self.group.get_or_insert_with(|| fidl::new_empty!(u16, D));
14858 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
14859 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
14860 {
14861 return Err(fidl::Error::InvalidNumBytesInEnvelope);
14862 }
14863 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
14864 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
14865 }
14866 }
14867
14868 next_offset += envelope_size;
14869 _next_ordinal_to_read += 1;
14870 if next_offset >= end_offset {
14871 return Ok(());
14872 }
14873
14874 while _next_ordinal_to_read < 2 {
14876 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14877 _next_ordinal_to_read += 1;
14878 next_offset += envelope_size;
14879 }
14880
14881 let next_out_of_line = decoder.next_out_of_line();
14882 let handles_before = decoder.remaining_handles();
14883 if let Some((inlined, num_bytes, num_handles)) =
14884 fidl::encoding::decode_envelope_header(decoder, next_offset)?
14885 {
14886 let member_inline_size = <fidl::encoding::UnboundedVector<u8> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
14887 if inlined != (member_inline_size <= 4) {
14888 return Err(fidl::Error::InvalidInlineBitInEnvelope);
14889 }
14890 let inner_offset;
14891 let mut inner_depth = depth.clone();
14892 if inlined {
14893 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
14894 inner_offset = next_offset;
14895 } else {
14896 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
14897 inner_depth.increment()?;
14898 }
14899 let val_ref = self.key.get_or_insert_with(|| {
14900 fidl::new_empty!(fidl::encoding::UnboundedVector<u8>, D)
14901 });
14902 fidl::decode!(
14903 fidl::encoding::UnboundedVector<u8>,
14904 D,
14905 val_ref,
14906 decoder,
14907 inner_offset,
14908 inner_depth
14909 )?;
14910 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
14911 {
14912 return Err(fidl::Error::InvalidNumBytesInEnvelope);
14913 }
14914 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
14915 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
14916 }
14917 }
14918
14919 next_offset += envelope_size;
14920
14921 while next_offset < end_offset {
14923 _next_ordinal_to_read += 1;
14924 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14925 next_offset += envelope_size;
14926 }
14927
14928 Ok(())
14929 }
14930 }
14931}