1#![warn(clippy::all)]
4#![allow(unused_parens, unused_mut, unused_imports, nonstandard_style)]
5
6use bitflags::bitflags;
7use fidl::encoding::{MessageBufFor, ProxyChannelBox, ResourceDialect};
8use futures::future::{self, MaybeDone, TryFutureExt};
9use zx_status;
10
11pub const WLAN_MAX_KEYLIST_SIZE: u32 = 4;
12
13pub const WLAN_VIE_MAX_LEN: u32 = 514;
16
17#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
18pub enum EapolTxResult {
19 Success,
20 TransmissionFailure,
21 #[doc(hidden)]
22 __SourceBreaking {
23 unknown_ordinal: u8,
24 },
25}
26
27#[macro_export]
29macro_rules! EapolTxResultUnknown {
30 () => {
31 _
32 };
33}
34
35impl EapolTxResult {
36 #[inline]
37 pub fn from_primitive(prim: u8) -> Option<Self> {
38 match prim {
39 0 => Some(Self::Success),
40 1 => Some(Self::TransmissionFailure),
41 _ => None,
42 }
43 }
44
45 #[inline]
46 pub fn from_primitive_allow_unknown(prim: u8) -> Self {
47 match prim {
48 0 => Self::Success,
49 1 => Self::TransmissionFailure,
50 unknown_ordinal => Self::__SourceBreaking { unknown_ordinal },
51 }
52 }
53
54 #[inline]
55 pub fn unknown() -> Self {
56 Self::__SourceBreaking { unknown_ordinal: 0xff }
57 }
58
59 #[inline]
60 pub const fn into_primitive(self) -> u8 {
61 match self {
62 Self::Success => 0,
63 Self::TransmissionFailure => 1,
64 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
65 }
66 }
67
68 #[inline]
69 pub fn is_unknown(&self) -> bool {
70 match self {
71 Self::__SourceBreaking { unknown_ordinal: _ } => true,
72 _ => false,
73 }
74 }
75}
76
77#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
78pub enum StartResult {
79 Success,
80 BssAlreadyStartedOrJoined,
81 ResetRequiredBeforeStart,
82 NotSupported,
83 #[doc(hidden)]
84 __SourceBreaking {
85 unknown_ordinal: u8,
86 },
87}
88
89#[macro_export]
91macro_rules! StartResultUnknown {
92 () => {
93 _
94 };
95}
96
97impl StartResult {
98 #[inline]
99 pub fn from_primitive(prim: u8) -> Option<Self> {
100 match prim {
101 0 => Some(Self::Success),
102 1 => Some(Self::BssAlreadyStartedOrJoined),
103 2 => Some(Self::ResetRequiredBeforeStart),
104 3 => Some(Self::NotSupported),
105 _ => None,
106 }
107 }
108
109 #[inline]
110 pub fn from_primitive_allow_unknown(prim: u8) -> Self {
111 match prim {
112 0 => Self::Success,
113 1 => Self::BssAlreadyStartedOrJoined,
114 2 => Self::ResetRequiredBeforeStart,
115 3 => Self::NotSupported,
116 unknown_ordinal => Self::__SourceBreaking { unknown_ordinal },
117 }
118 }
119
120 #[inline]
121 pub fn unknown() -> Self {
122 Self::__SourceBreaking { unknown_ordinal: 0xff }
123 }
124
125 #[inline]
126 pub const fn into_primitive(self) -> u8 {
127 match self {
128 Self::Success => 0,
129 Self::BssAlreadyStartedOrJoined => 1,
130 Self::ResetRequiredBeforeStart => 2,
131 Self::NotSupported => 3,
132 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
133 }
134 }
135
136 #[inline]
137 pub fn is_unknown(&self) -> bool {
138 match self {
139 Self::__SourceBreaking { unknown_ordinal: _ } => true,
140 _ => false,
141 }
142 }
143}
144
145#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
146pub enum StopResult {
147 Success,
148 BssAlreadyStopped,
149 InternalError,
150 #[doc(hidden)]
151 __SourceBreaking {
152 unknown_ordinal: u8,
153 },
154}
155
156#[macro_export]
158macro_rules! StopResultUnknown {
159 () => {
160 _
161 };
162}
163
164impl StopResult {
165 #[inline]
166 pub fn from_primitive(prim: u8) -> Option<Self> {
167 match prim {
168 0 => Some(Self::Success),
169 1 => Some(Self::BssAlreadyStopped),
170 2 => Some(Self::InternalError),
171 _ => None,
172 }
173 }
174
175 #[inline]
176 pub fn from_primitive_allow_unknown(prim: u8) -> Self {
177 match prim {
178 0 => Self::Success,
179 1 => Self::BssAlreadyStopped,
180 2 => Self::InternalError,
181 unknown_ordinal => Self::__SourceBreaking { unknown_ordinal },
182 }
183 }
184
185 #[inline]
186 pub fn unknown() -> Self {
187 Self::__SourceBreaking { unknown_ordinal: 0xff }
188 }
189
190 #[inline]
191 pub const fn into_primitive(self) -> u8 {
192 match self {
193 Self::Success => 0,
194 Self::BssAlreadyStopped => 1,
195 Self::InternalError => 2,
196 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
197 }
198 }
199
200 #[inline]
201 pub fn is_unknown(&self) -> bool {
202 match self {
203 Self::__SourceBreaking { unknown_ordinal: _ } => true,
204 _ => false,
205 }
206 }
207}
208
209#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
210pub enum WlanAssocResult {
211 Success,
212 RefusedReasonUnspecified,
213 RefusedNotAuthenticated,
214 RefusedCapabilitiesMismatch,
215 RefusedExternalReason,
216 RefusedApOutOfMemory,
217 RefusedBasicRatesMismatch,
218 RejectedEmergencyServicesNotSupported,
219 RefusedTemporarily,
220 #[doc(hidden)]
221 __SourceBreaking {
222 unknown_ordinal: u8,
223 },
224}
225
226#[macro_export]
228macro_rules! WlanAssocResultUnknown {
229 () => {
230 _
231 };
232}
233
234impl WlanAssocResult {
235 #[inline]
236 pub fn from_primitive(prim: u8) -> Option<Self> {
237 match prim {
238 0 => Some(Self::Success),
239 1 => Some(Self::RefusedReasonUnspecified),
240 2 => Some(Self::RefusedNotAuthenticated),
241 3 => Some(Self::RefusedCapabilitiesMismatch),
242 4 => Some(Self::RefusedExternalReason),
243 5 => Some(Self::RefusedApOutOfMemory),
244 6 => Some(Self::RefusedBasicRatesMismatch),
245 7 => Some(Self::RejectedEmergencyServicesNotSupported),
246 8 => Some(Self::RefusedTemporarily),
247 _ => None,
248 }
249 }
250
251 #[inline]
252 pub fn from_primitive_allow_unknown(prim: u8) -> Self {
253 match prim {
254 0 => Self::Success,
255 1 => Self::RefusedReasonUnspecified,
256 2 => Self::RefusedNotAuthenticated,
257 3 => Self::RefusedCapabilitiesMismatch,
258 4 => Self::RefusedExternalReason,
259 5 => Self::RefusedApOutOfMemory,
260 6 => Self::RefusedBasicRatesMismatch,
261 7 => Self::RejectedEmergencyServicesNotSupported,
262 8 => Self::RefusedTemporarily,
263 unknown_ordinal => Self::__SourceBreaking { unknown_ordinal },
264 }
265 }
266
267 #[inline]
268 pub fn unknown() -> Self {
269 Self::__SourceBreaking { unknown_ordinal: 0xff }
270 }
271
272 #[inline]
273 pub const fn into_primitive(self) -> u8 {
274 match self {
275 Self::Success => 0,
276 Self::RefusedReasonUnspecified => 1,
277 Self::RefusedNotAuthenticated => 2,
278 Self::RefusedCapabilitiesMismatch => 3,
279 Self::RefusedExternalReason => 4,
280 Self::RefusedApOutOfMemory => 5,
281 Self::RefusedBasicRatesMismatch => 6,
282 Self::RejectedEmergencyServicesNotSupported => 7,
283 Self::RefusedTemporarily => 8,
284 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
285 }
286 }
287
288 #[inline]
289 pub fn is_unknown(&self) -> bool {
290 match self {
291 Self::__SourceBreaking { unknown_ordinal: _ } => true,
292 _ => false,
293 }
294 }
295}
296
297#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
298pub enum WlanAuthResult {
299 Success,
300 Refused,
301 AntiCloggingTokenRequired,
302 FiniteCyclicGroupNotSupported,
303 Rejected,
304 FailureTimeout,
305 #[doc(hidden)]
306 __SourceBreaking {
307 unknown_ordinal: u8,
308 },
309}
310
311#[macro_export]
313macro_rules! WlanAuthResultUnknown {
314 () => {
315 _
316 };
317}
318
319impl WlanAuthResult {
320 #[inline]
321 pub fn from_primitive(prim: u8) -> Option<Self> {
322 match prim {
323 0 => Some(Self::Success),
324 1 => Some(Self::Refused),
325 2 => Some(Self::AntiCloggingTokenRequired),
326 3 => Some(Self::FiniteCyclicGroupNotSupported),
327 4 => Some(Self::Rejected),
328 5 => Some(Self::FailureTimeout),
329 _ => None,
330 }
331 }
332
333 #[inline]
334 pub fn from_primitive_allow_unknown(prim: u8) -> Self {
335 match prim {
336 0 => Self::Success,
337 1 => Self::Refused,
338 2 => Self::AntiCloggingTokenRequired,
339 3 => Self::FiniteCyclicGroupNotSupported,
340 4 => Self::Rejected,
341 5 => Self::FailureTimeout,
342 unknown_ordinal => Self::__SourceBreaking { unknown_ordinal },
343 }
344 }
345
346 #[inline]
347 pub fn unknown() -> Self {
348 Self::__SourceBreaking { unknown_ordinal: 0xff }
349 }
350
351 #[inline]
352 pub const fn into_primitive(self) -> u8 {
353 match self {
354 Self::Success => 0,
355 Self::Refused => 1,
356 Self::AntiCloggingTokenRequired => 2,
357 Self::FiniteCyclicGroupNotSupported => 3,
358 Self::Rejected => 4,
359 Self::FailureTimeout => 5,
360 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
361 }
362 }
363
364 #[inline]
365 pub fn is_unknown(&self) -> bool {
366 match self {
367 Self::__SourceBreaking { unknown_ordinal: _ } => true,
368 _ => false,
369 }
370 }
371}
372
373#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
374pub enum WlanAuthType {
375 OpenSystem,
376 SharedKey,
377 FastBssTransition,
378 Sae,
379 #[doc(hidden)]
380 __SourceBreaking {
381 unknown_ordinal: u8,
382 },
383}
384
385#[macro_export]
387macro_rules! WlanAuthTypeUnknown {
388 () => {
389 _
390 };
391}
392
393impl WlanAuthType {
394 #[inline]
395 pub fn from_primitive(prim: u8) -> Option<Self> {
396 match prim {
397 1 => Some(Self::OpenSystem),
398 2 => Some(Self::SharedKey),
399 3 => Some(Self::FastBssTransition),
400 4 => Some(Self::Sae),
401 _ => None,
402 }
403 }
404
405 #[inline]
406 pub fn from_primitive_allow_unknown(prim: u8) -> Self {
407 match prim {
408 1 => Self::OpenSystem,
409 2 => Self::SharedKey,
410 3 => Self::FastBssTransition,
411 4 => Self::Sae,
412 unknown_ordinal => Self::__SourceBreaking { unknown_ordinal },
413 }
414 }
415
416 #[inline]
417 pub fn unknown() -> Self {
418 Self::__SourceBreaking { unknown_ordinal: 0xff }
419 }
420
421 #[inline]
422 pub const fn into_primitive(self) -> u8 {
423 match self {
424 Self::OpenSystem => 1,
425 Self::SharedKey => 2,
426 Self::FastBssTransition => 3,
427 Self::Sae => 4,
428 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
429 }
430 }
431
432 #[inline]
433 pub fn is_unknown(&self) -> bool {
434 match self {
435 Self::__SourceBreaking { unknown_ordinal: _ } => true,
436 _ => false,
437 }
438 }
439}
440
441#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
442pub enum WlanScanResult {
443 Success,
444 NotSupported,
445 InvalidArgs,
446 InternalError,
447 ShouldWait,
448 CanceledByDriverOrFirmware,
449 #[doc(hidden)]
450 __SourceBreaking {
451 unknown_ordinal: u8,
452 },
453}
454
455#[macro_export]
457macro_rules! WlanScanResultUnknown {
458 () => {
459 _
460 };
461}
462
463impl WlanScanResult {
464 #[inline]
465 pub fn from_primitive(prim: u8) -> Option<Self> {
466 match prim {
467 0 => Some(Self::Success),
468 1 => Some(Self::NotSupported),
469 2 => Some(Self::InvalidArgs),
470 3 => Some(Self::InternalError),
471 4 => Some(Self::ShouldWait),
472 5 => Some(Self::CanceledByDriverOrFirmware),
473 _ => None,
474 }
475 }
476
477 #[inline]
478 pub fn from_primitive_allow_unknown(prim: u8) -> Self {
479 match prim {
480 0 => Self::Success,
481 1 => Self::NotSupported,
482 2 => Self::InvalidArgs,
483 3 => Self::InternalError,
484 4 => Self::ShouldWait,
485 5 => Self::CanceledByDriverOrFirmware,
486 unknown_ordinal => Self::__SourceBreaking { unknown_ordinal },
487 }
488 }
489
490 #[inline]
491 pub fn unknown() -> Self {
492 Self::__SourceBreaking { unknown_ordinal: 0xff }
493 }
494
495 #[inline]
496 pub const fn into_primitive(self) -> u8 {
497 match self {
498 Self::Success => 0,
499 Self::NotSupported => 1,
500 Self::InvalidArgs => 2,
501 Self::InternalError => 3,
502 Self::ShouldWait => 4,
503 Self::CanceledByDriverOrFirmware => 5,
504 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
505 }
506 }
507
508 #[inline]
509 pub fn is_unknown(&self) -> bool {
510 match self {
511 Self::__SourceBreaking { unknown_ordinal: _ } => true,
512 _ => false,
513 }
514 }
515}
516
517#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
518pub enum WlanScanType {
519 Active,
520 Passive,
521 #[doc(hidden)]
522 __SourceBreaking {
523 unknown_ordinal: u8,
524 },
525}
526
527#[macro_export]
529macro_rules! WlanScanTypeUnknown {
530 () => {
531 _
532 };
533}
534
535impl WlanScanType {
536 #[inline]
537 pub fn from_primitive(prim: u8) -> Option<Self> {
538 match prim {
539 1 => Some(Self::Active),
540 2 => Some(Self::Passive),
541 _ => None,
542 }
543 }
544
545 #[inline]
546 pub fn from_primitive_allow_unknown(prim: u8) -> Self {
547 match prim {
548 1 => Self::Active,
549 2 => Self::Passive,
550 unknown_ordinal => Self::__SourceBreaking { unknown_ordinal },
551 }
552 }
553
554 #[inline]
555 pub fn unknown() -> Self {
556 Self::__SourceBreaking { unknown_ordinal: 0xff }
557 }
558
559 #[inline]
560 pub const fn into_primitive(self) -> u8 {
561 match self {
562 Self::Active => 1,
563 Self::Passive => 2,
564 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
565 }
566 }
567
568 #[inline]
569 pub fn is_unknown(&self) -> bool {
570 match self {
571 Self::__SourceBreaking { unknown_ordinal: _ } => true,
572 _ => false,
573 }
574 }
575}
576
577#[derive(Clone, Debug, PartialEq)]
578pub struct WlanFullmacChannelSwitchInfo {
579 pub new_primary_channel: fidl_fuchsia_wlan_ieee80211_common::ChannelNumber,
580 pub bandwidth: fidl_fuchsia_wlan_ieee80211_common::ChannelBandwidth,
581 pub vht_secondary_80_channel: fidl_fuchsia_wlan_ieee80211_common::ChannelNumber,
582}
583
584impl fidl::Persistable for WlanFullmacChannelSwitchInfo {}
585
586#[derive(Clone, Debug, PartialEq)]
587pub struct WlanFullmacImplIfcOnChannelSwitchRequest {
588 pub ind: WlanFullmacChannelSwitchInfo,
589}
590
591impl fidl::Persistable for WlanFullmacImplIfcOnChannelSwitchRequest {}
592
593#[derive(Clone, Debug, PartialEq)]
594pub struct WlanFullmacImplIfcOnWmmStatusRespRequest {
595 pub status: i32,
596 pub wmm_params: fidl_fuchsia_wlan_driver_common::WlanWmmParameters,
597}
598
599impl fidl::Persistable for WlanFullmacImplIfcOnWmmStatusRespRequest {}
600
601#[derive(Clone, Debug, PartialEq)]
602pub struct WlanFullmacImplIfcSaeFrameRxRequest {
603 pub frame: SaeFrame,
604}
605
606impl fidl::Persistable for WlanFullmacImplIfcSaeFrameRxRequest {}
607
608#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
609#[repr(C)]
610pub struct WlanFullmacImplIfcSignalReportRequest {
611 pub ind: WlanFullmacSignalReportIndication,
612}
613
614impl fidl::Persistable for WlanFullmacImplIfcSignalReportRequest {}
615
616#[derive(Clone, Debug, PartialEq)]
617pub struct WlanFullmacImplSaeFrameTxRequest {
618 pub frame: SaeFrame,
619}
620
621impl fidl::Persistable for WlanFullmacImplSaeFrameTxRequest {}
622
623#[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
624pub struct WlanFullmacImplSetKeysResponse {
625 pub resp: WlanFullmacSetKeysResp,
626}
627
628impl fidl::Persistable for WlanFullmacImplSetKeysResponse {}
629
630#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
631#[repr(C)]
632pub struct WlanFullmacImplSetMacAddressRequest {
633 pub mac_addr: [u8; 6],
634}
635
636impl fidl::Persistable for WlanFullmacImplSetMacAddressRequest {}
637
638#[derive(Clone, Debug, PartialEq)]
639pub struct WlanFullmacImplGetIfaceHistogramStatsResponse {
640 pub stats: fidl_fuchsia_wlan_stats_common::IfaceHistogramStats,
641}
642
643impl fidl::Persistable for WlanFullmacImplGetIfaceHistogramStatsResponse {}
644
645#[derive(Clone, Debug, PartialEq)]
646pub struct WlanFullmacImplGetIfaceStatsResponse {
647 pub stats: fidl_fuchsia_wlan_stats_common::IfaceStats,
648}
649
650impl fidl::Persistable for WlanFullmacImplGetIfaceStatsResponse {}
651
652#[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
653pub struct WlanFullmacRssiStats {
654 pub hist: Vec<u64>,
655}
656
657impl fidl::Persistable for WlanFullmacRssiStats {}
658
659#[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
660pub struct WlanFullmacSetKeysResp {
661 pub statuslist: Vec<i32>,
662}
663
664impl fidl::Persistable for WlanFullmacSetKeysResp {}
665
666#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
667#[repr(C)]
668pub struct WlanFullmacSignalReportIndication {
669 pub rssi_dbm: i8,
670 pub snr_db: i8,
671 pub tx_rate_500kbps: u32,
674}
675
676impl fidl::Persistable for WlanFullmacSignalReportIndication {}
677
678#[derive(Clone, Debug, Default, PartialEq)]
680pub struct BandCapability {
681 pub band: Option<fidl_fuchsia_wlan_ieee80211_common::WlanBand>,
685 pub basic_rates: Option<Vec<u8>>,
692 pub ht_caps: Option<fidl_fuchsia_wlan_ieee80211_common::HtCapabilities>,
697 pub vht_caps: Option<fidl_fuchsia_wlan_ieee80211_common::VhtCapabilities>,
702 pub primary_channels: Option<Vec<fidl_fuchsia_wlan_ieee80211_common::ChannelNumber>>,
714 #[doc(hidden)]
715 pub __source_breaking: fidl::marker::SourceBreaking,
716}
717
718impl fidl::Persistable for BandCapability {}
719
720#[derive(Clone, Debug, Default, PartialEq)]
723pub struct SaeFrame {
724 pub peer_sta_address: Option<[u8; 6]>,
726 pub status_code: Option<fidl_fuchsia_wlan_ieee80211_common::StatusCode>,
728 pub seq_num: Option<u16>,
730 pub sae_fields: Option<Vec<u8>>,
734 #[doc(hidden)]
735 pub __source_breaking: fidl::marker::SourceBreaking,
736}
737
738impl fidl::Persistable for SaeFrame {}
739
740#[derive(Clone, Debug, Default, PartialEq)]
741pub struct WlanFullmacImplAssocRespRequest {
742 pub peer_sta_address: Option<[u8; 6]>,
743 pub result_code: Option<WlanAssocResult>,
744 pub association_id: Option<u16>,
745 #[doc(hidden)]
746 pub __source_breaking: fidl::marker::SourceBreaking,
747}
748
749impl fidl::Persistable for WlanFullmacImplAssocRespRequest {}
750
751#[derive(Clone, Debug, Default, PartialEq)]
752pub struct WlanFullmacImplAuthRespRequest {
753 pub peer_sta_address: Option<[u8; 6]>,
754 pub result_code: Option<WlanAuthResult>,
755 #[doc(hidden)]
756 pub __source_breaking: fidl::marker::SourceBreaking,
757}
758
759impl fidl::Persistable for WlanFullmacImplAuthRespRequest {}
760
761#[derive(Clone, Debug, Default, PartialEq)]
762pub struct WlanFullmacImplConnectRequest {
763 pub selected_bss: Option<fidl_fuchsia_wlan_ieee80211_common::BssDescription>,
764 pub connect_failure_timeout: Option<u32>,
766 pub auth_type: Option<WlanAuthType>,
768 pub sae_password: Option<Vec<u8>>,
771 pub wep_key: Option<fidl_fuchsia_wlan_driver_common::WlanKeyConfig>,
774 pub security_ie: Option<Vec<u8>>,
776 pub wep_key_desc: Option<fidl_fuchsia_wlan_ieee80211_common::SetKeyDescriptor>,
779 pub owe_public_key: Option<WlanFullmacOwePublicKey>,
782 #[doc(hidden)]
783 pub __source_breaking: fidl::marker::SourceBreaking,
784}
785
786impl fidl::Persistable for WlanFullmacImplConnectRequest {}
787
788#[derive(Clone, Debug, Default, PartialEq)]
789pub struct WlanFullmacImplDeauthRequest {
790 pub peer_sta_address: Option<[u8; 6]>,
791 pub reason_code: Option<fidl_fuchsia_wlan_ieee80211_common::ReasonCode>,
792 #[doc(hidden)]
793 pub __source_breaking: fidl::marker::SourceBreaking,
794}
795
796impl fidl::Persistable for WlanFullmacImplDeauthRequest {}
797
798#[derive(Clone, Debug, Default, PartialEq)]
799pub struct WlanFullmacImplDisassocRequest {
800 pub peer_sta_address: Option<[u8; 6]>,
801 pub reason_code: Option<fidl_fuchsia_wlan_ieee80211_common::ReasonCode>,
802 #[doc(hidden)]
803 pub __source_breaking: fidl::marker::SourceBreaking,
804}
805
806impl fidl::Persistable for WlanFullmacImplDisassocRequest {}
807
808#[derive(Clone, Debug, Default, PartialEq)]
809pub struct WlanFullmacImplEapolTxRequest {
810 pub src_addr: Option<[u8; 6]>,
811 pub dst_addr: Option<[u8; 6]>,
812 pub data: Option<Vec<u8>>,
813 #[doc(hidden)]
814 pub __source_breaking: fidl::marker::SourceBreaking,
815}
816
817impl fidl::Persistable for WlanFullmacImplEapolTxRequest {}
818
819#[derive(Clone, Debug, Default, PartialEq)]
820pub struct WlanFullmacImplIfcAssocIndRequest {
821 pub peer_sta_address: Option<[u8; 6]>,
822 pub listen_interval: Option<u16>,
823 pub ssid: Option<Vec<u8>>,
824 pub rsne: Option<Vec<u8>>,
825 pub vendor_ie: Option<Vec<u8>>,
826 #[doc(hidden)]
827 pub __source_breaking: fidl::marker::SourceBreaking,
828}
829
830impl fidl::Persistable for WlanFullmacImplIfcAssocIndRequest {}
831
832#[derive(Clone, Debug, Default, PartialEq)]
833pub struct WlanFullmacImplIfcAuthIndRequest {
834 pub peer_sta_address: Option<[u8; 6]>,
835 pub auth_type: Option<WlanAuthType>,
836 #[doc(hidden)]
837 pub __source_breaking: fidl::marker::SourceBreaking,
838}
839
840impl fidl::Persistable for WlanFullmacImplIfcAuthIndRequest {}
841
842#[derive(Clone, Debug, Default, PartialEq)]
843pub struct WlanFullmacImplIfcConnectConfRequest {
844 pub peer_sta_address: Option<[u8; 6]>,
845 pub result_code: Option<fidl_fuchsia_wlan_ieee80211_common::StatusCode>,
846 pub association_id: Option<u16>,
847 pub association_ies: Option<Vec<u8>>,
848 #[doc(hidden)]
849 pub __source_breaking: fidl::marker::SourceBreaking,
850}
851
852impl fidl::Persistable for WlanFullmacImplIfcConnectConfRequest {}
853
854#[derive(Clone, Debug, Default, PartialEq)]
855pub struct WlanFullmacImplIfcDeauthConfRequest {
856 pub peer_sta_address: Option<[u8; 6]>,
857 #[doc(hidden)]
858 pub __source_breaking: fidl::marker::SourceBreaking,
859}
860
861impl fidl::Persistable for WlanFullmacImplIfcDeauthConfRequest {}
862
863#[derive(Clone, Debug, Default, PartialEq)]
864pub struct WlanFullmacImplIfcDeauthIndRequest {
865 pub peer_sta_address: Option<[u8; 6]>,
867 pub reason_code: Option<fidl_fuchsia_wlan_ieee80211_common::ReasonCode>,
869 pub locally_initiated: Option<bool>,
872 #[doc(hidden)]
873 pub __source_breaking: fidl::marker::SourceBreaking,
874}
875
876impl fidl::Persistable for WlanFullmacImplIfcDeauthIndRequest {}
877
878#[derive(Clone, Debug, Default, PartialEq)]
879pub struct WlanFullmacImplIfcDisassocConfRequest {
880 pub status: Option<i32>,
888 #[doc(hidden)]
889 pub __source_breaking: fidl::marker::SourceBreaking,
890}
891
892impl fidl::Persistable for WlanFullmacImplIfcDisassocConfRequest {}
893
894#[derive(Clone, Debug, Default, PartialEq)]
895pub struct WlanFullmacImplIfcDisassocIndRequest {
896 pub peer_sta_address: Option<[u8; 6]>,
898 pub reason_code: Option<fidl_fuchsia_wlan_ieee80211_common::ReasonCode>,
900 pub locally_initiated: Option<bool>,
905 #[doc(hidden)]
906 pub __source_breaking: fidl::marker::SourceBreaking,
907}
908
909impl fidl::Persistable for WlanFullmacImplIfcDisassocIndRequest {}
910
911#[derive(Clone, Debug, Default, PartialEq)]
912pub struct WlanFullmacImplIfcEapolConfRequest {
913 pub result_code: Option<EapolTxResult>,
915 pub dst_addr: Option<[u8; 6]>,
920 #[doc(hidden)]
921 pub __source_breaking: fidl::marker::SourceBreaking,
922}
923
924impl fidl::Persistable for WlanFullmacImplIfcEapolConfRequest {}
925
926#[derive(Clone, Debug, Default, PartialEq)]
927pub struct WlanFullmacImplIfcEapolIndRequest {
928 pub src_addr: Option<[u8; 6]>,
930 pub dst_addr: Option<[u8; 6]>,
932 pub data: Option<Vec<u8>>,
934 #[doc(hidden)]
935 pub __source_breaking: fidl::marker::SourceBreaking,
936}
937
938impl fidl::Persistable for WlanFullmacImplIfcEapolIndRequest {}
939
940#[derive(Clone, Debug, Default, PartialEq)]
941pub struct WlanFullmacImplIfcOnPmkAvailableRequest {
942 pub pmk: Option<Vec<u8>>,
944 pub pmkid: Option<Vec<u8>>,
946 #[doc(hidden)]
947 pub __source_breaking: fidl::marker::SourceBreaking,
948}
949
950impl fidl::Persistable for WlanFullmacImplIfcOnPmkAvailableRequest {}
951
952#[derive(Clone, Debug, Default, PartialEq)]
953pub struct WlanFullmacImplIfcOnRssiThresholdBreachedRequest {
954 pub cur_rssi_dbm: Option<i8>,
955 #[doc(hidden)]
956 pub __source_breaking: fidl::marker::SourceBreaking,
957}
958
959impl fidl::Persistable for WlanFullmacImplIfcOnRssiThresholdBreachedRequest {}
960
961#[derive(Clone, Debug, Default, PartialEq)]
962pub struct WlanFullmacImplIfcOnScanEndRequest {
963 pub txn_id: Option<u64>,
964 pub code: Option<WlanScanResult>,
965 #[doc(hidden)]
966 pub __source_breaking: fidl::marker::SourceBreaking,
967}
968
969impl fidl::Persistable for WlanFullmacImplIfcOnScanEndRequest {}
970
971#[derive(Clone, Debug, Default, PartialEq)]
972pub struct WlanFullmacImplIfcOnScanResultRequest {
973 pub txn_id: Option<u64>,
974 pub timestamp_nanos: Option<i64>,
975 pub bss: Option<fidl_fuchsia_wlan_ieee80211_common::BssDescription>,
976 #[doc(hidden)]
977 pub __source_breaking: fidl::marker::SourceBreaking,
978}
979
980impl fidl::Persistable for WlanFullmacImplIfcOnScanResultRequest {}
981
982#[derive(Clone, Debug, Default, PartialEq)]
983pub struct WlanFullmacImplIfcOnScheduledScanMatchesAvailableRequest {
984 pub txn_id: Option<u64>,
985 #[doc(hidden)]
986 pub __source_breaking: fidl::marker::SourceBreaking,
987}
988
989impl fidl::Persistable for WlanFullmacImplIfcOnScheduledScanMatchesAvailableRequest {}
990
991#[derive(Clone, Debug, Default, PartialEq)]
992pub struct WlanFullmacImplIfcOnScheduledScanStoppedByFirmwareRequest {
993 pub txn_id: Option<u64>,
994 #[doc(hidden)]
995 pub __source_breaking: fidl::marker::SourceBreaking,
996}
997
998impl fidl::Persistable for WlanFullmacImplIfcOnScheduledScanStoppedByFirmwareRequest {}
999
1000#[derive(Clone, Debug, Default, PartialEq)]
1001pub struct WlanFullmacImplIfcRoamConfRequest {
1002 pub selected_bssid: Option<[u8; 6]>,
1004 pub status_code: Option<fidl_fuchsia_wlan_ieee80211_common::StatusCode>,
1006 pub original_association_maintained: Option<bool>,
1011 pub target_bss_authenticated: Option<bool>,
1016 pub association_id: Option<u16>,
1018 pub association_ies: Option<Vec<u8>>,
1020 #[doc(hidden)]
1021 pub __source_breaking: fidl::marker::SourceBreaking,
1022}
1023
1024impl fidl::Persistable for WlanFullmacImplIfcRoamConfRequest {}
1025
1026#[derive(Clone, Debug, Default, PartialEq)]
1027pub struct WlanFullmacImplIfcRoamResultIndRequest {
1028 pub selected_bssid: Option<[u8; 6]>,
1030 pub status_code: Option<fidl_fuchsia_wlan_ieee80211_common::StatusCode>,
1032 pub original_association_maintained: Option<bool>,
1037 pub target_bss_authenticated: Option<bool>,
1042 pub association_id: Option<u16>,
1044 pub association_ies: Option<Vec<u8>>,
1046 #[doc(hidden)]
1047 pub __source_breaking: fidl::marker::SourceBreaking,
1048}
1049
1050impl fidl::Persistable for WlanFullmacImplIfcRoamResultIndRequest {}
1051
1052#[derive(Clone, Debug, Default, PartialEq)]
1053pub struct WlanFullmacImplIfcRoamStartIndRequest {
1054 pub selected_bssid: Option<[u8; 6]>,
1056 pub selected_bss: Option<fidl_fuchsia_wlan_ieee80211_common::BssDescription>,
1060 pub original_association_maintained: Option<bool>,
1068 #[doc(hidden)]
1069 pub __source_breaking: fidl::marker::SourceBreaking,
1070}
1071
1072impl fidl::Persistable for WlanFullmacImplIfcRoamStartIndRequest {}
1073
1074#[derive(Clone, Debug, Default, PartialEq)]
1075pub struct WlanFullmacImplIfcSaeHandshakeIndRequest {
1076 pub peer_sta_address: Option<[u8; 6]>,
1077 #[doc(hidden)]
1078 pub __source_breaking: fidl::marker::SourceBreaking,
1079}
1080
1081impl fidl::Persistable for WlanFullmacImplIfcSaeHandshakeIndRequest {}
1082
1083#[derive(Clone, Debug, Default, PartialEq)]
1084pub struct WlanFullmacImplIfcStartConfRequest {
1085 pub result_code: Option<StartResult>,
1087 #[doc(hidden)]
1088 pub __source_breaking: fidl::marker::SourceBreaking,
1089}
1090
1091impl fidl::Persistable for WlanFullmacImplIfcStartConfRequest {}
1092
1093#[derive(Clone, Debug, Default, PartialEq)]
1094pub struct WlanFullmacImplIfcStopConfRequest {
1095 pub result_code: Option<StopResult>,
1097 #[doc(hidden)]
1098 pub __source_breaking: fidl::marker::SourceBreaking,
1099}
1100
1101impl fidl::Persistable for WlanFullmacImplIfcStopConfRequest {}
1102
1103#[derive(Clone, Debug, Default, PartialEq)]
1104pub struct WlanFullmacImplInstallApfPacketFilterRequest {
1105 pub program: Option<Vec<u8>>,
1106 #[doc(hidden)]
1107 pub __source_breaking: fidl::marker::SourceBreaking,
1108}
1109
1110impl fidl::Persistable for WlanFullmacImplInstallApfPacketFilterRequest {}
1111
1112#[derive(Clone, Debug, Default, PartialEq)]
1113pub struct WlanFullmacImplOnLinkStateChangedRequest {
1114 pub online: Option<bool>,
1115 #[doc(hidden)]
1116 pub __source_breaking: fidl::marker::SourceBreaking,
1117}
1118
1119impl fidl::Persistable for WlanFullmacImplOnLinkStateChangedRequest {}
1120
1121#[derive(Clone, Debug, Default, PartialEq)]
1122pub struct WlanFullmacImplReconnectRequest {
1123 pub peer_sta_address: Option<[u8; 6]>,
1124 #[doc(hidden)]
1125 pub __source_breaking: fidl::marker::SourceBreaking,
1126}
1127
1128impl fidl::Persistable for WlanFullmacImplReconnectRequest {}
1129
1130#[derive(Clone, Debug, Default, PartialEq)]
1131pub struct WlanFullmacImplRoamRequest {
1132 pub selected_bss: Option<fidl_fuchsia_wlan_ieee80211_common::BssDescription>,
1136 #[doc(hidden)]
1137 pub __source_breaking: fidl::marker::SourceBreaking,
1138}
1139
1140impl fidl::Persistable for WlanFullmacImplRoamRequest {}
1141
1142#[derive(Clone, Debug, Default, PartialEq)]
1143pub struct WlanFullmacImplSaeHandshakeRespRequest {
1144 pub peer_sta_address: Option<[u8; 6]>,
1146 pub status_code: Option<fidl_fuchsia_wlan_ieee80211_common::StatusCode>,
1148 #[doc(hidden)]
1149 pub __source_breaking: fidl::marker::SourceBreaking,
1150}
1151
1152impl fidl::Persistable for WlanFullmacImplSaeHandshakeRespRequest {}
1153
1154#[derive(Clone, Debug, Default, PartialEq)]
1155pub struct WlanFullmacImplSetApfPacketFilterEnabledRequest {
1156 pub enabled: Option<bool>,
1157 #[doc(hidden)]
1158 pub __source_breaking: fidl::marker::SourceBreaking,
1159}
1160
1161impl fidl::Persistable for WlanFullmacImplSetApfPacketFilterEnabledRequest {}
1162
1163#[derive(Clone, Debug, Default, PartialEq)]
1164pub struct WlanFullmacImplSetKeysRequest {
1165 pub keylist: Option<Vec<fidl_fuchsia_wlan_driver_common::WlanKeyConfig>>,
1166 pub key_descriptors: Option<Vec<fidl_fuchsia_wlan_ieee80211_common::SetKeyDescriptor>>,
1167 #[doc(hidden)]
1168 pub __source_breaking: fidl::marker::SourceBreaking,
1169}
1170
1171impl fidl::Persistable for WlanFullmacImplSetKeysRequest {}
1172
1173#[derive(Clone, Debug, Default, PartialEq)]
1174pub struct WlanFullmacImplStartBssRequest {
1175 pub ssid: Option<Vec<u8>>,
1176 pub bss_type: Option<fidl_fuchsia_wlan_ieee80211_common::BssType>,
1177 pub beacon_period: Option<u32>,
1178 pub dtim_period: Option<u32>,
1179 pub primary: Option<fidl_fuchsia_wlan_ieee80211_common::ChannelNumber>,
1180 pub rsne: Option<Vec<u8>>,
1181 pub vendor_ie: Option<Vec<u8>>,
1182 #[doc(hidden)]
1183 pub __source_breaking: fidl::marker::SourceBreaking,
1184}
1185
1186impl fidl::Persistable for WlanFullmacImplStartBssRequest {}
1187
1188#[derive(Clone, Debug, Default, PartialEq)]
1189pub struct WlanFullmacImplStartRssiMonitorRequest {
1190 pub min_rssi_dbm: Option<i8>,
1191 pub max_rssi_dbm: Option<i8>,
1192 #[doc(hidden)]
1193 pub __source_breaking: fidl::marker::SourceBreaking,
1194}
1195
1196impl fidl::Persistable for WlanFullmacImplStartRssiMonitorRequest {}
1197
1198#[derive(Clone, Debug, Default, PartialEq)]
1199pub struct WlanFullmacImplStartScanRequest {
1200 pub txn_id: Option<u64>,
1202 pub scan_type: Option<WlanScanType>,
1203 pub channels: Option<Vec<fidl_fuchsia_wlan_ieee80211_common::ChannelNumber>>,
1211 pub ssids: Option<Vec<Vec<u8>>>,
1220 pub min_channel_time: Option<u32>,
1222 pub max_channel_time: Option<u32>,
1224 #[doc(hidden)]
1225 pub __source_breaking: fidl::marker::SourceBreaking,
1226}
1227
1228impl fidl::Persistable for WlanFullmacImplStartScanRequest {}
1229
1230#[derive(Clone, Debug, Default, PartialEq)]
1231pub struct WlanFullmacImplStartScheduledScanRequest {
1232 pub txn_id: Option<u64>,
1233 pub req: Option<fidl_fuchsia_wlan_common_common::ScheduledScanRequest>,
1234 #[doc(hidden)]
1235 pub __source_breaking: fidl::marker::SourceBreaking,
1236}
1237
1238impl fidl::Persistable for WlanFullmacImplStartScheduledScanRequest {}
1239
1240#[derive(Clone, Debug, Default, PartialEq)]
1241pub struct WlanFullmacImplStopBssRequest {
1242 pub ssid: Option<Vec<u8>>,
1243 #[doc(hidden)]
1244 pub __source_breaking: fidl::marker::SourceBreaking,
1245}
1246
1247impl fidl::Persistable for WlanFullmacImplStopBssRequest {}
1248
1249#[derive(Clone, Debug, Default, PartialEq)]
1250pub struct WlanFullmacImplStopScheduledScanRequest {
1251 pub txn_id: Option<u64>,
1252 #[doc(hidden)]
1253 pub __source_breaking: fidl::marker::SourceBreaking,
1254}
1255
1256impl fidl::Persistable for WlanFullmacImplStopScheduledScanRequest {}
1257
1258#[derive(Clone, Debug, Default, PartialEq)]
1259pub struct WlanFullmacImplGetApfPacketFilterEnabledResponse {
1260 pub enabled: Option<bool>,
1261 #[doc(hidden)]
1262 pub __source_breaking: fidl::marker::SourceBreaking,
1263}
1264
1265impl fidl::Persistable for WlanFullmacImplGetApfPacketFilterEnabledResponse {}
1266
1267#[derive(Clone, Debug, Default, PartialEq)]
1268pub struct WlanFullmacImplGetScheduledScanEnabledResponse {
1269 pub active_txn_ids: Option<Vec<u64>>,
1270 #[doc(hidden)]
1271 pub __source_breaking: fidl::marker::SourceBreaking,
1272}
1273
1274impl fidl::Persistable for WlanFullmacImplGetScheduledScanEnabledResponse {}
1275
1276#[derive(Clone, Debug, Default, PartialEq)]
1277pub struct WlanFullmacImplQueryApfPacketFilterSupportResponse {
1278 pub resp: Option<fidl_fuchsia_wlan_common_common::ApfPacketFilterSupport>,
1279 #[doc(hidden)]
1280 pub __source_breaking: fidl::marker::SourceBreaking,
1281}
1282
1283impl fidl::Persistable for WlanFullmacImplQueryApfPacketFilterSupportResponse {}
1284
1285#[derive(Clone, Debug, Default, PartialEq)]
1286pub struct WlanFullmacImplQueryRssiMonitorSupportResponse {
1287 pub resp: Option<fidl_fuchsia_wlan_common_common::RssiMonitorSupport>,
1288 #[doc(hidden)]
1289 pub __source_breaking: fidl::marker::SourceBreaking,
1290}
1291
1292impl fidl::Persistable for WlanFullmacImplQueryRssiMonitorSupportResponse {}
1293
1294#[derive(Clone, Debug, Default, PartialEq)]
1295pub struct WlanFullmacImplQuerySecuritySupportResponse {
1296 pub resp: Option<fidl_fuchsia_wlan_common_common::SecuritySupport>,
1297 #[doc(hidden)]
1298 pub __source_breaking: fidl::marker::SourceBreaking,
1299}
1300
1301impl fidl::Persistable for WlanFullmacImplQuerySecuritySupportResponse {}
1302
1303#[derive(Clone, Debug, Default, PartialEq)]
1304pub struct WlanFullmacImplQuerySpectrumManagementSupportResponse {
1305 pub resp: Option<fidl_fuchsia_wlan_common_common::SpectrumManagementSupport>,
1306 #[doc(hidden)]
1307 pub __source_breaking: fidl::marker::SourceBreaking,
1308}
1309
1310impl fidl::Persistable for WlanFullmacImplQuerySpectrumManagementSupportResponse {}
1311
1312#[derive(Clone, Debug, Default, PartialEq)]
1313pub struct WlanFullmacImplQueryTelemetrySupportResponse {
1314 pub resp: Option<fidl_fuchsia_wlan_stats_common::TelemetrySupport>,
1315 #[doc(hidden)]
1316 pub __source_breaking: fidl::marker::SourceBreaking,
1317}
1318
1319impl fidl::Persistable for WlanFullmacImplQueryTelemetrySupportResponse {}
1320
1321#[derive(Clone, Debug, Default, PartialEq)]
1322pub struct WlanFullmacImplQueryResponse {
1323 pub sta_addr: Option<[u8; 6]>,
1325 pub role: Option<fidl_fuchsia_wlan_common_common::WlanMacRole>,
1327 pub band_caps: Option<Vec<BandCapability>>,
1329 pub factory_addr: Option<[u8; 6]>,
1331 #[doc(hidden)]
1332 pub __source_breaking: fidl::marker::SourceBreaking,
1333}
1334
1335impl fidl::Persistable for WlanFullmacImplQueryResponse {}
1336
1337#[derive(Clone, Debug, Default, PartialEq)]
1338pub struct WlanFullmacImplReadApfPacketFilterDataResponse {
1339 pub memory: Option<Vec<u8>>,
1340 #[doc(hidden)]
1341 pub __source_breaking: fidl::marker::SourceBreaking,
1342}
1343
1344impl fidl::Persistable for WlanFullmacImplReadApfPacketFilterDataResponse {}
1345
1346#[derive(Clone, Debug, Default, PartialEq)]
1347pub struct WlanFullmacOwePublicKey {
1348 pub group: Option<u16>,
1349 pub key: Option<Vec<u8>>,
1350 #[doc(hidden)]
1351 pub __source_breaking: fidl::marker::SourceBreaking,
1352}
1353
1354impl fidl::Persistable for WlanFullmacOwePublicKey {}
1355
1356pub mod wlan_fullmac_impl__ordinals {
1357 pub const INIT: u64 = 0x593dfb6cb3f0f1aa;
1358 pub const QUERY: u64 = 0x28ac65f9da3941d4;
1359 pub const QUERY_SECURITY_SUPPORT: u64 = 0x11cf3fa6eeb93f84;
1360 pub const QUERY_SPECTRUM_MANAGEMENT_SUPPORT: u64 = 0x22ae7551d855b83a;
1361 pub const QUERY_TELEMETRY_SUPPORT: u64 = 0x4561479ca560827f;
1362 pub const QUERY_APF_PACKET_FILTER_SUPPORT: u64 = 0x6df8cdf0acd4dfad;
1363 pub const QUERY_RSSI_MONITOR_SUPPORT: u64 = 0x21d21e42d6aa61b5;
1364 pub const START_SCAN: u64 = 0x26c17bf595aa161c;
1365 pub const START_SCHEDULED_SCAN: u64 = 0x67bb4356265682d2;
1366 pub const STOP_SCHEDULED_SCAN: u64 = 0x71bf2a03f2cdc10f;
1367 pub const GET_SCHEDULED_SCAN_ENABLED: u64 = 0x96be6f11648f198;
1368 pub const CONNECT: u64 = 0x19eb0322efb07a76;
1369 pub const RECONNECT: u64 = 0x474084c4ef19ee71;
1370 pub const ROAM: u64 = 0x1e35dcc98b124b64;
1371 pub const AUTH_RESP: u64 = 0x5f7ea24b44a4aaeb;
1372 pub const DEAUTH: u64 = 0x112786eccbf12f37;
1373 pub const ASSOC_RESP: u64 = 0x5022ce6b8eefec2f;
1374 pub const DISASSOC: u64 = 0x9c0fc4e8de53e01;
1375 pub const START_BSS: u64 = 0x6922644d6b1d341d;
1376 pub const STOP_BSS: u64 = 0x5aeb9b72e7575268;
1377 pub const SET_KEYS: u64 = 0x20f46b1e039f0985;
1378 pub const EAPOL_TX: u64 = 0x529a2d90fd4c8177;
1379 pub const GET_IFACE_STATS: u64 = 0x505563776ef0392f;
1380 pub const GET_IFACE_HISTOGRAM_STATS: u64 = 0x503d586f30ccf2cd;
1381 pub const GET_SIGNAL_REPORT: u64 = 0x5d93f056e4796bb3;
1382 pub const SAE_HANDSHAKE_RESP: u64 = 0x72cd3a31ae5a54f6;
1383 pub const SAE_FRAME_TX: u64 = 0x4715ad5dc5a6340f;
1384 pub const WMM_STATUS_REQ: u64 = 0x635ecef3beb7a059;
1385 pub const ON_LINK_STATE_CHANGED: u64 = 0x4d896e5b68e488d7;
1386 pub const SET_MAC_ADDRESS: u64 = 0x211a97f6f21ae5f0;
1387 pub const INSTALL_APF_PACKET_FILTER: u64 = 0x14597eda84122115;
1388 pub const READ_APF_PACKET_FILTER_DATA: u64 = 0x6ddcf8a179553a3c;
1389 pub const SET_APF_PACKET_FILTER_ENABLED: u64 = 0x808792cade97d59;
1390 pub const GET_APF_PACKET_FILTER_ENABLED: u64 = 0x284e1725471e3ae7;
1391 pub const START_RSSI_MONITOR: u64 = 0x5e6e8feead94acec;
1392 pub const STOP_RSSI_MONITOR: u64 = 0x45795dfdd5760880;
1393}
1394
1395pub mod wlan_fullmac_impl_ifc_ordinals {
1396 pub const ON_SCAN_RESULT: u64 = 0x29aa81dc570f7a3e;
1397 pub const ON_SCAN_END: u64 = 0x7cd8aff80d27073c;
1398 pub const ON_SCHEDULED_SCAN_MATCHES_AVAILABLE: u64 = 0x3036cd8b8b35e81b;
1399 pub const ON_SCHEDULED_SCAN_STOPPED_BY_FIRMWARE: u64 = 0x50353be2c3029817;
1400 pub const CONNECT_CONF: u64 = 0x3c22c6d80b2a2759;
1401 pub const ROAM_CONF: u64 = 0x368b2a5b903b3f7b;
1402 pub const ROAM_START_IND: u64 = 0x23e1d9368935e7e4;
1403 pub const ROAM_RESULT_IND: u64 = 0x7081c1b1ceea4914;
1404 pub const AUTH_IND: u64 = 0x270e1f8889650d0b;
1405 pub const DEAUTH_CONF: u64 = 0x2c94b0d7258111b7;
1406 pub const DEAUTH_IND: u64 = 0x26cd27cdadd8dbaf;
1407 pub const ASSOC_IND: u64 = 0x3e44529e3dc179ce;
1408 pub const DISASSOC_CONF: u64 = 0x7c713bcd58a76cb3;
1409 pub const DISASSOC_IND: u64 = 0x6667b381b7f3990f;
1410 pub const START_CONF: u64 = 0x3e9b9641f3ddc7fc;
1411 pub const STOP_CONF: u64 = 0x320a5ff227a4e9df;
1412 pub const EAPOL_CONF: u64 = 0x77364db9cc3970ec;
1413 pub const ON_CHANNEL_SWITCH: u64 = 0x21db0b8f71cae647;
1414 pub const SIGNAL_REPORT: u64 = 0x79679fa8789c3d9f;
1415 pub const ON_RSSI_THRESHOLD_BREACHED: u64 = 0x5ddcf835177124b6;
1416 pub const EAPOL_IND: u64 = 0x3de8ec1eda10d1d0;
1417 pub const ON_PMK_AVAILABLE: u64 = 0x5cedd8d9be28a17e;
1418 pub const SAE_HANDSHAKE_IND: u64 = 0x4f3d53885503a1d8;
1419 pub const SAE_FRAME_RX: u64 = 0x51650906857ed4d4;
1420 pub const ON_WMM_STATUS_RESP: u64 = 0x6823a88bf3ba8b2a;
1421}
1422
1423mod internal {
1424 use super::*;
1425 unsafe impl fidl::encoding::TypeMarker for EapolTxResult {
1426 type Owned = Self;
1427
1428 #[inline(always)]
1429 fn inline_align(_context: fidl::encoding::Context) -> usize {
1430 std::mem::align_of::<u8>()
1431 }
1432
1433 #[inline(always)]
1434 fn inline_size(_context: fidl::encoding::Context) -> usize {
1435 std::mem::size_of::<u8>()
1436 }
1437
1438 #[inline(always)]
1439 fn encode_is_copy() -> bool {
1440 false
1441 }
1442
1443 #[inline(always)]
1444 fn decode_is_copy() -> bool {
1445 false
1446 }
1447 }
1448
1449 impl fidl::encoding::ValueTypeMarker for EapolTxResult {
1450 type Borrowed<'a> = Self;
1451 #[inline(always)]
1452 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1453 *value
1454 }
1455 }
1456
1457 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for EapolTxResult {
1458 #[inline]
1459 unsafe fn encode(
1460 self,
1461 encoder: &mut fidl::encoding::Encoder<'_, D>,
1462 offset: usize,
1463 _depth: fidl::encoding::Depth,
1464 ) -> fidl::Result<()> {
1465 encoder.debug_check_bounds::<Self>(offset);
1466 encoder.write_num(self.into_primitive(), offset);
1467 Ok(())
1468 }
1469 }
1470
1471 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for EapolTxResult {
1472 #[inline(always)]
1473 fn new_empty() -> Self {
1474 Self::unknown()
1475 }
1476
1477 #[inline]
1478 unsafe fn decode(
1479 &mut self,
1480 decoder: &mut fidl::encoding::Decoder<'_, D>,
1481 offset: usize,
1482 _depth: fidl::encoding::Depth,
1483 ) -> fidl::Result<()> {
1484 decoder.debug_check_bounds::<Self>(offset);
1485 let prim = decoder.read_num::<u8>(offset);
1486
1487 *self = Self::from_primitive_allow_unknown(prim);
1488 Ok(())
1489 }
1490 }
1491 unsafe impl fidl::encoding::TypeMarker for StartResult {
1492 type Owned = Self;
1493
1494 #[inline(always)]
1495 fn inline_align(_context: fidl::encoding::Context) -> usize {
1496 std::mem::align_of::<u8>()
1497 }
1498
1499 #[inline(always)]
1500 fn inline_size(_context: fidl::encoding::Context) -> usize {
1501 std::mem::size_of::<u8>()
1502 }
1503
1504 #[inline(always)]
1505 fn encode_is_copy() -> bool {
1506 false
1507 }
1508
1509 #[inline(always)]
1510 fn decode_is_copy() -> bool {
1511 false
1512 }
1513 }
1514
1515 impl fidl::encoding::ValueTypeMarker for StartResult {
1516 type Borrowed<'a> = Self;
1517 #[inline(always)]
1518 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1519 *value
1520 }
1521 }
1522
1523 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for StartResult {
1524 #[inline]
1525 unsafe fn encode(
1526 self,
1527 encoder: &mut fidl::encoding::Encoder<'_, D>,
1528 offset: usize,
1529 _depth: fidl::encoding::Depth,
1530 ) -> fidl::Result<()> {
1531 encoder.debug_check_bounds::<Self>(offset);
1532 encoder.write_num(self.into_primitive(), offset);
1533 Ok(())
1534 }
1535 }
1536
1537 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for StartResult {
1538 #[inline(always)]
1539 fn new_empty() -> Self {
1540 Self::unknown()
1541 }
1542
1543 #[inline]
1544 unsafe fn decode(
1545 &mut self,
1546 decoder: &mut fidl::encoding::Decoder<'_, D>,
1547 offset: usize,
1548 _depth: fidl::encoding::Depth,
1549 ) -> fidl::Result<()> {
1550 decoder.debug_check_bounds::<Self>(offset);
1551 let prim = decoder.read_num::<u8>(offset);
1552
1553 *self = Self::from_primitive_allow_unknown(prim);
1554 Ok(())
1555 }
1556 }
1557 unsafe impl fidl::encoding::TypeMarker for StopResult {
1558 type Owned = Self;
1559
1560 #[inline(always)]
1561 fn inline_align(_context: fidl::encoding::Context) -> usize {
1562 std::mem::align_of::<u8>()
1563 }
1564
1565 #[inline(always)]
1566 fn inline_size(_context: fidl::encoding::Context) -> usize {
1567 std::mem::size_of::<u8>()
1568 }
1569
1570 #[inline(always)]
1571 fn encode_is_copy() -> bool {
1572 false
1573 }
1574
1575 #[inline(always)]
1576 fn decode_is_copy() -> bool {
1577 false
1578 }
1579 }
1580
1581 impl fidl::encoding::ValueTypeMarker for StopResult {
1582 type Borrowed<'a> = Self;
1583 #[inline(always)]
1584 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1585 *value
1586 }
1587 }
1588
1589 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for StopResult {
1590 #[inline]
1591 unsafe fn encode(
1592 self,
1593 encoder: &mut fidl::encoding::Encoder<'_, D>,
1594 offset: usize,
1595 _depth: fidl::encoding::Depth,
1596 ) -> fidl::Result<()> {
1597 encoder.debug_check_bounds::<Self>(offset);
1598 encoder.write_num(self.into_primitive(), offset);
1599 Ok(())
1600 }
1601 }
1602
1603 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for StopResult {
1604 #[inline(always)]
1605 fn new_empty() -> Self {
1606 Self::unknown()
1607 }
1608
1609 #[inline]
1610 unsafe fn decode(
1611 &mut self,
1612 decoder: &mut fidl::encoding::Decoder<'_, D>,
1613 offset: usize,
1614 _depth: fidl::encoding::Depth,
1615 ) -> fidl::Result<()> {
1616 decoder.debug_check_bounds::<Self>(offset);
1617 let prim = decoder.read_num::<u8>(offset);
1618
1619 *self = Self::from_primitive_allow_unknown(prim);
1620 Ok(())
1621 }
1622 }
1623 unsafe impl fidl::encoding::TypeMarker for WlanAssocResult {
1624 type Owned = Self;
1625
1626 #[inline(always)]
1627 fn inline_align(_context: fidl::encoding::Context) -> usize {
1628 std::mem::align_of::<u8>()
1629 }
1630
1631 #[inline(always)]
1632 fn inline_size(_context: fidl::encoding::Context) -> usize {
1633 std::mem::size_of::<u8>()
1634 }
1635
1636 #[inline(always)]
1637 fn encode_is_copy() -> bool {
1638 false
1639 }
1640
1641 #[inline(always)]
1642 fn decode_is_copy() -> bool {
1643 false
1644 }
1645 }
1646
1647 impl fidl::encoding::ValueTypeMarker for WlanAssocResult {
1648 type Borrowed<'a> = Self;
1649 #[inline(always)]
1650 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1651 *value
1652 }
1653 }
1654
1655 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
1656 for WlanAssocResult
1657 {
1658 #[inline]
1659 unsafe fn encode(
1660 self,
1661 encoder: &mut fidl::encoding::Encoder<'_, D>,
1662 offset: usize,
1663 _depth: fidl::encoding::Depth,
1664 ) -> fidl::Result<()> {
1665 encoder.debug_check_bounds::<Self>(offset);
1666 encoder.write_num(self.into_primitive(), offset);
1667 Ok(())
1668 }
1669 }
1670
1671 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for WlanAssocResult {
1672 #[inline(always)]
1673 fn new_empty() -> Self {
1674 Self::unknown()
1675 }
1676
1677 #[inline]
1678 unsafe fn decode(
1679 &mut self,
1680 decoder: &mut fidl::encoding::Decoder<'_, D>,
1681 offset: usize,
1682 _depth: fidl::encoding::Depth,
1683 ) -> fidl::Result<()> {
1684 decoder.debug_check_bounds::<Self>(offset);
1685 let prim = decoder.read_num::<u8>(offset);
1686
1687 *self = Self::from_primitive_allow_unknown(prim);
1688 Ok(())
1689 }
1690 }
1691 unsafe impl fidl::encoding::TypeMarker for WlanAuthResult {
1692 type Owned = Self;
1693
1694 #[inline(always)]
1695 fn inline_align(_context: fidl::encoding::Context) -> usize {
1696 std::mem::align_of::<u8>()
1697 }
1698
1699 #[inline(always)]
1700 fn inline_size(_context: fidl::encoding::Context) -> usize {
1701 std::mem::size_of::<u8>()
1702 }
1703
1704 #[inline(always)]
1705 fn encode_is_copy() -> bool {
1706 false
1707 }
1708
1709 #[inline(always)]
1710 fn decode_is_copy() -> bool {
1711 false
1712 }
1713 }
1714
1715 impl fidl::encoding::ValueTypeMarker for WlanAuthResult {
1716 type Borrowed<'a> = Self;
1717 #[inline(always)]
1718 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1719 *value
1720 }
1721 }
1722
1723 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for WlanAuthResult {
1724 #[inline]
1725 unsafe fn encode(
1726 self,
1727 encoder: &mut fidl::encoding::Encoder<'_, D>,
1728 offset: usize,
1729 _depth: fidl::encoding::Depth,
1730 ) -> fidl::Result<()> {
1731 encoder.debug_check_bounds::<Self>(offset);
1732 encoder.write_num(self.into_primitive(), offset);
1733 Ok(())
1734 }
1735 }
1736
1737 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for WlanAuthResult {
1738 #[inline(always)]
1739 fn new_empty() -> Self {
1740 Self::unknown()
1741 }
1742
1743 #[inline]
1744 unsafe fn decode(
1745 &mut self,
1746 decoder: &mut fidl::encoding::Decoder<'_, D>,
1747 offset: usize,
1748 _depth: fidl::encoding::Depth,
1749 ) -> fidl::Result<()> {
1750 decoder.debug_check_bounds::<Self>(offset);
1751 let prim = decoder.read_num::<u8>(offset);
1752
1753 *self = Self::from_primitive_allow_unknown(prim);
1754 Ok(())
1755 }
1756 }
1757 unsafe impl fidl::encoding::TypeMarker for WlanAuthType {
1758 type Owned = Self;
1759
1760 #[inline(always)]
1761 fn inline_align(_context: fidl::encoding::Context) -> usize {
1762 std::mem::align_of::<u8>()
1763 }
1764
1765 #[inline(always)]
1766 fn inline_size(_context: fidl::encoding::Context) -> usize {
1767 std::mem::size_of::<u8>()
1768 }
1769
1770 #[inline(always)]
1771 fn encode_is_copy() -> bool {
1772 false
1773 }
1774
1775 #[inline(always)]
1776 fn decode_is_copy() -> bool {
1777 false
1778 }
1779 }
1780
1781 impl fidl::encoding::ValueTypeMarker for WlanAuthType {
1782 type Borrowed<'a> = Self;
1783 #[inline(always)]
1784 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1785 *value
1786 }
1787 }
1788
1789 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for WlanAuthType {
1790 #[inline]
1791 unsafe fn encode(
1792 self,
1793 encoder: &mut fidl::encoding::Encoder<'_, D>,
1794 offset: usize,
1795 _depth: fidl::encoding::Depth,
1796 ) -> fidl::Result<()> {
1797 encoder.debug_check_bounds::<Self>(offset);
1798 encoder.write_num(self.into_primitive(), offset);
1799 Ok(())
1800 }
1801 }
1802
1803 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for WlanAuthType {
1804 #[inline(always)]
1805 fn new_empty() -> Self {
1806 Self::unknown()
1807 }
1808
1809 #[inline]
1810 unsafe fn decode(
1811 &mut self,
1812 decoder: &mut fidl::encoding::Decoder<'_, D>,
1813 offset: usize,
1814 _depth: fidl::encoding::Depth,
1815 ) -> fidl::Result<()> {
1816 decoder.debug_check_bounds::<Self>(offset);
1817 let prim = decoder.read_num::<u8>(offset);
1818
1819 *self = Self::from_primitive_allow_unknown(prim);
1820 Ok(())
1821 }
1822 }
1823 unsafe impl fidl::encoding::TypeMarker for WlanScanResult {
1824 type Owned = Self;
1825
1826 #[inline(always)]
1827 fn inline_align(_context: fidl::encoding::Context) -> usize {
1828 std::mem::align_of::<u8>()
1829 }
1830
1831 #[inline(always)]
1832 fn inline_size(_context: fidl::encoding::Context) -> usize {
1833 std::mem::size_of::<u8>()
1834 }
1835
1836 #[inline(always)]
1837 fn encode_is_copy() -> bool {
1838 false
1839 }
1840
1841 #[inline(always)]
1842 fn decode_is_copy() -> bool {
1843 false
1844 }
1845 }
1846
1847 impl fidl::encoding::ValueTypeMarker for WlanScanResult {
1848 type Borrowed<'a> = Self;
1849 #[inline(always)]
1850 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1851 *value
1852 }
1853 }
1854
1855 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for WlanScanResult {
1856 #[inline]
1857 unsafe fn encode(
1858 self,
1859 encoder: &mut fidl::encoding::Encoder<'_, D>,
1860 offset: usize,
1861 _depth: fidl::encoding::Depth,
1862 ) -> fidl::Result<()> {
1863 encoder.debug_check_bounds::<Self>(offset);
1864 encoder.write_num(self.into_primitive(), offset);
1865 Ok(())
1866 }
1867 }
1868
1869 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for WlanScanResult {
1870 #[inline(always)]
1871 fn new_empty() -> Self {
1872 Self::unknown()
1873 }
1874
1875 #[inline]
1876 unsafe fn decode(
1877 &mut self,
1878 decoder: &mut fidl::encoding::Decoder<'_, D>,
1879 offset: usize,
1880 _depth: fidl::encoding::Depth,
1881 ) -> fidl::Result<()> {
1882 decoder.debug_check_bounds::<Self>(offset);
1883 let prim = decoder.read_num::<u8>(offset);
1884
1885 *self = Self::from_primitive_allow_unknown(prim);
1886 Ok(())
1887 }
1888 }
1889 unsafe impl fidl::encoding::TypeMarker for WlanScanType {
1890 type Owned = Self;
1891
1892 #[inline(always)]
1893 fn inline_align(_context: fidl::encoding::Context) -> usize {
1894 std::mem::align_of::<u8>()
1895 }
1896
1897 #[inline(always)]
1898 fn inline_size(_context: fidl::encoding::Context) -> usize {
1899 std::mem::size_of::<u8>()
1900 }
1901
1902 #[inline(always)]
1903 fn encode_is_copy() -> bool {
1904 false
1905 }
1906
1907 #[inline(always)]
1908 fn decode_is_copy() -> bool {
1909 false
1910 }
1911 }
1912
1913 impl fidl::encoding::ValueTypeMarker for WlanScanType {
1914 type Borrowed<'a> = Self;
1915 #[inline(always)]
1916 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1917 *value
1918 }
1919 }
1920
1921 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for WlanScanType {
1922 #[inline]
1923 unsafe fn encode(
1924 self,
1925 encoder: &mut fidl::encoding::Encoder<'_, D>,
1926 offset: usize,
1927 _depth: fidl::encoding::Depth,
1928 ) -> fidl::Result<()> {
1929 encoder.debug_check_bounds::<Self>(offset);
1930 encoder.write_num(self.into_primitive(), offset);
1931 Ok(())
1932 }
1933 }
1934
1935 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for WlanScanType {
1936 #[inline(always)]
1937 fn new_empty() -> Self {
1938 Self::unknown()
1939 }
1940
1941 #[inline]
1942 unsafe fn decode(
1943 &mut self,
1944 decoder: &mut fidl::encoding::Decoder<'_, D>,
1945 offset: usize,
1946 _depth: fidl::encoding::Depth,
1947 ) -> fidl::Result<()> {
1948 decoder.debug_check_bounds::<Self>(offset);
1949 let prim = decoder.read_num::<u8>(offset);
1950
1951 *self = Self::from_primitive_allow_unknown(prim);
1952 Ok(())
1953 }
1954 }
1955
1956 impl fidl::encoding::ValueTypeMarker for WlanFullmacChannelSwitchInfo {
1957 type Borrowed<'a> = &'a Self;
1958 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1959 value
1960 }
1961 }
1962
1963 unsafe impl fidl::encoding::TypeMarker for WlanFullmacChannelSwitchInfo {
1964 type Owned = Self;
1965
1966 #[inline(always)]
1967 fn inline_align(_context: fidl::encoding::Context) -> usize {
1968 4
1969 }
1970
1971 #[inline(always)]
1972 fn inline_size(_context: fidl::encoding::Context) -> usize {
1973 12
1974 }
1975 }
1976
1977 unsafe impl<D: fidl::encoding::ResourceDialect>
1978 fidl::encoding::Encode<WlanFullmacChannelSwitchInfo, D> for &WlanFullmacChannelSwitchInfo
1979 {
1980 #[inline]
1981 unsafe fn encode(
1982 self,
1983 encoder: &mut fidl::encoding::Encoder<'_, D>,
1984 offset: usize,
1985 _depth: fidl::encoding::Depth,
1986 ) -> fidl::Result<()> {
1987 encoder.debug_check_bounds::<WlanFullmacChannelSwitchInfo>(offset);
1988 fidl::encoding::Encode::<WlanFullmacChannelSwitchInfo, D>::encode(
1990 (
1991 <fidl_fuchsia_wlan_ieee80211_common::ChannelNumber as fidl::encoding::ValueTypeMarker>::borrow(&self.new_primary_channel),
1992 <fidl_fuchsia_wlan_ieee80211_common::ChannelBandwidth as fidl::encoding::ValueTypeMarker>::borrow(&self.bandwidth),
1993 <fidl_fuchsia_wlan_ieee80211_common::ChannelNumber as fidl::encoding::ValueTypeMarker>::borrow(&self.vht_secondary_80_channel),
1994 ),
1995 encoder, offset, _depth
1996 )
1997 }
1998 }
1999 unsafe impl<
2000 D: fidl::encoding::ResourceDialect,
2001 T0: fidl::encoding::Encode<fidl_fuchsia_wlan_ieee80211_common::ChannelNumber, D>,
2002 T1: fidl::encoding::Encode<fidl_fuchsia_wlan_ieee80211_common::ChannelBandwidth, D>,
2003 T2: fidl::encoding::Encode<fidl_fuchsia_wlan_ieee80211_common::ChannelNumber, D>,
2004 > fidl::encoding::Encode<WlanFullmacChannelSwitchInfo, D> for (T0, T1, T2)
2005 {
2006 #[inline]
2007 unsafe fn encode(
2008 self,
2009 encoder: &mut fidl::encoding::Encoder<'_, D>,
2010 offset: usize,
2011 depth: fidl::encoding::Depth,
2012 ) -> fidl::Result<()> {
2013 encoder.debug_check_bounds::<WlanFullmacChannelSwitchInfo>(offset);
2014 unsafe {
2017 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(0);
2018 (ptr as *mut u32).write_unaligned(0);
2019 }
2020 unsafe {
2021 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(8);
2022 (ptr as *mut u32).write_unaligned(0);
2023 }
2024 self.0.encode(encoder, offset + 0, depth)?;
2026 self.1.encode(encoder, offset + 4, depth)?;
2027 self.2.encode(encoder, offset + 8, depth)?;
2028 Ok(())
2029 }
2030 }
2031
2032 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2033 for WlanFullmacChannelSwitchInfo
2034 {
2035 #[inline(always)]
2036 fn new_empty() -> Self {
2037 Self {
2038 new_primary_channel: fidl::new_empty!(
2039 fidl_fuchsia_wlan_ieee80211_common::ChannelNumber,
2040 D
2041 ),
2042 bandwidth: fidl::new_empty!(
2043 fidl_fuchsia_wlan_ieee80211_common::ChannelBandwidth,
2044 D
2045 ),
2046 vht_secondary_80_channel: fidl::new_empty!(
2047 fidl_fuchsia_wlan_ieee80211_common::ChannelNumber,
2048 D
2049 ),
2050 }
2051 }
2052
2053 #[inline]
2054 unsafe fn decode(
2055 &mut self,
2056 decoder: &mut fidl::encoding::Decoder<'_, D>,
2057 offset: usize,
2058 _depth: fidl::encoding::Depth,
2059 ) -> fidl::Result<()> {
2060 decoder.debug_check_bounds::<Self>(offset);
2061 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(0) };
2063 let padval = unsafe { (ptr as *const u32).read_unaligned() };
2064 let mask = 0xffff0000u32;
2065 let maskedval = padval & mask;
2066 if maskedval != 0 {
2067 return Err(fidl::Error::NonZeroPadding {
2068 padding_start: offset + 0 + ((mask as u64).trailing_zeros() / 8) as usize,
2069 });
2070 }
2071 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(8) };
2072 let padval = unsafe { (ptr as *const u32).read_unaligned() };
2073 let mask = 0xffff0000u32;
2074 let maskedval = padval & mask;
2075 if maskedval != 0 {
2076 return Err(fidl::Error::NonZeroPadding {
2077 padding_start: offset + 8 + ((mask as u64).trailing_zeros() / 8) as usize,
2078 });
2079 }
2080 fidl::decode!(
2081 fidl_fuchsia_wlan_ieee80211_common::ChannelNumber,
2082 D,
2083 &mut self.new_primary_channel,
2084 decoder,
2085 offset + 0,
2086 _depth
2087 )?;
2088 fidl::decode!(
2089 fidl_fuchsia_wlan_ieee80211_common::ChannelBandwidth,
2090 D,
2091 &mut self.bandwidth,
2092 decoder,
2093 offset + 4,
2094 _depth
2095 )?;
2096 fidl::decode!(
2097 fidl_fuchsia_wlan_ieee80211_common::ChannelNumber,
2098 D,
2099 &mut self.vht_secondary_80_channel,
2100 decoder,
2101 offset + 8,
2102 _depth
2103 )?;
2104 Ok(())
2105 }
2106 }
2107
2108 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcOnChannelSwitchRequest {
2109 type Borrowed<'a> = &'a Self;
2110 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2111 value
2112 }
2113 }
2114
2115 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcOnChannelSwitchRequest {
2116 type Owned = Self;
2117
2118 #[inline(always)]
2119 fn inline_align(_context: fidl::encoding::Context) -> usize {
2120 4
2121 }
2122
2123 #[inline(always)]
2124 fn inline_size(_context: fidl::encoding::Context) -> usize {
2125 12
2126 }
2127 }
2128
2129 unsafe impl<D: fidl::encoding::ResourceDialect>
2130 fidl::encoding::Encode<WlanFullmacImplIfcOnChannelSwitchRequest, D>
2131 for &WlanFullmacImplIfcOnChannelSwitchRequest
2132 {
2133 #[inline]
2134 unsafe fn encode(
2135 self,
2136 encoder: &mut fidl::encoding::Encoder<'_, D>,
2137 offset: usize,
2138 _depth: fidl::encoding::Depth,
2139 ) -> fidl::Result<()> {
2140 encoder.debug_check_bounds::<WlanFullmacImplIfcOnChannelSwitchRequest>(offset);
2141 fidl::encoding::Encode::<WlanFullmacImplIfcOnChannelSwitchRequest, D>::encode(
2143 (<WlanFullmacChannelSwitchInfo as fidl::encoding::ValueTypeMarker>::borrow(
2144 &self.ind,
2145 ),),
2146 encoder,
2147 offset,
2148 _depth,
2149 )
2150 }
2151 }
2152 unsafe impl<
2153 D: fidl::encoding::ResourceDialect,
2154 T0: fidl::encoding::Encode<WlanFullmacChannelSwitchInfo, D>,
2155 > fidl::encoding::Encode<WlanFullmacImplIfcOnChannelSwitchRequest, D> for (T0,)
2156 {
2157 #[inline]
2158 unsafe fn encode(
2159 self,
2160 encoder: &mut fidl::encoding::Encoder<'_, D>,
2161 offset: usize,
2162 depth: fidl::encoding::Depth,
2163 ) -> fidl::Result<()> {
2164 encoder.debug_check_bounds::<WlanFullmacImplIfcOnChannelSwitchRequest>(offset);
2165 self.0.encode(encoder, offset + 0, depth)?;
2169 Ok(())
2170 }
2171 }
2172
2173 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2174 for WlanFullmacImplIfcOnChannelSwitchRequest
2175 {
2176 #[inline(always)]
2177 fn new_empty() -> Self {
2178 Self { ind: fidl::new_empty!(WlanFullmacChannelSwitchInfo, D) }
2179 }
2180
2181 #[inline]
2182 unsafe fn decode(
2183 &mut self,
2184 decoder: &mut fidl::encoding::Decoder<'_, D>,
2185 offset: usize,
2186 _depth: fidl::encoding::Depth,
2187 ) -> fidl::Result<()> {
2188 decoder.debug_check_bounds::<Self>(offset);
2189 fidl::decode!(
2191 WlanFullmacChannelSwitchInfo,
2192 D,
2193 &mut self.ind,
2194 decoder,
2195 offset + 0,
2196 _depth
2197 )?;
2198 Ok(())
2199 }
2200 }
2201
2202 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcOnWmmStatusRespRequest {
2203 type Borrowed<'a> = &'a Self;
2204 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2205 value
2206 }
2207 }
2208
2209 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcOnWmmStatusRespRequest {
2210 type Owned = Self;
2211
2212 #[inline(always)]
2213 fn inline_align(_context: fidl::encoding::Context) -> usize {
2214 4
2215 }
2216
2217 #[inline(always)]
2218 fn inline_size(_context: fidl::encoding::Context) -> usize {
2219 40
2220 }
2221 }
2222
2223 unsafe impl<D: fidl::encoding::ResourceDialect>
2224 fidl::encoding::Encode<WlanFullmacImplIfcOnWmmStatusRespRequest, D>
2225 for &WlanFullmacImplIfcOnWmmStatusRespRequest
2226 {
2227 #[inline]
2228 unsafe fn encode(
2229 self,
2230 encoder: &mut fidl::encoding::Encoder<'_, D>,
2231 offset: usize,
2232 _depth: fidl::encoding::Depth,
2233 ) -> fidl::Result<()> {
2234 encoder.debug_check_bounds::<WlanFullmacImplIfcOnWmmStatusRespRequest>(offset);
2235 fidl::encoding::Encode::<WlanFullmacImplIfcOnWmmStatusRespRequest, D>::encode(
2237 (
2238 <i32 as fidl::encoding::ValueTypeMarker>::borrow(&self.status),
2239 <fidl_fuchsia_wlan_driver_common::WlanWmmParameters as fidl::encoding::ValueTypeMarker>::borrow(&self.wmm_params),
2240 ),
2241 encoder, offset, _depth
2242 )
2243 }
2244 }
2245 unsafe impl<
2246 D: fidl::encoding::ResourceDialect,
2247 T0: fidl::encoding::Encode<i32, D>,
2248 T1: fidl::encoding::Encode<fidl_fuchsia_wlan_driver_common::WlanWmmParameters, D>,
2249 > fidl::encoding::Encode<WlanFullmacImplIfcOnWmmStatusRespRequest, D> for (T0, T1)
2250 {
2251 #[inline]
2252 unsafe fn encode(
2253 self,
2254 encoder: &mut fidl::encoding::Encoder<'_, D>,
2255 offset: usize,
2256 depth: fidl::encoding::Depth,
2257 ) -> fidl::Result<()> {
2258 encoder.debug_check_bounds::<WlanFullmacImplIfcOnWmmStatusRespRequest>(offset);
2259 unsafe {
2262 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(36);
2263 (ptr as *mut u32).write_unaligned(0);
2264 }
2265 self.0.encode(encoder, offset + 0, depth)?;
2267 self.1.encode(encoder, offset + 4, depth)?;
2268 Ok(())
2269 }
2270 }
2271
2272 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2273 for WlanFullmacImplIfcOnWmmStatusRespRequest
2274 {
2275 #[inline(always)]
2276 fn new_empty() -> Self {
2277 Self {
2278 status: fidl::new_empty!(i32, D),
2279 wmm_params: fidl::new_empty!(fidl_fuchsia_wlan_driver_common::WlanWmmParameters, D),
2280 }
2281 }
2282
2283 #[inline]
2284 unsafe fn decode(
2285 &mut self,
2286 decoder: &mut fidl::encoding::Decoder<'_, D>,
2287 offset: usize,
2288 _depth: fidl::encoding::Depth,
2289 ) -> fidl::Result<()> {
2290 decoder.debug_check_bounds::<Self>(offset);
2291 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(36) };
2293 let padval = unsafe { (ptr as *const u32).read_unaligned() };
2294 let mask = 0xffff0000u32;
2295 let maskedval = padval & mask;
2296 if maskedval != 0 {
2297 return Err(fidl::Error::NonZeroPadding {
2298 padding_start: offset + 36 + ((mask as u64).trailing_zeros() / 8) as usize,
2299 });
2300 }
2301 fidl::decode!(i32, D, &mut self.status, decoder, offset + 0, _depth)?;
2302 fidl::decode!(
2303 fidl_fuchsia_wlan_driver_common::WlanWmmParameters,
2304 D,
2305 &mut self.wmm_params,
2306 decoder,
2307 offset + 4,
2308 _depth
2309 )?;
2310 Ok(())
2311 }
2312 }
2313
2314 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcSaeFrameRxRequest {
2315 type Borrowed<'a> = &'a Self;
2316 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2317 value
2318 }
2319 }
2320
2321 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcSaeFrameRxRequest {
2322 type Owned = Self;
2323
2324 #[inline(always)]
2325 fn inline_align(_context: fidl::encoding::Context) -> usize {
2326 8
2327 }
2328
2329 #[inline(always)]
2330 fn inline_size(_context: fidl::encoding::Context) -> usize {
2331 16
2332 }
2333 }
2334
2335 unsafe impl<D: fidl::encoding::ResourceDialect>
2336 fidl::encoding::Encode<WlanFullmacImplIfcSaeFrameRxRequest, D>
2337 for &WlanFullmacImplIfcSaeFrameRxRequest
2338 {
2339 #[inline]
2340 unsafe fn encode(
2341 self,
2342 encoder: &mut fidl::encoding::Encoder<'_, D>,
2343 offset: usize,
2344 _depth: fidl::encoding::Depth,
2345 ) -> fidl::Result<()> {
2346 encoder.debug_check_bounds::<WlanFullmacImplIfcSaeFrameRxRequest>(offset);
2347 fidl::encoding::Encode::<WlanFullmacImplIfcSaeFrameRxRequest, D>::encode(
2349 (<SaeFrame as fidl::encoding::ValueTypeMarker>::borrow(&self.frame),),
2350 encoder,
2351 offset,
2352 _depth,
2353 )
2354 }
2355 }
2356 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<SaeFrame, D>>
2357 fidl::encoding::Encode<WlanFullmacImplIfcSaeFrameRxRequest, D> for (T0,)
2358 {
2359 #[inline]
2360 unsafe fn encode(
2361 self,
2362 encoder: &mut fidl::encoding::Encoder<'_, D>,
2363 offset: usize,
2364 depth: fidl::encoding::Depth,
2365 ) -> fidl::Result<()> {
2366 encoder.debug_check_bounds::<WlanFullmacImplIfcSaeFrameRxRequest>(offset);
2367 self.0.encode(encoder, offset + 0, depth)?;
2371 Ok(())
2372 }
2373 }
2374
2375 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2376 for WlanFullmacImplIfcSaeFrameRxRequest
2377 {
2378 #[inline(always)]
2379 fn new_empty() -> Self {
2380 Self { frame: fidl::new_empty!(SaeFrame, D) }
2381 }
2382
2383 #[inline]
2384 unsafe fn decode(
2385 &mut self,
2386 decoder: &mut fidl::encoding::Decoder<'_, D>,
2387 offset: usize,
2388 _depth: fidl::encoding::Depth,
2389 ) -> fidl::Result<()> {
2390 decoder.debug_check_bounds::<Self>(offset);
2391 fidl::decode!(SaeFrame, D, &mut self.frame, decoder, offset + 0, _depth)?;
2393 Ok(())
2394 }
2395 }
2396
2397 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcSignalReportRequest {
2398 type Borrowed<'a> = &'a Self;
2399 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2400 value
2401 }
2402 }
2403
2404 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcSignalReportRequest {
2405 type Owned = Self;
2406
2407 #[inline(always)]
2408 fn inline_align(_context: fidl::encoding::Context) -> usize {
2409 4
2410 }
2411
2412 #[inline(always)]
2413 fn inline_size(_context: fidl::encoding::Context) -> usize {
2414 8
2415 }
2416 }
2417
2418 unsafe impl<D: fidl::encoding::ResourceDialect>
2419 fidl::encoding::Encode<WlanFullmacImplIfcSignalReportRequest, D>
2420 for &WlanFullmacImplIfcSignalReportRequest
2421 {
2422 #[inline]
2423 unsafe fn encode(
2424 self,
2425 encoder: &mut fidl::encoding::Encoder<'_, D>,
2426 offset: usize,
2427 _depth: fidl::encoding::Depth,
2428 ) -> fidl::Result<()> {
2429 encoder.debug_check_bounds::<WlanFullmacImplIfcSignalReportRequest>(offset);
2430 unsafe {
2431 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
2433 (buf_ptr as *mut WlanFullmacImplIfcSignalReportRequest)
2434 .write_unaligned((self as *const WlanFullmacImplIfcSignalReportRequest).read());
2435 let padding_ptr = buf_ptr.offset(0) as *mut u32;
2438 let padding_mask = 0xffff0000u32;
2439 padding_ptr.write_unaligned(padding_ptr.read_unaligned() & !padding_mask);
2440 }
2441 Ok(())
2442 }
2443 }
2444 unsafe impl<
2445 D: fidl::encoding::ResourceDialect,
2446 T0: fidl::encoding::Encode<WlanFullmacSignalReportIndication, D>,
2447 > fidl::encoding::Encode<WlanFullmacImplIfcSignalReportRequest, D> for (T0,)
2448 {
2449 #[inline]
2450 unsafe fn encode(
2451 self,
2452 encoder: &mut fidl::encoding::Encoder<'_, D>,
2453 offset: usize,
2454 depth: fidl::encoding::Depth,
2455 ) -> fidl::Result<()> {
2456 encoder.debug_check_bounds::<WlanFullmacImplIfcSignalReportRequest>(offset);
2457 self.0.encode(encoder, offset + 0, depth)?;
2461 Ok(())
2462 }
2463 }
2464
2465 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2466 for WlanFullmacImplIfcSignalReportRequest
2467 {
2468 #[inline(always)]
2469 fn new_empty() -> Self {
2470 Self { ind: fidl::new_empty!(WlanFullmacSignalReportIndication, D) }
2471 }
2472
2473 #[inline]
2474 unsafe fn decode(
2475 &mut self,
2476 decoder: &mut fidl::encoding::Decoder<'_, D>,
2477 offset: usize,
2478 _depth: fidl::encoding::Depth,
2479 ) -> fidl::Result<()> {
2480 decoder.debug_check_bounds::<Self>(offset);
2481 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
2482 let ptr = unsafe { buf_ptr.offset(0) };
2484 let padval = unsafe { (ptr as *const u32).read_unaligned() };
2485 let mask = 0xffff0000u32;
2486 let maskedval = padval & mask;
2487 if maskedval != 0 {
2488 return Err(fidl::Error::NonZeroPadding {
2489 padding_start: offset + 0 + ((mask as u64).trailing_zeros() / 8) as usize,
2490 });
2491 }
2492 unsafe {
2494 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 8);
2495 }
2496 Ok(())
2497 }
2498 }
2499
2500 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplSaeFrameTxRequest {
2501 type Borrowed<'a> = &'a Self;
2502 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2503 value
2504 }
2505 }
2506
2507 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplSaeFrameTxRequest {
2508 type Owned = Self;
2509
2510 #[inline(always)]
2511 fn inline_align(_context: fidl::encoding::Context) -> usize {
2512 8
2513 }
2514
2515 #[inline(always)]
2516 fn inline_size(_context: fidl::encoding::Context) -> usize {
2517 16
2518 }
2519 }
2520
2521 unsafe impl<D: fidl::encoding::ResourceDialect>
2522 fidl::encoding::Encode<WlanFullmacImplSaeFrameTxRequest, D>
2523 for &WlanFullmacImplSaeFrameTxRequest
2524 {
2525 #[inline]
2526 unsafe fn encode(
2527 self,
2528 encoder: &mut fidl::encoding::Encoder<'_, D>,
2529 offset: usize,
2530 _depth: fidl::encoding::Depth,
2531 ) -> fidl::Result<()> {
2532 encoder.debug_check_bounds::<WlanFullmacImplSaeFrameTxRequest>(offset);
2533 fidl::encoding::Encode::<WlanFullmacImplSaeFrameTxRequest, D>::encode(
2535 (<SaeFrame as fidl::encoding::ValueTypeMarker>::borrow(&self.frame),),
2536 encoder,
2537 offset,
2538 _depth,
2539 )
2540 }
2541 }
2542 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<SaeFrame, D>>
2543 fidl::encoding::Encode<WlanFullmacImplSaeFrameTxRequest, D> for (T0,)
2544 {
2545 #[inline]
2546 unsafe fn encode(
2547 self,
2548 encoder: &mut fidl::encoding::Encoder<'_, D>,
2549 offset: usize,
2550 depth: fidl::encoding::Depth,
2551 ) -> fidl::Result<()> {
2552 encoder.debug_check_bounds::<WlanFullmacImplSaeFrameTxRequest>(offset);
2553 self.0.encode(encoder, offset + 0, depth)?;
2557 Ok(())
2558 }
2559 }
2560
2561 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2562 for WlanFullmacImplSaeFrameTxRequest
2563 {
2564 #[inline(always)]
2565 fn new_empty() -> Self {
2566 Self { frame: fidl::new_empty!(SaeFrame, D) }
2567 }
2568
2569 #[inline]
2570 unsafe fn decode(
2571 &mut self,
2572 decoder: &mut fidl::encoding::Decoder<'_, D>,
2573 offset: usize,
2574 _depth: fidl::encoding::Depth,
2575 ) -> fidl::Result<()> {
2576 decoder.debug_check_bounds::<Self>(offset);
2577 fidl::decode!(SaeFrame, D, &mut self.frame, decoder, offset + 0, _depth)?;
2579 Ok(())
2580 }
2581 }
2582
2583 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplSetKeysResponse {
2584 type Borrowed<'a> = &'a Self;
2585 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2586 value
2587 }
2588 }
2589
2590 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplSetKeysResponse {
2591 type Owned = Self;
2592
2593 #[inline(always)]
2594 fn inline_align(_context: fidl::encoding::Context) -> usize {
2595 8
2596 }
2597
2598 #[inline(always)]
2599 fn inline_size(_context: fidl::encoding::Context) -> usize {
2600 16
2601 }
2602 }
2603
2604 unsafe impl<D: fidl::encoding::ResourceDialect>
2605 fidl::encoding::Encode<WlanFullmacImplSetKeysResponse, D>
2606 for &WlanFullmacImplSetKeysResponse
2607 {
2608 #[inline]
2609 unsafe fn encode(
2610 self,
2611 encoder: &mut fidl::encoding::Encoder<'_, D>,
2612 offset: usize,
2613 _depth: fidl::encoding::Depth,
2614 ) -> fidl::Result<()> {
2615 encoder.debug_check_bounds::<WlanFullmacImplSetKeysResponse>(offset);
2616 fidl::encoding::Encode::<WlanFullmacImplSetKeysResponse, D>::encode(
2618 (<WlanFullmacSetKeysResp as fidl::encoding::ValueTypeMarker>::borrow(&self.resp),),
2619 encoder,
2620 offset,
2621 _depth,
2622 )
2623 }
2624 }
2625 unsafe impl<
2626 D: fidl::encoding::ResourceDialect,
2627 T0: fidl::encoding::Encode<WlanFullmacSetKeysResp, D>,
2628 > fidl::encoding::Encode<WlanFullmacImplSetKeysResponse, D> for (T0,)
2629 {
2630 #[inline]
2631 unsafe fn encode(
2632 self,
2633 encoder: &mut fidl::encoding::Encoder<'_, D>,
2634 offset: usize,
2635 depth: fidl::encoding::Depth,
2636 ) -> fidl::Result<()> {
2637 encoder.debug_check_bounds::<WlanFullmacImplSetKeysResponse>(offset);
2638 self.0.encode(encoder, offset + 0, depth)?;
2642 Ok(())
2643 }
2644 }
2645
2646 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2647 for WlanFullmacImplSetKeysResponse
2648 {
2649 #[inline(always)]
2650 fn new_empty() -> Self {
2651 Self { resp: fidl::new_empty!(WlanFullmacSetKeysResp, D) }
2652 }
2653
2654 #[inline]
2655 unsafe fn decode(
2656 &mut self,
2657 decoder: &mut fidl::encoding::Decoder<'_, D>,
2658 offset: usize,
2659 _depth: fidl::encoding::Depth,
2660 ) -> fidl::Result<()> {
2661 decoder.debug_check_bounds::<Self>(offset);
2662 fidl::decode!(WlanFullmacSetKeysResp, D, &mut self.resp, decoder, offset + 0, _depth)?;
2664 Ok(())
2665 }
2666 }
2667
2668 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplSetMacAddressRequest {
2669 type Borrowed<'a> = &'a Self;
2670 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2671 value
2672 }
2673 }
2674
2675 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplSetMacAddressRequest {
2676 type Owned = Self;
2677
2678 #[inline(always)]
2679 fn inline_align(_context: fidl::encoding::Context) -> usize {
2680 1
2681 }
2682
2683 #[inline(always)]
2684 fn inline_size(_context: fidl::encoding::Context) -> usize {
2685 6
2686 }
2687 #[inline(always)]
2688 fn encode_is_copy() -> bool {
2689 true
2690 }
2691
2692 #[inline(always)]
2693 fn decode_is_copy() -> bool {
2694 true
2695 }
2696 }
2697
2698 unsafe impl<D: fidl::encoding::ResourceDialect>
2699 fidl::encoding::Encode<WlanFullmacImplSetMacAddressRequest, D>
2700 for &WlanFullmacImplSetMacAddressRequest
2701 {
2702 #[inline]
2703 unsafe fn encode(
2704 self,
2705 encoder: &mut fidl::encoding::Encoder<'_, D>,
2706 offset: usize,
2707 _depth: fidl::encoding::Depth,
2708 ) -> fidl::Result<()> {
2709 encoder.debug_check_bounds::<WlanFullmacImplSetMacAddressRequest>(offset);
2710 unsafe {
2711 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
2713 (buf_ptr as *mut WlanFullmacImplSetMacAddressRequest)
2714 .write_unaligned((self as *const WlanFullmacImplSetMacAddressRequest).read());
2715 }
2718 Ok(())
2719 }
2720 }
2721 unsafe impl<
2722 D: fidl::encoding::ResourceDialect,
2723 T0: fidl::encoding::Encode<fidl::encoding::Array<u8, 6>, D>,
2724 > fidl::encoding::Encode<WlanFullmacImplSetMacAddressRequest, D> for (T0,)
2725 {
2726 #[inline]
2727 unsafe fn encode(
2728 self,
2729 encoder: &mut fidl::encoding::Encoder<'_, D>,
2730 offset: usize,
2731 depth: fidl::encoding::Depth,
2732 ) -> fidl::Result<()> {
2733 encoder.debug_check_bounds::<WlanFullmacImplSetMacAddressRequest>(offset);
2734 self.0.encode(encoder, offset + 0, depth)?;
2738 Ok(())
2739 }
2740 }
2741
2742 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2743 for WlanFullmacImplSetMacAddressRequest
2744 {
2745 #[inline(always)]
2746 fn new_empty() -> Self {
2747 Self { mac_addr: fidl::new_empty!(fidl::encoding::Array<u8, 6>, D) }
2748 }
2749
2750 #[inline]
2751 unsafe fn decode(
2752 &mut self,
2753 decoder: &mut fidl::encoding::Decoder<'_, D>,
2754 offset: usize,
2755 _depth: fidl::encoding::Depth,
2756 ) -> fidl::Result<()> {
2757 decoder.debug_check_bounds::<Self>(offset);
2758 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
2759 unsafe {
2762 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 6);
2763 }
2764 Ok(())
2765 }
2766 }
2767
2768 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplGetIfaceHistogramStatsResponse {
2769 type Borrowed<'a> = &'a Self;
2770 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2771 value
2772 }
2773 }
2774
2775 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplGetIfaceHistogramStatsResponse {
2776 type Owned = Self;
2777
2778 #[inline(always)]
2779 fn inline_align(_context: fidl::encoding::Context) -> usize {
2780 8
2781 }
2782
2783 #[inline(always)]
2784 fn inline_size(_context: fidl::encoding::Context) -> usize {
2785 16
2786 }
2787 }
2788
2789 unsafe impl<D: fidl::encoding::ResourceDialect>
2790 fidl::encoding::Encode<WlanFullmacImplGetIfaceHistogramStatsResponse, D>
2791 for &WlanFullmacImplGetIfaceHistogramStatsResponse
2792 {
2793 #[inline]
2794 unsafe fn encode(
2795 self,
2796 encoder: &mut fidl::encoding::Encoder<'_, D>,
2797 offset: usize,
2798 _depth: fidl::encoding::Depth,
2799 ) -> fidl::Result<()> {
2800 encoder.debug_check_bounds::<WlanFullmacImplGetIfaceHistogramStatsResponse>(offset);
2801 fidl::encoding::Encode::<WlanFullmacImplGetIfaceHistogramStatsResponse, D>::encode(
2803 (
2804 <fidl_fuchsia_wlan_stats_common::IfaceHistogramStats as fidl::encoding::ValueTypeMarker>::borrow(&self.stats),
2805 ),
2806 encoder, offset, _depth
2807 )
2808 }
2809 }
2810 unsafe impl<
2811 D: fidl::encoding::ResourceDialect,
2812 T0: fidl::encoding::Encode<fidl_fuchsia_wlan_stats_common::IfaceHistogramStats, D>,
2813 > fidl::encoding::Encode<WlanFullmacImplGetIfaceHistogramStatsResponse, D> for (T0,)
2814 {
2815 #[inline]
2816 unsafe fn encode(
2817 self,
2818 encoder: &mut fidl::encoding::Encoder<'_, D>,
2819 offset: usize,
2820 depth: fidl::encoding::Depth,
2821 ) -> fidl::Result<()> {
2822 encoder.debug_check_bounds::<WlanFullmacImplGetIfaceHistogramStatsResponse>(offset);
2823 self.0.encode(encoder, offset + 0, depth)?;
2827 Ok(())
2828 }
2829 }
2830
2831 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2832 for WlanFullmacImplGetIfaceHistogramStatsResponse
2833 {
2834 #[inline(always)]
2835 fn new_empty() -> Self {
2836 Self { stats: fidl::new_empty!(fidl_fuchsia_wlan_stats_common::IfaceHistogramStats, D) }
2837 }
2838
2839 #[inline]
2840 unsafe fn decode(
2841 &mut self,
2842 decoder: &mut fidl::encoding::Decoder<'_, D>,
2843 offset: usize,
2844 _depth: fidl::encoding::Depth,
2845 ) -> fidl::Result<()> {
2846 decoder.debug_check_bounds::<Self>(offset);
2847 fidl::decode!(
2849 fidl_fuchsia_wlan_stats_common::IfaceHistogramStats,
2850 D,
2851 &mut self.stats,
2852 decoder,
2853 offset + 0,
2854 _depth
2855 )?;
2856 Ok(())
2857 }
2858 }
2859
2860 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplGetIfaceStatsResponse {
2861 type Borrowed<'a> = &'a Self;
2862 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2863 value
2864 }
2865 }
2866
2867 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplGetIfaceStatsResponse {
2868 type Owned = Self;
2869
2870 #[inline(always)]
2871 fn inline_align(_context: fidl::encoding::Context) -> usize {
2872 8
2873 }
2874
2875 #[inline(always)]
2876 fn inline_size(_context: fidl::encoding::Context) -> usize {
2877 16
2878 }
2879 }
2880
2881 unsafe impl<D: fidl::encoding::ResourceDialect>
2882 fidl::encoding::Encode<WlanFullmacImplGetIfaceStatsResponse, D>
2883 for &WlanFullmacImplGetIfaceStatsResponse
2884 {
2885 #[inline]
2886 unsafe fn encode(
2887 self,
2888 encoder: &mut fidl::encoding::Encoder<'_, D>,
2889 offset: usize,
2890 _depth: fidl::encoding::Depth,
2891 ) -> fidl::Result<()> {
2892 encoder.debug_check_bounds::<WlanFullmacImplGetIfaceStatsResponse>(offset);
2893 fidl::encoding::Encode::<WlanFullmacImplGetIfaceStatsResponse, D>::encode(
2895 (
2896 <fidl_fuchsia_wlan_stats_common::IfaceStats as fidl::encoding::ValueTypeMarker>::borrow(&self.stats),
2897 ),
2898 encoder, offset, _depth
2899 )
2900 }
2901 }
2902 unsafe impl<
2903 D: fidl::encoding::ResourceDialect,
2904 T0: fidl::encoding::Encode<fidl_fuchsia_wlan_stats_common::IfaceStats, D>,
2905 > fidl::encoding::Encode<WlanFullmacImplGetIfaceStatsResponse, 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::<WlanFullmacImplGetIfaceStatsResponse>(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 WlanFullmacImplGetIfaceStatsResponse
2925 {
2926 #[inline(always)]
2927 fn new_empty() -> Self {
2928 Self { stats: fidl::new_empty!(fidl_fuchsia_wlan_stats_common::IfaceStats, 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!(
2941 fidl_fuchsia_wlan_stats_common::IfaceStats,
2942 D,
2943 &mut self.stats,
2944 decoder,
2945 offset + 0,
2946 _depth
2947 )?;
2948 Ok(())
2949 }
2950 }
2951
2952 impl fidl::encoding::ValueTypeMarker for WlanFullmacRssiStats {
2953 type Borrowed<'a> = &'a Self;
2954 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2955 value
2956 }
2957 }
2958
2959 unsafe impl fidl::encoding::TypeMarker for WlanFullmacRssiStats {
2960 type Owned = Self;
2961
2962 #[inline(always)]
2963 fn inline_align(_context: fidl::encoding::Context) -> usize {
2964 8
2965 }
2966
2967 #[inline(always)]
2968 fn inline_size(_context: fidl::encoding::Context) -> usize {
2969 16
2970 }
2971 }
2972
2973 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<WlanFullmacRssiStats, D>
2974 for &WlanFullmacRssiStats
2975 {
2976 #[inline]
2977 unsafe fn encode(
2978 self,
2979 encoder: &mut fidl::encoding::Encoder<'_, D>,
2980 offset: usize,
2981 _depth: fidl::encoding::Depth,
2982 ) -> fidl::Result<()> {
2983 encoder.debug_check_bounds::<WlanFullmacRssiStats>(offset);
2984 fidl::encoding::Encode::<WlanFullmacRssiStats, D>::encode(
2986 (
2987 <fidl::encoding::UnboundedVector<u64> as fidl::encoding::ValueTypeMarker>::borrow(&self.hist),
2988 ),
2989 encoder, offset, _depth
2990 )
2991 }
2992 }
2993 unsafe impl<
2994 D: fidl::encoding::ResourceDialect,
2995 T0: fidl::encoding::Encode<fidl::encoding::UnboundedVector<u64>, D>,
2996 > fidl::encoding::Encode<WlanFullmacRssiStats, D> for (T0,)
2997 {
2998 #[inline]
2999 unsafe fn encode(
3000 self,
3001 encoder: &mut fidl::encoding::Encoder<'_, D>,
3002 offset: usize,
3003 depth: fidl::encoding::Depth,
3004 ) -> fidl::Result<()> {
3005 encoder.debug_check_bounds::<WlanFullmacRssiStats>(offset);
3006 self.0.encode(encoder, offset + 0, depth)?;
3010 Ok(())
3011 }
3012 }
3013
3014 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for WlanFullmacRssiStats {
3015 #[inline(always)]
3016 fn new_empty() -> Self {
3017 Self { hist: fidl::new_empty!(fidl::encoding::UnboundedVector<u64>, D) }
3018 }
3019
3020 #[inline]
3021 unsafe fn decode(
3022 &mut self,
3023 decoder: &mut fidl::encoding::Decoder<'_, D>,
3024 offset: usize,
3025 _depth: fidl::encoding::Depth,
3026 ) -> fidl::Result<()> {
3027 decoder.debug_check_bounds::<Self>(offset);
3028 fidl::decode!(
3030 fidl::encoding::UnboundedVector<u64>,
3031 D,
3032 &mut self.hist,
3033 decoder,
3034 offset + 0,
3035 _depth
3036 )?;
3037 Ok(())
3038 }
3039 }
3040
3041 impl fidl::encoding::ValueTypeMarker for WlanFullmacSetKeysResp {
3042 type Borrowed<'a> = &'a Self;
3043 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3044 value
3045 }
3046 }
3047
3048 unsafe impl fidl::encoding::TypeMarker for WlanFullmacSetKeysResp {
3049 type Owned = Self;
3050
3051 #[inline(always)]
3052 fn inline_align(_context: fidl::encoding::Context) -> usize {
3053 8
3054 }
3055
3056 #[inline(always)]
3057 fn inline_size(_context: fidl::encoding::Context) -> usize {
3058 16
3059 }
3060 }
3061
3062 unsafe impl<D: fidl::encoding::ResourceDialect>
3063 fidl::encoding::Encode<WlanFullmacSetKeysResp, D> for &WlanFullmacSetKeysResp
3064 {
3065 #[inline]
3066 unsafe fn encode(
3067 self,
3068 encoder: &mut fidl::encoding::Encoder<'_, D>,
3069 offset: usize,
3070 _depth: fidl::encoding::Depth,
3071 ) -> fidl::Result<()> {
3072 encoder.debug_check_bounds::<WlanFullmacSetKeysResp>(offset);
3073 fidl::encoding::Encode::<WlanFullmacSetKeysResp, D>::encode(
3075 (<fidl::encoding::Vector<i32, 4> as fidl::encoding::ValueTypeMarker>::borrow(
3076 &self.statuslist,
3077 ),),
3078 encoder,
3079 offset,
3080 _depth,
3081 )
3082 }
3083 }
3084 unsafe impl<
3085 D: fidl::encoding::ResourceDialect,
3086 T0: fidl::encoding::Encode<fidl::encoding::Vector<i32, 4>, D>,
3087 > fidl::encoding::Encode<WlanFullmacSetKeysResp, D> for (T0,)
3088 {
3089 #[inline]
3090 unsafe fn encode(
3091 self,
3092 encoder: &mut fidl::encoding::Encoder<'_, D>,
3093 offset: usize,
3094 depth: fidl::encoding::Depth,
3095 ) -> fidl::Result<()> {
3096 encoder.debug_check_bounds::<WlanFullmacSetKeysResp>(offset);
3097 self.0.encode(encoder, offset + 0, depth)?;
3101 Ok(())
3102 }
3103 }
3104
3105 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
3106 for WlanFullmacSetKeysResp
3107 {
3108 #[inline(always)]
3109 fn new_empty() -> Self {
3110 Self { statuslist: fidl::new_empty!(fidl::encoding::Vector<i32, 4>, D) }
3111 }
3112
3113 #[inline]
3114 unsafe fn decode(
3115 &mut self,
3116 decoder: &mut fidl::encoding::Decoder<'_, D>,
3117 offset: usize,
3118 _depth: fidl::encoding::Depth,
3119 ) -> fidl::Result<()> {
3120 decoder.debug_check_bounds::<Self>(offset);
3121 fidl::decode!(fidl::encoding::Vector<i32, 4>, D, &mut self.statuslist, decoder, offset + 0, _depth)?;
3123 Ok(())
3124 }
3125 }
3126
3127 impl fidl::encoding::ValueTypeMarker for WlanFullmacSignalReportIndication {
3128 type Borrowed<'a> = &'a Self;
3129 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3130 value
3131 }
3132 }
3133
3134 unsafe impl fidl::encoding::TypeMarker for WlanFullmacSignalReportIndication {
3135 type Owned = Self;
3136
3137 #[inline(always)]
3138 fn inline_align(_context: fidl::encoding::Context) -> usize {
3139 4
3140 }
3141
3142 #[inline(always)]
3143 fn inline_size(_context: fidl::encoding::Context) -> usize {
3144 8
3145 }
3146 }
3147
3148 unsafe impl<D: fidl::encoding::ResourceDialect>
3149 fidl::encoding::Encode<WlanFullmacSignalReportIndication, D>
3150 for &WlanFullmacSignalReportIndication
3151 {
3152 #[inline]
3153 unsafe fn encode(
3154 self,
3155 encoder: &mut fidl::encoding::Encoder<'_, D>,
3156 offset: usize,
3157 _depth: fidl::encoding::Depth,
3158 ) -> fidl::Result<()> {
3159 encoder.debug_check_bounds::<WlanFullmacSignalReportIndication>(offset);
3160 unsafe {
3161 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
3163 (buf_ptr as *mut WlanFullmacSignalReportIndication)
3164 .write_unaligned((self as *const WlanFullmacSignalReportIndication).read());
3165 let padding_ptr = buf_ptr.offset(0) as *mut u32;
3168 let padding_mask = 0xffff0000u32;
3169 padding_ptr.write_unaligned(padding_ptr.read_unaligned() & !padding_mask);
3170 }
3171 Ok(())
3172 }
3173 }
3174 unsafe impl<
3175 D: fidl::encoding::ResourceDialect,
3176 T0: fidl::encoding::Encode<i8, D>,
3177 T1: fidl::encoding::Encode<i8, D>,
3178 T2: fidl::encoding::Encode<u32, D>,
3179 > fidl::encoding::Encode<WlanFullmacSignalReportIndication, D> for (T0, T1, T2)
3180 {
3181 #[inline]
3182 unsafe fn encode(
3183 self,
3184 encoder: &mut fidl::encoding::Encoder<'_, D>,
3185 offset: usize,
3186 depth: fidl::encoding::Depth,
3187 ) -> fidl::Result<()> {
3188 encoder.debug_check_bounds::<WlanFullmacSignalReportIndication>(offset);
3189 unsafe {
3192 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(0);
3193 (ptr as *mut u32).write_unaligned(0);
3194 }
3195 self.0.encode(encoder, offset + 0, depth)?;
3197 self.1.encode(encoder, offset + 1, depth)?;
3198 self.2.encode(encoder, offset + 4, depth)?;
3199 Ok(())
3200 }
3201 }
3202
3203 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
3204 for WlanFullmacSignalReportIndication
3205 {
3206 #[inline(always)]
3207 fn new_empty() -> Self {
3208 Self {
3209 rssi_dbm: fidl::new_empty!(i8, D),
3210 snr_db: fidl::new_empty!(i8, D),
3211 tx_rate_500kbps: fidl::new_empty!(u32, D),
3212 }
3213 }
3214
3215 #[inline]
3216 unsafe fn decode(
3217 &mut self,
3218 decoder: &mut fidl::encoding::Decoder<'_, D>,
3219 offset: usize,
3220 _depth: fidl::encoding::Depth,
3221 ) -> fidl::Result<()> {
3222 decoder.debug_check_bounds::<Self>(offset);
3223 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
3224 let ptr = unsafe { buf_ptr.offset(0) };
3226 let padval = unsafe { (ptr as *const u32).read_unaligned() };
3227 let mask = 0xffff0000u32;
3228 let maskedval = padval & mask;
3229 if maskedval != 0 {
3230 return Err(fidl::Error::NonZeroPadding {
3231 padding_start: offset + 0 + ((mask as u64).trailing_zeros() / 8) as usize,
3232 });
3233 }
3234 unsafe {
3236 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 8);
3237 }
3238 Ok(())
3239 }
3240 }
3241
3242 impl BandCapability {
3243 #[inline(always)]
3244 fn max_ordinal_present(&self) -> u64 {
3245 if let Some(_) = self.primary_channels {
3246 return 5;
3247 }
3248 if let Some(_) = self.vht_caps {
3249 return 4;
3250 }
3251 if let Some(_) = self.ht_caps {
3252 return 3;
3253 }
3254 if let Some(_) = self.basic_rates {
3255 return 2;
3256 }
3257 if let Some(_) = self.band {
3258 return 1;
3259 }
3260 0
3261 }
3262 }
3263
3264 impl fidl::encoding::ValueTypeMarker for BandCapability {
3265 type Borrowed<'a> = &'a Self;
3266 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3267 value
3268 }
3269 }
3270
3271 unsafe impl fidl::encoding::TypeMarker for BandCapability {
3272 type Owned = Self;
3273
3274 #[inline(always)]
3275 fn inline_align(_context: fidl::encoding::Context) -> usize {
3276 8
3277 }
3278
3279 #[inline(always)]
3280 fn inline_size(_context: fidl::encoding::Context) -> usize {
3281 16
3282 }
3283 }
3284
3285 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<BandCapability, D>
3286 for &BandCapability
3287 {
3288 unsafe fn encode(
3289 self,
3290 encoder: &mut fidl::encoding::Encoder<'_, D>,
3291 offset: usize,
3292 mut depth: fidl::encoding::Depth,
3293 ) -> fidl::Result<()> {
3294 encoder.debug_check_bounds::<BandCapability>(offset);
3295 let max_ordinal: u64 = self.max_ordinal_present();
3297 encoder.write_num(max_ordinal, offset);
3298 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
3299 if max_ordinal == 0 {
3301 return Ok(());
3302 }
3303 depth.increment()?;
3304 let envelope_size = 8;
3305 let bytes_len = max_ordinal as usize * envelope_size;
3306 #[allow(unused_variables)]
3307 let offset = encoder.out_of_line_offset(bytes_len);
3308 let mut _prev_end_offset: usize = 0;
3309 if 1 > max_ordinal {
3310 return Ok(());
3311 }
3312
3313 let cur_offset: usize = (1 - 1) * envelope_size;
3316
3317 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3319
3320 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_ieee80211_common::WlanBand, D>(
3325 self.band.as_ref().map(<fidl_fuchsia_wlan_ieee80211_common::WlanBand as fidl::encoding::ValueTypeMarker>::borrow),
3326 encoder, offset + cur_offset, depth
3327 )?;
3328
3329 _prev_end_offset = cur_offset + envelope_size;
3330 if 2 > max_ordinal {
3331 return Ok(());
3332 }
3333
3334 let cur_offset: usize = (2 - 1) * envelope_size;
3337
3338 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3340
3341 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<u8, 12>, D>(
3346 self.basic_rates.as_ref().map(
3347 <fidl::encoding::Vector<u8, 12> as fidl::encoding::ValueTypeMarker>::borrow,
3348 ),
3349 encoder,
3350 offset + cur_offset,
3351 depth,
3352 )?;
3353
3354 _prev_end_offset = cur_offset + envelope_size;
3355 if 3 > max_ordinal {
3356 return Ok(());
3357 }
3358
3359 let cur_offset: usize = (3 - 1) * envelope_size;
3362
3363 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3365
3366 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_ieee80211_common::HtCapabilities, D>(
3371 self.ht_caps.as_ref().map(<fidl_fuchsia_wlan_ieee80211_common::HtCapabilities as fidl::encoding::ValueTypeMarker>::borrow),
3372 encoder, offset + cur_offset, depth
3373 )?;
3374
3375 _prev_end_offset = cur_offset + envelope_size;
3376 if 4 > max_ordinal {
3377 return Ok(());
3378 }
3379
3380 let cur_offset: usize = (4 - 1) * envelope_size;
3383
3384 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3386
3387 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_ieee80211_common::VhtCapabilities, D>(
3392 self.vht_caps.as_ref().map(<fidl_fuchsia_wlan_ieee80211_common::VhtCapabilities as fidl::encoding::ValueTypeMarker>::borrow),
3393 encoder, offset + cur_offset, depth
3394 )?;
3395
3396 _prev_end_offset = cur_offset + envelope_size;
3397 if 5 > max_ordinal {
3398 return Ok(());
3399 }
3400
3401 let cur_offset: usize = (5 - 1) * envelope_size;
3404
3405 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3407
3408 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<fidl_fuchsia_wlan_ieee80211_common::ChannelNumber, 256>, D>(
3413 self.primary_channels.as_ref().map(<fidl::encoding::Vector<fidl_fuchsia_wlan_ieee80211_common::ChannelNumber, 256> as fidl::encoding::ValueTypeMarker>::borrow),
3414 encoder, offset + cur_offset, depth
3415 )?;
3416
3417 _prev_end_offset = cur_offset + envelope_size;
3418
3419 Ok(())
3420 }
3421 }
3422
3423 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for BandCapability {
3424 #[inline(always)]
3425 fn new_empty() -> Self {
3426 Self::default()
3427 }
3428
3429 unsafe fn decode(
3430 &mut self,
3431 decoder: &mut fidl::encoding::Decoder<'_, D>,
3432 offset: usize,
3433 mut depth: fidl::encoding::Depth,
3434 ) -> fidl::Result<()> {
3435 decoder.debug_check_bounds::<Self>(offset);
3436 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
3437 None => return Err(fidl::Error::NotNullable),
3438 Some(len) => len,
3439 };
3440 if len == 0 {
3442 return Ok(());
3443 };
3444 depth.increment()?;
3445 let envelope_size = 8;
3446 let bytes_len = len * envelope_size;
3447 let offset = decoder.out_of_line_offset(bytes_len)?;
3448 let mut _next_ordinal_to_read = 0;
3450 let mut next_offset = offset;
3451 let end_offset = offset + bytes_len;
3452 _next_ordinal_to_read += 1;
3453 if next_offset >= end_offset {
3454 return Ok(());
3455 }
3456
3457 while _next_ordinal_to_read < 1 {
3459 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3460 _next_ordinal_to_read += 1;
3461 next_offset += envelope_size;
3462 }
3463
3464 let next_out_of_line = decoder.next_out_of_line();
3465 let handles_before = decoder.remaining_handles();
3466 if let Some((inlined, num_bytes, num_handles)) =
3467 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3468 {
3469 let member_inline_size = <fidl_fuchsia_wlan_ieee80211_common::WlanBand as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3470 if inlined != (member_inline_size <= 4) {
3471 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3472 }
3473 let inner_offset;
3474 let mut inner_depth = depth.clone();
3475 if inlined {
3476 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3477 inner_offset = next_offset;
3478 } else {
3479 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3480 inner_depth.increment()?;
3481 }
3482 let val_ref = self.band.get_or_insert_with(|| {
3483 fidl::new_empty!(fidl_fuchsia_wlan_ieee80211_common::WlanBand, D)
3484 });
3485 fidl::decode!(
3486 fidl_fuchsia_wlan_ieee80211_common::WlanBand,
3487 D,
3488 val_ref,
3489 decoder,
3490 inner_offset,
3491 inner_depth
3492 )?;
3493 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3494 {
3495 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3496 }
3497 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3498 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3499 }
3500 }
3501
3502 next_offset += envelope_size;
3503 _next_ordinal_to_read += 1;
3504 if next_offset >= end_offset {
3505 return Ok(());
3506 }
3507
3508 while _next_ordinal_to_read < 2 {
3510 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3511 _next_ordinal_to_read += 1;
3512 next_offset += envelope_size;
3513 }
3514
3515 let next_out_of_line = decoder.next_out_of_line();
3516 let handles_before = decoder.remaining_handles();
3517 if let Some((inlined, num_bytes, num_handles)) =
3518 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3519 {
3520 let member_inline_size =
3521 <fidl::encoding::Vector<u8, 12> as fidl::encoding::TypeMarker>::inline_size(
3522 decoder.context,
3523 );
3524 if inlined != (member_inline_size <= 4) {
3525 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3526 }
3527 let inner_offset;
3528 let mut inner_depth = depth.clone();
3529 if inlined {
3530 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3531 inner_offset = next_offset;
3532 } else {
3533 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3534 inner_depth.increment()?;
3535 }
3536 let val_ref = self
3537 .basic_rates
3538 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<u8, 12>, D));
3539 fidl::decode!(fidl::encoding::Vector<u8, 12>, D, val_ref, decoder, inner_offset, inner_depth)?;
3540 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3541 {
3542 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3543 }
3544 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3545 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3546 }
3547 }
3548
3549 next_offset += envelope_size;
3550 _next_ordinal_to_read += 1;
3551 if next_offset >= end_offset {
3552 return Ok(());
3553 }
3554
3555 while _next_ordinal_to_read < 3 {
3557 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3558 _next_ordinal_to_read += 1;
3559 next_offset += envelope_size;
3560 }
3561
3562 let next_out_of_line = decoder.next_out_of_line();
3563 let handles_before = decoder.remaining_handles();
3564 if let Some((inlined, num_bytes, num_handles)) =
3565 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3566 {
3567 let member_inline_size = <fidl_fuchsia_wlan_ieee80211_common::HtCapabilities as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3568 if inlined != (member_inline_size <= 4) {
3569 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3570 }
3571 let inner_offset;
3572 let mut inner_depth = depth.clone();
3573 if inlined {
3574 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3575 inner_offset = next_offset;
3576 } else {
3577 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3578 inner_depth.increment()?;
3579 }
3580 let val_ref = self.ht_caps.get_or_insert_with(|| {
3581 fidl::new_empty!(fidl_fuchsia_wlan_ieee80211_common::HtCapabilities, D)
3582 });
3583 fidl::decode!(
3584 fidl_fuchsia_wlan_ieee80211_common::HtCapabilities,
3585 D,
3586 val_ref,
3587 decoder,
3588 inner_offset,
3589 inner_depth
3590 )?;
3591 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3592 {
3593 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3594 }
3595 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3596 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3597 }
3598 }
3599
3600 next_offset += envelope_size;
3601 _next_ordinal_to_read += 1;
3602 if next_offset >= end_offset {
3603 return Ok(());
3604 }
3605
3606 while _next_ordinal_to_read < 4 {
3608 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3609 _next_ordinal_to_read += 1;
3610 next_offset += envelope_size;
3611 }
3612
3613 let next_out_of_line = decoder.next_out_of_line();
3614 let handles_before = decoder.remaining_handles();
3615 if let Some((inlined, num_bytes, num_handles)) =
3616 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3617 {
3618 let member_inline_size = <fidl_fuchsia_wlan_ieee80211_common::VhtCapabilities as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3619 if inlined != (member_inline_size <= 4) {
3620 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3621 }
3622 let inner_offset;
3623 let mut inner_depth = depth.clone();
3624 if inlined {
3625 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3626 inner_offset = next_offset;
3627 } else {
3628 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3629 inner_depth.increment()?;
3630 }
3631 let val_ref = self.vht_caps.get_or_insert_with(|| {
3632 fidl::new_empty!(fidl_fuchsia_wlan_ieee80211_common::VhtCapabilities, D)
3633 });
3634 fidl::decode!(
3635 fidl_fuchsia_wlan_ieee80211_common::VhtCapabilities,
3636 D,
3637 val_ref,
3638 decoder,
3639 inner_offset,
3640 inner_depth
3641 )?;
3642 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3643 {
3644 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3645 }
3646 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3647 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3648 }
3649 }
3650
3651 next_offset += envelope_size;
3652 _next_ordinal_to_read += 1;
3653 if next_offset >= end_offset {
3654 return Ok(());
3655 }
3656
3657 while _next_ordinal_to_read < 5 {
3659 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3660 _next_ordinal_to_read += 1;
3661 next_offset += envelope_size;
3662 }
3663
3664 let next_out_of_line = decoder.next_out_of_line();
3665 let handles_before = decoder.remaining_handles();
3666 if let Some((inlined, num_bytes, num_handles)) =
3667 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3668 {
3669 let member_inline_size = <fidl::encoding::Vector<
3670 fidl_fuchsia_wlan_ieee80211_common::ChannelNumber,
3671 256,
3672 > as fidl::encoding::TypeMarker>::inline_size(
3673 decoder.context
3674 );
3675 if inlined != (member_inline_size <= 4) {
3676 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3677 }
3678 let inner_offset;
3679 let mut inner_depth = depth.clone();
3680 if inlined {
3681 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3682 inner_offset = next_offset;
3683 } else {
3684 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3685 inner_depth.increment()?;
3686 }
3687 let val_ref =
3688 self.primary_channels.get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<fidl_fuchsia_wlan_ieee80211_common::ChannelNumber, 256>, D));
3689 fidl::decode!(fidl::encoding::Vector<fidl_fuchsia_wlan_ieee80211_common::ChannelNumber, 256>, D, val_ref, decoder, inner_offset, inner_depth)?;
3690 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3691 {
3692 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3693 }
3694 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3695 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3696 }
3697 }
3698
3699 next_offset += envelope_size;
3700
3701 while next_offset < end_offset {
3703 _next_ordinal_to_read += 1;
3704 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3705 next_offset += envelope_size;
3706 }
3707
3708 Ok(())
3709 }
3710 }
3711
3712 impl SaeFrame {
3713 #[inline(always)]
3714 fn max_ordinal_present(&self) -> u64 {
3715 if let Some(_) = self.sae_fields {
3716 return 4;
3717 }
3718 if let Some(_) = self.seq_num {
3719 return 3;
3720 }
3721 if let Some(_) = self.status_code {
3722 return 2;
3723 }
3724 if let Some(_) = self.peer_sta_address {
3725 return 1;
3726 }
3727 0
3728 }
3729 }
3730
3731 impl fidl::encoding::ValueTypeMarker for SaeFrame {
3732 type Borrowed<'a> = &'a Self;
3733 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3734 value
3735 }
3736 }
3737
3738 unsafe impl fidl::encoding::TypeMarker for SaeFrame {
3739 type Owned = Self;
3740
3741 #[inline(always)]
3742 fn inline_align(_context: fidl::encoding::Context) -> usize {
3743 8
3744 }
3745
3746 #[inline(always)]
3747 fn inline_size(_context: fidl::encoding::Context) -> usize {
3748 16
3749 }
3750 }
3751
3752 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<SaeFrame, D> for &SaeFrame {
3753 unsafe fn encode(
3754 self,
3755 encoder: &mut fidl::encoding::Encoder<'_, D>,
3756 offset: usize,
3757 mut depth: fidl::encoding::Depth,
3758 ) -> fidl::Result<()> {
3759 encoder.debug_check_bounds::<SaeFrame>(offset);
3760 let max_ordinal: u64 = self.max_ordinal_present();
3762 encoder.write_num(max_ordinal, offset);
3763 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
3764 if max_ordinal == 0 {
3766 return Ok(());
3767 }
3768 depth.increment()?;
3769 let envelope_size = 8;
3770 let bytes_len = max_ordinal as usize * envelope_size;
3771 #[allow(unused_variables)]
3772 let offset = encoder.out_of_line_offset(bytes_len);
3773 let mut _prev_end_offset: usize = 0;
3774 if 1 > max_ordinal {
3775 return Ok(());
3776 }
3777
3778 let cur_offset: usize = (1 - 1) * envelope_size;
3781
3782 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3784
3785 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
3790 self.peer_sta_address
3791 .as_ref()
3792 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
3793 encoder,
3794 offset + cur_offset,
3795 depth,
3796 )?;
3797
3798 _prev_end_offset = cur_offset + envelope_size;
3799 if 2 > max_ordinal {
3800 return Ok(());
3801 }
3802
3803 let cur_offset: usize = (2 - 1) * envelope_size;
3806
3807 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3809
3810 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_ieee80211_common::StatusCode, D>(
3815 self.status_code.as_ref().map(<fidl_fuchsia_wlan_ieee80211_common::StatusCode as fidl::encoding::ValueTypeMarker>::borrow),
3816 encoder, offset + cur_offset, depth
3817 )?;
3818
3819 _prev_end_offset = cur_offset + envelope_size;
3820 if 3 > max_ordinal {
3821 return Ok(());
3822 }
3823
3824 let cur_offset: usize = (3 - 1) * envelope_size;
3827
3828 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3830
3831 fidl::encoding::encode_in_envelope_optional::<u16, D>(
3836 self.seq_num.as_ref().map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
3837 encoder,
3838 offset + cur_offset,
3839 depth,
3840 )?;
3841
3842 _prev_end_offset = cur_offset + envelope_size;
3843 if 4 > max_ordinal {
3844 return Ok(());
3845 }
3846
3847 let cur_offset: usize = (4 - 1) * envelope_size;
3850
3851 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3853
3854 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<u8>, D>(
3859 self.sae_fields.as_ref().map(<fidl::encoding::UnboundedVector<u8> as fidl::encoding::ValueTypeMarker>::borrow),
3860 encoder, offset + cur_offset, depth
3861 )?;
3862
3863 _prev_end_offset = cur_offset + envelope_size;
3864
3865 Ok(())
3866 }
3867 }
3868
3869 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for SaeFrame {
3870 #[inline(always)]
3871 fn new_empty() -> Self {
3872 Self::default()
3873 }
3874
3875 unsafe fn decode(
3876 &mut self,
3877 decoder: &mut fidl::encoding::Decoder<'_, D>,
3878 offset: usize,
3879 mut depth: fidl::encoding::Depth,
3880 ) -> fidl::Result<()> {
3881 decoder.debug_check_bounds::<Self>(offset);
3882 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
3883 None => return Err(fidl::Error::NotNullable),
3884 Some(len) => len,
3885 };
3886 if len == 0 {
3888 return Ok(());
3889 };
3890 depth.increment()?;
3891 let envelope_size = 8;
3892 let bytes_len = len * envelope_size;
3893 let offset = decoder.out_of_line_offset(bytes_len)?;
3894 let mut _next_ordinal_to_read = 0;
3896 let mut next_offset = offset;
3897 let end_offset = offset + bytes_len;
3898 _next_ordinal_to_read += 1;
3899 if next_offset >= end_offset {
3900 return Ok(());
3901 }
3902
3903 while _next_ordinal_to_read < 1 {
3905 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3906 _next_ordinal_to_read += 1;
3907 next_offset += envelope_size;
3908 }
3909
3910 let next_out_of_line = decoder.next_out_of_line();
3911 let handles_before = decoder.remaining_handles();
3912 if let Some((inlined, num_bytes, num_handles)) =
3913 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3914 {
3915 let member_inline_size =
3916 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
3917 decoder.context,
3918 );
3919 if inlined != (member_inline_size <= 4) {
3920 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3921 }
3922 let inner_offset;
3923 let mut inner_depth = depth.clone();
3924 if inlined {
3925 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3926 inner_offset = next_offset;
3927 } else {
3928 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3929 inner_depth.increment()?;
3930 }
3931 let val_ref = self
3932 .peer_sta_address
3933 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
3934 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
3935 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3936 {
3937 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3938 }
3939 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3940 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3941 }
3942 }
3943
3944 next_offset += envelope_size;
3945 _next_ordinal_to_read += 1;
3946 if next_offset >= end_offset {
3947 return Ok(());
3948 }
3949
3950 while _next_ordinal_to_read < 2 {
3952 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3953 _next_ordinal_to_read += 1;
3954 next_offset += envelope_size;
3955 }
3956
3957 let next_out_of_line = decoder.next_out_of_line();
3958 let handles_before = decoder.remaining_handles();
3959 if let Some((inlined, num_bytes, num_handles)) =
3960 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3961 {
3962 let member_inline_size = <fidl_fuchsia_wlan_ieee80211_common::StatusCode as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3963 if inlined != (member_inline_size <= 4) {
3964 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3965 }
3966 let inner_offset;
3967 let mut inner_depth = depth.clone();
3968 if inlined {
3969 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3970 inner_offset = next_offset;
3971 } else {
3972 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3973 inner_depth.increment()?;
3974 }
3975 let val_ref = self.status_code.get_or_insert_with(|| {
3976 fidl::new_empty!(fidl_fuchsia_wlan_ieee80211_common::StatusCode, D)
3977 });
3978 fidl::decode!(
3979 fidl_fuchsia_wlan_ieee80211_common::StatusCode,
3980 D,
3981 val_ref,
3982 decoder,
3983 inner_offset,
3984 inner_depth
3985 )?;
3986 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3987 {
3988 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3989 }
3990 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3991 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3992 }
3993 }
3994
3995 next_offset += envelope_size;
3996 _next_ordinal_to_read += 1;
3997 if next_offset >= end_offset {
3998 return Ok(());
3999 }
4000
4001 while _next_ordinal_to_read < 3 {
4003 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4004 _next_ordinal_to_read += 1;
4005 next_offset += envelope_size;
4006 }
4007
4008 let next_out_of_line = decoder.next_out_of_line();
4009 let handles_before = decoder.remaining_handles();
4010 if let Some((inlined, num_bytes, num_handles)) =
4011 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4012 {
4013 let member_inline_size =
4014 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4015 if inlined != (member_inline_size <= 4) {
4016 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4017 }
4018 let inner_offset;
4019 let mut inner_depth = depth.clone();
4020 if inlined {
4021 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4022 inner_offset = next_offset;
4023 } else {
4024 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4025 inner_depth.increment()?;
4026 }
4027 let val_ref = self.seq_num.get_or_insert_with(|| fidl::new_empty!(u16, D));
4028 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
4029 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4030 {
4031 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4032 }
4033 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4034 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4035 }
4036 }
4037
4038 next_offset += envelope_size;
4039 _next_ordinal_to_read += 1;
4040 if next_offset >= end_offset {
4041 return Ok(());
4042 }
4043
4044 while _next_ordinal_to_read < 4 {
4046 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4047 _next_ordinal_to_read += 1;
4048 next_offset += envelope_size;
4049 }
4050
4051 let next_out_of_line = decoder.next_out_of_line();
4052 let handles_before = decoder.remaining_handles();
4053 if let Some((inlined, num_bytes, num_handles)) =
4054 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4055 {
4056 let member_inline_size = <fidl::encoding::UnboundedVector<u8> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4057 if inlined != (member_inline_size <= 4) {
4058 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4059 }
4060 let inner_offset;
4061 let mut inner_depth = depth.clone();
4062 if inlined {
4063 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4064 inner_offset = next_offset;
4065 } else {
4066 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4067 inner_depth.increment()?;
4068 }
4069 let val_ref = self.sae_fields.get_or_insert_with(|| {
4070 fidl::new_empty!(fidl::encoding::UnboundedVector<u8>, D)
4071 });
4072 fidl::decode!(
4073 fidl::encoding::UnboundedVector<u8>,
4074 D,
4075 val_ref,
4076 decoder,
4077 inner_offset,
4078 inner_depth
4079 )?;
4080 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4081 {
4082 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4083 }
4084 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4085 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4086 }
4087 }
4088
4089 next_offset += envelope_size;
4090
4091 while next_offset < end_offset {
4093 _next_ordinal_to_read += 1;
4094 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4095 next_offset += envelope_size;
4096 }
4097
4098 Ok(())
4099 }
4100 }
4101
4102 impl WlanFullmacImplAssocRespRequest {
4103 #[inline(always)]
4104 fn max_ordinal_present(&self) -> u64 {
4105 if let Some(_) = self.association_id {
4106 return 3;
4107 }
4108 if let Some(_) = self.result_code {
4109 return 2;
4110 }
4111 if let Some(_) = self.peer_sta_address {
4112 return 1;
4113 }
4114 0
4115 }
4116 }
4117
4118 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplAssocRespRequest {
4119 type Borrowed<'a> = &'a Self;
4120 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4121 value
4122 }
4123 }
4124
4125 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplAssocRespRequest {
4126 type Owned = Self;
4127
4128 #[inline(always)]
4129 fn inline_align(_context: fidl::encoding::Context) -> usize {
4130 8
4131 }
4132
4133 #[inline(always)]
4134 fn inline_size(_context: fidl::encoding::Context) -> usize {
4135 16
4136 }
4137 }
4138
4139 unsafe impl<D: fidl::encoding::ResourceDialect>
4140 fidl::encoding::Encode<WlanFullmacImplAssocRespRequest, D>
4141 for &WlanFullmacImplAssocRespRequest
4142 {
4143 unsafe fn encode(
4144 self,
4145 encoder: &mut fidl::encoding::Encoder<'_, D>,
4146 offset: usize,
4147 mut depth: fidl::encoding::Depth,
4148 ) -> fidl::Result<()> {
4149 encoder.debug_check_bounds::<WlanFullmacImplAssocRespRequest>(offset);
4150 let max_ordinal: u64 = self.max_ordinal_present();
4152 encoder.write_num(max_ordinal, offset);
4153 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
4154 if max_ordinal == 0 {
4156 return Ok(());
4157 }
4158 depth.increment()?;
4159 let envelope_size = 8;
4160 let bytes_len = max_ordinal as usize * envelope_size;
4161 #[allow(unused_variables)]
4162 let offset = encoder.out_of_line_offset(bytes_len);
4163 let mut _prev_end_offset: usize = 0;
4164 if 1 > max_ordinal {
4165 return Ok(());
4166 }
4167
4168 let cur_offset: usize = (1 - 1) * envelope_size;
4171
4172 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4174
4175 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
4180 self.peer_sta_address
4181 .as_ref()
4182 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
4183 encoder,
4184 offset + cur_offset,
4185 depth,
4186 )?;
4187
4188 _prev_end_offset = cur_offset + envelope_size;
4189 if 2 > max_ordinal {
4190 return Ok(());
4191 }
4192
4193 let cur_offset: usize = (2 - 1) * envelope_size;
4196
4197 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4199
4200 fidl::encoding::encode_in_envelope_optional::<WlanAssocResult, D>(
4205 self.result_code
4206 .as_ref()
4207 .map(<WlanAssocResult as fidl::encoding::ValueTypeMarker>::borrow),
4208 encoder,
4209 offset + cur_offset,
4210 depth,
4211 )?;
4212
4213 _prev_end_offset = cur_offset + envelope_size;
4214 if 3 > max_ordinal {
4215 return Ok(());
4216 }
4217
4218 let cur_offset: usize = (3 - 1) * envelope_size;
4221
4222 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4224
4225 fidl::encoding::encode_in_envelope_optional::<u16, D>(
4230 self.association_id.as_ref().map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
4231 encoder,
4232 offset + cur_offset,
4233 depth,
4234 )?;
4235
4236 _prev_end_offset = cur_offset + envelope_size;
4237
4238 Ok(())
4239 }
4240 }
4241
4242 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
4243 for WlanFullmacImplAssocRespRequest
4244 {
4245 #[inline(always)]
4246 fn new_empty() -> Self {
4247 Self::default()
4248 }
4249
4250 unsafe fn decode(
4251 &mut self,
4252 decoder: &mut fidl::encoding::Decoder<'_, D>,
4253 offset: usize,
4254 mut depth: fidl::encoding::Depth,
4255 ) -> fidl::Result<()> {
4256 decoder.debug_check_bounds::<Self>(offset);
4257 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
4258 None => return Err(fidl::Error::NotNullable),
4259 Some(len) => len,
4260 };
4261 if len == 0 {
4263 return Ok(());
4264 };
4265 depth.increment()?;
4266 let envelope_size = 8;
4267 let bytes_len = len * envelope_size;
4268 let offset = decoder.out_of_line_offset(bytes_len)?;
4269 let mut _next_ordinal_to_read = 0;
4271 let mut next_offset = offset;
4272 let end_offset = offset + bytes_len;
4273 _next_ordinal_to_read += 1;
4274 if next_offset >= end_offset {
4275 return Ok(());
4276 }
4277
4278 while _next_ordinal_to_read < 1 {
4280 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4281 _next_ordinal_to_read += 1;
4282 next_offset += envelope_size;
4283 }
4284
4285 let next_out_of_line = decoder.next_out_of_line();
4286 let handles_before = decoder.remaining_handles();
4287 if let Some((inlined, num_bytes, num_handles)) =
4288 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4289 {
4290 let member_inline_size =
4291 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
4292 decoder.context,
4293 );
4294 if inlined != (member_inline_size <= 4) {
4295 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4296 }
4297 let inner_offset;
4298 let mut inner_depth = depth.clone();
4299 if inlined {
4300 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4301 inner_offset = next_offset;
4302 } else {
4303 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4304 inner_depth.increment()?;
4305 }
4306 let val_ref = self
4307 .peer_sta_address
4308 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
4309 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
4310 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4311 {
4312 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4313 }
4314 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4315 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4316 }
4317 }
4318
4319 next_offset += envelope_size;
4320 _next_ordinal_to_read += 1;
4321 if next_offset >= end_offset {
4322 return Ok(());
4323 }
4324
4325 while _next_ordinal_to_read < 2 {
4327 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4328 _next_ordinal_to_read += 1;
4329 next_offset += envelope_size;
4330 }
4331
4332 let next_out_of_line = decoder.next_out_of_line();
4333 let handles_before = decoder.remaining_handles();
4334 if let Some((inlined, num_bytes, num_handles)) =
4335 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4336 {
4337 let member_inline_size =
4338 <WlanAssocResult as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4339 if inlined != (member_inline_size <= 4) {
4340 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4341 }
4342 let inner_offset;
4343 let mut inner_depth = depth.clone();
4344 if inlined {
4345 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4346 inner_offset = next_offset;
4347 } else {
4348 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4349 inner_depth.increment()?;
4350 }
4351 let val_ref =
4352 self.result_code.get_or_insert_with(|| fidl::new_empty!(WlanAssocResult, D));
4353 fidl::decode!(WlanAssocResult, D, val_ref, decoder, inner_offset, inner_depth)?;
4354 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4355 {
4356 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4357 }
4358 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4359 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4360 }
4361 }
4362
4363 next_offset += envelope_size;
4364 _next_ordinal_to_read += 1;
4365 if next_offset >= end_offset {
4366 return Ok(());
4367 }
4368
4369 while _next_ordinal_to_read < 3 {
4371 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4372 _next_ordinal_to_read += 1;
4373 next_offset += envelope_size;
4374 }
4375
4376 let next_out_of_line = decoder.next_out_of_line();
4377 let handles_before = decoder.remaining_handles();
4378 if let Some((inlined, num_bytes, num_handles)) =
4379 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4380 {
4381 let member_inline_size =
4382 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4383 if inlined != (member_inline_size <= 4) {
4384 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4385 }
4386 let inner_offset;
4387 let mut inner_depth = depth.clone();
4388 if inlined {
4389 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4390 inner_offset = next_offset;
4391 } else {
4392 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4393 inner_depth.increment()?;
4394 }
4395 let val_ref = self.association_id.get_or_insert_with(|| fidl::new_empty!(u16, D));
4396 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
4397 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4398 {
4399 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4400 }
4401 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4402 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4403 }
4404 }
4405
4406 next_offset += envelope_size;
4407
4408 while next_offset < end_offset {
4410 _next_ordinal_to_read += 1;
4411 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4412 next_offset += envelope_size;
4413 }
4414
4415 Ok(())
4416 }
4417 }
4418
4419 impl WlanFullmacImplAuthRespRequest {
4420 #[inline(always)]
4421 fn max_ordinal_present(&self) -> u64 {
4422 if let Some(_) = self.result_code {
4423 return 2;
4424 }
4425 if let Some(_) = self.peer_sta_address {
4426 return 1;
4427 }
4428 0
4429 }
4430 }
4431
4432 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplAuthRespRequest {
4433 type Borrowed<'a> = &'a Self;
4434 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4435 value
4436 }
4437 }
4438
4439 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplAuthRespRequest {
4440 type Owned = Self;
4441
4442 #[inline(always)]
4443 fn inline_align(_context: fidl::encoding::Context) -> usize {
4444 8
4445 }
4446
4447 #[inline(always)]
4448 fn inline_size(_context: fidl::encoding::Context) -> usize {
4449 16
4450 }
4451 }
4452
4453 unsafe impl<D: fidl::encoding::ResourceDialect>
4454 fidl::encoding::Encode<WlanFullmacImplAuthRespRequest, D>
4455 for &WlanFullmacImplAuthRespRequest
4456 {
4457 unsafe fn encode(
4458 self,
4459 encoder: &mut fidl::encoding::Encoder<'_, D>,
4460 offset: usize,
4461 mut depth: fidl::encoding::Depth,
4462 ) -> fidl::Result<()> {
4463 encoder.debug_check_bounds::<WlanFullmacImplAuthRespRequest>(offset);
4464 let max_ordinal: u64 = self.max_ordinal_present();
4466 encoder.write_num(max_ordinal, offset);
4467 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
4468 if max_ordinal == 0 {
4470 return Ok(());
4471 }
4472 depth.increment()?;
4473 let envelope_size = 8;
4474 let bytes_len = max_ordinal as usize * envelope_size;
4475 #[allow(unused_variables)]
4476 let offset = encoder.out_of_line_offset(bytes_len);
4477 let mut _prev_end_offset: usize = 0;
4478 if 1 > max_ordinal {
4479 return Ok(());
4480 }
4481
4482 let cur_offset: usize = (1 - 1) * envelope_size;
4485
4486 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4488
4489 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
4494 self.peer_sta_address
4495 .as_ref()
4496 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
4497 encoder,
4498 offset + cur_offset,
4499 depth,
4500 )?;
4501
4502 _prev_end_offset = cur_offset + envelope_size;
4503 if 2 > max_ordinal {
4504 return Ok(());
4505 }
4506
4507 let cur_offset: usize = (2 - 1) * envelope_size;
4510
4511 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4513
4514 fidl::encoding::encode_in_envelope_optional::<WlanAuthResult, D>(
4519 self.result_code
4520 .as_ref()
4521 .map(<WlanAuthResult as fidl::encoding::ValueTypeMarker>::borrow),
4522 encoder,
4523 offset + cur_offset,
4524 depth,
4525 )?;
4526
4527 _prev_end_offset = cur_offset + envelope_size;
4528
4529 Ok(())
4530 }
4531 }
4532
4533 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
4534 for WlanFullmacImplAuthRespRequest
4535 {
4536 #[inline(always)]
4537 fn new_empty() -> Self {
4538 Self::default()
4539 }
4540
4541 unsafe fn decode(
4542 &mut self,
4543 decoder: &mut fidl::encoding::Decoder<'_, D>,
4544 offset: usize,
4545 mut depth: fidl::encoding::Depth,
4546 ) -> fidl::Result<()> {
4547 decoder.debug_check_bounds::<Self>(offset);
4548 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
4549 None => return Err(fidl::Error::NotNullable),
4550 Some(len) => len,
4551 };
4552 if len == 0 {
4554 return Ok(());
4555 };
4556 depth.increment()?;
4557 let envelope_size = 8;
4558 let bytes_len = len * envelope_size;
4559 let offset = decoder.out_of_line_offset(bytes_len)?;
4560 let mut _next_ordinal_to_read = 0;
4562 let mut next_offset = offset;
4563 let end_offset = offset + bytes_len;
4564 _next_ordinal_to_read += 1;
4565 if next_offset >= end_offset {
4566 return Ok(());
4567 }
4568
4569 while _next_ordinal_to_read < 1 {
4571 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4572 _next_ordinal_to_read += 1;
4573 next_offset += envelope_size;
4574 }
4575
4576 let next_out_of_line = decoder.next_out_of_line();
4577 let handles_before = decoder.remaining_handles();
4578 if let Some((inlined, num_bytes, num_handles)) =
4579 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4580 {
4581 let member_inline_size =
4582 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
4583 decoder.context,
4584 );
4585 if inlined != (member_inline_size <= 4) {
4586 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4587 }
4588 let inner_offset;
4589 let mut inner_depth = depth.clone();
4590 if inlined {
4591 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4592 inner_offset = next_offset;
4593 } else {
4594 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4595 inner_depth.increment()?;
4596 }
4597 let val_ref = self
4598 .peer_sta_address
4599 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
4600 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
4601 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4602 {
4603 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4604 }
4605 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4606 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4607 }
4608 }
4609
4610 next_offset += envelope_size;
4611 _next_ordinal_to_read += 1;
4612 if next_offset >= end_offset {
4613 return Ok(());
4614 }
4615
4616 while _next_ordinal_to_read < 2 {
4618 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4619 _next_ordinal_to_read += 1;
4620 next_offset += envelope_size;
4621 }
4622
4623 let next_out_of_line = decoder.next_out_of_line();
4624 let handles_before = decoder.remaining_handles();
4625 if let Some((inlined, num_bytes, num_handles)) =
4626 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4627 {
4628 let member_inline_size =
4629 <WlanAuthResult as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4630 if inlined != (member_inline_size <= 4) {
4631 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4632 }
4633 let inner_offset;
4634 let mut inner_depth = depth.clone();
4635 if inlined {
4636 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4637 inner_offset = next_offset;
4638 } else {
4639 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4640 inner_depth.increment()?;
4641 }
4642 let val_ref =
4643 self.result_code.get_or_insert_with(|| fidl::new_empty!(WlanAuthResult, D));
4644 fidl::decode!(WlanAuthResult, D, val_ref, decoder, inner_offset, inner_depth)?;
4645 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4646 {
4647 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4648 }
4649 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4650 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4651 }
4652 }
4653
4654 next_offset += envelope_size;
4655
4656 while next_offset < end_offset {
4658 _next_ordinal_to_read += 1;
4659 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4660 next_offset += envelope_size;
4661 }
4662
4663 Ok(())
4664 }
4665 }
4666
4667 impl WlanFullmacImplConnectRequest {
4668 #[inline(always)]
4669 fn max_ordinal_present(&self) -> u64 {
4670 if let Some(_) = self.owe_public_key {
4671 return 8;
4672 }
4673 if let Some(_) = self.wep_key_desc {
4674 return 7;
4675 }
4676 if let Some(_) = self.security_ie {
4677 return 6;
4678 }
4679 if let Some(_) = self.wep_key {
4680 return 5;
4681 }
4682 if let Some(_) = self.sae_password {
4683 return 4;
4684 }
4685 if let Some(_) = self.auth_type {
4686 return 3;
4687 }
4688 if let Some(_) = self.connect_failure_timeout {
4689 return 2;
4690 }
4691 if let Some(_) = self.selected_bss {
4692 return 1;
4693 }
4694 0
4695 }
4696 }
4697
4698 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplConnectRequest {
4699 type Borrowed<'a> = &'a Self;
4700 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4701 value
4702 }
4703 }
4704
4705 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplConnectRequest {
4706 type Owned = Self;
4707
4708 #[inline(always)]
4709 fn inline_align(_context: fidl::encoding::Context) -> usize {
4710 8
4711 }
4712
4713 #[inline(always)]
4714 fn inline_size(_context: fidl::encoding::Context) -> usize {
4715 16
4716 }
4717 }
4718
4719 unsafe impl<D: fidl::encoding::ResourceDialect>
4720 fidl::encoding::Encode<WlanFullmacImplConnectRequest, D>
4721 for &WlanFullmacImplConnectRequest
4722 {
4723 unsafe fn encode(
4724 self,
4725 encoder: &mut fidl::encoding::Encoder<'_, D>,
4726 offset: usize,
4727 mut depth: fidl::encoding::Depth,
4728 ) -> fidl::Result<()> {
4729 encoder.debug_check_bounds::<WlanFullmacImplConnectRequest>(offset);
4730 let max_ordinal: u64 = self.max_ordinal_present();
4732 encoder.write_num(max_ordinal, offset);
4733 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
4734 if max_ordinal == 0 {
4736 return Ok(());
4737 }
4738 depth.increment()?;
4739 let envelope_size = 8;
4740 let bytes_len = max_ordinal as usize * envelope_size;
4741 #[allow(unused_variables)]
4742 let offset = encoder.out_of_line_offset(bytes_len);
4743 let mut _prev_end_offset: usize = 0;
4744 if 1 > max_ordinal {
4745 return Ok(());
4746 }
4747
4748 let cur_offset: usize = (1 - 1) * envelope_size;
4751
4752 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4754
4755 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_ieee80211_common::BssDescription, D>(
4760 self.selected_bss.as_ref().map(<fidl_fuchsia_wlan_ieee80211_common::BssDescription as fidl::encoding::ValueTypeMarker>::borrow),
4761 encoder, offset + cur_offset, depth
4762 )?;
4763
4764 _prev_end_offset = cur_offset + envelope_size;
4765 if 2 > max_ordinal {
4766 return Ok(());
4767 }
4768
4769 let cur_offset: usize = (2 - 1) * envelope_size;
4772
4773 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4775
4776 fidl::encoding::encode_in_envelope_optional::<u32, D>(
4781 self.connect_failure_timeout
4782 .as_ref()
4783 .map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
4784 encoder,
4785 offset + cur_offset,
4786 depth,
4787 )?;
4788
4789 _prev_end_offset = cur_offset + envelope_size;
4790 if 3 > max_ordinal {
4791 return Ok(());
4792 }
4793
4794 let cur_offset: usize = (3 - 1) * envelope_size;
4797
4798 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4800
4801 fidl::encoding::encode_in_envelope_optional::<WlanAuthType, D>(
4806 self.auth_type
4807 .as_ref()
4808 .map(<WlanAuthType as fidl::encoding::ValueTypeMarker>::borrow),
4809 encoder,
4810 offset + cur_offset,
4811 depth,
4812 )?;
4813
4814 _prev_end_offset = cur_offset + envelope_size;
4815 if 4 > max_ordinal {
4816 return Ok(());
4817 }
4818
4819 let cur_offset: usize = (4 - 1) * envelope_size;
4822
4823 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4825
4826 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<u8>, D>(
4831 self.sae_password.as_ref().map(<fidl::encoding::UnboundedVector<u8> as fidl::encoding::ValueTypeMarker>::borrow),
4832 encoder, offset + cur_offset, depth
4833 )?;
4834
4835 _prev_end_offset = cur_offset + envelope_size;
4836 if 5 > max_ordinal {
4837 return Ok(());
4838 }
4839
4840 let cur_offset: usize = (5 - 1) * envelope_size;
4843
4844 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4846
4847 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_driver_common::WlanKeyConfig, D>(
4852 self.wep_key.as_ref().map(<fidl_fuchsia_wlan_driver_common::WlanKeyConfig as fidl::encoding::ValueTypeMarker>::borrow),
4853 encoder, offset + cur_offset, depth
4854 )?;
4855
4856 _prev_end_offset = cur_offset + envelope_size;
4857 if 6 > max_ordinal {
4858 return Ok(());
4859 }
4860
4861 let cur_offset: usize = (6 - 1) * envelope_size;
4864
4865 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4867
4868 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<u8, 257>, D>(
4873 self.security_ie.as_ref().map(
4874 <fidl::encoding::Vector<u8, 257> as fidl::encoding::ValueTypeMarker>::borrow,
4875 ),
4876 encoder,
4877 offset + cur_offset,
4878 depth,
4879 )?;
4880
4881 _prev_end_offset = cur_offset + envelope_size;
4882 if 7 > max_ordinal {
4883 return Ok(());
4884 }
4885
4886 let cur_offset: usize = (7 - 1) * envelope_size;
4889
4890 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4892
4893 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_ieee80211_common::SetKeyDescriptor, D>(
4898 self.wep_key_desc.as_ref().map(<fidl_fuchsia_wlan_ieee80211_common::SetKeyDescriptor as fidl::encoding::ValueTypeMarker>::borrow),
4899 encoder, offset + cur_offset, depth
4900 )?;
4901
4902 _prev_end_offset = cur_offset + envelope_size;
4903 if 8 > max_ordinal {
4904 return Ok(());
4905 }
4906
4907 let cur_offset: usize = (8 - 1) * envelope_size;
4910
4911 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4913
4914 fidl::encoding::encode_in_envelope_optional::<WlanFullmacOwePublicKey, D>(
4919 self.owe_public_key
4920 .as_ref()
4921 .map(<WlanFullmacOwePublicKey as fidl::encoding::ValueTypeMarker>::borrow),
4922 encoder,
4923 offset + cur_offset,
4924 depth,
4925 )?;
4926
4927 _prev_end_offset = cur_offset + envelope_size;
4928
4929 Ok(())
4930 }
4931 }
4932
4933 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
4934 for WlanFullmacImplConnectRequest
4935 {
4936 #[inline(always)]
4937 fn new_empty() -> Self {
4938 Self::default()
4939 }
4940
4941 unsafe fn decode(
4942 &mut self,
4943 decoder: &mut fidl::encoding::Decoder<'_, D>,
4944 offset: usize,
4945 mut depth: fidl::encoding::Depth,
4946 ) -> fidl::Result<()> {
4947 decoder.debug_check_bounds::<Self>(offset);
4948 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
4949 None => return Err(fidl::Error::NotNullable),
4950 Some(len) => len,
4951 };
4952 if len == 0 {
4954 return Ok(());
4955 };
4956 depth.increment()?;
4957 let envelope_size = 8;
4958 let bytes_len = len * envelope_size;
4959 let offset = decoder.out_of_line_offset(bytes_len)?;
4960 let mut _next_ordinal_to_read = 0;
4962 let mut next_offset = offset;
4963 let end_offset = offset + bytes_len;
4964 _next_ordinal_to_read += 1;
4965 if next_offset >= end_offset {
4966 return Ok(());
4967 }
4968
4969 while _next_ordinal_to_read < 1 {
4971 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4972 _next_ordinal_to_read += 1;
4973 next_offset += envelope_size;
4974 }
4975
4976 let next_out_of_line = decoder.next_out_of_line();
4977 let handles_before = decoder.remaining_handles();
4978 if let Some((inlined, num_bytes, num_handles)) =
4979 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4980 {
4981 let member_inline_size = <fidl_fuchsia_wlan_ieee80211_common::BssDescription as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4982 if inlined != (member_inline_size <= 4) {
4983 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4984 }
4985 let inner_offset;
4986 let mut inner_depth = depth.clone();
4987 if inlined {
4988 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4989 inner_offset = next_offset;
4990 } else {
4991 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4992 inner_depth.increment()?;
4993 }
4994 let val_ref = self.selected_bss.get_or_insert_with(|| {
4995 fidl::new_empty!(fidl_fuchsia_wlan_ieee80211_common::BssDescription, D)
4996 });
4997 fidl::decode!(
4998 fidl_fuchsia_wlan_ieee80211_common::BssDescription,
4999 D,
5000 val_ref,
5001 decoder,
5002 inner_offset,
5003 inner_depth
5004 )?;
5005 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5006 {
5007 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5008 }
5009 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5010 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5011 }
5012 }
5013
5014 next_offset += envelope_size;
5015 _next_ordinal_to_read += 1;
5016 if next_offset >= end_offset {
5017 return Ok(());
5018 }
5019
5020 while _next_ordinal_to_read < 2 {
5022 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5023 _next_ordinal_to_read += 1;
5024 next_offset += envelope_size;
5025 }
5026
5027 let next_out_of_line = decoder.next_out_of_line();
5028 let handles_before = decoder.remaining_handles();
5029 if let Some((inlined, num_bytes, num_handles)) =
5030 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5031 {
5032 let member_inline_size =
5033 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
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 =
5047 self.connect_failure_timeout.get_or_insert_with(|| fidl::new_empty!(u32, D));
5048 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
5049 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5050 {
5051 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5052 }
5053 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5054 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5055 }
5056 }
5057
5058 next_offset += envelope_size;
5059 _next_ordinal_to_read += 1;
5060 if next_offset >= end_offset {
5061 return Ok(());
5062 }
5063
5064 while _next_ordinal_to_read < 3 {
5066 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5067 _next_ordinal_to_read += 1;
5068 next_offset += envelope_size;
5069 }
5070
5071 let next_out_of_line = decoder.next_out_of_line();
5072 let handles_before = decoder.remaining_handles();
5073 if let Some((inlined, num_bytes, num_handles)) =
5074 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5075 {
5076 let member_inline_size =
5077 <WlanAuthType 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 =
5091 self.auth_type.get_or_insert_with(|| fidl::new_empty!(WlanAuthType, D));
5092 fidl::decode!(WlanAuthType, D, val_ref, decoder, inner_offset, inner_depth)?;
5093 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5094 {
5095 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5096 }
5097 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5098 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5099 }
5100 }
5101
5102 next_offset += envelope_size;
5103 _next_ordinal_to_read += 1;
5104 if next_offset >= end_offset {
5105 return Ok(());
5106 }
5107
5108 while _next_ordinal_to_read < 4 {
5110 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5111 _next_ordinal_to_read += 1;
5112 next_offset += envelope_size;
5113 }
5114
5115 let next_out_of_line = decoder.next_out_of_line();
5116 let handles_before = decoder.remaining_handles();
5117 if let Some((inlined, num_bytes, num_handles)) =
5118 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5119 {
5120 let member_inline_size = <fidl::encoding::UnboundedVector<u8> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5121 if inlined != (member_inline_size <= 4) {
5122 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5123 }
5124 let inner_offset;
5125 let mut inner_depth = depth.clone();
5126 if inlined {
5127 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5128 inner_offset = next_offset;
5129 } else {
5130 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5131 inner_depth.increment()?;
5132 }
5133 let val_ref = self.sae_password.get_or_insert_with(|| {
5134 fidl::new_empty!(fidl::encoding::UnboundedVector<u8>, D)
5135 });
5136 fidl::decode!(
5137 fidl::encoding::UnboundedVector<u8>,
5138 D,
5139 val_ref,
5140 decoder,
5141 inner_offset,
5142 inner_depth
5143 )?;
5144 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5145 {
5146 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5147 }
5148 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5149 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5150 }
5151 }
5152
5153 next_offset += envelope_size;
5154 _next_ordinal_to_read += 1;
5155 if next_offset >= end_offset {
5156 return Ok(());
5157 }
5158
5159 while _next_ordinal_to_read < 5 {
5161 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5162 _next_ordinal_to_read += 1;
5163 next_offset += envelope_size;
5164 }
5165
5166 let next_out_of_line = decoder.next_out_of_line();
5167 let handles_before = decoder.remaining_handles();
5168 if let Some((inlined, num_bytes, num_handles)) =
5169 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5170 {
5171 let member_inline_size = <fidl_fuchsia_wlan_driver_common::WlanKeyConfig as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5172 if inlined != (member_inline_size <= 4) {
5173 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5174 }
5175 let inner_offset;
5176 let mut inner_depth = depth.clone();
5177 if inlined {
5178 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5179 inner_offset = next_offset;
5180 } else {
5181 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5182 inner_depth.increment()?;
5183 }
5184 let val_ref = self.wep_key.get_or_insert_with(|| {
5185 fidl::new_empty!(fidl_fuchsia_wlan_driver_common::WlanKeyConfig, D)
5186 });
5187 fidl::decode!(
5188 fidl_fuchsia_wlan_driver_common::WlanKeyConfig,
5189 D,
5190 val_ref,
5191 decoder,
5192 inner_offset,
5193 inner_depth
5194 )?;
5195 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5196 {
5197 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5198 }
5199 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5200 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5201 }
5202 }
5203
5204 next_offset += envelope_size;
5205 _next_ordinal_to_read += 1;
5206 if next_offset >= end_offset {
5207 return Ok(());
5208 }
5209
5210 while _next_ordinal_to_read < 6 {
5212 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5213 _next_ordinal_to_read += 1;
5214 next_offset += envelope_size;
5215 }
5216
5217 let next_out_of_line = decoder.next_out_of_line();
5218 let handles_before = decoder.remaining_handles();
5219 if let Some((inlined, num_bytes, num_handles)) =
5220 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5221 {
5222 let member_inline_size =
5223 <fidl::encoding::Vector<u8, 257> as fidl::encoding::TypeMarker>::inline_size(
5224 decoder.context,
5225 );
5226 if inlined != (member_inline_size <= 4) {
5227 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5228 }
5229 let inner_offset;
5230 let mut inner_depth = depth.clone();
5231 if inlined {
5232 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5233 inner_offset = next_offset;
5234 } else {
5235 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5236 inner_depth.increment()?;
5237 }
5238 let val_ref = self
5239 .security_ie
5240 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<u8, 257>, D));
5241 fidl::decode!(fidl::encoding::Vector<u8, 257>, D, val_ref, decoder, inner_offset, inner_depth)?;
5242 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5243 {
5244 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5245 }
5246 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5247 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5248 }
5249 }
5250
5251 next_offset += envelope_size;
5252 _next_ordinal_to_read += 1;
5253 if next_offset >= end_offset {
5254 return Ok(());
5255 }
5256
5257 while _next_ordinal_to_read < 7 {
5259 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5260 _next_ordinal_to_read += 1;
5261 next_offset += envelope_size;
5262 }
5263
5264 let next_out_of_line = decoder.next_out_of_line();
5265 let handles_before = decoder.remaining_handles();
5266 if let Some((inlined, num_bytes, num_handles)) =
5267 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5268 {
5269 let member_inline_size = <fidl_fuchsia_wlan_ieee80211_common::SetKeyDescriptor as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5270 if inlined != (member_inline_size <= 4) {
5271 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5272 }
5273 let inner_offset;
5274 let mut inner_depth = depth.clone();
5275 if inlined {
5276 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5277 inner_offset = next_offset;
5278 } else {
5279 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5280 inner_depth.increment()?;
5281 }
5282 let val_ref = self.wep_key_desc.get_or_insert_with(|| {
5283 fidl::new_empty!(fidl_fuchsia_wlan_ieee80211_common::SetKeyDescriptor, D)
5284 });
5285 fidl::decode!(
5286 fidl_fuchsia_wlan_ieee80211_common::SetKeyDescriptor,
5287 D,
5288 val_ref,
5289 decoder,
5290 inner_offset,
5291 inner_depth
5292 )?;
5293 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5294 {
5295 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5296 }
5297 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5298 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5299 }
5300 }
5301
5302 next_offset += envelope_size;
5303 _next_ordinal_to_read += 1;
5304 if next_offset >= end_offset {
5305 return Ok(());
5306 }
5307
5308 while _next_ordinal_to_read < 8 {
5310 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5311 _next_ordinal_to_read += 1;
5312 next_offset += envelope_size;
5313 }
5314
5315 let next_out_of_line = decoder.next_out_of_line();
5316 let handles_before = decoder.remaining_handles();
5317 if let Some((inlined, num_bytes, num_handles)) =
5318 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5319 {
5320 let member_inline_size =
5321 <WlanFullmacOwePublicKey as fidl::encoding::TypeMarker>::inline_size(
5322 decoder.context,
5323 );
5324 if inlined != (member_inline_size <= 4) {
5325 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5326 }
5327 let inner_offset;
5328 let mut inner_depth = depth.clone();
5329 if inlined {
5330 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5331 inner_offset = next_offset;
5332 } else {
5333 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5334 inner_depth.increment()?;
5335 }
5336 let val_ref = self
5337 .owe_public_key
5338 .get_or_insert_with(|| fidl::new_empty!(WlanFullmacOwePublicKey, D));
5339 fidl::decode!(
5340 WlanFullmacOwePublicKey,
5341 D,
5342 val_ref,
5343 decoder,
5344 inner_offset,
5345 inner_depth
5346 )?;
5347 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5348 {
5349 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5350 }
5351 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5352 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5353 }
5354 }
5355
5356 next_offset += envelope_size;
5357
5358 while next_offset < end_offset {
5360 _next_ordinal_to_read += 1;
5361 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5362 next_offset += envelope_size;
5363 }
5364
5365 Ok(())
5366 }
5367 }
5368
5369 impl WlanFullmacImplDeauthRequest {
5370 #[inline(always)]
5371 fn max_ordinal_present(&self) -> u64 {
5372 if let Some(_) = self.reason_code {
5373 return 2;
5374 }
5375 if let Some(_) = self.peer_sta_address {
5376 return 1;
5377 }
5378 0
5379 }
5380 }
5381
5382 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplDeauthRequest {
5383 type Borrowed<'a> = &'a Self;
5384 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
5385 value
5386 }
5387 }
5388
5389 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplDeauthRequest {
5390 type Owned = Self;
5391
5392 #[inline(always)]
5393 fn inline_align(_context: fidl::encoding::Context) -> usize {
5394 8
5395 }
5396
5397 #[inline(always)]
5398 fn inline_size(_context: fidl::encoding::Context) -> usize {
5399 16
5400 }
5401 }
5402
5403 unsafe impl<D: fidl::encoding::ResourceDialect>
5404 fidl::encoding::Encode<WlanFullmacImplDeauthRequest, D> for &WlanFullmacImplDeauthRequest
5405 {
5406 unsafe fn encode(
5407 self,
5408 encoder: &mut fidl::encoding::Encoder<'_, D>,
5409 offset: usize,
5410 mut depth: fidl::encoding::Depth,
5411 ) -> fidl::Result<()> {
5412 encoder.debug_check_bounds::<WlanFullmacImplDeauthRequest>(offset);
5413 let max_ordinal: u64 = self.max_ordinal_present();
5415 encoder.write_num(max_ordinal, offset);
5416 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
5417 if max_ordinal == 0 {
5419 return Ok(());
5420 }
5421 depth.increment()?;
5422 let envelope_size = 8;
5423 let bytes_len = max_ordinal as usize * envelope_size;
5424 #[allow(unused_variables)]
5425 let offset = encoder.out_of_line_offset(bytes_len);
5426 let mut _prev_end_offset: usize = 0;
5427 if 1 > max_ordinal {
5428 return Ok(());
5429 }
5430
5431 let cur_offset: usize = (1 - 1) * envelope_size;
5434
5435 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5437
5438 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
5443 self.peer_sta_address
5444 .as_ref()
5445 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
5446 encoder,
5447 offset + cur_offset,
5448 depth,
5449 )?;
5450
5451 _prev_end_offset = cur_offset + envelope_size;
5452 if 2 > max_ordinal {
5453 return Ok(());
5454 }
5455
5456 let cur_offset: usize = (2 - 1) * envelope_size;
5459
5460 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5462
5463 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_ieee80211_common::ReasonCode, D>(
5468 self.reason_code.as_ref().map(<fidl_fuchsia_wlan_ieee80211_common::ReasonCode as fidl::encoding::ValueTypeMarker>::borrow),
5469 encoder, offset + cur_offset, depth
5470 )?;
5471
5472 _prev_end_offset = cur_offset + envelope_size;
5473
5474 Ok(())
5475 }
5476 }
5477
5478 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
5479 for WlanFullmacImplDeauthRequest
5480 {
5481 #[inline(always)]
5482 fn new_empty() -> Self {
5483 Self::default()
5484 }
5485
5486 unsafe fn decode(
5487 &mut self,
5488 decoder: &mut fidl::encoding::Decoder<'_, D>,
5489 offset: usize,
5490 mut depth: fidl::encoding::Depth,
5491 ) -> fidl::Result<()> {
5492 decoder.debug_check_bounds::<Self>(offset);
5493 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
5494 None => return Err(fidl::Error::NotNullable),
5495 Some(len) => len,
5496 };
5497 if len == 0 {
5499 return Ok(());
5500 };
5501 depth.increment()?;
5502 let envelope_size = 8;
5503 let bytes_len = len * envelope_size;
5504 let offset = decoder.out_of_line_offset(bytes_len)?;
5505 let mut _next_ordinal_to_read = 0;
5507 let mut next_offset = offset;
5508 let end_offset = offset + bytes_len;
5509 _next_ordinal_to_read += 1;
5510 if next_offset >= end_offset {
5511 return Ok(());
5512 }
5513
5514 while _next_ordinal_to_read < 1 {
5516 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5517 _next_ordinal_to_read += 1;
5518 next_offset += envelope_size;
5519 }
5520
5521 let next_out_of_line = decoder.next_out_of_line();
5522 let handles_before = decoder.remaining_handles();
5523 if let Some((inlined, num_bytes, num_handles)) =
5524 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5525 {
5526 let member_inline_size =
5527 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
5528 decoder.context,
5529 );
5530 if inlined != (member_inline_size <= 4) {
5531 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5532 }
5533 let inner_offset;
5534 let mut inner_depth = depth.clone();
5535 if inlined {
5536 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5537 inner_offset = next_offset;
5538 } else {
5539 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5540 inner_depth.increment()?;
5541 }
5542 let val_ref = self
5543 .peer_sta_address
5544 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
5545 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
5546 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5547 {
5548 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5549 }
5550 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5551 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5552 }
5553 }
5554
5555 next_offset += envelope_size;
5556 _next_ordinal_to_read += 1;
5557 if next_offset >= end_offset {
5558 return Ok(());
5559 }
5560
5561 while _next_ordinal_to_read < 2 {
5563 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5564 _next_ordinal_to_read += 1;
5565 next_offset += envelope_size;
5566 }
5567
5568 let next_out_of_line = decoder.next_out_of_line();
5569 let handles_before = decoder.remaining_handles();
5570 if let Some((inlined, num_bytes, num_handles)) =
5571 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5572 {
5573 let member_inline_size = <fidl_fuchsia_wlan_ieee80211_common::ReasonCode as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5574 if inlined != (member_inline_size <= 4) {
5575 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5576 }
5577 let inner_offset;
5578 let mut inner_depth = depth.clone();
5579 if inlined {
5580 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5581 inner_offset = next_offset;
5582 } else {
5583 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5584 inner_depth.increment()?;
5585 }
5586 let val_ref = self.reason_code.get_or_insert_with(|| {
5587 fidl::new_empty!(fidl_fuchsia_wlan_ieee80211_common::ReasonCode, D)
5588 });
5589 fidl::decode!(
5590 fidl_fuchsia_wlan_ieee80211_common::ReasonCode,
5591 D,
5592 val_ref,
5593 decoder,
5594 inner_offset,
5595 inner_depth
5596 )?;
5597 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5598 {
5599 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5600 }
5601 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5602 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5603 }
5604 }
5605
5606 next_offset += envelope_size;
5607
5608 while next_offset < end_offset {
5610 _next_ordinal_to_read += 1;
5611 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5612 next_offset += envelope_size;
5613 }
5614
5615 Ok(())
5616 }
5617 }
5618
5619 impl WlanFullmacImplDisassocRequest {
5620 #[inline(always)]
5621 fn max_ordinal_present(&self) -> u64 {
5622 if let Some(_) = self.reason_code {
5623 return 2;
5624 }
5625 if let Some(_) = self.peer_sta_address {
5626 return 1;
5627 }
5628 0
5629 }
5630 }
5631
5632 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplDisassocRequest {
5633 type Borrowed<'a> = &'a Self;
5634 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
5635 value
5636 }
5637 }
5638
5639 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplDisassocRequest {
5640 type Owned = Self;
5641
5642 #[inline(always)]
5643 fn inline_align(_context: fidl::encoding::Context) -> usize {
5644 8
5645 }
5646
5647 #[inline(always)]
5648 fn inline_size(_context: fidl::encoding::Context) -> usize {
5649 16
5650 }
5651 }
5652
5653 unsafe impl<D: fidl::encoding::ResourceDialect>
5654 fidl::encoding::Encode<WlanFullmacImplDisassocRequest, D>
5655 for &WlanFullmacImplDisassocRequest
5656 {
5657 unsafe fn encode(
5658 self,
5659 encoder: &mut fidl::encoding::Encoder<'_, D>,
5660 offset: usize,
5661 mut depth: fidl::encoding::Depth,
5662 ) -> fidl::Result<()> {
5663 encoder.debug_check_bounds::<WlanFullmacImplDisassocRequest>(offset);
5664 let max_ordinal: u64 = self.max_ordinal_present();
5666 encoder.write_num(max_ordinal, offset);
5667 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
5668 if max_ordinal == 0 {
5670 return Ok(());
5671 }
5672 depth.increment()?;
5673 let envelope_size = 8;
5674 let bytes_len = max_ordinal as usize * envelope_size;
5675 #[allow(unused_variables)]
5676 let offset = encoder.out_of_line_offset(bytes_len);
5677 let mut _prev_end_offset: usize = 0;
5678 if 1 > max_ordinal {
5679 return Ok(());
5680 }
5681
5682 let cur_offset: usize = (1 - 1) * envelope_size;
5685
5686 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5688
5689 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
5694 self.peer_sta_address
5695 .as_ref()
5696 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
5697 encoder,
5698 offset + cur_offset,
5699 depth,
5700 )?;
5701
5702 _prev_end_offset = cur_offset + envelope_size;
5703 if 2 > max_ordinal {
5704 return Ok(());
5705 }
5706
5707 let cur_offset: usize = (2 - 1) * envelope_size;
5710
5711 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5713
5714 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_ieee80211_common::ReasonCode, D>(
5719 self.reason_code.as_ref().map(<fidl_fuchsia_wlan_ieee80211_common::ReasonCode as fidl::encoding::ValueTypeMarker>::borrow),
5720 encoder, offset + cur_offset, depth
5721 )?;
5722
5723 _prev_end_offset = cur_offset + envelope_size;
5724
5725 Ok(())
5726 }
5727 }
5728
5729 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
5730 for WlanFullmacImplDisassocRequest
5731 {
5732 #[inline(always)]
5733 fn new_empty() -> Self {
5734 Self::default()
5735 }
5736
5737 unsafe fn decode(
5738 &mut self,
5739 decoder: &mut fidl::encoding::Decoder<'_, D>,
5740 offset: usize,
5741 mut depth: fidl::encoding::Depth,
5742 ) -> fidl::Result<()> {
5743 decoder.debug_check_bounds::<Self>(offset);
5744 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
5745 None => return Err(fidl::Error::NotNullable),
5746 Some(len) => len,
5747 };
5748 if len == 0 {
5750 return Ok(());
5751 };
5752 depth.increment()?;
5753 let envelope_size = 8;
5754 let bytes_len = len * envelope_size;
5755 let offset = decoder.out_of_line_offset(bytes_len)?;
5756 let mut _next_ordinal_to_read = 0;
5758 let mut next_offset = offset;
5759 let end_offset = offset + bytes_len;
5760 _next_ordinal_to_read += 1;
5761 if next_offset >= end_offset {
5762 return Ok(());
5763 }
5764
5765 while _next_ordinal_to_read < 1 {
5767 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5768 _next_ordinal_to_read += 1;
5769 next_offset += envelope_size;
5770 }
5771
5772 let next_out_of_line = decoder.next_out_of_line();
5773 let handles_before = decoder.remaining_handles();
5774 if let Some((inlined, num_bytes, num_handles)) =
5775 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5776 {
5777 let member_inline_size =
5778 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
5779 decoder.context,
5780 );
5781 if inlined != (member_inline_size <= 4) {
5782 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5783 }
5784 let inner_offset;
5785 let mut inner_depth = depth.clone();
5786 if inlined {
5787 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5788 inner_offset = next_offset;
5789 } else {
5790 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5791 inner_depth.increment()?;
5792 }
5793 let val_ref = self
5794 .peer_sta_address
5795 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
5796 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
5797 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5798 {
5799 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5800 }
5801 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5802 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5803 }
5804 }
5805
5806 next_offset += envelope_size;
5807 _next_ordinal_to_read += 1;
5808 if next_offset >= end_offset {
5809 return Ok(());
5810 }
5811
5812 while _next_ordinal_to_read < 2 {
5814 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5815 _next_ordinal_to_read += 1;
5816 next_offset += envelope_size;
5817 }
5818
5819 let next_out_of_line = decoder.next_out_of_line();
5820 let handles_before = decoder.remaining_handles();
5821 if let Some((inlined, num_bytes, num_handles)) =
5822 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5823 {
5824 let member_inline_size = <fidl_fuchsia_wlan_ieee80211_common::ReasonCode as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5825 if inlined != (member_inline_size <= 4) {
5826 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5827 }
5828 let inner_offset;
5829 let mut inner_depth = depth.clone();
5830 if inlined {
5831 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5832 inner_offset = next_offset;
5833 } else {
5834 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5835 inner_depth.increment()?;
5836 }
5837 let val_ref = self.reason_code.get_or_insert_with(|| {
5838 fidl::new_empty!(fidl_fuchsia_wlan_ieee80211_common::ReasonCode, D)
5839 });
5840 fidl::decode!(
5841 fidl_fuchsia_wlan_ieee80211_common::ReasonCode,
5842 D,
5843 val_ref,
5844 decoder,
5845 inner_offset,
5846 inner_depth
5847 )?;
5848 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5849 {
5850 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5851 }
5852 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5853 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5854 }
5855 }
5856
5857 next_offset += envelope_size;
5858
5859 while next_offset < end_offset {
5861 _next_ordinal_to_read += 1;
5862 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5863 next_offset += envelope_size;
5864 }
5865
5866 Ok(())
5867 }
5868 }
5869
5870 impl WlanFullmacImplEapolTxRequest {
5871 #[inline(always)]
5872 fn max_ordinal_present(&self) -> u64 {
5873 if let Some(_) = self.data {
5874 return 3;
5875 }
5876 if let Some(_) = self.dst_addr {
5877 return 2;
5878 }
5879 if let Some(_) = self.src_addr {
5880 return 1;
5881 }
5882 0
5883 }
5884 }
5885
5886 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplEapolTxRequest {
5887 type Borrowed<'a> = &'a Self;
5888 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
5889 value
5890 }
5891 }
5892
5893 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplEapolTxRequest {
5894 type Owned = Self;
5895
5896 #[inline(always)]
5897 fn inline_align(_context: fidl::encoding::Context) -> usize {
5898 8
5899 }
5900
5901 #[inline(always)]
5902 fn inline_size(_context: fidl::encoding::Context) -> usize {
5903 16
5904 }
5905 }
5906
5907 unsafe impl<D: fidl::encoding::ResourceDialect>
5908 fidl::encoding::Encode<WlanFullmacImplEapolTxRequest, D>
5909 for &WlanFullmacImplEapolTxRequest
5910 {
5911 unsafe fn encode(
5912 self,
5913 encoder: &mut fidl::encoding::Encoder<'_, D>,
5914 offset: usize,
5915 mut depth: fidl::encoding::Depth,
5916 ) -> fidl::Result<()> {
5917 encoder.debug_check_bounds::<WlanFullmacImplEapolTxRequest>(offset);
5918 let max_ordinal: u64 = self.max_ordinal_present();
5920 encoder.write_num(max_ordinal, offset);
5921 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
5922 if max_ordinal == 0 {
5924 return Ok(());
5925 }
5926 depth.increment()?;
5927 let envelope_size = 8;
5928 let bytes_len = max_ordinal as usize * envelope_size;
5929 #[allow(unused_variables)]
5930 let offset = encoder.out_of_line_offset(bytes_len);
5931 let mut _prev_end_offset: usize = 0;
5932 if 1 > max_ordinal {
5933 return Ok(());
5934 }
5935
5936 let cur_offset: usize = (1 - 1) * envelope_size;
5939
5940 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5942
5943 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
5948 self.src_addr
5949 .as_ref()
5950 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
5951 encoder,
5952 offset + cur_offset,
5953 depth,
5954 )?;
5955
5956 _prev_end_offset = cur_offset + envelope_size;
5957 if 2 > max_ordinal {
5958 return Ok(());
5959 }
5960
5961 let cur_offset: usize = (2 - 1) * envelope_size;
5964
5965 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5967
5968 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
5973 self.dst_addr
5974 .as_ref()
5975 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
5976 encoder,
5977 offset + cur_offset,
5978 depth,
5979 )?;
5980
5981 _prev_end_offset = cur_offset + envelope_size;
5982 if 3 > max_ordinal {
5983 return Ok(());
5984 }
5985
5986 let cur_offset: usize = (3 - 1) * envelope_size;
5989
5990 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5992
5993 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<u8>, D>(
5998 self.data.as_ref().map(<fidl::encoding::UnboundedVector<u8> as fidl::encoding::ValueTypeMarker>::borrow),
5999 encoder, offset + cur_offset, depth
6000 )?;
6001
6002 _prev_end_offset = cur_offset + envelope_size;
6003
6004 Ok(())
6005 }
6006 }
6007
6008 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
6009 for WlanFullmacImplEapolTxRequest
6010 {
6011 #[inline(always)]
6012 fn new_empty() -> Self {
6013 Self::default()
6014 }
6015
6016 unsafe fn decode(
6017 &mut self,
6018 decoder: &mut fidl::encoding::Decoder<'_, D>,
6019 offset: usize,
6020 mut depth: fidl::encoding::Depth,
6021 ) -> fidl::Result<()> {
6022 decoder.debug_check_bounds::<Self>(offset);
6023 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
6024 None => return Err(fidl::Error::NotNullable),
6025 Some(len) => len,
6026 };
6027 if len == 0 {
6029 return Ok(());
6030 };
6031 depth.increment()?;
6032 let envelope_size = 8;
6033 let bytes_len = len * envelope_size;
6034 let offset = decoder.out_of_line_offset(bytes_len)?;
6035 let mut _next_ordinal_to_read = 0;
6037 let mut next_offset = offset;
6038 let end_offset = offset + bytes_len;
6039 _next_ordinal_to_read += 1;
6040 if next_offset >= end_offset {
6041 return Ok(());
6042 }
6043
6044 while _next_ordinal_to_read < 1 {
6046 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6047 _next_ordinal_to_read += 1;
6048 next_offset += envelope_size;
6049 }
6050
6051 let next_out_of_line = decoder.next_out_of_line();
6052 let handles_before = decoder.remaining_handles();
6053 if let Some((inlined, num_bytes, num_handles)) =
6054 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6055 {
6056 let member_inline_size =
6057 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
6058 decoder.context,
6059 );
6060 if inlined != (member_inline_size <= 4) {
6061 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6062 }
6063 let inner_offset;
6064 let mut inner_depth = depth.clone();
6065 if inlined {
6066 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6067 inner_offset = next_offset;
6068 } else {
6069 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6070 inner_depth.increment()?;
6071 }
6072 let val_ref = self
6073 .src_addr
6074 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
6075 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
6076 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6077 {
6078 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6079 }
6080 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6081 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6082 }
6083 }
6084
6085 next_offset += envelope_size;
6086 _next_ordinal_to_read += 1;
6087 if next_offset >= end_offset {
6088 return Ok(());
6089 }
6090
6091 while _next_ordinal_to_read < 2 {
6093 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6094 _next_ordinal_to_read += 1;
6095 next_offset += envelope_size;
6096 }
6097
6098 let next_out_of_line = decoder.next_out_of_line();
6099 let handles_before = decoder.remaining_handles();
6100 if let Some((inlined, num_bytes, num_handles)) =
6101 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6102 {
6103 let member_inline_size =
6104 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
6105 decoder.context,
6106 );
6107 if inlined != (member_inline_size <= 4) {
6108 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6109 }
6110 let inner_offset;
6111 let mut inner_depth = depth.clone();
6112 if inlined {
6113 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6114 inner_offset = next_offset;
6115 } else {
6116 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6117 inner_depth.increment()?;
6118 }
6119 let val_ref = self
6120 .dst_addr
6121 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
6122 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
6123 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6124 {
6125 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6126 }
6127 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6128 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6129 }
6130 }
6131
6132 next_offset += envelope_size;
6133 _next_ordinal_to_read += 1;
6134 if next_offset >= end_offset {
6135 return Ok(());
6136 }
6137
6138 while _next_ordinal_to_read < 3 {
6140 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6141 _next_ordinal_to_read += 1;
6142 next_offset += envelope_size;
6143 }
6144
6145 let next_out_of_line = decoder.next_out_of_line();
6146 let handles_before = decoder.remaining_handles();
6147 if let Some((inlined, num_bytes, num_handles)) =
6148 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6149 {
6150 let member_inline_size = <fidl::encoding::UnboundedVector<u8> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6151 if inlined != (member_inline_size <= 4) {
6152 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6153 }
6154 let inner_offset;
6155 let mut inner_depth = depth.clone();
6156 if inlined {
6157 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6158 inner_offset = next_offset;
6159 } else {
6160 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6161 inner_depth.increment()?;
6162 }
6163 let val_ref = self.data.get_or_insert_with(|| {
6164 fidl::new_empty!(fidl::encoding::UnboundedVector<u8>, D)
6165 });
6166 fidl::decode!(
6167 fidl::encoding::UnboundedVector<u8>,
6168 D,
6169 val_ref,
6170 decoder,
6171 inner_offset,
6172 inner_depth
6173 )?;
6174 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6175 {
6176 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6177 }
6178 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6179 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6180 }
6181 }
6182
6183 next_offset += envelope_size;
6184
6185 while next_offset < end_offset {
6187 _next_ordinal_to_read += 1;
6188 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6189 next_offset += envelope_size;
6190 }
6191
6192 Ok(())
6193 }
6194 }
6195
6196 impl WlanFullmacImplIfcAssocIndRequest {
6197 #[inline(always)]
6198 fn max_ordinal_present(&self) -> u64 {
6199 if let Some(_) = self.vendor_ie {
6200 return 5;
6201 }
6202 if let Some(_) = self.rsne {
6203 return 4;
6204 }
6205 if let Some(_) = self.ssid {
6206 return 3;
6207 }
6208 if let Some(_) = self.listen_interval {
6209 return 2;
6210 }
6211 if let Some(_) = self.peer_sta_address {
6212 return 1;
6213 }
6214 0
6215 }
6216 }
6217
6218 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcAssocIndRequest {
6219 type Borrowed<'a> = &'a Self;
6220 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
6221 value
6222 }
6223 }
6224
6225 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcAssocIndRequest {
6226 type Owned = Self;
6227
6228 #[inline(always)]
6229 fn inline_align(_context: fidl::encoding::Context) -> usize {
6230 8
6231 }
6232
6233 #[inline(always)]
6234 fn inline_size(_context: fidl::encoding::Context) -> usize {
6235 16
6236 }
6237 }
6238
6239 unsafe impl<D: fidl::encoding::ResourceDialect>
6240 fidl::encoding::Encode<WlanFullmacImplIfcAssocIndRequest, D>
6241 for &WlanFullmacImplIfcAssocIndRequest
6242 {
6243 unsafe fn encode(
6244 self,
6245 encoder: &mut fidl::encoding::Encoder<'_, D>,
6246 offset: usize,
6247 mut depth: fidl::encoding::Depth,
6248 ) -> fidl::Result<()> {
6249 encoder.debug_check_bounds::<WlanFullmacImplIfcAssocIndRequest>(offset);
6250 let max_ordinal: u64 = self.max_ordinal_present();
6252 encoder.write_num(max_ordinal, offset);
6253 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
6254 if max_ordinal == 0 {
6256 return Ok(());
6257 }
6258 depth.increment()?;
6259 let envelope_size = 8;
6260 let bytes_len = max_ordinal as usize * envelope_size;
6261 #[allow(unused_variables)]
6262 let offset = encoder.out_of_line_offset(bytes_len);
6263 let mut _prev_end_offset: usize = 0;
6264 if 1 > max_ordinal {
6265 return Ok(());
6266 }
6267
6268 let cur_offset: usize = (1 - 1) * envelope_size;
6271
6272 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6274
6275 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
6280 self.peer_sta_address
6281 .as_ref()
6282 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
6283 encoder,
6284 offset + cur_offset,
6285 depth,
6286 )?;
6287
6288 _prev_end_offset = cur_offset + envelope_size;
6289 if 2 > max_ordinal {
6290 return Ok(());
6291 }
6292
6293 let cur_offset: usize = (2 - 1) * envelope_size;
6296
6297 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6299
6300 fidl::encoding::encode_in_envelope_optional::<u16, D>(
6305 self.listen_interval.as_ref().map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
6306 encoder,
6307 offset + cur_offset,
6308 depth,
6309 )?;
6310
6311 _prev_end_offset = cur_offset + envelope_size;
6312 if 3 > max_ordinal {
6313 return Ok(());
6314 }
6315
6316 let cur_offset: usize = (3 - 1) * envelope_size;
6319
6320 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6322
6323 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<u8, 32>, D>(
6328 self.ssid.as_ref().map(
6329 <fidl::encoding::Vector<u8, 32> as fidl::encoding::ValueTypeMarker>::borrow,
6330 ),
6331 encoder,
6332 offset + cur_offset,
6333 depth,
6334 )?;
6335
6336 _prev_end_offset = cur_offset + envelope_size;
6337 if 4 > max_ordinal {
6338 return Ok(());
6339 }
6340
6341 let cur_offset: usize = (4 - 1) * envelope_size;
6344
6345 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6347
6348 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<u8, 257>, D>(
6353 self.rsne.as_ref().map(
6354 <fidl::encoding::Vector<u8, 257> as fidl::encoding::ValueTypeMarker>::borrow,
6355 ),
6356 encoder,
6357 offset + cur_offset,
6358 depth,
6359 )?;
6360
6361 _prev_end_offset = cur_offset + envelope_size;
6362 if 5 > max_ordinal {
6363 return Ok(());
6364 }
6365
6366 let cur_offset: usize = (5 - 1) * envelope_size;
6369
6370 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6372
6373 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<u8, 514>, D>(
6378 self.vendor_ie.as_ref().map(
6379 <fidl::encoding::Vector<u8, 514> as fidl::encoding::ValueTypeMarker>::borrow,
6380 ),
6381 encoder,
6382 offset + cur_offset,
6383 depth,
6384 )?;
6385
6386 _prev_end_offset = cur_offset + envelope_size;
6387
6388 Ok(())
6389 }
6390 }
6391
6392 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
6393 for WlanFullmacImplIfcAssocIndRequest
6394 {
6395 #[inline(always)]
6396 fn new_empty() -> Self {
6397 Self::default()
6398 }
6399
6400 unsafe fn decode(
6401 &mut self,
6402 decoder: &mut fidl::encoding::Decoder<'_, D>,
6403 offset: usize,
6404 mut depth: fidl::encoding::Depth,
6405 ) -> fidl::Result<()> {
6406 decoder.debug_check_bounds::<Self>(offset);
6407 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
6408 None => return Err(fidl::Error::NotNullable),
6409 Some(len) => len,
6410 };
6411 if len == 0 {
6413 return Ok(());
6414 };
6415 depth.increment()?;
6416 let envelope_size = 8;
6417 let bytes_len = len * envelope_size;
6418 let offset = decoder.out_of_line_offset(bytes_len)?;
6419 let mut _next_ordinal_to_read = 0;
6421 let mut next_offset = offset;
6422 let end_offset = offset + bytes_len;
6423 _next_ordinal_to_read += 1;
6424 if next_offset >= end_offset {
6425 return Ok(());
6426 }
6427
6428 while _next_ordinal_to_read < 1 {
6430 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6431 _next_ordinal_to_read += 1;
6432 next_offset += envelope_size;
6433 }
6434
6435 let next_out_of_line = decoder.next_out_of_line();
6436 let handles_before = decoder.remaining_handles();
6437 if let Some((inlined, num_bytes, num_handles)) =
6438 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6439 {
6440 let member_inline_size =
6441 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
6442 decoder.context,
6443 );
6444 if inlined != (member_inline_size <= 4) {
6445 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6446 }
6447 let inner_offset;
6448 let mut inner_depth = depth.clone();
6449 if inlined {
6450 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6451 inner_offset = next_offset;
6452 } else {
6453 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6454 inner_depth.increment()?;
6455 }
6456 let val_ref = self
6457 .peer_sta_address
6458 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
6459 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
6460 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6461 {
6462 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6463 }
6464 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6465 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6466 }
6467 }
6468
6469 next_offset += envelope_size;
6470 _next_ordinal_to_read += 1;
6471 if next_offset >= end_offset {
6472 return Ok(());
6473 }
6474
6475 while _next_ordinal_to_read < 2 {
6477 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6478 _next_ordinal_to_read += 1;
6479 next_offset += envelope_size;
6480 }
6481
6482 let next_out_of_line = decoder.next_out_of_line();
6483 let handles_before = decoder.remaining_handles();
6484 if let Some((inlined, num_bytes, num_handles)) =
6485 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6486 {
6487 let member_inline_size =
6488 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6489 if inlined != (member_inline_size <= 4) {
6490 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6491 }
6492 let inner_offset;
6493 let mut inner_depth = depth.clone();
6494 if inlined {
6495 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6496 inner_offset = next_offset;
6497 } else {
6498 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6499 inner_depth.increment()?;
6500 }
6501 let val_ref = self.listen_interval.get_or_insert_with(|| fidl::new_empty!(u16, D));
6502 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
6503 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6504 {
6505 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6506 }
6507 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6508 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6509 }
6510 }
6511
6512 next_offset += envelope_size;
6513 _next_ordinal_to_read += 1;
6514 if next_offset >= end_offset {
6515 return Ok(());
6516 }
6517
6518 while _next_ordinal_to_read < 3 {
6520 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6521 _next_ordinal_to_read += 1;
6522 next_offset += envelope_size;
6523 }
6524
6525 let next_out_of_line = decoder.next_out_of_line();
6526 let handles_before = decoder.remaining_handles();
6527 if let Some((inlined, num_bytes, num_handles)) =
6528 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6529 {
6530 let member_inline_size =
6531 <fidl::encoding::Vector<u8, 32> as fidl::encoding::TypeMarker>::inline_size(
6532 decoder.context,
6533 );
6534 if inlined != (member_inline_size <= 4) {
6535 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6536 }
6537 let inner_offset;
6538 let mut inner_depth = depth.clone();
6539 if inlined {
6540 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6541 inner_offset = next_offset;
6542 } else {
6543 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6544 inner_depth.increment()?;
6545 }
6546 let val_ref = self
6547 .ssid
6548 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<u8, 32>, D));
6549 fidl::decode!(fidl::encoding::Vector<u8, 32>, D, val_ref, decoder, inner_offset, inner_depth)?;
6550 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6551 {
6552 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6553 }
6554 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6555 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6556 }
6557 }
6558
6559 next_offset += envelope_size;
6560 _next_ordinal_to_read += 1;
6561 if next_offset >= end_offset {
6562 return Ok(());
6563 }
6564
6565 while _next_ordinal_to_read < 4 {
6567 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6568 _next_ordinal_to_read += 1;
6569 next_offset += envelope_size;
6570 }
6571
6572 let next_out_of_line = decoder.next_out_of_line();
6573 let handles_before = decoder.remaining_handles();
6574 if let Some((inlined, num_bytes, num_handles)) =
6575 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6576 {
6577 let member_inline_size =
6578 <fidl::encoding::Vector<u8, 257> as fidl::encoding::TypeMarker>::inline_size(
6579 decoder.context,
6580 );
6581 if inlined != (member_inline_size <= 4) {
6582 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6583 }
6584 let inner_offset;
6585 let mut inner_depth = depth.clone();
6586 if inlined {
6587 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6588 inner_offset = next_offset;
6589 } else {
6590 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6591 inner_depth.increment()?;
6592 }
6593 let val_ref = self
6594 .rsne
6595 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<u8, 257>, D));
6596 fidl::decode!(fidl::encoding::Vector<u8, 257>, D, val_ref, decoder, inner_offset, inner_depth)?;
6597 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6598 {
6599 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6600 }
6601 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6602 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6603 }
6604 }
6605
6606 next_offset += envelope_size;
6607 _next_ordinal_to_read += 1;
6608 if next_offset >= end_offset {
6609 return Ok(());
6610 }
6611
6612 while _next_ordinal_to_read < 5 {
6614 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6615 _next_ordinal_to_read += 1;
6616 next_offset += envelope_size;
6617 }
6618
6619 let next_out_of_line = decoder.next_out_of_line();
6620 let handles_before = decoder.remaining_handles();
6621 if let Some((inlined, num_bytes, num_handles)) =
6622 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6623 {
6624 let member_inline_size =
6625 <fidl::encoding::Vector<u8, 514> as fidl::encoding::TypeMarker>::inline_size(
6626 decoder.context,
6627 );
6628 if inlined != (member_inline_size <= 4) {
6629 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6630 }
6631 let inner_offset;
6632 let mut inner_depth = depth.clone();
6633 if inlined {
6634 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6635 inner_offset = next_offset;
6636 } else {
6637 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6638 inner_depth.increment()?;
6639 }
6640 let val_ref = self
6641 .vendor_ie
6642 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<u8, 514>, D));
6643 fidl::decode!(fidl::encoding::Vector<u8, 514>, D, val_ref, decoder, inner_offset, inner_depth)?;
6644 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6645 {
6646 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6647 }
6648 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6649 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6650 }
6651 }
6652
6653 next_offset += envelope_size;
6654
6655 while next_offset < end_offset {
6657 _next_ordinal_to_read += 1;
6658 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6659 next_offset += envelope_size;
6660 }
6661
6662 Ok(())
6663 }
6664 }
6665
6666 impl WlanFullmacImplIfcAuthIndRequest {
6667 #[inline(always)]
6668 fn max_ordinal_present(&self) -> u64 {
6669 if let Some(_) = self.auth_type {
6670 return 2;
6671 }
6672 if let Some(_) = self.peer_sta_address {
6673 return 1;
6674 }
6675 0
6676 }
6677 }
6678
6679 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcAuthIndRequest {
6680 type Borrowed<'a> = &'a Self;
6681 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
6682 value
6683 }
6684 }
6685
6686 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcAuthIndRequest {
6687 type Owned = Self;
6688
6689 #[inline(always)]
6690 fn inline_align(_context: fidl::encoding::Context) -> usize {
6691 8
6692 }
6693
6694 #[inline(always)]
6695 fn inline_size(_context: fidl::encoding::Context) -> usize {
6696 16
6697 }
6698 }
6699
6700 unsafe impl<D: fidl::encoding::ResourceDialect>
6701 fidl::encoding::Encode<WlanFullmacImplIfcAuthIndRequest, D>
6702 for &WlanFullmacImplIfcAuthIndRequest
6703 {
6704 unsafe fn encode(
6705 self,
6706 encoder: &mut fidl::encoding::Encoder<'_, D>,
6707 offset: usize,
6708 mut depth: fidl::encoding::Depth,
6709 ) -> fidl::Result<()> {
6710 encoder.debug_check_bounds::<WlanFullmacImplIfcAuthIndRequest>(offset);
6711 let max_ordinal: u64 = self.max_ordinal_present();
6713 encoder.write_num(max_ordinal, offset);
6714 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
6715 if max_ordinal == 0 {
6717 return Ok(());
6718 }
6719 depth.increment()?;
6720 let envelope_size = 8;
6721 let bytes_len = max_ordinal as usize * envelope_size;
6722 #[allow(unused_variables)]
6723 let offset = encoder.out_of_line_offset(bytes_len);
6724 let mut _prev_end_offset: usize = 0;
6725 if 1 > max_ordinal {
6726 return Ok(());
6727 }
6728
6729 let cur_offset: usize = (1 - 1) * envelope_size;
6732
6733 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6735
6736 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
6741 self.peer_sta_address
6742 .as_ref()
6743 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
6744 encoder,
6745 offset + cur_offset,
6746 depth,
6747 )?;
6748
6749 _prev_end_offset = cur_offset + envelope_size;
6750 if 2 > max_ordinal {
6751 return Ok(());
6752 }
6753
6754 let cur_offset: usize = (2 - 1) * envelope_size;
6757
6758 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6760
6761 fidl::encoding::encode_in_envelope_optional::<WlanAuthType, D>(
6766 self.auth_type
6767 .as_ref()
6768 .map(<WlanAuthType as fidl::encoding::ValueTypeMarker>::borrow),
6769 encoder,
6770 offset + cur_offset,
6771 depth,
6772 )?;
6773
6774 _prev_end_offset = cur_offset + envelope_size;
6775
6776 Ok(())
6777 }
6778 }
6779
6780 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
6781 for WlanFullmacImplIfcAuthIndRequest
6782 {
6783 #[inline(always)]
6784 fn new_empty() -> Self {
6785 Self::default()
6786 }
6787
6788 unsafe fn decode(
6789 &mut self,
6790 decoder: &mut fidl::encoding::Decoder<'_, D>,
6791 offset: usize,
6792 mut depth: fidl::encoding::Depth,
6793 ) -> fidl::Result<()> {
6794 decoder.debug_check_bounds::<Self>(offset);
6795 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
6796 None => return Err(fidl::Error::NotNullable),
6797 Some(len) => len,
6798 };
6799 if len == 0 {
6801 return Ok(());
6802 };
6803 depth.increment()?;
6804 let envelope_size = 8;
6805 let bytes_len = len * envelope_size;
6806 let offset = decoder.out_of_line_offset(bytes_len)?;
6807 let mut _next_ordinal_to_read = 0;
6809 let mut next_offset = offset;
6810 let end_offset = offset + bytes_len;
6811 _next_ordinal_to_read += 1;
6812 if next_offset >= end_offset {
6813 return Ok(());
6814 }
6815
6816 while _next_ordinal_to_read < 1 {
6818 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6819 _next_ordinal_to_read += 1;
6820 next_offset += envelope_size;
6821 }
6822
6823 let next_out_of_line = decoder.next_out_of_line();
6824 let handles_before = decoder.remaining_handles();
6825 if let Some((inlined, num_bytes, num_handles)) =
6826 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6827 {
6828 let member_inline_size =
6829 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
6830 decoder.context,
6831 );
6832 if inlined != (member_inline_size <= 4) {
6833 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6834 }
6835 let inner_offset;
6836 let mut inner_depth = depth.clone();
6837 if inlined {
6838 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6839 inner_offset = next_offset;
6840 } else {
6841 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6842 inner_depth.increment()?;
6843 }
6844 let val_ref = self
6845 .peer_sta_address
6846 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
6847 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
6848 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6849 {
6850 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6851 }
6852 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6853 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6854 }
6855 }
6856
6857 next_offset += envelope_size;
6858 _next_ordinal_to_read += 1;
6859 if next_offset >= end_offset {
6860 return Ok(());
6861 }
6862
6863 while _next_ordinal_to_read < 2 {
6865 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6866 _next_ordinal_to_read += 1;
6867 next_offset += envelope_size;
6868 }
6869
6870 let next_out_of_line = decoder.next_out_of_line();
6871 let handles_before = decoder.remaining_handles();
6872 if let Some((inlined, num_bytes, num_handles)) =
6873 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6874 {
6875 let member_inline_size =
6876 <WlanAuthType as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6877 if inlined != (member_inline_size <= 4) {
6878 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6879 }
6880 let inner_offset;
6881 let mut inner_depth = depth.clone();
6882 if inlined {
6883 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6884 inner_offset = next_offset;
6885 } else {
6886 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6887 inner_depth.increment()?;
6888 }
6889 let val_ref =
6890 self.auth_type.get_or_insert_with(|| fidl::new_empty!(WlanAuthType, D));
6891 fidl::decode!(WlanAuthType, D, val_ref, decoder, inner_offset, inner_depth)?;
6892 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6893 {
6894 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6895 }
6896 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6897 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6898 }
6899 }
6900
6901 next_offset += envelope_size;
6902
6903 while next_offset < end_offset {
6905 _next_ordinal_to_read += 1;
6906 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6907 next_offset += envelope_size;
6908 }
6909
6910 Ok(())
6911 }
6912 }
6913
6914 impl WlanFullmacImplIfcConnectConfRequest {
6915 #[inline(always)]
6916 fn max_ordinal_present(&self) -> u64 {
6917 if let Some(_) = self.association_ies {
6918 return 4;
6919 }
6920 if let Some(_) = self.association_id {
6921 return 3;
6922 }
6923 if let Some(_) = self.result_code {
6924 return 2;
6925 }
6926 if let Some(_) = self.peer_sta_address {
6927 return 1;
6928 }
6929 0
6930 }
6931 }
6932
6933 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcConnectConfRequest {
6934 type Borrowed<'a> = &'a Self;
6935 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
6936 value
6937 }
6938 }
6939
6940 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcConnectConfRequest {
6941 type Owned = Self;
6942
6943 #[inline(always)]
6944 fn inline_align(_context: fidl::encoding::Context) -> usize {
6945 8
6946 }
6947
6948 #[inline(always)]
6949 fn inline_size(_context: fidl::encoding::Context) -> usize {
6950 16
6951 }
6952 }
6953
6954 unsafe impl<D: fidl::encoding::ResourceDialect>
6955 fidl::encoding::Encode<WlanFullmacImplIfcConnectConfRequest, D>
6956 for &WlanFullmacImplIfcConnectConfRequest
6957 {
6958 unsafe fn encode(
6959 self,
6960 encoder: &mut fidl::encoding::Encoder<'_, D>,
6961 offset: usize,
6962 mut depth: fidl::encoding::Depth,
6963 ) -> fidl::Result<()> {
6964 encoder.debug_check_bounds::<WlanFullmacImplIfcConnectConfRequest>(offset);
6965 let max_ordinal: u64 = self.max_ordinal_present();
6967 encoder.write_num(max_ordinal, offset);
6968 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
6969 if max_ordinal == 0 {
6971 return Ok(());
6972 }
6973 depth.increment()?;
6974 let envelope_size = 8;
6975 let bytes_len = max_ordinal as usize * envelope_size;
6976 #[allow(unused_variables)]
6977 let offset = encoder.out_of_line_offset(bytes_len);
6978 let mut _prev_end_offset: usize = 0;
6979 if 1 > max_ordinal {
6980 return Ok(());
6981 }
6982
6983 let cur_offset: usize = (1 - 1) * envelope_size;
6986
6987 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6989
6990 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
6995 self.peer_sta_address
6996 .as_ref()
6997 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
6998 encoder,
6999 offset + cur_offset,
7000 depth,
7001 )?;
7002
7003 _prev_end_offset = cur_offset + envelope_size;
7004 if 2 > max_ordinal {
7005 return Ok(());
7006 }
7007
7008 let cur_offset: usize = (2 - 1) * envelope_size;
7011
7012 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7014
7015 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_ieee80211_common::StatusCode, D>(
7020 self.result_code.as_ref().map(<fidl_fuchsia_wlan_ieee80211_common::StatusCode as fidl::encoding::ValueTypeMarker>::borrow),
7021 encoder, offset + cur_offset, depth
7022 )?;
7023
7024 _prev_end_offset = cur_offset + envelope_size;
7025 if 3 > max_ordinal {
7026 return Ok(());
7027 }
7028
7029 let cur_offset: usize = (3 - 1) * envelope_size;
7032
7033 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7035
7036 fidl::encoding::encode_in_envelope_optional::<u16, D>(
7041 self.association_id.as_ref().map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
7042 encoder,
7043 offset + cur_offset,
7044 depth,
7045 )?;
7046
7047 _prev_end_offset = cur_offset + envelope_size;
7048 if 4 > max_ordinal {
7049 return Ok(());
7050 }
7051
7052 let cur_offset: usize = (4 - 1) * envelope_size;
7055
7056 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7058
7059 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<u8>, D>(
7064 self.association_ies.as_ref().map(<fidl::encoding::UnboundedVector<u8> as fidl::encoding::ValueTypeMarker>::borrow),
7065 encoder, offset + cur_offset, depth
7066 )?;
7067
7068 _prev_end_offset = cur_offset + envelope_size;
7069
7070 Ok(())
7071 }
7072 }
7073
7074 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
7075 for WlanFullmacImplIfcConnectConfRequest
7076 {
7077 #[inline(always)]
7078 fn new_empty() -> Self {
7079 Self::default()
7080 }
7081
7082 unsafe fn decode(
7083 &mut self,
7084 decoder: &mut fidl::encoding::Decoder<'_, D>,
7085 offset: usize,
7086 mut depth: fidl::encoding::Depth,
7087 ) -> fidl::Result<()> {
7088 decoder.debug_check_bounds::<Self>(offset);
7089 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
7090 None => return Err(fidl::Error::NotNullable),
7091 Some(len) => len,
7092 };
7093 if len == 0 {
7095 return Ok(());
7096 };
7097 depth.increment()?;
7098 let envelope_size = 8;
7099 let bytes_len = len * envelope_size;
7100 let offset = decoder.out_of_line_offset(bytes_len)?;
7101 let mut _next_ordinal_to_read = 0;
7103 let mut next_offset = offset;
7104 let end_offset = offset + bytes_len;
7105 _next_ordinal_to_read += 1;
7106 if next_offset >= end_offset {
7107 return Ok(());
7108 }
7109
7110 while _next_ordinal_to_read < 1 {
7112 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7113 _next_ordinal_to_read += 1;
7114 next_offset += envelope_size;
7115 }
7116
7117 let next_out_of_line = decoder.next_out_of_line();
7118 let handles_before = decoder.remaining_handles();
7119 if let Some((inlined, num_bytes, num_handles)) =
7120 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7121 {
7122 let member_inline_size =
7123 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
7124 decoder.context,
7125 );
7126 if inlined != (member_inline_size <= 4) {
7127 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7128 }
7129 let inner_offset;
7130 let mut inner_depth = depth.clone();
7131 if inlined {
7132 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7133 inner_offset = next_offset;
7134 } else {
7135 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7136 inner_depth.increment()?;
7137 }
7138 let val_ref = self
7139 .peer_sta_address
7140 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
7141 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
7142 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7143 {
7144 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7145 }
7146 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7147 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7148 }
7149 }
7150
7151 next_offset += envelope_size;
7152 _next_ordinal_to_read += 1;
7153 if next_offset >= end_offset {
7154 return Ok(());
7155 }
7156
7157 while _next_ordinal_to_read < 2 {
7159 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7160 _next_ordinal_to_read += 1;
7161 next_offset += envelope_size;
7162 }
7163
7164 let next_out_of_line = decoder.next_out_of_line();
7165 let handles_before = decoder.remaining_handles();
7166 if let Some((inlined, num_bytes, num_handles)) =
7167 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7168 {
7169 let member_inline_size = <fidl_fuchsia_wlan_ieee80211_common::StatusCode as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7170 if inlined != (member_inline_size <= 4) {
7171 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7172 }
7173 let inner_offset;
7174 let mut inner_depth = depth.clone();
7175 if inlined {
7176 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7177 inner_offset = next_offset;
7178 } else {
7179 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7180 inner_depth.increment()?;
7181 }
7182 let val_ref = self.result_code.get_or_insert_with(|| {
7183 fidl::new_empty!(fidl_fuchsia_wlan_ieee80211_common::StatusCode, D)
7184 });
7185 fidl::decode!(
7186 fidl_fuchsia_wlan_ieee80211_common::StatusCode,
7187 D,
7188 val_ref,
7189 decoder,
7190 inner_offset,
7191 inner_depth
7192 )?;
7193 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7194 {
7195 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7196 }
7197 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7198 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7199 }
7200 }
7201
7202 next_offset += envelope_size;
7203 _next_ordinal_to_read += 1;
7204 if next_offset >= end_offset {
7205 return Ok(());
7206 }
7207
7208 while _next_ordinal_to_read < 3 {
7210 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7211 _next_ordinal_to_read += 1;
7212 next_offset += envelope_size;
7213 }
7214
7215 let next_out_of_line = decoder.next_out_of_line();
7216 let handles_before = decoder.remaining_handles();
7217 if let Some((inlined, num_bytes, num_handles)) =
7218 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7219 {
7220 let member_inline_size =
7221 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7222 if inlined != (member_inline_size <= 4) {
7223 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7224 }
7225 let inner_offset;
7226 let mut inner_depth = depth.clone();
7227 if inlined {
7228 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7229 inner_offset = next_offset;
7230 } else {
7231 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7232 inner_depth.increment()?;
7233 }
7234 let val_ref = self.association_id.get_or_insert_with(|| fidl::new_empty!(u16, D));
7235 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
7236 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7237 {
7238 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7239 }
7240 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7241 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7242 }
7243 }
7244
7245 next_offset += envelope_size;
7246 _next_ordinal_to_read += 1;
7247 if next_offset >= end_offset {
7248 return Ok(());
7249 }
7250
7251 while _next_ordinal_to_read < 4 {
7253 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7254 _next_ordinal_to_read += 1;
7255 next_offset += envelope_size;
7256 }
7257
7258 let next_out_of_line = decoder.next_out_of_line();
7259 let handles_before = decoder.remaining_handles();
7260 if let Some((inlined, num_bytes, num_handles)) =
7261 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7262 {
7263 let member_inline_size = <fidl::encoding::UnboundedVector<u8> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7264 if inlined != (member_inline_size <= 4) {
7265 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7266 }
7267 let inner_offset;
7268 let mut inner_depth = depth.clone();
7269 if inlined {
7270 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7271 inner_offset = next_offset;
7272 } else {
7273 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7274 inner_depth.increment()?;
7275 }
7276 let val_ref = self.association_ies.get_or_insert_with(|| {
7277 fidl::new_empty!(fidl::encoding::UnboundedVector<u8>, D)
7278 });
7279 fidl::decode!(
7280 fidl::encoding::UnboundedVector<u8>,
7281 D,
7282 val_ref,
7283 decoder,
7284 inner_offset,
7285 inner_depth
7286 )?;
7287 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7288 {
7289 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7290 }
7291 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7292 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7293 }
7294 }
7295
7296 next_offset += envelope_size;
7297
7298 while next_offset < end_offset {
7300 _next_ordinal_to_read += 1;
7301 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7302 next_offset += envelope_size;
7303 }
7304
7305 Ok(())
7306 }
7307 }
7308
7309 impl WlanFullmacImplIfcDeauthConfRequest {
7310 #[inline(always)]
7311 fn max_ordinal_present(&self) -> u64 {
7312 if let Some(_) = self.peer_sta_address {
7313 return 1;
7314 }
7315 0
7316 }
7317 }
7318
7319 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcDeauthConfRequest {
7320 type Borrowed<'a> = &'a Self;
7321 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
7322 value
7323 }
7324 }
7325
7326 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcDeauthConfRequest {
7327 type Owned = Self;
7328
7329 #[inline(always)]
7330 fn inline_align(_context: fidl::encoding::Context) -> usize {
7331 8
7332 }
7333
7334 #[inline(always)]
7335 fn inline_size(_context: fidl::encoding::Context) -> usize {
7336 16
7337 }
7338 }
7339
7340 unsafe impl<D: fidl::encoding::ResourceDialect>
7341 fidl::encoding::Encode<WlanFullmacImplIfcDeauthConfRequest, D>
7342 for &WlanFullmacImplIfcDeauthConfRequest
7343 {
7344 unsafe fn encode(
7345 self,
7346 encoder: &mut fidl::encoding::Encoder<'_, D>,
7347 offset: usize,
7348 mut depth: fidl::encoding::Depth,
7349 ) -> fidl::Result<()> {
7350 encoder.debug_check_bounds::<WlanFullmacImplIfcDeauthConfRequest>(offset);
7351 let max_ordinal: u64 = self.max_ordinal_present();
7353 encoder.write_num(max_ordinal, offset);
7354 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
7355 if max_ordinal == 0 {
7357 return Ok(());
7358 }
7359 depth.increment()?;
7360 let envelope_size = 8;
7361 let bytes_len = max_ordinal as usize * envelope_size;
7362 #[allow(unused_variables)]
7363 let offset = encoder.out_of_line_offset(bytes_len);
7364 let mut _prev_end_offset: usize = 0;
7365 if 1 > max_ordinal {
7366 return Ok(());
7367 }
7368
7369 let cur_offset: usize = (1 - 1) * envelope_size;
7372
7373 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7375
7376 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
7381 self.peer_sta_address
7382 .as_ref()
7383 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
7384 encoder,
7385 offset + cur_offset,
7386 depth,
7387 )?;
7388
7389 _prev_end_offset = cur_offset + envelope_size;
7390
7391 Ok(())
7392 }
7393 }
7394
7395 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
7396 for WlanFullmacImplIfcDeauthConfRequest
7397 {
7398 #[inline(always)]
7399 fn new_empty() -> Self {
7400 Self::default()
7401 }
7402
7403 unsafe fn decode(
7404 &mut self,
7405 decoder: &mut fidl::encoding::Decoder<'_, D>,
7406 offset: usize,
7407 mut depth: fidl::encoding::Depth,
7408 ) -> fidl::Result<()> {
7409 decoder.debug_check_bounds::<Self>(offset);
7410 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
7411 None => return Err(fidl::Error::NotNullable),
7412 Some(len) => len,
7413 };
7414 if len == 0 {
7416 return Ok(());
7417 };
7418 depth.increment()?;
7419 let envelope_size = 8;
7420 let bytes_len = len * envelope_size;
7421 let offset = decoder.out_of_line_offset(bytes_len)?;
7422 let mut _next_ordinal_to_read = 0;
7424 let mut next_offset = offset;
7425 let end_offset = offset + bytes_len;
7426 _next_ordinal_to_read += 1;
7427 if next_offset >= end_offset {
7428 return Ok(());
7429 }
7430
7431 while _next_ordinal_to_read < 1 {
7433 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7434 _next_ordinal_to_read += 1;
7435 next_offset += envelope_size;
7436 }
7437
7438 let next_out_of_line = decoder.next_out_of_line();
7439 let handles_before = decoder.remaining_handles();
7440 if let Some((inlined, num_bytes, num_handles)) =
7441 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7442 {
7443 let member_inline_size =
7444 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
7445 decoder.context,
7446 );
7447 if inlined != (member_inline_size <= 4) {
7448 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7449 }
7450 let inner_offset;
7451 let mut inner_depth = depth.clone();
7452 if inlined {
7453 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7454 inner_offset = next_offset;
7455 } else {
7456 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7457 inner_depth.increment()?;
7458 }
7459 let val_ref = self
7460 .peer_sta_address
7461 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
7462 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
7463 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7464 {
7465 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7466 }
7467 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7468 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7469 }
7470 }
7471
7472 next_offset += envelope_size;
7473
7474 while next_offset < end_offset {
7476 _next_ordinal_to_read += 1;
7477 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7478 next_offset += envelope_size;
7479 }
7480
7481 Ok(())
7482 }
7483 }
7484
7485 impl WlanFullmacImplIfcDeauthIndRequest {
7486 #[inline(always)]
7487 fn max_ordinal_present(&self) -> u64 {
7488 if let Some(_) = self.locally_initiated {
7489 return 3;
7490 }
7491 if let Some(_) = self.reason_code {
7492 return 2;
7493 }
7494 if let Some(_) = self.peer_sta_address {
7495 return 1;
7496 }
7497 0
7498 }
7499 }
7500
7501 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcDeauthIndRequest {
7502 type Borrowed<'a> = &'a Self;
7503 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
7504 value
7505 }
7506 }
7507
7508 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcDeauthIndRequest {
7509 type Owned = Self;
7510
7511 #[inline(always)]
7512 fn inline_align(_context: fidl::encoding::Context) -> usize {
7513 8
7514 }
7515
7516 #[inline(always)]
7517 fn inline_size(_context: fidl::encoding::Context) -> usize {
7518 16
7519 }
7520 }
7521
7522 unsafe impl<D: fidl::encoding::ResourceDialect>
7523 fidl::encoding::Encode<WlanFullmacImplIfcDeauthIndRequest, D>
7524 for &WlanFullmacImplIfcDeauthIndRequest
7525 {
7526 unsafe fn encode(
7527 self,
7528 encoder: &mut fidl::encoding::Encoder<'_, D>,
7529 offset: usize,
7530 mut depth: fidl::encoding::Depth,
7531 ) -> fidl::Result<()> {
7532 encoder.debug_check_bounds::<WlanFullmacImplIfcDeauthIndRequest>(offset);
7533 let max_ordinal: u64 = self.max_ordinal_present();
7535 encoder.write_num(max_ordinal, offset);
7536 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
7537 if max_ordinal == 0 {
7539 return Ok(());
7540 }
7541 depth.increment()?;
7542 let envelope_size = 8;
7543 let bytes_len = max_ordinal as usize * envelope_size;
7544 #[allow(unused_variables)]
7545 let offset = encoder.out_of_line_offset(bytes_len);
7546 let mut _prev_end_offset: usize = 0;
7547 if 1 > max_ordinal {
7548 return Ok(());
7549 }
7550
7551 let cur_offset: usize = (1 - 1) * envelope_size;
7554
7555 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7557
7558 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
7563 self.peer_sta_address
7564 .as_ref()
7565 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
7566 encoder,
7567 offset + cur_offset,
7568 depth,
7569 )?;
7570
7571 _prev_end_offset = cur_offset + envelope_size;
7572 if 2 > max_ordinal {
7573 return Ok(());
7574 }
7575
7576 let cur_offset: usize = (2 - 1) * envelope_size;
7579
7580 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7582
7583 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_ieee80211_common::ReasonCode, D>(
7588 self.reason_code.as_ref().map(<fidl_fuchsia_wlan_ieee80211_common::ReasonCode as fidl::encoding::ValueTypeMarker>::borrow),
7589 encoder, offset + cur_offset, depth
7590 )?;
7591
7592 _prev_end_offset = cur_offset + envelope_size;
7593 if 3 > max_ordinal {
7594 return Ok(());
7595 }
7596
7597 let cur_offset: usize = (3 - 1) * envelope_size;
7600
7601 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7603
7604 fidl::encoding::encode_in_envelope_optional::<bool, D>(
7609 self.locally_initiated
7610 .as_ref()
7611 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
7612 encoder,
7613 offset + cur_offset,
7614 depth,
7615 )?;
7616
7617 _prev_end_offset = cur_offset + envelope_size;
7618
7619 Ok(())
7620 }
7621 }
7622
7623 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
7624 for WlanFullmacImplIfcDeauthIndRequest
7625 {
7626 #[inline(always)]
7627 fn new_empty() -> Self {
7628 Self::default()
7629 }
7630
7631 unsafe fn decode(
7632 &mut self,
7633 decoder: &mut fidl::encoding::Decoder<'_, D>,
7634 offset: usize,
7635 mut depth: fidl::encoding::Depth,
7636 ) -> fidl::Result<()> {
7637 decoder.debug_check_bounds::<Self>(offset);
7638 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
7639 None => return Err(fidl::Error::NotNullable),
7640 Some(len) => len,
7641 };
7642 if len == 0 {
7644 return Ok(());
7645 };
7646 depth.increment()?;
7647 let envelope_size = 8;
7648 let bytes_len = len * envelope_size;
7649 let offset = decoder.out_of_line_offset(bytes_len)?;
7650 let mut _next_ordinal_to_read = 0;
7652 let mut next_offset = offset;
7653 let end_offset = offset + bytes_len;
7654 _next_ordinal_to_read += 1;
7655 if next_offset >= end_offset {
7656 return Ok(());
7657 }
7658
7659 while _next_ordinal_to_read < 1 {
7661 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7662 _next_ordinal_to_read += 1;
7663 next_offset += envelope_size;
7664 }
7665
7666 let next_out_of_line = decoder.next_out_of_line();
7667 let handles_before = decoder.remaining_handles();
7668 if let Some((inlined, num_bytes, num_handles)) =
7669 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7670 {
7671 let member_inline_size =
7672 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
7673 decoder.context,
7674 );
7675 if inlined != (member_inline_size <= 4) {
7676 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7677 }
7678 let inner_offset;
7679 let mut inner_depth = depth.clone();
7680 if inlined {
7681 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7682 inner_offset = next_offset;
7683 } else {
7684 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7685 inner_depth.increment()?;
7686 }
7687 let val_ref = self
7688 .peer_sta_address
7689 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
7690 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
7691 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7692 {
7693 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7694 }
7695 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7696 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7697 }
7698 }
7699
7700 next_offset += envelope_size;
7701 _next_ordinal_to_read += 1;
7702 if next_offset >= end_offset {
7703 return Ok(());
7704 }
7705
7706 while _next_ordinal_to_read < 2 {
7708 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7709 _next_ordinal_to_read += 1;
7710 next_offset += envelope_size;
7711 }
7712
7713 let next_out_of_line = decoder.next_out_of_line();
7714 let handles_before = decoder.remaining_handles();
7715 if let Some((inlined, num_bytes, num_handles)) =
7716 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7717 {
7718 let member_inline_size = <fidl_fuchsia_wlan_ieee80211_common::ReasonCode as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7719 if inlined != (member_inline_size <= 4) {
7720 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7721 }
7722 let inner_offset;
7723 let mut inner_depth = depth.clone();
7724 if inlined {
7725 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7726 inner_offset = next_offset;
7727 } else {
7728 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7729 inner_depth.increment()?;
7730 }
7731 let val_ref = self.reason_code.get_or_insert_with(|| {
7732 fidl::new_empty!(fidl_fuchsia_wlan_ieee80211_common::ReasonCode, D)
7733 });
7734 fidl::decode!(
7735 fidl_fuchsia_wlan_ieee80211_common::ReasonCode,
7736 D,
7737 val_ref,
7738 decoder,
7739 inner_offset,
7740 inner_depth
7741 )?;
7742 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7743 {
7744 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7745 }
7746 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7747 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7748 }
7749 }
7750
7751 next_offset += envelope_size;
7752 _next_ordinal_to_read += 1;
7753 if next_offset >= end_offset {
7754 return Ok(());
7755 }
7756
7757 while _next_ordinal_to_read < 3 {
7759 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7760 _next_ordinal_to_read += 1;
7761 next_offset += envelope_size;
7762 }
7763
7764 let next_out_of_line = decoder.next_out_of_line();
7765 let handles_before = decoder.remaining_handles();
7766 if let Some((inlined, num_bytes, num_handles)) =
7767 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7768 {
7769 let member_inline_size =
7770 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7771 if inlined != (member_inline_size <= 4) {
7772 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7773 }
7774 let inner_offset;
7775 let mut inner_depth = depth.clone();
7776 if inlined {
7777 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7778 inner_offset = next_offset;
7779 } else {
7780 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7781 inner_depth.increment()?;
7782 }
7783 let val_ref =
7784 self.locally_initiated.get_or_insert_with(|| fidl::new_empty!(bool, D));
7785 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
7786 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7787 {
7788 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7789 }
7790 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7791 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7792 }
7793 }
7794
7795 next_offset += envelope_size;
7796
7797 while next_offset < end_offset {
7799 _next_ordinal_to_read += 1;
7800 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7801 next_offset += envelope_size;
7802 }
7803
7804 Ok(())
7805 }
7806 }
7807
7808 impl WlanFullmacImplIfcDisassocConfRequest {
7809 #[inline(always)]
7810 fn max_ordinal_present(&self) -> u64 {
7811 if let Some(_) = self.status {
7812 return 1;
7813 }
7814 0
7815 }
7816 }
7817
7818 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcDisassocConfRequest {
7819 type Borrowed<'a> = &'a Self;
7820 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
7821 value
7822 }
7823 }
7824
7825 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcDisassocConfRequest {
7826 type Owned = Self;
7827
7828 #[inline(always)]
7829 fn inline_align(_context: fidl::encoding::Context) -> usize {
7830 8
7831 }
7832
7833 #[inline(always)]
7834 fn inline_size(_context: fidl::encoding::Context) -> usize {
7835 16
7836 }
7837 }
7838
7839 unsafe impl<D: fidl::encoding::ResourceDialect>
7840 fidl::encoding::Encode<WlanFullmacImplIfcDisassocConfRequest, D>
7841 for &WlanFullmacImplIfcDisassocConfRequest
7842 {
7843 unsafe fn encode(
7844 self,
7845 encoder: &mut fidl::encoding::Encoder<'_, D>,
7846 offset: usize,
7847 mut depth: fidl::encoding::Depth,
7848 ) -> fidl::Result<()> {
7849 encoder.debug_check_bounds::<WlanFullmacImplIfcDisassocConfRequest>(offset);
7850 let max_ordinal: u64 = self.max_ordinal_present();
7852 encoder.write_num(max_ordinal, offset);
7853 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
7854 if max_ordinal == 0 {
7856 return Ok(());
7857 }
7858 depth.increment()?;
7859 let envelope_size = 8;
7860 let bytes_len = max_ordinal as usize * envelope_size;
7861 #[allow(unused_variables)]
7862 let offset = encoder.out_of_line_offset(bytes_len);
7863 let mut _prev_end_offset: usize = 0;
7864 if 1 > max_ordinal {
7865 return Ok(());
7866 }
7867
7868 let cur_offset: usize = (1 - 1) * envelope_size;
7871
7872 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7874
7875 fidl::encoding::encode_in_envelope_optional::<i32, D>(
7880 self.status.as_ref().map(<i32 as fidl::encoding::ValueTypeMarker>::borrow),
7881 encoder,
7882 offset + cur_offset,
7883 depth,
7884 )?;
7885
7886 _prev_end_offset = cur_offset + envelope_size;
7887
7888 Ok(())
7889 }
7890 }
7891
7892 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
7893 for WlanFullmacImplIfcDisassocConfRequest
7894 {
7895 #[inline(always)]
7896 fn new_empty() -> Self {
7897 Self::default()
7898 }
7899
7900 unsafe fn decode(
7901 &mut self,
7902 decoder: &mut fidl::encoding::Decoder<'_, D>,
7903 offset: usize,
7904 mut depth: fidl::encoding::Depth,
7905 ) -> fidl::Result<()> {
7906 decoder.debug_check_bounds::<Self>(offset);
7907 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
7908 None => return Err(fidl::Error::NotNullable),
7909 Some(len) => len,
7910 };
7911 if len == 0 {
7913 return Ok(());
7914 };
7915 depth.increment()?;
7916 let envelope_size = 8;
7917 let bytes_len = len * envelope_size;
7918 let offset = decoder.out_of_line_offset(bytes_len)?;
7919 let mut _next_ordinal_to_read = 0;
7921 let mut next_offset = offset;
7922 let end_offset = offset + bytes_len;
7923 _next_ordinal_to_read += 1;
7924 if next_offset >= end_offset {
7925 return Ok(());
7926 }
7927
7928 while _next_ordinal_to_read < 1 {
7930 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7931 _next_ordinal_to_read += 1;
7932 next_offset += envelope_size;
7933 }
7934
7935 let next_out_of_line = decoder.next_out_of_line();
7936 let handles_before = decoder.remaining_handles();
7937 if let Some((inlined, num_bytes, num_handles)) =
7938 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7939 {
7940 let member_inline_size =
7941 <i32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7942 if inlined != (member_inline_size <= 4) {
7943 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7944 }
7945 let inner_offset;
7946 let mut inner_depth = depth.clone();
7947 if inlined {
7948 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7949 inner_offset = next_offset;
7950 } else {
7951 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7952 inner_depth.increment()?;
7953 }
7954 let val_ref = self.status.get_or_insert_with(|| fidl::new_empty!(i32, D));
7955 fidl::decode!(i32, D, val_ref, decoder, inner_offset, inner_depth)?;
7956 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7957 {
7958 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7959 }
7960 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7961 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7962 }
7963 }
7964
7965 next_offset += envelope_size;
7966
7967 while next_offset < end_offset {
7969 _next_ordinal_to_read += 1;
7970 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7971 next_offset += envelope_size;
7972 }
7973
7974 Ok(())
7975 }
7976 }
7977
7978 impl WlanFullmacImplIfcDisassocIndRequest {
7979 #[inline(always)]
7980 fn max_ordinal_present(&self) -> u64 {
7981 if let Some(_) = self.locally_initiated {
7982 return 3;
7983 }
7984 if let Some(_) = self.reason_code {
7985 return 2;
7986 }
7987 if let Some(_) = self.peer_sta_address {
7988 return 1;
7989 }
7990 0
7991 }
7992 }
7993
7994 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcDisassocIndRequest {
7995 type Borrowed<'a> = &'a Self;
7996 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
7997 value
7998 }
7999 }
8000
8001 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcDisassocIndRequest {
8002 type Owned = Self;
8003
8004 #[inline(always)]
8005 fn inline_align(_context: fidl::encoding::Context) -> usize {
8006 8
8007 }
8008
8009 #[inline(always)]
8010 fn inline_size(_context: fidl::encoding::Context) -> usize {
8011 16
8012 }
8013 }
8014
8015 unsafe impl<D: fidl::encoding::ResourceDialect>
8016 fidl::encoding::Encode<WlanFullmacImplIfcDisassocIndRequest, D>
8017 for &WlanFullmacImplIfcDisassocIndRequest
8018 {
8019 unsafe fn encode(
8020 self,
8021 encoder: &mut fidl::encoding::Encoder<'_, D>,
8022 offset: usize,
8023 mut depth: fidl::encoding::Depth,
8024 ) -> fidl::Result<()> {
8025 encoder.debug_check_bounds::<WlanFullmacImplIfcDisassocIndRequest>(offset);
8026 let max_ordinal: u64 = self.max_ordinal_present();
8028 encoder.write_num(max_ordinal, offset);
8029 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
8030 if max_ordinal == 0 {
8032 return Ok(());
8033 }
8034 depth.increment()?;
8035 let envelope_size = 8;
8036 let bytes_len = max_ordinal as usize * envelope_size;
8037 #[allow(unused_variables)]
8038 let offset = encoder.out_of_line_offset(bytes_len);
8039 let mut _prev_end_offset: usize = 0;
8040 if 1 > max_ordinal {
8041 return Ok(());
8042 }
8043
8044 let cur_offset: usize = (1 - 1) * envelope_size;
8047
8048 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8050
8051 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
8056 self.peer_sta_address
8057 .as_ref()
8058 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
8059 encoder,
8060 offset + cur_offset,
8061 depth,
8062 )?;
8063
8064 _prev_end_offset = cur_offset + envelope_size;
8065 if 2 > max_ordinal {
8066 return Ok(());
8067 }
8068
8069 let cur_offset: usize = (2 - 1) * envelope_size;
8072
8073 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8075
8076 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_ieee80211_common::ReasonCode, D>(
8081 self.reason_code.as_ref().map(<fidl_fuchsia_wlan_ieee80211_common::ReasonCode as fidl::encoding::ValueTypeMarker>::borrow),
8082 encoder, offset + cur_offset, depth
8083 )?;
8084
8085 _prev_end_offset = cur_offset + envelope_size;
8086 if 3 > max_ordinal {
8087 return Ok(());
8088 }
8089
8090 let cur_offset: usize = (3 - 1) * envelope_size;
8093
8094 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8096
8097 fidl::encoding::encode_in_envelope_optional::<bool, D>(
8102 self.locally_initiated
8103 .as_ref()
8104 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
8105 encoder,
8106 offset + cur_offset,
8107 depth,
8108 )?;
8109
8110 _prev_end_offset = cur_offset + envelope_size;
8111
8112 Ok(())
8113 }
8114 }
8115
8116 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
8117 for WlanFullmacImplIfcDisassocIndRequest
8118 {
8119 #[inline(always)]
8120 fn new_empty() -> Self {
8121 Self::default()
8122 }
8123
8124 unsafe fn decode(
8125 &mut self,
8126 decoder: &mut fidl::encoding::Decoder<'_, D>,
8127 offset: usize,
8128 mut depth: fidl::encoding::Depth,
8129 ) -> fidl::Result<()> {
8130 decoder.debug_check_bounds::<Self>(offset);
8131 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
8132 None => return Err(fidl::Error::NotNullable),
8133 Some(len) => len,
8134 };
8135 if len == 0 {
8137 return Ok(());
8138 };
8139 depth.increment()?;
8140 let envelope_size = 8;
8141 let bytes_len = len * envelope_size;
8142 let offset = decoder.out_of_line_offset(bytes_len)?;
8143 let mut _next_ordinal_to_read = 0;
8145 let mut next_offset = offset;
8146 let end_offset = offset + bytes_len;
8147 _next_ordinal_to_read += 1;
8148 if next_offset >= end_offset {
8149 return Ok(());
8150 }
8151
8152 while _next_ordinal_to_read < 1 {
8154 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8155 _next_ordinal_to_read += 1;
8156 next_offset += envelope_size;
8157 }
8158
8159 let next_out_of_line = decoder.next_out_of_line();
8160 let handles_before = decoder.remaining_handles();
8161 if let Some((inlined, num_bytes, num_handles)) =
8162 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8163 {
8164 let member_inline_size =
8165 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
8166 decoder.context,
8167 );
8168 if inlined != (member_inline_size <= 4) {
8169 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8170 }
8171 let inner_offset;
8172 let mut inner_depth = depth.clone();
8173 if inlined {
8174 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8175 inner_offset = next_offset;
8176 } else {
8177 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8178 inner_depth.increment()?;
8179 }
8180 let val_ref = self
8181 .peer_sta_address
8182 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
8183 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
8184 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8185 {
8186 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8187 }
8188 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8189 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8190 }
8191 }
8192
8193 next_offset += envelope_size;
8194 _next_ordinal_to_read += 1;
8195 if next_offset >= end_offset {
8196 return Ok(());
8197 }
8198
8199 while _next_ordinal_to_read < 2 {
8201 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8202 _next_ordinal_to_read += 1;
8203 next_offset += envelope_size;
8204 }
8205
8206 let next_out_of_line = decoder.next_out_of_line();
8207 let handles_before = decoder.remaining_handles();
8208 if let Some((inlined, num_bytes, num_handles)) =
8209 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8210 {
8211 let member_inline_size = <fidl_fuchsia_wlan_ieee80211_common::ReasonCode as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8212 if inlined != (member_inline_size <= 4) {
8213 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8214 }
8215 let inner_offset;
8216 let mut inner_depth = depth.clone();
8217 if inlined {
8218 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8219 inner_offset = next_offset;
8220 } else {
8221 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8222 inner_depth.increment()?;
8223 }
8224 let val_ref = self.reason_code.get_or_insert_with(|| {
8225 fidl::new_empty!(fidl_fuchsia_wlan_ieee80211_common::ReasonCode, D)
8226 });
8227 fidl::decode!(
8228 fidl_fuchsia_wlan_ieee80211_common::ReasonCode,
8229 D,
8230 val_ref,
8231 decoder,
8232 inner_offset,
8233 inner_depth
8234 )?;
8235 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8236 {
8237 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8238 }
8239 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8240 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8241 }
8242 }
8243
8244 next_offset += envelope_size;
8245 _next_ordinal_to_read += 1;
8246 if next_offset >= end_offset {
8247 return Ok(());
8248 }
8249
8250 while _next_ordinal_to_read < 3 {
8252 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8253 _next_ordinal_to_read += 1;
8254 next_offset += envelope_size;
8255 }
8256
8257 let next_out_of_line = decoder.next_out_of_line();
8258 let handles_before = decoder.remaining_handles();
8259 if let Some((inlined, num_bytes, num_handles)) =
8260 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8261 {
8262 let member_inline_size =
8263 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8264 if inlined != (member_inline_size <= 4) {
8265 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8266 }
8267 let inner_offset;
8268 let mut inner_depth = depth.clone();
8269 if inlined {
8270 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8271 inner_offset = next_offset;
8272 } else {
8273 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8274 inner_depth.increment()?;
8275 }
8276 let val_ref =
8277 self.locally_initiated.get_or_insert_with(|| fidl::new_empty!(bool, D));
8278 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
8279 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8280 {
8281 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8282 }
8283 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8284 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8285 }
8286 }
8287
8288 next_offset += envelope_size;
8289
8290 while next_offset < end_offset {
8292 _next_ordinal_to_read += 1;
8293 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8294 next_offset += envelope_size;
8295 }
8296
8297 Ok(())
8298 }
8299 }
8300
8301 impl WlanFullmacImplIfcEapolConfRequest {
8302 #[inline(always)]
8303 fn max_ordinal_present(&self) -> u64 {
8304 if let Some(_) = self.dst_addr {
8305 return 2;
8306 }
8307 if let Some(_) = self.result_code {
8308 return 1;
8309 }
8310 0
8311 }
8312 }
8313
8314 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcEapolConfRequest {
8315 type Borrowed<'a> = &'a Self;
8316 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
8317 value
8318 }
8319 }
8320
8321 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcEapolConfRequest {
8322 type Owned = Self;
8323
8324 #[inline(always)]
8325 fn inline_align(_context: fidl::encoding::Context) -> usize {
8326 8
8327 }
8328
8329 #[inline(always)]
8330 fn inline_size(_context: fidl::encoding::Context) -> usize {
8331 16
8332 }
8333 }
8334
8335 unsafe impl<D: fidl::encoding::ResourceDialect>
8336 fidl::encoding::Encode<WlanFullmacImplIfcEapolConfRequest, D>
8337 for &WlanFullmacImplIfcEapolConfRequest
8338 {
8339 unsafe fn encode(
8340 self,
8341 encoder: &mut fidl::encoding::Encoder<'_, D>,
8342 offset: usize,
8343 mut depth: fidl::encoding::Depth,
8344 ) -> fidl::Result<()> {
8345 encoder.debug_check_bounds::<WlanFullmacImplIfcEapolConfRequest>(offset);
8346 let max_ordinal: u64 = self.max_ordinal_present();
8348 encoder.write_num(max_ordinal, offset);
8349 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
8350 if max_ordinal == 0 {
8352 return Ok(());
8353 }
8354 depth.increment()?;
8355 let envelope_size = 8;
8356 let bytes_len = max_ordinal as usize * envelope_size;
8357 #[allow(unused_variables)]
8358 let offset = encoder.out_of_line_offset(bytes_len);
8359 let mut _prev_end_offset: usize = 0;
8360 if 1 > max_ordinal {
8361 return Ok(());
8362 }
8363
8364 let cur_offset: usize = (1 - 1) * envelope_size;
8367
8368 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8370
8371 fidl::encoding::encode_in_envelope_optional::<EapolTxResult, D>(
8376 self.result_code
8377 .as_ref()
8378 .map(<EapolTxResult as fidl::encoding::ValueTypeMarker>::borrow),
8379 encoder,
8380 offset + cur_offset,
8381 depth,
8382 )?;
8383
8384 _prev_end_offset = cur_offset + envelope_size;
8385 if 2 > max_ordinal {
8386 return Ok(());
8387 }
8388
8389 let cur_offset: usize = (2 - 1) * envelope_size;
8392
8393 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8395
8396 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
8401 self.dst_addr
8402 .as_ref()
8403 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
8404 encoder,
8405 offset + cur_offset,
8406 depth,
8407 )?;
8408
8409 _prev_end_offset = cur_offset + envelope_size;
8410
8411 Ok(())
8412 }
8413 }
8414
8415 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
8416 for WlanFullmacImplIfcEapolConfRequest
8417 {
8418 #[inline(always)]
8419 fn new_empty() -> Self {
8420 Self::default()
8421 }
8422
8423 unsafe fn decode(
8424 &mut self,
8425 decoder: &mut fidl::encoding::Decoder<'_, D>,
8426 offset: usize,
8427 mut depth: fidl::encoding::Depth,
8428 ) -> fidl::Result<()> {
8429 decoder.debug_check_bounds::<Self>(offset);
8430 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
8431 None => return Err(fidl::Error::NotNullable),
8432 Some(len) => len,
8433 };
8434 if len == 0 {
8436 return Ok(());
8437 };
8438 depth.increment()?;
8439 let envelope_size = 8;
8440 let bytes_len = len * envelope_size;
8441 let offset = decoder.out_of_line_offset(bytes_len)?;
8442 let mut _next_ordinal_to_read = 0;
8444 let mut next_offset = offset;
8445 let end_offset = offset + bytes_len;
8446 _next_ordinal_to_read += 1;
8447 if next_offset >= end_offset {
8448 return Ok(());
8449 }
8450
8451 while _next_ordinal_to_read < 1 {
8453 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8454 _next_ordinal_to_read += 1;
8455 next_offset += envelope_size;
8456 }
8457
8458 let next_out_of_line = decoder.next_out_of_line();
8459 let handles_before = decoder.remaining_handles();
8460 if let Some((inlined, num_bytes, num_handles)) =
8461 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8462 {
8463 let member_inline_size =
8464 <EapolTxResult as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8465 if inlined != (member_inline_size <= 4) {
8466 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8467 }
8468 let inner_offset;
8469 let mut inner_depth = depth.clone();
8470 if inlined {
8471 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8472 inner_offset = next_offset;
8473 } else {
8474 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8475 inner_depth.increment()?;
8476 }
8477 let val_ref =
8478 self.result_code.get_or_insert_with(|| fidl::new_empty!(EapolTxResult, D));
8479 fidl::decode!(EapolTxResult, D, val_ref, decoder, inner_offset, inner_depth)?;
8480 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8481 {
8482 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8483 }
8484 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8485 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8486 }
8487 }
8488
8489 next_offset += envelope_size;
8490 _next_ordinal_to_read += 1;
8491 if next_offset >= end_offset {
8492 return Ok(());
8493 }
8494
8495 while _next_ordinal_to_read < 2 {
8497 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8498 _next_ordinal_to_read += 1;
8499 next_offset += envelope_size;
8500 }
8501
8502 let next_out_of_line = decoder.next_out_of_line();
8503 let handles_before = decoder.remaining_handles();
8504 if let Some((inlined, num_bytes, num_handles)) =
8505 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8506 {
8507 let member_inline_size =
8508 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
8509 decoder.context,
8510 );
8511 if inlined != (member_inline_size <= 4) {
8512 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8513 }
8514 let inner_offset;
8515 let mut inner_depth = depth.clone();
8516 if inlined {
8517 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8518 inner_offset = next_offset;
8519 } else {
8520 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8521 inner_depth.increment()?;
8522 }
8523 let val_ref = self
8524 .dst_addr
8525 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
8526 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
8527 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8528 {
8529 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8530 }
8531 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8532 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8533 }
8534 }
8535
8536 next_offset += envelope_size;
8537
8538 while next_offset < end_offset {
8540 _next_ordinal_to_read += 1;
8541 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8542 next_offset += envelope_size;
8543 }
8544
8545 Ok(())
8546 }
8547 }
8548
8549 impl WlanFullmacImplIfcEapolIndRequest {
8550 #[inline(always)]
8551 fn max_ordinal_present(&self) -> u64 {
8552 if let Some(_) = self.data {
8553 return 3;
8554 }
8555 if let Some(_) = self.dst_addr {
8556 return 2;
8557 }
8558 if let Some(_) = self.src_addr {
8559 return 1;
8560 }
8561 0
8562 }
8563 }
8564
8565 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcEapolIndRequest {
8566 type Borrowed<'a> = &'a Self;
8567 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
8568 value
8569 }
8570 }
8571
8572 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcEapolIndRequest {
8573 type Owned = Self;
8574
8575 #[inline(always)]
8576 fn inline_align(_context: fidl::encoding::Context) -> usize {
8577 8
8578 }
8579
8580 #[inline(always)]
8581 fn inline_size(_context: fidl::encoding::Context) -> usize {
8582 16
8583 }
8584 }
8585
8586 unsafe impl<D: fidl::encoding::ResourceDialect>
8587 fidl::encoding::Encode<WlanFullmacImplIfcEapolIndRequest, D>
8588 for &WlanFullmacImplIfcEapolIndRequest
8589 {
8590 unsafe fn encode(
8591 self,
8592 encoder: &mut fidl::encoding::Encoder<'_, D>,
8593 offset: usize,
8594 mut depth: fidl::encoding::Depth,
8595 ) -> fidl::Result<()> {
8596 encoder.debug_check_bounds::<WlanFullmacImplIfcEapolIndRequest>(offset);
8597 let max_ordinal: u64 = self.max_ordinal_present();
8599 encoder.write_num(max_ordinal, offset);
8600 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
8601 if max_ordinal == 0 {
8603 return Ok(());
8604 }
8605 depth.increment()?;
8606 let envelope_size = 8;
8607 let bytes_len = max_ordinal as usize * envelope_size;
8608 #[allow(unused_variables)]
8609 let offset = encoder.out_of_line_offset(bytes_len);
8610 let mut _prev_end_offset: usize = 0;
8611 if 1 > max_ordinal {
8612 return Ok(());
8613 }
8614
8615 let cur_offset: usize = (1 - 1) * envelope_size;
8618
8619 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8621
8622 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
8627 self.src_addr
8628 .as_ref()
8629 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
8630 encoder,
8631 offset + cur_offset,
8632 depth,
8633 )?;
8634
8635 _prev_end_offset = cur_offset + envelope_size;
8636 if 2 > max_ordinal {
8637 return Ok(());
8638 }
8639
8640 let cur_offset: usize = (2 - 1) * envelope_size;
8643
8644 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8646
8647 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
8652 self.dst_addr
8653 .as_ref()
8654 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
8655 encoder,
8656 offset + cur_offset,
8657 depth,
8658 )?;
8659
8660 _prev_end_offset = cur_offset + envelope_size;
8661 if 3 > max_ordinal {
8662 return Ok(());
8663 }
8664
8665 let cur_offset: usize = (3 - 1) * envelope_size;
8668
8669 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8671
8672 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<u8>, D>(
8677 self.data.as_ref().map(<fidl::encoding::UnboundedVector<u8> as fidl::encoding::ValueTypeMarker>::borrow),
8678 encoder, offset + cur_offset, depth
8679 )?;
8680
8681 _prev_end_offset = cur_offset + envelope_size;
8682
8683 Ok(())
8684 }
8685 }
8686
8687 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
8688 for WlanFullmacImplIfcEapolIndRequest
8689 {
8690 #[inline(always)]
8691 fn new_empty() -> Self {
8692 Self::default()
8693 }
8694
8695 unsafe fn decode(
8696 &mut self,
8697 decoder: &mut fidl::encoding::Decoder<'_, D>,
8698 offset: usize,
8699 mut depth: fidl::encoding::Depth,
8700 ) -> fidl::Result<()> {
8701 decoder.debug_check_bounds::<Self>(offset);
8702 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
8703 None => return Err(fidl::Error::NotNullable),
8704 Some(len) => len,
8705 };
8706 if len == 0 {
8708 return Ok(());
8709 };
8710 depth.increment()?;
8711 let envelope_size = 8;
8712 let bytes_len = len * envelope_size;
8713 let offset = decoder.out_of_line_offset(bytes_len)?;
8714 let mut _next_ordinal_to_read = 0;
8716 let mut next_offset = offset;
8717 let end_offset = offset + bytes_len;
8718 _next_ordinal_to_read += 1;
8719 if next_offset >= end_offset {
8720 return Ok(());
8721 }
8722
8723 while _next_ordinal_to_read < 1 {
8725 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8726 _next_ordinal_to_read += 1;
8727 next_offset += envelope_size;
8728 }
8729
8730 let next_out_of_line = decoder.next_out_of_line();
8731 let handles_before = decoder.remaining_handles();
8732 if let Some((inlined, num_bytes, num_handles)) =
8733 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8734 {
8735 let member_inline_size =
8736 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
8737 decoder.context,
8738 );
8739 if inlined != (member_inline_size <= 4) {
8740 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8741 }
8742 let inner_offset;
8743 let mut inner_depth = depth.clone();
8744 if inlined {
8745 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8746 inner_offset = next_offset;
8747 } else {
8748 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8749 inner_depth.increment()?;
8750 }
8751 let val_ref = self
8752 .src_addr
8753 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
8754 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
8755 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8756 {
8757 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8758 }
8759 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8760 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8761 }
8762 }
8763
8764 next_offset += envelope_size;
8765 _next_ordinal_to_read += 1;
8766 if next_offset >= end_offset {
8767 return Ok(());
8768 }
8769
8770 while _next_ordinal_to_read < 2 {
8772 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8773 _next_ordinal_to_read += 1;
8774 next_offset += envelope_size;
8775 }
8776
8777 let next_out_of_line = decoder.next_out_of_line();
8778 let handles_before = decoder.remaining_handles();
8779 if let Some((inlined, num_bytes, num_handles)) =
8780 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8781 {
8782 let member_inline_size =
8783 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
8784 decoder.context,
8785 );
8786 if inlined != (member_inline_size <= 4) {
8787 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8788 }
8789 let inner_offset;
8790 let mut inner_depth = depth.clone();
8791 if inlined {
8792 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8793 inner_offset = next_offset;
8794 } else {
8795 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8796 inner_depth.increment()?;
8797 }
8798 let val_ref = self
8799 .dst_addr
8800 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
8801 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
8802 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8803 {
8804 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8805 }
8806 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8807 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8808 }
8809 }
8810
8811 next_offset += envelope_size;
8812 _next_ordinal_to_read += 1;
8813 if next_offset >= end_offset {
8814 return Ok(());
8815 }
8816
8817 while _next_ordinal_to_read < 3 {
8819 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8820 _next_ordinal_to_read += 1;
8821 next_offset += envelope_size;
8822 }
8823
8824 let next_out_of_line = decoder.next_out_of_line();
8825 let handles_before = decoder.remaining_handles();
8826 if let Some((inlined, num_bytes, num_handles)) =
8827 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8828 {
8829 let member_inline_size = <fidl::encoding::UnboundedVector<u8> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8830 if inlined != (member_inline_size <= 4) {
8831 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8832 }
8833 let inner_offset;
8834 let mut inner_depth = depth.clone();
8835 if inlined {
8836 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8837 inner_offset = next_offset;
8838 } else {
8839 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8840 inner_depth.increment()?;
8841 }
8842 let val_ref = self.data.get_or_insert_with(|| {
8843 fidl::new_empty!(fidl::encoding::UnboundedVector<u8>, D)
8844 });
8845 fidl::decode!(
8846 fidl::encoding::UnboundedVector<u8>,
8847 D,
8848 val_ref,
8849 decoder,
8850 inner_offset,
8851 inner_depth
8852 )?;
8853 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8854 {
8855 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8856 }
8857 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8858 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8859 }
8860 }
8861
8862 next_offset += envelope_size;
8863
8864 while next_offset < end_offset {
8866 _next_ordinal_to_read += 1;
8867 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8868 next_offset += envelope_size;
8869 }
8870
8871 Ok(())
8872 }
8873 }
8874
8875 impl WlanFullmacImplIfcOnPmkAvailableRequest {
8876 #[inline(always)]
8877 fn max_ordinal_present(&self) -> u64 {
8878 if let Some(_) = self.pmkid {
8879 return 2;
8880 }
8881 if let Some(_) = self.pmk {
8882 return 1;
8883 }
8884 0
8885 }
8886 }
8887
8888 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcOnPmkAvailableRequest {
8889 type Borrowed<'a> = &'a Self;
8890 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
8891 value
8892 }
8893 }
8894
8895 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcOnPmkAvailableRequest {
8896 type Owned = Self;
8897
8898 #[inline(always)]
8899 fn inline_align(_context: fidl::encoding::Context) -> usize {
8900 8
8901 }
8902
8903 #[inline(always)]
8904 fn inline_size(_context: fidl::encoding::Context) -> usize {
8905 16
8906 }
8907 }
8908
8909 unsafe impl<D: fidl::encoding::ResourceDialect>
8910 fidl::encoding::Encode<WlanFullmacImplIfcOnPmkAvailableRequest, D>
8911 for &WlanFullmacImplIfcOnPmkAvailableRequest
8912 {
8913 unsafe fn encode(
8914 self,
8915 encoder: &mut fidl::encoding::Encoder<'_, D>,
8916 offset: usize,
8917 mut depth: fidl::encoding::Depth,
8918 ) -> fidl::Result<()> {
8919 encoder.debug_check_bounds::<WlanFullmacImplIfcOnPmkAvailableRequest>(offset);
8920 let max_ordinal: u64 = self.max_ordinal_present();
8922 encoder.write_num(max_ordinal, offset);
8923 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
8924 if max_ordinal == 0 {
8926 return Ok(());
8927 }
8928 depth.increment()?;
8929 let envelope_size = 8;
8930 let bytes_len = max_ordinal as usize * envelope_size;
8931 #[allow(unused_variables)]
8932 let offset = encoder.out_of_line_offset(bytes_len);
8933 let mut _prev_end_offset: usize = 0;
8934 if 1 > max_ordinal {
8935 return Ok(());
8936 }
8937
8938 let cur_offset: usize = (1 - 1) * envelope_size;
8941
8942 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8944
8945 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<u8>, D>(
8950 self.pmk.as_ref().map(<fidl::encoding::UnboundedVector<u8> as fidl::encoding::ValueTypeMarker>::borrow),
8951 encoder, offset + cur_offset, depth
8952 )?;
8953
8954 _prev_end_offset = cur_offset + envelope_size;
8955 if 2 > max_ordinal {
8956 return Ok(());
8957 }
8958
8959 let cur_offset: usize = (2 - 1) * envelope_size;
8962
8963 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8965
8966 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<u8>, D>(
8971 self.pmkid.as_ref().map(<fidl::encoding::UnboundedVector<u8> as fidl::encoding::ValueTypeMarker>::borrow),
8972 encoder, offset + cur_offset, depth
8973 )?;
8974
8975 _prev_end_offset = cur_offset + envelope_size;
8976
8977 Ok(())
8978 }
8979 }
8980
8981 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
8982 for WlanFullmacImplIfcOnPmkAvailableRequest
8983 {
8984 #[inline(always)]
8985 fn new_empty() -> Self {
8986 Self::default()
8987 }
8988
8989 unsafe fn decode(
8990 &mut self,
8991 decoder: &mut fidl::encoding::Decoder<'_, D>,
8992 offset: usize,
8993 mut depth: fidl::encoding::Depth,
8994 ) -> fidl::Result<()> {
8995 decoder.debug_check_bounds::<Self>(offset);
8996 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
8997 None => return Err(fidl::Error::NotNullable),
8998 Some(len) => len,
8999 };
9000 if len == 0 {
9002 return Ok(());
9003 };
9004 depth.increment()?;
9005 let envelope_size = 8;
9006 let bytes_len = len * envelope_size;
9007 let offset = decoder.out_of_line_offset(bytes_len)?;
9008 let mut _next_ordinal_to_read = 0;
9010 let mut next_offset = offset;
9011 let end_offset = offset + bytes_len;
9012 _next_ordinal_to_read += 1;
9013 if next_offset >= end_offset {
9014 return Ok(());
9015 }
9016
9017 while _next_ordinal_to_read < 1 {
9019 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9020 _next_ordinal_to_read += 1;
9021 next_offset += envelope_size;
9022 }
9023
9024 let next_out_of_line = decoder.next_out_of_line();
9025 let handles_before = decoder.remaining_handles();
9026 if let Some((inlined, num_bytes, num_handles)) =
9027 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9028 {
9029 let member_inline_size = <fidl::encoding::UnboundedVector<u8> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
9030 if inlined != (member_inline_size <= 4) {
9031 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9032 }
9033 let inner_offset;
9034 let mut inner_depth = depth.clone();
9035 if inlined {
9036 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9037 inner_offset = next_offset;
9038 } else {
9039 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9040 inner_depth.increment()?;
9041 }
9042 let val_ref = self.pmk.get_or_insert_with(|| {
9043 fidl::new_empty!(fidl::encoding::UnboundedVector<u8>, D)
9044 });
9045 fidl::decode!(
9046 fidl::encoding::UnboundedVector<u8>,
9047 D,
9048 val_ref,
9049 decoder,
9050 inner_offset,
9051 inner_depth
9052 )?;
9053 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9054 {
9055 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9056 }
9057 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9058 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9059 }
9060 }
9061
9062 next_offset += envelope_size;
9063 _next_ordinal_to_read += 1;
9064 if next_offset >= end_offset {
9065 return Ok(());
9066 }
9067
9068 while _next_ordinal_to_read < 2 {
9070 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9071 _next_ordinal_to_read += 1;
9072 next_offset += envelope_size;
9073 }
9074
9075 let next_out_of_line = decoder.next_out_of_line();
9076 let handles_before = decoder.remaining_handles();
9077 if let Some((inlined, num_bytes, num_handles)) =
9078 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9079 {
9080 let member_inline_size = <fidl::encoding::UnboundedVector<u8> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
9081 if inlined != (member_inline_size <= 4) {
9082 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9083 }
9084 let inner_offset;
9085 let mut inner_depth = depth.clone();
9086 if inlined {
9087 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9088 inner_offset = next_offset;
9089 } else {
9090 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9091 inner_depth.increment()?;
9092 }
9093 let val_ref = self.pmkid.get_or_insert_with(|| {
9094 fidl::new_empty!(fidl::encoding::UnboundedVector<u8>, D)
9095 });
9096 fidl::decode!(
9097 fidl::encoding::UnboundedVector<u8>,
9098 D,
9099 val_ref,
9100 decoder,
9101 inner_offset,
9102 inner_depth
9103 )?;
9104 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9105 {
9106 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9107 }
9108 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9109 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9110 }
9111 }
9112
9113 next_offset += envelope_size;
9114
9115 while next_offset < end_offset {
9117 _next_ordinal_to_read += 1;
9118 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9119 next_offset += envelope_size;
9120 }
9121
9122 Ok(())
9123 }
9124 }
9125
9126 impl WlanFullmacImplIfcOnRssiThresholdBreachedRequest {
9127 #[inline(always)]
9128 fn max_ordinal_present(&self) -> u64 {
9129 if let Some(_) = self.cur_rssi_dbm {
9130 return 1;
9131 }
9132 0
9133 }
9134 }
9135
9136 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcOnRssiThresholdBreachedRequest {
9137 type Borrowed<'a> = &'a Self;
9138 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
9139 value
9140 }
9141 }
9142
9143 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcOnRssiThresholdBreachedRequest {
9144 type Owned = Self;
9145
9146 #[inline(always)]
9147 fn inline_align(_context: fidl::encoding::Context) -> usize {
9148 8
9149 }
9150
9151 #[inline(always)]
9152 fn inline_size(_context: fidl::encoding::Context) -> usize {
9153 16
9154 }
9155 }
9156
9157 unsafe impl<D: fidl::encoding::ResourceDialect>
9158 fidl::encoding::Encode<WlanFullmacImplIfcOnRssiThresholdBreachedRequest, D>
9159 for &WlanFullmacImplIfcOnRssiThresholdBreachedRequest
9160 {
9161 unsafe fn encode(
9162 self,
9163 encoder: &mut fidl::encoding::Encoder<'_, D>,
9164 offset: usize,
9165 mut depth: fidl::encoding::Depth,
9166 ) -> fidl::Result<()> {
9167 encoder.debug_check_bounds::<WlanFullmacImplIfcOnRssiThresholdBreachedRequest>(offset);
9168 let max_ordinal: u64 = self.max_ordinal_present();
9170 encoder.write_num(max_ordinal, offset);
9171 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
9172 if max_ordinal == 0 {
9174 return Ok(());
9175 }
9176 depth.increment()?;
9177 let envelope_size = 8;
9178 let bytes_len = max_ordinal as usize * envelope_size;
9179 #[allow(unused_variables)]
9180 let offset = encoder.out_of_line_offset(bytes_len);
9181 let mut _prev_end_offset: usize = 0;
9182 if 1 > max_ordinal {
9183 return Ok(());
9184 }
9185
9186 let cur_offset: usize = (1 - 1) * envelope_size;
9189
9190 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9192
9193 fidl::encoding::encode_in_envelope_optional::<i8, D>(
9198 self.cur_rssi_dbm.as_ref().map(<i8 as fidl::encoding::ValueTypeMarker>::borrow),
9199 encoder,
9200 offset + cur_offset,
9201 depth,
9202 )?;
9203
9204 _prev_end_offset = cur_offset + envelope_size;
9205
9206 Ok(())
9207 }
9208 }
9209
9210 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
9211 for WlanFullmacImplIfcOnRssiThresholdBreachedRequest
9212 {
9213 #[inline(always)]
9214 fn new_empty() -> Self {
9215 Self::default()
9216 }
9217
9218 unsafe fn decode(
9219 &mut self,
9220 decoder: &mut fidl::encoding::Decoder<'_, D>,
9221 offset: usize,
9222 mut depth: fidl::encoding::Depth,
9223 ) -> fidl::Result<()> {
9224 decoder.debug_check_bounds::<Self>(offset);
9225 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
9226 None => return Err(fidl::Error::NotNullable),
9227 Some(len) => len,
9228 };
9229 if len == 0 {
9231 return Ok(());
9232 };
9233 depth.increment()?;
9234 let envelope_size = 8;
9235 let bytes_len = len * envelope_size;
9236 let offset = decoder.out_of_line_offset(bytes_len)?;
9237 let mut _next_ordinal_to_read = 0;
9239 let mut next_offset = offset;
9240 let end_offset = offset + bytes_len;
9241 _next_ordinal_to_read += 1;
9242 if next_offset >= end_offset {
9243 return Ok(());
9244 }
9245
9246 while _next_ordinal_to_read < 1 {
9248 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9249 _next_ordinal_to_read += 1;
9250 next_offset += envelope_size;
9251 }
9252
9253 let next_out_of_line = decoder.next_out_of_line();
9254 let handles_before = decoder.remaining_handles();
9255 if let Some((inlined, num_bytes, num_handles)) =
9256 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9257 {
9258 let member_inline_size =
9259 <i8 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
9260 if inlined != (member_inline_size <= 4) {
9261 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9262 }
9263 let inner_offset;
9264 let mut inner_depth = depth.clone();
9265 if inlined {
9266 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9267 inner_offset = next_offset;
9268 } else {
9269 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9270 inner_depth.increment()?;
9271 }
9272 let val_ref = self.cur_rssi_dbm.get_or_insert_with(|| fidl::new_empty!(i8, D));
9273 fidl::decode!(i8, D, val_ref, decoder, inner_offset, inner_depth)?;
9274 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9275 {
9276 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9277 }
9278 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9279 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9280 }
9281 }
9282
9283 next_offset += envelope_size;
9284
9285 while next_offset < end_offset {
9287 _next_ordinal_to_read += 1;
9288 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9289 next_offset += envelope_size;
9290 }
9291
9292 Ok(())
9293 }
9294 }
9295
9296 impl WlanFullmacImplIfcOnScanEndRequest {
9297 #[inline(always)]
9298 fn max_ordinal_present(&self) -> u64 {
9299 if let Some(_) = self.code {
9300 return 2;
9301 }
9302 if let Some(_) = self.txn_id {
9303 return 1;
9304 }
9305 0
9306 }
9307 }
9308
9309 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcOnScanEndRequest {
9310 type Borrowed<'a> = &'a Self;
9311 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
9312 value
9313 }
9314 }
9315
9316 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcOnScanEndRequest {
9317 type Owned = Self;
9318
9319 #[inline(always)]
9320 fn inline_align(_context: fidl::encoding::Context) -> usize {
9321 8
9322 }
9323
9324 #[inline(always)]
9325 fn inline_size(_context: fidl::encoding::Context) -> usize {
9326 16
9327 }
9328 }
9329
9330 unsafe impl<D: fidl::encoding::ResourceDialect>
9331 fidl::encoding::Encode<WlanFullmacImplIfcOnScanEndRequest, D>
9332 for &WlanFullmacImplIfcOnScanEndRequest
9333 {
9334 unsafe fn encode(
9335 self,
9336 encoder: &mut fidl::encoding::Encoder<'_, D>,
9337 offset: usize,
9338 mut depth: fidl::encoding::Depth,
9339 ) -> fidl::Result<()> {
9340 encoder.debug_check_bounds::<WlanFullmacImplIfcOnScanEndRequest>(offset);
9341 let max_ordinal: u64 = self.max_ordinal_present();
9343 encoder.write_num(max_ordinal, offset);
9344 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
9345 if max_ordinal == 0 {
9347 return Ok(());
9348 }
9349 depth.increment()?;
9350 let envelope_size = 8;
9351 let bytes_len = max_ordinal as usize * envelope_size;
9352 #[allow(unused_variables)]
9353 let offset = encoder.out_of_line_offset(bytes_len);
9354 let mut _prev_end_offset: usize = 0;
9355 if 1 > max_ordinal {
9356 return Ok(());
9357 }
9358
9359 let cur_offset: usize = (1 - 1) * envelope_size;
9362
9363 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9365
9366 fidl::encoding::encode_in_envelope_optional::<u64, D>(
9371 self.txn_id.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
9372 encoder,
9373 offset + cur_offset,
9374 depth,
9375 )?;
9376
9377 _prev_end_offset = cur_offset + envelope_size;
9378 if 2 > max_ordinal {
9379 return Ok(());
9380 }
9381
9382 let cur_offset: usize = (2 - 1) * envelope_size;
9385
9386 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9388
9389 fidl::encoding::encode_in_envelope_optional::<WlanScanResult, D>(
9394 self.code.as_ref().map(<WlanScanResult as fidl::encoding::ValueTypeMarker>::borrow),
9395 encoder,
9396 offset + cur_offset,
9397 depth,
9398 )?;
9399
9400 _prev_end_offset = cur_offset + envelope_size;
9401
9402 Ok(())
9403 }
9404 }
9405
9406 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
9407 for WlanFullmacImplIfcOnScanEndRequest
9408 {
9409 #[inline(always)]
9410 fn new_empty() -> Self {
9411 Self::default()
9412 }
9413
9414 unsafe fn decode(
9415 &mut self,
9416 decoder: &mut fidl::encoding::Decoder<'_, D>,
9417 offset: usize,
9418 mut depth: fidl::encoding::Depth,
9419 ) -> fidl::Result<()> {
9420 decoder.debug_check_bounds::<Self>(offset);
9421 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
9422 None => return Err(fidl::Error::NotNullable),
9423 Some(len) => len,
9424 };
9425 if len == 0 {
9427 return Ok(());
9428 };
9429 depth.increment()?;
9430 let envelope_size = 8;
9431 let bytes_len = len * envelope_size;
9432 let offset = decoder.out_of_line_offset(bytes_len)?;
9433 let mut _next_ordinal_to_read = 0;
9435 let mut next_offset = offset;
9436 let end_offset = offset + bytes_len;
9437 _next_ordinal_to_read += 1;
9438 if next_offset >= end_offset {
9439 return Ok(());
9440 }
9441
9442 while _next_ordinal_to_read < 1 {
9444 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9445 _next_ordinal_to_read += 1;
9446 next_offset += envelope_size;
9447 }
9448
9449 let next_out_of_line = decoder.next_out_of_line();
9450 let handles_before = decoder.remaining_handles();
9451 if let Some((inlined, num_bytes, num_handles)) =
9452 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9453 {
9454 let member_inline_size =
9455 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
9456 if inlined != (member_inline_size <= 4) {
9457 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9458 }
9459 let inner_offset;
9460 let mut inner_depth = depth.clone();
9461 if inlined {
9462 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9463 inner_offset = next_offset;
9464 } else {
9465 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9466 inner_depth.increment()?;
9467 }
9468 let val_ref = self.txn_id.get_or_insert_with(|| fidl::new_empty!(u64, D));
9469 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
9470 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9471 {
9472 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9473 }
9474 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9475 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9476 }
9477 }
9478
9479 next_offset += envelope_size;
9480 _next_ordinal_to_read += 1;
9481 if next_offset >= end_offset {
9482 return Ok(());
9483 }
9484
9485 while _next_ordinal_to_read < 2 {
9487 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9488 _next_ordinal_to_read += 1;
9489 next_offset += envelope_size;
9490 }
9491
9492 let next_out_of_line = decoder.next_out_of_line();
9493 let handles_before = decoder.remaining_handles();
9494 if let Some((inlined, num_bytes, num_handles)) =
9495 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9496 {
9497 let member_inline_size =
9498 <WlanScanResult as fidl::encoding::TypeMarker>::inline_size(decoder.context);
9499 if inlined != (member_inline_size <= 4) {
9500 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9501 }
9502 let inner_offset;
9503 let mut inner_depth = depth.clone();
9504 if inlined {
9505 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9506 inner_offset = next_offset;
9507 } else {
9508 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9509 inner_depth.increment()?;
9510 }
9511 let val_ref = self.code.get_or_insert_with(|| fidl::new_empty!(WlanScanResult, D));
9512 fidl::decode!(WlanScanResult, D, val_ref, decoder, inner_offset, inner_depth)?;
9513 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9514 {
9515 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9516 }
9517 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9518 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9519 }
9520 }
9521
9522 next_offset += envelope_size;
9523
9524 while next_offset < end_offset {
9526 _next_ordinal_to_read += 1;
9527 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9528 next_offset += envelope_size;
9529 }
9530
9531 Ok(())
9532 }
9533 }
9534
9535 impl WlanFullmacImplIfcOnScanResultRequest {
9536 #[inline(always)]
9537 fn max_ordinal_present(&self) -> u64 {
9538 if let Some(_) = self.bss {
9539 return 3;
9540 }
9541 if let Some(_) = self.timestamp_nanos {
9542 return 2;
9543 }
9544 if let Some(_) = self.txn_id {
9545 return 1;
9546 }
9547 0
9548 }
9549 }
9550
9551 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcOnScanResultRequest {
9552 type Borrowed<'a> = &'a Self;
9553 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
9554 value
9555 }
9556 }
9557
9558 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcOnScanResultRequest {
9559 type Owned = Self;
9560
9561 #[inline(always)]
9562 fn inline_align(_context: fidl::encoding::Context) -> usize {
9563 8
9564 }
9565
9566 #[inline(always)]
9567 fn inline_size(_context: fidl::encoding::Context) -> usize {
9568 16
9569 }
9570 }
9571
9572 unsafe impl<D: fidl::encoding::ResourceDialect>
9573 fidl::encoding::Encode<WlanFullmacImplIfcOnScanResultRequest, D>
9574 for &WlanFullmacImplIfcOnScanResultRequest
9575 {
9576 unsafe fn encode(
9577 self,
9578 encoder: &mut fidl::encoding::Encoder<'_, D>,
9579 offset: usize,
9580 mut depth: fidl::encoding::Depth,
9581 ) -> fidl::Result<()> {
9582 encoder.debug_check_bounds::<WlanFullmacImplIfcOnScanResultRequest>(offset);
9583 let max_ordinal: u64 = self.max_ordinal_present();
9585 encoder.write_num(max_ordinal, offset);
9586 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
9587 if max_ordinal == 0 {
9589 return Ok(());
9590 }
9591 depth.increment()?;
9592 let envelope_size = 8;
9593 let bytes_len = max_ordinal as usize * envelope_size;
9594 #[allow(unused_variables)]
9595 let offset = encoder.out_of_line_offset(bytes_len);
9596 let mut _prev_end_offset: usize = 0;
9597 if 1 > max_ordinal {
9598 return Ok(());
9599 }
9600
9601 let cur_offset: usize = (1 - 1) * envelope_size;
9604
9605 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9607
9608 fidl::encoding::encode_in_envelope_optional::<u64, D>(
9613 self.txn_id.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
9614 encoder,
9615 offset + cur_offset,
9616 depth,
9617 )?;
9618
9619 _prev_end_offset = cur_offset + envelope_size;
9620 if 2 > max_ordinal {
9621 return Ok(());
9622 }
9623
9624 let cur_offset: usize = (2 - 1) * envelope_size;
9627
9628 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9630
9631 fidl::encoding::encode_in_envelope_optional::<i64, D>(
9636 self.timestamp_nanos.as_ref().map(<i64 as fidl::encoding::ValueTypeMarker>::borrow),
9637 encoder,
9638 offset + cur_offset,
9639 depth,
9640 )?;
9641
9642 _prev_end_offset = cur_offset + envelope_size;
9643 if 3 > max_ordinal {
9644 return Ok(());
9645 }
9646
9647 let cur_offset: usize = (3 - 1) * envelope_size;
9650
9651 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9653
9654 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_ieee80211_common::BssDescription, D>(
9659 self.bss.as_ref().map(<fidl_fuchsia_wlan_ieee80211_common::BssDescription as fidl::encoding::ValueTypeMarker>::borrow),
9660 encoder, offset + cur_offset, depth
9661 )?;
9662
9663 _prev_end_offset = cur_offset + envelope_size;
9664
9665 Ok(())
9666 }
9667 }
9668
9669 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
9670 for WlanFullmacImplIfcOnScanResultRequest
9671 {
9672 #[inline(always)]
9673 fn new_empty() -> Self {
9674 Self::default()
9675 }
9676
9677 unsafe fn decode(
9678 &mut self,
9679 decoder: &mut fidl::encoding::Decoder<'_, D>,
9680 offset: usize,
9681 mut depth: fidl::encoding::Depth,
9682 ) -> fidl::Result<()> {
9683 decoder.debug_check_bounds::<Self>(offset);
9684 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
9685 None => return Err(fidl::Error::NotNullable),
9686 Some(len) => len,
9687 };
9688 if len == 0 {
9690 return Ok(());
9691 };
9692 depth.increment()?;
9693 let envelope_size = 8;
9694 let bytes_len = len * envelope_size;
9695 let offset = decoder.out_of_line_offset(bytes_len)?;
9696 let mut _next_ordinal_to_read = 0;
9698 let mut next_offset = offset;
9699 let end_offset = offset + bytes_len;
9700 _next_ordinal_to_read += 1;
9701 if next_offset >= end_offset {
9702 return Ok(());
9703 }
9704
9705 while _next_ordinal_to_read < 1 {
9707 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9708 _next_ordinal_to_read += 1;
9709 next_offset += envelope_size;
9710 }
9711
9712 let next_out_of_line = decoder.next_out_of_line();
9713 let handles_before = decoder.remaining_handles();
9714 if let Some((inlined, num_bytes, num_handles)) =
9715 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9716 {
9717 let member_inline_size =
9718 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
9719 if inlined != (member_inline_size <= 4) {
9720 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9721 }
9722 let inner_offset;
9723 let mut inner_depth = depth.clone();
9724 if inlined {
9725 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9726 inner_offset = next_offset;
9727 } else {
9728 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9729 inner_depth.increment()?;
9730 }
9731 let val_ref = self.txn_id.get_or_insert_with(|| fidl::new_empty!(u64, D));
9732 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
9733 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9734 {
9735 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9736 }
9737 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9738 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9739 }
9740 }
9741
9742 next_offset += envelope_size;
9743 _next_ordinal_to_read += 1;
9744 if next_offset >= end_offset {
9745 return Ok(());
9746 }
9747
9748 while _next_ordinal_to_read < 2 {
9750 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9751 _next_ordinal_to_read += 1;
9752 next_offset += envelope_size;
9753 }
9754
9755 let next_out_of_line = decoder.next_out_of_line();
9756 let handles_before = decoder.remaining_handles();
9757 if let Some((inlined, num_bytes, num_handles)) =
9758 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9759 {
9760 let member_inline_size =
9761 <i64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
9762 if inlined != (member_inline_size <= 4) {
9763 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9764 }
9765 let inner_offset;
9766 let mut inner_depth = depth.clone();
9767 if inlined {
9768 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9769 inner_offset = next_offset;
9770 } else {
9771 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9772 inner_depth.increment()?;
9773 }
9774 let val_ref = self.timestamp_nanos.get_or_insert_with(|| fidl::new_empty!(i64, D));
9775 fidl::decode!(i64, D, val_ref, decoder, inner_offset, inner_depth)?;
9776 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9777 {
9778 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9779 }
9780 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9781 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9782 }
9783 }
9784
9785 next_offset += envelope_size;
9786 _next_ordinal_to_read += 1;
9787 if next_offset >= end_offset {
9788 return Ok(());
9789 }
9790
9791 while _next_ordinal_to_read < 3 {
9793 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9794 _next_ordinal_to_read += 1;
9795 next_offset += envelope_size;
9796 }
9797
9798 let next_out_of_line = decoder.next_out_of_line();
9799 let handles_before = decoder.remaining_handles();
9800 if let Some((inlined, num_bytes, num_handles)) =
9801 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9802 {
9803 let member_inline_size = <fidl_fuchsia_wlan_ieee80211_common::BssDescription as fidl::encoding::TypeMarker>::inline_size(decoder.context);
9804 if inlined != (member_inline_size <= 4) {
9805 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9806 }
9807 let inner_offset;
9808 let mut inner_depth = depth.clone();
9809 if inlined {
9810 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9811 inner_offset = next_offset;
9812 } else {
9813 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9814 inner_depth.increment()?;
9815 }
9816 let val_ref = self.bss.get_or_insert_with(|| {
9817 fidl::new_empty!(fidl_fuchsia_wlan_ieee80211_common::BssDescription, D)
9818 });
9819 fidl::decode!(
9820 fidl_fuchsia_wlan_ieee80211_common::BssDescription,
9821 D,
9822 val_ref,
9823 decoder,
9824 inner_offset,
9825 inner_depth
9826 )?;
9827 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9828 {
9829 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9830 }
9831 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9832 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9833 }
9834 }
9835
9836 next_offset += envelope_size;
9837
9838 while next_offset < end_offset {
9840 _next_ordinal_to_read += 1;
9841 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9842 next_offset += envelope_size;
9843 }
9844
9845 Ok(())
9846 }
9847 }
9848
9849 impl WlanFullmacImplIfcOnScheduledScanMatchesAvailableRequest {
9850 #[inline(always)]
9851 fn max_ordinal_present(&self) -> u64 {
9852 if let Some(_) = self.txn_id {
9853 return 1;
9854 }
9855 0
9856 }
9857 }
9858
9859 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcOnScheduledScanMatchesAvailableRequest {
9860 type Borrowed<'a> = &'a Self;
9861 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
9862 value
9863 }
9864 }
9865
9866 unsafe impl fidl::encoding::TypeMarker
9867 for WlanFullmacImplIfcOnScheduledScanMatchesAvailableRequest
9868 {
9869 type Owned = Self;
9870
9871 #[inline(always)]
9872 fn inline_align(_context: fidl::encoding::Context) -> usize {
9873 8
9874 }
9875
9876 #[inline(always)]
9877 fn inline_size(_context: fidl::encoding::Context) -> usize {
9878 16
9879 }
9880 }
9881
9882 unsafe impl<D: fidl::encoding::ResourceDialect>
9883 fidl::encoding::Encode<WlanFullmacImplIfcOnScheduledScanMatchesAvailableRequest, D>
9884 for &WlanFullmacImplIfcOnScheduledScanMatchesAvailableRequest
9885 {
9886 unsafe fn encode(
9887 self,
9888 encoder: &mut fidl::encoding::Encoder<'_, D>,
9889 offset: usize,
9890 mut depth: fidl::encoding::Depth,
9891 ) -> fidl::Result<()> {
9892 encoder.debug_check_bounds::<WlanFullmacImplIfcOnScheduledScanMatchesAvailableRequest>(
9893 offset,
9894 );
9895 let max_ordinal: u64 = self.max_ordinal_present();
9897 encoder.write_num(max_ordinal, offset);
9898 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
9899 if max_ordinal == 0 {
9901 return Ok(());
9902 }
9903 depth.increment()?;
9904 let envelope_size = 8;
9905 let bytes_len = max_ordinal as usize * envelope_size;
9906 #[allow(unused_variables)]
9907 let offset = encoder.out_of_line_offset(bytes_len);
9908 let mut _prev_end_offset: usize = 0;
9909 if 1 > max_ordinal {
9910 return Ok(());
9911 }
9912
9913 let cur_offset: usize = (1 - 1) * envelope_size;
9916
9917 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9919
9920 fidl::encoding::encode_in_envelope_optional::<u64, D>(
9925 self.txn_id.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
9926 encoder,
9927 offset + cur_offset,
9928 depth,
9929 )?;
9930
9931 _prev_end_offset = cur_offset + envelope_size;
9932
9933 Ok(())
9934 }
9935 }
9936
9937 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
9938 for WlanFullmacImplIfcOnScheduledScanMatchesAvailableRequest
9939 {
9940 #[inline(always)]
9941 fn new_empty() -> Self {
9942 Self::default()
9943 }
9944
9945 unsafe fn decode(
9946 &mut self,
9947 decoder: &mut fidl::encoding::Decoder<'_, D>,
9948 offset: usize,
9949 mut depth: fidl::encoding::Depth,
9950 ) -> fidl::Result<()> {
9951 decoder.debug_check_bounds::<Self>(offset);
9952 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
9953 None => return Err(fidl::Error::NotNullable),
9954 Some(len) => len,
9955 };
9956 if len == 0 {
9958 return Ok(());
9959 };
9960 depth.increment()?;
9961 let envelope_size = 8;
9962 let bytes_len = len * envelope_size;
9963 let offset = decoder.out_of_line_offset(bytes_len)?;
9964 let mut _next_ordinal_to_read = 0;
9966 let mut next_offset = offset;
9967 let end_offset = offset + bytes_len;
9968 _next_ordinal_to_read += 1;
9969 if next_offset >= end_offset {
9970 return Ok(());
9971 }
9972
9973 while _next_ordinal_to_read < 1 {
9975 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9976 _next_ordinal_to_read += 1;
9977 next_offset += envelope_size;
9978 }
9979
9980 let next_out_of_line = decoder.next_out_of_line();
9981 let handles_before = decoder.remaining_handles();
9982 if let Some((inlined, num_bytes, num_handles)) =
9983 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9984 {
9985 let member_inline_size =
9986 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
9987 if inlined != (member_inline_size <= 4) {
9988 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9989 }
9990 let inner_offset;
9991 let mut inner_depth = depth.clone();
9992 if inlined {
9993 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9994 inner_offset = next_offset;
9995 } else {
9996 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9997 inner_depth.increment()?;
9998 }
9999 let val_ref = self.txn_id.get_or_insert_with(|| fidl::new_empty!(u64, D));
10000 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
10001 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10002 {
10003 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10004 }
10005 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10006 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10007 }
10008 }
10009
10010 next_offset += envelope_size;
10011
10012 while next_offset < end_offset {
10014 _next_ordinal_to_read += 1;
10015 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10016 next_offset += envelope_size;
10017 }
10018
10019 Ok(())
10020 }
10021 }
10022
10023 impl WlanFullmacImplIfcOnScheduledScanStoppedByFirmwareRequest {
10024 #[inline(always)]
10025 fn max_ordinal_present(&self) -> u64 {
10026 if let Some(_) = self.txn_id {
10027 return 1;
10028 }
10029 0
10030 }
10031 }
10032
10033 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcOnScheduledScanStoppedByFirmwareRequest {
10034 type Borrowed<'a> = &'a Self;
10035 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
10036 value
10037 }
10038 }
10039
10040 unsafe impl fidl::encoding::TypeMarker
10041 for WlanFullmacImplIfcOnScheduledScanStoppedByFirmwareRequest
10042 {
10043 type Owned = Self;
10044
10045 #[inline(always)]
10046 fn inline_align(_context: fidl::encoding::Context) -> usize {
10047 8
10048 }
10049
10050 #[inline(always)]
10051 fn inline_size(_context: fidl::encoding::Context) -> usize {
10052 16
10053 }
10054 }
10055
10056 unsafe impl<D: fidl::encoding::ResourceDialect>
10057 fidl::encoding::Encode<WlanFullmacImplIfcOnScheduledScanStoppedByFirmwareRequest, D>
10058 for &WlanFullmacImplIfcOnScheduledScanStoppedByFirmwareRequest
10059 {
10060 unsafe fn encode(
10061 self,
10062 encoder: &mut fidl::encoding::Encoder<'_, D>,
10063 offset: usize,
10064 mut depth: fidl::encoding::Depth,
10065 ) -> fidl::Result<()> {
10066 encoder
10067 .debug_check_bounds::<WlanFullmacImplIfcOnScheduledScanStoppedByFirmwareRequest>(
10068 offset,
10069 );
10070 let max_ordinal: u64 = self.max_ordinal_present();
10072 encoder.write_num(max_ordinal, offset);
10073 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
10074 if max_ordinal == 0 {
10076 return Ok(());
10077 }
10078 depth.increment()?;
10079 let envelope_size = 8;
10080 let bytes_len = max_ordinal as usize * envelope_size;
10081 #[allow(unused_variables)]
10082 let offset = encoder.out_of_line_offset(bytes_len);
10083 let mut _prev_end_offset: usize = 0;
10084 if 1 > max_ordinal {
10085 return Ok(());
10086 }
10087
10088 let cur_offset: usize = (1 - 1) * envelope_size;
10091
10092 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10094
10095 fidl::encoding::encode_in_envelope_optional::<u64, D>(
10100 self.txn_id.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
10101 encoder,
10102 offset + cur_offset,
10103 depth,
10104 )?;
10105
10106 _prev_end_offset = cur_offset + envelope_size;
10107
10108 Ok(())
10109 }
10110 }
10111
10112 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
10113 for WlanFullmacImplIfcOnScheduledScanStoppedByFirmwareRequest
10114 {
10115 #[inline(always)]
10116 fn new_empty() -> Self {
10117 Self::default()
10118 }
10119
10120 unsafe fn decode(
10121 &mut self,
10122 decoder: &mut fidl::encoding::Decoder<'_, D>,
10123 offset: usize,
10124 mut depth: fidl::encoding::Depth,
10125 ) -> fidl::Result<()> {
10126 decoder.debug_check_bounds::<Self>(offset);
10127 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
10128 None => return Err(fidl::Error::NotNullable),
10129 Some(len) => len,
10130 };
10131 if len == 0 {
10133 return Ok(());
10134 };
10135 depth.increment()?;
10136 let envelope_size = 8;
10137 let bytes_len = len * envelope_size;
10138 let offset = decoder.out_of_line_offset(bytes_len)?;
10139 let mut _next_ordinal_to_read = 0;
10141 let mut next_offset = offset;
10142 let end_offset = offset + bytes_len;
10143 _next_ordinal_to_read += 1;
10144 if next_offset >= end_offset {
10145 return Ok(());
10146 }
10147
10148 while _next_ordinal_to_read < 1 {
10150 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10151 _next_ordinal_to_read += 1;
10152 next_offset += envelope_size;
10153 }
10154
10155 let next_out_of_line = decoder.next_out_of_line();
10156 let handles_before = decoder.remaining_handles();
10157 if let Some((inlined, num_bytes, num_handles)) =
10158 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10159 {
10160 let member_inline_size =
10161 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
10162 if inlined != (member_inline_size <= 4) {
10163 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10164 }
10165 let inner_offset;
10166 let mut inner_depth = depth.clone();
10167 if inlined {
10168 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10169 inner_offset = next_offset;
10170 } else {
10171 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10172 inner_depth.increment()?;
10173 }
10174 let val_ref = self.txn_id.get_or_insert_with(|| fidl::new_empty!(u64, D));
10175 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
10176 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10177 {
10178 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10179 }
10180 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10181 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10182 }
10183 }
10184
10185 next_offset += envelope_size;
10186
10187 while next_offset < end_offset {
10189 _next_ordinal_to_read += 1;
10190 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10191 next_offset += envelope_size;
10192 }
10193
10194 Ok(())
10195 }
10196 }
10197
10198 impl WlanFullmacImplIfcRoamConfRequest {
10199 #[inline(always)]
10200 fn max_ordinal_present(&self) -> u64 {
10201 if let Some(_) = self.association_ies {
10202 return 6;
10203 }
10204 if let Some(_) = self.association_id {
10205 return 5;
10206 }
10207 if let Some(_) = self.target_bss_authenticated {
10208 return 4;
10209 }
10210 if let Some(_) = self.original_association_maintained {
10211 return 3;
10212 }
10213 if let Some(_) = self.status_code {
10214 return 2;
10215 }
10216 if let Some(_) = self.selected_bssid {
10217 return 1;
10218 }
10219 0
10220 }
10221 }
10222
10223 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcRoamConfRequest {
10224 type Borrowed<'a> = &'a Self;
10225 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
10226 value
10227 }
10228 }
10229
10230 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcRoamConfRequest {
10231 type Owned = Self;
10232
10233 #[inline(always)]
10234 fn inline_align(_context: fidl::encoding::Context) -> usize {
10235 8
10236 }
10237
10238 #[inline(always)]
10239 fn inline_size(_context: fidl::encoding::Context) -> usize {
10240 16
10241 }
10242 }
10243
10244 unsafe impl<D: fidl::encoding::ResourceDialect>
10245 fidl::encoding::Encode<WlanFullmacImplIfcRoamConfRequest, D>
10246 for &WlanFullmacImplIfcRoamConfRequest
10247 {
10248 unsafe fn encode(
10249 self,
10250 encoder: &mut fidl::encoding::Encoder<'_, D>,
10251 offset: usize,
10252 mut depth: fidl::encoding::Depth,
10253 ) -> fidl::Result<()> {
10254 encoder.debug_check_bounds::<WlanFullmacImplIfcRoamConfRequest>(offset);
10255 let max_ordinal: u64 = self.max_ordinal_present();
10257 encoder.write_num(max_ordinal, offset);
10258 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
10259 if max_ordinal == 0 {
10261 return Ok(());
10262 }
10263 depth.increment()?;
10264 let envelope_size = 8;
10265 let bytes_len = max_ordinal as usize * envelope_size;
10266 #[allow(unused_variables)]
10267 let offset = encoder.out_of_line_offset(bytes_len);
10268 let mut _prev_end_offset: usize = 0;
10269 if 1 > max_ordinal {
10270 return Ok(());
10271 }
10272
10273 let cur_offset: usize = (1 - 1) * envelope_size;
10276
10277 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10279
10280 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
10285 self.selected_bssid
10286 .as_ref()
10287 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
10288 encoder,
10289 offset + cur_offset,
10290 depth,
10291 )?;
10292
10293 _prev_end_offset = cur_offset + envelope_size;
10294 if 2 > max_ordinal {
10295 return Ok(());
10296 }
10297
10298 let cur_offset: usize = (2 - 1) * envelope_size;
10301
10302 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10304
10305 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_ieee80211_common::StatusCode, D>(
10310 self.status_code.as_ref().map(<fidl_fuchsia_wlan_ieee80211_common::StatusCode as fidl::encoding::ValueTypeMarker>::borrow),
10311 encoder, offset + cur_offset, depth
10312 )?;
10313
10314 _prev_end_offset = cur_offset + envelope_size;
10315 if 3 > max_ordinal {
10316 return Ok(());
10317 }
10318
10319 let cur_offset: usize = (3 - 1) * envelope_size;
10322
10323 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10325
10326 fidl::encoding::encode_in_envelope_optional::<bool, D>(
10331 self.original_association_maintained
10332 .as_ref()
10333 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
10334 encoder,
10335 offset + cur_offset,
10336 depth,
10337 )?;
10338
10339 _prev_end_offset = cur_offset + envelope_size;
10340 if 4 > max_ordinal {
10341 return Ok(());
10342 }
10343
10344 let cur_offset: usize = (4 - 1) * envelope_size;
10347
10348 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10350
10351 fidl::encoding::encode_in_envelope_optional::<bool, D>(
10356 self.target_bss_authenticated
10357 .as_ref()
10358 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
10359 encoder,
10360 offset + cur_offset,
10361 depth,
10362 )?;
10363
10364 _prev_end_offset = cur_offset + envelope_size;
10365 if 5 > max_ordinal {
10366 return Ok(());
10367 }
10368
10369 let cur_offset: usize = (5 - 1) * envelope_size;
10372
10373 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10375
10376 fidl::encoding::encode_in_envelope_optional::<u16, D>(
10381 self.association_id.as_ref().map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
10382 encoder,
10383 offset + cur_offset,
10384 depth,
10385 )?;
10386
10387 _prev_end_offset = cur_offset + envelope_size;
10388 if 6 > max_ordinal {
10389 return Ok(());
10390 }
10391
10392 let cur_offset: usize = (6 - 1) * envelope_size;
10395
10396 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10398
10399 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<u8>, D>(
10404 self.association_ies.as_ref().map(<fidl::encoding::UnboundedVector<u8> as fidl::encoding::ValueTypeMarker>::borrow),
10405 encoder, offset + cur_offset, depth
10406 )?;
10407
10408 _prev_end_offset = cur_offset + envelope_size;
10409
10410 Ok(())
10411 }
10412 }
10413
10414 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
10415 for WlanFullmacImplIfcRoamConfRequest
10416 {
10417 #[inline(always)]
10418 fn new_empty() -> Self {
10419 Self::default()
10420 }
10421
10422 unsafe fn decode(
10423 &mut self,
10424 decoder: &mut fidl::encoding::Decoder<'_, D>,
10425 offset: usize,
10426 mut depth: fidl::encoding::Depth,
10427 ) -> fidl::Result<()> {
10428 decoder.debug_check_bounds::<Self>(offset);
10429 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
10430 None => return Err(fidl::Error::NotNullable),
10431 Some(len) => len,
10432 };
10433 if len == 0 {
10435 return Ok(());
10436 };
10437 depth.increment()?;
10438 let envelope_size = 8;
10439 let bytes_len = len * envelope_size;
10440 let offset = decoder.out_of_line_offset(bytes_len)?;
10441 let mut _next_ordinal_to_read = 0;
10443 let mut next_offset = offset;
10444 let end_offset = offset + bytes_len;
10445 _next_ordinal_to_read += 1;
10446 if next_offset >= end_offset {
10447 return Ok(());
10448 }
10449
10450 while _next_ordinal_to_read < 1 {
10452 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10453 _next_ordinal_to_read += 1;
10454 next_offset += envelope_size;
10455 }
10456
10457 let next_out_of_line = decoder.next_out_of_line();
10458 let handles_before = decoder.remaining_handles();
10459 if let Some((inlined, num_bytes, num_handles)) =
10460 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10461 {
10462 let member_inline_size =
10463 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
10464 decoder.context,
10465 );
10466 if inlined != (member_inline_size <= 4) {
10467 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10468 }
10469 let inner_offset;
10470 let mut inner_depth = depth.clone();
10471 if inlined {
10472 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10473 inner_offset = next_offset;
10474 } else {
10475 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10476 inner_depth.increment()?;
10477 }
10478 let val_ref = self
10479 .selected_bssid
10480 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
10481 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
10482 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10483 {
10484 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10485 }
10486 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10487 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10488 }
10489 }
10490
10491 next_offset += envelope_size;
10492 _next_ordinal_to_read += 1;
10493 if next_offset >= end_offset {
10494 return Ok(());
10495 }
10496
10497 while _next_ordinal_to_read < 2 {
10499 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10500 _next_ordinal_to_read += 1;
10501 next_offset += envelope_size;
10502 }
10503
10504 let next_out_of_line = decoder.next_out_of_line();
10505 let handles_before = decoder.remaining_handles();
10506 if let Some((inlined, num_bytes, num_handles)) =
10507 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10508 {
10509 let member_inline_size = <fidl_fuchsia_wlan_ieee80211_common::StatusCode as fidl::encoding::TypeMarker>::inline_size(decoder.context);
10510 if inlined != (member_inline_size <= 4) {
10511 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10512 }
10513 let inner_offset;
10514 let mut inner_depth = depth.clone();
10515 if inlined {
10516 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10517 inner_offset = next_offset;
10518 } else {
10519 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10520 inner_depth.increment()?;
10521 }
10522 let val_ref = self.status_code.get_or_insert_with(|| {
10523 fidl::new_empty!(fidl_fuchsia_wlan_ieee80211_common::StatusCode, D)
10524 });
10525 fidl::decode!(
10526 fidl_fuchsia_wlan_ieee80211_common::StatusCode,
10527 D,
10528 val_ref,
10529 decoder,
10530 inner_offset,
10531 inner_depth
10532 )?;
10533 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10534 {
10535 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10536 }
10537 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10538 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10539 }
10540 }
10541
10542 next_offset += envelope_size;
10543 _next_ordinal_to_read += 1;
10544 if next_offset >= end_offset {
10545 return Ok(());
10546 }
10547
10548 while _next_ordinal_to_read < 3 {
10550 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10551 _next_ordinal_to_read += 1;
10552 next_offset += envelope_size;
10553 }
10554
10555 let next_out_of_line = decoder.next_out_of_line();
10556 let handles_before = decoder.remaining_handles();
10557 if let Some((inlined, num_bytes, num_handles)) =
10558 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10559 {
10560 let member_inline_size =
10561 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
10562 if inlined != (member_inline_size <= 4) {
10563 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10564 }
10565 let inner_offset;
10566 let mut inner_depth = depth.clone();
10567 if inlined {
10568 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10569 inner_offset = next_offset;
10570 } else {
10571 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10572 inner_depth.increment()?;
10573 }
10574 let val_ref = self
10575 .original_association_maintained
10576 .get_or_insert_with(|| fidl::new_empty!(bool, D));
10577 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
10578 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10579 {
10580 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10581 }
10582 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10583 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10584 }
10585 }
10586
10587 next_offset += envelope_size;
10588 _next_ordinal_to_read += 1;
10589 if next_offset >= end_offset {
10590 return Ok(());
10591 }
10592
10593 while _next_ordinal_to_read < 4 {
10595 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10596 _next_ordinal_to_read += 1;
10597 next_offset += envelope_size;
10598 }
10599
10600 let next_out_of_line = decoder.next_out_of_line();
10601 let handles_before = decoder.remaining_handles();
10602 if let Some((inlined, num_bytes, num_handles)) =
10603 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10604 {
10605 let member_inline_size =
10606 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
10607 if inlined != (member_inline_size <= 4) {
10608 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10609 }
10610 let inner_offset;
10611 let mut inner_depth = depth.clone();
10612 if inlined {
10613 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10614 inner_offset = next_offset;
10615 } else {
10616 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10617 inner_depth.increment()?;
10618 }
10619 let val_ref =
10620 self.target_bss_authenticated.get_or_insert_with(|| fidl::new_empty!(bool, D));
10621 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
10622 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10623 {
10624 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10625 }
10626 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10627 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10628 }
10629 }
10630
10631 next_offset += envelope_size;
10632 _next_ordinal_to_read += 1;
10633 if next_offset >= end_offset {
10634 return Ok(());
10635 }
10636
10637 while _next_ordinal_to_read < 5 {
10639 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10640 _next_ordinal_to_read += 1;
10641 next_offset += envelope_size;
10642 }
10643
10644 let next_out_of_line = decoder.next_out_of_line();
10645 let handles_before = decoder.remaining_handles();
10646 if let Some((inlined, num_bytes, num_handles)) =
10647 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10648 {
10649 let member_inline_size =
10650 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
10651 if inlined != (member_inline_size <= 4) {
10652 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10653 }
10654 let inner_offset;
10655 let mut inner_depth = depth.clone();
10656 if inlined {
10657 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10658 inner_offset = next_offset;
10659 } else {
10660 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10661 inner_depth.increment()?;
10662 }
10663 let val_ref = self.association_id.get_or_insert_with(|| fidl::new_empty!(u16, D));
10664 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
10665 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10666 {
10667 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10668 }
10669 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10670 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10671 }
10672 }
10673
10674 next_offset += envelope_size;
10675 _next_ordinal_to_read += 1;
10676 if next_offset >= end_offset {
10677 return Ok(());
10678 }
10679
10680 while _next_ordinal_to_read < 6 {
10682 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10683 _next_ordinal_to_read += 1;
10684 next_offset += envelope_size;
10685 }
10686
10687 let next_out_of_line = decoder.next_out_of_line();
10688 let handles_before = decoder.remaining_handles();
10689 if let Some((inlined, num_bytes, num_handles)) =
10690 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10691 {
10692 let member_inline_size = <fidl::encoding::UnboundedVector<u8> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
10693 if inlined != (member_inline_size <= 4) {
10694 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10695 }
10696 let inner_offset;
10697 let mut inner_depth = depth.clone();
10698 if inlined {
10699 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10700 inner_offset = next_offset;
10701 } else {
10702 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10703 inner_depth.increment()?;
10704 }
10705 let val_ref = self.association_ies.get_or_insert_with(|| {
10706 fidl::new_empty!(fidl::encoding::UnboundedVector<u8>, D)
10707 });
10708 fidl::decode!(
10709 fidl::encoding::UnboundedVector<u8>,
10710 D,
10711 val_ref,
10712 decoder,
10713 inner_offset,
10714 inner_depth
10715 )?;
10716 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10717 {
10718 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10719 }
10720 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10721 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10722 }
10723 }
10724
10725 next_offset += envelope_size;
10726
10727 while next_offset < end_offset {
10729 _next_ordinal_to_read += 1;
10730 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10731 next_offset += envelope_size;
10732 }
10733
10734 Ok(())
10735 }
10736 }
10737
10738 impl WlanFullmacImplIfcRoamResultIndRequest {
10739 #[inline(always)]
10740 fn max_ordinal_present(&self) -> u64 {
10741 if let Some(_) = self.association_ies {
10742 return 6;
10743 }
10744 if let Some(_) = self.association_id {
10745 return 5;
10746 }
10747 if let Some(_) = self.target_bss_authenticated {
10748 return 4;
10749 }
10750 if let Some(_) = self.original_association_maintained {
10751 return 3;
10752 }
10753 if let Some(_) = self.status_code {
10754 return 2;
10755 }
10756 if let Some(_) = self.selected_bssid {
10757 return 1;
10758 }
10759 0
10760 }
10761 }
10762
10763 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcRoamResultIndRequest {
10764 type Borrowed<'a> = &'a Self;
10765 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
10766 value
10767 }
10768 }
10769
10770 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcRoamResultIndRequest {
10771 type Owned = Self;
10772
10773 #[inline(always)]
10774 fn inline_align(_context: fidl::encoding::Context) -> usize {
10775 8
10776 }
10777
10778 #[inline(always)]
10779 fn inline_size(_context: fidl::encoding::Context) -> usize {
10780 16
10781 }
10782 }
10783
10784 unsafe impl<D: fidl::encoding::ResourceDialect>
10785 fidl::encoding::Encode<WlanFullmacImplIfcRoamResultIndRequest, D>
10786 for &WlanFullmacImplIfcRoamResultIndRequest
10787 {
10788 unsafe fn encode(
10789 self,
10790 encoder: &mut fidl::encoding::Encoder<'_, D>,
10791 offset: usize,
10792 mut depth: fidl::encoding::Depth,
10793 ) -> fidl::Result<()> {
10794 encoder.debug_check_bounds::<WlanFullmacImplIfcRoamResultIndRequest>(offset);
10795 let max_ordinal: u64 = self.max_ordinal_present();
10797 encoder.write_num(max_ordinal, offset);
10798 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
10799 if max_ordinal == 0 {
10801 return Ok(());
10802 }
10803 depth.increment()?;
10804 let envelope_size = 8;
10805 let bytes_len = max_ordinal as usize * envelope_size;
10806 #[allow(unused_variables)]
10807 let offset = encoder.out_of_line_offset(bytes_len);
10808 let mut _prev_end_offset: usize = 0;
10809 if 1 > max_ordinal {
10810 return Ok(());
10811 }
10812
10813 let cur_offset: usize = (1 - 1) * envelope_size;
10816
10817 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10819
10820 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
10825 self.selected_bssid
10826 .as_ref()
10827 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
10828 encoder,
10829 offset + cur_offset,
10830 depth,
10831 )?;
10832
10833 _prev_end_offset = cur_offset + envelope_size;
10834 if 2 > max_ordinal {
10835 return Ok(());
10836 }
10837
10838 let cur_offset: usize = (2 - 1) * envelope_size;
10841
10842 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10844
10845 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_ieee80211_common::StatusCode, D>(
10850 self.status_code.as_ref().map(<fidl_fuchsia_wlan_ieee80211_common::StatusCode as fidl::encoding::ValueTypeMarker>::borrow),
10851 encoder, offset + cur_offset, depth
10852 )?;
10853
10854 _prev_end_offset = cur_offset + envelope_size;
10855 if 3 > max_ordinal {
10856 return Ok(());
10857 }
10858
10859 let cur_offset: usize = (3 - 1) * envelope_size;
10862
10863 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10865
10866 fidl::encoding::encode_in_envelope_optional::<bool, D>(
10871 self.original_association_maintained
10872 .as_ref()
10873 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
10874 encoder,
10875 offset + cur_offset,
10876 depth,
10877 )?;
10878
10879 _prev_end_offset = cur_offset + envelope_size;
10880 if 4 > max_ordinal {
10881 return Ok(());
10882 }
10883
10884 let cur_offset: usize = (4 - 1) * envelope_size;
10887
10888 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10890
10891 fidl::encoding::encode_in_envelope_optional::<bool, D>(
10896 self.target_bss_authenticated
10897 .as_ref()
10898 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
10899 encoder,
10900 offset + cur_offset,
10901 depth,
10902 )?;
10903
10904 _prev_end_offset = cur_offset + envelope_size;
10905 if 5 > max_ordinal {
10906 return Ok(());
10907 }
10908
10909 let cur_offset: usize = (5 - 1) * envelope_size;
10912
10913 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10915
10916 fidl::encoding::encode_in_envelope_optional::<u16, D>(
10921 self.association_id.as_ref().map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
10922 encoder,
10923 offset + cur_offset,
10924 depth,
10925 )?;
10926
10927 _prev_end_offset = cur_offset + envelope_size;
10928 if 6 > max_ordinal {
10929 return Ok(());
10930 }
10931
10932 let cur_offset: usize = (6 - 1) * envelope_size;
10935
10936 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10938
10939 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<u8>, D>(
10944 self.association_ies.as_ref().map(<fidl::encoding::UnboundedVector<u8> as fidl::encoding::ValueTypeMarker>::borrow),
10945 encoder, offset + cur_offset, depth
10946 )?;
10947
10948 _prev_end_offset = cur_offset + envelope_size;
10949
10950 Ok(())
10951 }
10952 }
10953
10954 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
10955 for WlanFullmacImplIfcRoamResultIndRequest
10956 {
10957 #[inline(always)]
10958 fn new_empty() -> Self {
10959 Self::default()
10960 }
10961
10962 unsafe fn decode(
10963 &mut self,
10964 decoder: &mut fidl::encoding::Decoder<'_, D>,
10965 offset: usize,
10966 mut depth: fidl::encoding::Depth,
10967 ) -> fidl::Result<()> {
10968 decoder.debug_check_bounds::<Self>(offset);
10969 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
10970 None => return Err(fidl::Error::NotNullable),
10971 Some(len) => len,
10972 };
10973 if len == 0 {
10975 return Ok(());
10976 };
10977 depth.increment()?;
10978 let envelope_size = 8;
10979 let bytes_len = len * envelope_size;
10980 let offset = decoder.out_of_line_offset(bytes_len)?;
10981 let mut _next_ordinal_to_read = 0;
10983 let mut next_offset = offset;
10984 let end_offset = offset + bytes_len;
10985 _next_ordinal_to_read += 1;
10986 if next_offset >= end_offset {
10987 return Ok(());
10988 }
10989
10990 while _next_ordinal_to_read < 1 {
10992 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10993 _next_ordinal_to_read += 1;
10994 next_offset += envelope_size;
10995 }
10996
10997 let next_out_of_line = decoder.next_out_of_line();
10998 let handles_before = decoder.remaining_handles();
10999 if let Some((inlined, num_bytes, num_handles)) =
11000 fidl::encoding::decode_envelope_header(decoder, next_offset)?
11001 {
11002 let member_inline_size =
11003 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
11004 decoder.context,
11005 );
11006 if inlined != (member_inline_size <= 4) {
11007 return Err(fidl::Error::InvalidInlineBitInEnvelope);
11008 }
11009 let inner_offset;
11010 let mut inner_depth = depth.clone();
11011 if inlined {
11012 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
11013 inner_offset = next_offset;
11014 } else {
11015 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
11016 inner_depth.increment()?;
11017 }
11018 let val_ref = self
11019 .selected_bssid
11020 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
11021 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
11022 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
11023 {
11024 return Err(fidl::Error::InvalidNumBytesInEnvelope);
11025 }
11026 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
11027 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
11028 }
11029 }
11030
11031 next_offset += envelope_size;
11032 _next_ordinal_to_read += 1;
11033 if next_offset >= end_offset {
11034 return Ok(());
11035 }
11036
11037 while _next_ordinal_to_read < 2 {
11039 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11040 _next_ordinal_to_read += 1;
11041 next_offset += envelope_size;
11042 }
11043
11044 let next_out_of_line = decoder.next_out_of_line();
11045 let handles_before = decoder.remaining_handles();
11046 if let Some((inlined, num_bytes, num_handles)) =
11047 fidl::encoding::decode_envelope_header(decoder, next_offset)?
11048 {
11049 let member_inline_size = <fidl_fuchsia_wlan_ieee80211_common::StatusCode as fidl::encoding::TypeMarker>::inline_size(decoder.context);
11050 if inlined != (member_inline_size <= 4) {
11051 return Err(fidl::Error::InvalidInlineBitInEnvelope);
11052 }
11053 let inner_offset;
11054 let mut inner_depth = depth.clone();
11055 if inlined {
11056 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
11057 inner_offset = next_offset;
11058 } else {
11059 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
11060 inner_depth.increment()?;
11061 }
11062 let val_ref = self.status_code.get_or_insert_with(|| {
11063 fidl::new_empty!(fidl_fuchsia_wlan_ieee80211_common::StatusCode, D)
11064 });
11065 fidl::decode!(
11066 fidl_fuchsia_wlan_ieee80211_common::StatusCode,
11067 D,
11068 val_ref,
11069 decoder,
11070 inner_offset,
11071 inner_depth
11072 )?;
11073 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
11074 {
11075 return Err(fidl::Error::InvalidNumBytesInEnvelope);
11076 }
11077 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
11078 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
11079 }
11080 }
11081
11082 next_offset += envelope_size;
11083 _next_ordinal_to_read += 1;
11084 if next_offset >= end_offset {
11085 return Ok(());
11086 }
11087
11088 while _next_ordinal_to_read < 3 {
11090 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11091 _next_ordinal_to_read += 1;
11092 next_offset += envelope_size;
11093 }
11094
11095 let next_out_of_line = decoder.next_out_of_line();
11096 let handles_before = decoder.remaining_handles();
11097 if let Some((inlined, num_bytes, num_handles)) =
11098 fidl::encoding::decode_envelope_header(decoder, next_offset)?
11099 {
11100 let member_inline_size =
11101 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
11102 if inlined != (member_inline_size <= 4) {
11103 return Err(fidl::Error::InvalidInlineBitInEnvelope);
11104 }
11105 let inner_offset;
11106 let mut inner_depth = depth.clone();
11107 if inlined {
11108 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
11109 inner_offset = next_offset;
11110 } else {
11111 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
11112 inner_depth.increment()?;
11113 }
11114 let val_ref = self
11115 .original_association_maintained
11116 .get_or_insert_with(|| fidl::new_empty!(bool, D));
11117 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
11118 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
11119 {
11120 return Err(fidl::Error::InvalidNumBytesInEnvelope);
11121 }
11122 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
11123 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
11124 }
11125 }
11126
11127 next_offset += envelope_size;
11128 _next_ordinal_to_read += 1;
11129 if next_offset >= end_offset {
11130 return Ok(());
11131 }
11132
11133 while _next_ordinal_to_read < 4 {
11135 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11136 _next_ordinal_to_read += 1;
11137 next_offset += envelope_size;
11138 }
11139
11140 let next_out_of_line = decoder.next_out_of_line();
11141 let handles_before = decoder.remaining_handles();
11142 if let Some((inlined, num_bytes, num_handles)) =
11143 fidl::encoding::decode_envelope_header(decoder, next_offset)?
11144 {
11145 let member_inline_size =
11146 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
11147 if inlined != (member_inline_size <= 4) {
11148 return Err(fidl::Error::InvalidInlineBitInEnvelope);
11149 }
11150 let inner_offset;
11151 let mut inner_depth = depth.clone();
11152 if inlined {
11153 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
11154 inner_offset = next_offset;
11155 } else {
11156 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
11157 inner_depth.increment()?;
11158 }
11159 let val_ref =
11160 self.target_bss_authenticated.get_or_insert_with(|| fidl::new_empty!(bool, D));
11161 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
11162 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
11163 {
11164 return Err(fidl::Error::InvalidNumBytesInEnvelope);
11165 }
11166 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
11167 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
11168 }
11169 }
11170
11171 next_offset += envelope_size;
11172 _next_ordinal_to_read += 1;
11173 if next_offset >= end_offset {
11174 return Ok(());
11175 }
11176
11177 while _next_ordinal_to_read < 5 {
11179 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11180 _next_ordinal_to_read += 1;
11181 next_offset += envelope_size;
11182 }
11183
11184 let next_out_of_line = decoder.next_out_of_line();
11185 let handles_before = decoder.remaining_handles();
11186 if let Some((inlined, num_bytes, num_handles)) =
11187 fidl::encoding::decode_envelope_header(decoder, next_offset)?
11188 {
11189 let member_inline_size =
11190 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
11191 if inlined != (member_inline_size <= 4) {
11192 return Err(fidl::Error::InvalidInlineBitInEnvelope);
11193 }
11194 let inner_offset;
11195 let mut inner_depth = depth.clone();
11196 if inlined {
11197 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
11198 inner_offset = next_offset;
11199 } else {
11200 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
11201 inner_depth.increment()?;
11202 }
11203 let val_ref = self.association_id.get_or_insert_with(|| fidl::new_empty!(u16, D));
11204 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
11205 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
11206 {
11207 return Err(fidl::Error::InvalidNumBytesInEnvelope);
11208 }
11209 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
11210 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
11211 }
11212 }
11213
11214 next_offset += envelope_size;
11215 _next_ordinal_to_read += 1;
11216 if next_offset >= end_offset {
11217 return Ok(());
11218 }
11219
11220 while _next_ordinal_to_read < 6 {
11222 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11223 _next_ordinal_to_read += 1;
11224 next_offset += envelope_size;
11225 }
11226
11227 let next_out_of_line = decoder.next_out_of_line();
11228 let handles_before = decoder.remaining_handles();
11229 if let Some((inlined, num_bytes, num_handles)) =
11230 fidl::encoding::decode_envelope_header(decoder, next_offset)?
11231 {
11232 let member_inline_size = <fidl::encoding::UnboundedVector<u8> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
11233 if inlined != (member_inline_size <= 4) {
11234 return Err(fidl::Error::InvalidInlineBitInEnvelope);
11235 }
11236 let inner_offset;
11237 let mut inner_depth = depth.clone();
11238 if inlined {
11239 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
11240 inner_offset = next_offset;
11241 } else {
11242 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
11243 inner_depth.increment()?;
11244 }
11245 let val_ref = self.association_ies.get_or_insert_with(|| {
11246 fidl::new_empty!(fidl::encoding::UnboundedVector<u8>, D)
11247 });
11248 fidl::decode!(
11249 fidl::encoding::UnboundedVector<u8>,
11250 D,
11251 val_ref,
11252 decoder,
11253 inner_offset,
11254 inner_depth
11255 )?;
11256 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
11257 {
11258 return Err(fidl::Error::InvalidNumBytesInEnvelope);
11259 }
11260 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
11261 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
11262 }
11263 }
11264
11265 next_offset += envelope_size;
11266
11267 while next_offset < end_offset {
11269 _next_ordinal_to_read += 1;
11270 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11271 next_offset += envelope_size;
11272 }
11273
11274 Ok(())
11275 }
11276 }
11277
11278 impl WlanFullmacImplIfcRoamStartIndRequest {
11279 #[inline(always)]
11280 fn max_ordinal_present(&self) -> u64 {
11281 if let Some(_) = self.original_association_maintained {
11282 return 3;
11283 }
11284 if let Some(_) = self.selected_bss {
11285 return 2;
11286 }
11287 if let Some(_) = self.selected_bssid {
11288 return 1;
11289 }
11290 0
11291 }
11292 }
11293
11294 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcRoamStartIndRequest {
11295 type Borrowed<'a> = &'a Self;
11296 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
11297 value
11298 }
11299 }
11300
11301 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcRoamStartIndRequest {
11302 type Owned = Self;
11303
11304 #[inline(always)]
11305 fn inline_align(_context: fidl::encoding::Context) -> usize {
11306 8
11307 }
11308
11309 #[inline(always)]
11310 fn inline_size(_context: fidl::encoding::Context) -> usize {
11311 16
11312 }
11313 }
11314
11315 unsafe impl<D: fidl::encoding::ResourceDialect>
11316 fidl::encoding::Encode<WlanFullmacImplIfcRoamStartIndRequest, D>
11317 for &WlanFullmacImplIfcRoamStartIndRequest
11318 {
11319 unsafe fn encode(
11320 self,
11321 encoder: &mut fidl::encoding::Encoder<'_, D>,
11322 offset: usize,
11323 mut depth: fidl::encoding::Depth,
11324 ) -> fidl::Result<()> {
11325 encoder.debug_check_bounds::<WlanFullmacImplIfcRoamStartIndRequest>(offset);
11326 let max_ordinal: u64 = self.max_ordinal_present();
11328 encoder.write_num(max_ordinal, offset);
11329 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
11330 if max_ordinal == 0 {
11332 return Ok(());
11333 }
11334 depth.increment()?;
11335 let envelope_size = 8;
11336 let bytes_len = max_ordinal as usize * envelope_size;
11337 #[allow(unused_variables)]
11338 let offset = encoder.out_of_line_offset(bytes_len);
11339 let mut _prev_end_offset: usize = 0;
11340 if 1 > max_ordinal {
11341 return Ok(());
11342 }
11343
11344 let cur_offset: usize = (1 - 1) * envelope_size;
11347
11348 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
11350
11351 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
11356 self.selected_bssid
11357 .as_ref()
11358 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
11359 encoder,
11360 offset + cur_offset,
11361 depth,
11362 )?;
11363
11364 _prev_end_offset = cur_offset + envelope_size;
11365 if 2 > max_ordinal {
11366 return Ok(());
11367 }
11368
11369 let cur_offset: usize = (2 - 1) * envelope_size;
11372
11373 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
11375
11376 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_ieee80211_common::BssDescription, D>(
11381 self.selected_bss.as_ref().map(<fidl_fuchsia_wlan_ieee80211_common::BssDescription as fidl::encoding::ValueTypeMarker>::borrow),
11382 encoder, offset + cur_offset, depth
11383 )?;
11384
11385 _prev_end_offset = cur_offset + envelope_size;
11386 if 3 > max_ordinal {
11387 return Ok(());
11388 }
11389
11390 let cur_offset: usize = (3 - 1) * envelope_size;
11393
11394 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
11396
11397 fidl::encoding::encode_in_envelope_optional::<bool, D>(
11402 self.original_association_maintained
11403 .as_ref()
11404 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
11405 encoder,
11406 offset + cur_offset,
11407 depth,
11408 )?;
11409
11410 _prev_end_offset = cur_offset + envelope_size;
11411
11412 Ok(())
11413 }
11414 }
11415
11416 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
11417 for WlanFullmacImplIfcRoamStartIndRequest
11418 {
11419 #[inline(always)]
11420 fn new_empty() -> Self {
11421 Self::default()
11422 }
11423
11424 unsafe fn decode(
11425 &mut self,
11426 decoder: &mut fidl::encoding::Decoder<'_, D>,
11427 offset: usize,
11428 mut depth: fidl::encoding::Depth,
11429 ) -> fidl::Result<()> {
11430 decoder.debug_check_bounds::<Self>(offset);
11431 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
11432 None => return Err(fidl::Error::NotNullable),
11433 Some(len) => len,
11434 };
11435 if len == 0 {
11437 return Ok(());
11438 };
11439 depth.increment()?;
11440 let envelope_size = 8;
11441 let bytes_len = len * envelope_size;
11442 let offset = decoder.out_of_line_offset(bytes_len)?;
11443 let mut _next_ordinal_to_read = 0;
11445 let mut next_offset = offset;
11446 let end_offset = offset + bytes_len;
11447 _next_ordinal_to_read += 1;
11448 if next_offset >= end_offset {
11449 return Ok(());
11450 }
11451
11452 while _next_ordinal_to_read < 1 {
11454 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11455 _next_ordinal_to_read += 1;
11456 next_offset += envelope_size;
11457 }
11458
11459 let next_out_of_line = decoder.next_out_of_line();
11460 let handles_before = decoder.remaining_handles();
11461 if let Some((inlined, num_bytes, num_handles)) =
11462 fidl::encoding::decode_envelope_header(decoder, next_offset)?
11463 {
11464 let member_inline_size =
11465 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
11466 decoder.context,
11467 );
11468 if inlined != (member_inline_size <= 4) {
11469 return Err(fidl::Error::InvalidInlineBitInEnvelope);
11470 }
11471 let inner_offset;
11472 let mut inner_depth = depth.clone();
11473 if inlined {
11474 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
11475 inner_offset = next_offset;
11476 } else {
11477 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
11478 inner_depth.increment()?;
11479 }
11480 let val_ref = self
11481 .selected_bssid
11482 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
11483 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
11484 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
11485 {
11486 return Err(fidl::Error::InvalidNumBytesInEnvelope);
11487 }
11488 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
11489 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
11490 }
11491 }
11492
11493 next_offset += envelope_size;
11494 _next_ordinal_to_read += 1;
11495 if next_offset >= end_offset {
11496 return Ok(());
11497 }
11498
11499 while _next_ordinal_to_read < 2 {
11501 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11502 _next_ordinal_to_read += 1;
11503 next_offset += envelope_size;
11504 }
11505
11506 let next_out_of_line = decoder.next_out_of_line();
11507 let handles_before = decoder.remaining_handles();
11508 if let Some((inlined, num_bytes, num_handles)) =
11509 fidl::encoding::decode_envelope_header(decoder, next_offset)?
11510 {
11511 let member_inline_size = <fidl_fuchsia_wlan_ieee80211_common::BssDescription as fidl::encoding::TypeMarker>::inline_size(decoder.context);
11512 if inlined != (member_inline_size <= 4) {
11513 return Err(fidl::Error::InvalidInlineBitInEnvelope);
11514 }
11515 let inner_offset;
11516 let mut inner_depth = depth.clone();
11517 if inlined {
11518 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
11519 inner_offset = next_offset;
11520 } else {
11521 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
11522 inner_depth.increment()?;
11523 }
11524 let val_ref = self.selected_bss.get_or_insert_with(|| {
11525 fidl::new_empty!(fidl_fuchsia_wlan_ieee80211_common::BssDescription, D)
11526 });
11527 fidl::decode!(
11528 fidl_fuchsia_wlan_ieee80211_common::BssDescription,
11529 D,
11530 val_ref,
11531 decoder,
11532 inner_offset,
11533 inner_depth
11534 )?;
11535 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
11536 {
11537 return Err(fidl::Error::InvalidNumBytesInEnvelope);
11538 }
11539 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
11540 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
11541 }
11542 }
11543
11544 next_offset += envelope_size;
11545 _next_ordinal_to_read += 1;
11546 if next_offset >= end_offset {
11547 return Ok(());
11548 }
11549
11550 while _next_ordinal_to_read < 3 {
11552 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11553 _next_ordinal_to_read += 1;
11554 next_offset += envelope_size;
11555 }
11556
11557 let next_out_of_line = decoder.next_out_of_line();
11558 let handles_before = decoder.remaining_handles();
11559 if let Some((inlined, num_bytes, num_handles)) =
11560 fidl::encoding::decode_envelope_header(decoder, next_offset)?
11561 {
11562 let member_inline_size =
11563 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
11564 if inlined != (member_inline_size <= 4) {
11565 return Err(fidl::Error::InvalidInlineBitInEnvelope);
11566 }
11567 let inner_offset;
11568 let mut inner_depth = depth.clone();
11569 if inlined {
11570 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
11571 inner_offset = next_offset;
11572 } else {
11573 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
11574 inner_depth.increment()?;
11575 }
11576 let val_ref = self
11577 .original_association_maintained
11578 .get_or_insert_with(|| fidl::new_empty!(bool, D));
11579 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
11580 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
11581 {
11582 return Err(fidl::Error::InvalidNumBytesInEnvelope);
11583 }
11584 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
11585 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
11586 }
11587 }
11588
11589 next_offset += envelope_size;
11590
11591 while next_offset < end_offset {
11593 _next_ordinal_to_read += 1;
11594 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11595 next_offset += envelope_size;
11596 }
11597
11598 Ok(())
11599 }
11600 }
11601
11602 impl WlanFullmacImplIfcSaeHandshakeIndRequest {
11603 #[inline(always)]
11604 fn max_ordinal_present(&self) -> u64 {
11605 if let Some(_) = self.peer_sta_address {
11606 return 1;
11607 }
11608 0
11609 }
11610 }
11611
11612 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcSaeHandshakeIndRequest {
11613 type Borrowed<'a> = &'a Self;
11614 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
11615 value
11616 }
11617 }
11618
11619 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcSaeHandshakeIndRequest {
11620 type Owned = Self;
11621
11622 #[inline(always)]
11623 fn inline_align(_context: fidl::encoding::Context) -> usize {
11624 8
11625 }
11626
11627 #[inline(always)]
11628 fn inline_size(_context: fidl::encoding::Context) -> usize {
11629 16
11630 }
11631 }
11632
11633 unsafe impl<D: fidl::encoding::ResourceDialect>
11634 fidl::encoding::Encode<WlanFullmacImplIfcSaeHandshakeIndRequest, D>
11635 for &WlanFullmacImplIfcSaeHandshakeIndRequest
11636 {
11637 unsafe fn encode(
11638 self,
11639 encoder: &mut fidl::encoding::Encoder<'_, D>,
11640 offset: usize,
11641 mut depth: fidl::encoding::Depth,
11642 ) -> fidl::Result<()> {
11643 encoder.debug_check_bounds::<WlanFullmacImplIfcSaeHandshakeIndRequest>(offset);
11644 let max_ordinal: u64 = self.max_ordinal_present();
11646 encoder.write_num(max_ordinal, offset);
11647 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
11648 if max_ordinal == 0 {
11650 return Ok(());
11651 }
11652 depth.increment()?;
11653 let envelope_size = 8;
11654 let bytes_len = max_ordinal as usize * envelope_size;
11655 #[allow(unused_variables)]
11656 let offset = encoder.out_of_line_offset(bytes_len);
11657 let mut _prev_end_offset: usize = 0;
11658 if 1 > max_ordinal {
11659 return Ok(());
11660 }
11661
11662 let cur_offset: usize = (1 - 1) * envelope_size;
11665
11666 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
11668
11669 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
11674 self.peer_sta_address
11675 .as_ref()
11676 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
11677 encoder,
11678 offset + cur_offset,
11679 depth,
11680 )?;
11681
11682 _prev_end_offset = cur_offset + envelope_size;
11683
11684 Ok(())
11685 }
11686 }
11687
11688 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
11689 for WlanFullmacImplIfcSaeHandshakeIndRequest
11690 {
11691 #[inline(always)]
11692 fn new_empty() -> Self {
11693 Self::default()
11694 }
11695
11696 unsafe fn decode(
11697 &mut self,
11698 decoder: &mut fidl::encoding::Decoder<'_, D>,
11699 offset: usize,
11700 mut depth: fidl::encoding::Depth,
11701 ) -> fidl::Result<()> {
11702 decoder.debug_check_bounds::<Self>(offset);
11703 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
11704 None => return Err(fidl::Error::NotNullable),
11705 Some(len) => len,
11706 };
11707 if len == 0 {
11709 return Ok(());
11710 };
11711 depth.increment()?;
11712 let envelope_size = 8;
11713 let bytes_len = len * envelope_size;
11714 let offset = decoder.out_of_line_offset(bytes_len)?;
11715 let mut _next_ordinal_to_read = 0;
11717 let mut next_offset = offset;
11718 let end_offset = offset + bytes_len;
11719 _next_ordinal_to_read += 1;
11720 if next_offset >= end_offset {
11721 return Ok(());
11722 }
11723
11724 while _next_ordinal_to_read < 1 {
11726 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11727 _next_ordinal_to_read += 1;
11728 next_offset += envelope_size;
11729 }
11730
11731 let next_out_of_line = decoder.next_out_of_line();
11732 let handles_before = decoder.remaining_handles();
11733 if let Some((inlined, num_bytes, num_handles)) =
11734 fidl::encoding::decode_envelope_header(decoder, next_offset)?
11735 {
11736 let member_inline_size =
11737 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
11738 decoder.context,
11739 );
11740 if inlined != (member_inline_size <= 4) {
11741 return Err(fidl::Error::InvalidInlineBitInEnvelope);
11742 }
11743 let inner_offset;
11744 let mut inner_depth = depth.clone();
11745 if inlined {
11746 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
11747 inner_offset = next_offset;
11748 } else {
11749 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
11750 inner_depth.increment()?;
11751 }
11752 let val_ref = self
11753 .peer_sta_address
11754 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
11755 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
11756 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
11757 {
11758 return Err(fidl::Error::InvalidNumBytesInEnvelope);
11759 }
11760 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
11761 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
11762 }
11763 }
11764
11765 next_offset += envelope_size;
11766
11767 while next_offset < end_offset {
11769 _next_ordinal_to_read += 1;
11770 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11771 next_offset += envelope_size;
11772 }
11773
11774 Ok(())
11775 }
11776 }
11777
11778 impl WlanFullmacImplIfcStartConfRequest {
11779 #[inline(always)]
11780 fn max_ordinal_present(&self) -> u64 {
11781 if let Some(_) = self.result_code {
11782 return 1;
11783 }
11784 0
11785 }
11786 }
11787
11788 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcStartConfRequest {
11789 type Borrowed<'a> = &'a Self;
11790 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
11791 value
11792 }
11793 }
11794
11795 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcStartConfRequest {
11796 type Owned = Self;
11797
11798 #[inline(always)]
11799 fn inline_align(_context: fidl::encoding::Context) -> usize {
11800 8
11801 }
11802
11803 #[inline(always)]
11804 fn inline_size(_context: fidl::encoding::Context) -> usize {
11805 16
11806 }
11807 }
11808
11809 unsafe impl<D: fidl::encoding::ResourceDialect>
11810 fidl::encoding::Encode<WlanFullmacImplIfcStartConfRequest, D>
11811 for &WlanFullmacImplIfcStartConfRequest
11812 {
11813 unsafe fn encode(
11814 self,
11815 encoder: &mut fidl::encoding::Encoder<'_, D>,
11816 offset: usize,
11817 mut depth: fidl::encoding::Depth,
11818 ) -> fidl::Result<()> {
11819 encoder.debug_check_bounds::<WlanFullmacImplIfcStartConfRequest>(offset);
11820 let max_ordinal: u64 = self.max_ordinal_present();
11822 encoder.write_num(max_ordinal, offset);
11823 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
11824 if max_ordinal == 0 {
11826 return Ok(());
11827 }
11828 depth.increment()?;
11829 let envelope_size = 8;
11830 let bytes_len = max_ordinal as usize * envelope_size;
11831 #[allow(unused_variables)]
11832 let offset = encoder.out_of_line_offset(bytes_len);
11833 let mut _prev_end_offset: usize = 0;
11834 if 1 > max_ordinal {
11835 return Ok(());
11836 }
11837
11838 let cur_offset: usize = (1 - 1) * envelope_size;
11841
11842 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
11844
11845 fidl::encoding::encode_in_envelope_optional::<StartResult, D>(
11850 self.result_code
11851 .as_ref()
11852 .map(<StartResult as fidl::encoding::ValueTypeMarker>::borrow),
11853 encoder,
11854 offset + cur_offset,
11855 depth,
11856 )?;
11857
11858 _prev_end_offset = cur_offset + envelope_size;
11859
11860 Ok(())
11861 }
11862 }
11863
11864 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
11865 for WlanFullmacImplIfcStartConfRequest
11866 {
11867 #[inline(always)]
11868 fn new_empty() -> Self {
11869 Self::default()
11870 }
11871
11872 unsafe fn decode(
11873 &mut self,
11874 decoder: &mut fidl::encoding::Decoder<'_, D>,
11875 offset: usize,
11876 mut depth: fidl::encoding::Depth,
11877 ) -> fidl::Result<()> {
11878 decoder.debug_check_bounds::<Self>(offset);
11879 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
11880 None => return Err(fidl::Error::NotNullable),
11881 Some(len) => len,
11882 };
11883 if len == 0 {
11885 return Ok(());
11886 };
11887 depth.increment()?;
11888 let envelope_size = 8;
11889 let bytes_len = len * envelope_size;
11890 let offset = decoder.out_of_line_offset(bytes_len)?;
11891 let mut _next_ordinal_to_read = 0;
11893 let mut next_offset = offset;
11894 let end_offset = offset + bytes_len;
11895 _next_ordinal_to_read += 1;
11896 if next_offset >= end_offset {
11897 return Ok(());
11898 }
11899
11900 while _next_ordinal_to_read < 1 {
11902 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11903 _next_ordinal_to_read += 1;
11904 next_offset += envelope_size;
11905 }
11906
11907 let next_out_of_line = decoder.next_out_of_line();
11908 let handles_before = decoder.remaining_handles();
11909 if let Some((inlined, num_bytes, num_handles)) =
11910 fidl::encoding::decode_envelope_header(decoder, next_offset)?
11911 {
11912 let member_inline_size =
11913 <StartResult as fidl::encoding::TypeMarker>::inline_size(decoder.context);
11914 if inlined != (member_inline_size <= 4) {
11915 return Err(fidl::Error::InvalidInlineBitInEnvelope);
11916 }
11917 let inner_offset;
11918 let mut inner_depth = depth.clone();
11919 if inlined {
11920 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
11921 inner_offset = next_offset;
11922 } else {
11923 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
11924 inner_depth.increment()?;
11925 }
11926 let val_ref =
11927 self.result_code.get_or_insert_with(|| fidl::new_empty!(StartResult, D));
11928 fidl::decode!(StartResult, D, val_ref, decoder, inner_offset, inner_depth)?;
11929 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
11930 {
11931 return Err(fidl::Error::InvalidNumBytesInEnvelope);
11932 }
11933 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
11934 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
11935 }
11936 }
11937
11938 next_offset += envelope_size;
11939
11940 while next_offset < end_offset {
11942 _next_ordinal_to_read += 1;
11943 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11944 next_offset += envelope_size;
11945 }
11946
11947 Ok(())
11948 }
11949 }
11950
11951 impl WlanFullmacImplIfcStopConfRequest {
11952 #[inline(always)]
11953 fn max_ordinal_present(&self) -> u64 {
11954 if let Some(_) = self.result_code {
11955 return 1;
11956 }
11957 0
11958 }
11959 }
11960
11961 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplIfcStopConfRequest {
11962 type Borrowed<'a> = &'a Self;
11963 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
11964 value
11965 }
11966 }
11967
11968 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplIfcStopConfRequest {
11969 type Owned = Self;
11970
11971 #[inline(always)]
11972 fn inline_align(_context: fidl::encoding::Context) -> usize {
11973 8
11974 }
11975
11976 #[inline(always)]
11977 fn inline_size(_context: fidl::encoding::Context) -> usize {
11978 16
11979 }
11980 }
11981
11982 unsafe impl<D: fidl::encoding::ResourceDialect>
11983 fidl::encoding::Encode<WlanFullmacImplIfcStopConfRequest, D>
11984 for &WlanFullmacImplIfcStopConfRequest
11985 {
11986 unsafe fn encode(
11987 self,
11988 encoder: &mut fidl::encoding::Encoder<'_, D>,
11989 offset: usize,
11990 mut depth: fidl::encoding::Depth,
11991 ) -> fidl::Result<()> {
11992 encoder.debug_check_bounds::<WlanFullmacImplIfcStopConfRequest>(offset);
11993 let max_ordinal: u64 = self.max_ordinal_present();
11995 encoder.write_num(max_ordinal, offset);
11996 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
11997 if max_ordinal == 0 {
11999 return Ok(());
12000 }
12001 depth.increment()?;
12002 let envelope_size = 8;
12003 let bytes_len = max_ordinal as usize * envelope_size;
12004 #[allow(unused_variables)]
12005 let offset = encoder.out_of_line_offset(bytes_len);
12006 let mut _prev_end_offset: usize = 0;
12007 if 1 > max_ordinal {
12008 return Ok(());
12009 }
12010
12011 let cur_offset: usize = (1 - 1) * envelope_size;
12014
12015 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12017
12018 fidl::encoding::encode_in_envelope_optional::<StopResult, D>(
12023 self.result_code
12024 .as_ref()
12025 .map(<StopResult as fidl::encoding::ValueTypeMarker>::borrow),
12026 encoder,
12027 offset + cur_offset,
12028 depth,
12029 )?;
12030
12031 _prev_end_offset = cur_offset + envelope_size;
12032
12033 Ok(())
12034 }
12035 }
12036
12037 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
12038 for WlanFullmacImplIfcStopConfRequest
12039 {
12040 #[inline(always)]
12041 fn new_empty() -> Self {
12042 Self::default()
12043 }
12044
12045 unsafe fn decode(
12046 &mut self,
12047 decoder: &mut fidl::encoding::Decoder<'_, D>,
12048 offset: usize,
12049 mut depth: fidl::encoding::Depth,
12050 ) -> fidl::Result<()> {
12051 decoder.debug_check_bounds::<Self>(offset);
12052 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
12053 None => return Err(fidl::Error::NotNullable),
12054 Some(len) => len,
12055 };
12056 if len == 0 {
12058 return Ok(());
12059 };
12060 depth.increment()?;
12061 let envelope_size = 8;
12062 let bytes_len = len * envelope_size;
12063 let offset = decoder.out_of_line_offset(bytes_len)?;
12064 let mut _next_ordinal_to_read = 0;
12066 let mut next_offset = offset;
12067 let end_offset = offset + bytes_len;
12068 _next_ordinal_to_read += 1;
12069 if next_offset >= end_offset {
12070 return Ok(());
12071 }
12072
12073 while _next_ordinal_to_read < 1 {
12075 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12076 _next_ordinal_to_read += 1;
12077 next_offset += envelope_size;
12078 }
12079
12080 let next_out_of_line = decoder.next_out_of_line();
12081 let handles_before = decoder.remaining_handles();
12082 if let Some((inlined, num_bytes, num_handles)) =
12083 fidl::encoding::decode_envelope_header(decoder, next_offset)?
12084 {
12085 let member_inline_size =
12086 <StopResult as fidl::encoding::TypeMarker>::inline_size(decoder.context);
12087 if inlined != (member_inline_size <= 4) {
12088 return Err(fidl::Error::InvalidInlineBitInEnvelope);
12089 }
12090 let inner_offset;
12091 let mut inner_depth = depth.clone();
12092 if inlined {
12093 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
12094 inner_offset = next_offset;
12095 } else {
12096 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
12097 inner_depth.increment()?;
12098 }
12099 let val_ref =
12100 self.result_code.get_or_insert_with(|| fidl::new_empty!(StopResult, D));
12101 fidl::decode!(StopResult, D, val_ref, decoder, inner_offset, inner_depth)?;
12102 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
12103 {
12104 return Err(fidl::Error::InvalidNumBytesInEnvelope);
12105 }
12106 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
12107 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
12108 }
12109 }
12110
12111 next_offset += envelope_size;
12112
12113 while next_offset < end_offset {
12115 _next_ordinal_to_read += 1;
12116 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12117 next_offset += envelope_size;
12118 }
12119
12120 Ok(())
12121 }
12122 }
12123
12124 impl WlanFullmacImplInstallApfPacketFilterRequest {
12125 #[inline(always)]
12126 fn max_ordinal_present(&self) -> u64 {
12127 if let Some(_) = self.program {
12128 return 1;
12129 }
12130 0
12131 }
12132 }
12133
12134 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplInstallApfPacketFilterRequest {
12135 type Borrowed<'a> = &'a Self;
12136 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
12137 value
12138 }
12139 }
12140
12141 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplInstallApfPacketFilterRequest {
12142 type Owned = Self;
12143
12144 #[inline(always)]
12145 fn inline_align(_context: fidl::encoding::Context) -> usize {
12146 8
12147 }
12148
12149 #[inline(always)]
12150 fn inline_size(_context: fidl::encoding::Context) -> usize {
12151 16
12152 }
12153 }
12154
12155 unsafe impl<D: fidl::encoding::ResourceDialect>
12156 fidl::encoding::Encode<WlanFullmacImplInstallApfPacketFilterRequest, D>
12157 for &WlanFullmacImplInstallApfPacketFilterRequest
12158 {
12159 unsafe fn encode(
12160 self,
12161 encoder: &mut fidl::encoding::Encoder<'_, D>,
12162 offset: usize,
12163 mut depth: fidl::encoding::Depth,
12164 ) -> fidl::Result<()> {
12165 encoder.debug_check_bounds::<WlanFullmacImplInstallApfPacketFilterRequest>(offset);
12166 let max_ordinal: u64 = self.max_ordinal_present();
12168 encoder.write_num(max_ordinal, offset);
12169 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
12170 if max_ordinal == 0 {
12172 return Ok(());
12173 }
12174 depth.increment()?;
12175 let envelope_size = 8;
12176 let bytes_len = max_ordinal as usize * envelope_size;
12177 #[allow(unused_variables)]
12178 let offset = encoder.out_of_line_offset(bytes_len);
12179 let mut _prev_end_offset: usize = 0;
12180 if 1 > max_ordinal {
12181 return Ok(());
12182 }
12183
12184 let cur_offset: usize = (1 - 1) * envelope_size;
12187
12188 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12190
12191 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<u8>, D>(
12196 self.program.as_ref().map(<fidl::encoding::UnboundedVector<u8> as fidl::encoding::ValueTypeMarker>::borrow),
12197 encoder, offset + cur_offset, depth
12198 )?;
12199
12200 _prev_end_offset = cur_offset + envelope_size;
12201
12202 Ok(())
12203 }
12204 }
12205
12206 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
12207 for WlanFullmacImplInstallApfPacketFilterRequest
12208 {
12209 #[inline(always)]
12210 fn new_empty() -> Self {
12211 Self::default()
12212 }
12213
12214 unsafe fn decode(
12215 &mut self,
12216 decoder: &mut fidl::encoding::Decoder<'_, D>,
12217 offset: usize,
12218 mut depth: fidl::encoding::Depth,
12219 ) -> fidl::Result<()> {
12220 decoder.debug_check_bounds::<Self>(offset);
12221 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
12222 None => return Err(fidl::Error::NotNullable),
12223 Some(len) => len,
12224 };
12225 if len == 0 {
12227 return Ok(());
12228 };
12229 depth.increment()?;
12230 let envelope_size = 8;
12231 let bytes_len = len * envelope_size;
12232 let offset = decoder.out_of_line_offset(bytes_len)?;
12233 let mut _next_ordinal_to_read = 0;
12235 let mut next_offset = offset;
12236 let end_offset = offset + bytes_len;
12237 _next_ordinal_to_read += 1;
12238 if next_offset >= end_offset {
12239 return Ok(());
12240 }
12241
12242 while _next_ordinal_to_read < 1 {
12244 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12245 _next_ordinal_to_read += 1;
12246 next_offset += envelope_size;
12247 }
12248
12249 let next_out_of_line = decoder.next_out_of_line();
12250 let handles_before = decoder.remaining_handles();
12251 if let Some((inlined, num_bytes, num_handles)) =
12252 fidl::encoding::decode_envelope_header(decoder, next_offset)?
12253 {
12254 let member_inline_size = <fidl::encoding::UnboundedVector<u8> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
12255 if inlined != (member_inline_size <= 4) {
12256 return Err(fidl::Error::InvalidInlineBitInEnvelope);
12257 }
12258 let inner_offset;
12259 let mut inner_depth = depth.clone();
12260 if inlined {
12261 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
12262 inner_offset = next_offset;
12263 } else {
12264 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
12265 inner_depth.increment()?;
12266 }
12267 let val_ref = self.program.get_or_insert_with(|| {
12268 fidl::new_empty!(fidl::encoding::UnboundedVector<u8>, D)
12269 });
12270 fidl::decode!(
12271 fidl::encoding::UnboundedVector<u8>,
12272 D,
12273 val_ref,
12274 decoder,
12275 inner_offset,
12276 inner_depth
12277 )?;
12278 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
12279 {
12280 return Err(fidl::Error::InvalidNumBytesInEnvelope);
12281 }
12282 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
12283 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
12284 }
12285 }
12286
12287 next_offset += envelope_size;
12288
12289 while next_offset < end_offset {
12291 _next_ordinal_to_read += 1;
12292 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12293 next_offset += envelope_size;
12294 }
12295
12296 Ok(())
12297 }
12298 }
12299
12300 impl WlanFullmacImplOnLinkStateChangedRequest {
12301 #[inline(always)]
12302 fn max_ordinal_present(&self) -> u64 {
12303 if let Some(_) = self.online {
12304 return 1;
12305 }
12306 0
12307 }
12308 }
12309
12310 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplOnLinkStateChangedRequest {
12311 type Borrowed<'a> = &'a Self;
12312 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
12313 value
12314 }
12315 }
12316
12317 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplOnLinkStateChangedRequest {
12318 type Owned = Self;
12319
12320 #[inline(always)]
12321 fn inline_align(_context: fidl::encoding::Context) -> usize {
12322 8
12323 }
12324
12325 #[inline(always)]
12326 fn inline_size(_context: fidl::encoding::Context) -> usize {
12327 16
12328 }
12329 }
12330
12331 unsafe impl<D: fidl::encoding::ResourceDialect>
12332 fidl::encoding::Encode<WlanFullmacImplOnLinkStateChangedRequest, D>
12333 for &WlanFullmacImplOnLinkStateChangedRequest
12334 {
12335 unsafe fn encode(
12336 self,
12337 encoder: &mut fidl::encoding::Encoder<'_, D>,
12338 offset: usize,
12339 mut depth: fidl::encoding::Depth,
12340 ) -> fidl::Result<()> {
12341 encoder.debug_check_bounds::<WlanFullmacImplOnLinkStateChangedRequest>(offset);
12342 let max_ordinal: u64 = self.max_ordinal_present();
12344 encoder.write_num(max_ordinal, offset);
12345 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
12346 if max_ordinal == 0 {
12348 return Ok(());
12349 }
12350 depth.increment()?;
12351 let envelope_size = 8;
12352 let bytes_len = max_ordinal as usize * envelope_size;
12353 #[allow(unused_variables)]
12354 let offset = encoder.out_of_line_offset(bytes_len);
12355 let mut _prev_end_offset: usize = 0;
12356 if 1 > max_ordinal {
12357 return Ok(());
12358 }
12359
12360 let cur_offset: usize = (1 - 1) * envelope_size;
12363
12364 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12366
12367 fidl::encoding::encode_in_envelope_optional::<bool, D>(
12372 self.online.as_ref().map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
12373 encoder,
12374 offset + cur_offset,
12375 depth,
12376 )?;
12377
12378 _prev_end_offset = cur_offset + envelope_size;
12379
12380 Ok(())
12381 }
12382 }
12383
12384 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
12385 for WlanFullmacImplOnLinkStateChangedRequest
12386 {
12387 #[inline(always)]
12388 fn new_empty() -> Self {
12389 Self::default()
12390 }
12391
12392 unsafe fn decode(
12393 &mut self,
12394 decoder: &mut fidl::encoding::Decoder<'_, D>,
12395 offset: usize,
12396 mut depth: fidl::encoding::Depth,
12397 ) -> fidl::Result<()> {
12398 decoder.debug_check_bounds::<Self>(offset);
12399 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
12400 None => return Err(fidl::Error::NotNullable),
12401 Some(len) => len,
12402 };
12403 if len == 0 {
12405 return Ok(());
12406 };
12407 depth.increment()?;
12408 let envelope_size = 8;
12409 let bytes_len = len * envelope_size;
12410 let offset = decoder.out_of_line_offset(bytes_len)?;
12411 let mut _next_ordinal_to_read = 0;
12413 let mut next_offset = offset;
12414 let end_offset = offset + bytes_len;
12415 _next_ordinal_to_read += 1;
12416 if next_offset >= end_offset {
12417 return Ok(());
12418 }
12419
12420 while _next_ordinal_to_read < 1 {
12422 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12423 _next_ordinal_to_read += 1;
12424 next_offset += envelope_size;
12425 }
12426
12427 let next_out_of_line = decoder.next_out_of_line();
12428 let handles_before = decoder.remaining_handles();
12429 if let Some((inlined, num_bytes, num_handles)) =
12430 fidl::encoding::decode_envelope_header(decoder, next_offset)?
12431 {
12432 let member_inline_size =
12433 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
12434 if inlined != (member_inline_size <= 4) {
12435 return Err(fidl::Error::InvalidInlineBitInEnvelope);
12436 }
12437 let inner_offset;
12438 let mut inner_depth = depth.clone();
12439 if inlined {
12440 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
12441 inner_offset = next_offset;
12442 } else {
12443 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
12444 inner_depth.increment()?;
12445 }
12446 let val_ref = self.online.get_or_insert_with(|| fidl::new_empty!(bool, D));
12447 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
12448 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
12449 {
12450 return Err(fidl::Error::InvalidNumBytesInEnvelope);
12451 }
12452 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
12453 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
12454 }
12455 }
12456
12457 next_offset += envelope_size;
12458
12459 while next_offset < end_offset {
12461 _next_ordinal_to_read += 1;
12462 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12463 next_offset += envelope_size;
12464 }
12465
12466 Ok(())
12467 }
12468 }
12469
12470 impl WlanFullmacImplReconnectRequest {
12471 #[inline(always)]
12472 fn max_ordinal_present(&self) -> u64 {
12473 if let Some(_) = self.peer_sta_address {
12474 return 1;
12475 }
12476 0
12477 }
12478 }
12479
12480 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplReconnectRequest {
12481 type Borrowed<'a> = &'a Self;
12482 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
12483 value
12484 }
12485 }
12486
12487 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplReconnectRequest {
12488 type Owned = Self;
12489
12490 #[inline(always)]
12491 fn inline_align(_context: fidl::encoding::Context) -> usize {
12492 8
12493 }
12494
12495 #[inline(always)]
12496 fn inline_size(_context: fidl::encoding::Context) -> usize {
12497 16
12498 }
12499 }
12500
12501 unsafe impl<D: fidl::encoding::ResourceDialect>
12502 fidl::encoding::Encode<WlanFullmacImplReconnectRequest, D>
12503 for &WlanFullmacImplReconnectRequest
12504 {
12505 unsafe fn encode(
12506 self,
12507 encoder: &mut fidl::encoding::Encoder<'_, D>,
12508 offset: usize,
12509 mut depth: fidl::encoding::Depth,
12510 ) -> fidl::Result<()> {
12511 encoder.debug_check_bounds::<WlanFullmacImplReconnectRequest>(offset);
12512 let max_ordinal: u64 = self.max_ordinal_present();
12514 encoder.write_num(max_ordinal, offset);
12515 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
12516 if max_ordinal == 0 {
12518 return Ok(());
12519 }
12520 depth.increment()?;
12521 let envelope_size = 8;
12522 let bytes_len = max_ordinal as usize * envelope_size;
12523 #[allow(unused_variables)]
12524 let offset = encoder.out_of_line_offset(bytes_len);
12525 let mut _prev_end_offset: usize = 0;
12526 if 1 > max_ordinal {
12527 return Ok(());
12528 }
12529
12530 let cur_offset: usize = (1 - 1) * envelope_size;
12533
12534 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12536
12537 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
12542 self.peer_sta_address
12543 .as_ref()
12544 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
12545 encoder,
12546 offset + cur_offset,
12547 depth,
12548 )?;
12549
12550 _prev_end_offset = cur_offset + envelope_size;
12551
12552 Ok(())
12553 }
12554 }
12555
12556 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
12557 for WlanFullmacImplReconnectRequest
12558 {
12559 #[inline(always)]
12560 fn new_empty() -> Self {
12561 Self::default()
12562 }
12563
12564 unsafe fn decode(
12565 &mut self,
12566 decoder: &mut fidl::encoding::Decoder<'_, D>,
12567 offset: usize,
12568 mut depth: fidl::encoding::Depth,
12569 ) -> fidl::Result<()> {
12570 decoder.debug_check_bounds::<Self>(offset);
12571 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
12572 None => return Err(fidl::Error::NotNullable),
12573 Some(len) => len,
12574 };
12575 if len == 0 {
12577 return Ok(());
12578 };
12579 depth.increment()?;
12580 let envelope_size = 8;
12581 let bytes_len = len * envelope_size;
12582 let offset = decoder.out_of_line_offset(bytes_len)?;
12583 let mut _next_ordinal_to_read = 0;
12585 let mut next_offset = offset;
12586 let end_offset = offset + bytes_len;
12587 _next_ordinal_to_read += 1;
12588 if next_offset >= end_offset {
12589 return Ok(());
12590 }
12591
12592 while _next_ordinal_to_read < 1 {
12594 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12595 _next_ordinal_to_read += 1;
12596 next_offset += envelope_size;
12597 }
12598
12599 let next_out_of_line = decoder.next_out_of_line();
12600 let handles_before = decoder.remaining_handles();
12601 if let Some((inlined, num_bytes, num_handles)) =
12602 fidl::encoding::decode_envelope_header(decoder, next_offset)?
12603 {
12604 let member_inline_size =
12605 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
12606 decoder.context,
12607 );
12608 if inlined != (member_inline_size <= 4) {
12609 return Err(fidl::Error::InvalidInlineBitInEnvelope);
12610 }
12611 let inner_offset;
12612 let mut inner_depth = depth.clone();
12613 if inlined {
12614 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
12615 inner_offset = next_offset;
12616 } else {
12617 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
12618 inner_depth.increment()?;
12619 }
12620 let val_ref = self
12621 .peer_sta_address
12622 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
12623 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
12624 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
12625 {
12626 return Err(fidl::Error::InvalidNumBytesInEnvelope);
12627 }
12628 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
12629 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
12630 }
12631 }
12632
12633 next_offset += envelope_size;
12634
12635 while next_offset < end_offset {
12637 _next_ordinal_to_read += 1;
12638 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12639 next_offset += envelope_size;
12640 }
12641
12642 Ok(())
12643 }
12644 }
12645
12646 impl WlanFullmacImplRoamRequest {
12647 #[inline(always)]
12648 fn max_ordinal_present(&self) -> u64 {
12649 if let Some(_) = self.selected_bss {
12650 return 1;
12651 }
12652 0
12653 }
12654 }
12655
12656 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplRoamRequest {
12657 type Borrowed<'a> = &'a Self;
12658 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
12659 value
12660 }
12661 }
12662
12663 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplRoamRequest {
12664 type Owned = Self;
12665
12666 #[inline(always)]
12667 fn inline_align(_context: fidl::encoding::Context) -> usize {
12668 8
12669 }
12670
12671 #[inline(always)]
12672 fn inline_size(_context: fidl::encoding::Context) -> usize {
12673 16
12674 }
12675 }
12676
12677 unsafe impl<D: fidl::encoding::ResourceDialect>
12678 fidl::encoding::Encode<WlanFullmacImplRoamRequest, D> for &WlanFullmacImplRoamRequest
12679 {
12680 unsafe fn encode(
12681 self,
12682 encoder: &mut fidl::encoding::Encoder<'_, D>,
12683 offset: usize,
12684 mut depth: fidl::encoding::Depth,
12685 ) -> fidl::Result<()> {
12686 encoder.debug_check_bounds::<WlanFullmacImplRoamRequest>(offset);
12687 let max_ordinal: u64 = self.max_ordinal_present();
12689 encoder.write_num(max_ordinal, offset);
12690 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
12691 if max_ordinal == 0 {
12693 return Ok(());
12694 }
12695 depth.increment()?;
12696 let envelope_size = 8;
12697 let bytes_len = max_ordinal as usize * envelope_size;
12698 #[allow(unused_variables)]
12699 let offset = encoder.out_of_line_offset(bytes_len);
12700 let mut _prev_end_offset: usize = 0;
12701 if 1 > max_ordinal {
12702 return Ok(());
12703 }
12704
12705 let cur_offset: usize = (1 - 1) * envelope_size;
12708
12709 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12711
12712 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_ieee80211_common::BssDescription, D>(
12717 self.selected_bss.as_ref().map(<fidl_fuchsia_wlan_ieee80211_common::BssDescription as fidl::encoding::ValueTypeMarker>::borrow),
12718 encoder, offset + cur_offset, depth
12719 )?;
12720
12721 _prev_end_offset = cur_offset + envelope_size;
12722
12723 Ok(())
12724 }
12725 }
12726
12727 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
12728 for WlanFullmacImplRoamRequest
12729 {
12730 #[inline(always)]
12731 fn new_empty() -> Self {
12732 Self::default()
12733 }
12734
12735 unsafe fn decode(
12736 &mut self,
12737 decoder: &mut fidl::encoding::Decoder<'_, D>,
12738 offset: usize,
12739 mut depth: fidl::encoding::Depth,
12740 ) -> fidl::Result<()> {
12741 decoder.debug_check_bounds::<Self>(offset);
12742 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
12743 None => return Err(fidl::Error::NotNullable),
12744 Some(len) => len,
12745 };
12746 if len == 0 {
12748 return Ok(());
12749 };
12750 depth.increment()?;
12751 let envelope_size = 8;
12752 let bytes_len = len * envelope_size;
12753 let offset = decoder.out_of_line_offset(bytes_len)?;
12754 let mut _next_ordinal_to_read = 0;
12756 let mut next_offset = offset;
12757 let end_offset = offset + bytes_len;
12758 _next_ordinal_to_read += 1;
12759 if next_offset >= end_offset {
12760 return Ok(());
12761 }
12762
12763 while _next_ordinal_to_read < 1 {
12765 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12766 _next_ordinal_to_read += 1;
12767 next_offset += envelope_size;
12768 }
12769
12770 let next_out_of_line = decoder.next_out_of_line();
12771 let handles_before = decoder.remaining_handles();
12772 if let Some((inlined, num_bytes, num_handles)) =
12773 fidl::encoding::decode_envelope_header(decoder, next_offset)?
12774 {
12775 let member_inline_size = <fidl_fuchsia_wlan_ieee80211_common::BssDescription as fidl::encoding::TypeMarker>::inline_size(decoder.context);
12776 if inlined != (member_inline_size <= 4) {
12777 return Err(fidl::Error::InvalidInlineBitInEnvelope);
12778 }
12779 let inner_offset;
12780 let mut inner_depth = depth.clone();
12781 if inlined {
12782 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
12783 inner_offset = next_offset;
12784 } else {
12785 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
12786 inner_depth.increment()?;
12787 }
12788 let val_ref = self.selected_bss.get_or_insert_with(|| {
12789 fidl::new_empty!(fidl_fuchsia_wlan_ieee80211_common::BssDescription, D)
12790 });
12791 fidl::decode!(
12792 fidl_fuchsia_wlan_ieee80211_common::BssDescription,
12793 D,
12794 val_ref,
12795 decoder,
12796 inner_offset,
12797 inner_depth
12798 )?;
12799 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
12800 {
12801 return Err(fidl::Error::InvalidNumBytesInEnvelope);
12802 }
12803 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
12804 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
12805 }
12806 }
12807
12808 next_offset += envelope_size;
12809
12810 while next_offset < end_offset {
12812 _next_ordinal_to_read += 1;
12813 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12814 next_offset += envelope_size;
12815 }
12816
12817 Ok(())
12818 }
12819 }
12820
12821 impl WlanFullmacImplSaeHandshakeRespRequest {
12822 #[inline(always)]
12823 fn max_ordinal_present(&self) -> u64 {
12824 if let Some(_) = self.status_code {
12825 return 2;
12826 }
12827 if let Some(_) = self.peer_sta_address {
12828 return 1;
12829 }
12830 0
12831 }
12832 }
12833
12834 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplSaeHandshakeRespRequest {
12835 type Borrowed<'a> = &'a Self;
12836 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
12837 value
12838 }
12839 }
12840
12841 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplSaeHandshakeRespRequest {
12842 type Owned = Self;
12843
12844 #[inline(always)]
12845 fn inline_align(_context: fidl::encoding::Context) -> usize {
12846 8
12847 }
12848
12849 #[inline(always)]
12850 fn inline_size(_context: fidl::encoding::Context) -> usize {
12851 16
12852 }
12853 }
12854
12855 unsafe impl<D: fidl::encoding::ResourceDialect>
12856 fidl::encoding::Encode<WlanFullmacImplSaeHandshakeRespRequest, D>
12857 for &WlanFullmacImplSaeHandshakeRespRequest
12858 {
12859 unsafe fn encode(
12860 self,
12861 encoder: &mut fidl::encoding::Encoder<'_, D>,
12862 offset: usize,
12863 mut depth: fidl::encoding::Depth,
12864 ) -> fidl::Result<()> {
12865 encoder.debug_check_bounds::<WlanFullmacImplSaeHandshakeRespRequest>(offset);
12866 let max_ordinal: u64 = self.max_ordinal_present();
12868 encoder.write_num(max_ordinal, offset);
12869 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
12870 if max_ordinal == 0 {
12872 return Ok(());
12873 }
12874 depth.increment()?;
12875 let envelope_size = 8;
12876 let bytes_len = max_ordinal as usize * envelope_size;
12877 #[allow(unused_variables)]
12878 let offset = encoder.out_of_line_offset(bytes_len);
12879 let mut _prev_end_offset: usize = 0;
12880 if 1 > max_ordinal {
12881 return Ok(());
12882 }
12883
12884 let cur_offset: usize = (1 - 1) * envelope_size;
12887
12888 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12890
12891 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
12896 self.peer_sta_address
12897 .as_ref()
12898 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
12899 encoder,
12900 offset + cur_offset,
12901 depth,
12902 )?;
12903
12904 _prev_end_offset = cur_offset + envelope_size;
12905 if 2 > max_ordinal {
12906 return Ok(());
12907 }
12908
12909 let cur_offset: usize = (2 - 1) * envelope_size;
12912
12913 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12915
12916 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_ieee80211_common::StatusCode, D>(
12921 self.status_code.as_ref().map(<fidl_fuchsia_wlan_ieee80211_common::StatusCode as fidl::encoding::ValueTypeMarker>::borrow),
12922 encoder, offset + cur_offset, depth
12923 )?;
12924
12925 _prev_end_offset = cur_offset + envelope_size;
12926
12927 Ok(())
12928 }
12929 }
12930
12931 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
12932 for WlanFullmacImplSaeHandshakeRespRequest
12933 {
12934 #[inline(always)]
12935 fn new_empty() -> Self {
12936 Self::default()
12937 }
12938
12939 unsafe fn decode(
12940 &mut self,
12941 decoder: &mut fidl::encoding::Decoder<'_, D>,
12942 offset: usize,
12943 mut depth: fidl::encoding::Depth,
12944 ) -> fidl::Result<()> {
12945 decoder.debug_check_bounds::<Self>(offset);
12946 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
12947 None => return Err(fidl::Error::NotNullable),
12948 Some(len) => len,
12949 };
12950 if len == 0 {
12952 return Ok(());
12953 };
12954 depth.increment()?;
12955 let envelope_size = 8;
12956 let bytes_len = len * envelope_size;
12957 let offset = decoder.out_of_line_offset(bytes_len)?;
12958 let mut _next_ordinal_to_read = 0;
12960 let mut next_offset = offset;
12961 let end_offset = offset + bytes_len;
12962 _next_ordinal_to_read += 1;
12963 if next_offset >= end_offset {
12964 return Ok(());
12965 }
12966
12967 while _next_ordinal_to_read < 1 {
12969 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12970 _next_ordinal_to_read += 1;
12971 next_offset += envelope_size;
12972 }
12973
12974 let next_out_of_line = decoder.next_out_of_line();
12975 let handles_before = decoder.remaining_handles();
12976 if let Some((inlined, num_bytes, num_handles)) =
12977 fidl::encoding::decode_envelope_header(decoder, next_offset)?
12978 {
12979 let member_inline_size =
12980 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
12981 decoder.context,
12982 );
12983 if inlined != (member_inline_size <= 4) {
12984 return Err(fidl::Error::InvalidInlineBitInEnvelope);
12985 }
12986 let inner_offset;
12987 let mut inner_depth = depth.clone();
12988 if inlined {
12989 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
12990 inner_offset = next_offset;
12991 } else {
12992 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
12993 inner_depth.increment()?;
12994 }
12995 let val_ref = self
12996 .peer_sta_address
12997 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
12998 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
12999 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13000 {
13001 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13002 }
13003 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13004 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13005 }
13006 }
13007
13008 next_offset += envelope_size;
13009 _next_ordinal_to_read += 1;
13010 if next_offset >= end_offset {
13011 return Ok(());
13012 }
13013
13014 while _next_ordinal_to_read < 2 {
13016 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13017 _next_ordinal_to_read += 1;
13018 next_offset += envelope_size;
13019 }
13020
13021 let next_out_of_line = decoder.next_out_of_line();
13022 let handles_before = decoder.remaining_handles();
13023 if let Some((inlined, num_bytes, num_handles)) =
13024 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13025 {
13026 let member_inline_size = <fidl_fuchsia_wlan_ieee80211_common::StatusCode as fidl::encoding::TypeMarker>::inline_size(decoder.context);
13027 if inlined != (member_inline_size <= 4) {
13028 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13029 }
13030 let inner_offset;
13031 let mut inner_depth = depth.clone();
13032 if inlined {
13033 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13034 inner_offset = next_offset;
13035 } else {
13036 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13037 inner_depth.increment()?;
13038 }
13039 let val_ref = self.status_code.get_or_insert_with(|| {
13040 fidl::new_empty!(fidl_fuchsia_wlan_ieee80211_common::StatusCode, D)
13041 });
13042 fidl::decode!(
13043 fidl_fuchsia_wlan_ieee80211_common::StatusCode,
13044 D,
13045 val_ref,
13046 decoder,
13047 inner_offset,
13048 inner_depth
13049 )?;
13050 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13051 {
13052 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13053 }
13054 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13055 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13056 }
13057 }
13058
13059 next_offset += envelope_size;
13060
13061 while next_offset < end_offset {
13063 _next_ordinal_to_read += 1;
13064 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13065 next_offset += envelope_size;
13066 }
13067
13068 Ok(())
13069 }
13070 }
13071
13072 impl WlanFullmacImplSetApfPacketFilterEnabledRequest {
13073 #[inline(always)]
13074 fn max_ordinal_present(&self) -> u64 {
13075 if let Some(_) = self.enabled {
13076 return 1;
13077 }
13078 0
13079 }
13080 }
13081
13082 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplSetApfPacketFilterEnabledRequest {
13083 type Borrowed<'a> = &'a Self;
13084 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
13085 value
13086 }
13087 }
13088
13089 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplSetApfPacketFilterEnabledRequest {
13090 type Owned = Self;
13091
13092 #[inline(always)]
13093 fn inline_align(_context: fidl::encoding::Context) -> usize {
13094 8
13095 }
13096
13097 #[inline(always)]
13098 fn inline_size(_context: fidl::encoding::Context) -> usize {
13099 16
13100 }
13101 }
13102
13103 unsafe impl<D: fidl::encoding::ResourceDialect>
13104 fidl::encoding::Encode<WlanFullmacImplSetApfPacketFilterEnabledRequest, D>
13105 for &WlanFullmacImplSetApfPacketFilterEnabledRequest
13106 {
13107 unsafe fn encode(
13108 self,
13109 encoder: &mut fidl::encoding::Encoder<'_, D>,
13110 offset: usize,
13111 mut depth: fidl::encoding::Depth,
13112 ) -> fidl::Result<()> {
13113 encoder.debug_check_bounds::<WlanFullmacImplSetApfPacketFilterEnabledRequest>(offset);
13114 let max_ordinal: u64 = self.max_ordinal_present();
13116 encoder.write_num(max_ordinal, offset);
13117 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
13118 if max_ordinal == 0 {
13120 return Ok(());
13121 }
13122 depth.increment()?;
13123 let envelope_size = 8;
13124 let bytes_len = max_ordinal as usize * envelope_size;
13125 #[allow(unused_variables)]
13126 let offset = encoder.out_of_line_offset(bytes_len);
13127 let mut _prev_end_offset: usize = 0;
13128 if 1 > max_ordinal {
13129 return Ok(());
13130 }
13131
13132 let cur_offset: usize = (1 - 1) * envelope_size;
13135
13136 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
13138
13139 fidl::encoding::encode_in_envelope_optional::<bool, D>(
13144 self.enabled.as_ref().map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
13145 encoder,
13146 offset + cur_offset,
13147 depth,
13148 )?;
13149
13150 _prev_end_offset = cur_offset + envelope_size;
13151
13152 Ok(())
13153 }
13154 }
13155
13156 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
13157 for WlanFullmacImplSetApfPacketFilterEnabledRequest
13158 {
13159 #[inline(always)]
13160 fn new_empty() -> Self {
13161 Self::default()
13162 }
13163
13164 unsafe fn decode(
13165 &mut self,
13166 decoder: &mut fidl::encoding::Decoder<'_, D>,
13167 offset: usize,
13168 mut depth: fidl::encoding::Depth,
13169 ) -> fidl::Result<()> {
13170 decoder.debug_check_bounds::<Self>(offset);
13171 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
13172 None => return Err(fidl::Error::NotNullable),
13173 Some(len) => len,
13174 };
13175 if len == 0 {
13177 return Ok(());
13178 };
13179 depth.increment()?;
13180 let envelope_size = 8;
13181 let bytes_len = len * envelope_size;
13182 let offset = decoder.out_of_line_offset(bytes_len)?;
13183 let mut _next_ordinal_to_read = 0;
13185 let mut next_offset = offset;
13186 let end_offset = offset + bytes_len;
13187 _next_ordinal_to_read += 1;
13188 if next_offset >= end_offset {
13189 return Ok(());
13190 }
13191
13192 while _next_ordinal_to_read < 1 {
13194 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13195 _next_ordinal_to_read += 1;
13196 next_offset += envelope_size;
13197 }
13198
13199 let next_out_of_line = decoder.next_out_of_line();
13200 let handles_before = decoder.remaining_handles();
13201 if let Some((inlined, num_bytes, num_handles)) =
13202 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13203 {
13204 let member_inline_size =
13205 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
13206 if inlined != (member_inline_size <= 4) {
13207 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13208 }
13209 let inner_offset;
13210 let mut inner_depth = depth.clone();
13211 if inlined {
13212 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13213 inner_offset = next_offset;
13214 } else {
13215 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13216 inner_depth.increment()?;
13217 }
13218 let val_ref = self.enabled.get_or_insert_with(|| fidl::new_empty!(bool, D));
13219 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
13220 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13221 {
13222 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13223 }
13224 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13225 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13226 }
13227 }
13228
13229 next_offset += envelope_size;
13230
13231 while next_offset < end_offset {
13233 _next_ordinal_to_read += 1;
13234 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13235 next_offset += envelope_size;
13236 }
13237
13238 Ok(())
13239 }
13240 }
13241
13242 impl WlanFullmacImplSetKeysRequest {
13243 #[inline(always)]
13244 fn max_ordinal_present(&self) -> u64 {
13245 if let Some(_) = self.key_descriptors {
13246 return 2;
13247 }
13248 if let Some(_) = self.keylist {
13249 return 1;
13250 }
13251 0
13252 }
13253 }
13254
13255 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplSetKeysRequest {
13256 type Borrowed<'a> = &'a Self;
13257 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
13258 value
13259 }
13260 }
13261
13262 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplSetKeysRequest {
13263 type Owned = Self;
13264
13265 #[inline(always)]
13266 fn inline_align(_context: fidl::encoding::Context) -> usize {
13267 8
13268 }
13269
13270 #[inline(always)]
13271 fn inline_size(_context: fidl::encoding::Context) -> usize {
13272 16
13273 }
13274 }
13275
13276 unsafe impl<D: fidl::encoding::ResourceDialect>
13277 fidl::encoding::Encode<WlanFullmacImplSetKeysRequest, D>
13278 for &WlanFullmacImplSetKeysRequest
13279 {
13280 unsafe fn encode(
13281 self,
13282 encoder: &mut fidl::encoding::Encoder<'_, D>,
13283 offset: usize,
13284 mut depth: fidl::encoding::Depth,
13285 ) -> fidl::Result<()> {
13286 encoder.debug_check_bounds::<WlanFullmacImplSetKeysRequest>(offset);
13287 let max_ordinal: u64 = self.max_ordinal_present();
13289 encoder.write_num(max_ordinal, offset);
13290 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
13291 if max_ordinal == 0 {
13293 return Ok(());
13294 }
13295 depth.increment()?;
13296 let envelope_size = 8;
13297 let bytes_len = max_ordinal as usize * envelope_size;
13298 #[allow(unused_variables)]
13299 let offset = encoder.out_of_line_offset(bytes_len);
13300 let mut _prev_end_offset: usize = 0;
13301 if 1 > max_ordinal {
13302 return Ok(());
13303 }
13304
13305 let cur_offset: usize = (1 - 1) * envelope_size;
13308
13309 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
13311
13312 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<fidl_fuchsia_wlan_driver_common::WlanKeyConfig, 4>, D>(
13317 self.keylist.as_ref().map(<fidl::encoding::Vector<fidl_fuchsia_wlan_driver_common::WlanKeyConfig, 4> as fidl::encoding::ValueTypeMarker>::borrow),
13318 encoder, offset + cur_offset, depth
13319 )?;
13320
13321 _prev_end_offset = cur_offset + envelope_size;
13322 if 2 > max_ordinal {
13323 return Ok(());
13324 }
13325
13326 let cur_offset: usize = (2 - 1) * envelope_size;
13329
13330 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
13332
13333 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<fidl_fuchsia_wlan_ieee80211_common::SetKeyDescriptor, 4>, D>(
13338 self.key_descriptors.as_ref().map(<fidl::encoding::Vector<fidl_fuchsia_wlan_ieee80211_common::SetKeyDescriptor, 4> as fidl::encoding::ValueTypeMarker>::borrow),
13339 encoder, offset + cur_offset, depth
13340 )?;
13341
13342 _prev_end_offset = cur_offset + envelope_size;
13343
13344 Ok(())
13345 }
13346 }
13347
13348 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
13349 for WlanFullmacImplSetKeysRequest
13350 {
13351 #[inline(always)]
13352 fn new_empty() -> Self {
13353 Self::default()
13354 }
13355
13356 unsafe fn decode(
13357 &mut self,
13358 decoder: &mut fidl::encoding::Decoder<'_, D>,
13359 offset: usize,
13360 mut depth: fidl::encoding::Depth,
13361 ) -> fidl::Result<()> {
13362 decoder.debug_check_bounds::<Self>(offset);
13363 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
13364 None => return Err(fidl::Error::NotNullable),
13365 Some(len) => len,
13366 };
13367 if len == 0 {
13369 return Ok(());
13370 };
13371 depth.increment()?;
13372 let envelope_size = 8;
13373 let bytes_len = len * envelope_size;
13374 let offset = decoder.out_of_line_offset(bytes_len)?;
13375 let mut _next_ordinal_to_read = 0;
13377 let mut next_offset = offset;
13378 let end_offset = offset + bytes_len;
13379 _next_ordinal_to_read += 1;
13380 if next_offset >= end_offset {
13381 return Ok(());
13382 }
13383
13384 while _next_ordinal_to_read < 1 {
13386 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13387 _next_ordinal_to_read += 1;
13388 next_offset += envelope_size;
13389 }
13390
13391 let next_out_of_line = decoder.next_out_of_line();
13392 let handles_before = decoder.remaining_handles();
13393 if let Some((inlined, num_bytes, num_handles)) =
13394 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13395 {
13396 let member_inline_size = <fidl::encoding::Vector<
13397 fidl_fuchsia_wlan_driver_common::WlanKeyConfig,
13398 4,
13399 > as fidl::encoding::TypeMarker>::inline_size(
13400 decoder.context
13401 );
13402 if inlined != (member_inline_size <= 4) {
13403 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13404 }
13405 let inner_offset;
13406 let mut inner_depth = depth.clone();
13407 if inlined {
13408 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13409 inner_offset = next_offset;
13410 } else {
13411 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13412 inner_depth.increment()?;
13413 }
13414 let val_ref =
13415 self.keylist.get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<fidl_fuchsia_wlan_driver_common::WlanKeyConfig, 4>, D));
13416 fidl::decode!(fidl::encoding::Vector<fidl_fuchsia_wlan_driver_common::WlanKeyConfig, 4>, D, val_ref, decoder, inner_offset, inner_depth)?;
13417 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13418 {
13419 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13420 }
13421 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13422 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13423 }
13424 }
13425
13426 next_offset += envelope_size;
13427 _next_ordinal_to_read += 1;
13428 if next_offset >= end_offset {
13429 return Ok(());
13430 }
13431
13432 while _next_ordinal_to_read < 2 {
13434 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13435 _next_ordinal_to_read += 1;
13436 next_offset += envelope_size;
13437 }
13438
13439 let next_out_of_line = decoder.next_out_of_line();
13440 let handles_before = decoder.remaining_handles();
13441 if let Some((inlined, num_bytes, num_handles)) =
13442 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13443 {
13444 let member_inline_size = <fidl::encoding::Vector<
13445 fidl_fuchsia_wlan_ieee80211_common::SetKeyDescriptor,
13446 4,
13447 > as fidl::encoding::TypeMarker>::inline_size(
13448 decoder.context
13449 );
13450 if inlined != (member_inline_size <= 4) {
13451 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13452 }
13453 let inner_offset;
13454 let mut inner_depth = depth.clone();
13455 if inlined {
13456 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13457 inner_offset = next_offset;
13458 } else {
13459 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13460 inner_depth.increment()?;
13461 }
13462 let val_ref =
13463 self.key_descriptors.get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<fidl_fuchsia_wlan_ieee80211_common::SetKeyDescriptor, 4>, D));
13464 fidl::decode!(fidl::encoding::Vector<fidl_fuchsia_wlan_ieee80211_common::SetKeyDescriptor, 4>, D, val_ref, decoder, inner_offset, inner_depth)?;
13465 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13466 {
13467 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13468 }
13469 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13470 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13471 }
13472 }
13473
13474 next_offset += envelope_size;
13475
13476 while next_offset < end_offset {
13478 _next_ordinal_to_read += 1;
13479 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13480 next_offset += envelope_size;
13481 }
13482
13483 Ok(())
13484 }
13485 }
13486
13487 impl WlanFullmacImplStartBssRequest {
13488 #[inline(always)]
13489 fn max_ordinal_present(&self) -> u64 {
13490 if let Some(_) = self.vendor_ie {
13491 return 7;
13492 }
13493 if let Some(_) = self.rsne {
13494 return 6;
13495 }
13496 if let Some(_) = self.primary {
13497 return 5;
13498 }
13499 if let Some(_) = self.dtim_period {
13500 return 4;
13501 }
13502 if let Some(_) = self.beacon_period {
13503 return 3;
13504 }
13505 if let Some(_) = self.bss_type {
13506 return 2;
13507 }
13508 if let Some(_) = self.ssid {
13509 return 1;
13510 }
13511 0
13512 }
13513 }
13514
13515 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplStartBssRequest {
13516 type Borrowed<'a> = &'a Self;
13517 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
13518 value
13519 }
13520 }
13521
13522 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplStartBssRequest {
13523 type Owned = Self;
13524
13525 #[inline(always)]
13526 fn inline_align(_context: fidl::encoding::Context) -> usize {
13527 8
13528 }
13529
13530 #[inline(always)]
13531 fn inline_size(_context: fidl::encoding::Context) -> usize {
13532 16
13533 }
13534 }
13535
13536 unsafe impl<D: fidl::encoding::ResourceDialect>
13537 fidl::encoding::Encode<WlanFullmacImplStartBssRequest, D>
13538 for &WlanFullmacImplStartBssRequest
13539 {
13540 unsafe fn encode(
13541 self,
13542 encoder: &mut fidl::encoding::Encoder<'_, D>,
13543 offset: usize,
13544 mut depth: fidl::encoding::Depth,
13545 ) -> fidl::Result<()> {
13546 encoder.debug_check_bounds::<WlanFullmacImplStartBssRequest>(offset);
13547 let max_ordinal: u64 = self.max_ordinal_present();
13549 encoder.write_num(max_ordinal, offset);
13550 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
13551 if max_ordinal == 0 {
13553 return Ok(());
13554 }
13555 depth.increment()?;
13556 let envelope_size = 8;
13557 let bytes_len = max_ordinal as usize * envelope_size;
13558 #[allow(unused_variables)]
13559 let offset = encoder.out_of_line_offset(bytes_len);
13560 let mut _prev_end_offset: usize = 0;
13561 if 1 > max_ordinal {
13562 return Ok(());
13563 }
13564
13565 let cur_offset: usize = (1 - 1) * envelope_size;
13568
13569 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
13571
13572 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<u8, 32>, D>(
13577 self.ssid.as_ref().map(
13578 <fidl::encoding::Vector<u8, 32> as fidl::encoding::ValueTypeMarker>::borrow,
13579 ),
13580 encoder,
13581 offset + cur_offset,
13582 depth,
13583 )?;
13584
13585 _prev_end_offset = cur_offset + envelope_size;
13586 if 2 > max_ordinal {
13587 return Ok(());
13588 }
13589
13590 let cur_offset: usize = (2 - 1) * envelope_size;
13593
13594 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
13596
13597 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_ieee80211_common::BssType, D>(
13602 self.bss_type.as_ref().map(<fidl_fuchsia_wlan_ieee80211_common::BssType as fidl::encoding::ValueTypeMarker>::borrow),
13603 encoder, offset + cur_offset, depth
13604 )?;
13605
13606 _prev_end_offset = cur_offset + envelope_size;
13607 if 3 > max_ordinal {
13608 return Ok(());
13609 }
13610
13611 let cur_offset: usize = (3 - 1) * envelope_size;
13614
13615 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
13617
13618 fidl::encoding::encode_in_envelope_optional::<u32, D>(
13623 self.beacon_period.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
13624 encoder,
13625 offset + cur_offset,
13626 depth,
13627 )?;
13628
13629 _prev_end_offset = cur_offset + envelope_size;
13630 if 4 > max_ordinal {
13631 return Ok(());
13632 }
13633
13634 let cur_offset: usize = (4 - 1) * envelope_size;
13637
13638 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
13640
13641 fidl::encoding::encode_in_envelope_optional::<u32, D>(
13646 self.dtim_period.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
13647 encoder,
13648 offset + cur_offset,
13649 depth,
13650 )?;
13651
13652 _prev_end_offset = cur_offset + envelope_size;
13653 if 5 > max_ordinal {
13654 return Ok(());
13655 }
13656
13657 let cur_offset: usize = (5 - 1) * envelope_size;
13660
13661 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
13663
13664 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_ieee80211_common::ChannelNumber, D>(
13669 self.primary.as_ref().map(<fidl_fuchsia_wlan_ieee80211_common::ChannelNumber as fidl::encoding::ValueTypeMarker>::borrow),
13670 encoder, offset + cur_offset, depth
13671 )?;
13672
13673 _prev_end_offset = cur_offset + envelope_size;
13674 if 6 > max_ordinal {
13675 return Ok(());
13676 }
13677
13678 let cur_offset: usize = (6 - 1) * envelope_size;
13681
13682 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
13684
13685 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<u8, 257>, D>(
13690 self.rsne.as_ref().map(
13691 <fidl::encoding::Vector<u8, 257> as fidl::encoding::ValueTypeMarker>::borrow,
13692 ),
13693 encoder,
13694 offset + cur_offset,
13695 depth,
13696 )?;
13697
13698 _prev_end_offset = cur_offset + envelope_size;
13699 if 7 > max_ordinal {
13700 return Ok(());
13701 }
13702
13703 let cur_offset: usize = (7 - 1) * envelope_size;
13706
13707 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
13709
13710 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<u8, 514>, D>(
13715 self.vendor_ie.as_ref().map(
13716 <fidl::encoding::Vector<u8, 514> as fidl::encoding::ValueTypeMarker>::borrow,
13717 ),
13718 encoder,
13719 offset + cur_offset,
13720 depth,
13721 )?;
13722
13723 _prev_end_offset = cur_offset + envelope_size;
13724
13725 Ok(())
13726 }
13727 }
13728
13729 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
13730 for WlanFullmacImplStartBssRequest
13731 {
13732 #[inline(always)]
13733 fn new_empty() -> Self {
13734 Self::default()
13735 }
13736
13737 unsafe fn decode(
13738 &mut self,
13739 decoder: &mut fidl::encoding::Decoder<'_, D>,
13740 offset: usize,
13741 mut depth: fidl::encoding::Depth,
13742 ) -> fidl::Result<()> {
13743 decoder.debug_check_bounds::<Self>(offset);
13744 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
13745 None => return Err(fidl::Error::NotNullable),
13746 Some(len) => len,
13747 };
13748 if len == 0 {
13750 return Ok(());
13751 };
13752 depth.increment()?;
13753 let envelope_size = 8;
13754 let bytes_len = len * envelope_size;
13755 let offset = decoder.out_of_line_offset(bytes_len)?;
13756 let mut _next_ordinal_to_read = 0;
13758 let mut next_offset = offset;
13759 let end_offset = offset + bytes_len;
13760 _next_ordinal_to_read += 1;
13761 if next_offset >= end_offset {
13762 return Ok(());
13763 }
13764
13765 while _next_ordinal_to_read < 1 {
13767 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13768 _next_ordinal_to_read += 1;
13769 next_offset += envelope_size;
13770 }
13771
13772 let next_out_of_line = decoder.next_out_of_line();
13773 let handles_before = decoder.remaining_handles();
13774 if let Some((inlined, num_bytes, num_handles)) =
13775 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13776 {
13777 let member_inline_size =
13778 <fidl::encoding::Vector<u8, 32> as fidl::encoding::TypeMarker>::inline_size(
13779 decoder.context,
13780 );
13781 if inlined != (member_inline_size <= 4) {
13782 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13783 }
13784 let inner_offset;
13785 let mut inner_depth = depth.clone();
13786 if inlined {
13787 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13788 inner_offset = next_offset;
13789 } else {
13790 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13791 inner_depth.increment()?;
13792 }
13793 let val_ref = self
13794 .ssid
13795 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<u8, 32>, D));
13796 fidl::decode!(fidl::encoding::Vector<u8, 32>, D, val_ref, decoder, inner_offset, inner_depth)?;
13797 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13798 {
13799 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13800 }
13801 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13802 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13803 }
13804 }
13805
13806 next_offset += envelope_size;
13807 _next_ordinal_to_read += 1;
13808 if next_offset >= end_offset {
13809 return Ok(());
13810 }
13811
13812 while _next_ordinal_to_read < 2 {
13814 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13815 _next_ordinal_to_read += 1;
13816 next_offset += envelope_size;
13817 }
13818
13819 let next_out_of_line = decoder.next_out_of_line();
13820 let handles_before = decoder.remaining_handles();
13821 if let Some((inlined, num_bytes, num_handles)) =
13822 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13823 {
13824 let member_inline_size = <fidl_fuchsia_wlan_ieee80211_common::BssType as fidl::encoding::TypeMarker>::inline_size(decoder.context);
13825 if inlined != (member_inline_size <= 4) {
13826 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13827 }
13828 let inner_offset;
13829 let mut inner_depth = depth.clone();
13830 if inlined {
13831 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13832 inner_offset = next_offset;
13833 } else {
13834 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13835 inner_depth.increment()?;
13836 }
13837 let val_ref = self.bss_type.get_or_insert_with(|| {
13838 fidl::new_empty!(fidl_fuchsia_wlan_ieee80211_common::BssType, D)
13839 });
13840 fidl::decode!(
13841 fidl_fuchsia_wlan_ieee80211_common::BssType,
13842 D,
13843 val_ref,
13844 decoder,
13845 inner_offset,
13846 inner_depth
13847 )?;
13848 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13849 {
13850 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13851 }
13852 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13853 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13854 }
13855 }
13856
13857 next_offset += envelope_size;
13858 _next_ordinal_to_read += 1;
13859 if next_offset >= end_offset {
13860 return Ok(());
13861 }
13862
13863 while _next_ordinal_to_read < 3 {
13865 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13866 _next_ordinal_to_read += 1;
13867 next_offset += envelope_size;
13868 }
13869
13870 let next_out_of_line = decoder.next_out_of_line();
13871 let handles_before = decoder.remaining_handles();
13872 if let Some((inlined, num_bytes, num_handles)) =
13873 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13874 {
13875 let member_inline_size =
13876 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
13877 if inlined != (member_inline_size <= 4) {
13878 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13879 }
13880 let inner_offset;
13881 let mut inner_depth = depth.clone();
13882 if inlined {
13883 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13884 inner_offset = next_offset;
13885 } else {
13886 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13887 inner_depth.increment()?;
13888 }
13889 let val_ref = self.beacon_period.get_or_insert_with(|| fidl::new_empty!(u32, D));
13890 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
13891 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13892 {
13893 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13894 }
13895 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13896 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13897 }
13898 }
13899
13900 next_offset += envelope_size;
13901 _next_ordinal_to_read += 1;
13902 if next_offset >= end_offset {
13903 return Ok(());
13904 }
13905
13906 while _next_ordinal_to_read < 4 {
13908 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13909 _next_ordinal_to_read += 1;
13910 next_offset += envelope_size;
13911 }
13912
13913 let next_out_of_line = decoder.next_out_of_line();
13914 let handles_before = decoder.remaining_handles();
13915 if let Some((inlined, num_bytes, num_handles)) =
13916 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13917 {
13918 let member_inline_size =
13919 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
13920 if inlined != (member_inline_size <= 4) {
13921 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13922 }
13923 let inner_offset;
13924 let mut inner_depth = depth.clone();
13925 if inlined {
13926 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13927 inner_offset = next_offset;
13928 } else {
13929 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13930 inner_depth.increment()?;
13931 }
13932 let val_ref = self.dtim_period.get_or_insert_with(|| fidl::new_empty!(u32, D));
13933 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
13934 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13935 {
13936 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13937 }
13938 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13939 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13940 }
13941 }
13942
13943 next_offset += envelope_size;
13944 _next_ordinal_to_read += 1;
13945 if next_offset >= end_offset {
13946 return Ok(());
13947 }
13948
13949 while _next_ordinal_to_read < 5 {
13951 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13952 _next_ordinal_to_read += 1;
13953 next_offset += envelope_size;
13954 }
13955
13956 let next_out_of_line = decoder.next_out_of_line();
13957 let handles_before = decoder.remaining_handles();
13958 if let Some((inlined, num_bytes, num_handles)) =
13959 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13960 {
13961 let member_inline_size = <fidl_fuchsia_wlan_ieee80211_common::ChannelNumber as fidl::encoding::TypeMarker>::inline_size(decoder.context);
13962 if inlined != (member_inline_size <= 4) {
13963 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13964 }
13965 let inner_offset;
13966 let mut inner_depth = depth.clone();
13967 if inlined {
13968 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13969 inner_offset = next_offset;
13970 } else {
13971 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13972 inner_depth.increment()?;
13973 }
13974 let val_ref = self.primary.get_or_insert_with(|| {
13975 fidl::new_empty!(fidl_fuchsia_wlan_ieee80211_common::ChannelNumber, D)
13976 });
13977 fidl::decode!(
13978 fidl_fuchsia_wlan_ieee80211_common::ChannelNumber,
13979 D,
13980 val_ref,
13981 decoder,
13982 inner_offset,
13983 inner_depth
13984 )?;
13985 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13986 {
13987 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13988 }
13989 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13990 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13991 }
13992 }
13993
13994 next_offset += envelope_size;
13995 _next_ordinal_to_read += 1;
13996 if next_offset >= end_offset {
13997 return Ok(());
13998 }
13999
14000 while _next_ordinal_to_read < 6 {
14002 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14003 _next_ordinal_to_read += 1;
14004 next_offset += envelope_size;
14005 }
14006
14007 let next_out_of_line = decoder.next_out_of_line();
14008 let handles_before = decoder.remaining_handles();
14009 if let Some((inlined, num_bytes, num_handles)) =
14010 fidl::encoding::decode_envelope_header(decoder, next_offset)?
14011 {
14012 let member_inline_size =
14013 <fidl::encoding::Vector<u8, 257> as fidl::encoding::TypeMarker>::inline_size(
14014 decoder.context,
14015 );
14016 if inlined != (member_inline_size <= 4) {
14017 return Err(fidl::Error::InvalidInlineBitInEnvelope);
14018 }
14019 let inner_offset;
14020 let mut inner_depth = depth.clone();
14021 if inlined {
14022 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
14023 inner_offset = next_offset;
14024 } else {
14025 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
14026 inner_depth.increment()?;
14027 }
14028 let val_ref = self
14029 .rsne
14030 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<u8, 257>, D));
14031 fidl::decode!(fidl::encoding::Vector<u8, 257>, D, val_ref, decoder, inner_offset, inner_depth)?;
14032 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
14033 {
14034 return Err(fidl::Error::InvalidNumBytesInEnvelope);
14035 }
14036 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
14037 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
14038 }
14039 }
14040
14041 next_offset += envelope_size;
14042 _next_ordinal_to_read += 1;
14043 if next_offset >= end_offset {
14044 return Ok(());
14045 }
14046
14047 while _next_ordinal_to_read < 7 {
14049 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14050 _next_ordinal_to_read += 1;
14051 next_offset += envelope_size;
14052 }
14053
14054 let next_out_of_line = decoder.next_out_of_line();
14055 let handles_before = decoder.remaining_handles();
14056 if let Some((inlined, num_bytes, num_handles)) =
14057 fidl::encoding::decode_envelope_header(decoder, next_offset)?
14058 {
14059 let member_inline_size =
14060 <fidl::encoding::Vector<u8, 514> as fidl::encoding::TypeMarker>::inline_size(
14061 decoder.context,
14062 );
14063 if inlined != (member_inline_size <= 4) {
14064 return Err(fidl::Error::InvalidInlineBitInEnvelope);
14065 }
14066 let inner_offset;
14067 let mut inner_depth = depth.clone();
14068 if inlined {
14069 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
14070 inner_offset = next_offset;
14071 } else {
14072 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
14073 inner_depth.increment()?;
14074 }
14075 let val_ref = self
14076 .vendor_ie
14077 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<u8, 514>, D));
14078 fidl::decode!(fidl::encoding::Vector<u8, 514>, D, val_ref, decoder, inner_offset, inner_depth)?;
14079 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
14080 {
14081 return Err(fidl::Error::InvalidNumBytesInEnvelope);
14082 }
14083 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
14084 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
14085 }
14086 }
14087
14088 next_offset += envelope_size;
14089
14090 while next_offset < end_offset {
14092 _next_ordinal_to_read += 1;
14093 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14094 next_offset += envelope_size;
14095 }
14096
14097 Ok(())
14098 }
14099 }
14100
14101 impl WlanFullmacImplStartRssiMonitorRequest {
14102 #[inline(always)]
14103 fn max_ordinal_present(&self) -> u64 {
14104 if let Some(_) = self.max_rssi_dbm {
14105 return 2;
14106 }
14107 if let Some(_) = self.min_rssi_dbm {
14108 return 1;
14109 }
14110 0
14111 }
14112 }
14113
14114 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplStartRssiMonitorRequest {
14115 type Borrowed<'a> = &'a Self;
14116 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
14117 value
14118 }
14119 }
14120
14121 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplStartRssiMonitorRequest {
14122 type Owned = Self;
14123
14124 #[inline(always)]
14125 fn inline_align(_context: fidl::encoding::Context) -> usize {
14126 8
14127 }
14128
14129 #[inline(always)]
14130 fn inline_size(_context: fidl::encoding::Context) -> usize {
14131 16
14132 }
14133 }
14134
14135 unsafe impl<D: fidl::encoding::ResourceDialect>
14136 fidl::encoding::Encode<WlanFullmacImplStartRssiMonitorRequest, D>
14137 for &WlanFullmacImplStartRssiMonitorRequest
14138 {
14139 unsafe fn encode(
14140 self,
14141 encoder: &mut fidl::encoding::Encoder<'_, D>,
14142 offset: usize,
14143 mut depth: fidl::encoding::Depth,
14144 ) -> fidl::Result<()> {
14145 encoder.debug_check_bounds::<WlanFullmacImplStartRssiMonitorRequest>(offset);
14146 let max_ordinal: u64 = self.max_ordinal_present();
14148 encoder.write_num(max_ordinal, offset);
14149 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
14150 if max_ordinal == 0 {
14152 return Ok(());
14153 }
14154 depth.increment()?;
14155 let envelope_size = 8;
14156 let bytes_len = max_ordinal as usize * envelope_size;
14157 #[allow(unused_variables)]
14158 let offset = encoder.out_of_line_offset(bytes_len);
14159 let mut _prev_end_offset: usize = 0;
14160 if 1 > max_ordinal {
14161 return Ok(());
14162 }
14163
14164 let cur_offset: usize = (1 - 1) * envelope_size;
14167
14168 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
14170
14171 fidl::encoding::encode_in_envelope_optional::<i8, D>(
14176 self.min_rssi_dbm.as_ref().map(<i8 as fidl::encoding::ValueTypeMarker>::borrow),
14177 encoder,
14178 offset + cur_offset,
14179 depth,
14180 )?;
14181
14182 _prev_end_offset = cur_offset + envelope_size;
14183 if 2 > max_ordinal {
14184 return Ok(());
14185 }
14186
14187 let cur_offset: usize = (2 - 1) * envelope_size;
14190
14191 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
14193
14194 fidl::encoding::encode_in_envelope_optional::<i8, D>(
14199 self.max_rssi_dbm.as_ref().map(<i8 as fidl::encoding::ValueTypeMarker>::borrow),
14200 encoder,
14201 offset + cur_offset,
14202 depth,
14203 )?;
14204
14205 _prev_end_offset = cur_offset + envelope_size;
14206
14207 Ok(())
14208 }
14209 }
14210
14211 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
14212 for WlanFullmacImplStartRssiMonitorRequest
14213 {
14214 #[inline(always)]
14215 fn new_empty() -> Self {
14216 Self::default()
14217 }
14218
14219 unsafe fn decode(
14220 &mut self,
14221 decoder: &mut fidl::encoding::Decoder<'_, D>,
14222 offset: usize,
14223 mut depth: fidl::encoding::Depth,
14224 ) -> fidl::Result<()> {
14225 decoder.debug_check_bounds::<Self>(offset);
14226 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
14227 None => return Err(fidl::Error::NotNullable),
14228 Some(len) => len,
14229 };
14230 if len == 0 {
14232 return Ok(());
14233 };
14234 depth.increment()?;
14235 let envelope_size = 8;
14236 let bytes_len = len * envelope_size;
14237 let offset = decoder.out_of_line_offset(bytes_len)?;
14238 let mut _next_ordinal_to_read = 0;
14240 let mut next_offset = offset;
14241 let end_offset = offset + bytes_len;
14242 _next_ordinal_to_read += 1;
14243 if next_offset >= end_offset {
14244 return Ok(());
14245 }
14246
14247 while _next_ordinal_to_read < 1 {
14249 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14250 _next_ordinal_to_read += 1;
14251 next_offset += envelope_size;
14252 }
14253
14254 let next_out_of_line = decoder.next_out_of_line();
14255 let handles_before = decoder.remaining_handles();
14256 if let Some((inlined, num_bytes, num_handles)) =
14257 fidl::encoding::decode_envelope_header(decoder, next_offset)?
14258 {
14259 let member_inline_size =
14260 <i8 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
14261 if inlined != (member_inline_size <= 4) {
14262 return Err(fidl::Error::InvalidInlineBitInEnvelope);
14263 }
14264 let inner_offset;
14265 let mut inner_depth = depth.clone();
14266 if inlined {
14267 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
14268 inner_offset = next_offset;
14269 } else {
14270 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
14271 inner_depth.increment()?;
14272 }
14273 let val_ref = self.min_rssi_dbm.get_or_insert_with(|| fidl::new_empty!(i8, D));
14274 fidl::decode!(i8, D, val_ref, decoder, inner_offset, inner_depth)?;
14275 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
14276 {
14277 return Err(fidl::Error::InvalidNumBytesInEnvelope);
14278 }
14279 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
14280 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
14281 }
14282 }
14283
14284 next_offset += envelope_size;
14285 _next_ordinal_to_read += 1;
14286 if next_offset >= end_offset {
14287 return Ok(());
14288 }
14289
14290 while _next_ordinal_to_read < 2 {
14292 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14293 _next_ordinal_to_read += 1;
14294 next_offset += envelope_size;
14295 }
14296
14297 let next_out_of_line = decoder.next_out_of_line();
14298 let handles_before = decoder.remaining_handles();
14299 if let Some((inlined, num_bytes, num_handles)) =
14300 fidl::encoding::decode_envelope_header(decoder, next_offset)?
14301 {
14302 let member_inline_size =
14303 <i8 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
14304 if inlined != (member_inline_size <= 4) {
14305 return Err(fidl::Error::InvalidInlineBitInEnvelope);
14306 }
14307 let inner_offset;
14308 let mut inner_depth = depth.clone();
14309 if inlined {
14310 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
14311 inner_offset = next_offset;
14312 } else {
14313 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
14314 inner_depth.increment()?;
14315 }
14316 let val_ref = self.max_rssi_dbm.get_or_insert_with(|| fidl::new_empty!(i8, D));
14317 fidl::decode!(i8, D, val_ref, decoder, inner_offset, inner_depth)?;
14318 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
14319 {
14320 return Err(fidl::Error::InvalidNumBytesInEnvelope);
14321 }
14322 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
14323 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
14324 }
14325 }
14326
14327 next_offset += envelope_size;
14328
14329 while next_offset < end_offset {
14331 _next_ordinal_to_read += 1;
14332 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14333 next_offset += envelope_size;
14334 }
14335
14336 Ok(())
14337 }
14338 }
14339
14340 impl WlanFullmacImplStartScanRequest {
14341 #[inline(always)]
14342 fn max_ordinal_present(&self) -> u64 {
14343 if let Some(_) = self.max_channel_time {
14344 return 6;
14345 }
14346 if let Some(_) = self.min_channel_time {
14347 return 5;
14348 }
14349 if let Some(_) = self.ssids {
14350 return 4;
14351 }
14352 if let Some(_) = self.channels {
14353 return 3;
14354 }
14355 if let Some(_) = self.scan_type {
14356 return 2;
14357 }
14358 if let Some(_) = self.txn_id {
14359 return 1;
14360 }
14361 0
14362 }
14363 }
14364
14365 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplStartScanRequest {
14366 type Borrowed<'a> = &'a Self;
14367 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
14368 value
14369 }
14370 }
14371
14372 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplStartScanRequest {
14373 type Owned = Self;
14374
14375 #[inline(always)]
14376 fn inline_align(_context: fidl::encoding::Context) -> usize {
14377 8
14378 }
14379
14380 #[inline(always)]
14381 fn inline_size(_context: fidl::encoding::Context) -> usize {
14382 16
14383 }
14384 }
14385
14386 unsafe impl<D: fidl::encoding::ResourceDialect>
14387 fidl::encoding::Encode<WlanFullmacImplStartScanRequest, D>
14388 for &WlanFullmacImplStartScanRequest
14389 {
14390 unsafe fn encode(
14391 self,
14392 encoder: &mut fidl::encoding::Encoder<'_, D>,
14393 offset: usize,
14394 mut depth: fidl::encoding::Depth,
14395 ) -> fidl::Result<()> {
14396 encoder.debug_check_bounds::<WlanFullmacImplStartScanRequest>(offset);
14397 let max_ordinal: u64 = self.max_ordinal_present();
14399 encoder.write_num(max_ordinal, offset);
14400 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
14401 if max_ordinal == 0 {
14403 return Ok(());
14404 }
14405 depth.increment()?;
14406 let envelope_size = 8;
14407 let bytes_len = max_ordinal as usize * envelope_size;
14408 #[allow(unused_variables)]
14409 let offset = encoder.out_of_line_offset(bytes_len);
14410 let mut _prev_end_offset: usize = 0;
14411 if 1 > max_ordinal {
14412 return Ok(());
14413 }
14414
14415 let cur_offset: usize = (1 - 1) * envelope_size;
14418
14419 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
14421
14422 fidl::encoding::encode_in_envelope_optional::<u64, D>(
14427 self.txn_id.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
14428 encoder,
14429 offset + cur_offset,
14430 depth,
14431 )?;
14432
14433 _prev_end_offset = cur_offset + envelope_size;
14434 if 2 > max_ordinal {
14435 return Ok(());
14436 }
14437
14438 let cur_offset: usize = (2 - 1) * envelope_size;
14441
14442 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
14444
14445 fidl::encoding::encode_in_envelope_optional::<WlanScanType, D>(
14450 self.scan_type
14451 .as_ref()
14452 .map(<WlanScanType as fidl::encoding::ValueTypeMarker>::borrow),
14453 encoder,
14454 offset + cur_offset,
14455 depth,
14456 )?;
14457
14458 _prev_end_offset = cur_offset + envelope_size;
14459 if 3 > max_ordinal {
14460 return Ok(());
14461 }
14462
14463 let cur_offset: usize = (3 - 1) * envelope_size;
14466
14467 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
14469
14470 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<fidl_fuchsia_wlan_ieee80211_common::ChannelNumber, 256>, D>(
14475 self.channels.as_ref().map(<fidl::encoding::Vector<fidl_fuchsia_wlan_ieee80211_common::ChannelNumber, 256> as fidl::encoding::ValueTypeMarker>::borrow),
14476 encoder, offset + cur_offset, depth
14477 )?;
14478
14479 _prev_end_offset = cur_offset + envelope_size;
14480 if 4 > max_ordinal {
14481 return Ok(());
14482 }
14483
14484 let cur_offset: usize = (4 - 1) * envelope_size;
14487
14488 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
14490
14491 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<fidl::encoding::Vector<u8, 32>>, D>(
14496 self.ssids.as_ref().map(<fidl::encoding::UnboundedVector<fidl::encoding::Vector<u8, 32>> as fidl::encoding::ValueTypeMarker>::borrow),
14497 encoder, offset + cur_offset, depth
14498 )?;
14499
14500 _prev_end_offset = cur_offset + envelope_size;
14501 if 5 > max_ordinal {
14502 return Ok(());
14503 }
14504
14505 let cur_offset: usize = (5 - 1) * envelope_size;
14508
14509 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
14511
14512 fidl::encoding::encode_in_envelope_optional::<u32, D>(
14517 self.min_channel_time
14518 .as_ref()
14519 .map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
14520 encoder,
14521 offset + cur_offset,
14522 depth,
14523 )?;
14524
14525 _prev_end_offset = cur_offset + envelope_size;
14526 if 6 > max_ordinal {
14527 return Ok(());
14528 }
14529
14530 let cur_offset: usize = (6 - 1) * envelope_size;
14533
14534 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
14536
14537 fidl::encoding::encode_in_envelope_optional::<u32, D>(
14542 self.max_channel_time
14543 .as_ref()
14544 .map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
14545 encoder,
14546 offset + cur_offset,
14547 depth,
14548 )?;
14549
14550 _prev_end_offset = cur_offset + envelope_size;
14551
14552 Ok(())
14553 }
14554 }
14555
14556 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
14557 for WlanFullmacImplStartScanRequest
14558 {
14559 #[inline(always)]
14560 fn new_empty() -> Self {
14561 Self::default()
14562 }
14563
14564 unsafe fn decode(
14565 &mut self,
14566 decoder: &mut fidl::encoding::Decoder<'_, D>,
14567 offset: usize,
14568 mut depth: fidl::encoding::Depth,
14569 ) -> fidl::Result<()> {
14570 decoder.debug_check_bounds::<Self>(offset);
14571 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
14572 None => return Err(fidl::Error::NotNullable),
14573 Some(len) => len,
14574 };
14575 if len == 0 {
14577 return Ok(());
14578 };
14579 depth.increment()?;
14580 let envelope_size = 8;
14581 let bytes_len = len * envelope_size;
14582 let offset = decoder.out_of_line_offset(bytes_len)?;
14583 let mut _next_ordinal_to_read = 0;
14585 let mut next_offset = offset;
14586 let end_offset = offset + bytes_len;
14587 _next_ordinal_to_read += 1;
14588 if next_offset >= end_offset {
14589 return Ok(());
14590 }
14591
14592 while _next_ordinal_to_read < 1 {
14594 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14595 _next_ordinal_to_read += 1;
14596 next_offset += envelope_size;
14597 }
14598
14599 let next_out_of_line = decoder.next_out_of_line();
14600 let handles_before = decoder.remaining_handles();
14601 if let Some((inlined, num_bytes, num_handles)) =
14602 fidl::encoding::decode_envelope_header(decoder, next_offset)?
14603 {
14604 let member_inline_size =
14605 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
14606 if inlined != (member_inline_size <= 4) {
14607 return Err(fidl::Error::InvalidInlineBitInEnvelope);
14608 }
14609 let inner_offset;
14610 let mut inner_depth = depth.clone();
14611 if inlined {
14612 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
14613 inner_offset = next_offset;
14614 } else {
14615 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
14616 inner_depth.increment()?;
14617 }
14618 let val_ref = self.txn_id.get_or_insert_with(|| fidl::new_empty!(u64, D));
14619 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
14620 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
14621 {
14622 return Err(fidl::Error::InvalidNumBytesInEnvelope);
14623 }
14624 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
14625 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
14626 }
14627 }
14628
14629 next_offset += envelope_size;
14630 _next_ordinal_to_read += 1;
14631 if next_offset >= end_offset {
14632 return Ok(());
14633 }
14634
14635 while _next_ordinal_to_read < 2 {
14637 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14638 _next_ordinal_to_read += 1;
14639 next_offset += envelope_size;
14640 }
14641
14642 let next_out_of_line = decoder.next_out_of_line();
14643 let handles_before = decoder.remaining_handles();
14644 if let Some((inlined, num_bytes, num_handles)) =
14645 fidl::encoding::decode_envelope_header(decoder, next_offset)?
14646 {
14647 let member_inline_size =
14648 <WlanScanType as fidl::encoding::TypeMarker>::inline_size(decoder.context);
14649 if inlined != (member_inline_size <= 4) {
14650 return Err(fidl::Error::InvalidInlineBitInEnvelope);
14651 }
14652 let inner_offset;
14653 let mut inner_depth = depth.clone();
14654 if inlined {
14655 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
14656 inner_offset = next_offset;
14657 } else {
14658 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
14659 inner_depth.increment()?;
14660 }
14661 let val_ref =
14662 self.scan_type.get_or_insert_with(|| fidl::new_empty!(WlanScanType, D));
14663 fidl::decode!(WlanScanType, D, val_ref, decoder, inner_offset, inner_depth)?;
14664 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
14665 {
14666 return Err(fidl::Error::InvalidNumBytesInEnvelope);
14667 }
14668 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
14669 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
14670 }
14671 }
14672
14673 next_offset += envelope_size;
14674 _next_ordinal_to_read += 1;
14675 if next_offset >= end_offset {
14676 return Ok(());
14677 }
14678
14679 while _next_ordinal_to_read < 3 {
14681 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14682 _next_ordinal_to_read += 1;
14683 next_offset += envelope_size;
14684 }
14685
14686 let next_out_of_line = decoder.next_out_of_line();
14687 let handles_before = decoder.remaining_handles();
14688 if let Some((inlined, num_bytes, num_handles)) =
14689 fidl::encoding::decode_envelope_header(decoder, next_offset)?
14690 {
14691 let member_inline_size = <fidl::encoding::Vector<
14692 fidl_fuchsia_wlan_ieee80211_common::ChannelNumber,
14693 256,
14694 > as fidl::encoding::TypeMarker>::inline_size(
14695 decoder.context
14696 );
14697 if inlined != (member_inline_size <= 4) {
14698 return Err(fidl::Error::InvalidInlineBitInEnvelope);
14699 }
14700 let inner_offset;
14701 let mut inner_depth = depth.clone();
14702 if inlined {
14703 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
14704 inner_offset = next_offset;
14705 } else {
14706 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
14707 inner_depth.increment()?;
14708 }
14709 let val_ref =
14710 self.channels.get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<fidl_fuchsia_wlan_ieee80211_common::ChannelNumber, 256>, D));
14711 fidl::decode!(fidl::encoding::Vector<fidl_fuchsia_wlan_ieee80211_common::ChannelNumber, 256>, D, val_ref, decoder, inner_offset, inner_depth)?;
14712 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
14713 {
14714 return Err(fidl::Error::InvalidNumBytesInEnvelope);
14715 }
14716 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
14717 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
14718 }
14719 }
14720
14721 next_offset += envelope_size;
14722 _next_ordinal_to_read += 1;
14723 if next_offset >= end_offset {
14724 return Ok(());
14725 }
14726
14727 while _next_ordinal_to_read < 4 {
14729 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14730 _next_ordinal_to_read += 1;
14731 next_offset += envelope_size;
14732 }
14733
14734 let next_out_of_line = decoder.next_out_of_line();
14735 let handles_before = decoder.remaining_handles();
14736 if let Some((inlined, num_bytes, num_handles)) =
14737 fidl::encoding::decode_envelope_header(decoder, next_offset)?
14738 {
14739 let member_inline_size = <fidl::encoding::UnboundedVector<
14740 fidl::encoding::Vector<u8, 32>,
14741 > as fidl::encoding::TypeMarker>::inline_size(
14742 decoder.context
14743 );
14744 if inlined != (member_inline_size <= 4) {
14745 return Err(fidl::Error::InvalidInlineBitInEnvelope);
14746 }
14747 let inner_offset;
14748 let mut inner_depth = depth.clone();
14749 if inlined {
14750 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
14751 inner_offset = next_offset;
14752 } else {
14753 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
14754 inner_depth.increment()?;
14755 }
14756 let val_ref = self.ssids.get_or_insert_with(|| {
14757 fidl::new_empty!(
14758 fidl::encoding::UnboundedVector<fidl::encoding::Vector<u8, 32>>,
14759 D
14760 )
14761 });
14762 fidl::decode!(
14763 fidl::encoding::UnboundedVector<fidl::encoding::Vector<u8, 32>>,
14764 D,
14765 val_ref,
14766 decoder,
14767 inner_offset,
14768 inner_depth
14769 )?;
14770 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
14771 {
14772 return Err(fidl::Error::InvalidNumBytesInEnvelope);
14773 }
14774 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
14775 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
14776 }
14777 }
14778
14779 next_offset += envelope_size;
14780 _next_ordinal_to_read += 1;
14781 if next_offset >= end_offset {
14782 return Ok(());
14783 }
14784
14785 while _next_ordinal_to_read < 5 {
14787 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14788 _next_ordinal_to_read += 1;
14789 next_offset += envelope_size;
14790 }
14791
14792 let next_out_of_line = decoder.next_out_of_line();
14793 let handles_before = decoder.remaining_handles();
14794 if let Some((inlined, num_bytes, num_handles)) =
14795 fidl::encoding::decode_envelope_header(decoder, next_offset)?
14796 {
14797 let member_inline_size =
14798 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
14799 if inlined != (member_inline_size <= 4) {
14800 return Err(fidl::Error::InvalidInlineBitInEnvelope);
14801 }
14802 let inner_offset;
14803 let mut inner_depth = depth.clone();
14804 if inlined {
14805 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
14806 inner_offset = next_offset;
14807 } else {
14808 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
14809 inner_depth.increment()?;
14810 }
14811 let val_ref = self.min_channel_time.get_or_insert_with(|| fidl::new_empty!(u32, D));
14812 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
14813 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
14814 {
14815 return Err(fidl::Error::InvalidNumBytesInEnvelope);
14816 }
14817 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
14818 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
14819 }
14820 }
14821
14822 next_offset += envelope_size;
14823 _next_ordinal_to_read += 1;
14824 if next_offset >= end_offset {
14825 return Ok(());
14826 }
14827
14828 while _next_ordinal_to_read < 6 {
14830 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14831 _next_ordinal_to_read += 1;
14832 next_offset += envelope_size;
14833 }
14834
14835 let next_out_of_line = decoder.next_out_of_line();
14836 let handles_before = decoder.remaining_handles();
14837 if let Some((inlined, num_bytes, num_handles)) =
14838 fidl::encoding::decode_envelope_header(decoder, next_offset)?
14839 {
14840 let member_inline_size =
14841 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
14842 if inlined != (member_inline_size <= 4) {
14843 return Err(fidl::Error::InvalidInlineBitInEnvelope);
14844 }
14845 let inner_offset;
14846 let mut inner_depth = depth.clone();
14847 if inlined {
14848 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
14849 inner_offset = next_offset;
14850 } else {
14851 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
14852 inner_depth.increment()?;
14853 }
14854 let val_ref = self.max_channel_time.get_or_insert_with(|| fidl::new_empty!(u32, D));
14855 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
14856 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
14857 {
14858 return Err(fidl::Error::InvalidNumBytesInEnvelope);
14859 }
14860 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
14861 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
14862 }
14863 }
14864
14865 next_offset += envelope_size;
14866
14867 while next_offset < end_offset {
14869 _next_ordinal_to_read += 1;
14870 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14871 next_offset += envelope_size;
14872 }
14873
14874 Ok(())
14875 }
14876 }
14877
14878 impl WlanFullmacImplStartScheduledScanRequest {
14879 #[inline(always)]
14880 fn max_ordinal_present(&self) -> u64 {
14881 if let Some(_) = self.req {
14882 return 2;
14883 }
14884 if let Some(_) = self.txn_id {
14885 return 1;
14886 }
14887 0
14888 }
14889 }
14890
14891 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplStartScheduledScanRequest {
14892 type Borrowed<'a> = &'a Self;
14893 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
14894 value
14895 }
14896 }
14897
14898 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplStartScheduledScanRequest {
14899 type Owned = Self;
14900
14901 #[inline(always)]
14902 fn inline_align(_context: fidl::encoding::Context) -> usize {
14903 8
14904 }
14905
14906 #[inline(always)]
14907 fn inline_size(_context: fidl::encoding::Context) -> usize {
14908 16
14909 }
14910 }
14911
14912 unsafe impl<D: fidl::encoding::ResourceDialect>
14913 fidl::encoding::Encode<WlanFullmacImplStartScheduledScanRequest, D>
14914 for &WlanFullmacImplStartScheduledScanRequest
14915 {
14916 unsafe fn encode(
14917 self,
14918 encoder: &mut fidl::encoding::Encoder<'_, D>,
14919 offset: usize,
14920 mut depth: fidl::encoding::Depth,
14921 ) -> fidl::Result<()> {
14922 encoder.debug_check_bounds::<WlanFullmacImplStartScheduledScanRequest>(offset);
14923 let max_ordinal: u64 = self.max_ordinal_present();
14925 encoder.write_num(max_ordinal, offset);
14926 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
14927 if max_ordinal == 0 {
14929 return Ok(());
14930 }
14931 depth.increment()?;
14932 let envelope_size = 8;
14933 let bytes_len = max_ordinal as usize * envelope_size;
14934 #[allow(unused_variables)]
14935 let offset = encoder.out_of_line_offset(bytes_len);
14936 let mut _prev_end_offset: usize = 0;
14937 if 1 > max_ordinal {
14938 return Ok(());
14939 }
14940
14941 let cur_offset: usize = (1 - 1) * envelope_size;
14944
14945 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
14947
14948 fidl::encoding::encode_in_envelope_optional::<u64, D>(
14953 self.txn_id.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
14954 encoder,
14955 offset + cur_offset,
14956 depth,
14957 )?;
14958
14959 _prev_end_offset = cur_offset + envelope_size;
14960 if 2 > max_ordinal {
14961 return Ok(());
14962 }
14963
14964 let cur_offset: usize = (2 - 1) * envelope_size;
14967
14968 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
14970
14971 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_common_common::ScheduledScanRequest, D>(
14976 self.req.as_ref().map(<fidl_fuchsia_wlan_common_common::ScheduledScanRequest as fidl::encoding::ValueTypeMarker>::borrow),
14977 encoder, offset + cur_offset, depth
14978 )?;
14979
14980 _prev_end_offset = cur_offset + envelope_size;
14981
14982 Ok(())
14983 }
14984 }
14985
14986 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
14987 for WlanFullmacImplStartScheduledScanRequest
14988 {
14989 #[inline(always)]
14990 fn new_empty() -> Self {
14991 Self::default()
14992 }
14993
14994 unsafe fn decode(
14995 &mut self,
14996 decoder: &mut fidl::encoding::Decoder<'_, D>,
14997 offset: usize,
14998 mut depth: fidl::encoding::Depth,
14999 ) -> fidl::Result<()> {
15000 decoder.debug_check_bounds::<Self>(offset);
15001 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
15002 None => return Err(fidl::Error::NotNullable),
15003 Some(len) => len,
15004 };
15005 if len == 0 {
15007 return Ok(());
15008 };
15009 depth.increment()?;
15010 let envelope_size = 8;
15011 let bytes_len = len * envelope_size;
15012 let offset = decoder.out_of_line_offset(bytes_len)?;
15013 let mut _next_ordinal_to_read = 0;
15015 let mut next_offset = offset;
15016 let end_offset = offset + bytes_len;
15017 _next_ordinal_to_read += 1;
15018 if next_offset >= end_offset {
15019 return Ok(());
15020 }
15021
15022 while _next_ordinal_to_read < 1 {
15024 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15025 _next_ordinal_to_read += 1;
15026 next_offset += envelope_size;
15027 }
15028
15029 let next_out_of_line = decoder.next_out_of_line();
15030 let handles_before = decoder.remaining_handles();
15031 if let Some((inlined, num_bytes, num_handles)) =
15032 fidl::encoding::decode_envelope_header(decoder, next_offset)?
15033 {
15034 let member_inline_size =
15035 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
15036 if inlined != (member_inline_size <= 4) {
15037 return Err(fidl::Error::InvalidInlineBitInEnvelope);
15038 }
15039 let inner_offset;
15040 let mut inner_depth = depth.clone();
15041 if inlined {
15042 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
15043 inner_offset = next_offset;
15044 } else {
15045 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
15046 inner_depth.increment()?;
15047 }
15048 let val_ref = self.txn_id.get_or_insert_with(|| fidl::new_empty!(u64, D));
15049 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
15050 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
15051 {
15052 return Err(fidl::Error::InvalidNumBytesInEnvelope);
15053 }
15054 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
15055 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
15056 }
15057 }
15058
15059 next_offset += envelope_size;
15060 _next_ordinal_to_read += 1;
15061 if next_offset >= end_offset {
15062 return Ok(());
15063 }
15064
15065 while _next_ordinal_to_read < 2 {
15067 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15068 _next_ordinal_to_read += 1;
15069 next_offset += envelope_size;
15070 }
15071
15072 let next_out_of_line = decoder.next_out_of_line();
15073 let handles_before = decoder.remaining_handles();
15074 if let Some((inlined, num_bytes, num_handles)) =
15075 fidl::encoding::decode_envelope_header(decoder, next_offset)?
15076 {
15077 let member_inline_size = <fidl_fuchsia_wlan_common_common::ScheduledScanRequest as fidl::encoding::TypeMarker>::inline_size(decoder.context);
15078 if inlined != (member_inline_size <= 4) {
15079 return Err(fidl::Error::InvalidInlineBitInEnvelope);
15080 }
15081 let inner_offset;
15082 let mut inner_depth = depth.clone();
15083 if inlined {
15084 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
15085 inner_offset = next_offset;
15086 } else {
15087 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
15088 inner_depth.increment()?;
15089 }
15090 let val_ref = self.req.get_or_insert_with(|| {
15091 fidl::new_empty!(fidl_fuchsia_wlan_common_common::ScheduledScanRequest, D)
15092 });
15093 fidl::decode!(
15094 fidl_fuchsia_wlan_common_common::ScheduledScanRequest,
15095 D,
15096 val_ref,
15097 decoder,
15098 inner_offset,
15099 inner_depth
15100 )?;
15101 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
15102 {
15103 return Err(fidl::Error::InvalidNumBytesInEnvelope);
15104 }
15105 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
15106 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
15107 }
15108 }
15109
15110 next_offset += envelope_size;
15111
15112 while next_offset < end_offset {
15114 _next_ordinal_to_read += 1;
15115 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15116 next_offset += envelope_size;
15117 }
15118
15119 Ok(())
15120 }
15121 }
15122
15123 impl WlanFullmacImplStopBssRequest {
15124 #[inline(always)]
15125 fn max_ordinal_present(&self) -> u64 {
15126 if let Some(_) = self.ssid {
15127 return 1;
15128 }
15129 0
15130 }
15131 }
15132
15133 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplStopBssRequest {
15134 type Borrowed<'a> = &'a Self;
15135 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
15136 value
15137 }
15138 }
15139
15140 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplStopBssRequest {
15141 type Owned = Self;
15142
15143 #[inline(always)]
15144 fn inline_align(_context: fidl::encoding::Context) -> usize {
15145 8
15146 }
15147
15148 #[inline(always)]
15149 fn inline_size(_context: fidl::encoding::Context) -> usize {
15150 16
15151 }
15152 }
15153
15154 unsafe impl<D: fidl::encoding::ResourceDialect>
15155 fidl::encoding::Encode<WlanFullmacImplStopBssRequest, D>
15156 for &WlanFullmacImplStopBssRequest
15157 {
15158 unsafe fn encode(
15159 self,
15160 encoder: &mut fidl::encoding::Encoder<'_, D>,
15161 offset: usize,
15162 mut depth: fidl::encoding::Depth,
15163 ) -> fidl::Result<()> {
15164 encoder.debug_check_bounds::<WlanFullmacImplStopBssRequest>(offset);
15165 let max_ordinal: u64 = self.max_ordinal_present();
15167 encoder.write_num(max_ordinal, offset);
15168 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
15169 if max_ordinal == 0 {
15171 return Ok(());
15172 }
15173 depth.increment()?;
15174 let envelope_size = 8;
15175 let bytes_len = max_ordinal as usize * envelope_size;
15176 #[allow(unused_variables)]
15177 let offset = encoder.out_of_line_offset(bytes_len);
15178 let mut _prev_end_offset: usize = 0;
15179 if 1 > max_ordinal {
15180 return Ok(());
15181 }
15182
15183 let cur_offset: usize = (1 - 1) * envelope_size;
15186
15187 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
15189
15190 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<u8, 32>, D>(
15195 self.ssid.as_ref().map(
15196 <fidl::encoding::Vector<u8, 32> as fidl::encoding::ValueTypeMarker>::borrow,
15197 ),
15198 encoder,
15199 offset + cur_offset,
15200 depth,
15201 )?;
15202
15203 _prev_end_offset = cur_offset + envelope_size;
15204
15205 Ok(())
15206 }
15207 }
15208
15209 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
15210 for WlanFullmacImplStopBssRequest
15211 {
15212 #[inline(always)]
15213 fn new_empty() -> Self {
15214 Self::default()
15215 }
15216
15217 unsafe fn decode(
15218 &mut self,
15219 decoder: &mut fidl::encoding::Decoder<'_, D>,
15220 offset: usize,
15221 mut depth: fidl::encoding::Depth,
15222 ) -> fidl::Result<()> {
15223 decoder.debug_check_bounds::<Self>(offset);
15224 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
15225 None => return Err(fidl::Error::NotNullable),
15226 Some(len) => len,
15227 };
15228 if len == 0 {
15230 return Ok(());
15231 };
15232 depth.increment()?;
15233 let envelope_size = 8;
15234 let bytes_len = len * envelope_size;
15235 let offset = decoder.out_of_line_offset(bytes_len)?;
15236 let mut _next_ordinal_to_read = 0;
15238 let mut next_offset = offset;
15239 let end_offset = offset + bytes_len;
15240 _next_ordinal_to_read += 1;
15241 if next_offset >= end_offset {
15242 return Ok(());
15243 }
15244
15245 while _next_ordinal_to_read < 1 {
15247 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15248 _next_ordinal_to_read += 1;
15249 next_offset += envelope_size;
15250 }
15251
15252 let next_out_of_line = decoder.next_out_of_line();
15253 let handles_before = decoder.remaining_handles();
15254 if let Some((inlined, num_bytes, num_handles)) =
15255 fidl::encoding::decode_envelope_header(decoder, next_offset)?
15256 {
15257 let member_inline_size =
15258 <fidl::encoding::Vector<u8, 32> as fidl::encoding::TypeMarker>::inline_size(
15259 decoder.context,
15260 );
15261 if inlined != (member_inline_size <= 4) {
15262 return Err(fidl::Error::InvalidInlineBitInEnvelope);
15263 }
15264 let inner_offset;
15265 let mut inner_depth = depth.clone();
15266 if inlined {
15267 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
15268 inner_offset = next_offset;
15269 } else {
15270 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
15271 inner_depth.increment()?;
15272 }
15273 let val_ref = self
15274 .ssid
15275 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<u8, 32>, D));
15276 fidl::decode!(fidl::encoding::Vector<u8, 32>, D, val_ref, decoder, inner_offset, inner_depth)?;
15277 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
15278 {
15279 return Err(fidl::Error::InvalidNumBytesInEnvelope);
15280 }
15281 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
15282 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
15283 }
15284 }
15285
15286 next_offset += envelope_size;
15287
15288 while next_offset < end_offset {
15290 _next_ordinal_to_read += 1;
15291 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15292 next_offset += envelope_size;
15293 }
15294
15295 Ok(())
15296 }
15297 }
15298
15299 impl WlanFullmacImplStopScheduledScanRequest {
15300 #[inline(always)]
15301 fn max_ordinal_present(&self) -> u64 {
15302 if let Some(_) = self.txn_id {
15303 return 1;
15304 }
15305 0
15306 }
15307 }
15308
15309 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplStopScheduledScanRequest {
15310 type Borrowed<'a> = &'a Self;
15311 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
15312 value
15313 }
15314 }
15315
15316 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplStopScheduledScanRequest {
15317 type Owned = Self;
15318
15319 #[inline(always)]
15320 fn inline_align(_context: fidl::encoding::Context) -> usize {
15321 8
15322 }
15323
15324 #[inline(always)]
15325 fn inline_size(_context: fidl::encoding::Context) -> usize {
15326 16
15327 }
15328 }
15329
15330 unsafe impl<D: fidl::encoding::ResourceDialect>
15331 fidl::encoding::Encode<WlanFullmacImplStopScheduledScanRequest, D>
15332 for &WlanFullmacImplStopScheduledScanRequest
15333 {
15334 unsafe fn encode(
15335 self,
15336 encoder: &mut fidl::encoding::Encoder<'_, D>,
15337 offset: usize,
15338 mut depth: fidl::encoding::Depth,
15339 ) -> fidl::Result<()> {
15340 encoder.debug_check_bounds::<WlanFullmacImplStopScheduledScanRequest>(offset);
15341 let max_ordinal: u64 = self.max_ordinal_present();
15343 encoder.write_num(max_ordinal, offset);
15344 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
15345 if max_ordinal == 0 {
15347 return Ok(());
15348 }
15349 depth.increment()?;
15350 let envelope_size = 8;
15351 let bytes_len = max_ordinal as usize * envelope_size;
15352 #[allow(unused_variables)]
15353 let offset = encoder.out_of_line_offset(bytes_len);
15354 let mut _prev_end_offset: usize = 0;
15355 if 1 > max_ordinal {
15356 return Ok(());
15357 }
15358
15359 let cur_offset: usize = (1 - 1) * envelope_size;
15362
15363 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
15365
15366 fidl::encoding::encode_in_envelope_optional::<u64, D>(
15371 self.txn_id.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
15372 encoder,
15373 offset + cur_offset,
15374 depth,
15375 )?;
15376
15377 _prev_end_offset = cur_offset + envelope_size;
15378
15379 Ok(())
15380 }
15381 }
15382
15383 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
15384 for WlanFullmacImplStopScheduledScanRequest
15385 {
15386 #[inline(always)]
15387 fn new_empty() -> Self {
15388 Self::default()
15389 }
15390
15391 unsafe fn decode(
15392 &mut self,
15393 decoder: &mut fidl::encoding::Decoder<'_, D>,
15394 offset: usize,
15395 mut depth: fidl::encoding::Depth,
15396 ) -> fidl::Result<()> {
15397 decoder.debug_check_bounds::<Self>(offset);
15398 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
15399 None => return Err(fidl::Error::NotNullable),
15400 Some(len) => len,
15401 };
15402 if len == 0 {
15404 return Ok(());
15405 };
15406 depth.increment()?;
15407 let envelope_size = 8;
15408 let bytes_len = len * envelope_size;
15409 let offset = decoder.out_of_line_offset(bytes_len)?;
15410 let mut _next_ordinal_to_read = 0;
15412 let mut next_offset = offset;
15413 let end_offset = offset + bytes_len;
15414 _next_ordinal_to_read += 1;
15415 if next_offset >= end_offset {
15416 return Ok(());
15417 }
15418
15419 while _next_ordinal_to_read < 1 {
15421 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15422 _next_ordinal_to_read += 1;
15423 next_offset += envelope_size;
15424 }
15425
15426 let next_out_of_line = decoder.next_out_of_line();
15427 let handles_before = decoder.remaining_handles();
15428 if let Some((inlined, num_bytes, num_handles)) =
15429 fidl::encoding::decode_envelope_header(decoder, next_offset)?
15430 {
15431 let member_inline_size =
15432 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
15433 if inlined != (member_inline_size <= 4) {
15434 return Err(fidl::Error::InvalidInlineBitInEnvelope);
15435 }
15436 let inner_offset;
15437 let mut inner_depth = depth.clone();
15438 if inlined {
15439 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
15440 inner_offset = next_offset;
15441 } else {
15442 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
15443 inner_depth.increment()?;
15444 }
15445 let val_ref = self.txn_id.get_or_insert_with(|| fidl::new_empty!(u64, D));
15446 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
15447 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
15448 {
15449 return Err(fidl::Error::InvalidNumBytesInEnvelope);
15450 }
15451 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
15452 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
15453 }
15454 }
15455
15456 next_offset += envelope_size;
15457
15458 while next_offset < end_offset {
15460 _next_ordinal_to_read += 1;
15461 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15462 next_offset += envelope_size;
15463 }
15464
15465 Ok(())
15466 }
15467 }
15468
15469 impl WlanFullmacImplGetApfPacketFilterEnabledResponse {
15470 #[inline(always)]
15471 fn max_ordinal_present(&self) -> u64 {
15472 if let Some(_) = self.enabled {
15473 return 1;
15474 }
15475 0
15476 }
15477 }
15478
15479 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplGetApfPacketFilterEnabledResponse {
15480 type Borrowed<'a> = &'a Self;
15481 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
15482 value
15483 }
15484 }
15485
15486 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplGetApfPacketFilterEnabledResponse {
15487 type Owned = Self;
15488
15489 #[inline(always)]
15490 fn inline_align(_context: fidl::encoding::Context) -> usize {
15491 8
15492 }
15493
15494 #[inline(always)]
15495 fn inline_size(_context: fidl::encoding::Context) -> usize {
15496 16
15497 }
15498 }
15499
15500 unsafe impl<D: fidl::encoding::ResourceDialect>
15501 fidl::encoding::Encode<WlanFullmacImplGetApfPacketFilterEnabledResponse, D>
15502 for &WlanFullmacImplGetApfPacketFilterEnabledResponse
15503 {
15504 unsafe fn encode(
15505 self,
15506 encoder: &mut fidl::encoding::Encoder<'_, D>,
15507 offset: usize,
15508 mut depth: fidl::encoding::Depth,
15509 ) -> fidl::Result<()> {
15510 encoder.debug_check_bounds::<WlanFullmacImplGetApfPacketFilterEnabledResponse>(offset);
15511 let max_ordinal: u64 = self.max_ordinal_present();
15513 encoder.write_num(max_ordinal, offset);
15514 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
15515 if max_ordinal == 0 {
15517 return Ok(());
15518 }
15519 depth.increment()?;
15520 let envelope_size = 8;
15521 let bytes_len = max_ordinal as usize * envelope_size;
15522 #[allow(unused_variables)]
15523 let offset = encoder.out_of_line_offset(bytes_len);
15524 let mut _prev_end_offset: usize = 0;
15525 if 1 > max_ordinal {
15526 return Ok(());
15527 }
15528
15529 let cur_offset: usize = (1 - 1) * envelope_size;
15532
15533 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
15535
15536 fidl::encoding::encode_in_envelope_optional::<bool, D>(
15541 self.enabled.as_ref().map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
15542 encoder,
15543 offset + cur_offset,
15544 depth,
15545 )?;
15546
15547 _prev_end_offset = cur_offset + envelope_size;
15548
15549 Ok(())
15550 }
15551 }
15552
15553 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
15554 for WlanFullmacImplGetApfPacketFilterEnabledResponse
15555 {
15556 #[inline(always)]
15557 fn new_empty() -> Self {
15558 Self::default()
15559 }
15560
15561 unsafe fn decode(
15562 &mut self,
15563 decoder: &mut fidl::encoding::Decoder<'_, D>,
15564 offset: usize,
15565 mut depth: fidl::encoding::Depth,
15566 ) -> fidl::Result<()> {
15567 decoder.debug_check_bounds::<Self>(offset);
15568 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
15569 None => return Err(fidl::Error::NotNullable),
15570 Some(len) => len,
15571 };
15572 if len == 0 {
15574 return Ok(());
15575 };
15576 depth.increment()?;
15577 let envelope_size = 8;
15578 let bytes_len = len * envelope_size;
15579 let offset = decoder.out_of_line_offset(bytes_len)?;
15580 let mut _next_ordinal_to_read = 0;
15582 let mut next_offset = offset;
15583 let end_offset = offset + bytes_len;
15584 _next_ordinal_to_read += 1;
15585 if next_offset >= end_offset {
15586 return Ok(());
15587 }
15588
15589 while _next_ordinal_to_read < 1 {
15591 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15592 _next_ordinal_to_read += 1;
15593 next_offset += envelope_size;
15594 }
15595
15596 let next_out_of_line = decoder.next_out_of_line();
15597 let handles_before = decoder.remaining_handles();
15598 if let Some((inlined, num_bytes, num_handles)) =
15599 fidl::encoding::decode_envelope_header(decoder, next_offset)?
15600 {
15601 let member_inline_size =
15602 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
15603 if inlined != (member_inline_size <= 4) {
15604 return Err(fidl::Error::InvalidInlineBitInEnvelope);
15605 }
15606 let inner_offset;
15607 let mut inner_depth = depth.clone();
15608 if inlined {
15609 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
15610 inner_offset = next_offset;
15611 } else {
15612 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
15613 inner_depth.increment()?;
15614 }
15615 let val_ref = self.enabled.get_or_insert_with(|| fidl::new_empty!(bool, D));
15616 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
15617 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
15618 {
15619 return Err(fidl::Error::InvalidNumBytesInEnvelope);
15620 }
15621 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
15622 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
15623 }
15624 }
15625
15626 next_offset += envelope_size;
15627
15628 while next_offset < end_offset {
15630 _next_ordinal_to_read += 1;
15631 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15632 next_offset += envelope_size;
15633 }
15634
15635 Ok(())
15636 }
15637 }
15638
15639 impl WlanFullmacImplGetScheduledScanEnabledResponse {
15640 #[inline(always)]
15641 fn max_ordinal_present(&self) -> u64 {
15642 if let Some(_) = self.active_txn_ids {
15643 return 1;
15644 }
15645 0
15646 }
15647 }
15648
15649 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplGetScheduledScanEnabledResponse {
15650 type Borrowed<'a> = &'a Self;
15651 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
15652 value
15653 }
15654 }
15655
15656 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplGetScheduledScanEnabledResponse {
15657 type Owned = Self;
15658
15659 #[inline(always)]
15660 fn inline_align(_context: fidl::encoding::Context) -> usize {
15661 8
15662 }
15663
15664 #[inline(always)]
15665 fn inline_size(_context: fidl::encoding::Context) -> usize {
15666 16
15667 }
15668 }
15669
15670 unsafe impl<D: fidl::encoding::ResourceDialect>
15671 fidl::encoding::Encode<WlanFullmacImplGetScheduledScanEnabledResponse, D>
15672 for &WlanFullmacImplGetScheduledScanEnabledResponse
15673 {
15674 unsafe fn encode(
15675 self,
15676 encoder: &mut fidl::encoding::Encoder<'_, D>,
15677 offset: usize,
15678 mut depth: fidl::encoding::Depth,
15679 ) -> fidl::Result<()> {
15680 encoder.debug_check_bounds::<WlanFullmacImplGetScheduledScanEnabledResponse>(offset);
15681 let max_ordinal: u64 = self.max_ordinal_present();
15683 encoder.write_num(max_ordinal, offset);
15684 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
15685 if max_ordinal == 0 {
15687 return Ok(());
15688 }
15689 depth.increment()?;
15690 let envelope_size = 8;
15691 let bytes_len = max_ordinal as usize * envelope_size;
15692 #[allow(unused_variables)]
15693 let offset = encoder.out_of_line_offset(bytes_len);
15694 let mut _prev_end_offset: usize = 0;
15695 if 1 > max_ordinal {
15696 return Ok(());
15697 }
15698
15699 let cur_offset: usize = (1 - 1) * envelope_size;
15702
15703 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
15705
15706 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<u64>, D>(
15711 self.active_txn_ids.as_ref().map(<fidl::encoding::UnboundedVector<u64> as fidl::encoding::ValueTypeMarker>::borrow),
15712 encoder, offset + cur_offset, depth
15713 )?;
15714
15715 _prev_end_offset = cur_offset + envelope_size;
15716
15717 Ok(())
15718 }
15719 }
15720
15721 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
15722 for WlanFullmacImplGetScheduledScanEnabledResponse
15723 {
15724 #[inline(always)]
15725 fn new_empty() -> Self {
15726 Self::default()
15727 }
15728
15729 unsafe fn decode(
15730 &mut self,
15731 decoder: &mut fidl::encoding::Decoder<'_, D>,
15732 offset: usize,
15733 mut depth: fidl::encoding::Depth,
15734 ) -> fidl::Result<()> {
15735 decoder.debug_check_bounds::<Self>(offset);
15736 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
15737 None => return Err(fidl::Error::NotNullable),
15738 Some(len) => len,
15739 };
15740 if len == 0 {
15742 return Ok(());
15743 };
15744 depth.increment()?;
15745 let envelope_size = 8;
15746 let bytes_len = len * envelope_size;
15747 let offset = decoder.out_of_line_offset(bytes_len)?;
15748 let mut _next_ordinal_to_read = 0;
15750 let mut next_offset = offset;
15751 let end_offset = offset + bytes_len;
15752 _next_ordinal_to_read += 1;
15753 if next_offset >= end_offset {
15754 return Ok(());
15755 }
15756
15757 while _next_ordinal_to_read < 1 {
15759 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15760 _next_ordinal_to_read += 1;
15761 next_offset += envelope_size;
15762 }
15763
15764 let next_out_of_line = decoder.next_out_of_line();
15765 let handles_before = decoder.remaining_handles();
15766 if let Some((inlined, num_bytes, num_handles)) =
15767 fidl::encoding::decode_envelope_header(decoder, next_offset)?
15768 {
15769 let member_inline_size = <fidl::encoding::UnboundedVector<u64> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
15770 if inlined != (member_inline_size <= 4) {
15771 return Err(fidl::Error::InvalidInlineBitInEnvelope);
15772 }
15773 let inner_offset;
15774 let mut inner_depth = depth.clone();
15775 if inlined {
15776 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
15777 inner_offset = next_offset;
15778 } else {
15779 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
15780 inner_depth.increment()?;
15781 }
15782 let val_ref = self.active_txn_ids.get_or_insert_with(|| {
15783 fidl::new_empty!(fidl::encoding::UnboundedVector<u64>, D)
15784 });
15785 fidl::decode!(
15786 fidl::encoding::UnboundedVector<u64>,
15787 D,
15788 val_ref,
15789 decoder,
15790 inner_offset,
15791 inner_depth
15792 )?;
15793 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
15794 {
15795 return Err(fidl::Error::InvalidNumBytesInEnvelope);
15796 }
15797 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
15798 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
15799 }
15800 }
15801
15802 next_offset += envelope_size;
15803
15804 while next_offset < end_offset {
15806 _next_ordinal_to_read += 1;
15807 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15808 next_offset += envelope_size;
15809 }
15810
15811 Ok(())
15812 }
15813 }
15814
15815 impl WlanFullmacImplQueryApfPacketFilterSupportResponse {
15816 #[inline(always)]
15817 fn max_ordinal_present(&self) -> u64 {
15818 if let Some(_) = self.resp {
15819 return 1;
15820 }
15821 0
15822 }
15823 }
15824
15825 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplQueryApfPacketFilterSupportResponse {
15826 type Borrowed<'a> = &'a Self;
15827 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
15828 value
15829 }
15830 }
15831
15832 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplQueryApfPacketFilterSupportResponse {
15833 type Owned = Self;
15834
15835 #[inline(always)]
15836 fn inline_align(_context: fidl::encoding::Context) -> usize {
15837 8
15838 }
15839
15840 #[inline(always)]
15841 fn inline_size(_context: fidl::encoding::Context) -> usize {
15842 16
15843 }
15844 }
15845
15846 unsafe impl<D: fidl::encoding::ResourceDialect>
15847 fidl::encoding::Encode<WlanFullmacImplQueryApfPacketFilterSupportResponse, D>
15848 for &WlanFullmacImplQueryApfPacketFilterSupportResponse
15849 {
15850 unsafe fn encode(
15851 self,
15852 encoder: &mut fidl::encoding::Encoder<'_, D>,
15853 offset: usize,
15854 mut depth: fidl::encoding::Depth,
15855 ) -> fidl::Result<()> {
15856 encoder
15857 .debug_check_bounds::<WlanFullmacImplQueryApfPacketFilterSupportResponse>(offset);
15858 let max_ordinal: u64 = self.max_ordinal_present();
15860 encoder.write_num(max_ordinal, offset);
15861 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
15862 if max_ordinal == 0 {
15864 return Ok(());
15865 }
15866 depth.increment()?;
15867 let envelope_size = 8;
15868 let bytes_len = max_ordinal as usize * envelope_size;
15869 #[allow(unused_variables)]
15870 let offset = encoder.out_of_line_offset(bytes_len);
15871 let mut _prev_end_offset: usize = 0;
15872 if 1 > max_ordinal {
15873 return Ok(());
15874 }
15875
15876 let cur_offset: usize = (1 - 1) * envelope_size;
15879
15880 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
15882
15883 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_common_common::ApfPacketFilterSupport, D>(
15888 self.resp.as_ref().map(<fidl_fuchsia_wlan_common_common::ApfPacketFilterSupport as fidl::encoding::ValueTypeMarker>::borrow),
15889 encoder, offset + cur_offset, depth
15890 )?;
15891
15892 _prev_end_offset = cur_offset + envelope_size;
15893
15894 Ok(())
15895 }
15896 }
15897
15898 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
15899 for WlanFullmacImplQueryApfPacketFilterSupportResponse
15900 {
15901 #[inline(always)]
15902 fn new_empty() -> Self {
15903 Self::default()
15904 }
15905
15906 unsafe fn decode(
15907 &mut self,
15908 decoder: &mut fidl::encoding::Decoder<'_, D>,
15909 offset: usize,
15910 mut depth: fidl::encoding::Depth,
15911 ) -> fidl::Result<()> {
15912 decoder.debug_check_bounds::<Self>(offset);
15913 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
15914 None => return Err(fidl::Error::NotNullable),
15915 Some(len) => len,
15916 };
15917 if len == 0 {
15919 return Ok(());
15920 };
15921 depth.increment()?;
15922 let envelope_size = 8;
15923 let bytes_len = len * envelope_size;
15924 let offset = decoder.out_of_line_offset(bytes_len)?;
15925 let mut _next_ordinal_to_read = 0;
15927 let mut next_offset = offset;
15928 let end_offset = offset + bytes_len;
15929 _next_ordinal_to_read += 1;
15930 if next_offset >= end_offset {
15931 return Ok(());
15932 }
15933
15934 while _next_ordinal_to_read < 1 {
15936 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15937 _next_ordinal_to_read += 1;
15938 next_offset += envelope_size;
15939 }
15940
15941 let next_out_of_line = decoder.next_out_of_line();
15942 let handles_before = decoder.remaining_handles();
15943 if let Some((inlined, num_bytes, num_handles)) =
15944 fidl::encoding::decode_envelope_header(decoder, next_offset)?
15945 {
15946 let member_inline_size = <fidl_fuchsia_wlan_common_common::ApfPacketFilterSupport as fidl::encoding::TypeMarker>::inline_size(decoder.context);
15947 if inlined != (member_inline_size <= 4) {
15948 return Err(fidl::Error::InvalidInlineBitInEnvelope);
15949 }
15950 let inner_offset;
15951 let mut inner_depth = depth.clone();
15952 if inlined {
15953 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
15954 inner_offset = next_offset;
15955 } else {
15956 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
15957 inner_depth.increment()?;
15958 }
15959 let val_ref = self.resp.get_or_insert_with(|| {
15960 fidl::new_empty!(fidl_fuchsia_wlan_common_common::ApfPacketFilterSupport, D)
15961 });
15962 fidl::decode!(
15963 fidl_fuchsia_wlan_common_common::ApfPacketFilterSupport,
15964 D,
15965 val_ref,
15966 decoder,
15967 inner_offset,
15968 inner_depth
15969 )?;
15970 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
15971 {
15972 return Err(fidl::Error::InvalidNumBytesInEnvelope);
15973 }
15974 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
15975 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
15976 }
15977 }
15978
15979 next_offset += envelope_size;
15980
15981 while next_offset < end_offset {
15983 _next_ordinal_to_read += 1;
15984 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15985 next_offset += envelope_size;
15986 }
15987
15988 Ok(())
15989 }
15990 }
15991
15992 impl WlanFullmacImplQueryRssiMonitorSupportResponse {
15993 #[inline(always)]
15994 fn max_ordinal_present(&self) -> u64 {
15995 if let Some(_) = self.resp {
15996 return 1;
15997 }
15998 0
15999 }
16000 }
16001
16002 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplQueryRssiMonitorSupportResponse {
16003 type Borrowed<'a> = &'a Self;
16004 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
16005 value
16006 }
16007 }
16008
16009 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplQueryRssiMonitorSupportResponse {
16010 type Owned = Self;
16011
16012 #[inline(always)]
16013 fn inline_align(_context: fidl::encoding::Context) -> usize {
16014 8
16015 }
16016
16017 #[inline(always)]
16018 fn inline_size(_context: fidl::encoding::Context) -> usize {
16019 16
16020 }
16021 }
16022
16023 unsafe impl<D: fidl::encoding::ResourceDialect>
16024 fidl::encoding::Encode<WlanFullmacImplQueryRssiMonitorSupportResponse, D>
16025 for &WlanFullmacImplQueryRssiMonitorSupportResponse
16026 {
16027 unsafe fn encode(
16028 self,
16029 encoder: &mut fidl::encoding::Encoder<'_, D>,
16030 offset: usize,
16031 mut depth: fidl::encoding::Depth,
16032 ) -> fidl::Result<()> {
16033 encoder.debug_check_bounds::<WlanFullmacImplQueryRssiMonitorSupportResponse>(offset);
16034 let max_ordinal: u64 = self.max_ordinal_present();
16036 encoder.write_num(max_ordinal, offset);
16037 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
16038 if max_ordinal == 0 {
16040 return Ok(());
16041 }
16042 depth.increment()?;
16043 let envelope_size = 8;
16044 let bytes_len = max_ordinal as usize * envelope_size;
16045 #[allow(unused_variables)]
16046 let offset = encoder.out_of_line_offset(bytes_len);
16047 let mut _prev_end_offset: usize = 0;
16048 if 1 > max_ordinal {
16049 return Ok(());
16050 }
16051
16052 let cur_offset: usize = (1 - 1) * envelope_size;
16055
16056 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
16058
16059 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_common_common::RssiMonitorSupport, D>(
16064 self.resp.as_ref().map(<fidl_fuchsia_wlan_common_common::RssiMonitorSupport as fidl::encoding::ValueTypeMarker>::borrow),
16065 encoder, offset + cur_offset, depth
16066 )?;
16067
16068 _prev_end_offset = cur_offset + envelope_size;
16069
16070 Ok(())
16071 }
16072 }
16073
16074 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
16075 for WlanFullmacImplQueryRssiMonitorSupportResponse
16076 {
16077 #[inline(always)]
16078 fn new_empty() -> Self {
16079 Self::default()
16080 }
16081
16082 unsafe fn decode(
16083 &mut self,
16084 decoder: &mut fidl::encoding::Decoder<'_, D>,
16085 offset: usize,
16086 mut depth: fidl::encoding::Depth,
16087 ) -> fidl::Result<()> {
16088 decoder.debug_check_bounds::<Self>(offset);
16089 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
16090 None => return Err(fidl::Error::NotNullable),
16091 Some(len) => len,
16092 };
16093 if len == 0 {
16095 return Ok(());
16096 };
16097 depth.increment()?;
16098 let envelope_size = 8;
16099 let bytes_len = len * envelope_size;
16100 let offset = decoder.out_of_line_offset(bytes_len)?;
16101 let mut _next_ordinal_to_read = 0;
16103 let mut next_offset = offset;
16104 let end_offset = offset + bytes_len;
16105 _next_ordinal_to_read += 1;
16106 if next_offset >= end_offset {
16107 return Ok(());
16108 }
16109
16110 while _next_ordinal_to_read < 1 {
16112 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
16113 _next_ordinal_to_read += 1;
16114 next_offset += envelope_size;
16115 }
16116
16117 let next_out_of_line = decoder.next_out_of_line();
16118 let handles_before = decoder.remaining_handles();
16119 if let Some((inlined, num_bytes, num_handles)) =
16120 fidl::encoding::decode_envelope_header(decoder, next_offset)?
16121 {
16122 let member_inline_size = <fidl_fuchsia_wlan_common_common::RssiMonitorSupport as fidl::encoding::TypeMarker>::inline_size(decoder.context);
16123 if inlined != (member_inline_size <= 4) {
16124 return Err(fidl::Error::InvalidInlineBitInEnvelope);
16125 }
16126 let inner_offset;
16127 let mut inner_depth = depth.clone();
16128 if inlined {
16129 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
16130 inner_offset = next_offset;
16131 } else {
16132 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
16133 inner_depth.increment()?;
16134 }
16135 let val_ref = self.resp.get_or_insert_with(|| {
16136 fidl::new_empty!(fidl_fuchsia_wlan_common_common::RssiMonitorSupport, D)
16137 });
16138 fidl::decode!(
16139 fidl_fuchsia_wlan_common_common::RssiMonitorSupport,
16140 D,
16141 val_ref,
16142 decoder,
16143 inner_offset,
16144 inner_depth
16145 )?;
16146 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
16147 {
16148 return Err(fidl::Error::InvalidNumBytesInEnvelope);
16149 }
16150 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
16151 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
16152 }
16153 }
16154
16155 next_offset += envelope_size;
16156
16157 while next_offset < end_offset {
16159 _next_ordinal_to_read += 1;
16160 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
16161 next_offset += envelope_size;
16162 }
16163
16164 Ok(())
16165 }
16166 }
16167
16168 impl WlanFullmacImplQuerySecuritySupportResponse {
16169 #[inline(always)]
16170 fn max_ordinal_present(&self) -> u64 {
16171 if let Some(_) = self.resp {
16172 return 1;
16173 }
16174 0
16175 }
16176 }
16177
16178 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplQuerySecuritySupportResponse {
16179 type Borrowed<'a> = &'a Self;
16180 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
16181 value
16182 }
16183 }
16184
16185 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplQuerySecuritySupportResponse {
16186 type Owned = Self;
16187
16188 #[inline(always)]
16189 fn inline_align(_context: fidl::encoding::Context) -> usize {
16190 8
16191 }
16192
16193 #[inline(always)]
16194 fn inline_size(_context: fidl::encoding::Context) -> usize {
16195 16
16196 }
16197 }
16198
16199 unsafe impl<D: fidl::encoding::ResourceDialect>
16200 fidl::encoding::Encode<WlanFullmacImplQuerySecuritySupportResponse, D>
16201 for &WlanFullmacImplQuerySecuritySupportResponse
16202 {
16203 unsafe fn encode(
16204 self,
16205 encoder: &mut fidl::encoding::Encoder<'_, D>,
16206 offset: usize,
16207 mut depth: fidl::encoding::Depth,
16208 ) -> fidl::Result<()> {
16209 encoder.debug_check_bounds::<WlanFullmacImplQuerySecuritySupportResponse>(offset);
16210 let max_ordinal: u64 = self.max_ordinal_present();
16212 encoder.write_num(max_ordinal, offset);
16213 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
16214 if max_ordinal == 0 {
16216 return Ok(());
16217 }
16218 depth.increment()?;
16219 let envelope_size = 8;
16220 let bytes_len = max_ordinal as usize * envelope_size;
16221 #[allow(unused_variables)]
16222 let offset = encoder.out_of_line_offset(bytes_len);
16223 let mut _prev_end_offset: usize = 0;
16224 if 1 > max_ordinal {
16225 return Ok(());
16226 }
16227
16228 let cur_offset: usize = (1 - 1) * envelope_size;
16231
16232 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
16234
16235 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_common_common::SecuritySupport, D>(
16240 self.resp.as_ref().map(<fidl_fuchsia_wlan_common_common::SecuritySupport as fidl::encoding::ValueTypeMarker>::borrow),
16241 encoder, offset + cur_offset, depth
16242 )?;
16243
16244 _prev_end_offset = cur_offset + envelope_size;
16245
16246 Ok(())
16247 }
16248 }
16249
16250 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
16251 for WlanFullmacImplQuerySecuritySupportResponse
16252 {
16253 #[inline(always)]
16254 fn new_empty() -> Self {
16255 Self::default()
16256 }
16257
16258 unsafe fn decode(
16259 &mut self,
16260 decoder: &mut fidl::encoding::Decoder<'_, D>,
16261 offset: usize,
16262 mut depth: fidl::encoding::Depth,
16263 ) -> fidl::Result<()> {
16264 decoder.debug_check_bounds::<Self>(offset);
16265 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
16266 None => return Err(fidl::Error::NotNullable),
16267 Some(len) => len,
16268 };
16269 if len == 0 {
16271 return Ok(());
16272 };
16273 depth.increment()?;
16274 let envelope_size = 8;
16275 let bytes_len = len * envelope_size;
16276 let offset = decoder.out_of_line_offset(bytes_len)?;
16277 let mut _next_ordinal_to_read = 0;
16279 let mut next_offset = offset;
16280 let end_offset = offset + bytes_len;
16281 _next_ordinal_to_read += 1;
16282 if next_offset >= end_offset {
16283 return Ok(());
16284 }
16285
16286 while _next_ordinal_to_read < 1 {
16288 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
16289 _next_ordinal_to_read += 1;
16290 next_offset += envelope_size;
16291 }
16292
16293 let next_out_of_line = decoder.next_out_of_line();
16294 let handles_before = decoder.remaining_handles();
16295 if let Some((inlined, num_bytes, num_handles)) =
16296 fidl::encoding::decode_envelope_header(decoder, next_offset)?
16297 {
16298 let member_inline_size = <fidl_fuchsia_wlan_common_common::SecuritySupport as fidl::encoding::TypeMarker>::inline_size(decoder.context);
16299 if inlined != (member_inline_size <= 4) {
16300 return Err(fidl::Error::InvalidInlineBitInEnvelope);
16301 }
16302 let inner_offset;
16303 let mut inner_depth = depth.clone();
16304 if inlined {
16305 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
16306 inner_offset = next_offset;
16307 } else {
16308 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
16309 inner_depth.increment()?;
16310 }
16311 let val_ref = self.resp.get_or_insert_with(|| {
16312 fidl::new_empty!(fidl_fuchsia_wlan_common_common::SecuritySupport, D)
16313 });
16314 fidl::decode!(
16315 fidl_fuchsia_wlan_common_common::SecuritySupport,
16316 D,
16317 val_ref,
16318 decoder,
16319 inner_offset,
16320 inner_depth
16321 )?;
16322 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
16323 {
16324 return Err(fidl::Error::InvalidNumBytesInEnvelope);
16325 }
16326 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
16327 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
16328 }
16329 }
16330
16331 next_offset += envelope_size;
16332
16333 while next_offset < end_offset {
16335 _next_ordinal_to_read += 1;
16336 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
16337 next_offset += envelope_size;
16338 }
16339
16340 Ok(())
16341 }
16342 }
16343
16344 impl WlanFullmacImplQuerySpectrumManagementSupportResponse {
16345 #[inline(always)]
16346 fn max_ordinal_present(&self) -> u64 {
16347 if let Some(_) = self.resp {
16348 return 1;
16349 }
16350 0
16351 }
16352 }
16353
16354 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplQuerySpectrumManagementSupportResponse {
16355 type Borrowed<'a> = &'a Self;
16356 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
16357 value
16358 }
16359 }
16360
16361 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplQuerySpectrumManagementSupportResponse {
16362 type Owned = Self;
16363
16364 #[inline(always)]
16365 fn inline_align(_context: fidl::encoding::Context) -> usize {
16366 8
16367 }
16368
16369 #[inline(always)]
16370 fn inline_size(_context: fidl::encoding::Context) -> usize {
16371 16
16372 }
16373 }
16374
16375 unsafe impl<D: fidl::encoding::ResourceDialect>
16376 fidl::encoding::Encode<WlanFullmacImplQuerySpectrumManagementSupportResponse, D>
16377 for &WlanFullmacImplQuerySpectrumManagementSupportResponse
16378 {
16379 unsafe fn encode(
16380 self,
16381 encoder: &mut fidl::encoding::Encoder<'_, D>,
16382 offset: usize,
16383 mut depth: fidl::encoding::Depth,
16384 ) -> fidl::Result<()> {
16385 encoder.debug_check_bounds::<WlanFullmacImplQuerySpectrumManagementSupportResponse>(
16386 offset,
16387 );
16388 let max_ordinal: u64 = self.max_ordinal_present();
16390 encoder.write_num(max_ordinal, offset);
16391 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
16392 if max_ordinal == 0 {
16394 return Ok(());
16395 }
16396 depth.increment()?;
16397 let envelope_size = 8;
16398 let bytes_len = max_ordinal as usize * envelope_size;
16399 #[allow(unused_variables)]
16400 let offset = encoder.out_of_line_offset(bytes_len);
16401 let mut _prev_end_offset: usize = 0;
16402 if 1 > max_ordinal {
16403 return Ok(());
16404 }
16405
16406 let cur_offset: usize = (1 - 1) * envelope_size;
16409
16410 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
16412
16413 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_common_common::SpectrumManagementSupport, D>(
16418 self.resp.as_ref().map(<fidl_fuchsia_wlan_common_common::SpectrumManagementSupport as fidl::encoding::ValueTypeMarker>::borrow),
16419 encoder, offset + cur_offset, depth
16420 )?;
16421
16422 _prev_end_offset = cur_offset + envelope_size;
16423
16424 Ok(())
16425 }
16426 }
16427
16428 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
16429 for WlanFullmacImplQuerySpectrumManagementSupportResponse
16430 {
16431 #[inline(always)]
16432 fn new_empty() -> Self {
16433 Self::default()
16434 }
16435
16436 unsafe fn decode(
16437 &mut self,
16438 decoder: &mut fidl::encoding::Decoder<'_, D>,
16439 offset: usize,
16440 mut depth: fidl::encoding::Depth,
16441 ) -> fidl::Result<()> {
16442 decoder.debug_check_bounds::<Self>(offset);
16443 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
16444 None => return Err(fidl::Error::NotNullable),
16445 Some(len) => len,
16446 };
16447 if len == 0 {
16449 return Ok(());
16450 };
16451 depth.increment()?;
16452 let envelope_size = 8;
16453 let bytes_len = len * envelope_size;
16454 let offset = decoder.out_of_line_offset(bytes_len)?;
16455 let mut _next_ordinal_to_read = 0;
16457 let mut next_offset = offset;
16458 let end_offset = offset + bytes_len;
16459 _next_ordinal_to_read += 1;
16460 if next_offset >= end_offset {
16461 return Ok(());
16462 }
16463
16464 while _next_ordinal_to_read < 1 {
16466 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
16467 _next_ordinal_to_read += 1;
16468 next_offset += envelope_size;
16469 }
16470
16471 let next_out_of_line = decoder.next_out_of_line();
16472 let handles_before = decoder.remaining_handles();
16473 if let Some((inlined, num_bytes, num_handles)) =
16474 fidl::encoding::decode_envelope_header(decoder, next_offset)?
16475 {
16476 let member_inline_size = <fidl_fuchsia_wlan_common_common::SpectrumManagementSupport as fidl::encoding::TypeMarker>::inline_size(decoder.context);
16477 if inlined != (member_inline_size <= 4) {
16478 return Err(fidl::Error::InvalidInlineBitInEnvelope);
16479 }
16480 let inner_offset;
16481 let mut inner_depth = depth.clone();
16482 if inlined {
16483 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
16484 inner_offset = next_offset;
16485 } else {
16486 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
16487 inner_depth.increment()?;
16488 }
16489 let val_ref = self.resp.get_or_insert_with(|| {
16490 fidl::new_empty!(fidl_fuchsia_wlan_common_common::SpectrumManagementSupport, D)
16491 });
16492 fidl::decode!(
16493 fidl_fuchsia_wlan_common_common::SpectrumManagementSupport,
16494 D,
16495 val_ref,
16496 decoder,
16497 inner_offset,
16498 inner_depth
16499 )?;
16500 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
16501 {
16502 return Err(fidl::Error::InvalidNumBytesInEnvelope);
16503 }
16504 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
16505 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
16506 }
16507 }
16508
16509 next_offset += envelope_size;
16510
16511 while next_offset < end_offset {
16513 _next_ordinal_to_read += 1;
16514 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
16515 next_offset += envelope_size;
16516 }
16517
16518 Ok(())
16519 }
16520 }
16521
16522 impl WlanFullmacImplQueryTelemetrySupportResponse {
16523 #[inline(always)]
16524 fn max_ordinal_present(&self) -> u64 {
16525 if let Some(_) = self.resp {
16526 return 1;
16527 }
16528 0
16529 }
16530 }
16531
16532 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplQueryTelemetrySupportResponse {
16533 type Borrowed<'a> = &'a Self;
16534 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
16535 value
16536 }
16537 }
16538
16539 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplQueryTelemetrySupportResponse {
16540 type Owned = Self;
16541
16542 #[inline(always)]
16543 fn inline_align(_context: fidl::encoding::Context) -> usize {
16544 8
16545 }
16546
16547 #[inline(always)]
16548 fn inline_size(_context: fidl::encoding::Context) -> usize {
16549 16
16550 }
16551 }
16552
16553 unsafe impl<D: fidl::encoding::ResourceDialect>
16554 fidl::encoding::Encode<WlanFullmacImplQueryTelemetrySupportResponse, D>
16555 for &WlanFullmacImplQueryTelemetrySupportResponse
16556 {
16557 unsafe fn encode(
16558 self,
16559 encoder: &mut fidl::encoding::Encoder<'_, D>,
16560 offset: usize,
16561 mut depth: fidl::encoding::Depth,
16562 ) -> fidl::Result<()> {
16563 encoder.debug_check_bounds::<WlanFullmacImplQueryTelemetrySupportResponse>(offset);
16564 let max_ordinal: u64 = self.max_ordinal_present();
16566 encoder.write_num(max_ordinal, offset);
16567 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
16568 if max_ordinal == 0 {
16570 return Ok(());
16571 }
16572 depth.increment()?;
16573 let envelope_size = 8;
16574 let bytes_len = max_ordinal as usize * envelope_size;
16575 #[allow(unused_variables)]
16576 let offset = encoder.out_of_line_offset(bytes_len);
16577 let mut _prev_end_offset: usize = 0;
16578 if 1 > max_ordinal {
16579 return Ok(());
16580 }
16581
16582 let cur_offset: usize = (1 - 1) * envelope_size;
16585
16586 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
16588
16589 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_stats_common::TelemetrySupport, D>(
16594 self.resp.as_ref().map(<fidl_fuchsia_wlan_stats_common::TelemetrySupport as fidl::encoding::ValueTypeMarker>::borrow),
16595 encoder, offset + cur_offset, depth
16596 )?;
16597
16598 _prev_end_offset = cur_offset + envelope_size;
16599
16600 Ok(())
16601 }
16602 }
16603
16604 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
16605 for WlanFullmacImplQueryTelemetrySupportResponse
16606 {
16607 #[inline(always)]
16608 fn new_empty() -> Self {
16609 Self::default()
16610 }
16611
16612 unsafe fn decode(
16613 &mut self,
16614 decoder: &mut fidl::encoding::Decoder<'_, D>,
16615 offset: usize,
16616 mut depth: fidl::encoding::Depth,
16617 ) -> fidl::Result<()> {
16618 decoder.debug_check_bounds::<Self>(offset);
16619 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
16620 None => return Err(fidl::Error::NotNullable),
16621 Some(len) => len,
16622 };
16623 if len == 0 {
16625 return Ok(());
16626 };
16627 depth.increment()?;
16628 let envelope_size = 8;
16629 let bytes_len = len * envelope_size;
16630 let offset = decoder.out_of_line_offset(bytes_len)?;
16631 let mut _next_ordinal_to_read = 0;
16633 let mut next_offset = offset;
16634 let end_offset = offset + bytes_len;
16635 _next_ordinal_to_read += 1;
16636 if next_offset >= end_offset {
16637 return Ok(());
16638 }
16639
16640 while _next_ordinal_to_read < 1 {
16642 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
16643 _next_ordinal_to_read += 1;
16644 next_offset += envelope_size;
16645 }
16646
16647 let next_out_of_line = decoder.next_out_of_line();
16648 let handles_before = decoder.remaining_handles();
16649 if let Some((inlined, num_bytes, num_handles)) =
16650 fidl::encoding::decode_envelope_header(decoder, next_offset)?
16651 {
16652 let member_inline_size = <fidl_fuchsia_wlan_stats_common::TelemetrySupport as fidl::encoding::TypeMarker>::inline_size(decoder.context);
16653 if inlined != (member_inline_size <= 4) {
16654 return Err(fidl::Error::InvalidInlineBitInEnvelope);
16655 }
16656 let inner_offset;
16657 let mut inner_depth = depth.clone();
16658 if inlined {
16659 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
16660 inner_offset = next_offset;
16661 } else {
16662 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
16663 inner_depth.increment()?;
16664 }
16665 let val_ref = self.resp.get_or_insert_with(|| {
16666 fidl::new_empty!(fidl_fuchsia_wlan_stats_common::TelemetrySupport, D)
16667 });
16668 fidl::decode!(
16669 fidl_fuchsia_wlan_stats_common::TelemetrySupport,
16670 D,
16671 val_ref,
16672 decoder,
16673 inner_offset,
16674 inner_depth
16675 )?;
16676 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
16677 {
16678 return Err(fidl::Error::InvalidNumBytesInEnvelope);
16679 }
16680 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
16681 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
16682 }
16683 }
16684
16685 next_offset += envelope_size;
16686
16687 while next_offset < end_offset {
16689 _next_ordinal_to_read += 1;
16690 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
16691 next_offset += envelope_size;
16692 }
16693
16694 Ok(())
16695 }
16696 }
16697
16698 impl WlanFullmacImplQueryResponse {
16699 #[inline(always)]
16700 fn max_ordinal_present(&self) -> u64 {
16701 if let Some(_) = self.factory_addr {
16702 return 4;
16703 }
16704 if let Some(_) = self.band_caps {
16705 return 3;
16706 }
16707 if let Some(_) = self.role {
16708 return 2;
16709 }
16710 if let Some(_) = self.sta_addr {
16711 return 1;
16712 }
16713 0
16714 }
16715 }
16716
16717 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplQueryResponse {
16718 type Borrowed<'a> = &'a Self;
16719 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
16720 value
16721 }
16722 }
16723
16724 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplQueryResponse {
16725 type Owned = Self;
16726
16727 #[inline(always)]
16728 fn inline_align(_context: fidl::encoding::Context) -> usize {
16729 8
16730 }
16731
16732 #[inline(always)]
16733 fn inline_size(_context: fidl::encoding::Context) -> usize {
16734 16
16735 }
16736 }
16737
16738 unsafe impl<D: fidl::encoding::ResourceDialect>
16739 fidl::encoding::Encode<WlanFullmacImplQueryResponse, D> for &WlanFullmacImplQueryResponse
16740 {
16741 unsafe fn encode(
16742 self,
16743 encoder: &mut fidl::encoding::Encoder<'_, D>,
16744 offset: usize,
16745 mut depth: fidl::encoding::Depth,
16746 ) -> fidl::Result<()> {
16747 encoder.debug_check_bounds::<WlanFullmacImplQueryResponse>(offset);
16748 let max_ordinal: u64 = self.max_ordinal_present();
16750 encoder.write_num(max_ordinal, offset);
16751 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
16752 if max_ordinal == 0 {
16754 return Ok(());
16755 }
16756 depth.increment()?;
16757 let envelope_size = 8;
16758 let bytes_len = max_ordinal as usize * envelope_size;
16759 #[allow(unused_variables)]
16760 let offset = encoder.out_of_line_offset(bytes_len);
16761 let mut _prev_end_offset: usize = 0;
16762 if 1 > max_ordinal {
16763 return Ok(());
16764 }
16765
16766 let cur_offset: usize = (1 - 1) * envelope_size;
16769
16770 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
16772
16773 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
16778 self.sta_addr
16779 .as_ref()
16780 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
16781 encoder,
16782 offset + cur_offset,
16783 depth,
16784 )?;
16785
16786 _prev_end_offset = cur_offset + envelope_size;
16787 if 2 > max_ordinal {
16788 return Ok(());
16789 }
16790
16791 let cur_offset: usize = (2 - 1) * envelope_size;
16794
16795 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
16797
16798 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_common_common::WlanMacRole, D>(
16803 self.role.as_ref().map(<fidl_fuchsia_wlan_common_common::WlanMacRole as fidl::encoding::ValueTypeMarker>::borrow),
16804 encoder, offset + cur_offset, depth
16805 )?;
16806
16807 _prev_end_offset = cur_offset + envelope_size;
16808 if 3 > max_ordinal {
16809 return Ok(());
16810 }
16811
16812 let cur_offset: usize = (3 - 1) * envelope_size;
16815
16816 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
16818
16819 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<BandCapability, 16>, D>(
16824 self.band_caps.as_ref().map(<fidl::encoding::Vector<BandCapability, 16> as fidl::encoding::ValueTypeMarker>::borrow),
16825 encoder, offset + cur_offset, depth
16826 )?;
16827
16828 _prev_end_offset = cur_offset + envelope_size;
16829 if 4 > max_ordinal {
16830 return Ok(());
16831 }
16832
16833 let cur_offset: usize = (4 - 1) * envelope_size;
16836
16837 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
16839
16840 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
16845 self.factory_addr
16846 .as_ref()
16847 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
16848 encoder,
16849 offset + cur_offset,
16850 depth,
16851 )?;
16852
16853 _prev_end_offset = cur_offset + envelope_size;
16854
16855 Ok(())
16856 }
16857 }
16858
16859 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
16860 for WlanFullmacImplQueryResponse
16861 {
16862 #[inline(always)]
16863 fn new_empty() -> Self {
16864 Self::default()
16865 }
16866
16867 unsafe fn decode(
16868 &mut self,
16869 decoder: &mut fidl::encoding::Decoder<'_, D>,
16870 offset: usize,
16871 mut depth: fidl::encoding::Depth,
16872 ) -> fidl::Result<()> {
16873 decoder.debug_check_bounds::<Self>(offset);
16874 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
16875 None => return Err(fidl::Error::NotNullable),
16876 Some(len) => len,
16877 };
16878 if len == 0 {
16880 return Ok(());
16881 };
16882 depth.increment()?;
16883 let envelope_size = 8;
16884 let bytes_len = len * envelope_size;
16885 let offset = decoder.out_of_line_offset(bytes_len)?;
16886 let mut _next_ordinal_to_read = 0;
16888 let mut next_offset = offset;
16889 let end_offset = offset + bytes_len;
16890 _next_ordinal_to_read += 1;
16891 if next_offset >= end_offset {
16892 return Ok(());
16893 }
16894
16895 while _next_ordinal_to_read < 1 {
16897 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
16898 _next_ordinal_to_read += 1;
16899 next_offset += envelope_size;
16900 }
16901
16902 let next_out_of_line = decoder.next_out_of_line();
16903 let handles_before = decoder.remaining_handles();
16904 if let Some((inlined, num_bytes, num_handles)) =
16905 fidl::encoding::decode_envelope_header(decoder, next_offset)?
16906 {
16907 let member_inline_size =
16908 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
16909 decoder.context,
16910 );
16911 if inlined != (member_inline_size <= 4) {
16912 return Err(fidl::Error::InvalidInlineBitInEnvelope);
16913 }
16914 let inner_offset;
16915 let mut inner_depth = depth.clone();
16916 if inlined {
16917 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
16918 inner_offset = next_offset;
16919 } else {
16920 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
16921 inner_depth.increment()?;
16922 }
16923 let val_ref = self
16924 .sta_addr
16925 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
16926 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
16927 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
16928 {
16929 return Err(fidl::Error::InvalidNumBytesInEnvelope);
16930 }
16931 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
16932 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
16933 }
16934 }
16935
16936 next_offset += envelope_size;
16937 _next_ordinal_to_read += 1;
16938 if next_offset >= end_offset {
16939 return Ok(());
16940 }
16941
16942 while _next_ordinal_to_read < 2 {
16944 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
16945 _next_ordinal_to_read += 1;
16946 next_offset += envelope_size;
16947 }
16948
16949 let next_out_of_line = decoder.next_out_of_line();
16950 let handles_before = decoder.remaining_handles();
16951 if let Some((inlined, num_bytes, num_handles)) =
16952 fidl::encoding::decode_envelope_header(decoder, next_offset)?
16953 {
16954 let member_inline_size = <fidl_fuchsia_wlan_common_common::WlanMacRole as fidl::encoding::TypeMarker>::inline_size(decoder.context);
16955 if inlined != (member_inline_size <= 4) {
16956 return Err(fidl::Error::InvalidInlineBitInEnvelope);
16957 }
16958 let inner_offset;
16959 let mut inner_depth = depth.clone();
16960 if inlined {
16961 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
16962 inner_offset = next_offset;
16963 } else {
16964 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
16965 inner_depth.increment()?;
16966 }
16967 let val_ref = self.role.get_or_insert_with(|| {
16968 fidl::new_empty!(fidl_fuchsia_wlan_common_common::WlanMacRole, D)
16969 });
16970 fidl::decode!(
16971 fidl_fuchsia_wlan_common_common::WlanMacRole,
16972 D,
16973 val_ref,
16974 decoder,
16975 inner_offset,
16976 inner_depth
16977 )?;
16978 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
16979 {
16980 return Err(fidl::Error::InvalidNumBytesInEnvelope);
16981 }
16982 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
16983 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
16984 }
16985 }
16986
16987 next_offset += envelope_size;
16988 _next_ordinal_to_read += 1;
16989 if next_offset >= end_offset {
16990 return Ok(());
16991 }
16992
16993 while _next_ordinal_to_read < 3 {
16995 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
16996 _next_ordinal_to_read += 1;
16997 next_offset += envelope_size;
16998 }
16999
17000 let next_out_of_line = decoder.next_out_of_line();
17001 let handles_before = decoder.remaining_handles();
17002 if let Some((inlined, num_bytes, num_handles)) =
17003 fidl::encoding::decode_envelope_header(decoder, next_offset)?
17004 {
17005 let member_inline_size = <fidl::encoding::Vector<BandCapability, 16> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
17006 if inlined != (member_inline_size <= 4) {
17007 return Err(fidl::Error::InvalidInlineBitInEnvelope);
17008 }
17009 let inner_offset;
17010 let mut inner_depth = depth.clone();
17011 if inlined {
17012 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
17013 inner_offset = next_offset;
17014 } else {
17015 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
17016 inner_depth.increment()?;
17017 }
17018 let val_ref = self.band_caps.get_or_insert_with(
17019 || fidl::new_empty!(fidl::encoding::Vector<BandCapability, 16>, D),
17020 );
17021 fidl::decode!(fidl::encoding::Vector<BandCapability, 16>, D, val_ref, decoder, inner_offset, inner_depth)?;
17022 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
17023 {
17024 return Err(fidl::Error::InvalidNumBytesInEnvelope);
17025 }
17026 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
17027 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
17028 }
17029 }
17030
17031 next_offset += envelope_size;
17032 _next_ordinal_to_read += 1;
17033 if next_offset >= end_offset {
17034 return Ok(());
17035 }
17036
17037 while _next_ordinal_to_read < 4 {
17039 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
17040 _next_ordinal_to_read += 1;
17041 next_offset += envelope_size;
17042 }
17043
17044 let next_out_of_line = decoder.next_out_of_line();
17045 let handles_before = decoder.remaining_handles();
17046 if let Some((inlined, num_bytes, num_handles)) =
17047 fidl::encoding::decode_envelope_header(decoder, next_offset)?
17048 {
17049 let member_inline_size =
17050 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
17051 decoder.context,
17052 );
17053 if inlined != (member_inline_size <= 4) {
17054 return Err(fidl::Error::InvalidInlineBitInEnvelope);
17055 }
17056 let inner_offset;
17057 let mut inner_depth = depth.clone();
17058 if inlined {
17059 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
17060 inner_offset = next_offset;
17061 } else {
17062 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
17063 inner_depth.increment()?;
17064 }
17065 let val_ref = self
17066 .factory_addr
17067 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
17068 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
17069 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
17070 {
17071 return Err(fidl::Error::InvalidNumBytesInEnvelope);
17072 }
17073 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
17074 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
17075 }
17076 }
17077
17078 next_offset += envelope_size;
17079
17080 while next_offset < end_offset {
17082 _next_ordinal_to_read += 1;
17083 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
17084 next_offset += envelope_size;
17085 }
17086
17087 Ok(())
17088 }
17089 }
17090
17091 impl WlanFullmacImplReadApfPacketFilterDataResponse {
17092 #[inline(always)]
17093 fn max_ordinal_present(&self) -> u64 {
17094 if let Some(_) = self.memory {
17095 return 1;
17096 }
17097 0
17098 }
17099 }
17100
17101 impl fidl::encoding::ValueTypeMarker for WlanFullmacImplReadApfPacketFilterDataResponse {
17102 type Borrowed<'a> = &'a Self;
17103 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
17104 value
17105 }
17106 }
17107
17108 unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplReadApfPacketFilterDataResponse {
17109 type Owned = Self;
17110
17111 #[inline(always)]
17112 fn inline_align(_context: fidl::encoding::Context) -> usize {
17113 8
17114 }
17115
17116 #[inline(always)]
17117 fn inline_size(_context: fidl::encoding::Context) -> usize {
17118 16
17119 }
17120 }
17121
17122 unsafe impl<D: fidl::encoding::ResourceDialect>
17123 fidl::encoding::Encode<WlanFullmacImplReadApfPacketFilterDataResponse, D>
17124 for &WlanFullmacImplReadApfPacketFilterDataResponse
17125 {
17126 unsafe fn encode(
17127 self,
17128 encoder: &mut fidl::encoding::Encoder<'_, D>,
17129 offset: usize,
17130 mut depth: fidl::encoding::Depth,
17131 ) -> fidl::Result<()> {
17132 encoder.debug_check_bounds::<WlanFullmacImplReadApfPacketFilterDataResponse>(offset);
17133 let max_ordinal: u64 = self.max_ordinal_present();
17135 encoder.write_num(max_ordinal, offset);
17136 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
17137 if max_ordinal == 0 {
17139 return Ok(());
17140 }
17141 depth.increment()?;
17142 let envelope_size = 8;
17143 let bytes_len = max_ordinal as usize * envelope_size;
17144 #[allow(unused_variables)]
17145 let offset = encoder.out_of_line_offset(bytes_len);
17146 let mut _prev_end_offset: usize = 0;
17147 if 1 > max_ordinal {
17148 return Ok(());
17149 }
17150
17151 let cur_offset: usize = (1 - 1) * envelope_size;
17154
17155 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
17157
17158 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<u8>, D>(
17163 self.memory.as_ref().map(<fidl::encoding::UnboundedVector<u8> as fidl::encoding::ValueTypeMarker>::borrow),
17164 encoder, offset + cur_offset, depth
17165 )?;
17166
17167 _prev_end_offset = cur_offset + envelope_size;
17168
17169 Ok(())
17170 }
17171 }
17172
17173 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
17174 for WlanFullmacImplReadApfPacketFilterDataResponse
17175 {
17176 #[inline(always)]
17177 fn new_empty() -> Self {
17178 Self::default()
17179 }
17180
17181 unsafe fn decode(
17182 &mut self,
17183 decoder: &mut fidl::encoding::Decoder<'_, D>,
17184 offset: usize,
17185 mut depth: fidl::encoding::Depth,
17186 ) -> fidl::Result<()> {
17187 decoder.debug_check_bounds::<Self>(offset);
17188 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
17189 None => return Err(fidl::Error::NotNullable),
17190 Some(len) => len,
17191 };
17192 if len == 0 {
17194 return Ok(());
17195 };
17196 depth.increment()?;
17197 let envelope_size = 8;
17198 let bytes_len = len * envelope_size;
17199 let offset = decoder.out_of_line_offset(bytes_len)?;
17200 let mut _next_ordinal_to_read = 0;
17202 let mut next_offset = offset;
17203 let end_offset = offset + bytes_len;
17204 _next_ordinal_to_read += 1;
17205 if next_offset >= end_offset {
17206 return Ok(());
17207 }
17208
17209 while _next_ordinal_to_read < 1 {
17211 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
17212 _next_ordinal_to_read += 1;
17213 next_offset += envelope_size;
17214 }
17215
17216 let next_out_of_line = decoder.next_out_of_line();
17217 let handles_before = decoder.remaining_handles();
17218 if let Some((inlined, num_bytes, num_handles)) =
17219 fidl::encoding::decode_envelope_header(decoder, next_offset)?
17220 {
17221 let member_inline_size = <fidl::encoding::UnboundedVector<u8> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
17222 if inlined != (member_inline_size <= 4) {
17223 return Err(fidl::Error::InvalidInlineBitInEnvelope);
17224 }
17225 let inner_offset;
17226 let mut inner_depth = depth.clone();
17227 if inlined {
17228 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
17229 inner_offset = next_offset;
17230 } else {
17231 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
17232 inner_depth.increment()?;
17233 }
17234 let val_ref = self.memory.get_or_insert_with(|| {
17235 fidl::new_empty!(fidl::encoding::UnboundedVector<u8>, D)
17236 });
17237 fidl::decode!(
17238 fidl::encoding::UnboundedVector<u8>,
17239 D,
17240 val_ref,
17241 decoder,
17242 inner_offset,
17243 inner_depth
17244 )?;
17245 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
17246 {
17247 return Err(fidl::Error::InvalidNumBytesInEnvelope);
17248 }
17249 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
17250 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
17251 }
17252 }
17253
17254 next_offset += envelope_size;
17255
17256 while next_offset < end_offset {
17258 _next_ordinal_to_read += 1;
17259 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
17260 next_offset += envelope_size;
17261 }
17262
17263 Ok(())
17264 }
17265 }
17266
17267 impl WlanFullmacOwePublicKey {
17268 #[inline(always)]
17269 fn max_ordinal_present(&self) -> u64 {
17270 if let Some(_) = self.key {
17271 return 2;
17272 }
17273 if let Some(_) = self.group {
17274 return 1;
17275 }
17276 0
17277 }
17278 }
17279
17280 impl fidl::encoding::ValueTypeMarker for WlanFullmacOwePublicKey {
17281 type Borrowed<'a> = &'a Self;
17282 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
17283 value
17284 }
17285 }
17286
17287 unsafe impl fidl::encoding::TypeMarker for WlanFullmacOwePublicKey {
17288 type Owned = Self;
17289
17290 #[inline(always)]
17291 fn inline_align(_context: fidl::encoding::Context) -> usize {
17292 8
17293 }
17294
17295 #[inline(always)]
17296 fn inline_size(_context: fidl::encoding::Context) -> usize {
17297 16
17298 }
17299 }
17300
17301 unsafe impl<D: fidl::encoding::ResourceDialect>
17302 fidl::encoding::Encode<WlanFullmacOwePublicKey, D> for &WlanFullmacOwePublicKey
17303 {
17304 unsafe fn encode(
17305 self,
17306 encoder: &mut fidl::encoding::Encoder<'_, D>,
17307 offset: usize,
17308 mut depth: fidl::encoding::Depth,
17309 ) -> fidl::Result<()> {
17310 encoder.debug_check_bounds::<WlanFullmacOwePublicKey>(offset);
17311 let max_ordinal: u64 = self.max_ordinal_present();
17313 encoder.write_num(max_ordinal, offset);
17314 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
17315 if max_ordinal == 0 {
17317 return Ok(());
17318 }
17319 depth.increment()?;
17320 let envelope_size = 8;
17321 let bytes_len = max_ordinal as usize * envelope_size;
17322 #[allow(unused_variables)]
17323 let offset = encoder.out_of_line_offset(bytes_len);
17324 let mut _prev_end_offset: usize = 0;
17325 if 1 > max_ordinal {
17326 return Ok(());
17327 }
17328
17329 let cur_offset: usize = (1 - 1) * envelope_size;
17332
17333 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
17335
17336 fidl::encoding::encode_in_envelope_optional::<u16, D>(
17341 self.group.as_ref().map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
17342 encoder,
17343 offset + cur_offset,
17344 depth,
17345 )?;
17346
17347 _prev_end_offset = cur_offset + envelope_size;
17348 if 2 > max_ordinal {
17349 return Ok(());
17350 }
17351
17352 let cur_offset: usize = (2 - 1) * envelope_size;
17355
17356 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
17358
17359 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<u8>, D>(
17364 self.key.as_ref().map(<fidl::encoding::UnboundedVector<u8> as fidl::encoding::ValueTypeMarker>::borrow),
17365 encoder, offset + cur_offset, depth
17366 )?;
17367
17368 _prev_end_offset = cur_offset + envelope_size;
17369
17370 Ok(())
17371 }
17372 }
17373
17374 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
17375 for WlanFullmacOwePublicKey
17376 {
17377 #[inline(always)]
17378 fn new_empty() -> Self {
17379 Self::default()
17380 }
17381
17382 unsafe fn decode(
17383 &mut self,
17384 decoder: &mut fidl::encoding::Decoder<'_, D>,
17385 offset: usize,
17386 mut depth: fidl::encoding::Depth,
17387 ) -> fidl::Result<()> {
17388 decoder.debug_check_bounds::<Self>(offset);
17389 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
17390 None => return Err(fidl::Error::NotNullable),
17391 Some(len) => len,
17392 };
17393 if len == 0 {
17395 return Ok(());
17396 };
17397 depth.increment()?;
17398 let envelope_size = 8;
17399 let bytes_len = len * envelope_size;
17400 let offset = decoder.out_of_line_offset(bytes_len)?;
17401 let mut _next_ordinal_to_read = 0;
17403 let mut next_offset = offset;
17404 let end_offset = offset + bytes_len;
17405 _next_ordinal_to_read += 1;
17406 if next_offset >= end_offset {
17407 return Ok(());
17408 }
17409
17410 while _next_ordinal_to_read < 1 {
17412 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
17413 _next_ordinal_to_read += 1;
17414 next_offset += envelope_size;
17415 }
17416
17417 let next_out_of_line = decoder.next_out_of_line();
17418 let handles_before = decoder.remaining_handles();
17419 if let Some((inlined, num_bytes, num_handles)) =
17420 fidl::encoding::decode_envelope_header(decoder, next_offset)?
17421 {
17422 let member_inline_size =
17423 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
17424 if inlined != (member_inline_size <= 4) {
17425 return Err(fidl::Error::InvalidInlineBitInEnvelope);
17426 }
17427 let inner_offset;
17428 let mut inner_depth = depth.clone();
17429 if inlined {
17430 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
17431 inner_offset = next_offset;
17432 } else {
17433 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
17434 inner_depth.increment()?;
17435 }
17436 let val_ref = self.group.get_or_insert_with(|| fidl::new_empty!(u16, D));
17437 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
17438 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
17439 {
17440 return Err(fidl::Error::InvalidNumBytesInEnvelope);
17441 }
17442 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
17443 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
17444 }
17445 }
17446
17447 next_offset += envelope_size;
17448 _next_ordinal_to_read += 1;
17449 if next_offset >= end_offset {
17450 return Ok(());
17451 }
17452
17453 while _next_ordinal_to_read < 2 {
17455 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
17456 _next_ordinal_to_read += 1;
17457 next_offset += envelope_size;
17458 }
17459
17460 let next_out_of_line = decoder.next_out_of_line();
17461 let handles_before = decoder.remaining_handles();
17462 if let Some((inlined, num_bytes, num_handles)) =
17463 fidl::encoding::decode_envelope_header(decoder, next_offset)?
17464 {
17465 let member_inline_size = <fidl::encoding::UnboundedVector<u8> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
17466 if inlined != (member_inline_size <= 4) {
17467 return Err(fidl::Error::InvalidInlineBitInEnvelope);
17468 }
17469 let inner_offset;
17470 let mut inner_depth = depth.clone();
17471 if inlined {
17472 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
17473 inner_offset = next_offset;
17474 } else {
17475 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
17476 inner_depth.increment()?;
17477 }
17478 let val_ref = self.key.get_or_insert_with(|| {
17479 fidl::new_empty!(fidl::encoding::UnboundedVector<u8>, D)
17480 });
17481 fidl::decode!(
17482 fidl::encoding::UnboundedVector<u8>,
17483 D,
17484 val_ref,
17485 decoder,
17486 inner_offset,
17487 inner_depth
17488 )?;
17489 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
17490 {
17491 return Err(fidl::Error::InvalidNumBytesInEnvelope);
17492 }
17493 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
17494 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
17495 }
17496 }
17497
17498 next_offset += envelope_size;
17499
17500 while next_offset < end_offset {
17502 _next_ordinal_to_read += 1;
17503 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
17504 next_offset += envelope_size;
17505 }
17506
17507 Ok(())
17508 }
17509 }
17510}